From: Carsten Dominik <carsten.dominik@gmail.com>
To: Sebastien Delafond <sdelafond@gmx.net>
Cc: emacs-orgmode@gnu.org
Subject: Re: Links with description and '%3f' in URL fail
Date: Thu, 4 Mar 2010 21:51:42 +0100 [thread overview]
Message-ID: <87747619-BC0E-4E20-B8B1-835EB81FE56A@gmail.com> (raw)
In-Reply-To: <20100304170052.734@usenet.piggo.com>
Hi Sebastian,
could you please try if the following patch does solve this issue?
Thanks.
- Carsten
diff --git a/lisp/org.el b/lisp/org.el
index 85b74fa..59d2acf 100644
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -7950,12 +7950,14 @@ This is the list that is used before handing
over to the browser.")
(url-unhex-string text)
(setq table (or table org-link-escape-chars))
(when text
- (let ((re (mapconcat (lambda (x) (regexp-quote (cdr x)))
+ (let ((case-fold-search t)
+ (re (mapconcat (lambda (x) (regexp-quote (downcase (cdr x))))
table "\\|")))
(while (string-match re text)
(setq text
(replace-match
- (char-to-string (car (rassoc (match-string 0 text) table)))
+ (char-to-string (car (rassoc (upcase (match-string 0 text))
+ table)))
t t text)))
text))))
On Mar 4, 2010, at 5:06 PM, Sebastien Delafond wrote:
> Quoting from debian bug report #572404[0]:
>
> This error is quite esoteric. Creating a link with a '%3f' escape
> sequence in its URL (at least HTTP ones) makes it fail to be edited
> with C-c C-l and exported with the error:
>
> org-link-unescape: Wrong type argument: characterp, nil
>
> But only if the link has a description. Other escape sequences like
> '%3e' or '%40' or even the literal '?' corresponding to character
> 0x3f
> don't trigger the error. For instance:
>
> - http://www.example.com/x%3fx doesn't trigger the error
> - [[http://www.example.com/x%3fx][test]] triggers the error
> - [[http://www.example.com/x%3ex][test]] doesn't trigger the error
> - [[http://www.example.com/x?x][test]] doesn't trigger the error
>
> Even more strange, while '%3f' reveals the error, '%3F' does not. I
> guess the ``org-link-unescape`` function has some serious problems
> with the handling of '?': when using '%3F' in an HTTP URL, it is
> unescaped when exported to HTML, resulting most of the time in
> invalid
> URLs, since the '?' character separates the path from query
> arguments.
>
> For instance, in "http://x.org/what%3F" the '%3F' should be left as
> is
> instead of being exported as "http://x.org/what?". In
> "http://x.org/query?foo=bar", the '?' should also be left as is.
>
> Here it's better to trust the user and leave URLs untouched than
> trying to be too smart.
>
> It at least sounds a like strange that it'd behave diffrently
> depending
> on whether or not there is a description alongside the link...
>
> Cheers,
>
> --Seb
>
> [0] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=572404
>
>
>
> _______________________________________________
> Emacs-orgmode mailing list
> Please use `Reply All' to send replies to the list.
> Emacs-orgmode@gnu.org
> http://lists.gnu.org/mailman/listinfo/emacs-orgmode
- Carsten
next prev parent reply other threads:[~2010-03-04 20:51 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-03-04 16:06 Links with description and '%3f' in URL fail Sebastien Delafond
2010-03-04 20:51 ` Carsten Dominik [this message]
2010-03-05 10:00 ` Sebastien Delafond
2010-03-05 12:37 ` Carsten Dominik
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=87747619-BC0E-4E20-B8B1-835EB81FE56A@gmail.com \
--to=carsten.dominik@gmail.com \
--cc=emacs-orgmode@gnu.org \
--cc=sdelafond@gmx.net \
/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).