[PATCH] emacs: Remove over-eager regular expressions from notmuch-wash-tidy-citations.

David Edmondson dme at dme.org
Wed Nov 17 05:32:33 PST 2010


The removed expressions, which were used to ensure that citations were
both preceded and followed by a blank line, were poorly implemented
and caused a regexp stack overflow on messages more than a few
thousand lines long.
---

Carl, I was not able to find a version of the regular expressions that
didn't easily overflow. For now, this patch removes the problematic
expressions and I'll look for a better solution.

 emacs/notmuch-wash.el |   14 ++------------
 1 files changed, 2 insertions(+), 12 deletions(-)

diff --git a/emacs/notmuch-wash.el b/emacs/notmuch-wash.el
index cfcfb21..c4a7a41 100644
--- a/emacs/notmuch-wash.el
+++ b/emacs/notmuch-wash.el
@@ -190,7 +190,7 @@ is what to put on the button."
 (defun notmuch-wash-tidy-citations (depth)
   "Improve the display of cited regions of a message.
 
-Perform four transformations on the message body:
+Perform several transformations on the message body:
 
 - Remove lines of repeated citation leaders with no other
   content,
@@ -214,17 +214,7 @@ Perform four transformations on the message body:
   ;; text.
   (goto-char (point-min))
   (while (re-search-forward "\\(^>[> ]*\n\\)\\(^$\\|^[^>].*\\)" nil t)
-    (replace-match "\\2"))
-
-  ;; Insert a blank line before a citation if there isn't one.
-  (goto-char (point-min))
-  (while (re-search-forward "\\(^[^>]+\\)\n>" nil t)
-    (replace-match "\\1\n\n>"))
-
-  ;; Insert a blank line after a citation if there isn't one.
-  (goto-char (point-min))
-  (while (re-search-forward "\\(^>.+\\)\n\\([^>]\\)" nil t)
-    (replace-match "\\1\n\n\\2")))
+    (replace-match "\\2")))
 
 ;;
 
-- 
1.7.2.3



More information about the notmuch mailing list