summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJambunathan K <kjambunathan@gmail.com>2010-08-23 04:11:20 +0000
committerCarsten Dominik <carsten.dominik@gmail.com>2010-08-23 12:14:20 +0200
commit784e5f14888dea7ae98029c38e0f45354f310adf (patch)
treee0503f3213a5ea2bcd0fe8c3772528521c4b49c1
parent9afcc02588e842e5792e65508bb7719355ace352 (diff)
downloadorg-mode-784e5f14888dea7ae98029c38e0f45354f310adf.tar.gz
org-store-link: Fix storing of links to headlines in indirect buffers
* org.el (org-store-link): Storing of links to headlines in indirect buffers was broken. Fix it. TINYCHANGE Summary: > When org-store-link is invoked on a headline in indirect buffer (as in a > capture buffer), hyperlink gets created to the file and NOT the > headline. This is a bug. > > The attached patch fixes this. > > Setup: > > # ~/.emacs > > (defun my-conversation-id () > (interactive) > > (remove-hook 'org-capture-before-finalize-hook 'my-conversation-id) > > (let ((org-link-to-org-use-id t)) > (call-interactively 'org-store-link) > ) > ) > > # org-capture-templates > > ("x" "Conversations" entry > (file+headline "~/conversation.org" "Conversations") > "%(progn (add-hook 'org-capture-before-finalize-hook 'my-conversation-id) \"\")** Note taken on %U\n %? " :prepend t :empty-lines 1) > > Steps for reproduction: > > Trigger org-capture for the above capture entry. > > Examine conversation.org before/after the patch is applied. Note the > absence/presence of IDs for the captured entry. > > Check for the stored links using C-c C-l. Note the file/headline links. > > # file conversation.org before and after the patch > > * Conversations > > ** Note taken on [2010-08-23 Mon 04:33] > :PROPERTIES: > :ID: 7e1974a6-8fa1-43cf-bef3-2adf37d99130 > :END: > > ** Note taken on [2010-08-23 Mon 04:32] > > # (org-insert-link) showing stored links before and after the patch > > file:~/conversation.org (file:~/conversation.org) > id:7e1974a6-8fa1-43cf-bef3-2adf37d99130 (Note taken on [2010-08-23 Mon 04:33]) >
-rw-r--r--lisp/org.el11
1 files changed, 7 insertions, 4 deletions
diff --git a/lisp/org.el b/lisp/org.el
index 366c8dd..be3b8c3 100644
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -8300,13 +8300,14 @@ For file links, arg negates `org-context-in-file-links'."
(setq cpltxt (concat "file:" file)
link (org-make-link cpltxt))))
- ((and buffer-file-name (org-mode-p))
+ ((and (buffer-file-name (buffer-base-buffer)) (org-mode-p))
(setq custom-id (ignore-errors (org-entry-get nil "CUSTOM_ID")))
(cond
((org-in-regexp "<<\\(.*?\\)>>")
(setq cpltxt
(concat "file:"
- (abbreviate-file-name buffer-file-name)
+ (abbreviate-file-name
+ (buffer-file-name (buffer-base-buffer)))
"::" (match-string 1))
link (org-make-link cpltxt)))
((and (featurep 'org-id)
@@ -8328,11 +8329,13 @@ For file links, arg negates `org-context-in-file-links'."
(error
;; probably before first headline, link to file only
(concat "file:"
- (abbreviate-file-name buffer-file-name))))))
+ (abbreviate-file-name
+ (buffer-file-name (buffer-base-buffer))))))))
(t
;; Just link to current headline
(setq cpltxt (concat "file:"
- (abbreviate-file-name buffer-file-name)))
+ (abbreviate-file-name
+ (buffer-file-name (buffer-base-buffer)))))
;; Add a context search string
(when (org-xor org-context-in-file-links arg)
(setq txt (cond