emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Alan Schmitt <alan.schmitt@polytechnique.org>
To: Steve Purcell <steve@sanityinc.com>
Cc: emacs-orgmode@gnu.org
Subject: Re: PATCH: Fix malformed "message" links produced by org-mac-link.el
Date: Thu, 09 Oct 2014 14:15:41 +0200	[thread overview]
Message-ID: <m2iojt782a.fsf@charm-wifi.irisa.fr> (raw)
In-Reply-To: <m2zjdoxm4m.fsf@polytechnique.org> (Alan Schmitt's message of "Thu, 25 Sep 2014 08:14:17 +0200")


[-- Attachment #1.1: Type: text/plain, Size: 1065 bytes --]

Hello Steve,

On 2014-09-25 08:14, Alan Schmitt <alan.schmitt@polytechnique.org> writes:

> On 2014-09-24 20:56, Steve Purcell <steve@sanityinc.com> writes:
>
>> On 24 Sep 2014, at 20:01, Alan Schmitt <alan.schmitt@polytechnique.org> wrote:
>>
>>> This was the case here: the string returned by the AppleScript had
>>> quotes (and it still does).
>>> 
>>> For instance, with the message you mention, the call to
>>> org-as-get-selected-mail returns this (doing a debug):
>>> 
>>> Result: "\"message://2.b2af716655bbac583727@NY-WEB01::split::Private beta invitation for Emacs Q&A site - Area 51 - Stack Exchange\””
>>
>>
>> I definitely don’t get quotes in the result of org-as-get-selected-mail.
>
> …
>
>> Not sure how to proceed, then…
>
> It seems that the difference is with getting quotes or not. How about
> changing org-as-get-selected-mail to make sure there is no quote? We
> could for instance test whether the first and last characters are
> quotes, and remove them if they are.

Would this work for you?

Alan


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.2: 0001-org-mac-link.el-Fix-malformed-message-links.patch --]
[-- Type: text/x-patch, Size: 3199 bytes --]

From c6c1a05894e6fb1698d1a12bb2dc6a47874169f6 Mon Sep 17 00:00:00 2001
From: Alan Schmitt <alan.schmitt@polytechnique.org>
Date: Thu, 9 Oct 2014 14:12:05 +0200
Subject: [PATCH] org-mac-link.el: Fix malformed message links

* contrib/lisp/org-mac-link.el (org-mac-message-get-links): Fix and use the `org-mac-paste-applescript-links' helper.

The existing code inserted links which should have been "[[message:ABC][the subject]]"
as "[[essage:ABC][the subjec]]".

Based on a patch by Steve Purcell <steve@sanityinc.com>.
---
 contrib/lisp/org-mac-link.el | 34 +++++++++++-----------------------
 1 file changed, 11 insertions(+), 23 deletions(-)

diff --git a/contrib/lisp/org-mac-link.el b/contrib/lisp/org-mac-link.el
index 979fb18..e1ab56d 100644
--- a/contrib/lisp/org-mac-link.el
+++ b/contrib/lisp/org-mac-link.el
@@ -234,11 +234,15 @@ When done, go grab the link, and insert it at point."
 (defun org-mac-paste-applescript-links (as-link-list)
   "Paste in a list of links from an applescript handler.
 The links are of the form <link>::split::<name>."
-  (let* ((link-list
+  (let* ((noquote-as-link-list 
+	  (if (string-prefix-p "\"" as-link-list) 
+	      (substring as-link-list 1 -1) 
+	    as-link-list))
+	 (link-list
           (mapcar (lambda (x) (if (string-match "\\`\"\\(.*\\)\"\\'" x)
 				  (setq x (match-string 1 x)))
 		    x)
-		  (split-string as-link-list "[\r\n]+")))
+		  (split-string noquote-as-link-list "[\r\n]+")))
          split-link URL description orglink orglink-insert rtn orglink-list)
     (while link-list
       (setq split-link (split-string (pop link-list) "::split::"))
@@ -828,27 +832,11 @@ The Org-syntax text will be pushed to the kill ring, and also returned."
   (interactive "sLink to (s)elected or (f)lagged messages: ")
   (setq select-or-flag (or select-or-flag "s"))
   (message "AppleScript: searching mailboxes...")
-  (let* ((as-link-list
-          (if (string= select-or-flag "s")
-              (org-as-get-selected-mail)
-	    (if (string= select-or-flag "f")
-		(org-as-get-flagged-mail)
-	      (error "Please select \"s\" or \"f\""))))
-         (link-list
-          (mapcar
-           (lambda (x) (if (string-match "\\`\"\\(.*\\)\"\\'" x) (setq x (match-string 1 x))) x)
-           (split-string (substring as-link-list 1 -1) "[\r\n]+")))
-         split-link URL description orglink orglink-insert rtn orglink-list)
-    (while link-list
-      (setq split-link (split-string (pop link-list) "::split::"))
-      (setq URL (car split-link))
-      (setq description (cadr split-link))
-      (when (not (string= URL ""))
-        (setq orglink (org-make-link-string URL description))
-        (push orglink orglink-list)))
-    (setq rtn (mapconcat 'identity orglink-list "\n"))
-    (kill-new rtn)
-    rtn))
+  (org-mac-paste-applescript-links
+   (cond
+    ((string= select-or-flag "s") (org-as-get-selected-mail))
+    ((string= select-or-flag "f") (org-as-get-flagged-mail))
+    (t (error "Please select \"s\" or \"f\"")))))
 
 (defun org-mac-message-insert-selected ()
   "Insert a link to the messages currently selected in Mail.app.
-- 
2.1.2


[-- Attachment #1.3: Type: text/plain, Size: 44 bytes --]



-- 
OpenPGP Key ID : 040D0A3B4ED2E5C7

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 494 bytes --]

  reply	other threads:[~2014-10-09 12:15 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-09-24 10:39 PATCH: Fix malformed "message" links produced by org-mac-link.el Steve Purcell
2014-09-24 15:35 ` Alan Schmitt
2014-09-24 15:42   ` Steve Purcell
2014-09-24 19:01     ` Alan Schmitt
2014-09-24 19:56       ` Steve Purcell
2014-09-25  6:14         ` Alan Schmitt
2014-10-09 12:15           ` Alan Schmitt [this message]
2014-10-09 12:25             ` Steve Purcell
2014-10-09 13:18               ` Alan Schmitt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=m2iojt782a.fsf@charm-wifi.irisa.fr \
    --to=alan.schmitt@polytechnique.org \
    --cc=emacs-orgmode@gnu.org \
    --cc=steve@sanityinc.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).