]> git.eshelyaron.com Git - emacs.git/commitdiff
(rmail-next-same-subject): Handle multiple "Re: " strings and long subject
authorEli Zaretskii <eliz@gnu.org>
Sat, 10 Dec 2005 11:30:33 +0000 (11:30 +0000)
committerEli Zaretskii <eliz@gnu.org>
Sat, 10 Dec 2005 11:30:33 +0000 (11:30 +0000)
lines that were broken into multiple lines at arbitrary places.

lisp/ChangeLog
lisp/mail/rmail.el

index 39237924e11cbd8739977cc9cc7d27968c2c6b4d..fc01691525fe9597af1442bd9fb86b6411629426 100644 (file)
@@ -1,3 +1,9 @@
+2005-12-10  Eli Zaretskii  <eliz@gnu.org>
+
+       * mail/rmail.el (rmail-next-same-subject): Handle multiple "Re: "
+       strings and long subject lines that were broken into multiple
+       lines at arbitrary places.
+
 2005-12-10  John W. Eaton  <jwe@octave.org>
 
        * emacs/octave-mod.el (octave-electric-space): Don't indent
index 0decf2813aaab1c8524a0df00477ab50ec3ed56d..b45467386ba387b3e2f7010f5a28fc817a3e9593 100644 (file)
@@ -3155,13 +3155,18 @@ If N is negative, go backwards instead."
        search-regexp found)
     (if (string-match "\\`[ \t]+" subject)
        (setq subject (substring subject (match-end 0))))
-    (if (string-match "Re:[ \t]*" subject)
+    (if (string-match "\\`\\(Re:[ \t]*\\)+" subject)
        (setq subject (substring subject (match-end 0))))
     (if (string-match "[ \t]+\\'" subject)
        (setq subject (substring subject 0 (match-beginning 0))))
-    (setq search-regexp (concat "^Subject: *\\(Re:[ \t]*\\)?"
-                               (regexp-quote subject)
-                               "[ \t]*\n"))
+    ;; If Subject is long, mailers will break it into several lines at
+    ;; arbitrary places, so replace whitespace with a regexp that will
+    ;; match any sequence of spaces, TABs, and newlines.
+    (setq subject (regexp-quote subject))
+    (setq subject
+         (replace-regexp-in-string "[ \t\n]+" "[ \t\n]+" subject t t))
+    (setq search-regexp (concat "^Subject: *\\(Re:[ \t]*\\)*"
+                               subject "[ \t]*\n"))
     (save-excursion
       (save-restriction
        (widen)