[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: query-replace-regexp-eval is quite nice, but...
From: |
Andreas Schwab |
Subject: |
Re: query-replace-regexp-eval is quite nice, but... |
Date: |
Mon, 02 Feb 2004 11:24:34 +0100 |
User-agent: |
Gnus/5.1006 (Gnus v5.10.6) Emacs/21.3.50 (gnu/linux) |
David Kastrup <address@hidden> writes:
> The description tells us
>
> [...]
>
> TO-EXPR is a Lisp expression evaluated to compute each
> replacement. It may reference `replace-count' to get the number
> of replacements already made. If the result of TO-EXPR is not a
> string, it is converted to one using `prin1-to-string' with the
> NOESCAPE argument (which see).
>
> For convenience, when entering TO-EXPR interactively, you can use
> `\&' or `\0' to stand for whatever matched the whole of REGEXP,
> and `\N' (where N is a digit) to stand for whatever matched the
> Nth `\(...\)' in REGEXP. Use `\#&' or `\#N' if you want a number
> instead of a string.
>
> So the idea is to build your replacement string with Lisp, and this
> is quite an excellent thing. It is completely defeated because the
> replacement is then done non-literally. Which means that if
> \0
> would have matched \footnote, replacing the string just with \0 (which
> one would expect to do nothing in effect) will barf because the
> regexp replacer will not know what \f is supposed to be.
I agree this is a bug.
> Is there anybody that would make a case for a non-literal
> replacement? If not, is there anybody with enough of a clue to find
> out how to fix this? I have taken a look at perform-replace, but it
> does not seem to offer an option for literal replacement for
> regexps. Should we add one?
Currently, perform-replace uses literal replacement for all non-regexp
searches, and non-literal otherwise. What we could do is offer a special
version of match-string that quotes backslashes and use that in
replace-match-string-symbols.
Andreas.
--
Andreas Schwab, SuSE Labs, address@hidden
SuSE Linux AG, Maxfeldstraße 5, 90409 Nürnberg, Germany
Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."
- query-replace-regexp-eval is quite nice, but..., David Kastrup, 2004/02/02
- Re: query-replace-regexp-eval is quite nice, but...,
Andreas Schwab <=
- Re: query-replace-regexp-eval is quite nice, but..., David Kastrup, 2004/02/02
- Re: query-replace-regexp-eval is quite nice, but..., Ehud Karni, 2004/02/02
- Re: query-replace-regexp-eval is quite nice, but..., David Kastrup, 2004/02/02
- Re: query-replace-regexp-eval is quite nice, but..., Andreas Schwab, 2004/02/02
- Re: query-replace-regexp-eval is quite nice, but..., David Kastrup, 2004/02/02
- Re: query-replace-regexp-eval is quite nice, but..., Stefan Monnier, 2004/02/02
- Re: query-replace-regexp-eval is quite nice, but..., Andreas Schwab, 2004/02/03
- Re: query-replace-regexp-eval is quite nice, but..., Andreas Schwab, 2004/02/02
- Re: query-replace-regexp-eval is quite nice, but..., David Kastrup, 2004/02/02