From mboxrd@z Thu Jan 1 00:00:00 1970 From: Vladimir Panteleev Subject: [PATCH 1/3] ob-table: Fix org-sbe's handling of quotes in arguments Date: Wed, 7 Mar 2018 22:58:45 +0000 Message-ID: <20180307225847.24068-2-git@thecybershadow.net> References: <20180307225847.24068-1-git@thecybershadow.net> Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:55526) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eti1T-0001Z8-BL for emacs-orgmode@gnu.org; Wed, 07 Mar 2018 17:59:00 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eti1Q-0000rk-AN for emacs-orgmode@gnu.org; Wed, 07 Mar 2018 17:58:59 -0500 Received: from mail-wr0-f182.google.com ([209.85.128.182]:45212) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eti1Q-0000rP-3s for emacs-orgmode@gnu.org; Wed, 07 Mar 2018 17:58:56 -0500 Received: by mail-wr0-f182.google.com with SMTP id p104so3801043wrc.12 for ; Wed, 07 Mar 2018 14:58:55 -0800 (PST) In-Reply-To: <20180307225847.24068-1-git@thecybershadow.net> 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" To: emacs-orgmode@gnu.org Cc: Vladimir Panteleev * ob-table.el (org-sbe): (org-sbe func (x $ "a\"b\"c")) did the wrong thing because org-sbe would simply wrap any $-prefixed value in quotes, without any escaping. Fix this by using "%S" (instead of "\"%s\""). * test-ob-table.el: Add test. --- lisp/ob-table.el | 2 +- testing/lisp/test-ob-table.el | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/lisp/ob-table.el b/lisp/ob-table.el index f6a5c88e4..105aca5e2 100644 --- a/lisp/ob-table.el +++ b/lisp/ob-table.el @@ -112,7 +112,7 @@ as shown in the example below. (prog1 nil (setq quote t)) (prog1 (cond - (quote (format "\"%s\"" el)) + (quote (format "%S" el)) ((stringp el) (org-no-properties el)) (t el)) (setq quote nil)))) diff --git a/testing/lisp/test-ob-table.el b/testing/lisp/test-ob-table.el index da136cbee..725cf6bdd 100644 --- a/testing/lisp/test-ob-table.el +++ b/testing/lisp/test-ob-table.el @@ -30,6 +30,16 @@ ;; (org-test-at-id "6d2ff4ce-4489-4e2a-9c65-e3f71f77d975" ;; (should (= 2 (sbe take-sqrt (n "4")))))) +(ert-deftest test-ob-table/sbe-quote () + "Test that `org-sbe' can correctly handle string arguments containing quotes." + (org-test-with-temp-text-in-file " +#+name: identity +#+begin_src emacs-lisp :eval yes + x +#+end_src" + (should (equal "a\"b\"c" + (eval '(org-sbe identity (x $ "a\"b\"c"))))))) + (provide 'test-ob-table) ;;; test-ob-table.el ends here -- 2.16.2