;;; files.el --- file input and output commands for Emacs
;; Copyright (C) 1985, 86, 87, 92, 93,
-;; 94, 95, 1996 Free Software Foundation, Inc.
+;; 94, 95, 96, 97, 1998 Free Software Foundation, Inc.
;; Maintainer: FSF
(defvar view-read-only nil
"*Non-nil means buffers visiting files read-only, do it in view mode.")
+(defvar system-tmp-directory
+ (directory-file-name
+ (cond ((memq system-type '(ms-dos windows-nt))
+ (or (getenv "TEMP") (getenv "TMPDIR") (getenv "TMP") "c:/temp"))
+ ((memq system-type '(vax-vms axp-vms))
+ (or (getenv "TMPDIR") (getenv "TMP") (getenv "TEMP") "SYS$SCRATCH:"))
+ (t
+ (or (getenv "TMPDIR") (getenv "TMP") (getenv "TEMP") "/tmp"))))
+ "The directory for writing temporary files--actually, its name as a file.")
+
;; This hook function provides support for ange-ftp host name
;; completion. It runs the usual ange-ftp hook, but only for
;; completion operations. Having this here avoids the need
"Value of the CDPATH environment variable, as a list.
Not actually set up until the first time you you use it.")
-(defvar path-separator ":"
- "Character used to separate directories in search paths.")
-
(defun parse-colon-path (cd-path)
"Explode a colon-separated search path into a list of directory names."
(and cd-path
(setq backup-inhibited t)))
(if rawfile
(progn
- (setq enable-multibyte-characters nil)
+ (set-buffer-multibyte nil)
+ (setq buffer-file-coding-system 'no-conversion)
(make-local-variable 'find-file-literally)
(setq find-file-literally t))
(after-find-file error (not nowarn))
REGEXP and search the list again for another match.")
-
-
-To install, put this in your .emacs:
- (setq auto-mode-alist (cons '(\".zone$\" . zone-mode)
- auto-mode-alist))
-or put ;-*-zone-*-
-on an the first line of the zone files.
-
-You may also need to add
- (autoload 'zone-mode \"zone-mode\" "")
-
-Font-lock support assumes emacs-20.
-
(defvar interpreter-mode-alist
'(("perl" . perl-mode)
("perl5" . perl-mode)
keep-going nil)))
(setq alist (cdr alist))))
(if mode
- (funcall mode)
+ ;; When JUST-FROM-FILE-NAME is set,
+ ;; we are working on behalf of set-visited-file-name.
+ ;; In that case, if the major mode specified is the
+ ;; same one we already have, don't actually reset it.
+ ;; We don't want to lose minor modes such as Font Lock.
+ (unless (and just-from-file-name (eq mode major-mode))
+ (funcall mode))
;; If we can't deduce a mode from the file name,
;; look for an interpreter specified in the first line.
;; As a special case, allow for things like "#!/bin/env perl",
;; Likewise for setting hook variables.
((or (get var 'risky-local-variable)
(and
- (string-match "-hooks?$\\|-functions?$\\|-forms?$\\|-program$\\|-command$"
+ (string-match "-hooks?$\\|-functions?$\\|-forms?$\\|-program$\\|-command$\\|-predicate$"
(symbol-name var))
(not (get var 'safe-local-variable))))
;; Permit evalling a put of a harmless property.
(read-file-name "Write file: "
(cdr (assq 'default-directory
(buffer-local-variables)))
- nil nil (buffer-name)))
+ nil nil (file-name-nondirectory (buffer-name))))
(not current-prefix-arg)))
(or (null filename) (string-equal filename "")
(progn
(defvar after-save-hook nil
"Normal hook that is run after a buffer is saved to its file.")
+(defvar save-buffer-coding-system nil
+ "If non-nil, use this coding system for saving the buffer.
+More precisely, use this coding system in place of the
+value of `buffer-file-coding-system', when saving the buffer.
+Calling `write-region' for any purpose other than saving the buffer
+will still use `buffer-file-coding-system'; this variable has no effect
+in such cases.")
+
(defun basic-save-buffer ()
"Save the current buffer in its visited file, if it has been modified.
After saving the buffer, run `after-save-hook'."
;; Now we have saved the current buffer. Let's make sure
;; that buffer-file-coding-system is fixed to what
;; actually used for saving by binding it locally.
- (setq buffer-file-coding-system last-coding-system-used)
+ (if save-buffer-coding-system
+ (setq save-buffer-coding-system last-coding-system-used)
+ (setq buffer-file-coding-system last-coding-system-used))
(setq buffer-file-number
(nthcdr 10 (file-attributes buffer-file-name)))
(if setmodes
;; but inhibited if one of write-file-hooks returns non-nil.
;; It returns a value to store in setmodes.
(defun basic-save-buffer-1 ()
- (let (tempsetmodes setmodes)
+ (let ((buffer-file-coding-system
+ (or save-buffer-coding-system
+ buffer-file-coding-system))
+ tempsetmodes setmodes)
(if (not (file-writable-p buffer-file-name))
(let ((dir (file-name-directory buffer-file-name)))
(if (not (file-directory-p dir))
(let ((file (dired-get-filename))
files
(buffer (get-buffer-create " *recover*")))
+ (dired-unmark 1)
(dired-do-flagged-delete t)
(unwind-protect
(save-excursion