Lazy autoloading of org-id.el to follow links
authorOleh <oleh.krehel@gmail.com>
Sat, 7 Sep 2013 14:42:02 +0000 (7 16:42 +0200)
committerCarsten Dominik <carsten.dominik@gmail.com>
Sat, 7 Sep 2013 19:16:58 +0000 (7 21:16 +0200)
* lisp/org.el (org-open-at-point): The new code is being run in the
same spot as `org-open-link-functions'.  In case they failed, check
if link matches "^id:" and if so, load the id interface and follwo the
link.

This fixes Emacs bug#14910: org-mode `org-open-at-point' doesn't
follow id links.

lisp/org.el

index 7766277..aebf58f 100644 (file)
@@ -10535,8 +10535,14 @@ application the system uses for this file type."
                (error "Abort"))))
 
           ((and (string= type "thisfile")
-                (run-hook-with-args-until-success
-                 'org-open-link-functions path)))
+                (or (run-hook-with-args-until-success
+                     'org-open-link-functions path)
+                    (and (string-match "^id:" link)
+                         (or (featurep 'org-id) (require 'org-id))
+                         (progn
+                           (funcall (nth 1 (assoc "id" org-link-protocols))
+                                    (substring path 3))
+                           t)))))
 
           ((string= type "thisfile")
            (if arg