bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#33224: `message-simplify-subject' simplification (and extensibility)


From: Garreau\, Alexandre
Subject: bug#33224: `message-simplify-subject' simplification (and extensibility)
Date: Thu, 01 Nov 2018 07:21:13 +0100
User-agent: Gnus (5.13), GNU Emacs 25.1.1 (i686-pc-linux-gnu, GTK+ Version 3.22.11) of 2017-09-15, modified by Debian

Hi, here a patch simplyfing `message-simplify-subject' to make it
extensible (users can now add their own tailor-made one-arg function to
`message-simplify-subject-functions'), by removing all the explicit
checks and funcall, and just calling all the functions (implicit check
for `message-strip-list-identifiers' is moved to its body, and one for
`message-strip-subject-re' is removed based on previous patch from
<Bug#33200>).

This is my second patch, please tell-me if there’s a problem anywhere.
Not sure if I know how to make patch properly, nor to report bugs
properly.

diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el
index 0c743bd3aa..acd581226a 100644
--- a/lisp/gnus/message.el
+++ b/lisp/gnus/message.el
@@ -2052,8 +2052,9 @@ see `message-narrow-to-headers-or-head'."
   (let ((regexp (if (stringp gnus-list-identifiers)
                    gnus-list-identifiers
                  (mapconcat 'identity gnus-list-identifiers " *\\|"))))
-    (if (string-match (concat "\\(\\(\\(Re: +\\)?\\(" regexp
-                             " *\\)\\)+\\(Re: +\\)?\\)") subject)
+    (if (and (not (equal regexp ""))
+             (string-match (concat "\\(\\(\\(Re: +\\)?\\(" regexp
+                                   " *\\)\\)+\\(Re: +\\)?\\)") subject))
        (concat (substring subject 0 (match-beginning 1))
                (or (match-string 3 subject)
                    (match-string 5 subject))
@@ -6942,21 +6943,12 @@ Useful functions to put in this list include:
   :type '(repeat function))
 
 (defun message-simplify-subject (subject &optional functions)
-  "Return simplified SUBJECT."
-  (unless functions
-    ;; Simplify fully:
-    (setq functions message-simplify-subject-functions))
-  (when (and (memq 'message-strip-list-identifiers functions)
-            gnus-list-identifiers)
-    (setq subject (message-strip-list-identifiers subject)))
-  (when (memq 'message-strip-subject-re functions)
-    (setq subject (message-strip-subject-re subject))))
-  (when (and (memq 'message-strip-subject-trailing-was functions)
-            message-subject-trailing-was-query)
-    (setq subject (message-strip-subject-trailing-was subject)))
-  (when (memq 'message-strip-subject-encoded-words functions)
-    (setq subject (message-strip-subject-encoded-words subject)))
-  subject)
+  "Return simplified SUBJECT.
+Do so by calling each one-argument function in the list of functions
+specified by FUNCTIONS, if non-nil, or by the variable
+`message-simplify-subject-functions' otherwise."
+  (dolist (fun (or functions message-simplify-subject-functions) subject)
+    (setq subject (funcall fun subject))))
 
 ;;;###autoload
 (defun message-reply (&optional to-address wide switch-function)
Gnus v5.13
GNU Emacs 25.1.1 (i686-pc-linux-gnu, GTK+ Version 3.22.11)
 of 2017-09-15, modified by Debian

reply via email to

[Prev in Thread] Current Thread [Next in Thread]