[gnus git] branch master updated: m0-9-8-gd21beff =1= Allow specifying what headers to include when forwarding messages

Lars Ingebrigtsen <[email protected]>
Newsgroups gmane.emacs.gnus.cvs
Message-ID <[email protected]>
       via  d21beff04fb6fe6bb1da6c4ada3093a2d204b204 (commit)
      from  69b14ac458e923dcbe9cf740ab868633c055b405 (commit)


- Log -----------------------------------------------------------------
commit d21beff04fb6fe6bb1da6c4ada3093a2d204b204
Author: Lars Ingebrigtsen <[email protected]>
Date:   Fri Jan 31 16:30:03 2014 -0800

    Allow specifying what headers to include when forwarding messages
    
    * lisp/message.el (message-remove-header): Doc fix.
    (message-forward-included-headers): New variable.
    (message-remove-ignored-headers): Use it.
    
    * texi/message.texi (Forwarding): Mention
    `message-forward-included-headers'.

diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index d553205..663cb66 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,9 @@
+2014-02-01  Lars Ingebrigtsen  <[email protected]>
+
+	* message.el (message-remove-header): Doc fix.
+	(message-forward-included-headers): New variable.
+	(message-remove-ignored-headers): Use it.
+
 2014-01-31  Dave Abrahams  <[email protected]>
 
 	* gnus-sum.el (gnus-summary-open-group-with-article): New command.
diff --git a/lisp/message.el b/lisp/message.el
index fe5e2fb..31af76c 100644
--- a/lisp/message.el
+++ b/lisp/message.el
@@ -614,7 +614,8 @@ Done before generating the new subject of a forward."
 		 regexp))
 
 (defcustom message-forward-ignored-headers "^Content-Transfer-Encoding:\\|^X-Gnus"
-  "*All headers that match this regexp will be deleted when forwarding a message."
+  "*All headers that match this regexp will be deleted when forwarding a message.
+This may also be a list of regexps."
   :version "21.1"
   :group 'message-forwarding
   :type '(repeat :value-to-internal (lambda (widget value)
@@ -624,6 +625,19 @@ Done before generating the new subject of a forward."
 			      (widget-editable-list-match widget value)))
 		 regexp))
 
+(defcustom message-forward-included-headers nil
+  "If non-nil, delete non-matching headers when forwarding a message.
+Only headers that match this regexp will be included.  This
+variable should be a regexp or a list of regexps."
+  :version "24.5"
+  :group 'message-forwarding
+  :type '(repeat :value-to-internal (lambda (widget value)
+				      (custom-split-regexp-maybe value))
+		 :match (lambda (widget value)
+			  (or (stringp value)
+			      (widget-editable-list-match widget value)))
+		 regexp))
+
 (defcustom message-ignored-cited-headers "."
   "*Delete these headers from the messages you yank."
   :group 'message-insertion
@@ -2495,6 +2509,7 @@ With prefix-argument just set Follow-Up, don't cross-post."
   "Remove HEADER in the narrowed buffer.
 If IS-REGEXP, HEADER is a regular expression.
 If FIRST, only remove the first instance of the header.
+If REVERSE, remove headers that doesn't match HEADER.
 Return the number of headers removed."
   (goto-char (point-min))
   (let ((regexp (if is-regexp header (concat "^" (regexp-quote header) ":")))
@@ -7418,17 +7433,25 @@ Optional DIGEST will use digest to forward."
     (message-remove-ignored-headers b e)))
 
 (defun message-remove-ignored-headers (b e)
-  (when message-forward-ignored-headers
+  (when (or message-forward-ignored-headers
+	    message-forward-included-headers)
     (save-restriction
       (narrow-to-region b e)
       (goto-char b)
       (narrow-to-region (point)
 			(or (search-forward "\n\n" nil t) (point)))
+      (when message-forward-ignored-headers
 	(let ((ignored (if (stringp message-forward-ignored-headers)
 			   (list message-forward-ignored-headers)
 			 message-forward-ignored-headers)))
 	  (dolist (elem ignored)
-	  (message-remove-header elem t))))))
+	    (message-remove-header elem t))))
+      (when message-forward-included-headers
+	(message-remove-header
+	 (if (listp message-forward-included-headers)
+	     (regexp-opt message-forward-included-headers)
+	   message-forward-included-headers)
+	 t nil t)))))
 
 (defun message-forward-make-body-mime (forward-buffer &optional beg end)
   (let ((b (point)))
@@ -7476,8 +7499,7 @@ Optional DIGEST will use digest to forward."
 	(goto-char (point-max))))
     (setq e (point))
     (insert "<#/mml>\n")
-    (when (and (not message-forward-decoded-p)
-	       message-forward-ignored-headers)
+    (when (not message-forward-decoded-p)
       (message-remove-ignored-headers b e))))
 
 (defun message-forward-make-body-digest-plain (forward-buffer)
diff --git a/texi/ChangeLog b/texi/ChangeLog
index 7dcea99..0f5e019 100644
--- a/texi/ChangeLog
+++ b/texi/ChangeLog
@@ -1,3 +1,8 @@
+2014-02-01  Lars Ingebrigtsen  <[email protected]>
+
+	* message.texi (Forwarding): Mention
+	`message-forward-included-headers'.
+
 2014-01-31  Lars Ingebrigtsen  <[email protected]>
 
 	* gnus.texi: w3 is no longer supported by Gnus.
diff --git a/texi/message.texi b/texi/message.texi
index 24cea1d..0007d14 100644
--- a/texi/message.texi
+++ b/texi/message.texi
@@ -310,7 +310,13 @@ news.
 @table @code
 @item message-forward-ignored-headers
 @vindex message-forward-ignored-headers
-All headers that match this regexp will be deleted when forwarding a message.
+In non-@code{nil}, all headers that match this regexp will be deleted
+when forwarding a message.
+
+@item message-forward-included-headers
+@vindex message-forward-included-headers
+In non-@code{nil}, only headers that match this regexp will be kept
+when forwarding a message.
 
 @item message-make-forward-subject-function
 @vindex message-make-forward-subject-function

-----------------------------------------------------------------------
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we listed those
revisions in full, above.

Summary of changes:
 lisp/ChangeLog    |    6 ++++++
 lisp/message.el   |   40 +++++++++++++++++++++++++++++++---------
 texi/ChangeLog    |    5 +++++
 texi/message.texi |    8 +++++++-
 4 files changed, 49 insertions(+), 10 deletions(-)

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Gnus Project".

The branch, master has been updated


hooks/post-receive
-- 
Gnus Project
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.