emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] [PATCH] Fixes to inline src block execution


From: Martyn Jago
Subject: Re: [O] [PATCH] Fixes to inline src block execution
Date: Tue, 06 Sep 2011 09:19:12 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (darwin)

Eric Schulte <address@hidden> writes:

Hi Eric

> Martyn Jago <address@hidden> writes:
>
>> Hi
>>
>> Some fixes to inline src block execution via org-ctrl-c-ctrl-c
>> where point is beyond white-space in the inline src block body...
>>
>> * Start Pomodoro
>>  src_emacs-lisp[:results silent]{( org-timer-set-timer 25 )} 

[...]

> This looks great.  I would like to apply this patch but it breaks unit
> tests at least one of which existed previously and was passing.  Would
> you mind taking a look at these unit tests to see if your patch breaks
> existing behavior?

Yes my bad - even my supplied tests failed (it was very late). I've fixed 
my code and fixed a failing test due to a previous regression.

All tests now pass here on Mac OSX

[...]

Regards

Martyn

>From 3dacd351550ec691beb49c1560ce247033711a76 Mon Sep 17 00:00:00 2001
From: Martyn Jago <address@hidden>
Date: Tue, 6 Sep 2011 09:00:24 +0100
Subject: [PATCH] Inline source block and test fixes
 * lisp/ob.el: Fixed late night refactoring error
 * testing/examples/babel.org: whitespace
 * testing/lisp/test-ob.el:
 Fixed test-org-babel/inline-src-block-regexp (regression error)
 Renamed test-org-babel/parse-header-args2 since duplicate test heading
 Made test-org-babel/parse-header-args less brittle

---
 lisp/ob.el                 |    8 +++---
 testing/examples/babel.org |    1 +
 testing/lisp/test-ob.el    |   45 ++++++++++++++++++++++---------------------
 3 files changed, 28 insertions(+), 26 deletions(-)

diff --git a/lisp/ob.el b/lisp/ob.el
index 2964f82..d6b0ba3 100644
--- a/lisp/ob.el
+++ b/lisp/ob.el
@@ -166,11 +166,11 @@ Returns non-nil if match-data set"
                      (beginning-of-line 1)
                      (string= "src" (thing-at-point 'word))))
        (first-line-p (= 1 (line-number-at-pos)))
-      (orig (point)))
-    (let ((search-for (cond (src-at-0-p "src_")
-                           (first-line-p " src_")
+       (orig (point)))
+    (let ((search-for (cond ((and src-at-0-p first-line-p  "src_"))
+                           (first-line-p "[ \t]src_")
                            (t "[ \f\t\n\r\v]src_")))
-         (lower-limit (if (= 1 (line-number-at-pos))
+         (lower-limit (if first-line-p
                           nil
                         (- (point-at-bol) 1))))
       (save-excursion
diff --git a/testing/examples/babel.org b/testing/examples/babel.org
index f85e1f0..5b7f2ef 100644
--- a/testing/examples/babel.org
+++ b/testing/examples/babel.org
@@ -279,6 +279,7 @@ this is simple
    :ID:       d4faa7b3-072b-4dcf-813c-dd7141c633f3
    :END:
 has length 14
+
 * org-babel-get-inline-src-block-matches
   :PROPERTIES:  
   :results:  silent
diff --git a/testing/lisp/test-ob.el b/testing/lisp/test-ob.el
index 71ea7e2..f9884dd 100644
--- a/testing/lisp/test-ob.el
+++ b/testing/lisp/test-ob.el
@@ -108,7 +108,7 @@
 
 
 (ert-deftest test-org-babel/inline-src-block-regexp ()
-  (should(equal (concat "[^-[:alnum:]]\\(src_\\([^ \f\t\n\r\v]+\\)"
+  (should(equal (concat "\\(?:^\\|[^-[:alnum:]]\\)\\(src_\\([^ \f\t\n\r\v]+\\)"
                        "\\(\\|\\[\\(.*?\\)\\]\\)"
                        "{\\([^\f\n\r\v]+?\\)}\\)")
                org-babel-inline-src-block-regexp))
@@ -206,7 +206,7 @@
       (should(equal '(:result-type . output) (assoc :result-type params)))
       (should(equal '(num . 9) (cdr (assoc :var params)))))))
 
-(ert-deftest test-org-babel/parse-header-args ()
+(ert-deftest test-org-babel/parse-header-args2 ()
   (org-test-at-id "2409e8ba-7b5f-4678-8888-e48aa02d8cb4"
     (should (string-match (regexp-quote "this is simple")
                          (org-babel-ref-resolve "simple-subtree")))
@@ -225,26 +225,27 @@
 
 (ert-deftest test-org-babel/org-babel-get-inline-src-block-matches ()
   (org-test-at-id "0D0983D4-DE33-400A-8A05-A225A567BC74"
-    (should (fboundp 'org-babel-get-inline-src-block-matches))
-    (should (re-search-forward "src_" nil t)) ;; 1
-    (should (= 6132 (match-end 0)))
-    (should (org-babel-get-inline-src-block-matches))
-    (should (re-search-forward "}" nil (point-at-bol))) ;; 1
-    (should-not (org-babel-get-inline-src-block-matches))
-    (should (re-search-forward "in" nil t)) ;; 2
-    (should-not (org-babel-get-inline-src-block-matches))
-    (should (re-search-forward "echo" nil t)) ;; 2
-    (should (org-babel-get-inline-src-block-matches))
-    (should (re-search-forward "blocks" nil t)) ;; 3
-    (left-char 8) ;; 3
-    (should (org-babel-get-inline-src-block-matches))
-    (right-char 1) ;;3
-    (should-not (org-babel-get-inline-src-block-matches))
-    (should (re-search-forward ":results" nil t)) ;; 4
-    (should (org-babel-get-inline-src-block-matches))
-    (end-of-line)
-    (should-not (org-babel-get-inline-src-block-matches))
-    ))
+    (let ((test-point (point)))
+      (should (fboundp 'org-babel-get-inline-src-block-matches))
+      (should (re-search-forward "src_" nil t)) ;; 1
+      (should (= (+ test-point 140) (match-end 0)))
+      (should (org-babel-get-inline-src-block-matches))
+      (should (re-search-forward "}" nil (point-at-bol))) ;; 1
+      (should-not (org-babel-get-inline-src-block-matches))
+      (should (re-search-forward "in" nil t)) ;; 2
+      (should-not (org-babel-get-inline-src-block-matches))
+      (should (re-search-forward "echo" nil t)) ;; 2
+      (should (org-babel-get-inline-src-block-matches))
+      (should (re-search-forward "blocks" nil t)) ;; 3
+      (left-char 8) ;; 3
+      (should (org-babel-get-inline-src-block-matches))
+      (right-char 1) ;;3
+      (should-not (org-babel-get-inline-src-block-matches))
+      (should (re-search-forward ":results" nil t)) ;; 4
+      (should (org-babel-get-inline-src-block-matches))
+      (end-of-line)
+      (should-not (org-babel-get-inline-src-block-matches))
+    )))
 
 (provide 'test-ob)
 
-- 
1.7.3.4


---
Org-mode version 7.7
GNU Emacs 24.0.50.1 (x86_64-apple-darwin, NS apple-appkit-1038.35)
 of 2011-08-21 on virtualmac.porkrind.org





reply via email to

[Prev in Thread] Current Thread [Next in Thread]