diff --git a/org b/org index bbd41a185..437f7ed3a 100644 --- a/org +++ b/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.41). + This manual is for Org-mode (version 4.42). 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.41). +This manual is for Org-mode (version 4.42). Copyright (C) 2004, 2005, 2006 Free Software Foundation @@ -2910,6 +2910,9 @@ Change display argument is interpreted to create a selective list for a specific TODO keyword. +`s' + Save all Org-mode buffers in the current Emacs session. + `' Display the following `org-agenda-ndays' days. For example, if the display covers a week, switch to the following week. With @@ -4544,7 +4547,7 @@ Index * 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 208) +* agenda files, removing buffers: Agenda commands. (line 211) * agenda views: Agenda views. (line 6) * agenda, for single file: Timeline. (line 6) * allout.el: Conflicts. (line 6) @@ -4610,7 +4613,7 @@ Index * 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 176) +* diary entries, creating from agenda: Agenda commands. (line 179) * diary integration: Calendar/Diary integration. (line 6) * dictionary word completion: Completion. (line 6) @@ -4857,18 +4860,18 @@ File: org, Node: Key Index, Prev: Index, Up: Top * Menu: * ': CDLaTeX mode. (line 43) -* +: Agenda commands. (line 123) -* ,: Agenda commands. (line 115) -* -: Agenda commands. (line 129) -* .: Agenda commands. (line 91) -* :: Agenda commands. (line 109) +* +: Agenda commands. (line 126) +* ,: Agenda commands. (line 118) +* -: Agenda commands. (line 132) +* .: Agenda commands. (line 94) +* :: Agenda commands. (line 112) * <: Creating timestamps. (line 78) -* : Agenda commands. (line 88) +* : Agenda commands. (line 91) * <1>: Agenda commands. (line 41) * <2>: Creating timestamps. (line 103) * : Built-in table editor. (line 64) -* : Agenda commands. (line 83) +* : Agenda commands. (line 86) * : Agenda commands. (line 28) * <1>: CDLaTeX mode. (line 23) * <2>: Agenda commands. (line 35) @@ -4876,14 +4879,14 @@ File: org, Node: Key Index, Prev: Index, Up: Top (line 57) * <4>: Plain lists. (line 39) * : Visibility cycling. (line 10) -* > <1>: Agenda commands. (line 151) +* > <1>: Agenda commands. (line 154) * >: Creating timestamps. (line 79) * ^: CDLaTeX mode. (line 33) * _: CDLaTeX mode. (line 33) * `: CDLaTeX mode. (line 39) -* a: Agenda commands. (line 112) -* C: Agenda commands. (line 191) -* c: Agenda commands. (line 169) +* a: Agenda commands. (line 115) +* C: Agenda commands. (line 194) +* c: Agenda commands. (line 172) * C-#: Built-in table editor. (line 155) * C-,: Agenda files. (line 18) @@ -4948,7 +4951,7 @@ File: org, Node: Key Index, Prev: Index, Up: Top (line 54) * C-c C-c <7>: Checkboxes. (line 22) * C-c C-c: Plain lists. (line 76) -* C-c C-d <1>: Agenda commands. (line 136) +* C-c C-d <1>: Agenda commands. (line 139) * C-c C-d: Creating timestamps. (line 37) * C-c C-f: Motion. (line 12) * C-c C-j: Motion. (line 21) @@ -4962,7 +4965,7 @@ File: org, Node: Key Index, Prev: Index, Up: Top * C-c C-q: Built-in table editor. (line 119) * C-c C-r: Timeline. (line 13) -* C-c C-s <1>: Agenda commands. (line 133) +* C-c C-s <1>: Agenda commands. (line 136) * C-c C-s: Creating timestamps. (line 48) * C-c C-t <1>: Clocking work time. (line 20) * C-c C-t: TODO basics. (line 13) @@ -4974,7 +4977,7 @@ File: org, Node: Key Index, Prev: Index, Up: Top * C-c C-x c: iCalendar export. (line 20) * C-c C-x C-a: ARCHIVE tag. (line 27) * C-c C-x C-b: Checkboxes. (line 23) -* C-c C-x C-c: Agenda commands. (line 198) +* C-c C-x C-c: Agenda commands. (line 201) * C-c C-x C-d: Clocking work time. (line 28) * C-c C-x C-i <1>: iCalendar export. (line 15) * C-c C-x C-i: Clocking work time. (line 12) @@ -5020,12 +5023,12 @@ File: org, Node: Key Index, Prev: Index, Up: Top * d: Agenda commands. (line 65) * f: Agenda commands. (line 44) * g: Agenda commands. (line 72) -* H: Agenda commands. (line 195) -* i: Agenda commands. (line 176) -* I: Agenda commands. (line 156) +* H: Agenda commands. (line 198) +* i: Agenda commands. (line 179) +* I: Agenda commands. (line 159) * l: Agenda commands. (line 51) * L: Agenda commands. (line 32) -* M: Agenda commands. (line 182) +* M: Agenda commands. (line 185) * M-: Built-in table editor. (line 82) * M- <1>: Built-in table editor. @@ -5070,38 +5073,39 @@ File: org, Node: Key Index, Prev: Index, Up: Top * mouse-3 <1>: Agenda commands. (line 28) * mouse-3: Handling links. (line 77) * n: Agenda commands. (line 19) -* O: Agenda commands. (line 158) +* O: Agenda commands. (line 161) * o: Agenda commands. (line 59) -* P: Agenda commands. (line 120) +* P: Agenda commands. (line 123) * p: Agenda commands. (line 20) -* q: Agenda commands. (line 205) +* q: Agenda commands. (line 208) * r <1>: Agenda commands. (line 76) * r: Global TODO list. (line 20) -* S: Agenda commands. (line 186) -* S- <1>: Agenda commands. (line 129) +* S: Agenda commands. (line 189) +* s: Agenda commands. (line 83) +* S- <1>: Agenda commands. (line 132) * S- <2>: Creating timestamps. (line 58) * S- <3>: Priorities. (line 25) * S-: Plain lists. (line 57) -* S- <1>: Agenda commands. (line 147) +* S- <1>: Agenda commands. (line 150) * S- <2>: Creating timestamps. (line 53) * S-: TODO basics. (line 20) * S-: Built-in table editor. (line 170) -* S- <1>: Agenda commands. (line 139) +* S- <1>: Agenda commands. (line 142) * S- <2>: Creating timestamps. (line 53) * S-: TODO basics. (line 20) * S- <1>: Built-in table editor. (line 61) * S-: Visibility cycling. (line 22) -* S- <1>: Agenda commands. (line 123) +* S- <1>: Agenda commands. (line 126) * S- <2>: Creating timestamps. (line 58) * S- <3>: Priorities. (line 25) * S-: Plain lists. (line 57) -* T: Agenda commands. (line 104) -* t: Agenda commands. (line 100) +* T: Agenda commands. (line 107) +* t: Agenda commands. (line 103) * w: Agenda commands. (line 62) -* x: Agenda commands. (line 208) -* X: Agenda commands. (line 161) +* x: Agenda commands. (line 211) +* X: Agenda commands. (line 164)  @@ -5191,53 +5195,53 @@ Node: Global TODO list112795 Node: Matching headline tags114156 Node: Timeline115099 Node: Agenda commands115972 -Node: Embedded LaTeX121750 -Ref: Embedded LaTeX-Footnote-1122842 -Node: Math symbols123032 -Node: Subscripts and Superscripts123797 -Node: LaTeX fragments124641 -Node: Processing LaTeX fragments126710 -Node: CDLaTeX mode127656 -Ref: CDLaTeX mode-Footnote-1130140 -Node: Exporting130288 -Node: ASCII export131425 -Node: HTML export132715 -Node: XOXO export135551 -Node: iCalendar export135992 -Node: Text interpretation137817 -Node: Comment lines138296 -Node: Enhancing text138767 -Node: Export options140459 -Node: Publishing142126 -Ref: Publishing-Footnote-1142922 -Node: Configuration143118 -Node: Project alist143836 -Node: Sources and destinations144902 -Node: Selecting files145449 -Node: Publishing action146197 -Node: Publishing options147312 -Node: Publishing links149464 -Node: Project page index150977 -Node: Sample configuration151755 -Node: Simple example152247 -Node: Complex example152920 -Node: Triggering publication154996 -Node: Miscellaneous155652 -Node: Completion156286 -Node: Customization157282 -Node: In-buffer settings157867 -Node: The very busy C-c C-c key161098 -Node: Clean view162735 -Node: TTY keys165312 -Node: Interaction166921 -Node: Cooperation167318 -Node: Conflicts169220 -Node: Bugs170812 -Node: Extensions and Hacking172435 -Node: Extensions172921 -Node: Dynamic blocks174491 -Node: History and Acknowledgments176409 -Node: Index181190 -Node: Key Index204030 +Node: Embedded LaTeX121816 +Ref: Embedded LaTeX-Footnote-1122908 +Node: Math symbols123098 +Node: Subscripts and Superscripts123863 +Node: LaTeX fragments124707 +Node: Processing LaTeX fragments126776 +Node: CDLaTeX mode127722 +Ref: CDLaTeX mode-Footnote-1130206 +Node: Exporting130354 +Node: ASCII export131491 +Node: HTML export132781 +Node: XOXO export135617 +Node: iCalendar export136058 +Node: Text interpretation137883 +Node: Comment lines138362 +Node: Enhancing text138833 +Node: Export options140525 +Node: Publishing142192 +Ref: Publishing-Footnote-1142988 +Node: Configuration143184 +Node: Project alist143902 +Node: Sources and destinations144968 +Node: Selecting files145515 +Node: Publishing action146263 +Node: Publishing options147378 +Node: Publishing links149530 +Node: Project page index151043 +Node: Sample configuration151821 +Node: Simple example152313 +Node: Complex example152986 +Node: Triggering publication155062 +Node: Miscellaneous155718 +Node: Completion156352 +Node: Customization157348 +Node: In-buffer settings157933 +Node: The very busy C-c C-c key161164 +Node: Clean view162801 +Node: TTY keys165378 +Node: Interaction166987 +Node: Cooperation167384 +Node: Conflicts169286 +Node: Bugs170878 +Node: Extensions and Hacking172501 +Node: Extensions172987 +Node: Dynamic blocks174557 +Node: History and Acknowledgments176475 +Node: Index181256 +Node: Key Index204096  End Tag Table diff --git a/org.el b/org.el index 58c02d9a8..1d87ea923 100644 --- a/org.el +++ b/org.el @@ -5,7 +5,7 @@ ;; Author: Carsten Dominik ;; Keywords: outlines, hypermedia, calendar, wp ;; Homepage: http://www.astro.uva.nl/~dominik/Tools/org/ -;; Version: 4.41 +;; Version: 4.42 ;; ;; This file is part of GNU Emacs. ;; @@ -90,6 +90,10 @@ ;; ;; Recent changes ;; -------------- +;; Version 4.42 +;; - Bug fixes +;; - `s' key in the agenda saves all org-mode buffers. +;; ;; Version 4.41 ;; - Shift-curser keys can modify inactive time stamps (inactive time ;; stamps are the ones in [...] brackets. @@ -205,7 +209,7 @@ ;;; Customization variables -(defvar org-version "4.41" +(defvar org-version "4.42" "The version number of the file org.el.") (defun org-version () (interactive) @@ -2687,9 +2691,13 @@ Also put tags into group 4 if tags are present.") (remove-text-properties 0 (length s) org-rm-props s) s) +(defsubst org-mode-p () + "Check if the current buffer is in Org-mode." + (eq major-mode 'org-mode)) + (defun org-set-regexps-and-options () "Precompute regular expressions for current buffer." - (when (eq major-mode 'org-mode) + (when (org-mode-p) (let ((re (org-make-options-regexp '("CATEGORY" "SEQ_TODO" "PRI_TODO" "TYP_TODO" "STARTUP" "ARCHIVE" "TAGS"))) @@ -2960,9 +2968,7 @@ The following commands are available: ;; Paragraphs and auto-filling (org-set-autofill-regexps) (org-update-radio-target-regexp) - ;; Settings for Calc embedded mode - (set (make-local-variable 'calc-embedded-open-formula) "|\\|\n") - (set (make-local-variable 'calc-embedded-close-formula) "|\\|\n") + (if (and org-insert-mode-line-in-empty-file (interactive-p) (= (point-min) (point-max))) @@ -3592,7 +3598,7 @@ This function is the default value of the hook `org-cycle-hook'." "Move cursor to the first headline and recenter the headline. Optional argument N means, put the headline into the Nth line of the window." (goto-char (point-min)) - (when (re-search-forward (concat "^" outline-regexp) nil t) + (when (re-search-forward (concat "^\\(" outline-regexp "\\)") nil t) (beginning-of-line) (recenter (prefix-numeric-value N)))) @@ -4520,7 +4526,7 @@ this heading. " (let (this-command) (org-copy-subtree)) (set-buffer buffer) ;; Enforce org-mode for the archive buffer - (if (not (eq major-mode 'org-mode)) + (if (not (org-mode-p)) ;; Force the mode for future visits. (let ((org-insert-mode-line-in-empty-file t)) (call-interactively 'org-mode))) @@ -4855,7 +4861,7 @@ Error if there is no scuh block at point." (defun org-update-all-dblocks () "Update all dynamic blocks in the buffer. This function can be used in a hook." - (when (eq major-mode 'org-mode) + (when (org-mode-p) (org-map-dblocks 'org-update-dblock))) @@ -6232,6 +6238,7 @@ The following commands are available: (define-key org-agenda-mode-map "r" 'org-agenda-redo) (define-key org-agenda-mode-map "q" 'org-agenda-quit) (define-key org-agenda-mode-map "x" 'org-agenda-exit) +(define-key org-agenda-mode-map "s" 'org-save-all-org-buffers) (define-key org-agenda-mode-map "P" 'org-agenda-show-priority) (define-key org-agenda-mode-map "T" 'org-agenda-show-tags) (define-key org-agenda-mode-map "n" 'next-line) @@ -6248,7 +6255,6 @@ The following commands are available: (define-key org-agenda-mode-map "C" 'org-agenda-convert-date) (define-key org-agenda-mode-map "m" 'org-agenda-phases-of-moon) (define-key org-agenda-mode-map "M" 'org-agenda-phases-of-moon) -(define-key org-agenda-mode-map "s" 'org-agenda-sunrise-sunset) (define-key org-agenda-mode-map "S" 'org-agenda-sunrise-sunset) (define-key org-agenda-mode-map "h" 'org-agenda-holidays) (define-key org-agenda-mode-map "H" 'org-agenda-holidays) @@ -6302,6 +6308,7 @@ The following commands are available: "--" ;; ["New agenda command" org-agenda t] ["Rebuild buffer" org-agenda-redo t] + ["Save all Org-mode Buffers" org-save-all-org-buffers t] "--" ["Goto Today" org-agenda-goto-today (org-agenda-check-type nil 'agenda 'timeline)] ["Next Dates" org-agenda-later (org-agenda-check-type nil 'agenda)] @@ -6355,7 +6362,7 @@ first press `1' to indicate that the agenda should be temporarily (until the next use of \\[org-agenda]) restricted to the current file." (interactive "P") (catch 'exit - (let ((restrict-ok (and buffer-file-name (eq major-mode 'org-mode))) + (let ((restrict-ok (and buffer-file-name (org-mode-p))) (bfn buffer-file-name) (custom org-agenda-custom-commands) c entry key type string) @@ -6430,7 +6437,7 @@ C Configure your own agenda commands") (defun org-check-for-org-mode () "Make sure current buffer is in org-mode. Error if not." - (or (eq major-mode 'org-mode) + (or (org-mode-p) (error "Cannot execute org-mode agenda command on buffer in %s." major-mode))) @@ -6873,6 +6880,14 @@ Org-mode buffers visited directly by the user will not be touched." (setq org-agenda-new-buffers nil) (org-agenda-quit)) +;; FIXME: move this function. +(defun org-save-all-org-buffers () + "Save all Org-mode buffers without user confirmation." + (interactive) + (message "Saving all Org-mode buffers...") + (save-some-buffers t 'org-mode-p) + (message "Saving all Org-mode buffers... done")) + (defun org-agenda-redo () "Rebuild Agenda. When this is the global TODO list, a prefix argument will be interpreted." @@ -7334,7 +7349,7 @@ the documentation of `org-diary'." ;; If file does not exist, make sure an error message ends up in diary (list (format "ORG-AGENDA-ERROR: No such org-file %s" file)) (with-current-buffer buffer - (unless (eq major-mode 'org-mode) + (unless (org-mode-p) (error "Agenda file %s is not in `org-mode'" file)) (setq org-category-table (org-get-category-table)) (let ((case-fold-search nil)) @@ -8006,7 +8021,7 @@ and by additional input from the age of a schedules or deadline entry." (switch-to-buffer-other-window buffer) (widen) (goto-char pos) - (when (eq major-mode 'org-mode) + (when (org-mode-p) (org-show-hidden-entry) (save-excursion (and (outline-next-heading) @@ -8024,7 +8039,7 @@ and by additional input from the age of a schedules or deadline entry." (delete-other-windows) (widen) (goto-char pos) - (when (eq major-mode 'org-mode) + (when (org-mode-p) (org-show-hidden-entry) (save-excursion (and (outline-next-heading) @@ -8617,7 +8632,7 @@ The prefix arg TODO-ONLY limits the search to TODO entries." (format "ORG-AGENDA-ERROR: No such org-file %s" file)) rtnall (append rtnall rtn)) (with-current-buffer buffer - (unless (eq major-mode 'org-mode) + (unless (org-mode-p) (error "Agenda file %s is not in `org-mode'" file)) (setq org-category-table (org-get-category-table)) (save-excursion @@ -8681,7 +8696,7 @@ With prefix ARG, realign all tags in headings in the current buffer." nil nil current 'org-tags-history)))) (while (string-match "[-+&]+" tags) (setq tags (replace-match ":" t t tags)))) - + (unless (setq empty (string-match "\\`[\t ]*\\'" tags)) (unless (string-match ":$" tags) (setq tags (concat tags ":"))) (unless (string-match "^:" tags) (setq tags (concat ":" tags)))) @@ -8698,6 +8713,8 @@ With prefix ARG, realign all tags in headings in the current buffer." (if (equal tags "") (save-excursion (beginning-of-line 1) + (skip-chars-forward "*") + (if (= (char-after) ?\ ) (forward-char 1)) (and (re-search-forward "[ \t]+$" (point-at-eol) t) (replace-match ""))) (move-to-column (max (current-column) @@ -9144,7 +9161,7 @@ in all files." ((string-match "^/\\(.*\\)/$" s) ;; A regular expression (cond - ((eq major-mode 'org-mode) + ((org-mode-p) (org-occur (match-string 1 s))) ;;((eq major-mode 'dired-mode) ;; (grep (concat "grep -n -e '" (match-string 1 s) "' *"))) @@ -9200,7 +9217,7 @@ in all files." (if (search-forward s nil t) (goto-char (match-beginning 0)) (error "No match")))) - (and (eq major-mode 'org-mode) (org-show-hierarchy-above)))) + (and (org-mode-p) (org-show-hierarchy-above)))) (defun org-search-not-link (&rest args) "Execute `re-search-forward', but only accept matches that are not a link." @@ -9654,7 +9671,7 @@ If the file does not exist, an error is thrown." ((consp cmd) (eval cmd)) (t (funcall (cdr (assq 'file org-link-frame-setup)) file))) - (and (eq major-mode 'org-mode) (eq old-mode 'org-mode) + (and (org-mode-p) (eq old-mode 'org-mode) (or (not (equal old-buffer (current-buffer))) (not (equal old-pos (point)))) (org-mark-ring-push old-pos old-buffer)))) @@ -9833,7 +9850,7 @@ For file links, arg negates `org-context-in-file-links'." (abbreviate-file-name buffer-file-name)) link (org-make-link cpltxt))) - ((eq major-mode 'org-mode) + ((org-mode-p) ;; Just link to current headline (setq cpltxt (concat "file:" (abbreviate-file-name buffer-file-name))) @@ -10678,7 +10695,7 @@ This is being used to correctly align a single field after TAB or RET.") (move-marker org-table-aligned-begin-marker (point)) (insert new) (move-marker org-table-aligned-end-marker (point)) - (when (and orgtbl-mode (not (eq major-mode 'org-mode))) + (when (and orgtbl-mode (not (org-mode-p))) (goto-char org-table-aligned-begin-marker) (while (org-hide-wide-columns org-table-aligned-end-marker))) ;; Try to move to the old location (approximately) @@ -12444,7 +12461,7 @@ table editor in arbitrary modes.") (defun orgtbl-mode (&optional arg) "The `org-mode' table editor as a minor mode for use in other modes." (interactive) - (if (eq major-mode 'org-mode) + (if (org-mode-p) ;; Exit without error, in case some hook functions calls this ;; by accident in org-mode. (message "Orgtbl-mode is not useful in org-mode, command ignored") @@ -14875,7 +14892,7 @@ en embedded LaTeX fragement, let texmathp do its job. (interactive) (let (p) (cond - ((not (eq major-mode 'org-mode)) ad-do-it) + ((not (org-mode-p)) ad-do-it) ((eq this-command 'cdlatex-math-symbol) (setq ad-return-value t texmathp-why '("cdlatex-math-symbol in org-mode" . 0))) @@ -15834,8 +15851,8 @@ With optional NODE, go directly to that node." (save-excursion (while bl (set-buffer (pop bl)) - (if (eq major-mode 'org-mode) (setq bl nil))) - (when (eq major-mode 'org-mode) + (if (org-mode-p) (setq bl nil))) + (when (org-mode-p) (easy-menu-change '("Org") "File List for Agenda" (append @@ -16336,7 +16353,7 @@ Show the heading too, if it is currently invisible." (defun org-bookmark-jump-unhide () "Unhide the current position, to show the bookmark location." - (and (eq major-mode 'org-mode) + (and (org-mode-p) (or (org-invisible-p) (save-excursion (goto-char (max (point-min) (1- (point)))) (org-invisible-p))) @@ -16344,6 +16361,7 @@ Show the heading too, if it is currently invisible." ;;; Experimental code + ;;; Finish up (provide 'org) diff --git a/org.pdf b/org.pdf index a49449765..5bcbfdb10 100644 Binary files a/org.pdf and b/org.pdf differ diff --git a/org.texi b/org.texi index 8cbedce87..aa66e3579 100644 --- a/org.texi +++ b/org.texi @@ -3,8 +3,8 @@ @setfilename ../info/org @settitle Org Mode Manual -@set VERSION 4.41 -@set DATE June 2006 +@set VERSION 4.42 +@set DATE July 2006 @dircategory Emacs @direntry @@ -3202,6 +3202,10 @@ S-@key{right}. When the buffer is the global todo list, a prefix argument is interpreted to create a selective list for a specific TODO keyword. +@kindex s +@item s +Save all Org-mode buffers in the current Emacs session. + @kindex @key{right} @item @key{right} Display the following @code{org-agenda-ndays} days. For example, if diff --git a/orgcard.pdf b/orgcard.pdf index a26ed817c..68d741687 100644 Binary files a/orgcard.pdf and b/orgcard.pdf differ diff --git a/orgcard.tex b/orgcard.tex index d9cfbad33..40a607661 100644 --- a/orgcard.tex +++ b/orgcard.tex @@ -1,5 +1,5 @@ % Reference Card for Org Mode -\def\orgversionnumber{4.41} +\def\orgversionnumber{4.42} \def\year{2006} % %**start of header @@ -598,6 +598,7 @@ To set categories, add lines like$^2$: \key{toggle time grid for daily schedule}{g} \key{toggle display of logbook entries}{l} \key{refresh agenda buffer with any changes}{r} +\key{save all org-mode buffers}{s} \key{display the following \kbd{org-agenda-ndays}}{RIGHT} \key{display the previous \kbd{org-agenda-ndays}}{LEFT} \key{goto today}{.}