# HG changeset patch # User Richard M. Stallman # Date 769686517 0 # Node ID 25cf7bc3b8c5be744fc66a5c2227333984eb601f # Parent 96437d76c9db3b47b2e3bb500c2cb5b58880d8bc (interpreter-mode-alist): Add wishx, tclsh. Delete form, scope, shell. (set-auto-mode): Don't get confused by args after #! shell name. diff -r 96437d76c9db -r 25cf7bc3b8c5 lisp/files.el --- a/lisp/files.el Mon May 23 09:25:36 1994 +0000 +++ b/lisp/files.el Mon May 23 09:48:37 1994 +0000 @@ -847,11 +847,10 @@ (defconst interpreter-mode-alist '(("perl" . perl-mode) - ("scope" . tcl-mode) ("wish" . tcl-mode) - ("shell" . tcl-mode) - ("form" . tcl-mode) + ("wishx" . tcl-mode) ("tcl" . tcl-mode) + ("tclsh" . tcl-mode) ("awk" . awk-mode) ("gawk" . awk-mode) ("scm" . scheme-mode)) @@ -871,10 +870,13 @@ (defun set-auto-mode () "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'. +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." @@ -958,11 +960,9 @@ (let ((interpreter (save-excursion (goto-char (point-min)) - (if (looking-at "#! *") - (progn - (goto-char (match-end 0)) - (buffer-substring (point) - (progn (end-of-line) (point)))) + (if (looking-at "#! *\\([^ \t\n]+\\)") + (buffer-substring (match-beginning 1) + (match-end 1)) ""))) elt) ;; Map interpreter name to a mode.