+2006-12-04 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * textmodes/sgml-mode.el (sgml-font-lock-keywords-1): Fix pathological
+ O(n^2) regexp-search by anchoring the search.
+
2006-12-04 Dan Nicolaescu <dann@ics.uci.edu>
* whitespace.el (whitespace-cleanup-internal): Use current
<indicate-empty-lines, case-fold-search>:
Add "globally" to Help string.
<case-fold-search>: MESSAGE arg need not say "globally".
- (menu-bar-edit-menu <paste-from-menu>): Renamed from select-and-paste.
+ (menu-bar-edit-menu <paste-from-menu>): Rename from select-and-paste.
2006-12-03 Liam Healy <lnp@healy.washington.dc.us> (tiny change)
docstring error.
(allout-yank-processing): Fix depth shift of multiple-topic so yanks
work again, using allout-ascend's new option.
- (allout-setup-mode-map): Extracted from allout-mode to initialize
+ (allout-setup-mode-map): Extract from allout-mode to initialize
allout-mode-map. Call it on file load, so the mode docstring
substitutions work even if allout mode has not yet been invoked.
(allout-mode): Use new allout-setup-mode-map to track any keybinding
2006-11-29 J.D. Smith <jdsmith@as.arizona.edu>
- * progmodes/idlwave.el (idlwave-auto-fill): Remove
- paragraph-start let to prevent auto-fill giving up.
+ * progmodes/idlwave.el (idlwave-auto-fill):
+ Remove paragraph-start let to prevent auto-fill giving up.
2006-11-28 Juanma Barranquero <lekktu@gmail.com>
2006-11-27 Andreas Seltenreich <uwi7@rz.uni-karlsruhe.de>
- * emacs-lisp/easy-mmode.el (easy-mmode-define-navigation): Fix
- interactive spec of the functions getting defined to make them
+ * emacs-lisp/easy-mmode.el (easy-mmode-define-navigation):
+ Fix interactive spec of the functions getting defined to make them
work as documented.
2006-11-28 Chong Yidong <cyd@stupidchicken.com>
(1 (if (match-end 2) sgml-namespace-face font-lock-function-name-face))
(2 font-lock-function-name-face nil t))
;; FIXME: this doesn't cover the variables using a default value.
- (,(concat "\\(" sgml-namespace-re "\\)\\(?::\\("
+ ;; The first shy-group is an important anchor: it prevents an O(n^2)
+ ;; pathological case where we otherwise keep retrying a failing match
+ ;; against a very long word at every possible position within the word.
+ (,(concat "\\(?:^\\|[ \t]\\)\\(" sgml-namespace-re "\\)\\(?::\\("
sgml-name-re "\\)\\)?=[\"']")
(1 (if (match-end 2) sgml-namespace-face font-lock-variable-name-face))
(2 font-lock-variable-name-face nil t))