diff --git a/etc/ORG-NEWS b/etc/ORG-NEWS index 3b7d5f829..cc3b7b0dc 100644 --- a/etc/ORG-NEWS +++ b/etc/ORG-NEWS @@ -54,6 +54,8 @@ for upcoming anniversaries (default: 7 days). Use ~org-agenda-today-p~ instead. *** ~org-element-remove-indentation~ is deprecated. Use ~org-remove-indentation~ instead. +*** ~org-babel-get-header~ is removed. +Use ~org-babel--get-vars~ or ~assq~ instead. ** Removed options *** Remove ~org-list-empty-line-terminates-plain-lists~ Two consecutive blank lines always terminate all levels of current diff --git a/lisp/ob-C.el b/lisp/ob-C.el index 9a6785030..dcf718973 100644 --- a/lisp/ob-C.el +++ b/lisp/ob-C.el @@ -181,8 +181,8 @@ it's header arguments." (defun org-babel-C-expand-C (body params) "Expand a block of C or C++ code with org-babel according to it's header arguments." - (let ((vars (mapcar #'cdr (org-babel-get-header params :var))) - (colnames (cdar (org-babel-get-header params :colname-names))) + (let ((vars (org-babel--get-vars params)) + (colnames (cdr (assq :colname-names params))) (main-p (not (string= (cdr (assoc :main params)) "no"))) (includes (org-babel-read (or (cdr (assoc :includes params)) @@ -230,8 +230,8 @@ it's header arguments." (defun org-babel-C-expand-D (body params) "Expand a block of D code with org-babel according to it's header arguments." - (let ((vars (mapcar #'cdr (org-babel-get-header params :var))) - (colnames (cdar (org-babel-get-header params :colname-names))) + (let ((vars (org-babel--get-vars params)) + (colnames (cdr (assq :colname-names params))) (main-p (not (string= (cdr (assoc :main params)) "no"))) (imports (or (cdr (assoc :imports params)) (org-babel-read (org-entry-get nil "imports" t))))) diff --git a/lisp/ob-R.el b/lisp/ob-R.el index 22c6387f7..bb058dbf4 100644 --- a/lisp/ob-R.el +++ b/lisp/ob-R.el @@ -209,7 +209,7 @@ This function is called by `org-babel-execute-src-block'." (defun org-babel-variable-assignments:R (params) "Return list of R statements assigning the block's variables." - (let ((vars (mapcar 'cdr (org-babel-get-header params :var)))) + (let ((vars (org-babel--get-vars params))) (mapcar (lambda (pair) (org-babel-R-assign-elisp diff --git a/lisp/ob-abc.el b/lisp/ob-abc.el index a56b2ea5e..c4503c43b 100644 --- a/lisp/ob-abc.el +++ b/lisp/ob-abc.el @@ -42,7 +42,7 @@ (defun org-babel-expand-body:abc (body params) "Expand BODY according to PARAMS, return the expanded body." - (let ((vars (mapcar #'cdr (org-babel-get-header params :var)))) + (let ((vars (org-babel--get-vars params))) (mapc (lambda (pair) (let ((name (symbol-name (car pair))) diff --git a/lisp/ob-asymptote.el b/lisp/ob-asymptote.el index f44eb6954..cf7894942 100644 --- a/lisp/ob-asymptote.el +++ b/lisp/ob-asymptote.el @@ -86,7 +86,7 @@ Asymptote does not support sessions" (defun org-babel-variable-assignments:asymptote (params) "Return list of asymptote statements assigning the block's variables." (mapcar #'org-babel-asymptote-var-to-asymptote - (mapcar #'cdr (org-babel-get-header params :var)))) + (org-babel--get-vars params))) (defun org-babel-asymptote-var-to-asymptote (pair) "Convert an elisp value into an Asymptote variable. diff --git a/lisp/ob-awk.el b/lisp/ob-awk.el index 8d848b98c..ec4ae29e1 100644 --- a/lisp/ob-awk.el +++ b/lisp/ob-awk.el @@ -74,7 +74,7 @@ called by `org-babel-execute-src-block'" (cadr pair) (org-babel-awk-var-to-awk (cddr pair)))) - (org-babel-get-header params :var)) + (org-babel--get-vars params)) (list in-file)) " "))) (org-babel-reassemble-table diff --git a/lisp/ob-calc.el b/lisp/ob-calc.el index f98f43df5..a8c50da93 100644 --- a/lisp/ob-calc.el +++ b/lisp/ob-calc.el @@ -48,7 +48,7 @@ "Execute a block of calc code with Babel." (unless (get-buffer "*Calculator*") (save-window-excursion (calc) (calc-quit))) - (let* ((vars (mapcar #'cdr (org-babel-get-header params :var))) + (let* ((vars (org-babel--get-vars params)) (org--var-syms (mapcar #'car vars)) (var-names (mapcar #'symbol-name org--var-syms))) (mapc diff --git a/lisp/ob-clojure.el b/lisp/ob-clojure.el index b63c39afd..91a181f41 100644 --- a/lisp/ob-clojure.el +++ b/lisp/ob-clojure.el @@ -67,7 +67,7 @@ (defun org-babel-expand-body:clojure (body params) "Expand BODY according to PARAMS, return the expanded body." - (let* ((vars (mapcar #'cdr (org-babel-get-header params :var))) + (let* ((vars (org-babel--get-vars params)) (result-params (cdr (assoc :result-params params))) (print-level nil) (print-length nil) (body (org-babel-trim diff --git a/lisp/ob-core.el b/lisp/ob-core.el index 9b2a9e22d..b4031286e 100644 --- a/lisp/ob-core.el +++ b/lisp/ob-core.el @@ -212,14 +212,14 @@ This string must include a \"%s\" which will be replaced by the results." "{\\([^\f\n\r\v]+?\\)}\\)") "Regexp used to identify inline src-blocks.") -(defun org-babel-get-header (params key &optional others) - "Select only header argument of type KEY from a list. -Optional argument OTHERS indicates that only the header that do -not match KEY should be returned." - (delq nil - (mapcar - (lambda (p) (when (funcall (if others #'not #'identity) (eq (car p) key)) p)) - params))) +(defun org-babel--get-vars (params) + "Return the babel variable assignments in PARAMS. + +PARAMS is a quasi-alist of header args, whcih may contain +multiple entries for the key `:var'. This function returns a +list of the cdr of all the `:var' entries." + (mapcar #'cdr + (org-remove-if (lambda (x) (not (eq (car x) :var))) params))) (defun org-babel-get-inline-src-block-matches () "Set match data if within body of an inline source block. @@ -1571,7 +1571,7 @@ shown below. (if (consp (cdr el)) (cdr el) (org-babel-ref-parse (cdr el)))) - (org-babel-get-header params :var))) + (org-babel--get-vars params))) (vars-and-names (if (and (assoc :colname-names params) (assoc :rowname-names params)) (list processed-vars) diff --git a/lisp/ob-dot.el b/lisp/ob-dot.el index e6c664c51..37ad2c64c 100644 --- a/lisp/ob-dot.el +++ b/lisp/ob-dot.el @@ -46,7 +46,7 @@ (defun org-babel-expand-body:dot (body params) "Expand BODY according to PARAMS, return the expanded body." - (let ((vars (mapcar #'cdr (org-babel-get-header params :var)))) + (let ((vars (org-babel--get-vars params))) (mapc (lambda (pair) (let ((name (symbol-name (car pair))) diff --git a/lisp/ob-emacs-lisp.el b/lisp/ob-emacs-lisp.el index 796293bd9..f2cfc5c2e 100644 --- a/lisp/ob-emacs-lisp.el +++ b/lisp/ob-emacs-lisp.el @@ -33,7 +33,7 @@ (defun org-babel-expand-body:emacs-lisp (body params) "Expand BODY according to PARAMS, return the expanded body." - (let* ((vars (mapcar #'cdr (org-babel-get-header params :var))) + (let* ((vars (org-babel--get-vars params)) (result-params (cdr (assoc :result-params params))) (print-level nil) (print-length nil) (body (if (> (length vars) 0) diff --git a/lisp/ob-fortran.el b/lisp/ob-fortran.el index 0527d44ed..c402faee5 100644 --- a/lisp/ob-fortran.el +++ b/lisp/ob-fortran.el @@ -78,7 +78,7 @@ (defun org-babel-expand-body:fortran (body params) "Expand a block of fortran or fortran code with org-babel according to it's header arguments." - (let ((vars (mapcar #'cdr (org-babel-get-header params :var))) + (let ((vars (org-babel--get-vars params)) (main-p (not (string= (cdr (assoc :main params)) "no"))) (includes (or (cdr (assoc :includes params)) (org-babel-read (org-entry-get nil "includes" t)))) @@ -107,7 +107,7 @@ it's header arguments." (defun org-babel-fortran-ensure-main-wrap (body params) "Wrap body in a \"program ... end program\" block if none exists." (if (string-match "^[ \t]*program[ \t]*.*" (capitalize body)) - (let ((vars (mapcar #'cdr (org-babel-get-header params :var)))) + (let ((vars (org-babel--get-vars params))) (if vars (error "Cannot use :vars if `program' statement is present")) body) (format "program main\n%s\nend program main\n" body))) diff --git a/lisp/ob-gnuplot.el b/lisp/ob-gnuplot.el index b60ceb0f3..2d4a095eb 100644 --- a/lisp/ob-gnuplot.el +++ b/lisp/ob-gnuplot.el @@ -94,7 +94,7 @@ code." (if tablep val (mapcar 'list val))) (org-babel-temp-file "gnuplot-") params) val)))) - (mapcar #'cdr (org-babel-get-header params :var))))) + (org-babel--get-vars params)))) (defun org-babel-expand-body:gnuplot (body params) "Expand BODY according to PARAMS, return the expanded body." diff --git a/lisp/ob-haskell.el b/lisp/ob-haskell.el index 84b130904..69772a62c 100644 --- a/lisp/ob-haskell.el +++ b/lisp/ob-haskell.el @@ -130,7 +130,7 @@ then create one. Return the initialized session." (format "let %s = %s" (car pair) (org-babel-haskell-var-to-haskell (cdr pair)))) - (mapcar #'cdr (org-babel-get-header params :var)))) + (org-babel--get-vars params))) (defun org-babel-haskell-var-to-haskell (var) "Convert an elisp value VAR into a haskell variable. diff --git a/lisp/ob-js.el b/lisp/ob-js.el index 57b81f87e..6114549ca 100644 --- a/lisp/ob-js.el +++ b/lisp/ob-js.el @@ -134,7 +134,7 @@ specifying a variable of the same value." (mapcar (lambda (pair) (format "var %s=%s;" (car pair) (org-babel-js-var-to-js (cdr pair)))) - (mapcar #'cdr (org-babel-get-header params :var)))) + (org-babel--get-vars params))) (defun org-babel-js-initiate-session (&optional session) "If there is not a current inferior-process-buffer in SESSION diff --git a/lisp/ob-latex.el b/lisp/ob-latex.el index adb5fd31f..13427a4c2 100644 --- a/lisp/ob-latex.el +++ b/lisp/ob-latex.el @@ -80,7 +80,7 @@ (regexp-quote (format "%S" (car pair))) (if (stringp (cdr pair)) (cdr pair) (format "%S" (cdr pair))) - body))) (mapcar #'cdr (org-babel-get-header params :var))) + body))) (org-babel--get-vars params)) (org-babel-trim body)) (defun org-babel-execute:latex (body params) diff --git a/lisp/ob-lilypond.el b/lisp/ob-lilypond.el index b861cc045..8dde98563 100644 --- a/lisp/ob-lilypond.el +++ b/lisp/ob-lilypond.el @@ -123,7 +123,7 @@ blocks.") (defun org-babel-expand-body:lilypond (body params) "Expand BODY according to PARAMS, return the expanded body." - (let ((vars (mapcar #'cdr (org-babel-get-header params :var)))) + (let ((vars (org-babel--get-vars params))) (mapc (lambda (pair) (let ((name (symbol-name (car pair))) diff --git a/lisp/ob-lisp.el b/lisp/ob-lisp.el index 7ed839270..617ccdd72 100644 --- a/lisp/ob-lisp.el +++ b/lisp/ob-lisp.el @@ -54,7 +54,7 @@ current directory string." (defun org-babel-expand-body:lisp (body params) "Expand BODY according to PARAMS, return the expanded body." - (let* ((vars (mapcar #'cdr (org-babel-get-header params :var))) + (let* ((vars (org-babel--get-vars params)) (result-params (cdr (assoc :result-params params))) (print-level nil) (print-length nil) (body (org-babel-trim diff --git a/lisp/ob-maxima.el b/lisp/ob-maxima.el index 84c38df61..1c44f9739 100644 --- a/lisp/ob-maxima.el +++ b/lisp/ob-maxima.el @@ -48,7 +48,7 @@ (defun org-babel-maxima-expand (body params) "Expand a block of Maxima code according to its header arguments." - (let ((vars (mapcar #'cdr (org-babel-get-header params :var)))) + (let ((vars (org-babel--get-vars params))) (mapconcat 'identity (list ;; graphic output diff --git a/lisp/ob-ocaml.el b/lisp/ob-ocaml.el index cc0d34737..48f8aba5a 100644 --- a/lisp/ob-ocaml.el +++ b/lisp/ob-ocaml.el @@ -121,7 +121,7 @@ (mapcar (lambda (pair) (format "let %s = %s;;" (car pair) (org-babel-ocaml-elisp-to-ocaml (cdr pair)))) - (mapcar #'cdr (org-babel-get-header params :var)))) + (org-babel--get-vars params))) (defun org-babel-ocaml-elisp-to-ocaml (val) "Return a string of ocaml code which evaluates to VAL." diff --git a/lisp/ob-octave.el b/lisp/ob-octave.el index 319ea1ac5..5272879de 100644 --- a/lisp/ob-octave.el +++ b/lisp/ob-octave.el @@ -111,7 +111,7 @@ end") (format "%s=%s;" (car pair) (org-babel-octave-var-to-octave (cdr pair)))) - (mapcar #'cdr (org-babel-get-header params :var)))) + (org-babel--get-vars params))) (defalias 'org-babel-variable-assignments:matlab 'org-babel-variable-assignments:octave) diff --git a/lisp/ob-org.el b/lisp/ob-org.el index 90b09571f..141b8c69f 100644 --- a/lisp/ob-org.el +++ b/lisp/ob-org.el @@ -41,7 +41,7 @@ "Default header inserted during export of org blocks.") (defun org-babel-expand-body:org (body params) - (dolist (var (mapcar #'cdr (org-babel-get-header params :var))) + (dolist (var (org-babel--get-vars params)) (setq body (replace-regexp-in-string (regexp-quote (format "$%s" (car var))) (format "%s" (cdr var)) diff --git a/lisp/ob-perl.el b/lisp/ob-perl.el index 68ee261fb..123e6cbd4 100644 --- a/lisp/ob-perl.el +++ b/lisp/ob-perl.el @@ -63,7 +63,7 @@ This function is called by `org-babel-execute-src-block'." (mapcar (lambda (pair) (org-babel-perl--var-to-perl (cdr pair) (car pair))) - (mapcar #'cdr (org-babel-get-header params :var)))) + (org-babel--get-vars params))) ;; helper functions diff --git a/lisp/ob-picolisp.el b/lisp/ob-picolisp.el index b67a83849..bb21acd9d 100644 --- a/lisp/ob-picolisp.el +++ b/lisp/ob-picolisp.el @@ -80,7 +80,7 @@ (defun org-babel-expand-body:picolisp (body params) "Expand BODY according to PARAMS, return the expanded body." - (let ((vars (mapcar #'cdr (org-babel-get-header params :var))) + (let ((vars (org-babel--get-vars params)) (print-level nil) (print-length nil)) (if (> (length vars) 0) diff --git a/lisp/ob-processing.el b/lisp/ob-processing.el index c8dea3852..13ee12ea3 100644 --- a/lisp/ob-processing.el +++ b/lisp/ob-processing.el @@ -142,7 +142,7 @@ Processing does not support sessions" (defun org-babel-variable-assignments:processing (params) "Return list of processing statements assigning the block's variables." (mapcar #'org-babel-processing-var-to-processing - (mapcar #'cdr (org-babel-get-header params :var)))) + (org-babel--get-vars params))) (defun org-babel-processing-var-to-processing (pair) "Convert an elisp value into a Processing variable. diff --git a/lisp/ob-python.el b/lisp/ob-python.el index 0868e31c7..95a06f548 100644 --- a/lisp/ob-python.el +++ b/lisp/ob-python.el @@ -125,7 +125,7 @@ VARS contains resolved variable references" (format "%s=%s" (car pair) (org-babel-python-var-to-python (cdr pair)))) - (mapcar #'cdr (org-babel-get-header params :var)))) + (org-babel--get-vars params))) (defun org-babel-python-var-to-python (var) "Convert an elisp value to a python variable. diff --git a/lisp/ob-ruby.el b/lisp/ob-ruby.el index f56d882fd..5f4bf491c 100644 --- a/lisp/ob-ruby.el +++ b/lisp/ob-ruby.el @@ -121,7 +121,7 @@ This function is called by `org-babel-execute-src-block'." (format "%s=%s" (car pair) (org-babel-ruby-var-to-ruby (cdr pair)))) - (mapcar #'cdr (org-babel-get-header params :var)))) + (org-babel--get-vars params))) (defun org-babel-ruby-var-to-ruby (var) "Convert VAR into a ruby variable. diff --git a/lisp/ob-scheme.el b/lisp/ob-scheme.el index c4f2c85e2..a8da9efb2 100644 --- a/lisp/ob-scheme.el +++ b/lisp/ob-scheme.el @@ -55,7 +55,7 @@ (defun org-babel-expand-body:scheme (body params) "Expand BODY according to PARAMS, return the expanded body." - (let ((vars (mapcar #'cdr (org-babel-get-header params :var)))) + (let ((vars (org-babel--get-vars params))) (if (> (length vars) 0) (concat "(let (" (mapconcat diff --git a/lisp/ob-shell.el b/lisp/ob-shell.el index 84f4fa8bf..dc7d59ce6 100644 --- a/lisp/ob-shell.el +++ b/lisp/ob-shell.el @@ -142,7 +142,7 @@ This function is called by `org-babel-execute-src-block'." (car pair) (cdr pair) sep hline) (org-babel-variable-assignments:sh-generic (car pair) (cdr pair) sep hline))) - (mapcar #'cdr (org-babel-get-header params :var))))) + (org-babel--get-vars params)))) (defun org-babel-sh-var-to-sh (var &optional sep hline) "Convert an elisp value to a shell variable. diff --git a/lisp/ob-shen.el b/lisp/ob-shen.el index a02acfc63..616f419eb 100644 --- a/lisp/ob-shen.el +++ b/lisp/ob-shen.el @@ -43,7 +43,7 @@ (defun org-babel-expand-body:shen (body params) "Expand BODY according to PARAMS, return the expanded body." - (let ((vars (mapcar #'cdr (org-babel-get-header params :var)))) + (let ((vars (org-babel--get-vars params))) (if (> (length vars) 0) (concat "(let " (mapconcat (lambda (var) diff --git a/lisp/ob-sql.el b/lisp/ob-sql.el index a24fd8e0b..955adc06b 100644 --- a/lisp/ob-sql.el +++ b/lisp/ob-sql.el @@ -78,7 +78,7 @@ (defun org-babel-expand-body:sql (body params) "Expand BODY according to the values of PARAMS." (org-babel-sql-expand-vars - body (mapcar #'cdr (org-babel-get-header params :var)))) + body (org-babel--get-vars params))) (defun org-babel-sql-dbstring-mysql (host port user password database) "Make MySQL cmd line args for database connection. Pass nil to omit that arg." diff --git a/lisp/ob-sqlite.el b/lisp/ob-sqlite.el index 0cdda67da..611424150 100644 --- a/lisp/ob-sqlite.el +++ b/lisp/ob-sqlite.el @@ -53,7 +53,7 @@ (defun org-babel-expand-body:sqlite (body params) "Expand BODY according to the values of PARAMS." (org-babel-sqlite-expand-vars - body (mapcar #'cdr (org-babel-get-header params :var)))) + body (org-babel--get-vars params))) (defvar org-babel-sqlite3-command "sqlite3")