diff lisp/org/org.el @ 101757:6d71fc980cde

2009-02-02 Carsten Dominik <carsten.dominik@gmail.com> * org.el (org-mode): Make dependence stuff work more reliably. (org-update-parent-todo-statistics): Fix bug with updating statistics cookie. (org-yank-adjusted-subtrees, org-return-follows-link) (org-use-fast-todo-selection, org-tags-column): New default setting for variables. * org-export-latex.el (org-export-latex-emphasis-alist): Use = and ~ as verbatim delimiters, to avoid table bug. (org-export-latex-classes): Remove the a4paper option from the default styles. * org-exp.el (org-export-html-format-image): New argument PAR-OPEN, to fix XHTM validation bug. (org-export-as-html): Pass par-open to `org-export-html-format-image'. (org-export-html-footnotes-section): Use a more consistent id for footnotes. * org-agenda.el (org-agenda-sorting-strategy) (org-agenda-tags-column): New default setting for variables, based on a poll what typical uses use. (org-agenda-dim-blocked-tasks): Keep dimming blocked entries from setting the blocked tag.
author Carsten Dominik <dominik@science.uva.nl>
date Mon, 02 Feb 2009 20:57:14 +0000
parents 832fdb28f500
children 9f3e0387f078
line wrap: on
line diff
--- a/lisp/org/org.el	Mon Feb 02 20:49:41 2009 +0000
+++ b/lisp/org/org.el	Mon Feb 02 20:57:14 2009 +0000
@@ -6,7 +6,7 @@
 ;; Author: Carsten Dominik <carsten at orgmode dot org>
 ;; Keywords: outlines, hypermedia, calendar, wp
 ;; Homepage: http://orgmode.org
-;; Version: 6.20h
+;; Version: 6.21b
 ;;
 ;; This file is part of GNU Emacs.
 ;;
@@ -94,7 +94,7 @@
 
 ;;; Version
 
-(defconst org-version "6.20h"
+(defconst org-version "6.21b"
   "The version number of the file org.el.")
 
 (defun org-version (&optional here)
@@ -689,7 +689,7 @@
   :group 'org-edit-structure
   :type 'boolean)
 
-(defcustom org-yank-adjusted-subtrees t
+(defcustom org-yank-adjusted-subtrees nil
   "Non-nil means, when yanking subtrees, adjust the level.
 With this setting, `org-paste-subtree' is used to insert the subtree, see
 this function for details."
@@ -1113,7 +1113,7 @@
   :group 'org-link-follow
   :type 'boolean)
 
-(defcustom org-return-follows-link nil
+(defcustom org-return-follows-link t
   "Non-nil means, on links RET will follow the link.
 Needs to be set before org.el is loaded."
   :group 'org-link-follow
@@ -1565,7 +1565,7 @@
   :type '(choice (const sequence)
 		 (const type)))
 
-(defcustom org-use-fast-todo-selection 'prefix
+(defcustom org-use-fast-todo-selection t
   "Non-nil means, use the fast todo selection scheme with C-c C-t.
 This variable describes if and under what circumstances the cycling
 mechanism for TODO keywords will be replaced by a single-key, direct
@@ -1636,8 +1636,9 @@
   "Non-nil means, undone TODO entries will block switching the parent to DONE.
 Also, if a parent has an :ORDERED: property, switching an entry to DONE will
 be blocked if any prior sibling is not yet done.
-You need to set this variable through the customize interface, or to
-restart emacs after changing the value."
+This variable needs to be set before org.el is loaded, and you need to
+restart Emacs after a change to make the change effective.  The only way
+to change is while Emacs is running is through the customize interface."
   :set (lambda (var val)
 	 (set var val)
 	 (if val
@@ -1653,8 +1654,9 @@
 When this is nil, checkboxes have no influence on switching TODO states.
 When non-nil, you first need to check off all check boxes before the TODO
 entry can be switched to DONE.
-You need to set this variable through the customize interface, or to
-restart emacs after changing the value."
+This variable needs to be set before org.el is loaded, and you need to
+restart Emacs after a change to make the change effective.  The only way
+to change is while Emacs is running is through the customize interface."
   :set (lambda (var val)
 	 (set var val)
 	 (if val
@@ -2043,7 +2045,7 @@
   "Non-nil means, fast tags selection interface will also offer TODO states.
 This is an undocumented feature, you should not rely on it.")
 
-(defcustom org-tags-column (if (featurep 'xemacs) -79 -80)
+(defcustom org-tags-column (if (featurep 'xemacs) -76 -77)
   "The column to which tags should be indented in a headline.
 If this number is positive, it specifies the column.  If it is negative,
 it means that the tags should be flushright to that column.  For example,
@@ -3595,6 +3597,18 @@
   (org-set-autofill-regexps)
   (setq indent-line-function 'org-indent-line-function)
   (org-update-radio-target-regexp)
+  ;; Make sure dependence stuff works reliably, even for users who set it
+  ;; too late :-(
+  (if org-enforce-todo-dependencies
+      (add-hook 'org-blocker-hook
+		'org-block-todo-from-children-or-siblings)
+    (remove-hook 'org-blocker-hook
+		 'org-block-todo-from-children-or-siblings))
+  (if org-enforce-todo-checkbox-dependencies
+      (add-hook 'org-blocker-hook
+		'org-block-todo-from-checkboxes)
+    (remove-hook 'org-blocker-hook
+		 'org-block-todo-from-checkboxes))
 
   ;; Comment characters
 ;  (org-set-local 'comment-start "#") ;; FIXME: this breaks wrapping
@@ -8631,13 +8645,14 @@
   "Update any statistics cookie in the parent of the current headline."
   (interactive)
   (let ((box-re "\\(\\(\\[[0-9]*%\\]\\)\\|\\(\\[[0-9]*/[0-9]*\\]\\)\\)")
-	level (cnt-all 0) (cnt-done 0) is-percent kwd)
+	level (cnt-all 0) (cnt-done 0) is-percent kwd cookie-present)
     (catch 'exit
       (save-excursion
 	(setq level (org-up-heading-safe))
 	(unless level
 	  (throw 'exit nil))
 	(while (re-search-forward box-re (point-at-eol) t)
+	  (setq cnt-all 0 cnt-done 0 cookie-present t)
 	  (setq is-percent (match-end 2))
 	  (save-match-data
 	    (unless (outline-next-heading) (throw 'exit nil))
@@ -8653,8 +8668,9 @@
 	   (if is-percent
 	       (format "[%d%%]" (/ (* 100 cnt-done) (max 1 cnt-all)))
 	     (format "[%d/%d]" cnt-done cnt-all))))
-	(run-hook-with-args 'org-after-todo-statistics-hook
-			    cnt-done (- cnt-all cnt-done))))))
+	(when cookie-present
+	  (run-hook-with-args 'org-after-todo-statistics-hook
+			      cnt-done (- cnt-all cnt-done)))))))
 
 (defvar org-after-todo-statistics-hook nil
   "Hook that is called after a TODO statistics cookie has been updated.