Browse Source

fixed bug in org-babel-balanced-split when run on Emacs22

 Thanks to Martyn Jago for the test case

* lisp/ob.el (org-babel-balanced-split): Explicit checking if list
  before calling member.
* testing/lisp/test-ob.el (test-ob/org-babel-balanced-split): Testing
  the new Emacs22-proof behavior.
Eric Schulte 14 years ago
parent
commit
2c2e1a5448
2 changed files with 7 additions and 2 deletions
  1. 1 2
      lisp/ob.el
  2. 6 0
      testing/lisp/test-ob.el

+ 1 - 2
lisp/ob.el

@@ -1074,8 +1074,7 @@ ALTS is a cons of two character options where each option may be
 either the numeric code of a single character or a list of
 either the numeric code of a single character or a list of
 character alternatives.  For example to split on balanced
 character alternatives.  For example to split on balanced
 instances of \"[ \t]:\" set ALTS to '((32 9) . 58)."
 instances of \"[ \t]:\" set ALTS to '((32 9) . 58)."
-  (flet ((matches (ch spec) (or (and (numberp spec) (= spec ch))
-				(member ch spec)))
+  (flet ((matches (ch spec) (if (listp spec) (member ch spec) (equal spec ch)))
 	 (matched (ch last)
 	 (matched (ch last)
 		  (if (consp alts)
 		  (if (consp alts)
 		      (and (matches ch (cdr alts))
 		      (and (matches ch (cdr alts))

+ 6 - 0
testing/lisp/test-ob.el

@@ -583,6 +583,12 @@ on two lines
     (should (= 2 (length (org-babel-ref-split-args
     (should (= 2 (length (org-babel-ref-split-args
 			  "a=\"this, no work\", b=1"))))))
 			  "a=\"this, no work\", b=1"))))))
 
 
+(ert-deftest test-ob/org-babel-balanced-split ()
+  (should (equal
+	   '(":a 1" "b [2 3]" "c (4 :d (5 6))")
+	   (org-babel-balanced-split ":a 1 :b [2 3] :c (4 :d (5 6))"
+				     '((32 9) . 58)))))
+
 (provide 'test-ob)
 (provide 'test-ob)
 
 
 ;;; test-ob ends here
 ;;; test-ob ends here