[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[O] Tentative patch to keep org-babel-results-keyword when calling org-b
From: |
Daniele Pizzolli |
Subject: |
[O] Tentative patch to keep org-babel-results-keyword when calling org-babel-remove-result |
Date: |
Fri, 20 Sep 2013 22:28:37 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130827 Icedove/17.0.8 |
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)))))))
- [O] Tentative patch to keep org-babel-results-keyword when calling org-babel-remove-result,
Daniele Pizzolli <=