Re: [O] [babel][patch] BUG in inline source blocks

2012-01-30 Thread Eric Schulte

 Thanks. But out of interest why were the tests discarded? They are after
 all the proof that the code works, and the `living specification' of
 expected behavior.

 Just wondering 


My apologies,

I didn't see the tests when looking at your patch and didn't realize
they were there.  Thanks for mentioning this, I have now applied them.

BTW: the only reason I didn't apply your patch outright was because by
the time I got to your message in the thread I had already pushed up my
own (less comprehensive) patch which conflicted with your own.

Also, as a more general note to everyone who works with and submits
patches.  It is worthwhile to review the text of a patch before
submitting because often trivial things like changed indentation can add
many lines to a patch file hiding the actual code changes.

Cheers,

-- 
Eric Schulte
http://cs.unm.edu/~eschulte/



Re: [O] [babel][patch] BUG in inline source blocks

2012-01-28 Thread Andreas Leha
Eric Schulte eric.schu...@gmx.com writes:

 Andreas Leha andreas.l...@med.uni-goettingen.de writes:

 Martyn Jago martyn.j...@btinternet.com writes:

 Martyn Jago martyn.j...@btinternet.com writes:

 Hi,

 Andreas Leha andreas.l...@med.uni-goettingen.de writes:

 Hi all,

 I experience unexpected behaviour when an inline source block is not
 preceded by whitespace.

 Example:
 ===
 * Test inline
   This is a functional inline src_R{print(source block)}.

   This (src_R{print(here)}) is not.
 ===

 Regards,
 Andreas 

 I can confirm this behaviour and provide a patch to allow for inline
 source blocks to be preceded by punctuation, or, for instance, enclosed
 in parenthesis, as in Andreas' example. Patch is attached for
 consideration.

 Best, Martyn

 This is an updated version of the previous patch, with debug noise
 removed, and a couple of extra tests.

 Best, Martyn


 Thanks for this patch Martyn, I just pushed up your [:punct:] change.


 Hi Martyn,

 thanks for this patch!  It does half the job for me.  Now export (or
 evaluation) already work.  But in the export I get a space inserted.

 I my example, I'd expect (here) to appear in the export, but I get
 ( here).


 This should now be fixed.


Thanks, Martyn and Eric!  Indeed both issues are fixed now.

Regards,
Andreas





Re: [O] [babel][patch] BUG in inline source blocks

2012-01-28 Thread Martyn Jago
Hi Eric

Andreas Leha andreas.l...@med.uni-goettingen.de writes:


[...]

 Thanks for this patch Martyn, I just pushed up your [:punct:] change.


 Hi Martyn,

 thanks for this patch!  It does half the job for me.  Now export (or
 evaluation) already work.  But in the export I get a space inserted.

 I my example, I'd expect (here) to appear in the export, but I get
 ( here).


 This should now be fixed.


 Thanks, Martyn and Eric!  Indeed both issues are fixed now.

 Regards,
 Andreas

Thanks. But out of interest why were the tests discarded? They are after
all the proof that the code works, and the `living specification' of
expected behavior.

Just wondering 

Best, Martyn




Re: [O] [babel][patch] BUG in inline source blocks

2012-01-27 Thread Andreas Leha
Martyn Jago martyn.j...@btinternet.com writes:

 Martyn Jago martyn.j...@btinternet.com writes:

 Hi,

 Andreas Leha andreas.l...@med.uni-goettingen.de writes:

 Hi all,

 I experience unexpected behaviour when an inline source block is not
 preceded by whitespace.

 Example:
 ===
 * Test inline
   This is a functional inline src_R{print(source block)}.

   This (src_R{print(here)}) is not.
 ===

 Regards,
 Andreas 

 I can confirm this behaviour and provide a patch to allow for inline
 source blocks to be preceded by punctuation, or, for instance, enclosed
 in parenthesis, as in Andreas' example. Patch is attached for
 consideration.

 Best, Martyn

 This is an updated version of the previous patch, with debug noise
 removed, and a couple of extra tests.

 Best, Martyn

Hi Martyn,

thanks for this patch!  It does half the job for me.  Now export (or
evaluation) already work.  But in the export I get a space inserted.

I my example, I'd expect (here) to appear in the export, but I get ( here).

Best,
Andreas




Re: [O] [babel][patch] BUG in inline source blocks

2012-01-27 Thread Eric Schulte
Andreas Leha andreas.l...@med.uni-goettingen.de writes:

 Martyn Jago martyn.j...@btinternet.com writes:

 Martyn Jago martyn.j...@btinternet.com writes:

 Hi,

 Andreas Leha andreas.l...@med.uni-goettingen.de writes:

 Hi all,

 I experience unexpected behaviour when an inline source block is not
 preceded by whitespace.

 Example:
 ===
 * Test inline
   This is a functional inline src_R{print(source block)}.

   This (src_R{print(here)}) is not.
 ===

 Regards,
 Andreas 

 I can confirm this behaviour and provide a patch to allow for inline
 source blocks to be preceded by punctuation, or, for instance, enclosed
 in parenthesis, as in Andreas' example. Patch is attached for
 consideration.

 Best, Martyn

 This is an updated version of the previous patch, with debug noise
 removed, and a couple of extra tests.

 Best, Martyn


Thanks for this patch Martyn, I just pushed up your [:punct:] change.


 Hi Martyn,

 thanks for this patch!  It does half the job for me.  Now export (or
 evaluation) already work.  But in the export I get a space inserted.

 I my example, I'd expect (here) to appear in the export, but I get ( 
 here).


This should now be fixed.

Best,


 Best,
 Andreas



-- 
Eric Schulte
http://cs.unm.edu/~eschulte/



Re: [O] [babel][patch] BUG in inline source blocks

2012-01-26 Thread Martyn Jago
Hi,

Andreas Leha andreas.l...@med.uni-goettingen.de writes:

 Hi all,

 I experience unexpected behaviour when an inline source block is not
 preceded by whitespace.

 Example:
 ===
 * Test inline
   This is a functional inline src_R{print(source block)}.

   This (src_R{print(here)}) is not.
 ===

 Regards,
 Andreas 

I can confirm this behaviour and provide a patch to allow for inline
source blocks to be preceded by punctuation, or, for instance, enclosed
in parenthesis, as in Andreas' example. Patch is attached for
consideration.

Best, Martyn


From ce7ccfe97ce640f47ed83cdb2fdb6ffa8a6d3c54 Mon Sep 17 00:00:00 2001
From: Martyn Jago martyn.j...@btinternet.com
Date: Thu, 26 Jan 2012 13:22:25 +
Subject: [PATCH] Fix for where inline source block is not preceded by whitespace but by
 punctuation (reported by Andreas Leha).

* lisp/ob.el: Fix for where inline source block is not preceded by
whitespace but by punctuation.

* testing/lisp/test-ob.el: Regression test, testing inline source
block preceded by point, equality, and enclosed in parenthesis and
brackets.
---
 lisp/ob.el  |   21 -
 testing/lisp/test-ob.el |   44 
 2 files changed, 56 insertions(+), 9 deletions(-)

diff --git a/lisp/ob.el b/lisp/ob.el
index 70c258f..fbf032b 100644
--- a/lisp/ob.el
+++ b/lisp/ob.el
@@ -170,24 +170,27 @@ not match KEY should be returned.
 (defun org-babel-get-inline-src-block-matches()
   Set match data if within body of an inline source block.
 Returns non-nil if match-data set
-  (let ((src-at-0-p (save-excursion
+  (let* ((src-at-0-p (save-excursion
 		  (beginning-of-line 1)
 		  (string= src (thing-at-point 'word
 	(first-line-p (= 1 (line-number-at-pos)))
-	(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 first-line-p
-			   nil
-			 (- (point-at-bol) 1
+	(orig (point))
+	(search-for (cond ((and src-at-0-p first-line-p  src_))
+			  (first-line-p [ \t[:punct:]]src_)
+			  (t [ \f\t\n\r\v[:punct:]]src_)))
+	(lower-limit (if first-line-p
+			 nil
+		   (- (point-at-bol) 1
+  (message src-at-0-p = %S src-at-0-p)
+  (message first-line-p = %S src-at-0-p)
+  (message search-for = %S search-for)
   (save-excursion
 	(when (or (and src-at-0-p (bobp))
 		  (and (re-search-forward } (point-at-eol) t)
 		   (re-search-backward search-for lower-limit t)
 		   ( orig (point
 	  (when (looking-at org-babel-inline-src-block-regexp)
-	t ))
+	t )
 
 (defvar org-babel-inline-lob-one-liner-regexp)
 (defun org-babel-get-lob-one-liner-matches()
diff --git a/testing/lisp/test-ob.el b/testing/lisp/test-ob.el
index 7dccd22..fb38ead 100644
--- a/testing/lisp/test-ob.el
+++ b/testing/lisp/test-ob.el
@@ -430,6 +430,50 @@ this is simple
 		   (buffer-substring-no-properties
 			(point-min) (point-max)))
 
+(ert-deftest test-org-babel/inline-src_blk-preceded-punct ()
+  Test inline source block where preceded by punctuation
+
+  ;; inline-src-blk preceded by point
+  (let ((test-line .src_emacs-lisp[ :results verbatim ]{ \x\  }))
+(org-test-with-temp-text
+	test-line
+  (forward-char 1)
+  (org-ctrl-c-ctrl-c)
+  (should (string= (concat test-line  =\x\=)
+		   (buffer-substring-no-properties
+			(point-min) (point-max))
+
+  ;; inline-src-blk preceded by equality
+  (let ((test-line =src_emacs-lisp[ :results verbatim ]{ \x\  }))
+(org-test-with-temp-text
+	test-line
+  (forward-char 1)
+  (org-ctrl-c-ctrl-c)
+  (should (string= (concat test-line  =\x\=)
+		   (buffer-substring-no-properties
+			(point-min) (point-max))
+
+  ;; inline-src-blk enclosed within parenthesis
+  (let ((test-line (src_emacs-lisp[ :results verbatim ]{ \x\  }))
+(org-test-with-temp-text
+	(concat test-line ))
+  (forward-char 1)
+  (org-ctrl-c-ctrl-c)
+  (should (string= (concat test-line  =\x\=) )
+		   (buffer-substring-no-properties
+			(point-min) (point-max))
+
+  ;; inline-src-blk enclosed within parenthesis
+  (let ((test-line {src_emacs-lisp[ :results verbatim ]{ \x\  }))
+(org-test-with-temp-text
+	(concat test-line })
+  (forward-char 1)
+  (org-ctrl-c-ctrl-c)
+  (should (string= (concat test-line  =\x\=})
+		   (buffer-substring-no-properties
+			(point-min) (point-max))
+
+  )
 (ert-deftest test-org-babel/combining-scalar-and-raw-result-types ()
   (org-test-with-temp-text-in-file 
 
-- 
1.7.3.4



Re: [O] [babel][patch] BUG in inline source blocks

2012-01-26 Thread Martyn Jago
Martyn Jago martyn.j...@btinternet.com writes:

 Hi,

 Andreas Leha andreas.l...@med.uni-goettingen.de writes:

 Hi all,

 I experience unexpected behaviour when an inline source block is not
 preceded by whitespace.

 Example:
 ===
 * Test inline
   This is a functional inline src_R{print(source block)}.

   This (src_R{print(here)}) is not.
 ===

 Regards,
 Andreas 

 I can confirm this behaviour and provide a patch to allow for inline
 source blocks to be preceded by punctuation, or, for instance, enclosed
 in parenthesis, as in Andreas' example. Patch is attached for
 consideration.

 Best, Martyn

This is an updated version of the previous patch, with debug noise
removed, and a couple of extra tests.

Best, Martyn

From b46e7a496c30f683c50759013ad39a9d8c6ff42b Mon Sep 17 00:00:00 2001
From: Martyn Jago martyn.j...@btinternet.com
Date: Thu, 26 Jan 2012 19:48:35 +
Subject: [PATCH] Fix for where inline source block is not preceded by whitespace but by
  punctuation (reported by Andreas Leha).

* lisp/ob.el: Fix for where inline source block is not preceded by
whitespace but by punctuation.

* testing/lisp/test-ob.el: Regression tests.
---
 lisp/ob.el  |   30 ++--
 testing/lisp/test-ob.el |   69 +++
 2 files changed, 84 insertions(+), 15 deletions(-)

diff --git a/lisp/ob.el b/lisp/ob.el
index 70c258f..fd6a897 100644
--- a/lisp/ob.el
+++ b/lisp/ob.el
@@ -170,24 +170,24 @@ not match KEY should be returned.
 (defun org-babel-get-inline-src-block-matches()
   Set match data if within body of an inline source block.
 Returns non-nil if match-data set
-  (let ((src-at-0-p (save-excursion
+  (let* ((src-at-0-p (save-excursion
 		  (beginning-of-line 1)
 		  (string= src (thing-at-point 'word
 	(first-line-p (= 1 (line-number-at-pos)))
-	(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 first-line-p
-			   nil
-			 (- (point-at-bol) 1
-  (save-excursion
-	(when (or (and src-at-0-p (bobp))
-		  (and (re-search-forward } (point-at-eol) t)
-		   (re-search-backward search-for lower-limit t)
-		   ( orig (point
-	  (when (looking-at org-babel-inline-src-block-regexp)
-	t ))
+	(orig (point))
+	(search-for (cond ((and src-at-0-p first-line-p  src_))
+			  (first-line-p [ \t[:punct:]]src_)
+			  (t [ \f\t\n\r\v[:punct:]]src_)))
+	(lower-limit (if first-line-p
+			 nil
+		   (- (point-at-bol) 1
+(save-excursion
+  (when (or (and src-at-0-p (bobp))
+		(and (re-search-forward } (point-at-eol) t)
+		 (re-search-backward search-for lower-limit t)
+		 ( orig (point
+	(when (looking-at org-babel-inline-src-block-regexp)
+	  t )
 
 (defvar org-babel-inline-lob-one-liner-regexp)
 (defun org-babel-get-lob-one-liner-matches()
diff --git a/testing/lisp/test-ob.el b/testing/lisp/test-ob.el
index 7dccd22..f4363f6 100644
--- a/testing/lisp/test-ob.el
+++ b/testing/lisp/test-ob.el
@@ -430,6 +430,75 @@ this is simple
 		   (buffer-substring-no-properties
 			(point-min) (point-max)))
 
+(ert-deftest test-org-babel/inline-src_blk-preceded-punct ()
+  Test inline source block where preceded by punctuation
+
+  ;; inline-src-blk preceded by point
+  (let ((test-line .src_emacs-lisp[ :results verbatim ]{ \x\  }))
+(org-test-with-temp-text
+	test-line
+  (forward-char 1)
+  (org-ctrl-c-ctrl-c)
+  (should (string= (concat test-line  =\x\=)
+		   (buffer-substring-no-properties
+			(point-min) (point-max))
+
+  ;; inline-src-blk preceded by equality
+  (let ((test-line =src_emacs-lisp[ :results verbatim ]{ \x\  }))
+(org-test-with-temp-text
+	test-line
+  (forward-char 1)
+  (org-ctrl-c-ctrl-c)
+  (should (string= (concat test-line  =\x\=)
+		   (buffer-substring-no-properties
+			(point-min) (point-max))
+
+  ;; inline-src-blk enclosed within parenthesis
+  (let ((test-line (src_emacs-lisp[ :results verbatim ]{ \x\  }))
+(org-test-with-temp-text
+	(concat test-line ))
+  (forward-char 1)
+  (org-ctrl-c-ctrl-c)
+  (should (string= (concat test-line  =\x\=) )
+		   (buffer-substring-no-properties
+			(point-min) (point-max))
+
+  ;; inline-src-blk enclosed within parenthesis
+  (let ((test-line {src_emacs-lisp[ :results verbatim ]{ \x\  }))
+(org-test-with-temp-text
+	(concat test-line })
+  (forward-char 1)
+  (org-ctrl-c-ctrl-c)
+  (should (string= (concat test-line  =\x\=})
+		   (buffer-substring-no-properties
+			(point-min) (point-max)))
+
+(ert-deftest test-org-babel/inline-src_blk-preceded-by-letter ()
+  Test inline source block invalid where preceded by letter
+
+  ;; inline-src-blk preceded by letter
+  (org-test-with-temp-text
+  asrc_emacs-lisp[ :results verbatim ]{ \x\  }
+(forward-char 1)
+(let ((error-result
+