Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
;ELC
;;; Compiled by leavens@LEAVENS on Mon Sep 15 16:19:46 2003
;;; from file d:/emacs/ecb/ecb-upgrade.el
;;; in Emacs version 21.3.1
;;; with bytecomp version 2.85.4.1
;;; with all optimizations.
;;; This file uses dynamic docstrings, first added in Emacs 19.29.
(if (and (boundp 'emacs-version)
(< (aref emacs-version (1- (length emacs-version))) ?A)
(or (and (boundp 'epoch::version) epoch::version)
(string-lessp emacs-version "19.29")))
(error "`ecb-upgrade.el' was compiled for Emacs 19.29 or later"))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(require 'ecb-util)
#@1651 Alist of all options which should be upgraded for current ECB-version.
There are several reasons why an option should be contained in this alist:
a) An old option has just be renamed in current-ECB version but has still the
same type of value so the new option should get the value of the old one.
b) An old option has changed its type and we try to transform the old-typed
value to the new type.
c) An old option has be renamed and also changed its type so we try to
transform the value of the old option to the type of the new option and set
the new option to this transformed value.
If an old option has changed its type and we can not savely transform the
old-value to the new type then this option should NOT be contained in this
alist! Such an option is auto. reset to the current default-value by
`ecb-upgrade-not-compatible-options'!
Every element of this alist has the following form:
The car is the old option symbol and the cdr is a 2-element-list with:
1. elem: The new option symbol (can be equal with the old option symbol, see
b) above)
2. elem: A function which converts the value of the old option to the new
option. If the type of the options is identical (i.e. only the option name
has been changed, see a) above) then this function should be `identity'
otherwise a function which gets one argument (the value of the old option)
and returns either a corresponding value for the new option with the new
correct type or the symbol 'ecb-no-upgrade-conversion if no correct
conversion can be performed! Maybe the function `ecb-option-get-value' can
be helpful within such a transforming-function.
(defconst ecb-upgradable-option-alist '((ecb-compile-window-temporally-enlarge ecb-compile-window-temporally-enlarge ecb-upgrade-compile-window-temporally-enlarge) (ecb-window-sync ecb-window-sync ecb-upgrade-window-sync) (ecb-hide-ecb-windows-hook ecb-hide-ecb-windows-before-hook identity) (ecb-show-ecb-windows-hook ecb-show-ecb-windows-before-hook identity) (ecb-layout-nr ecb-layout-name ecb-upgrade-layout-nr) (ecb-toggle-layout-sequence ecb-toggle-layout-sequence ecb-upgrade-toggle-layout-sequence) (ecb-major-modes-activate ecb-major-modes-activate ecb-upgrade-major-modes-activate) (ecb-cache-directory-contents ecb-cache-directory-contents ecb-upgrade-cache-directory-contents) (ecb-source-file-regexps ecb-source-file-regexps ecb-upgrade-source-file-regexps) (ecb-layout-always-operate-in-edit-window ecb-layout-always-operate-in-edit-window ecb-upgrade-alway-operate-in-edit-window) (ecb-truncate-lines ecb-truncate-lines ecb-upgrade-truncate-lines) (ecb-mode-line-prefixes ecb-mode-line-prefixes ecb-upgrade-mode-line-prefixes) (ecb-mode-line-data ecb-mode-line-data ecb-upgrade-mode-line-data) (ecb-use-speedbar-for-directories ecb-use-speedbar-instead-native-tree-buffer ecb-upgrade-use-speedbar-for-directories)) (#$ . 619))
(defalias 'ecb-upgrade-compile-window-temporally-enlarge #[(old-val) "\301\232\204\f \302\232\203 \303\207\204 \304\207\305\235\203 \207\306\207" [old-val t after-compilation after-display nil (after-selection both) ecb-no-upgrade-conversion] 2])
(defalias 'ecb-upgrade-window-sync #[(old-val) "\301\232\205\n \302\303\304\"\207" [old-val t ecb-option-get-value ecb-window-sync standard-value] 3])
(defalias 'ecb-upgrade-layout-nr2name #[(number) "\302\303 \"A)\207" [number-name-alist number ((nil . "left8") (0 . "left1") (1 . "left2") (2 . "left3") (3 . "left4") (4 . "left5") (5 . "right1") (6 . "left6") (7 . "top1") (8 . "left7") (9 . "left8") (10 . "top2") (11 . "left9") (12 . "left10") (13 . "left11") (14 . "left12") (15 . "left13") (16 . "left14") (17 . "left15") (18 . "leftright1") (19 . "leftright2") (20 . "speedbar1")) assoc] 3])
(defalias 'ecb-upgrade-layout-nr #[(old-val) "\302!\211;\203
\202 \303)\207" [old-val name ecb-upgrade-layout-nr2name ecb-no-upgrade-conversion] 3])
(defalias 'ecb-upgrade-toggle-layout-sequence #[(old-val) "\301\302\"\207" [old-val mapcar #[(elem) "\301!\207" [elem ecb-upgrade-layout-nr2name] 2]] 3])
(defalias 'ecb-upgrade-use-speedbar-for-directories #[(old-val) "\205 \301\207" [old-val dir] 1])
(defalias 'ecb-upgrade-major-modes-activate #[(old-val) "<\204 \207\304!\211\305\211\203/ @\211:\203( \nA\250\203( \n\306\nA!\241\210A\211\204 * )\207" [old-val l elem #1=#:--dolist-temp--47343 copy-tree nil ecb-upgrade-layout-nr2name] 5])
(defalias 'ecb-upgrade-cache-directory-contents #[(old-val) "\301\302\"\207" [old-val mapcar #[(elem) "@A@B\207" [elem] 2]] 3])
(defalias 'ecb-upgrade-source-file-regexps #[(old-val) "\301BC\207" [old-val ".*"] 2])
(defalias 'ecb-upgrade-truncate-lines #[(old-val) "\203 \301\207\302\207" [old-val (t t t t) (nil nil nil nil)] 1])
(defalias 'ecb-upgrade-alway-operate-in-edit-window #[(old-val) "\302!\303\304 \"\211)\207" [old-val l copy-tree delete switch-to-buffer-other-window] 4])
(defalias 'ecb-upgrade-mode-line-prefixes #[(old-val) "\301@B\302A@B\303\3048B\305\3068BF\207" [old-val ecb-directories-buffer-name ecb-sources-buffer-name ecb-methods-buffer-name 2 ecb-history-buffer-name 3] 6])
(defalias 'ecb-upgrade-mode-line-data #[(old-val) "\301@\302\232\203\f \303\202 @B\304A@\302\232\203 \303\202 A@B\305\3068\302\232\203- \307\2020 \3068B\310\3118BF\207" [old-val ecb-directories-buffer-name selected sel-dir ecb-sources-buffer-name ecb-methods-buffer-name 2 sel-source ecb-history-buffer-name 3] 6])
#@56 Save the ECB-option OPTION with current default value.
(defalias 'ecb-option-set-default #[(option) "\301\302\303\"\"\207" [option customize-save-variable ecb-option-get-value standard-value] 5 (#$ . 6073)])
#@1267 Upgrade the old ECB-option OLD-OPTION if the following conditions are ALL
true:
1. OLD-OPTION is the key of an element of `ecb-upgradable-option-alist'
2. 'saved-value of OLD-OPTION is not nil
3. Either
+ the new-option from `ecb-upgradable-option-alist' has the same name
as OLD-OPTION and
+ the type of the value of OLD-OPTION is not compatible with the current
type of OLD-OPTION (this prevents from doing an upgrade twice!)
or
+ OLD-OPTION is not a bound and valid option in current ECB and
+ The related new-option `ecb-upgradable-option-alist' is not already
customized, i.e. the 'saved-value of new-option is nil.
If all conditions are true then the value of OLD-OPTION is transformed by the
transforming-function of the related element of `ecb-upgradable-option-alist'
to the correct new type and then the related new option is saved with this new
value.
Return nil if no upgrade is necessary because at least one of the conditions
above is not true. Returns the transformed value of OLD-OPTION or
'ecb-no-upgrade-conversion in form of a list, to distinguish a transformed
value nil from the nil-result which indicates that no upgrade was necessary
(see above). This means the "real" new value is the car of this
result-list!
(defalias 'ecb-option-upgrade #[(old-option) "\304 \"A\305\211\205A @\232\203 \306!\203( \307!?\205A @\310N?\205A \310N\205A \305\311\312\217\211\313\232\204? \314@\n\"\210\nC*\207" [old-option ecb-upgradable-option-alist new-value upgrade-elem assoc nil ecb-option-compatible-p boundp saved-value (byte-code "A@\302 \303\"!\207" [upgrade-elem old-option ecb-option-get-value saved-value] 4) ((error 'ecb-no-upgrade-conversion)) ecb-no-upgrade-conversion customize-save-variable] 4 (#$ . 6291)])
#@109 Return not nil only if the type of the value of OPTION is compatible with
its current defcustom-definition.
(defalias 'ecb-option-compatible-p #[(option) "\301\302!\210\303\304\305N!\306J#\207" [option require cus-edit widget-apply widget-convert custom-type :match] 4 (#$ . 8073)])
#@287 This variable is only set by `ecb-check-not-compatible-options'! It is an
alist with car is the symbol of an incompatible option and the cdr is the not
compatible value of this option.
This option is evaluated by `ecb-upgrade-not-compatible-options' and
`ecb-display-upgraded-options'.
(defvar ecb-not-compatible-options nil (#$ . 8365))
#@134 Check for all ECB-options if their current value is compatible to the
defined type. If not store it in `ecb-not-compatible-options'.
(defalias 'ecb-check-not-compatible-options #[nil "\304\304\305\306!\210 \304\211\203+ @\307\310!\210\311\n!\204$ \n\211JBBA\211\204 +\304\207" [ecb-not-compatible-options ecb-options option #1=#:--dolist-temp--47344 nil mapatoms #[(symbol) "\302\303\304!\"\205 \305N\205 B\211\207" [symbol ecb-options string-match "ecb-" symbol-name custom-type] 4] require cus-edit ecb-option-compatible-p] 3 (#$ . 8710)])
#@306 Upgrade all not anymore compatible options of `ecb-not-compatible-options'.
If such an option is contained in `ecb-upgradable-option-alist' then try to
perform a special upgrade with `ecb-option-upgrade'. If no special upgrade is
done then the option is reset to the default-value of current ECB-version.
(defalias 'ecb-upgrade-not-compatible-options #[nil "\304\211\203( \n@\305 @!\211\203 @\306\232\203 \307 @!\210)\nA\211\204 *\304\207" [ecb-not-compatible-options option #1=#:--dolist-temp--47345 upgrade-result nil ecb-option-upgrade ecb-no-upgrade-conversion ecb-option-set-default] 3 (#$ . 9277)])
(byte-code "\301B\302\301!\204\f \303\303\207" [current-load-list ecb-renamed-options boundp nil] 2)
#@430 Upgrade all renamed options of `ecb-upgradable-option-alist' and store
every option in `ecb-renamed-options' if at least an upgrade was tried (see
`ecb-option-upgrade').
Note: This function upgrades only the renamed but not the incompatible options
(i.e. only the type but not the name of the option has changed) of
`ecb-upgradable-option-alist' because the latter ones will be upgraded by
`ecb-upgrade-not-compatible-options'!
(defalias 'ecb-upgrade-renamed-options #[nil "\306 \306\211\2036 @\307\n@\f\"\204/ \310\n@!\211\203. \n@\311\n@\312\"\nA@
@FB)A\211\204\n *\306\207" [ecb-renamed-options ecb-upgradable-option-alist option #1=#:--dolist-temp--47346 ecb-not-compatible-options new-value-list nil assoc ecb-option-upgrade ecb-option-get-value saved-value] 5 (#$ . 10003)])
#@69 Display a message-buffer which options have been upgraded or reset.
(defalias 'ecb-display-upgraded-options #[nil "\204 \203K\306\220\203 \307\310!\210\307\311!\210\312\211\203\213 @\313\n@!\nA\n@J \307\314 P!\210\307\315!\210\307\316
\312\232?\205T
\317\232?\205T
9\204S
<\205T \320\321
!Q!\210\307\315!\210\307\322\f\312\232?\205y \f\317\232?\205y \f9\204x \f<\205y \320\321\f!Q!\210\307\311!\210+A\211\204 * \203\230 \307\323!\210\307\311!\210 \312\211!\203>!@\313\n@!\nA@\313\324\n8!\325\n8\"#\307\326#P!\210\307\315!\210\307\327
\312\232?\205\340
\317\232?\205\340
9\204\337
<\205\340 \320\321
!Q!\210\307\315!\210\307\330\"P!\210\307\315!\210\307\331\f\332\232\203\321\324\n8J!\202#\f\312\232?\205\f\317\232?\205\f9\204\f<\205\320\321\f!PP!\210\f\332\232\2030\307\333!\210\307\311!\210,!A\211!\204\241 *\307\334!\210\307\311!\210\335 \221\207\336\337!\207" [ecb-not-compatible-options ecb-renamed-options option #1=#:--dolist-temp--47347 new-value old-value "*ECB upgraded options*" princ "The values of the following options are incompatible with current type.\nECB has tried to transform the old-value to the new type. In cases where\nthis was not possible ECB has reset to the current default-value." "\n\n" nil symbol-name "+ Option: " "\n" " Old value: " t "'" prin1-to-string " New value: " "The following options are not longer valid and have now new names. ECB has\ntried to transform the old value to the new option. In cases where this\nwas not possible the current default value is active!" 2 3 "+ Old option: " " Old value: " " New option: " " New value: " ecb-no-upgrade-conversion "\n (The old value couldn't be transformed - this is the current default!)" "If the new values are not what you want please re-customize!" print-help-return-message message "There were no incompatible or renamed options!" option-name #2=#:--dolist-temp--47348 new-option-name old-option-name] 7 (#$ . 10801) nil])
#@292 Check for all ECB-options if the current value is compatible to the type.
If not upgrade it to the new type or reset it to the default-value of current
ECB. Try also to upgrade renamed options. Displays all upgraded or reset
options with their old (before the upgrade/reset) and new values.
(defalias 'ecb-upgrade-options #[nil "\300 \210\301 \210\302 \210\303 \207" [ecb-check-not-compatible-options ecb-upgrade-not-compatible-options ecb-upgrade-renamed-options ecb-display-upgraded-options] 1 (#$ . 12782) nil])
(byte-code "\301B\306\302B\307\303B\310\304B\311\305B\312\313B\314\315B\316\315!\2042 \317
\317\207" [current-load-list ecb-required-semantic-version-min ecb-required-semantic-version-max ecb-required-eieio-version-min ecb-required-eieio-version-max ecb-required-speedbar-version-min (1 4 2 0) (1 4 3 9) (0 17 2 0) (0 17 3 9) (0 14 1 1) ecb-required-speedbar-version-max (0 15 3 9) ecb-all-requirements-available boundp nil] 2)
#@478 Ensure that we use the right `semantic-version' and right `eieio-version'
and offer to download them if not installed.
If JUST-CHECK is not nil then
1. Only the version check is done but no download
2. It returns nil if all requirements are correct, otherwise a list which
contains the symbol 'semantic if `semantic-version' is incorrect and 'eieio
if `eieio-version' is incorrect.
If called in non-interactive mode (e.g. in batch-mode) then JUST-CHECK is
always true.
(defalias 'ecb-check-requirements #[(&optional just-check) "\306\300!\203\n \205. ?\205.\307\n!\307!\307\f!\307
!\307;!\307?@ABCDEFGHIJKLM\306\311!\203j \312\313 !\n\"\204j \312\313 !\"\203{ \314M\315L\316\260F\317GBG\306\320!\203\225 \312\313!\f\"\204\225 \312
\313!\"\203\255 F\211\205\234 \321\322K\315J\316\260F\323GBG\306\324!\203\311 \312\313!;\"\204\311 \312<\313!\"\203\341 F\211\205\320 \321\325I\315H\316\260F\326GBGG\204\350 \327N\204\362 \330 \203\367 G\202,G\205,O\203 \331\220\332\333!\210\332\334!\210\332\335!\210\332\336!\210\332\337!\210\332\340!\210\332\341!\221\210\342\343\344F\"!\2042\345\346F\"\202,\347\310!\210\317G\235\204C\350D\202k\351\352P\n$C\353\352CP#\211E\203hC\203h\354C\355ER\202i\356D\323G\235\204x\350A\202\240\351\357P\f
$@\353\357@P#\211B\203\235@\203\235\354@\355BR\202\236\356A\326G\235\204\255\350>\202\327\351\360P;<$=\353\360=P#\211?\203\324=\203\324\354=\355?R\202\325\356>\331\220\332\361!\210\332\362M\315L\363\260!\210\332D!\210\332\364!\210\332\365K\315J\363\260!\210\332A!\210\332\364!\210\332\366I\315H\363\260!\210\332>!\210\332\367!\210\332\370!\210\332\371!\210\332\367!\221\210\345\372!.\207" [ecb-version-check ecb-all-requirements-available ecb-required-semantic-version-min ecb-required-semantic-version-max ecb-required-eieio-version-min ecb-required-eieio-version-max boundp ecb-package-version-list2str nil semantic-version ecb-package-version-list< ecb-package-version-str2list "semantic [" ", " "]" semantic eieio-version " and " "eieio [" eieio speedbar-version "speedbar [" speedbar t ecb-noninteractive "*ECB downloading and installing*" princ "Current ECB is installed as regular XEmacs package and not with the\n" "archive available at the ECB-website. So you should use the package-manager\n" "of XEmacs to get the required versions of semantic, eieio, speedbar and to\n" "install them also as regular XEmacs-packages! If you now proceed installing\n" "from the CEDET-website then the new versions will NOT be installed as\n" "regular XEmacs-package(s) but as \"flat\" package(s) parallel to the current\n" "ECB directory!\n\n" ecb-confirm format "ECB requires %s. Download now? " ecb-error "ECB can only be used with %s! Sorry!" message "Correct version already loaded!" ecb-package-get-matching-versions-str "semantic" ecb-package-download "Installed " " in " "Download- or installing-failure!" "eieio" "speedbar" "Current state of the required packages semantic and eieio:\n\n" "- semantic author-version must be [" "]:\n " "\n" "- eieio author-version must be [" "- speedbar author-version must be [" "\n\n" "After adding the new directories to your `load-path' and then restarting\n" "Emacs and ECB the new packages will be used.\n\n" "Please restart Emacs with the required packages!" ecb-required-speedbar-version-min ecb-required-speedbar-version-max speedbar-installed-version-str speedbar-state speedbar-dir eieio-installed-version-str eieio-state eieio-dir semantic-installed-version-str semantic-state semantic-dir version-error failed-result speedbar-required-version-str-max speedbar-required-version-str-min eieio-required-version-str-max eieio-required-version-str-min semantic-required-version-str-max semantic-required-version-str-min just-check ecb-regular-xemacs-package-p ecb-cedet-url] 18 (#$ . 13754)])
(custom-declare-group 'ecb-download nil "Settings for downloading and installing a new ECB from within ECB." :group 'ecb :prefix "ecb-")
#@245 *URL where download-able ECB-versions are located.
The ECB-archive-file (e.g. ecb-1.70.tar.gz) will be appended to this URL and
`ecb-download-ecb' will try to download this archive.
Note: Normally this URL should never change but who knows...
(custom-declare-variable 'ecb-download-url '"http://ftp1.sourceforge.net/ecb/" '(#$ . -17852) :group 'ecb-download :type 'string)
#@1229 *Version type ECB is allowed to download for upgrading.
If you want to upgrade to a newer ECB-version via `ecb-download-ecb' or if you
must upgrade to newer semantic- and/or eieio-versions (because ECB requires
these newer versions) then this option specifies which version-types are
allowed. ECB checks on the download-sites of ECB/semantic/eieio which versions
are currently available and then downloads always the latest version matching
the specified type:
2: Gets the newest version of all stable versions available.
1: Gets the newest version of all stable and beta versions available.
0: Gets the newest version of all stable, beta and alpha versions
available.
-1: Ask before downloading in the minibuffer for a version (TAB-completion
of all available versions is possible).
So, 2 means stable, 1 means stable and betas, 0 means stable, betas and alphas
and -1 means ask the user for a version.
Per default stable and beta-versions are allowed (value 1). This comes also
from the fact, that currently speedbar is only available in beta versions
which are very stable.
But all versions must match the restrictions of the specified min- and
max-versions of the required packages. For this see the file README!
(custom-declare-variable 'ecb-download-package-version-type '1 '(#$ . -18234) :group 'ecb-download :type '(radio (const :tag "Only stable versions" :value 2) (const :tag "Allow beta versions" :value 1) (const :tag "Allow alpha versions" :value 0) (const :tag "Ask for version" :value -1)))
#@320 *Parent directory where downloaded packages are installed.
ECB installs a downloaded package in this directory, i.e. the downloaded
archive X.tar.gz will be extracted in this directory so afterwards this
directory contains a new subdirectory X which contains the downloaded package.
This directory must be write-able!
(custom-declare-variable 'ecb-download-install-parent-dir '(or (and (file-writable-p ecb-ecb-parent-dir) ecb-ecb-parent-dir) "~") '(#$ . -19759) :group 'ecb-download :type 'directory)
#@321 *Should the downloaded archive be deleted after success or failure.
Possible values are:
- only-after-success: Archive is only deleted after successful installation
but not if a failure occurs during the installation process.
- always: Archive is also deleted if an error occurs.
- nil: Archive will never be deleted.
(custom-declare-variable 'ecb-download-delete-archive ''always '(#$ . -20269) :group 'ecb-download :type '(choice :tag "Delete archive" :menu-tag "Delete archive" (const :tag "After successful installation" only-after-success) (const :tag "Always" always) (const :tag "Never" nil)))
#@257 *URL where download-able CEDET-libraries are located.
ECB will try to download (if necessary) required versions of the libraries
needed by ECB: The CEDET libraries semantic, eieio and speedbar.
Note: Normally this URL should never change but who knows...
(custom-declare-variable 'ecb-cedet-url '"http://ftp1.sourceforge.net/cedet/" '(#$ . -20879) :group 'ecb-download :type 'string)
(byte-code "\301B\302\301\207" [current-load-list ecb-download-buffername " *ecb-download*"] 2)
(defalias 'ecb-create-shell-argument '(macro . #[(arg) "\301\302\303\304\301\305\306\307\310\311\312\313\314EDFD\315BBBEF\207" [arg if (eq system-type 'windows-nt) progn (require 'executable) (executable-find "cygpath.exe") ecb-trim ecb-subst-char-in-string 10 32 shell-command-to-string concat "cygpath -u " ((ecb-error "Cannot find the cygpath utility!"))] 14]))
#@378 Convert the version-str VER-STR to the internal version-list format with
the following elements of the version-list:
1. Major-version
2. Minor-version
3. 0 = alpha, 1 = beta, 2 = nothing (e.g. "1.4"), 3 = . (e.g. "1.4.3"
4. Subversion after the alpha, beta or .
Return nil if ver-str has not the required syntax:
.[.|beta|alpha][]
(defalias 'ecb-package-version-str2list #[(ver-str) "\302\303 \"\205O \304\305\306 \"!\304\305\307 \"!\305\310 \"\311\230\203\" \312\202= \305\310 \"\313\230\203/ \306\202= \305\310 \"\314\230\203<