From 4197fcc6419797426540c8abd5f94ed09cdcdfff Mon Sep 17 00:00:00 2001 From: TEC Date: Wed, 1 Jun 2022 00:42:57 +0800 Subject: [PATCH] org-plot: Run `org-plot/gnuplot-script' in org buf * lisp/org-plot.el (org-plot/gnuplot): Instead of running `org-plot/gnuplot-script' in a temp buffer, run it in the original Org buffer to preserve file-local variables in the event the user has configured `org-plot/gnuplot-term-extra' or `org-plot/gnuplot-script-preamble' to functions that reply on local variables. --- lisp/org-plot.el | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/lisp/org-plot.el b/lisp/org-plot.el index 4183b2af6..f238bfbc6 100644 --- a/lisp/org-plot.el +++ b/lisp/org-plot.el @@ -667,7 +667,8 @@ line directly before or after the table." (num-cols (length (if (eq (nth 0 table) 'hline) (nth 1 table) (nth 0 table)))) (type (assoc (plist-get params :plot-type) - org-plot/preset-plot-types))) + org-plot/preset-plot-types)) + gnuplot-script) (unless type (user-error "Org-plot type `%s' is undefined" (plist-get params :plot-type))) @@ -701,16 +702,17 @@ line directly before or after the table." ind-column)) (plist-put params :textind t))))) ; ind holds text ;; Write script. + (setq gnuplot-script + (org-plot/gnuplot-script + table data-file num-cols params (plist-get params :script))) (with-temp-buffer (if (plist-get params :script) ; user script - (progn (insert - (org-plot/gnuplot-script table data-file num-cols params t)) - (insert "\n") + (progn (insert gnuplot-script "\n") (insert-file-contents (plist-get params :script)) (goto-char (point-min)) (while (re-search-forward "\\$datafile" nil t) (replace-match data-file nil nil))) - (insert (org-plot/gnuplot-script table data-file num-cols params))) + (insert gnuplot-script)) ;; Graph table. (gnuplot-mode) (condition-case nil