diff options
| author | Carsten Dominik | 2009-08-08 12:11:52 +0000 |
|---|---|---|
| committer | Carsten Dominik | 2009-08-08 12:11:52 +0000 |
| commit | 0bee8557515c5d1efb7de923fef9bd7e215c6363 (patch) | |
| tree | 1e16dfe4d8be42c585e952a955ada5214bd8b794 | |
| parent | 0e9aba0f37627516d9a29c9def7620a586eb6f7b (diff) | |
| download | emacs-0bee8557515c5d1efb7de923fef9bd7e215c6363.tar.gz emacs-0bee8557515c5d1efb7de923fef9bd7e215c6363.zip | |
Revert clobbered changes to org-rmail.el
| -rw-r--r-- | lisp/org/org-rmail.el | 85 |
1 files changed, 51 insertions, 34 deletions
diff --git a/lisp/org/org-rmail.el b/lisp/org/org-rmail.el index 101b0026dd7..aed410f3d01 100644 --- a/lisp/org/org-rmail.el +++ b/lisp/org/org-rmail.el | |||
| @@ -6,7 +6,7 @@ | |||
| 6 | ;; Author: Carsten Dominik <carsten at orgmode dot org> | 6 | ;; Author: Carsten Dominik <carsten at orgmode dot org> |
| 7 | ;; Keywords: outlines, hypermedia, calendar, wp | 7 | ;; Keywords: outlines, hypermedia, calendar, wp |
| 8 | ;; Homepage: http://orgmode.org | 8 | ;; Homepage: http://orgmode.org |
| 9 | ;; Version: 6.29c | 9 | ;; Version: 6.21b |
| 10 | ;; | 10 | ;; |
| 11 | ;; This file is part of GNU Emacs. | 11 | ;; This file is part of GNU Emacs. |
| 12 | ;; | 12 | ;; |
| @@ -36,8 +36,11 @@ | |||
| 36 | 36 | ||
| 37 | ;; Declare external functions and variables | 37 | ;; Declare external functions and variables |
| 38 | (declare-function rmail-show-message "rmail" (&optional n no-summary)) | 38 | (declare-function rmail-show-message "rmail" (&optional n no-summary)) |
| 39 | (declare-function rmail-get-header "rmail" (name &optional msgnum)) | ||
| 39 | (declare-function rmail-what-message "rmail" ()) | 40 | (declare-function rmail-what-message "rmail" ()) |
| 40 | (defvar rmail-current-message) | 41 | (defvar rmail-current-message) |
| 42 | (defvar rmail-buffer) | ||
| 43 | (defvar rmail-view-buffer) | ||
| 41 | 44 | ||
| 42 | ;; Install the link type | 45 | ;; Install the link type |
| 43 | (org-add-link-type "rmail" 'org-rmail-open) | 46 | (org-add-link-type "rmail" 'org-rmail-open) |
| @@ -46,29 +49,35 @@ | |||
| 46 | ;; Implementation | 49 | ;; Implementation |
| 47 | (defun org-rmail-store-link () | 50 | (defun org-rmail-store-link () |
| 48 | "Store a link to an Rmail folder or message." | 51 | "Store a link to an Rmail folder or message." |
| 49 | (when (or (eq major-mode 'rmail-mode) | 52 | (when (memq major-mode '(rmail-mode rmail-summary-mode)) |
| 50 | (eq major-mode 'rmail-summary-mode)) | 53 | (let (message-id from to subject desc link) |
| 51 | (save-window-excursion | 54 | (if (fboundp 'rmail-get-header) ; Emacs 23 |
| 52 | (save-restriction | 55 | (setq message-id (rmail-get-header "message-id") |
| 53 | (when (eq major-mode 'rmail-summary-mode) | 56 | from (rmail-get-header "from") |
| 54 | (rmail-show-message rmail-current-message)) | 57 | to (rmail-get-header "to") |
| 55 | (when (fboundp 'rmail-narrow-to-non-pruned-header) | 58 | subject (rmail-get-header "subject")) |
| 56 | (rmail-narrow-to-non-pruned-header)) | 59 | (save-window-excursion ; Emacs 22 |
| 57 | (let* ((folder buffer-file-name) | 60 | (save-restriction |
| 58 | (message-id (mail-fetch-field "message-id")) | 61 | (when (eq major-mode 'rmail-summary-mode) |
| 59 | (from (mail-fetch-field "from")) | 62 | (rmail-show-message rmail-current-message)) |
| 60 | (to (mail-fetch-field "to")) | 63 | (with-no-warnings ; don't warn when compiling Emacs 23 |
| 61 | (subject (mail-fetch-field "subject")) | 64 | (rmail-narrow-to-non-pruned-header)) |
| 62 | desc link) | 65 | (setq message-id (mail-fetch-field "message-id") |
| 63 | (org-store-link-props | 66 | from (mail-fetch-field "from") |
| 64 | :type "rmail" :from from :to to | 67 | to (mail-fetch-field "to") |
| 65 | :subject subject :message-id message-id) | 68 | subject (mail-fetch-field "subject")) |
| 66 | (setq message-id (org-remove-angle-brackets message-id)) | 69 | (rmail-show-message rmail-current-message)))) |
| 67 | (setq desc (org-email-link-description)) | 70 | (org-store-link-props |
| 68 | (setq link (org-make-link "rmail:" folder "#" message-id)) | 71 | :type "rmail" :from from :to to |
| 69 | (org-add-link-props :link link :description desc) | 72 | :subject subject :message-id message-id) |
| 70 | (rmail-show-message rmail-current-message) | 73 | (setq message-id (org-remove-angle-brackets message-id)) |
| 71 | link))))) | 74 | (setq desc (org-email-link-description)) |
| 75 | (setq link (org-make-link "rmail:" | ||
| 76 | (with-current-buffer rmail-buffer | ||
| 77 | buffer-file-name) | ||
| 78 | "#" message-id)) | ||
| 79 | (org-add-link-props :link link :description desc) | ||
| 80 | link))) | ||
| 72 | 81 | ||
| 73 | (defun org-rmail-open (path) | 82 | (defun org-rmail-open (path) |
| 74 | "Follow an Rmail message link to the specified PATH." | 83 | "Follow an Rmail message link to the specified PATH." |
| @@ -83,19 +92,27 @@ | |||
| 83 | "Follow an Rmail link to FOLDER and ARTICLE." | 92 | "Follow an Rmail link to FOLDER and ARTICLE." |
| 84 | (require 'rmail) | 93 | (require 'rmail) |
| 85 | (setq article (org-add-angle-brackets article)) | 94 | (setq article (org-add-angle-brackets article)) |
| 86 | (let (message-number) | 95 | (let (message-number buff) |
| 87 | (save-excursion | 96 | (save-excursion |
| 88 | (save-window-excursion | 97 | (save-window-excursion |
| 89 | (rmail (if (string= folder "RMAIL") rmail-file-name folder)) | 98 | (rmail (if (string= folder "RMAIL") rmail-file-name folder)) |
| 90 | (setq message-number | 99 | (setq buff (current-buffer) |
| 91 | (save-restriction | 100 | message-number |
| 92 | (widen) | 101 | (with-current-buffer |
| 93 | (goto-char (point-max)) | 102 | (if (and (fboundp 'rmail-buffers-swapped-p) |
| 94 | (if (re-search-backward | 103 | (rmail-buffers-swapped-p)) |
| 95 | (concat "^Message-ID:\\s-+" (regexp-quote | 104 | rmail-view-buffer |
| 96 | (or article ""))) | 105 | (current-buffer)) |
| 97 | nil t) | 106 | (save-restriction |
| 98 | (rmail-what-message)))))) | 107 | (widen) |
| 108 | (goto-char (point-max)) | ||
| 109 | (if (re-search-backward | ||
| 110 | (concat "^Message-ID:\\s-+" (regexp-quote | ||
| 111 | (or article ""))) | ||
| 112 | nil t) | ||
| 113 | ;; This is an rmail "debugging" function. :( | ||
| 114 | (with-current-buffer buff | ||
| 115 | (rmail-what-message)))))))) | ||
| 99 | (if message-number | 116 | (if message-number |
| 100 | (progn | 117 | (progn |
| 101 | (rmail (if (string= folder "RMAIL") rmail-file-name folder)) | 118 | (rmail (if (string= folder "RMAIL") rmail-file-name folder)) |