diff options
author | Chong Yidong <cyd@stupidchicken.com> | 2011-03-10 16:51:26 -0500 |
---|---|---|
committer | Chong Yidong <cyd@stupidchicken.com> | 2011-03-10 16:51:26 -0500 |
commit | ffbf300e1e88333532721940f8416b54e47ac0e7 (patch) | |
tree | 5a1dcdfb409f9f1df698d1e27527825a78b35def /lisp/emacs-lisp | |
parent | f3b54b0e1e770038e9842479d88916d95f7bfa51 (diff) | |
download | emacs-ffbf300e1e88333532721940f8416b54e47ac0e7.tar.gz emacs-ffbf300e1e88333532721940f8416b54e47ac0e7.tar.bz2 emacs-ffbf300e1e88333532721940f8416b54e47ac0e7.zip |
Fix package-strip-rcs-id to be more robust.
See http://lists.gnu.org/archive/html/emacs-devel/2011-03/msg00396.html
* lisp/emacs-lisp/package.el (package-strip-rcs-id): Accept any version
string that does not signal an error in version-to-list.
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r-- | lisp/emacs-lisp/package.el | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el index d90164b5a95..29089400cef 100644 --- a/lisp/emacs-lisp/package.el +++ b/lisp/emacs-lisp/package.el @@ -848,15 +848,17 @@ The package is found on one of the archives in `package-archives'." ;; Try to activate it. (package-initialize)) -(defun package-strip-rcs-id (v-str) - "Strip RCS version ID from the version string. +(defun package-strip-rcs-id (str) + "Strip RCS version ID from the version string STR. If the result looks like a dotted numeric version, return it. Otherwise return nil." - (if v-str - (if (string-match "^[ \t]*[$]Revision:[ \t]\([0-9.]+\)[ \t]*[$]$" v-str) - (match-string 1 v-str) - (if (string-match "^[0-9.]*$" v-str) - v-str)))) + (when str + (when (string-match "\\`[ \t]*[$]Revision:[ \t]+" str) + (setq str (substring str (match-end 0)))) + (condition-case nil + (if (version-to-list str) + str) + (error nil)))) (defun package-buffer-info () "Return a vector describing the package in the current buffer. |