Browse Source

Merge branch 'origin-maint'

Conflicts:
	contrib/lisp/org-mac-link-grabber.el
	doc/org.texi
	lisp/org-odt.el
	testing/lisp/test-ob.el
Eric Schulte 13 years ago
parent
commit
3de3c470d8
2 changed files with 192 additions and 50 deletions
  1. 13 0
      lisp/org-odt.el
  2. 179 50
      testing/lisp/test-ob.el

+ 13 - 0
lisp/org-odt.el

@@ -46,6 +46,18 @@
     (goto-char org-lparse-dyn-first-heading-pos)))
   (insert (org-odt-format-toc)))
 
+(defun org-odt-insert-toc ()
+  (goto-char (point-min))
+  (cond
+   ((re-search-forward
+     "\\(<text:p [^>]*>\\)?\\s-*\\[TABLE-OF-CONTENTS\\]\\s-*\\(</text:p>\\)?"
+     nil t)
+    (goto-char (match-beginning 0))
+    (replace-match ""))
+   (t
+    (goto-char org-lparse-dyn-first-heading-pos))
+   (insert (org-odt-format-toc))))
+
 (defun org-odt-end-export ()
   (org-odt-insert-toc)
   (org-odt-fixup-label-references)
@@ -2169,6 +2181,7 @@ CATEGORY-HANDLE is used.  See
     (setq org-odt-manifest-file-entries nil
 	  org-odt-embedded-images-count 0
 	  org-odt-embedded-formulas-count 0
+	  org-odt-section-count 0
 	  org-odt-entity-labels-alist nil
 	  org-odt-list-stack-stashed nil
 	  org-odt-automatic-styles nil

+ 179 - 50
testing/lisp/test-ob.el

@@ -869,65 +869,194 @@ Line 3\"
 	test-line
       (forward-char 1)
       (org-ctrl-c-ctrl-c)
-      (should (string= (concat test-line " =\"x\"=")
-		       (buffer-substring-no-properties
-			(point-min) (point-max)))))))
+      (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"
 
-(ert-deftest test-org-babel/inline-src-block-preceded-by-equality ()
-  (let ((test-line "=src_emacs-lisp[ :results verbatim ]{ \"x\"  }"))
-    (org-test-with-temp-text
-	test-line
-      (forward-char 1)
+    (progn
+      (org-babel-next-src-block)
       (org-ctrl-c-ctrl-c)
-      (should (string= (concat test-line " =\"x\"=")
-		       (buffer-substring-no-properties
-			(point-min) (point-max)))))))
+      (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 test-org-babel/inline-src-block-enclosed-within-parenthesis ()
-  (let ((test-line "(src_emacs-lisp[ :results verbatim ]{ \"x\"  }"))
-    (org-test-with-temp-text
-	(concat test-line ")")
-      (forward-char 1)
+(ert-deftest test-ob/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)
-      (should (string= (concat test-line " =\"x\"=)" )
-		       (buffer-substring-no-properties
-			(point-min) (point-max)))))))
-
-(ert-deftest test-org-babel/inline-src-block-enclosed-within-parenthesis ()
-  (let ((test-line "{src_emacs-lisp[ :results verbatim ]{ \"x\"  }"))
-    (org-test-with-temp-text
-	(concat test-line "}")
-      (forward-char 1)
+      (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)
-      (should (string= (concat test-line " =\"x\"=}")
+      (re-search-forward "\\#\\+results:" nil t)
+      (forward-line)
+      (should (string=
+	       ": 2" 
+	       (buffer-substring-no-properties (point-at-bol) (point-at-eol)))))))
+
+(defun test-ob-verify-result-and-removed-result (result buffer-text)
+  "Test helper function to test `org-babel-remove-result'.
+A temp buffer is populated with BUFFER-TEXT, the first block is executed,
+and the result of execution is verified against RESULT.
+
+The block is actually executed /twice/ to ensure result
+replacement happens correctly."
+  (org-test-with-temp-text
+      buffer-text
+    (progn
+      (org-babel-next-src-block) (org-ctrl-c-ctrl-c) (org-ctrl-c-ctrl-c)
+      (should (re-search-forward "\\#\\+results:" nil t))
+      (forward-line)
+      (should (string= result 
+		       (buffer-substring-no-properties
+			(point-at-bol)
+			(- (point-max) 16))))
+      (org-babel-previous-src-block) (org-babel-remove-result)
+      (should (string= buffer-text
 		       (buffer-substring-no-properties
 			(point-min) (point-max)))))))
 
-(ert-deftest test-org-babel/inline-src_blk-preceded-by-letter ()
-  "Test inline source block invalid where preceded by letter"
+(ert-deftest test-ob/org-babel-remove-result--results-default ()
+  "Test `org-babel-remove-result' with default :results."
+  (mapcar (lambda (language)
+	    (test-ob-verify-result-and-removed-result
+	     "\n"
+	     (concat
+"* org-babel-remove-result
+#+begin_src " language "
+#+end_src
 
-  ;; inline-src-blk preceded by letter
-  (org-test-with-temp-text
-      "asrc_emacs-lisp[ :results verbatim ]{ \"x\"  }"
-    (forward-char 1)
-    (let ((error-result
-	   (should-error
-	    (org-ctrl-c-ctrl-c))))
-      (should (equal `(error "C-c C-c can do nothing useful at this location")
-		     error-result)))))
-
-(ert-deftest test-org-babel/inline-src_blk-preceded-by-number ()
-  "Test inline source block invalid where preceded by number"
-
-  ;; inline-src-blk preceded by number
-  (org-test-with-temp-text
-      "0src_emacs-lisp[ :results verbatim ]{ \"x\"  }"
-    (forward-char 1)
-    (let ((error-result
-	   (should-error
-	    (org-ctrl-c-ctrl-c))))
-      (should (equal `(error "C-c C-c can do nothing useful at this location")
-		     error-result)))))
+* next heading")))
+	  '("sh" "emacs-lisp")))
+
+(ert-deftest test-ob/org-babel-remove-result--results-list ()
+  "Test `org-babel-remove-result' with :results list."
+  (test-ob-verify-result-and-removed-result
+   "- 1
+- 2
+- 3
+- (quote (4 5))"
+
+"* org-babel-remove-result
+#+begin_src emacs-lisp :results list
+'(1 2 3 '(4 5))
+#+end_src
+
+* next heading"))
+
+(ert-deftest test-ob/org-babel-remove-result--results-wrap ()
+  "Test `org-babel-remove-result' with :results wrap."
+  (test-ob-verify-result-and-removed-result
+   ":RESULTS:
+hello there
+:END:"
+
+ "* org-babel-remove-result
+
+#+begin_src emacs-lisp :results wrap
+\"hello there\"
+#+end_src
+
+* next heading"))
+
+(ert-deftest test-ob/org-babel-remove-result--results-org ()
+  "Test `org-babel-remove-result' with :results org."
+  (test-ob-verify-result-and-removed-result
+   "#+BEGIN_ORG
+* heading
+** subheading
+content
+#+END_ORG"
+
+"* org-babel-remove-result
+#+begin_src emacs-lisp :results org
+\"* heading
+** subheading
+content\"
+#+end_src
+
+* next heading"))
+
+(ert-deftest test-ob/org-babel-remove-result--results-html ()
+  "Test `org-babel-remove-result' with :results html."
+  (test-ob-verify-result-and-removed-result
+   "#+BEGIN_HTML
+<head><body></body></head>
+#+END_HTML"
+
+"* org-babel-remove-result
+#+begin_src emacs-lisp :results html
+\"<head><body></body></head>\"
+#+end_src
+
+* next heading"))
+
+(ert-deftest test-ob/org-babel-remove-result--results-latex ()
+  "Test `org-babel-remove-result' with :results latex."
+  (test-ob-verify-result-and-removed-result
+   "#+BEGIN_LaTeX
+Line 1
+Line 2
+Line 3
+#+END_LaTeX"
+
+"* org-babel-remove-result
+#+begin_src emacs-lisp :results latex
+\"Line 1
+Line 2
+Line 3\"
+#+end_src
+
+* next heading"))
+
+(ert-deftest test-ob/org-babel-remove-result--results-code ()
+  "Test `org-babel-remove-result' with :results code."
+
+  (test-ob-verify-result-and-removed-result
+   "#+BEGIN_SRC emacs-lisp
+\"I am working!\"
+#+END_SRC"
+
+"* org-babel-remove-result
+#+begin_src emacs-lisp :results code
+(message \"I am working!\")
+#+end_src
+
+* next heading"))
+
+(ert-deftest test-ob/org-babel-remove-result--results-pp ()
+  "Test `org-babel-remove-result' with :results pp."
+  (test-ob-verify-result-and-removed-result
+   ": \"I /am/ working!\""
+
+"* org-babel-remove-result
+#+begin_src emacs-lisp :results pp
+\"I /am/ working!\")
+#+end_src
+
+* next heading"))
 
 (provide 'test-ob)