From mboxrd@z Thu Jan 1 00:00:00 1970 From: Martyn Jago Subject: [patch][babel] Fix for bug in ob-emacs-lisp.el Date: Thu, 05 Jan 2012 18:20:37 +0000 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Return-path: Received: from eggs.gnu.org ([140.186.70.92]:58148) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Rirw4-0008C3-Ix for emacs-orgmode@gnu.org; Thu, 05 Jan 2012 13:21:12 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Rirvy-000349-8u for emacs-orgmode@gnu.org; Thu, 05 Jan 2012 13:21:08 -0500 Received: from lo.gmane.org ([80.91.229.12]:45898) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Rirvx-000341-To for emacs-orgmode@gnu.org; Thu, 05 Jan 2012 13:21:02 -0500 Received: from list by lo.gmane.org with local (Exim 4.69) (envelope-from ) id 1Rirvt-00041D-Bm for emacs-orgmode@gnu.org; Thu, 05 Jan 2012 19:20:57 +0100 Received: from 88-96-171-138.dsl.zen.co.uk ([88.96.171.138]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Thu, 05 Jan 2012 19:20:57 +0100 Received: from martyn.jago by 88-96-171-138.dsl.zen.co.uk with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Thu, 05 Jan 2012 19:20:57 +0100 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 A block with a comment on the final line of a source block currently errors in an emacs-lisp block. This reduces down to the following at it's simplest: #+begin_src emacs-lisp # #+end_src Attached is a fix and regression tests Best, Martyn --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0001-Bug-fix-in-ob-emacs-lisp.el.patch Content-Description: bug-fix-and-tests >From 4962f73a139566c8f796467a8a0423afbc9c911e Mon Sep 17 00:00:00 2001 From: Martyn Jago Date: Thu, 5 Jan 2012 18:00:12 +0000 Subject: [PATCH] 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. --- lisp/ob-emacs-lisp.el | 14 +++--- testing/lisp/test-ob-emacs-lisp.el | 82 ++++++++++++++++++++++++++++++++++++ 2 files changed, 89 insertions(+), 7 deletions(-) create mode 100644 testing/lisp/test-ob-emacs-lisp.el diff --git a/lisp/ob-emacs-lisp.el b/lisp/ob-emacs-lisp.el index afbc20d..c8af606 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 -- 1.7.3.4 --=-=-=--