diff options
author | Eric Schulte <schulte.eric@gmail.com> | 2013-05-17 08:47:20 -0600 |
---|---|---|
committer | Eric Schulte <schulte.eric@gmail.com> | 2013-05-17 08:51:35 -0600 |
commit | 1f42ea516ab47753877d58708a327268682bb7ac (patch) | |
tree | 1b29b74d1af2c5136fe65ac5e0b8a99d3441efc3 | |
parent | 3ce5b3bb22be202a82213e4b4bbed4b134a0d53e (diff) | |
download | org-mode-1f42ea516ab47753877d58708a327268682bb7ac.tar.gz |
added :missing values header argument to gnuplot
* lisp/ob-gnuplot.el (org-babel-header-args:gnuplot): Declare
gnuplot-specific header argument.
(*org-babel-gnuplot-missing*): Dynamic variable used to hold the value
of the missing header argument.
(org-babel-gnuplot-process-vars): Wrap in local binding for missing
value.
(org-babel-gnuplot-quote-tsv-field): Replace missing value with the
missing header argument value when present.
-rw-r--r-- | lisp/ob-gnuplot.el | 31 |
1 files changed, 21 insertions, 10 deletions
diff --git a/lisp/ob-gnuplot.el b/lisp/ob-gnuplot.el index 4b3a1c6..93461e5 100644 --- a/lisp/ob-gnuplot.el +++ b/lisp/ob-gnuplot.el @@ -52,22 +52,29 @@ '((:results . "file") (:exports . "results") (:session . nil)) "Default arguments to use when evaluating a gnuplot source block.") +(defvar org-babel-header-args:gnuplot + '((missing . :any)) + "Gnuplot specific header args.") + (defvar org-babel-gnuplot-timestamp-fmt nil) +(defvar *org-babel-gnuplot-missing* nil) + (defun org-babel-gnuplot-process-vars (params) "Extract variables from PARAMS and process the variables. Dumps all vectors into files and returns an association list of variable names and the related value to be used in the gnuplot code." - (mapcar - (lambda (pair) - (cons - (car pair) ;; variable name - (if (listp (cdr pair)) ;; variable value - (org-babel-gnuplot-table-to-data - (cdr pair) (org-babel-temp-file "gnuplot-") params) - (cdr pair)))) - (mapcar #'cdr (org-babel-get-header params :var)))) + (let ((*org-babel-gnuplot-missing* (cdr (assoc :missing params)))) + (mapcar + (lambda (pair) + (cons + (car pair) ;; variable name + (if (listp (cdr pair)) ;; variable value + (org-babel-gnuplot-table-to-data + (cdr pair) (org-babel-temp-file "gnuplot-") params) + (cdr pair)))) + (mapcar #'cdr (org-babel-get-header params :var))))) (defun org-babel-expand-body:gnuplot (body params) "Expand BODY according to PARAMS, return the expanded body." @@ -85,6 +92,7 @@ code." (timefmt (plist-get params :timefmt)) (time-ind (or (plist-get params :timeind) (when timefmt 1))) + (missing (cdr (assoc :missing params))) (add-to-body (lambda (text) (setq body (concat text "\n" body)))) output) ;; append header argument settings to body @@ -210,7 +218,10 @@ then create one. Return the initialized session. The current (if (string-match org-table-number-regexp s) s (if (string-match org-ts-regexp3 s) (org-babel-gnuplot-quote-timestamp-field s) - (concat "\"" (mapconcat 'identity (split-string s "\"") "\"\"") "\"")))) + (if (and *org-babel-gnuplot-missing* (zerop (length s))) + *org-babel-gnuplot-missing* + (concat "\"" (mapconcat 'identity (split-string s "\"") "\"\"") + "\""))))) (defun org-babel-gnuplot-table-to-data (table data-file params) "Export TABLE to DATA-FILE in a format readable by gnuplot. |