]> git.eshelyaron.com Git - emacs.git/commitdiff
Optimise ‘point in message header’ check
authorMichal Nazarewicz <mina86@mina86.com>
Tue, 9 Feb 2016 03:05:34 +0000 (14:05 +1100)
committerLars Ingebrigtsen <larsi@gnus.org>
Tue, 9 Feb 2016 03:05:34 +0000 (14:05 +1100)
* lisp/gnus/message.el (message-point-in-header-p): Replace two unbound
regular expression matches with a single bound string match thus
reducing amount of work the function is doing.

lisp/gnus/message.el

index 8a7ed4fffbefa9de9f7c56401791c56cd305ac83..9460710a47785f8e73abbca001fcd418edbb6820 100644 (file)
@@ -3524,12 +3524,12 @@ Message buffers and is not meant to be called directly."
 (defun message-point-in-header-p ()
   "Return t if point is in the header."
   (save-excursion
-    (and
-     (not
-      (re-search-backward
-       (concat "^" (regexp-quote mail-header-separator) "\n") nil t))
-     (re-search-forward
-      (concat "^" (regexp-quote mail-header-separator) "\n") nil t))))
+    (save-restriction
+      (widen)
+      (let ((bound (+ (point-at-eol) 1)) case-fold-search)
+        (goto-char (point-min))
+        (not (search-forward (concat "\n" mail-header-separator "\n")
+                             bound t))))))
 
 (defun message-do-auto-fill ()
   "Like `do-auto-fill', but don't fill in message header."