[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[O] Babel: Why does noweb work differently depending on 'call depth'?
From: |
address@hidden |
Subject: |
[O] Babel: Why does noweb work differently depending on 'call depth'? |
Date: |
Sat, 23 Jun 2018 15:08:42 +0200 (CEST) |
Hi list,
have spent hours with trying to de-mystify this issue, but no chance to get it.
Any hints or doc references are welcome.
Given a src block with a simple if clause depending on parameter p1:
#+NAME: decider
#+BEGIN_SRC emacs-lisp :var p1="tbd" :results output
(cond ((equal p1 "valA")(print "VALUE A"))
((equal p1 "valB")(print "B VALUE"))
(t (print (concat "ERROR: p1=>|" p1 "|< not handled" ))) )
#+END_SRC
Why does the following noweb call result in the t condition (and not in valB as
expected)
although the p1 value seems to be received by the decider block:
#+BEGIN_SRC shell :var x="valB" :noweb yes :results output raw
echo -n <<decider(p1="$x")>>
#+END_SRC
== ERROR: p1=>|valB|< not handled
while hard coded param value will work (valA chosen to differentiate from x):
#+BEGIN_SRC shell :var x="valB" :noweb yes :results output raw
echo -n <<decider(p1="valA")>>
#+END_SRC
#+RESULTS:
VALUE A
Hard coded "valB" will work as well.
Different Linux Emacsen with org-mode 9+ show same results.
Thank you very much in advance,
Jherek
- [O] Babel: Why does noweb work differently depending on 'call depth'?,
address@hidden <=