* emacs-lisp/rx.el (rx-any): Don't explode ranges that end in - or ].

(rx-any-condense-range): Explode 2-char ranges.

Fixes: debbugs:6984
This commit is contained in:
Stefan Monnier 2010-09-05 11:44:55 +02:00
parent 89532a078e
commit 19fe13dfd1
2 changed files with 11 additions and 2 deletions

View file

@ -1,3 +1,9 @@
2010-09-05 Stefan Monnier <monnier@iro.umontreal.ca>
* emacs-lisp/rx.el (rx-any): Don't explode ranges that end in special
chars like - or ] (bug#6984).
(rx-any-condense-range): Explode 2-char ranges.
2010-09-02 Stefan Monnier <monnier@iro.umontreal.ca>
* textmodes/bibtex.el:

View file

@ -427,7 +427,7 @@ Only both edges of each range is checked."
(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 @@ ARG is optional."
((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)))