Current File : //kunden/usr/share/emacs/27.2/lisp/cedet/inversion.elc |
;ELC
;;; Compiled
;;; in Emacs version 27.2
;;; with all optimizations.
;;; This file uses dynamic docstrings, first added in Emacs 19.29.
;;; This file does not contain utf-8 non-ASCII characters,
;;; and so can be loaded in Emacs versions earlier than 23.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
#@31 Current version of InVersion.
(defvar inversion-version "1.3" (#$ . 408))
#@61 An earlier release which is incompatible with this release.
(defvar inversion-incompatible-version "0.1alpha1" (#$ . 488))
#@382 List of decoders for version strings.
Each decoder is of the form:
( RELEASE-TYPE REGEXP MAX )
RELEASE-TYPE is a symbol specifying something like `beta' or `alpha'.
REGEXP is the regular expression to match a version string.
MAX is the maximum number of match-numbers in the release number.
Decoders must be ordered to decode least stable versions before the
more stable ones.
(defconst inversion-decoders '((alpha "^\\([0-9]+\\)\\.\\([0-9]+\\)\\.?\\([0-9]*\\)\\s-*\\.?alpha\\([0-9]+\\)?$" 4) (beta "^\\([0-9]+\\)\\.\\([0-9]+\\)\\.?\\([0-9]*\\)\\s-*\\.?beta\\([0-9]+\\)?$" 4) (beta "^\\([0-9]+\\)\\.\\([0-9]+\\)\\.?\\([0-9]*\\)\\s-*\\.?(beta\\([0-9]+\\)?)$" 4) (beta "^[^/]+/\\w+--\\w+--\\([0-9]+\\)\\.\\([0-9]+\\)\\.\\([0-9]+\\)--patch-\\([0-9]+\\)" 4) (beta "^\\w+: v\\([0-9]+\\)\\.\\([0-9]+\\)\\.\\([0-9]+\\)-\\([0-9]+\\)-\\(.*\\)" 5) (prerelease "^\\([0-9]+\\)\\.\\([0-9]+\\)\\s-*\\.?pre\\([0-9]+\\)?$" 3) (full "^\\([0-9]+\\)\\.\\([0-9]+\\)\\.?\\([0-9]+\\)?$" 3) (fullsingle "^\\([0-9]+\\)$" 1) (patch "^\\([0-9]+\\)\\.\\([0-9]+\\)\\.?\\([0-9]+\\)?\\s-*(patch \\([0-9]+\\))" 4) (point "^\\([0-9]+\\)\\.\\([0-9]+\\)\\.\\([0-9]+\\)$" 3) (point "^\\w+: v\\([0-9]+\\)\\.\\([0-9]+\\)\\.\\([0-9]+\\)-\\(0\\)-\\(.*\\)" 5) (build "^\\([0-9]+\\)\\.\\([0-9]+\\)\\.\\([0-9]+\\).\\([0-9]+\\)$" 4) (full "^[^/]+/\\w+--\\w+--\\([0-9]+\\)\\.\\([0-9]+\\)\\.\\([0-9]+\\)--version-\\([0-9]+\\)" 4) (full "^\\w+: v\\([0-9]+\\)\\.\\([0-9]+\\)\\.\\([0-9]+\\)" 5)) (#$ . 618))
#@155 Decode VERSION-STRING into an encoded list.
Return value is of the form:
(RELEASE MAJOR MINOR ...)
where RELEASE is a symbol such as `full', or `beta'.
(defalias 'inversion-decode-version #[(version-string) "\306\n\203W \204W \307\n@A@\"\203P \306\310\n@8\311\f\f
X\203D \f\224\2037 \312\313\f\224\f\225#!\2028 \311\fB\f\fT\211\202! \n@@\f\237B+\202 \nA\211\204 *\207" [inversion-decoders result decoders version-string count num-left nil string-match 2 1 string-to-number substring ver] 6 (#$ . 2089)])
#@41 Return the decoded version for PACKAGE.
(defalias 'inversion-package-version #[(package) "\303\304!\305P!J\306\211\204 \307\310\211#\210\311\n!\211\204# \307\312\n#\210 *\207" [package code ver intern-soft symbol-name "-version" nil error "Package %S does not define %S-version" inversion-decode-version "%S-version value (%s) cannot be decoded"] 5 (#$ . 2619)])
#@227 Return the decoded incompatibility version for PACKAGE.
The incompatibility version is specified by the programmer of
a package when a package is not backward compatible. It is
not an indication of new features or bug fixes.
(defalias 'inversion-package-incompatibility-version #[(package) "\302\303!\304P!J\211\205 \305 !)\207" [package ver intern-soft symbol-name "-incompatible-version" inversion-decode-version] 4 (#$ . 2996)])
#@29 Convert CODE into a string.
(defalias 'inversion-recode #[(code) "@A@\3058\3068\211\307\267\202 \310\211\202 \311\312\313\n\f %,\207" [code p i n r 2 3 #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (full 21 point 28)) "" "." format "%s.%s%s%s"] 7 (#$ . 3438)])
#@39 Convert RELEASE-SYMBOL into a number.
(defalias 'inversion-release-to-number #[(release-symbol) "\303 \" G\n \235GZ)\207" [release-symbol inversion-decoders ra assoc] 4 (#$ . 3758)])
#@42 Return non-nil if VER1 is equal to VER2.
(defalias 'inversion-= #[(ver1 ver2) " \232\207" [ver1 ver2] 2 (#$ . 3949)])
#@43 Return non-nil if VER1 is less than VER2.
(defalias 'inversion-< #[(ver1 ver2) "\306@!A@\3078\3108\3118\306 @! A@\307 8\310 8\311 8\n\f
\fF
\f\nF\232\203T \203T \n\203T \nW\202\273
\232\203y
\f\232\203y \f\232\203y \203y \n\203y \nW\202\273
\232\203\227
\f\232\203\227 \f\203\227 \203\227 \fW\202\273
\232\203\256
\203\256 \f\203\256
\fW\202\273 \205\273
\205\273
W.\n\207" [ver1 ver2 v2-4 v2-3 v2-2 v2-1 inversion-release-to-number 2 3 4 v2-0 v1-4 v1-3 v1-2 v1-1 v1-0] 11 (#$ . 4074)])
#@455 Check that a given version meets the minimum requirement.
VERSION, INCOMPATIBLE-VERSION and MINIMUM are of similar format to
return entries of `inversion-decode-version', or a classic version
string. INCOMPATIBLE-VERSION can be nil.
RESERVED arguments are kept for a later use.
Return:
- nil if everything is ok.
- `outdated' if VERSION is less than MINIMUM.
- `incompatible' if VERSION is not backward compatible with MINIMUM.
- t if the check failed.
(defalias 'inversion-check-version #[(version incompatible-version minimum &rest reserved) ";\203 \306!\202\f ;\203 \306 !\202 \307\n\"\203% \310\202d \311\n\"\2030 \312\202d \311\n\"\203c \f;\203B \306\f!\202C \f\211\204L \310\202_ \307\n
\"\204Z \311\n
\"\203^ \305\202_ \310)\202d \313*\207" [version minimum req code incompatible-version incompatible inversion-decode-version inversion-= nil inversion-< outdated t] 4 (#$ . 4633)])
#@457 Test that PACKAGE meets the MINIMUM version requirement.
PACKAGE is a symbol, similar to what is passed to `require'.
MINIMUM is of similar format to return entries of
`inversion-decode-version', or a classic version string.
RESERVED arguments are kept for a later user.
This depends on the symbols `PACKAGE-version' and optionally
`PACKAGE-incompatible-version' being defined in PACKAGE.
Return nil if everything is ok. Return an error string otherwise.
(defalias 'inversion-test #[(package minimum &rest reserved) "\304\305!\306! \n$\211\204 \307\202* \310\267\202) \311\312 #\202* \311\313 #\202* \314)\207" [package minimum reserved check inversion-check-version inversion-package-version inversion-package-incompatibility-version nil #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (outdated 25 incompatible 33)) format "You need to upgrade package %s to %s" "Package %s version is not backward compatible with %s" "Inversion version check failed."] 6 (#$ . 5544)])
#@600 Test that PACKAGE at OLDVERSION is still compatible.
If something like a save file is loaded at OLDVERSION, this
test will identify if OLDVERSION is compatible with the current version
of PACKAGE.
PACKAGE is a symbol, similar to what is passed to `require'.
OLDVERSION is of similar format to return entries of
`inversion-decode-version', or a classic version string.
RESERVED arguments are kept for a later user.
This depends on the symbols `PACKAGE-version' and optionally
`PACKAGE-incompatible-version' being defined in PACKAGE.
Return nil if everything is ok. Return an error string otherwise.
(defalias 'inversion-reverse-test #[(package oldversion &rest reserved) "\304\305!\306! \n$\211\204 \307\202* \310\267\202) \311\312 #\202* \311\313 #\202* \314)\207" [package oldversion reserved check inversion-check-version inversion-package-version inversion-package-incompatibility-version nil #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (outdated 25 incompatible 33)) format "Package %s version %s is not compatible with current version" "Package %s version is not backward compatible with %s" "Inversion version check failed."] 6 (#$ . 6567)])
#@416 Declare that you need PACKAGE with at least VERSION.
PACKAGE might be found in FILE. (See `require'.)
Throws an error if VERSION is incompatible with what is installed.
Optional argument DIRECTORY is a location where new versions of
this tool can be located. If there is a versioning problem and
DIRECTORY is provided, inversion will offer to download the file.
Optional argument RESERVED is saved for later use.
(defalias 'inversion-require #[(package version &optional file directory &rest reserved) "\305 \"\210\306\n\"\211\203 \f\203 \307\f\n$\210\202 \310!\210)\207" [package file version err directory require inversion-test inversion-download-package-ask error] 6 (#$ . 7771)])
#@127 Declare that you need either EMACS-VER, XEMACS-VER or SXEMACS-ver.
Only checks one based on which kind of Emacs is being run.
(defalias 'inversion-require-emacs #[(emacs-ver xemacs-ver sxemacs-ver) "\302\303\"\211\203 \304 !\202 \305)\207" [emacs-ver err inversion-test emacs error t] 4 (#$ . 8475)])
#@59 Regexp template and match data index of a version string.
(defconst inversion-find-data '("(def\\(var\\|const\\)\\s-+%s-%s\\s-+\"\\([^\"]+\\)" 2) (#$ . 8786))
#@542 Search for the version and incompatible version of PACKAGE.
Does not load PACKAGE nor requires that it has been previously loaded.
Search in the directories in `load-path' for a PACKAGE.el library.
Visit the file found and search for the declarations of variables or
constants `PACKAGE-version' and `PACKAGE-incompatible-version'. The
value of these variables must be a version string.
Return a pair (VERSION-STRING . INCOMPATIBLE-VERSION-STRING) where
INCOMPATIBLE-VERSION-STRING can be nil.
Return nil when VERSION-STRING was not found.
(defalias 'inversion-find-version #[(package) "\306\307\310\"\311\"\n@\nA@\312 \203R \313\314!rq\210\315\216\316 \312\317\320$\210eb\210\321\307\305#\312\311#\203Q \322\f!Ceb\210\321\307\323#\312\311#\203Q
\322\f!\241\210+
,\207" [package file inversion-find-data tag idx version locate-library format "%s.el" t nil generate-new-buffer " *temp*" #[nil "\301!\205 \302!\207" [#1=#:temp-buffer buffer-name kill-buffer] 2] insert-file-contents-literally 0 3000 re-search-forward match-string incompatible-version #1#] 5 (#$ . 8952)])
#@317 Add the PACKAGE path to `load-path' if necessary.
MINIMUM is the minimum version requirement of PACKAGE.
Optional argument INSTALLDIR is the base directory where PACKAGE is
installed. It defaults to `default-directory'/PACKAGE.
SUBDIRS are sub-directories to add to `load-path', following the main
INSTALLDIR path.
(defalias 'inversion-add-to-load-path #[(package minimum &optional installdir &rest subdirs) "\306!\211\203 \307 @ A\n#\205t \310\311 @\n$\205t \206&