Browse Source

Release 4.28

Carsten Dominik 17 years ago
parent
commit
fc87d5cd14
6 changed files with 270 additions and 134 deletions
  1. 66 59
      org
  2. 194 71
      org.el
  3. BIN
      org.pdf
  4. 9 3
      org.texi
  5. BIN
      orgcard.pdf
  6. 1 1
      orgcard.tex

+ 66 - 59
org

@@ -5,7 +5,7 @@ START-INFO-DIR-ENTRY
 * Org Mode: (org).	outline-based notes management and organizer
 END-INFO-DIR-ENTRY
 
-   This manual is for Org-mode (version 4.27).
+   This manual is for Org-mode (version 4.28).
 
    Copyright (C) 2004, 2005, 2006 Free Software Foundation
 
@@ -27,7 +27,7 @@ File: org,  Node: Top,  Next: Introduction,  Prev: (dir),  Up: (dir)
 Org Mode Manual
 ***************
 
-This manual is for Org-mode (version 4.27).
+This manual is for Org-mode (version 4.28).
 
    Copyright (C) 2004, 2005, 2006 Free Software Foundation
 
@@ -2514,7 +2514,9 @@ View/GoTo org file
 `f'
      Toggle Follow mode.  In Follow mode, as you move the cursor through
      the agenda buffer, the other window always shows the corresponding
-     location in the org file.
+     location in the org file.  The initial setting for this mode in new
+     agenda buffers can be set with the variable
+     `org-agenda-start-with-follow-mode'.
 
 `l'
      Toggle Logbook mode.  In Logbook mode, entries that where marked
@@ -3415,6 +3417,10 @@ Org-mode can cooperate with the following packages:
      want to have other replacement keys, look at the variable
      `org-disputed-keys'.
 
+`windmove.el' by Hovav Shacham
+     Also this package uses the `S-<cursor>' keys, so everything written
+     in the paragraph above about CUA mode also applies here.
+
 `remember.el' by John Wiegley
      Org mode cooperates with remember, see *Note Remember::.
      `Remember.el' is not part of Emacs, find it on the web.
@@ -3575,7 +3581,7 @@ File: org,  Node: Index,  Next: Key Index,  Prev: Miscellaneous,  Up: Top
 * agenda:                                Weekly/Daily agenda. (line   6)
 * agenda commands, custom:               Agenda dispatcher.   (line   6)
 * agenda dispatcher:                     Agenda dispatcher.   (line   6)
-* agenda files, removing buffers:        Agenda commands.     (line 187)
+* agenda files, removing buffers:        Agenda commands.     (line 189)
 * agenda views:                          Agenda views.        (line   6)
 * agenda, for single file:               Timeline.            (line   6)
 * allout.el, conflict with:              FAQ.                 (line   6)
@@ -3640,7 +3646,7 @@ File: org,  Node: Index,  Next: Key Index,  Prev: Miscellaneous,  Up: Top
 * DEADLINE keyword:                      Time stamps.         (line  43)
 * deadlines:                             Time stamps.         (line   6)
 * demotion, of subtrees:                 Structure editing.   (line   6)
-* diary entries, creating from agenda:   Agenda commands.     (line 145)
+* diary entries, creating from agenda:   Agenda commands.     (line 147)
 * diary integration:                     Calendar/Diary integration.
                                                               (line   6)
 * dictionary word completion:            Completion.          (line   6)
@@ -3773,7 +3779,7 @@ File: org,  Node: Index,  Next: Key Index,  Prev: Miscellaneous,  Up: Top
 * region, active <3>:                    Built-in table editor.
                                                               (line 165)
 * region, active:                        Structure editing.   (line  51)
-* remember.el <1>:                       Interaction.         (line  40)
+* remember.el <1>:                       Interaction.         (line  64)
 * remember.el:                           Remember.            (line   6)
 * richer text:                           Enhancing text.      (line   6)
 * RMAIL links:                           External links.      (line   6)
@@ -3856,6 +3862,7 @@ File: org,  Node: Index,  Next: Key Index,  Prev: Miscellaneous,  Up: Top
 * visible text, printing:                Sparse trees.        (line  39)
 * VM links:                              External links.      (line   6)
 * WANDERLUST links:                      External links.      (line   6)
+* windmove.el:                           Interaction.         (line  60)
 * workflow states as TODO keywords:      Workflow states.     (line   6)
 * XML export:                            XML export.          (line   6)
 
@@ -3868,28 +3875,28 @@ File: org,  Node: Key Index,  Prev: Index,  Up: Top
 [index]
 * Menu:
 
-* +:                                     Agenda commands.     (line 118)
-* ,:                                     Agenda commands.     (line 110)
-* -:                                     Agenda commands.     (line 124)
-* .:                                     Agenda commands.     (line  89)
-* ::                                     Agenda commands.     (line 107)
+* +:                                     Agenda commands.     (line 120)
+* ,:                                     Agenda commands.     (line 112)
+* -:                                     Agenda commands.     (line 126)
+* .:                                     Agenda commands.     (line  91)
+* ::                                     Agenda commands.     (line 109)
 * <:                                     Creating timestamps. (line  75)
-* <left>:                                Agenda commands.     (line  86)
+* <left>:                                Agenda commands.     (line  88)
 * <RET> <1>:                             Agenda commands.     (line  41)
 * <RET> <2>:                             Creating timestamps. (line 100)
 * <RET>:                                 Built-in table editor.
                                                               (line  64)
-* <right>:                               Agenda commands.     (line  81)
+* <right>:                               Agenda commands.     (line  83)
 * <SPC>:                                 Agenda commands.     (line  28)
 * <TAB> <1>:                             Agenda commands.     (line  35)
 * <TAB> <2>:                             Built-in table editor.
                                                               (line  57)
 * <TAB> <3>:                             Plain lists.         (line  38)
 * <TAB>:                                 Visibility cycling.  (line  10)
-* > <1>:                                 Agenda commands.     (line 140)
+* > <1>:                                 Agenda commands.     (line 142)
 * >:                                     Creating timestamps. (line  76)
-* C:                                     Agenda commands.     (line 170)
-* c:                                     Agenda commands.     (line 154)
+* C:                                     Agenda commands.     (line 172)
+* c:                                     Agenda commands.     (line 156)
 * C-#:                                   Built-in table editor.
                                                               (line 155)
 * C-,:                                   Agenda files.        (line  18)
@@ -3972,7 +3979,7 @@ File: org,  Node: Key Index,  Prev: Index,  Up: Top
 * C-c C-x a:                             ASCII export.        (line   9)
 * C-c C-x b:                             HTML export.         (line  11)
 * C-c C-x c:                             iCalendar export.    (line  20)
-* C-c C-x C-c:                           Agenda commands.     (line 177)
+* C-c C-x C-c:                           Agenda commands.     (line 179)
 * C-c C-x C-i:                           iCalendar export.    (line  15)
 * C-c C-x C-k:                           Structure editing.   (line  36)
 * C-c C-x C-w <1>:                       Built-in table editor.
@@ -3998,15 +4005,15 @@ File: org,  Node: Key Index,  Prev: Index,  Up: Top
 * C-u C-c =:                             Built-in table editor.
                                                               (line 139)
 * C-u C-c C-l:                           Handling links.      (line  40)
-* D:                                     Agenda commands.     (line  66)
-* d:                                     Agenda commands.     (line  63)
+* D:                                     Agenda commands.     (line  68)
+* d:                                     Agenda commands.     (line  65)
 * f:                                     Agenda commands.     (line  44)
-* g:                                     Agenda commands.     (line  70)
-* H:                                     Agenda commands.     (line 174)
-* i:                                     Agenda commands.     (line 145)
-* l:                                     Agenda commands.     (line  49)
+* g:                                     Agenda commands.     (line  72)
+* H:                                     Agenda commands.     (line 176)
+* i:                                     Agenda commands.     (line 147)
+* l:                                     Agenda commands.     (line  51)
 * L:                                     Agenda commands.     (line  32)
-* M:                                     Agenda commands.     (line 161)
+* M:                                     Agenda commands.     (line 163)
 * M-<down>:                              Built-in table editor.
                                                               (line  82)
 * M-<left> <1>:                          Built-in table editor.
@@ -4049,32 +4056,32 @@ File: org,  Node: Key Index,  Prev: Index,  Up: Top
 * mouse-3 <1>:                           Agenda commands.     (line  28)
 * mouse-3:                               Handling links.      (line  74)
 * n:                                     Agenda commands.     (line  19)
-* o:                                     Agenda commands.     (line  57)
-* P:                                     Agenda commands.     (line 115)
+* o:                                     Agenda commands.     (line  59)
+* P:                                     Agenda commands.     (line 117)
 * p:                                     Agenda commands.     (line  20)
-* q:                                     Agenda commands.     (line 184)
-* r <1>:                                 Agenda commands.     (line  74)
+* q:                                     Agenda commands.     (line 186)
+* r <1>:                                 Agenda commands.     (line  76)
 * r:                                     Global TODO list.    (line  21)
-* S:                                     Agenda commands.     (line 165)
-* S-<down> <1>:                          Agenda commands.     (line 124)
+* S:                                     Agenda commands.     (line 167)
+* S-<down> <1>:                          Agenda commands.     (line 126)
 * S-<down> <2>:                          Creating timestamps. (line  55)
 * S-<down>:                              Priorities.          (line  25)
-* S-<left> <1>:                          Agenda commands.     (line 136)
+* S-<left> <1>:                          Agenda commands.     (line 138)
 * S-<left>:                              Creating timestamps. (line  50)
 * S-<RET>:                               Built-in table editor.
                                                               (line 170)
-* S-<right> <1>:                         Agenda commands.     (line 128)
+* S-<right> <1>:                         Agenda commands.     (line 130)
 * S-<right>:                             Creating timestamps. (line  50)
 * S-<TAB> <1>:                           Built-in table editor.
                                                               (line  61)
 * S-<TAB>:                               Visibility cycling.  (line  19)
-* S-<up> <1>:                            Agenda commands.     (line 118)
+* S-<up> <1>:                            Agenda commands.     (line 120)
 * S-<up> <2>:                            Creating timestamps. (line  55)
 * S-<up>:                                Priorities.          (line  25)
-* T:                                     Agenda commands.     (line 102)
-* t:                                     Agenda commands.     (line  98)
-* w:                                     Agenda commands.     (line  60)
-* x:                                     Agenda commands.     (line 187)
+* T:                                     Agenda commands.     (line 104)
+* t:                                     Agenda commands.     (line 100)
+* w:                                     Agenda commands.     (line  62)
+* x:                                     Agenda commands.     (line 189)
 
 
 
@@ -4153,27 +4160,27 @@ Node: Global TODO list98135
 Node: Matching headline tags99550
 Node: Timeline100493
 Node: Agenda commands101366
-Node: Exporting106622
-Node: ASCII export107752
-Node: HTML export108574
-Node: XML export110322
-Node: iCalendar export110689
-Node: Text interpretation112511
-Node: Comment lines112988
-Node: Enhancing text113457
-Node: Export options115288
-Node: Miscellaneous116890
-Node: Completion117648
-Node: Customization118644
-Node: Summary of in-buffer settings119251
-Node: The very busy C-c C-c key122012
-Node: Clean view123417
-Node: TTY keys125994
-Node: FAQ127595
-Node: Interaction134497
-Node: Bugs137364
-Node: Acknowledgments139318
-Node: Index142413
-Node: Key Index163710
+Node: Exporting106755
+Node: ASCII export107885
+Node: HTML export108707
+Node: XML export110455
+Node: iCalendar export110822
+Node: Text interpretation112644
+Node: Comment lines113121
+Node: Enhancing text113590
+Node: Export options115421
+Node: Miscellaneous117023
+Node: Completion117781
+Node: Customization118777
+Node: Summary of in-buffer settings119384
+Node: The very busy C-c C-c key122145
+Node: Clean view123550
+Node: TTY keys126127
+Node: FAQ127728
+Node: Interaction134630
+Node: Bugs137664
+Node: Acknowledgments139618
+Node: Index142713
+Node: Key Index164083
 
 End Tag Table

+ 194 - 71
org.el

@@ -5,7 +5,7 @@
 ;; Author: Carsten Dominik <dominik at science dot uva dot nl>
 ;; Keywords: outlines, hypermedia, calendar, wp
 ;; Homepage: http://www.astro.uva.nl/~dominik/Tools/org/
-;; Version: 4.27
+;; Version: 4.28
 ;;
 ;; This file is part of GNU Emacs.
 ;;
@@ -81,6 +81,9 @@
 ;;
 ;; Changes since version 4.10:
 ;; ---------------------------
+;; Version 4.28
+;;    - Bug fixes.
+;;
 ;; Version 4.27
 ;;    - HTML exporter generalized to receive external options.
 ;;      As part of the process, author, email and date have been moved to the
@@ -146,7 +149,7 @@
 
 ;;; Customization variables
 
-(defvar org-version "4.27"
+(defvar org-version "4.28"
   "The version number of the file org.el.")
 (defun org-version ()
   (interactive)
@@ -385,6 +388,11 @@ body starts at column 0, indentation is not changed at all."
   :group 'org-edit-structure
   :type 'boolean)
 
+(defcustom org-insert-heading-hook nil
+  "Hook being run after inserting a new heading."
+  :group 'org-edit-structure
+  :type 'boolean)
+
 (defcustom org-enable-fixed-width-editor t
   "Non-nil means, lines starting with \":\" are treated as fixed-width.
 This currently only means, they are never auto-wrapped.
@@ -1244,6 +1252,7 @@ key    The key (a single char as a string) to be associated with the command.
 type   The command type, any of the following symbols:
         todo        Entries with a specific TODO keyword, in all agenda files.
         tags        Tags match in all agenda files.
+        tags-todo   Tags match in all agenda files, TODO entries only.
         todo-tree   Sparse tree of specific TODO keyword in *current* file.
         tags-tree   Sparse tree with all tags matches in *current* file.
         occur-tree  Occur sparse tree for current file.
@@ -1256,6 +1265,7 @@ match  What to search for:
 	  (list (string :tag "Key")
 		(choice :tag "Type"
 			(const :tag "Tags search in all agenda files" tags)
+			(const :tag "Tags search of TODO entries, all agenda files" tags-todo)
 			(const :tag "TODO keyword search in all agenda files" todo)
 			(const :tag "Tags sparse tree in current buffer" tags-tree)
 			(const :tag "TODO keyword tree in current buffer" todo-tree)
@@ -1272,7 +1282,7 @@ potentially much shorter TODO lists."
   :group 'org-todo
   :type 'boolean)
 
-(defcustom org-agenda-include-all-todo t
+(defcustom org-agenda-include-all-todo nil
   "Non-nil means, the agenda will always contain all TODO entries.
 When nil, date-less entries will only be shown if `org-agenda' is called
 with a prefix argument.
@@ -1294,7 +1304,7 @@ forth between agenda and calendar."
   :group 'org-agenda
   :type 'sexp)
 
-(defgroup org-agenda-window-setup nil
+(defgroup org-agenda-setup nil
   "Options concerning setting up the Agenda window in Org Mode."
   :tag "Org Agenda Window Setup"
   :group 'org-agenda)
@@ -1306,6 +1316,11 @@ Needs to be set before org.el is loaded."
   :group 'org-agenda-setup
   :type 'boolean)
 
+(defcustom org-agenda-start-with-follow-mode t
+  "The initial value of follwo-mode in a newly created agenda window."
+  :group 'org-agenda-setup
+  :type 'boolean)
+
 (defcustom org-select-timeline-window t
   "Non-nil means, after creating a timeline, move cursor into Timeline window.
 When nil, cursor will remain in the current window."
@@ -1618,6 +1633,16 @@ This option can also be set with the +OPTIONS line, e.g. \"\\n:t\"."
   :group 'org-export-general
   :type 'boolean)
 
+(defcustom org-export-with-tags t
+  "Nil means, do not export tags, just remove them from headlines."
+  :group 'org-export-general
+  :type 'boolean)
+
+(defcustom org-export-with-timestamps t
+  "Nil means, do not export timestamps and associated keywords."
+  :group 'org-export-general
+  :type 'boolean)
+
 (defgroup org-export-translation nil
   "Options for translating special ascii sequences for the export backends."
   :tag "Org Export Translation"
@@ -2220,6 +2245,13 @@ This face is only used if `org-fontify-done-headline' is set."
 (defvar org-scheduled-time-regexp nil
   "Matches the SCHEDULED keyword together with a time stamp.")
 (make-variable-buffer-local 'org-scheduled-time-regexp)
+(defvar org-closed-time-regexp nil
+  "Matches the CLOSED keyword together with a time stamp.")
+(make-variable-buffer-local 'org-closed-time-regexp)
+
+(defvar org-keyword-time-regexp nil
+  "Matches any of the 3 keywords, together with the time stamp.")
+(make-variable-buffer-local 'org-keyword-time-regexp)
 
 (defun org-set-regexps-and-options ()
   "Precompute regular expressions for current buffer."
@@ -2309,7 +2341,15 @@ This face is only used if `org-fontify-done-headline' is set."
 	  org-scheduled-regexp
 	  (concat "\\<" org-scheduled-string)
 	  org-scheduled-time-regexp
-	  (concat "\\<" org-scheduled-string " *<\\([^>]+\\)>"))
+	  (concat "\\<" org-scheduled-string " *<\\([^>]+\\)>")
+	  org-closed-time-regexp
+	  (concat "\\<" org-closed-string " *\\[\\([^]]+\\)\\]")
+	  org-keyword-time-regexp
+	  (concat "\\<\\(" org-scheduled-string
+		  "\\|" org-deadline-string
+		  "\\|" org-closed-string "\\)"
+		  " *[[<]\\([^]>]+\\)[]>]"))   ;; FIXME: is this correct?
+
     (org-set-font-lock-defaults)))
 
 ;; Tell the compiler about dynamically scoped variables,
@@ -3138,22 +3178,24 @@ or nil."
 (defun org-insert-heading (&optional force-heading)
   "Insert a new heading or item with same depth at point."
   (interactive "P")
-  (when (or force-heading (not (org-insert-item)))
-    (let* ((head (save-excursion
-		   (condition-case nil
-		       (org-back-to-heading)
-		     (error (outline-next-heading)))
-		   (prog1 (match-string 0)
-		     (funcall outline-level)))))
-      (cond 
-       ((and (org-on-heading-p) (bolp) 
-	     (save-excursion (backward-char 1) (not (org-invisible-p))))
-	(open-line 1))
-       ((bolp) nil)
-       (t (newline)))
-      (insert head)
-      (just-one-space)
-      (run-hooks 'org-insert-heading-hook))))
+  (if (= (buffer-size) 0)
+      (insert "\n* ")
+    (when (or force-heading (not (org-insert-item)))
+      (let* ((head (save-excursion
+		     (condition-case nil
+			 (org-back-to-heading)
+		       (error (outline-next-heading)))
+		     (prog1 (match-string 0)
+		       (funcall outline-level)))))
+	(cond 
+	 ((and (org-on-heading-p) (bolp) 
+	       (save-excursion (backward-char 1) (not (org-invisible-p))))
+	  (open-line 1))
+	 ((bolp) nil)
+	 (t (newline)))
+	(insert head)
+	(just-one-space)
+	(run-hooks 'org-insert-heading-hook)))))
 
 (defun org-insert-item ()
   "Insert a new item at the current level.
@@ -3838,7 +3880,7 @@ heading be marked DONE, and the current time will be added."
     ;; Here we are back in the original buffer.  Everything seems to have
     ;; worked.  So now cut the tree and finish up.
     (let (this-command) (org-cut-subtree))
-    (if (looking-at "[ \t]*$") (kill-line))
+    (if (and (not (eobp)) (looking-at "[ \t]*$")) (kill-line))
     (message "Subtree archived %s"
 	     (if (eq this-buffer buffer)
 		 (concat "under heading: " heading)
@@ -4108,6 +4150,61 @@ to modify it to the correct date."
   (message "%s" (substitute-command-keys
 		 "Use \\[org-timestamp-up-day] and \\[org-timestamp-down-day] to change the date.")))
 
+(defun org-add-planning-info (what &optional time &rest remove)
+  "Insert new timestamp with keyword in the line directly after the headline.
+WHAT indicates what kind of time stamp to add.  TIME indicated the time to use.
+If non is given, the user is prompted for a date.
+REMOVE indicates what kind of entries to remove.  An old WHAT entry will also
+be removed."
+  (interactive)
+  (save-excursion
+    (let (beg end col list elt)
+      (org-show-entry)   ; Avoid this.
+      (org-back-to-heading t)
+      (setq beg (point))
+      (looking-at (concat outline-regexp "\\( *\\)[^\r\n]*"))
+      (goto-char (match-end 1))
+      (setq col (current-column))
+      (goto-char (1+ (match-end 0)))
+      (if (and (not (looking-at outline-regexp))
+	       (looking-at (concat "[^\r\n]*?" org-keyword-time-regexp
+				   "[^\r\n]*")))
+	  (narrow-to-region (match-beginning 0) (match-end 0))
+	(insert "\n")
+	(backward-char 1)
+	(narrow-to-region (point) (point))
+	(indent-to-column col))
+      ;; Check if we have to remove something.
+      (setq list (cons what remove))
+      (while list
+	(setq elt (pop list))
+	(goto-char (point-min))
+	(when (or (and (eq elt 'scheduled)
+		       (re-search-forward org-scheduled-time-regexp nil t))
+		  (and (eq elt 'deadline)
+		       (re-search-forward org-deadline-time-regexp nil t))
+		  (and (eq elt 'closed)
+		       (re-search-forward org-closed-time-regexp nil t)))
+	  (replace-match "")
+	  (if (looking-at " +") (replace-match ""))))
+      (goto-char (point-max))
+      (when what
+	(insert
+	 (if (not (equal (char-before) ?\ )) " " "")
+	 (cond ((eq what 'scheduled) org-scheduled-string)
+	       ((eq what 'deadline) org-deadline-string)
+	       ((eq what 'closed) org-closed-string))
+	 " ")
+	(insert
+	 (format-time-string 
+	  (if (eq what 'closed)
+	      (concat "[" (substring (cdr org-time-stamp-formats) 1 -1) "]")
+	    (car org-time-stamp-formats))
+	  (or time (org-read-date nil 'to-time)))))
+      (goto-char (point-min))
+      (widen)
+      (if (looking-at "[ \t]+\r?\n")
+	  (replace-match "")))))
 
 (defun org-occur (regexp &optional callback)
   "Make a compact tree which shows all matches of REGEXP.
@@ -4798,7 +4895,7 @@ The following commands are available:
   (org-add-hook 'post-command-hook 'org-agenda-post-command-hook nil 'local)
   (org-add-hook 'pre-command-hook 'org-unhighlight nil 'local)
   (unless org-agenda-keep-modes
-    (setq org-agenda-follow-mode nil
+    (setq org-agenda-follow-mode org-agenda-start-with-follow-mode
 	  org-agenda-show-log nil))
   (easy-menu-change
    '("Agenda") "Agenda Files"
@@ -5023,6 +5120,8 @@ C   Configure your own agenda commands")
 	(cond
 	 ((eq type 'tags)
 	  (org-tags-view current-prefix-arg string))
+	 ((eq type 'tags-todo)
+	  (org-tags-view '(4) string))
 	 ((eq type 'todo)
 	  (org-todo-list string))
 	 ((eq type 'tags-tree)
@@ -7497,7 +7596,6 @@ in all files."
     (cond
      ;; First check if there are any special 
      ((run-hook-with-args-until-success 'org-execute-file-search-functions s))
-
      ;; Now try the builtin stuff
      ((save-excursion
 	(goto-char (point-min))
@@ -7538,7 +7636,7 @@ in all files."
 ;	    re4 (concat "\\<" (mapconcat 'downcase words "[^a-zA-Z_\r\n]+") "\\>")
 	    re2 (concat "[ \t\r\n]\\(" (mapconcat 'downcase words "[ \t]+") "\\)[ \t\r\n]")
 	    re2a (concat "[ \t\r\n]\\(" (mapconcat 'downcase words "[ \t\r\n]+") "\\)[ \t\r\n]")
-	    re4 (concat "[^a-zA-Z_\r\n]\\(" (mapconcat 'downcase words "[^a-zA-Z_\r\n]+") "\\)[^a-zA-Z_\r\n]")
+	    re4 (concat "[^a-zA-Z_]\\(" (mapconcat 'downcase words "[^a-zA-Z_\r\n]+") "\\)[^a-zA-Z_]")
 	    re1 (concat pre re2 post)
 	    re3 (concat pre re4 post)
 	    re5 (concat pre ".*" re4)
@@ -7917,9 +8015,9 @@ folders."
 	  (set-window-configuration org-window-config-before-follow-link)
 	  (save-excursion (set-buffer b) (goto-char p)
 	    (bibtex-url)))
-      (recenter 0)))  ; Move entry start to beginning of window
+      (recenter 0))  ; Move entry start to beginning of window
   ;; return t to indicate that the search is done.
-  t)
+    t))
 
 ;; Finally add the functions to the right hooks.
 (add-hook 'org-create-file-search-functions 'org-create-file-search-in-bibtex)
@@ -8473,45 +8571,48 @@ RET on headline   -> Store as sublevel entry to current headline
   "Initialize *remember* buffer with template, invode `org-mode'.
 This function should be placed into `remember-mode-hook' and in fact requires
 to be run from that hook to fucntion properly."
-  (when org-remember-templates
-    (let* ((entry (if (= (length org-remember-templates) 1)
-		      (cdar org-remember-templates)
-		    (message "Select template: %s"
-			     (mapconcat
-			      (lambda (x) (char-to-string (car x)))
-			      org-remember-templates " "))
-		    (cdr (assoc (read-char-exclusive) org-remember-templates))))
-	   (tpl (if (consp (cdr entry)) (cadr entry) (cdr entry)))
-	   (file (if (consp (cdr entry)) (nth 2 entry)))
-	   (v-t (format-time-string (car org-time-stamp-formats) (org-current-time)))
-	   (v-T (format-time-string (cdr org-time-stamp-formats) (org-current-time)))
-	   (v-u (concat "[" (substring v-t 1 -1) "]"))
-	   (v-U (concat "[" (substring v-T 1 -1) "]"))
-	   (v-a annotation)   ; defined in `remember-mode'
-	   (v-i initial)      ; defined in `remember-mode'
-	   (v-n user-full-name)
-	   )
-      (unless tpl (setq tpl "")	(message "No template") (ding))
-      (insert tpl) (goto-char (point-min))
-      (while (re-search-forward "%\\([tTuTai]\\)" nil t)
-	(when (and initial (equal (match-string 0) "%i"))
-	  (save-match-data
-	    (let* ((lead (buffer-substring
-			  (point-at-bol) (match-beginning 0))))
-	      (setq v-i (mapconcat 'identity
+  (if org-remember-templates
+      (let* ((entry (if (= (length org-remember-templates) 1)
+			(cdar org-remember-templates)
+		      (message "Select template: %s"
+			       (mapconcat
+				(lambda (x) (char-to-string (car x)))
+				org-remember-templates " "))
+		      (cdr (assoc (read-char-exclusive) org-remember-templates))))
+	     (tpl (if (consp (cdr entry)) (cadr entry) (cdr entry)))
+	     (file (if (consp (cdr entry)) (nth 2 entry)))
+	     (v-t (format-time-string (car org-time-stamp-formats) (org-current-time)))
+	     (v-T (format-time-string (cdr org-time-stamp-formats) (org-current-time)))
+	     (v-u (concat "[" (substring v-t 1 -1) "]"))
+	     (v-U (concat "[" (substring v-T 1 -1) "]"))
+	     (v-a annotation)   ; defined in `remember-mode'
+	     (v-i initial)      ; defined in `remember-mode'
+	     (v-n user-full-name)
+	     )
+	(unless tpl (setq tpl "")	(message "No template") (ding))
+	(insert tpl) (goto-char (point-min))
+	(while (re-search-forward "%\\([tTuTai]\\)" nil t)
+	  (when (and initial (equal (match-string 0) "%i"))
+	    (save-match-data
+	      (let* ((lead (buffer-substring
+			    (point-at-bol) (match-beginning 0))))
+		(setq v-i (mapconcat 'identity
 				     (org-split-string initial "\n")
 				     (concat "\n" lead))))))
-	(replace-match
-	 (or (eval (intern (concat "v-" (match-string 1)))) "")
-	 t t))
-      (let ((org-startup-folded nil)
-	    (org-startup-with-deadline-check nil))
-	(org-mode))
-      (if (and file (string-match "\\S-" file) (not (file-directory-p file)))
-	  (set (make-local-variable 'org-default-notes-file) file))
-      (goto-char (point-min))
-      (if (re-search-forward "%\\?" nil t) (replace-match ""))
-      (set (make-local-variable 'org-finish-function) 'remember-buffer))))
+	  (replace-match
+	   (or (eval (intern (concat "v-" (match-string 1)))) "")
+	   t t))
+	(let ((org-startup-folded nil)
+	      (org-startup-with-deadline-check nil))
+	  (org-mode))
+	(if (and file (string-match "\\S-" file) (not (file-directory-p file)))
+	    (set (make-local-variable 'org-default-notes-file) file))
+	(goto-char (point-min))
+	(if (re-search-forward "%\\?" nil t) (replace-match "")))
+    (let ((org-startup-folded nil)
+	  (org-startup-with-deadline-check nil))
+      (org-mode)))
+  (set (make-local-variable 'org-finish-function) 'remember-buffer))
 
 ;;;###autoload
 (defun org-remember-handler ()
@@ -8580,6 +8681,9 @@ See also the variable `org-reverse-note-order'."
       (if (not visiting)
 	  (find-file-noselect file))
       (with-current-buffer (get-file-buffer file)
+	(save-excursion (and (goto-char (point-min))
+			     (not (re-search-forward "^\\* " nil t))
+			     (insert "\n* Notes\n")))
 	(setq reversed (org-notes-order-reversed-p))
 	(save-excursion
 	  (save-restriction
@@ -9007,7 +9111,9 @@ With argument TABLE-TYPE, go to the beginning of a table.el-type table."
 	      (if table-type org-table-any-border-regexp
 		org-table-border-regexp)
 	      nil t))
-	(error "Can't find beginning of table")
+; FIXME: OK to just use beginning-of-buffer?
+	; (error "Can't find beginning of table")
+	(progn (goto-char (point-min)) (point))
       (goto-char (match-beginning 0))
       (beginning-of-line 2)
       (point))))
@@ -9542,7 +9648,7 @@ also in table column 3.  The command will prompt for the sorting method
 		  (lambda (a b) (< (car a) (car b)))
 		(lambda (a b) (string< (car a) (car b)))))
     (setq lns (mapcar (lambda(x) (cons (org-trim (substring x bcol ecol)) x))
-		      (split-string (buffer-substring beg end) "\n")))
+		      (org-split-string (buffer-substring beg end) "\n")))
     (if numericp
 	(setq lns (mapcar (lambda(x)
 			      (cons (string-to-number (car x)) (cdr x)))
@@ -10980,7 +11086,7 @@ overwritten, and the table is not marked as requiring realignment."
 (defconst org-export-plist-vars
   '((:language             . org-export-default-language)
     (:headline-levels      . org-export-headline-levels)
-    (:with-section-numbers . org-export-with-section-numbers)
+    (:section-numbers      . org-export-with-section-numbers)
     (:table-of-contents    . org-export-with-toc)
     (:emphasize            . org-export-with-emphasize)
     (:sub-superscript      . org-export-with-sub-superscripts)
@@ -11902,7 +12008,8 @@ org-mode's default settings, but still inferior to file-local settings."
 	 (title       (or (plist-get opt-plist :title)
 			  (file-name-sans-extension
 			   (file-name-nondirectory buffer-file-name))))
-	 (quote-re    (concat "^\\*+[ \t]*" org-quote-string "\\>"))
+	 (quote-re0   (concat "^[ \t]*" org-quote-string "\\>"))
+	 (quote-re    (concat "^\\(\\*+\\)\\([ \t]*" org-quote-string "\\>\\)"))
 	 (inquote     nil)
 	 (infixed     nil)
 	 (in-local-list nil)
@@ -12060,7 +12167,7 @@ org-mode's default settings, but still inferior to file-local settings."
 	(catch 'nextline
 
 	  ;; end of quote section?
-	  (when (and inquote (string-match "^\\*+" line))
+ 	  (when (and inquote (string-match "^\\*+" line))
 	    (insert "</pre>\n")
 	    (setq inquote nil))
 	  ;; inside a quote section?
@@ -12104,6 +12211,8 @@ org-mode's default settings, but still inferior to file-local settings."
 				  "\" class=\"target\">" (match-string 1 line) "@</a> ")
 			  t t line)))))
 
+	  (setq line (org-html-handle-time-stamps line))
+
 	  ;; replace "&" by "&amp;", "<" and ">" by "&lt;" and "&gt;"
 	  ;; handle @<..> HTML tags (replace "@&gt;..&lt;" by "<..>")
 	  (setq line (org-html-expand line))
@@ -12191,6 +12300,8 @@ org-mode's default settings, but still inferior to file-local settings."
 	    ;; This is a headline
 	    (setq level (org-tr-level (- (match-end 1) (match-beginning 1)))
 		  txt (match-string 2 line))
+	    (if (string-match quote-re0 txt)
+		(setq txt (replace-match "" t t txt)))
 	    (if (<= level umax) (setq head-count (+ head-count 1)))
 	    (when in-local-list
 	      ;; Close any local lists before inserting a new header line
@@ -12265,6 +12376,7 @@ org-mode's default settings, but still inferior to file-local settings."
 	  ))
 
       ;; Properly close all local lists and other lists
+      (when inquote (insert "</pre>\n"))
       (when in-local-list
 	;; Close any local lists before inserting a new header line
 	(while local-list-num
@@ -12441,6 +12553,10 @@ But it has the disadvantage, that Org-mode's HTML conversions cannot be used."
     (set-buffer " org-tmp2 ")
     (buffer-substring (point-min) (point-max))))
 
+(defun org-html-handle-time-stamps (s)
+  "FIXME: Format time stamps, or remove them"
+  s)
+
 (defun org-html-protect (s)
   ;; convert & to &amp;, < to &lt; and > to &gt;
   (let ((start 0))
@@ -13072,7 +13188,8 @@ because, in this case the deletion might narrow the column."
 	    (goto-char pos)
 	    ;; noalign: if there were two spaces at the end, this field
 	    ;; does not determine the width of the column.
-	    (if noalign (setq org-table-may-need-update c))))
+	    (if noalign (setq org-table-may-need-update c)))
+	(delete-char N))
     (delete-char N)))
 
 ;; How to do this: Measure non-white length of current string
@@ -13103,7 +13220,8 @@ COMMANDS is a list of alternating OLDDEF NEWDEF command names."
 
 (defun org-shifttab ()
   "Global visibility cycling or move to previous table field.
-Calls `(org-cycle t)' or `org-table-previous-field', depending on context.
+Calls `org-cycle' with argument t, or `org-table-previous-field', depending
+on context.
 See the individual commands for more information."
   (interactive)
   (cond
@@ -13507,6 +13625,11 @@ See the individual commands for more information."
      "--"
      ["Option Template" org-insert-export-options-template t]
      ["Toggle Fixed Width" org-toggle-fixed-width-section t])
+    ("Publish"
+     ["Current File" org-publish-current-file t]
+     ["Current Project" org-publish-current-project t]
+     ["Project..." org-publish t]
+     ["All Projects" org-publish-all t])
     "--"
     ("Documentation"
      ["Show Version" org-version t]

BIN
org.pdf


+ 9 - 3
org.texi

@@ -4,7 +4,7 @@
 @c @setfilename ../info/org
 @settitle Org Mode Manual
 
-@set VERSION 4.27
+@set VERSION 4.28
 @set DATE April 2006
 
 @dircategory Emacs
@@ -2782,7 +2782,9 @@ Go to the original location of the item and delete other windows.
 @item f
 Toggle Follow mode.  In Follow mode, as you move the cursor through
 the agenda buffer, the other window always shows the corresponding
-location in the org file.
+location in the org file.  The initial setting for this mode in new
+agenda buffers can be set with the variable
+@code{org-agenda-start-with-follow-mode}.
 
 @kindex l
 @item l
@@ -3819,7 +3821,6 @@ at @url{http://www.astro.uva.nl/~dominik/Tools}. Org-mode checks for
 the function @code{constants-get}, which has to be autoloaded in your
 setup.  See the installation instructions in the file
 @file{constants.el}.
-@cindex @file{remember.el}
 @cindex @file{CUA.el}
 @item @file{CUA.el} by Kim. F. Storm
 Keybindings in Org-mode conflict with the @kbd{S-<cursor>} keys
@@ -3839,7 +3840,12 @@ S-RET   -> C-S-RET
 Yes, these are unfortunately more difficult to remember.  If you want
 to have other replacement keys, look at the variable
 @code{org-disputed-keys}.
+@item @file{windmove.el} by Hovav Shacham
+@cindex @file{windmove.el}
+Also this package uses the @kbd{S-<cursor>} keys, so everything written
+in the paragraph above about CUA mode also applies here.
 @item @file{remember.el} by John Wiegley
+@cindex @file{remember.el}
 Org mode cooperates with remember, see @ref{Remember}.
 @file{Remember.el} is not part of Emacs, find it on the web.
 @end table

BIN
orgcard.pdf


+ 1 - 1
orgcard.tex

@@ -1,5 +1,5 @@
 % Reference Card for Org Mode
-\def\orgversionnumber{4.27}
+\def\orgversionnumber{4.28}
 \def\year{2006}
 %
 %**start of header