I have the following heading with attachments: * Headline :ATTACH: :PROPERTIES: :ID: some_id :END:
Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. *************** TODO how can I? *************** END Etiam vel neque nec dui dignissim bibendum. <point> When calling org-attach-open (C-c C-a f), in the above buffer, I get wrong attachment dir and stray property drawer below END: *************** END :PROPERTIES: :ID: some_other_id :END: Etiam vel neque nec dui dignissim bibendum. Patch is attached.
>From 530d7f705acce53ecb11afd7b7ae91bc65db417e Mon Sep 17 00:00:00 2001 From: Ihor Radchenko <yanta...@gmail.com> Date: Thu, 17 Dec 2020 14:03:30 +0800 Subject: [PATCH] org-attach: Consider inlinetasks when calculating attach dir * lisp/org-attach.el (org-attach): When inside inlinetask, return attachment dir of that task. When outside inlinetask, return attachment dir of the main task ignoring any inlinetasks above point. The call to `org-back-to-heading-or-point-min` does not move point to the actual heading when there is inlinetask above the point. The result is incorrect return value or even creation of property drawer below *...** END line of the last inline task before point. --- lisp/org-attach.el | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/lisp/org-attach.el b/lisp/org-attach.el index e6aa97e00..d117bdd22 100644 --- a/lisp/org-attach.el +++ b/lisp/org-attach.el @@ -256,7 +256,14 @@ Shows a list of commands and prompts for another key to execute a command." (unless marker (error "No item in current line"))) (org-with-point-at marker - (org-back-to-heading-or-point-min t) + (if (and (featurep 'org-inlinetask) + (not (org-inlinetask-in-task-p))) + (org-with-limited-levels + (org-back-to-heading-or-point-min t)) + (if (and (featurep 'org-inlinetask) + (org-inlinetask-in-task-p)) + (org-inlinetask-goto-beginning) + (org-back-to-heading-or-point-min t))) (save-excursion (save-window-excursion (unless org-attach-expert -- 2.26.2