mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-01-03 10:31:37 -08:00
Update Org to v9.0.9
Please see etc/ORG-NEWS for details.
This commit is contained in:
parent
386a3da920
commit
5cecd27582
125 changed files with 55265 additions and 36875 deletions
|
|
@ -1,4 +1,4 @@
|
|||
;;; ob-gnuplot.el --- org-babel functions for gnuplot evaluation
|
||||
;;; ob-gnuplot.el --- Babel Functions for Gnuplot -*- lexical-binding: t; -*-
|
||||
|
||||
;; Copyright (C) 2009-2017 Free Software Foundation, Inc.
|
||||
|
||||
|
|
@ -39,12 +39,10 @@
|
|||
|
||||
;;; Code:
|
||||
(require 'ob)
|
||||
(eval-when-compile (require 'cl))
|
||||
|
||||
(declare-function org-time-string-to-time "org" (s &optional buffer pos))
|
||||
(declare-function org-combine-plists "org" (&rest plists))
|
||||
(declare-function orgtbl-to-generic "org-table"
|
||||
(table params &optional backend))
|
||||
(declare-function orgtbl-to-generic "org-table" (table params))
|
||||
(declare-function gnuplot-mode "ext:gnuplot-mode" ())
|
||||
(declare-function gnuplot-send-string-to-gnuplot "ext:gnuplot-mode" (str txt))
|
||||
(declare-function gnuplot-send-buffer-to-gnuplot "ext:gnuplot-mode" ())
|
||||
|
|
@ -65,7 +63,7 @@
|
|||
(term . :any))
|
||||
"Gnuplot specific header args.")
|
||||
|
||||
(defvar org-babel-gnuplot-timestamp-fmt nil)
|
||||
(defvar org-babel-gnuplot-timestamp-fmt nil) ; Dynamically scoped.
|
||||
|
||||
(defvar *org-babel-gnuplot-missing* nil)
|
||||
|
||||
|
|
@ -81,7 +79,7 @@
|
|||
Dumps all vectors into files and returns an association list
|
||||
of variable names and the related value to be used in the gnuplot
|
||||
code."
|
||||
(let ((*org-babel-gnuplot-missing* (cdr (assoc :missing params))))
|
||||
(let ((*org-babel-gnuplot-missing* (cdr (assq :missing params))))
|
||||
(mapcar
|
||||
(lambda (pair)
|
||||
(cons
|
||||
|
|
@ -95,38 +93,33 @@ 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."
|
||||
(save-window-excursion
|
||||
(let* ((vars (org-babel-gnuplot-process-vars params))
|
||||
(out-file (cdr (assoc :file params)))
|
||||
(prologue (cdr (assoc :prologue params)))
|
||||
(epilogue (cdr (assoc :epilogue params)))
|
||||
(term (or (cdr (assoc :term params))
|
||||
(out-file (cdr (assq :file params)))
|
||||
(prologue (cdr (assq :prologue params)))
|
||||
(epilogue (cdr (assq :epilogue params)))
|
||||
(term (or (cdr (assq :term params))
|
||||
(when out-file
|
||||
(let ((ext (file-name-extension out-file)))
|
||||
(or (cdr (assoc (intern (downcase ext))
|
||||
*org-babel-gnuplot-terms*))
|
||||
ext)))))
|
||||
(cmdline (cdr (assoc :cmdline params)))
|
||||
(title (cdr (assoc :title params)))
|
||||
(lines (cdr (assoc :line params)))
|
||||
(sets (cdr (assoc :set params)))
|
||||
(x-labels (cdr (assoc :xlabels params)))
|
||||
(y-labels (cdr (assoc :ylabels params)))
|
||||
(timefmt (cdr (assoc :timefmt params)))
|
||||
(time-ind (or (cdr (assoc :timeind params))
|
||||
(title (cdr (assq :title params)))
|
||||
(lines (cdr (assq :line params)))
|
||||
(sets (cdr (assq :set params)))
|
||||
(x-labels (cdr (assq :xlabels params)))
|
||||
(y-labels (cdr (assq :ylabels params)))
|
||||
(timefmt (cdr (assq :timefmt params)))
|
||||
(time-ind (or (cdr (assq :timeind params))
|
||||
(when timefmt 1)))
|
||||
(missing (cdr (assoc :missing params)))
|
||||
(add-to-body (lambda (text) (setq body (concat text "\n" body))))
|
||||
output)
|
||||
(add-to-body (lambda (text) (setq body (concat text "\n" body)))))
|
||||
;; append header argument settings to body
|
||||
(when title (funcall add-to-body (format "set title '%s'" title)))
|
||||
(when lines (mapc (lambda (el) (funcall add-to-body el)) lines))
|
||||
(when missing
|
||||
(funcall add-to-body (format "set datafile missing '%s'" missing)))
|
||||
(when sets
|
||||
(mapc (lambda (el) (funcall add-to-body (format "set %s" el))) sets))
|
||||
(when x-labels
|
||||
|
|
@ -175,9 +168,8 @@ code."
|
|||
"Execute a block of Gnuplot code.
|
||||
This function is called by `org-babel-execute-src-block'."
|
||||
(require 'gnuplot)
|
||||
(let ((session (cdr (assoc :session params)))
|
||||
(result-type (cdr (assoc :results params)))
|
||||
(out-file (cdr (assoc :file params)))
|
||||
(let ((session (cdr (assq :session params)))
|
||||
(result-type (cdr (assq :results params)))
|
||||
(body (org-babel-expand-body:gnuplot body params))
|
||||
output)
|
||||
(save-window-excursion
|
||||
|
|
@ -195,7 +187,7 @@ This function is called by `org-babel-execute-src-block'."
|
|||
script-file
|
||||
(if (member system-type '(cygwin windows-nt ms-dos))
|
||||
t nil)))))
|
||||
(message output))
|
||||
(message "%s" output))
|
||||
(with-temp-buffer
|
||||
(insert (concat body "\n"))
|
||||
(gnuplot-mode)
|
||||
|
|
@ -210,10 +202,12 @@ This function is called by `org-babel-execute-src-block'."
|
|||
(var-lines (org-babel-variable-assignments:gnuplot params)))
|
||||
(message "%S" session)
|
||||
(org-babel-comint-in-buffer session
|
||||
(mapc (lambda (var-line)
|
||||
(insert var-line) (comint-send-input nil t)
|
||||
(org-babel-comint-wait-for-output session)
|
||||
(sit-for .1) (goto-char (point-max))) var-lines))
|
||||
(dolist (var-line var-lines)
|
||||
(insert var-line)
|
||||
(comint-send-input nil t)
|
||||
(org-babel-comint-wait-for-output session)
|
||||
(sit-for .1)
|
||||
(goto-char (point-max))))
|
||||
session))
|
||||
|
||||
(defun org-babel-load-session:gnuplot (session body params)
|
||||
|
|
@ -232,7 +226,7 @@ This function is called by `org-babel-execute-src-block'."
|
|||
(org-babel-gnuplot-process-vars params)))
|
||||
|
||||
(defvar gnuplot-buffer)
|
||||
(defun org-babel-gnuplot-initiate-session (&optional session params)
|
||||
(defun org-babel-gnuplot-initiate-session (&optional session _params)
|
||||
"Initiate a gnuplot session.
|
||||
If there is not a current inferior-process-buffer in SESSION
|
||||
then create one. Return the initialized session. The current
|
||||
|
|
@ -268,15 +262,13 @@ then create one. Return the initialized session. The current
|
|||
"Export TABLE to DATA-FILE in a format readable by gnuplot.
|
||||
Pass PARAMS through to `orgtbl-to-generic' when exporting TABLE."
|
||||
(with-temp-file data-file
|
||||
(make-local-variable 'org-babel-gnuplot-timestamp-fmt)
|
||||
(setq org-babel-gnuplot-timestamp-fmt (or
|
||||
(plist-get params :timefmt)
|
||||
"%Y-%m-%d-%H:%M:%S"))
|
||||
(insert (orgtbl-to-generic
|
||||
table
|
||||
(org-combine-plists
|
||||
'(:sep "\t" :fmt org-babel-gnuplot-quote-tsv-field)
|
||||
params))))
|
||||
(insert (let ((org-babel-gnuplot-timestamp-fmt
|
||||
(or (plist-get params :timefmt) "%Y-%m-%d-%H:%M:%S")))
|
||||
(orgtbl-to-generic
|
||||
table
|
||||
(org-combine-plists
|
||||
'(:sep "\t" :fmt org-babel-gnuplot-quote-tsv-field)
|
||||
params)))))
|
||||
data-file)
|
||||
|
||||
(provide 'ob-gnuplot)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue