Mercurial > emacs
changeset 58130:702ed45c4f39
(magic-mode-alist): Reduce backtracking in the HTML regexp.
author | Stefan Monnier <monnier@iro.umontreal.ca> |
---|---|
date | Thu, 11 Nov 2004 04:52:27 +0000 |
parents | 6f1bde62e20e |
children | be4a8443df49 |
files | lisp/ChangeLog lisp/files.el |
diffstat | 2 files changed, 12 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/ChangeLog Wed Nov 10 22:35:21 2004 +0000 +++ b/lisp/ChangeLog Thu Nov 11 04:52:27 2004 +0000 @@ -1,5 +1,7 @@ 2004-11-10 Stefan Monnier <monnier@iro.umontreal.ca> + * files.el (magic-mode-alist): Reduce backtracking in the HTML regexp. + * textmodes/sgml-mode.el (sgml-tag-text-p): New fun. (sgml-parse-tag-backward): Use it to skip spurious < or >. @@ -11,8 +13,7 @@ 2004-11-10 Nick Roberts <nickrob@snap.net.nz> * tooltip.el: Don't require cl, comint, gud, gdb-ui for - compilation. The resulting compiler warnings appear to be - harmless. + compilation. The resulting compiler warnings appear to be harmless. 2004-11-10 Daniel Pfeiffer <occitan@esperanto.org> @@ -69,7 +70,7 @@ (diary-from-outlook-gnus, diary-from-outlook-rmail): Do not use interactive-p; but rather new optional argument NOCONFIRM. -2004-11-09 Stefan <monnier@iro.umontreal.ca> +2004-11-09 Stefan Monnier <monnier@iro.umontreal.ca> * emacs-lisp/easymenu.el (easy-menu-intern): Revert to no-downcasing. (easy-menu-name-match): Revert correspondingly. @@ -232,7 +233,7 @@ * emacs-lisp/easymenu.el (easy-menu-get-map): Fix last change. -2004-11-06 Stefan <monnier@iro.umontreal.ca> +2004-11-06 Stefan Monnier <monnier@iro.umontreal.ca> * emacs-lisp/easymenu.el (easy-menu-get-map-look-for-name): Remove. (easy-menu-lookup-name): New fun to replace it.
--- a/lisp/files.el Wed Nov 10 22:35:21 2004 +0000 +++ b/lisp/files.el Thu Nov 11 04:52:27 2004 +0000 @@ -1866,10 +1866,14 @@ with that interpreter in `interpreter-mode-alist'.") (defvar magic-mode-alist - '(;; The < comes before the groups (but the first) to reduce backtracking. - ;; Is there a nicer way of getting . including \n like Perl's //s? + `(;; The < comes before the groups (but the first) to reduce backtracking. ;; TODO: UTF-16 <?xml may be preceded by a BOM 0xff 0xfe or 0xfe 0xff. - ("\\(?:<\\?xml\\s +[^>]*>\\)?\\s *<\\(?:!--\\(?:.\\|\n\\)*?-->\\s *<\\)*\\(?:!DOCTYPE\\s +[^>]*>\\s *<\\)?\\s *\\(?:!--\\(?:.\\|\n\\)*?-->\\s *<\\)*[Hh][Tt][Mm][Ll]" . html-mode) + (,(let* ((incomment-re "\\(?:[^-]\\|-[^-]\\)") + (comment-re (concat "\\(?:!--" incomment-re "*-->\\s *<\\)"))) + (concat "\\(?:<\\?xml\\s +[^>]*>\\)?\\s *<" + comment-re "*" + "\\(?:!DOCTYPE\\s +[^>]*>\\s *<\\s *" comment-re "*\\)?" + "[Hh][Tt][Mm][Ll]")) . html-mode) ;; These two must come after html, because they are more general: ("<\\?xml " . xml-mode) ("\\s *<\\(?:!--\\(?:.\\|\n\\)*?-->\\s *<\\)*!DOCTYPE " . sgml-mode)