;ELC ;;; compiled by kwzh@churchy.gnu.ai.mit.edu on Tue Jun 13 19:24:26 1995 ;;; from file /gd/gnu/emacs/19.0/lisp/files.el ;;; emacs version 19.28.94.2. ;;; bytecomp version FSF 2.10 ;;; optimization is on. ;;; this file uses opcodes which do not exist in Emacs 18. (if (and (boundp 'emacs-version) (or (and (boundp 'epoch::version) epoch::version) (string-lessp emacs-version "19.28.90"))) (error "`files.el' was compiled for Emacs 19.29 or later")) #@72 *Non-nil means delete auto-save file when a buffer is saved or killed. (defconst delete-auto-save-files t (#$ . -476)) #@549 *Alist of abbreviations for file directories. A list of elements of the form (FROM . TO), each meaning to replace FROM with TO when it appears in a directory name. This replacement is done when setting up the default directory of a newly visited file. *Every* FROM string should start with `^'. Do not use `~' in the TO strings. They should be ordinary absolute directory names. Use this feature when you have directories which you normally refer to via absolute symbolic links. Make TO the name of the link, and FROM the name it is linked to. (defconst directory-abbrev-alist nil (#$ . -602)) #@810 *Non-nil means make a backup of a file the first time it is saved. This can be done by renaming the file or by copying. Renaming means that Emacs renames the existing file so that it is a backup file, then writes the buffer into a new file. Any other names that the old file had will now refer to the backup file. The new file is owned by you and its group is defaulted. Copying means that Emacs copies the existing file into the backup file, then writes the buffer on top of the existing file. Any other names that the old file had will now refer to the new (edited) file. The file's owner and group are unchanged. The choice of renaming or copying is controlled by the variables `backup-by-copying', `backup-by-copying-when-linked' and `backup-by-copying-when-mismatch'. See also `backup-inhibited'. (defconst make-backup-files (byte-code "=?" [system-type vax-vms] 2) (#$ . -1207)) #@181 Non-nil means don't make a backup, regardless of the other parameters. This variable is intended for use by making it local to a buffer. But it is local only if you make it local. (defvar backup-inhibited nil (#$ . 2109)) (put (quote backup-inhibited) (quote permanent-local) t) #@110 *Non-nil means always use copying to create backup files. See documentation of variable `make-backup-files'. (defconst backup-by-copying nil (#$ . -2395)) #@213 *Non-nil means use copying to create backups for files with multiple names. This causes the alternate names to refer to the latest version as edited. This variable is relevant only if `backup-by-copying' is nil. (defconst backup-by-copying-when-linked nil (#$ . -2557)) #@389 *Non-nil means create backups by copying if this preserves owner or group. Renaming may still be used (subject to control of other variables) when it would not result in changing the owner or group of the file; that is, for files which are owned by you and whose group matches the default for a new file created there by you. This variable is relevant only if `backup-by-copying' is nil. (defconst backup-by-copying-when-mismatch nil (#$ . -2834)) #@152 Predicate that looks at a file name and decides whether to make backups. Called with an absolute file name as argument, it returns t to enable backup. (defvar backup-enable-predicate (quote (lambda (name) (or (< (length name) 5) (not (string-equal "/tmp/" (substring name 0 5)))))) (#$ . 3289)) #@140 *Non-nil in a buffer means offer to save the buffer on exit even if the buffer is not visiting a file. Automatically local in all buffers. (defconst buffer-offer-save nil (#$ . -3591)) (make-variable-buffer-local (quote buffer-offer-save)) #@211 *Non-nil means find a file under alternative names, in existing buffers. This means if any existing buffer is visiting the file you want under another name, you get the existing buffer instead of a new buffer. (defconst find-file-existing-other-name nil (#$ . -3838)) #@174 *Non-nil means visit a file under its truename. The truename of a file is found by chasing all links both at the file level and at the levels of the containing directories. (defconst find-file-visit-truename nil (#$ . -4113)) #@202 The abbreviated truename of the file visited in the current buffer. That is, (abbreviate-file-name (file-truename buffer-file-name)). This variable is automatically local in all buffers, when non-nil. (defvar buffer-file-truename nil (#$ . 4346)) (byte-code "!#" [make-variable-buffer-local buffer-file-truename put permanent-local t] 4) #@235 The device number and file number of the file visited in the current buffer. The value is a list of the form (FILENUM DEVNUM). This pair of numbers uniquely identifies the file. If the buffer is visiting a new file, the value is nil. (defvar buffer-file-number nil (#$ . 4699)) (byte-code "!#" [make-variable-buffer-local buffer-file-number put permanent-local t] 4) #@535 *Non-nil means protect against I/O errors while saving files. Some modes set this non-nil in particular buffers. This feature works by writing the new contents into a temporary file and then renaming the temporary file to replace the original. In this way, any I/O error in writing leaves the original untouched, and there is never any instant where the file is nonexistent. Note that this feature forces backups to be made by copying. Yet, at the same time, saving a precious file breaks any hard links between it and other files. (defconst file-precious-flag nil (#$ . -5081)) #@191 *Control use of version numbers for backup files. t means make numeric backup versions unconditionally. nil means make them for files that have some already. `never' means do not make them. (defvar version-control nil (#$ . -5669)) #@55 *When cleaning directory, number of versions to keep. (defvar dired-kept-versions 2 (#$ . -5907)) #@114 *If t, delete excess backup versions silently. If nil, ask confirmation. Any other value prevents any trimming. (defvar delete-old-versions nil (#$ . -6012)) #@72 *Number of oldest versions to keep when a new numbered backup is made. (defvar kept-old-versions 2 (#$ . -6177)) #@110 *Number of newest versions to keep when a new numbered backup is made. Includes the new backup. Must be > 0 (defvar kept-new-versions 2 (#$ . -6297)) #@186 *Value of t says silently ensure a file ends in a newline when it is saved. Non-nil but not t says ask user whether to add a newline when there isn't one. nil means don't add newlines. (defconst require-final-newline nil (#$ . -6455)) #@72 *Non-nil says by default do auto-saving of every file-visiting buffer. (defconst auto-save-default t (#$ . -6696)) #@134 *Non-nil says auto-save a buffer in the file it is visiting, when practical. Normally auto-save files are written under other names. (defconst auto-save-visited-file-name nil (#$ . -6818)) #@99 *Non-nil means save word abbrevs too when files are saved. Loading an abbrev file sets this to t. (defconst save-abbrevs nil (#$ . -7013)) #@74 *Non-nil says run dired if `find-file' is given the name of a directory. (defconst find-file-run-dired t (#$ . -7158)) #@247 List of functions to be called for `find-file' on nonexistent file. These functions are called as soon as the error is detected. `buffer-file-name' is already set up. The functions are called in the order given until one of them returns non-nil. (defvar find-file-not-found-hooks nil (#$ . 7284)) #@166 List of functions to be called after a buffer is loaded from a file. The buffer's local variables (if any) will have been processed before the functions are called. (defvar find-file-hooks nil (#$ . 7588)) #@402 List of functions to be called before writing out a buffer to a file. If one of them returns non-nil, the file is considered already written and the rest are not called. These hooks are considered to pertain to the visited file. So this list is cleared if you change the visited file name. See also `write-contents-hooks'. Don't make this variable buffer-local; instead, use `local-write-file-hooks'. (defvar write-file-hooks nil (#$ . 7801)) (put (quote write-file-hooks) (quote permanent-local) t) #@144 Just like `write-file-hooks', except intended for per-buffer use. The functions in this list are called before the ones in `write-file-hooks'. (defvar local-write-file-hooks nil (#$ . 8308)) (byte-code "!#" [make-variable-buffer-local local-write-file-hooks put permanent-local t] 4) #@403 List of functions to be called before writing out a buffer to a file. If one of them returns non-nil, the file is considered already written and the rest are not called. These hooks are considered to pertain to the buffer's contents, not to the particular visited file; thus, `set-visited-file-name' does not clear this variable, but changing the major mode does clear it. See also `write-file-hooks'. (defvar write-contents-hooks nil (#$ . 8607)) #@300 *Control use of local-variables lists in files you visit. The value can be t, nil or something else. A value of t means local-variables lists are obeyed; nil means they are ignored; anything else means query. The command \[normal-mode] always obeys local-variables lists and ignores this variable. (defconst enable-local-variables t (#$ . -9062)) #@300 *Control processing of the "variable" `eval' in a file's local variables. The value can be t, nil or something else. A value of t means obey `eval' variables; nil means ignore them; anything else means query. The command \[normal-mode] always obeys local-variables lists and ignores this variable. (defconst enable-local-eval (quote maybe) (#$ . -9417)) (byte-code "! \"!\"" [fboundp lock-buffer defalias ignore unlock-buffer] 3) (defalias 'ange-ftp-completion-hook-function #[(op &rest args) ">\f\f#=B\f\"*" [op (file-name-completion file-name-all-completions) apply ange-ftp-hook-function args ange-ftp-completion-hook-function inhibit-file-name-operation inhibit-file-name-handlers] 4]) #@37 Show the current default directory. (defalias 'pwd #[nil "\n\"" [message "Directory %s" default-directory] 3 (#$ . 10158) nil]) #@111 Value of the CDPATH environment variable, as a list. Not actually set up until the first time you you use it. (defvar cd-path nil (#$ . 10296)) #@48 Character used to separate concatenated paths. (defvar path-separator ":" (#$ . 10446)) #@61 Explode a colon-separated list of paths into a string list. (defalias 'parse-colon-path #[(cd-path) "9P\f#7 \f U?-\f O!!C \\ ," [cd-path nil 0 cd-colon cd-start cd-list cd-prefix path-separator string-match substitute-in-file-name file-name-as-directory 1] 6 (#$ . 10540)]) #@59 Change current directory to given absolute file name DIR. (defalias 'cd-absolute #[(dir) "=\n ! !! ! \" !& \n \"" [system-type vax-vms file-name-as-directory dir abbreviate-file-name expand-file-name file-directory-p error "%s is not a directory" file-executable-p default-directory "Cannot cd to %s: Permission denied"] 3 (#$ . 10857)]) #@206 Make DIR become the current buffer's default directory. If your environment includes a `CDPATH' variable, try each one of that colon-separated list of directories when resolving a relative directory name. (defalias 'cd #[(dir) " !\f !!\f!!C)ˍ?)!" [file-name-absolute-p dir cd-absolute expand-file-name cd-path parse-colon-path getenv "CDPATH" trypath "./" found (byte-code "\n\"Ç" [mapcar #[(x) " \nP! ! !\")" [expand-file-name x dir f file-directory-p cd-absolute throw found t] 3] cd-path nil] 3) error "No such directory found via CDPATH environment variable"] 4 (#$ . 11228) "FChange default directory: "]) #@32 Load the Lisp file named FILE. (defalias 'load-file #[(file) "\n!É$" [load expand-file-name file nil t] 5 (#$ . 11888) "fLoad file: "]) #@78 Load the library named LIBRARY. This is an interface to the function `load'. (defalias 'load-library #[(library) " !" [load library] 2 (#$ . 12035) "sLoad library: "]) #@135 Copy the file FILE into a temporary file on this machine. Returns the name of the local copy, or nil, if FILE is directly accessible. (defalias 'file-local-copy #[(file &optional buffer) " \" \")" [find-file-name-handler file file-local-copy handler] 4 (#$ . 12212)]) #@349 Return the truename of FILENAME, which should be absolute. The truename of a file name is found by chasing symbolic links both at the level of the file and at the level of the directories containing it, until no links are left at any level. The arguments COUNTER and PREV-DIRS are used only in recursive calls. Do not specify them in other calls. (defalias 'file-truename #[(filename &optional counter prev-dirs) "˜O˜(\"(!( 1C \f< L !\"\") \fYC\f9 @S @Wr\"\"\"5!ˉ!\f@\"\f@\"A \f#!\"#\f#\"B\f@B\"*!嚃!!!4!暃 !4!P!1!%*P4+)Y*" [filename "" "~" 0 1 string-match "~[^/]*" expand-file-name "/" counter 100 nil prev-dirs file-name-handler-alist copy-sequence tem delq rassq ange-ftp-completion-hook-function done error "Apparent cycle of symbolic links for %s" find-file-name-handler file-truename handler t file-name-directory default-directory dirfile target dir directory-file-name assoc file-name-as-directory new old file-name-nondirectory ".." "." file-symlink-p file-name-absolute-p] 7 (#$ . 12497)]) #@133 Chase links in FILENAME until a name that is not a link. Does not examine containing directories for links, unlike `file-truename'. (defalias 'file-chase-links #[(filename) "\n !Z\fU\n\" \"0 ljTO ǕOP \"M O !!!!!!0 !\"\fS +" [nil 100 filename newname count tem file-symlink-p 0 error "Apparent cycle of symbolic links for %s" string-match "//+" "\\`\\.\\./" 3 file-name-as-directory directory-file-name file-name-directory file-chase-links expand-file-name] 7 (#$ . 13733)]) #@41 Select buffer BUFFER in another window. (defalias 'switch-to-buffer-other-window #[(buffer) " \")" [t pop-up-windows pop-to-buffer buffer] 3 (#$ . 14266) "BSwitch to buffer in other window: "]) #@43 Switch to buffer BUFFER in another frame. (defalias 'switch-to-buffer-other-frame #[(buffer) " \" !!)" [t pop-up-frames pop-to-buffer buffer raise-frame window-frame selected-window] 3 (#$ . 14471) "BSwitch to buffer in other frame: "]) #@101 Edit file FILENAME. Switch to a buffer visiting file FILENAME, creating one if none already exists. (defalias 'find-file #[(filename) "\n!!" [switch-to-buffer find-file-noselect filename] 3 (#$ . 14724) "FFind file: "]) #@126 Edit file FILENAME, in another window. May create a new window, or reuse an existing one. See the function `display-buffer'. (defalias 'find-file-other-window #[(filename) "\n!!" [switch-to-buffer-other-window find-file-noselect filename] 3 (#$ . 14954) "FFind file in other window: "]) #@124 Edit file FILENAME, in another frame. May create a new frame, or reuse an existing one. See the function `display-buffer'. (defalias 'find-file-other-frame #[(filename) "\n!!" [switch-to-buffer-other-frame find-file-noselect filename] 3 (#$ . 15251) "FFind file in other frame: "]) #@137 Edit file FILENAME but don't allow changes. Like \[find-file] but marks buffer as read-only. Use \[toggle-read-only] to permit editing. (defalias 'find-file-read-only #[(filename) " !p" [find-file filename t buffer-read-only] 2 (#$ . 15543) "fFind file read-only: "]) #@168 Edit file FILENAME in another window but don't allow changes. Like \[find-file-other-window] but marks buffer as read-only. Use \[toggle-read-only] to permit editing. (defalias 'find-file-read-only-other-window #[(filename) " !p" [find-file-other-window filename t buffer-read-only] 2 (#$ . 15823) "fFind file read-only other window: "]) #@166 Edit file FILENAME in another frame but don't allow changes. Like \[find-file-other-frame] but marks buffer as read-only. Use \[toggle-read-only] to permit editing. (defalias 'find-file-read-only-other-frame #[(filename) " !p" [find-file-other-frame filename t buffer-read-only] 2 (#$ . 16173) "fFind file read-only other frame: "]) #@210 Find file FILENAME, select its buffer, kill previous buffer. If the current buffer now contains an empty file that you just visited (presumably by mistake), use this command to visit the file you really want. (defalias 'find-alternate-file #[(filename) "   \"!!p  \n \f ! Ҏ !)p=L!-" [buffer-modified-p buffer-file-name yes-or-no-p format "Buffer %s is modified; kill anyway? " buffer-name error "Aborted" buffer-file-number buffer-file-truename oname otrue onum ofile obuf rename-buffer " **lose**" nil ((byte-code "p=     !LJ" [obuf ofile buffer-file-name onum buffer-file-number otrue buffer-file-truename lock-buffer rename-buffer oname] 2)) unlock-buffer find-file filename kill-buffer] 5 (#$ . 16518) (byte-code "\f!\f!\n %+C" [buffer-file-name nil file-dir file-name file file-name-nondirectory file-name-directory read-file-name "Find alternate file: "] 7)]) #@208 Create a suitably named buffer for visiting FILENAME, and return it. FILENAME (sans directory) is used unchanged if that name is free; otherwise a string <2> or <3> or ... is appended to get an unused name. (defalias 'create-file-buffer #[(filename) " !Ø\f \n!)" [file-name-nondirectory filename lastname "" generate-new-buffer] 3 (#$ . 17477)]) #@114 Create and return a buffer with a name based on NAME. Choose the buffer's name using `generate-new-buffer-name'. (defalias 'generate-new-buffer #[(name) "\n!!" [get-buffer-create generate-new-buffer-name name] 3 (#$ . 17839)]) #@61 Regexp to match the automounter prefix in a directory name. (defconst automount-dir-prefix "^/tmp_mnt/" (#$ . 18075)) #@70 The user's homedir abbreviated according to `directory-abbrev-list'. (defvar abbreviated-home-dir nil (#$ . 18199)) #@204 Return a version of FILENAME shortened using `directory-abbrev-alist'. This also substitutes "~" for the user's home directory. Type \[describe-variable] directory-abbrev-alist RET for more information. (defalias 'abbreviate-file-name #[(filename) " \n\"\nŕSO!!\nŕSOA@@\n\"8@A\nŕOPA# T !!Q)  \n\"ŕUk\nHU=y= ׎\n\"*\nДЕO\nŕOQ\n)" [string-match automount-dir-prefix filename file-exists-p file-name-directory 0 nil directory-abbrev-alist tail abbreviated-home-dir "$foo" "^" abbreviate-file-name expand-file-name "~" "\\(/\\|$\\)" 1 47 system-type ms-dos windows-nt match-data match-data ((store-match-data match-data)) "^[a-zA-Z]:/$"] 6 (#$ . 18322)]) #@329 *List of logical names for which visiting shouldn't save the true dirname. On VMS, when you visit a file using a logical name that searches a path, you may or may not want the visited file name to record the specific directory where the file was found. If you *do not* want that, add the logical name to this list as a string. (defvar find-file-not-true-dirname-list nil (#$ . -19069)) #@225 Return the buffer visiting file FILENAME (a string). This is like `get-file-buffer', except that it checks for any buffer visiting the same file, possibly under a different name. If there is no such live buffer, return nil. (defalias 'find-buffer-visiting #[(filename) " ! !!  ? ? @q\n6 \f6 @) A *\f!    @q\n\n!\n! @) A W+*" [get-file-buffer filename abbreviate-file-name file-truename truename buf buffer-list nil found list buffer-file-name buffer-file-truename 10 file-attributes number buffer-file-number file-exists-p] 5 (#$ . 19463)]) #@234 Read file FILENAME into a buffer and return the buffer. If a buffer exists visiting FILENAME, return that one, but verify that the file has not changed since visited or saved. The buffer is not selected, just returned to the caller. (defalias 'find-file-noselect #[(filename &optional nowarn) "\n!!\n!\f\n!\n\"\n! \n!!  ! ?6\n!eW\n!W\n!#ae  = !=\n!\n\"=\n! ! !\n!\" !₱\n! !#!= q\")=\n!  ! q ꏈ +,-=/\n!\"\n!O//4)+ +!\n!56!4!8?\") -" [abbreviate-file-name expand-file-name filename file-directory-p find-file-run-dired dired-noselect error "%s is a directory." get-file-buffer buf file-truename truename 10 file-attributes number find-buffer-visiting other nil nowarn buffer-file-name message "%s and %s are the same file" find-file-existing-other-name find-file-visit-truename verify-visited-file-modtime file-exists-p "File %s no longer exists!" yes-or-no-p file-name-nondirectory buffer-name format buffer-modified-p "File %s changed on disk. Discard your edits? " "File %s changed on disk. Reread from disk? " "File %s changed on disk. Discard your edits in %s? " "File %s changed on disk. Reread from disk into %s? " revert-buffer t create-file-buffer set-buffer-major-mode erase-buffer (insert-file-contents filename t) ((file-error (byte-code "!" [run-hook-with-args-until-success find-file-not-found-hooks t error] 2))) buffer-file-truename buffer-file-number system-type vax-vms logical string-match ":" file-name-directory 0 find-file-not-true-dirname-list default-directory backup-enable-predicate make-local-variable backup-inhibited after-find-file] 6 (#$ . 20118)]) (byte-code "! B‡" [boundp after-find-file-from-revert-buffer nil current-load-list] 2) #@498 Called after finding a file and by the default revert function. Sets buffer mode, parses local variables. Optional args ERROR, WARN, and NOAUTO: ERROR non-nil means there was an error in reading the file. WARN non-nil means warn if there exists an auto-save file more recent than the visited file. NOAUTO means don't mess with auto-save mode. Fourth arg AFTER-FIND-FILE-FROM-REVERT-BUFFER non-nil means this call was from `revert-buffer'. Finishes by calling the functions in `find-file-hooks'. (defalias 'after-find-file #[(&optional error warn noauto after-find-file-from-revert-buffer) " !?  !ɂu\n<\n1 \"1͂uu΂uGςu!!T҂u !!bĉu !!!!tՂu։! #*!!!" [file-writable-p buffer-file-name buffer-read-only noninteractive nil not-serious error file-attributes t "File exists, but cannot be read." warn file-newer-than-file-p make-auto-save-file-name "Auto save file is newer; consider M-x recover-file" "(New file)" "Note: file is write protected" directory-file-name default-directory "File not found and directory write-protected" file-exists-p file-name-directory "Use M-x make-dir RET RET to create the directory" "Use C-u M-x make-dir RET RET to create directory and its parents" msg message sit-for 1 auto-save-default noauto auto-save-mode normal-mode run-hooks find-file-hooks] 6 (#$ . 22023)]) #@484 Choose the major mode for this buffer automatically. Also sets up any specified local variables of the file. Uses the visited file name, the -*- line, and the local variables spec. This function is called automatically from `find-file'. In that case, we may set up specified local variables depending on the value of `enable-local-variables': if it is t, we do; if it is nil, we don't; otherwise, we query. `enable-local-variables' is ignored if you run `normal-mode' explicitly. (defalias 'normal-mode #[(&optional find-file) " ŏǏ" [find-file default-major-mode fundamental-mode err (set-auto-mode) ((error (byte-code " !\"" [message "File mode specification error: %s" prin1-to-string err] 4))) (byte-code "?  )" [find-file enable-local-variables hack-local-variables] 1) ((error (byte-code " !\"" [message "File local-variables error: %s" prin1-to-string err] 4)))] 3 (#$ . 23435) nil]) #@538 Alist of filename patterns vs corresponding major mode functions. Each element looks like (REGEXP . FUNCTION) or (REGEXP FUNCTION NON-NIL). (NON-NIL stands for anything that is not nil; the value does not matter.) Visiting a file whose name matches REGEXP specifies FUNCTION as the mode function to use. FUNCTION will be called, unless it is nil. If the element has the form (REGEXP FUNCTION NON-NIL), then after calling FUNCTION (if it's not nil), we delete the suffix that matched REGEXP and search the list again for another match. (defvar auto-mode-alist (mapcar (quote purecopy) (quote (("\\.text\\'" . text-mode) ("\\.c\\'" . c-mode) ("\\.h\\'" . c-mode) ("\\.tex\\'" . tex-mode) ("\\.ltx\\'" . latex-mode) ("\\.el\\'" . emacs-lisp-mode) ("\\.mm\\'" . nroff-mode) ("\\.me\\'" . nroff-mode) ("\\.ms\\'" . nroff-mode) ("\\.man\\'" . nroff-mode) ("\\.scm\\'" . scheme-mode) ("\\.l\\'" . lisp-mode) ("\\.lisp\\'" . lisp-mode) ("\\.f\\'" . fortran-mode) ("\\.for\\'" . fortran-mode) ("\\.p\\'" . pascal-mode) ("\\.pas\\'" . pascal-mode) ("\\.mss\\'" . scribe-mode) ("\\.ada\\'" . ada-mode) ("\\.icn\\'" . icon-mode) ("\\.pl\\'" . prolog-mode) ("\\.cc\\'" . c++-mode) ("\\.hh\\'" . c++-mode) ("\\.C\\'" . c++-mode) ("\\.H\\'" . c++-mode) ("\\.cpp\\'" . c++-mode) ("\\.cxx\\'" . c++-mode) ("\\.hxx\\'" . c++-mode) ("\\.c\\+\\+\\'" . c++-mode) ("\\.h\\+\\+\\'" . c++-mode) ("\\.texinfo\\'" . texinfo-mode) ("\\.texi\\'" . texinfo-mode) ("\\.s\\'" . asm-mode) ("ChangeLog\\'" . change-log-mode) ("change.log\\'" . change-log-mode) ("changelo\\'" . change-log-mode) ("ChangeLog.[0-9]+\\'" . change-log-mode) ("\\$CHANGE_LOG\\$\\.TXT" . change-log-mode) ("\\.[12345678]\\'" . nroff-mode) ("\\.TeX\\'" . tex-mode) ("\\.sty\\'" . latex-mode) ("\\.cls\\'" . latex-mode) ("\\.bbl\\'" . latex-mode) ("\\.bib\\'" . bibtex-mode) ("\\.article\\'" . text-mode) ("\\.letter\\'" . text-mode) ("\\.tcl\\'" . tcl-mode) ("\\.lsp\\'" . lisp-mode) ("\\.awk\\'" . awk-mode) ("\\.prolog\\'" . prolog-mode) ("\\.tar\\'" . tar-mode) ("^/tmp/Re" . text-mode) ("/Message[0-9]*\\'" . text-mode) ("/drafts/[0-9]+\\'" . mh-letter-mode) ("^/tmp/fol/" . text-mode) ("\\.y\\'" . c-mode) ("\\.lex\\'" . c-mode) ("\\.oak\\'" . scheme-mode) ("\\.scm.[0-9]*\\'" . scheme-mode) ("\\.sgm\\'" . sgml-mode) ("\\.sgml\\'" . sgml-mode) ("\\.dtd\\'" . sgml-mode) ("[]>:/]\\..*emacs\\'" . emacs-lisp-mode) ("[:/]_emacs\\'" . emacs-lisp-mode) ("\\.ml\\'" . lisp-mode)))) (#$ . 24368)) #@294 Alist mapping interpreter names to major modes. This alist applies to files whose first line starts with `#!'. Each element looks like (INTERPRETER . MODE). The car of each element is compared with the name of the interpreter specified in the first line. If it matches, mode MODE is selected. (defconst interpreter-mode-alist (quote (("perl" . perl-mode) ("wish" . tcl-mode) ("wishx" . tcl-mode) ("tcl" . tcl-mode) ("tclsh" . tcl-mode) ("awk" . awk-mode) ("gawk" . awk-mode) ("scm" . scheme-mode))) (#$ . 26816)) #@68 List of regexps; if one matches a file name, don't look for `-*-'. (defconst inhibit-first-line-modes-regexps (quote ("\\.tar\\'")) (#$ . 27335)) #@218 List of regexps for what to ignore, for `inhibit-first-line-modes-regexps'. When checking `inhibit-first-line-modes-regexps', we first discard from the end of the file name anything that matches one of these regexps. (defconst inhibit-first-line-modes-suffixes nil (#$ . 27488)) #@62 File name including directory of user's initialization file. (defvar user-init-file "" (#$ . 27773)) #@466 Select major mode appropriate for current buffer. This checks for a -*- mode tag in the buffer's text, compares the filename against the entries in `auto-mode-alist', or checks the interpreter that runs this file against `interpreter-mode-alist'. It does not check for the `mode:' local variable in the Local Variables section of the file; for that, use `hack-local-variables'. If `enable-local-variables' is nil, this function does not check for a -*- mode tag. (defalias 'set-auto-mode #[nil "ebw  !\" \n \f A @\n\"A A . )R\nωO\n& j @\n\"j A W *ъ!z`)#w`ъ`)#ux` b\n#)!ϕb\n#)w`\n#u\nbx `{P!  \n{P!  ?!\n\n!\n!!\"#$%>#q$q$@@\n\"i$@A:`$@8`$@A@#\nωO\n!i$@A#!$A$&)#~# eb!{)*++!.\"**A ***," [nil done end beg " \n" enable-local-variables inhibit-first-line-modes-regexps buffer-file-name file-name-sans-versions buffer-name name temp inhibit-first-line-modes-suffixes sufs string-match 0 search-forward "-*-" looking-at "^#!" 2 t " " -3 ":" case-fold-search "mode:" re-search-forward "[ ;]mode:" ";" -1 intern "-mode" keep-going auto-mode-alist mode alist system-type (vax-vms windows-nt) "#! *\\([^ \n]+\\)" 1 "" elt interpreter assoc file-name-nondirectory interpreter-mode-alist] 5 (#$ . 27881)]) (defalias 'hack-local-variables-prop-line #[nil "eb! `)\f#w!w\f#1`Z5!)`\fWt!F!ϕbєѕ{!`\f}p!)=lB Bw*6  =؋ @@ @A\" A+" [nil looking-at "^#!" 2 end result search-forward "-*-" t "[ ]*\\([^ \n :;]+\\)\\([ ]*-\\*-\\)" 3 error "-*- not terminated before end of line" "[ ]*\\([^ \n:]+\\)[ ]*:[ ]*" "malformed -*- line" 0 intern 1 read val key mode " ;" enable-local-variables ((byte-code "!\"!" [nil (byte-code "p!" [switch-to-buffer] 2) ((error (byte-code "" [nil (byte-code "p!" [switch-to-buffer-other-window] 2) ((error (byte-code "p!" [switch-to-buffer-other-frame] 2)))] 3))) y-or-n-p format "Set local variables as specified in -*- line of %s? " file-name-nondirectory buffer-file-name] 5)) hack-one-local-variable] 5]) #@192 Normal hook run after processing a file's local variables specs. Major modes can use this to examine user-specified local variables in order to initialize other data structure based on them. (defvar hack-local-variables-hook nil (#$ . 30210)) #@63 Parse and put into effect this buffer's local variables spec. (defalias 'hack-local-variables #[nil " dbdZe]##*\n=*\n*ˋ)ɉ\f\f wlQ``{Ӕbna`y`{qG!~!P!y!u!w` wl!x `{!!\"㘃\fwup!\"xw!l!!\"\"+~.)!" [hack-local-variables-prop-line search-backward "\n\f" 3000 move t case-fold-search search-forward "Local Variables:" nil enable-local-variables ((byte-code "p!y `\")!\" P\"!" [switch-to-buffer 0 set-window-start selected-window y-or-n-p format "Set local variables as specified at end of %s? " buffer-file-name file-name-nondirectory "buffer " buffer-name] 5)) enable-local-eval beg suffix prefixlen prefix continue " " 0 regexp-quote "$" selective-display re-search-forward "[\n ]" 1 looking-at error "Local variables entry is missing the prefix" "^:\n" "Missing colon in local variables entry" str read var val "end" "^:" "\n" "Local variables entry is terminated incorrectly" hack-one-local-variable run-hooks hack-local-variables-hook] 6 (#$ . 30459)]) #@58 Variables to be ignored in a file's local variable spec. (defconst ignored-local-variables (quote (enable-local-eval)) (#$ . 31639)) (byte-code "#################" [put debugger risky-local-variable t enable-local-eval ignored-local-variables eval file-name-handler-alist minor-mode-map-alist after-load-alist buffer-file-name buffer-auto-save-file-name buffer-file-truename exec-path load-path exec-directory process-environment outline-level rmail-output-file-alist compile-command safe-local-variable] 4) (defalias 'hack-one-local-variable-quotep #[(exp) ":@=A:" [exp quote] 2]) (defalias 'hack-one-local-variable #[(var val) "=\f!P! >LJN.!\"N=i\f:i\f@=i\fA@!i\f8!i\f8_\f8њi\f8A@> U=׋=\f!)!\fL!!\fL" [var mode intern symbol-name val "-mode" ignored-local-variables nil risky-local-variable string-match "-hooks?$\\|-functions?$\\|-forms?$\\|-program$\\|-command$" safe-local-variable eval put hack-one-local-variable-quotep 2 3 (quote defun) (lisp-indent-hook) user-uid 0 enable-local-eval t ((byte-code "p!y `\")!\"! " [switch-to-buffer 0 set-window-start selected-window y-or-n-p format "Process `eval' or hook local variables in file %s? " file-name-nondirectory buffer-file-name enable-local-eval] 5)) make-local-variable message "Ignoring `eval:' in file's local variables"] 4]) #@321 Change name of file visited in current buffer to FILENAME. The next time the buffer is saved it will go in the newly specified file. nil or empty string as argument means make buffer not be visiting any file. Remember to delete the initial contents of the minibuffer if you wish to pass an empty string as the argument. (defalias 'set-visited-file-name #[(filename) " !  Ƙ? ! ) ! )\f \n; 8 ! \n s\n!ƘR!=^\n! r\") \f\f! \n!8)!!!!#$!%\n!!\"'('\n)! '('(!('#)\n!" [buffer-base-buffer error "An indirect buffer cannot visit a file" nil truename filename "" expand-file-name file-truename find-file-visit-truename buffer-file-name lock-buffer unlock-buffer file-name-nondirectory new-name "Empty file name" system-type vax-vms file-name-directory default-directory buffer-name rename-buffer t buffer-backed-up clear-visited-file-modtime abbreviate-file-name buffer-file-truename 10 file-attributes buffer-file-number kill-local-variable write-file-hooks local-write-file-hooks revert-buffer-function backup-inhibited vc-mode buffer-read-only backup-enable-predicate make-local-variable buffer-auto-save-file-name oauto auto-save-default auto-save-mode make-auto-save-file-name file-exists-p rename-file set-buffer-modified-p] 5 (#$ . 33148) "FSet visited file name: "]) #@341 Write current buffer into file FILENAME. Makes buffer visit that file, and marks it not modified. If the buffer is already visiting a file, you can specify a directory name as FILENAME, to write a file of the same old name in that directory. If optional second arg CONFIRM is non-nil, ask for confirmation for overwriting an existing file. (defalias 'write-file #[(filename &optional confirm) "88! ! !P4!4\"!4!!! " [filename "" file-directory-p buffer-file-name file-name-as-directory file-name-nondirectory confirm file-exists-p y-or-n-p format "File `%s' exists; overwrite? " error "Canceled" set-visited-file-name set-buffer-modified-p t save-buffer] 4 (#$ . 34592) (list (if buffer-file-name (read-file-name "Write file: " nil nil nil nil) (read-file-name "Write file: " (cdr (assq (quote default-directory) (buffer-local-variables))) nil nil (buffer-name))) t)]) #@344 Make a backup of the disk file visited by the current buffer, if appropriate. This is normally done before saving the buffer the first time. If the value is non-nil, it is the result of `file-modes' on the original file; this means that the caller, after saving the buffer, should change the modes of the new file to agree with the old modes. (defalias 'backup-buffer #[nil "N ?N\n?N\f!N\f!ƜH>N\fɉ\n \f !! @\f A  Mҏ-" [make-backup-files backup-inhibited buffer-backed-up file-exists-p buffer-file-name file-attributes 8 0 (45 108) nil setmodes targets backupname backup-info real-file-name file-chase-links find-backup-file-name (byte-code " = = \"!ɏ\n 88̏A, )" [targets delete-old-versions t nil y-or-n-p format "Delete excess backup versions of %s? " real-file-name (byte-code "- -\n\f!V-5\f!8)\f!?)5͏B\f#!ˇ" [file-precious-flag backup-by-copying backup-by-copying-when-linked file-nlinks real-file-name 1 backup-by-copying-when-mismatch file-attributes attr 9 file-ownership-preserved-p nil (byte-code " \nÉ$" [copy-file real-file-name backupname t] 5) ((file-error (byte-code " ! ! ! Ɖ$" [file-exists-p backupname file-writable-p delete-file copy-file real-file-name t] 5))) rename-file backupname t file-modes setmodes] 4) ((file-error (byte-code "!!!ɏ" [expand-file-name "~/%backup%~" backupname message "Cannot write backup file; backing up in ~/%%backup%%~" sleep-for 1 nil (byte-code " \nÉ$" [copy-file real-file-name backupname t] 5) ((file-error (byte-code " ! ! ! Ɖ$" [file-exists-p backupname file-writable-p delete-file copy-file real-file-name t] 5)))] 3))) buffer-backed-up (byte-code " @!" [delete-file targets] 2) ((file-error)) setmodes] 5) ((file-error))] 6 (#$ . 35512)]) #@260 Return FILENAME sans backup versions or strings. This is a separate procedure so your site-init or startup file can redefine it. If the optional argument KEEP-BACKUP-VERSION is non-nil, we do not remove backup version numbers, only true file version numbers. (defalias 'file-name-sans-versions #[(name &optional keep-backup-version) " \" \f#L =2 \"K \"-˔K GK\f; GK \"K \"K GO)" [find-file-name-handler name file-name-sans-versions handler keep-backup-version 0 system-type vax-vms string-match ";[-+]?[0-9]*\\'" "\\.[^]>:]*\\(\\.[-+]?[0-9]*\\)\\'" 1 "\\.~[0-9]+~\\'" "~\\'"] 6 (#$ . 37393)]) #@71 Returns t if deleting FILE and rewriting it would preserve the owner. (defalias 'file-ownership-preserved-p #[(file) " \" \" !? 8 U))" [find-file-name-handler file file-ownership-preserved-p handler file-attributes attributes 2 user-uid] 4 (#$ . 38034)]) #@111 Return FILENAME sans final "extension". The extension, in a file name, is the part that follows the last `.'. (defalias 'file-name-sans-extension #[(filename) " Ž !!\"6 !-͉O\"7͉O7 ," [match-data match-data ((store-match-data match-data)) file-name-sans-versions file-name-nondirectory filename nil directory file string-match "\\.[^.]*\\'" file-name-directory expand-file-name 0] 4 (#$ . 38317)]) #@121 Create the non-numeric backup file name for FILE. This is a separate function so you can redefine it for customization. (defalias 'make-backup-file-name #[(file) "= ! !\f\"\fɕOQ) P" [system-type ms-dos file-name-nondirectory file fn file-name-directory string-match "\\([^.]*\\)\\(\\..*\\)?" 0 1 ".bak" "~"] 4 (#$ . 38759)]) #@194 Return non-nil if FILE is a backup file name (numeric or not). This is a separate function so you can redefine it for customization. You may need to redefine `file-name-sans-versions' as well. (defalias 'backup-file-name-p #[(file) "= \f\"\f\"" [system-type ms-dos string-match "\\.bak$" file "~$"] 3 (#$ . 39110)]) #@181 Given the name of a numeric backup file, return the backup number. Uses the free variable `bv-length', whose value should be the index in the name where the version number begins. (defalias 'backup-extract-version #[(fn) "\n #Ĕ U\n O!ć" [string-match "[0-9]+~$" fn bv-length 0 string-to-int -1] 4 (#$ . 39443)]) #@235 Find a file name for a backup file, and suggestions for deletions. Value is a list whose car is the name for the backup file and whose cdr is a list of old versions to consider deleting now. If the value is nil, don't make a backup. (defalias 'find-backup-file-name #[(fn) " \" \"}\f= !C} !P G\n\f ӏH !C{ T!RVz\\\\Yz Sˡ)\"B.)" [find-file-name-handler fn find-backup-file-name handler version-control never make-backup-file-name file-name-nondirectory ".~" base-versions bv-length nil possibilities versions 0 high-water-mark deserve-versions-p number-to-delete (byte-code " !\"\f\"\"  # ! V GZZZ" [file-name-all-completions base-versions file-name-directory fn possibilities sort mapcar backup-extract-version < versions apply max 0 high-water-mark version-control deserve-versions-p kept-old-versions kept-new-versions -1 number-to-delete] 4) ((file-error (byte-code "" [nil possibilities] 1))) int-to-string "~" kept-new-versions kept-old-versions -1 mapcar #[(n) " !R" [fn ".~" int-to-string n "~"] 4] v] 6 (#$ . 39775)]) #@43 Return number of names file FILENAME has. (defalias 'file-nlinks #[(filename) " !A@" [file-attributes filename] 2 (#$ . 40932)]) #@76 Convert FILENAME to be relative to DIRECTORY (default: default-directory). (defalias 'file-relative-name #[(filename &optional directory) " ! \f!! !P \", O!P ˕OP)" [expand-file-name filename file-name-as-directory directory default-directory "" ancestor string-match "^" regexp-quote file-name-directory 0 -1 "../" nil] 4 (#$ . 41069)]) #@1266 Save current buffer in visited file if modified. Versions described below. By default, makes the previous version into a backup file if previously requested or if this is the first save. With 1 or 3 \[universal-argument]'s, marks this version to become a backup when the next save is done. With 2 or 3 \[universal-argument]'s, unconditionally makes the previous version into a backup file. With argument of 0, never makes the previous version into a backup file. If a file's name is FOO, the names of its numbered backup versions are FOO.~i~ for various integers i. A non-numbered backup file is called FOO~. Numeric backups (rather than FOO~) will be made if value of `version-control' is not the atom `never' and either there are already numeric versions of the file being backed up, or `version-control' is non-nil. We don't want excessive versions piling up, so there are variables `kept-old-versions', which tells Emacs how many oldest versions to keep, and `kept-new-versions', which tells how many newest versions to keep. Defaults are 2 old versions and 2 new. `dired-kept-versions' controls dired's clean-directory (.) command. If `delete-old-versions' is nil, system will query user before trimming versions. Otherwise it does it silently. (defalias 'save-buffer #[(&optional args) " V \f=?\f>&\f>& 66 \" H\f>Hʉ +" [buffer-modified-p buffer-size 50000 make-backup-files args 0 (16 64) large modp (16 64) nil buffer-backed-up message "Saving file %s..." buffer-file-name basic-save-buffer (4 64)] 5 (#$ . 41447) "p"]) #@213 Delete auto-save file for current buffer if `delete-auto-save-files' is t. Normally delete only if the file was written by this Emacs since the last real save, but optional arg FORCE non-nil means delete anyway. (defalias 'delete-auto-save-file-if-necessary #[(&optional force) " \n?  Ǐ " [buffer-auto-save-file-name delete-auto-save-files buffer-file-name force recent-auto-save-p nil (delete-file buffer-auto-save-file-name) ((file-error)) set-buffer-auto-saved] 3 (#$ . 43045)]) #@71 Save the current buffer in its visited file, if it has been modified. (defalias 'basic-save-buffer #[nil " \n q É=J  !J  !  !  !  !) !) X!\"!p!u !u !\"!u!~dVdSfU=dSfU\"=\" \"!dbc)!!!  !8+ 폈)!!+!)" [buffer-base-buffer buffer-modified-p recent-auto-save-p nil tempsetmodes setmodes recent-save system-type vax-vms buffer-file-name file-name-sans-versions buffer-new-name create-file-buffer buf buffer-name kill-buffer rename-buffer set-visited-file-name expand-file-name read-file-name "File to save in: " verify-visited-file-modtime file-exists-p yes-or-no-p format "%s has changed since visited or saved. Save anyway? " file-name-nondirectory error "Save not confirmed" 1 10 selective-display t 13 require-final-newline y-or-n-p "Buffer %s does not end in newline. Add one? " run-hook-with-args-until-success write-contents-hooks local-write-file-hooks write-file-hooks basic-save-buffer-1 file-attributes buffer-file-number (set-file-modes buffer-file-name setmodes) ((error)) delete-auto-save-file-if-necessary run-hooks after-save-hook message "(No changes need to be saved)"] 5 (#$ . 43558) nil]) (defalias 'basic-save-buffer-1 #[nil "\f!C\f!!\"B\f!.\"B\f!\"!>B!)K \f!!\f #!Txߎ ed%)\f!\f#.\n \f!\f\"ed\f%) *" [nil setmodes tempsetmodes file-writable-p buffer-file-name file-name-directory dir file-directory-p error "%s is not a directory" file-exists-p "Directory %s write-protected" yes-or-no-p format "File %s is write-protected; try to save anyway? " file-name-nondirectory t "Attempt to save to a file which you aren't allowed to write" buffer-backed-up backup-buffer file-precious-flag visited-file-modtime old-modtime succeed i nogood temp tempname realname 0 "%s#tmp#%d" ((byte-code "\f\n!\f!" [succeed delete-file tempname set-visited-file-modtime old-modtime] 2)) clear-visited-file-modtime write-region file-modes rename-file set-file-modes 511] 7]) #@249 Save some modified file-visiting buffers. Asks user about each one. Optional argument (the prefix) non-nil means save all with no questions. Optional second argument EXITING means ask about certain non-file buffers as well as about file buffers. (defalias 'save-some-buffers #[(&optional arg exiting) "" [((byte-code " EC%- -\n%\"!)! V??!*" [map-y-or-n-p #[(buffer) " !? !?? !%\f? q ? V?,ɇ !9 !\" !\"" [buffer-modified-p buffer buffer-base-buffer buffer-file-name exiting buffer-offer-save buffer-size 0 arg t format "Save file %s? " "Save buffer %s? " buffer-name] 4] #[(buffer) "q " [buffer save-buffer] 1] buffer-list ("buffer" "buffers" "save") 18 #[(buf) " ! Ň" [view-buffer buf (lambda (ignore) (exit-recursive-edit)) view-exit-action recursive-edit nil] 2] "display the current buffer" save-abbrevs abbrevs-changed arg y-or-n-p format "Save abbrevs in %s? " abbrev-file-name write-abbrev-file nil t abbrevs-done files-done 0 message "(No files need saving)"] 9))] 1 (#$ . 45749) "P"]) #@280 Mark current buffer as unmodified, not needing to be saved. With prefix arg, mark buffer as modified, so \[save-buffer] will save. It is not a good idea to use this function in Lisp programs, because it prints a message in the minibuffer. Instead, use `set-buffer-modified-p'. (defalias 'not-modified #[(&optional arg) " ‚\n! !" [message arg "Modification-flag set" "Modification-flag cleared" set-buffer-modified-p] 2 (#$ . 46844) "P"]) #@105 Change whether this buffer is visiting its file read-only. With arg, set read-only iff arg is positive. (defalias 'toggle-read-only #[(&optional arg) " ?!V " [arg buffer-read-only prefix-numeric-value 0 force-mode-line-update] 2 (#$ . 47301) "P"]) #@278 Insert contents of file FILENAME into buffer after point. Set mark after the inserted text. This function is meant for the user to run interactively. Don't call it from programs! Use `insert-file-contents' instead. (Its calling sequence is different; see its documentation). (defalias 'insert-file #[(filename) " ! E\" !`A@\\!)" [file-directory-p filename signal file-error "Opening input file" "file is a directory" insert-file-contents tem push-mark] 5 (#$ . 47569) "*fInsert file: "]) #@206 Append the contents of the region to the end of file FILENAME. When called from a function, expects three arguments, START, END and FILENAME. START and END are buffer positions saying what text to write. (defalias 'append-to-file #[(start end filename) " \n $" [write-region start end filename t] 5 (#$ . 48082) "r\nFAppend to file: "]) #@73 Return most recent backup file for FILENAME or nil if no backups exist. (defalias 'file-newest-backup #[(filename) " ! ! ! \" > @PA ! 8  \"   -" [expand-file-name filename file-name-nondirectory file file-name-directory dir file-name-all-completions comp nil newest backup-file-name-p file-newer-than-file-p] 3 (#$ . 48429)]) #@159 Rename current buffer to a similar name not already taken. This function is useful for creating multiple shell process buffers or multiple mail buffers, etc. (defalias 'rename-uniquely #[nil " Ž \"% !% ȉO'   !  !\f !\f! -" [match-data match-data ((store-match-data match-data)) string-match "<[0-9]+>\\'" buffer-name buffer-file-name file-name-nondirectory 0 base-name generate-new-buffer new-buf name kill-buffer rename-buffer force-mode-line-update] 3 (#$ . 48803) nil]) #@358 Create the directory DIR and any nonexistent parent dirs. Interactively, the default choice of directory to create is the current default directory for file names. That is useful when you have visited a file in a nonexistint directory. Noninteractively, the second (optional) argument PARENTS says whether to create parent directories if they don't exist. (defalias 'make-directory #[(dir &optional parents) " \" \f#O\f !O !!  !9  B !!$ N @! A >*)" [find-file-name-handler dir make-directory handler parents make-directory-internal directory-file-name expand-file-name nil create-list file-exists-p file-name-directory] 5 (#$ . 49324) (list (read-file-name "Make directory: " default-directory default-directory nil nil) t)]) (put (quote revert-buffer-function) (quote permanent-local) t) #@184 Function to use to revert this buffer, or nil to do the default. The function receives two arguments IGNORE-AUTO and NOCONFIRM, which are the arguments that `revert-buffer' received. (defvar revert-buffer-function nil (#$ . 50167)) (put (quote revert-buffer-insert-file-contents-function) (quote permanent-local) t) #@160 Function to use to insert contents when reverting this buffer. Gets two args, first the nominal file name to use, and second, t if reading the auto-save file. (defvar revert-buffer-insert-file-contents-function nil (#$ . 50490)) #@158 Normal hook for `revert-buffer' to run before reverting. If `revert-buffer-function' is used to override the normal revert mechanism, this hook is not used. (defvar before-revert-hook nil (#$ . 50726)) #@311 Normal hook for `revert-buffer' to run after reverting. Note that the hook value that it runs is the value that was in effect before reverting; that makes a difference if you have buffer-local hook functions. If `revert-buffer-function' is used to override the normal revert mechanism, this hook is not used. (defvar after-revert-hook nil (#$ . 50935)) #@804 Replace the buffer text with the text of the visited file on disk. This undoes all changes since the file was visited or saved. With a prefix argument, offer to revert from latest auto-save file, if that is more recent than the visited file. When called from Lisp, the first argument is IGNORE-AUTO; only offer to revert from the auto-save file when this is nil. Note that the sense of this argument is the reverse of the prefix argument, for the sake of backward compatibility. IGNORE-AUTO is optional, defaulting to nil. Optional second argument NOCONFIRM means don't ask for confirmation at all. If the value of `revert-buffer-function' is non-nil, it is called to do the work. The default revert function runs the hook `before-revert-hook' at the beginning and `after-revert-hook' at the end. (defalias 'revert-buffer #[(&optional ignore-auto noconfirm) "  \n\"` ?\" \" \" !\"! , .\n :!\nH \"!! Zp!Z=d!!!r  \" ! \"\n )~  ?ԉ%* d^b\n!!&ԉ׉$\"!)!!++" [revert-buffer-function ignore-auto noconfirm opoint recent-auto-save-p buffer-auto-save-file-name file-readable-p y-or-n-p "Buffer has been auto-saved recently. Revert from auto-save file? " auto-save-p buffer-file-name file-name error "Buffer does not seem to be associated with any file" yes-or-no-p format "Revert buffer from file %s? " run-hooks before-revert-hook verify-visited-file-modtime nil buffer-backed-up buffer-undo-list t default-value after-revert-hook local-variable-p local-hook local-hook-p global-hook buffer-read-only revert-buffer-insert-file-contents-function file-exists-p "File %s no longer exists!" unlock-buffer insert-file-contents abbreviate-file-name file-truename buffer-file-truename after-find-file set-default revert-buffer-internal-hook make-local-variable kill-local-variable] 7 (#$ . 51296) (list (not current-prefix-arg))]) #@65 Visit file FILE, but get contents from its last auto-save file. (defalias 'recover-file #[(file) " ! !! \"  ) \")\"MˋJ \"! \")ω#M!)" [expand-file-name file auto-save-file-name-p file-name-nondirectory error "%s is an auto-save file" buffer-file-name make-auto-save-file-name file-name file-newer-than-file-p "Auto-save file %s not current" ((byte-code "=%\f!\f !ʂ \f&\f\"!" [system-type vax-vms "*Directory*" buffer-disable-undo standard-output call-process "ls" nil file-symlink-p file "-lL" "-l" file-name yes-or-no-p format "Recover auto save file %s? "] 9)) switch-to-buffer find-file-noselect t nil buffer-read-only erase-buffer insert-file-contents after-find-file "Recover-file cancelled."] 4 (#$ . 53282) "fRecover file: "]) #@287 Recover auto save files from a previous Emacs session. This command first displays a Dired buffer showing you the previous sessions that you could recover from. To choose one, move point to the proper line and then type C-c C-c. Then you'll be asked about a number of files to recover. (defalias 'recover-session #[nil "!eb!cc) ! #" [dired "~/.save*" looking-at "Move to the session you want to recover," t inhibit-read-only "Move to the session you want to recover,\n" "then type C-c C-c to select it.\n\n" use-local-map make-sparse-keymap current-local-map define-key "" recover-session-finish] 4 (#$ . 54104) nil]) #@139 Choose one saved session to recover auto-save files from. This command is used in the special Dired buffer created by \[recover-session]. (defalias 'recover-session-finish #[nil " !Ŏ q \f!$," [dired-get-filename get-buffer-create " *recover*" buffer file ((kill-buffer buffer)) erase-buffer insert-file-contents map-y-or-n-p "Recover %s? " #[(file) " !)" [recover-file file] 2] #[nil "m?``\"lmy\f" [buffer-substring-no-properties nil 2] 3] ("file" "files" "recover")] 5 (#$ . 54757) nil]) #@42 For each buffer, ask whether to kill it. (defalias 'kill-some-buffers #[nil " = @\n!Ř4\fHU4\f\n!*̂+#!4\n!* A)" [buffer-list list buffer buffer-name name "" 0 32 yes-or-no-p format "Buffer %s %s. Kill? " buffer-modified-p "HAS BEEN EDITED" "is unmodified" kill-buffer nil] 7 (#$ . 55291) nil]) #@120 Toggle auto-saving of contents of current buffer. With prefix argument ARG, turn auto-saving on if positive, else off. (defalias 'auto-save-mode #[(arg) " $\nW!=$<$8V8 666 8 \nWAtR O˂P\" " [arg buffer-auto-save-file-name buffer-saved-size 0 t buffer-file-name auto-save-visited-file-name buffer-read-only make-auto-save-file-name message "Auto-save %s (in this buffer)" "on" "off"] 3 (#$ . 55628) "P"]) #@142 Adjust current buffer's auto save file name for current conditions. Also rename any existing auto save file, if it was made in this session. (defalias 'rename-auto-save-file #[nil "  ++ ?+ ?+ !+ + #)" [buffer-auto-save-file-name osave make-auto-save-file-name buffer-file-name file-exists-p recent-auto-save-p rename-file t] 4 (#$ . 56092)]) #@241 Return file name to use for auto-saves of current buffer. Does not consider `auto-save-visited-file-name' as that variable is checked before calling this function. You can redefine this for customization. See also `auto-save-file-name-p'. (defalias 'make-auto-save-file-name #[nil "!!R \f#A\fʼnO\fŔŕOɘ1ʂ2\fŕOQŕT\f!#!*" [buffer-file-name file-name-directory "#" file-name-nondirectory buffer-name 0 limit string-match "[/\\]" "/" "\\!" "\\\\" nil expand-file-name format "#%s#%s#" make-temp-name ""] 6 (#$ . 56468)]) #@146 Return non-nil if FILENAME can be yielded by `make-auto-save-file-name'. FILENAME should lack slashes. You can redefine this for customization. (defalias 'auto-save-file-name-p #[(filename) "\n\"" [string-match "^#.*#$" filename] 3 (#$ . 57038)]) #@65 *Switches for list-directory to pass to `ls' for brief listing, (defconst list-directory-brief-switches (byte-code "=‡Ç" [system-type vax-vms "" "-CF"] 2) (#$ . -57295)) #@67 *Switches for list-directory to pass to `ls' for verbose listing, (defconst list-directory-verbose-switches (byte-code "=‡Ç" [system-type vax-vms "/PROTECTION/SIZE/DATE/OWNER/WIDTH=(OWNER:10)" "-l"] 2) (#$ . -57478)) #@283 Display a list of files in or matching DIRNAME, a la `ls'. DIRNAME is globbed by the shell if necessary. Prefix arg (second arg if noninteractive) means supply -l switch to `ls'. Actions controlled by variables `list-directory-brief-switches' and `list-directory-verbose-switches'. (defalias 'list-directory #[(dirname &optional verbose) " \n\f \f!ǐ !!\f! q\f!?\f ?$*)" [verbose list-directory-verbose-switches list-directory-brief-switches switches dirname default-directory expand-file-name "*Directory*" buffer-disable-undo standard-output princ "Directory " terpri file-directory-p wildcard insert-directory] 6 (#$ . 57709) (byte-code " Â\f$ )D" [current-prefix-arg pfx read-file-name "List directory (verbose): " "List directory (brief): " nil default-directory] 5)]) #@75 Absolute or relative name of the `ls' program used by `insert-directory'. (defvar insert-directory-program "ls" (#$ . 58539)) #@539 Insert directory listing for FILE, formatted according to SWITCHES. Leaves point after the inserted text. SWITCHES may be a string of options, or a list of strings. Optional third arg WILDCARD means treat FILE as shell wildcard. Optional fourth arg FULL-DIRECTORY-P means file is a directory and switches do not contain `d', so that a full listing is expected. This works by running a directory listing program whose name is in the variable `insert-directory-program'. If WILDCARD, it also runs the shell specified by `shell-file-name'. (defalias 'insert-directory #[(file switches &optional wildcard full-directory-p) "\n!\"\f\n %=&\n p#\n!7\n!<\n!!\n!#hΉOΔOQΕTF ;| #&+Չ <  ᚄ \" ΉO B ΕO  B  \n!P\nC\")&)" [find-file-name-handler expand-file-name file insert-directory handler switches wildcard full-directory-p system-type vax-vms vms-read-directory file-name-absolute-p file-name-directory file-name-nondirectory 0 beg pattern default-directory string-match "[ \n;<>&|()#$]" "\\" nil call-process shell-file-name t "-c" insert-directory-program " -d " mapconcat identity " " apply list "" append file-name-as-directory "."] 14 (#$ . 58672)]) #@293 Functions to call with no arguments to query about killing Emacs. If any of these functions returns nil, killing Emacs is cancelled. `save-buffers-kill-emacs' (\[save-buffers-kill-emacs]) calls these functions, but `kill-emacs', the low level primitive, does not. See also `kill-emacs-hook'. (defvar kill-emacs-query-functions nil (#$ . 59977)) #@127 Offer to save each buffer, then kill this Emacs process. With prefix arg, silently save all file-visiting buffers, then kill. (defalias 'save-buffers-kill-emacs #[(&optional arg) " \" \">!f!^  \fQ\f@!>H\f@!\f@\")H \fA\f& ?Z!*f!f " [save-some-buffers arg t mapcar #[(buf) " ! !" [buffer-file-name buf buffer-modified-p] 2] buffer-list yes-or-no-p "Modified buffers exist; exit anyway? " fboundp process-list nil active processes process-status (run stop open) process-kill-without-query val "Active processes exist; kill them and exit anyway? " run-hook-with-args-until-failure kill-emacs-query-functions kill-emacs] 5 (#$ . 60329) "P"]) (byte-code " # # # # # # # ## # ######\"#\"#\"#\"#" [define-key ctl-x-map "" find-file "" toggle-read-only "" find-file-read-only "" find-alternate-file "" save-buffer "s" save-some-buffers "" write-file "i" insert-file esc-map "~" not-modified "" list-directory "" save-buffers-kill-emacs ctl-x-4-map "f" find-file-other-window "r" find-file-read-only-other-window "b" switch-to-buffer-other-window "" display-buffer ctl-x-5-map switch-to-buffer-other-frame find-file-other-frame find-file-read-only-other-frame] 4)