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