bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#27818: 26.0.50; *occur* buffer misses one match


From: Andreas Schwab
Subject: bug#27818: 26.0.50; *occur* buffer misses one match
Date: Tue, 25 Jul 2017 11:21:00 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux)

On Jul 25 2017, Dani Moncayo <address@hidden> wrote:

> Recipe from "emacs -Q":
>
> 1.  Create a new buffer and put there these four lines:
> ---begin-of-buffer---------
> w1    # word 1
> w2    # word 2
> w3    # word 3
> w4    # word 4
> ---end-of-buffer---------
>
> 2. Search for the following regexp:
> "[^[:alnum:]]\(w2\|w3\)[^[:alnum:]]" (without the quotes)
>
> 3.  End the search and type "C-M-s M-p RET M-s o" to launch an *occur* buffer.
>
> The search actually has 2 matches but the *occur* buffer shows only one of 
> them:

The occur engine only considers non-overlapping matches and extends each
match to complete lines.

> ---begin-of-buffer---------
> 1 match for "[^[:alnum:]]\(w2\|w3\)[^[:alnum:]]" in buffer: foo
>       1:w1    # word 1
>        :w2    # word 2
> ---end-of-buffer---------

Note how the first [^[:alnum:]] matches the newline preceding w2, thus
the match includes also line 1.  The next match would start at the
newline in line 2, but that would overlap with the first match.

Andreas.

-- 
Andreas Schwab, SUSE Labs, address@hidden
GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE  1748 E4D4 88E3 0EEA B9D7
"And now for something completely different."





reply via email to

[Prev in Thread] Current Thread [Next in Thread]