summaryrefslogtreecommitdiff
path: root/rt-liberation-gnus.el
diff options
context:
space:
mode:
Diffstat (limited to 'rt-liberation-gnus.el')
-rw-r--r--rt-liberation-gnus.el45
1 files changed, 22 insertions, 23 deletions
diff --git a/rt-liberation-gnus.el b/rt-liberation-gnus.el
index f809bea..ad39cde 100644
--- a/rt-liberation-gnus.el
+++ b/rt-liberation-gnus.el
@@ -45,11 +45,6 @@
:type 'string
:group 'rt-liber-gnus)
-(defcustom rt-liber-gnus-answer-headers nil
- "*Alist of additional message headers."
- :type 'list
- :group 'rt-liber-gnus)
-
(defcustom rt-liber-gnus-provisional-tag "PROVISIONAL"
"*Subject line text for a provisional response."
:type 'string
@@ -61,13 +56,6 @@
:type 'string
:group 'rt-liber-gnus)
-(defcustom rt-liber-gnus-signature
- "--
- Regards."
- "Signature to append to email."
- :type 'string
- :group 'rt-liber-gnus)
-
(defcustom rt-liber-gnus-subject-regexp
""
"Regular expression to capture the ticket number in the subject
@@ -80,6 +68,10 @@ line of an email. For example: \\[company.com #\\([0-9].+?\\)\\]"
(require 'gnus-msg)
+(defvar rt-liber-gnus-p nil
+ "Non-nil when rt-liberation-gnus is composing a Gnus buffer.")
+
+
(defun rt-liber-gnus-compose (addr ticket-alist options)
"Create a Gnus *mail* buffer for the RT email interface.
ADDR email address.
@@ -90,7 +82,23 @@ OPTIONS association list of options.
(suppress-subject (cdr (assoc 'suppress-subject options)))
(top-matter (cdr (assoc 'top-matter options)))
(contents (cdr (assoc 'contents options)))
- (no-comment (cdr (assoc 'no-comment options))))
+ (no-comment (cdr (assoc 'no-comment options)))
+ (rt-liber-gnus-p t)
+ (comment-start ">")
+ message-text)
+ ;; prepare the text
+ (with-temp-buffer
+ (when top-matter
+ (insert top-matter))
+ (when contents
+ (newline 2)
+ (insert contents))
+ (when (not no-comment)
+ (comment-region (point-min) (point-max)))
+ (setq message-text (buffer-substring (point-min) (point-max))))
+ ;; launch into gnus and prepare the mail message
+ (when (not (gnus-alive-p))
+ (error "Gnus has been shut down"))
(gnus-setup-message 'message
(message-mail
addr
@@ -100,19 +108,10 @@ OPTIONS association list of options.
(cond (suppress-subject "")
(provisional rt-liber-gnus-provisional-tag)
(t (rt-liber-format "Re: %s" ticket-alist))))
- rt-liber-gnus-answer-headers
nil
'switch-to-buffer))
- (goto-char (point-max))
(save-excursion
- (when top-matter (insert top-matter))
- (let ((start (point)))
- (when contents (newline 2) (insert contents))
- (when (not no-comment)
- (comment-region start (point))))
- (newline 2)
- (insert rt-liber-gnus-signature)
- (newline))))
+ (insert message-text))))
(defun rt-liber-gnus-content-to-string ()
"Return the current content section as a string"