Mercurial > emacs
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