emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] emacs/lisp/org org-rmail.el


From: Carsten Dominik
Subject: [Emacs-diffs] emacs/lisp/org org-rmail.el
Date: Sat, 08 Aug 2009 12:11:53 +0000

CVSROOT:        /sources/emacs
Module name:    emacs
Changes by:     Carsten Dominik <cdominik>      09/08/08 12:11:53

Modified files:
        lisp/org       : org-rmail.el 

Log message:
        Revert clobbered changes to org-rmail.el

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/org/org-rmail.el?cvsroot=emacs&r1=1.27&r2=1.28

Patches:
Index: org-rmail.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/org/org-rmail.el,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -b -r1.27 -r1.28
--- org-rmail.el        6 Aug 2009 09:14:14 -0000       1.27
+++ org-rmail.el        8 Aug 2009 12:11:52 -0000       1.28
@@ -6,7 +6,7 @@
 ;; Author: Carsten Dominik <carsten at orgmode dot org>
 ;; Keywords: outlines, hypermedia, calendar, wp
 ;; Homepage: http://orgmode.org
-;; Version: 6.29c
+;; Version: 6.21b
 ;;
 ;; This file is part of GNU Emacs.
 ;;
@@ -36,8 +36,11 @@
 
 ;; Declare external functions and variables
 (declare-function rmail-show-message "rmail" (&optional n no-summary))
+(declare-function rmail-get-header "rmail" (name &optional msgnum))
 (declare-function rmail-what-message "rmail" ())
 (defvar rmail-current-message)
+(defvar rmail-buffer)
+(defvar rmail-view-buffer)
 
 ;; Install the link type
 (org-add-link-type "rmail" 'org-rmail-open)
@@ -46,29 +49,35 @@
 ;; Implementation
 (defun org-rmail-store-link ()
   "Store a link to an Rmail folder or message."
-  (when (or (eq major-mode 'rmail-mode)
-           (eq major-mode 'rmail-summary-mode))
-    (save-window-excursion
+  (when (memq major-mode '(rmail-mode rmail-summary-mode))
+    (let (message-id from to subject desc link)
+      (if (fboundp 'rmail-get-header)  ; Emacs 23
+         (setq message-id (rmail-get-header "message-id")
+               from (rmail-get-header "from")
+               to (rmail-get-header "to")
+               subject (rmail-get-header "subject"))
+       (save-window-excursion          ; Emacs 22
       (save-restriction
        (when (eq major-mode 'rmail-summary-mode)
          (rmail-show-message rmail-current-message))
-       (when (fboundp 'rmail-narrow-to-non-pruned-header)
+           (with-no-warnings     ; don't warn when compiling Emacs 23
          (rmail-narrow-to-non-pruned-header))
-       (let* ((folder buffer-file-name)
-              (message-id (mail-fetch-field "message-id"))
-              (from (mail-fetch-field "from"))
-              (to (mail-fetch-field "to"))
-              (subject (mail-fetch-field "subject"))
-              desc link)
+           (setq message-id (mail-fetch-field "message-id")
+                 from (mail-fetch-field "from")
+                 to (mail-fetch-field "to")
+                 subject (mail-fetch-field "subject"))
+           (rmail-show-message rmail-current-message))))
          (org-store-link-props
           :type "rmail" :from from :to to
           :subject subject :message-id message-id)
          (setq message-id (org-remove-angle-brackets message-id))
          (setq desc (org-email-link-description))
-         (setq link (org-make-link "rmail:" folder "#" message-id))
+      (setq link (org-make-link "rmail:"
+                               (with-current-buffer rmail-buffer
+                                 buffer-file-name)
+                               "#" message-id))
          (org-add-link-props :link link :description desc)
-         (rmail-show-message rmail-current-message)
-         link)))))
+      link)))
 
 (defun org-rmail-open (path)
   "Follow an Rmail message link to the specified PATH."
@@ -83,11 +92,17 @@
   "Follow an Rmail link to FOLDER and ARTICLE."
   (require 'rmail)
   (setq article (org-add-angle-brackets article))
-  (let (message-number)
+  (let (message-number buff)
     (save-excursion
       (save-window-excursion
        (rmail (if (string= folder "RMAIL") rmail-file-name folder))
-       (setq message-number
+       (setq buff (current-buffer)
+             message-number
+             (with-current-buffer
+                 (if (and (fboundp 'rmail-buffers-swapped-p)
+                          (rmail-buffers-swapped-p))
+                     rmail-view-buffer
+                   (current-buffer))
              (save-restriction
                (widen)
                (goto-char (point-max))
@@ -95,7 +110,9 @@
                     (concat "^Message-ID:\\s-+" (regexp-quote
                                                  (or article "")))
                     nil t)
-                   (rmail-what-message))))))
+                     ;; This is an rmail "debugging" function. :(
+                     (with-current-buffer buff
+                       (rmail-what-message))))))))
     (if message-number
        (progn
          (rmail (if (string= folder "RMAIL") rmail-file-name folder))




reply via email to

[Prev in Thread] Current Thread [Next in Thread]