diff --git a/lisp/ob-core.el b/lisp/ob-core.el index f32522857..03d2b56d6 100644 --- a/lisp/ob-core.el +++ b/lisp/ob-core.el @@ -1712,9 +1712,10 @@ of the vars, cnames and rnames." (list (mapcar (lambda (var) - (when (listp (cdr var)) + (when (proper-list-p (cdr var)) (when (and (not (equal colnames "no")) - (or colnames (and (eq (nth 1 (cdr var)) 'hline) + (or colnames (and (length> (cdr var) 1) + (eq (nth 1 (cdr var)) 'hline) (not (member 'hline (cddr (cdr var))))))) (let ((both (org-babel-get-colnames (cdr var)))) (setq cnames (cons (cons (car var) (cdr both)) diff --git a/lisp/ob-gnuplot.el b/lisp/ob-gnuplot.el index 2ed1ad826..4008f5ca5 100644 --- a/lisp/ob-gnuplot.el +++ b/lisp/ob-gnuplot.el @@ -88,7 +88,7 @@ code." (cons (car pair) ;; variable name (let* ((val (cdr pair)) ;; variable value - (lp (listp val))) + (lp (proper-list-p val))) (if lp (org-babel-gnuplot-table-to-data (let* ((first (car val)) diff --git a/testing/lisp/test-ob.el b/testing/lisp/test-ob.el index 88ecb62b5..a5ae8e389 100644 --- a/testing/lisp/test-ob.el +++ b/testing/lisp/test-ob.el @@ -178,6 +178,22 @@ should still return the link." (point-at-bol) (point-at-eol)))))) +(ert-deftest test-ob/cons-cell-as-variable () + "Test that cons cell can be assigned as variable." + (org-test-with-temp-text " + +#+name: cons +#+begin_src emacs-lisp + (cons 1 2) +#+end_src + +#+begin_src emacs-lisp :var x=cons + x +#+end_src" + + (org-babel-next-src-block 2) + (should (equal (cons 1 2) (org-babel-execute-src-block))))) + (ert-deftest test-ob/multi-line-header-arguments () "Test that multi-line header arguments and can be read." (org-test-with-temp-text-in-file "