Hi all,

Say, I have a lisp function working on (and returning a) table:

#+name: insert_hline
#+header: :var fulltable=testtable :var after_row=1
#+begin_src emacs-lisp
  (let ((rrr (cons (quote hline) fulltable))
        (bottomrows (nthcdr after_row fulltable))
        (toprows (reverse (nthcdr (- (length fulltable) after_row) (reverse 
fulltable)))))
    (setcdr rrr bottomrows)
    (setcdr (nthcdr (- after_row 1) fulltable) rrr)
    fulltable)
 #+end_src

Now, I want to apply it on this testtable:
#+name: testtable
| parameter | value |
| amount    |     1 |
| margin    |    12 |



When evaluated directly, this works fine and as expected:

#+results: insert_hline
| parameter | value |
|-----------+-------|
| amount    |     1 |
| margin    |    12 |


But when I call this code block, I miss the header, even though the
manual states
#+begin_quote
For example Emacs Lisp code blocks ignore the :colnames header
argument entirely given the ease with which tables with column names
may be handled directly in Emacs Lisp.
#+end_quote

#+call: insert_hline(fulltable=testtable, after_row=1)

#+results: insert_hline(fulltable=testtable, after_row=1)
| amount |  1 |
| margin | 12 |


If I want to get the header back, I have to explicitly
state ':colnames yes'
#+call: insert_hline(fulltable=testtable,after_row=1) :colnames yes

#+results: insert_hline(fulltable=testtable,after_row=1)
| parameter | value |
|-----------+-------|
| amount    |     1 |
| margin    |    12 |


I guess, that inconsistency I will have to live with?

Best regards,
Andreas


Reply via email to