changeset 68616:6236390263d7

(magic-mode-regexp-match-limit): New defvar. (set-auto-mode): Use it to limit magic-mode-alist matching.
author Kim F. Storm <storm@cua.dk>
date Sat, 04 Feb 2006 23:33:53 +0000
parents 2b89adb38e4d
children d7f0e90c4cdc
files lisp/files.el
diffstat 1 files changed, 10 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/files.el	Sat Feb 04 23:33:35 2006 +0000
+++ b/lisp/files.el	Sat Feb 04 23:33:53 2006 +0000
@@ -2047,6 +2047,9 @@
 If FUNCTION is nil, then it is not called.  (That is a way of saying
 \"allow `auto-mode-alist' to decide for these files.\")")
 
+(defvar magic-mode-regexp-match-limit 4000
+  "Upper limit on `magic-mode-alist' regexp matches.")
+
 (defun set-auto-mode (&optional keep-mode-if-same)
   "Select major mode appropriate for current buffer.
 
@@ -2120,9 +2123,13 @@
     (unless done
       (if (setq done (save-excursion
 		       (goto-char (point-min))
-		       (assoc-default nil magic-mode-alist
-				      (lambda (re dummy)
-					(looking-at re)))))
+		       (save-restriction
+			 (narrow-to-region (point-min)
+					   (min (point-max)
+						(+ (point-min) magic-mode-regexp-match-limit)))
+			 (assoc-default nil magic-mode-alist
+					(lambda (re dummy)
+					  (looking-at re))))))
 	  (set-auto-mode-0 done keep-mode-if-same)
 	;; Compare the filename against the entries in auto-mode-alist.
 	(if buffer-file-name