From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eric Schulte Subject: Re: [babel] how to pass data to gnuplot from another block Date: Fri, 13 Dec 2013 10:13:11 -0700 Message-ID: <878uvoad3s.fsf@gmail.com> References: <87d2lsbvy7.fsf@ucl.ac.uk> <87iovkihe6.fsf@gmail.com> <8738mol52h.fsf@alphaville.bos.redhat.com> <874n73gk70.fsf@gmail.com> <87vbysahv0.fsf@gmail.com> <87ob4kafjd.fsf@gmail.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:50406) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VrWJs-00082q-PQ for emacs-orgmode@gnu.org; Fri, 13 Dec 2013 12:14:36 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VrWJo-0000w1-KP for emacs-orgmode@gnu.org; Fri, 13 Dec 2013 12:14:32 -0500 Received: from mail-pb0-x229.google.com ([2607:f8b0:400e:c01::229]:58073) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VrWJo-0000vo-1N for emacs-orgmode@gnu.org; Fri, 13 Dec 2013 12:14:28 -0500 Received: by mail-pb0-f41.google.com with SMTP id jt11so2851830pbb.0 for ; Fri, 13 Dec 2013 09:14:27 -0800 (PST) In-Reply-To: <87ob4kafjd.fsf@gmail.com> (Eric Schulte's message of "Fri, 13 Dec 2013 09:20:38 -0700") 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: Greg Troxel Cc: Nick Dokos , emacs-orgmode@gnu.org --=-=-= Content-Type: text/plain > > How about the following resolution? We rename ob-sh.el to ob-shell.el. > New "shell" code blocks could use the value of the > `org-babel-sh-command' environment variable. Then sh, bash, zsh, csh, > ash, dash (am I missing any other common ones) use the specific shell > specified. > The attached patches make this change and continue to pass the entire test suite. The problem being that with ob-sh, no longer present many users may have to change their configuration and possible the value of their local.mk file. One solution there is to add a dummy ob-sh.el with a deprecation message for some transition time. Thoughts? --=-=-= Content-Type: text/x-diff Content-Disposition: inline; filename=0001-multiple-code-block-types-for-multiple-shells.patch >From 7a6c0e35415c4a173d101336029262f3a09abb91 Mon Sep 17 00:00:00 2001 From: Eric Schulte Date: Fri, 13 Dec 2013 09:52:05 -0700 Subject: [PATCH 1/4] multiple code block types for multiple shells * lisp/ob-sh.el (org-babel-sh-command): Now set from `shell-file-name'. (org-babel-shell-names): List of specific shells known to Org mode shell code blocks. (org-babel-execute:shell): New generic shell execution function. --- lisp/ob-sh.el | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/lisp/ob-sh.el b/lisp/ob-sh.el index 4984ff9..a115f38 100644 --- a/lisp/ob-sh.el +++ b/lisp/ob-sh.el @@ -38,9 +38,12 @@ (defvar org-babel-default-header-args:sh '()) -(defvar org-babel-sh-command "sh" +(defcustom org-babel-sh-command shell-file-name "Command used to invoke a shell. -This will be passed to `shell-command-on-region'") +Set by default to the value of `shell-file-name'. This will be +passed to `shell-command-on-region'" + :group 'org-babel + :type 'string) (defcustom org-babel-sh-var-quote-fmt "$(cat <<'BABEL_TABLE'\n%s\nBABEL_TABLE\n)" @@ -48,7 +51,22 @@ This will be passed to `shell-command-on-region'") :group 'org-babel :type 'string) -(defun org-babel-execute:sh (body params) +(defcustom org-babel-shell-names '("sh" "bash" "csh" "ash" "dash") + "List of names of shell supported by babel shell code blocks." + :group 'org-babel + :type 'string + :initialize + (lambda (symbol value) + (set-default symbol (second value)) + (mapc + (lambda (name) + (eval `(defun ,(intern (concat "org-babel-execute:" name)) (body params) + ,(format "Execute a block of %s commands with Babel." name) + (let ((org-babel-sh-command ,name)) + (org-babel-execute:shell body params))))) + (second value)))) + +(defun org-babel-execute:shell (body params) "Execute a block of Shell commands with Babel. This function is called by `org-babel-execute-src-block'." (let* ((session (org-babel-sh-initiate-session -- 1.8.5.1 --=-=-= Content-Type: text/x-diff Content-Disposition: inline; filename=0002-rename-ob-sh-to-ob-shell.patch >From 583e7ab1757f54a656acb52ef60c6069d060cbe1 Mon Sep 17 00:00:00 2001 From: Eric Schulte Date: Fri, 13 Dec 2013 09:54:28 -0700 Subject: [PATCH 2/4] rename ob-sh to ob-shell --- lisp/ob-sh.el | 230 --------------------------------------------- lisp/ob-shell.el | 230 +++++++++++++++++++++++++++++++++++++++++++++ testing/lisp/test-ob-sh.el | 2 +- 3 files changed, 231 insertions(+), 231 deletions(-) delete mode 100644 lisp/ob-sh.el create mode 100644 lisp/ob-shell.el diff --git a/lisp/ob-sh.el b/lisp/ob-sh.el deleted file mode 100644 index a115f38..0000000 --- a/lisp/ob-sh.el +++ /dev/null @@ -1,230 +0,0 @@ -;;; ob-sh.el --- org-babel functions for shell evaluation - -;; Copyright (C) 2009-2013 Free Software Foundation, Inc. - -;; Author: Eric Schulte -;; Keywords: literate programming, reproducible research -;; Homepage: http://orgmode.org - -;; This file is part of GNU Emacs. - -;; GNU Emacs is free software: you can redistribute it and/or modify -;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation, either version 3 of the License, or -;; (at your option) any later version. - -;; GNU Emacs is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;; GNU General Public License for more details. - -;; You should have received a copy of the GNU General Public License -;; along with GNU Emacs. If not, see . - -;;; Commentary: - -;; Org-Babel support for evaluating shell source code. - -;;; Code: -(require 'ob) -(require 'shell) -(eval-when-compile (require 'cl)) - -(declare-function org-babel-comint-in-buffer "ob-comint" (buffer &rest body)) -(declare-function org-babel-comint-wait-for-output "ob-comint" (buffer)) -(declare-function org-babel-comint-buffer-livep "ob-comint" (buffer)) -(declare-function org-babel-comint-with-output "ob-comint" (meta &rest body)) -(declare-function orgtbl-to-generic "org-table" (table params)) - -(defvar org-babel-default-header-args:sh '()) - -(defcustom org-babel-sh-command shell-file-name - "Command used to invoke a shell. -Set by default to the value of `shell-file-name'. This will be -passed to `shell-command-on-region'" - :group 'org-babel - :type 'string) - -(defcustom org-babel-sh-var-quote-fmt - "$(cat <<'BABEL_TABLE'\n%s\nBABEL_TABLE\n)" - "Format string used to escape variables when passed to shell scripts." - :group 'org-babel - :type 'string) - -(defcustom org-babel-shell-names '("sh" "bash" "csh" "ash" "dash") - "List of names of shell supported by babel shell code blocks." - :group 'org-babel - :type 'string - :initialize - (lambda (symbol value) - (set-default symbol (second value)) - (mapc - (lambda (name) - (eval `(defun ,(intern (concat "org-babel-execute:" name)) (body params) - ,(format "Execute a block of %s commands with Babel." name) - (let ((org-babel-sh-command ,name)) - (org-babel-execute:shell body params))))) - (second value)))) - -(defun org-babel-execute:shell (body params) - "Execute a block of Shell commands with Babel. -This function is called by `org-babel-execute-src-block'." - (let* ((session (org-babel-sh-initiate-session - (cdr (assoc :session params)))) - (stdin (let ((stdin (cdr (assoc :stdin params)))) - (when stdin (org-babel-sh-var-to-string - (org-babel-ref-resolve stdin))))) - (full-body (org-babel-expand-body:generic - body params (org-babel-variable-assignments:sh params)))) - (org-babel-reassemble-table - (org-babel-sh-evaluate session full-body params stdin) - (org-babel-pick-name - (cdr (assoc :colname-names params)) (cdr (assoc :colnames params))) - (org-babel-pick-name - (cdr (assoc :rowname-names params)) (cdr (assoc :rownames params)))))) - -(defun org-babel-prep-session:sh (session params) - "Prepare SESSION according to the header arguments specified in PARAMS." - (let* ((session (org-babel-sh-initiate-session session)) - (var-lines (org-babel-variable-assignments:sh params))) - (org-babel-comint-in-buffer session - (mapc (lambda (var) - (insert var) (comint-send-input nil t) - (org-babel-comint-wait-for-output session)) var-lines)) - session)) - -(defun org-babel-load-session:sh (session body params) - "Load BODY into SESSION." - (save-window-excursion - (let ((buffer (org-babel-prep-session:sh session params))) - (with-current-buffer buffer - (goto-char (process-mark (get-buffer-process (current-buffer)))) - (insert (org-babel-chomp body))) - buffer))) - -;; helper functions - -(defun org-babel-variable-assignments:sh (params) - "Return list of shell statements assigning the block's variables." - (let ((sep (cdr (assoc :separator params)))) - (mapcar - (lambda (pair) - (format "%s=%s" - (car pair) - (org-babel-sh-var-to-sh (cdr pair) sep))) - (mapcar #'cdr (org-babel-get-header params :var))))) - -(defun org-babel-sh-var-to-sh (var &optional sep) - "Convert an elisp value to a shell variable. -Convert an elisp var into a string of shell commands specifying a -var of the same value." - (format org-babel-sh-var-quote-fmt (org-babel-sh-var-to-string var sep))) - -(defun org-babel-sh-var-to-string (var &optional sep) - "Convert an elisp value to a string." - (let ((echo-var (lambda (v) (if (stringp v) v (format "%S" v))))) - (cond - ((and (listp var) (or (listp (car var)) (equal (car var) 'hline))) - (orgtbl-to-generic var (list :sep (or sep "\t") :fmt echo-var))) - ((listp var) - (mapconcat echo-var var "\n")) - (t (funcall echo-var var))))) - -(defun org-babel-sh-table-or-results (results) - "Convert RESULTS to an appropriate elisp value. -If the results look like a table, then convert them into an -Emacs-lisp table, otherwise return the results as a string." - (org-babel-script-escape results)) - -(defun org-babel-sh-initiate-session (&optional session params) - "Initiate a session named SESSION according to PARAMS." - (when (and session (not (string= session "none"))) - (save-window-excursion - (or (org-babel-comint-buffer-livep session) - (progn (shell session) (get-buffer (current-buffer))))))) - -(defvar org-babel-sh-eoe-indicator "echo 'org_babel_sh_eoe'" - "String to indicate that evaluation has completed.") -(defvar org-babel-sh-eoe-output "org_babel_sh_eoe" - "String to indicate that evaluation has completed.") - -(defun org-babel-sh-evaluate (session body &optional params stdin) - "Pass BODY to the Shell process in BUFFER. -If RESULT-TYPE equals 'output then return a list of the outputs -of the statements in BODY, if RESULT-TYPE equals 'value then -return the value of the last statement in BODY." - (let ((results - (cond - (stdin ; external shell script w/STDIN - (let ((script-file (org-babel-temp-file "sh-script-")) - (stdin-file (org-babel-temp-file "sh-stdin-")) - (shebang (cdr (assoc :shebang params))) - (padline (not (string= "no" (cdr (assoc :padline params)))))) - (with-temp-file script-file - (when shebang (insert (concat shebang "\n"))) - (when padline (insert "\n")) - (insert body)) - (set-file-modes script-file #o755) - (with-temp-file stdin-file (insert stdin)) - (with-temp-buffer - (call-process-shell-command - (if shebang - script-file - (format "%s %s" org-babel-sh-command script-file)) - stdin-file - (current-buffer)) - (buffer-string)))) - (session ; session evaluation - (mapconcat - #'org-babel-sh-strip-weird-long-prompt - (mapcar - #'org-babel-trim - (butlast - (org-babel-comint-with-output - (session org-babel-sh-eoe-output t body) - (mapc - (lambda (line) - (insert line) - (comint-send-input nil t) - (while (save-excursion - (goto-char comint-last-input-end) - (not (re-search-forward - comint-prompt-regexp nil t))) - (accept-process-output - (get-buffer-process (current-buffer))))) - (append - (split-string (org-babel-trim body) "\n") - (list org-babel-sh-eoe-indicator)))) - 2)) "\n")) - ('otherwise ; external shell script - (if (and (cdr (assoc :shebang params)) - (> (length (cdr (assoc :shebang params))) 0)) - (let ((script-file (org-babel-temp-file "sh-script-")) - (shebang (cdr (assoc :shebang params))) - (padline (not (equal "no" (cdr (assoc :padline params)))))) - (with-temp-file script-file - (when shebang (insert (concat shebang "\n"))) - (when padline (insert "\n")) - (insert body)) - (set-file-modes script-file #o755) - (org-babel-eval script-file "")) - (org-babel-eval org-babel-sh-command (org-babel-trim body))))))) - (when results - (let ((result-params (cdr (assoc :result-params params)))) - (org-babel-result-cond result-params - results - (let ((tmp-file (org-babel-temp-file "sh-"))) - (with-temp-file tmp-file (insert results)) - (org-babel-import-elisp-from-file tmp-file))))))) - -(defun org-babel-sh-strip-weird-long-prompt (string) - "Remove prompt cruft from a string of shell output." - (while (string-match "^% +[\r\n$]+ *" string) - (setq string (substring string (match-end 0)))) - string) - -(provide 'ob-sh) - - - -;;; ob-sh.el ends here diff --git a/lisp/ob-shell.el b/lisp/ob-shell.el new file mode 100644 index 0000000..a115f38 --- /dev/null +++ b/lisp/ob-shell.el @@ -0,0 +1,230 @@ +;;; ob-sh.el --- org-babel functions for shell evaluation + +;; Copyright (C) 2009-2013 Free Software Foundation, Inc. + +;; Author: Eric Schulte +;; Keywords: literate programming, reproducible research +;; Homepage: http://orgmode.org + +;; This file is part of GNU Emacs. + +;; GNU Emacs is free software: you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. + +;; GNU Emacs is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs. If not, see . + +;;; Commentary: + +;; Org-Babel support for evaluating shell source code. + +;;; Code: +(require 'ob) +(require 'shell) +(eval-when-compile (require 'cl)) + +(declare-function org-babel-comint-in-buffer "ob-comint" (buffer &rest body)) +(declare-function org-babel-comint-wait-for-output "ob-comint" (buffer)) +(declare-function org-babel-comint-buffer-livep "ob-comint" (buffer)) +(declare-function org-babel-comint-with-output "ob-comint" (meta &rest body)) +(declare-function orgtbl-to-generic "org-table" (table params)) + +(defvar org-babel-default-header-args:sh '()) + +(defcustom org-babel-sh-command shell-file-name + "Command used to invoke a shell. +Set by default to the value of `shell-file-name'. This will be +passed to `shell-command-on-region'" + :group 'org-babel + :type 'string) + +(defcustom org-babel-sh-var-quote-fmt + "$(cat <<'BABEL_TABLE'\n%s\nBABEL_TABLE\n)" + "Format string used to escape variables when passed to shell scripts." + :group 'org-babel + :type 'string) + +(defcustom org-babel-shell-names '("sh" "bash" "csh" "ash" "dash") + "List of names of shell supported by babel shell code blocks." + :group 'org-babel + :type 'string + :initialize + (lambda (symbol value) + (set-default symbol (second value)) + (mapc + (lambda (name) + (eval `(defun ,(intern (concat "org-babel-execute:" name)) (body params) + ,(format "Execute a block of %s commands with Babel." name) + (let ((org-babel-sh-command ,name)) + (org-babel-execute:shell body params))))) + (second value)))) + +(defun org-babel-execute:shell (body params) + "Execute a block of Shell commands with Babel. +This function is called by `org-babel-execute-src-block'." + (let* ((session (org-babel-sh-initiate-session + (cdr (assoc :session params)))) + (stdin (let ((stdin (cdr (assoc :stdin params)))) + (when stdin (org-babel-sh-var-to-string + (org-babel-ref-resolve stdin))))) + (full-body (org-babel-expand-body:generic + body params (org-babel-variable-assignments:sh params)))) + (org-babel-reassemble-table + (org-babel-sh-evaluate session full-body params stdin) + (org-babel-pick-name + (cdr (assoc :colname-names params)) (cdr (assoc :colnames params))) + (org-babel-pick-name + (cdr (assoc :rowname-names params)) (cdr (assoc :rownames params)))))) + +(defun org-babel-prep-session:sh (session params) + "Prepare SESSION according to the header arguments specified in PARAMS." + (let* ((session (org-babel-sh-initiate-session session)) + (var-lines (org-babel-variable-assignments:sh params))) + (org-babel-comint-in-buffer session + (mapc (lambda (var) + (insert var) (comint-send-input nil t) + (org-babel-comint-wait-for-output session)) var-lines)) + session)) + +(defun org-babel-load-session:sh (session body params) + "Load BODY into SESSION." + (save-window-excursion + (let ((buffer (org-babel-prep-session:sh session params))) + (with-current-buffer buffer + (goto-char (process-mark (get-buffer-process (current-buffer)))) + (insert (org-babel-chomp body))) + buffer))) + +;; helper functions + +(defun org-babel-variable-assignments:sh (params) + "Return list of shell statements assigning the block's variables." + (let ((sep (cdr (assoc :separator params)))) + (mapcar + (lambda (pair) + (format "%s=%s" + (car pair) + (org-babel-sh-var-to-sh (cdr pair) sep))) + (mapcar #'cdr (org-babel-get-header params :var))))) + +(defun org-babel-sh-var-to-sh (var &optional sep) + "Convert an elisp value to a shell variable. +Convert an elisp var into a string of shell commands specifying a +var of the same value." + (format org-babel-sh-var-quote-fmt (org-babel-sh-var-to-string var sep))) + +(defun org-babel-sh-var-to-string (var &optional sep) + "Convert an elisp value to a string." + (let ((echo-var (lambda (v) (if (stringp v) v (format "%S" v))))) + (cond + ((and (listp var) (or (listp (car var)) (equal (car var) 'hline))) + (orgtbl-to-generic var (list :sep (or sep "\t") :fmt echo-var))) + ((listp var) + (mapconcat echo-var var "\n")) + (t (funcall echo-var var))))) + +(defun org-babel-sh-table-or-results (results) + "Convert RESULTS to an appropriate elisp value. +If the results look like a table, then convert them into an +Emacs-lisp table, otherwise return the results as a string." + (org-babel-script-escape results)) + +(defun org-babel-sh-initiate-session (&optional session params) + "Initiate a session named SESSION according to PARAMS." + (when (and session (not (string= session "none"))) + (save-window-excursion + (or (org-babel-comint-buffer-livep session) + (progn (shell session) (get-buffer (current-buffer))))))) + +(defvar org-babel-sh-eoe-indicator "echo 'org_babel_sh_eoe'" + "String to indicate that evaluation has completed.") +(defvar org-babel-sh-eoe-output "org_babel_sh_eoe" + "String to indicate that evaluation has completed.") + +(defun org-babel-sh-evaluate (session body &optional params stdin) + "Pass BODY to the Shell process in BUFFER. +If RESULT-TYPE equals 'output then return a list of the outputs +of the statements in BODY, if RESULT-TYPE equals 'value then +return the value of the last statement in BODY." + (let ((results + (cond + (stdin ; external shell script w/STDIN + (let ((script-file (org-babel-temp-file "sh-script-")) + (stdin-file (org-babel-temp-file "sh-stdin-")) + (shebang (cdr (assoc :shebang params))) + (padline (not (string= "no" (cdr (assoc :padline params)))))) + (with-temp-file script-file + (when shebang (insert (concat shebang "\n"))) + (when padline (insert "\n")) + (insert body)) + (set-file-modes script-file #o755) + (with-temp-file stdin-file (insert stdin)) + (with-temp-buffer + (call-process-shell-command + (if shebang + script-file + (format "%s %s" org-babel-sh-command script-file)) + stdin-file + (current-buffer)) + (buffer-string)))) + (session ; session evaluation + (mapconcat + #'org-babel-sh-strip-weird-long-prompt + (mapcar + #'org-babel-trim + (butlast + (org-babel-comint-with-output + (session org-babel-sh-eoe-output t body) + (mapc + (lambda (line) + (insert line) + (comint-send-input nil t) + (while (save-excursion + (goto-char comint-last-input-end) + (not (re-search-forward + comint-prompt-regexp nil t))) + (accept-process-output + (get-buffer-process (current-buffer))))) + (append + (split-string (org-babel-trim body) "\n") + (list org-babel-sh-eoe-indicator)))) + 2)) "\n")) + ('otherwise ; external shell script + (if (and (cdr (assoc :shebang params)) + (> (length (cdr (assoc :shebang params))) 0)) + (let ((script-file (org-babel-temp-file "sh-script-")) + (shebang (cdr (assoc :shebang params))) + (padline (not (equal "no" (cdr (assoc :padline params)))))) + (with-temp-file script-file + (when shebang (insert (concat shebang "\n"))) + (when padline (insert "\n")) + (insert body)) + (set-file-modes script-file #o755) + (org-babel-eval script-file "")) + (org-babel-eval org-babel-sh-command (org-babel-trim body))))))) + (when results + (let ((result-params (cdr (assoc :result-params params)))) + (org-babel-result-cond result-params + results + (let ((tmp-file (org-babel-temp-file "sh-"))) + (with-temp-file tmp-file (insert results)) + (org-babel-import-elisp-from-file tmp-file))))))) + +(defun org-babel-sh-strip-weird-long-prompt (string) + "Remove prompt cruft from a string of shell output." + (while (string-match "^% +[\r\n$]+ *" string) + (setq string (substring string (match-end 0)))) + string) + +(provide 'ob-sh) + + + +;;; ob-sh.el ends here diff --git a/testing/lisp/test-ob-sh.el b/testing/lisp/test-ob-sh.el index 1025ecf..ca94c9e 100644 --- a/testing/lisp/test-ob-sh.el +++ b/testing/lisp/test-ob-sh.el @@ -24,7 +24,7 @@ ;;; Code: (org-test-for-executable "sh") -(unless (featurep 'ob-sh) +(unless (featurep 'ob-shell) (signal 'missing-test-dependency "Support for Sh code blocks")) (ert-deftest test-ob-sh/dont-insert-spaces-on-expanded-bodies () -- 1.8.5.1 --=-=-= Content-Type: text/x-diff Content-Disposition: inline; filename=0003-finish-rename-split-up-for-git.patch >From 3b3dbca13c668299a24c93eae27059703361d789 Mon Sep 17 00:00:00 2001 From: Eric Schulte Date: Fri, 13 Dec 2013 09:54:48 -0700 Subject: [PATCH 3/4] finish rename (split up for git) --- lisp/ob-shell.el | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lisp/ob-shell.el b/lisp/ob-shell.el index a115f38..d1c2130 100644 --- a/lisp/ob-shell.el +++ b/lisp/ob-shell.el @@ -1,4 +1,4 @@ -;;; ob-sh.el --- org-babel functions for shell evaluation +;;; ob-shell.el --- org-babel functions for shell evaluation ;; Copyright (C) 2009-2013 Free Software Foundation, Inc. @@ -223,8 +223,8 @@ return the value of the last statement in BODY." (setq string (substring string (match-end 0)))) string) -(provide 'ob-sh) +(provide 'ob-shell) -;;; ob-sh.el ends here +;;; ob-shell.el ends here -- 1.8.5.1 --=-=-= Content-Type: text/x-diff Content-Disposition: inline; filename=0004-fix-tests-with-the-renamed-ob-shell.el.patch >From b319475a86451defbdbac064684dd59fd6b0b7d0 Mon Sep 17 00:00:00 2001 From: Eric Schulte Date: Fri, 13 Dec 2013 10:03:05 -0700 Subject: [PATCH 4/4] fix tests with the renamed ob-shell.el Note, users may have to edit their local.mk files to change the value of BTEST_OB_LANGUAGES to remove sh and include shell. --- mk/default.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mk/default.mk b/mk/default.mk index 886efc6..a1f42f8 100644 --- a/mk/default.mk +++ b/mk/default.mk @@ -63,7 +63,7 @@ BTEST = $(BATCH) \ --eval '(setq \ org-batch-test t \ org-babel-load-languages \ - (quote ($(foreach ob-lang,$(BTEST_OB_LANGUAGES) emacs-lisp sh org,$(lst-ob-lang)))) \ + (quote ($(foreach ob-lang,$(BTEST_OB_LANGUAGES) emacs-lisp shell org,$(lst-ob-lang)))) \ org-test-select-re "$(BTEST_RE)" \ )' \ -l org-loaddefs.el \ -- 1.8.5.1 --=-=-= Content-Type: text/plain -- Eric Schulte https://cs.unm.edu/~eschulte PGP: 0x614CA05D --=-=-=--