Hello org mode developers and experts,
I encountered the following issue which I believe may be an org mode bug:
Tangling a source block that contains a variable from another source block
results in an additional incorrect new line at the end of the variable value in
the tangled output file, /only/ when source block output type is set to
'drawer'.
Here is a minimal example comparing regular source block output (correct)
versus drawer output (error), tested with emacs -Q, GNU Emacs 31.0.50 (build 1,
x86_64-pc-linux-gnu, GTK+ Version 3.24.33, cairo version 1.16.0) of 2025-05-27
and Org 9.7.11:
Allow org blocks to evaluate shell code
=======================================
,----
| (org-babel-do-load-languages
| 'org-babel-load-languages
| '((shell . t)))
`----
Tangle code block with variable input from other source block
=============================================================
Using regular source block output
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Source block that generates the variable
----------------------------------------
,----
| echo "/example/path"
`----
Source block that takes in the variable and which gets tangled
--------------------------------------------------------------
,----
| echo "${idir}"
`----
Display the tangled block
-------------------------
,----
| cat test_default.sh
`----
Looks okay!
Using drawer source block output
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Source block that generates the variable
----------------------------------------
,----
| echo "/example/path"
`----
Source block that takes in the variable and which gets tangled
--------------------------------------------------------------
,----
| echo "${idir}"
`----
Display the tangled block
-------------------------
,----
| cat test_drawer.sh
`----
We have a problem: the closing quote starts on a new line.
Best,
Vincent