Browse Source

ob-sh: don't insert extra newlines in the beginning of the body

* lisp/ob-sh.el (org-babel-expand-body:sh): don't insert extra
  newlines in expanded shell bodies
Eric Schulte 14 years ago
parent
commit
b04265eabc
2 changed files with 35 additions and 1 deletions
  1. 1 1
      lisp/ob-sh.el
  2. 34 0
      testing/lisp/test-ob-sh.el

+ 1 - 1
lisp/ob-sh.el

@@ -56,7 +56,7 @@ This will be passed to  `shell-command-on-region'")
       (format "%s=%s"
               (car pair)
               (org-babel-sh-var-to-sh (cdr pair) sep)))
-    vars "\n") "\n" body "\n\n")))
+    vars "\n") (if vars "\n" "") body "\n\n")))
 
 (defun org-babel-execute:sh (body params)
   "Execute a block of Shell commands with Babel.

+ 34 - 0
testing/lisp/test-ob-sh.el

@@ -0,0 +1,34 @@
+;;; test-ob-sh.el
+
+;; Copyright (c) 2010 Eric Schulte
+;; Authors: Eric Schulte
+
+;; Released under the GNU General Public License version 3
+;; see: http://www.gnu.org/licenses/gpl-3.0.html
+
+;;;; Comments:
+
+;; Template test file for Org-mode tests
+
+
+;;; 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 test-ob-sh/dont-insert-spaces-on-expanded-bodies ()
+  "Expanded shell bodies should not start with a blank line
+unless the body of the tangled block does."
+  (should-not (string-match "^[\n\r][\t ]*[\n\r]"
+			    (org-babel-expand-body:sh "echo 2" '())))
+  (should (string-match "^[\n\r][\t ]*[\n\r]"
+			(org-babel-expand-body:sh "\n\necho 2" '()))))
+
+(provide 'test-ob-sh)
+
+;;; test-ob-sh.el ends here