From mboxrd@z Thu Jan 1 00:00:00 1970 From: Litvinov Sergey Subject: [BABEL,PATCH] Add graphical output to ob-octave Date: Sat, 17 Dec 2011 10:01:52 +0100 Message-ID: <87sjkjlgfz.fsf@gmail.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Return-path: Received: from eggs.gnu.org ([140.186.70.92]:42039) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Rbq9f-0004tQ-9o for emacs-orgmode@gnu.org; Sat, 17 Dec 2011 04:02:08 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Rbq9e-00020O-2r for emacs-orgmode@gnu.org; Sat, 17 Dec 2011 04:02:07 -0500 Received: from lo.gmane.org ([80.91.229.12]:50291) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Rbq9d-00020G-NQ for emacs-orgmode@gnu.org; Sat, 17 Dec 2011 04:02:06 -0500 Received: from list by lo.gmane.org with local (Exim 4.69) (envelope-from ) id 1Rbq9b-0005KJ-GB for emacs-orgmode@gnu.org; Sat, 17 Dec 2011 10:02:03 +0100 Received: from e181001226.adsl.alicedsl.de ([85.181.1.226]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sat, 17 Dec 2011 10:02:03 +0100 Received: from slitvinov by e181001226.adsl.alicedsl.de with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sat, 17 Dec 2011 10:02:03 +0100 List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: emacs-orgmode@gnu.org --=-=-= I propose a patch to make the following example work in ob-octave. #+begin_src octave :results graphics :file chart.png sombrero; % make a figure #+end_src --=-=-= Content-Type: text/x-diff Content-Disposition: inline; filename=0001-ob-octave.el-Add-graphical-output.patch >From f193df8b1b7d1330a0dde89907a607051f632775 Mon Sep 17 00:00:00 2001 From: Litvinov Sergey Date: Fri, 16 Dec 2011 20:12:39 +0100 Subject: [PATCH] ob-octave.el: Add graphical output * lisp/ob-octave.el: add graphical output to png file * testing/examples/ob-octave-test.org: add a test for graphical output, and a test for session --- lisp/ob-octave.el | 30 +++++++++++++++++++++++------- testing/examples/ob-octave-test.org | 10 ++++++++++ 2 files changed, 33 insertions(+), 7 deletions(-) diff --git a/lisp/ob-octave.el b/lisp/ob-octave.el index f840739..796a5c7 100644 --- a/lisp/ob-octave.el +++ b/lisp/ob-octave.el @@ -86,13 +86,24 @@ end") (org-babel-expand-body:generic body params (org-babel-variable-assignments:octave params))) (result (org-babel-octave-evaluate - session full-body result-type matlabp))) - (org-babel-reassemble-table - result - (org-babel-pick-name - (cdr (assoc :colname-names params)) (cdr (assoc :colnames params))) - (org-babel-pick-name - (cdr (assoc :rowname-names params)) (cdr (assoc :rownames params)))))) + session + (if (org-babel-octave-graphical-output-file params) + (mapconcat 'identity + (list + "set (0, \"defaultfigurevisible\", \"off\");" + full-body + (format "print -dpng %s" (org-babel-octave-graphical-output-file params))) + "\n") + full-body) + result-type matlabp))) + (if (org-babel-octave-graphical-output-file params) + nil + (org-babel-reassemble-table + result + (org-babel-pick-name + (cdr (assoc :colname-names params)) (cdr (assoc :colnames params))) + (org-babel-pick-name + (cdr (assoc :rowname-names params)) (cdr (assoc :rownames params))))))) (defun org-babel-prep-session:matlab (session params) "Prepare SESSION according to PARAMS." @@ -259,6 +270,11 @@ This removes initial blank and comment lines and then calls (match-string 1 string) string)) +(defun org-babel-octave-graphical-output-file (params) + "Name of file to which maxima should send graphical output." + (and (member "graphics" (cdr (assq :result-params params))) + (cdr (assq :file params)))) + (provide 'ob-octave) diff --git a/testing/examples/ob-octave-test.org b/testing/examples/ob-octave-test.org index 97d9b00..9839d63 100644 --- a/testing/examples/ob-octave-test.org +++ b/testing/examples/ob-octave-test.org @@ -43,3 +43,13 @@ Input elisp nil #+begin_src octave :exports results :results silent :var s='nil ans = s #+end_src + + +* Graphical tests +#+begin_src octave :results graphics :file chart.png +sombrero; +#+end_src + +#+begin_src octave :session +sombrero; +#+end_src -- 1.7.4.1 --=-=-=--