From 5cce080e9551156ad58ca9391a69734777f3a07e Mon Sep 17 00:00:00 2001 From: "Kim F. Storm" Date: Sat, 4 Feb 2006 23:33:53 +0000 Subject: [PATCH] (magic-mode-regexp-match-limit): New defvar. (set-auto-mode): Use it to limit magic-mode-alist matching. --- lisp/files.el | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/lisp/files.el b/lisp/files.el index 112056e4f9e..969c2d93659 100644 --- a/lisp/files.el +++ b/lisp/files.el @@ -2047,6 +2047,9 @@ to decide the buffer's major mode. 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 @@ only set the major mode, if that would change it." (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 -- 2.39.2