From: Stefan Monnier Date: Wed, 10 Apr 2002 18:19:44 +0000 (+0000) Subject: (fill-context-prefix): Match the two prefixes X-Git-Tag: ttn-vms-21-2-B4~15711 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=419275721fa0d19443bfcafa207f2e611a5793a9;p=emacs.git (fill-context-prefix): Match the two prefixes differently to avoid pathological exponential-time case. --- diff --git a/lisp/textmodes/fill.el b/lisp/textmodes/fill.el index 34fa1f544bb..e4545021cc2 100644 --- a/lisp/textmodes/fill.el +++ b/lisp/textmodes/fill.el @@ -237,18 +237,14 @@ act as a paragraph-separator." ;; just use it (this subsumes the 2 previous checks). ;; Used when first line is `/* ...' and second-line is ;; ` * ...'. - (save-excursion - (goto-char firstline) - (looking-at - (apply 'concat - (mapcar (lambda (c) - (if (memq c '(?\t ?\ )) - ;; The number of chars might not - ;; match up if there's a mix of - ;; tabs and spaces. - "\\([ \t]*\\|.\\)" - (regexp-quote (string c)))) - second-line-prefix)))) + (string-match + (concat "\\`" + (mapconcat + (lambda (c) (regexp-quote (string c))) + (replace-regexp-in-string "[ \t]+" "" first-line-prefix) + "?") + "?\\'") + (replace-regexp-in-string "[ \t]+" "" second-line-prefix)) second-line-prefix ;; Use the longest common substring of both prefixes,