it seems that the :colnames header is not being respected on parsing the
input
to a `#+call:' line containing arguments, but is being applied to the
output!
For example:
#+BEGIN_SRC org
* Identity
#+name: table
| a | b | c |
|---+---+---|
| 1 | 2 | 3 |
#+name: identity
#+BEGIN_SRC emacs-lisp :var table=table :colnames yes
(mapcar 'identity table)
#+END_SRC
#+RESULTS: identity
| a | b | c |
|---+---+---|
| 1 | 2 | 3 |
#+call: identity()
#+RESULTS: identity()
| a | b | c |
|---+---+---|
| 1 | 2 | 3 |
#+call: identity(table=table)
#+RESULTS: identity(table=table)
| a | b | c |
|---+---+---|
| a | b | c |
|---+---+---|
| 1 | 2 | 3 |
* Mapping
#+name: map
#+BEGIN_SRC emacs-lisp :var table=table :colnames yes
(mapcar (lambda (row) (mapcar 'identity row)) table)
#+END_SRC
#+RESULTS: map
| a | b | c |
|---+---+---|
| 1 | 2 | 3 |
#+call: map()
#+RESULTS: map()
| a | b | c |
|---+---+---|
| 1 | 2 | 3 |
All the following generate the error:
/Wrong type argument: sequencep, hline/
because the header and hline are not stripped from the input.
#+call: map(table=table)
#+call: map(table=table) :colnames yes
#+call: map[:colnames yes](table=table) :colnames yes
#+END_SRC