diff options
author | Martyn Jago <martyn.jago@btinternet.com> | 2012-01-05 18:00:12 +0000 |
---|---|---|
committer | Eric Schulte <eric.schulte@gmx.com> | 2012-01-06 00:31:00 -0700 |
commit | 3096cc3b614e37e7c9600257b969dedc47de6553 (patch) | |
tree | 001b0e3975f6128d27c53f63c55e78618fb24d92 | |
parent | d35c79aca95a6841ed9ca12364db6dbe05aba060 (diff) | |
download | org-mode-3096cc3b614e37e7c9600257b969dedc47de6553.tar.gz |
Bug fix in ob-emacs-lisp.el.
* lisp/ob-emacs-lisp.el: A comment on the last line of an emacs-lisp
code block would cause an error when the block is was executed. This
fix cures this behaviour.
* testing/lisp/test-ob-emacs-lisp.el: Regression tests for the above
fix.
-rw-r--r-- | lisp/ob-emacs-lisp.el | 14 | ||||
-rw-r--r-- | testing/lisp/test-ob-emacs-lisp.el | 82 |
2 files changed, 89 insertions, 7 deletions
diff --git a/lisp/ob-emacs-lisp.el b/lisp/ob-emacs-lisp.el index c6d9d59..d49a689 100644 --- a/lisp/ob-emacs-lisp.el +++ b/lisp/ob-emacs-lisp.el @@ -41,13 +41,13 @@ (result-params (cdr (assoc :result-params params))) (print-level nil) (print-length nil) (body (if (> (length vars) 0) - (concat "(let (" - (mapconcat - (lambda (var) - (format "%S" (print `(,(car var) ',(cdr var))))) - vars "\n ") - ")\n" body ")") - body))) + (concat "(let (" + (mapconcat + (lambda (var) + (format "%S" (print `(,(car var) ',(cdr var))))) + vars "\n ") + ")\n" body "\n)") + (concat body "\n")))) (if (or (member "code" result-params) (member "pp" result-params)) (concat "(pp " body ")") body))) diff --git a/testing/lisp/test-ob-emacs-lisp.el b/testing/lisp/test-ob-emacs-lisp.el new file mode 100644 index 0000000..a83e8e9 --- /dev/null +++ b/testing/lisp/test-ob-emacs-lisp.el @@ -0,0 +1,82 @@ +;;; test-ob-emacs-lisp.el + +;; Copyright (c) 2012 Free Software Foundation, Inc. +;; Authors: Eric Schulte, Martyn Jago + +;; Released under the GNU General Public License version 3 +;; see: http://www.gnu.org/licenses/gpl-3.0.html + +;;;; Comments: + +;; Org-mode tests for ob-emacs-lisp.el live here + + +;;; Code: + +(let ((load-path (cons (expand-file-name + ".." (file-name-directory + (or load-file-name buffer-file-name))) + load-path))) + (require 'org-test) + (require 'org-test-ob-consts)) + + +;;; Tests + +(ert-deftest ob-emacs-lisp/commented-last-block-line-no-var () + (org-test-with-temp-text-in-file " +#+begin_src emacs-lisp +;; +#+end_src" + (progn + (org-babel-next-src-block) + (org-ctrl-c-ctrl-c) + (should (re-search-forward "results:" nil t)) + (forward-line) + (should + (string= + "" + (buffer-substring-no-properties (point-at-bol) (point-at-eol)))))) + (org-test-with-temp-text-in-file " +#+begin_src emacs-lisp +\"some text\";; +#+end_src" + + (progn + (org-babel-next-src-block) + (org-ctrl-c-ctrl-c) + (should (re-search-forward "results:" nil t)) + (forward-line) + (should + (string= + ": some text" + (buffer-substring-no-properties (point-at-bol) (point-at-eol))))))) + +(ert-deftest ob-emacs-lisp/commented-last-block-line-with-var () + (org-test-with-temp-text-in-file " +#+begin_src emacs-lisp :var a=1 +;; +#+end_src" + (progn + (org-babel-next-src-block) + (org-ctrl-c-ctrl-c) + (re-search-forward "results" nil t) + (forward-line) + (should (string= + "" + (buffer-substring-no-properties (point-at-bol) (point-at-eol)))))) + (org-test-with-temp-text-in-file " +#+begin_src emacs-lisp :var a=2 +2;; +#+end_src" + (progn + (org-babel-next-src-block) + (org-ctrl-c-ctrl-c) + (re-search-forward "results" nil t) + (forward-line) + (should (string= + ": 2" + (buffer-substring-no-properties (point-at-bol) (point-at-eol))))))) +(provide 'test-ob-emacs-lisp) + + ;;; test-ob-emacs-lisp.el ends here |