;ELC   
;;; Compiled by buildd@akateko.buildd on Fri Oct 25 13:48:58 2013
;;; from file /build/buildd/emacs23-23.4+1/debian/build-x/lisp/cedet/inversion.el
;;; in Emacs version 23.4.1
;;; 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" (#$ . 545))
#@61 An earlier release which is incompatible with this release.
(defvar inversion-incompatible-version "0.1alpha1" (#$ . 625))
#@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]+\\)\\s-*\\.?alpha\\([0-9]+\\)?$" 3) (beta "^\\([0-9]+\\)\\.\\([0-9]+\\)\\s-*\\.?beta\\([0-9]+\\)?$" 3) (beta "^\\([0-9]+\\)\\.\\([0-9]+\\)\\s-*(beta\\([0-9]+\\)?)" 3) (prerelease "^\\([0-9]+\\)\\.\\([0-9]+\\)\\s-*\\.?pre\\([0-9]+\\)?$" 3) (full "^\\([0-9]+\\)\\.\\([0-9]+\\)$" 2) (fullsingle "^\\([0-9]+\\)$" 1) (patch "^\\([0-9]+\\)\\.\\([0-9]+\\) (patch \\([0-9]+\\))" 3) (point "^\\([0-9]+\\)\\.\\([0-9]+\\)\\.\\([0-9]+\\)$" 3) (build "^\\([0-9]+\\)\\.\\([0-9]+\\)\\.\\([0-9]+\\).\\([0-9]+\\)$" 4)) (#$ . 755))
#@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\203Z 	\204Z \307\n@A@\"\203S \306\310\n@8\311\fX\203C \f\224\2036 \312\f\224\f\225O!\2027 \311B\fT\211\202! \n\211\f@@)\237B+\202 \nA\211\204 	*\207" [inversion-decoders result decoders version-string count num-left nil string-match 2 1 string-to-number ver x] 5 (#$ . 1721)])
#@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\"\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 cannot be decoded"] 5 (#$ . 2243)])
#@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 (#$ . 2615)])
#@29 Convert CODE into a string.
(defalias 'inversion-recode #[(code) "@A@\3058\3068\211\307=\203 \310\211\202$ \f\311=\203$ \312\313\314\n\f	%,\207" [code p i n r 2 3 full "" point "." format "%s.%s%s%s"] 7 (#$ . 3057)])
#@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 (#$ . 3293)])
#@42 Return non-nil if VER1 is equal to VER2.
(defalias 'inversion-= #[(ver1 ver2) "	\232\207" [ver1 ver2] 2 (#$ . 3484)])
#@43 Return non-nil if VER1 is less than VER2.
(defalias 'inversion-< #[(ver1 ver2) "\306@!A@\3078\3108\3118\306	@!	A@\307	8\310	8\311	8\n\f\211\nU\203\\ U\203\\ \fU\203\\ \fU\203\\ \203\\ \n\203\\ \nW\206\252 \nU\203\202 U\203\202 \fU\203\202 \f\203\202 \203\202 \fW\206\252 U\203\220 \fW\206\252 W\206\252 \nW\205\252 U\205\252 \fU.\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] 12 (#$ . 3609)])
#@452 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 (#$ . 4125)])
#@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\2020 \310=\203! \311\312	#\2020 \313=\203/ \311\314	#\2020 \315)\207" [package minimum reserved check inversion-check-version inversion-package-version inversion-package-incompatibility-version nil outdated format "You need to upgrade package %s to %s" incompatible "Package %s version is not backward compatible with %s" "Inversion version check failed."] 6 (#$ . 5033)])
#@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\2020 \310=\203! \311\312	#\2020 \313=\203/ \311\314	#\2020 \315)\207" [package oldversion reserved check inversion-check-version inversion-package-version inversion-package-incompatibility-version nil outdated format "Package %s version %s is not compatible with current version" incompatible "Package %s version is not backward compatible with %s" "Inversion version check failed."] 6 (#$ . 5971)])
#@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 (#$ . 7090)])
#@115 Declare that you need either EMACS-VER, or XEMACS-VER.
Only checks one based on which kind of Emacs is being run.
(defalias 'inversion-require-emacs #[(emacs-ver xemacs-ver) "\302\303\"\211\203 \304	!\202 \305)\207" [emacs-ver err inversion-test emacs error t] 4 (#$ . 7794)])
#@59 Regexp template and match data index of a version string.
(defconst inversion-find-data '("(def\\(var\\|const\\)\\s-+%s-%s\\s-+\"\\([^\"]+\\)" 2) (#$ . 8081))
#@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!rq\210\315\216\316	\312\317\320$\210eb\210\321\307\305#\312\311#\203Q \322\f!Ceb\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*" ((byte-code "\301!\203\n \302!\210\301\207" [#1=#:temp-buffer buffer-name kill-buffer] 2)) insert-file-contents-literally 0 3000 re-search-forward match-string incompatible-version #1#] 5 (#$ . 8247)])
#@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& \312\313\314\"!\315\316\f!\203R \203M \312@!A\316!\203/ \317\320\"\210\202/ \317\320\f\"\210\306!\211\204` \321\322\"\210\307@A\n#\205s \321\323@#+)\207" [package ver minimum installdir default-directory subdir inversion-find-version inversion-check-version message "Outdated %s %s shadowed to meet minimum version %s" expand-file-name format "./%s" nil file-directory-p add-to-list load-path error "Failed to find version for newly installed %s" "Outdated %s %s just installed" subdirs newver] 6 (#$ . 9360)])
#@333 Get a list of distributions of PACKAGE from DIRECTORY.
DIRECTORY can be an ange-ftp compatible filename, such as:
 "/ftp@ftp1.sourceforge.net/pub/sourceforge/PACKAGE"
If it is a URL, wget will be used for download.
Optional argument VERSION will restrict the list of available versions
to the file matching VERSION exactly, or nil.
(defalias 'inversion-locate-package-files #[(package directory &optional version) "9\203	 \303!\304	\305\n\203 \306\307\n\310\260\202 #\207" [package directory version symbol-name directory-files t "^" "-" "\\>"] 8 (#$ . 10374)])
#@57 Common distribution mechanisms for Emacs Lisp packages.
(defvar inversion-package-common-tails '(".tar.gz" ".tar" ".zip" ".gz") (#$ . 10950))
#@300 Use `inversion-locate-package-files' to get a list of PACKAGE files.
DIRECTORY is the location where distributions of PACKAGE are.
VERSION is an optional argument specifying a version to restrict to.
The return list is an alist with the version string in the CAR,
and the full path name in the CDR.
(defalias 'inversion-locate-package-files-and-split #[(package directory &optional version) "9\203	 \306!\307	\n#\310\f\203f \f@\311!\310\203M \204M \312@\313P\"\203D GT\314\224OA\211\204) \204X \315\316\"\210BB\fA,\202 *\207" [package directory version out f file symbol-name inversion-locate-package-files nil file-name-nondirectory string-match "$" 0 error "Cannot decode version for %s" dist inversion-package-common-tails tails verstring] 5 (#$ . 11099)])
#@111 Due to ERR, offer to download PACKAGE from DIRECTORY.
The package should have VERSION available for download.
(defalias 'inversion-download-package-ask #[(err package directory version) "9\203	 \306!\307	\n#\211\204 \310\f!\202M \311\f\312P!\204' \310\f!\202M \313\314\315\"\316\"G\317V\203F \320\321\322	\316\323	!P\324&D\325@A\"))\207" [package directory version files err dest symbol-name inversion-locate-package-files-and-split error y-or-n-p ": Download update? " read-directory-name format "Download %s to: " t 1 "foo" read-file-name "Version to download: " file-name-as-directory nil copy-file] 9 (#$ . 11911)])
(provide 'inversion)
