]> git.eshelyaron.com Git - emacs.git/commitdiff
(magic-mode-alist): Reduce backtracking in the HTML regexp.
authorStefan Monnier <monnier@iro.umontreal.ca>
Thu, 11 Nov 2004 04:52:27 +0000 (04:52 +0000)
committerStefan Monnier <monnier@iro.umontreal.ca>
Thu, 11 Nov 2004 04:52:27 +0000 (04:52 +0000)
lisp/ChangeLog
lisp/files.el

index c6587f7d5eaf5b92d2553ee5dc6720917a58ca68..3d0d67102da2824bc6bb303b59a4d9c428c0912d 100644 (file)
@@ -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.
 
        * 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.
index bfbf0cf39d0e29280f1640068e78e71854ff9a6b..a9a63019997ce9a28fbc17dd18a35871235c66cf 100644 (file)
@@ -1866,10 +1866,14 @@ regular expression.  The mode is then determined as the mode associated
 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)