anythingが最新版か確認するコマンド

(require 'url) を使ったネタです。

(defun anything-c-update-check ()
  (interactive)
  (require 'url)
  (condition-case e
      (let* ((re "\\$Id: anything\\.el,v \\([0-9.]+\\)")
             (cur-version (string-to-int
                           (when (string-match re anything-version)
                             (match-string 1 anything-version))))
             (ewiki-version (string-to-int
                             (with-current-buffer (url-retrieve-synchronously
                                                   "http://www.emacswiki.org/cgi-bin/wiki/download/anything.el")
                               (goto-char (point-min))
                               (when (re-search-forward re nil t)
                                 (match-string 1))))))
        (message (if (< cur-version ewiki-version)
                     "anythingが更新されています"
                   "anythingは最新版です")))
    (error (message "error: %s" (error-message-string e)))))

こんなコマンドをつくって、

M-x anything-c-update-check

バイトコンパイルし忘れというオチに注意。

2008/09/09

string-to-intにnilが渡るとエラーになるので少し変更