From mboxrd@z Thu Jan 1 00:00:00 1970 From: Carsten Dominik Subject: Re: Please test links Date: Wed, 19 Mar 2008 07:57:33 +0100 Message-ID: <97FF87EE-7A0A-449B-A530-859066109C24@science.uva.nl> References: <5630A0B5-EF80-41AE-B275-51CCB86EC2D8@science.uva.nl> Mime-Version: 1.0 (Apple Message framework v919.2) Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit Return-path: Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1JbsF9-0001zR-8p for emacs-orgmode@gnu.org; Wed, 19 Mar 2008 02:57:47 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1JbsF8-0001y2-8d for emacs-orgmode@gnu.org; Wed, 19 Mar 2008 02:57:46 -0400 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1JbsF8-0001xi-3B for emacs-orgmode@gnu.org; Wed, 19 Mar 2008 02:57:46 -0400 Received: from mx20.gnu.org ([199.232.41.8]) by monty-python.gnu.org with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1JbsF7-0003KI-K1 for emacs-orgmode@gnu.org; Wed, 19 Mar 2008 02:57:45 -0400 Received: from fg-out-1718.google.com ([72.14.220.158]) by mx20.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1JbsF6-0000wG-G0 for emacs-orgmode@gnu.org; Wed, 19 Mar 2008 02:57:44 -0400 Received: by fg-out-1718.google.com with SMTP id d23so326500fga.30 for ; Tue, 18 Mar 2008 23:57:42 -0700 (PDT) In-Reply-To: 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 Thanks. Of no other users of WL comment on this, I will install your changes. Thanks! - Carsten On Mar 18, 2008, at 5:20 PM, Tokuya Kameshima wrote: > Hi Carsten, > > Thank you for the feedback. > > On Mon, 17 Mar 2008 08:39:32 +0100, > Carsten Dominik wrote: >>> - org-wl-store-link: If the message on the cursor line is marked as >>> refile ("o"), set the link's folder to the refile destionation >>> folder. I prefer this behavior since I read the email in the inbox >>> folder, set the refile mark, and create TODO task using remember >>> package from the email before performing the refile operation. >>> After I create tasks, I execute the refile. >> >> I don't really know wl at all, so I am not sure how other people >> use this and if this would change or limit different set-ups. >> Maybe this can be made configurable? Or is this not necessary >> because it only does something when the message is marked for >> refiling? > > I introduced a variable `org-wl-link-to-refile-destination' to > org-wl.el attached below. If the variable is set to non-nil, > `org-wl-store-link' creates a link not to the current folder but to > the refile destination if the message is marked as refile. Otherwise, > it creates a link to the current folder. > > Thanks, > --Tokuya > > > ;;; org-wl.el - Support for links to Wanderlust messages in Org-mode > > ;; Copyright (C) 2004, 2005, 2006, 2007, 2008 Free Software > Foundation, Inc. > > ;; Author: Carsten Dominik > ;; Keywords: outlines, hypermedia, calendar, wp > ;; Homepage: http://orgmode.org > ;; Version: 1.0 > ;; > ;; 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 > by > ;; the Free Software Foundation; either version 3, 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; see the file COPYING. If not, write to the > ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, > ;; Boston, MA 02110-1301, USA. > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; > ;; > ;;; Commentary: > > ;; This file implements links to Wanderlust messages for Org-mode. > ;; Org-mode loads this module by default - if this is not what you > want, > ;; configure the variable `org-modules'. > > (require 'org) > > (defgroup org-wl nil > "Options concerning the Wanderlust link." > :tag "Org Startup" > :group 'org-link) > > (defcustom org-wl-link-to-refile-destination t > "Create a link to the refile destination if the message is marked > as refile." > :group 'org-wl > :type 'boolean) > > ;; Declare external functions and variables > (declare-function elmo-folder-exists-p "ext:elmo" (folder) t) > (declare-function elmo-message-entity-field "ext:elmo-msgdb" > (entity field &optional type)) > (declare-function elmo-message-field "ext:elmo" > (folder number field &optional type) t) > (declare-function elmo-msgdb-overview-get-entity "ext:elmo" (&rest > unknown) t) > ;; Backward compatibility to old version of wl > (declare-function wl-summary-buffer-msgdb "ext:wl-folder" (&rest > unknown) t) > (declare-function wl-folder-get-elmo-folder "ext:wl-folder" > (entity &optional no-cache)) > (declare-function wl-summary-goto-folder-subr "ext:wl-summary" > (&optional name scan-type other-window sticky interactive > scoring force-exit)) > (declare-function wl-summary-jump-to-msg-by-message-id "ext:wl- > summary" > (&optional id)) > (declare-function wl-summary-line-from "ext:wl-summary" ()) > (declare-function wl-summary-line-subject "ext:wl-summary" ()) > (declare-function wl-summary-message-number "ext:wl-summary" ()) > (declare-function wl-summary-redisplay "ext:wl-summary" (&optional > arg)) > (declare-function wl-summary-registered-temp-mark "ext:wl- > action" (number)) > (defvar wl-summary-buffer-elmo-folder) > (defvar wl-summary-buffer-folder-name) > > ;; Install the link type > (org-add-link-type "wl" 'org-wl-open) > (add-hook 'org-store-link-functions 'org-wl-store-link) > > ;; Implementation > (defun org-wl-store-link () > "Store a link to an WL folder or message." > (when (eq major-mode 'wl-summary-mode) > (let* ((msgnum (wl-summary-message-number)) > (mark-info (wl-summary-registered-temp-mark msgnum)) > (folder-name > (if (and org-wl-link-to-refile-destination > mark-info > (equal (nth 1 mark-info) "o")) ; marked as refile > (nth 2 mark-info) > wl-summary-buffer-folder-name)) > (message-id (elmo-message-field wl-summary-buffer-elmo-folder > msgnum 'message-id)) > (wl-message-entity > (if (fboundp 'elmo-message-entity) > (elmo-message-entity > wl-summary-buffer-elmo-folder msgnum) > (elmo-msgdb-overview-get-entity > msgnum (wl-summary-buffer-msgdb)))) > (from (wl-summary-line-from)) > (to (let ((to-field (elmo-message-entity-field wl-message-entity > 'to))) > (if (listp to-field) > (car to-field) > to-field))) > (subject (let (wl-thr-indent-string wl-parent-message-entity) > (wl-summary-line-subject))) > desc link) > (org-store-link-props :type "wl" :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 "wl:" folder-name > "#" message-id)) > (org-add-link-props :link link :description desc) > link))) > > (defun org-wl-open (path) > "Follow an WL message link." > ;; XXX: The imap-uw's MH folder names start with "%#". > (if (not (string-match "\\`\\(\\(?:%#\\)?[^#]+\\)\\(#\\(.*\\)\\)?" > path)) > (error "Error in Wanderlust link")) > (let ((folder (match-string 1 path)) > (article (match-string 3 path))) > (if (not (elmo-folder-exists-p (wl-folder-get-elmo-folder folder))) > (error "No such folder: %s" folder)) > (let ((old-buf (current-buffer)) > (old-point (point-marker))) > (wl-folder-goto-folder-subr folder) > (save-excursion > ;; XXX: `wl-folder-goto-folder-subr' moves point to the > ;; beginning of the current line. So, restore the point > ;; in the old buffer. > (set-buffer old-buf) > (goto-char old-point)) > (wl-thread-open-all) > (and (wl-summary-jump-to-msg-by-message-id (org-add-angle- > brackets > article)) > (wl-summary-redisplay))))) > > (provide 'org-wl) > > ;;; org-wl.el ends here