emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Orgmode] [PATCH 2/2] org-store-link: Fix storing of links to headlines


From: Jambunathan K
Subject: [Orgmode] [PATCH 2/2] org-store-link: Fix storing of links to headlines in indirect buffers
Date: Mon, 23 Aug 2010 04:41:20 +0530
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1.91 (windows-nt)

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


Jambunathan K.

>From 90628b45ee4d270b32f8a56618ca75ceb4a16b21 Mon Sep 17 00:00:00 2001
From: Jambunathan K <address@hidden>
Date: Mon, 23 Aug 2010 02:32:15 +0530
Subject: [PATCH 2/2] 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
---
 lisp/org.el |   11 +++++++----
 1 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/lisp/org.el b/lisp/org.el
index 5db7aab..15379ef 100644
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -8301,13 +8301,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)
@@ -8329,11 +8330,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
-- 
1.7.0.4


reply via email to

[Prev in Thread] Current Thread [Next in Thread]