diff options
Diffstat (limited to 'lisp/org/ob-gnuplot.el')
-rw-r--r-- | lisp/org/ob-gnuplot.el | 79 |
1 files changed, 39 insertions, 40 deletions
diff --git a/lisp/org/ob-gnuplot.el b/lisp/org/ob-gnuplot.el index 5d07366e774..55c415320d6 100644 --- a/lisp/org/ob-gnuplot.el +++ b/lisp/org/ob-gnuplot.el @@ -87,46 +87,45 @@ code." (timefmt (plist-get params :timefmt)) (time-ind (or (plist-get params :timeind) (when timefmt 1))) + (add-to-body (lambda (text) (setq body (concat text "\n" body)))) output) - (flet ((add-to-body (text) - (setq body (concat text "\n" body)))) - ;; append header argument settings to body - (when title (add-to-body (format "set title '%s'" title))) ;; title - (when lines (mapc (lambda (el) (add-to-body el)) lines)) ;; line - (when sets - (mapc (lambda (el) (add-to-body (format "set %s" el))) sets)) - (when x-labels - (add-to-body - (format "set xtics (%s)" - (mapconcat (lambda (pair) - (format "\"%s\" %d" (cdr pair) (car pair))) - x-labels ", ")))) - (when y-labels - (add-to-body - (format "set ytics (%s)" - (mapconcat (lambda (pair) - (format "\"%s\" %d" (cdr pair) (car pair))) - y-labels ", ")))) - (when time-ind - (add-to-body "set xdata time") - (add-to-body (concat "set timefmt \"" - (or timefmt - "%Y-%m-%d-%H:%M:%S") "\""))) - (when out-file (add-to-body (format "set output \"%s\"" out-file))) - (when term (add-to-body (format "set term %s" term))) - ;; insert variables into code body: this should happen last - ;; placing the variables at the *top* of the code in case their - ;; values are used later - (add-to-body (mapconcat #'identity - (org-babel-variable-assignments:gnuplot params) - "\n")) - ;; replace any variable names preceded by '$' with the actual - ;; value of the variable - (mapc (lambda (pair) - (setq body (replace-regexp-in-string - (format "\\$%s" (car pair)) (cdr pair) body))) - vars)) - body))) + ;; append header argument settings to body + (when title (funcall add-to-body (format "set title '%s'" title))) ;; title + (when lines (mapc (lambda (el) (funcall add-to-body el)) lines)) ;; line + (when sets + (mapc (lambda (el) (funcall add-to-body (format "set %s" el))) sets)) + (when x-labels + (funcall add-to-body + (format "set xtics (%s)" + (mapconcat (lambda (pair) + (format "\"%s\" %d" (cdr pair) (car pair))) + x-labels ", ")))) + (when y-labels + (funcall add-to-body + (format "set ytics (%s)" + (mapconcat (lambda (pair) + (format "\"%s\" %d" (cdr pair) (car pair))) + y-labels ", ")))) + (when time-ind + (funcall add-to-body "set xdata time") + (funcall add-to-body (concat "set timefmt \"" + (or timefmt + "%Y-%m-%d-%H:%M:%S") "\""))) + (when out-file (funcall add-to-body (format "set output \"%s\"" out-file))) + (when term (funcall add-to-body (format "set term %s" term))) + ;; insert variables into code body: this should happen last + ;; placing the variables at the *top* of the code in case their + ;; values are used later + (funcall add-to-body (mapconcat #'identity + (org-babel-variable-assignments:gnuplot params) + "\n")) + ;; replace any variable names preceded by '$' with the actual + ;; value of the variable + (mapc (lambda (pair) + (setq body (replace-regexp-in-string + (format "\\$%s" (car pair)) (cdr pair) body))) + vars)) + body)) (defun org-babel-execute:gnuplot (body params) "Execute a block of Gnuplot code. @@ -183,7 +182,7 @@ This function is called by `org-babel-execute-src-block'." buffer))) (defun org-babel-variable-assignments:gnuplot (params) - "Return list of gnuplot statements assigning the block's variables" + "Return list of gnuplot statements assigning the block's variables." (mapcar (lambda (pair) (format "%s = \"%s\"" (car pair) (cdr pair))) (org-babel-gnuplot-process-vars params))) |