diff options
| -rw-r--r-- | lisp/files.el | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/lisp/files.el b/lisp/files.el index 6c9b9a7542e..71f33e5f1a1 100644 --- a/lisp/files.el +++ b/lisp/files.el | |||
| @@ -2115,7 +2115,8 @@ of the regular expression. The mode is then determined as the mode | |||
| 2115 | associated with that interpreter in `interpreter-mode-alist'.") | 2115 | associated with that interpreter in `interpreter-mode-alist'.") |
| 2116 | 2116 | ||
| 2117 | (defvar magic-mode-alist | 2117 | (defvar magic-mode-alist |
| 2118 | `(;; The < comes before the groups (but the first) to reduce backtracking. | 2118 | `((image-type-from-buffer . image-mode) |
| 2119 | ;; The < comes before the groups (but the first) to reduce backtracking. | ||
| 2119 | ;; TODO: UTF-16 <?xml may be preceded by a BOM 0xff 0xfe or 0xfe 0xff. | 2120 | ;; TODO: UTF-16 <?xml may be preceded by a BOM 0xff 0xfe or 0xfe 0xff. |
| 2120 | ;; We use [ \t\n] instead of `\\s ' to make regex overflow less likely. | 2121 | ;; We use [ \t\n] instead of `\\s ' to make regex overflow less likely. |
| 2121 | (,(let* ((incomment-re "\\(?:[^-]\\|-[^-]\\)") | 2122 | (,(let* ((incomment-re "\\(?:[^-]\\|-[^-]\\)") |
| @@ -2134,10 +2135,11 @@ associated with that interpreter in `interpreter-mode-alist'.") | |||
| 2134 | ("%![^V]" . ps-mode) | 2135 | ("%![^V]" . ps-mode) |
| 2135 | ("# xmcd " . conf-unix-mode)) | 2136 | ("# xmcd " . conf-unix-mode)) |
| 2136 | "Alist of buffer beginnings vs. corresponding major mode functions. | 2137 | "Alist of buffer beginnings vs. corresponding major mode functions. |
| 2137 | Each element looks like (REGEXP . FUNCTION). After visiting a file, | 2138 | Each element looks like (REGEXP . FUNCTION) or (MATCH-FUNCTION . FUNCTION). |
| 2138 | if REGEXP matches the text at the beginning of the buffer, | 2139 | After visiting a file, if REGEXP matches the text at the beginning of the |
| 2139 | `normal-mode' will call FUNCTION rather than allowing `auto-mode-alist' | 2140 | buffer, or calling MATCH-FUNCTION returns non-nil, `normal-mode' will |
| 2140 | to decide the buffer's major mode. | 2141 | call FUNCTION rather than allowing `auto-mode-alist' to decide the buffer's |
| 2142 | major mode. | ||
| 2141 | 2143 | ||
| 2142 | If FUNCTION is nil, then it is not called. (That is a way of saying | 2144 | If FUNCTION is nil, then it is not called. (That is a way of saying |
| 2143 | \"allow `auto-mode-alist' to decide for these files.\")") | 2145 | \"allow `auto-mode-alist' to decide for these files.\")") |
| @@ -2225,7 +2227,9 @@ only set the major mode, if that would change it." | |||
| 2225 | (+ (point-min) magic-mode-regexp-match-limit))) | 2227 | (+ (point-min) magic-mode-regexp-match-limit))) |
| 2226 | (assoc-default nil magic-mode-alist | 2228 | (assoc-default nil magic-mode-alist |
| 2227 | (lambda (re dummy) | 2229 | (lambda (re dummy) |
| 2228 | (looking-at re)))))) | 2230 | (if (functionp re) |
| 2231 | (funcall re) | ||
| 2232 | (looking-at re))))))) | ||
| 2229 | (set-auto-mode-0 done keep-mode-if-same) | 2233 | (set-auto-mode-0 done keep-mode-if-same) |
| 2230 | ;; Compare the filename against the entries in auto-mode-alist. | 2234 | ;; Compare the filename against the entries in auto-mode-alist. |
| 2231 | (if buffer-file-name | 2235 | (if buffer-file-name |