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.
This commit is contained in:
Chong Yidong 2011-03-10 16:51:26 -05:00
parent f3b54b0e1e
commit ffbf300e1e
2 changed files with 14 additions and 7 deletions

View file

@ -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.