]> code.delx.au - gnu-emacs/commitdiff
Let version-to-list handle versions like "10.3d".
authorChong Yidong <cyd@stupidchicken.com>
Sun, 29 Aug 2010 01:31:45 +0000 (21:31 -0400)
committerChong Yidong <cyd@stupidchicken.com>
Sun, 29 Aug 2010 01:31:45 +0000 (21:31 -0400)
* lisp/subr.el (version-regexp-alist): Don't use "a" and "b" for
"alpha" and "beta".
(version-to-list): Handle versions like "10.3d".

lisp/ChangeLog
lisp/subr.el

index a1564ac4a5f6040e25b5749c9e6ddd39ee471404..d4ba7de16350f30380bcfab81f643d831f3e6bbb 100644 (file)
@@ -1,3 +1,9 @@
+2010-08-29  Chong Yidong  <cyd@stupidchicken.com>
+
+       * subr.el (version-regexp-alist): Don't use "a" and "b" for
+       "alpha" and "beta".
+       (version-to-list): Handle versions like "10.3d".
+
 2010-08-28  Stefan Monnier  <monnier@iro.umontreal.ca>
 
        * emacs-lisp/macroexp.el (macroexpand-all-1): Use pcase.
index 90480ea0e7f23132ba1a33b529224092054ff4de..0852ec58b5a72b8ac6f18aa7a3b0b5aab28bae98 100644 (file)
@@ -3584,11 +3584,11 @@ Usually the separator is \".\", but it can be any other string.")
 
 
 (defconst version-regexp-alist
-  '(("^[-_+ ]?a\\(lpha\\)?$"   . -3)
+  '(("^[-_+ ]?alpha$"   . -3)
     ("^[-_+]$"                 . -3) ; treat "1.2.3-20050920" and "1.2-3" as alpha releases
     ("^[-_+ ]cvs$"             . -3)   ; treat "1.2.3-CVS" as alpha release
-    ("^[-_+ ]?b\\(eta\\)?$"    . -2)
-    ("^[-_+ ]?\\(pre\\|rc\\)$" . -1))
+    ("^[-_+ ]?beta$"    . -2)
+    ("^[-_+ ]?\\(pre\\|rcc\\)$" . -1))
   "*Specify association between non-numeric version and its priority.
 
 This association is used to handle version string like \"1.0pre2\",
@@ -3681,8 +3681,13 @@ See documentation for `version-separator' and `version-regexp-alist'."
            (setq al version-regexp-alist)
            (while (and al (not (string-match (caar al) s)))
              (setq al (cdr al)))
-           (or al (error "Invalid version syntax: '%s'" ver))
-           (setq lst (cons (cdar al) lst)))))
+           (cond (al
+                  (push (cdar al) lst))
+                 ;; Convert 22.3a to 22.3.1.
+                 ((string-match "^[-_+ ]?\\([a-zA-Z]\\)$" s)
+                  (push (- (aref (downcase (match-string 1 s)) 0) ?a -1)
+                        lst))
+                 (t (error "Invalid version syntax: '%s'" ver))))))
       (if (null lst)
          (error "Invalid version syntax: '%s'" ver)
        (nreverse lst)))))