mirror of
https://git.savannah.gnu.org/git/emacs/org-mode.git
synced 2024-11-26 07:33:39 +00:00
org-babel-result-to-file: Fix results file inside attachment dir
* lisp/ob-core.el (org-babel-result-to-file): When file path in the result contains attachment dir, reduce the path to relative file name when generating attachment: link. * testing/lisp/test-ob.el (test-ob-core/dir-attach): Add test. Reported-by: Johan Tolö <johan@toloe.se> Link: https://orgmode.org/list/875yesnia6.fsf@toloe.se
This commit is contained in:
parent
4dddbc1436
commit
cc5427b7ef
@ -2692,8 +2692,8 @@ specified as an an \"attachment:\" style link."
|
||||
(same-directory?
|
||||
(and base-file-name
|
||||
(not (string= (expand-file-name default-directory)
|
||||
(expand-file-name
|
||||
base-directory)))))
|
||||
(expand-file-name
|
||||
base-directory)))))
|
||||
(request-attachment (eq type 'attachment))
|
||||
(attach-dir (let* ((default-directory base-directory)
|
||||
(dir (org-attach-dir nil t)))
|
||||
@ -2709,7 +2709,9 @@ specified as an an \"attachment:\" style link."
|
||||
((and 'attachment (guard in-attach-dir)) "attachment")
|
||||
(_ "file"))
|
||||
(if (and request-attachment in-attach-dir)
|
||||
(file-relative-name result-file-name)
|
||||
(file-relative-name
|
||||
result-file-name
|
||||
(file-name-as-directory attach-dir))
|
||||
(if (and default-directory
|
||||
base-file-name same-directory?)
|
||||
(if (eq org-link-file-path-type 'adaptive)
|
||||
|
@ -1954,6 +1954,23 @@ nil
|
||||
(file-exists-p (format "%s/test.txt" (org-attach-dir nil t)))
|
||||
(string= (buffer-substring-no-properties (point) (line-end-position))
|
||||
"[[attachment:test.txt]]"))))
|
||||
;; Strip attach dir from the file path.
|
||||
(should
|
||||
(org-test-with-temp-text-in-file
|
||||
"* heading
|
||||
:PROPERTIES:
|
||||
:DIR: custom-attach-dir
|
||||
:END:
|
||||
|
||||
<point>#+begin_src elisp :results value file
|
||||
\"custom-attach-dir/test.txt\"
|
||||
#+end_src"
|
||||
(message "DIR: %s" (org-attach-dir t))
|
||||
(org-babel-execute-src-block)
|
||||
(goto-char (org-babel-where-is-src-block-result))
|
||||
(forward-line)
|
||||
(string= (buffer-substring-no-properties (point) (line-end-position))
|
||||
"[[attachment:test.txt]]")))
|
||||
(should-error
|
||||
(org-test-with-temp-text-in-file
|
||||
"* 'attach with no ID or DIR
|
||||
|
Loading…
Reference in New Issue
Block a user