[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