From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eric Schulte Subject: Re: Using cat() with R prints R session prompt (>) in results block Date: Sat, 23 Mar 2013 16:20:31 -0600 Message-ID: <87vc8hpwvz.fsf@gmail.com> References: Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([208.118.235.92]:52629) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UJX2X-0002Q9-LY for emacs-orgmode@gnu.org; Sat, 23 Mar 2013 18:35:54 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UJX2V-0003ie-Hb for emacs-orgmode@gnu.org; Sat, 23 Mar 2013 18:35:53 -0400 Received: from mail-ia0-x22e.google.com ([2607:f8b0:4001:c02::22e]:35366) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UJX2V-0003i8-6S for emacs-orgmode@gnu.org; Sat, 23 Mar 2013 18:35:51 -0400 Received: by mail-ia0-f174.google.com with SMTP id b35so4454015iac.19 for ; Sat, 23 Mar 2013 15:35:50 -0700 (PDT) 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: John Hendy Cc: emacs-orgmode [...] > I'm getting the > prompt from my R session output > with the cat() command. For example: > > #+name: test > #+begin_src R :session r :results output raw :exports results > > cat(paste("#+end_center")) > cat("\n") > > #+end_src > > #+RESULTS: test > #+end_center> > > How do I stop that? > > As a side note... if I remove cat("\n"), nothing gets put into the > #+results block -- it's just empty. I don't understand why. > Hi John, This seems to be related to newlines and the parsing of session output. Results aren't noticed without a newline, and when intermediately printed results do not end in a newline, the prompt is pasted along with the results. If we look at the R session buffer, the cause of this bad behavior can be seen. ,----[ESS buffer] | > cat(paste("#+end_center")) | cat("\n") | 'org_babel_R_eoe' | cat(paste("#+end_center")) | #+end_center> cat("\n") | | | > 'org_babel_R_eoe' | [1] "org_babel_R_eoe" `---- I'm not sure that we can (robustly and reasonably) distinguish the R prompt from R process output when the prompt does not appear at the start of a line. Perhaps ESS could mark R prompts with a special text property which would make this much easier from the Org-mode side? Is it possible simply to ensure that code block output lines end in newlines? Cheers, -- Eric Schulte http://cs.unm.edu/~eschulte