emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[O] [babel] lisp block evaluation vs. call


From: Andreas Leha
Subject: [O] [babel] lisp block evaluation vs. call
Date: Thu, 22 Mar 2012 09:26:28 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.94 (gnu/linux)

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

[Prev in Thread] Current Thread [Next in Thread]