diff options
author | Karl Heuer <kwzh@gnu.org> | 1996-05-18 20:15:02 +0000 |
---|---|---|
committer | Karl Heuer <kwzh@gnu.org> | 1996-05-18 20:15:02 +0000 |
commit | b1d4be5f6eaa5a04a642727e2a518a2b8002395c (patch) | |
tree | 47fa56b10a80c517fe1fafd08ecccdd97ea0684b /lisp/dos-fns.el | |
parent | 4f0a10eb40f227ee6df3af3e9da7cf119d70bbe7 (diff) | |
download | emacs-b1d4be5f6eaa5a04a642727e2a518a2b8002395c.tar.gz |
Hold previous change until after the release.
Diffstat (limited to 'lisp/dos-fns.el')
-rw-r--r-- | lisp/dos-fns.el | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/lisp/dos-fns.el b/lisp/dos-fns.el index b641a886a76..924f5a9b76a 100644 --- a/lisp/dos-fns.el +++ b/lisp/dos-fns.el @@ -28,6 +28,21 @@ ;;; Code: +;;; Add %t: into the mode line format just after the open-paren. +(let ((tail (member " %[(" mode-line-format))) + (setcdr tail (cons (purecopy "%t:") + (cdr tail)))) + +;; Use ";" instead of ":" as a path separator (from files.el). +(setq path-separator ";") + +;; Set the null device (for compile.el). +(setq grep-null-device "NUL") + +;; Set the grep regexp to match entries with drive letters. +(setq grep-regexp-alist + '(("^\\(\\([a-zA-Z]:\\)?[^:( \t\n]+\\)[:( \t]+\\([0-9]+\\)[:) \t]" 1 3))) + ;; This overrides a trivial definition in files.el. (defun convert-standard-filename (filename) "Convert a standard file's name to something suitable for the current OS. @@ -78,6 +93,63 @@ with a definition that really does change some file names." (aset string (1- (length string)) lastchar)) (concat dir string)))) +(defvar file-name-buffer-file-type-alist + '( + ("[:/].*config.sys$" . nil) ; config.sys text + ("\\.elc$" . t) ; emacs stuff + ("\\.\\(obj\\|exe\\|com\\|lib\\|sys\\|chk\\|out\\|bin\\|ico\\|pif\\)$" . t) + ; MS-Dos stuff + ("\\.\\(arc\\|zip\\|pak\\|lzh\\|zoo\\)$" . t) + ; Packers + ("\\.\\(a\\|o\\|tar\\|z\\|gz\\|taz\\)$" . t) + ; Unix stuff + ("\\.tp[ulpw]$" . t) + ; Borland Pascal stuff + ("[:/]tags$" . t) + ; Emacs TAGS file + ) + "*Alist for distinguishing text files from binary files. +Each element has the form (REGEXP . TYPE), where REGEXP is matched +against the file name, and TYPE is nil for text, t for binary.") + +(defun find-buffer-file-type (filename) + (let ((alist file-name-buffer-file-type-alist) + (found nil) + (code nil)) + (let ((case-fold-search t)) + (setq filename (file-name-sans-versions filename)) + (while (and (not found) alist) + (if (string-match (car (car alist)) filename) + (setq code (cdr (car alist)) + found t)) + (setq alist (cdr alist)))) + (if found + (cond((memq code '(nil t)) code) + ((and (symbolp code) (fboundp code)) + (funcall code filename))) + default-buffer-file-type))) + +(defun find-file-binary (filename) + "Visit file FILENAME and treat it as binary." + (interactive "FFind file binary: ") + (let ((file-name-buffer-file-type-alist '(("" . t)))) + (find-file filename))) + +(defun find-file-text (filename) + "Visit file FILENAME and treat it as a text file." + (interactive "FFind file text: ") + (let ((file-name-buffer-file-type-alist '(("" . nil)))) + (find-file filename))) + +(defun find-file-not-found-set-buffer-file-type () + (save-excursion + (set-buffer (current-buffer)) + (setq buffer-file-type (find-buffer-file-type (buffer-file-name)))) + nil) + +;;; To set the default file type on new files. +(add-hook 'find-file-not-found-hooks 'find-file-not-found-set-buffer-file-type) + (defvar msdos-shells '("command.com" "4dos.com" "ndos.com") "*List of shells that use `/c' instead of `-c' and a backslashed command.") |