# HG changeset patch # User Kim F. Storm # Date 1139096033 0 # Node ID 6236390263d762b5e124fe712aebb5c2bb2e8032 # Parent 2b89adb38e4d82e47b257f85564f5134be41a326 (magic-mode-regexp-match-limit): New defvar. (set-auto-mode): Use it to limit magic-mode-alist matching. diff -r 2b89adb38e4d -r 6236390263d7 lisp/files.el --- 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