emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* Bug: unable to open link unless `...from-string' [7.7 (release_7.7.292.g0d4e8.dirty)]
@ 2011-09-16 16:03 Dave Abrahams
  2011-09-16 18:09 ` David Maus
  0 siblings, 1 reply; 8+ messages in thread
From: Dave Abrahams @ 2011-09-16 16:03 UTC (permalink / raw)
  To: emacs-orgmode



Remember to cover the basics, that is, what you expected to happen and
what in fact did happen.  You don't know how to make a good report?  See

     http://orgmode.org/manual/Feedback.html#Feedback

Your bug report will be posted to the Org-mode mailing list.
------------------------------------------------------------------------

I have an Org link as follows:

  [[message://m2k4n46n5p.wl%dave@boostpro.com]]

When I try to `C-c C-o' it, opening fails because the link-handling code
sees this string for the link:

  "m2k4n46n5p.wlÚve@boostpro.com"

which you may notice is different.  If I do 

   (org-open-link-from-string "message://m2k4n46n5p.wl%dave@boostpro.com")

on the other hand, it works just fine.

Emacs  : GNU Emacs 23.3.1 (x86_64-apple-darwin10.8.0, Carbon Version 1.6.0 AppKit 1038.36)
 of 2011-09-12 on pluto.luannocracy.com
Package: Org-mode version 7.7 (release_7.7.292.g0d4e8.dirty)

current state:
==============
(setq
 org-x-backends '(ox-org ox-redmine)
 org-agenda-deadline-leaders '("D: " "D%d: ")
 org-clock-in-switch-to-state "STARTED"
 org-agenda-skip-scheduled-if-deadline-is-shown t
 org-export-latex-after-initial-vars-hook '(org-beamer-after-initial-vars)
 org-x-redmine-title-prefix-match-function 'org-x-redmine-title-prefix-match
 org-speed-command-hook '(org-speed-command-default-hook org-babel-speed-command-hook)
 org-agenda-custom-commands '(("E" "Errands (next 3 days)" tags
                               "Errand&TODO<>\"DONE\"&TODO<>\"CANCELED\"&STYLE<>\"habit\"&SCHEDULED<\"<+3d>\""
                               ((org-agenda-overriding-header "Errands (next 3 days)")))
                              ("A" "Priority #A tasks" agenda ""
                               ((org-agenda-ndays 1) (org-agenda-overriding-header "Today's priority #A tasks: ")
                                (org-agenda-skip-function
                                 (quote (org-agenda-skip-entry-if (quote notregexp) "\\=.*\\[#A\\]")))
                                )
                               )
                              ("b" "Priority #A and #B tasks" agenda ""
                               ((org-agenda-ndays 1)
                                (org-agenda-overriding-header "Today's priority #A and #B tasks: ")
                                (org-agenda-skip-function
                                 (quote (org-agenda-skip-entry-if (quote regexp) "\\=.*\\[#C\\]")))
                                )
                               )
                              ("p" "Un-prioritized tasks" agenda ""
                               ((org-agenda-overriding-header "Today's un-prioritized tasks: ")
                                (org-agenda-skip-function
                                 (quote (org-agenda-skip-entry-if (quote notregexp) "\\=.*\\[#[ABC]\\]")))
                                )
                               )
                              ("w" "Waiting/delegated tasks" tags "TODO=\"WAITING\"|TODO=\"DELEGATED\""
                               ((org-agenda-overriding-header "Waiting/delegated tasks:")
                                (org-agenda-sorting-strategy (quote (todo-state-up priority-down category-up))))
                               )
                              ("u" "Unscheduled tasks" tags
                               "AREA<>\"Work\"&TODO<>\"\"&TODO<>{DONE\\|CANCELED\\|NOTE\\|PROJECT}"
                               ((org-agenda-files (quote ("~/Documents/Tasks/todo.txt")))
                                (org-agenda-overriding-header "Unscheduled tasks: ")
                                (org-agenda-skip-function
                                 (quote
                                  (org-agenda-skip-entry-if (quote scheduled) (quote deadline) (quote timestamp)
                                   (quote regexp) "\\* \\(DEFERRED\\|SOMEDAY\\)")
                                  )
                                 )
                                (org-agenda-sorting-strategy (quote (priority-down))))
                               )
                              ("U" "Deferred tasks" tags "TODO=\"DEFERRED\""
                               ((org-agenda-files (quote ("~/Documents/Tasks/todo.txt")))
                                (org-agenda-overriding-header "Deferred tasks:"))
                               )
                              ("Y" "Someday tasks" tags "TODO=\"SOMEDAY\""
                               ((org-agenda-overriding-header "Someday tasks:")))
                              ("G" "Ledger tasks (all)" alltodo ""
                               ((org-agenda-files (quote ("~/src/ledger/plan/TODO")))
                                (org-agenda-overriding-header "Ledger tasks:")
                                (org-agenda-sorting-strategy (quote (todo-state-up priority-down category-up))))
                               )
                              ("N" "Ledger tasks (all, alphabetical)" alltodo ""
                               ((org-agenda-files (quote ("~/src/ledger/plan/TODO")))
                                (org-agenda-overriding-header "Ledger tasks, alphabetical:")
                                (org-agenda-sorting-strategy (quote (alpha-up))))
                               )
                              ("l" "Ledger tasks" tags-todo "TODO<>{SOMEDAY\\|DEFERRED}"
                               ((org-agenda-files (quote ("~/src/ledger/plan/TODO")))
                                (org-agenda-overriding-header "Ledger tasks:")
                                (org-agenda-sorting-strategy (quote (todo-state-up priority-down category-up)))
                                (org-agenda-skip-function
                                 (quote (org-agenda-skip-entry-if (quote regexp) "\\=.*\\[#C\\]")))
                                )
                               )
                              ("L" "Ledger tasks not in Bugzilla" tags
                               "TODO<>{DONE\\|TESTED\\|CLOSED\\|NOTE}&LEVEL=2"
                               ((org-agenda-files (quote ("~/src/ledger/plan/TODO")))
                                (org-agenda-overriding-header "Ledger tasks:")
                                (org-agenda-sorting-strategy (quote (todo-state-up priority-down category-up)))
                                (org-agenda-skip-function (quote (org-agenda-skip-entry-if (quote regexp) "#"))))
                               )
                              ("r" "Uncategorized items" tags "CATEGORY=\"Inbox\"&LEVEL=2"
                               ((org-agenda-overriding-header "Uncategorized items")))
                              ("V" "Unscheduled work-related tasks" tags
                               "AREA=\"Work\"&TODO<>\"\"&TODO<>{DONE\\|CANCELED\\|NOTE\\|PROJECT}"
                               ((org-agenda-overriding-header "Unscheduled work-related tasks")
                                (org-agenda-files (quote ("~/Documents/Tasks/todo.txt")))
                                (org-agenda-sorting-strategy (quote (category-up)))
                                (org-agenda-skip-function
                                 (quote
                                  (org-agenda-skip-entry-if (quote scheduled) (quote deadline) (quote timestamp)
                                   (quote regexp) "\\* \\(DEFERRED\\|SOMEDAY\\)")
                                  )
                                 )
                                )
                               )
                              ("W" "Work-related tasks" tags
                               "AREA=\"Work\"&TODO<>\"\"&TODO<>{DONE\\|CANCELED\\|NOTE\\|PROJECT}"
                               ((org-agenda-overriding-header "Work-related tasks")
                                (org-agenda-files (quote ("~/Documents/Tasks/todo.txt")))
                                (org-agenda-sorting-strategy
                                 (quote (category-up priority-down todo-state-up alpha-up)))
                                (org-agenda-skip-function
                                 (quote (org-agenda-skip-entry-if (quote regexp) "\\* \\(DEFERRED\\|SOMEDAY\\)")))
                                )
                               )
                              )
 org-agenda-files '("~/Documents/Tasks/todo.txt" "~/src/ledger/plan/TODO")
 org-agenda-include-diary t
 org-blocker-hook '(org-block-todo-from-children-or-siblings-or-parent)
 org-src-fontify-natively t
 org-agenda-tags-column -100
 org-hide-leading-stars t
 org-clock-into-drawer "LOGBOOK"
 org-completion-use-ido t
 org-metaup-hook '(org-babel-load-in-session-maybe)
 org-capture-templates '(("t" "Task" entry (file+headline "~/Documents/Tasks/todo.txt" "Inbox")
                          "* TODO %?\n  SCHEDULED: %t\n  :PROPERTIES:\n  :ID:       %(shell-command-to-string \"uuidgen\")  :CREATED:  %U\n  :END:" :prepend t)
                         )
 org-footnote-section nil
 org-agenda-scheduled-leaders '("" "S%d: ")
 org-archive-save-context-info '(time category itags)
 org-after-todo-state-change-hook '(org-clock-out-if-current)
 org-babel-tangle-lang-exts '(("python" . "py") ("emacs-lisp" . "el"))
 org-agenda-text-search-extra-files '(agenda-archives)
 org-archive-location "TODO-archive::"
 org-agenda-skip-unavailable-files t
 org-agenda-default-appointment-duration 60
 org-speed-commands-user '(("4" org-priority 68) ("5" org-priority 69) ("-" . org-priority-down)
                           ("+" . org-priority-up))
 org-time-clocksum-use-fractional t
 org-edit-src-content-indentation 0
 org-agenda-sorting-strategy '((agenda habit-down time-up todo-state-up priority-down category-keep)
                               (todo priority-down category-keep) (tags priority-down category-keep)
                               (search category-keep))
 org-export-blocks-postblock-hook '(org-exp-res/src-name-cleanup)
 org-agenda-prefix-format '((agenda . "  %-11:c%?-12t% s") (timeline . "  % s") (todo . "  %-11:c")
                            (tags . "  %-11:c"))
 org-habit-preceding-days 42
 org-export-latex-format-toc-function 'org-export-latex-format-toc-default
 org-agenda-skip-scheduled-if-done t
 org-x-redmine-title-prefix-function 'org-x-redmine-title-prefix
 org-clock-in-resume t
 org-tab-first-hook '(yas/org-very-safe-expand org-hide-block-toggle-maybe org-src-native-tab-command-maybe
                      org-babel-hide-result-toggle-maybe)
 org-src-mode-hook '(org-src-babel-configure-edit-buffer org-src-mode-configure-edit-buffer)
 org-finalize-agenda-hook '(org-agenda-add-overlays)
 org-cycle-global-at-bob t
 org-confirm-shell-link-function nil
 org-export-first-hook '(org-beamer-initialize-open-trackers)
 org-clock-persist 'history
 org-agenda-before-write-hook '(org-agenda-add-entry-text)
 org-default-notes-file "~/Documents/Tasks/todo.txt"
 org-use-property-inheritance '("AREA")
 org-directory "~/Documents/Tasks/"
 org-agenda-persistent-filter t
 org-blank-before-new-entry nil
 org-babel-pre-tangle-hook '(save-buffer)
 org-cycle-hook '(org-cycle-hide-archived-subtrees org-cycle-hide-drawers org-cycle-show-empty-lines
                  org-optimize-window-after-visibility-change)
 org-export-preprocess-before-normalizing-links-hook '(org-remove-file-link-modifiers)
 org-use-speed-commands t
 org-mode-hook '(#[nil "\302\300!\210\303.\304\305\306\"\210\307	\310\311#\207"
                   [yas/trigger-key yas/keymap make-local-variable [tab] add-to-list org-tab-first-hook
                    yas/org-very-safe-expand define-key [tab] yas/next-field]
                   4]
                 #[nil "\300\301!\207" [local-unset-key ".,"] 2]
                 #[nil "\300\301\302\303\304$\207"
                   [org-add-hook change-major-mode-hook org-show-block-all append local] 5]
                 #[nil "\300\301\302\303\304$\207"
                   [org-add-hook change-major-mode-hook org-babel-show-result-all append local] 5]
                 org-babel-result-hide-spec org-babel-hide-all-hashes)
 org-clock-out-remove-zero-time-clocks t
 org-agenda-ndays 1
 org-mobile-pre-pull-hook '(my-org-convert-incoming-items)
 org-ctrl-c-ctrl-c-hook '(org-babel-hash-at-point org-babel-execute-safely-maybe)
 org-log-buffer-setup-hook '(#[nil "\b\301Z\211.\207" [fill-column 5] 2])
 org-return-follows-link t
 org-confirm-elisp-link-function nil
 org-fast-tag-selection-single-key 'expert
 org-todo-repeat-to-state "TODO"
 org-clock-modeline-total 'current
 org-agenda-mode-hook '(#[nil "\300\301!\207" [local-unset-key ".,"] 2])
 org-agenda-start-on-weekday nil
 org-agenda-fontify-priorities t
 org-export-interblocks '((lob org-babel-exp-lob-one-liners) (src org-babel-exp-inline-src-blocks))
 org-clock-out-hook '(org-clock-remove-empty-clock-drawer)
 org-enforce-todo-dependencies t
 org-agenda-skip-deadline-if-done t
 org-reverse-note-order t
 org-occur-hook '(org-first-headline-recenter)
 org-export-babel-evaluate nil
 org-mobile-post-push-hook '(#[nil "\300\301!\210\300\302!\210\300\303!\207"
                               [shell-command "/bin/rm -f ~/Dropbox/MobileOrg/agendas.org"
                                "perl -i -ne 'print unless /agendas\\.org/;'~/Dropbox/MobileOrg/checksums.dat"
                                "perl -i -ne 'print unless /agendas\\.org/;'~/Dropbox/MobileOrg/index.org"]
                               2]
                             )
 org-drawers '("PROPERTIES" "CLOCK" "LOGBOOK" "OUT")
 org-export-preprocess-before-selecting-backend-code-hook '(org-beamer-select-beamer-code)
 org-tags-column -97
 org-modules '(org-id org-info org-habit)
 org-agenda-auto-exclude-function 'org-my-auto-exclude-function
 org-export-latex-final-hook '(org-beamer-amend-header org-beamer-fix-toc org-beamer-auto-fragile-frames
                               org-beamer-place-default-actions-for-lists)
 org-metadown-hook '(org-babel-pop-to-session-maybe)
 org-clock-idle-time 10
 org-attach-method 'mv
 org-export-blocks '((src org-babel-exp-src-block nil) (comment org-export-blocks-format-comment t)
                     (ditaa org-export-blocks-format-ditaa nil) (dot org-export-blocks-format-dot nil))
 )
-- 
Dave Abrahams
BoostPro Computing
http://www.boostpro.com

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Bug: unable to open link unless `...from-string' [7.7 (release_7.7.292.g0d4e8.dirty)]
  2011-09-16 16:03 Bug: unable to open link unless `...from-string' [7.7 (release_7.7.292.g0d4e8.dirty)] Dave Abrahams
@ 2011-09-16 18:09 ` David Maus
  2011-09-16 18:20   ` Dave Abrahams
  0 siblings, 1 reply; 8+ messages in thread
From: David Maus @ 2011-09-16 18:09 UTC (permalink / raw)
  To: Dave Abrahams; +Cc: emacs-orgmode

[-- Attachment #1: Type: text/plain, Size: 1449 bytes --]

At Fri, 16 Sep 2011 12:03:51 -0400,
Dave Abrahams wrote:
> 
> 
> 
> Remember to cover the basics, that is, what you expected to happen and
> what in fact did happen.  You don't know how to make a good report?  See
> 
>      http://orgmode.org/manual/Feedback.html#Feedback
> 
> Your bug report will be posted to the Org-mode mailing list.
> ------------------------------------------------------------------------
> 
> I have an Org link as follows:
> 
>   [[message://m2k4n46n5p.wl%dave@boostpro.com]]
> 
> When I try to `C-c C-o' it, opening fails because the link-handling code
> sees this string for the link:
> 
>   "m2k4n46n5p.wlÚve@boostpro.com"
> 
> which you may notice is different.  If I do 
> 
>    (org-open-link-from-string "message://m2k4n46n5p.wl%dave@boostpro.com")

How did you enter the link into the Org file?

The original link

[[message://m2k4n46n5p.wl%dave@boostpro.com]]

Is unescaped, but Org treats links as always percent-escaped. What
happens is that "%da" is treated as a percent escaped character and
unescaped after read from buffer.

The link should read:

message://m2k4n46n5p.wl%25dave@boostpro.com

This is a troublesome situation

https://lists.gnu.org/archive/html/emacs-orgmode/2011-09/msg00257.html

But up to know I didn't find a solution for it.

Best,
  -- David
-- 
OpenPGP... 0x99ADB83B5A4478E6
Jabber.... dmjena@jabber.org
Email..... dmaus@ictsoc.de

[-- Attachment #2: Type: application/pgp-signature, Size: 230 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Bug: unable to open link unless `...from-string' [7.7 (release_7.7.292.g0d4e8.dirty)]
  2011-09-16 18:09 ` David Maus
@ 2011-09-16 18:20   ` Dave Abrahams
  2011-09-20  4:28     ` David Maus
  0 siblings, 1 reply; 8+ messages in thread
From: Dave Abrahams @ 2011-09-16 18:20 UTC (permalink / raw)
  To: David Maus; +Cc: emacs-orgmode


on Fri Sep 16 2011, David Maus <dmaus-AT-ictsoc.de> wrote:

> How did you enter the link into the Org file?
>
> The original link
>
> [[message://m2k4n46n5p.wl%dave@boostpro.com]]
>
> Is unescaped, but Org treats links as always percent-escaped. What
> happens is that "%da" is treated as a percent escaped character and
> unescaped after read from buffer.
>
> The link should read:
>
> message://m2k4n46n5p.wl%25dave@boostpro.com

Yeah, I finally figured that out.

> This is a troublesome situation
>
> https://lists.gnu.org/archive/html/emacs-orgmode/2011-09/msg00257.html
>
> But up to know I didn't find a solution for it.

Hmm, well, ... the link started out as a a wanderlust link of a form
more like this:

  [[wl:/message-id:"<m2k4n46n5p.wl%dave@boostpro.com>"/%%5BGmail%5D/All%20Mail#103387BF-79B8-4389-AD51-9550873479A1@gmail.com]]

_That_ link used to work.  I transformed links like that by
search/replace into:

  [[message://m2k4n46n5p.wl%dave@boostpro.com]]

So maybe it's my fault?

-- 
Dave Abrahams
BoostPro Computing
http://www.boostpro.com

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Bug: unable to open link unless `...from-string' [7.7 (release_7.7.292.g0d4e8.dirty)]
  2011-09-16 18:20   ` Dave Abrahams
@ 2011-09-20  4:28     ` David Maus
  2011-09-20 16:24       ` Dave Abrahams
  0 siblings, 1 reply; 8+ messages in thread
From: David Maus @ 2011-09-20  4:28 UTC (permalink / raw)
  To: Dave Abrahams; +Cc: David Maus, emacs-orgmode

[-- Attachment #1: Type: text/plain, Size: 1599 bytes --]

At Fri, 16 Sep 2011 14:20:50 -0400,
Dave Abrahams wrote:
>
>
> on Fri Sep 16 2011, David Maus <dmaus-AT-ictsoc.de> wrote:
>
> > How did you enter the link into the Org file?
> >
> > The original link
> >
> > [[message://m2k4n46n5p.wl%dave@boostpro.com]]
> >
> > Is unescaped, but Org treats links as always percent-escaped. What
> > happens is that "%da" is treated as a percent escaped character and
> > unescaped after read from buffer.
> >
> > The link should read:
> >
> > message://m2k4n46n5p.wl%25dave@boostpro.com
>
> Yeah, I finally figured that out.
>
> > This is a troublesome situation
> >
> > https://lists.gnu.org/archive/html/emacs-orgmode/2011-09/msg00257.html
> >
> > But up to know I didn't find a solution for it.
>
> Hmm, well, ... the link started out as a a wanderlust link of a form
> more like this:
>
>   [[wl:/message-id:"<m2k4n46n5p.wl%dave@boostpro.com>"/%%5BGmail%5D/All%20Mail#103387BF-79B8-4389-AD51-9550873479A1@gmail.com]]
>
> _That_ link used to work.  I transformed links like that by
> search/replace into:
>
>   [[message://m2k4n46n5p.wl%dave@boostpro.com]]
>
> So maybe it's my fault?

The original link is alread "wrong", i.e. unescaped.

The key question are

 1. How did you create the original link?
 2. When did you create the original link?

I tried taking a link with `org-store-link' and insert it with
`org-insert-link' and the link was properly escaped.

The link escaping was changed in November 2010, maybe the link in
question is an old one?

Best,
  -- David
--
OpenPGP... 0x99ADB83B5A4478E6
Jabber.... dmjena@jabber.org
Email..... dmaus@ictsoc.de

[-- Attachment #2: Type: application/pgp-signature, Size: 230 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Bug: unable to open link unless `...from-string' [7.7 (release_7.7.292.g0d4e8.dirty)]
  2011-09-20  4:28     ` David Maus
@ 2011-09-20 16:24       ` Dave Abrahams
  2011-09-22  4:50         ` David Maus
  0 siblings, 1 reply; 8+ messages in thread
From: Dave Abrahams @ 2011-09-20 16:24 UTC (permalink / raw)
  To: emacs-orgmode


on Tue Sep 20 2011, David Maus <dmaus-AT-ictsoc.de> wrote:

> The original link is alread "wrong", i.e. unescaped.
>
> The key question are
>
>  1. How did you create the original link?

I used this code:
https://github.com/dabrahams/elisp/blob/master/elisp/autoload.d/wl-setup.el#L801
Is there some encoding step I should have applied?

>  2. When did you create the original link?

It might have been as long as a year ago

> I tried taking a link with `org-store-link' and insert it with
> `org-insert-link' and the link was properly escaped.
>
> The link escaping was changed in November 2010, maybe the link in
> question is an old one?

Yep.

-- 
Dave Abrahams
BoostPro Computing
http://www.boostpro.com

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Bug: unable to open link unless `...from-string' [7.7 (release_7.7.292.g0d4e8.dirty)]
  2011-09-20 16:24       ` Dave Abrahams
@ 2011-09-22  4:50         ` David Maus
  2011-09-22 14:13           ` Dave Abrahams
  0 siblings, 1 reply; 8+ messages in thread
From: David Maus @ 2011-09-22  4:50 UTC (permalink / raw)
  To: Dave Abrahams; +Cc: emacs-orgmode

[-- Attachment #1: Type: text/plain, Size: 999 bytes --]

At Tue, 20 Sep 2011 12:24:48 -0400,
Dave Abrahams wrote:
>
>
> on Tue Sep 20 2011, David Maus <dmaus-AT-ictsoc.de> wrote:
>
> > The original link is alread "wrong", i.e. unescaped.
> >
> > The key question are
> >
> >  1. How did you create the original link?
>
> I used this code:
> https://github.com/dabrahams/elisp/blob/master/elisp/autoload.d/wl-setup.el#L801
> Is there some encoding step I should have applied?

Nope, the code should do the trick. The escaping is currently done
when the link is inserted via `org-insert-link'.

>
> >  2. When did you create the original link?
>
> It might have been as long as a year ago
>
> > I tried taking a link with `org-store-link' and insert it with
> > `org-insert-link' and the link was properly escaped.
> >
> > The link escaping was changed in November 2010, maybe the link in
> > question is an old one?
>
> Yep.

Good. This explains it.

Best,
  -- David
--
OpenPGP... 0x99ADB83B5A4478E6
Jabber.... dmjena@jabber.org
Email..... dmaus@ictsoc.de

[-- Attachment #2: Type: application/pgp-signature, Size: 230 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Bug: unable to open link unless `...from-string' [7.7 (release_7.7.292.g0d4e8.dirty)]
  2011-09-22  4:50         ` David Maus
@ 2011-09-22 14:13           ` Dave Abrahams
  2011-09-25  6:46             ` David Maus
  0 siblings, 1 reply; 8+ messages in thread
From: Dave Abrahams @ 2011-09-22 14:13 UTC (permalink / raw)
  To: David Maus; +Cc: emacs-orgmode


on Thu Sep 22 2011, David Maus <dmaus-AT-ictsoc.de> wrote:

>> > The link escaping was changed in November 2010, maybe the link in
>> > question is an old one?
>>
>> Yep.
>
> Good. This explains it.

I think it's unfortunate that link escaping should have been changed in
a backward-incompatible way.  Seems like the "right" thing to do would
have been to add a fallback to the old interpretation if the new one
failed.

-- 
Dave Abrahams
BoostPro Computing
http://www.boostpro.com

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Bug: unable to open link unless `...from-string' [7.7 (release_7.7.292.g0d4e8.dirty)]
  2011-09-22 14:13           ` Dave Abrahams
@ 2011-09-25  6:46             ` David Maus
  0 siblings, 0 replies; 8+ messages in thread
From: David Maus @ 2011-09-25  6:46 UTC (permalink / raw)
  To: Dave Abrahams; +Cc: David Maus, emacs-orgmode

[-- Attachment #1: Type: text/plain, Size: 1703 bytes --]

At Thu, 22 Sep 2011 10:13:18 -0400,
Dave Abrahams wrote:
>
>
> on Thu Sep 22 2011, David Maus <dmaus-AT-ictsoc.de> wrote:
>
> >> > The link escaping was changed in November 2010, maybe the link in
> >> > question is an old one?
> >>
> >> Yep.
> >
> > Good. This explains it.
>
> I think it's unfortunate that link escaping should have been changed in
> a backward-incompatible way.  Seems like the "right" thing to do would
> have been to add a fallback to the old interpretation if the new one
> failed.

True, but the problem is that AFAIK there is now way to
programmatically check if the new escpaing/unescaping fails. There is
this function:

http://orgmode.org/worg/org-hacks.html#check-old-link-escapes

,----
| Starting with version 7.5 Org uses percent escaping more consistently
| and with a modified algorithm to determine which characters to escape
| and how.
|
| As a side effect this modified behaviour might break existing links if
| they contain a sequence of characters that look like a percent escape
| (e.g. [0-9A-Fa-f]{2}) but are in fact not a percent escape.
|
| The function below can be used to perform a preliminary check for such
| links in an Org mode file. It will run through all links in the file
| and issue a warning if it finds a percent escape sequence which is not
| in old Org's list of known percent escapes.
`----

that might at least tell you if there is a problematic link in an Org
mode buffer. What to do if the func finds a possibly problematic
sequence depends on the link. In the "%dave"-case escaping the percent
sign (% => %25) could be sufficient.

Best,
  -- David
--
OpenPGP... 0x99ADB83B5A4478E6
Jabber.... dmjena@jabber.org
Email..... dmaus@ictsoc.de

[-- Attachment #2: Type: application/pgp-signature, Size: 230 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2011-09-25  6:46 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-09-16 16:03 Bug: unable to open link unless `...from-string' [7.7 (release_7.7.292.g0d4e8.dirty)] Dave Abrahams
2011-09-16 18:09 ` David Maus
2011-09-16 18:20   ` Dave Abrahams
2011-09-20  4:28     ` David Maus
2011-09-20 16:24       ` Dave Abrahams
2011-09-22  4:50         ` David Maus
2011-09-22 14:13           ` Dave Abrahams
2011-09-25  6:46             ` David Maus

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).