--- /usr/local/lib/xemacs/gnus/lisp/message.el Tue Jan 6 07:48:40 1998 +++ /usr/tmp/message.el Sun Jan 18 14:01:10 1998 @@ -814,6 +814,7 @@ (defvar message-this-is-news nil) (defvar message-this-is-mail nil) (defvar message-draft-article nil) +(defvar message-cite-signatures nil) ;; Byte-compiler warning (defvar gnus-active-hashtb) @@ -1170,6 +1171,7 @@ (define-key message-mode-map "\C-c\C-n" 'message-insert-newsgroups) (define-key message-mode-map "\C-c\C-y" 'message-yank-original) + (define-key message-mode-map "\C-cy" 'message-yank-cited-signatures) (define-key message-mode-map "\C-c\C-q" 'message-fill-yanked-message) (define-key message-mode-map "\C-c\C-w" 'message-insert-signature) (define-key message-mode-map "\C-c\C-r" 'message-caesar-buffer-body) @@ -1689,24 +1691,43 @@ (defun message-cite-original () "Cite function in the standard Message manner." + (unless (local-variable-p 'message-cite-signatures (current-buffer)) + (make-local-variable 'message-cite-signatures) + (setq message-cite-signatures nil)) (let ((start (point)) + (end (mark t)) + sig-start (functions (when message-indent-citation-function (if (listp message-indent-citation-function) message-indent-citation-function (list message-indent-citation-function))))) + (goto-char end) + (when (re-search-backward "^-- $" start t) + (setq sig-start (point-marker))) (goto-char start) (while functions (funcall (pop functions))) (when message-citation-line-function (unless (bolp) (insert "\n")) - (funcall message-citation-line-function)))) + (funcall message-citation-line-function)) + (when sig-start + (setq message-cite-signatures + (append message-cite-signatures + (list (buffer-substring sig-start (mark t))))) + (delete-region sig-start (mark t)) + (set-marker sig-start nil)))) (defun message-insert-citation-line () "Function that inserts a simple citation line." (when message-reply-headers (insert (mail-header-from message-reply-headers) " writes:\n\n"))) + +(defun message-yank-cited-signatures () + "Insert quoted signatures that where elided by the citation function." + (interactive) + (mapc 'insert message-cite-signatures)) (defun message-position-on-field (header &rest afters) (let ((case-fold-search t))