]> git.eshelyaron.com Git - emacs.git/commitdiff
(set-auto-mode): Recognize `#!/bin/env INTERPRETER' hack.
authorKarl Heuer <kwzh@gnu.org>
Fri, 15 Dec 1995 21:11:52 +0000 (21:11 +0000)
committerKarl Heuer <kwzh@gnu.org>
Fri, 15 Dec 1995 21:11:52 +0000 (21:11 +0000)
lisp/files.el

index 0f8f69c6bc4c48b6cba74f514c6d454d25fd649c..11ed8883cb33521aa4a05375a954b60cde5d840d 100644 (file)
@@ -1108,12 +1108,14 @@ If `enable-local-variables' is nil, this function does not check for a
                  (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",
+               ;; which finds the interpreter anywhere in $PATH.
                (let ((interpreter
                       (save-excursion
                         (goto-char (point-min))
-                        (if (looking-at "#! *\\([^ \t\n]+\\)")
-                            (buffer-substring (match-beginning 1)
-                                              (match-end 1))
+                        (if (looking-at "#! *\\([^ \t\n]*/bin/env +\\)?\\([^ \t\n]+\\)")
+                            (buffer-substring (match-beginning 2)
+                                              (match-end 2))
                           "")))
                      elt)
                  ;; Map interpreter name to a mode.