[gnus git] branch master updated: n0-13-71-g4d98974 =1= Use the new citation styles.

Lars Magne Ingebrigtsen <[email protected]>
Newsgroups gmane.emacs.gnus.cvs
Message-ID <[email protected]>
       via  4d989747fbb1b5011f15c9ddc1d642fa0681c08e (commit)
      from  554522c045d2306eca66e7407fb9797ae722d35e (commit)


- Log -----------------------------------------------------------------
commit 4d989747fbb1b5011f15c9ddc1d642fa0681c08e
Author: Antoine Levitt <[email protected]>
Date:   Sat Mar 5 11:10:30 2011 +0100

    Use the new citation styles.
    
    * message.el (message-cite-reply-position, message-cite-style): New
    variables.

diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index c9afde5..d1bafc1 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,9 @@
+2011-03-05  Antoine Levitt  <[email protected]>
+
+	* message.el (message-cite-reply-position, message-cite-style): New
+	variables.
+	(message-yank-original): Use the new citation styles.
+
 2011-03-04  Daiki Ueno  <[email protected]>
 
 	* message.el (message-options): Revert 22da67af (workaround for XEmacs
diff --git a/lisp/message.el b/lisp/message.el
index a6e007a..4fa55ef 100644
--- a/lisp/message.el
+++ b/lisp/message.el
@@ -129,17 +129,6 @@
   :group 'message-buffers
   :type '(choice function (const nil)))
 
-(defcustom message-cite-style nil
-  "The overall style to be used when yanking cited text.
-Values are either `traditional' (cited text first),
-`top-post' (cited text at the bottom), or nil (don't override the
-individual message variables)."
-  :version "24.1"
-  :group 'message-various
-  :type '(choice (const :tag "None" :value nil)
-		 (const :tag "Traditional" :value traditional)
-		 (const :tag "Top-post" :value top-post)))
-
 (defcustom message-fcc-handler-function 'message-output
   "*A function called to save outgoing articles.
 This function will be called with the name of the file to store the
@@ -1132,6 +1121,71 @@ needed."
   :link '(custom-manual "(message)Insertion Variables")
   :group 'message-insertion)
 
+(defcustom message-cite-reply-position 'traditional
+  "*Where the reply should be positioned.
+If `traditional', reply inline.
+If `above', reply above quoted text.
+If `below', reply below quoted text.
+
+Note: Many newsgroups frown upon nontraditional reply styles. You
+probably want to set this variable only for specific groups,
+e.g. using `gnus-posting-styles':
+
+  (eval (set (make-local-variable 'message-cite-reply-above) 'above))"
+  :type '(choice (const :tag "Reply inline" 'traditional)
+		 (const :tag "Reply above" 'above)
+		 (const :tag "Reply below" 'below))
+  :group 'message-insertion)
+
+(defcustom message-cite-style nil
+  "*The overall style to be used when yanking cited text.
+Value is either `nil' (no variable overrides) or a let-style list
+of pairs (VARIABLE VALUE) that will be bound in
+`message-yank-original' to do the quoting.
+
+Presets to impersonate popular mail agents are found in the
+message-cite-style-* variables.  This variable is intended for
+use in `gnus-posting-styles', such as:
+
+  ((posting-from-work-p) (eval (set (make-local-variable 'message-cite-style) message-cite-style-outlook)))"
+  :version "24.1"
+  :group 'message-insertion
+  :type '(choice (const :tag "Do not override variables" :value nil)
+		 (const :tag "MS Outlook" :value message-cite-style-outlook)
+		 (const :tag "Mozilla Thunderbird" :value message-cite-style-thunderbird)
+		 (const :tag "Gmail" :value message-cite-style-gmail)
+		 (variable :tag "User-specified")))
+
+(defconst message-cite-style-outlook
+  '((message-cite-function  'message-cite-original)
+    (message-citation-line-function  'message-insert-formatted-citation-line)
+    (message-cite-reply-position 'above)
+    (message-yank-prefix  "")
+    (message-yank-cited-prefix  "")
+    (message-yank-empty-prefix  "")
+    (message-citation-line-format  "\n\n-----------------------\nOn %a, %b %d %Y, %N wrote:\n"))
+  "Message citation style used by MS Outlook. Use with message-cite-style.")
+
+(defconst message-cite-style-thunderbird
+  '((message-cite-function  'message-cite-original)
+    (message-citation-line-function  'message-insert-formatted-citation-line)
+    (message-cite-reply-position 'above)
+    (message-yank-prefix  "> ")
+    (message-yank-cited-prefix  ">")
+    (message-yank-empty-prefix  ">")
+    (message-citation-line-format "On %D %R %p, %N wrote:"))
+  "Message citation style used by Mozilla Thunderbird. Use with message-cite-style.")
+
+(defconst message-cite-style-gmail
+  '((message-cite-function  'message-cite-original)
+    (message-citation-line-function  'message-insert-formatted-citation-line)
+    (message-cite-reply-position 'above)
+    (message-yank-prefix  "    ")
+    (message-yank-cited-prefix  "    ")
+    (message-yank-empty-prefix  "    ")
+    (message-citation-line-format "On %e %B %Y %R, %f wrote:\n"))
+  "Message citation style used by Gmail. Use with message-cite-style.")
+
 (defcustom message-distribution-function nil
   "*Function called to return a Distribution header."
   :group 'message-news
@@ -3694,17 +3748,6 @@ To use this automatically, you may add this function to
       (while (re-search-forward citexp nil t)
 	(replace-match (if remove "" "\n"))))))
 
-(defvar message-cite-reply-above nil
-  "If non-nil, start own text above the quote.
-
-Note: Top posting is bad netiquette.  Don't use it unless you
-really must.  You probably want to set variable only for specific
-groups, e.g. using `gnus-posting-styles':
-
-  (eval (set (make-local-variable 'message-cite-reply-above) t))
-
-This variable has no effect in news postings.")
-
 (defun message-yank-original (&optional arg)
   "Insert the message being replied to, if any.
 Puts point before the text and mark after.
@@ -3718,20 +3761,17 @@ prefix, and don't delete any headers."
   (interactive "P")
   (let ((modified (buffer-modified-p))
 	body-text)
+    ;; eval the let forms contained in message-cite-style
+    (eval
+     `(let ,message-cite-style
     (when (and message-reply-buffer
 	       message-cite-function)
-      (when message-cite-reply-above
-	(if (and (not (message-news-p))
-		 (or (eq message-cite-reply-above 'is-evil)
-		     (y-or-n-p "\
-Top posting is bad netiquette.  Please don't top post unless you really must.
-Really top post? ")))
+	  (when (equal message-cite-reply-position 'above)
 	    (save-excursion
 	      (setq body-text
 		    (buffer-substring (message-goto-body)
 				      (point-max)))
-	      (delete-region (message-goto-body) (point-max)))
-	  (set (make-local-variable 'message-cite-reply-above) nil)))
+	      (delete-region (message-goto-body) (point-max))))
       (if (bufferp message-reply-buffer)
 	  (delete-windows-on message-reply-buffer t))
       (push-mark (save-excursion
@@ -3752,15 +3792,18 @@ Really top post? ")))
 	    (goto-char (mark t))
 	    (insert-before-markers ?\n)
 	    (goto-char pt))))
-      (when message-cite-reply-above
+	  (case message-cite-reply-position
+	    ('above
 	(message-goto-body)
 	(insert body-text)
 	(insert (if (bolp) "\n" "\n\n"))
 	(message-goto-body))
+	    ('below
+	     (message-goto-signature)))
       ;; Add a `message-setup-very-last-hook' here?
       ;; Add `gnus-article-highlight-citation' here?
       (unless modified
-	(setq message-checksum (message-checksum))))))
+	    (setq message-checksum (message-checksum))))))))
 
 (defun message-yank-buffer (buffer)
   "Insert BUFFER into the current buffer and quote it."

-----------------------------------------------------------------------
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 |  165 ++++++++++++++++++++++++++++++++++--------------------
 2 files changed, 110 insertions(+), 61 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.