Browse Source

Merge branch 'master' of orgmode.org:org-mode

Carsten Dominik 14 years ago
parent
commit
4d2a5c97f2
3 changed files with 28 additions and 27 deletions
  1. 3 2
      contrib/lisp/org-odt.el
  2. 9 3
      lisp/org-exp.el
  3. 16 22
      lisp/org.el

+ 3 - 2
contrib/lisp/org-odt.el

@@ -75,7 +75,7 @@
 (defconst org-odt-lib-dir (file-name-directory load-file-name))
 (defconst org-odt-lib-dir (file-name-directory load-file-name))
 (defconst org-odt-data-dir
 (defconst org-odt-data-dir
   (let ((dir1 (expand-file-name "../odt" org-odt-lib-dir))	   ; git
   (let ((dir1 (expand-file-name "../odt" org-odt-lib-dir))	   ; git
-	(dir2 (expand-file-name "./contrib/odt" org-odt-lib-dir))) ; elpa
+	(dir2 (expand-file-name "./" org-odt-lib-dir)))		   ; elpa
     (cond
     (cond
      ((file-directory-p dir1) dir1)
      ((file-directory-p dir1) dir1)
      ((file-directory-p dir2) dir2)
      ((file-directory-p dir2) dir2)
@@ -2209,7 +2209,8 @@ using `org-open-file'."
 	   ;; time we would have seen and collected all the label
 	   ;; time we would have seen and collected all the label
 	   ;; definitions in `org-odt-entity-labels-alist'.
 	   ;; definitions in `org-odt-entity-labels-alist'.
 	   (org-odt-format-tags
 	   (org-odt-format-tags
-	    "<text:sequence-ref text:ref-name=\"%s\"/>" "" label)) t t)))))
+	    "<text:sequence-ref text:ref-name=\"%s\"/>" ""
+	    (org-add-props label '(org-protected t)))) t t)))))
 
 
 ;; process latex fragments as part of
 ;; process latex fragments as part of
 ;; `org-export-preprocess-after-blockquote-hook'. Note that this hook
 ;; `org-export-preprocess-after-blockquote-hook'. Note that this hook

+ 9 - 3
lisp/org-exp.el

@@ -2160,15 +2160,21 @@ can work correctly."
 (defun org-export-get-title-from-subtree ()
 (defun org-export-get-title-from-subtree ()
   "Return subtree title and exclude it from export."
   "Return subtree title and exclude it from export."
   (let ((rbeg (region-beginning)) (rend (region-end))
   (let ((rbeg (region-beginning)) (rend (region-end))
-	(inhibit-read-only t) title)
+	(inhibit-read-only t)
+	(tags (plist-get (org-infile-export-plist) :tags))
+	title)
     (save-excursion
     (save-excursion
       (goto-char rbeg)
       (goto-char rbeg)
       (when (and (org-at-heading-p)
       (when (and (org-at-heading-p)
 		 (>= (org-end-of-subtree t t) rend))
 		 (>= (org-end-of-subtree t t) rend))
+	(when (plist-member org-export-opt-plist :tags)
+	  (setq tags (or (plist-get org-export-opt-plist :tags) tags)))
 	;; This is a subtree, we take the title from the first heading
 	;; This is a subtree, we take the title from the first heading
 	(goto-char rbeg)
 	(goto-char rbeg)
-	(looking-at org-todo-line-regexp)
-	(setq title (match-string 3))
+	(looking-at org-todo-line-tags-regexp)
+	(setq title (if (eq tags t)
+			(format "%s\t%s" (match-string 3) (match-string 4))
+		      (match-string 3)))
 	(org-unmodified
 	(org-unmodified
 	 (add-text-properties (point) (1+ (point-at-eol))
 	 (add-text-properties (point) (1+ (point-at-eol))
 			      (list :org-license-to-kill t)))
 			      (list :org-license-to-kill t)))

+ 16 - 22
lisp/org.el

@@ -4268,10 +4268,6 @@ collapsed state."
 
 
 ;;; Variables for pre-computed regular expressions, all buffer local
 ;;; Variables for pre-computed regular expressions, all buffer local
 
 
-(defvar org-heading-regexp nil
-  "Matches an headline.
-Stars are put in group 1 and the trimmed body in group 2.")
-(make-variable-buffer-local 'org-heading-regexp)
 (defvar org-drawer-regexp nil
 (defvar org-drawer-regexp nil
   "Matches first line of a hidden block.")
   "Matches first line of a hidden block.")
 (make-variable-buffer-local 'org-drawer-regexp)
 (make-variable-buffer-local 'org-drawer-regexp)
@@ -4295,18 +4291,6 @@ group 3: Priority cookie
 group 4: True headline
 group 4: True headline
 group 5: Tags")
 group 5: Tags")
 (make-variable-buffer-local 'org-complex-heading-regexp)
 (make-variable-buffer-local 'org-complex-heading-regexp)
-(defvar org-heading-keyword-regexp-format nil
-  "Printf format to make regexp to match an headline with some keyword.
-This regexp will match the headline of any node which has the
-exact keyword that is put into the format.  The keyword isn't in
-any group by default, but the stars and the body are.")
-(make-variable-buffer-local 'org-heading-keyword-regexp-format)
-(defvar org-heading-keyword-maybe-regexp-format nil
-  "Printf format to make regexp to match an headline with some keyword.
-This regexp can match any headline with the specified keyword, or
-a without a keyword.  The keyword isn't in any group by default,
-but the stars and the body are.")
-(make-variable-buffer-local 'org-heading-keyword-maybe-regexp-format)
 (defvar org-complex-heading-regexp-format nil
 (defvar org-complex-heading-regexp-format nil
   "Printf format to make regexp to match an exact headline.
   "Printf format to make regexp to match an exact headline.
 This regexp will match the headline of any node which has the
 This regexp will match the headline of any node which has the
@@ -4683,12 +4667,6 @@ means to push this value onto the list in the variable.")
 	    (concat "\\("
 	    (concat "\\("
 		    (mapconcat 'regexp-quote org-not-done-keywords "\\|")
 		    (mapconcat 'regexp-quote org-not-done-keywords "\\|")
 		    "\\)")
 		    "\\)")
-	    org-heading-regexp
-	    "^\\(\\*+\\)\\(?: +\\(.*?\\)\\)?[ \t]*$"
-	    org-heading-keyword-regexp-format
-	    "^\\(\\*+\\)\\(?: +%s\\)\\(?: +\\(.*?\\)\\)?[ \t]*$"
-	    org-heading-keyword-maybe-regexp-format
-	    "^\\(\\*+\\)\\(?: +%s\\)?\\(?: +\\(.*?\\)\\)?[ \t]*$"
 	    org-not-done-heading-regexp
 	    org-not-done-heading-regexp
 	    (format org-heading-keyword-regexp-format org-not-done-regexp)
 	    (format org-heading-keyword-regexp-format org-not-done-regexp)
 	    org-todo-line-regexp
 	    org-todo-line-regexp
@@ -4876,6 +4854,22 @@ This variable is set by `org-before-change-function'.
 This is similar to `org-outline-regexp' but additionally makes
 This is similar to `org-outline-regexp' but additionally makes
 sure that we are at the beginning of the line.")
 sure that we are at the beginning of the line.")
 
 
+(defconst org-heading-regexp "^\\(\\*+\\)\\(?: +\\(.*?\\)\\)?[ \t]*$"
+  "Matches an headline, putting stars and text into groups.
+Stars are put in group 1 and the trimmed body in group 2.")
+(defconst org-heading-keyword-regexp-format
+  "^\\(\\*+\\)\\(?: +%s\\)\\(?: +\\(.*?\\)\\)?[ \t]*$"
+  "Printf format for a regexp matching an headline with some keyword.
+This regexp will match the headline of any node which has the
+exact keyword that is put into the format.  The keyword isn't in
+any group by default, but the stars and the body are.")
+(defconst org-heading-keyword-maybe-regexp-format
+  "^\\(\\*+\\)\\(?: +%s\\)?\\(?: +\\(.*?\\)\\)?[ \t]*$"
+  "Printf format for a regexp matching an headline, possibly with some keyword.
+This regexp can match any headline with the specified keyword, or
+without a keyword.  The keyword isn't in any group by default,
+but the stars and the body are.")
+
 ;;;###autoload
 ;;;###autoload
 (define-derived-mode org-mode outline-mode "Org"
 (define-derived-mode org-mode outline-mode "Org"
   "Outline-based notes management and organizer, alias
   "Outline-based notes management and organizer, alias