changeset 6575:9aba6be8e460

(hack-local-variables-prop-line): Search two lines if "#!". Ignore keyword `mode', since it's already been handled.
author Karl Heuer <kwzh@gnu.org>
date Tue, 29 Mar 1994 07:08:23 +0000
parents f0e1ed0e82a7
children 851ee89bae86
files lisp/files.el
diffstat 1 files changed, 7 insertions(+), 14 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/files.el	Tue Mar 29 06:59:50 1994 +0000
+++ b/lisp/files.el	Tue Mar 29 07:08:23 1994 +0000
@@ -974,20 +974,15 @@
   ;; set-auto-mode should already have handled that.
   (save-excursion
     (goto-char (point-min))
-    (skip-chars-forward " \t\n\r")
-    (let ((result '())
-	  (end (save-excursion (end-of-line) (point))))
+    (let ((result nil)
+	  (end (save-excursion (end-of-line (and (looking-at "^#!") 2)) (point))))
       ;; Parse the -*- line into the `result' alist.
       (cond ((not (search-forward "-*-" end t))
 	     ;; doesn't have one.
 	     nil)
 	    ((looking-at "[ \t]*\\([^ \t\n\r:;]+\\)\\([ \t]*-\\*-\\)")
-	     ;; Simple form: "-*- MODENAME -*-".
-	     (setq result
-	       (list (cons 'mode
-			   (intern (buffer-substring
-				    (match-beginning 1)
-				    (match-end 1)))))))
+	     ;; Simple form: "-*- MODENAME -*-".  Already handled.
+	     nil)
 	    (t
 	     ;; Hairy form: '-*-' [ <variable> ':' <value> ';' ]* '-*-'
 	     ;; (last ";" is optional).
@@ -1005,7 +1000,8 @@
 		     (val (save-restriction
 			    (narrow-to-region (point) end)
 			    (read (current-buffer)))))
-		 (setq result (cons (cons key val) result))
+		 (or (eq key 'mode)
+		     (setq result (cons (cons key val) result)))
 		 (skip-chars-forward " \t;")))
 	     (setq result (nreverse result))))
       
@@ -1026,10 +1022,7 @@
 			  (y-or-n-p (format "Set local variables as specified in -*- line of %s? "
 					    (file-name-nondirectory buffer-file-name)))))))
 	  (while result
-	    (let ((key (car (car result)))
-		  (val (cdr (car result))))
-	      (or (eq key 'mode)
-		  (hack-one-local-variable key val)))
+	    (hack-one-local-variable (car (car result)) (cdr (car result)))
 	    (setq result (cdr result)))))))
 
 (defun hack-local-variables ()