From: David Maus <dmaus@ictsoc.de>
To: org-mode <emacs-orgmode@gnu.org>
Subject: IMPORTANT Modified link escaping in Org mode
Date: Thu, 17 Feb 2011 20:57:09 +0100 [thread overview]
Message-ID: <87k4gysacq.wl%dmaus@ictsoc.de> (raw)
[-- Attachment #1.1.1: Type: text/plain, Size: 1615 bytes --]
Hello everybody,
I've just pushed a series of commits to current master that modifies
Org modes link escaping functions.
Percent escaping is used in Org mode to escape certain characters in
links that would either break the parser (e.g. square brackets in link
target oder description) or are not allowed to appear in a particular
link type (e.g. non-ascii characters in a http: link).
With this change in place Org will apply percent escaping and
unescaping more consistently especially for non-ascii characters.
Additionally some of the outstanding bugs or glitches concerning
percent escaped links are solved.
However, this change has the potential to break existing links in your
documents in at least one case: Links that contain a literal percent
sign followed by two characters in [0-9a-fA-f] might break if this
sequence of characters is /not/ a percent escape.
E.g. a link to a directory literally called "foo%45bar" will break
because the new unescaping function will happily interpret the "%45"
as a percent encoded letter "E".
To detect at least some of such problematic links you can run the
attached command `dmaus/org-check-percent-escapes' in a Org mode
buffer. It will scan all links in the buffer and issue a warning for
each link that contains a sequence that matches aformentioned pattern
and is not one of the escape sequences used by Org up to know.
If you experience any problems with this change please don't forget to
Cc: me so the complaints will end up in my main mailbox.
Best,
-- David
--
OpenPGP... 0x99ADB83B5A4478E6
Jabber.... dmjena@jabber.org
Email..... dmaus@ictsoc.de
[-- Attachment #1.1.2: dmaus-org-check-percent-escapes.el --]
[-- Type: application/octet-stream, Size: 849 bytes --]
(defun dmaus/org-check-percent-escapes ()
"*Check buffer for possibly problematic old link escapes."
(interactive)
(when (eq major-mode 'org-mode)
(let ((old-escapes '("%20" "%5B" "%5D" "%E0" "%E2" "%E7" "%E8" "%E9"
"%EA" "%EE" "%F4" "%F9" "%FB" "%3B" "%3D" "%2B")))
(unless (boundp 'warning-suppress-types)
(setq warning-suppress-types nil))
(widen)
(show-all)
(goto-char (point-min))
(while (re-search-forward org-any-link-re nil t)
(let ((end (match-end 0)))
(goto-char (match-beginning 0))
(while (re-search-forward "%[0-9a-zA-Z]\\{2\\}" end t)
(let ((escape (match-string-no-properties 0)))
(unless (member (upcase escape) old-escapes)
(warn "Found unknown percent escape sequence %s at buffer %s, position %d"
escape
(buffer-name)
(- (point) 3))))))))))
[-- Attachment #1.2: Type: application/pgp-signature, Size: 230 bytes --]
[-- Attachment #2: Type: text/plain, Size: 201 bytes --]
_______________________________________________
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
next reply other threads:[~2011-02-17 19:57 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-02-17 19:57 David Maus [this message]
2011-02-19 11:11 ` IMPORTANT Modified link escaping in Org mode Bastien
2011-02-20 10:34 ` David Maus
2011-02-22 11:21 ` Bastien
2011-03-13 13:37 ` Michael Brand
2011-03-13 16:04 ` 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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87k4gysacq.wl%dmaus@ictsoc.de \
--to=dmaus@ictsoc.de \
--cc=emacs-orgmode@gnu.org \
/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 external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.