Index: deuglify.el =================================================================== RCS file: /usr/local/cvsroot/gnus/lisp/deuglify.el,v retrieving revision 6.6 diff -u -r6.6 deuglify.el --- deuglify.el 2003/01/01 19:15:06 6.6 +++ deuglify.el 2003/01/02 21:52:21 @@ -310,18 +310,26 @@ (replace-match "\\1\\2 \\3") (goto-char (match-beginning 0)))))))))) -(defun gnus-outlook-rearrange-article (from-where) - "Put the text from `from-where' to the end of buffer at the top of the article buffer." +(defun gnus-outlook-rearrange-article (attr-start) + "Put the text from `attr-start' to the end of buffer at the top of the article buffer." (save-excursion (let ((inhibit-read-only t) (cite-marks gnus-outlook-deuglify-cite-marks)) (gnus-with-article-buffer (article-goto-body) - ;; attribution out of place? - (unless (= (point) from-where) + ;; article does not start with attribution + (unless (= (point) attr-start) (gnus-kill-all-overlays) - (transpose-regions (point) (+ from-where 1) - (+ from-where 1) (point-max))))))) + (let ((cur (point)) + ;; before signature or end of buffer + (to (if (gnus-article-search-signature) + (point) + (point-max)))) + ;; handle the case where the full quote is below the + ;; signature + (if (< to attr-start) + (setq to (point-max))) + (transpose-regions cur attr-start attr-start to))))))) ;; John Doe wrote in message ;; news:a87usw8$dklsssa$2@some.news.server... @@ -361,15 +369,13 @@ (gnus-with-article-buffer (article-goto-body) (if (re-search-forward - (concat "^----* ?[^-]+ ?----*\n" - "[^\n]+: \\([^\n]+\\)\n" - "[^\n]+: [^\n]+\n" - "[^\n]+: [^\n]+\n" - "[^\n]+: [^\n]+$") + (concat "^[" cite-marks " \t]*----* ?[^-]+ [^-]+ ?----*\n" + "[^\n:]+:[ \t]*\\([^\n]+\\)\n" + "\\([^\n:]+:[ \t]*[^\n]+\n\\)+") nil t) (progn (gnus-kill-all-overlays) - (replace-match "\\1 wrote:") + (replace-match "\\1 wrote:\n") (match-beginning 0))))))) ;; On Wed, 16 Jan 2002 23:23:30 +0100, John Doe wrote: @@ -426,7 +432,13 @@ (interactive) (gnus-outlook-deuglify-article) (with-current-buffer (or gnus-article-buffer (current-buffer)) - (gnus-article-highlight t))) + ;; "Emulate" `gnus-article-prepare-display' without calling + ;; it. Calling `gnus-article-prepare-display' on an already + ;; prepared article removes all MIME parts. I'm unsure whether + ;; this is a bug or not. + (gnus-article-highlight t) + (gnus-treat-article nil) + (gnus-run-hooks 'gnus-article-prepare-hook))) (provide 'deuglify)