From 024cc1e6b31e9e3e9e4b8d3aee83221cb3326ee2 Mon Sep 17 00:00:00 2001 Message-ID: <024cc1e6b31e9e3e9e4b8d3aee83221cb3326ee2.1697883034.git.yantar92@posteo.net> From: Ihor Radchenko Date: Sat, 21 Oct 2023 13:08:55 +0300 Subject: [PATCH] org-babel-ref-resolve: Search current buffer when FILE in FILE:REF does not exist * lisp/ob-ref.el (org-babel-ref-resolve): Only search in other file when FILE in FILE:REF exists. * doc/org-manual.org (Passing arguments): * etc/ORG-NEWS (Babel references =FILE:REFERENCE= now search current buffer when =FILE= does not exist): Document the change. Reported-by: Stefano Ghirlanda Link: https://orgmode.org/list/CAK_gY-Q4f82dbDQgyS+FfyeQaHAMXHqygq3e6ZsWnEj-+eoG9A@mail.gmail.com --- doc/org-manual.org | 4 ++++ etc/ORG-NEWS | 6 ++++++ lisp/ob-ref.el | 5 +++-- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/doc/org-manual.org b/doc/org-manual.org index c0e9c8d7e..9a51a38a1 100644 --- a/doc/org-manual.org +++ b/doc/org-manual.org @@ -17764,6 +17764,10 @@ *** Passing arguments : :var NAME=FILE:REFERENCE +When =FILE= does not exist, the reference is searched in the current +file, using the verbatim reference. This way, +=:var table=tbl:example= will be searched inside the current buffer. + Here are examples of passing values by reference: - table :: diff --git a/etc/ORG-NEWS b/etc/ORG-NEWS index 985488016..f64081964 100644 --- a/etc/ORG-NEWS +++ b/etc/ORG-NEWS @@ -13,6 +13,12 @@ Please send Org bug reports to mailto:emacs-orgmode@gnu.org. * Version 9.7 (not released yet) ** Important announcements and breaking changes +*** Babel references =FILE:REFERENCE= now search current buffer when =FILE= does not exist + +When =FILE= does not exist, the reference is searched in the current +file, using the verbatim reference. This way, +=:var table=tbl:example= will be searched inside the current buffer. + *** New export option ~org-export-expand-links~ The new option makes Org expand environment variables in link and INCLUDE paths. diff --git a/lisp/ob-ref.el b/lisp/ob-ref.el index fd6927ccf..b7858569a 100644 --- a/lisp/ob-ref.el +++ b/lisp/ob-ref.el @@ -156,8 +156,9 @@ (defun org-babel-ref-resolve (ref) (when (string-match "^\\(.+\\):\\(.+\\)$" ref) (setq split-file (match-string 1 ref)) (setq split-ref (match-string 2 ref)) - (find-file split-file) - (setq ref split-ref)) + (when (file-exists-p split-file) + (find-file split-file) + (setq ref split-ref))) (org-with-wide-buffer (goto-char (point-min)) (let* ((params (append args '((:results . "none")))) -- 2.42.0