emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Nick Dokos <nicholas.dokos@hp.com>
To: Jeff Horn <jrhorn424@gmail.com>
Cc: nicholas.dokos@hp.com, Org-mode ml <emacs-orgmode@gnu.org>
Subject: Re: [bug] Org link dialog escapes URL spaces incorrectly
Date: Fri, 04 Nov 2011 12:33:00 -0400	[thread overview]
Message-ID: <23807.1320424380@alphaville.dokosmarshall.org> (raw)
In-Reply-To: Message from Jeff Horn <jrhorn424@gmail.com> of "Fri, 04 Nov 2011 11:59:02 EDT." <CA+K2SAyWdWVt-c4ELW_-5FMy1VtcLQjSMWQiD2G4-KEH=L=VGQ@mail.gmail.com>

Jeff Horn <jrhorn424@gmail.com> wrote:

> I just pulled the latest org-mode. The problem persists for me, even
> though it was reported as fixed in a previous thread. Can anyone
> replicate with the latest org?
> 
> Org-mode version 7.7 (release_7.7.513.g2a5877)
> GNU Emacs 24.0.50.3 (i386-apple-darwin9.8.0, NS apple-appkit-949.54)
> of 2011-08-10 on braeburn.aquamacs.org - Aquamacs Distribution 3.xdev
> 
> On Tue, Nov 1, 2011 at 22:02, Jeff Horn <jrhorn424@gmail.com> wrote:
> > Org-mode version 7.7 (release_7.7.404.ga17c.dirty)
> > GNU Emacs 24.0.50.3 (i386-apple-darwin9.8.0, NS apple-appkit-949.54)
> > of 2011-08-10 on braeburn.aquamacs.org - Aquamacs Distribution 3.xdev
> >
> > Inserting a link through the link dialog doesn't escape URLs with
> > spaces properly. Where a space is '%20', org will insert the link as
> > '%2520'. I'm not certain of URL escape codes, but could org be trying
> > to escape the % sign? Perhaps a missing slash in a regexp somewhere?
> >
> > 1) Use =C-c C-l= to use dialog. Paste a link, like the following.
> >
> > http://www.dartmouth.edu/~dirwin/Did%20France%20Cause%20the%20Great%20Depression.pdf
> >
> > 2) Use =C-c C-o= to open the link. Be weirded out about a 404. Inspect URL.
> >
> > ,----[ Actual ]
> > | - [ ] [[http://www.dartmouth.edu/~dirwin/Did%2520France%2520Cause%2520the%2520Great%2520Depression.pdf][Link
> > Description]]
> > `----
> >
> > ,----[ Expected ]
> > | - [ ] [[http://www.dartmouth.edu/~dirwin/Did%20France%20Cause%20the%20Great%20Depression.pdf][Link
> > Description]]
> > `----
> >

The problem is in org-insert-link: in one case, when we edit the link at point,
the link is unescaped:

,----
|      ...
|      ((org-in-regexp org-bracket-link-regexp 1)
|       ;; We do have a link at point, and we are going to edit it.
|       (setq remove (list (match-beginning 0) (match-end 0)))
|       (setq desc (if (match-end 3) (org-match-string-no-properties 3)))
|       (setq link (read-string "Link: "
| 			      (org-link-unescape
| 			       (org-match-string-no-properties 1)))))
`----

but in the other case, when we just paste the link into the minibuffer,
it is not - check from the (unwind-protect ... ) on line 9088 of org.el
and ff to the end of the function: the link that's read from the minibuffer
is passed untouched (well, at least unescaped) to org-make-link-string on
the very last line of the function and apparently the latter reescapes everything:
try replacing the call

    (org-make-link-string link desc)

on the last line of org-insert-link with

    (org-make-link-string (org-link-unescape link) desc)

I think that'll fix it.

Nick

  parent reply	other threads:[~2011-11-04 16:33 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-11-02  2:02 [bug] Org link dialog escapes URL spaces incorrectly Jeff Horn
2011-11-04 15:59 ` Jeff Horn
2011-11-04 16:14   ` Nick Dokos
2011-11-04 16:33   ` Nick Dokos [this message]
2011-11-04 16:52     ` Nick Dokos
     [not found]       ` <CALbR623mDyhC=LRAQBW9-vJxhsFWR0L+xFOKnE3eq5Wn92y04g@mail.gmail.com>
2011-11-04 18:19         ` Nick Dokos
2011-11-04 18:25       ` Nick Dokos
2011-11-05 14:04         ` David Maus
2011-11-05 15:38           ` Nick Dokos
2011-11-06 14:48             ` David Maus
2011-11-06 22:29               ` Nick Dokos
2011-11-13  9:12                 ` David Maus
2011-11-13 17:32                   ` Nick Dokos
2011-12-15  1:30                     ` Jeff Horn
2011-12-18 17:13                       ` David Maus

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=23807.1320424380@alphaville.dokosmarshall.org \
    --to=nicholas.dokos@hp.com \
    --cc=emacs-orgmode@gnu.org \
    --cc=jrhorn424@gmail.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).