emacs-devel
[Top][All Lists]
Advanced

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

Re: address@hidden: Re: re-builder bug(s)]


From: Oliver Scholz
Subject: Re: address@hidden: Re: re-builder bug(s)]
Date: Fri, 09 Mar 2007 17:55:02 +0100
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/22.0.95 (gnu/linux)

Richard Stallman <address@hidden> writes:

[...]
> I don't know whether Detlev Zundel is still available,
> so I cc'd this to emacs-devel.  If Detlev doesn't fix this,
> I hope that someone else will do so.

I gave it a shot.


[...]
>>     I also find (and I'm not quite sure whether it's a real bug or just
>>     something I haven't understood about regexps or re-builder) that
>>     expressions such as "\\>" and "$" in the re-builder buffer don't work
>>     (and are flagged as "*invalid*" in the modeline) but ".\\>" and ".$",
>>
>> Would you please send a precise, complete test case for this?
>
> Open a new buffer, put it in text mode and insert a line of text into it:
>
>      C-x b *reb-test* RET M-x text-mode RET
>      Kidman's publicist, Catherine Olim, said the star was trying to shake 
> zombies off the bonnet of her Jaguar when the car spun off the road. RET
>
> Try to use re-builder to count the number of words in the buffer:
>
>     M-x re-builder RET
>     \\>
>
> As soon as the first `\' is entered between the `"'s, in the
> *RE-Builder* buffer, "*invalid*" appears in the modeline.
> Now replace the regexp in the *RE-Builder* buffer with another:
>
>     DEL DEL DEL
>     .\\>
>
> Success! - the last character of each word in the *reb-test* buffer
> has been highlighted and a message, "25 matches" has appeared in the
> minibuffer. Likewise, the regexp, "^" will not find the empty string
> at the beginning of the buffer but "^." will and "$" will not find the
> end of the buffer but ".$" will.

This happens in line 646 and following of re-builder.el.
`reb-update-overlays' `re-search'es the buffer and checks whether the
match is empty, otherwise it updates the match-overlays:

        (if (= 0 (length (match-string 0)))
            (error "Empty regular expression!"))

So, this "bug" seems to be intentional. I wouldn't know what to do,
anyways. How do you highlight an empty string?


    Oliver
-- 
19 Ventôse an 215 de la Révolution
Liberté, Egalité, Fraternité!





reply via email to

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