I cannot seem to be able to make org-babel-tangle respect the setting of org-babel-tangle-use-relative-file-links to t. Here is my process after launching "emacs -Q" (the default for org-babel-tangle-use-relative-file-links appears to be true in this configuration):

1. Write example org file named test.org with the following basic contents, making sure that the top line is refreshed with C-c C-c:

#+PROPERTY: header-args :tangle test.py :comments link
* My top level
Here is my description
#+BEGIN_SRC python
print("This is my code")
#+END_SRC

2. Run M-x org-babel-tangle on the org file, which produces test.py with the following contents:

# [[file:d:/mytest/test.org::*My%20top%20level][My top level:1]]
print("This is my code")
# My top level:1 ends here

As can be seen in the first line, it uses an absolute file path containing my org file and py file, rather than the expected relative one.

I looked through the ob-tangle.el file to try and see why this is the case, and it looks like there's some negative boolean result in this if statement in the org-babel-tangle-single-block function which causes it to skip over the code that would make use of the relative path:

                (if (and org-babel-tangle-use-relative-file-links
                         (string-match org-link-types-re link)
                         (string= (match-string 0 link) "file"))

(on the online copy of the code, this is the region under consideration:

https://code.orgmode.org/bzg/org-mode/src/master/lisp/ob-tangle.el#L475

I have not yet tried the most recent development copy because I do not see considerable difference in the relevant lines compared to the version of ob-tangle.el I have, but I can try the development copy as a next step)

Here is the additional bug reporter output, on my Windows 10 64 bit computer.

Emacs  : GNU Emacs 26.3 (build 1, x86_64-w64-mingw32)
 of 2019-08-29
Package: Org mode version 9.1.9 (release_9.1.9-65-g5e4542 @ c:/Useful Programs/emacs-26.3-x86_64/share/emacs/26.3/lisp/org/)

Reply via email to