From mboxrd@z Thu Jan 1 00:00:00 1970 From: Carsten Dominik Subject: Re: Re: org-mew.el: Bug in creating links to messages marked for refile Date: Fri, 21 Nov 2008 12:18:37 +0100 Message-ID: References: <20081119.000407.94369039.kames@fa2.so-net.ne.jp> Mime-Version: 1.0 (Apple Message framework v929.2) Content-Type: text/plain; charset=WINDOWS-1252; format=flowed; delsp=yes Content-Transfer-Encoding: quoted-printable Return-path: Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1L3U2A-00057M-BV for emacs-orgmode@gnu.org; Fri, 21 Nov 2008 06:18:46 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1L3U27-00057A-FI for emacs-orgmode@gnu.org; Fri, 21 Nov 2008 06:18:45 -0500 Received: from [199.232.76.173] (port=57423 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1L3U27-000577-B4 for emacs-orgmode@gnu.org; Fri, 21 Nov 2008 06:18:43 -0500 Received: from ug-out-1314.google.com ([66.249.92.170]:13386) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1L3U28-0007sC-5P for emacs-orgmode@gnu.org; Fri, 21 Nov 2008 06:18:44 -0500 Received: by ug-out-1314.google.com with SMTP id 36so82931uga.17 for ; Fri, 21 Nov 2008 03:18:42 -0800 (PST) In-Reply-To: <20081119.000407.94369039.kames@fa2.so-net.ne.jp> List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Tokuya Kameshima Cc: emacs-orgmode@gnu.org Hi Tokuya, strangely enough I have not heard back from Harri. Are you confident =20= about the new version so that I should install in into the Org tree? =20= Could you provide me wit a ChangeLog entry? Thanks a lot. Best wishes - Carsten On Nov 18, 2008, at 4:04 PM, Tokuya Kameshima wrote: > Hi Harri, > > Thank you for the bug report and clear explanation. Could you try the > attached version of org-mew.el? > > Thanks, > --Tokuya > >> From: Harri Kiiskinen utu.fi> >> Subject: org-mew.el: Bug in creating links to messages marked for =20 >> refile >> Newsgroups: gmane.emacs.orgmode >> Date: 2008-11-17 10:07:51 GMT (1 day, 4 hours and 48 minutes ago) >> >> There's a small bug in org-mew.el, which appears when trying to store >> links to messages which have been marked for refile. I try to be as >> clear as possible: >> >> First, a working case: >> >> when storing a link to a message on an IMAP server, the result is =20 >> like >> this: >> >> [[mew:UTU:%inbox#20081117.115043.144292908.harri.kiiskinen =20 >> utu.fi][Email >> from Harri Kiiskinen: test]] >> >> which is exactly as it should be: First the link type ("mew:"), then >> the mew case and the folder name ("UTU:%inbox"), and then the Message >> ID. (This is a message I sent to myself.) >> Link type: "mew:" >> mew case: "UTU:" >> folder: "=89inbox" >> message id: "#20081117......" >> >> Now, I set the refile mark on the message, and create a new link to >> it. The result is: >> >> [[mew:%2008#20081117.115043.144292908.harri.kiiskinen utu.fi]=20 >> [Email >> from Harri Kiiskinen: test]] >> >> Now, the mew case is still set to UTU, meaning that mew will refile >> the message to folder UTU:%2008, but the link that is created by >> org-mew-store-link does not include the case information. We have: >> Link type: mew: >> case: (empty) >> folder: %2008 >> message id: (the rest) >> >> I'm no quite able to figure where the bug might be, but I'll keep >> trying. >> >> Harri K. > > ;;; org-mew.el --- Support for links to Mew messages from within Org-=20= > mode > > ;; Copyright (C) 2008 Free Software Foundation, Inc. > > ;; Author: Tokuya Kameshima > ;; Keywords: outlines, hypermedia, calendar, wp > ;; Homepage: http://orgmode.org > ;; Version: 6.03pre03 > > ;; This file is part of GNU Emacs. > > ;; GNU Emacs is free software: you can redistribute it and/or modify > ;; it under the terms of the GNU General Public License as published =20= > by > ;; the Free Software Foundation, either version 3 of the License, or > ;; (at your option) any later version. > > ;; GNU Emacs is distributed in the hope that it will be useful, > ;; but WITHOUT ANY WARRANTY; without even the implied warranty of > ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > ;; GNU General Public License for more details. > > ;; You should have received a copy of the GNU General Public License > ;; along with GNU Emacs. If not, see . > = ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;= ;;; > ;; > ;;; Commentary: > > ;; This file implements links to Mew messages from within Org-mode. > ;; Org-mode loads this module by default - if this is not what you =20 > want, > ;; configure the variable `org-modules'. > > ;;; Code: > > (require 'org) > > (defgroup org-mew nil > "Options concerning the Mew link." > :tag "Org Startup" > :group 'org-link) > > (defcustom org-mew-link-to-refile-destination t > "Create a link to the refile destination if the message is marked as =20= > refile." > :group 'org-mew > :type 'boolean) > > ;; Declare external functions and variables > (declare-function mew-cache-hit "ext:mew-cache" (fld msg &optional =20 > must-hit)) > (declare-function mew-case-folder "ext:mew-func" (case folder)) > (declare-function mew-header-get-value "ext:mew-header" > (field &optional as-list)) > (declare-function mew-init "ext:mew" ()) > (declare-function mew-refile-get "ext:mew-refile" (msg)) > (declare-function mew-sinfo-get-case "ext:mew-summary" ()) > (declare-function mew-summary-display "ext:mew-summary2" (&optional =20= > redisplay)) > (declare-function mew-summary-folder-name "ext:mew-=20 > syntax" (&optional ext)) > (declare-function mew-summary-get-mark "ext:mew-mark" ()) > (declare-function mew-summary-message-number2 "ext:mew-syntax" ()) > (declare-function mew-summary-pick-with-mewl "ext:mew-pick" > (pattern folder src-msgs)) > (declare-function mew-summary-search-msg "ext:mew-const" (msg)) > (declare-function mew-summary-set-message-buffer "ext:mew-=20 > summary3" (fld msg)) > (declare-function mew-summary-visit-folder "ext:mew-summary4" > (folder &optional goend no-ls)) > (declare-function mew-window-push "ext:mew" ()) > (defvar mew-init-p) > (defvar mew-summary-goto-line-then-display) > > ;; Install the link type > (org-add-link-type "mew" 'org-mew-open) > (add-hook 'org-store-link-functions 'org-mew-store-link) > > ;; Implementation > (defun org-mew-store-link () > "Store a link to a Mew folder or message." > (when (memq major-mode '(mew-summary-mode mew-virtual-mode)) > (let* ((msgnum (mew-summary-message-number2)) > (mark-info (mew-summary-get-mark)) > (folder-name > (if (and org-mew-link-to-refile-destination > (eq mark-info ?o)) ; marked as refile > (mew-case-folder (mew-sinfo-get-case) > (nth 1 (mew-refile-get msgnum))) > (mew-summary-folder-name))) > message-id from to subject desc link) > (save-window-excursion > (if (fboundp 'mew-summary-set-message-buffer) > (mew-summary-set-message-buffer folder-name msgnum) > (set-buffer (mew-cache-hit folder-name msgnum t))) > (setq message-id (mew-header-get-value "Message-Id:")) > (setq from (mew-header-get-value "From:")) > (setq to (mew-header-get-value "To:")) > (setq subject (mew-header-get-value "Subject:"))) > (org-store-link-props :type "mew" :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 "mew:" folder-name > "#" message-id)) > (org-add-link-props :link link :description desc) > link))) > > (defun org-mew-open (path) > "Follow the Mew message link specified by PATH." > (let (folder msgnum) > (cond ((string-match "\\`\\(+.*\\)+\\+\\([0-9]+\\)\\'" path) ; for =20= > Bastien's > (setq folder (match-string 1 path)) > (setq msgnum (match-string 2 path))) > ((string-match "\\`\\(\\(%#\\)?[^#]+\\)\\(#\\(.*\\)\\)?" path) > (setq folder (match-string 1 path)) > (setq msgnum (match-string 4 path))) > (t (error "Error in Mew link"))) > (require 'mew) > (mew-window-push) > (unless mew-init-p (mew-init)) > (mew-summary-visit-folder folder) > (when msgnum > (if (not (string-match "\\`[0-9]+\\'" msgnum)) > (let* ((pattern (concat "message-id=3D" msgnum)) > (msgs (mew-summary-pick-with-mewl pattern folder nil))) > (setq msgnum (car msgs)))) > (if (mew-summary-search-msg msgnum) > (if mew-summary-goto-line-then-display > (mew-summary-display)) > (error "Message not found"))))) > > (provide 'org-mew) > > ;; arch-tag: 07ccdca7-6020-4941-a593-588a1e51b870 > > ;;; org-mew.el ends here > _______________________________________________ > Emacs-orgmode mailing list > Remember: use `Reply All' to send replies to the list. > Emacs-orgmode@gnu.org > http://lists.gnu.org/mailman/listinfo/emacs-orgmode