;; If any elt of directory-abbrev-alist matches this name,
;; abbreviate accordingly.
(while tail
- (if (string-match (car (car tail)) filename)
- (setq filename
- (concat (cdr (car tail)) (substring filename (match-end 0)))))
+ (when (string-match (car (car tail)) filename)
+ (setq filename
+ (concat (cdr (car tail)) (substring filename (match-end 0)))))
(setq tail (cdr tail))))
- (if hack-homedir
- (progn
- ;; Compute and save the abbreviated homedir name.
- ;; We defer computing this until the first time it's needed, to
- ;; give time for directory-abbrev-alist to be set properly.
- ;; We include a slash at the end, to avoid spurious matches
- ;; such as `/usr/foobar' when the home dir is `/usr/foo'.
- (or abbreviated-home-dir
- (setq abbreviated-home-dir
- (let ((abbreviated-home-dir "$foo"))
- (concat "\\`" (regexp-quote (abbreviate-file-name
- (expand-file-name "~")))
- "\\(/\\|\\'\\)"))))
- ;; If FILENAME starts with the abbreviated homedir,
- ;; make it start with `~' instead.
- (if (and (string-match abbreviated-home-dir filename)
- ;; If the home dir is just /, don't change it.
- (not (and (= (match-end 0) 1) ;#### unix-specific
- (= (aref filename 0) ?/)))
- (not (and (memq system-type '(ms-dos windows-nt))
- (save-match-data
- (string-match "^[a-zA-Z]:/$" filename)))))
- (setq filename
- (concat "~"
- (substring filename
- (match-beginning 1) (match-end 1))
- (substring filename (match-end 0)))))))
+ (when hack-homedir
+ ;; Compute and save the abbreviated homedir name.
+ ;; We defer computing this until the first time it's needed, to
+ ;; give time for directory-abbrev-alist to be set properly.
+ ;; We include a slash at the end, to avoid spurious matches
+ ;; such as `/usr/foobar' when the home dir is `/usr/foo'.
+ (or abbreviated-home-dir
+ (setq abbreviated-home-dir
+ (let ((abbreviated-home-dir "$foo"))
+ (concat "\\`" (regexp-quote (abbreviate-file-name
+ (expand-file-name "~")))
+ "\\(/\\|\\'\\)"))))
+ ;; If FILENAME starts with the abbreviated homedir,
+ ;; make it start with `~' instead.
+ (if (and (string-match abbreviated-home-dir filename)
+ ;; If the home dir is just /, don't change it.
+ (not (and (= (match-end 0) 1) ;#### unix-specific
+ (= (aref filename 0) ?/)))
+ (not (and (memq system-type '(ms-dos windows-nt))
+ (save-match-data
+ (string-match "^[a-zA-Z]:/$" filename)))))
+ (setq filename
+ (concat "~"
+ (substring filename
+ (match-beginning 1) (match-end 1))
+ (substring filename (match-end 0))))))
filename)))
(defcustom find-file-not-true-dirname-list nil
found))))
(defun insert-file-contents-literally (filename &optional visit beg end replace)
- "Like `insert-file-contents', q.v., but only reads in the file.
+ "Like `insert-file-contents', q.v., but only reads in the file literally.
A buffer may be modified in several ways after reading into the buffer due
-to advanced Emacs features, such as file-name-handlers, format decoding,
-find-file-hooks, etc.
- This function ensures that none of these modifications will take place."
- (let ((file-name-handler-alist nil)
- (format-alist nil)
+to advanced Emacs features, such as format decoding, character code
+conversion,find-file-hooks, automatic uncompression, etc.
+
+This function ensures that none of these modifications will take place."
+ (let ((format-alist nil)
(after-insert-file-functions nil)
+ (coding-system-for-read 'binary)
+ (coding-system-for-write 'binary)
+ (jka-compr-compression-info-list nil)
(find-buffer-file-type-function
(if (fboundp 'find-buffer-file-type)
(symbol-function 'find-buffer-file-type)
(defvar auto-mode-alist
'(("\\.te?xt\\'" . text-mode)
- ("\\.[ch]\\'" . c-mode)
+ ("\\.[chi]\\'" . c-mode)
("\\.el\\'" . emacs-lisp-mode)
("\\.\\(?:[CH]\\|cc\\|hh\\)\\'" . c++-mode)
("\\.[ch]\\(pp\\|xx\\|\\+\\+\\)\\'" . c++-mode)
("\\.icn\\'" . icon-mode)
("\\.\\(?:[ckz]?sh\\|shar\\)\\'" . sh-mode)
;; #### Unix-specific!
- ("/\\.\\(?:bash_\\|z\\)?\\(profile\\|login\||logout\\)\\'" . sh-mode)
+ ("/\\.\\(?:bash_\\|z\\)?\\(profile\\|login\\|logout\\)\\'" . sh-mode)
("/\\.\\(?:[ckz]sh\\|bash\\|tcsh\\|es\\|xinit\\|startx\\)rc\\'" . sh-mode)
("/\\.\\(?:[kz]shenv\\|xsession\\)\\'" . sh-mode)
;; The following come after the ChangeLog pattern for the sake of
("python" . python-mode)
("awk\\b" . awk-mode)
("rexx" . rexx-mode)
- ("scm" . scheme-mode)
+ ("scm\\|guile" . scheme-mode)
+ ("emacs" . emacs-lisp-mode)
+ ("make" . makefile-mode)
("^:" . sh-mode))
"Alist mapping interpreter names to major modes.
This alist is used to guess the major mode of a file based on the