Synch to No Gnus 200510042243.
[elisp/gnus.git-] / lisp / gnus-vers.el
index 0f64bfe..9a784b3 100644 (file)
@@ -1,6 +1,7 @@
 ;;; gnus-vers.el --- Declare gnus version
 
-;; Copyright (C) 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+;; Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005
+;; Free Software Foundation, Inc.
 
 ;; Author: Keiichi Suzuki <keiichi@nanap.org>
 ;;         Katsumi Yamaoka <yamaoka@jpl.org>
 ;; General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with this program; see the file COPYING.  If not, write to
-;; the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-;; Boston, MA 02111-1307, USA.
+;; along with GNU Emacs; see the file COPYING.  If not, write to the
+;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+;; Boston, MA 02110-1301, USA.
 
 ;;; Commentary:
 
 ;;; Code:
 
 (eval-when-compile (require 'cl))
-(eval-when-compile (require 'gnus-clfns))
 
 (require 'poe)
 (require 'product)
 ;; Product information of this gnus.
 (product-provide 'gnus-vers
   (product-define "T-gnus" nil
-                 (list 6 16 6
+                 (list 6 17 4
                        (string-to-number gnus-revision-number))))
 
-(defconst gnus-original-version-number "5.10.6"
+(defconst gnus-original-version-number "0.4"
   "Version number for this version of Gnus.")
 
 (provide 'running-pterodactyl-gnus-0_73-or-later)
 
-(defconst gnus-original-product-name "Gnus"
+(defconst gnus-original-product-name "No Gnus"
   "Product name of the original version of Gnus.")
 
 (defconst gnus-product-name (product-name (product-find 'gnus-vers))
@@ -75,14 +75,43 @@ If ARG, insert string at point."
       (insert (message "%s" gnus-version))
     (message "%s" gnus-version)))
 
+(eval-when-compile
+  (defvar mime-user-interface-product)
+  (require 'mime-def))
+
 (defun gnus-extended-version ()
-  "Stringified gnus version."
-  (concat gnus-product-name "/" gnus-version-number
-         " (based on "
-         gnus-original-product-name " v" gnus-original-version-number ")"
-         (if (zerop (string-to-number gnus-revision-number))
-             ""
-           (concat " (revision " gnus-revision-number ")"))
-         ))
+  "Stringified Gnus, Emacs, SEMI, FLIM and APEL versions.
+See the variable `gnus-user-agent'."
+  (if (stringp gnus-user-agent)
+      gnus-user-agent
+    ;; `gnus-user-agent' is a list:
+    (let* ((float-output-format nil)
+          (gnus-v (when (memq 'gnus gnus-user-agent)
+                    (concat
+                     gnus-product-name "/" gnus-version-number " ("
+                     (unless (zerop (string-to-number gnus-revision-number))
+                       (concat "r" gnus-revision-number ", "))
+                     "based on " gnus-original-product-name
+                     " v" gnus-original-version-number ")")))
+          (emacs-v (gnus-emacs-version))
+          (mime-v (when (memq 'mime gnus-user-agent)
+                    (concat
+                     (mime-product-name mime-user-interface-product) "/"
+                     (mapconcat
+                      #'number-to-string
+                      (mime-product-version mime-user-interface-product)
+                      ".")
+                     " ("
+                     (mime-product-code-name mime-user-interface-product)
+                     ") "
+                     (mime-product-name mime-library-product) "/"
+                     (mapconcat
+                      #'number-to-string
+                      (mime-product-version mime-library-product)
+                      ".")
+                     " ("
+                     (mime-product-code-name mime-library-product)
+                     ") " (apel-version)))))
+      (mapconcat 'identity (delq nil (list gnus-v mime-v emacs-v)) " "))))
 
 ;; gnus-vers.el ends here