Mercurial > emacs
comparison lisp/org/org-list.el @ 104164:ac1a55cc2c38
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-create-formula-image): Remove the -E option for
dvipng.
* org-exp.el (org-default-export-plist): Respect #+BIND.
(org-export-confirm-letbind): New function.
* org.el (org-paste-subtree): Test the kill ring entry if it is
going to be used.
(org-copy-subtree): Use `org-forward-same-level'.
(org-forward-same-level): Respect the `invisibe-ok' arg for
back-to-heading.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-table-map-tables): Make sure cursor is back at table
beginning after funcall.
* org-agenda.el (org-agenda-bulk-action): Make sure parents are
handled before children, and do not error if an entry is not
found, probably because it hase been remove when the parent was
archived or refiled.
* org.el (org-ido-completing-read): Accept straight lists for
completion as well as alists.
* org-timer.el (org-timer-cancel-timers): Renamed from
`org-timer-cancel-timers'.
* org.el (org-cycle-internal-local): Fix problem with finding next
invisible line.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-list.el (org-list-send-list): Call
`org-list-goto-true-beginning' instead of
`org-list-find-true-beginning', which does not exist.
* org-timer.el (org-timer-reset-timers): Use `mapc'.
(org-timer-set-timer): Do not assign to heading.
* org-id.el (org-id-open): Quote function name.
* org-macs.el (org-unmodified): Turn off recording undo
information while running inside the macro.
* org-table.el (org-table-export): Also work in file-less
buffers.
* org.el (org-startup-indented): New option.
(org-startup-options): Add new options indent and noindent.
(org-unfontify-region): Remove line-prefix and wrap-prefix
properties.
(org-after-demote-entry-hook, org-after-promote-entry-hook): New
hooks.
(org-promote, org-demote): Run the new hooks.
* org-table.el (org-table-align): Replace leading \n as well.
* org-exp.el (org-export-push-to-kill-ring): Remove `line-prefix'
and `line-wrap' text properties.
* org-compat.el (org-kill-new): New function.
* org-agenda.el (org-format-agenda-item): Remove `line-prefix' and
`line-wrap' text properties.
* org-indent.el: New file.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-provide-todo-statistics): Tweak docstring.
* org-id.el (org-id-open): Honor `org-link-frame-setup'.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-exp.el (org-export-as-org): Insert the "-source" string
before the extension.
* org.el (org-read-date): Make sure the calendar is in the current
frame.
(org-set-emph-re): Remove the ? from the post-match.
(org-emphasis-regexp-components): Add backslash to the
postmatch class.
(org-set-font-lock-defaults): Write \n instead of \xa, and make it
optional so that also lines at the end of the buffers will still
be matched as headlines.
* org-table.el (org-table-error-on-row-ref-crossing-hline):
Variable made obsolete.
(org-table-relative-ref-may-cross-hline): New option.
(org-table-find-row-type): Honow the new option
`org-table-relative-ref-may-cross-hline'.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-table.el (org-table-cut-region, org-table-copy-region): Work
on single field if no active region.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-latex.el (org-export-latex-make-header): Only insert title
if one is defined.
* org.el (org-make-options-regexp): Allow empty values.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-cycle-internal-local): Improved version of finding
next visible line.
(org-cycle-hide-drawers): Only hide drawers if this is really
necessary.
(outline-end-of-subtree): Make `outline-end-of-subtree' use the
org-version of this function in Org-mode. We use advice to
implement this change, so that future changes to this function in
outline.el wil be handled properly.
(org-forward-same-level, org-backward-same-level): New commands.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-remove-empty-overlays-at)
(org-clean-visibility-after-subtree-move): New functons.
(org-move-subtree-down): Simplify cleanup of display.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-mac-message.el (org-mac-message-get-links): Improve
docstring. Make argument SELECT-OR-FLAGGED optional, default to
"s". Fix the return value.
(org-mac-message-insert-flagged): Simplify.
* org.el (org-refile-get-location): Tamper with refile history o
that history contains compete matches instead of the entered
string.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-store-link): Never store a link to an inline task.
* org-footnote.el (org-footnote-goto-local-insertion-point): Skip
inline tasks when positioning footnotes.
* org.el (org-refile): Remove the END line when archiving an
inline task that does have an END line.
* org-archive.el (org-archive-subtree): Remove the END line when
archiving an inline task that does have an END line.
* org-macs.el (org-with-limited-levels): New macro.
(org-get-limited-outline-regexp): New function.
* org-exp.el (org-export-format-source-code-or-example): Fix bug
that did not enumerate first line.
(org-export-mark-radio-links): Skip matches in links.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-activate-plain-links): Make single-match.
(org-adapt-indentation): Fix docstring.
* org-macs.el (org-unmodified): Turn of modification hooks while
running this macro.
2009-08-06 Bastien Guerry <bzg@altern.org>
* org.el (org-adapt-indentation): Slightly improve the docstring.
(org-occur): Sends an error when the user inputs an empty string.
(org-priority): Bugfix: the tag alignement should happen within
save-excursion.
2009-08-06 Bastien Guerry <bzg@altern.org>
* org.el (org-make-link-regexps): Don't exclude parentheses from
`org-plain-link-re'
(org-cycle-internal-local): When locally cycling, switch directly
from CHILDREN to FOLDED if there is no subtree
(org-cycle): Update the docstring to document the new behavior of
`org-cycle-internal-local'.
2009-08-06 Nicolas Goaziou <n.goaziou@neuf.fr> (tiny change)
* org-clock.el (org-clock-in): Bugfix: recognize timestamps with
an abbreviated format for days.
2009-08-06 Bastien Guerry <bzg@altern.org>
* org-protocol.el (org-protocol-default-template-key): New
option.
* org.el (org-refile): Bugfix: save-excursion before reading the
refile target, otherwise cursor moves might confuse `org-refile'.
* org.el (org-toggle-heading): Bugfix: correctly convert list
items before the first headline.
* org.el (org-provide-todo-statistics): Allow a list of TODO
keywords to compute statistics against headlines containing a
keyword from this list.
(org-update-parent-todo-statistics): Possibly use the new allowed
value of `org-provide-todo-statistics'.
2009-08-06 Bastien Guerry <bzg@altern.org>
* org-timer.el: Add autoload cookie.
* org.el (org-occur-link-in-agenda-files): New function.
* org-timer.el (org-timer-last-timer): New variable.
* org-agenda.el (org-agenda-mode-map): New key for
org-timer-set-timer called from the agenda.
* org.el (org-mode-map): New key for org-timer-set-timer.
* org-timer.el (org-timer-reset-timers)
(org-timer-show-remaining-time, org-timer-set-timer): New
functions.
* org-clock.el (org-show-notification): Update the docstring.
* org.el (org-provide-todo-statistics): Allow new value
'all-headlines for this option, which includes entries with no
TODO keywords in the todo statistics.
(org-update-parent-todo-statistics): Possibly use the new
'all-headline value from `org-provide-todo-statistics'.
2009-08-06 Bastien Guerry <bzg@altern.org>
* org-clock.el (org-dblock-write:clocktable): Add a new option
:timestamp which allows display of timestamps in clock reports.
* org.el (org-mode-map): Define new key `C-c C-*': convert a plain
list to a subtree, preserving the structure of the list.
(org-set-emph-re): Make the last element optional in the regexp.
This regexp now matches an emphasized string at the end of a line.
* org-list.el (org-list-goto-true-beginning)
(org-list-make-subtree, org-list-make-subtrees): New functions.
* org.el (org-eval-in-calendar): Select the right frame.
(org-save-frame-excursion): Remove this macro.
2009-08-06 Bastien Guerry <bzg@altern.org>
* org-list.el (org-list-beginning-re): Bugfix: don't use * when
trying to find the beginning of a list.
* org-exp.el (org-get-file-contents): Use a new argument: markup.
When present, tell org-get-file-contents not to protect org-like
lines.
* org-id.el (org-id-uuid-program): New option to set the name of
the uuidgen program.
(org-id-method): Use `org-id-uuid-program'.
(org-id-new): Use `org-id-uuid-program'.
2009-08-06 Bastien Guerry <bzg@altern.org>
* org-exp.el (org-export-number-lines): Allow whitespace in code
references. Allow the -r switch to remove the references in the
source code even when the lines are not numbered: the labels can
be explicit enough.
* org.el (org-fontify-whole-heading-line): New option.
(org-set-font-lock-defaults): Use the new option.
* org-clock.el (org-show-notification-handler): New option.
(org-show-notification): Use the new option.
2009-08-06 Bastien Guerry <bzg@altern.org>
* org.el (org-eval-in-calendar): Fix a bug about calendar
navigation when `calendar-setup' value is 'calendar-only.
2009-08-06 Bastien Guerry <bzg@altern.org>
* org.el (orgstruct++-mode): Fix typo in docstring.
(org-insert-link): Clean up: (or (...)) => (...)
(org-insert-link): Use TAB for stored links completion.
2009-08-06 Bastien Guerry <bzg@altern.org>
* org.el (org-get-refile-targets): Fix bug: don't ignore case when
building the list of targets.
* org-remember.el (org-remember-delete-empty-lines-at-end): New
option.
(org-remember-handler): Use the new option.
2009-08-06 James TD Smith <ahktenzero@mohorovi.cc>
* org.el (org-tags-sort-function): New option for sorting tags.
(org-set-tags): Use the new option to sort tags.
* org-plot.el (org-plot/gnuplot): Run with an idle timer to avoid
premature deletion of the data when using org-plot in a script.
2009-08-06 Bastien Guerry <bzg@altern.org>
* org-clock.el (org-clock-in-prepare-hook): New hook.
(org-clock-in): Use this new hook.
2009-08-06 Bastien Guerry <bzg@altern.org>
* org.el (org-special-ctrl-a/e): Explicitely bind the value
'reversed for this option to the "true line boundary first"
behavior.
(org-tags-match-list-sublevels): Document the 'indented value for
this variable.
* org-latex.el (org-export-latex-first-lines): Fix problem with
publishing the region.
* org-exp.el (org-export-format-source-code-or-example): Fix
bad line numbering when exporting examples in HTML.
2009-08-06 James TD Smith <ahktenzero@mohorovi.cc>
* org-colview.el (org-format-time-period): Formats a time in
fractional days as days, hours, mins, seconds.
(org-columns-display-here): Add special handling for SINCE and
SINCE_IA to format for display.
* org.el (org-time-since): Add a function to get the time since an
org timestamp.
(org-entry-properties): Add two new special properties: SINCE and
SINCE_IA. These give the time since any active or inactive
timestamp in an entry.
(org-special-properties): Add SINCE, SINCE_IA.
(org-tags-sort-function): Add custom declaration for tags
sorting function.
(org-set-tags): Sort tags if org-tags-sort-function is set
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-clock.el (org-clock-goto): Find hidden headlines as well.
* org.el (org-narrow-to-subtree): Find hidden headlines as well.
* org-plot.el (org-plot/add-options-to-plist): Add timeind
option.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-publish.el (org-publish-remove-all-timestamps): New function.
(org-publish-all): Remove all timestamp files if `org-publish-all'
is called with a prefix argument.
* org-list.el (org-indent-item): Fix typo.
(org-item-indent-positions): Normalize ordered bullet.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-macs.el (org-set-local): Make a local variable, do not make
the variable buffer-local!
* org-latex.el (org-export-as-latex): Call `org-install-letbind'.
* org-exp.el (org-infile-export-plist): Read BIND lines.
(org-install-letbind): New function.
(org-export-as-org, org-export-preprocess-string): Call
`org-install-letbind'.
* org-list.el (org-list-demote-modify-bullet): New option.
(org-first-list-item-p): Save point.
(org-fix-bullet-type): New optional argument FORCE-BULLET.
(org-indent-item): Honor `org-list-demote-modify-bullet'.
(org-item-indent-positions): Return bullet types along with
indentation.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-show-entry): Hide drawers.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-footnote.el (org-footnote-auto-adjust): New option.
(org-footnote-auto-adjust-maybe): New function.
(org-footnote-new, org-footnote-delete): Call
`org-footnote-auto-adjust-maybe'.
* org.el (org-startup-options): Add new footnote-related
keywords.
* org-publish.el (org-publish-timestamp-filename): Additional
arguments PUB-DIR and PUB-FUNC, which are included in the hash.
(org-publish-needed-p): Additional arguments PUB-DIR PUB-FUNC
TRUE-PUB-DIR. Pass them through to
`org-publish-timestamp-filename'.
(org-publish-update-timestamp): Additional arguments PUB-DIR and
PUB-FUNC, which are included in the hash.
(org-publish-file): Delay timestamp test until the publishing
function is known.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-agenda.el (org-agenda-bulk-action): Add scheduling and
setting the deadline.
* org.el (org-read-date-final-answer): New variable.
(org-read-date): Store the final answer string, including the date
from the calendar, for reuse by agenda bulk commands.
* org-publish.el (org-publish-attachment): Fix publishing of
attachments.
* org-latex.el (org-export-latex-quotation-marks): Fix export of
quotation makrs in parenthesis.
(org-remove-initial-hash): New function.
(org-export-latex-preprocess): Fix bug with infinite loop if
environment is not properly closed.
* org-table.el (org-table-get-remote-range): Find #+TBLNAME also
when indented.
* org.el (org-fontify-meta-lines-and-blocks): Make #+TBLNAME
highlight also when indented.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-footnote.el (org-footnote-renumber-fn:N): New command.
(org-footnote-action): Offer renumbering.
* org.el (org-cycle): Honor the `integrate' value of
org-cycle-include-plain-lists'.
* org-list.el (org-cycle-include-plain-lists): New allowed value
`internal'. Improve the docstring.
* org.el (org-set-autofill-regexps): Improve the paragraph-start
regexp to work better with LaTeX commands.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-latex.el (org-export-latex-inline-image-extensions): Add ps
and eps extensions.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-agenda.el (org-write-agenda): Make sure org-icalendar is
loaded.
* org.el (org-map-entries): No longer force
`org-tags-match-list-sublevels' to t during a todo-only tags
search.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-latex.el (org-export-latex-low-levels): Allow user-defined
environment.
(org-export-latex-subcontent): Handle user-defined environment.
* org-agenda.el (org-agenda-view-mode-dispatch): Add more keys to
the View dispatcher.
* org.el (org-hide-block-toggle): Use `org-make-overlay' instead of
`make-overlay'.
* org-latex.el (org-export-as-pdf): Protect match data during call
to shell-quote-argument.
* org-agenda.el (org-agenda-mode-map): Modify bulk action keys.
(org-agenda-view-mode-dispatch): New function.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-agenda.el (org-agenda-mode): Reset list of marks.
(org-agenda-mode-map): Define new keys for refile and bulk action.
(org-agenda-menu): Add menu itesm for refile and bulk action.
(org-agenda-refile): New function.
(org-agenda-set-tags): Optional arguments TAG and ONOFF.
(org-agenda-marked-entries): New variable.
(org-agenda-bulk-select, org-agenda-remove-bulk-action-overlays)
(org-agenda-remove-all-bulk-action-marks)
(org-agenda-bulk-action): New functions/commands.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-exp.el (org-get-file-contents): Protect org-like lines in
included files.
(org-export-format-source-code-or-example): Remove newlines.
* org-latex.el (org-export-latex-links): Check for no-description
marking.
* org-exp.el (org-export-preprocess-apply-macros): Switch macro
argument separator back to comma.
(org-export-normalize-links): Mark links without description.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-exp.el (org-infile-export-plist): Fix bug in macro
processing.
* org-agenda.el (org-agenda-clock-out): Update line after clocking
out.
(org-agenda-highlight-todo): Fix bug with highlighting.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-set-font-lock-defaults): Adapt formatting to capture
new alignment strings.
* org-table.el (orgtbl-self-insert-command): Add yas/expand to
command list.
(org-table-align): Check for forced align type.
* org.el (org-self-insert-command): Add yas/expand to command
list.
* org-clock.el (org-clock-in-hook): New hook.
(org-clock-in): Run `org-clock-in-hook.
(org-clock-out-hook): New hook.
(org-clock-out): Run `org-clock-out-hook.
(org-clock-cancel-hook): New hook.
(org-clock-cancel): Run `org-clock-cancel-hook.
(org-clock-goto-hook): New hook.
(org-clock-goto): Run `org-clock-goto-hook.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-store-link): Better default description for link to
Org-mode headline.
* org-exp.el (org-export-generic): Autoload the generic exporter
function.
(org-export): Implement the `g' key for the generic exporter.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-table.el (orgtbl-setup): Add a binding for `S-iso-lefttab',
and for zbacktab'.
* org-exp.el (org-infile-export-plist): Get macros also from
#+SETUPFILE.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-colview.el (org-columns-capture-view): Protect vertical bars
in column values.
(org-columns-capture-view): Exclude comment and archived trees.
* org-colview-xemacs.el (org-columns-capture-view): Protect
vertical bars in column values.
(org-columns-capture-view): Exclude comment and archived trees.
* org.el (org-quote-vert): New function.
* org-latex.el (org-export-latex-verbatim-wrap): New option.
* org-exp.el (org-export-format-source-code-or-example): Use
`org-export-latex-verbatim-wrap'.
* org.el (org-clone-subtree-with-time-shift): Also shift inactive
time stamps.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-exp-blocks.el: New file.
* org-remember.el (org-remember-templates): Allow the headline
element to be a function.
(org-remember-apply-template): If the headline is a function, call
it to get the true function.
* org-clock.el (org-clock-menu): New function.
(org-clock-update-mode-line): Update help string.
(org-clock-modify-effort-estimate): New function.
(org-clock-mark-default-task): New function.
* org.el (org-hh:mm-string-to-minutes): Also take just a number of
minutes as input.
(org-org-menu): Add new clocking stuff.
(org-clock-is-active): New function.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-open-non-existing-files): Improve docstring.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-icalendar.el (org-icalendar-include-bbdb-anniversaries): New
option.
(org-export-icalendar): Call `org-bbdb-anniv-export-ical'.
* org-bbdb.el (org-bbdb-anniv-export-ical): New function.
* org-list.el (org-get-checkbox-statistics-face): Use the new
faces.
* org-faces.el (org-checkbox-statistics-todo)
(org-checkbox-statistics-done): New faces.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-latex.el (org-export-latex-use-verb): New variable.
(org-export-latex-emph-format): Prefer \texttt over \verb when
org-export-latex-use-verb is set.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-remember.el (org-remember-handler): Abort remember if the
buffer is empty.
* org-exp.el (org-export-format-source-code-or-example): Run
`org-src-mode-hook'.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-indent-line-function): Fix indentation of +#end lines.
2009-08-06 Tassilo Horn <tassilo@member.fsf.org>
* org-gnus.el (org-gnus-store-link): Require message.el in
org-gnus-store-link.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-src.el: New file, split out of org.el
* org-macs.el (org-replace-match-keep-properties): New function.
* org-exp.el (org-export-mark-blockquote-verse-center): Better
preprocessing of center and quote and verse blocks.
* org-list.el (org-list-end): Respect the stored "original"
indentation when determining the end of the list.
* org-exp.el (org-export-replace-src-segments-and-examples):
Remember indentation correctly.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-clock.el (org-clock-update-mode-line): Apply face
org-mode-line-clock.
* org-faces.el (org-mode-line-clock): New face.
2009-08-06 Tassilo Horn <tassilo@member.fsf.org>
* org-gnus.el (org-gnus-store-link): Fix bug where
`org-gnus-store-link' used wrong subject when called in an article
buffer. Patch provided by fengli AT gmail DOT com.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-exp.el (org-export-format-source-code-or-example): Remember
the original indentation of source code snippets and examples.
* org-latex.el (org-export-as-latex): Relocate the table of
contents.
* org.el (org-ctrl-c-ctrl-c): Update clock lines.
* org-agenda.el (org-run-agenda-series): Scope global options also
when creating the agenda buffer.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-adapt-indentation): Improve documentation.
(org-insert-property-drawer): Respect org-adapt-indentation when
inserting the drawer.
(org-remove-flyspell-overlays-in): New function.
(org-do-emphasis-faces, org-activate-plain-links)
(org-activate-code, org-fontify-meta-lines-and-blocks)
(org-activate-angle-links, org-activate-footnote-links)
(org-activate-bracket-links, org-activate-dates)
(org-activate-target-links, org-activate-tags): Remove flyspell
overlays.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-edit-src-save): New function.
* org-clock.el (org-clock-out-switch-to-state): New option.
(org-clock-out): Honor `org-clock-out-switch-to-state'.
* org-compat.el (org-compatible-face): Improve macro.
* org.el (org-global-properties-fixed): Add default for
CLOCK_MODELINE_TOTAL.
* org-clock.el (org-clock-sum): Accept lists and strigs as tstart
andd tend.
(org-clock-sum-current-item): Optional argument TSTART, pass it to
org-clock-sum.
(org-clock-get-sum-start): New function.
* org.el (org-startup-options): New keywords blockhide and
blockshow.
(org-mode): Add new invisibility spec.
(org-set-startup-visibility): Hide block on startup if so
desired.
(org-hide-block-startup): New option.
(org-block-regexp): New constant.
(org-hide-block-overlays): New variable.
(org-block-map, org-hide-block-toggle-all, org-hide-block-all)
(org-show-block-all, org-hide-block-toggle-maybe)
(org-hide-block-toggle): New functions.
(org-edit-src-exit): Do not quote lines starting with # and no +
behind it.
(org-auto-repeat-maybe): Add LAST_REPEAT properter for a repeating
entry.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-buffer-property-keys): Add Effort property for
completion.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-clock.el (org-clock-sum-current-item): Fix positioning bug
when retrieving total clocked time in the subtree.
* org.el (org-quoting-blocks): New variable.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-table.el (org-table-store-formulas)
(org-table-get-stored-formulas, org-table-fix-formulas)
(org-table-edit-formulas, orgtbl-ctrl-c-ctrl-c)
(orgtbl-gather-send-defs): Allow indented #+TBLFM line.
* org.el (org-fontify-meta-lines, org-ctrl-c-ctrl-c): Allow
indented #+TBLFM line.
* org-footnote.el (org-footnote-goto-local-insertion-point): Allow
indented #+TBLFM line.
* org-colview.el (org-dblock-write:columnview): Allow indented
#+TBLFM line.
* org-colview-xemacs.el (org-dblock-write:columnview): Allow
indented #+TBLFM line.
* org-clock.el (org-dblock-write:clocktable): Allow indented
#+TBLFM line.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-exp.el (org-export-format-source-code-or-example): Make
editing indented blocks work correctly.
* org.el (org-edit-src-nindent): New variable.
(org-edit-src-code, org-edit-fixed-width-region)
(org-edit-src-find-region-and-lang, org-edit-src-exit): Make
editing indented blocks work correctly.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-exp.el (org-export-replace-src-segments-and-examples): FInd
indented blocks.
(org-export-format-source-code-or-example): Fix indentation of
blocks.
(org-export-remove-indentation): New function.
(org-export-select-backend-specific-text): Allow backend-specific
code to be indented.
(org-export-mark-blockquote-verse-center): Allow markers to be
indented.
* org.el (org-fontify-meta-lines): New function.
(org-set-font-lock-defaults): Call the new fontification
function.
* org-faces.el (org-meta-line): New face
(org-block): New face.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-treat-insert-todo-heading-as-state-change)
(org-treat-S-cursor-todo-selection-as-state-change): New
variables.
(org-insert-todo-heading): Honor
`org-treat-insert-todo-heading-as-state-change'.
(org-shiftright, org-shiftleft): Honor
`org-treat-S-cursor-todo-selection-as-state-change'.
(org-inhibit-logging): New variable.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-agenda.el (org-remove-subtree-entries-from-agenda): Reduce
range for marker position checking.
* org-latex.el (org-export-latex-first-lines): Fix bug when
exporting a region.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-exp.el (org-export-push-to-kill-ring): Protect using
x-set-selection, because that does not always work.
* org-agenda.el (org-agenda-list): Apply the new face
`org-agenda-date-today'.
* org-faces.el (org-agenda-date-today): New face.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-agenda.el (org-agenda-to-appt): Turn off restriction when
creating appointments.
* org-latex.el (org-export-latex-low-levels): Fix customization
type.
* org.el (org-priority, org-shiftup, org-shiftdown): Disable
priority commands.
* org-agenda.el (org-agenda-priority): Disable priority commands.
* org.el (org-enable-priority-commands): New option.
* org-colview-xemacs.el (org-columns-compute)
(org-columns-number-to-string): Fix problems with empty fields.
* org-colview.el (org-columns-compute)
(org-columns-number-to-string): Fix problems with empty fields.
* org-exp.el (org-export-push-to-kill-ring): New function.
(org-export-copy-to-kill-ring): New option.
* org-latex.el (org-export-as-latex): Call
`org-export-push-to-kill-ring'.
* org-exp.el (org-export-show-temporary-export-buffer): New
option.
* org-latex.el (org-export-as-latex): Use
`org-export-show-temporary-export-buffer'.
* org-exp.el (org-export-show-temporary-export-buffer): New
option.
(org-export-push-to-kill-ring): New function.
* org-colview.el (org-columns-compile-map): New variable.
(org-columns-new, org-columns-compute)
(org-columns-number-to-string, org-columns-uncompile-format)
(org-columns-compile-format): Implement new operators.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-exp.el (org-export-plist-vars): Add :xml-declaration.
* org-list.el (org-update-checkbox-count): Make property
dependent.
* org.el (org-hierarchical-todo-statistics): New option.
(org-update-parent-todo-statistics): Modified to handle recursive
statistics.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-publish.el (org-publish): Make this function behave
correctly in interactive use when called with a prefix argument.
* org.el (org-todo-statistics-hook): New hook.
(org-update-parent-todo-statistics): Use new hook.
(org-log-into-drawer): New function.
(org-add-log-setup): Use the new `org-log-into-drawer' function to
determine if we should be logging into a drawer.
(org-log-into-drawer): Update docstring.
(org-default-properties): Add LOG_INTO_DRAWER as a property.
* org-list.el (org-checkbox-statistics-hook): New hook.
(org-update-checkbox-count-maybe): Use new hook.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-edit-src-code, org-edit-fixed-width-region): Use a
better bufer-generating mechanism.
(org-edit-src-find-buffer): New function.
* org-icalendar.el (org-print-icalendar-entries): Don't check for
archive tag, this is already done by `org-agenda-skip'.
data while constructing lost of tags.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-exp.el (org-export-preprocess-apply-macros): Use semicolon
as argument separator in macros.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-after-sorting-entries-or-items-hook): New hook.
(org-sort-entries-or-items): Run the new hook.
(org-after-refile-insert-hook): New hook.
(org-refile): Run `org-after-refile-insert-hook'.
* org-agenda.el (org-agenda-get-progress): Never take time of day
from headline when displaying progress.
* org-latex.el (org-export-latex-complex-heading-re): New variable.
(org-export-as-latex): Force the correct regexp in the
preprocessor buffer.
(org-export-latex-set-initial-vars): Set
`org-export-latex-complex-heading-re'.
* org-agenda.el (org-agenda-start-with-log-mode): New option.
(org-agenda-mode): Use `org-agenda-start-with-log-mode'.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-latex.el (org-export-latex-tables-centered): New option.
(org-export-latex-tables): Use `org-export-latex-tables-centered'.
* org-exp.el (org-export-as-org): New command.
(org-export-as-org): New command.
* org-publish.el (org-publish-org-to-org): New function.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-yank): Just call `org-yank-generic'.
(org-yank-generic): New function, containing the formaer
functionality of `org-yank'.
* org-latex.el (org-export-latex-not-done-keywords)
(org-export-latex-done-keywords): New variables.
(org-export-latex-todo-keyword-markup): New option.
(org-export-latex-set-initial-vars): Remember the TODO keywords.
(org-export-latex-keywords-maybe): Apply the TODO markup.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-exp.el (org-infile-export-plist): Add more default macros.
(org-export-preprocess-apply-macros): Process macro arguments.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-icalendar.el (org-icalendar-include-todo): New allowedvalue
`unblocked'.
(org-print-icalendar-entries): Respect the new value of
`org-icalendar-include-todo'.
* org.el (org-link-try-special-completion)
(org-file-complete-link): New functions.
(org-insert-link): Add special completion support for some link
types.
* org-bbdb.el (org-bbdb-complete-link): New function.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-list.el (org-update-checkbox-count): Allow recursive
statistics.
(org-hierarchical-checkbox-statistics): New option.
* org.el (org-cycle): Remove erraneous space character.
* org-icalendar.el (org-icalendar-timezone): Initialize from
environment.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-autoload): Fix autoloading of ascii export
functions.
(org-modules): Add org-special-blocks.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-icalendar.el (org-start-icalendar-file): Use the new option.
(org-ical-timezone): New option.
* org-exp.el (org-export-get-coderef-format): Use the description
is present.
* org.el (org-sort-entries-or-items): Improve docstring, and make
better implementation for time sorting.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-edit-src-persistent-message): New option.
(org-edit-src-code, org-edit-fixed-width-region): Use the new
option.
* org-clock.el (org-clock-insert-selection-line): Fix prefious
patch.
* org.el (org-edit-src-code, org-edit-fixed-width-region): Use
separate buffer instead of indirect buffer to edit source code.
(org-edit-src-exit): Make this function work with the new setup.
* org-clock.el (org-clock-insert-selection-line): Make sure tasks
are properly fontified before shown in the selection menu.
* org.el (org-fontify-like-in-org-mode): New function.
* org-latex.el (org-export-latex-links): Use the property list to
retrieve the default image attributes.
* org-exp.el (org-export-plist-vars): Add a new option.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-exp.el (org-export, org-export-visible): Support ASCII
export to buffer
(org-export-normalize-links): Do not protect the description if it
is explicitly given.
* org-list.el (org-reset-checkbox-state-subtree): Moved here from
org-checklist.el.
(org-reset-checkbox-state-subtree): Call
`org-reset-checkbox-state-subtree'.
* org-remember.el (org-select-remember-template): For the
selection of a valid template.
* org-latex.el (org-export-region-as-latex): Supply the
force-no-subtree argument.
(org-export-as-latex): Provide better limits when exporting the
first line. When exporting to string, we still want the first
lines.
(org-export-latex-first-lines): New argument END, to force the end
of the region.
(org-export-region-as-latex): Use the property list.
(org-export-as-latex):
* org-colview-xemacs.el (org-columns-remove-overlays)
(org-columns): Fix call to `local-variable-p'.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-latex.el (org-export-latex-after-blockquotes-hook): New hook.
(org-export-latex-preprocess): Run the new hook.
* org-exp.el (org-export-preprocess-after-blockquote-hook): New hook.
(org-export-preprocess-string): Run the new hook.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-macs.el (org-check-external-command): New defsubst.
* org.el (org-mode-map): New key for reload.
(org-format-latex): Better error message when external programs
are not available.
* org-agenda.el (org-agenda-mode-map): Bind `org-reload'.
* org.el (org-sort-entries-or-items): Explicit sorting function
for priorities, needed for XEmacs compatibility.
* org-remember.el (org-remember-apply-template): Improve auto-save
behavior.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-latex.el (org-export-latex-preprocess): Also protect
environments ending in a star.
* org-list.el (org-at-item-p): Fix regular expression.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-end-of-subtree): Improve speed.
* org-agenda.el (org-agenda-get-timestamps)
(org-agenda-get-progress, org-agenda-get-deadlines)
(org-agenda-get-scheduled, org-agenda-get-blocks): Optimizations,
in particular, wait as long as possible to collect the tags.
(org-stuck-projects): Improve docstring.
* org.el (org-store-link): No errors when getting custom id before
first headline.
(org-get-tags-at): Use `org-up-heading-safe' when getting tags.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-prepare-agenda-buffers): Catch a throw to nextfile.
* org-protocol.el: Remove dependency on url.el.
(org-protocol-unhex-compound, org-protocol-open-source): Remove
dependency on url.el.
* org-latex.el (org-export-as-pdf): Use
`org-latex-to-pdf-process'.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-latex.el (org-latex-to-pdf-process): New option.
* org-agenda.el (org-agenda-skip-additional-timestamps-same-entry):
New option.
(org-agenda-get-timestamps): Honor
`org-agenda-skip-additional-timestamps-same-entry'.
* org-clock.el (org-clock-goto-may-find-recent-task): New option.
(org-clock-goto): Find recent task only if
`org-clock-goto-may-find-recent-task' allows it.
* org-exp.el (org-export-remove-or-extract-drawers): Handle empty
drawers, and drawers that are missing the :END: line.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-clock.el (org-clock-goto): Go to recently clocked task if no
clock is running.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-update-parent-todo-statistics): Check for
STATISTICS_FROM property.
* org-list.el (org-update-checkbox-count): Check for
STATISTICS_FROM property.
* org.el (org-tab-first-hook)
(org-tab-after-check-for-table-hook)
(org-tab-after-check-for-cycling-hook): New hooks.
(org-cycle-internal-global, org-cycle-internal-local): New
functions, split out from `org-cycle'.
(org-cycle): Call the new hooks.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-exp.el (org-export-preprocess-string): Reset the list of
preferred targets for each run of the preprocessor.
* org.el (org-refile-target-verify-function): Improve
documentation.
(org-get-refile-targets): Respect point being moved by the
verification function.
* org-latex.el (org-export-latex-timestamp-keyword-markup): New
option.
(org-export-latex-keywords): Use new option.
* org.el (org-rear-nonsticky-at): New defsubst.
(org-activate-plain-links, org-activate-angle-links)
(org-activate-footnote-links, org-activate-bracket-links)
(org-activate-dates, org-activate-target-links)
(org-activate-tags): Place the rear-nonsticky properties at the
correct location.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-protocol.el (server-edit): Declare `server-edit'.
(org-protocol-unhex-string, org-protocol-unhex-compound): New
functions.
(org-protocol-check-filename-for-protocol): Call `server-edit'.
* org.el (org-default-properties): New default properteis for
completion.
* org-exp.el (org-export-add-subtree-options): Add new properties
for subtree export.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-id.el (org-id-get-with-outline-path-completion): Turn off
org-refile-target-verify-function for the duration of the command.
* org.el (org-link-to-org-use-id): New possible value
`create-if-interactive-and-no-custom-id'.
(org-store-link): Use custom IDs.
(org-link-search): Find custom ID properties from #link.
(org-default-properties): Add CUSTOM_ID for property completion.
(org-refile-target-verify-function): New option.
(org-goto): Turn off org-refile-target-verify-function
for the duration of the command.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-exp.el (org-export-preferred-target-alist): New variable.
(org-export-define-heading-targets): Find the new CUSTOM_ID
property.
(org-export-target-internal-links): Target the custom ids when
possible.
* org-latex.el (org-export-latex-preprocess): Better regexp for
matching latex macros with arguments.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-remember.el (org-remember-handler): Allow filing to non-org
files.
2009-08-06 Magnus Henoch <magnus.henoch@gmail.com>
* org-table.el (org-table-fix-formulas): Do not change references
to remote tables.
(org-table-get-remote-range): Convert standard coordinates to RC
format.
* org-latex.el (org-export-latex-keywords): Fix regexp bug.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-compat.el (org-sha1-string): Function removed.
* org.el (org-refile-allow-creating-parent-nodes): New option.
(org-refile-get-location): New argument NEW-NODES.
(org-refile): Call `org-refile-get-location' with the new
argument.
(org-refile-get-location): Arrange for adding a new child.
(org-refile-new-child): New function.
* org-clock.el: Fix a number of docstrings.
(org-clock-find-position): New argument
FIND-UNCLOSED to make the function find an unclosed clock in the
entry.
(org-clock-in): Call `org-clock-find-position' with the new
argument if we might be resuming a clock.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-latex.el (org-export-latex-display-custom-times): New variable.
(org-export-latex-timestamp-markup): New option.
(org-export-latex-set-initial-vars): Remember the local value of
`org-display-custom-times'.
(org-export-latex-content): Process time stamps.
(org-export-latex-time-stamps): New function.
* org-macs.el (org-maybe-intangible): Add intangible property
again to invisible text.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-exp.el (org-default-export-plist): Handle undefined
variables.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-sort-entries-or-items): Match TODO keywrds
case-sensitively, when sorting.
(org-priority): Do not match TODO keywords with wrong case.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-todo): Honor the NOBLOCKING property.
* org-agenda.el (org-agenda-dim-blocked-tasks): Honor the
NOBLOCKING property.
* org.el (org-scan-tags): Fix bug in tag scanner
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-modules): Mark obsolete packages.
* org-html.el: New file, split out from org-exp.el.
* org-icalendar.el: New file, split out from org-exp.el.
* org-xoxo.el: New file, split out from org-exp.el.
* org-ascii.el: New file, split out from org-exp.el.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-compat.el (org-find-library-name): New function.
* org.el (org-pre-cycle-hook): New hook.
(org-cycle): Call the new hook in appropriate places.
(org-reload): Only reload files that have been loaded before.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-set-font-lock-defaults): Enforxe space or line end
after todo keyword.
(org-todo): When changing TODO state, do matching
case-sensitively.
(org-map-continue-from): New variable.
(org-scan-tags): Respect values in `org-map-continue-from'.
(org-reload): Make XEmacs compatible.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-protocol.el (org-protocol-flatten-greedy): New function.
(org-protocol-flatten): New function.
* org.el (org-open-link-from-string): Pass reference buffer to
`org-open-at-point'.
(org-open-at-point): New optional argument `reference-buffer'.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-scan-tags): Make tag scan find headline in first
line, 2nd attempt.
(org-get-refile-targets): Add the naked file name.
(org-refile): Store as top-level entry when only file name was
given.
* org-agenda.el (org-agenda-get-progress): Fix regexp bug.
* org.el (org-block-todo-from-children-or-siblings-or-parent):
Renamed from org-block-todo-from-children-or-siblings, and
enhanced to look for the parent's status as well.
* org-agenda.el (org-agenda-log-mode-add-notes): New option.
(org-agenda-get-progress): Add first notes line to log entry if so
desired.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-agenda.el (org-agenda-cleanup-fancy-diary-hook): New hook.
(org-agenda-cleanup-fancy-diary): Call the new hook.
* org-remember.el (org-remember-apply-template): Take the default
for the annotation from the :annotation property.
* org-mac-message.el (org-mac-message-get-link): Remove the
quotes.
(org-mac-message-get-link): Return the result.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-refile-get-location): Add file name only if not
already included in outline path.
* org-faces.el (org-n-level-faces): Fix customization type from
number to integer.
* org-exp.el (org-export-headline-levels): Fix customization type
from number to integer.
* org-agenda.el (org-agenda-confirm-kill)
(org-agenda-custom-commands-local-options)
(org-timeline-show-empty-dates, org-agenda-ndays)
(org-agenda-start-on-weekday, org-scheduled-past-days): Fix
customization type from number to integer.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-protocol.el: Declare some functions.
* org-agenda.el (org-agenda-compare-effort): Honor
`org-sort-agenda-noeffort-is-high'.
(org-agenda-filter-by-tag, org-agenda-filter-make-matcher)
(org-agenda-compare-effort): Implement the "?" operator for
finding entries without effort setting.
* org.el (org-extract-attributes-from-string): New function.
* org-exp.el (org-export-splice-attributes): New function.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-mouse.el: XEmacs compatibility fixes
* org.el (org-modules): Add org-inlinetasks.el
(org-cycle): Implement limiting level on cycling.
(org-move-subtree-down): Fix bug with swapping subtrees at end of
buffer.
* org-inlinetask.el: New file.
* org-protocol.el: New file.
* org.el (org-emphasis-regexp-components): Allow braces in
emphasis pre and post match.
* org-footnote.el (org-footnote-normalize): When only dorting, do
not insert inline notes at the end.
* org.el (org-require-autoloaded-modules): Add org-docbook.el.
* org-docbook.el: New file.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-reftex-citation): New command.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-agenda.el (org-agenda-cmp-user-defined): New option.
(org-sorting-choice, org-agenda-sorting-strategy): Add the new
sorting options.
(org-entries-lessp): Apply the new sorting option.
* org.el (org-block-todo-from-children-or-siblings): Fix bug in
blocker code, when an older sibling has children.
* org-mac-message.el (org-mac-message-get-link): Improve getting
links from multiple selected messages.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-remember.el (org-remember-finalize): Do not set buffer file
name to nil.
(org-remember-handler): Mark buffer as unmodified.
(org-remember-handler): Delete backup file and show message about
remaining backup files.
(org-remember-auto-remove-backup-files): New option.
* org.el (org-store-link): Use buffer name as link description in
w3-mode buffers.
(org-ido-switchb): Fix argument bug for completion.
* org-remember.el (org-remember-apply-template): Set local
variable `auto-save-visited-file-name' instead of global one.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-agenda.el (org-agenda-get-todos): Fix bug with match-data.
(org-agenda-get-todos): Mark file tags as inherited.
(org-agenda-list): Always search diary lines for a time.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-feed.el: New file.
* org-exp.el (org-export-as-html): Close local lists depending on
indentation, also when starting a table.
* org-remember.el (org-remember-backup-directory)
(org-remember-backup-name): New internal variable.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-clock.el (org-clock-out-if-current): Make buffer detection
work in indirect buffers as well.
* org.el (org-emphasis-regexp-components): Add the exxclamation
mark to the post-emphasis characters.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-read-date-minibiffer-septup-hook): New hook.
(org-read-date): Run the new hook.
* org-mac-message.el (org-mac-flagged-mail): New group.
(org-mac-mail-account): New variable.
(org-mac-create-flagged-mail, org-mac-insert-flagged-mail): New
commands.
* org-remember.el (org-remember-backup-directory): New variable.
(org-remember-apply-template): Write file to backup directory.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-mouse.el (org-mouse-todo-menu): New function.
(org-mouse-todo-keywords): Function removed.
(org-mouse-context-menu): Use `org-mouse-todo-menu'.
* org-table.el (org-table-beginning-of-field)
(org-table-end-of-field): New commands
(org-table-previous-field, org-table-beginning-of-field): Better
error messages.
(orgtbl-setup): Include `M-a' and `M-e'.
* org.el (org-backward-sentence, org-forward-sentence): New
commands.
* org-colview.el (org-colview-initial-truncate-line-value): New
variable.
(org-columns-remove-overlays): Restore the value of `truncate-lines'.
(org-columns): Remember the value of `truncate-lines'.
* org-colview-xemacs.el (org-colview-initial-truncate-line-value):
New variable.
(org-columns-remove-overlays): Restore the value of
`truncate-lines'.
(org-columns): Remember the value of `truncate-lines'.
* org.el (org-columns-skip-arrchived-trees): New option.
* org-agenda.el (org-agenda-export-html-style): Define color for
org-agenda-done face.
(org-search-view, org-agenda-get-todos, org-agenda-get-progress)
(org-agenda-get-deadlines, org-agenda-get-scheduled): Use new face.
* org.el (org-scan-tags): Use the new face.
* org-faces.el (org-agenda-done): New face.
* org.el (org-scan-tags): Test the value org
`org-tags-match-list-sublevels'.
(org-tags-match-list-sublevels): New allowed value: indented.
* org-latex.el (org-export-latex-make-header): Apply macros
in header.
* org-exp.el (org-export-apply-macros-in-string): New function.
* org-latex.el (org-export-latex-list-parameters): Fix bug
with the definition of a checked box.
* org-clock.el (org-clock-find-position): Fix drawer indentations.
* org-latex.el (org-export-latex-low-levels): More options
for how to process lower levels in LaTeX.
(org-export-latex-subcontent): Better treatment for lists as a
means of publishing lower levels.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-set-font-lock-defaults): Use new checkbox face.
* org-faces.el (org-checkbox): New face.
* org-exp.el (org-export-html-preprocess): Only create LaTeX
fragement images if there is an export file.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-agenda.el (org-stuck-projects): Document that the subtree of
projects that are not stuck will now be searched for stuck
sub-projects.
(org-agenda-skip-entry-when-regexp-matches)
(org-agenda-skip-entry-when-regexp-matches-in-subtree): New functions.
(org-agenda-list-stuck-projects): Use
`org-agenda-skip-entry-when-regexp-matches-in-subtree'.
* org-latex.el (org-export-latex-preprocess): Improve
export of verses.
* org-exp.el (org-export-as-html): Implement centering as a div
rather than a paragraph. Do a better job with line-end in verse
environments.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-open-at-point): Fix tags searches by mouse click.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-latex.el (org-export-latex-preprocess): Implement the
centering markup.
* org-exp.el (org-export-mark-blockquote-verse-center): Renamed
from `org-export-mark-blockquote-and-verse'.
(org-export-as-html): Implement the centering markup.
* org-latex.el (org-export-latex-tables): Fix vertical
lines in tables.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-read-date-history): New variable.
(org-read-date): Use new history variable.
(org-toggle-heading): Fix bug when used before first headline.
(org-store-log-note): Remove drawer if empty while note is
aborted.
(org-remove-empty-drawer-at): New function.
(org-check-after-date): New command.
(org-sparse-tree): New sparse tree command "a".
* org-exp.el (org-export-as-ascii): Improve export of plain lists.
2009-08-06 Bastien Guerry <bzg@altern.org>
* org.el (org-toggle-fixed-width-section): Bug fix: insert a
column and a space, not only a column.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-latex.el (org-export-latex-emphasis-alist): Better
defaults for verbose emphasis.
(org-export-latex-emph-format): New function.
(org-export-latex-fontify): Call `org-export-latex-emph-format'.
* org-agenda.el (org-agenda-menu): Add new commands to menu.
(org-agenda-do-date-later, org-agenda-do-date-earlier)
(org-agenda-date-later-minutes, org-agenda-date-earlier-minutes)
(org-agenda-date-later-hours, org-agenda-date-earlier-hours): New
commands.
* org.el (org-timestamp-change): Move end-time along with start
time.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-exp.el (org-export-target-internal-links)
(org-export-as-html): Protect links specified as #name.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-clone-subtree-with-time-shift): New command.
* org-latex.el (org-export-latex-special-chars)
(org-export-latex-treat-sub-super-char): Fix subscript export.
* org-exp.el (org-create-multibrace-regexp): Do not add
backslashes to the class.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-colview.el (org-columns-map): Better functions for moving up
and down a row, even if `truncate-line' is nil.
* org.el (org-insert-todo-heading): Make sure the keyword is
inserted at the correct position.
* org-publish.el (org-publish-project-alist)
(org-publish-projects, org-publish-org-index): Change default anme
for the index of file names to "sitemap.org".
* org-latex.el (org-export-latex-tables): Use
`org-split-string', for Emacs 21 compatibility.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-agenda.el (org-agenda-log-mode-items): Improve docstring.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-exp.el (org-export-page-description)
(org-export-page-keywords): New variables.
(org-export-plist-vars): Add entries for :keywords and
:description.
(org-infile-export-plist): Parse for new keywords.
(org-get-current-options): Add new keywords
(org-export-as-html): Publish description and keywords.
* org-agenda.el (org-agenda-add-entry-text-descriptive-links): New
option.
(org-agenda-add-entry-text): Honor
`org-agenda-add-entry-text-descriptive-links'.
* org-latex.el (org-export-latex-preprocess): Make all
external preprocess functions use a PARAMETER arg.
* org-exp.el (org-export-preprocess-string)
(org-export-select-backend-specific-text)
(org-export-format-source-code-or-example)
(org-format-org-table-html): Support docbook export.
(org-export-preprocess-string): Make all external preprocess
functions use a PARAMETER arg.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-exp.el (org-export-html-style-include-scripts): New option.
(org-export-plist-vars): Add new option
`org-export-html-style-include-scripts'.
(org-export-as-html): Honor new option
`org-export-html-style-include-scripts'.
(org-export-html-scripts, org-export-html-style-default): Fix
xml issues with the Safari browser.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-publish.el (org-publish-attachment): Only copy file when the
directories differ.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-clock.el (org-clocktable-steps): Use inactive time stamps
for clocktable steps.
* org.el (org-additional-option-like-keywords): Add two more
keywords.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-exp.el (org-export-format-source-code-or-example): Mark
temporary buffer unmodified, so that it will be killed even if
mode like message mode has decided to assign a file name.
* org.el (org-scan-tags): Improve tag inheritance.
(org-scan-tags, org-make-tags-matcher): Make tag comparison
case-sensitive.
(org-scan-tags): Use the internal tags list instead of creating it
from scratch.
(org-trust-scanner-tags, org-scanner-tags): New variables.
(org-scan-tags): Set `org-scanner-tags'.
(org-get-tags-at): Take advantage of `org-trust-scanner-tags'.
(org-map-entries): Document the possible speedup using scanner
tags.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-add-planning-info): Fix bug with looking for keyword
only at column 0.
* org-agenda.el (org-agenda-custom-commands-local-options): Add
option for tags filter preset.
(org-prepare-agenda): Store filter preset as a property on the
filter variable.
(org-finalize-agenda): Call the filter, if there is a preset.
(org-agenda-filter-by-tag): Filter again after clearing the
filter, when there still is a preset.
(org-agenda-filter-make-matcher, org-agenda-set-mode-name):
Include the preset filter.
(org-agenda-redo): Apply the filter again, also the preset filter.
* org-exp.el (org-export-as-html): Use IDs in the correct way.
* org.el (org-uuidgen-p): New funtion.
* org-agenda.el (org-agenda-fontify-priorities): New default value
`cookies'.
(org-agenda-fontify-priorities): Renamed from
org-fontify-priorities.
* org.el (org-set-font-lock-defaults): Call
`org-font-lock-add-priority-faces'.
(org-font-lock-add-priority-faces): New function.
* org-faces.el: (org-set-tag-faces): New option.
(org-priority-faces): New variable.
* org-exp.el (org-export-as-html): Add a "content" div around the
entire content of the body tag.
(org-export-html-get-bibliography): New function.
(org-export-html-validation-link): New variable.
(org-export-as-html): Add validation link to exported page.
* org.el (org-match-sparse-tree): Renamed from
`org-tags-sparse-tree'.
(org-tags-sparse-tree): New alias.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-get-valid-level): Catch the case where the level
change is nil.
* org-clock.el (org-clock-find-position): Better indentation of
new clock drawers.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-agenda.el (org-agenda-quit): Delete window only when the
frame-setup was not `current-window'.
* org.el (org-tag-persistent-alist): New option.
(org-startup-options): Add keyword `noptag'.
(org-fast-todo-selection): Handle :newline correctly.
(org-set-tags): Handle :newline correctly.
(org-fast-tag-selection): Handle :newline correctly.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-exp.el (org-export-as-ascii): Reverse link buffer before
outputting it.
(org-export-ascii-push-links): Fix bug with pussing links into the
export buffer.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-archive.el (org-archive-subtree): Do not add 1 to level if
pasting at top level.
* org-bbdb.el: Improve documentation.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-list.el (org-insert-item): Only consider insert empty lines
is `org-empty-line-terminates-plain-lists' is not nil.
* org.el (org-blank-before-new-entry): Mention the dependence on
`org-empty-line-terminates-plain-lists' in the docstring.
* org-publish.el (org-publish-get-project-from-filename): New
optional argument UP. Only find the top project if UP is set.
(org-publish-current-project): Find the top encloding project.
* org-agenda.el (org-agenda-before-write-hook)
(org-agenda-add-entry-text-maxlines): New options.
(org-write-agenda): Run the new hook in the temporary buffer.
(org-agenda-add-entry-text): New function.
(org-write-agenda): Implement PDF export, using ps2pdf.
* org.el (org-global-properties-fixed, org-global-properties):
Improve documentation string.
* org-exp.el (org-export-ascii-links-to-notes): New option.
(org-export-as-ascii): Handle links better.
(org-export-ascii-wrap, org-export-ascii-push-links): New
functions.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-agenda.el (org-agenda): Make prefix arg optional.
(org-agenda-search-headline-for-time): New option.
(org-format-agenda-item): Honor
`org-agenda-search-headline-for-time'.
* org-table.el (orgtbl-self-insert-command): Cluster undo for 20
characters.
* org.el (org-self-insert-cluster-for-undo): New option.
(org-self-insert-command): Cluster undo for 20 characters.
(org-self-insert-command-undo-counter): New variable.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-exp.el (org-export-as-html): Fix problem with closing colone
example.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org-latex.el (org-export-as-latex)
(org-export-latex-first-lines): Avoid modification flag when
adding or removing text properties.
(org-export-latex-fontify): Catch error when org-emph-alist has
entries that are not defined for LaTeX export.
* org-export-latex.el: renamed to org-latex.el
* org-latex.el: renamed from org-export-latex.el
* org.el (orgstruct++-mode): New function.
(turn-on-orgstruct++): Call `orgstruct++-mode'.
(org-context-p): Allow detecting item context after the first line
of an item.
(orgstruct-make-binding): Detect if item-body context should be
seen.
(orgstruct-is-++): New variable.
(org-add-planning-info): Catch the case when there is no planning
info yet and the call does not want to add anything, only maybe
tries to remove something.
(org-special-ctrl-a/e): All value to be a cons cell with separate
settings for `C-a. and `C-e'.
(org-beginning-of-line, org-end-of-line): Honor separate values
for `C-a' and `C-e'.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-reload): New command.
2009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
* org.texi (Publishing action): Improve documentation of file
names when publishing to the source directory.
(Clean view): Document `org-indent-mode'.
(Clocking work time): Add documentation for the
new :timetamp option when creating a clock report.
(Paragraphs): Fix many typos.
(Plain lists): Remove duplicate explanation about the
`C-c *' command.
(Literal examples): Update to reflect the new behavior
of the -n -r -k switches when exporting source code examples.
(Structure editing): Add information about `C-c *',
converting a plain list into a list of Org items.
(Remember): Small rephrasing of the paragraph
describing remember.el. Also mentioned that remember.el is part
of Emacs 23, not Emacs 22.
(Clocking work time): Add documentation about
displaying the current clocking time against the effort estimate.
Also add a footnote about using `org-clock-in-prepare-hook' to add
an effort estimate on the fly, just before clocking it.
(Footnotes): Document automatic renumbering and
sorting.
(Agenda commands): Document new bulk commands.
(Plain lists): Document new behavior of
`org-cycle-include-plain-lists'.
Hyphenation only in TeX.
(Clocking work time): Document the key to update effort
estimates.
(Clocking work time): Document the clock time display.
(Structure editing, TODO basics): Document new
variables.
(Column attributes): Document new colciew operators.
(Publishing options): Document :xml-declaration.
(Tracking TODO state changes): Document the
LOG_INTO_DRAWER property.
(Literal examples): Document the new implementation for
editing source code.
(Publishing action): Mention the new publishing
function, to publish an Org source file.
(Publishing links): Mention how to link to an Org source file.
(Macro replacement): Document new macros.
(Handling links): Document type-specific completion
when inserting links.
(Structure editing, Plain lists): Improve documentation
on sorting.
(Internal links): Document custom ids for links.
(Handling links): Document custom ids for links.
(CSS support): Document new class.
(Refiling notes): Document the possibility to create new nodes
during refiling.
(Agenda commands): Document the "?" operator to find
tasks without effort setting.
(Exporting agenda information): Section moved.
(RSS Feeds): New section.
(Built-in table editor): Document M-e and M-a navigate
inside table field.
(Stuck projects): Docment that projects identified as
un-stuck will still be searchd for stuck sub-projects.
(Paragraphs): Document centering.
(Creating timestamps, Agenda commands): Document new
behavior when changing time stamps.
(Structure editing): Document the new command
`org-clone-subtree-with-time-shift'.
(Publishing): Refresh this chapter.
(Export options, Export options, In-buffer settings):
Document the new keywords.
(Matching tags and properties): Collect all
documentation about tags/property matches here.
(Setting tags): Document `org-tag-persistent-alist'.
(Weekly/daily agenda): New section.
(Orgstruct mode): Describe `orgstruct++-mode'.
(Drawers): Mention the LOGBOOK drawer.
(Export options, Sectioning structure): Document the
#+LEATEX_HEADER in-buffer setting.
(Bugs): Section removed.
(Hooks): New section.
(Add-on packages): Moved here from old location.
(Context-sensitive commands): New section.
(Setting tags): Document newline option.
(Global TODO list, Matching tags and properties):
Mention more variables.
(Checkboxes): Update to changed command behavior.
author | Carsten Dominik <dominik@science.uva.nl> |
---|---|
date | Thu, 06 Aug 2009 09:14:10 +0000 |
parents | 6d71fc980cde |
children | 86b7fe7d1d8f |
comparison
equal
deleted
inserted
replaced
104163:a4d9f7df78e8 | 104164:ac1a55cc2c38 |
---|---|
5 ;; | 5 ;; |
6 ;; Author: Carsten Dominik <carsten at orgmode dot org> | 6 ;; Author: Carsten Dominik <carsten at orgmode dot org> |
7 ;; Bastien Guerry <bzg AT altern DOT org> | 7 ;; Bastien Guerry <bzg AT altern DOT org> |
8 ;; Keywords: outlines, hypermedia, calendar, wp | 8 ;; Keywords: outlines, hypermedia, calendar, wp |
9 ;; Homepage: http://orgmode.org | 9 ;; Homepage: http://orgmode.org |
10 ;; Version: 6.21b | 10 ;; Version: 6.29c |
11 ;; | 11 ;; |
12 ;; This file is part of GNU Emacs. | 12 ;; This file is part of GNU Emacs. |
13 ;; | 13 ;; |
14 ;; GNU Emacs is free software: you can redistribute it and/or modify | 14 ;; GNU Emacs is free software: you can redistribute it and/or modify |
15 ;; it under the terms of the GNU General Public License as published by | 15 ;; it under the terms of the GNU General Public License as published by |
34 (require 'org-macs) | 34 (require 'org-macs) |
35 (require 'org-compat) | 35 (require 'org-compat) |
36 | 36 |
37 (defvar org-blank-before-new-entry) | 37 (defvar org-blank-before-new-entry) |
38 (defvar org-M-RET-may-split-line) | 38 (defvar org-M-RET-may-split-line) |
39 (defvar org-complex-heading-regexp) | |
40 (defvar org-odd-levels-only) | |
39 | 41 |
40 (declare-function org-invisible-p "org" ()) | 42 (declare-function org-invisible-p "org" ()) |
41 (declare-function org-on-heading-p "org" (&optional invisible-ok)) | 43 (declare-function org-on-heading-p "org" (&optional invisible-ok)) |
42 (declare-function outline-next-heading "outline" ()) | 44 (declare-function outline-next-heading "outline" ()) |
43 (declare-function outline-back-to-heading "outline" (&optional invisible-ok)) | 45 (declare-function outline-back-to-heading "outline" (&optional invisible-ok)) |
46 (declare-function org-skip-whitespace "org" ()) | 48 (declare-function org-skip-whitespace "org" ()) |
47 (declare-function org-trim "org" (s)) | 49 (declare-function org-trim "org" (s)) |
48 (declare-function org-get-indentation "org" (&optional line)) | 50 (declare-function org-get-indentation "org" (&optional line)) |
49 (declare-function org-timer-item "org-timer" (&optional arg)) | 51 (declare-function org-timer-item "org-timer" (&optional arg)) |
50 (declare-function org-combine-plists "org" (&rest plists)) | 52 (declare-function org-combine-plists "org" (&rest plists)) |
53 (declare-function org-entry-get "org" (pom property &optional inherit)) | |
54 (declare-function org-narrow-to-subtree "org" ()) | |
55 (declare-function org-show-subtree "org" ()) | |
51 | 56 |
52 (defgroup org-plain-lists nil | 57 (defgroup org-plain-lists nil |
53 "Options concerning plain lists in Org-mode." | 58 "Options concerning plain lists in Org-mode." |
54 :tag "Org Plain lists" | 59 :tag "Org Plain lists" |
55 :group 'org-structure) | 60 :group 'org-structure) |
56 | 61 |
57 (defcustom org-cycle-include-plain-lists nil | 62 (defcustom org-cycle-include-plain-lists t |
58 "Non-nil means, include plain lists into visibility cycling. | 63 "When t, make TAB cycle visibility on plain list items. |
59 This means that during cycling, plain list items will *temporarily* be | 64 |
60 interpreted as outline headlines with a level given by 1000+i where i is the | 65 Cycling plain lists works only when the cursor is on a plain list |
61 indentation of the bullet. In all other operations, plain list items are | 66 item. When the cursor is on an outline heading, plain lists are |
62 not seen as headlines. For example, you cannot assign a TODO keyword to | 67 treated as text. This is the most stable way of handling this, |
63 such an item." | 68 which is why it is the default. |
69 | |
70 When this is the symbol `integrate', then during cycling, plain | |
71 list items will *temporarily* be interpreted as outline headlines | |
72 with a level given by 1000+i where i is the indentation of the | |
73 bullet. This setting can lead to strange effects when switching | |
74 visibility to `children', because the first \"child\" in a | |
75 subtree decides what children should be listed. If that first | |
76 \"child\" is a plain list item with an implied large level | |
77 number, all true children and grand children of the outline | |
78 heading will be exposed in a children' view." | |
64 :group 'org-plain-lists | 79 :group 'org-plain-lists |
65 :type 'boolean) | 80 :type '(choice |
81 (const :tag "Never" nil) | |
82 (const :tag "With cursor in plain list (recommended)" t) | |
83 (const :tag "As children of outline headings" integrate))) | |
84 | |
85 (defcustom org-list-demote-modify-bullet nil | |
86 "Default bullet type installed when demoting an item. | |
87 This is an association list, for each bullet type, this alist will point | |
88 to the bulled that should be used when this item is demoted." | |
89 :group 'org-plain-lists | |
90 :type '(repeat | |
91 (cons | |
92 (choice :tag "If the current bullet is " | |
93 (const "-") | |
94 (const "+") | |
95 (const "*") | |
96 (const "1.") | |
97 (const "1)")) | |
98 (choice :tag "demotion will change it to" | |
99 (const "-") | |
100 (const "+") | |
101 (const "*") | |
102 (const "1.") | |
103 (const "1)"))))) | |
66 | 104 |
67 (defcustom org-plain-list-ordered-item-terminator t | 105 (defcustom org-plain-list-ordered-item-terminator t |
68 "The character that makes a line with leading number an ordered list item. | 106 "The character that makes a line with leading number an ordered list item. |
69 Valid values are ?. and ?\). To get both terminators, use t. While | 107 Valid values are ?. and ?\). To get both terminators, use t. While |
70 ?. may look nicer, it creates the danger that a line with leading | 108 ?. may look nicer, it creates the danger that a line with leading |
101 :group 'org-plain-lists | 139 :group 'org-plain-lists |
102 :type 'boolean) | 140 :type 'boolean) |
103 | 141 |
104 (defcustom org-provide-checkbox-statistics t | 142 (defcustom org-provide-checkbox-statistics t |
105 "Non-nil means, update checkbox statistics after insert and toggle. | 143 "Non-nil means, update checkbox statistics after insert and toggle. |
106 When this is set, checkbox statistics is updated each time you either insert | 144 When this is set, checkbox statistics is updated each time you |
107 a new checkbox with \\[org-insert-todo-heading] or toggle a checkbox | 145 either insert a new checkbox with \\[org-insert-todo-heading] or |
108 with \\[org-ctrl-c-ctrl-c\\]." | 146 toggle a checkbox with \\[org-ctrl-c-ctrl-c]." |
147 :group 'org-plain-lists | |
148 :type 'boolean) | |
149 | |
150 (defcustom org-hierarchical-checkbox-statistics t | |
151 "Non-nil means, checkbox statistics counts only the state of direct children. | |
152 When nil, all boxes below the cookie are counted." | |
109 :group 'org-plain-lists | 153 :group 'org-plain-lists |
110 :type 'boolean) | 154 :type 'boolean) |
111 | 155 |
112 (defcustom org-description-max-indent 20 | 156 (defcustom org-description-max-indent 20 |
113 "Maximum indentation for the second line of a description list. | 157 "Maximum indentation for the second line of a description list. |
115 5 characters instead." | 159 5 characters instead." |
116 :group 'org-plain-lists | 160 :group 'org-plain-lists |
117 :type 'integer) | 161 :type 'integer) |
118 | 162 |
119 (defvar org-list-beginning-re | 163 (defvar org-list-beginning-re |
120 "^\\([ \t]*\\)\\([-+*]\\|[0-9]+[.)]\\) +\\(.*\\)$") | 164 "^\\([ \t]*\\)\\([-+]\\|[0-9]+[.)]\\) +\\(.*\\)$") |
121 | 165 |
122 (defcustom org-list-radio-list-templates | 166 (defcustom org-list-radio-list-templates |
123 '((latex-mode "% BEGIN RECEIVE ORGLST %n | 167 '((latex-mode "% BEGIN RECEIVE ORGLST %n |
124 % END RECEIVE ORGLST %n | 168 % END RECEIVE ORGLST %n |
125 \\begin{comment} | 169 \\begin{comment} |
157 (goto-char (point-at-bol)) | 201 (goto-char (point-at-bol)) |
158 (looking-at | 202 (looking-at |
159 (cond | 203 (cond |
160 ((eq llt t) "\\([ \t]*\\([-+]\\|\\([0-9]+[.)]\\)\\)\\|[ \t]+\\*\\)\\( \\|$\\)") | 204 ((eq llt t) "\\([ \t]*\\([-+]\\|\\([0-9]+[.)]\\)\\)\\|[ \t]+\\*\\)\\( \\|$\\)") |
161 ((= llt ?.) "\\([ \t]*\\([-+]\\|\\([0-9]+\\.\\)\\)\\|[ \t]+\\*\\)\\( \\|$\\)") | 205 ((= llt ?.) "\\([ \t]*\\([-+]\\|\\([0-9]+\\.\\)\\)\\|[ \t]+\\*\\)\\( \\|$\\)") |
162 ((= llt ?\)) "\\([ \t]*\\([-+]\\|\\([0-9]+))\\)\\|[ \t]+\\*\\)\\( \\|$\\)") | 206 ((= llt ?\)) "\\([ \t]*\\([-+]\\|\\([0-9]+)\\)\\)\\|[ \t]+\\*\\)\\( \\|$\\)") |
163 (t (error "Invalid value of `org-plain-list-ordered-item-terminator'"))))))) | 207 (t (error "Invalid value of `org-plain-list-ordered-item-terminator'"))))))) |
164 | 208 |
165 (defun org-at-item-bullet-p () | 209 (defun org-at-item-bullet-p () |
166 "Is point at the bullet of a plain list item?" | 210 "Is point at the bullet of a plain list item?" |
167 (and (org-at-item-p) | 211 (and (org-at-item-p) |
206 (save-match-data | 250 (save-match-data |
207 (string-match "^[-+*][ \t]+[0-9]+:[0-9]+:[0-9]+$" | 251 (string-match "^[-+*][ \t]+[0-9]+:[0-9]+:[0-9]+$" |
208 descp)))) | 252 descp)))) |
209 (eow (save-excursion (beginning-of-line 1) (looking-at "[ \t]*") | 253 (eow (save-excursion (beginning-of-line 1) (looking-at "[ \t]*") |
210 (match-end 0))) | 254 (match-end 0))) |
211 (blank-a (cdr (assq 'plain-list-item org-blank-before-new-entry))) | 255 (blank-a (if org-empty-line-terminates-plain-lists |
256 nil | |
257 (cdr (assq 'plain-list-item org-blank-before-new-entry)))) | |
212 (blank (if (eq blank-a 'auto) empty-line-p blank-a)) | 258 (blank (if (eq blank-a 'auto) empty-line-p blank-a)) |
213 pos) | 259 pos) |
214 (if descp (setq checkbox nil)) | 260 (if descp (setq checkbox nil)) |
215 (if timerp | 261 (if timerp |
216 (progn (org-timer-item) t) | 262 (progn (org-timer-item) t) |
249 (looking-at "\\[[- X]\\]")))) | 295 (looking-at "\\[[- X]\\]")))) |
250 | 296 |
251 (defun org-toggle-checkbox (&optional toggle-presence) | 297 (defun org-toggle-checkbox (&optional toggle-presence) |
252 "Toggle the checkbox in the current line. | 298 "Toggle the checkbox in the current line. |
253 With prefix arg TOGGLE-PRESENCE, add or remove checkboxes. | 299 With prefix arg TOGGLE-PRESENCE, add or remove checkboxes. |
300 With double prefix, set checkbox to [-]. | |
254 When there is an active region, toggle status or presence of the checkbox | 301 When there is an active region, toggle status or presence of the checkbox |
255 in the first line, and make every item in the region have the same | 302 in the first line, and make every item in the region have the same |
256 status or presence, respectively. | 303 status or presence, respectively. |
257 If the cursor is in a headline, apply this to all checkbox items in the | 304 If the cursor is in a headline, apply this to all checkbox items in the |
258 text below the heading." | 305 text below the heading." |
259 (interactive "P") | 306 (interactive "P") |
260 (catch 'exit | 307 (catch 'exit |
261 (let (beg end status first-present first-status) | 308 (let (beg end status first-present first-status blocked) |
262 (cond | 309 (cond |
263 ((org-region-active-p) | 310 ((org-region-active-p) |
264 (setq beg (region-beginning) end (region-end))) | 311 (setq beg (region-beginning) end (region-end))) |
265 ((org-on-heading-p) | 312 ((org-on-heading-p) |
266 (setq beg (point) end (save-excursion (outline-next-heading) (point)))) | 313 (setq beg (point) end (save-excursion (outline-next-heading) (point)))) |
267 ((org-at-item-checkbox-p) | 314 ((org-at-item-checkbox-p) |
268 (let ((pos (point))) | 315 (save-excursion |
269 (if toggle-presence | 316 (if (equal toggle-presence '(4)) |
270 (progn | 317 (progn |
271 (replace-match "") | 318 (replace-match "") |
272 (goto-char (match-beginning 0)) | 319 (goto-char (match-beginning 0)) |
273 (just-one-space)) | 320 (just-one-space)) |
321 (when (setq blocked (org-checkbox-blocked-p)) | |
322 (error "Checkbox blocked because of unchecked box in line %d" | |
323 blocked)) | |
274 (replace-match | 324 (replace-match |
275 (cond ((member (match-string 0) '("[ ]" "[-]")) "[X]") | 325 (cond ((equal toggle-presence '(16)) "[-]") |
326 ((member (match-string 0) '("[ ]" "[-]")) "[X]") | |
276 (t "[ ]")) | 327 (t "[ ]")) |
277 t t)) | 328 t t))) |
278 (goto-char pos)) | |
279 (throw 'exit t)) | 329 (throw 'exit t)) |
280 ((org-at-item-p) | 330 ((org-at-item-p) |
281 ;; add a checkbox | 331 ;; add a checkbox |
282 (save-excursion | 332 (save-excursion |
283 (goto-char (match-end 0)) | 333 (goto-char (match-end 0)) |
310 (replace-match | 360 (replace-match |
311 (if first-status "[ ]" "[X]") t t))) | 361 (if first-status "[ ]" "[X]") t t))) |
312 (beginning-of-line 2))))) | 362 (beginning-of-line 2))))) |
313 (org-update-checkbox-count-maybe)) | 363 (org-update-checkbox-count-maybe)) |
314 | 364 |
365 (defun org-reset-checkbox-state-subtree () | |
366 "Reset all checkboxes in an entry subtree." | |
367 (interactive "*") | |
368 (save-restriction | |
369 (save-excursion | |
370 (org-narrow-to-subtree) | |
371 (org-show-subtree) | |
372 (goto-char (point-min)) | |
373 (let ((end (point-max))) | |
374 (while (< (point) end) | |
375 (when (org-at-item-checkbox-p) | |
376 (replace-match "[ ]" t t)) | |
377 (beginning-of-line 2)))) | |
378 (org-update-checkbox-count-maybe))) | |
379 | |
380 (defun org-checkbox-blocked-p () | |
381 "Is the current checkbox blocked from for being checked now? | |
382 A checkbox is blocked if all of the following conditions are fulfilled: | |
383 | |
384 1. The checkbox is not checked already. | |
385 2. The current entry has the ORDERED property set. | |
386 3. There is an unchecked checkbox in this entry before the current line." | |
387 (catch 'exit | |
388 (save-match-data | |
389 (save-excursion | |
390 (unless (org-at-item-checkbox-p) (throw 'exit nil)) | |
391 (when (equal (match-string 0) "[X]") | |
392 ;; the box is already checked! | |
393 (throw 'exit nil)) | |
394 (let ((end (point-at-bol))) | |
395 (condition-case nil (org-back-to-heading t) | |
396 (error (throw 'exit nil))) | |
397 (unless (org-entry-get nil "ORDERED") (throw 'exit nil)) | |
398 (if (re-search-forward "^[ \t]*[-+*0-9.)] \\[[- ]\\]" end t) | |
399 (org-current-line) | |
400 nil)))))) | |
401 | |
402 (defvar org-checkbox-statistics-hook nil | |
403 "Hook that is run whenever Org thinks checkbox statistics should be updated. | |
404 This hook runs even if `org-provide-checkbox-statistics' is nil, to it can | |
405 be used to implement alternative ways of collecting statistics information.") | |
406 | |
315 (defun org-update-checkbox-count-maybe () | 407 (defun org-update-checkbox-count-maybe () |
316 "Update checkbox statistics unless turned off by user." | 408 "Update checkbox statistics unless turned off by user." |
317 (when org-provide-checkbox-statistics | 409 (when org-provide-checkbox-statistics |
318 (org-update-checkbox-count))) | 410 (org-update-checkbox-count)) |
411 (run-hooks 'org-checkbox-statistics-hook)) | |
319 | 412 |
320 (defun org-update-checkbox-count (&optional all) | 413 (defun org-update-checkbox-count (&optional all) |
321 "Update the checkbox statistics in the current section. | 414 "Update the checkbox statistics in the current section. |
322 This will find all statistic cookies like [57%] and [6/12] and update them | 415 This will find all statistic cookies like [57%] and [6/12] and update them |
323 with the current numbers. With optional prefix argument ALL, do this for | 416 with the current numbers. With optional prefix argument ALL, do this for |
333 (re "\\(\\(\\[[0-9]*%\\]\\)\\|\\(\\[[0-9]*/[0-9]*\\]\\)\\)") | 426 (re "\\(\\(\\[[0-9]*%\\]\\)\\|\\(\\[[0-9]*/[0-9]*\\]\\)\\)") |
334 (re-box "^[ \t]*\\([-+*]\\|[0-9]+[.)]\\) +\\(\\[[- X]\\]\\)") | 427 (re-box "^[ \t]*\\([-+*]\\|[0-9]+[.)]\\) +\\(\\[[- X]\\]\\)") |
335 (re-find (concat re "\\|" re-box)) | 428 (re-find (concat re "\\|" re-box)) |
336 beg-cookie end-cookie is-percent c-on c-off lim | 429 beg-cookie end-cookie is-percent c-on c-off lim |
337 eline curr-ind next-ind continue-from startsearch | 430 eline curr-ind next-ind continue-from startsearch |
431 (recursive | |
432 (or (not org-hierarchical-checkbox-statistics) | |
433 (string-match "\\<recursive\\>" | |
434 (or (org-entry-get nil "COOKIE_DATA") "")))) | |
338 (cstat 0) | 435 (cstat 0) |
339 ) | 436 ) |
340 (when all | 437 (when all |
341 (goto-char (point-min)) | 438 (goto-char (point-min)) |
342 (outline-next-heading) | 439 (outline-next-heading) |
343 (setq beg (point) end (point-max))) | 440 (setq beg (point) end (point-max))) |
344 (goto-char end) | 441 (goto-char end) |
345 ;; find each statistic cookie | 442 ;; find each statistics cookie |
346 (while (re-search-backward re-find beg t) | 443 (while (and (re-search-backward re-find beg t) |
444 (not (save-match-data | |
445 (and (org-on-heading-p) | |
446 (string-match "\\<todo\\>" | |
447 (downcase | |
448 (or (org-entry-get | |
449 nil "COOKIE_DATA") | |
450 ""))))))) | |
347 (setq beg-cookie (match-beginning 1) | 451 (setq beg-cookie (match-beginning 1) |
348 end-cookie (match-end 1) | 452 end-cookie (match-end 1) |
349 cstat (+ cstat (if end-cookie 1 0)) | 453 cstat (+ cstat (if end-cookie 1 0)) |
350 startsearch (point-at-eol) | 454 startsearch (point-at-eol) |
351 continue-from (match-beginning 0) | 455 continue-from (match-beginning 0) |
363 (if (re-search-forward re-box lim t) | 467 (if (re-search-forward re-box lim t) |
364 (progn | 468 (progn |
365 (org-beginning-of-item) | 469 (org-beginning-of-item) |
366 (setq curr-ind (org-get-indentation)) | 470 (setq curr-ind (org-get-indentation)) |
367 (setq next-ind curr-ind) | 471 (setq next-ind curr-ind) |
368 (while (and (bolp) (org-at-item-p) (= curr-ind next-ind)) | 472 (while (and (bolp) (org-at-item-p) |
473 (if recursive | |
474 (<= curr-ind next-ind) | |
475 (= curr-ind next-ind))) | |
369 (save-excursion (end-of-line) (setq eline (point))) | 476 (save-excursion (end-of-line) (setq eline (point))) |
370 (if (re-search-forward re-box eline t) | 477 (if (re-search-forward re-box eline t) |
371 (if (member (match-string 2) '("[ ]" "[-]")) | 478 (if (member (match-string 2) '("[ ]" "[-]")) |
372 (setq c-off (1+ c-off)) | 479 (setq c-off (1+ c-off)) |
373 (setq c-on (1+ c-on)) | 480 (setq c-on (1+ c-on)))) |
374 ) | 481 (if (not recursive) |
375 ) | 482 (org-end-of-item) |
376 (org-end-of-item) | 483 (end-of-line) |
377 (setq next-ind (org-get-indentation)) | 484 (when (re-search-forward org-list-beginning-re lim t) |
378 ))) | 485 (beginning-of-line))) |
486 (setq next-ind (org-get-indentation))))) | |
379 (goto-char continue-from) | 487 (goto-char continue-from) |
380 ;; update cookie | 488 ;; update cookie |
381 (when end-cookie | 489 (when end-cookie |
382 (delete-region beg-cookie end-cookie) | 490 (delete-region beg-cookie end-cookie) |
383 (goto-char beg-cookie) | 491 (goto-char beg-cookie) |
406 (defun org-get-checkbox-statistics-face () | 514 (defun org-get-checkbox-statistics-face () |
407 "Select the face for checkbox statistics. | 515 "Select the face for checkbox statistics. |
408 The face will be `org-done' when all relevant boxes are checked. Otherwise | 516 The face will be `org-done' when all relevant boxes are checked. Otherwise |
409 it will be `org-todo'." | 517 it will be `org-todo'." |
410 (if (match-end 1) | 518 (if (match-end 1) |
411 (if (equal (match-string 1) "100%") 'org-done 'org-todo) | 519 (if (equal (match-string 1) "100%") |
520 'org-checkbox-statistics-done | |
521 'org-checkbox-statistics-todo) | |
412 (if (and (> (match-end 2) (match-beginning 2)) | 522 (if (and (> (match-end 2) (match-beginning 2)) |
413 (equal (match-string 2) (match-string 3))) | 523 (equal (match-string 2) (match-string 3))) |
414 'org-done | 524 'org-checkbox-statistics-done |
415 'org-todo))) | 525 'org-checkbox-statistics-todo))) |
416 | 526 |
417 (defun org-beginning-of-item () | 527 (defun org-beginning-of-item () |
418 "Go to the beginning of the current hand-formatted item. | 528 "Go to the beginning of the current hand-formatted item. |
419 If the cursor is not in an item, throw an error." | 529 If the cursor is not in an item, throw an error." |
420 (interactive) | 530 (interactive) |
511 (org-beginning-of-item)) | 621 (org-beginning-of-item)) |
512 (error (goto-char pos) | 622 (error (goto-char pos) |
513 (error "On first item"))))) | 623 (error "On first item"))))) |
514 | 624 |
515 (defun org-first-list-item-p () | 625 (defun org-first-list-item-p () |
516 "Is this heading the item in a plain list?" | 626 "Is this heading the first item in a plain list?" |
517 (unless (org-at-item-p) | 627 (unless (org-at-item-p) |
518 (error "Not at a plain list item")) | 628 (error "Not at a plain list item")) |
519 (org-beginning-of-item) | 629 (save-excursion |
520 (= (point) (save-excursion (org-beginning-of-item-list)))) | 630 (org-beginning-of-item) |
631 (= (point) (save-excursion (org-beginning-of-item-list))))) | |
521 | 632 |
522 (defun org-move-item-down () | 633 (defun org-move-item-down () |
523 "Move the plain list item at point down, i.e. swap with following item. | 634 "Move the plain list item at point down, i.e. swap with following item. |
524 Subitems (items with larger indentation) are considered part of the item, | 635 Subitems (items with larger indentation) are considered part of the item, |
525 so this really moves item trees." | 636 so this really moves item trees." |
703 fmt bobp old new) | 814 fmt bobp old new) |
704 ;; find where this list begins | 815 ;; find where this list begins |
705 (org-beginning-of-item-list) | 816 (org-beginning-of-item-list) |
706 (setq bobp (bobp)) | 817 (setq bobp (bobp)) |
707 (looking-at "[ \t]*[0-9]+\\([.)]\\)") | 818 (looking-at "[ \t]*[0-9]+\\([.)]\\)") |
708 (setq fmt (concat "%d" (match-string 1))) | 819 (setq fmt (concat "%d" (or (match-string 1) "."))) |
709 (beginning-of-line 0) | 820 (beginning-of-line 0) |
710 ;; walk forward and replace these numbers | 821 ;; walk forward and replace these numbers |
711 (catch 'exit | 822 (catch 'exit |
712 (while t | 823 (while t |
713 (catch 'next | 824 (catch 'next |
724 (insert (setq new (format fmt (setq n (1+ n))))) | 835 (insert (setq new (format fmt (setq n (1+ n))))) |
725 (org-shift-item-indentation (- (length new) (length old)))))) | 836 (org-shift-item-indentation (- (length new) (length old)))))) |
726 (goto-line line) | 837 (goto-line line) |
727 (org-move-to-column col))) | 838 (org-move-to-column col))) |
728 | 839 |
729 (defun org-fix-bullet-type () | 840 (defun org-fix-bullet-type (&optional force-bullet) |
730 "Make sure all items in this list have the same bullet as the first item. | 841 "Make sure all items in this list have the same bullet as the first item. |
731 Also, fix the indentation." | 842 Also, fix the indentation." |
732 (interactive) | 843 (interactive) |
733 (unless (org-at-item-p) (error "This is not a list")) | 844 (unless (org-at-item-p) (error "This is not a list")) |
734 (let ((line (org-current-line)) | 845 (let ((line (org-current-line)) |
738 ;; find where this list begins | 849 ;; find where this list begins |
739 (org-beginning-of-item-list) | 850 (org-beginning-of-item-list) |
740 (beginning-of-line 1) | 851 (beginning-of-line 1) |
741 ;; find out what the bullet type is | 852 ;; find out what the bullet type is |
742 (looking-at "[ \t]*\\(\\S-+\\)") | 853 (looking-at "[ \t]*\\(\\S-+\\)") |
743 (setq bullet (concat (match-string 1) " ")) | 854 (setq bullet (concat (or force-bullet (match-string 1)) " ")) |
744 (if (and org-list-two-spaces-after-bullet-regexp | 855 (if (and org-list-two-spaces-after-bullet-regexp |
745 (string-match org-list-two-spaces-after-bullet-regexp bullet)) | 856 (string-match org-list-two-spaces-after-bullet-regexp bullet)) |
746 (setq bullet (concat bullet " "))) | 857 (setq bullet (concat bullet " "))) |
747 ;; walk forward and replace these numbers | 858 ;; walk forward and replace these numbers |
748 (beginning-of-line 0) | 859 (beginning-of-line 0) |
757 (if (< ind1 ind) (throw 'exit t)) | 868 (if (< ind1 ind) (throw 'exit t)) |
758 (if (not (org-at-item-p)) (throw 'exit nil)) | 869 (if (not (org-at-item-p)) (throw 'exit nil)) |
759 (skip-chars-forward " \t") | 870 (skip-chars-forward " \t") |
760 (looking-at "\\S-+ *") | 871 (looking-at "\\S-+ *") |
761 (setq oldbullet (match-string 0)) | 872 (setq oldbullet (match-string 0)) |
762 (replace-match bullet) | 873 (unless (equal bullet oldbullet) (replace-match bullet)) |
763 (org-shift-item-indentation (- (length bullet) (length oldbullet)))))) | 874 (org-shift-item-indentation (- (length bullet) (length oldbullet)))))) |
764 (goto-line line) | 875 (goto-line line) |
765 (org-move-to-column col) | 876 (org-move-to-column col) |
766 (if (string-match "[0-9]" bullet) | 877 (if (string-match "[0-9]" bullet) |
767 (org-renumber-ordered-list 1)))) | 878 (org-renumber-ordered-list 1)))) |
805 (setq pos (point-min)))) | 916 (setq pos (point-min)))) |
806 (throw 'exit t) | 917 (throw 'exit t) |
807 (when (org-at-item-p) (setq pos (point-at-bol))))))) | 918 (when (org-at-item-p) (setq pos (point-at-bol))))))) |
808 (goto-char pos))) | 919 (goto-char pos))) |
809 | 920 |
810 | |
811 (defun org-end-of-item-list () | 921 (defun org-end-of-item-list () |
812 "Go to the end of the current item list. | 922 "Go to the end of the current item list. |
813 I.e. to the text after the last item." | 923 I.e. to the text after the last item." |
814 (interactive) | 924 (interactive) |
815 (org-beginning-of-item) | 925 (org-beginning-of-item) |
820 (catch 'exit | 930 (catch 'exit |
821 (while t | 931 (while t |
822 (catch 'next | 932 (catch 'next |
823 (beginning-of-line 2) | 933 (beginning-of-line 2) |
824 (if (looking-at "[ \t]*$") | 934 (if (looking-at "[ \t]*$") |
825 (throw (if (eobp) 'exit 'next) t)) | 935 (if (eobp) |
936 (progn (setq pos (point)) (throw 'exit t)) | |
937 (throw 'next t))) | |
826 (skip-chars-forward " \t") (setq ind1 (current-column)) | 938 (skip-chars-forward " \t") (setq ind1 (current-column)) |
827 (if (or (< ind1 ind) | 939 (if (or (< ind1 ind) |
828 (and (= ind1 ind) | 940 (and (= ind1 ind) |
829 (not (org-at-item-p))) | 941 (not (org-at-item-p))) |
830 (eobp)) | 942 (eobp)) |
843 (org-indent-item (- arg))) | 955 (org-indent-item (- arg))) |
844 | 956 |
845 (defun org-indent-item (arg) | 957 (defun org-indent-item (arg) |
846 "Indent a local list item." | 958 "Indent a local list item." |
847 (interactive "p") | 959 (interactive "p") |
960 (and (org-region-active-p) (org-cursor-to-region-beginning)) | |
848 (unless (org-at-item-p) | 961 (unless (org-at-item-p) |
849 (error "Not on an item")) | 962 (error "Not on an item")) |
850 (save-excursion | 963 (let (beg end ind ind1 ind-bul delta ind-down ind-up firstp) |
851 (let (beg end ind ind1 tmp delta ind-down ind-up) | 964 (setq firstp (org-first-list-item-p)) |
965 (save-excursion | |
966 (setq end (and (org-region-active-p) (region-end))) | |
852 (if (memq last-command '(org-shiftmetaright org-shiftmetaleft)) | 967 (if (memq last-command '(org-shiftmetaright org-shiftmetaleft)) |
853 (setq beg org-last-indent-begin-marker | 968 (setq beg org-last-indent-begin-marker |
854 end org-last-indent-end-marker) | 969 end org-last-indent-end-marker) |
855 (org-beginning-of-item) | 970 (org-beginning-of-item) |
856 (setq beg (move-marker org-last-indent-begin-marker (point))) | 971 (setq beg (move-marker org-last-indent-begin-marker (point))) |
857 (org-end-of-item) | 972 (org-end-of-item) |
858 (setq end (move-marker org-last-indent-end-marker (point)))) | 973 (setq end (move-marker org-last-indent-end-marker (or end (point))))) |
859 (goto-char beg) | 974 (goto-char beg) |
860 (setq tmp (org-item-indent-positions) | 975 (setq ind-bul (org-item-indent-positions) |
861 ind (car tmp) | 976 ind (caar ind-bul) |
862 ind-down (nth 2 tmp) | 977 ind-down (car (nth 2 ind-bul)) |
863 ind-up (nth 1 tmp) | 978 ind-up (car (nth 1 ind-bul)) |
864 delta (if (> arg 0) | 979 delta (if (> arg 0) |
865 (if ind-down (- ind-down ind) 2) | 980 (if ind-down (- ind-down ind) 2) |
866 (if ind-up (- ind-up ind) -2))) | 981 (if ind-up (- ind-up ind) -2))) |
867 (if (< (+ delta ind) 0) (error "Cannot outdent beyond margin")) | 982 (if (< (+ delta ind) 0) (error "Cannot outdent beyond margin")) |
868 (while (< (point) end) | 983 (while (< (point) end) |
869 (beginning-of-line 1) | 984 (beginning-of-line 1) |
870 (skip-chars-forward " \t") (setq ind1 (current-column)) | 985 (skip-chars-forward " \t") (setq ind1 (current-column)) |
871 (delete-region (point-at-bol) (point)) | 986 (delete-region (point-at-bol) (point)) |
872 (or (eolp) (org-indent-to-column (+ ind1 delta))) | 987 (or (eolp) (org-indent-to-column (+ ind1 delta))) |
873 (beginning-of-line 2)))) | 988 (beginning-of-line 2))) |
874 (org-fix-bullet-type) | 989 (org-fix-bullet-type |
875 (org-maybe-renumber-ordered-list-safe) | 990 (and (> arg 0) |
876 (save-excursion | 991 (not firstp) |
877 (beginning-of-line 0) | 992 (cdr (assoc (cdr (nth 0 ind-bul)) org-list-demote-modify-bullet)))) |
878 (condition-case nil (org-beginning-of-item) (error nil)) | 993 (org-maybe-renumber-ordered-list-safe) |
879 (org-maybe-renumber-ordered-list-safe))) | 994 (save-excursion |
995 (beginning-of-line 0) | |
996 (condition-case nil (org-beginning-of-item) (error nil)) | |
997 (org-maybe-renumber-ordered-list-safe)))) | |
880 | 998 |
881 (defun org-item-indent-positions () | 999 (defun org-item-indent-positions () |
882 "Return indentation for plain list items. | 1000 "Return indentation for plain list items. |
883 This returns a list with three values: The current indentation, the | 1001 This returns a list with three values: The current indentation, the |
884 parent indentation and the indentation a child should have. | 1002 parent indentation and the indentation a child should have. |
885 Assumes cursor in item line." | 1003 Assumes cursor in item line." |
886 (let* ((bolpos (point-at-bol)) | 1004 (let* ((bolpos (point-at-bol)) |
887 (ind (org-get-indentation)) | 1005 (ind (org-get-indentation)) |
888 ind-down ind-up pos) | 1006 (bullet (org-get-bullet)) |
1007 ind-down ind-up bullet-up bullet-down pos) | |
889 (save-excursion | 1008 (save-excursion |
890 (org-beginning-of-item-list) | 1009 (org-beginning-of-item-list) |
891 (skip-chars-backward "\n\r \t") | 1010 (skip-chars-backward "\n\r \t") |
892 (when (org-in-item-p) | 1011 (when (org-in-item-p) |
893 (org-beginning-of-item) | 1012 (org-beginning-of-item) |
894 (setq ind-up (org-get-indentation)))) | 1013 (setq ind-up (org-get-indentation)) |
1014 (setq bullet-up (org-get-bullet)))) | |
895 (setq pos (point)) | 1015 (setq pos (point)) |
896 (save-excursion | 1016 (save-excursion |
897 (cond | 1017 (cond |
898 ((and (condition-case nil (progn (org-previous-item) t) | 1018 ((and (condition-case nil (progn (org-previous-item) t) |
899 (error nil)) | 1019 (error nil)) |
900 (or (forward-char 1) t) | 1020 (or (forward-char 1) t) |
901 (re-search-forward "^\\([ \t]*\\([-+]\\|\\([0-9]+[.)]\\)\\)\\|[ \t]+\\*\\)\\( \\|$\\)" bolpos t)) | 1021 (re-search-forward "^\\([ \t]*\\([-+]\\|\\([0-9]+[.)]\\)\\)\\|[ \t]+\\*\\)\\( \\|$\\)" bolpos t)) |
902 (setq ind-down (org-get-indentation))) | 1022 (setq ind-down (org-get-indentation) |
1023 bullet-down (org-get-bullet))) | |
903 ((and (goto-char pos) | 1024 ((and (goto-char pos) |
904 (org-at-item-p)) | 1025 (org-at-item-p)) |
905 (goto-char (match-end 0)) | 1026 (goto-char (match-end 0)) |
906 (skip-chars-forward " \t") | 1027 (skip-chars-forward " \t") |
907 (setq ind-down (current-column))))) | 1028 (setq ind-down (current-column) |
908 (list ind ind-up ind-down))) | 1029 bullet-down (org-get-bullet))))) |
909 | 1030 (if (and bullet-down (string-match "\\`[0-9]+\\(\\.\\|)\\)\\'" bullet-down)) |
1031 (setq bullet-down (concat "1" (match-string 1 bullet-down)))) | |
1032 (if (and bullet-up (string-match "\\`[0-9]+\\(\\.\\|)\\)\\'" bullet-up)) | |
1033 (setq bullet-up (concat "1" (match-string 1 bullet-up)))) | |
1034 (if (and bullet (string-match "\\`[0-9]+\\(\\.\\|)\\)\\'" bullet)) | |
1035 (setq bullet (concat "1" (match-string 1 bullet)))) | |
1036 (list (cons ind bullet) | |
1037 (cons ind-up bullet-up) | |
1038 (cons ind-down bullet-down)))) | |
1039 | |
1040 (defun org-get-bullet () | |
1041 (save-excursion | |
1042 (goto-char (point-at-bol)) | |
1043 (and (looking-at | |
1044 "^\\([ \t]*\\([-+]\\|\\([0-9]+[.)]\\)\\)\\|[ \t]+\\(\\*\\)\\)\\( \\|$\\)") | |
1045 (or (match-string 2) (match-string 4))))) | |
910 | 1046 |
911 ;;; Send and receive lists | 1047 ;;; Send and receive lists |
912 | 1048 |
913 (defun org-list-parse-list (&optional delete) | 1049 (defun org-list-parse-list (&optional delete) |
914 "Parse the list at point and maybe DELETE it. | 1050 "Parse the list at point and maybe DELETE it. |
966 (re-search-backward | 1102 (re-search-backward |
967 org-list-beginning-re nil t))) | 1103 org-list-beginning-re nil t))) |
968 (progn (goto-char (point-min)) (point)) | 1104 (progn (goto-char (point-min)) (point)) |
969 (cons (match-beginning 0) (match-string 1))))) | 1105 (cons (match-beginning 0) (match-string 1))))) |
970 | 1106 |
1107 (defun org-list-goto-true-beginning () | |
1108 "Go to the beginning of the list at point." | |
1109 (beginning-of-line 1) | |
1110 (while (looking-at org-list-beginning-re) | |
1111 (beginning-of-line 0)) | |
1112 (progn | |
1113 (re-search-forward org-list-beginning-re nil t) | |
1114 (goto-char (match-beginning 0)))) | |
1115 | |
1116 (defun org-list-make-subtree () | |
1117 "Convert the plain list at point into a subtree." | |
1118 (interactive) | |
1119 (org-list-goto-true-beginning) | |
1120 (let ((list (org-list-parse-list t)) nstars) | |
1121 (save-excursion | |
1122 (if (condition-case nil | |
1123 (org-back-to-heading) | |
1124 (error nil)) | |
1125 (progn (re-search-forward org-complex-heading-regexp nil t) | |
1126 (setq nstars (length (match-string 1)))) | |
1127 (setq nstars 0))) | |
1128 (org-list-make-subtrees list (1+ nstars)))) | |
1129 | |
1130 (defun org-list-make-subtrees (list level) | |
1131 "Convert LIST into subtrees starting at LEVEL." | |
1132 (if (symbolp (car list)) | |
1133 (org-list-make-subtrees (cdr list) level) | |
1134 (mapcar (lambda (item) | |
1135 (if (stringp item) | |
1136 (insert (make-string | |
1137 (if org-odd-levels-only | |
1138 (1- (* 2 level)) level) ?*) " " item "\n") | |
1139 (org-list-make-subtrees item (1+ level)))) | |
1140 list))) | |
1141 | |
971 (defun org-list-end (indent) | 1142 (defun org-list-end (indent) |
972 "Return the position of the end of the list. | 1143 "Return the position of the end of the list. |
973 INDENT is the indentation of the list." | 1144 INDENT is the indentation of the list, as a string." |
974 (save-excursion | 1145 (save-excursion |
975 (catch 'exit | 1146 (catch 'exit |
976 (while (or (looking-at org-list-beginning-re) | 1147 (while (or (looking-at org-list-beginning-re) |
977 (looking-at (concat "^" indent "[ \t]+\\|^$"))) | 1148 (looking-at (concat "^" indent "[ \t]+\\|^$")) |
1149 (> (or (get-text-property (point) 'original-indentation) -1) | |
1150 (length indent))) | |
978 (if (eq (point) (point-max)) | 1151 (if (eq (point) (point-max)) |
979 (throw 'exit (point-max))) | 1152 (throw 'exit (point-max))) |
980 (forward-line 1))) (point))) | 1153 (forward-line 1))) |
1154 (point))) | |
981 | 1155 |
982 (defun org-list-insert-radio-list () | 1156 (defun org-list-insert-radio-list () |
983 "Insert a radio list template appropriate for this major mode." | 1157 "Insert a radio list template appropriate for this major mode." |
984 (interactive) | 1158 (interactive) |
985 (let* ((e (assq major-mode org-list-radio-list-templates)) | 1159 (let* ((e (assq major-mode org-list-radio-list-templates)) |
1000 this list." | 1174 this list." |
1001 (interactive) | 1175 (interactive) |
1002 (catch 'exit | 1176 (catch 'exit |
1003 (unless (org-at-item-p) (error "Not at a list")) | 1177 (unless (org-at-item-p) (error "Not at a list")) |
1004 (save-excursion | 1178 (save-excursion |
1005 (goto-char (car (org-list-item-beginning))) | 1179 (org-list-goto-true-beginning) |
1006 (beginning-of-line 0) | 1180 (beginning-of-line 0) |
1007 (unless (looking-at "#\\+ORGLST: *SEND +\\([a-zA-Z0-9_]+\\) +\\([^ \t\r\n]+\\)\\( +.*\\)?") | 1181 (unless (looking-at "#\\+ORGLST: *SEND +\\([a-zA-Z0-9_]+\\) +\\([^ \t\r\n]+\\)\\( +.*\\)?") |
1008 (if maybe | 1182 (if maybe |
1009 (throw 'exit nil) | 1183 (throw 'exit nil) |
1010 (error "Don't know how to transform this list")))) | 1184 (error "Don't know how to transform this list")))) |
1148 (defun org-list-to-texinfo (list &optional params) | 1322 (defun org-list-to-texinfo (list &optional params) |
1149 "Convert LIST into a Texinfo list. | 1323 "Convert LIST into a Texinfo list. |
1150 LIST is as returnd by `org-list-parse-list'. PARAMS is a property list | 1324 LIST is as returnd by `org-list-parse-list'. PARAMS is a property list |
1151 with overruling parameters for `org-list-to-generic'." | 1325 with overruling parameters for `org-list-to-generic'." |
1152 (org-list-to-generic | 1326 (org-list-to-generic |
1153 list | 1327 list |
1154 (org-combine-plists | 1328 (org-combine-plists |
1155 '(:splicep nil :ostart "@itemize @minus" :oend "@end itemize" | 1329 '(:splicep nil :ostart "@itemize @minus" :oend "@end itemize" |
1156 :ustart "@enumerate" :uend "@end enumerate" | 1330 :ustart "@enumerate" :uend "@end enumerate" |
1157 :dstart "@table" :dend "@end table" | 1331 :dstart "@table" :dend "@end table" |
1158 :dtstart "@item " :dtend "\n" | 1332 :dtstart "@item " :dtend "\n" |