From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andreas Leha Subject: Re: [babel] return file from R Date: Thu, 17 Dec 2015 22:04:54 +0000 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:36646) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1a9gfb-0008My-VY for emacs-orgmode@gnu.org; Thu, 17 Dec 2015 17:05:08 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1a9gfY-0004ON-NR for emacs-orgmode@gnu.org; Thu, 17 Dec 2015 17:05:07 -0500 Received: from plane.gmane.org ([80.91.229.3]:34759) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1a9gfY-0004Nt-HJ for emacs-orgmode@gnu.org; Thu, 17 Dec 2015 17:05:04 -0500 Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1a9gfW-0003Sa-Pc for emacs-orgmode@gnu.org; Thu, 17 Dec 2015 23:05:02 +0100 Received: from cpc92322-cmbg19-2-0-cust549.5-4.cable.virginm.net ([86.26.34.38]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Thu, 17 Dec 2015 23:05:02 +0100 Received: from andreas.leha by cpc92322-cmbg19-2-0-cust549.5-4.cable.virginm.net with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Thu, 17 Dec 2015 23:05:02 +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 Hi Chuck, "Charles C. Berry" writes: > On Thu, 17 Dec 2015, Andreas Leha wrote: > >> Hi all, >> >> I think there is a bug in the handling of results of R src blocks. What >> is the suggested way to make an R block return a link to a file? The >> obvious way appends a newline character to the file link (which is >> broken because of that). >> >> Here is an example: >> --8<---------------cut here---------------start------------->8--- >> #+NAME: TESTSRC >> #+BEGIN_SRC R :results file >> a <- file.path("junk", "test.org") >> a >> #+END_SRC >> >> #+RESULTS: TESTSRC >> [[file:junk/test.org >> ]] >> >> --8<---------------cut here---------------end--------------->8--- > > > That *is* the suggested way, and it will work in (say) emacs-lisp. The > problem for `:results value' (the default) is that a newline is added > to the result by `org-babel-R-evaluate-external-process'. Thanks for the confirmation. > > This *might* be the fix, but I do not have time to check it thoroughly: > > diff --git a/lisp/ob-R.el b/lisp/ob-R.el > index f72cd95..f660bbd 100644 > --- a/lisp/ob-R.el > +++ b/lisp/ob-R.el > @@ -397,7 +397,7 @@ last statement in BODY, as elisp." > (org-babel-result-cond result-params > (with-temp-buffer > (insert-file-contents tmp-file) > - (buffer-string)) > + (org-babel-chomp (buffer-string) "\n")) > (org-babel-import-elisp-from-file tmp-file '(16))) > column-names-p))) > (output (org-babel-eval org-babel-R-command body)))) > I'll try to test this in the next days. > > In the meanwhile, you can work around by using `:results output' and > wrapping the result in cat(). Yes. But usually my source blocks are more noisy and produce some messages, which would break this approach. Thanks again, Andreas