;;; compiled by rms@mole.gnu.ai.mit.edu on Mon May 31 20:00:14 1993
;;; from file /home/fsf/rms/e19/lisp/files.el
;;; emacs version 19.10.3.
;;; bytecomp version FSF 2.08
;;; optimization is on.

(defconst delete-auto-save-files t "\
*Non-nil means delete a buffer's auto-save file when the buffer is saved.")
(defconst directory-abbrev-alist nil "\
*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 `^'.

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 make-backup-files (byte-code "=?" [system-type vax-vms] 2) "\
*Create a backup of each file when it is saved for the first time.
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'.")
(defvar backup-inhibited nil "\
Non-nil means don't make a backup file for this buffer.")
(put (quote backup-inhibited) (quote permanent-local) t)
(defconst backup-by-copying nil "\
*Non-nil means always use copying to create backup files.
See documentation of variable `make-backup-files'.")
(defconst backup-by-copying-when-linked nil "\
*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-mismatch nil "\
*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.")
(defvar backup-enable-predicate (quote (lambda (name) (or (< (length name) 5) (not (string-equal "/tmp/" (substring name 0 5)))))) "\
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.")
(defconst buffer-offer-save nil "\
*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.")
(make-variable-buffer-local (quote buffer-offer-save))
(defconst find-file-existing-other-name nil "\
*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-visit-truename nil "\
*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.")
(defvar buffer-file-truename nil "\
The truename of the file visited in the current buffer.
This variable is automatically local in all buffers, when non-nil.")
(byte-code "!#" [make-variable-buffer-local buffer-file-truename put permanent-local t] 4)
(defvar buffer-file-number nil "\
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.")
(byte-code "!#" [make-variable-buffer-local buffer-file-number put permanent-local t] 4)
(defconst file-precious-flag nil "\
*Non-nil means protect against I/O errors while saving files.
Some modes set this non-nil in particular buffers.")
(defvar version-control nil "\
*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 dired-kept-versions 2 "\
*When cleaning directory, number of versions to keep.")
(defvar trim-versions-without-asking nil "\
*If t, deletes excess backup versions silently.
If nil, asks confirmation.  Any other value prevents any trimming.")
(defvar kept-old-versions 2 "\
*Number of oldest versions to keep when a new numbered backup is made.")
(defvar kept-new-versions 2 "\
*Number of newest versions to keep when a new numbered backup is made.
Includes the new backup.  Must be > 0")
(defconst require-final-newline nil "\
*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 auto-save-default t "\
*Non-nil says by default do auto-saving of every file-visiting buffer.")
(defconst auto-save-visited-file-name nil "\
*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 save-abbrevs nil "\
*Non-nil means save word abbrevs too when files are saved.
Loading an abbrev file sets this to t.")
(defconst find-file-run-dired t "\
*Non-nil says run dired if `find-file' is given the name of a directory.")
(defvar find-file-not-found-hooks nil "\
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-hooks nil "\
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.")
(put (quote write-file-hooks) (quote permanent-local) t)
(defvar write-file-hooks nil "\
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'.")
(put (quote local-write-file-hooks) (quote permanent-local) t)
(defvar local-write-file-hooks nil "\
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 write-contents-hooks nil "\
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'.")
(defconst enable-local-variables t "\
*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-eval (quote maybe) "\
*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.")
(byte-code "! \"! \"" [fboundp lock-buffer defalias ignore unlock-buffer] 3)
(defalias 'pwd #[nil "\n\"" [message "Directory %s" default-directory] 3 "\
Show the current default directory." nil])
(defvar cd-path nil "\
Value of the CDPATH environment variable, as a list.
Not actually set up until the first time you you use it.")
(defalias 'parse-colon-path #[(cd-path) "1 P#/ O!!C\"\\ ," [cd-path nil 0 cd-colon cd-start cd-list cd-prefix ":" string-match nconc substitute-in-file-name file-name-as-directory 1] 7 "\
Explode a colon-separated list of paths into a string list."])
(defalias 'cd-absolute #[(dir) "	!\n= 	!	! 	\"	!$ 			\"" [expand-file-name dir system-type vax-vms file-name-as-directory file-directory-p error "%s is not a directory" file-executable-p default-directory "Cannot cd to %s:  Permission denied"] 3 "\
Change current directory to given absolute path DIR." "DChange default directory: "])
(defalias 'cd #[(dir) "HU \nU !!7 - !!* C)΍?7 !)" [dir 0 first 47 126 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 on your cd path."] 4 "\
Make DIR become the current buffer's default directory.
If your environment imcludes a $CDPATH variable, cd tries each one of that
colon-separated list of directories when resolving a relative cd." "FChange default directory: "])
(defalias 'load-file #[(file) "\n!É$" [load expand-file-name file nil t] 5 "\
Load the Lisp file named FILE." "fLoad file: "])
(defalias 'load-library #[(library) "	!" [load library] 2 "\
Load the library named LIBRARY.
This is an interface to the function `load'." "sLoad library: "])
(defalias 'file-local-copy #[(file) "	! \n	\")" [find-file-name-handler file handler file-local-copy] 4 "\
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-truename #[(filename) "	\" 	!	\" 	!% 	\"d 	!ʉ!\"G !!	!P	!b \"!c 	+)" [string= filename "~" expand-file-name "" "/" find-file-name-handler handler file-truename file-name-directory nil dirfile target dir directory-file-name file-name-as-directory file-name-nondirectory file-symlink-p] 5 "\
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."])
(defalias 'file-chase-links #[(filename) "\n!C U \n\"\"6 O!!!!!! !\"S +" [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 "\
Chase links in FILENAME until a name that is not a link.
Does not examine containing directories for links,
unlike `file-truename'."])
(defalias 'switch-to-buffer-other-window #[(buffer) "\")" [t pop-up-windows pop-to-buffer buffer] 3 "\
Select buffer BUFFER in another window." "BSwitch to buffer in other window: "])
(defalias 'switch-to-buffer-other-frame #[(buffer) "\")" [t pop-up-frames pop-to-buffer buffer] 3 "\
Switch to buffer BUFFER in another frame." "BSwitch to buffer in other frame: "])
(defalias 'find-file #[(filename) "\n!!" [switch-to-buffer find-file-noselect filename] 3 "\
Edit file FILENAME.
Switch to a buffer visiting file FILENAME,
creating one if none already exists." "FFind file: "])
(defalias 'find-file-other-window #[(filename) "\n!!" [switch-to-buffer-other-window find-file-noselect filename] 3 "\
Edit file FILENAME, in another window.
May create a new window, or reuse an existing one.
See the function `display-buffer'." "FFind file in other window: "])
(defalias 'find-file-other-frame #[(filename) "\n!!" [switch-to-buffer-other-frame find-file-noselect filename] 3 "\
Edit file FILENAME, in another frame.
May create a new frame, or reuse an existing one.
See the function `display-buffer'." "FFind file in other frame: "])
(defalias 'find-file-read-only #[(filename) "	!p" [find-file filename t buffer-read-only] 2 "\
Edit file FILENAME but don't allow changes.
Like \\[find-file] but marks buffer as read-only.
Use \\[toggle-read-only] to permit editing." "fFind file read-only: "])
(defalias 'find-file-read-only-other-window #[(filename) "	!p" [find-file-other-window filename t buffer-read-only] 2 "\
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." "fFind file read-only other window: "])
(defalias 'find-file-read-only-other-frame #[(filename) "	!p" [find-file-other-frame filename t buffer-read-only] 2 "\
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." "fFind file read-only other frame: "])
(defalias 'find-alternate-file #[(filename) "   \"! !p	 \n!	Ҏ !)p=I !-" [buffer-modified-p yes-or-no-p format "Buffer %s is modified; kill anyway? " buffer-name error "Aborted" buffer-file-name buffer-file-number buffer-file-truename oname otrue onum ofile obuf rename-buffer " **lose**" nil ((byte-code "p= 	 	!Ǉ" [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 "\
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." (byte-code " !!\n%+C" [buffer-file-name nil file-dir file-name file file-name-nondirectory file-name-directory read-file-name "Find alternate file: "] 7)])
(defalias 'create-file-buffer #[(filename) "	!\n\" 	\n!)" [file-name-nondirectory filename lastname string= "" generate-new-buffer] 3 "\
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 'generate-new-buffer #[(name) "\n!!" [get-buffer-create generate-new-buffer-name name] 3 "\
Create and return a buffer with a name based on NAME.
Choose the buffer's name using `generate-new-buffer-name'."])
(defconst automount-dir-prefix "^/tmp_mnt/" "\
Regexp to match the automounter prefix in a directory name.")
(defvar abbreviated-home-dir nil "\
The the user's homedir abbreviated according to `directory-abbrev-list'.")
(defalias 'abbreviate-file-name #[(filename) "	\n\" \n!SO!! \n!SO	D 	@@\n\"; 	@A\n!OP	A	% \nV \n!!P)\n\n\n\"w \nGSH=n тo \n!OQ\n)" [string-match automount-dir-prefix filename file-exists-p file-name-directory match-end 0 nil directory-abbrev-alist tail abbreviated-home-dir "$foo" "^" abbreviate-file-name expand-file-name "~" 47 "/" ""] 6 "\
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."])
(defvar find-file-not-true-dirname-list nil "\
*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.")
(defalias 'find-file-noselect #[(filename &optional nowarn) "\n!!\n!  \n!\n\"\n!	\n!!!\"	i  f f @q] \"] @)A: *	     @q\" ! !\"\" @)A| *	   \n!$ 	   \n!#  !		K	!\n!'\n\"	!45\n!\"!	q\")\n!	q !0=2\n!\"\n!!O229\")!!\n!:;!!=?\")	." [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 nthcdr 10 file-attributes number nil buffer-list list found buffer-file-name string= buffer-file-truename same-truename equal buffer-file-number file-exists-p same-number nowarn message "%s and %s are the same file (%s)" "%s and %s are the same file" find-file-existing-other-name find-file-visit-truename verify-visited-file-modtime "File %s no longer exists!" yes-or-no-p format buffer-modified-p "File %s changed on disk.  Discard your edits? " "File %s changed on disk.  Read the new version? " file-name-nondirectory revert-buffer t create-file-buffer erase-buffer (insert-file-contents filename t) ((file-error (byte-code "\n @  A )" [t error find-file-not-found-hooks hooks] 2))) system-type vax-vms logical string-match ":" file-name-directory 0 match-beginning member find-file-not-true-dirname-list default-directory backup-enable-predicate make-local-variable backup-inhibited after-find-file] 6 "\
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 'after-find-file #[(&optional error warn noauto) "	!?  	! ɂu \n< \n1  	\"1 ͂u u ΂u G ς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 is read-protected." 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 mapcar funcall find-file-hooks] 6 "\
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.
Finishes by calling the functions in `find-file-hooks'."])
(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 "\
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." nil])
(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) ("\\.mss\\'" . scribe-mode) ("\\.pl\\'" . prolog-mode) ("\\.cc\\'" . c++-mode) ("\\.hh\\'" . c++-mode) ("\\.C\\'" . c++-mode) ("\\.H\\'" . c++-mode) ("\\.s\\'" . asm-mode) ("ChangeLog\\'" . change-log-mode) ("ChangeLog.[0-9]+\\'" . change-log-mode) ("\\$CHANGE_LOG\\$\\.TXT" . change-log-mode) ("\\.[12345678]\\'" . nroff-mode) ("\\.TeX\\'" . TeX-mode) ("\\.sty\\'" . LaTeX-mode) ("\\.bbl\\'" . LaTeX-mode) ("\\.bib\\'" . bibtex-mode) ("\\.article\\'" . text-mode) ("\\.letter\\'" . text-mode) ("\\.texinfo\\'" . texinfo-mode) ("\\.texi\\'" . texinfo-mode) ("\\.lsp\\'" . lisp-mode) ("\\.awk\\'" . awk-mode) ("\\.prolog\\'" . prolog-mode) ("\\.tar\\'" . tar-mode) ("^/tmp/Re" . text-mode) ("/Message[0-9]*\\'" . text-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) ("\\.ml\\'" . lisp-mode)))) "\
Alist of filename patterns vs corresponding major mode functions.
Each element looks like (REGEXP . FUNCTION).
Visiting a file whose name matches REGEXP causes FUNCTION to be called.")
(defconst inhibit-local-variables-regexps (quote ("\\.tar$")) "\
List of regexps; if one matches a file name, don't look for local vars.")
(defalias 'set-auto-mode #[nil "eb! . @\n\". A ) ̊!? !`)# !`̊ `)# !!`b\n# b\n#) !`\n# ! \nb!`\" \n\" 	!P! \n \n !\"= ! 	 ! !@@ \" !@A!A! +)	 	 +" [nil mode end beg skip-chars-forward " 	\n" enable-local-variables inhibit-local-variables-regexps temp string-match buffer-file-name search-forward "-*-" end-of-line looking-at "^#!" 2 t " 	" forward-char -3 skip-chars-backward ":" case-fold-search "mode:" ";" -1 buffer-substring intern downcase "-mode" auto-mode-alist name alist system-type vax-vms file-name-sans-versions] 6 "\
Select major mode appropriate for current buffer.
This checks for a -*- mode tag in the buffer's text, or
compares the filename against the entries in auto-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."])
(fset (quote hack-local-variables-prop-line) #[nil "eb! `)# !4 !!\"!BC #D `ZH !)`W !Y !!b!!\"!!`\"p!)BB!*I !\" \"A!!P!  ) #= # 䋃  @@@A\"*A ," [skip-chars-forward " 	\n" nil end-of-line mode-p end result search-forward "-*-" t looking-at "[ 	]*\\([^ 	\n:;]+\\)\\([ 	]*-\\*-\\)" mode intern buffer-substring match-beginning 1 match-end 3 error "-*- not terminated before end of line" "[ 	]*\\([^ 	\n:]+\\)[ 	]*:[ 	]*" "malformed -*- line" 0 downcase narrow-to-region read val key " 	;" nreverse assq delq symbol-name "-mode" enable-local-variables ((byte-code "p!!\"!" [switch-to-buffer 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] 7])
(defalias 'hack-local-variables #[nil " dbdZe]##* \n=* \n* ˋ)ɉ!lR ` `\"!bne `!`\"u G! !P ! ! ! ! !!`!l !!`\"&&!()&!\" !!p!)!!!l!()\"+ .)" [hack-local-variables-prop-line search-backward "\n" 3000 move t case-fold-search search-forward "Local Variables:" nil enable-local-variables ((byte-code "p!! `\")	!\"!" [switch-to-buffer forward-line 0 set-window-start selected-window y-or-n-p format "Set local variables as specified at end of %s? " file-name-nondirectory buffer-file-name] 5)) enable-local-eval beg suffix prefixlen prefix continue skip-chars-forward " 	" buffer-substring end-of-line match-beginning 0 forward-line regexp-quote "$" selective-display re-search-forward "[\n]" 1 looking-at forward-char error "Local variables entry is missing the prefix" "^:\n" "Missing colon in local variables entry" skip-chars-backward str read var val string-equal downcase "end" "^:" "\n" "Local variables entry is terminated incorrectly" hack-one-local-variable] 6 "\
Parse and put into effect this buffer's local variables spec."])
(defconst ignored-local-variables (quote (enable-local-eval)) "\
Variables to be ignored in a file's local variable spec.")
(fset (quote hack-one-local-variable) #[(var val) "= !!P! > ȇ=C  \"? =9 ? ϋ? !)!!L" [var mode intern downcase symbol-name val "-mode" ignored-local-variables nil eval string= user-login-name "root" enable-local-eval t ((byte-code "p!! `\")	!\"!\n" [switch-to-buffer forward-line 0 set-window-start selected-window y-or-n-p format "Process `eval' local variable in file %s? " file-name-nondirectory buffer-file-name enable-local-eval] 5)) message "Ignoring `eval:' in file's local variables" make-local-variable] 4])
(defalias 'set-visited-file-name #[(filename) " \"? !\"\" \" ! R !		\"9 !=F 	!	!	\") u !!k !8{ !!!!#! !\"%  '!  % !" [filename string-equal "" expand-file-name equal buffer-file-name lock-buffer unlock-buffer file-name-nondirectory new-name string= error "Empty file name" system-type vax-vms downcase file-name-directory default-directory rename-buffer t nil buffer-backed-up clear-visited-file-modtime abbreviate-file-name file-truename buffer-file-truename find-file-visit-truename 10 file-attributes buffer-file-number kill-local-variable write-file-hooks local-write-file-hooks revert-buffer-function backup-inhibited backup-enable-predicate make-local-variable buffer-auto-save-file-name auto-save-mode auto-save-default make-auto-save-file-name set-buffer-modified-p] 3 "\
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." "FSet visited file name: "])
(defalias 'write-file #[(filename) "! \"! !  !!P!! " [filename string-equal "" file-directory-p buffer-file-name file-name-as-directory file-name-nondirectory set-visited-file-name set-buffer-modified-p t save-buffer] 3 "\
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." (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))))])
(defalias 'backup-buffer #[nil "J 	?J \n?J !J !\"H>J ʉ!!@Aӏ-" [make-backup-files backup-inhibited buffer-backed-up file-exists-p buffer-file-name elt file-attributes 8 0 (45 108) nil setmodes targets backupname backup-info real-file-name file-chase-links find-backup-file-name (byte-code " 	= 	= 	 \"!ʏ: : ͏A. )" [targets trim-versions-without-asking t nil y-or-n-p format "Delete excess backup versions of %s? " real-file-name delete-old-versions (byte-code "1 	1 \n !V1 9 !8- 8 U?)9 Ώ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 2 user-uid 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 "\
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 'file-name-sans-versions #[(name &optional keep-backup-version) "	! \n	#L 	=2 	\"K 	\"- !K 	GK ; 	GK 	\"K 	\"K 	GO)" [find-file-name-handler name handler file-name-sans-versions keep-backup-version 0 system-type vax-vms string-match ";[---+]?[0-9]*\\'" "\\.[^]>:]*\\(\\.[---+]?[0-9]*\\)\\'" match-beginning 1 "\\.~[0-9]+~\\'" "~\\'"] 6 "\
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 'make-backup-file-name #[(file) "P" [file "~"] 2 "\
Create the non-numeric backup file name for FILE.
This is a separate function so you can redefine it for customization."])
(defalias 'backup-file-name-p #[(file) "\n\"" [string-match "~$" file] 3 "\
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-extract-version #[(fn) "\n# !U \nO!Ň" [string-match "[0-9]+~$" fn bv-length match-beginning 0 string-to-int -1] 4 "\
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 'find-backup-file-name #[(fn) "= !C!PG!\"\n\n\"\"#9 VGZZZT !C T!RV \\\\Y \"S\"\")\"B." [version-control never make-backup-file-name fn file-name-nondirectory ".~" base-versions bv-length file-name-all-completions file-name-directory possibilities sort mapcar backup-extract-version < versions apply max 0 high-water-mark deserve-versions-p kept-old-versions kept-new-versions -1 number-to-delete int-to-string "~" #[(n) "!R" [fn ".~" int-to-string n "~"] 4] nthcdr v rplacd nil] 8 "\
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."])
(defalias 'file-nlinks #[(filename) "	!A@" [file-attributes filename] 2 "\
Return number of names file FILENAME has."])
(fset (quote file-relative-name-1) #[(directory) "	\"	 	!P\" !O	O!!" [string= directory "/" filename string-match "^" regexp-quote match-end 0 nil file-relative-name-1 file-name-directory -1] 5])
(defalias 'file-relative-name #[(filename &optional directory) "	! ! !!" [expand-file-name filename file-name-as-directory directory default-directory file-relative-name-1] 3 "\
Convert FILENAME to be relative to DIRECTORY (default: default-directory)."])
(defalias 'save-buffer #[(&optional args) "  V =?  >  \n0 0  \" B >B ɉ\n+" [buffer-modified-p buffer-size 50000 make-backup-files args 0 large modp (16 64) nil buffer-backed-up message "Saving file %s..." buffer-file-name basic-save-buffer (4 64)] 5 "\
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 `trim-versions-without-asking' is nil, system will query user
 before trimming versions.  Otherwise it does it silently." "p"])
(defalias 'delete-auto-save-file-if-necessary #[(&optional force) "  	  \"?      ȏ " [buffer-auto-save-file-name delete-auto-save-files string= buffer-file-name force recent-auto-save-p nil (delete-file buffer-auto-save-file-name) ((file-error)) set-buffer-auto-saved] 3 "\
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 'basic-save-buffer #[nil "  =A 		!\"A 	!		!!!!)!)	Y !\"		!!p!v 	!v 	!\"!v ! dV dSfU $= $  \"! dbc))*+#,- -@ , -A- ,	!	!//! /\"	! /\"	!\"!!)5 7	!	89:;<=/9::Z/9#<<!:9T9>@ A  B ed<=%8)C 	!D <	#.C 	!E 	F \"B ed	%*G 	!8HI J )K !L M !+N O !" [buffer-modified-p recent-auto-save-p nil tempsetmodes setmodes recent-save system-type vax-vms string= buffer-file-name file-name-sans-versions buffer-new-name create-file-buffer downcase buf buffer-name kill-buffer rename-buffer expand-file-name read-file-name "File to save in: " file-name-directory default-directory auto-save-mode auto-save-default 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" widen 1 10 require-final-newline t y-or-n-p "Buffer %s does not end in newline.  Add one? " append write-contents-hooks local-write-file-hooks write-file-hooks done hooks file-writable-p dir file-directory-p "%s is not a directory" "Directory %s write-protected" "File %s is write-protected; try to save anyway? " "Attempt to save to a file which you aren't allowed to write" buffer-backed-up backup-buffer file-precious-flag succeed i nogood temp tempname realname 0 "%s#tmp#%d" ((byte-code " \n!" [succeed delete-file tempname] 2)) clear-visited-file-modtime write-region file-modes rename-file set-file-modes 511 file-attributes buffer-file-number (set-file-modes buffer-file-name setmodes) ((error)) delete-auto-save-file-if-necessary run-hooks after-save-hooks message "(No changes need to be saved)"] 8 "\
Save the current buffer in its visited file, if it has been modified." nil])
(defalias 'save-some-buffers #[(&optional arg exiting) "" [((byte-code " EC%U !" [map-y-or-n-p #[(buffer) "	!8 	! 8 	q8  V8 % ȇ	!2 	!\"	!\"" [buffer-modified-p 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" 0 message "(No files need saving)"] 8))] 1 "\
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." "P"])
(defalias 'not-modified #[(&optional arg) "		 \n !	!" [message arg "Modification-flag set" "Modification-flag cleared" set-buffer-modified-p] 2 "\
Mark current buffer as unmodified, not needing to be saved.
With prefix arg, mark buffer as modified, so \\[save-buffer] will save." "P"])
(defalias 'toggle-read-only #[(&optional arg) "	 	? !V !" [arg buffer-read-only prefix-numeric-value 0 set-buffer-modified-p buffer-modified-p] 2 "\
Change whether this buffer is visiting its file read-only.
With arg, set read-only iff arg is positive." "P"])
(defalias 'insert-file #[(filename) "	!`\nA@\\!)" [insert-file-contents filename tem push-mark] 3 "\
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)." "fInsert file: "])
(defalias 'append-to-file #[(start end filename) "	\n$" [write-region start end filename t] 5 "\
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." "r\nFAppend to file: "])
(defalias 'file-newest-backup #[(filename) "	!	!	!\"	> @PA! 	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 "\
Return most recent backup file for FILENAME or nil if no backups exist."])
(defalias 'rename-uniquely #[nil " !\n!\n!! !*" [generate-new-buffer buffer-name new-buf name kill-buffer rename-buffer set-buffer-modified-p buffer-modified-p] 2 "\
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." nil])
(defalias 'make-directory #[(dir &optional parents) "	! \n	#N  	!N 	!!		!8 		B		!!# 	M 	@!	A	= *)" [find-file-name-handler dir handler make-directory parents make-directory-internal directory-file-name expand-file-name nil create-list file-exists-p file-name-directory] 5 "\
Create the directory DIR and any nonexistent parent dirs." "FMake directory: \nP"])
(put (quote revert-buffer-function) (quote permanent-local) t)
(defvar revert-buffer-function nil "\
Function to use to revert this buffer, or nil to do the default.")
(put (quote revert-buffer-insert-file-contents-function) (quote permanent-local) t)
(defvar revert-buffer-insert-file-contents-function nil "\
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.")
(defalias 'revert-buffer #[(&optional ignore-auto noconfirm) "	 	\n\"`	?\"  \" \" !\" !	, . \n: ! \nH \"! 	V p!V =` v 	\" ! \"\n	   )	?\"*d^b҉#+" [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? " verify-visited-file-modtime nil buffer-backed-up buffer-undo-list t buffer-read-only revert-buffer-insert-file-contents-function file-exists-p "File %s no longer exists!" unlock-buffer erase-buffer insert-file-contents after-find-file] 5 "\
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." (list (not prefix-arg))])
(defalias 'recover-file #[(file) "	!	! 	\"	 )	\"& \"J ʋG 	\"! \")Ή#J !)" [expand-file-name file auto-save-file-name-p 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 "=% !	! ʂ 	&\"!" [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 "\
Visit file FILE, but get contents from its last auto-save file." (byte-code " !!\n%+C" [buffer-file-name nil file-dir file-name prompt-file file-name-nondirectory file-name-directory read-file-name "Recover file: "] 7)])
(defalias 'kill-some-buffers #[nil " > 	@\n!\"5 HU5 \n!+ ͂, #!5 \n!*	A )" [buffer-list list buffer buffer-name name string-equal "" 0 32 yes-or-no-p format "Buffer %s %s.  Kill? " buffer-modified-p "HAS BEEN EDITED" "is unmodified" kill-buffer nil] 7 "\
For each buffer, ask whether to kill it." nil])
(defalias 'auto-save-mode #[(arg) "	 	? =  <  !4 V4 2 2 2 4  tF 	C ˂D \"	" [arg buffer-auto-save-file-name t integerp 0 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 "\
Toggle auto-saving of contents of current buffer.
With prefix argument ARG, turn auto-saving on if positive, else off." "P"])
(defalias 'rename-auto-save-file #[nil " 	- - \"?- 	\"?- 	!-  - 	#)" [buffer-auto-save-file-name osave make-auto-save-file-name string= buffer-file-name file-exists-p recent-auto-save-p rename-file t] 4 "\
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 'make-auto-save-file-name #[nil " !!R !#!" [buffer-file-name file-name-directory "#" file-name-nondirectory expand-file-name format "#%s#%s#" buffer-name make-temp-name ""] 6 "\
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 'auto-save-file-name-p #[(filename) "\n\"" [string-match "^#.*#$" filename] 3 "\
Return non-nil if FILENAME can be yielded by `make-auto-save-file-name'.
FILENAME should lack slashes.  You can redefine this for customization."])
(defconst list-directory-brief-switches (byte-code "= Ç" [system-type vax-vms "" "-CF"] 2) "\
*Switches for list-directory to pass to `ls' for brief listing,")
(defconst list-directory-verbose-switches (byte-code "= Ç" [system-type vax-vms "/PROTECTION/SIZE/DATE/OWNER/WIDTH=(OWNER:10)" "-l"] 2) "\
*Switches for list-directory to pass to `ls' for verbose listing,")
(defalias 'list-directory #[(dirname &optional verbose) " 		 \n !ǐ	!!! q!??$*)" [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 "\
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'." (byte-code "	 Â $	)D" [current-prefix-arg pfx read-file-name "List directory (verbose): " "List directory (brief): " nil default-directory] 5)])
(defvar insert-directory-program "ls" "\
Absolute or relative name of the `ls' program used by `insert-directory'.")
(defalias 'insert-directory #[(file switches &optional wildcard full-directory-p) "	! \n	%L =\" 	p#L B 	!	!%&)L 	&)" [find-file-name-handler file handler insert-directory switches wildcard full-directory-p system-type vax-vms vms-read-directory file-name-directory default-directory call-process shell-file-name nil t "-c" concat insert-directory-program " -d " " " file-name-nondirectory] 14 "\
Insert directory listing for of FILE, formatted according to SWITCHES.
Leaves point after the inserted text.
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 'save-buffers-kill-emacs #[(&optional arg) "	\" \"> !` !^  Q @!>H @!@\")H A& ?Z !*`  " [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? " kill-emacs] 5 "\
Offer to save each buffer, then kill this Emacs process.
With prefix arg, silently save all file-visiting buffers, then kill." "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)
