[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [O] [PATCH] Fixes to inline src block execution
From: |
Eric Schulte |
Subject: |
Re: [O] [PATCH] Fixes to inline src block execution |
Date: |
Tue, 06 Sep 2011 09:12:17 -0600 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (gnu/linux) |
Hi Martyn,
Martyn Jago <address@hidden> writes:
> 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
>
Confirmed, everything is passing for me as well on Ubuntu. Thanks for
the contribution and thanks for the unit tests. These patches have now
been applied.
Cheers -- Eric
>
> [...]
>
> 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)
--
Eric Schulte
http://cs.unm.edu/~eschulte/