ob-gnuplot: Use org backend when assigning table to variable

* lisp/ob-gnuplot.el (org-babel-gnuplot-table-to-data): Switch to 'org
backend when exporting table data to plain text table.  ascii backend
incorrectly handles quote transcoders that change the column width and
sometimes throws an error.  (ascii backend simply ignores transcoded
table cells and calculates width based on the initial cell text).
This commit is contained in:
Ihor Radchenko 2021-12-16 11:14:59 +08:00
parent 8908fba113
commit 23d8d59df8
No known key found for this signature in database
GPG Key ID: 6470762A7DA11D8B
1 changed files with 15 additions and 5 deletions

View File

@ -287,11 +287,21 @@ Pass PARAMS through to `orgtbl-to-generic' when exporting TABLE."
(with-temp-file data-file
(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 :raw t :backend ascii)
params)))))
(replace-regexp-in-string
;; org export backend adds "|" at the beginning/end of
;; the table lines. Strip those.
"^|\\(.+\\)|$"
"\\1"
(orgtbl-to-generic
table
(org-combine-plists
'( :sep "\t" :fmt org-babel-gnuplot-quote-tsv-field
;; Two setting below are needed to make :fmt work.
:raw t
;; Use `org', not `ascii' because `ascii' may
;; sometimes mishandle quoted strings.
:backend org)
params))))))
data-file)
(provide 'ob-gnuplot)