GNU bug report logs -
#6984
rx generates wrong regular expression for class
Previous Next
Full log
Message #10 received at 6984-done <at> debbugs.gnu.org (full text, mbox):
>>>>> "Daniel" == Daniel Colascione <dan.colascione <at> gmail.com> writes:
> (rx (in (?0 . ?3) ?, ?-))
> generates
> "[,-0-3]"
Thanks. I've just installed the patch below in the emacs-23 branch,
which should fix it (in two different ways).
Stefan
=== modified file 'lisp/emacs-lisp/rx.el'
--- lisp/emacs-lisp/rx.el 2010-06-29 12:09:07 +0000
+++ lisp/emacs-lisp/rx.el 2010-09-05 09:37:06 +0000
@@ -427,7 +427,7 @@
(mapcar (lambda (e)
(cond
((= (car e) (cdr e)) (list (car e)))
- ;; ((= (1+ (car e)) (cdr e)) (list (car e) (cdr e)))
+ ((= (1+ (car e)) (cdr e)) (list (car e) (cdr e)))
((list e))))
l))
(delete-dups str))))
@@ -545,7 +545,10 @@
((numberp e) (string e))
((consp e)
(if (and (= (1+ (car e)) (cdr e))
- (null (memq (car e) '(?\] ?-))))
+ ;; rx-any-condense-range should
+ ;; prevent this case from happening.
+ (null (memq (car e) '(?\] ?-)))
+ (null (memq (cdr e) '(?\] ?-))))
(string (car e) (cdr e))
(string (car e) ?- (cdr e))))
(e)))
This bug report was last modified 14 years and 259 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.