From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eric Schulte Subject: Re: Tentative patch to keep org-babel-results-keyword when calling org-babel-remove-result Date: Fri, 20 Sep 2013 15:13:19 -0600 Message-ID: <87wqmb5h8w.fsf@gmail.com> References: <523CAFF5.8090604@toel.it> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:47152) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VN80b-0003kF-Bm for emacs-orgmode@gnu.org; Fri, 20 Sep 2013 17:13:05 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VN80W-0007E4-Jv for emacs-orgmode@gnu.org; Fri, 20 Sep 2013 17:13:01 -0400 Received: from mail-pd0-x231.google.com ([2607:f8b0:400e:c02::231]:50073) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VN80W-0007DZ-9F for emacs-orgmode@gnu.org; Fri, 20 Sep 2013 17:12:56 -0400 Received: by mail-pd0-f177.google.com with SMTP id y10so845532pdj.8 for ; Fri, 20 Sep 2013 14:12:54 -0700 (PDT) In-Reply-To: <523CAFF5.8090604@toel.it> (Daniele Pizzolli's message of "Fri, 20 Sep 2013 22:28:37 +0200") 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: Daniele Pizzolli Cc: emacs-orgmode@gnu.org --=-=-= Content-Type: text/plain Hi Daniele, Thanks for the suggestion and the accompanying patch. I've just applied a modified version of your patch (included below). Please let me know if this is insufficient for your needs. Best, --=-=-= Content-Type: text/x-diff Content-Disposition: inline; filename=0001-org-babel-remove-result-option-keep-result-keyword.patch >From 136bdc0e83358fa3f6af1d8b3b0cd71cace61efe Mon Sep 17 00:00:00 2001 From: Eric Schulte Date: Fri, 20 Sep 2013 15:07:15 -0600 Subject: [PATCH] org-babel-remove-result option keep result keyword This patch is based off of a request and an initial patch supplied by Daniele Pizzolli. * lisp/ob-core.el (org-babel-remove-result): Added an option to keep the results keyword when removing the content of results. --- lisp/ob-core.el | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/lisp/ob-core.el b/lisp/ob-core.el index cc6b7a9..e2404c1 100644 --- a/lisp/ob-core.el +++ b/lisp/ob-core.el @@ -2159,15 +2159,17 @@ code ---- the results are extracted in the syntax of the source (set-marker visible-beg nil) (set-marker visible-end nil)))))) -(defun org-babel-remove-result (&optional info) +(defun org-babel-remove-result (&optional info keep-keyword) "Remove the result of the current source block." (interactive) - (let ((location (org-babel-where-is-src-block-result nil info)) start) + (let ((location (org-babel-where-is-src-block-result nil info))) (when location - (setq start (- location 1)) (save-excursion - (goto-char location) (forward-line 1) - (delete-region start (org-babel-result-end)))))) + (goto-char location) + (when (looking-at org-babel-result-regexp) + (delete-region + (if keep-keyword (1+ (match-end 0)) (match-beginning 0)) + (progn (forward-line 1) (org-babel-result-end)))))))) (defun org-babel-result-end () "Return the point at the end of the current set of results." -- 1.8.4 --=-=-= Content-Type: text/plain Daniele Pizzolli writes: > Hello @ll, > > this is my fist post on the list. Thanks to everybody for posting > interesting things and keeping org-mode improving! > > I am seeking help because of my limited elisp knowledge. > > This is my incomplete patch to extend org-babel-remove-result to keep > the org-babel-results-keyword when removing the results. > > I need to keep the org-babel-results-keyword because I want to commit > to my dvcs a clean file and easily evaluate the results at any time > later. > > Unfortunately running org-babel-remove-result on a snippet like the > following: > > #+BEGIN_SRC octave :results value file > % at the end produce an image > #+END_SRC > > #+ATTR_LATEX: :width 3cm > #+RESULTS: > [[file:image_01.png]] > > Will output: > > #+BEGIN_SRC octave :results value file > % at the end produce an image > #+END_SRC > > #+ATTR_LATEX: :width 3cm > > And a run of org-babel-execute-buffer will produce: > > #+BEGIN_SRC octave :results value file > % at the end produce an image > #+END_SRC > > #+RESULTS: > [[file:image_01.png]] > > #+ATTR_LATEX: :width 3cm > > changing the position of the LaTeX specific attribute #+ATTR_LATEX: in > way that it becomes useless. > > The patch add an optional argument to org-babel-remove-result but > relies to an hard-coded value of the length of the default > org-babel-results-keyword plus syntax elements: "#+RESULTS:". > > Instead of calculating lengths I think that is better to move to next > line. > > I also skipped a deletion of the last char assuming that is always a > new line. Is this assumption correct? If we delete the last line > we can end with: > > #+RESULTS: > ** some other section > > That will cause problem in the next evaluation. > > I will appreciate your suggestions to improve the patch myself. It > would be great also if anybody can implement it properly and get it merged. > > Thanks in advance, > Daniele Pizzolli > > > diff --git a/lisp/ob-core.el b/lisp/ob-core.el > index cc6b7a9..7517ebf 100644 > --- a/lisp/ob-core.el > +++ b/lisp/ob-core.el > @@ -2159,15 +2159,18 @@ code ---- the results are extracted in the syntax of the source > (set-marker visible-beg nil) > (set-marker visible-end nil)))))) > > -(defun org-babel-remove-result (&optional info) > - "Remove the result of the current source block." > +(defun org-babel-remove-result (&optional info keep-keyword) > + "Remove the result of the current source block. Optionally > +keep the result keyword." > (interactive) > (let ((location (org-babel-where-is-src-block-result nil info)) start) > (when location > - (setq start (- location 1)) > + (setq start (if keep-keyword (+ location 10) (- location 1))) > (save-excursion > (goto-char location) (forward-line 1) > - (delete-region start (org-babel-result-end)))))) > + (delete-region > + start > + (if keep-keyword (- (org-babel-result-end) 1) (org-babel-result-end))))))) > > -- Eric Schulte https://cs.unm.edu/~eschulte PGP: 0x614CA05D --=-=-=--