]> git.eshelyaron.com Git - emacs.git/commitdiff
* emacs-lisp/rx.el (rx-any): Don't explode ranges that end in - or ].
authorStefan Monnier <monnier@iro.umontreal.ca>
Sun, 5 Sep 2010 09:44:55 +0000 (11:44 +0200)
committerStefan Monnier <monnier@iro.umontreal.ca>
Sun, 5 Sep 2010 09:44:55 +0000 (11:44 +0200)
(rx-any-condense-range): Explode 2-char ranges.

Fixes: debbugs:6984
lisp/ChangeLog
lisp/emacs-lisp/rx.el

index ea973172b3a606f5c9cbe5a5d913ed7bba476240..21eaa4c15d3a5d890080433dbdb92cc34a7ef15e 100644 (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:
index 85fe3514b01a194522bc58b128254b7955ccd40e..522d452c2dc7c05a6699781a6c15a4ba463d534c 100644 (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)))