From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Sebastien Vauban" Subject: Re: [babel] Bugs for Emacs Lisp code blocks Date: Mon, 08 Apr 2013 22:14:00 +0200 Message-ID: <86ehek93w7.fsf@somewhere.org> References: <868v4v1x6k.fsf@somewhere.org> <871uamo4e9.fsf@gmail.com> <86d2u6z6kg.fsf@somewhere.org> <87d2u65dr1.fsf@gmail.com> Mime-Version: 1.0 Content-Type: text/plain Return-path: List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org-mXXj517/zsQ@public.gmane.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org-mXXj517/zsQ@public.gmane.org To: emacs-orgmode-mXXj517/zsQ@public.gmane.org Hi Eric, Eric Schulte wrote: > "Sebastien Vauban" writes: >> Eric Schulte wrote: >>> Emacs Lisp is an exception in terms of colname processing, it has default >>> header arguments set to pass column names through to the code block, where >>> the processing may be done trivially in Emacs Lisp. >> >> OK, but I don't understand the precedence of header arguments. I thought >> that a header argument given on the code block preempted all the other >> values (system-wide default for all languages, language defaults, file-wide >> arguments, and subtree arguments). >> >> Why isn't this true here as well? > > That is what is happening here, although combinations of :hlines and > :colnames can be tricky. Especially weird, is that if you want to *unset* a > header argument which is set at a higher level, you need to set it to '(), > as in ":colnames '()". Much clearer, but not yet crystal-clear for me... Let me explain. AFAICT, there were 5 possibles values of the ":colnames" header argument: - no header argument :: (default for all languages but Emacs Lisp) - ":colnames no" :: (default for Emacs Lisp code blocks) - ":colnames yes" :: Tells Org Babel that your first row contains column names. - ":colnames " :: Specifies to use as column names. - ":colnames nil" :: Same as ":colnames yes". Right? Now, indeed, your trick with ":colnames '()" (or even ":colnames ()"...) does work well for Emacs-Lisp... Though, I thought that "()" was equivalent to "nil", but it seems not to be the case, then. Is it because of some sort of type coercion, that would convert nil as a string or something along such lines? Extra question: when do we have to use such a trick? When the value can be a list of things? If yes, why are you talking of ":hlines" -- there is no list argument there? Best regards, Seb -- Sebastien Vauban