From mboxrd@z Thu Jan 1 00:00:00 1970 From: Martyn Jago Subject: Re: [PATCH] Fixes to inline src block execution Date: Tue, 06 Sep 2011 09:19:12 +0100 Message-ID: References: <871uvu1h51.fsf@gmail.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Return-path: Received: from eggs.gnu.org ([140.186.70.92]:54605) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1R0qse-0003G0-9N for emacs-orgmode@gnu.org; Tue, 06 Sep 2011 04:19:48 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1R0qsY-0005D7-Hy for emacs-orgmode@gnu.org; Tue, 06 Sep 2011 04:19:40 -0400 Received: from lo.gmane.org ([80.91.229.12]:47323) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1R0qsX-0005Cw-Tf for emacs-orgmode@gnu.org; Tue, 06 Sep 2011 04:19:34 -0400 Received: from list by lo.gmane.org with local (Exim 4.69) (envelope-from ) id 1R0qsV-0005ia-7N for emacs-orgmode@gnu.org; Tue, 06 Sep 2011 10:19:31 +0200 Received: from 88-96-171-142.dsl.zen.co.uk ([88.96.171.142]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 06 Sep 2011 10:19:31 +0200 Received: from martyn.jago by 88-96-171-142.dsl.zen.co.uk with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 06 Sep 2011 10:19:31 +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: emacs-orgmode@gnu.org --=-=-= Content-Type: text/plain Eric Schulte writes: Hi Eric > Martyn Jago 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 --=-=-= Content-Type: text/x-patch Content-Disposition: inline; filename=patch.diff Content-Description: Fix to ob.el, fix to test, test refactor >From 3dacd351550ec691beb49c1560ce247033711a76 Mon Sep 17 00:00:00 2001 From: Martyn Jago 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 --=-=-= Content-Type: text/plain --- 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 --=-=-=--