diff options
author | Jambunathan K <kjambunathan@gmail.com> | 2010-08-23 04:11:20 +0000 |
---|---|---|
committer | Carsten Dominik <carsten.dominik@gmail.com> | 2010-08-23 12:14:20 +0200 |
commit | 784e5f14888dea7ae98029c38e0f45354f310adf (patch) | |
tree | e0503f3213a5ea2bcd0fe8c3772528521c4b49c1 | |
parent | 9afcc02588e842e5792e65508bb7719355ace352 (diff) | |
download | org-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.el | 11 |
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 |