* [babel, bug?] colnames with a list of columns does not work
@ 2015-01-22 10:56 Sebastien Vauban
2015-01-22 15:37 ` Thomas S. Dye
2015-01-22 16:47 ` Rainer M Krug
0 siblings, 2 replies; 7+ messages in thread
From: Sebastien Vauban @ 2015-01-22 10:56 UTC (permalink / raw)
To: emacs-orgmode-mXXj517/zsQ
Hello,
The following ECM shows it all:
#+begin_src R :rownames yes :colnames '(Lg Nb)
data(iris)
head(table(iris$Petal.Length, iris$Species)[, "setosa"])
#+end_src
returns:
| | x |
|-----+----|
| 1 | 1 |
| 1.1 | 1 |
| 1.2 | 2 |
| 1.3 | 7 |
| 1.4 | 13 |
| 1.5 | 13 |
while I was expecting:
| Lg | Nb |
|-----+----|
| 1 | 1 |
| 1.1 | 1 |
| 1.2 | 2 |
| 1.3 | 7 |
| 1.4 | 13 |
| 1.5 | 13 |
Am I missing something?
Best regards,
Seb
--
Sebastien Vauban
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [babel, bug?] colnames with a list of columns does not work
2015-01-22 10:56 [babel, bug?] colnames with a list of columns does not work Sebastien Vauban
@ 2015-01-22 15:37 ` Thomas S. Dye
2015-01-22 16:47 ` Rainer M Krug
1 sibling, 0 replies; 7+ messages in thread
From: Thomas S. Dye @ 2015-01-22 15:37 UTC (permalink / raw)
To: Sebastien Vauban; +Cc: public-emacs-orgmode-mXXj517/zsQ
Aloha Seb,
I don't think babel knows anything about objects created within source
code blocks. I think you'll have to set the column names yourself,
within the R source code block.
All the best,
Tom
Sebastien Vauban <sva-news-D0wtAvR13HarG/iDocfnWg@public.gmane.org>
writes:
> Hello,
>
> The following ECM shows it all:
>
> #+begin_src R :rownames yes :colnames '(Lg Nb)
> data(iris)
> head(table(iris$Petal.Length, iris$Species)[, "setosa"])
> #+end_src
>
> returns:
>
> | | x |
> |-----+----|
> | 1 | 1 |
> | 1.1 | 1 |
> | 1.2 | 2 |
> | 1.3 | 7 |
> | 1.4 | 13 |
> | 1.5 | 13 |
>
> while I was expecting:
>
> | Lg | Nb |
> |-----+----|
> | 1 | 1 |
> | 1.1 | 1 |
> | 1.2 | 2 |
> | 1.3 | 7 |
> | 1.4 | 13 |
> | 1.5 | 13 |
>
> Am I missing something?
>
> Best regards,
> Seb
--
Thomas S. Dye
http://www.tsdye.com
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [babel, bug?] colnames with a list of columns does not work
2015-01-22 10:56 [babel, bug?] colnames with a list of columns does not work Sebastien Vauban
2015-01-22 15:37 ` Thomas S. Dye
@ 2015-01-22 16:47 ` Rainer M Krug
2015-01-23 10:35 ` Sebastien Vauban
1 sibling, 1 reply; 7+ messages in thread
From: Rainer M Krug @ 2015-01-22 16:47 UTC (permalink / raw)
To: Sebastien Vauban; +Cc: public-emacs-orgmode-mXXj517/zsQ
[-- Attachment #1: Type: text/plain, Size: 1127 bytes --]
Sebastien Vauban <sva-news-D0wtAvR13HarG/iDocfnWg@public.gmane.org>
writes:
> Hello,
>
> The following ECM shows it all:
>
> #+begin_src R :rownames yes :colnames '(Lg Nb)
> data(iris)
> head(table(iris$Petal.Length, iris$Species)[, "setosa"])
> #+end_src
>
> returns:
>
> | | x |
> |-----+----|
> | 1 | 1 |
> | 1.1 | 1 |
> | 1.2 | 2 |
> | 1.3 | 7 |
> | 1.4 | 13 |
> | 1.5 | 13 |
>
> while I was expecting:
>
> | Lg | Nb |
> |-----+----|
> | 1 | 1 |
> | 1.1 | 1 |
> | 1.2 | 2 |
> | 1.3 | 7 |
> | 1.4 | 13 |
> | 1.5 | 13 |
WHy should it? The org-info manual states:
,----
| The `:colnames' header argument accepts the values `yes', `no', or
| `nil' for unassigned. The default value is `nil'. Note that the
| behavior of the `:colnames' header argument may differ across languages.
`----
It says nothing about accepting any other values.
Unless I am missing something?
Cheers,
Rainer
>
> Am I missing something?
>
> Best regards,
> Seb
--
Rainer M. Krug
email: Rainer<at>krugs<dot>de
PGP: 0x0F52F982
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 494 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [babel, bug?] colnames with a list of columns does not work
2015-01-22 16:47 ` Rainer M Krug
@ 2015-01-23 10:35 ` Sebastien Vauban
2015-01-23 11:13 ` Rainer M Krug
` (2 more replies)
0 siblings, 3 replies; 7+ messages in thread
From: Sebastien Vauban @ 2015-01-23 10:35 UTC (permalink / raw)
To: emacs-orgmode-mXXj517/zsQ
Hello Thomas and Rainer,
Rainer M Krug wrote:
> Sebastien Vauban writes:
>>
>> #+begin_src R :rownames yes :colnames '(Lg Nb)
>> data(iris)
>> head(table(iris$Petal.Length, iris$Species)[, "setosa"], n=2)
>> #+end_src
>>
>> returns:
>>
>> | | x |
>> |-----+----|
>> | 1 | 1 |
>> | 1.1 | 1 |
>>
>> while I was expecting:
>>
>> | Lg | Nb |
>> |-----+----|
>> | 1 | 1 |
>> | 1.1 | 1 |
>
> WHy should it? The org-info manual states:
>
> ,----
> | The `:colnames' header argument accepts the values `yes', `no', or
> | `nil' for unassigned. The default value is `nil'. Note that the
> | behavior of the `:colnames' header argument may differ across
> | languages.
> `----
>
> It says nothing about accepting any other values.
> Unless I am missing something?
Yes, you just show that the documentation is not up-to-date, as that
functionality *is* implemented for most languages.
Doing some bit of archeology, I just found out that:
- Eric wrote a patch to support the above (but it hasn't be applied),
- I (!) even wrote a test of that functionality (for a shell block) in
`testing/lisp/test-ob.el'.
See https://lists.gnu.org/archive/html/emacs-orgmode/2013-04/msg00527.html:
┌────
│ It looks like ob-R implements its own result table reconstruction
│ instead of using the general support. This is because R actually
│ has a notion of column names and row names internally. The
│ implementation in ob-R does not correctly handle specified colnames
│ as your example shows.
│
│ The attached patch brings ob-R closer to the using the unified
│ general table reconstructed used in most other languages, and fixes
│ your problem mentioned above. I haven't applied it however, as it
│ may introduce other bugs related to specifying column names from
│ within R. For example, I'm not sure that it will now correctly
│ apply column names from a table built entirely from within R.
│
│ Additional testing by someone more familiar with R than myself would
│ be greatly appreciated.
└────
Should such someone (more familiar with R) be able to confirm that his
patch work without introducing problems, it could be applied so that
R should behave the same as in most languages...
Best regards,
Seb
--
Sebastien Vauban
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [babel, bug?] colnames with a list of columns does not work
2015-01-23 10:35 ` Sebastien Vauban
@ 2015-01-23 11:13 ` Rainer M Krug
2015-01-23 19:49 ` Aaron Ecay
2015-01-23 20:00 ` Thomas S. Dye
2 siblings, 0 replies; 7+ messages in thread
From: Rainer M Krug @ 2015-01-23 11:13 UTC (permalink / raw)
To: Sebastien Vauban; +Cc: public-emacs-orgmode-mXXj517/zsQ
[-- Attachment #1: Type: text/plain, Size: 2701 bytes --]
Sebastien Vauban <sva-news-D0wtAvR13HarG/iDocfnWg@public.gmane.org>
writes:
> Hello Thomas and Rainer,
>
> Rainer M Krug wrote:
>> Sebastien Vauban writes:
>>>
>>> #+begin_src R :rownames yes :colnames '(Lg Nb)
>>> data(iris)
>>> head(table(iris$Petal.Length, iris$Species)[, "setosa"], n=2)
>>> #+end_src
>>>
>>> returns:
>>>
>>> | | x |
>>> |-----+----|
>>> | 1 | 1 |
>>> | 1.1 | 1 |
>>>
>>> while I was expecting:
>>>
>>> | Lg | Nb |
>>> |-----+----|
>>> | 1 | 1 |
>>> | 1.1 | 1 |
>>
>> WHy should it? The org-info manual states:
>>
>> ,----
>> | The `:colnames' header argument accepts the values `yes', `no', or
>> | `nil' for unassigned. The default value is `nil'. Note that the
>> | behavior of the `:colnames' header argument may differ across
>> | languages.
>> `----
>>
>> It says nothing about accepting any other values.
>> Unless I am missing something?
>
> Yes, you just show that the documentation is not up-to-date, as that
> functionality *is* implemented for most languages.
Ups - wasn't aware of this.
Cheers,
Rainer
>
> Doing some bit of archeology, I just found out that:
>
> - Eric wrote a patch to support the above (but it hasn't be applied),
>
> - I (!) even wrote a test of that functionality (for a shell block) in
> `testing/lisp/test-ob.el'.
>
> See https://lists.gnu.org/archive/html/emacs-orgmode/2013-04/msg00527.html:
>
> ┌────
> │ It looks like ob-R implements its own result table reconstruction
> │ instead of using the general support. This is because R actually
> │ has a notion of column names and row names internally. The
> │ implementation in ob-R does not correctly handle specified colnames
> │ as your example shows.
> │
> │ The attached patch brings ob-R closer to the using the unified
> │ general table reconstructed used in most other languages, and fixes
> │ your problem mentioned above. I haven't applied it however, as it
> │ may introduce other bugs related to specifying column names from
> │ within R. For example, I'm not sure that it will now correctly
> │ apply column names from a table built entirely from within R.
> │
> │ Additional testing by someone more familiar with R than myself would
> │ be greatly appreciated.
> └────
>
> Should such someone (more familiar with R) be able to confirm that his
> patch work without introducing problems, it could be applied so that
> R should behave the same as in most languages...
>
> Best regards,
> Seb
--
Rainer M. Krug
email: Rainer<at>krugs<dot>de
PGP: 0x0F52F982
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 494 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [babel, bug?] colnames with a list of columns does not work
2015-01-23 10:35 ` Sebastien Vauban
2015-01-23 11:13 ` Rainer M Krug
@ 2015-01-23 19:49 ` Aaron Ecay
2015-01-23 20:00 ` Thomas S. Dye
2 siblings, 0 replies; 7+ messages in thread
From: Aaron Ecay @ 2015-01-23 19:49 UTC (permalink / raw)
To: Sebastien Vauban, emacs-orgmode
[-- Attachment #1: Type: text/plain, Size: 1285 bytes --]
Hi Sebastien,
2015ko urtarrilak 23an, Sebastien Vauban-ek idatzi zuen:
> Yes, you just show that the documentation is not up-to-date, as that
> functionality *is* implemented for most languages.
>
> Doing some bit of archeology, I just found out that:
>
> - Eric wrote a patch to support the above (but it hasn't be applied),
>
> - I (!) even wrote a test of that functionality (for a shell block) in
> `testing/lisp/test-ob.el'.
>
> See https://lists.gnu.org/archive/html/emacs-orgmode/2013-04/msg00527.html:
Thanks for bringing this back to the surface. I reworked Eric’s patch
(which no longer applied cleanly). The result is attached. With this
patch:
- Both row/colnames set from R and from Org should work
- If they are set in both ways, the Org ones will win
There are tests for this behavior.
There is a slight mismatch between R and Org. R considers the colnames
(C) and rownames (R) separate from the table (X):
CCCC
R XXXX
R XXXX
R XXXX
On the other hand, Babel assigns a colname to the column of rownames:
C CCCC
R XXXX
R XXXX
R XXXX
So, R users will need to watch out for this. I wasn’t sure where to
document it – maybe Worg? (There’s a comment about it in the test
suite, but that hardly counts.)
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-ob-R-Fix-table-row-colname-processing.patch --]
[-- Type: text/x-diff, Size: 10556 bytes --]
From e192ad71b61fd6ddf034a15c1012a99de00e5865 Mon Sep 17 00:00:00 2001
From: Aaron Ecay <aaronecay@gmail.com>
Date: Fri, 23 Jan 2015 12:33:51 -0500
Subject: [PATCH] ob-R: Fix table row/colname processing.
* lisp/ob-R.el (org-babel-execute:R): Use babel-standard row/colname
processing. Remove graphics-specific R code from here.
(org-babel-R-construct-graphics-device-call): Absorb graphics-specific
code.
(org-babel-R-process-value-result): Remove function.
(org-babel-R-evaluate-external-process):
(org-babel-R-evaluate-session): Adapt callers.
This is in line with a patch proposed by Eric Schulte:
<http://mid.gmane.org/87obdp0ybb.fsf@gmail.com>. Thanks to Sebastien
for bringing it up again.
* testing/lisp/test-ob-R.el (test-ob-R/colnames-from-r):
(test-ob-R/colnames-from-org):
(test-ob-R/rownames-from-r):
(test-ob-R/rownames-from-org):
(test-ob-R/row-and-colnames-from-r):
(test-ob-R/row-and-colnames-from-org): New tests.
---
lisp/ob-R.el | 108 ++++++++++++++++++++++++----------------------
testing/lisp/test-ob-R.el | 72 +++++++++++++++++++++++++++++++
2 files changed, 128 insertions(+), 52 deletions(-)
diff --git a/lisp/ob-R.el b/lisp/ob-R.el
index 639b4f8..68aba30 100644
--- a/lisp/ob-R.el
+++ b/lisp/ob-R.el
@@ -155,36 +155,47 @@ This function is used when the table does not contain a header.")
"Execute a block of R code.
This function is called by `org-babel-execute-src-block'."
(save-excursion
- (let* ((result-params (cdr (assoc :result-params params)))
- (result-type (cdr (assoc :result-type params)))
+ (let* ((result-params (cdr (assq :result-params params)))
+ (result-type (cdr (assq :result-type params)))
(session (org-babel-R-initiate-session
- (cdr (assoc :session params)) params))
- (colnames-p (cdr (assoc :colnames params)))
- (rownames-p (cdr (assoc :rownames params)))
- (graphics-file (and (member "graphics" (assq :result-params params))
+ (cdr (assq :session params)) params))
+ (graphics-file (and (member "graphics" result-params)
(org-babel-graphical-output-file params)))
+ (colnames (cdr (assq :colnames params)))
+ (rownames (cdr (assq :rownames params)))
+ (inside (org-babel-expand-body:R body params graphics-file))
(full-body
- (let ((inside
- (list (org-babel-expand-body:R body params graphics-file))))
- (mapconcat 'identity
- (if graphics-file
- (append
- (list (org-babel-R-construct-graphics-device-call
- graphics-file params))
- inside
- (list "},error=function(e){plot(x=-1:1, y=-1:1, type='n', xlab='', ylab='', axes=FALSE); text(x=0, y=0, labels=e$message, col='red'); paste('ERROR', e$message, sep=' : ')}); dev.off()"))
- inside)
- "\n")))
+ (if graphics-file
+ (org-babel-R-construct-graphics-device-call
+ graphics-file params inside)
+ inside))
(result
(org-babel-R-evaluate
session full-body result-type result-params
- (or (equal "yes" colnames-p)
- (org-babel-pick-name
- (cdr (assoc :colname-names params)) colnames-p))
- (or (equal "yes" rownames-p)
- (org-babel-pick-name
- (cdr (assoc :rowname-names params)) rownames-p)))))
- (if graphics-file nil result))))
+ (equal "yes" colnames)
+ (equal "yes" rownames))))
+ (unless graphics-file
+ (org-babel-reassemble-table
+ result
+ (org-babel-pick-name
+ ;; In most cases, the original colnames have been passed
+ ;; into R and are coming back from there, thus we don't need
+ ;; the copy that babel stashed in the :colname-names entry.
+ ;; However, if :colnames nil is specified babel does not
+ ;; pass along the colnames to R, but is expected to reapply
+ ;; them to the table. ("nil" is a confusing name for this
+ ;; semantics, but that's how it is documented in the
+ ;; manual.) Only n this case must we permit access to
+ ;; babel's stored colnames. These remarks also apply to the
+ ;; rownames immediately below.
+ (when (equal colnames "nil")
+ (cdr (assq :colname-names params)))
+ colnames)
+ (org-babel-pick-name
+ ;; See above.
+ (when (equal rownames "nil")
+ (cdr (assq :rowname-names params)))
+ rownames))))))
(defun org-babel-prep-session:R (session params)
"Prepare SESSION according to the header arguments specified in PARAMS."
@@ -309,19 +320,20 @@ Each member of this list is a list with three members:
3. the name of the argument to this function which specifies the
file to write to (typically \"file\" or \"filename\")")
-(defun org-babel-R-construct-graphics-device-call (out-file params)
+(defun org-babel-R-construct-graphics-device-call (out-file params code)
"Construct the call to the graphics device."
(let* ((allowed-args '(:width :height :bg :units :pointsize
:antialias :quality :compression :res
:type :family :title :fonts :version
:paper :encoding :pagecentre :colormodel
:useDingbats :horizontal))
- (device (and (string-match ".+\\.\\([^.]+\\)" out-file)
- (match-string 1 out-file)))
- (device-info (or (assq (intern (concat ":" device))
+ (device-name (and (string-match ".+\\.\\([^.]+\\)" out-file)
+ (match-string 1 out-file)))
+ (device-info (or (assq (intern (concat ":" device-name))
org-babel-R-graphics-devices)
(assq :png org-babel-R-graphics-devices)))
- (extra-args (cdr (assq :R-dev-args params))) filearg args)
+ (extra-args (cdr (assq :R-dev-args params)))
+ filearg args device)
(setq device (nth 1 device-info))
(setq filearg (nth 2 device-info))
(setq args (mapconcat
@@ -331,9 +343,10 @@ Each member of this list is a list with three members:
(substring (symbol-name (car pair)) 1)
(cdr pair)) ""))
params ""))
- (format "%s(%s=\"%s\"%s%s%s); tryCatch({"
+ (format "%s(%s=\"%s\"%s%s%s); tryCatch({%s},error=function(e){plot(x=-1:1, y=-1:1, type='n', xlab='', ylab='', axes=FALSE); text(x=0, y=0, labels=e$message, col='red'); paste('ERROR', e$message, sep=' : ')}); dev.off()"
device filearg out-file args
- (if extra-args "," "") (or extra-args ""))))
+ (if extra-args "," "") (or extra-args "")
+ code)))
(defconst org-babel-R-eoe-indicator "'org_babel_R_eoe'")
(defconst org-babel-R-eoe-output "[1] \"org_babel_R_eoe\"")
@@ -395,13 +408,12 @@ last statement in BODY, as elisp."
"FALSE")
(format "{function ()\n{\n%s\n}}()" body)
(org-babel-process-file-name tmp-file 'noquote)))
- (org-babel-R-process-value-result
- (org-babel-result-cond result-params
- (with-temp-buffer
- (insert-file-contents tmp-file)
- (buffer-string))
- (org-babel-import-elisp-from-file tmp-file '(16)))
- column-names-p)))
+ (org-babel-result-cond result-params
+ (with-temp-buffer
+ (insert-file-contents tmp-file)
+ (buffer-string))
+ (org-babel-import-elisp-from-file tmp-file '(16)))
+ column-names-p))
(output (org-babel-eval org-babel-R-command body))))
(defvar ess-eval-visibly-p)
@@ -429,13 +441,12 @@ last statement in BODY, as elisp."
(if row-names-p "NA" "TRUE")
"FALSE")
".Last.value" (org-babel-process-file-name tmp-file 'noquote)))
- (org-babel-R-process-value-result
- (org-babel-result-cond result-params
- (with-temp-buffer
- (insert-file-contents tmp-file)
- (buffer-string))
- (org-babel-import-elisp-from-file tmp-file '(16)))
- column-names-p)))
+ (org-babel-result-cond result-params
+ (with-temp-buffer
+ (insert-file-contents tmp-file)
+ (buffer-string))
+ (org-babel-import-elisp-from-file tmp-file '(16)))
+ column-names-p))
(output
(mapconcat
'org-babel-chomp
@@ -455,13 +466,6 @@ last statement in BODY, as elisp."
"\n"))
(inferior-ess-send-input)))))) "\n"))))
-(defun org-babel-R-process-value-result (result column-names-p)
- "R-specific processing of return value.
-Insert hline if column names in output have been requested."
- (if column-names-p
- (cons (car result) (cons 'hline (cdr result)))
- result))
-
(provide 'ob-R)
diff --git a/testing/lisp/test-ob-R.el b/testing/lisp/test-ob-R.el
index e3f13f1..16bdd62 100644
--- a/testing/lisp/test-ob-R.el
+++ b/testing/lisp/test-ob-R.el
@@ -79,6 +79,78 @@ x
(should (equal '(("col") ("a") ("b"))
(org-babel-execute-src-block)))))
+(ert-deftest test-ob-R/colnames-from-r ()
+ (org-test-with-temp-text "
+#+header: :colnames yes
+#+begin_src R
+y <- data.frame(x = c(1,2,3))
+y
+#+end_src"
+ (org-babel-next-src-block)
+ (should (equal '(("x") hline (1) (2) (3))
+ (org-babel-execute-src-block)))))
+
+(ert-deftest test-ob-R/colnames-from-org ()
+ (org-test-with-temp-text "
+#+header: :colnames '(\"foo\")
+#+begin_src R
+y <- data.frame(x = c(1,2,3))
+y
+#+end_src"
+ (org-babel-next-src-block)
+ (should (equal '(("foo") hline (1) (2) (3))
+ (org-babel-execute-src-block)))))
+
+(ert-deftest test-ob-R/rownames-from-r ()
+ (org-test-with-temp-text "
+#+header: :rownames yes
+#+begin_src R
+x <- data.frame(x = c(1,2,3))
+rownames(x) <- c(\"A\",\"B\",\"C\")
+x
+#+end_src"
+ (org-babel-next-src-block)
+ (should (equal '(("A" 1) ("B" 2) ("C" 3))
+ (org-babel-execute-src-block)))))
+
+(ert-deftest test-ob-R/rownames-from-org ()
+ (org-test-with-temp-text "
+#+header: :rownames '(\"D\" \"E\" \"F\")
+#+begin_src R
+x <- data.frame(x = c(1,2,3))
+rownames(x) <- c(\"A\",\"B\",\"C\")
+x
+#+end_src"
+ (org-babel-next-src-block)
+ (should (equal '(("D" 1) ("E" 2) ("F" 3))
+ (org-babel-execute-src-block)))))
+
+(ert-deftest test-ob-R/row-and-colnames-from-r ()
+ (org-test-with-temp-text "
+#+header: :rownames yes :colnames yes
+#+begin_src R
+y <- data.frame(x = c(1,2,3))
+rownames(y) <- c(\"A\",\"B\",\"C\")
+y
+#+end_src"
+ (org-babel-next-src-block)
+ (should (equal '(("" "x") hline ("A" 1) ("B" 2) ("C" 3))
+ (org-babel-execute-src-block)))))
+
+(ert-deftest test-ob-R/row-and-colnames-from-org ()
+ ;; NB: For R, the column of rownames doesn't itself have a colname,
+ ;; whereas for Org it must.
+ (org-test-with-temp-text "
+#+header: :rownames '(\"D\" \"E\" \"F\") :colnames '(\"colnames\" \"foo\")
+#+begin_src R
+y <- data.frame(x = c(1,2,3))
+rownames(y) <- c(\"A\",\"B\",\"C\")
+y
+#+end_src"
+ (org-babel-next-src-block)
+ (should (equal '(("colnames" "foo") hline ("D" 1) ("E" 2) ("F" 3))
+ (org-babel-execute-src-block)))))
+
(provide 'test-ob-R)
;;; test-ob-R.el ends here
--
2.2.2
[-- Attachment #3: Type: text/plain, Size: 25 bytes --]
Thanks,
--
Aaron Ecay
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [babel, bug?] colnames with a list of columns does not work
2015-01-23 10:35 ` Sebastien Vauban
2015-01-23 11:13 ` Rainer M Krug
2015-01-23 19:49 ` Aaron Ecay
@ 2015-01-23 20:00 ` Thomas S. Dye
2 siblings, 0 replies; 7+ messages in thread
From: Thomas S. Dye @ 2015-01-23 20:00 UTC (permalink / raw)
To: Sebastien Vauban; +Cc: public-emacs-orgmode-mXXj517/zsQ
Sebastien Vauban <sva-news-D0wtAvR13HarG/iDocfnWg@public.gmane.org>
writes:
> Yes, you just show that the documentation is not up-to-date, as that
> functionality *is* implemented for most languages.
This constant is defined in the ob-core.el I have
(colnames . ((nil no yes)))
which seems to indicate that the documentation is up-to-date.
Also, I looked through the various language descriptions at
http://orgmode.org/worg/org-contrib/babel/languages.html and found two
that discuss :colnames,
picolisp prefers :colnames no, and sql sets :colnames yes by default.
I'm curious. Is it the case that most languages accept a list of values
for the :colnames header argument?
All the best,
Tom
--
Thomas S. Dye
http://www.tsdye.com
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2015-01-23 20:01 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-01-22 10:56 [babel, bug?] colnames with a list of columns does not work Sebastien Vauban
2015-01-22 15:37 ` Thomas S. Dye
2015-01-22 16:47 ` Rainer M Krug
2015-01-23 10:35 ` Sebastien Vauban
2015-01-23 11:13 ` Rainer M Krug
2015-01-23 19:49 ` Aaron Ecay
2015-01-23 20:00 ` Thomas S. Dye
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).