X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=wl%2Fwl-version.el;h=3c634c163b29733198379d441ab3d65dbc480556;hb=559f5528179d244aa50c6a7c4557e1134b6078f5;hp=0258f4bec150b1f8dfc3fcf13c9d7d675fa940fa;hpb=b6448c66386c09885882681b7019156209a3c39b;p=elisp%2Fwanderlust.git diff --git a/wl/wl-version.el b/wl/wl-version.el index 0258f4b..3c634c1 100644 --- a/wl/wl-version.el +++ b/wl/wl-version.el @@ -1,8 +1,10 @@ -;;; wl-version.el -- Version information for Wanderlust. +;;; wl-version.el --- Version information for Wanderlust. -;; Copyright 2000 Yuuichi Teranishi +;; Copyright (C) 2000-2001 Yuuichi Teranishi +;; Copyright (C) 2000-2001 TAKAHASHI Kaoru ;; Author: Yuuichi Teranishi +;; TAKAHASHI Kaoru ;; Keywords: mail, net news ;; This file is part of Wanderlust (Yet Another Message Interface on Emacsen). @@ -25,61 +27,56 @@ ;;; Commentary: ;; +;; Put the following lines to each file of Wanderlust package. +;; +;; (require 'product) +;; (product-provide (provide FEATURE) (require 'wl-version)) ;;; Code: ;; (require 'product) -(provide 'wl-version) ; have to declare in the top. +(require 'elmo-version) ; product-version-as-string +(eval-when-compile + (require 'elmo-util)) ; elmo-match-string +(provide 'wl-version) ; before product-provide +;; product-define in the first place (product-provide 'wl-version (product-define "Wanderlust" nil (eval-when-compile - (require 'elmo-version) (product-version (product-find 'elmo-version))) ; equals to ELMO version. - "Roam")) - -;; set version-string -(if (fboundp 'product-version-as-string) - (product-version-as-string 'wl-version) - (product-string-1 'wl-version)) ; APEL 10.2 or earlier. + "Venus-pre4")) -;; require wl-util after product-provide. -(eval-when-compile (require 'wl-util)) ; wl-match-string +(defconst wl-version-status nil + "Wanderlust verstion status. For override default rule. +If nil, use default rule.") -(defun wl-version (&optional with-codename) - "Return Wanderlust version. -If WITH-CODENAME add codename." - (product-string-1 'wl-version with-codename)) + +;; set version-string +(product-version-as-string 'wl-version) -(defun wl-version-show (&optional arg) +(defun wl-version () "Print Wanderlust version. -If ARG insert string at point." - (interactive "P") - (if arg - (insert (message "%s" (wl-version t))) - (message "%s" (wl-version t)))) - -(defvar wl-version-status-alist - '(((eq (% (nth 1 (product-version (product-find 'wl-version))) 2) 0) - . "stable") - (t . "beta")) - "An alist to define the version status.") +Don't support insert string at-point (C-u M-x wl-version). +For bug report, use `wl-generate-user-agent-string-1' instead. +When non-interactive, use `product-string-1' instead." + (interactive) + (let ((product-info (product-string-1 'wl-version t))) + (if (interactive-p) + (message "%s" product-info) + product-info))) (defun wl-version-status () - "Return version status (\"stable\" or \"beta\")." - (let ((salist wl-version-status-alist) - status) - (while salist - (when (eval (car (car salist))) - (setq status (cdr (car salist))) - (setq salist nil)) - (setq salist (cdr salist))) - status)) - -;; compile warning + "Return version status string. +If variable `wl-version-status' is non-nil, override default rule." + (or wl-version-status + (if (zerop (% (nth 1 (product-version (product-find 'wl-version))) 2)) + "stable" + "beta"))) + +;; avoid compile warnings (defvar mule-version) -(defvar nemacs-version) (defvar emacs-beta-version) (defvar xemacs-codename) (defvar mime-edit-insert-user-agent-field) @@ -88,49 +85,25 @@ If ARG insert string at point." (defvar mime-editor/codename) (defun wl-generate-user-agent-string () - "A candidate of `wl-generate-mailer-string-func'. + "A candidate of `wl-generate-mailer-string-function'. Insert User-Agent field instead of X-Mailer field." - (concat "User-Agent: " - (wl-generate-user-agent-string-1 - (or (and (boundp 'mime-edit-insert-user-agent-field) - mime-edit-insert-user-agent-field) - (and (boundp 'mime-editor/version) - mime-editor/version))))) + (wl-generate-user-agent-string-1 + ;; for backward compatibility + (and (boundp 'mime-edit-insert-user-agent-field) + mime-edit-insert-user-agent-field))) (defun wl-generate-user-agent-string-1 (&optional verbose) "Return User-Agent field value. If VERBOSE return with SEMI, FLIM and APEL version." (cond - ;; non-verbose + ;; Don't use `product-string-verbose' for short User-Agent field value. ((not verbose) - ;; Don't use product-string-verbose for short User-Agent field value. (concat (product-string-1 'wl-version t) " " (wl-extended-emacs-version3 "/" t))) - ;; SEMI + ;; SEMI (verbose) ((and (boundp 'mime-edit-user-agent-value) mime-edit-user-agent-value) (concat (product-string-verbose 'wl-version) " " mime-edit-user-agent-value)) - ;; tm - ((and (boundp 'mime-editor/version) mime-editor/version) - (concat (product-string-verbose 'wl-version) " " - "tm/" mime-editor/version - (if (and (boundp 'mime-editor/codename) - mime-editor/codename) - (concat " (" mime-editor/codename ")")) - (if (and (boundp 'mime-library-product) - mime-library-product) - (concat " " (aref mime-library-product 0) - "/" - (mapconcat 'int-to-string - (aref mime-library-product 1) - ".") - " (" (aref mime-library-product 2) ")")) - (condition-case nil - (progn - (require 'apel-ver) - (concat " " (apel-version))) - (file-error nil)) - " " (wl-extended-emacs-version3 "/" t))) ;; error case (t (product-string-1 'wl-version nil)))) @@ -141,103 +114,76 @@ If VERBOSE return with SEMI, FLIM and APEL version." If WITH-CODENAME add XEmacs codename." (cond ((string-match "^\\([0-9]+\\.[0-9]+\\)\\.[.0-9]+$" emacs-version) - (concat "Emacs " (wl-match-string 1 emacs-version) - (and (boundp 'mule-version)(concat "/Mule " mule-version)))) + (concat "Emacs " (elmo-match-string 1 emacs-version) + (when (boundp 'mule-version) (concat "/Mule " mule-version)))) ((string-match "\\([A-Z]*[Mm][Aa][Cc][Ss]\\)[^(]*\\(\\((beta.*)\\|'\\)\\)?" emacs-version) - (concat (wl-match-string 1 emacs-version) + (concat (elmo-match-string 1 emacs-version) (format " %d.%d" emacs-major-version emacs-minor-version) - (if (and (boundp 'emacs-beta-version) - emacs-beta-version) - (format "b%d" emacs-beta-version)) - (if with-codename - (if (boundp 'xemacs-codename) - (concat " - \"" xemacs-codename "\""))))) + (when (and (boundp 'emacs-beta-version) emacs-beta-version) + (format "b%d" emacs-beta-version)) + (when (and with-codename + (boundp 'xemacs-codename) xemacs-codename) + (concat " - \"" xemacs-codename "\"")))) (t emacs-version))) (defun wl-extended-emacs-version2 (&optional delimiter with-codename) "Stringified Emacs version. Separate DELIMITER (default is \" \"). If WITH-CODENAME add XEmacs codename." (cond - ((and (boundp 'mule-version) - mule-version + ((and (boundp 'mule-version) mule-version (string-match "\\([0-9]+\.[0-9]+\\)\\(.*$\\)" mule-version)) (format "Mule%s%s@%d.%d%s" (or delimiter " ") - (wl-match-string 1 mule-version) + (elmo-match-string 1 mule-version) emacs-major-version emacs-minor-version (if with-codename - (wl-match-string 2 mule-version) + (elmo-match-string 2 mule-version) ""))) ((string-match "^\\([0-9]+\\.[0-9]+\\)\\.[.0-9]+$" emacs-version) - (if (boundp 'nemacs-version) - (concat "Nemacs" (or delimiter " ") - nemacs-version - "@" - (substring emacs-version - (match-beginning 1) - (match-end 1))) - (concat "Emacs" (or delimiter " ") - (wl-match-string 1 emacs-version)))) + (concat "Emacs" (or delimiter " ") + (elmo-match-string 1 emacs-version))) ((string-match "\\([A-Z]*[Mm][Aa][Cc][Ss]\\)[^(]*\\(\\((beta.*)\\|'\\)\\)?" emacs-version) - (concat (wl-match-string 1 emacs-version) + (concat (elmo-match-string 1 emacs-version) (or delimiter " ") (format "%d.%d" emacs-major-version emacs-minor-version) - (if (and (boundp 'emacs-beta-version) - emacs-beta-version) - (format "b%d" emacs-beta-version)) - (if (and with-codename - (boundp 'xemacs-codename) - xemacs-codename) - (format " (%s)" xemacs-codename)))) + (when (and (boundp 'emacs-beta-version) emacs-beta-version) + (format "b%d" emacs-beta-version)) + (when (and with-codename + (boundp 'xemacs-codename) xemacs-codename) + (format " (%s)" xemacs-codename)))) (t emacs-version))) (defun wl-extended-emacs-version3 (&optional delimiter with-codename) "Stringified Emacs version. -Separate DELIMITER (default it \" \"). If WITH-CODENAME add XEmacs codename." +Separate DELIMITER (default is \" \"). If WITH-CODENAME add XEmacs codename." (cond - ((and (boundp 'mule-version) - mule-version + ((and (boundp 'mule-version) mule-version (string-match "\\([0-9]+\.[0-9]+\\)\\(.*$\\)" mule-version)) (format "Emacs%s%d.%d Mule%s%s%s" (or delimiter " ") emacs-major-version emacs-minor-version (or delimiter " ") - (wl-match-string 1 mule-version) + (elmo-match-string 1 mule-version) (if with-codename - (wl-match-string 2 mule-version) + (elmo-match-string 2 mule-version) ""))) ((string-match "^\\([0-9]+\\.[0-9]+\\)\\.[.0-9]+$" emacs-version) - (if (boundp 'nemacs-version) - (let ((nemacs-codename-assoc '(("3.3.2" . " (FUJIMUSUME)") - ("3.3.1" . " (HINAMATSURI)") - ("3.2.3" . " (YUMENO-AWAYUKI)")))) - (format "Emacs%s%s Nemacs%s%s%s" - (or delimiter " ") - (wl-match-string 1 emacs-version) - (or delimiter " ") - nemacs-version - (or (and with-codename - (cdr (assoc nemacs-version - nemacs-codename-assoc))) - ""))) - (concat "Emacs" (or delimiter " ") - (wl-match-string 1 emacs-version)))) + (concat "Emacs" (or delimiter " ") + (elmo-match-string 1 emacs-version))) ((string-match "\\([A-Z]*[Mm][Aa][Cc][Ss]\\)[^(]*\\(\\((beta.*)\\|'\\)\\)?" emacs-version) - (concat (wl-match-string 1 emacs-version) + (concat (elmo-match-string 1 emacs-version) (or delimiter " ") (format "%d.%d" emacs-major-version emacs-minor-version) - (if (and (boundp 'emacs-beta-version) - emacs-beta-version) - (format "b%d" emacs-beta-version)) - (if (and with-codename - (boundp 'xemacs-codename) - xemacs-codename) - (format " (%s)" xemacs-codename)))) + (when (and (boundp 'emacs-beta-version) emacs-beta-version) + (format "b%d" emacs-beta-version)) + (when (and with-codename + (boundp 'xemacs-codename) xemacs-codename) + (format " (%s)" xemacs-codename)))) (t emacs-version)))