Hierarchical Checkboxes and new org-mac-message.el.

This commit is contained in:
Carsten Dominik 2008-02-05 15:38:57 +01:00
parent c9ba9ee9a5
commit 71b08c4c5e
6 changed files with 169 additions and 186 deletions

View File

@ -1,3 +1,9 @@
2008-02-05 Carsten Dominik <dominik@science.uva.nl>
* org.el (org-update-checkbox-count): Revamped to deal with
hierarchical beckboxes. This was a patch from Miguel
A. Figueroa-Villanueva.
2008-02-04 Carsten Dominik <dominik@science.uva.nl> 2008-02-04 Carsten Dominik <dominik@science.uva.nl>
* org-mac-message.el: New file. * org-mac-message.el: New file.

View File

@ -61,7 +61,8 @@ CP = cp -p
##---------------------------------------------------------------------- ##----------------------------------------------------------------------
# The following variables need to be defined by the maintainer # The following variables need to be defined by the maintainer
LISPFILES0 = org.el org-publish.el org-mouse.el org-export-latex.el LISPFILES0 = org.el org-publish.el org-mouse.el org-export-latex.el \
org-mac-message.el
LISPFILES = $(LISPFILES0) org-install.el LISPFILES = $(LISPFILES0) org-install.el
ELCFILES = $(LISPFILES:.el=.elc) ELCFILES = $(LISPFILES:.el=.elc)
DOCFILES = org.texi org.pdf org DOCFILES = org.texi org.pdf org

View File

@ -11,9 +11,16 @@
** Incompatible Changes ** Incompatible Changes
- The variable `org-remember-use-refile-when-interactive'
introduced only in 5.19 is already obsolete. Please use
`org-remember-interactive-interface' instead. This new
variable does select the interface that is used to select
the target for a remember note in an interactive way.
Possible values are:
** Details ** Details
*** Remember and Refile *** Remember/Refile/Goto
- The use of prefix arguments for the commands `org-remember' - The use of prefix arguments for the commands `org-remember'
and `org-refile' has been normalized: and `org-refile' has been normalized:
@ -43,7 +50,7 @@
interface. Comments? interface. Comments?
- The variable `org-remember-use-refile-when-interactive' - The variable `org-remember-use-refile-when-interactive'
introduced only in 5.19 is obsolete. Please use introduced only in 5.19 is already obsolete. Please use
`org-remember-interactive-interface' instead. This new `org-remember-interactive-interface' instead. This new
variable does select the interface that is used to select variable does select the interface that is used to select
the target for a remember note in an interactive way. the target for a remember note in an interactive way.
@ -66,6 +73,12 @@
*** Misc *** Misc
- Checkboxes now work hierarchically. When a plain-list item
with a checkbox has children with checkboxes, the status of
the item's checkbox is calculated from the children, each
time a checkbox is toggled with C-c C-c. Thanks to Miguel
A. Figueroa-Villanueva for a patch to this effect.
- There is a new variabls `org-special-ctrl-k'. When set, - There is a new variabls `org-special-ctrl-k'. When set,
`C-k' will behave specially in headlines: `C-k' will behave specially in headlines:
@ -128,6 +141,10 @@
that gets stored upon archiving with the variable that gets stored upon archiving with the variable
`org-archive-save-context-info'. `org-archive-save-context-info'.
- New file `org-mac-message.el' by John Wiegley to create
links for messages in Apple Mail, and to follow these
links.
* Version 5.19 * Version 5.19
** Overview ** Overview

View File

@ -8,10 +8,10 @@
;;;;;; org-remember-insinuate org-open-at-point-global org-insert-link-global ;;;;;; org-remember-insinuate org-open-at-point-global org-insert-link-global
;;;;;; org-store-link orgtbl-mode turn-on-orgtbl org-run-like-in-org-mode ;;;;;; org-store-link orgtbl-mode turn-on-orgtbl org-run-like-in-org-mode
;;;;;; turn-on-orgstruct++ turn-on-orgstruct orgstruct-mode org-global-cycle ;;;;;; turn-on-orgstruct++ turn-on-orgstruct orgstruct-mode org-global-cycle
;;;;;; org-cycle org-mode) "org" "org.el" (18320 41932)) ;;;;;; org-cycle org-mode) "org" "org.el" (18344 16141))
;;; Generated autoloads from org.el ;;; Generated autoloads from org.el
(autoload (quote org-mode) "org" "\ (autoload 'org-mode "org" "\
Outline-based notes management and organizer, alias Outline-based notes management and organizer, alias
\"Carsten's outline-mode for keeping track of everything.\" \"Carsten's outline-mode for keeping track of everything.\"
@ -32,7 +32,7 @@ The following commands are available:
\(fn)" t nil) \(fn)" t nil)
(autoload (quote org-cycle) "org" "\ (autoload 'org-cycle "org" "\
Visibility cycling for Org-mode. Visibility cycling for Org-mode.
- When this function is called with a prefix argument, rotate the entire - When this function is called with a prefix argument, rotate the entire
@ -63,12 +63,12 @@ Visibility cycling for Org-mode.
\(fn &optional ARG)" t nil) \(fn &optional ARG)" t nil)
(autoload (quote org-global-cycle) "org" "\ (autoload 'org-global-cycle "org" "\
Cycle the global visibility. For details see `org-cycle'. Cycle the global visibility. For details see `org-cycle'.
\(fn &optional ARG)" t nil) \(fn &optional ARG)" t nil)
(autoload (quote orgstruct-mode) "org" "\ (autoload 'orgstruct-mode "org" "\
Toggle the minor more `orgstruct-mode'. Toggle the minor more `orgstruct-mode'.
This mode is for using Org-mode structure commands in other modes. This mode is for using Org-mode structure commands in other modes.
The following key behave as if Org-mode was active, if the cursor The following key behave as if Org-mode was active, if the cursor
@ -93,35 +93,35 @@ C-c C-c Set tags / toggle checkbox
\(fn &optional ARG)" t nil) \(fn &optional ARG)" t nil)
(autoload (quote turn-on-orgstruct) "org" "\ (autoload 'turn-on-orgstruct "org" "\
Unconditionally turn on `orgstruct-mode'. Unconditionally turn on `orgstruct-mode'.
\(fn)" nil nil) \(fn)" nil nil)
(autoload (quote turn-on-orgstruct++) "org" "\ (autoload 'turn-on-orgstruct++ "org" "\
Unconditionally turn on `orgstruct-mode', and force org-mode indentations. Unconditionally turn on `orgstruct-mode', and force org-mode indentations.
In addition to setting orgstruct-mode, this also exports all indentation and In addition to setting orgstruct-mode, this also exports all indentation and
autofilling variables from org-mode into the buffer. Note that turning autofilling variables from org-mode into the buffer. Note that turning
off orgstruct-mode will *not* remove these additonal settings. off orgstruct-mode will *not* remove these additional settings.
\(fn)" nil nil) \(fn)" nil nil)
(autoload (quote org-run-like-in-org-mode) "org" "\ (autoload 'org-run-like-in-org-mode "org" "\
Not documented Not documented
\(fn CMD)" nil nil) \(fn CMD)" nil nil)
(autoload (quote turn-on-orgtbl) "org" "\ (autoload 'turn-on-orgtbl "org" "\
Unconditionally turn on `orgtbl-mode'. Unconditionally turn on `orgtbl-mode'.
\(fn)" nil nil) \(fn)" nil nil)
(autoload (quote orgtbl-mode) "org" "\ (autoload 'orgtbl-mode "org" "\
The `org-mode' table editor as a minor mode for use in other modes. The `org-mode' table editor as a minor mode for use in other modes.
\(fn &optional ARG)" t nil) \(fn &optional ARG)" t nil)
(autoload (quote org-store-link) "org" "\ (autoload 'org-store-link "org" "\
\\<org-mode-map>Store an org-link to the current location. \\<org-mode-map>Store an org-link to the current location.
This link can later be inserted into an org-buffer with This link can later be inserted into an org-buffer with
\\[org-insert-link]. \\[org-insert-link].
@ -131,25 +131,25 @@ For file links, arg negates `org-context-in-file-links'.
\(fn ARG)" t nil) \(fn ARG)" t nil)
(autoload (quote org-insert-link-global) "org" "\ (autoload 'org-insert-link-global "org" "\
Insert a link like Org-mode does. Insert a link like Org-mode does.
This command can be called in any mode to insert a link in Org-mode syntax. This command can be called in any mode to insert a link in Org-mode syntax.
\(fn)" t nil) \(fn)" t nil)
(autoload (quote org-open-at-point-global) "org" "\ (autoload 'org-open-at-point-global "org" "\
Follow a link like Org-mode does. Follow a link like Org-mode does.
This command can be called in any mode to follow a link that has This command can be called in any mode to follow a link that has
Org-mode syntax. Org-mode syntax.
\(fn)" t nil) \(fn)" t nil)
(autoload (quote org-remember-insinuate) "org" "\ (autoload 'org-remember-insinuate "org" "\
Setup remember.el for use wiht Org-mode. Setup remember.el for use wiht Org-mode.
\(fn)" nil nil) \(fn)" nil nil)
(autoload (quote org-remember-annotation) "org" "\ (autoload 'org-remember-annotation "org" "\
Return a link to the current location as an annotation for remember.el. Return a link to the current location as an annotation for remember.el.
If you are using Org-mode files as target for data storage with If you are using Org-mode files as target for data storage with
remember.el, then the annotations should include a link compatible with the remember.el, then the annotations should include a link compatible with the
@ -157,14 +157,14 @@ conventions in Org-mode. This function returns such a link.
\(fn)" nil nil) \(fn)" nil nil)
(autoload (quote org-remember-apply-template) "org" "\ (autoload 'org-remember-apply-template "org" "\
Initialize *remember* buffer with template, invoke `org-mode'. Initialize *remember* buffer with template, invoke `org-mode'.
This function should be placed into `remember-mode-hook' and in fact requires This function should be placed into `remember-mode-hook' and in fact requires
to be run from that hook to function properly. to be run from that hook to function properly.
\(fn &optional USE-CHAR SKIP-INTERACTIVE)" nil nil) \(fn &optional USE-CHAR SKIP-INTERACTIVE)" nil nil)
(autoload (quote org-remember) "org" "\ (autoload 'org-remember "org" "\
Call `remember'. If this is already a remember buffer, re-apply template. Call `remember'. If this is already a remember buffer, re-apply template.
If there is an active region, make sure remember uses it as initial content If there is an active region, make sure remember uses it as initial content
of the remember buffer. of the remember buffer.
@ -179,7 +179,7 @@ associated with a template in `org-remember-templates'.
\(fn &optional GOTO ORG-FORCE-REMEMBER-TEMPLATE-CHAR)" t nil) \(fn &optional GOTO ORG-FORCE-REMEMBER-TEMPLATE-CHAR)" t nil)
(autoload (quote org-remember-handler) "org" "\ (autoload 'org-remember-handler "org" "\
Store stuff from remember.el into an org file. Store stuff from remember.el into an org file.
First prompts for an org file. If the user just presses return, the value First prompts for an org file. If the user just presses return, the value
of `org-default-notes-file' is used. of `org-default-notes-file' is used.
@ -217,7 +217,7 @@ See also the variable `org-reverse-note-order'.
\(fn)" nil nil) \(fn)" nil nil)
(autoload (quote org-agenda-to-appt) "org" "\ (autoload 'org-agenda-to-appt "org" "\
Activate appointments found in `org-agenda-files'. Activate appointments found in `org-agenda-files'.
When prefixed, prompt for a regular expression and use it as a When prefixed, prompt for a regular expression and use it as a
filter: only add entries if they match this regular expression. filter: only add entries if they match this regular expression.
@ -236,7 +236,7 @@ belonging to the category \"Work\".
\(fn &optional FILTER)" t nil) \(fn &optional FILTER)" t nil)
(autoload (quote org-agenda) "org" "\ (autoload 'org-agenda "org" "\
Dispatch agenda commands to collect entries to the agenda buffer. Dispatch agenda commands to collect entries to the agenda buffer.
Prompts for a command to execute. Any prefix arg will be passed Prompts for a command to execute. Any prefix arg will be passed
on to the selected command. The default selections are: on to the selected command. The default selections are:
@ -263,21 +263,21 @@ Pressing `<' twice means to restrict to the current subtree or region
\(fn ARG &optional KEYS RESTRICTION)" t nil) \(fn ARG &optional KEYS RESTRICTION)" t nil)
(autoload (quote org-batch-agenda) "org" "\ (autoload 'org-batch-agenda "org" "\
Run an agenda command in batch mode and send the result to STDOUT. Run an agenda command in batch mode and send the result to STDOUT.
If CMD-KEY is a string of length 1, it is used as a key in If CMD-KEY is a string of length 1, it is used as a key in
`org-agenda-custom-commands' and triggers this command. If it is a `org-agenda-custom-commands' and triggers this command. If it is a
longer string is is used as a tags/todo match string. longer string it is used as a tags/todo match string.
Paramters are alternating variable names and values that will be bound Paramters are alternating variable names and values that will be bound
before running the agenda command. before running the agenda command.
\(fn CMD-KEY &rest PARAMETERS)" nil (quote macro)) \(fn CMD-KEY &rest PARAMETERS)" nil (quote macro))
(autoload (quote org-batch-agenda-csv) "org" "\ (autoload 'org-batch-agenda-csv "org" "\
Run an agenda command in batch mode and send the result to STDOUT. Run an agenda command in batch mode and send the result to STDOUT.
If CMD-KEY is a string of length 1, it is used as a key in If CMD-KEY is a string of length 1, it is used as a key in
`org-agenda-custom-commands' and triggers this command. If it is a `org-agenda-custom-commands' and triggers this command. If it is a
longer string is is used as a tags/todo match string. longer string it is used as a tags/todo match string.
Paramters are alternating variable names and values that will be bound Paramters are alternating variable names and values that will be bound
before running the agenda command. before running the agenda command.
@ -310,24 +310,24 @@ agenda-day The day in the agenda where this is listed
\(fn CMD-KEY &rest PARAMETERS)" nil (quote macro)) \(fn CMD-KEY &rest PARAMETERS)" nil (quote macro))
(autoload (quote org-store-agenda-views) "org" "\ (autoload 'org-store-agenda-views "org" "\
Not documented Not documented
\(fn &rest PARAMETERS)" t nil) \(fn &rest PARAMETERS)" t nil)
(autoload (quote org-batch-store-agenda-views) "org" "\ (autoload 'org-batch-store-agenda-views "org" "\
Run all custom agenda commands that have a file argument. Run all custom agenda commands that have a file argument.
\(fn &rest PARAMETERS)" nil (quote macro)) \(fn &rest PARAMETERS)" nil (quote macro))
(autoload (quote org-cycle-agenda-files) "org" "\ (autoload 'org-cycle-agenda-files "org" "\
Cycle through the files in `org-agenda-files'. Cycle through the files in `org-agenda-files'.
If the current buffer visits an agenda file, find the next one in the list. If the current buffer visits an agenda file, find the next one in the list.
If the current buffer does not, find the first agenda file. If the current buffer does not, find the first agenda file.
\(fn)" t nil) \(fn)" t nil)
(autoload (quote org-agenda-list) "org" "\ (autoload 'org-agenda-list "org" "\
Produce a daily/weekly view from all files in variable `org-agenda-files'. Produce a daily/weekly view from all files in variable `org-agenda-files'.
The view will be for the current day or week, but from the overview buffer The view will be for the current day or week, but from the overview buffer
you will be able to go to other days/weeks. you will be able to go to other days/weeks.
@ -346,7 +346,7 @@ given in `org-agenda-start-on-weekday'.
\(fn &optional INCLUDE-ALL START-DAY NDAYS)" t nil) \(fn &optional INCLUDE-ALL START-DAY NDAYS)" t nil)
(autoload (quote org-todo-list) "org" "\ (autoload 'org-todo-list "org" "\
Show all TODO entries from all agenda file in a single list. Show all TODO entries from all agenda file in a single list.
The prefix arg can be used to select a specific TODO keyword and limit The prefix arg can be used to select a specific TODO keyword and limit
the list to these. When using \\[universal-argument], you will be prompted the list to these. When using \\[universal-argument], you will be prompted
@ -355,13 +355,13 @@ for a keyword. A numeric prefix directly selects the Nth keyword in
\(fn ARG)" t nil) \(fn ARG)" t nil)
(autoload (quote org-tags-view) "org" "\ (autoload 'org-tags-view "org" "\
Show all headlines for all `org-agenda-files' matching a TAGS criterion. Show all headlines for all `org-agenda-files' matching a TAGS criterion.
The prefix arg TODO-ONLY limits the search to TODO entries. The prefix arg TODO-ONLY limits the search to TODO entries.
\(fn &optional TODO-ONLY MATCH)" t nil) \(fn &optional TODO-ONLY MATCH)" t nil)
(autoload (quote org-agenda-list-stuck-projects) "org" "\ (autoload 'org-agenda-list-stuck-projects "org" "\
Create agenda view for projects that are stuck. Create agenda view for projects that are stuck.
Stuck projects are project that have no next actions. For the definitions Stuck projects are project that have no next actions. For the definitions
of what a project is and how to check if it stuck, customize the variable of what a project is and how to check if it stuck, customize the variable
@ -370,7 +370,7 @@ MATCH is being ignored.
\(fn &rest IGNORE)" t nil) \(fn &rest IGNORE)" t nil)
(autoload (quote org-diary) "org" "\ (autoload 'org-diary "org" "\
Return diary information from org-files. Return diary information from org-files.
This function can be used in a \"sexp\" diary entry in the Emacs calendar. This function can be used in a \"sexp\" diary entry in the Emacs calendar.
It accesses org files and extracts information from those files to be It accesses org files and extracts information from those files to be
@ -418,21 +418,21 @@ function from a program - use `org-agenda-get-day-entries' instead.
\(fn &rest ARGS)" nil nil) \(fn &rest ARGS)" nil nil)
(autoload (quote org-export-icalendar-this-file) "org" "\ (autoload 'org-export-icalendar-this-file "org" "\
Export current file as an iCalendar file. Export current file as an iCalendar file.
The iCalendar file will be located in the same directory as the Org-mode The iCalendar file will be located in the same directory as the Org-mode
file, but with extension `.ics'. file, but with extension `.ics'.
\(fn)" t nil) \(fn)" t nil)
(autoload (quote org-export-icalendar-all-agenda-files) "org" "\ (autoload 'org-export-icalendar-all-agenda-files "org" "\
Export all files in `org-agenda-files' to iCalendar .ics files. Export all files in `org-agenda-files' to iCalendar .ics files.
Each iCalendar file will be located in the same directory as the Org-mode Each iCalendar file will be located in the same directory as the Org-mode
file, but with extension `.ics'. file, but with extension `.ics'.
\(fn)" t nil) \(fn)" t nil)
(autoload (quote org-export-icalendar-combine-agenda-files) "org" "\ (autoload 'org-export-icalendar-combine-agenda-files "org" "\
Export all files in `org-agenda-files' to a single combined iCalendar file. Export all files in `org-agenda-files' to a single combined iCalendar file.
The file is stored under the name `org-combined-agenda-icalendar-file'. The file is stored under the name `org-combined-agenda-icalendar-file'.
@ -441,27 +441,27 @@ The file is stored under the name `org-combined-agenda-icalendar-file'.
;;;*** ;;;***
;;;### (autoloads (org-publish-all org-publish-current-file org-publish-current-project ;;;### (autoloads (org-publish-all org-publish-current-file org-publish-current-project
;;;;;; org-publish) "org-publish" "org-publish.el" (18320 38272)) ;;;;;; org-publish) "org-publish" "org-publish.el" (18337 60100))
;;; Generated autoloads from org-publish.el ;;; Generated autoloads from org-publish.el
(autoload (quote org-publish) "org-publish" "\ (autoload 'org-publish "org-publish" "\
Publish the project PROJECT-NAME. Publish the project PROJECT-NAME.
\(fn PROJECT-NAME &optional FORCE)" t nil) \(fn PROJECT-NAME &optional FORCE)" t nil)
(autoload (quote org-publish-current-project) "org-publish" "\ (autoload 'org-publish-current-project "org-publish" "\
Publish the project associated with the current file. Publish the project associated with the current file.
With prefix argument, force publishing all files in project. With prefix argument, force publishing all files in project.
\(fn &optional FORCE)" t nil) \(fn &optional FORCE)" t nil)
(autoload (quote org-publish-current-file) "org-publish" "\ (autoload 'org-publish-current-file "org-publish" "\
Publish the current file. Publish the current file.
With prefix argument, force publish the file. With prefix argument, force publish the file.
\(fn &optional FORCE)" t nil) \(fn &optional FORCE)" t nil)
(autoload (quote org-publish-all) "org-publish" "\ (autoload 'org-publish-all "org-publish" "\
Publish all projects. Publish all projects.
With prefix argument, force publish all files. With prefix argument, force publish all files.
@ -472,10 +472,10 @@ With prefix argument, force publish all files.
;;;### (autoloads (org-export-as-latex org-export-region-as-latex ;;;### (autoloads (org-export-as-latex org-export-region-as-latex
;;;;;; org-replace-region-by-latex org-export-as-latex-to-buffer ;;;;;; org-replace-region-by-latex org-export-as-latex-to-buffer
;;;;;; org-export-as-latex-batch) "org-export-latex" "org-export-latex.el" ;;;;;; org-export-as-latex-batch) "org-export-latex" "org-export-latex.el"
;;;;;; (18320 39683)) ;;;;;; (18337 60100))
;;; Generated autoloads from org-export-latex.el ;;; Generated autoloads from org-export-latex.el
(autoload (quote org-export-as-latex-batch) "org-export-latex" "\ (autoload 'org-export-as-latex-batch "org-export-latex" "\
Call `org-export-as-latex', may be used in batch processing as Call `org-export-as-latex', may be used in batch processing as
emacs --batch emacs --batch
--load=$HOME/lib/emacs/org.el --load=$HOME/lib/emacs/org.el
@ -484,13 +484,13 @@ emacs --batch
\(fn)" nil nil) \(fn)" nil nil)
(autoload (quote org-export-as-latex-to-buffer) "org-export-latex" "\ (autoload 'org-export-as-latex-to-buffer "org-export-latex" "\
Call `org-exort-as-latex` with output to a temporary buffer. Call `org-exort-as-latex` with output to a temporary buffer.
No file is created. The prefix ARG is passed through to `org-export-as-latex'. No file is created. The prefix ARG is passed through to `org-export-as-latex'.
\(fn ARG)" t nil) \(fn ARG)" t nil)
(autoload (quote org-replace-region-by-latex) "org-export-latex" "\ (autoload 'org-replace-region-by-latex "org-export-latex" "\
Replace the region from BEG to END with its LaTeX export. Replace the region from BEG to END with its LaTeX export.
It assumes the region has `org-mode' syntax, and then convert it to It assumes the region has `org-mode' syntax, and then convert it to
LaTeX. This can be used in any buffer. For example, you could LaTeX. This can be used in any buffer. For example, you could
@ -499,7 +499,7 @@ then use this command to convert it.
\(fn BEG END)" t nil) \(fn BEG END)" t nil)
(autoload (quote org-export-region-as-latex) "org-export-latex" "\ (autoload 'org-export-region-as-latex "org-export-latex" "\
Convert region from BEG to END in `org-mode' buffer to LaTeX. Convert region from BEG to END in `org-mode' buffer to LaTeX.
If prefix arg BODY-ONLY is set, omit file header, footer, and table of If prefix arg BODY-ONLY is set, omit file header, footer, and table of
contents, and only produce the region of converted text, useful for contents, and only produce the region of converted text, useful for
@ -516,7 +516,7 @@ in a window. A non-interactive call will only retunr the buffer.
\(fn BEG END &optional BODY-ONLY BUFFER)" t nil) \(fn BEG END &optional BODY-ONLY BUFFER)" t nil)
(autoload (quote org-export-as-latex) "org-export-latex" "\ (autoload 'org-export-as-latex "org-export-latex" "\
Export current buffer to a LaTeX file. Export current buffer to a LaTeX file.
If there is an active region, export only the region. The prefix If there is an active region, export only the region. The prefix
ARG specifies how many levels of the outline should become ARG specifies how many levels of the outline should become

View File

@ -1,14 +1,14 @@
;;; org-mac-message.el - Support for links to Apple Mail messages by Message-ID ;;; org-mac-message.el - Support for links to Apple Mail messages by Message-ID
;; Carstens outline-mode for keeping track of everything. ;; Carstens outline-mode for keeping track of everything.
;; Copyright (C) 2008 John Wiegley ;; Copyright (C) 2008 Free Software Foundation, Inc.
;; ;;
;; Author: John Wiegey <johnw@gnu.org> ;; Author: John Wiegey <johnw@gnu.org>
;; Version: 1.2 ;; Version: 1.2
;; Keywords: outlines, hypermedia, calendar, wp ;; Keywords: outlines, hypermedia, calendar, wp
;; ;;
;; This file is not part of GNU Emacs. ;; This file is part of GNU Emacs.
;; ;;
;; This file is free software; you can redistribute it and/or modify ;; Emacs is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by ;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation; either version 3, or (at your option) ;; the Free Software Foundation; either version 3, or (at your option)
;; any later version. ;; any later version.
@ -28,26 +28,30 @@
(org-add-link-type "message" 'org-mac-message-open) (org-add-link-type "message" 'org-mac-message-open)
(declare-function do-applescript "mac.c" (string))
(unless (fboundp 'do-applescript) (unless (fboundp 'do-applescript)
;; Need to fake this using shell-command-to-string ;; Need to fake this using shell-command-to-string
(defun do-applescript (script) (defun do-applescript (script)
(let (start return) (let (start cmd return)
(while (string-match "\n" script) (while (string-match "\n" script)
(setq script (replace-match "\r" t t script))) (setq script (replace-match "\r" t t script)))
(while (string-match "'" script start) (while (string-match "'" script start)
(setq start (+ 2 match-beginning 0) (setq start (+ 2 (match-beginning 0))
script (replace-match "\\'" t t script))) script (replace-match "\\'" t t script)))
(setq cmd (concat "osascript -e '" script "'")) (setq cmd (concat "osascript -e '" script "'"))
(setq return (shell-command-to-string cmd)) (setq return (shell-command-to-string cmd))
(concat "\"" (org-trim return) "\"")))) (concat "\"" (org-trim return) "\""))))
(defun org-mac-message-open (message-id) (defun org-mac-message-open (message-id)
"Visit the message with the given Message-ID." "Visit the message with the given Message-ID.
This will use the command `open' with the message url."
(start-process (concat "open message:" message-id) nil (start-process (concat "open message:" message-id) nil
"open" (concat "message://<" (substring message-id 2) ">"))) "open" (concat "message://<" (substring message-id 2) ">")))
(defun org-mac-message-insert-link () (defun org-mac-message-insert-link ()
"Insrt a link to the messages currently selected in Apple Mail." "Insert a link to the messages currently selected in Apple Mail.
This will use applescript to get the message-id and the subject of the
active mail in AppleMail and make a link out of it."
(interactive) (interactive)
(let ((subject (do-applescript "tell application \"Mail\" (let ((subject (do-applescript "tell application \"Mail\"
set theMessages to selection set theMessages to selection

161
org.el
View File

@ -4218,6 +4218,7 @@ If it is less than 8, the level-1 face gets re-used for level N+1 etc."
(declare-function parse-time-string "parse-time" (string)) (declare-function parse-time-string "parse-time" (string))
(declare-function remember "remember" (&optional initial)) (declare-function remember "remember" (&optional initial))
(declare-function remember-buffer-desc "remember" ()) (declare-function remember-buffer-desc "remember" ())
(declare-function remember-finalize "remember" ())
(defvar remember-save-after-remembering) (defvar remember-save-after-remembering)
(defvar remember-data-file) (defvar remember-data-file)
(defvar remember-register) (defvar remember-register)
@ -5955,6 +5956,7 @@ the headline hierarchy above."
(defvar org-goto-selected-point nil) ; dynamically scoped parameter (defvar org-goto-selected-point nil) ; dynamically scoped parameter
(defvar org-goto-exit-command nil) ; dynamically scoped parameter (defvar org-goto-exit-command nil) ; dynamically scoped parameter
(defvar org-goto-local-auto-isearch-map) ; defined below
(defun org-get-location (buf help) (defun org-get-location (buf help)
"Let the user select a location in the Org-mode buffer BUF. "Let the user select a location in the Org-mode buffer BUF.
@ -7002,37 +7004,74 @@ the whole buffer."
(error (point-min)))) (error (point-min))))
(end (move-marker (make-marker) (end (move-marker (make-marker)
(progn (outline-next-heading) (point)))) (progn (outline-next-heading) (point))))
(re "\\(\\[[0-9]*%\\]\\)\\|\\(\\[[0-9]*/[0-9]*\\]\\)") (re "\\(\\(\\[[0-9]*%\\]\\)\\|\\(\\[[0-9]*/[0-9]*\\]\\)\\)")
(re-box "^[ \t]*\\([-+*]\\|[0-9]+[.)]\\) +\\(\\[[- X]\\]\\)") (re-box "^[ \t]*\\([-+*]\\|[0-9]+[.)]\\) +\\(\\[[- X]\\]\\)")
b1 e1 f1 c-on c-off lim (cstat 0)) (re-find (concat re "\\|" re-box))
beg-cookie end-cookie is-percent c-on c-off lim
eline curr-ind next-ind continue-from startsearch
(cstat 0)
)
(when all (when all
(goto-char (point-min)) (goto-char (point-min))
(outline-next-heading) (outline-next-heading)
(setq beg (point) end (point-max))) (setq beg (point) end (point-max)))
(goto-char beg) (goto-char end)
(while (re-search-forward re end t) ;; find each statistic cookie
(setq cstat (1+ cstat) (while (re-search-backward re-find beg t)
b1 (match-beginning 0) (setq beg-cookie (match-beginning 1)
e1 (match-end 0) end-cookie (match-end 1)
f1 (match-beginning 1) cstat (+ cstat (if end-cookie 1 0))
startsearch (point-at-eol)
continue-from (point-at-bol)
is-percent (match-beginning 2)
lim (cond lim (cond
((org-on-heading-p) (outline-next-heading) (point)) ((org-on-heading-p) (outline-next-heading) (point))
((org-at-item-p) (org-end-of-item) (point)) ((org-at-item-p) (org-end-of-item) (point))
(t nil)) (t nil))
c-on 0 c-off 0) c-on 0
(goto-char e1) c-off 0)
(when lim (when lim
(while (re-search-forward re-box lim t) ;; find first checkbox for this cookie and gather
;; statistics from all that are at this indentation level
(goto-char startsearch)
(if (re-search-forward re-box lim t)
(progn
(org-beginning-of-item)
(setq curr-ind (org-get-indentation))
(setq next-ind curr-ind)
(while (= curr-ind next-ind)
(save-excursion (end-of-line) (setq eline (point)))
(if (re-search-forward re-box eline t)
(if (member (match-string 2) '("[ ]" "[-]")) (if (member (match-string 2) '("[ ]" "[-]"))
(setq c-off (1+ c-off)) (setq c-off (1+ c-off))
(setq c-on (1+ c-on)))) (setq c-on (1+ c-on))
; (delete-region b1 e1) )
(goto-char b1) )
(insert (if f1 (org-end-of-item)
(setq next-ind (org-get-indentation))
)))
;; update cookie
(when end-cookie
(delete-region beg-cookie end-cookie)
(goto-char beg-cookie)
(insert
(if is-percent
(format "[%d%%]" (/ (* 100 c-on) (max 1 (+ c-on c-off)))) (format "[%d%%]" (/ (* 100 c-on) (max 1 (+ c-on c-off))))
(format "[%d/%d]" c-on (+ c-on c-off)))) (format "[%d/%d]" c-on (+ c-on c-off)))))
(and (looking-at "\\[.*?\\]") ;; update items checkbox if it has one
(replace-match "")))) (when (org-at-item-p)
(org-beginning-of-item)
(when (and (> (+ c-on c-off) 0)
(re-search-forward re-box (point-at-eol) t))
(setq beg-cookie (match-beginning 2)
end-cookie (match-end 2))
(delete-region beg-cookie end-cookie)
(goto-char beg-cookie)
(cond ((= c-off 0) (insert "[X]"))
((= c-on 0) (insert "[ ]"))
(t (insert "[-]")))
)))
(goto-char continue-from))
(when (interactive-p) (when (interactive-p)
(message "Checkbox satistics updated %s (%d places)" (message "Checkbox satistics updated %s (%d places)"
(if all "in entire file" "in current outline entry") cstat))))) (if all "in entire file" "in current outline entry") cstat)))))
@ -13568,6 +13607,7 @@ from that hook."
(when org-finish-function (when org-finish-function
(funcall org-finish-function))) (funcall org-finish-function)))
(defvar org-clock-marker) ; Defined below
(defun org-remember-finalize () (defun org-remember-finalize ()
"Finalize the remember process." "Finalize the remember process."
(unless (fboundp 'remember-finalize) (unless (fboundp 'remember-finalize)
@ -28087,91 +28127,6 @@ Still experimental, may disappear in the future."
;; make tree, check each match with the callback ;; make tree, check each match with the callback
(org-occur "CLOSED: +\\[\\(.*?\\)\\]" nil callback))) (org-occur "CLOSED: +\\[\\(.*?\\)\\]" nil callback)))
(defun org-update-checkbox-count (&optional all)
"Update the checkbox statistics in the current section.
This will find all statistic cookies like [57%] and [6/12] and update them
with the current numbers. With optional prefix argument ALL, do this for
the whole buffer."
(interactive "P")
(save-excursion
(let* ((buffer-invisibility-spec (org-inhibit-invisibility)) ; Emacs 21
(beg (condition-case nil
(progn (outline-back-to-heading) (point))
(error (point-min))))
(end (move-marker (make-marker)
(progn (outline-next-heading) (point))))
(re "\\(\\[[0-9]*%\\]\\)\\|\\(\\[[0-9]*/[0-9]*\\]\\)")
(re-box "^[ \t]*\\([-+*]\\|[0-9]+[.)]\\) +\\(\\[[- X]\\]\\)")
beg-cookie end-cookie is-percent c-on c-off lim
eline curr-ind next-ind
(cstat 0)
)
(when all
(goto-char (point-min))
(outline-next-heading)
(setq beg (point) end (point-max)))
(goto-char end)
;; find each statistic cookie
(while (re-search-backward re beg t)
(setq cstat (1+ cstat)
beg-cookie (match-beginning 0)
end-cookie (match-end 0)
is-percent (match-beginning 1)
lim (cond
((org-on-heading-p) (outline-next-heading) (point))
((org-at-item-p) (org-end-of-item) (point))
(t nil))
c-on 0
c-off 0
)
(when lim
;; find first checkbox for this cookie and gather
;; statistics from all that are at this indentation level
(goto-char end-cookie)
(if (re-search-forward re-box lim t)
(progn
(org-beginning-of-item)
(setq curr-ind (org-get-indentation))
(setq next-ind curr-ind)
(while (= curr-ind next-ind)
(save-excursion (end-of-line) (setq eline (point)))
(if (re-search-forward re-box eline t)
(if (member (match-string 2) '("[ ]" "[-]"))
(setq c-off (1+ c-off))
(setq c-on (1+ c-on))
)
)
(org-end-of-item)
(setq next-ind (org-get-indentation))
)))
;; update cookie
(delete-region beg-cookie end-cookie)
(goto-char beg-cookie)
(insert
(if is-percent
(format "[%d%%]" (/ (* 100 c-on) (max 1 (+ c-on c-off))))
(format "[%d/%d]" c-on (+ c-on c-off))))
;; update items checkbox if it has one
(when (org-at-item-p)
(org-beginning-of-item)
(save-excursion (end-of-line) (setq eline (point)))
(when (re-search-forward re-box eline t)
(setq beg-cookie (match-beginning 2)
end-cookie (match-end 2))
(delete-region beg-cookie end-cookie)
(goto-char beg-cookie)
(cond ((= c-off 0) (insert "[X]"))
((= c-on 0) (insert "[ ]"))
(t (insert "[-]")))
)))
(goto-char beg-cookie)
)
(when (interactive-p)
(message "Checkbox satistics updated %s (%d places)"
(if all "in entire file" "in current outline entry") cstat)))))
;;;; Finish up ;;;; Finish up
(provide 'org) (provide 'org)