Mercurial > hg > xemacs-beta
comparison lisp/version.el @ 428:3ecd8885ac67 r21-2-22
Import from CVS: tag r21-2-22
author | cvs |
---|---|
date | Mon, 13 Aug 2007 11:28:15 +0200 |
parents | |
children | 8de8e3f6228a |
comparison
equal
deleted
inserted
replaced
427:0a0253eac470 | 428:3ecd8885ac67 |
---|---|
1 ;; version.el --- Record version number of Emacs. | |
2 | |
3 ;; Copyright (C) 1985, 1991-1994, 1997 Free Software Foundation, Inc. | |
4 | |
5 ;; Maintainer: XEmacs Development Team | |
6 ;; Keywords: internal, dumped | |
7 | |
8 ;; This file is part of XEmacs. | |
9 | |
10 ;; XEmacs is free software; you can redistribute it and/or modify | |
11 ;; it under the terms of the GNU General Public License as published by | |
12 ;; the Free Software Foundation; either version 2, or (at your option) | |
13 ;; any later version. | |
14 | |
15 ;; XEmacs is distributed in the hope that it will be useful, | |
16 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
17 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
18 ;; GNU General Public License for more details. | |
19 | |
20 ;; You should have received a copy of the GNU General Public License | |
21 ;; along with GNU Emacs; see the file COPYING. If not, write to the | |
22 ;; Free Software Foundation Inc., 59 Temple Place - Suite 330, | |
23 ;; Boston, MA 02111-1307, USA. | |
24 | |
25 ;;; Synched up with: FSF 19.34. | |
26 | |
27 ;;; Commentary: | |
28 | |
29 ;; This file is dumped with XEmacs. | |
30 | |
31 ;;; Code: | |
32 | |
33 (defconst xemacs-betaname | |
34 (and emacs-beta-version (format "(beta%d)" emacs-beta-version)) | |
35 "Non-nil when this is a test (beta) version of XEmacs. | |
36 Warning, this variable did not exist in XEmacs versions prior to 20.3") | |
37 | |
38 (defconst emacs-version | |
39 (purecopy | |
40 (format "%d.%d %s%s%s%s" | |
41 emacs-major-version | |
42 emacs-minor-version | |
43 (if emacs-patch-level | |
44 (format "(patch %d)" emacs-patch-level) | |
45 "") | |
46 (if xemacs-betaname | |
47 (concat " " xemacs-betaname) | |
48 "") | |
49 (if xemacs-codename | |
50 (concat " \"" xemacs-codename "\"") | |
51 "") | |
52 " XEmacs Lucid")) | |
53 "Version numbers of this version of XEmacs.") | |
54 | |
55 (if (featurep 'infodock) | |
56 (require 'id-vers)) | |
57 | |
58 ;; Moved to C code as of XEmacs 20.3 | |
59 ;(defconst emacs-major-version | |
60 ; (progn (or (string-match "^[0-9]+" emacs-version) | |
61 ; (error "emacs-version unparsable")) | |
62 ; (string-to-int (match-string 0 emacs-version))) | |
63 ; "Major version number of this version of Emacs, as an integer. | |
64 ;Warning, this variable did not exist in Emacs versions earlier than: | |
65 ; FSF Emacs: 19.23 | |
66 ; XEmacs: 19.10") | |
67 | |
68 ;; Moved to C code as of XEmacs 20.3 | |
69 ;(defconst emacs-minor-version | |
70 ; (progn (or (string-match "^[0-9]+\\.\\([0-9]+\\)" emacs-version) | |
71 ; (error "emacs-version unparsable")) | |
72 ; (string-to-int (match-string 1 emacs-version))) | |
73 ; "Minor version number of this version of Emacs, as an integer. | |
74 ;Warning, this variable did not exist in Emacs versions earlier than: | |
75 ; FSF Emacs: 19.23 | |
76 ; XEmacs: 19.10") | |
77 | |
78 (defconst emacs-build-time (current-time-string) | |
79 "Time at which Emacs was dumped out.") | |
80 | |
81 (defconst emacs-build-system (system-name)) | |
82 | |
83 (defun emacs-version (&optional arg) | |
84 "Return string describing the version of Emacs that is running. | |
85 When called interactively with a prefix argument, insert string at point. | |
86 Don't use this function in programs to choose actions according | |
87 to the system configuration; look at `system-configuration' instead." | |
88 (interactive "p") | |
89 (save-match-data | |
90 (let ((version-string | |
91 (format | |
92 "XEmacs %s %s(%s%s) of %s %s on %s" | |
93 (substring emacs-version 0 (string-match " XEmacs" emacs-version)) | |
94 (if (not (featurep 'infodock)) | |
95 "[Lucid] " | |
96 "") | |
97 system-configuration | |
98 (cond ((or (and (fboundp 'featurep) | |
99 (featurep 'mule)) | |
100 (memq 'mule features)) ", Mule") | |
101 (t "")) | |
102 (substring emacs-build-time 0 | |
103 (string-match " *[0-9]*:" emacs-build-time)) | |
104 (substring emacs-build-time | |
105 (string-match "[0-9]*$" emacs-build-time)) | |
106 emacs-build-system))) | |
107 (cond | |
108 ((null arg) version-string) | |
109 ((eq arg 1) (message "%s" version-string)) | |
110 (t (insert version-string)))))) | |
111 | |
112 ;; from emacs-vers.el | |
113 (defun emacs-version>= (major &optional minor patch) | |
114 "Return true if the Emacs version is >= to the given MAJOR, MINOR, | |
115 and PATCH numbers. | |
116 The MAJOR version number argument is required, but the other arguments | |
117 argument are optional. Only the Non-nil arguments are used in the test." | |
118 (let ((emacs-patch (or emacs-patch-level emacs-beta-version -1))) | |
119 (cond ((> emacs-major-version major)) | |
120 ((< emacs-major-version major) nil) | |
121 ((null minor)) | |
122 ((> emacs-minor-version minor)) | |
123 ((< emacs-minor-version minor) nil) | |
124 ((null patch)) | |
125 ((>= emacs-patch patch))))) | |
126 | |
127 ;;; We hope that this alias is easier for people to find. | |
128 (define-function 'version 'emacs-version) | |
129 | |
130 ;; Put the emacs version number into the `pure[]' array in a form that | |
131 ;; `what(1)' can extract from the executable or a core file. We don't | |
132 ;; actually need this to be pointed to from lisp; pure objects can't | |
133 ;; be GCed. | |
134 (or (memq system-type '(windows-nt ms-dos)) | |
135 (purecopy (concat "\n@" "(#)" (emacs-version) | |
136 "\n@" "(#)" "Configuration: " | |
137 system-configuration "\n"))) | |
138 | |
139 ;;Local variables: | |
140 ;;version-control: never | |
141 ;;End: | |
142 | |
143 ;;; version.el ends here |