From 8223b1d23361b74ede10bac47974ce7803804380 Mon Sep 17 00:00:00 2001 From: Bastien Guerry Date: Sun, 30 Sep 2012 17:14:59 +0200 Subject: [PATCH] Sync Org 7.9.2 from the commit tagged "release_7.9.2" in Org's Git repo. --- doc/misc/ChangeLog | 204 ++ doc/misc/org.texi | 1108 +++++--- etc/ORG-NEWS | 1966 ++++++++----- etc/org/OrgOdtContentTemplate.xml | 1 + etc/org/OrgOdtStyles.xml | 5 + etc/refcards/orgcard.pdf | Bin 118438 -> 118438 bytes etc/refcards/orgcard.tex | 2 +- lisp/org/ChangeLog | 3030 ++++++++++++++++++++ lisp/org/ob-C.el | 42 +- lisp/org/ob-R.el | 91 +- lisp/org/ob-asymptote.el | 4 +- lisp/org/ob-awk.el | 9 +- lisp/org/ob-calc.el | 10 +- lisp/org/ob-clojure.el | 2 +- lisp/org/ob-comint.el | 76 +- lisp/org/ob-css.el | 2 +- lisp/org/ob-ditaa.el | 19 +- lisp/org/ob-dot.el | 3 +- lisp/org/ob-emacs-lisp.el | 12 +- lisp/org/ob-eval.el | 4 +- lisp/org/ob-exp.el | 160 +- lisp/org/ob-fortran.el | 60 +- lisp/org/ob-gnuplot.el | 79 +- lisp/org/ob-haskell.el | 4 +- lisp/org/ob-io.el | 122 + lisp/org/ob-js.el | 6 +- lisp/org/ob-latex.el | 2 +- lisp/org/ob-ledger.el | 4 +- lisp/org/ob-lilypond.el | 130 +- lisp/org/ob-lisp.el | 6 +- lisp/org/ob-lob.el | 69 +- lisp/org/ob-maxima.el | 36 +- lisp/org/ob-mscgen.el | 6 +- lisp/org/ob-ocaml.el | 14 +- lisp/org/ob-octave.el | 16 +- lisp/org/ob-org.el | 2 +- lisp/org/ob-perl.el | 12 +- lisp/org/ob-picolisp.el | 6 +- lisp/org/ob-plantuml.el | 2 +- lisp/org/ob-python.el | 59 +- lisp/org/ob-ref.el | 211 +- lisp/org/ob-ruby.el | 12 +- lisp/org/ob-scala.el | 120 + lisp/org/ob-screen.el | 12 +- lisp/org/ob-sh.el | 59 +- lisp/org/ob-sql.el | 34 +- lisp/org/ob-sqlite.el | 24 +- lisp/org/ob-table.el | 2 +- lisp/org/ob-tangle.el | 328 +-- lisp/org/ob.el | 1030 ++++--- lisp/org/org-agenda.el | 3624 ++++++++++++++---------- lisp/org/org-archive.el | 46 +- lisp/org/org-ascii.el | 104 +- lisp/org/org-attach.el | 30 +- lisp/org/org-bbdb.el | 58 +- lisp/org/org-beamer.el | 23 +- lisp/org/org-bibtex.el | 279 +- lisp/org/org-capture.el | 500 ++-- lisp/org/org-clock.el | 939 ++++--- lisp/org/org-colview.el | 159 +- lisp/org/org-compat.el | 49 +- lisp/org/org-crypt.el | 21 +- lisp/org/org-ctags.el | 49 +- lisp/org/org-datetree.el | 85 +- lisp/org/org-docbook.el | 22 +- lisp/org/org-element.el | 4356 ++++++++++++++++++++++++++++ lisp/org/org-entities.el | 56 +- lisp/org/org-eshell.el | 20 +- lisp/org/org-exp-blocks.el | 238 +- lisp/org/org-exp.el | 427 +-- lisp/org/org-faces.el | 61 +- lisp/org/org-feed.el | 124 +- lisp/org/org-footnote.el | 32 +- lisp/org/org-freemind.el | 112 +- lisp/org/org-gnus.el | 25 +- lisp/org/org-habit.el | 6 + lisp/org/org-html.el | 695 +++-- lisp/org/org-icalendar.el | 81 +- lisp/org/org-id.el | 63 +- lisp/org/org-indent.el | 142 +- lisp/org/org-info.el | 6 +- lisp/org/org-inlinetask.el | 164 +- lisp/org/org-irc.el | 78 +- lisp/org/org-jsinfo.el | 186 +- lisp/org/org-latex.el | 587 ++-- lisp/org/org-list.el | 235 +- lisp/org/org-lparse.el | 107 +- lisp/org/org-mac-message.el | 94 +- lisp/org/org-macs.el | 65 +- lisp/org/org-mew.el | 3 +- lisp/org/org-mhe.el | 26 +- lisp/org/org-mobile.el | 258 +- lisp/org/org-mouse.el | 714 +++-- lisp/org/org-odt.el | 242 +- lisp/org/org-pcomplete.el | 109 +- lisp/org/org-plot.el | 116 +- lisp/org/org-protocol.el | 104 +- lisp/org/org-publish.el | 144 +- lisp/org/org-remember.el | 88 +- lisp/org/org-rmail.el | 15 +- lisp/org/org-special-blocks.el | 12 +- lisp/org/org-src.el | 123 +- lisp/org/org-table.el | 371 ++- lisp/org/org-taskjuggler.el | 82 +- lisp/org/org-timer.el | 156 +- lisp/org/org-version.el | 27 + lisp/org/org-vm.el | 89 +- lisp/org/org-wl.el | 12 +- lisp/org/org-xoxo.el | 2 +- lisp/org/org.el | 4373 ++++++++++++++++++----------- 110 files changed, 21039 insertions(+), 9192 deletions(-) create mode 100644 lisp/org/ob-io.el create mode 100644 lisp/org/ob-scala.el create mode 100644 lisp/org/org-element.el create mode 100644 lisp/org/org-version.el diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog index 8ecaf97a84..2e48b61def 100644 --- a/doc/misc/ChangeLog +++ b/doc/misc/ChangeLog @@ -1,3 +1,207 @@ +2012-09-30 Achim Gratz + + * org.texi: Add description of ORG_ADD_CONTRIB to info + documentation. Add link to Worg for more details. + + * org.texi: Clarify installation procedure. Provide link to the + build system description on Worg. + + * org.texi: Remove reference to utils/, x11idle.c is now in + contrib/scripts. + + * org.texi: Re-normalize to "Org mode" in manual. + + * org.texi (Installation): Adapt documentation to new build + system. Mention GNU ELPA (since it needs to be handled like Emacs + built-in Org). + + * org.texi: Include "org-version.inc" instead of + "git-describe.texi". + + * org.texi: Remove @set for VERSION and DATE and do an @include + git-describe.texi instead. + +2012-09-30 Adam Spiers (tiny change) + + * org.texi: Fix typo in description of the 'Hooks' section. + + * org.texi: Add ID to the list of special properties. + +2012-09-30 Andrew Hyatt (tiny change) + + * org.texi (Moving subtrees): Document the ability to archive to a + datetree. + +2012-09-30 Bastien Guerry + + * org.texi (Installation, Feedback, Batch execution): Use + (add-to-list 'load-path ... t) for the contrib dir. + + * org.texi (results): Update documentation for ":results drawer" + and ":results org". + + * org.texi (Column width and alignment): Fix typo. + + * org.texi (Activation): Point to the "Conflicts" section. + + * org.texi (Conflicts): Mention filladapt.el in the list of + conflicting packages. + + * org.texi (Activation): Adding org-mode to `auto-mode-alist' is + not needed for versions of Emacs > 22.1. + + * org.texi (History and Acknowledgments): Fix typo. + + * org.texi (History and Acknowledgments): Add my own + acknowledgments. + + * org.texi (Agenda commands): Document the new command and the new + option. + + * org.texi (Agenda commands): Delete `org-agenda-action' section. + (Agenda commands): Reorder. Document `*' to toggle persistent + marks. + + * org.texi (Agenda dispatcher): Mention + `org-toggle-agenda-sticky'. + (Agenda commands, Exporting Agenda Views): Fix typo. + + * org.texi (Templates in contexts, Setting Options): Update to + reflect changes in how contexts options are processed. + + * org.texi (Templates in contexts): Document the new structure of + the variables `org-agenda-custom-commands-contexts' and + `org-capture-templates-contexts'. + + * org.texi (Templates in contexts): Document the new option + `org-capture-templates-contexts'. + (Storing searches): Document the new option + `org-agenda-custom-commands-contexts'. + + * org.texi (Formula syntax for Lisp): Reformat. + + * org.texi (Special properties, Column attributes) + (Agenda column view): Document the new special property + CLOCKSUM_T. + + * org.texi (Template expansion): Document the new %l template. + + * org.texi (Fast access to TODO states): Fix documentation about + allowed characters for fast todo selection. + + * org.texi (Weekly/daily agenda): Mention APPT_WARNTIME and its + use in `org-agenda-to-appt'. + + * org.texi (Comment lines): Update wrt comments. + + * org.texi (Resolving idle time): Document new keybinding. + + * org.texi (Clocking commands): Document the use of S-M- + on clock timestamps. + + * org.texi (Fast access to TODO states): Explicitely says only + letters are supported as fast TODO selection keys. + + * org.texi (Link abbreviations): Illustrate the use of the "%h" + specifier. Document the new "%(my-function)" specifier. + + * org.texi (Clocking commands): New cindex. + (Clocking commands): Update documentation for `org-clock-in'. + Document `org-clock-in-last'. Mention `org-clock-out' and + `org-clock-in-last' as commands that can be globally bound. + (Resolving idle time): Document continuous clocking. + + * org.texi (Top, Introduction): Fix formatting. + (Activation): Add index entries. + (Conventions): Update section. + (Embedded @LaTeX{}): Fix formatting. + + * org.texi (Visibility cycling): Document `show-children'. + + * org.texi (Using capture): Mention the `org-capture-last-stored' + bookmark as a way to jump to the last stored capture. + + * org.texi (Uploading files): Fix typo. + + * org.texi (Using capture): Document `C-0' as a prefix argument + for `org-capture'. + + * org.texi (Agenda commands): Document persistent marks. + + * org.texi (Template expansion): Update doc to reflect change. + + * org.texi (Radio tables): Document the :no-escape parameter. + + * org.texi (Repeated tasks): Document repeat cookies for years, + months, weeks, days and hours. + + * org.texi (Export options): State that you can use the d: option + by specifying a list of drawers. + + * org.texi (HTML preamble and postamble): Small doc improvement. + +2012-09-30 Brian van den Broek (tiny change) + + * org.texi: The sections in the Exporting section of the manual + left out articles in the description of the org-export-as-* + commands, among other places. This patch adds them, adds a few + missing prepositions, and switches instances of "an HTML" to "a + html" for internal consistency. + + * org.texi: Alter several examples of headings with timestamps in + them to include the timestamps in the body instead of the heading. + +2012-09-30 Carsten Dominik + + * org.texi (Agenda dispatcher): Document sticky agenda views and + the new key for them. + +2012-09-30 Charles (tiny change) + + * org.texi (Advanced features): Fix error in table. + +2012-09-30 Feng Shu + + * org.texi (@LaTeX{} fragments): Document imagemagick as an + alternative to dvipng. + +2012-09-30 François Allisson (tiny change) + + * org.texi: Remove extra curly bracket. + +2012-09-30 Giovanni Ridolfi (tiny change) + + * org.texi (org-clock-in-last and org-clock-cancel): Update the + defkeys. + +2012-09-30 Ippei FURUHASHI (tiny change) + + * org.texi (Agenda commands): Fix two typos by giving + corresponding function names, according to + `org-agenda-view-mode-dispatch'. + +2012-09-30 Jan Bäcker + + * org.texi (The spreadsheet): Fix typo. + +2012-09-30 Memnon Anon (tiny change) + + * org.texi (Tracking your habits): Point to the "Tracking TODO + state changes" section. + +2012-09-30 Nicolas Goaziou + + * org.texi (Literal examples): Remove reference to unknown + `org-export-latex-minted' variable. Also simplify footnote since + `org-export-latex-listings' documentation is exhaustive already. + + * org.texi (Plain lists): Remove reference to now hard-coded + `bullet' automatic rule. + +2012-09-30 Toby S. Cubitt + + * org.texi: Updated documentation accordingly. + 2012-09-13 Paul Eggert * texinfo.tex: Merge from gnulib. diff --git a/doc/misc/org.texi b/doc/misc/org.texi index 575b9cbebe..227af8faf1 100644 --- a/doc/misc/org.texi +++ b/doc/misc/org.texi @@ -1,11 +1,8 @@ - \input texinfo @c %**start of header @setfilename ../../info/org @settitle The Org Manual - -@set VERSION 7.8.11 -@set DATE May 2012 +@set VERSION 7.9.2 (GNU Emacs 24.3) @c Use proper quote and backtick for code sections in PDF output @c Cf. Texinfo manual 14.2 @@ -347,7 +344,7 @@ Introduction * Installation:: How to install a downloaded version of Org * Activation:: How to activate Org for certain buffers * Feedback:: Bug reports, ideas, patches etc. -* Conventions:: Type-setting conventions in the manual +* Conventions:: Typesetting conventions in the manual Document structure @@ -495,6 +492,7 @@ Capture templates * Template elements:: What is needed for a complete template entry * Template expansion:: Filling in information about time and context +* Templates in contexts:: Only show a template in a specific context Archiving @@ -560,7 +558,7 @@ Embedded @LaTeX{} * Special symbols:: Greek letters and other symbols * Subscripts and superscripts:: Simple syntax for raising/lowering text -* @LaTeX{} fragments:: Complex formulas made easy +* @LaTeX{} fragments:: Complex formulas made easy * Previewing @LaTeX{} fragments:: What will this snippet look like? * CDLaTeX mode:: Speed up entering of formulas @@ -695,6 +693,7 @@ Specific header arguments * results:: Specify the type of results and how they will be collected and handled * file:: Specify a path for file output +* file-desc:: Specify a description for file results * dir:: Specify the default (possibly remote) directory for code block execution * exports:: Export code and/or results @@ -718,6 +717,7 @@ Specific header arguments * rownames:: Handle row names in tables * shebang:: Make tangled files executable * eval:: Limit evaluation of specific code blocks +* wrap:: Mark source block evaluation results Miscellaneous @@ -740,7 +740,7 @@ Interaction with other packages Hacking -* Hooks:: Who to reach into Org's internals +* Hooks:: How to reach into Org's internals * Add-on packages:: Available extensions * Adding hyperlink types:: New custom link types * Context-sensitive commands:: How to add functionality to such commands @@ -776,7 +776,7 @@ MobileOrg * Installation:: How to install a downloaded version of Org * Activation:: How to activate Org for certain buffers * Feedback:: Bug reports, ideas, patches etc. -* Conventions:: Type-setting conventions in the manual +* Conventions:: Typesetting conventions in the manual @end menu @node Summary, Installation, Introduction, Introduction @@ -854,61 +854,111 @@ Theory Ltd.} @cindex installation @cindex XEmacs -@b{Important:} @i{If you are using a version of Org that is part of the Emacs -distribution or an XEmacs package, please skip this section and go directly -to @ref{Activation}. To see what version of Org (if any) is part of your -Emacs distribution, type @kbd{M-x load-library RET org} and then @kbd{M-x -org-version}.} +@b{Important:} @i{If you the version of Org that comes with Emacs or as a +XEmacs package, please skip this section and go directly to @ref{Activation}. +If you downloaded Org as an ELPA package, please read the instructions on the +@uref{http://orgmode.org/elpa/, Org ELPA page}. To see what version of Org +(if any) is part of your Emacs distribution, type @kbd{M-x org-version} (if +your Emacs distribution does not come with Org, this function will not be +defined).} -If you have downloaded Org from the Web, either as a distribution @file{.zip} -or @file{.tar} file, or as a Git archive, you must take the following steps -to install it: go into the unpacked Org distribution directory and edit the -top section of the file @file{Makefile}. You must set the name of the Emacs -binary (likely either @file{emacs} or @file{xemacs}), and the paths to the -directories where local Lisp and Info files are kept. If you don't have -access to the system-wide directories, you can simply run Org directly from -the distribution directory by adding the @file{lisp} subdirectory to the -Emacs load path. To do this, add the following line to @file{.emacs}: +Installation of Org mode uses a build system, which is described in more +detail on @uref{http://orgmode.org/worg/dev/org-build-system.html, Worg}. -@example -(setq load-path (cons "~/path/to/orgdir/lisp" load-path)) -@end example +If you have downloaded Org from the Web as a distribution @file{.zip} or +@file{.tar.gz} archive, take the following steps to install it: -@noindent -If you plan to use code from the @file{contrib} subdirectory, do a similar -step for this directory: +@itemize @bullet +@item Unpack the distribution archive. +@item Change into (@code{cd}) the Org directory. +@item Run @code{make help config} +and then check and edit the file @file{local.mk} if the default configuration +does not match your system. Set the name of the Emacs binary (likely either +@file{emacs} or @file{xemacs}), and the paths to the directories where local +Lisp and Info files will be installed. If the Emacs binary is not in your +path, give the full path to the executable. Avoid spaces in any path names. +@item Run @code{make config} +again to check the configuration. +@item Optionally run @code{make test} +to build Org mode and then run the full testsuite. +@item Run @code{make install} or @code{sudo make install} +to build and install Org mode on your system. +@end itemize -@example -(setq load-path (cons "~/path/to/orgdir/contrib/lisp" load-path)) -@end example +If you use a cloned Git repository, then the procedure is slightly different. +The following description assumes that you are using the @code{master} branch +(where the development is done). You could also use the @code{maint} branch +instead, where the release versions are published, just replace @code{master} +with @code{maint} in the description below. -@noindent Now byte-compile the Lisp files with the shell command: +@itemize @bullet +@item Change into (@code{cd}) the Org repository. +@item Run @code{git checkout master} +to switch to the @code{master} branch of the Org repository. +@item Run @code{make help} +and then check and edit the file @file{local.mk}. You must set the name of +the Emacs binary (likely either @file{emacs} or @file{xemacs}), and the paths +to the directories where local Lisp and Info files will be installed. If the +Emacs binary is not in your path, you must give the full path to the +executable. Avoid spaces in any path names. +@item Run @code{make config} +to check the configuration. +@item Run @code{make update2} or @code{make up2} +to update the Git repository and build and install Org mode. The latter +invocation runs the complete test suite before installation and installs only +if the build passes all tests. +@end itemize + +If you don't have access to the system-wide directories and you don't want to +install somewhere into your home directory, you can run Org directly from the +distribution directory or Org repository by compiling Org mode in place: + +@itemize @bullet +@item Change into (@code{cd}) the Org repository. +@item Run @code{git checkout master} +to switch to the @code{master} branch of the Org repository. +@item Run @code{make compile} +@end itemize + +Last but not least you can also run Org mode directly from an Org repository +without any compilation. Simply replace the last step in the recipe above +with @code{make uncompiled}. + +Then add the following line to @file{.emacs}: @example -make +(add-to-list 'load-path "~/path/to/orgdir/lisp") @end example -@noindent If you are running Org from the distribution directory, this is -all. If you want to install Org into the system directories, use (as -administrator) +@noindent +If you plan to use code from the @file{contrib} subdirectory without +compiling them, do a similar step for this directory: @example -make install +(add-to-list 'load-path "~/path/to/orgdir/contrib/lisp" t) @end example +If you want to include those files with the build and install, please +customize the variable @code{ORG_ADD_CONTRIB} instead in your @code{local.mk} +file, for more details please see this +@uref{http://orgmode.org/worg/dev/org-build-system.html#sec-4-1-2, +description on Worg}. + Installing Info files is system dependent, because of differences in the -@file{install-info} program. The following should correctly install the Info -files on most systems, please send a bug report if not@footnote{The output -from install-info (if any) is also system dependent. In particular Debian -and its derivatives use two different versions of install-info and you may -see the message: +@file{install-info} program. The Info documentation is installed together +with the rest of Org mode. If you don't install Org mode, it is possible to +install the Info documentation seperately (you need to have +install-info@footnote{The output from install-info (if any) is system +dependent. In particular Debian and its derivatives use two different +versions of install-info and you may see the message: @example This is not dpkg install-info anymore, but GNU install-info See the man page for ginstall-info for command line arguments @end example -@noindent which can be safely ignored.}. +@noindent which can be safely ignored.} +on your system). @example make install-info @@ -928,17 +978,28 @@ Do not forget to activate Org as described in the following section. @section Activation @cindex activation @cindex autoload +@cindex ELPA @cindex global key bindings @cindex key bindings, global +@findex org-agenda +@findex org-capture +@findex org-store-link +@findex org-iswitchb + +Since Emacs 22.2, files with the @file{.org} extension use Org mode by +default. If you are using an earlier version of Emacs, add this line to your +@file{.emacs} file: -To make sure files with extension @file{.org} use Org mode, add the following -line to your @file{.emacs} file. @lisp (add-to-list 'auto-mode-alist '("\\.org\\'" . org-mode)) @end lisp -@noindent Org mode buffers need font-lock to be turned on - this is the -default in Emacs@footnote{If you don't use font-lock globally, turn it on in -Org buffer with @code{(add-hook 'org-mode-hook 'turn-on-font-lock)}}. + +Org mode buffers need font-lock to be turned on - this is the default in +Emacs@footnote{If you don't use font-lock globally, turn it on in Org buffer +with @code{(add-hook 'org-mode-hook 'turn-on-font-lock)}}. + +There are compatibility issues between Org mode and some other Elisp +packages, please take the time to check the list (@pxref{Conflicts}). The four Org commands @command{org-store-link}, @command{org-capture}, @command{org-agenda}, and @command{org-iswitchb} should be accessible through @@ -1016,8 +1077,9 @@ $ emacs -Q -l /path/to/minimal-org.el @end example However if you are using Org mode as distributed with Emacs, a minimal setup -is not necessary. In that case it is sufficient to start Emacs as @code{emacs --Q}. The @code{minimal-org.el} setup file can have contents as shown below. +is not necessary. In that case it is sufficient to start Emacs as +@code{emacs -Q}. The @code{minimal-org.el} setup file can have contents as +shown below. @example ;;; Minimal setup to load latest `org-mode' @@ -1029,7 +1091,7 @@ is not necessary. In that case it is sufficient to start Emacs as @code{emacs ;; add latest org-mode to load path (add-to-list 'load-path (expand-file-name "/path/to/org-mode/lisp")) -(add-to-list 'load-path (expand-file-name "/path/to/org-mode/contrib/lisp")) +(add-to-list 'load-path (expand-file-name "/path/to/org-mode/contrib/lisp" t)) ;; activate org (require 'org-install) @@ -1081,7 +1143,9 @@ attach it to your bug report. @node Conventions, , Feedback, Introduction @section Typesetting conventions used in this manual -Org uses three types of keywords: TODO keywords, tags, and property +@subsubheading TODO keywords, tags, properties, etc. + +Org mainly uses three types of keywords: TODO keywords, tags and property names. In this manual we use the following conventions: @table @code @@ -1099,17 +1163,33 @@ User-defined properties are capitalized; built-in properties with special meaning are written with all capitals. @end table -The manual lists both the keys and the corresponding commands for accessing -functionality. Org mode often uses the same key for different functions, -depending on context. The command that is bound to such keys has a generic -name, like @code{org-metaright}. In the manual we will, wherever possible, -give the function that is internally called by the generic command. For -example, in the chapter on document structure, @kbd{M-@key{right}} will be -listed to call @code{org-do-demote}, while in the chapter on tables, it will -be listed to call org-table-move-column-right. - -If you prefer, you can compile the manual without the command names by -unsetting the flag @code{cmdnames} in @file{org.texi}. +Moreover, Org uses @i{option keywords} (like @code{#+TITLE} to set the title) +and @i{environment keywords} (like @code{#+BEGIN_HTML} to start a @code{HTML} +environment). They are written in uppercase in the manual to enhance its +readability, but you can use lowercase in your Org files@footnote{Easy +templates insert lowercase keywords and Babel dynamically inserts +@code{#+results}.} + +@subsubheading Keybindings and commands +@kindex C-c a +@findex org-agenda +@kindex C-c c +@findex org-capture + +The manual suggests two global keybindings: @kbd{C-c a} for @code{org-agenda} +and @kbd{C-c c} for @code{org-capture}. These are only suggestions, but the +rest of the manual assumes that you are using these keybindings. + +Also, the manual lists both the keys and the corresponding commands for +accessing a functionality. Org mode often uses the same key for different +functions, depending on context. The command that is bound to such keys has +a generic name, like @code{org-metaright}. In the manual we will, wherever +possible, give the function that is internally called by the generic command. +For example, in the chapter on document structure, @kbd{M-@key{right}} will +be listed to call @code{org-do-demote}, while in the chapter on tables, it +will be listed to call @code{org-table-move-column-right}. If you prefer, +you can compile the manual without the command names by unsetting the flag +@code{cmdnames} in @file{org.texi}. @node Document Structure, Tables, Introduction, Top @chapter Document structure @@ -1159,7 +1239,8 @@ Headlines define the structure of an outline tree. The headlines in Org start with one or more stars, on the left margin@footnote{See the variables @code{org-special-ctrl-a/e}, @code{org-special-ctrl-k}, and @code{org-ctrl-k-protect-subtree} to configure special behavior of @kbd{C-a}, -@kbd{C-e}, and @kbd{C-k} in headlines.}. For example: +@kbd{C-e}, and @kbd{C-k} in headlines.} @footnote{Clocking only works with +headings indented less then 30 stars.}. For example: @example * Top level headline @@ -1239,6 +1320,7 @@ tables, @kbd{S-@key{TAB}} jumps to the previous field. @cindex show all, command @orgcmd{C-u C-u C-u @key{TAB},show-all} Show all, including drawers. +@cindex revealing context @orgcmd{C-c C-r,org-reveal} Reveal context around point, showing the current entry, the following heading and the hierarchy above. Useful for working near a location that has been @@ -1246,8 +1328,13 @@ exposed by a sparse tree command (@pxref{Sparse trees}) or an agenda command (@pxref{Agenda commands}). With a prefix argument show, on each level, all sibling headings. With a double prefix argument, also show the entire subtree of the parent. +@cindex show branches, command @orgcmd{C-c C-k,show-branches} Expose all the headings of the subtree, CONTENT view for just one subtree. +@cindex show children, command +@orgcmd{C-c @key{TAB},show-children} +Expose all direct children of the subtree. With a numeric prefix argument N, +expose all children down to level N. @orgcmd{C-c C-x b,org-tree-to-indirect-buffer} Show the current subtree in an indirect buffer@footnote{The indirect buffer @@ -1429,7 +1516,7 @@ more details, see the docstring of the command @code{org-clone-subtree-with-time-shift}. @orgcmd{C-c C-w,org-refile} Refile entry or region to a different location. @xref{Refiling notes}. -@orgcmd{C-c ^,org-sort-entries-or-items} +@orgcmd{C-c ^,org-sort} Sort same-level entries. When there is an active region, all entries in the region will be sorted. Otherwise the children of the current headline are sorted. The command prompts for the sorting method, which can be @@ -1714,19 +1801,16 @@ state of the checkbox. In any case, verify bullets and indentation consistency in the whole list. @kindex C-c - @vindex org-plain-list-ordered-item-terminator -@vindex org-list-automatic-rules @item C-c - Cycle the entire list level through the different itemize/enumerate bullets (@samp{-}, @samp{+}, @samp{*}, @samp{1.}, @samp{1)}) or a subset of them, depending on @code{org-plain-list-ordered-item-terminator}, the type of list, -and its position@footnote{See @code{bullet} rule in -@code{org-list-automatic-rules} for more information.}. With a numeric -prefix argument N, select the Nth bullet from this list. If there is an -active region when calling this, selected text will be changed into an item. -With a prefix argument, all lines will be converted to list items. If the -first line already was a list item, any item marker will be removed from the -list. Finally, even without an active region, a normal line will be -converted into a list item. +and its indentation. With a numeric prefix argument N, select the Nth bullet +from this list. If there is an active region when calling this, selected +text will be changed into an item. With a prefix argument, all lines will be +converted to list items. If the first line already was a list item, any item +marker will be removed from the list. Finally, even without an active +region, a normal line will be converted into a list item. @kindex C-c * @item C-c * Turn a plain list item into a headline (so that it becomes a subheading at @@ -1756,11 +1840,13 @@ numerically, alphabetically, by time, or by custom function. @cindex visibility cycling, drawers @vindex org-drawers +@cindex org-insert-drawer +@kindex C-c C-x d Sometimes you want to keep information associated with an entry, but you normally don't want to see it. For this, Org mode has @emph{drawers}. Drawers need to be configured with the variable -@code{org-drawers}@footnote{You can define drawers on a per-file basis -with a line like @code{#+DRAWERS: HIDDEN PROPERTIES STATE}}. Drawers +@code{org-drawers}@footnote{You can define additional drawers on a +per-file basis with a line like @code{#+DRAWERS: HIDDEN STATE}}. Drawers look like this: @example @@ -1772,6 +1858,13 @@ look like this: After the drawer. @end example +You can interactively insert drawers at point by calling +@code{org-insert-drawer}, which is bound to @key{C-c C-x d}. With an active +region, this command will put the region inside the drawer. With a prefix +argument, this command calls @code{org-insert-property-drawer} and add a +property drawer right below the current headline. Completion over drawer +keywords is also possible using @key{M-TAB}. + Visibility cycling (@pxref{Visibility cycling}) on the headline will hide and show the entry, but keep the drawer collapsed to a single line. In order to look inside the drawer, you need to move the cursor to the drawer line and @@ -2226,7 +2319,7 @@ on a per-file basis with: If you would like to overrule the automatic alignment of number-rich columns to the right and of string-rich column to the left, you can use @samp{}, -@samp{c}@footnote{Centering does not work inside Emacs, but it does have an +@samp{}@footnote{Centering does not work inside Emacs, but it does have an effect when exporting to HTML.} or @samp{} in a similar fashion. You may also combine alignment and field width like this: @samp{}. @@ -2577,23 +2670,28 @@ durations computations @ref{Durations and time values}. @subsection Emacs Lisp forms as formulas @cindex Lisp forms, as table formulas -It is also possible to write a formula in Emacs Lisp; this can be useful for -string manipulation and control structures, if Calc's functionality is not -enough. If a formula starts with a single-quote followed by an opening -parenthesis, then it is evaluated as a Lisp form. The evaluation should -return either a string or a number. Just as with @file{calc} formulas, you -can specify modes and a printf format after a semicolon. With Emacs Lisp -forms, you need to be conscious about the way field references are -interpolated into the form. By default, a reference will be interpolated as -a Lisp string (in double-quotes) containing the field. If you provide the -@samp{N} mode switch, all referenced elements will be numbers (non-number -fields will be zero) and interpolated as Lisp numbers, without quotes. If -you provide the @samp{L} flag, all fields will be interpolated literally, -without quotes. I.e., if you want a reference to be interpreted as a string -by the Lisp form, enclose the reference operator itself in double-quotes, -like @code{"$3"}. Ranges are inserted as space-separated fields, so you can -embed them in list or vector syntax. Here are a few examples---note how the -@samp{N} mode is used when we do computations in Lisp: +It is also possible to write a formula in Emacs Lisp. This can be useful +for string manipulation and control structures, if Calc's functionality is +not enough. + +If a formula starts with a single-quote followed by an opening parenthesis, +then it is evaluated as a Lisp form. The evaluation should return either a +string or a number. Just as with @file{calc} formulas, you can specify modes +and a printf format after a semicolon. + +With Emacs Lisp forms, you need to be conscious about the way field +references are interpolated into the form. By default, a reference will be +interpolated as a Lisp string (in double-quotes) containing the field. If +you provide the @samp{N} mode switch, all referenced elements will be numbers +(non-number fields will be zero) and interpolated as Lisp numbers, without +quotes. If you provide the @samp{L} flag, all fields will be interpolated +literally, without quotes. I.e., if you want a reference to be interpreted +as a string by the Lisp form, enclose the reference operator itself in +double-quotes, like @code{"$3"}. Ranges are inserted as space-separated +fields, so you can embed them in list or vector syntax. + +Here are a few examples---note how the @samp{N} mode is used when we do +computations in Lisp: @example @r{Swap the first two characters of the content of column 1} @@ -2657,7 +2755,7 @@ modified in order to still reference the same field. To avoid this from happening, in particular in range references, anchor ranges at the table borders (using @code{@@<}, @code{@@>}, @code{$<}, @code{$>}), or at hlines using the @code{@@I} notation. Automatic adaptation of field references does -of cause not happen if you edit the table structure with normal editing +of course not happen if you edit the table structure with normal editing commands---then you must fix the equations yourself. Instead of typing an equation into the field, you may also use the following @@ -2899,7 +2997,7 @@ makes use of these features: | # | Peter | 10 | 8 | 23 | 41 | 8.2 | | # | Sam | 2 | 4 | 3 | 9 | 1.8 | |---+---------+--------+--------+--------+-------+------| -| | Average | | | | 29.7 | | +| | Average | | | | 25.0 | | | ^ | | | | | at | | | $ | max=50 | | | | | | |---+---------+--------+--------+--------+-------+------| @@ -3227,6 +3325,8 @@ mailto:adent@@galaxy.net @r{Mail link} vm:folder @r{VM folder link} vm:folder#id @r{VM message link} vm://myself@@some.where.org/folder#id @r{VM on remote machine} +vm-imap:account:folder @r{VM IMAP folder link} +vm-imap:account:folder#id @r{VM IMAP message link} wl:folder @r{WANDERLUST folder link} wl:folder#id @r{WANDERLUST message link} mhe:folder @r{MH-E folder link} @@ -3498,18 +3598,26 @@ that relates the linkwords to replacement text. Here is an example: @smalllisp @group (setq org-link-abbrev-alist - '(("bugzilla" . "http://10.1.2.9/bugzilla/show_bug.cgi?id=") - ("google" . "http://www.google.com/search?q=") - ("gmap" . "http://maps.google.com/maps?q=%s") - ("omap" . "http://nominatim.openstreetmap.org/search?q=%s&polygon=1") - ("ads" . "http://adsabs.harvard.edu/cgi-bin/nph-abs_connect?author=%s&db_key=AST"))) + '(("bugzilla" . "http://10.1.2.9/bugzilla/show_bug.cgi?id=") + ("url-to-ja" . "http://translate.google.fr/translate?sl=en&tl=ja&u=%h") + ("google" . "http://www.google.com/search?q=") + ("gmap" . "http://maps.google.com/maps?q=%s") + ("omap" . "http://nominatim.openstreetmap.org/search?q=%s&polygon=1") + ("ads" . "http://adsabs.harvard.edu/cgi-bin/nph-abs_connect?author=%s&db_key=AST"))) @end group @end smalllisp If the replacement text contains the string @samp{%s}, it will be -replaced with the tag. Otherwise the tag will be appended to the string -in order to create the link. You may also specify a function that will -be called with the tag as the only argument to create the link. +replaced with the tag. Using @samp{%h} instead of @samp{%s} will +url-encode the tag (see the example above, where we need to encode +the URL parameter.) Using @samp{%(my-function)} will pass the tag +to a custom function, and replace it by the resulting string. + +If the replacement text don't contain any specifier, it will simply +be appended to the string in order to create the link. + +Instead of a string, you may also specify a function that will be +called with the tag as the only argument to create the link. With the above setting, you could link to a specific bug with @code{[[bugzilla:129]]}, search the web for @samp{OrgMode} with @@ -3567,7 +3675,7 @@ Jump to line 255. Search for a link target @samp{<>}, or do a text search for @samp{my target}, similar to the search in internal links, see @ref{Internal links}. In HTML export (@pxref{HTML export}), such a file -link will become an HTML reference to the corresponding named anchor in +link will become a HTML reference to the corresponding named anchor in the linked file. @item *My Target In an Org file, restrict search to headlines. @@ -3844,9 +3952,10 @@ from @code{DONE} to @code{REPORT} in the example above. See also @subsection Fast access to TODO states If you would like to quickly change an entry to an arbitrary TODO state -instead of cycling through the states, you can set up keys for -single-letter access to the states. This is done by adding the section -key after each keyword, in parentheses. For example: +instead of cycling through the states, you can set up keys for single-letter +access to the states. This is done by adding the selection character after +each keyword, in parentheses@footnote{All characters are allowed except +@code{@@^!}, which have a special meaning here.}. For example: @lisp (setq org-todo-keywords @@ -4065,9 +4174,11 @@ time-stamped note for a change. These records will be inserted after the headline as an itemized list, newest first@footnote{See the variable @code{org-log-states-order-reversed}}. When taking a lot of notes, you might want to get the notes out of the way into a drawer (@pxref{Drawers}). -Customize the variable @code{org-log-into-drawer} to get this -behavior---the recommended drawer for this is called @code{LOGBOOK}. You can -also overrule the setting of this variable for a subtree by setting a +Customize the variable @code{org-log-into-drawer} to get this behavior---the +recommended drawer for this is called @code{LOGBOOK}@footnote{Note that the +@code{LOGBOOK} drawer is unfolded when pressing @key{SPC} in the agenda to +show an entry---use @key{C-u SPC} to keep it folded here}. You can also +overrule the setting of this variable for a subtree by setting a @code{LOG_INTO_DRAWER} property. Since it is normally too much to record a note for every state, Org mode @@ -4157,10 +4268,10 @@ The TODO may also have minimum and maximum ranges specified by using the syntax @samp{.+2d/3d}, which says that you want to do the task at least every three days, but at most every two days. @item -You must also have state logging for the @code{DONE} state enabled, in order -for historical data to be represented in the consistency graph. If it is not -enabled it is not an error, but the consistency graphs will be largely -meaningless. +You must also have state logging for the @code{DONE} state enabled +(@pxref{Tracking TODO state changes}), in order for historical data to be +represented in the consistency graph. If it is not enabled it is not an +error, but the consistency graphs will be largely meaningless. @end enumerate To give you an idea of what the above rules look like in action, here's an @@ -4872,8 +4983,8 @@ in the current file will be offered as possible completions. @orgcmd{C-c C-x p,org-set-property} Set a property. This prompts for a property name and a value. If necessary, the property drawer is created as well. -@item M-x org-insert-property-drawer -@findex org-insert-property-drawer +@item C-u M-x org-insert-drawer +@cindex org-insert-drawer Insert a property drawer into the current entry. The drawer will be inserted early in the entry, but after the lines with planning information like deadlines. @@ -4904,6 +5015,7 @@ column view (@pxref{Column view}), or to use them in queries. The following property names are special and (except for @code{:CATEGORY:}) should not be used as keys in the properties drawer: +@cindex property, special, ID @cindex property, special, TODO @cindex property, special, TAGS @cindex property, special, ALLTAGS @@ -4915,11 +5027,14 @@ used as keys in the properties drawer: @cindex property, special, TIMESTAMP @cindex property, special, TIMESTAMP_IA @cindex property, special, CLOCKSUM +@cindex property, special, CLOCKSUM_T @cindex property, special, BLOCKED @c guessing that ITEM is needed in this area; also, should this list be sorted? @cindex property, special, ITEM @cindex property, special, FILE @example +ID @r{A globally unique ID used for synchronization during} + @r{iCalendar or MobileOrg export.} TODO @r{The TODO keyword of the entry.} TAGS @r{The tags defined directly in the headline.} ALLTAGS @r{All tags, including inherited ones.} @@ -4932,8 +5047,11 @@ TIMESTAMP @r{The first keyword-less timestamp in the entry.} TIMESTAMP_IA @r{The first inactive timestamp in the entry.} CLOCKSUM @r{The sum of CLOCK intervals in the subtree. @code{org-clock-sum}} @r{must be run first to compute the values in the current buffer.} +CLOCKSUM_T @r{The sum of CLOCK intervals in the subtree for today.} + @r{@code{org-clock-sum-today} must be run first to compute the} + @r{values in the current buffer.} BLOCKED @r{"t" if task is currently blocked by children or siblings} -ITEM @r{The content of the entry.} +ITEM @r{The headline of the entry.} FILE @r{The filename the entry is located in.} @end example @@ -5149,7 +5267,7 @@ values. @example :COLUMNS: %25ITEM %9Approved(Approved?)@{X@} %Owner %11Status \@footnote{Please note that the COLUMNS definition must be on a single line---it is wrapped here only because of formatting constraints.} - %10Time_Estimate@{:@} %CLOCKSUM + %10Time_Estimate@{:@} %CLOCKSUM %CLOCKSUM_T :Owner_ALL: Tammy Mark Karl Lisa Don :Status_ALL: "In progress" "Not started yet" "Finished" "" :Approved_ALL: "[ ]" "[X]" @@ -5168,8 +5286,9 @@ modified title (@samp{Approved?}, with a question mark). Summaries will be created for the @samp{Time_Estimate} column by adding time duration expressions like HH:MM, and for the @samp{Approved} column, by providing an @samp{[X]} status if all children have been checked. The -@samp{CLOCKSUM} column is special, it lists the sum of CLOCK intervals -in the subtree. +@samp{CLOCKSUM} and @samp{CLOCKSUM_T} columns are special, they lists the +sums of CLOCK intervals in the subtree, either for all clocks or just for +today. @node Using column view, Capturing column view, Defining columns, Column view @subsection Using column view @@ -5370,8 +5489,10 @@ timeline and agenda displays, the headline of an entry associated with a plain timestamp will be shown exactly on that date. @example -* Meet Peter at the movies <2006-11-01 Wed 19:15> -* Discussion on climate change <2006-11-02 Thu 20:00-22:00> +* Meet Peter at the movies + <2006-11-01 Wed 19:15> +* Discussion on climate change + <2006-11-02 Thu 20:00-22:00> @end example @item Timestamp with repeater interval @@ -5382,7 +5503,8 @@ interval of N days (d), weeks (w), months (m), or years (y). The following will show up in the agenda every Wednesday: @example -* Pick up Sam at school <2007-05-16 Wed 12:30 +1w> +* Pick up Sam at school + <2007-05-16 Wed 12:30 +1w> @end example @item Diary-style sexp entries @@ -5426,7 +5548,8 @@ angular ones. These timestamps are inactive in the sense that they do @emph{not} trigger an entry to show up in the agenda. @example -* Gillian comes late for the fifth time [2006-11-01 Wed] +* Gillian comes late for the fifth time + [2006-11-01 Wed] @end example @end table @@ -5825,9 +5948,10 @@ or plain timestamp. In the following example @noindent the @code{+1m} is a repeater; the intended interpretation is that the task has a deadline on <2005-10-01> and repeats itself every (one) month starting -from that time. If you need both a repeater and a special warning period in -a deadline entry, the repeater should come first and the warning period last: -@code{DEADLINE: <2005-10-01 Sat +1m -3d>}. +from that time. You can use yearly, monthly, weekly, daily and hourly repeat +cookies by using the @code{y/w/m/d/h} letters. If you need both a repeater +and a special warning period in a deadline entry, the repeater should come +first and the warning period last: @code{DEADLINE: <2005-10-01 Sat +1m -3d>}. @vindex org-todo-repeat-to-state Deadlines and scheduled items produce entries in the agenda when they are @@ -5898,12 +6022,14 @@ created for this purpose, it is described in @ref{Structure editing}. @cindex time clocking Org mode allows you to clock the time you spend on specific tasks in a -project. When you start working on an item, you can start the clock. -When you stop working on that task, or when you mark the task done, the -clock is stopped and the corresponding time interval is recorded. It -also computes the total time spent on each subtree of a project. And it -remembers a history or tasks recently clocked, to that you can jump quickly -between a number of tasks absorbing your time. +project. When you start working on an item, you can start the clock. When +you stop working on that task, or when you mark the task done, the clock is +stopped and the corresponding time interval is recorded. It also computes +the total time spent on each subtree@footnote{Clocking only works if all +headings are indented with less than 30 stars. This is a hardcoded +limitation of `lmax' in `org-clock-sum'.} of a project. And it remembers a +history or tasks recently clocked, to that you can jump quickly between a +number of tasks absorbing your time. To save the clock history across Emacs sessions, use @lisp @@ -5928,6 +6054,7 @@ what to do with it. @table @kbd @orgcmd{C-c C-x C-i,org-clock-in} @vindex org-clock-into-drawer +@vindex org-clock-continuously @cindex property, LOG_INTO_DRAWER Start the clock on the current item (clock-in). This inserts the CLOCK keyword together with a timestamp. If this is not the first clocking of @@ -5938,9 +6065,10 @@ the setting of this variable for a subtree by setting a @code{CLOCK_INTO_DRAWER} or @code{LOG_INTO_DRAWER} property. When called with a @kbd{C-u} prefix argument, select the task from a list of recently clocked tasks. With two @kbd{C-u -C-u} prefixes, clock into the task at point and mark it as the default task. -The default task will always be available when selecting a clocking task, -with letter @kbd{d}.@* +C-u} prefixes, clock into the task at point and mark it as the default task; +the default task will then always be available with letter @kbd{d} when +selecting a clocking task. With three @kbd{C-u C-u C-u} prefixes, force +continuous clocking by starting the clock when the last clock stopped.@* @cindex property: CLOCK_MODELINE_TOTAL @cindex property: LAST_REPEAT @vindex org-clock-modeline-total @@ -5970,6 +6098,12 @@ HH:MM}. See the variable @code{org-log-note-clock-out} for the possibility to record an additional note together with the clock-out timestamp@footnote{The corresponding in-buffer setting is: @code{#+STARTUP: lognoteclock-out}}. +@orgcmd{C-c C-x C-x,org-clock-in-last} +@vindex org-clock-continuously +Reclock the last clocked task. With one @kbd{C-u} prefix argument, +select the task from the clock history. With two @kbd{C-u} prefixes, +force continuous clocking by starting the clock when the last clock +stopped. @orgcmd{C-c C-x C-e,org-clock-modify-effort-estimate} Update the effort estimate for the current clock task. @kindex C-c C-y @@ -5979,12 +6113,18 @@ Recompute the time interval after changing one of the timestamps. This is only necessary if you edit the timestamps directly. If you change them with @kbd{S-@key{cursor}} keys, the update is automatic. @orgcmd{C-S-@key{up/down},org-clock-timestamps-up/down} -On @code{CLOCK} log lines, increase/decrease both timestamps at the same -time so that duration keeps the same. +On @code{CLOCK} log lines, increase/decrease both timestamps so that the +clock duration keeps the same. +@orgcmd{S-M-@key{up/down},org-timestamp-up/down} +On @code{CLOCK} log lines, increase/decrease the timestamp at point and +the one of the previous (or the next clock) timestamp by the same duration. +For example, if you hit @kbd{S-M-@key{up}} to increase a clocked-out timestamp +by five minutes, then the clocked-in timestamp of the next clock will be +increased by five minutes. @orgcmd{C-c C-t,org-todo} Changing the TODO state of an item to DONE automatically stops the clock if it is running in this same item. -@orgcmd{C-c C-x C-x,org-clock-cancel} +@orgcmd{C-c C-x C-q,org-clock-cancel} Cancel the current clock. This is useful if a clock was started by mistake, or if you ended up working on something else. @orgcmd{C-c C-x C-j,org-clock-goto} @@ -6004,6 +6144,10 @@ The @kbd{l} key may be used in the timeline (@pxref{Timeline}) and in the agenda (@pxref{Weekly/daily agenda}) to show which tasks have been worked on or closed during a day. +@strong{Important:} note that both @code{org-clock-out} and +@code{org-clock-in-last} can have a global keybinding and will not +modify the window disposition. + @node The clock table, Resolving idle time, Clocking commands, Clocking work time @subsection The clock table @cindex clocktable, dynamic block @@ -6141,7 +6285,9 @@ would be @end example @node Resolving idle time, , The clock table, Clocking work time -@subsection Resolving idle time +@subsection Resolving idle time and continuous clocking + +@subsubheading Resolving idle time @cindex resolve idle time @cindex idle, resolve, dangling @@ -6156,12 +6302,12 @@ as 10 or 15, Emacs can alert you when you get back to your computer after being idle for that many minutes@footnote{On computers using Mac OS X, idleness is based on actual user idleness, not just Emacs' idle time. For X11, you can install a utility program @file{x11idle.c}, available in the -UTILITIES directory of the Org git distribution, to get the same general -treatment of idleness. On other systems, idle time refers to Emacs idle time -only.}, and ask what you want to do with the idle time. There will be a -question waiting for you when you get back, indicating how much idle time has -passed (constantly updated with the current amount), as well as a set of -choices to correct the discrepancy: +@code{contrib/scripts} directory of the Org git distribution, to get the same +general treatment of idleness. On other systems, idle time refers to Emacs +idle time only.}, and ask what you want to do with the idle time. There will +be a question waiting for you when you get back, indicating how much idle +time has passed (constantly updated with the current amount), as well as a +set of choices to correct the discrepancy: @table @kbd @item k @@ -6206,7 +6352,19 @@ identical to dealing with away time due to idleness; it is just happening due to a recovery event rather than a set amount of idle time. You can also check all the files visited by your Org agenda for dangling -clocks at any time using @kbd{M-x org-resolve-clocks}. +clocks at any time using @kbd{M-x org-resolve-clocks RET} (or @kbd{C-c C-x C-z}). + +@subsubheading Continuous clocking +@cindex continuous clocking +@vindex org-clock-continuously + +You may want to start clocking from the time when you clocked out the +previous task. To enable this systematically, set @code{org-clock-continuously} +to @code{t}. Each time you clock in, Org retrieves the clock-out time of the +last clocked entry for this session, and start the new clock from there. + +If you only want this from time to time, use three universal prefix arguments +with @code{org-clock-in} and two @kbd{C-u C-u} with @code{org-clock-in-last}. @node Effort estimates, Relative timer, Clocking work time, Dates and Times @section Effort estimates @@ -6436,6 +6594,15 @@ template in the usual way. Visit the last stored capture item in its buffer. @end table +@vindex org-capture-bookmark +@cindex org-capture-last-stored +You can also jump to the bookmark @code{org-capture-last-stored}, which will +automatically be created unless you set @code{org-capture-bookmark} to +@code{nil}. + +To insert the capture at point in an Org buffer, call @code{org-capture} with +a @code{C-0} prefix argument. + @node Capture templates, , Using capture, Capture @subsection Capture templates @cindex templates, for Capture @@ -6490,6 +6657,7 @@ like this: @menu * Template elements:: What is needed for a complete template entry * Template expansion:: Filling in information about time and context +* Templates in contexts:: Only show a template in a specific context @end menu @node Template elements, Template expansion, Capture templates, Capture templates @@ -6633,36 +6801,38 @@ buffer again after capture is completed. @end table @end table -@node Template expansion, , Template elements, Capture templates +@node Template expansion, Templates in contexts, Template elements, Capture templates @subsubsection Template expansion In the template itself, special @kbd{%}-escapes@footnote{If you need one of -these sequences literally, escape the @kbd{%} with a backslash.} allow +these sequences literally, escape the @kbd{%} with a backslash.} allow dynamic insertion of content. The templates are expanded in the order given here: @smallexample -%[@var{file}] @r{insert the contents of the file given by @var{file}.} -%(@var{sexp}) @r{evaluate Elisp @var{sexp} and replace with the result.} -%<...> @r{the result of format-time-string on the ... format specification.} -%t @r{timestamp, date only.} -%T @r{timestamp with date and time.} -%u, %U @r{like the above, but inactive timestamps.} -%a @r{annotation, normally the link created with @code{org-store-link}.} -%i @r{initial content, the region when capture is called while the} +%[@var{file}] @r{Insert the contents of the file given by @var{file}.} +%(@var{sexp}) @r{Evaluate Elisp @var{sexp} and replace with the result.} + @r{The sexp must return a string.} +%<...> @r{The result of format-time-string on the ... format specification.} +%t @r{Timestamp, date only.} +%T @r{Timestamp, with date and time.} +%u, %U @r{Like the above, but inactive timestamps.} +%i @r{Initial content, the region when capture is called while the} @r{region is active.} @r{The entire text will be indented like @code{%i} itself.} -%A @r{like @code{%a}, but prompt for the description part.} +%a @r{Annotation, normally the link created with @code{org-store-link}.} +%A @r{Like @code{%a}, but prompt for the description part.} +%l @r{Like %a, but only insert the literal link.} %c @r{Current kill ring head.} %x @r{Content of the X clipboard.} -%k @r{title of the currently clocked task.} -%K @r{link to the currently clocked task.} -%n @r{user name (taken from @code{user-full-name}).} -%f @r{file visited by current buffer when org-capture was called.} -%F @r{full path of the file or directory visited by current buffer.} -%:keyword @r{specific information for certain link types, see below.} -%^g @r{prompt for tags, with completion on tags in target file.} -%^G @r{prompt for tags, with completion all tags in all agenda files.} -%^t @r{like @code{%t}, but prompt for date. Similarly @code{%^T}, @code{%^u}, @code{%^U}.} +%k @r{Title of the currently clocked task.} +%K @r{Link to the currently clocked task.} +%n @r{User name (taken from @code{user-full-name}).} +%f @r{File visited by current buffer when org-capture was called.} +%F @r{Full path of the file or directory visited by current buffer.} +%:keyword @r{Specific information for certain link types, see below.} +%^g @r{Prompt for tags, with completion on tags in target file.} +%^G @r{Prompt for tags, with completion all tags in all agenda files.} +%^t @r{Like @code{%t}, but prompt for date. Similarly @code{%^T}, @code{%^u}, @code{%^U}.} @r{You may define a prompt like @code{%^@{Birthday@}t}.} %^C @r{Interactive selection of which kill or clip to use.} %^L @r{Like @code{%^C}, but insert as link.} @@ -6671,6 +6841,9 @@ dynamic insertion of content. The templates are expanded in the order given her @r{You may specify a default value and a completion table with} @r{%^@{prompt|default|completion2|completion3...@}.} @r{The arrow keys access a prompt-specific history.} +%\n @r{Insert the text entered at the nth %^@{@var{prompt}@}, where @code{n} is} + @r{a number, starting from 1.} +%? @r{After completing the template, position cursor here.} @end smallexample @noindent @@ -6682,21 +6855,21 @@ similar way.}: @vindex org-from-is-user-regexp @smallexample -Link type | Available keywords -------------------------+---------------------------------------------- -bbdb | %:name %:company -irc | %:server %:port %:nick -vm, wl, mh, mew, rmail | %:type %:subject %:message-id - | %:from %:fromname %:fromaddress - | %:to %:toname %:toaddress - | %:date @r{(message date header field)} - | %:date-timestamp @r{(date as active timestamp)} - | %:date-timestamp-inactive @r{(date as inactive timestamp)} - | %:fromto @r{(either "to NAME" or "from NAME")@footnote{This will always be the other, not the user. See the variable @code{org-from-is-user-regexp}.}} -gnus | %:group, @r{for messages also all email fields} -w3, w3m | %:url -info | %:file %:node -calendar | %:date +Link type | Available keywords +---------------------------------+---------------------------------------------- +bbdb | %:name %:company +irc | %:server %:port %:nick +vm, vm-imap, wl, mh, mew, rmail | %:type %:subject %:message-id + | %:from %:fromname %:fromaddress + | %:to %:toname %:toaddress + | %:date @r{(message date header field)} + | %:date-timestamp @r{(date as active timestamp)} + | %:date-timestamp-inactive @r{(date as inactive timestamp)} + | %:fromto @r{(either "to NAME" or "from NAME")@footnote{This will always be the other, not the user. See the variable @code{org-from-is-user-regexp}.}} +gnus | %:group, @r{for messages also all email fields} +w3, w3m | %:url +info | %:file %:node +calendar | %:date @end smallexample @noindent @@ -6706,6 +6879,29 @@ To place the cursor after template expansion use: %? @r{After completing the template, position cursor here.} @end smallexample +@node Templates in contexts, , Template expansion, Capture templates +@subsubsection Templates in contexts + +@vindex org-capture-templates-contexts +To control whether a capture template should be accessible from a specific +context, you can customize @var{org-capture-templates-contexts}. Let's say +for example that you have a capture template @code{"p"} for storing Gnus +emails containing patches. Then you would configure this option like this: + +@example +(setq org-capture-templates-contexts + '(("p" (in-mode . "message-mode")))) +@end example + +You can also tell that the command key @code{"p"} should refer to another +template. In that case, add this command key like this: + +@example +(setq org-capture-templates-contexts + '(("p" "q" (in-mode . "message-mode")))) +@end example + +See the docstring of the variable for more information. @node Attachments, RSS Feeds, Capture, Capture - Refile - Archive @section Attachments @@ -6947,16 +7143,20 @@ is invoked, the level 1 trees will be checked. @cindex archive locations The default archive location is a file in the same directory as the current file, with the name derived by appending @file{_archive} to the -current file name. For information and examples on how to change this, +current file name. You can also choose what heading to file archived +items under, with the possibility to add them to a datetree in a file. +For information and examples on how to specify the file and the heading, see the documentation string of the variable -@code{org-archive-location}. There is also an in-buffer option for -setting this variable, for example@footnote{For backward compatibility, -the following also works: If there are several such lines in a file, -each specifies the archive location for the text below it. The first -such line also applies to any text before its definition. However, -using this method is @emph{strongly} deprecated as it is incompatible -with the outline structure of the document. The correct method for -setting multiple archive locations in a buffer is using properties.}: +@code{org-archive-location}. + +There is also an in-buffer option for setting this variable, for +example@footnote{For backward compatibility, the following also works: +If there are several such lines in a file, each specifies the archive +location for the text below it. The first such line also applies to any +text before its definition. However, using this method is +@emph{strongly} deprecated as it is incompatible with the outline +structure of the document. The correct method for setting multiple +archive locations in a buffer is using properties.}: @cindex #+ARCHIVE @example @@ -7220,6 +7420,17 @@ the region. Otherwise, restrict it to the current subtree@footnote{For backward compatibility, you can also press @kbd{0} to restrict to the current region/subtree.}. After pressing @kbd{< <}, you still need to press the character selecting the command. + +@item * +@vindex org-agenda-sticky +Toggle sticky agenda views. By default, Org maintains only a single agenda +buffer and rebuilds it each time you change the view, to make sure everything +is always up to date. If you switch between views often and the build time +bothers you, you can turn on sticky agenda buffers (make this the default by +customizing the variable @code{org-agenda-sticky}). With sticky agendas, the +dispatcher only switches to the selected view, you need to update it by hand +with @kbd{r} or @kbd{g}. You can toggle sticky agenda view any time with +@code{org-toggle-sticky-agenda}. @end table You can also define custom commands that will be accessible through the @@ -7368,11 +7579,13 @@ in an Org or Diary file. @cindex appointment @cindex reminders -Org can interact with Emacs appointments notification facility. To add all -the appointments of your agenda files, use the command -@code{org-agenda-to-appt}. This command also lets you filter through the -list of your appointments and add only those belonging to a specific category -or matching a regular expression. See the docstring for details. +Org can interact with Emacs appointments notification facility. To add the +appointments of your agenda files, use the command @code{org-agenda-to-appt}. +This command lets you filter through the list of your appointments and add +only those belonging to a specific category or matching a regular expression. +It also reads a @code{APPT_WARNTIME} property which will then override the +value of @code{appt-message-warning-time} for this appointment. See the +docstring for details. @node Global TODO list, Matching tags and properties, Weekly/daily agenda, Built-in agenda views @subsection The global TODO list @@ -7511,6 +7724,9 @@ So a search @samp{+LEVEL=3+boss-TODO="DONE"} lists all level three headlines that have the tag @samp{boss} and are @emph{not} marked with the TODO keyword DONE. In buffers with @code{org-odd-levels-only} set, @samp{LEVEL} does not count the number of stars, but @samp{LEVEL=2} will correspond to 3 stars etc. +The ITEM special property cannot currently be used in tags/property +searches@footnote{But @pxref{x-agenda-skip-entry-regexp, +,skipping entries based on regexp}.}. Here are more examples: @table @samp @@ -8218,21 +8434,6 @@ Schedule this item. With prefix arg remove the scheduling timestamp @orgcmd{C-c C-d,org-agenda-deadline} Set a deadline for this item. With prefix arg remove the deadline. @c -@orgcmd{k,org-agenda-action} -Agenda actions, to set dates for selected items to the cursor date. -This command also works in the calendar! The command prompts for an -additional key: -@example -m @r{Mark the entry at point for action. You can also make entries} - @r{in Org files with @kbd{C-c C-x C-k}.} -d @r{Set the deadline of the marked entry to the date at point.} -s @r{Schedule the marked entry at the date at point.} -r @r{Call @code{org-capture} with the cursor date as default date.} -@end example -@noindent -Press @kbd{r} afterward to refresh the agenda and see the effect of the -command. -@c @orgcmd{S-@key{right},org-agenda-do-date-later} Change the timestamp associated with the current line by one day into the future. If the date is in the past, the first call to this command will move @@ -8265,9 +8466,18 @@ Cancel the currently running clock. @c @orgcmd{J,org-agenda-clock-goto} Jump to the running clock in another window. +@c +@orgcmd{k,org-agenda-capture} +Like @code{org-capture}, but use the date at point as the default date for +the capture template. See @var{org-capture-use-agenda-date} to make this +the default behavior of @code{org-capture}. +@cindex capturing, from agenda +@vindex org-capture-use-agenda-date @tsubheading{Bulk remote editing selected entries} @cindex remote editing, bulk, from agenda +@vindex org-agenda-bulk-persistent-marks +@vindex org-agenda-bulk-custom-functions @orgcmd{m,org-agenda-bulk-mark} Mark the entry at point for bulk action. With prefix arg, mark that many @@ -8286,10 +8496,12 @@ Unmark all marked entries for bulk action. Bulk action: act on all marked entries in the agenda. This will prompt for another key to select the action to be applied. The prefix arg to @kbd{B} will be passed through to the @kbd{s} and @kbd{d} commands, to bulk-remove -these special timestamps. +these special timestamps. By default, marks are removed after the bulk. If +you want them to persist, set @code{org-agenda-bulk-persistent-marks} to +@code{t} or hit @kbd{p} at the prompt. + @example -r @r{Prompt for a single refile target and move all entries. The entries} - @r{will no longer be in the agenda; refresh (@kbd{g}) to bring them back.} +* @r{Toggle persistent marks.} $ @r{Archive all selected entries.} A @r{Archive entries by moving them to their respective archive siblings.} t @r{Change TODO state. This prompts for a single TODO keyword and} @@ -8300,10 +8512,12 @@ t @r{Change TODO state. This prompts for a single TODO keyword and} s @r{Schedule all items to a new date. To shift existing schedule dates} @r{by a fixed number of days, use something starting with double plus} @r{at the prompt, for example @samp{++8d} or @samp{++2w}.} +d @r{Set deadline to a specific date.} +r @r{Prompt for a single refile target and move all entries. The entries} + @r{will no longer be in the agenda; refresh (@kbd{g}) to bring them back.} S @r{Reschedule randomly into the coming N days. N will be prompted for.} @r{With prefix arg (@kbd{C-u B S}), scatter only across weekdays.} -d @r{Set deadline to a specific date.} -f @r{Apply a function to marked entries.} +f @r{Apply a function@footnote{You can also create persistent custom functions through@code{org-agenda-bulk-custom-functions}.} to marked entries.} @r{For example, the function below sets the CATEGORY property of the} @r{entries to web.} @r{(defun set-category ()} @@ -8371,7 +8585,7 @@ Export a single iCalendar file containing entries from all agenda files. This is a globally available command, and also available in the agenda menu. @tsubheading{Exporting to a file} -@orgcmd{C-x C-w,org-write-agenda} +@orgcmd{C-x C-w,org-agenda-write} @cindex exporting agenda views @cindex agenda views, exporting @vindex org-agenda-exporter-settings @@ -8420,11 +8634,12 @@ buffer, or a sparse tree (the latter covering of course only the current buffer). @kindex C-c a C @vindex org-agenda-custom-commands + Custom commands are configured in the variable @code{org-agenda-custom-commands}. You can customize this variable, for -example by pressing @kbd{C-c a C}. You can also directly set it with -Emacs Lisp in @file{.emacs}. The following example contains all valid -search types: +example by pressing @kbd{C-c a C}. You can also directly set it with Emacs +Lisp in @file{.emacs}. The following example contains all valid search +types: @lisp @group @@ -8584,6 +8799,27 @@ this interface, the @emph{values} are just Lisp expressions. So if the value is a string, you need to add the double-quotes around the value yourself. +@vindex org-agenda-custom-commands-contexts +To control whether an agenda command should be accessible from a specific +context, you can customize @var{org-agenda-custom-commands-contexts}. Let's +say for example that you have an agenda commands @code{"o"} displaying a view +that you only need when reading emails. Then you would configure this option +like this: + +@example +(setq org-agenda-custom-commands-contexts + '(("o" (in-mode . "message-mode")))) +@end example + +You can also tell that the command key @code{"o"} should refer to another +command key @code{"r"}. In that case, add this command key like this: + +@example +(setq org-agenda-custom-commands-contexts + '(("o" "r" (in-mode . "message-mode")))) +@end example + +See the docstring of the variable for more information. @node Exporting Agenda Views, Agenda column view, Custom agenda views, Agenda Views @section Exporting Agenda Views @@ -8598,7 +8834,7 @@ a PDF file will also create the postscript file.}, and iCalendar files. If you want to do this only occasionally, use the command @table @kbd -@orgcmd{C-x C-w,org-write-agenda} +@orgcmd{C-x C-w,org-agenda-write} @cindex exporting agenda views @cindex agenda views, exporting @vindex org-agenda-exporter-settings @@ -8777,6 +9013,14 @@ a column listing the planned total effort for a task---one of the major applications for column view in the agenda. If you want information about clocked time in the displayed period use clock table mode (press @kbd{R} in the agenda). + +@item +@cindex property, special, CLOCKSUM_T +When the column view in the agenda shows the @code{CLOCKSUM_T}, that is +always today's clocked time for this item. So even in the weekly agenda, +the clocksum listed in column view only originates from today. This lets +you compare the time you spent on a task for today, with the time already +spent (via @code{CLOCKSUM}) and with the planned total effort for it. @end enumerate @@ -8988,11 +9232,11 @@ a horizontal line (@samp{
} in HTML and @code{\hrule} in @LaTeX{}). @cindex exporting, not @cindex #+BEGIN_COMMENT -Lines starting with @samp{#} in column zero are treated as comments and will -never be exported. If you want an indented line to be treated as a comment, -start it with @samp{#+ }. Also entire subtrees starting with the word -@samp{COMMENT} will never be exported. Finally, regions surrounded by -@samp{#+BEGIN_COMMENT} ... @samp{#+END_COMMENT} will not be exported. +Lines starting with zero or more whitespace characters followed by @samp{#} +are treated as comments and will never be exported. Also entire subtrees +starting with the word @samp{COMMENT} will never be exported. Finally, +regions surrounded by @samp{#+BEGIN_COMMENT} ... @samp{#+END_COMMENT} will +not be exported. @table @kbd @kindex C-c ; @@ -9016,7 +9260,7 @@ the object with @code{\ref@{tab:basic-data@}}: @example #+CAPTION: This is the caption for the next table (or link) -#+LABEL: tbl:basic-data +#+LABEL: tab:basic-data | ... | ...| |-----|----| @end example @@ -9080,23 +9324,14 @@ look like the fontified Emacs buffer@footnote{This works automatically for the HTML backend (it requires version 1.34 of the @file{htmlize.el} package, which is distributed with Org). Fontified code chunks in @LaTeX{} can be achieved using either the listings or the -@url{http://code.google.com/p/minted, minted,} package. To use listings, turn -on the variable @code{org-export-latex-listings} and ensure that the listings -package is included by the @LaTeX{} header (e.g.@: by configuring -@code{org-export-latex-packages-alist}). See the listings documentation for -configuration options, including obtaining colored output. For minted it is -necessary to install the program @url{http://pygments.org, pygments}, in -addition to setting @code{org-export-latex-minted}, ensuring that the minted -package is included by the @LaTeX{} header, and ensuring that the -@code{-shell-escape} option is passed to @file{pdflatex} (see -@code{org-latex-to-pdf-process}). See the documentation of the variables -@code{org-export-latex-listings} and @code{org-export-latex-minted} for -further details.}. This is done with the @samp{src} block, where you also -need to specify the name of the major mode that should be used to fontify the -example@footnote{Code in @samp{src} blocks may also be evaluated either -interactively or on export. See @pxref{Working With Source Code} for more -information on evaluating code blocks.}, see @ref{Easy Templates} for -shortcuts to easily insert code blocks. +@url{http://code.google.com/p/minted, minted,} package. Refer to +@code{org-export-latex-listings} documentation for details.}. This is done +with the @samp{src} block, where you also need to specify the name of the +major mode that should be used to fontify the example@footnote{Code in +@samp{src} blocks may also be evaluated either interactively or on export. +See @pxref{Working With Source Code} for more information on evaluating code +blocks.}, see @ref{Easy Templates} for shortcuts to easily insert code +blocks. @cindex #+BEGIN_SRC @example @@ -9276,7 +9511,7 @@ readily processed to produce pretty output for a number of export backends. @menu * Special symbols:: Greek letters and other symbols * Subscripts and superscripts:: Simple syntax for raising/lowering text -* @LaTeX{} fragments:: Complex formulas made easy +* @LaTeX{} fragments:: Complex formulas made easy * Previewing @LaTeX{} fragments:: What will this snippet look like? * CDLaTeX mode:: Speed up entering of formulas @end menu @@ -9382,10 +9617,11 @@ this regularly or on pages with significant page views, you should install server in order to limit the load of our server.}. Finally, it can also process the mathematical expressions into images@footnote{For this to work you need to be on a system with a working @LaTeX{} installation. You also -need the @file{dvipng} program, available at -@url{http://sourceforge.net/projects/dvipng/}. The @LaTeX{} header that will -be used when processing a fragment can be configured with the variable -@code{org-format-latex-header}.} that can be displayed in a browser or in +need the @file{dvipng} program or the @file{convert}, respectively available +at @url{http://sourceforge.net/projects/dvipng/} and from the +@file{imagemagick} suite. The @LaTeX{} header that will be used when +processing a fragment can be configured with the variable +@code{org-format-latex-header}.} that can be displayed in a browser or in DocBook documents. @LaTeX{} fragments don't need any special marking at all. The following @@ -9630,7 +9866,7 @@ Insert template with export options, see example below. @cindex #+EXPORT_SELECT_TAGS @cindex #+EXPORT_EXCLUDE_TAGS @cindex #+XSLT -@cindex #+LATEX_HEADER +@cindex #+LaTeX_HEADER @vindex user-full-name @vindex user-mail-address @vindex org-export-default-language @@ -9650,7 +9886,7 @@ Insert template with export options, see example below. @r{You need to confirm using these, or configure @code{org-export-allow-BIND}} #+LINK_UP: the ``up'' link of an exported page #+LINK_HOME: the ``home'' link of an exported page -#+LATEX_HEADER: extra line(s) for the @LaTeX{} header, like \usepackage@{xyz@} +#+LaTeX_HEADER: extra line(s) for the @LaTeX{} header, like \usepackage@{xyz@} #+EXPORT_SELECT_TAGS: Tags that select a tree for export #+EXPORT_EXCLUDE_TAGS: Tags that exclude a tree from export #+XSLT: the XSLT stylesheet used by DocBook exporter to generate FO file @@ -9707,7 +9943,7 @@ author: @r{turn on/off inclusion of author name/email into exported file} email: @r{turn on/off inclusion of author email into exported file} creator: @r{turn on/off inclusion of creator info into exported file} timestamp: @r{turn on/off inclusion creation time into exported file} -d: @r{turn on/off inclusion of drawers} +d: @r{turn on/off inclusion of drawers, or list drawers to include} @end example @noindent These options take effect in both the HTML and @LaTeX{} export, except for @@ -9770,7 +10006,7 @@ with special characters and symbols available in these encodings. @table @kbd @orgcmd{C-c C-e a,org-export-as-ascii} @cindex property, EXPORT_FILE_NAME -Export as ASCII file. For an Org file, @file{myfile.org}, the ASCII file +Export as an ASCII file. For an Org file, @file{myfile.org}, the ASCII file will be @file{myfile.txt}. The file will be overwritten without warning. If there is an active region@footnote{This requires @code{transient-mark-mode} be turned on.}, only the region will be @@ -9802,13 +10038,13 @@ at a different level, specify it with a prefix argument. For example, @end example @noindent -creates only top level headlines and does the rest as items. When +creates only top level headlines and exports the rest as items. When headlines are converted to items, the indentation of the text following the headline is changed to fit nicely under the item. This is done with the assumption that the first body line indicates the base indentation of the body text. Any indentation larger than this is adjusted to preserve the layout relative to the first line. Should there be lines with less -indentation than the first, these are left alone. +indentation than the first one, these are left alone. @vindex org-export-ascii-links-to-notes Links will be exported in a footnote-like style, with the descriptive part in @@ -9819,7 +10055,7 @@ the text and the link in a note before the next heading. See the variable @section HTML export @cindex HTML export -Org mode contains an HTML (XHTML 1.0 strict) exporter with extensive +Org mode contains a HTML (XHTML 1.0 strict) exporter with extensive HTML formatting, in ways similar to John Gruber's @emph{markdown} language, but with additional support for tables. @@ -9845,7 +10081,7 @@ language, but with additional support for tables. @table @kbd @orgcmd{C-c C-e h,org-export-as-html} @cindex property, EXPORT_FILE_NAME -Export as HTML file. For an Org file @file{myfile.org}, +Export as a HTML file. For an Org file @file{myfile.org}, the HTML file will be @file{myfile.html}. The file will be overwritten without warning. If there is an active region@footnote{This requires @code{transient-mark-mode} be turned on.}, only the region will be @@ -9854,7 +10090,7 @@ current subtree, use @kbd{C-c @@}.}, the tree head will become the document title. If the tree head entry has, or inherits, an @code{EXPORT_FILE_NAME} property, that name will be used for the export. @orgcmd{C-c C-e b,org-export-as-html-and-open} -Export as HTML file and immediately open it with a browser. +Export as a HTML file and immediately open it with a browser. @orgcmd{C-c C-e H,org-export-as-html-to-buffer} Export to a temporary buffer. Do not create a file. @orgcmd{C-c C-e R,org-export-region-as-html} @@ -9864,7 +10100,7 @@ the region. This is good for cut-and-paste operations. @item C-c C-e v h/b/H/R Export only the visible part of the document. @item M-x org-export-region-as-html -Convert the region to HTML under the assumption that it was Org mode +Convert the region to HTML under the assumption that it was in Org mode syntax before. This is a global command that can be invoked in any buffer. @item M-x org-replace-region-by-HTML @@ -9901,11 +10137,11 @@ creates two levels of headings and does the rest as items. The HTML exporter lets you define a preamble and a postamble. The default value for @code{org-export-html-preamble} is @code{t}, which -means that the preamble is inserted depending on the relevant formatting -string in @code{org-export-html-preamble-format}. +means that the preamble is inserted depending on the relevant format string +in @code{org-export-html-preamble-format}. Setting @code{org-export-html-preamble} to a string will override the default -formatting string. Setting it to a function, will insert the output of the +format string. Setting it to a function, will insert the output of the function, which must be a string; such a function takes no argument but you can check against the value of @code{opt-plist}, which contains the list of publishing properties for the current file. Setting to @code{nil} will not @@ -9917,7 +10153,7 @@ means that the HTML exporter will look for the value of @code{org-export-creator-info} and @code{org-export-time-stamp-file}, @code{org-export-html-validation-link} and build the postamble from these values. Setting @code{org-export-html-postamble} to @code{t} will insert the -postamble from the relevant formatting string found in +postamble from the relevant format string found in @code{org-export-html-postamble-format}. Setting it to @code{nil} will not insert any postamble. @@ -9958,7 +10194,7 @@ includes automatic links created by radio targets (@pxref{Radio targets}). Links to external files will still work if the target file is on the same @i{relative} path as the published Org file. Links to other @file{.org} files will be translated into HTML links under the assumption -that an HTML version also exists of the linked file, at the same relative +that a HTML version also exists of the linked file, at the same relative path. @samp{id:} links can then be used to jump to specific entries across files. For information related to linking files while publishing them to a publishing directory see @ref{Publishing links}. @@ -10199,7 +10435,7 @@ viewing options: path: @r{The path to the script. The default is to grab the script from} @r{@url{http://orgmode.org/org-info.js}, but you might want to have} @r{a local copy and use a path like @samp{../scripts/org-info.js}.} -view: @r{Initial view when website is first shown. Possible values are:} +view: @r{Initial view when the website is first shown. Possible values are:} info @r{Info-like interface with one section per page.} overview @r{Folding interface, initially showing only top-level.} content @r{Folding interface, starting with all headlines visible.} @@ -10265,7 +10501,7 @@ sections. @table @kbd @orgcmd{C-c C-e l,org-export-as-latex} @cindex property EXPORT_FILE_NAME -Export as @LaTeX{} file. For an Org file +Export as a @LaTeX{} file. For an Org file @file{myfile.org}, the @LaTeX{} file will be @file{myfile.tex}. The file will be overwritten without warning. If there is an active region@footnote{This requires @code{transient-mark-mode} be turned on.}, only the region will be @@ -10278,7 +10514,7 @@ Export to a temporary buffer. Do not create a file. @item C-c C-e v l/L Export only the visible part of the document. @item M-x org-export-region-as-latex -Convert the region to @LaTeX{} under the assumption that it was Org mode +Convert the region to @LaTeX{} under the assumption that it was in Org mode syntax before. This is a global command that can be invoked in any buffer. @item M-x org-replace-region-by-latex @@ -10322,11 +10558,11 @@ By default, the @LaTeX{} output uses the class @code{article}. @vindex org-export-latex-classes @vindex org-export-latex-default-packages-alist @vindex org-export-latex-packages-alist -@cindex #+LATEX_HEADER -@cindex #+LATEX_CLASS -@cindex #+LATEX_CLASS_OPTIONS -@cindex property, LATEX_CLASS -@cindex property, LATEX_CLASS_OPTIONS +@cindex #+LaTeX_HEADER +@cindex #+LaTeX_CLASS +@cindex #+LaTeX_CLASS_OPTIONS +@cindex property, LaTeX_CLASS +@cindex property, LaTeX_CLASS_OPTIONS You can change this globally by setting a different value for @code{org-export-latex-default-class} or locally by adding an option like @code{#+LaTeX_CLASS: myclass} in your file, or with a @code{:LaTeX_CLASS:} @@ -10336,11 +10572,22 @@ defines a header template for each class@footnote{Into which the values of @code{org-export-latex-default-packages-alist} and @code{org-export-latex-packages-alist} are spliced.}, and allows you to define the sectioning structure for each class. You can also define your own -classes there. @code{#+LaTeX_CLASS_OPTIONS} or a @code{LaTeX_CLASS_OPTIONS} -property can specify the options for the @code{\documentclass} macro. You -can also use @code{#+LATEX_HEADER: \usepackage@{xyz@}} to add lines to the -header. See the docstring of @code{org-export-latex-classes} for more -information. +classes there. @code{#+LaTeX_CLASS_OPTIONS} or a @code{:LaTeX_CLASS_OPTIONS:} +property can specify the options for the @code{\documentclass} macro. The +options to documentclass have to be provided, as expected by @LaTeX{}, within +square brackets. You can also use @code{#+LaTeX_HEADER: \usepackage@{xyz@}} +to add lines to the header. See the docstring of +@code{org-export-latex-classes} for more information. An example is shown +below. + +@example +#+LaTeX_CLASS: article +#+LaTeX_CLASS_OPTIONS: [a4paper] +#+LaTeX_HEADER: \usepackage@{xyz@} + +* Headline 1 + some text +@end example @node Quoting @LaTeX{} code, Tables in @LaTeX{} export, Header and sectioning, @LaTeX{} and PDF export @subsection Quoting @LaTeX{} code @@ -10424,9 +10671,7 @@ add something like @samp{placement=[h!]} to the attributes. It is to be noted this option can be used with tables as well@footnote{One can also take advantage of this option to pass other, unrelated options into the figure or table environment. For an example see the section ``Exporting org files'' in -@url{http://orgmode.org/worg/org-hacks.html}}. For example the -@code{#+ATTR_LaTeX:} line below is exported as the @code{figure} environment -below it. +@url{http://orgmode.org/worg/org-hacks.html}}. If you would like to let text flow around the image, add the word @samp{wrap} to the @code{#+ATTR_LaTeX:} line, which will make the figure occupy the left @@ -10513,7 +10758,7 @@ transitions. Frames will automatically receive a @code{fragile} option if they contain source code that uses the verbatim environment. Special @file{beamer} specific code can be inserted using @code{#+BEAMER:} and -@code{#+BEGIN_beamer...#+end_beamer} constructs, similar to other export +@code{#+BEGIN_BEAMER...#+END_BEAMER} constructs, similar to other export backends, but with the difference that @code{#+LaTeX:} stuff will be included in the presentation as well. @@ -10613,7 +10858,7 @@ Currently DocBook exporter only supports DocBook V5.0. @table @kbd @orgcmd{C-c C-e D,org-export-as-docbook} @cindex property EXPORT_FILE_NAME -Export as DocBook file. For an Org file, @file{myfile.org}, the DocBook XML +Export as a DocBook file. For an Org file, @file{myfile.org}, the DocBook XML file will be @file{myfile.xml}. The file will be overwritten without warning. If there is an active region@footnote{This requires @code{transient-mark-mode} to be turned on}, only the region will be @@ -10622,12 +10867,12 @@ current subtree, use @kbd{C-c @@}.}, the tree head will become the document title. If the tree head entry has, or inherits, an @code{EXPORT_FILE_NAME} property, that name will be used for the export. @orgcmd{C-c C-e V,org-export-as-docbook-pdf-and-open} -Export as DocBook file, process to PDF, then open the resulting PDF file. +Export as a DocBook file, process to PDF, then open the resulting PDF file. @vindex org-export-docbook-xslt-proc-command @vindex org-export-docbook-xsl-fo-proc-command -Note that, in order to produce PDF output based on exported DocBook file, you -need to have XSLT processor and XSL-FO processor software installed on your +Note that, in order to produce PDF output based on an exported DocBook file, +you need to have XSLT processor and XSL-FO processor software installed on your system. Check variables @code{org-export-docbook-xslt-proc-command} and @code{org-export-docbook-xsl-fo-proc-command}. @@ -10791,7 +11036,7 @@ special characters included in XHTML entities: @cindex org-odt.el @cindex org-modules -Orgmode@footnote{Versions 7.8 or later} supports export to OpenDocument Text +Org Mode@footnote{Versions 7.8 or later} supports export to OpenDocument Text (ODT) format using the @file{org-odt.el} module. Documents created by this exporter use the @cite{OpenDocument-v1.2 specification}@footnote{@url{http://docs.oasis-open.org/office/v1.2/OpenDocument-v1.2.html, @@ -10848,7 +11093,7 @@ inherits, an @code{EXPORT_FILE_NAME} property, that name will be used for the export. @orgcmd{C-c C-e O,org-export-as-odt-and-open} -Export as OpenDocument Text file and open the resulting file. +Export as an OpenDocument Text file and open the resulting file. @vindex org-export-odt-preferred-output-format If @code{org-export-odt-preferred-output-format} is specified, open the @@ -11180,11 +11425,11 @@ the @LaTeX{}-to-MathML converter. @table @kbd @item M-x org-export-as-odf -Convert a @LaTeX{} math snippet to OpenDocument formula (@file{.odf}) file. +Convert a @LaTeX{} math snippet to an OpenDocument formula (@file{.odf}) file. @item M-x org-export-as-odf-and-open -Convert a @LaTeX{} math snippet to OpenDocument formula (@file{.odf}) file and -open the formula file with the system-registered application. +Convert a @LaTeX{} math snippet to an OpenDocument formula (@file{.odf}) file +and open the formula file with the system-registered application. @end table @cindex dvipng @@ -11720,10 +11965,10 @@ all the nodes. @table @kbd @orgcmd{C-c C-e j,org-export-as-taskjuggler} -Export as TaskJuggler file. +Export as a TaskJuggler file. @orgcmd{C-c C-e J,org-export-as-taskjuggler-and-open} -Export as TaskJuggler file and then open the file with TaskJugglerUI. +Export as a TaskJuggler file and then open the file with TaskJugglerUI. @end table @subsection Tasks @@ -11833,7 +12078,7 @@ The Freemind exporter was written by Lennart Borgman. @table @kbd @orgcmd{C-c C-e m,org-export-as-freemind} -Export as Freemind mind map. For an Org file @file{myfile.org}, the Freemind +Export as a Freemind mind map. For an Org file @file{myfile.org}, the Freemind file will be @file{myfile.mm}. @end table @@ -11847,7 +12092,7 @@ does not interpret any additional Org mode features. @table @kbd @orgcmd{C-c C-e x,org-export-as-xoxo} -Export as XOXO file. For an Org file @file{myfile.org}, the XOXO file will be +Export as an XOXO file. For an Org file @file{myfile.org}, the XOXO file will be @file{myfile.html}. @orgkey{C-c C-e v x} Export only the visible part of the document. @@ -12318,7 +12563,7 @@ publish it as @file{theindex.html}. @end multitable The file will be created when first publishing a project with the -@code{:makeindex} set. The file only contains a statement @code{#+include: +@code{:makeindex} set. The file only contains a statement @code{#+INCLUDE: "theindex.inc"}. You can then build around this include statement by adding a title, style information, etc. @@ -12352,7 +12597,7 @@ Publishing to a local directory is also much faster than to a remote one, so that you can afford more easily to republish entire projects. If you set @code{org-publish-use-timestamps-flag} to @code{nil}, you gain the main benefit of re-including any changed external files such as source example -files you might include with @code{#+INCLUDE}. The timestamp mechanism in +files you might include with @code{#+INCLUDE:}. The timestamp mechanism in Org is not smart enough to detect if included files have been modified. @node Sample configuration, Triggering publication, Uploading files, Publishing @@ -12709,7 +12954,7 @@ and/or the name of the evaluated code block. The default value of @code{org-babel-results-keyword}. By default, the evaluation facility is only enabled for Lisp code blocks -specified as @code{emacs-lisp}. However, source code blocks in many languages +specified as @code{emacs-lisp}. However, source code blocks in many languages can be evaluated within Org mode (see @ref{Languages} for a list of supported languages and @ref{Structure of code blocks} for information on the syntax used to define a code block). @@ -12723,8 +12968,8 @@ evaluation from the @kbd{C-c C-c} key binding.}. This will call the its results into the Org mode buffer. @cindex #+CALL -It is also possible to evaluate named code blocks from anywhere in an -Org mode buffer or an Org mode table. Live code blocks located in the current +It is also possible to evaluate named code blocks from anywhere in an Org +mode buffer or an Org mode table. Live code blocks located in the current Org mode buffer or in the ``Library of Babel'' (see @ref{Library of Babel}) can be executed. Named code blocks can be executed with a separate @code{#+CALL:} line or inline within a block of text. @@ -12826,7 +13071,7 @@ Code blocks in the following languages are supported. Language-specific documentation is available for some languages. If available, it can be found at -@uref{http://orgmode.org/worg/org-contrib/babel/languages}. +@uref{http://orgmode.org/worg/org-contrib/babel/languages.html}. The @code{org-babel-load-languages} controls which languages are enabled for evaluation (by default only @code{emacs-lisp} is enabled). This variable can @@ -13018,7 +13263,7 @@ Multi-line header arguments on an un-named code block: (message "data1:%S, data2:%S" data1 data2) #+END_SRC - #+results: + #+RESULTS: : data1:1, data2:2 @end example @@ -13030,7 +13275,7 @@ Multi-line header arguments on a named code block: (message "data:%S" data) #+END_SRC - #+results: named-block + #+RESULTS: named-block : data:2 @end example @@ -13065,6 +13310,7 @@ argument in lowercase letters. The following header arguments are defined: * results:: Specify the type of results and how they will be collected and handled * file:: Specify a path for file output +* file-desc:: Specify a description for file results * dir:: Specify the default (possibly remote) directory for code block execution * exports:: Export code and/or results @@ -13088,6 +13334,7 @@ argument in lowercase letters. The following header arguments are defined: * rownames:: Handle row names in tables * shebang:: Make tangled files executable * eval:: Limit evaluation of specific code blocks +* wrap:: Mark source block evaluation results @end menu Additional header arguments are defined on a language-specific basis, see @@ -13102,7 +13349,7 @@ syntax used to specify arguments is the same across all languages. In every case, variables require a default value when they are declared. The values passed to arguments can either be literal values, references, or -Emacs Lisp code (see @ref{var, Emacs Lisp evaluation of variables}). References +Emacs Lisp code (see @ref{var, Emacs Lisp evaluation of variables}). References include anything in the Org mode file that takes a @code{#+NAME:}, @code{#+TBLNAME:}, or @code{#+RESULTS:} line. This includes tables, lists, @code{#+BEGIN_EXAMPLE} blocks, other code blocks, and the results of other @@ -13141,7 +13388,7 @@ an Org mode table named with either a @code{#+NAME:} or @code{#+TBLNAME:} line (length table) #+END_SRC -#+results: table-length +#+RESULTS: table-length : 4 @end example @@ -13160,7 +13407,7 @@ carried through to the source code block) (print x) #+END_SRC -#+results: +#+RESULTS: | simple | list | @end example @@ -13173,7 +13420,7 @@ optionally followed by parentheses (* 2 length) #+END_SRC -#+results: +#+RESULTS: : 8 @end example @@ -13188,7 +13435,7 @@ code block name using standard function call syntax (* 2 input) #+END_SRC -#+results: double +#+RESULTS: double : 16 #+NAME: squared @@ -13196,7 +13443,7 @@ code block name using standard function call syntax (* input input) #+END_SRC -#+results: squared +#+RESULTS: squared : 4 @end example @@ -13215,7 +13462,7 @@ on two lines (concatenate 'string x " for you.") #+END_SRC -#+results: read-literal-example +#+RESULTS: read-literal-example : A literal example : on two lines for you. @@ -13257,7 +13504,7 @@ following example assigns the last cell of the first row the table data #+END_SRC -#+results: +#+RESULTS: : a @end example @@ -13278,7 +13525,7 @@ to @code{data}. data #+END_SRC -#+results: +#+RESULTS: | 2 | b | | 3 | c | | 4 | d | @@ -13300,7 +13547,7 @@ column is referenced. data #+END_SRC -#+results: +#+RESULTS: | 1 | 2 | 3 | 4 | @end example @@ -13320,7 +13567,7 @@ another by commas, as shown in the following example. data #+END_SRC -#+results: +#+RESULTS: | 11 | 14 | 17 | @end example @@ -13353,7 +13600,7 @@ Emacs Lisp, as shown in the following example. $data #+END_SRC -#+results: +#+RESULTS: : (a b c) @end example @@ -13414,15 +13661,19 @@ buffer as quoted text. E.g., @code{:results value verbatim}. @item @code{file} The results will be interpreted as the path to a file, and will be inserted into the Org mode buffer as a file link. E.g., @code{:results value file}. -@item @code{raw}, @code{org} +@item @code{raw} The results are interpreted as raw Org mode code and are inserted directly into the buffer. If the results look like a table they will be aligned as such by Org mode. E.g., @code{:results value raw}. +@item @code{org} +The results are will be enclosed in a @code{BEGIN_SRC org} block. +They are not comma-escaped by default but they will be if you hit @kbd{TAB} +in the block and/or if you export the file. E.g., @code{:results value org}. @item @code{html} -Results are assumed to be HTML and will be enclosed in a @code{begin_html} +Results are assumed to be HTML and will be enclosed in a @code{BEGIN_HTML} block. E.g., @code{:results value html}. @item @code{latex} -Results assumed to be @LaTeX{} and are enclosed in a @code{begin_latex} block. +Results assumed to be @LaTeX{} and are enclosed in a @code{BEGIN_LaTeX} block. E.g., @code{:results value latex}. @item @code{code} Result are assumed to be parsable code and are enclosed in a code block. @@ -13431,7 +13682,7 @@ E.g., @code{:results value code}. The result is converted to pretty-printed code and is enclosed in a code block. This option currently supports Emacs Lisp, Python, and Ruby. E.g., @code{:results value pp}. -@item @code{wrap} +@item @code{drawer} The result is wrapped in a RESULTS drawer. This can be useful for inserting @code{raw} or @code{org} syntax results in such a way that their extent is known and they can be automatically removed or replaced. @@ -13459,7 +13710,7 @@ be prepended to the existing results. Otherwise the new results will be inserted as with @code{replace}. @end itemize -@node file, dir, results, Specific header arguments +@node file, file-desc, results, Specific header arguments @subsubsection @code{:file} The header argument @code{:file} is used to specify an external file in which @@ -13475,7 +13726,16 @@ The argument to @code{:file} should be either a string specifying the path to a file, or a list of two strings in which case the first element of the list should be the path to a file and the second a description for the link. -@node dir, exports, file, Specific header arguments +@node file-desc, dir, file, Specific header arguments +@subsubsection @code{:file-desc} + +The value of the @code{:file-desc} header argument is used to provide a +description for file code block results which are inserted as Org mode links +(see @ref{Link format}). If the @code{:file-desc} header argument is given +with no value the link path will be placed in both the ``link'' and the +``description'' portion of the Org mode link. + +@node dir, exports, file-desc, Specific header arguments @subsubsection @code{:dir} and remote execution While the @code{:file} header argument can be used to specify the path to the @@ -13655,21 +13915,34 @@ interpreted language. @node noweb, noweb-ref, session, Specific header arguments @subsubsection @code{:noweb} -The @code{:noweb} header argument controls expansion of ``noweb'' style (see -@ref{Noweb reference syntax}) references in a code block. This header -argument can have one of three values: @code{yes}, @code{no}, or @code{tangle}. +The @code{:noweb} header argument controls expansion of ``noweb'' syntax +references (see @ref{Noweb reference syntax}) when the code block is +evaluated, tangled, or exported. The @code{:noweb} header argument can have +one of the five values: @code{no}, @code{yes}, @code{tangle}, or +@code{no-export} @code{strip-export}. @itemize @bullet -@item @code{yes} -All ``noweb'' syntax references in the body of the code block will be -expanded before the block is evaluated, tangled or exported. @item @code{no} -The default. No ``noweb'' syntax specific action is taken when the code -block is evaluated, tangled or exported. +The default. ``Noweb'' syntax references in the body of the code block will +not be expanded before the code block is evaluated, tangled or exported. +@item @code{yes} +``Noweb'' syntax references in the body of the code block will be +expanded before the code block is evaluated, tangled or exported. @item @code{tangle} -All ``noweb'' syntax references in the body of the code block will be -expanded before the block is tangled, however ``noweb'' references will not -be expanded when the block is evaluated or exported. +``Noweb'' syntax references in the body of the code block will be expanded +before the code block is tangled. However, ``noweb'' syntax references will +not be expanded when the code block is evaluated or exported. +@item @code{no-export} +``Noweb'' syntax references in the body of the code block will be expanded +before the block is evaluated or tangled. However, ``noweb'' syntax +references will not be expanded when the code block is exported. +@item @code{strip-export} +``Noweb'' syntax references in the body of the code block will be expanded +before the block is evaluated or tangled. However, ``noweb'' syntax +references will not be removed when the code block is exported. +@item @code{eval} +``Noweb'' syntax references in the body of the code block will only be +expanded before the block is evaluated. @end itemize @subsubheading Noweb prefix lines @@ -13760,7 +14033,7 @@ the results of evaluating code blocks. It can be used to avoid re-evaluating unchanged code blocks. Note that the @code{:cache} header argument will not attempt to cache results when the @code{:session} header argument is used, because the results of the code block execution may be stored in the session -outside of the Org-mode buffer. The @code{:cache} header argument can have +outside of the Org mode buffer. The @code{:cache} header argument can have one of two values: @code{yes} or @code{no}. @itemize @bullet @@ -13770,7 +14043,7 @@ every time it is called. @item @code{yes} Every time the code block is run a SHA1 hash of the code and arguments passed to the block will be generated. This hash is packed into the -@code{#+results:} line and will be checked on subsequent +@code{#+RESULTS:} line and will be checked on subsequent executions of the code block. If the code block has not changed since the last time it was evaluated, it will not be re-evaluated. @end itemize @@ -13787,7 +14060,7 @@ changed since it was last run. runif(1) #+END_SRC - #+results[a2a72cd647ad44515fab62e144796432793d68e1]: random + #+RESULTS[a2a72cd647ad44515fab62e144796432793d68e1]: random 0.4659510825295 #+NAME: caller @@ -13795,7 +14068,7 @@ changed since it was last run. x #+END_SRC - #+results[bec9c8724e397d5df3b696502df3ed7892fc4f5f]: caller + #+RESULTS[bec9c8724e397d5df3b696502df3ed7892fc4f5f]: caller 0.254227238707244 @end example @@ -13839,7 +14112,7 @@ default value yields the following results. return tab #+END_SRC -#+results: echo-table +#+RESULTS: echo-table | a | b | c | | d | e | f | | g | h | i | @@ -13861,7 +14134,7 @@ Leaves hlines in the table. Setting @code{:hlines yes} has this effect. return tab #+END_SRC -#+results: echo-table +#+RESULTS: echo-table | a | b | c | |---+---+---| | d | e | f | @@ -13899,7 +14172,7 @@ processing, then reapplied to the results. return [[val + '*' for val in row] for row in tab] #+END_SRC -#+results: echo-table-again +#+RESULTS: echo-table-again | a | |----| | b* | @@ -13942,7 +14215,7 @@ and is then reapplied to the results. return [[val + 10 for val in row] for row in tab] #+END_SRC -#+results: echo-table-once-again +#+RESULTS: echo-table-once-again | one | 11 | 12 | 13 | 14 | 15 | | two | 16 | 17 | 18 | 19 | 20 | @end example @@ -13960,7 +14233,7 @@ Setting the @code{:shebang} header argument to a string value first line of any tangled file holding the code block, and the file permissions of the tangled file are set to make it executable. -@node eval, , shebang, Specific header arguments +@node eval, wrap, shebang, Specific header arguments @subsubsection @code{:eval} The @code{:eval} header argument can be used to limit the evaluation of specific code blocks. The @code{:eval} header argument can be useful for @@ -13985,6 +14258,14 @@ If this header argument is not set then evaluation is determined by the value of the @code{org-confirm-babel-evaluate} variable see @ref{Code evaluation security}. +@node wrap, , eval, Specific header arguments +@subsubsection @code{:wrap} +The @code{:wrap} header argument is used to mark the results of source block +evaluation. The header argument can be passed a string that will be appended +to @code{#+BEGIN_} and @code{#+END_}, which will then be used to wrap the +results. If not string is specified then the results will be wrapped in a +@code{#+BEGIN/END_RESULTS} block. + @node Results of evaluation, Noweb reference syntax, Header arguments, Working With Source Code @section Results of evaluation @cindex code block, results of evaluation @@ -14054,7 +14335,7 @@ process. For example, compare the following two blocks: print "bye" #+END_SRC -#+results: +#+RESULTS: : hello : bye @end example @@ -14067,7 +14348,7 @@ In non-session mode, the `2' is not printed and does not appear. print "bye" #+END_SRC -#+results: +#+RESULTS: : hello : 2 : bye @@ -14112,7 +14393,7 @@ correct code is not broken in a language, such as Ruby, where syntactically valid in languages that you use, then please consider setting the default value. -Note: if noweb tangling is slow in large Org-mode files consider setting the +Note: if noweb tangling is slow in large Org mode files consider setting the @code{*org-babel-use-quick-and-dirty-noweb-expansion*} variable to true. This will result in faster noweb reference resolution at the expense of not correctly resolving inherited values of the @code{:noweb-ref} header @@ -14252,7 +14533,7 @@ done emacs -Q --batch -l $ORGINSTALL \ --eval "(progn (add-to-list 'load-path (expand-file-name \"~/src/org/lisp/\")) -(add-to-list 'load-path (expand-file-name \"~/src/org/contrib/lisp/\")) +(add-to-list 'load-path (expand-file-name \"~/src/org/contrib/lisp/\" t)) (require 'org)(require 'org-exp)(require 'ob)(require 'ob-tangle) (mapc (lambda (file) (find-file (expand-file-name file \"$DIR\")) @@ -14358,19 +14639,19 @@ keystrokes are typed on a line by itself. The following template selectors are currently supported. @multitable @columnfractions 0.1 0.9 -@item @kbd{s} @tab @code{#+begin_src ... #+end_src} -@item @kbd{e} @tab @code{#+begin_example ... #+end_example} -@item @kbd{q} @tab @code{#+begin_quote ... #+end_quote} -@item @kbd{v} @tab @code{#+begin_verse ... #+end_verse} -@item @kbd{c} @tab @code{#+begin_center ... #+end_center} -@item @kbd{l} @tab @code{#+begin_latex ... #+end_latex} -@item @kbd{L} @tab @code{#+latex:} -@item @kbd{h} @tab @code{#+begin_html ... #+end_html} -@item @kbd{H} @tab @code{#+html:} -@item @kbd{a} @tab @code{#+begin_ascii ... #+end_ascii} -@item @kbd{A} @tab @code{#+ascii:} -@item @kbd{i} @tab @code{#+index:} line -@item @kbd{I} @tab @code{#+include:} line +@item @kbd{s} @tab @code{#+BEGIN_SRC ... #+END_SRC} +@item @kbd{e} @tab @code{#+BEGIN_EXAMPLE ... #+END_EXAMPLE} +@item @kbd{q} @tab @code{#+BEGIN_QUOTE ... #+END_QUOTE} +@item @kbd{v} @tab @code{#+BEGIN_VERSE ... #+END_VERSE} +@item @kbd{c} @tab @code{#+BEGIN_CENTER ... #+END_CENTER} +@item @kbd{l} @tab @code{#+BEGIN_LaTeX ... #+END_LaTeX} +@item @kbd{L} @tab @code{#+LaTeX:} +@item @kbd{h} @tab @code{#+BEGIN_HTML ... #+END_HTML} +@item @kbd{H} @tab @code{#+HTML:} +@item @kbd{a} @tab @code{#+BEGIN_ASCII ... #+END_ASCII} +@item @kbd{A} @tab @code{#+ASCII:} +@item @kbd{i} @tab @code{#+INDEX:} line +@item @kbd{I} @tab @code{#+INCLUDE:} line @end multitable For example, on an empty line, typing "= will promote level-1 subtrees + containing other subtrees. The level-1 headline will be + commented out. You can revert to the previous state with =M-x + undo RET=. + +*** Org Clock + +**** New keybinding =C-c C-x C-z= for [[doc::org-clock-resolve][org-clock-resolve]] + +**** New keybinding =C-c C-x C-q= for [[doc::org-clock-cancel][org-clock-cancel]] + +**** New command [[doc::org-clock-in-last][org-clock-in-last]] to clock in the last clocked item + + This command is bound to =C-c C-x C-x= and will clock in the last + clocked entry, if any. + +**** =C-u M-x= [[doc::org-clock-out][org-clock-out]] =RET= now prompts for a state to switch to + +**** =S-M-= on a clock timestamps adjusts the previous/next clock + +**** New option [[doc::org-clock-continuously][org-clock-continuously]] + + When set to =nil=, clocking in a task will first try to find the + last clocked out task and restart from when that task was clocked + out. + + You can temporarily activate continuous clocking with =C-u C-u + C-u M-x= [[doc::org-clock-in][org-clock-in]] =RET= (three universal prefix arguments) + and =C-u C-u M-x= [[org-clock-in-last][org-clock-in-last]] =RET= (two universal prefix + arguments). + + +**** New option [[doc::org-clock-frame-title-format][org-clock-frame-title-format]] + + This option sets the value of =frame-title-format= when clocking + in. + +**** New options for controlling the clockreport display + + [[doc::org-clock-file-time-cell-format][org-clock-file-time-cell-format]]: Format string for the file time + cells in clockreport. + + [[doc::org-clock-total-time-cell-format][org-clock-total-time-cell-format]]: Format string for the total + time cells in clockreport. + + +**** New options for controlling the clock/timer display + + [[doc::org-clock-clocked-in-display][org-clock-clocked-in-display]]: control whether the current clock + is displayed in the mode line and/or frame title. + + [[doc::org-timer-display][org-timer-display]]: control whether the current timer is displayed + in the mode line and/or frame title. + + This allows the clock and timer to be displayed in the frame + title instead of, or as well as, the mode line. This is useful + for people with limited space in the mode line but with ample + space in the frame title. + +*** Org Appearance + +**** New option [[doc::org-custom-properties][org-custom-properties]] + + The visibility of properties listed in this options can be turn + on/off with [[doc::org-toggle-custom-properties-visibility][org-toggle-custom-properties-visibility]]. This might + be useful for properties used by third-part tools or that you + don't want to see temporarily. + +**** New command [[doc::org-redisplay-inline-images][org-redisplay-inline-images]] + + This will redisplay all images. It is bound to =C-c C-x C-M-v=. + +**** New entities in =org-entities.el= + + There are these new entities: + + : ("tilde" "\\~{}" nil "˜" "~" "~" "~") + : ("slash" "/" nil "/" "/" "/" "/") + : ("plus" "+" nil "+" "+" "+" "+") + : ("under" "\\_" nil "_" "_" "_" "_") + : ("equal" "=" nil "=" "=" "=" "=") + : ("asciicirc" "\\textasciicircum{}" nil "^" "^" "^" "^") + +**** New face =org-list-dt= for definition terms +**** New face =org-date-selected= for the selected calendar day +**** New face value for =org-document-title= + + The face is back to a normal height. + +*** Org Columns + +**** New speed command =:= to activate the column view +**** New special property =CLOCKSUM_T= to display today's clocked time + + You can use =CLOCKSUM_T= the same way you use =CLOCKSUM=. It + will display the time spent on tasks for today only. + +**** Use the =:COLUMNS:= property in columnview dynamic blocks + + If the =:COLUMNS:= is set in a subtree, the columnview dynamic + block will use its value as the column format. + +**** Consider inline tasks when computing a sum + +*** Org Dates and Time Stamps + +**** Enhanced [[doc::org-sparse-tree][org-sparse-tree]] + + =C-c /= can now check for time ranges. + + When checking for dates with =C-c /= it is useful to change the + type of dates that you are interested in. You can now do this + interactively with =c= after =C-c /= and/or by setting + [[doc::org-sparse-tree-default-date-type][org-sparse-tree-default-date-type]] to the default value you want. + +**** Support for hourly repeat cookies + + You can now use + + : SCHEDULED: <2012-08-20 lun. 08:00 +1h> + + if you want to add an hourly repeater to an entry. + +**** =C-u C-u C-c .= inserts a time-stamp with no prompt + +**** When (setq [[doc::org-read-date-prefer-future][org-read-date-prefer-future]] 'time), accept days in the prompt + + "8am Wed" and "Wed 8am" are now acceptable values when entering a + date from the prompt. If [[doc::org-read-date-prefer-future][org-read-date-prefer-future]] is set to + =time=, this will produce the expected prompt indication. + +**** New option [[doc::org-datetree-add-timestamp][org-datetree-add-timestamp]] + + When set to =non-nil=, datetree entries will also have a + timestamp. This is useful if you want to see these entries in a + sparse tree with =C-c /=. + +*** Org Capture + +**** New command [[doc::org-capture-string][org-capture-string]] + + M-x [[doc::org-capture-string][org-capture-string]] RET will prompt for a string and a capture + template. The string will be used as an annotation for the + template. This is useful when capturing in batch mode as it lets + you define the content of the template without being in Emacs. + +**** New option [[doc::org-capture-templates-contexts][org-capture-templates-contexts]] + + Setting this option allows you to define specific context where + capture templates should be available from. For example, when + set to this value + + #+BEGIN_SRC emacs-lisp + (setq org-capture-templates-contexts + '(("c" (in-mode . "message-mode")))) +#+END_SRC + + then the =c= capture template will only be available from + =message-mode= buffers. See the docstring and the manual for + more details on how to use this. + +**** New =%l= template to insert the literal link +**** New option [[doc::org-capture-bookmark][org-capture-bookmark]] + + Org used to automatically add a bookmark with capture a note. + You can now turn this on by setting [[doc::org-capture-bookmark][org-capture-bookmark]] to + =nil=. + +**** Expand =%= escape sequences into text entered for 'th =%^{PROMPT}= escape + + See the manual for more explanations. + +**** More control over empty lines + + You can use =:empty-lines-before= and =:empty-lines-after= to + control the insertion of empty lines. Check the manual for more + explanations. + +**** New hook [[doc::org-capture-prepare-finalize-hook][org-capture-prepare-finalize-hook]] + + This new hook runs before the finalization process starts. + +*** Org Export + +**** New functions =orgtbl-to-table.el= and =orgtbl-to-unicode= + + =orgtbl-to-table.el= convert the table to a =table.el= table, and + =orgtbl-to-unicode= will use =ascii-art-to-unicode.el= (when + available) to print beautiful tables. + +**** [[doc::org-table-export][org-table-export]] now a bit clever about the target format + + When you specify a file name like =table.csv=, [[doc::org-table-export][org-table-export]] + will now suggest =orgtbl-to-csv= the default method for exporting + the table. + +**** New option [[doc::org-export-date-timestamp-format][org-export-date-timestamp-format]] + + The option allows to set a time string format for Org timestamps + in the #+DATE option. + +**** LaTeX: New options for exporting table rules :tstart, :hline and :tend + + See [[doc::org-export-latex-tables-hline][org-export-latex-tables-hline]] and [[doc::org-export-latex-tables-tend][org-export-latex-tables-tend]]. + +**** LaTeX: You can now set =:hfmt= from =#+ATTR_LaTeX= +**** Beamer: Add support and keybinding for the =exampleblock= environment + + Add support for these languages in [[doc::org-export-language-setup][org-export-language-setup]]. + More languages are always welcome. + +**** Beamer: New option [[doc::org-beamer-inherited-properties][org-beamer-inherited-properties]] + + This option allows Beamer export to inherit some properties. + Thanks to Carsten for implementing this. + +**** ODT: Add support for ODT export in org-bbdb.el +**** ODT: Add support for indented tables (see [[http://orgmode.org/w/?p%3Dorg-mode.git%3Ba%3Dcommit%3Bh%3De9fd33][this commit]] for details) +**** ODT: Improve the conversion from ODT to other formats +**** ASCII: Swap the level-1/level-2 characters to underline the headlines +**** Support for Chinese, simplified Chinese, Russian, Ukrainian and Japanese +**** HTML: New option [[doc::org-export-html-date-format-string][org-export-html-date-format-string]] + + Format string to format the date and time in HTML export. Thanks + to Sébastien Vauban for this patch. + +*** Org Babel + +**** New =:results drawer= parameter + +=:results drawer= replaces =:results wrap=, which is deprecated but still +supported. + +**** =:results org= now put results in a =#+BEGIN_SRC org= block + +=:results org= used to put results in a =#+BEGIN_ORG= block but it now puts +results in a =#+BEGIN_SRC org= block, wich comma-escaped lines. + +=#+BEGIN_ORG= blocks are obsolete. + +**** Exporting =#+BEGIN_SRC org= blocks exports the code + +It used to exports the results of the code. + +*** Miscellaneous + +**** New menu entry for [[doc::org-refile][org-refile]] +**** Allow capturing to encrypted entries + +If you capture to an encrypted entry, it will be decrpyted before +inserting the template then re-encrypted after finalizing the capture. + +**** Inactive timestamps are now handled in tables + +Calc can do computation on active time-stamps like <2012-09-29 sat.>. +Inactive time-stamps in a table's cell are now internally deactivated so +that Calc formulas can operate on them. + +**** [[doc::org-table-number-regexp][org-table-number-regexp]] can now accept comma as decimal mark +**** Org allows a new property =APPT_WARNTIME= + + You can set it with the =W= speedy key or set it manually. When + set, exporting to iCalendar and [[doc::org-agenda-to-appt][org-agenda-to-appt]] will use the + value of this property as the number of minutes for the warning + alarm. + +**** New command [[doc::org-inc-effort][org-inc-effort]] + + This will increment the effort value. + + It is bound to =C-c C-x E= and to =E= as a speedy command. + +**** Attach: Add support for creating symbolic links + + =org-attach-method= now supports a new method =lns=, allowing to + attach symbolic links. + +**** Archive: you can now archive to a datetree + +**** New option [[doc::org-inlinetask-show-first-star][org-inlinetask-show-first-star]] + + =Non-nil= means display the first star of an inline task as + additional marker. When =nil=, the first star is not shown. + +**** New option [[doc::org-latex-preview-ltxpng-directory][org-latex-preview-ltxpng-directory]] + + This lets you define the path for the =ltxpng/= directory. + +**** You can now use imagemagick instead of dvipng to preview LaTeX fragments +**** You can now turn off [[doc::orgstruct++-mode][orgstruct++-mode]] safely +**** =C-u C-c C-c= on list items to add check boxes + + =C-u C-c C-c= will add an empty check box on a list item. + + When hit from the top of the list, it will add check boxes for + all top level list items. + +**** =org-list-ending-method= and =org-list-end-regexp= are now obsolete + + Fall back on using =org-list-end-re= only, which see. + +**** org-feed.el now expands =%(sexp)= templates +**** New option [[doc::org-protocol-data-separator][org-protocol-data-separator]] + +**** New option [[doc::org-ditaa-jar-option][org-ditaa-jar-option]] to specify the ditaa jar file + +**** New possible value for [[doc::org-loop-over-headlines-in-active-region][org-loop-over-headlines-in-active-region]] + + When [[doc::org-loop-over-headlines-in-active-region][org-loop-over-headlines-in-active-region]] is set to + =start-level=, the command will loop over the active region but + will only act upon entries that are of the same level than the + first headline in the region. + +**** New option [[doc::org-habit-show-all-today][org-habit-show-all-today]] + + When set to =t=, show all (even unscheduled) habits on today's + agenda. + +** Important bug fixes + +*** M-TAB on options keywords perform completion correctly again + + If you hit =M-TAB= on keywords like =#+TITLE=, Org will try to + perform completion with meaningful values. + +*** Add licenses to javascript embedded and external code snippets + + Embedded javascript code produced when exporting an Org file to + HTML is now licensed under GPLv3 (or later), and the copyright is + owned by the Free Software Foundation, Inc. + + The javascript code for embedding MathJax in the browser mentions + the MathJax copyright and the Apache 2.0 license. + + The javascript code for embedding =org-injo.js= in the browser + mentions the copyright of Sebastian Rose and the GPLv3 (or later) + license. + + =org-export-html-scripts= is now a variable, so that you can adapt + the code and the license to your needs. + + See http://www.gnu.org/philosophy/javascript-trap.html for + explanations on why these changes were necessary. + +* Version 7.8.11 + +** Incompatible changes + +*** Emacs 21 support has been dropped + + Do not use Org mode 7.xx with Emacs 21, use [[http://orgmode.org/org-6.36c.zip][version 6.36c]] instead. + +*** XEmacs support requires the XEmacs development version + + To use Org mode 7.xx with XEmacs, you need to run the developer + version of XEmacs. We were about to drop XEmacs support entirely, + but Michael Sperber stepped in and made changes to XEmacs that + made it easier to keep the support. Thanks to Michael for this + last-minute save. + +*** New keys for TODO sparse trees + + The key =C-c C-v= is now reserved for Org Babel action. TODO + sparse trees can still be made with =C-c / t= (all not-done + states) and =C-c / T= (specific states). + +*** The Agenda =org-agenda-ndays= is now obsolete + + The variable =org-agenda-ndays= is obsolete - please use + =org-agenda-span= instead. + + Thanks to Julien Danjou for this. + +*** Changes to the intended use of =org-export-latex-classes= + + So far this variable has been used to specify the complete header + of the LaTeX document, including all the =\usepackage= calls + necessary for the document. This setup makes it difficult to + maintain the list of packages that Org itself would like to call, + for example for the special symbol support it needs. + + First of all, you can *opt out of this change* in the following + way: You can say: /I want to have full control over headers, and I + will take responsibility to include the packages Org needs/. If + that is what you want, add this to your configuration and skip the + rest of this section (except maybe for the description of the + =[EXTRA]= place holder): + + #+begin_src emacs-lisp + (setq org-export-latex-default-packages-alist nil + org-export-latex-packages-alist nil) + #+end_src + + /Continue to read here if you want to go along with the modified + setup./ + + There are now two variables that should be used to list the LaTeX + packages that need to be included in all classes. The header + definition in =org-export-latex-classes= should then not contain + the corresponding =\usepackage= calls (see below). + + The two new variables are: + + 1. =org-export-latex-default-packages-alist= :: This is the + variable where Org-mode itself puts the packages it needs. + Normally you should not change this variable. The only + reason to change it anyway is when one of these packages + causes a conflict with another package you want to use. Then + you can remove that packages and hope that you are not using + Org-mode functionality that needs it. + + 2. =org-export-latex-packages-alist= :: This is the variable where + you can put the packages that you'd like to use across all + classes. + + The sequence how these customizations will show up in the LaTeX + document are: + + 1. Header from =org-export-latex-classes= + 2. =org-export-latex-default-packages-alist= + 3. =org-export-latex-packages-alist= + 4. Buffer-specific things set with =#+LaTeX_HEADER:= + + If you want more control about which segment is placed where, or + if you want, for a specific class, have full control over the + header and exclude some of the automatic building blocks, you can + put the following macro-like place holders into the header: + + #+begin_example + [DEFAULT-PACKAGES] \usepackage statements for default packages + [NO-DEFAULT-PACKAGES] do not include any of the default packages + [PACKAGES] \usepackage statements for packages + [NO-PACKAGES] do not include the packages + [EXTRA] the stuff from #+LaTeX_HEADER + [NO-EXTRA] do not include #+LaTeX_HEADER stuff + #+end_example + + If you have currently customized =org-export-latex-classes=, you + should revise that customization and remove any package calls that + are covered by =org-export-latex-default-packages-alist=. This + applies to the following packages: + + - inputenc + - fontenc + - fixltx2e + - graphicx + - longtable + - float + - wrapfig + - soul + - t1enc + - textcomp + - marvosym + - wasysym + - latexsym + - amssymb + - hyperref + + If one of these packages creates a conflict with another package + you are using, you can remove it from + =org-export-latex-default-packages-alist=. But then you risk that + some of the advertised export features of Org will not work + properly. + + You can also consider moving packages that you use in all classes + to =org-export-latex-packages-alist=. If necessary, put the place + holders so that the packages get loaded in the right sequence. As + said above, for backward compatibility, if you omit the place + holders, all the variables will dump their content at the end of + the header. + +*** The constant =org-html-entities= is obsolete + + Its content is now part of the new constant =org-entities=, which + is defined in the file org-entities.el. =org-html-entities= was + an internal variable, but it is possible that some users did write + code using it. + +*** =org-bbdb-anniversary-format-alist= has changed + + Please check the docstring and update your settings accordingly. + +*** Deleted =org-mode-p= + + This function has been deleted: please update your code. + +** Important new features + +*** New Org to ODT exporter + + Jambunathan's Org to ODT exporter is now part of Org. + + To use it, it `C-c C-e o' in an Org file. See the documentation + for more information on how to customize it. + +*** org-capture.el is now the default capture system + + This replaces the earlier system org-remember. The manual only + describes org-capture, but for people who prefer to continue to + use org-remember, we keep a static copy of the former manual + section [[http://orgmode.org/org-remember.pdf][chapter about remember]]. + + The new system has a technically cleaner implementation and more + possibilities for capturing different types of data. See + [[http://thread.gmane.org/gmane.emacs.orgmode/26441/focus%3D26441][Carsten's announcement]] for more details. + + To switch over to the new system: + + 1. Run + + : M-x org-capture-import-remember-templates RET + + to get a translated version of your remember templates into the + new variable =org-capture-templates=. This will "mostly" work, + but maybe not for all cases. At least it will give you a good + place to modify your templates. After running this command, + enter the customize buffer for this variable with + + : M-x customize-variable RET org-capture-templates RET + + and convince yourself that everything is OK. Then save the + customization. + + 2. Bind the command =org-capture= to a key, similar to what you did + with org-remember: + + : (define-key global-map "\C-cc" 'org-capture) + + If your fingers prefer =C-c r=, you can also use this key once + you have decided to move over completely to the new + implementation. During a test time, there is nothing wrong + with using both system in parallel. + +** New libraries + +*** New Org libraries +**** org-eshell.el (Konrad Hinsen) + + Implement links to eshell buffers. + +**** org-special-blocks (Carsten Dominik) + + This package generalizes the #+begin_foo and #+end_foo tokens. + + To use, put the following in your init file: + + #+BEGIN_EXAMPLE (require 'org-special-blocks) #+END_EXAMPLE -The tokens #+begin_center, #+begin_verse, etc. existed previously. This -package generalizes them (at least for the LaTeX and html exporters). When -a #+begin_foo token is encountered by the LaTeX exporter, it is expanded -into \begin{foo}. The text inside the environment is not protected, as -text inside environments generally is. When #+begin_foo is encountered by -the html exporter, a div with class foo is inserted into the HTML file. It -is up to the user to add this class to his or her stylesheet if this div is -to mean anything. + The tokens #+begin_center, #+begin_verse, etc. existed + previously. This package generalizes them (at least for the + LaTeX and html exporters). When a #+begin_foo token is + encountered by the LaTeX exporter, it is expanded + into \begin{foo}. The text inside the environment is not + protected, as text inside environments generally is. + When #+begin_foo is encountered by the html exporter, a div with + class foo is inserted into the HTML file. It is up to the user + to add this class to his or her stylesheet if this div is to mean + anything. -*** org-taskjuggler.el (Christian Egli) - :PROPERTIES: - :OrgVersion: 7.01 - :END: +**** org-taskjuggler.el (Christian Egli) - Christian Egli's /org-taskjuggler.el/ module is now part of Org. He - also wrote a [[http://orgmode.org/worg/org-tutorials/org-taskjuggler.php][tutorial]] for it. + Christian Egli's /org-taskjuggler.el/ module is now part of Org. + He also wrote a [[http://orgmode.org/worg/org-tutorials/org-taskjuggler.php][tutorial]] for it. -*** org-ctags.el (Paul Sexton) - :PROPERTIES: - :OrgVersion: 6.34 - :END: +**** org-ctags.el (Paul Sexton) - Targets like =<>= can now be found by Emacs' etag - functionality, and Org-mode links can be used to to link to etags, also - in non-Org-mode files. For details, see the file /org-ctags.el/. + Targets like =<>= can now be found by Emacs' etag + functionality, and Org-mode links can be used to to link to + etags, also in non-Org-mode files. For details, see the file + /org-ctags.el/. - This feature uses a new hook =org-open-link-functions= which will call - function to do something special with text links. + This feature uses a new hook =org-open-link-functions= which will + call function to do something special with text links. - Thanks to Paul Sexton for this contribution. + Thanks to Paul Sexton for this contribution. -*** org-docview.el (Jan Böcker) - :PROPERTIES: - :OrgVersion: 6.34 - :END: +**** org-docview.el (Jan Böcker) - This new module allows links to various file types using docview, where - Emacs displays images of document pages. Docview link types can point - to a specific page in a document, for example to page 131 of the - Org-mode manual: + This new module allows links to various file types using docview, where + Emacs displays images of document pages. Docview link types can point + to a specific page in a document, for example to page 131 of the + Org-mode manual: - : [[docview:~/.elisp/org/doc/org.pdf::131][Org-Mode Manual]] + : [[docview:~/.elisp/org/doc/org.pdf::131][Org-Mode Manual]] - Thanks to Jan Böcker for this contribution. + Thanks to Jan Böcker for this contribution. -** New Babel libraries +*** New Babel libraries - ob-picolisp.el (Thorsten Jolitz) - ob-fortran.el (Sergey Litvinov) @@ -275,674 +902,531 @@ to mean anything. - ob-lilypond.el (Martyn Jago) - ob-awk.el (Eric Schulte) -* Other new features and various enhancements +** Other new features and various enhancements -** Hyperlinks +*** Hyperlinks -*** Org-Bibtex -- major improvements - :PROPERTIES: - :OrgVersion: 7.6 - :END: +**** Org-Bibtex -- major improvements - Provides support for managing bibtex bibliographical references - data in headline properties. Each headline corresponds to a - single reference and the relevant bibliographic meta-data is - stored in headline properties, leaving the body of the headline - free to hold notes and comments. Org-bibtex is aware of all - standard bibtex reference types and fields. + Provides support for managing bibtex bibliographical references + data in headline properties. Each headline corresponds to a + single reference and the relevant bibliographic meta-data is + stored in headline properties, leaving the body of the headline + free to hold notes and comments. Org-bibtex is aware of all + standard bibtex reference types and fields. - The key new functions are + The key new functions are -- org-bibtex-check :: queries the user to flesh out all required - (and with prefix argument optional) bibtex fields available - for the specific reference =type= of the current headline. + - org-bibtex-check :: queries the user to flesh out all required + (and with prefix argument optional) bibtex fields available + for the specific reference =type= of the current headline. -- org-bibtex-create :: Create a new entry at the given level, - using org-bibtex-check to flesh out the relevant fields. + - org-bibtex-create :: Create a new entry at the given level, + using org-bibtex-check to flesh out the relevant fields. -- org-bibtex-yank :: Yank a bibtex entry on the kill ring as a - formatted Org-mode headline into the current buffer + - org-bibtex-yank :: Yank a bibtex entry on the kill ring as a + formatted Org-mode headline into the current buffer -- org-bibtex-export-to-kill-ring :: Export the current headline - to the kill ring as a formatted bibtex entry. + - org-bibtex-export-to-kill-ring :: Export the current headline + to the kill ring as a formatted bibtex entry. +**** org-gnus.el now allows link creation from messages + You can now create links from messages. This is particularily + useful when the user wants to stored messages that he sends, for + later check. Thanks to Ulf Stegemann for the patch. -*** org-gnus.el now allows link creation from messages - :PROPERTIES: - :OrgVersion: 7.5 - :END: +**** Modified link escaping - You can now create links from messages. This is particularly - useful when the user wants to stored messages that he sends, for - later check. Thanks to Ulf Stegemann for the patch. + David Maus worked on `org-link-escape'. See [[http://article.gmane.org/gmane.emacs.orgmode/37888][his message]]: + : Percent escaping is used in Org mode to escape certain characters + : in links that would either break the parser (e.g. square brackets + : in link target oder description) or are not allowed to appear in + : a particular link type (e.g. non-ascii characters in a http: + : link). + : + : With this change in place Org will apply percent escaping and + : unescaping more consistently especially for non-ascii characters. + : Additionally some of the outstanding bugs or glitches concerning + : percent escaped links are solved. + Thanks a lot to David for this work. -*** Modified link escaping - :PROPERTIES: - :OrgVersion: 7.5 - :END: +**** Make =org-store-link= point to directory in a dired buffer - David Maus worked on `org-link-escape'. See [[http://article.gmane.org/gmane.emacs.orgmode/37888][his message]]: + When, in a dired buffer, the cursor is not in a line listing a + file, `org-store-link' will store a link to the directory. -: Percent escaping is used in Org mode to escape certain characters -: in links that would either break the parser (e.g. square brackets -: in link target or description) or are not allowed to appear in -: a particular link type (e.g. non-ascii characters in a http: -: link). -: -: With this change in place Org will apply percent escaping and -: unescaping more consistently especially for non-ascii characters. -: Additionally some of the outstanding bugs or glitches concerning -: percent escaped links are solved. + Patch by Stephen Eglen. - Thanks a lot to David for this work. +**** Allow regexps in =org-file-apps= to capture link parameters + The way extension regexps in =org-file-apps= are handled has + changed. Instead of matching against the file name, the regexps + are now matched against the whole link, and you can use grouping + to extract link parameters which you can then use in a command + string to be executed. + For example, to allow linking to PDF files using the syntax + =file:/doc.pdf::=, you can add the following entry + to org-file-apps: -*** Make =org-store-link= point to directory in a dired buffer - :PROPERTIES: - :OrgVersion: 6.35 - :END: + #+begin_example + Extension: \.pdf::\([0-9]+\)\' + Command: evince "%s" -p %1 + #+end_example - When, in a dired buffer, the cursor is not in a line listing a - file, `org-store-link' will store a link to the directory. + Thanks to Jan Böcker for a patch to this effect. - Patch by Stephen Eglen. +*** Dates and time +**** Allow relative time when scheduling/adding a deadline + You can now use relative duration strings like "-2d" or "++3w" + when calling =org-schedule= or =org-deadline=: it will schedule + (or set the deadline for) the item respectively two days before + today and three weeks after the current timestamp, if any. -*** Allow regexps in =org-file-apps= to capture link parameters - :PROPERTIES: - :OrgVersion: 6.35 - :END: + You can use this programmatically: =(org-schedule nil "+2d")= + will work on the current entry. - The way extension regexps in =org-file-apps= are handled has - changed. Instead of matching against the file name, the regexps - are now matched against the whole link, and you can use grouping - to extract link parameters which you can then use in a command - string to be executed. + You can also use this while (bulk-)rescheduling and + (bulk-)resetting the deadline of (several) items from the agenda. - For example, to allow linking to PDF files using the syntax - =file:/doc.pdf::=, you can add the following entry to - org-file-apps: + Thanks to Memnon Anon for a heads up about this! - #+begin_example - Extension: \.pdf::\([0-9]+\)\' - Command: evince "%s" -p %1 - #+end_example +**** American-style dates are now understood by =org-read-date= - Thanks to Jan Böcker for a patch to this effect. + So when you are prompted for a date, you can now answer like this -** Dates and time + #+begin_example + 2/5/3 --> 2003-02-05 + 2/5 --> -02-05 + #+end_example -*** Allow relative time when scheduling/adding a deadline - :PROPERTIES: - :OrgVersion: 7.7 - :END: +*** Agenda - You can now use relative duration strings like "-2d" or "++3w" - when calling =org-schedule= or =org-deadline=: it will schedule - (or set the deadline for) the item respectively two days before - today and three weeks after the current timestamp, if any. +**** =org-agenda-custom-commands= has a default value - You can use this programmatically: =(org-schedule nil "+2d")= - will work on the current entry. + This option used to be `nil' by default. This now has a default + value, displaying an agenda and all TODOs. See the docstring for + details. Thanks to Carsten for this. - You can also use this while (bulk-)rescheduling and - (bulk-)resetting the deadline of (several) items from the agenda. +**** Improved filtering through =org-agenda-to-appt= - Thanks to Memnon Anon for a heads up about this! + The new function allows the user to refine the scope of entries + to pass to =org-agenda-get-day-entries= and allows to filter out + entries using a function. + Thanks to Peter Münster for raising a related issue and to + Tassilo Horn for this idea. Also thanks to Peter Münster for + [[git:68ffb7a7][fixing a small bug]] in the final implementation. +**** Allow ap/pm times in agenda time grid + Times in the agenda can now be displayed in am/pm format. See + the new variable =org-agenda-timegrid-use-ampm=. Thanks to + C. A. Webber for a patch to this effect. -*** American-style dates are now understood by =org-read-date= - :PROPERTIES: - :OrgVersion: 6.35 - :END: +**** Agenda: Added a bulk "scattering" command - So when you are prompted for a date, you can now answer like this + =B S= in the agenda buffer will cause tasks to be rescheduled a + random number of days into the future, with 7 as the default. + This is useful if you've got a ton of tasks scheduled for today, + you realize you'll never deal with them all, and you just want + them to be distributed across the next N days. When called with + a prefix arg, rescheduling will avoid weekend days. - #+begin_example - 2/5/3 --> 2003-02-05 - 2/5 --> -02-05 - #+end_example + Thanks to John Wiegley for this. -** Agenda +*** Exporting -*** =org-agenda-custom-commands= has a default value - :PROPERTIES: - :OrgVersion: 7.8 - :END: +**** Simplification of org-export-html-preamble/postamble - This option used to be `nil' by default. This now has a default - value, displaying an agenda and all TODOs. See the docstring for - details. Thanks to Carsten for this. + When set to `t', export the preamble/postamble as usual, honoring + the =org-export-email/author/creator-info= variables. + When set to a formatting string, insert this string. See the + docstring of these variable for details about available + %-sequences. -*** Improved filtering through =org-agenda-to-appt= - :PROPERTIES: - :OrgVersion: 7.8 - :END: + You can set =:html-preamble= in publishing project in the same + way: `t' means to honor =:email/creator/author-info=, and a + formatting string will insert a string. - The new function allows the user to refine the scope of entries - to pass to =org-agenda-get-day-entries= and allows to filter out - entries using a function. +**** New exporters to Latin-1 and UTF-8 - Thanks to Peter Münster for raising a related issue and to - Tassilo Horn for this idea. Also thanks to Peter Münster for - [[git:68ffb7a7][fixing a small bug]] in the final implementation. + While Ulf Stegemann was going through the entities list to + improve the LaTeX export, he had the great idea to provide + representations for many of the entities in Latin-1, and for all + of them in UTF-8. This means that we can now export files rich + in special symbols to Latin-1 and to UTF-8 files. These new + exporters can be reached with the commands =C-c C-e n= and =C-c + C-e u=, respectively. + When there is no representation for a given symbol in the + targeted coding system, you can choose to keep the TeX-macro-like + representation, or to get an "explanatory" representation. For + example, =\simeq= could be represented as "[approx. equal to]". + Please use the variable =org-entities-ascii-explanatory= to state + your preference. +**** HTML export: Add class to outline containers using property -*** Allow ap/pm times in agenda time grid - :PROPERTIES: - :OrgVersion: 7.4 - :END: + The =HTML_CONTAINER_CLASS= property can now be used to add a + class name to the outline container of a node in HTML export. - Times in the agenda can now be displayed in am/pm format. See the new - variable =org-agenda-timegrid-use-ampm=. Thanks to C. A. Webber for - a patch to this effect. +**** Throw an error when creating an image from a LaTeX snippet fails + This behavior can be configured with the new option variable + =org-format-latex-signal-error=. +**** Support for creating BEAMER presentations from Org-mode documents -*** Agenda: Added a bulk "scattering" command - :PROPERTIES: - :OrgVersion: 7.4 - :END: + Org-mode documents or subtrees can now be converted directly in + to BEAMER presentation. Turning a tree into a simple + presentations is straight forward, and there is also quite some + support to make richer presentations as well. See the [[http://orgmode.org/manual/Beamer-class-export.html#Beamer-class-export][BEAMER + section]] in the manual for more details. - =B S= in the agenda buffer will cause tasks to be rescheduled a random - number of days into the future, with 7 as the default. This is useful - if you've got a ton of tasks scheduled for today, you realize you'll - never deal with them all, and you just want them to be distributed - across the next N days. When called with a prefix arg, rescheduling - will avoid weekend days. + Thanks to everyone who has contributed to the discussion about + BEAMER support and how it should work. This was a great example + for how this community can achieve a much better result than any + individual could. - Thanks to John Wiegley for this. +*** Refiling -** Exporting +**** Refile targets can now be cached -*** Simplification of org-export-html-preamble/postamble - :PROPERTIES: - :OrgVersion: 7.5 - :END: + You can turn on caching of refile targets by setting the variable + =org-refile-use-cache=. This should speed up refiling if you + have many eligible targets in many files. If you need to update + the cache because Org misses a newly created entry or still + offers a deleted one, press =C-0 C-c C-w=. - When set to `t', export the preamble/postamble as usual, honoring the - =org-export-email/author/creator-info= variables. +**** New logging support for refiling - When set to a formatting string, insert this string. See the docstring - of these variable for details about available %-sequences. + Whenever you refile an item, a time stamp and even a note can be + added to this entry. For details, see the new option + =org-log-refile=. - You can set =:html-preamble= in publishing project in the same way: `t' - means to honor =:email/creator/author-info=, and a formatting string - will insert a string. + Thanks to Charles Cave for this idea. -*** New exporters to Latin-1 and UTF-8 - :PROPERTIES: - :OrgVersion: 6.35 - :END: +*** Completion - While Ulf Stegemann was going through the entities list to improve the - LaTeX export, he had the great idea to provide representations for many - of the entities in Latin-1, and for all of them in UTF-8. This means - that we can now export files rich in special symbols to Latin-1 and to - UTF-8 files. These new exporters can be reached with the commands =C-c - C-e n= and =C-c C-e u=, respectively. +**** In-buffer completion is now done using John Wiegleys pcomplete.el - When there is no representation for a given symbol in the targeted - coding system, you can choose to keep the TeX-macro-like - representation, or to get an "explanatory" representation. For - example, =\simeq= could be represented as "[approx. equal to]". Please - use the variable =org-entities-ascii-explanatory= to state your - preference. + Thanks to John Wiegley for much of this code. -*** HTML export: Add class to outline containers using property - :PROPERTIES: - :OrgVersion: 6.35 - :END: +*** Tables - The =HTML_CONTAINER_CLASS= property can now be used to add a class name - to the outline container of a node in HTML export. +**** New command =org-table-transpose-table-at-point= -*** Throw an error when creating an image from a LaTeX snippet fails - :PROPERTIES: - :OrgVersion: 6.35 - :END: + See the docstring. This hack from Juan Pechiar is now part of + Org's core. Thanks to Juan! - This behavior can be configured with the new option variable - =org-format-latex-signal-error=. +**** Display field's coordinates when editing it with =C-c `= -*** Support for creating BEAMER presentations from Org-mode documents - :PROPERTIES: - :OrgVersion: 6.34 - :END: + When editing a field with =C-c `=, the field's coordinate will + the displayed in the buffer. - Org-mode documents or subtrees can now be converted directly in to - BEAMER presentation. Turning a tree into a simple presentations is - straight forward, and there is also quite some support to make richer - presentations as well. See the [[http://orgmode.org/manual/Beamer-class-export.html#Beamer-class-export][BEAMER section]] in the manual for more - details. + Thanks to Michael Brand for a patch to this effect. - Thanks to everyone who has contributed to the discussion about BEAMER - support and how it should work. This was a great example for how this - community can achieve a much better result than any individual could. +**** Spreadsheet computation of durations and time values -** Refiling + If you want to compute time values use the =T= flag, either in + Calc formulas or Elisp formulas: -*** Refile targets can now be cached - :PROPERTIES: - :OrgVersion: 7.01 - :END: + | Task 1 | Task 2 | Total | + |--------+--------+---------| + | 35:00 | 35:00 | 1:10:00 | + #+TBLFM: @2$3=$1+$2;T - You can turn on caching of refile targets by setting the variable - =org-refile-use-cache=. This should speed up refiling if you have many - eligible targets in many files. If you need to update the cache - because Org misses a newly created entry or still offers a deleted one, - press =C-0 C-c C-w=. + Values must be of the form =[HH:]MM:SS=, where hours are + optional. -*** New logging support for refiling - :PROPERTIES: - :OrgVersion: 6.35 - :END: + Thanks to Martin Halder, Eric Schulte and Carsten for code and + feedback on this. - Whenever you refile an item, a time stamp and even a note can be added - to this entry. For details, see the new option =org-log-refile=. +**** Implement formulas applying to field ranges - Thanks to Charles Cave for this idea. + Carsten implemented this field-ranges formulas. -** Completion + : A frequently requested feature for tables has been to be able to define + : row formulas in a way similar to column formulas. The patch below allows + : things like + : + : @3= + : @2$2..@5$7= + : @I$2..@II$4= + : + : as the left hand side for table formulas in order to write a formula that + : is valid for an entire column or for a rectangular section in a + : table. -*** In-buffer completion is now done using John Wiegley's pcomplete.el - :PROPERTIES: - :OrgVersion: 7.4 - :END: + Thanks a lot to Carsten for this. - Thanks to John Wiegley for much of this code. +**** Sending radio tables from org buffers is now allowed -** Tables + Org radio tables can no also be sent inside Org buffers. Also, + there is a new hook which get called after a table has been sent. -*** New command =org-table-transpose-table-at-point= - :PROPERTIES: - :OrgVersion: 7.8 - :END: + Thanks to Seweryn Kokot. - See the docstring. This hack from Juan Pechiar is now part of Org's - core. Thanks to Juan! +*** Lists -*** Display field's coordinates when editing it with =C-c `= - :PROPERTIES: - :OrgVersion: 7.7 - :END: +**** Improved handling of lists - When editing a field with =C-c `=, the field's coordinate will the - displayed in the buffer. + Nicolas Goaziou extended and improved the way Org handles lists. - Thanks to Michael Brand for a patch to this effect. + 1. Indentation of text determines again end of items in + lists. So, some text less indented than the previous item + doesn't close the whole list anymore, only all items more + indented than it. -*** Spreadsheet computation of durations and time values - :PROPERTIES: - :OrgVersion: 7.6 - :END: + 2. Alphabetical bullets are implemented, through the use of the + variable `org-alphabetical-lists'. This also adds alphabetical + counters like [@c] or [@W]. - If you want to compute time values use the =T= flag, either in Calc - formulas or Elisp formulas: + 3. Lists can now safely contain drawers, inline tasks, or various + blocks, themselves containing lists. Two variables are + controlling this: `org-list-forbidden-blocks', and + `org-list-export-context'. - | Task 1 | Task 2 | Total | - |--------+--------+---------| - | 35:00 | 35:00 | 1:10:00 | - #+TBLFM: @2$3=$1+$2;T + 4. Improve `newline-and-indent' (C-j): used in an item, it will + keep text from moving at column 0. This allows to split text + and make paragraphs and still not break the list. - Values must be of the form =[HH:]MM:SS=, where hours are optional. + 5. Improve `org-toggle-item' (C-c -): used on a region with + standard text, it will change the region into one item. With a + prefix argument, it will fallback to the previous behavior and + make every line in region an item. It permits to easily + integrate paragraphs inside a list. - Thanks to Martin Halder, Eric Schulte and Carsten for code and feedback - on this. + 6. `fill-paragraph' (M-q) now understands lists. It can freely be + used inside items, or on text just after a list, even with no + blank line around, without breaking list structure. -*** Implement formulas applying to field ranges - :PROPERTIES: - :OrgVersion: 7.5 - :END: + Thanks a lot to Nicolas for all this! - Carsten implemented this field-ranges formulas. +*** Inline display of linked images - : A frequently requested feature for tables has been to be able to define - : row formulas in a way similar to column formulas. The patch below allows - : things like - : - : @3= - : @2$2..@5$7= - : @I$2..@II$4= - : - : as the left hand side for table formulas in order to write a formula that - : is valid for an entire column or for a rectangular section in a - : table. + Images can now be displayed inline. The key C-c C-x C-v does + toggle the display of such images. Note that only image links + that have no description part will be inlined. - Thanks a lot to Carsten for this. +*** Implement offsets for ordered lists -*** Sending radio tables from org buffers is now allowed - :PROPERTIES: - :OrgVersion: 7.4 - :END: + If you want to start an ordered plain list with a number different + from 1, you can now do it like this: - Org radio tables can no also be sent inside Org buffers. Also, there - is a new hook which get called after a table has been sent. + : 1. [@start:12] will star a lit a number 12 - Thanks to Seweryn Kokot. +*** Babel: code block body expansion for table and preview -** Lists + In org-babel, code is "expanded" prior to evaluation. I.e. the + code that is actually evaluated comprises the code block contents, + augmented with the extra code which assigns the referenced data to + variables. It is now possible to preview expanded contents, and + also to expand code during during tangling. This expansion takes + into account all header arguments, and variables. -*** Improved handling of lists - :PROPERTIES: - :OrgVersion: 7.5 - :END: + A new keybinding `C-c M-b p' bound to `org-babel-expand-src-block' + can be used from inside of a source code block to preview its + expanded contents (which can be very useful for debugging). + tangling - Nicolas Goaziou extended and improved the way Org handles lists. + The expanded body can now be tangled, this includes variable + values which may be the results of other source-code blocks, or + stored in headline properties or tables. One possible use for this + is to allow those using org-babel for their emacs initialization + to store values (e.g. usernames, passwords, etc...) in headline + properties or in tables. - 1. Indentation of text determines again end of items in lists. So, some - text less indented than the previous item doesn't close the whole - list anymore, only all items more indented than it. + Org-babel now supports three new header arguments, and new default + behavior for handling horizontal lines in tables (hlines), column + names, and rownames across all languages. - 2. Alphabetical bullets are implemented, through the use of the - variable `org-alphabetical-lists'. This also adds alphabetical - counters like [@c] or [@W]. +*** Editing Convenience and Appearance - 3. Lists can now safely contain drawers, inline tasks, or various - blocks, themselves containing lists. Two variables are controlling - this: `org-list-forbidden-blocks', and `org-list-export-context'. +**** New command =org-copy-visible= (=C-c C-x v=) - 4. Improve `newline-and-indent' (C-j): used in an item, it will keep - text from moving at column 0. This allows to split text and make - paragraphs and still not break the list. + This command will copy the visible text in the region into the + kill ring. Thanks to Florian Beck for this function and to + Carsten for adding it to org.el and documenting it! - 5. Improve `org-toggle-item' (C-c -): used on a region with standard - text, it will change the region into one item. With a prefix - argument, it will fallback to the previous behavior and make every - line in region an item. It permits to easily integrate paragraphs - inside a list. +**** Make it possible to protect hidden subtrees from being killed by =C-k= - 6. `fill-paragraph' (M-q) now understands lists. It can freely be used - inside items, or on text just after a list, even with no blank line - around, without breaking list structure. + See the new variable =org-ctrl-k-protect-subtree=. This was a + request by Scott Otterson. - Thanks a lot to Nicolas for all this! +**** Implement pretty display of entities, sub-, and superscripts. -** Inline display of linked images - :PROPERTIES: - :OrgVersion: 6.36 - :END: - - Images can now be displayed inline. The key C-c C-x C-v does toggle the - display of such images. Note that only image links that have no - description part will be inlined. + The command =C-c C-x \= toggles the display of Org's special + entities like =\alpha= as pretty unicode characters. Also, sub + and superscripts are displayed in a pretty way (raised/lower + display, in a smaller font). If you want to exclude sub- and + superscripts, see the variable + =org-pretty-entities-include-sub-superscripts=. -** Implement offsets for ordered lists - :PROPERTIES: - :OrgVersion: 6.36 - :END: - - If you want to start an ordered plain list with a number different from - 1, you can now do it like this: - - : 1. [@start:12] will star a lit a number 12 + Thanks to Eric Schulte and Ulf Stegeman for making this possible. -** Babel: code block body expansion for table and preview - :PROPERTIES: - :OrgVersion: 6.36 - :END: - - In org-babel, code is "expanded" prior to evaluation. I.e. the code that - is actually evaluated comprises the code block contents, augmented with - the extra code which assigns the referenced data to variables. It is now - possible to preview expanded contents, and also to expand code during - during tangling. This expansion takes into account all header arguments, - and variables. - - A new key-binding `C-c M-b p' bound to `org-babel-expand-src-block' can - be used from inside of a source code block to preview its expanded - contents (which can be very useful for debugging). tangling - - The expanded body can now be tangled, this includes variable values - which may be the results of other source-code blocks, or stored in - headline properties or tables. One possible use for this is to allow - those using org-babel for their emacs initialization to store values - (e.g. usernames, passwords, etc...) in headline properties or in tables. - - Org-babel now supports three new header arguments, and new default - behavior for handling horizontal lines in tables (hlines), column names, - and rownames across all languages. - -** Editing Convenience and Appearance +**** New faces for title, date, author and email address lines -*** New command =org-copy-visible= (=C-c C-x v=) - :PROPERTIES: - :OrgVersion: 7.7 - :END: + The keywords in these lines are now dimmed out, and the title is + displayed in a larger font, and a special font is also used for + author, date, and email information. This is implemented by the + following new faces: - This command will copy the visible text in the region into the kill - ring. Thanks to Florian Beck for this function and to Carsten for - adding it to org.el and documenting it! + =org-document-title= + =org-document-info= + =org-document-info-keyword= -*** Make it possible to protect hidden subtrees from being killed by =C-k= - :PROPERTIES: - :OrgVersion: 7.01 - :END: + In addition, the variable =org-hidden-keywords= can be used to + make the corresponding keywords disappear. - See the new variable =org-ctrl-k-protect-subtree=. This was a request - by Scott Otterson. + Thanks to Dan Davison for this feature. -*** Implement pretty display of entities, sub-, and superscripts. - :PROPERTIES: - :OrgVersion: 7.01 - :END: +**** Simpler way to specify faces for tags and todo keywords - The command =C-c C-x \= toggles the display of Org's special entities - like =\alpha= as pretty unicode characters. Also, sub and superscripts - are displayed in a pretty way (raised/lower display, in a smaller - font). If you want to exclude sub- and superscripts, see the variable - =org-pretty-entities-include-sub-superscripts=. - - Thanks to Eric Schulte and Ulf Stegeman for making this possible. - -*** New faces for title, date, author and email address lines - :PROPERTIES: - :OrgVersion: 6.35 - :END: - - The keywords in these lines are now dimmed out, and the title is - displayed in a larger font, and a special font is also used for author, - date, and email information. This is implemented by the following new - faces: - - =org-document-title= - =org-document-info= - =org-document-info-keyword= - - In addition, the variable =org-hidden-keywords= can be used to make the - corresponding keywords disappear. + The variables =org-todo-keyword-faces=, =org-tag-faces=, and + =org-priority-faces= now accept simple color names as + specifications. The colors will be used as either foreground or + background color for the corresponding keyword. See also the + variable =org-faces-easy-properties=, which governs which face + property is affected by this setting. - Thanks to Dan Davison for this feature. - -*** Simpler way to specify faces for tags and todo keywords - :PROPERTIES: - :OrgVersion: 6.35 - :END: - - The variables =org-todo-keyword-faces=, =org-tag-faces=, and - =org-priority-faces= now accept simple color names as specifications. - The colors will be used as either foreground or background color for - the corresponding keyword. See also the variable - =org-faces-easy-properties=, which governs which face property is - affected by this setting. + This is really a great simplification for setting keyword faces. + The change is based on an idea and patch by Ryan Thompson. - This is really a great simplification for setting keyword faces. The - change is based on an idea and patch by Ryan Thompson. - -*** in tables now means fixed width, not maximum width - :PROPERTIES: - :OrgVersion: 6.35 - :END: +**** in tables now means fixed width, not maximum width - Requested by Michael Brand. + Requested by Michael Brand. -*** Better level cycling function - :PROPERTIES: - :OrgVersion: 6.35 - :END: +**** Better level cycling function - =TAB= in an empty headline cycles the level of that headline through - likely states. Ryan Thompson implemented an improved version of this - function, which does not depend upon when exactly this command is used. - Thanks to Ryan for this improvement. + =TAB= in an empty headline cycles the level of that headline + through likely states. Ryan Thompson implemented an improved + version of this function, which does not depend upon when exactly + this command is used. Thanks to Ryan for this improvement. -*** Adaptive filling - :PROPERTIES: - :OrgVersion: 6.35 - :END: +**** Adaptive filling - For paragraph text, =org-adaptive-fill-function= did not handle the - base case of regular text which needed to be filled. This is now - fixed. Among other things, it allows email-style ">" comments to be - filled correctly. + For paragraph text, =org-adaptive-fill-function= did not handle + the base case of regular text which needed to be filled. This is + now fixed. Among other things, it allows email-style ">" + comments to be filled correctly. - Thanks to Dan Hackney for this patch. + Thanks to Dan Hackney for this patch. -*** `org-reveal' (=C-c C-r=) also decrypts encrypted entries (org-crypt.el) - :PROPERTIES: - :OrgVersion: 6.35 - :END: +**** `org-reveal' (=C-c C-r=) also decrypts encrypted entries (org-crypt.el) - Thanks to Richard Riley for triggering this change. + Thanks to Richard Riley for triggering this change. -*** Better automatic letter selection for TODO keywords - :PROPERTIES: - :OrgVersion: 6.35 - :END: +**** Better automatic letter selection for TODO keywords - When all first letters of keywords have been used, Org now assigns more - meaningful characters based on the keywords. + When all first letters of keywords have been used, Org now + assigns more meaningful characters based on the keywords. - Thanks to Mikael Fornius for this patch. + Thanks to Mikael Fornius for this patch. -** Clocking +*** Clocking -*** Clock: Allow synchronous update of timestamps in CLOCK log - :PROPERTIES: - :OrgVersion: 7.7 - :END: +**** Clock: Allow synchronous update of timestamps in CLOCK log - Using =S-M-= on CLOCK log timestamps will increase/decrease - the two timestamps on this line so that duration will keep the same. - Note that duration can still be slightly modified in case a timestamp - needs some rounding. + Using =S-M-= on CLOCK log timestamps will + increase/decrease the two timestamps on this line so that + duration will keep the same. Note that duration can still be + slightly modified in case a timestamp needs some rounding. - Thanks to Rainer Stengele for this idea. + Thanks to Rainer Stengele for this idea. -*** Localized clock tables - :PROPERTIES: - :OrgVersion: 7.5 - :END: +**** Localized clock tables - Clock tables now support a new new =:lang= parameter, allowing the user - to customize the localization of the table headers. See the variable - =org-clock-clocktable-language-setup= which controls available - translated strings. + Clock tables now support a new new =:lang= parameter, allowing + the user to customize the localization of the table headers. See + the variable =org-clock-clocktable-language-setup= which controls + available translated strings. -*** Show clock overruns in mode line - :PROPERTIES: - :OrgVersion: 6.35 - :END: +**** Show clock overruns in mode line - When clocking an item with a planned effort, overrunning the planned - time is now made visible in the mode line, for example using the new - face =org-mode-line-clock-overrun=, or by adding an extra string given - by =org-task-overrun-text=. + When clocking an item with a planned effort, overrunning the + planned time is now made visible in the mode line, for example + using the new face =org-mode-line-clock-overrun=, or by adding an + extra string given by =org-task-overrun-text=. - Thanks to Richard Riley for a patch to this effect. + Thanks to Richard Riley for a patch to this effect. -*** Clock reports can now include the running, incomplete clock - :PROPERTIES: - :OrgVersion: 6.35 - :END: +**** Clock reports can now include the running, incomplete clock - If you have a clock running, and the entry being clocked falls into the - scope when creating a clock table, the time so far spent can be added - to the total. This behavior depends on the setting of - =org-clock-report-include-clocking-task=. The default is =nil=. + If you have a clock running, and the entry being clocked falls + into the scope when creating a clock table, the time so far spent + can be added to the total. This behavior depends on the setting + of =org-clock-report-include-clocking-task=. The default is + =nil=. - Thanks to Bernt Hansen for this useful addition. + Thanks to Bernt Hansen for this useful addition. -** Misc +*** Misc -*** Improvements with inline tasks and indentation - :PROPERTIES: - :OrgVersion: 7.4 - :END: +**** Improvements with inline tasks and indentation - There is now a configurable way on how to export inline tasks. See the - new variable =org-inlinetask-export-templates=. + There is now a configurable way on how to export inline tasks. + See the new variable =org-inlinetask-export-templates=. - Thanks to Nicolas Goaziou for coding these changes. + Thanks to Nicolas Goaziou for coding these changes. -*** A property value of "nil" now means to unset a property - :PROPERTIES: - :OrgVersion: 7.01 - :END: +**** A property value of "nil" now means to unset a property - This can be useful in particular with property inheritance, if some - upper level has the property, and some grandchild of it would like to - have the default settings (i.e. not overruled by a property) back. + This can be useful in particular with property inheritance, if + some upper level has the property, and some grandchild of it + would like to have the default settings (i.e. not overruled by a + property) back. - Thanks to Robert Goldman and Bernt Hansen for suggesting this change. + Thanks to Robert Goldman and Bernt Hansen for suggesting this + change. -*** New helper functions in org-table.el - :PROPERTIES: - :OrgVersion: 6.35 - :END: +**** New helper functions in org-table.el - There are new functions to access and write to a specific table field. - This is for hackers, and maybe for the org-babel people. + There are new functions to access and write to a specific table field. + This is for hackers, and maybe for the org-babel people. - #+begin_example - org-table-get - org-table-put - org-table-current-line - org-table-goto-line - #+end_example + #+begin_example + org-table-get + org-table-put + org-table-current-line + org-table-goto-line + #+end_example -*** Archiving: Allow to reverse order in target node - :PROPERTIES: - :OrgVersion: 6.35 - :END: +**** Archiving: Allow to reverse order in target node - The new option =org-archive-reversed-order= allows to have archived - entries inserted in a last-on-top fashion in the target node. + The new option =org-archive-reversed-order= allows to have + archived entries inserted in a last-on-top fashion in the target + node. - This was requested by Tom. + This was requested by Tom. -*** Org-reveal: Double prefix arg shows the entire subtree of the parent - :PROPERTIES: - :OrgVersion: 6.35 - :END: +**** Org-reveal: Double prefix arg shows the entire subtree of the parent - This can help to get out of an inconsistent state produced for example - by viewing from the agenda. + This can help to get out of an inconsistent state produced for + example by viewing from the agenda. - This was a request by Matt Lundin. + This was a request by Matt Lundin. * License -This file is part of GNU Emacs. + This file is part of GNU Emacs. -GNU Emacs is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or -(at your option) any later version. + GNU Emacs is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. -GNU Emacs is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. + GNU Emacs is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. -You should have received a copy of the GNU General Public License -along with GNU Emacs. If not, see . + You should have received a copy of the GNU General Public License + along with GNU Emacs. If not, see . diff --git a/etc/org/OrgOdtContentTemplate.xml b/etc/org/OrgOdtContentTemplate.xml index cd7ff0e156..55e1b78706 100644 --- a/etc/org/OrgOdtContentTemplate.xml +++ b/etc/org/OrgOdtContentTemplate.xml @@ -256,6 +256,7 @@ + diff --git a/etc/org/OrgOdtStyles.xml b/etc/org/OrgOdtStyles.xml index 84125c96d8..5dfcfa8389 100644 --- a/etc/org/OrgOdtStyles.xml +++ b/etc/org/OrgOdtStyles.xml @@ -319,6 +319,11 @@ + + + + + diff --git a/etc/refcards/orgcard.pdf b/etc/refcards/orgcard.pdf index 2b474bf4e93dc94b194ea088c0d00bc92354f963..2f0044184438d5a0050adc8e8794fb1aced0b6c6 100644 GIT binary patch delta 45052 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 delta 45111 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 + + * org-html.el (org-export-html-preprocess) + (org-export-html-format-image): Use + `org-latex-preview-ltxpng-directory'. + + * org-odt.el (org-export-odt-do-preprocess-latex-fragments): + Ditto. + + * org.el (org-latex-preview-ltxpng-directory): New option. + (org-preview-latex-fragment): Store LaTeX preview images in + `org-latex-preview-ltxpng-directory'. + +2012-09-30 Achim Gratz + + * ob-R.el (org-babel-R-initiate-session): Protect against use of + unbound variable `ess-ask-for-ess-directory´. The default for this + variable is true, so act accordingly if it is found unbound. + + * ob-R.el: Remove initialization with `nil´ from + `ess-ask-for-ess-directory´ and `ess-local-process-name´. Remove + second declaration for `ess-local-process-name´. + + * org-id.el: Do not use (random t), we just want a new random + number, not a re-seeding of the PRNG for which (random t) doesn't + provide enough entropy anyway. Even if (random) would always + produce the same sequence, the other components going into the MD5 + hash ensure that the result will be unique. + + * org-gnus.el: Add a missing require for gnus-util. + + * org-compat.el: Rename utils to make throughout. + + * org.el: Move check for outline-mode-keymap after (require + 'outline). + + * org-element.el: New file. Do not (require 'org). + + * org-agenda.el: Remove duplicate requires. + + * org.el (org-mode-map): Add keybindings to + `org-element-transpose' and `org-narrow-to-element'. + (org-metaup): Fall back on `org-element-drag-backward'. + (org-metadown): Fall back on `org-element-drag-forward'. Also + move chunks of declarations and require statements to get rid of + compiler warnings. + + * org-exp-blocks.el (org): Don't require org. Add declarations. + + * org-clock.el (org): Don't require org. + + * ob-exp.el (org-list-forbidden-blocks): Add declarations. + + * ob.el (org-babel-exeext): New defconst to hold extension for + executables or nil if none. Should be ".exe" for both Windows and + Cygwin. + + * ob-C.el (org-babel-C-execute): Use org-babel-exeext when + constructing the target file name for the compiled executable. + + * ob-fortran.el (org-babel-execute:fortran): Add org-babel-exeext + when constructing the target file name for the compiled + executable. + + * org-version.el: New file. + + * org-compat.el (org-check-version): New macro. Check if + org-version.el exists and provide autoloads to that. Otherwise + check if org-fixup.el exists and use it to provide definitions. + Finally if nothing worked, complain about a botched installation + and provide fallback definitions. + + * org.el: Use org-check-version. + + * org.el: Fix a subtle error resulting in version functions + sometimes not being defined and byte-compiling failing. Always + compile in fallback definitions into org.elc -- org-fixup either + provides re-definitions at compile-time or checks org-version.el + and then the git work tree when run uncompiled. So the fallback + definitions will only come into effect when org-fixup is not + available. + + * org.el (org-version): Make org-version more robust, e.g. when + byte-compiling single files with 'make compile-dirty'. + + * org.el (org-reload): Revert an undesirable change in org-reload. + Do not prepend org-dir to babel-files, which prevents the files + from being found in load-path. + + * org.el (org-version): Add optional parameters 'full and 'message + to optionally return the full version string and echo to message + area in non-interactive calls. + + * org.el (org-submit-bug-report): Add optional parameter 'full to + call of (org-version) so that the bug report has all version + information. + + * org.el (org-reload): Simplify file-re (orgtbl-*.el files do not + exist anymore). Keep org-*.el at the end of the files list. + Explicitely load org-version.el (since it doesn't provide feature + 'org-version) at the very end, but ignore errors when it doesn't + exist. Add parameters 'full and 'message to the call of + (org-version) so that after reload the full version information is + displayed in the message area again. + + * org-agenda.el: Replace with-no-warnings with org-no-warnings + (defined in org-macs.el). + + * org-bbdb.el: Replace with-no-warnings with org-no-warnings + (defined in org-macs.el). + + * org-clock.el: Replace with-no-warnings with org-no-warnings + (defined in org-macs.el). + + * org.el: Replace with-no-warnings with org-no-warnings (defined + in org-macs.el). + + * org.el: Add with-not-warnings around call of (org-fixup). + + * org-compat.el (org-find-library-dir): Rename + org-find-library-name (misleading) and implement with a function + that exists identically in Emacs/XEmacs. + + * org-exp-blocks.el: Change calls to org-find-library-dir. + + * org.el: change calls to org-find-library-dir. Make require for + noutline fail silently because it is missing from XEmacs. + + * org.el (org-version): Use functions instead of global variables + to get the version strings and remove the defvaralias to + org-version. Warn when encountering a mixed installation (org and + org-install.el should be found in the same directory). + + * org.el: Add with-no-warning to defvar for two unprefixed global + variables from calendar.el (there's nothing else we can do inside + org until it is fixed in calendar.el). + + * org.el: Require find-func and remove declare-function for + find-library-name, otherwise autoloaded org-version doesn't show + all info correctly. + + * org.el (org-version): Show the full path to org-install.el in + the version string to avoid confusion if multiple installations + exist or a previously loaded org-install.el has already defined a + version string that is now out of date. + + * org.el (org-version): Remove determination of version + information, show "N/A" if the information is not provided via + org-install.el. + + * org.el (org-git-version): Placeholder for recording the Git + version of org during install + + * org.el (org-version): Initialize local git-version with + placeholder and fall through using it when org is not installed in + a Git repository + +2012-09-30 Adam Spiers (tiny change) + + * org-html.el: Add hyperlink to http://orgmode.org/ from export + footer. + + * org-clock.el (org-clock-modify-effort-estimate): Display a + message when no clock is currently active. + +2012-09-30 Andrew Hyatt (tiny change) + + * org-archive.el (org-archive-subtree): Allow archiving to a + datetree. + + * org.el (org-archive-location): Ditto. + +2012-09-30 Bastien Guerry + + * ob-io.el: New file. + + * ob-scala.el: New file. + + * org.el (org-url-hexify-p, org-doi-server-url) + (org-latex-preview-ltxpng-directory, org-custom-properties) + (org-sparse-tree-default-date-type): Add :version "24.3". + + * org-agenda.el (org-agenda-sticky) + (org-agenda-custom-commands-contexts): Ditto. + + * org-capture.el (org-capture-bookmark) + (org-capture-templates-contexts) (org-capture-use-agenda-date): + Ditto. + + * org-latex.el (org-export-latex-hyperref-options-format) + (org-export-latex-link-with-unknown-path-format): Ditto. + + * org-id.el (org-id-link-to-org-use-id): Ditto. + + * org-datetree.el (org-datetree-add-timestamp): Ditto. + + * org.el (org-make-link-description-function): Enhance docstring. + (org-insert-link): Fall back on interactive prompt when + `org-make-link-description-function' fails. + + * org-agenda.el (org-todo-list): Fix redoing of todo agenda when + `org-agenda-sticky' is non-nil. + + * org-agenda.el (org-agenda-quit): Delete last indirect buffer. + (org-agenda-pre-follow-window-conf): New variable. + (org-agenda-tree-to-indirect-buffer): Fix bug: don't split agenda + window when there an indirect buffer is already displayed. + + * org-agenda.el (org-agenda-manipulate-query) + (org-agenda-goto-date, org-agenda-goto-today) + (org-agenda-find-same-or-today-or-agenda, ) + (org-agenda-later, org-agenda-change-time-span) + (org-agenda-change-all-lines) + (org-agenda-execute-calendar-command) + (org-agenda-goto-calendar, org-agenda-convert-date): Make sure to + get a property from (1- (point-max)), not (point-max)). + + * ob-dot.el (org-babel-execute:dot): Throw an error when there is + no :file parameter. + + * org-table.el (org-table-eval-formula): Convert time-stamps to + inactive time-stamp so that Calc can handle them correctly. + + * org-table.el (org-table-fix-formulas): Warn with a message when + formulas have been updated. + + * org-publish.el (org-publish-cache-ctime-of-src): Delete the + base-dir argument and use (file-name-directory file) to get the + file's directory. + (org-publish-update-timestamp) + (org-publish-cache-file-needs-publishing): Call + `org-publish-cache-ctime-of-src' with only one argument. + + * org.el (org-follow-timestamp-link): Fix bug when using sticky + agenda. Add a docstring. + + * org-agenda.el (org-agenda-sticky): Don't use a function to set. + Add a :version string. + + * org.el (org-priority): Use a new argument to show priority + instead of setting it. + (org-show-priority): New function to show priority both in normal + Org buffers and in Org Agenda buffers. + (org-speed-commands-default): Use "," as a speed command for + setting priority. + + * org-agenda.el (org-agenda-mode-map): Bind `org-agenda-priority' + to `C-c ,' as it was before. + (org-agenda-show-priority): Delete. + (org-agenda-priority): Use a new argument to show priority instead + of setting it. + + * org.el (org-font-lock-hook, org-set-font-lock-defaults): Add a + docstring. + (org-display-inline-remove-overlay): Rename from + `org-display-inline-modification-hook'. + (org-speed-command-activate): Rename from + `org-speed-command-default-hook'. + (org-babel-speed-command-hook): Rename from + `org-babel-speed-command-activate'. + + * org-agenda.el (org-agenda-update-agenda-type): Rename from + `org-agenda-post-command-hook'. + (org-agenda-mode): Use the new name. + (org-agenda-post-command-hook): Define as obsolete function. + + * org-lparse.el (org-lparse): Temporarily activate the hooks + needed for the ODT conversion. + (org-lparse-preprocess-after-blockquote): Rename from + `org-lparse-preprocess-after-blockquote-hook'. + (org-lparse-strip-experimental-blocks-maybe): Rename from + `org-lparse-strip-experimental-blocks-maybe'. + (org-lparse-preprocess-after-blockquote-hook) + (org-lparse-strip-experimental-blocks-maybe-hook): Define as + obsolete functions. + + * ob.el (org-babel-insert-result): Comma-escape results inserted + with ":results org". + + * org-src.el (org-edit-src-code, org-edit-src-exit): Fix bug about + saving the source editing window with the default value for + `org-src-window-setup' (i.e. 'reorganize-frame). + + * org-src.el (org-src-font-lock-fontify-block): Fix bug: don't + fontify the last character. + + * org.el (org-open-at-point): Don't follow timestamp within + bracket links. + + * org-capture.el (org-capture-templates): Fix typo in docstring. + + * org-agenda.el (org-agenda-skip): Skip information retrieved from + a source block. + + * ob.el (org-babel-common-header-args-w-values) + (org-babel-insert-result): Reintroduce ":results org" but using + "#+BEGIN_SRC org", not "#+BEGIN_ORG". + + * ob.el (org-babel-common-header-args-w-values): Remove "org" the + list of predefined values for the ":results" parameter. + + * ob.el (org-babel-insert-result): Remove support for ":results + org". + + * ob.el (org-babel-common-header-args-w-values) + (org-babel-insert-result): Deprecate ":results wrap" in favor of + ":results drawer". + + * org-crypt.el (org-at-encrypted-entry-p): Fix bug when the check + happens before the first headline. + + * org-capture.el (org-at-encrypted-entry-p) + (org-encrypt-entry, org-decrypt-entry): Declare. + (org-capture-set-target-location): Check whether `org-crypt' has + been loaded. + + * org-agenda.el (org-agenda-todo-custom-ignore-p): Fix typo in + docstring. + + * org-capture.el (org-capture-finalize): Maybe re-encrypt the + target headline if it was decrypted. + (org-capture-set-target-location): Maybe decrypt the target + headline. + + * org-crypt.el (org-at-encrypted-entry-p): New function. + + * org.el (org-options-keywords): Add "STYLE:". + + * org-agenda.el (org-agenda-ndays): Don't make an alias, as + `org-agenda-span' is defined separately. + + * org.el (org-in-subtree-not-table-p): New utility function for + building the menu. + (org-org-menu): Add an item for refiling. Check more contexts + when activating items. + (org-tree-to-indirect-buffer): Use `org-up-heading-safe'. + + * org-agenda.el (org-agenda-tree-to-indirect-buffer) + (org-agenda-do-tree-to-indirect-buffer): Use argument `arg'. + + * org-capture.el (org-capture-set-target-location): Set a correct + time value when storing a note in a datetree and prompting the + user for a date. + + * org-capture.el (org-capture-mode): Fix bug: don't run the mode's + hook twice. + + * org-agenda.el (org-agenda-menu-two-column) + (org-finalize-agenda-hook, org-agenda-ndays): Use + `define-obsolete-variable-alias' instead of + `make-obsolete-variable'. + + * org.el (org-link-to-org-use-id): Move to org-id.el. + + * org-id.el (org-id-link-to-org-use-id): Rename from + `org-link-to-org-use-id'. Use `nil' as the default value. + (org-link-to-org-use-id): Alias and define as obsolete. + + * org-agenda.el (org-search-view, org-agenda-get-todos) + (org-agenda-get-timestamps, org-agenda-get-blocks): Use the dotime + parameter of `org-agenda-format-item' so that 'time-up and + 'time-down agenda sorting strategies are handled correctly. + + * org-capture.el (org-capture-fill-template): Fix checking of + protected template entries. + + * org.el (org-cycle-global-at-bob): Fix typo in docstring. + + * org.el (org-insert-drawer): Deactivate the mark before trying to + indent the :END: of the drawer. + + * org-agenda.el (org-agenda-export-html-style): Default to nil as + any string value will replace the htmlize style. + + * org.el (org-cycle-hook): Fix tiny typo in docstring. + + * org.el (org-time-string-to-time) + (org-time-string-to-seconds, org-end-of-subtree): Add a dosctring. + + * org-freemind.el (org-freemind-write-node): Enhance links + conversion in nodes. + + * org-freemind.el (org-freemind-write-node): Convert links in + nodes. + + * org.el (org-link-to-org-use-id, org-directory) + (org-default-notes-file, org-reverse-note-order) + (org-extend-today-until, org-finish-function) + (org-store-link-functions): Use "capture" instead of "remember" in + docstrings. Also use the `org-capture' group when it makes sense. + + * org-agenda.el (org-agenda-tree-to-indirect-buffer): Find the + correct agenda buffer. Don't split the agenda window when the + indirect buffer is displayed in another frame. + + * org.el (org-mode): Try to set the org-hide face correctly. + + * org-exp.el (org-export): Set the mark correctly when exporting a + subtree. + + * org-agenda.el (org-agenda-get-restriction-and-command): Fix the + display of the number of commands for block agendas. + + * org-agenda.el (org-agenda-before-write-hook) + (org-agenda-add-entry-text-maxlines): Enhance phrasing. + (org-agenda-finalize-hook, org-agenda-mode-hook): Tell that the + buffer is writable when the hook is called. + (org-agenda-finalize): Allow org-agenda-finalize-hook to modify + the buffer. + + * org-agenda.el (org-habit-show-all-today): Only use defvar to + silent the byte-compiler. + (org-agenda-get-scheduled): Check whether some org-habit.el + options have been defined. + + * org-capture.el (org-capture-entry): New variable. + (org-capture-string, org-capture): Use it to possibly skip the + interactive prompt for a capture template. + + * org.el (org-activate-plain-links): Don't try to check if we are + in a bracket link already. + + * org.el (org-read-date-analyze): Fix bug introduced in commit + cc5f9f: adding a time should not prevent relative answers to be + parsed correctly. + + * org-agenda.el (org-agenda-bulk-action): Always read the date + through `org-read-date'. When possible, use the date at point as + the default date. + + * org-agenda.el (org-agenda-bulk-action): Fix bug when + bulk-shifting timestamps. + + * org.el (org-version): New constant. + + * org-compat.el (org-random): New compatibility function. + + * org-id.el (org-id-uuid): Use it. + + * org-capture.el (org-capture-use-agenda-date): New option. + (org-capture): Use it. + + * org-agenda.el (org-agenda-capture): New command. + (org-agenda-mode-map): Bind it to `k'. + (org-agenda-menu): Add it to the menu. + + * org-capture.el (org-capture): Update docstring. + + * org-capture.el (org-capture): When called from an agenda buffer, + use the cursor date at the default date. + + * org-agenda.el (org-agenda-bulk-action): Use the let-bound + `entries' instead the variable. + + * org-agenda.el (org-agenda-bulk-action): Fix bug: don't remove + persistent marks too early. + + * org-agenda.el (org-agenda-bulk-action): Possibly use the day at + point to reset the scheduled or deadline cookie. On date headers, + use it without prompting the user. On an item, use the item's + date as the default prompt for `org-read-date'. + + * org.el (org-read-date): Docstring fix. + + * org-agenda.el (org-agenda-bulk-action): Reorder possible actions + in the message. + + * org-agenda.el (org-agenda-action, org-agenda-do-action): Delete. + (org-agenda-mode-map): Delete related keys. + + * org-agenda.el (org-agenda-menu): Fix a keybinding. + + * org-colview.el (org-columns-goto-top-level): Correctly move the + marker `org-columns-top-level-marker'. + (org-agenda-columns): Don't set + `org-agenda-overriding-columns-format' as a buffer variable, as we + only need it dynamically. + (org-agenda-colview-summarize): Fix a bug in returning the match + string. + + * org-agenda.el (org-agenda-span-to-ndays): Make the second + argument `starting-day' optional. + (org-agenda-goto-date): Keep parameters of custom agendas. + + * org-agenda.el (org-agenda-list): Allow setting the agenda buffer + name through a temporary variable. + (org-agenda-buffer-tmp-name): New variable to temporary store the + agenda buffer name. + + * org-agenda.el (org-agenda-goto-date): Fix behavior when using + sticky agendas. + + * org-agenda.el (org-diary): Don't check whether there is an + agenda buffer when trying to compile the prefix format. + (org-compile-prefix-format): Check if there is an agenda buffer. + If not, use the current buffer. + + * org-agenda.el (org-agenda-get-day-entries): Set the agenda + buffer inconditionnally. + + * ob.el (org-babel-named-src-block-regexp-for-name): Generate a + more general regexp. + + * ob.el (org-babel-where-is-src-block-head): Find a src block head + correctly when #+header(s) is before #+name. + + * org-agenda.el (org-agenda-finalize-hook) + (org-agenda-finalize, org-agenda-finalize-entries): Rename from + org-finalize-agenda-*. + (org-agenda-run-series, org-agenda-finalize, org-timeline) + (org-agenda-list, org-search-view, org-todo-list) + (org-tags-view, org-diary, org-agenda-finalize-entries) + (org-agenda-change-all-lines): Use the new names. + + * org-agenda.el (org-agenda-local-vars): Remove + ̀org-agenda-last-arguments' from the list of local variables. + (org-agenda-mode-map): `g' does the same than `r' in buffers with + only one agenda view, but its behavior differs when there are + several views. In manually appended agendas (with `A'), `g' + displays only the agenda under the point. With multiple agenda + blocks, `g' reinitializes the view by discarding any temporary + changes (e.g. with ̀f' or `w'), while ̀r' keeps those temporary + changes for the agenda view under the point. + (org-agenda-run-series, org-agenda-redo): Implement the above + changes. + (org-agenda-mark-header-line): Don't set useless properties. + (org-agenda-list, org-todo-only, org-search-view) + (org-todo-list, org-tags-view, org-agenda-list-stuck-projects) + (org-agenda-manipulate-query, org-agenda-goto-today) + (org-agenda-later, org-agenda-change-time-span): Use text + properties for storing the last command and the last arguments for + each agenda block. + (org-unhighlight-once): Delete. + + * org-agenda.el (org-agenda-append-agenda): Fit agenda window to + buffer. + + * org-agenda.el (org-agenda-append-agenda): Bugfix: correctly + check whether we are in org-agenda-mode. + + * org-agenda.el (org-agenda-pre-window-conf): Rename from + `org-pre-agenda-window-conf'. + (org-agenda-local-vars, org-agenda-prepare-window) + (org-agenda-Quit, org-agenda-quit): Use the new name. + + * org-agenda.el (org-keys, org-match): New variable, dynamically + scoped in `org-agenda'. + (org-agenda, org-agenda-list, org-search-view, org-todo-list) + (org-tags-view): Use the new variables. + (org-batch-store-agenda-views): Let-bind `match'. + + * org-agenda.el (org-search-view, org-todo-list) + (org-tags-view): Do not let `org-agenda-sticky' prevent the use of + these functions programmatically. Also use the sticky agenda + function correctly. + + * org-agenda.el (org-agenda): Set `org-agenda-buffer-name' + correctly with sticky agendas and non-custom commands. + + * org-agenda.el (org-agenda-fit-window-to-buffer): Rename from + `org-fit-agenda-window'. + (org-agenda-run-series, org-agenda-prepare, org-agenda-list) + (org-search-view, org-todo-list, org-tags-view): Use the new name. + + * org-agenda.el (org-agenda-prepare): Let `throw' display an + error. + + * org-agenda.el (org-agenda-list): Fix bug: don't throw an error + when called from programs as (org-agenda-list). + + * org-agenda.el (org-todo-list): Make arg optional. + + * org.el (org-agenda-prepare-buffers): Rename from + `org-prepare-agenda-buffers'. + (org-match-sparse-tree, org-map-entries): Use the new names. + + * org-agenda.el (org-agenda-prepare-window): Rename from + `org-prepare-agenda-window'. + (org-agenda-prepare): Rename from `org-prepare-agenda'. + (org-agenda-run-series, org-agenda-prepare, org-timeline) + (org-agenda-list, org-search-view, org-todo-list) + (org-tags-view, org-agenda-list-stuck-projects, org-diary) + (org-agenda-to-appt): Use the new names. + + * org-mobile.el (org-mobile-create-index-file): Ditto. + + * org-icalendar.el (org-export-icalendar): Ditto. + + * org-clock.el (org-dblock-write:clocktable) + (org-dblock-write:clocktable): Ditto. + + * org2rem.el (org2rem): Ditto. + + * org-agenda.el (org-agenda): In sticky agendas, use the current + command's match to set the buffer name. This gives more + information to the user and allows to distinguish various agendas + triggered by the same key. + (org-batch-store-agenda-views): Handle the new sticky agenda + buffer name. + + * org-agenda.el (org-agenda) + (org-agenda-get-restriction-and-command): Use `S' as a key for + searching words in TODO-only entries. + + * org-agenda.el (org-prepare-agenda): Fit agenda window when + displaying a sticky agenda. + + * org-table.el (org-table-number-regexp): Allow the user to set it + to a new regexp, which allows commas as decimal mark. The default + is to not use this setting, but the one before commit 7ff8c1, + which has ben reverted. + + * org-agenda.el (org-agenda-overriding-cmd) + (org-agenda-multi-current-cmd) + (org-agenda-multi-overriding-arguments): New variables. + (org-agenda-run-series): `org-agenda-overriding-arguments' + defaults to the last agenda block arguments, so don't use it + globally. + (org-agenda-mark-header-line): Add properties needed so that + `org-agenda-overriding-arguments', `org-agenda-current-span' and + `org-agenda-last-arguments' can be set to their correct contextual + value. + (org-agenda-multi-back-to-pos): New variable. + (org-agenda-later): Retrieve `org-agenda-current-span' and + `org-agenda-overriding-arguments' from text properties. Also + handle numeric span. + (org-agenda-later, org-agenda-change-time-span): Set + `org-agenda-overriding-cmd' so that we to take overriding + arguments into account for this command only. + + * org-agenda.el (org-agenda-kill, org-agenda-archive-with): Fix + bug when called with a non-nil value of `org-agenda-stick'. + + * org-agenda.el (org-agenda-refile): Fix bug when refiling an + entry from a sticky agenda. + + * org-agenda.el (org-prepare-agenda-window): Use + `org-pre-agenda-window-conf' if already set. + (org-agenda-Quit): Set `org-pre-agenda-window-conf' to nil when + quitting. + (org-agenda-quit): Ditto. + + * org-capture.el (org-capture-fill-template): Protect the text + used for replacement from being further replaced. + + * org.el (org-contextualize-validate-key): Fix the check against a + function. + + * org.el (org-contextualize-keys): Rename from + `org-contextualize-agenda-or-capture'. Fix normalization to + handle empty key replacement string. + (org-contextualize-validate-key): Rename from + `org-contexts-validate'. Allow checking against a custom + function. + + * org-agenda.el (org-agenda-custom-commands-contexts): Update. + (org-agenda): Use `org-contextualize-keys'. + + * org-capture.el (org-capture-templates-contexts): Ditto. + + * org.el (org-contextualize-agenda-or-capture): Normalize + contexts. + + * org.el (org-contextualize-agenda-or-capture): Handle key + replacement depending on the contexts. + + * org-capture.el (org-capture-templates-contexts): Allow to use + the context as a way to replace one capture template by another + one. + + * org-agenda.el (org-agenda-custom-commands-contexts): Allow to + use the context as a way to replace one agenda custom command by + another one. + + * org.el (org-contextualize-agenda-or-capture) + (org-rule-validate): New functions, implement context filtering + for agenda commands and capture templates. + + * org-agenda.el (org-agenda-custom-commands-contexts): New option. + (org-agenda): Use it. + + * org-capture.el (org-capture-templates-contexts): New option. + (org-capture-select-template): Use it. + + * org.el (org-beginning-of-defun, org-end-of-defun): Delete. + (org-mode): Set `beginning-of-defun-function' and + `end-of-defun-function' directly. + + * org.el (org-insert-link): Fix bug: include links abbreviations + when completing. + + * org-icalendar.el (org-icalendar-print-entries): Fix bug: when + `org-icalendar-use-plain-timestamp' is nil, scheduled and deadline + items should not be ignored. + + * org.el (org-ds-keyword-length, org-make-tags-matcher): Docstring + clean-up. + + * org-freemind.el (org-freemind-convert-links-from-org): Replace + literally to prevent errors when replacing with string containing + backslashes. + + * org-pcomplete.el (org-thing-at-point): Allow to match (and then + complete) a "thing" containing dashes. + + * org-table.el (org-table-toggle-coordinate-overlays): Better + message when interactively toggling. + + * org-table.el (org-table-number-regexp): Update the docstring to + show an example of a decimal number using the comma as a + separation mark. + + * org-agenda.el (org-prepare-agenda): Minor code clean-up. + (org-agenda-filter-by-category): Filtering must be turned off only + when a category filter has been set and this filter is not empty. + + * org-agenda.el (org-search-view, org-agenda-get-todos) + (org-agenda-get-timestamps, org-agenda-get-sexps) + (org-agenda-get-progress, org-agenda-get-deadlines) + (org-agenda-get-scheduled, org-agenda-get-blocks): Use + `category-pos' instead of `org-category-pos'. + + * ob-fortran.el (org-babel-fortran-transform-list): Rename from + `ob-fortran-transform-list'. + (org-babel-fortran-var-to-fortran): Use the new function's name. + + * ob-calc.el (org-babel-calc-maybe-resolve-var): Rename from + `ob-calc-maybe-resolve-var'. + (org-babel-execute:calc): Use the new function's name. + + * org-jsinfo.el (org-infojs-template): Add a license. + (org-infojs-handle-options): Replace all template elements. + + * org-html.el (org-export-html-scripts): Add a license. + (org-export-html-mathjax-config): Replace all template elements. + (org-export-html-mathjax-template): Add a license. + (org-export-as-html): Minor code clean-up. + + * org.el (org-options-keywords): Add "#+MATHJAX" and + "#+INFOJS_OPT" to the list of keywords for completion. + + * org.el (org-src-prevent-auto-filling): Remove unused and useless + option. + + * org.el (org-element-at-point): Autoload. + (org-element-up): Remove useless declaration. + (org-fill-context-prefix, org-fill-paragraph) + (org-mark-element, org-narrow-to-element) + (org-transpose-element, org-unindent-buffer): Do not require + org-element. + + * org.el (org-fill-paragraph): Require org-element. + + * org-agenda.el (org-agenda-persistent-marks): Minor docstring + enhancement. + + * org.el (org-create-math-formula): Use the compatibility function + `org-region-active-p'. + + * org-odt.el (org-export-as-odf): Ditto. + + * ob.el (org-babel-demarcate-block): Ditto. + + * org.el (org-mark-subtree): Maybe call `org-mark-element' + interactively. + (org-mark-element): Only mark further elements when called + interactively. + + * org.el (org-mark-element, org-narrow-to-element) + (org-transpose-element): Require org-element. + + * org-agenda.el (org-agenda-get-timestamps) + (org-agenda-get-sexps, org-agenda-get-deadlines) + (org-agenda-get-scheduled): Add the 'warntime as a text property, + getting its value from the APPT_WARNTIME property. + (org-agenda-to-appt): Use the 'warntime text property. + + * org-capture.el (org-capture-place-table-line): Fix bug. + + * org.el (org-activate-plain-links): Don't activate a plain link + when it is part of a bracketed link, unless bracketed links are + not enlisted in `org-activate-links'. + (org-open-at-point): Don't consider the text immediately after a + bracketed link is part of a plain link. + + * org.el (org-compute-latex-and-specials-regexp) + (org-paste-subtree, org-sort-entries, org-store-link) + (org-open-at-point, org-file-remote-p, org-add-log-setup) + (org-set-tags-to, org-fast-tag-selection) + (org-diary-sexp-entry): Ditto. + + * org-agenda.el (org-agenda-get-blocks, org-cmp-priority) + (org-cmp-effort, org-cmp-todo-state, org-cmp-alpha) + (org-cmp-tag, org-cmp-time): Remove useless (t nil) sexps at the + end of (cond ...) constructs. + + * org-mobile.el (org-mobile-create-index-file): Ditto. + + * org-lparse.el (org-lparse-format-table-row): Ditto. + + * org-list.el (org-sort-list): Ditto. + + * org-id.el (org-id-get): Ditto. + + * org-html.el (org-export-html-preprocess): Ditto. + + * org-exp.el (org-default-export-plist) + (org-table-clean-before-export): Ditto. + + * org.el (org-options-keywords): Add "TODO". + (org-make-options-regexp): Make the hashtag mandatory for options + and don't allow whitespaces between the hashtag and the plus sign. + + * org.el (org-refresh-category-properties) + (org-find-dblock, org-dblock-start-re, org-dblock-end-re): Allow + lowercase "#+category" and "#+begin:" dynamic blocks. + + * org.el (org-context): Use case-folding when trying to match + clocktables and source blocks contexts. + + * org-clock.el (org-clock-put-overlay): Put the overlay on the + whole headline, not only on the last character. This fixes a bug + with overlays on headlines ending with a bracketed link. + + * org-html.el (org-export-as-html): Make sure we always process a + string. + + * org-exp.el (org-export-cleanup-toc-line): Always return a + string. + + * org.el (org-fontify-meta-lines-and-blocks-1): Correctly handle + metalines with #+results[...]:. + + * org-exp.el (org-export-handle-metalines): Rename from + `org-export-handle-table-metalines'. Now also handle source block + metalines. + (org-export-res/src-name-cleanup): Delete. + (org-export-preprocess-string): Use `org-export-handle-metalines'. + Don't use `org-export-res/src-name-cleanup' anymore. + + * org-html.el (org-format-org-table-html): Don't include the + caption tag for empty captions in HTML export. Keep it in the + DocBook export so that it produces valid DocBook XML. + + * org.el (org-read-date-analyze): Allow both "8am Wed" and "Wed + 8am" to be parsed correctly with respect to possible values of + `org-read-date-prefer-future'. + (org-read-date-prefer-future): Update docstring to remove the + restriction about inserting only the time. The user can now + insert the time and the day. + + * org-icalendar.el (org-icalendar-print-entries): Rename from + `org-print-icalendar-entries'. + (org-icalendar-start-file): Rename from + `org-start-icalendar-file'. + (org-icalendar-finish-file): Rename from + `org-finish-icalendar-file'. + (org-icalendar-ts-to-string): Rename from `org-ical-ts-to-string'. + (org-export-icalendar): Use the correct functions. + + * ob-ref.el (org-babel-ref-index-list): Fix bug introduced by + commit e85479. + + * org.el (org-fill-context-prefix): Require org-element. + (org-timestamp-change): Fix bug by saving excursion when adjusting + another clock. + + * org.el (org-read-date-prefer-future): Fix docstring formatting. + (org-read-date-analyze): Fix the interpretation of + `org-read-date-prefer-future'. + + * org-agenda.el (org-agenda-menu-two-column): Rename to + `org-agenda-menu-two-columns'. + + * ob.el (org-babel-sha1-hash, org-babel-noweb-p): Replace + `org-labels' by `let*'. + + * org-bibtex.el (org-bibtex-headline): Ditto. + + * org-compat.el: Delete `org-labels'. + + * ob.el (org-babel-get-src-block-info) + (org-babel-check-src-block, org-babel-current-result-hash) + (org-babel-parse-src-block-match, org-babel-read-link) + (org-babel-insert-result, org-babel-clean-text-properties): Use + ̀org-no-properties' instead of `org-babel-clean-text-properties'. + (org-babel-clean-text-properties): Delete redundant function + `org-babel-clean-text-properties'. + + * ob-tangle.el (org-babel-tangle-collect-blocks) + (org-babel-tangle-comment-links): Ditto. + + * ob-table.el (sbe): Ditto. + + * ob-lob.el (org-babel-lob-get-info) + (org-babel-lob-execute): Ditto. + + * ob-exp.el (org-babel-exp-non-block-elements): Ditto. + + * org-macs.el (org-no-properties): Allow a new parameter + `restricted' to restrict the properties removal to those in + `org-rm-props'. The default is now to remove all properties. + + * org-compat.el (org-substring-no-properties): Remove unused + defun. + + * org-remember.el (org-remember-apply-template): Remove redundant + removal of text properties. + (org-remember-apply-template): Use `org-no-properties'. + + * org-capture.el (org-capture-fill-template): Remove redundant + removal of text properties. + (org-capture-fill-template): Use `org-no-properties'. + + * org-gnus.el (org-gnus-open, org-gnus-follow-link): Use + `org-no-properties'. + + * org-colview.el (org-columns-display-here): Ditto. + + * org-table.el (org-table-eval-formula): Ditto. + + * org.el (org-entry-properties): Ditto. + + * org-icalendar.el (org-print-icalendar-entries): Fix bug about + handling `alarm-time'. + + * ob-R.el (org-babel-edit-prep:R): Don't set the session. + + * org.el (org-store-log-note): Only skip comments starting with "# + " when storing a note. + + * org.el (org-custom-properties): New option. + (org-custom-properties-overlays): New variable. + (org-toggle-custom-properties-visibility): New command to toggle + the visibility of custom properties. + (org-check-before-invisible-edit): Also prevent errors when trying + to edit invisible properties. + + * org-datetree.el (org-datetree-add-timestamp): New option. + (org-datetree-insert-line): Use it. + + * org.el (org-fill-template): Fix bug when filling template for a + key associated to the nil value. + + * org-agenda.el (org-diary): Fix tiny typo. + + * org.el (message-in-body-p): Move declaration up to fix compiler + warning. + + * org.el (org-fill-context-prefix): Fix auto-filling in + `message-mode'. + + * org.el (org-fill-paragraph): Correctly fill paragraph in + message-mode. + (org-indent-line): Correctly indent according to mode when + `orgstruct++-mode' is on. + (orgstruct++-mode): Add `fill-prefix' to the variable temporarily + stored in `org-fb-vars'. + + * org.el (org-fill-paragraph): Make a command. Fix bug about + filling message headers and citations. + + * org.el (org-redisplay-inline-images): New command. + (org-mode-map): Bind it to C-c C-x C-M-v. + + * org-colview.el (org-columns-get-format-and-top-level): Fix bug. + (org-columns-get-format): Fix compiler warning. + + * org-feed.el: Add declarations. + + * org-agenda.el (org-agenda-get-sexps): Use `org-get-tags-at' to + allow tag inheritance. + + * org-capture.el (org-capture): Fix bug introduced by commit + 1737d3. + + * org-publish.el (org-publish-needed-p) + (org-publish-update-timestamp, org-publish-file) + (org-publish-cache-file-needs-publishing): New argument + `base-dir'. + (org-publish-cache-ctime-of-src): Use the new argument to make + sure we find the file according to :base-directory. + + * org-capture.el (org-capture-string): New command to prompt for + the interactive text interactively. This can also be used in + Elisp programs to use ̀org-capture' with some initial text. + (org-capture-initial): New variable to store the initial text. + (org-capture): Use `org-capture-initial'. + + * org.el (org-emph-re): Tiny docstring formatting fix. + + * org-compat.el (org-labels): Remove. + + * org-bibtex.el (org-bibtex-headline): Don't use `org-labels'. + + * ob.el (org-babel-sha1-hash, org-babel-noweb-p): Ditto. + + * org.el (org-emph-re): Tiny formatting fix. + + * org.el (orgstruct-setup): Require `org-element'. + + * org.el (org-store-link, org-open-at-point): New link type + "help". + + * org-compat.el (org-flet): Remove alias. + + * ob.el (org-babel-edit-distance, org-babel-sha1-hash) + (org-babel-get-rownames, org-babel-insert-result) + (org-babel-merge-params) + (org-babel-expand-noweb-references): Don't use `org-flet'. Also + indent some functions correctly. + + * ob.el (org-babel-execute-src-block) + (org-babel-join-splits-near-ch, org-babel-format-result) + (org-babel-examplize-region): Don't use `org-flet'. + (org-babel-tramp-handle-call-process-region): Fix typo. + + * ob-awk.el (org-babel-awk-var-to-awk): Don't use `org-flet'. + + * ob-sh.el (org-babel-sh-var-to-string): Ditto. + + * ob-tangle.el (org-babel-tangle, org-babel-spec-to-string): Don't + use `org-flet'. + + * org-pcomplete.el (org-compat): Require. + + * ob-tangle.el (org-babel-load-file): Don't use `org-flet'. + + * org-bibtex.el (org-bibtex-write): Use let*. + + * org-plot.el (org-plot/gnuplot-script): Don't use `org-flet'. + + * org-bibtex.el (org-bibtex-headline, org-bibtex-fleshout) + (org-bibtex-read, org-bibtex-write): Don't use `org-flet'. + + * org-clock.el (org-clock-cancel): Use `org-looking-back'. + + * org-pcomplete.el (org-thing-at-point): Ditto. + + * org.el (org-timestamp-change): Ditto. + + * org-mouse.el (org-mouse-timestamp-today) + (org-mouse-set-priority, org-mouse-popup-global-menu) + (org-mouse-context-menu): Don't use ̀org-flet'. + + * org.el (org-priority): Fix docstring. + + * org-publish.el (org-publish-write-cache-file) + (org-publish-initialize-cache) + (org-publish-cache-file-needs-publishing) + (org-publish-cache-get): Small code clean-up. + + * org-publish.el (org-publish-cache-ctime-of-src): Simplify. + + * org-agenda.el (org-agenda-get-sexps): Add a 'tags property for + agenda entries created from sexps. + + * org-capture.el (org-capture-templates): Docstring clean up. + (org-capture-place-entry, org-capture-place-item) + (org-capture-place-plain-text, org-capture-place-table-line): + Ensure to always position the point according to %?. + + * org-table.el (org-table-convert-refs-to-rc): Fix bug when + converting remote table references. + + * org-agenda.el (org-agenda-switch-to): Run hooks in + ̀org-agenda-after-show-hook'. + + * ob-ref.el (org-babel-ref-index-list): Use let* and rename the + variable `length' to `lgth'. + + * org-plot.el (org-plot/gnuplot-to-grid-data): Don't use + ̀org-flet'. + + * org-exp.el (org-export-format-source-code-or-example): Ditto. + + * org-exp-blocks.el (org-export-blocks-preprocess): Ditto. + + * ob.el (org-babel-view-src-block-info) + (org-babel-execute-src-block, org-babel-edit-distance) + (org-babel-switch-to-session-with-code) + (org-babel-balanced-split, org-babel-insert-result): Ditto. + + * ob-ref.el (org-babel-ref-index-list): Ditto. + + * ob-python.el (org-babel-python-evaluate-session): Ditto. + + * ob-lob.el (org-babel-lob-get-info): Ditto. + + * ob-gnuplot.el (org-babel-expand-body:gnuplot): Ditto. + + * ob-exp.el (org-babel-exp-do-export): Ditto. + + * org-table.el (orgtbl-to-generic): Fix docstring. + + * org-clock.el (org-clock-in): Call `org-clock-out' with the new + argument `switch-to-state' set to nil. Fix docstring. + (org-clock-in-last): Prompt for a todo state to switch to when + called with three universal prefix arguments. Don't display a + message when the clock is already running. Update docstring. + (org-clock-out): New argument `switch-to-state'. When this + argument is non-nil, prompt for a state to switch the clocked out + task to, overriding `org-clock-out-switch-to-state'. + + * org.el (org-entry-get): Don't use `org-flet'. + + * org.el (org-forward-heading-same-level): Rename from + `org-forward-same-level'. + (org-backward-heading-same-level): Rename from + `org-backward-same-level'. + + * org.el (org-forward-element): Rename from `org-element-forward'. + (org-backward-element): Rename from `org-element-backward'. + (org-up-element): Rename from `org-element-up'. + (org-down-element): Rename from `org-element-down'. + (org-drag-element-backward): Rename from + `org-element-drag-backward'. + (org-drag-element-forward): Rename from + `org-element-drag-forward'. + (org-mark-element): Rename from `org-element-mark-element'. + (org-transpose-element): Rename from `org-element-transpose'. + (org-unindent-buffer): Rename from `org-element-unindent-buffer'. + (org-mode-map): Update the names of a commands. Remove useless + declarations. + + * org-element.el (org-element-forward, org-element-backward) + (org-element-up, org-element-down) + (org-element-drag-backward, org-element-drag-forward) + (org-element-mark-element, org-narrow-to-element) + (org-element-transpose, org-element-unindent-buffer): Move to + org.el. + + * org.el (org-forward-same-level): Fix typo in docstring. + + * org-agenda.el (org-agenda-mode-map): Bind + `org-agenda-show-priority' to `C-c,' instead of `P'. + (org-agenda-next-item, org-agenda-previous-item): New commands to + move by one item down/up in the agenda. + (org-agenda-mode-map): Bind `org-agenda-next-item' and + `org-agenda-previous-item' to `N' and `P' respectively. + + * org-rmail.el (org-rmail-store-link, org-rmail-follow-link): + Toggle headers when necessary. + + * org-element.el (org-narrow-to-element): Autoload. + + * org.el (org-mode-map): Use `M-h' for `org-element-mark-element'. + (org-mark-subtree): Allow a numeric prefix argument to move up + into the hierarchy of headlines. + + * org-element.el (org-element-up, org-element-down): Autoload. + + * org.el: Declare functions and don't require org-element. + + * org-element.el (org-element-at-point, org-element-forward) + (org-element-backward, org-element-drag-backward) + (org-element-drag-forward, org-element-mark-element) + (org-element-transpose, org-element-unindent-buffer): Autoload. + Require 'org and remove all declarations. + + * org.el (org-outline-regexp-bol, org-heading-regexp): Use + variables instead of constants. + + * org-archive.el (org-datetree-find-date-create): Declare. + + * org.el (org-open-at-point): Only set + `clean-buffer-list-kill-buffer-names' when the feature 'midnight + has been loaded. + + * org-icalendar.el (org-print-icalendar-entries): Let + APPT_WARNTIME take precedence over ̀org-icalendar-alarm-time'. + + * org.el (org-special-properties): New special property + CLOCKSUM_T. + (org-entry-properties): Handle the new special property. + + * org-colview.el (org-columns): Handle a new special property + CLOCKSUM_T. + (org-agenda-colview-summarize, org-agenda-colview-compute): Ditto. + + * org-clock.el (org-clock-sum-today): New function. + (org-clock-sum): New argument PROPNAME to set a custom text + property instead of :org-clock-minutes. + + * org-agenda.el (org-agenda-check-type): Throw a more appropriate + error message when no agenda is currently being displayed. + + * org.el (org-get-property-block): Find blocks before the first + headline. + (org-entry-properties): Minor code cleanup. + (org-entry-get, org-entry-get-with-inheritance): Get property + before the first headline. + + * org-mobile.el (org-mobile-create-index-file): Use `files-alist'. + + * org.el (org-make-link): Delete. + (org-store-link, org-insert-link) + (org-file-complete-link): Don't use `org-make-link'. + + * org-wl.el (org-wl-store-link-folder) + (org-wl-store-link-message): Ditto. + + * org-vm.el (org-vm-store-link): Ditto. + + * org-rmail.el (org-rmail-store-link): Ditto. + + * org-mhe.el (org-mhe-store-link): Ditto. + + * org-mew.el (org-mew-store-link): Ditto. + + * org-irc.el (org-irc-erc-store-link): Ditto. + + * org-info.el (org-info-store-link): Ditto. + + * org-id.el (org-id-store-link): Ditto. + + * org-gnus.el (org-gnus-group-link, org-gnus-article-link): Ditto. + + * org-eshell.el (org-eshell-store-link): Ditto. + + * org-bbdb.el (org-bbdb-store-link): Ditto. + + * org.el (org-url-hexify-p): New option. When non-nil (the + default), hexify URLs when creating a link. + + * org.el (org-insert-link): Make sure point is at the beginning of + the buffer. + + * org.el (clean-buffer-list-kill-buffer-names): Declare. + (org-open-at-point): Allow opening multiple shell links by + creating a new output buffer for each shell process. The new + buffer is added to `clean-buffer-list-kill-buffer-names'. + + * org-mobile.el (org-mobile-create-index-file): Use + `org-global-tags-completion-table' instead of + `org-tag-alist-for-agenda' to get the tags for the index file. + + * org.el (org-global-tags-completion-table): Fix typo in + docstring. + + * org.el (org-link-to-org-use-id): Use `org-capture' instead of + `org-remember' in the docstring. + (org-link-fontify-links-to-this-file): New function to fontify + links to the current buffer in `org-stored-links'. + (org-store-link): Small code simplification. + (org-link-prettify): Enclose literal links into <...> instead of + [[...]]. + (org-insert-link): Use `org-link-fontify-links-to-this-file'. + Also allow completion over links' descriptions, as well as links + destinations. When the user uses the description for completion, + don't prompt again for a description. + + * org-capture.el (org-capture-templates): Fix docstring by adding + Gnus to the list of mail clients. + + * org.el (org-log-repeat): Enhance docstring. + + * org.el (org-mode-map): Don't bind C- and C- to + `org-element-backward/forward' as these functions stops when there + is no element of the same type before/after point. It is useful + to navigate with `forward/backward-paragraph' with no stop in most + cases. + + * org-capture.el (org-capture-templates): New template %l to + insert the literal link pointing at the current buffer. + + * org.el (org-todo-keywords): Ditto. + + * org.el (org-fill-paragraph): Falls back on + `message-fill-paragraph' if required in `message-mode'. + + * org-pcomplete.el (pcomplete/org-mode/file-option/x): New macro. + (pcomplete/org-mode/file-option/options) + (pcomplete/org-mode/file-option/title) + (pcomplete/org-mode/file-option/author) + (pcomplete/org-mode/file-option/email) + (pcomplete/org-mode/file-option/date): Use the new macro to offer + completion over default values for #+OPTIONS, #+TITLE, #+AUTHOR, + #+EMAIL and #+DATE. + + * org-agenda.el (org-agenda-write): Fix bug when writing agenda to + an external file while `org-agenda-sticky' is non-nil. + + * org.el (org-speed-commands-default): New speedy command to + quickly add the :APPT_WARNTIME: property. + + * org-agenda.el (org-agenda-to-appt): Use the :APPT_WARNTIME: + property to override `appt-message-warning-time' when adding an + appointment from an entry. + + * org.el (org-version): Improve docstring. + (org-self-insert-cluster-for-undo): The default value should be + nil for Emacs >=24.1. See bug#11774. + + * org.el (org-fontify-meta-lines-and-blocks-1): Fix previous + commit. + + * org.el (org-options-keywords): New constant. + (org-additional-option-like-keywords): Remove duplicates with + keywords in the new constant. + (org-additional-option-like-keywords-for-flyspell): Use the new + constant. + (org-mode-flyspell-verify): Exclude keywords from the new + constant. + + * org-pcomplete.el (pcomplete/org-mode/file-option): Use + `org-options-keywords'. + + * org.el (org-toggle-heading): Bugfix: use + `org-element-mark-element' instead of `org-mark-list'. + + * org-list.el (org-mark-list): Delete. + + * org.el: Update a few keybindings. + + * org-element.el (org-element-down): Throw an error when the + element has no content. + + * org-table.el (orgtbl-radio-table-templates): Add a template for + org-mode. + (orgtbl-to-orgtbl): Complete and align the table created with + orgtbl-to-orgtbl, in case the user use the function for radio + tables. + (orgtbl-to-table.el): New function to export a table to another + one using the table.el format. + (orgtbl-to-unicode): New function to export a table using unicode + characters. + + * org-exp.el (org-export-language-setup): Use "Sommaire" for the + french translation of "Table of contents", to avoid a possible bug + when exporting to ODT. + + * org.el (org-additional-option-like-keywords): Add keywords. + (org-additional-option-like-keywords-for-flyspell): New constant + to use with flyspell. + (org-mode-flyspell-verify): Use the dedicated constant and don't + check `org-startup-options'. + + * org-agenda.el (org-batch-store-agenda-views): Use the sticky + agenda buffer name, if required. + (org-agenda-write): New parameter `agenda-bufname' to allow + setting the agenda buffer name. + + * org.el (org-mode-map): Add keybindings for + `org-element-forward', `org-element-backward', `org-element-up' + and `org-element-down'. + + * org.el (org-auto-fill-function): Don't call `do-auto-fill' + within (org-let org-fb-vars ...) as `do-auto-fill' should do the + right thing whether orgstruct++-mode is turned on or off. + + * org.el (org-sparse-tree-default-date-type): New option. + (org-ts-type): New variable. + (org-sparse-tree): New argument `type'. Use the new option + `org-sparse-tree-default-date-type' as the default value for + `type'. Fix docstring. + (org-re-timestamp): New function. + (org-check-before-date, org-check-after-date) + (org-check-dates-range): Use `org-ts-type' and `org-re-timestamp' + to tell compute the date regexp. + + * org.el (orgstruct++-mode, org-get-local-variables): Also set + `normal-auto-fill-function' when turning on/off orgstruct++-mode. + + * org-agenda.el (org-agenda-start-with-log-mode): Add relevant + customization types. + + * org-faces.el (org-document-title): Use the normal height. + + * org-clock.el (org-x11idle-exists-p): New variable. + (org-user-idle-seconds): Use it. + + * org.el (org-mode-map): Rebind `org-insert-all-links' to `C-c + C-M-l'. + + * org.el (org-insert-all-links): New command. + (org-insert-link): `org-keep-stored-link-after-insertion' is now + checked when the link to insert has been defined, regardless on + how it has been defined. Also don't read the description + interactively when the `default-description' parameter was given. + (org-mode-map): Bind `org-insert-all-links' to `C-c C-L'. + + * org.el (org-inc-effort): New command to increment the effort + property. + (org-set-effort): Use it. + (org-mode-map): Bind it to `C-c C-x E'. + (org-speed-commands-default): Use `E' as a speed command for it. + + * org.el (org-re-property-keyword): New function. + (org-entry-put): Use it to fix a bug with respect to setting the + value of a property when a property line with no value already + exists. + + * org.el (org-timestamp-change): Adjust clock in other org files + correctly. + + * org-clock.el (org-user-idle-seconds): Simplify. + + * org.el (org-mode-map): Bind `org-resolve-clocks' to `C-c C-x + C-z'. + + * org.el (org-mode-map): Add keybindings to + `org-element-transpose' and `org-narrow-to-element'. + (org-metaup): Fall back on `org-element-drag-backward'. + (org-metadown): Fall back on `org-element-drag-forward'. Also + move chunks of declarations and require statements to get rid of + compiler warnings. + + * org-exp-blocks.el (org): Don't require org. Add declarations. + + * org-clock.el (org): Don't require org. + + * ob-exp.el (org-list-forbidden-blocks): Add declarations. + + * org.el (org-timestamp-change): Don't use the `position'. + + * org.el (org-clock-history, org-clock-adjust-closest): New + variables. + (org-timestamp-change): Maybe adjust the next or previous clock in + `org-clock-history'. + (org-shiftmetaup, org-shiftmetadown): On clock logs, update the + timestamp at point and adjust the next or previous clock in + `org-clock-history', when possible. + + * org-clock.el (org-clock-in): Set the marker for + `org-clock-history' at a safer position. + + * org-timer.el (org-timer-pause-or-continue, org-timer-stop): + Autoload. + + * org-mobile.el (org-mobile-post-pull-hook): Fix docstring. + + * org.el (org-indent-line): Fix indentation of a property line + starting at the beginning of a line. + + * org-odt.el (org-odt-cleanup-xml-buffers): Use the new alias. + + * org-compat.el: Alias `org-condition-case-unless-debug' to + `condition-case-unless-debug' or `condition-case-no-debug'. + + * org.el (org-todo-keywords): Ditto. + + * org.el (org-use-fast-todo-selection): Reformat docstring. + + * org.el (org-flag-drawer): Add a docstring. + (org-mode-map): Bind ̀org-clock-cancel' to "C-cC-xC-q" and + `org-clock-in-last' to "C-cC-xC-x". This fixes a bug in the + previous keybinding for `org-clock-in-last', which would override + the one for `org-clock-in'. + + * org-clock.el (org-clock-in-last): Prevent errors when there is + no clocking history. + (org-clock-cancel): Fix bug when checking against a clock log in a + folded drawer. + + * org.el (org-link-expand-abbrev): Implement "%(my-function)" as a + new specifier. Update the docstring. + + * org.el (org-startup-options): Fix docstring formatting. + + * org.el (org-use-sub-superscripts): Fix typo in docstring. + + * org.el (org-refile): Fix bug: prevent looping when calling + `org-set-tags' internally. + + * org.el (org-mode-map): Add `C-c C-x C-I' as a keybinding for + `org-clock-in-last'. + + * org-clock.el (org-clock-continuously): New option. + (org-clock-in): Three universal prefix arguments set + `org-clock-continuously' to `t' temporarily. + (org-clock-in-last): Fix call to `org-clock-select-task' and + support continuous clocking. + (org-clock-out-time): New variable. + (org-clock-out): Set `org-clock-out-time' when clocking out. + Small docstring rewriting. + (org-clock-remove-empty-clock-drawer): Fix "invalid search bound" + bug when trying to delete empty logbook drawer. + (org-clock-cancel): If the clock log is gone, send a warning + instead of deleting the region that is supposed to contain it. + + * org.el (org-move-line-down, org-move-line-up): Remove. + (org-metaup, org-metadown): When the region is active, move it + up/down by one line, with no regard to the context. + + * org-odt.el (org-odt-cleanup-xml-buffers): Use the new alias. + + * org-compat.el: Alias `org-condition-case-unless-debug' to + `condition-case-unless-debug' or `condition-case-no-debug'. + + * org-pcomplete.el (org-thing-at-point): Ignore trailing + whitespaces while looking-back at properties. + + * org.el (org-mode): Set `indent-region-function'. + (org-indent-region): New function. + (org-fill-paragraph): When in a src block, use `indent-region' to + indent the whole source code instead of falling back on + `fill-paragraph', as this function messes up the code. + + * org-src.el (org-edit-src-code): Fix docstring formatting. + + * ob.el (org-babel-do-key-sequence-in-edit-buffer): Ditto. + + * org.el (org-mode, org-add-log-setup) + (org-get-property-block, org-entry-put) + (org-property-next-allowed-value, org-return) + (org-indent-line): Rename `org-indent-line-function' to + `org-indent-line'. + + * org-timer.el (org-timer-item): Ditto. + + * org-table.el (org-table-store-formulas): Ditto. + + * org-clock.el (org-clock-in, org-clock-find-position): Ditto. + + * org-src.el (org-src-font-lock-fontify-block) + (org-src-strip-leading-and-trailing-blank-lines) + (org-src-ask-before-returning-to-edit-buffer) + (org-edit-src-code, org-edit-src-continue) + (org-edit-fixed-width-region) + (org-src-do-key-sequence-at-code-block) + (org-src-font-lock-fontify-block, org-src-fontify-buffer): Fix + typos in docstrings. + + * org-docbook.el (org-export-docbook-emphasis-alist): Fix typo: + use "format string" instead of "formatting string". + + * org-latex.el (org-export-latex-emphasis-alist) + (org-export-latex-title-command, org-export-latex-tables): Ditto. + + * org-html.el (org-export-html-postamble): Ditto. + + * org-latex.el (org-export-latex-hyperref-options-format): New + option. + (org-export-latex-make-header): Use it. + + * ob.el (org-babel-confirm-evaluate): Prevent errors when + `org-current-export-file' is void. + + * org-table.el (org-table-export): Use the file name extension to + suggest the right conversion format. Also amend the docstring. + + * org.el (org-speed-commands-default): Two new speed commands. + Use `:' for `org-columns' and ̀#' for `org-toggle-comment'. + + * org.el (org-time-stamp): With two universal arguments, insert an + active timestamp with the current time without prompting the user. + + * org-clock.el (org-clock-in-last): New command. + + * org-clock.el (org-clock-in): Fix typo in docstring. + + * org-mobile.el (org-mobile-edit): Fix reference to a free + variable. + + * org.el (org-doi-server-url): Update :group. + + * ob-lob.el (org-babel-lob-execute): Fix reference to non-existent + variable. + + * org.el (org-doi-server-url): New option. + (org-open-at-point): Use it. + + * org.el (org-at-comment-p): New function. + (org-toggle-heading): Use `org-at-comment-p' to skip comments. + + * org-html.el (org-export-as-html): Add links to the Org mode and + GNU Emacs websites When :html-postamble is set to 't. + + * org-export.el (org-export-creator-string): Add links to the Org + mode and GNU Emacs websites. + + * org-special-blocks.el + (org-special-blocks-convert-html-special-cookies): Prevent errors + by first checking `org-line' is not nil. + + * org-clock.el (org-clock-string-limit) + (org-clock-modeline-total, org-clock-task-overrun-text) + (org-clock-mode-line-entry): Doc fix, "modeline" -> "mode line". + + * org.el (org-at-timestamp-p): Set ̀org-ts-what' to 'after when the + point is right after the timestamp. `org-at-timestamp-p' still + returns `t' in this case, as this is more practical. + (org-return): Check against ̀org-ts-what' to verify that point is + really within the timestamp (if any). + + * org.el (org-return): Follow time-stamp links when point is an a + time-stamp. + + * org-capture.el (org-capture-bookmark): New option. + (org-capture-finalize): Use it. + + * org-publish.el (org-publish-cache-file-needs-publishing): Make + the column mandatory after #+include:. + + * org-exp.el (org-export-handle-include-files): Ditto. + + * org-bibtex.el (org-bibtex-entries): Rename from + (org-bibtex-read, org-bibtex-write): Use the new name. + + * org-exp.el (org-export-handle-include-files): Allow to use + #+include with no column. + + * org-publish.el (org-publish-cache-file-needs-publishing): Make + quotes mandatory around the file name and allow spaces in it. + + * org-html.el (org-export-as-html): Add link to Org's and Emacs's + websites. + + * org-latex.el + (org-export-latex-link-with-unknown-path-format): New option. + (org-export-latex-links): Use it. + + * org-agenda.el (org-agenda-get-timestamps): Remove any active + timestamp from the headline text, not only those for the current + date. + + * org.el (org-set-tags): Allow setting tags for headlines in the + region when `org-loop-over-headlines-in-active-region' is non-nil. + + * org.el (org-allow-promoting-top-level-subtree): New option to + allow promoting a top-level subtree. + (org-called-with-limited-levels): New variable, dynamically bound + within the `org-with-limited-levels' macro. + (org-promote): Use the new option to allow promoting a top-level + subtree. + + * org-macs.el (org-with-limited-levels): Let-bind + `org-called-interactively-p' to t. + + * org.el (org-create-formula-image-with-dvipng) + (org-create-formula-image-with-imagemagick): Make sure a file + exists before trying to delete it. + + * org.el (org-scan-tags): Correctly match TODO keywords. + + * org-agenda.el (org-agenda-bulk-action): Fix bug: use + `org-agenda-bulk-unmark-all'. + + * org.el (orgstruct++-mode): Fix docstring. + (org-fill-paragraph): Use the 'justify parameter when falling back + on `fill-paragraph'. + + * org.el (org-indent-line-function): Use `org-let' instead of + `orgstruct++-ignore-org-filling'. + (org-fill-paragraph, org-auto-fill-function): Ditto. + + * org-macs.el (orgstruct++-ignore-org-filling): Delete. + + * org-table.el (org-table-time-string-to-seconds): Return the + empty string if provided. + (org-table-eval-formula): When assigning a duration string, handle + it correctly -- i.e. don't make any computation on it, except the + one to insert it using the correct duration format. + + * org.el (org-indent-line-function): Fix bug. + + * org-clock.el (org-frame-title-format-backup): New variable to + store the value of `frame-title-format' before `org-clock' might + replace it by `org-clock-frame-title-format'. + (org-clock-frame-title-format): New option. + (org-frame-title-string): Delete. + (org-clock-update-mode-line): Minor code reformatting. + (org-clock-in, org-clock-out, org-clock-cancel): Use + `org-clock-frame-title-format'. + + * org-clock.el (org-clock-get-clock-string): Add a space. + + * org-list.el (org-mark-list): Return an error when there is no + list at point. + + * org.el (org-toggle-heading): Allow `C-u C-c *' to mark the list + at point before converting items to headings. With a simple + universal-argument, set `current-prefix-arg' to 1, otherwise keep + the numeric value. + + * org-agenda.el (org-agenda-view-mode-dispatch): Make the message + more readable. + + * org-agenda.el (org-agenda-mode-map): New keybinding ̀*' to mark + all entries for bulk action. + (org-agenda-menu): New menu item for marking all entries. + (org-agenda-bulk-mark-all): New function to mark all entries. + (org-agenda-bulk-mark-regexp): Minor docstring fix. + (org-agenda-bulk-unmark): With a prefix argument, unmark all. + Also send a better message. + (org-agenda-bulk-remove-all-marks): Rename to + `org-agenda-bulk-unmark-all'. Check against + `org-agenda-bulk-marked-entries' before trying to unmark entries. + Minor docstring fix. + (org-agenda-bulk-unmark-all): Renamed from + ̀org-agenda-bulk-remove-all-marks'. + + * org-agenda.el (org-agenda-bulk-mark-char): New option. + (org-agenda-bulk-mark): Use the new option. + + * org.el (org-src-prevent-auto-filling): New option to prevent + auto-filling in src blocks. This defaults to nil to avoid people + being surprised that no auto-fill occurs in Org buffers where they + use `auto-fill-mode'. + (org-auto-fill-function): Use the new option. + + * org.el (org-properties-postprocess-alist): Better customization + type. + (org-set-property): Fix the check against + `org-properties-postprocess-alist'. + + * org-macs.el (orgstruct++-ignore-org-filling): Set + `def-edebug-spec' correctly. + + * org-colview.el (org-columns-string-to-number): When computing + the values for the colview, match durations and convert them to + HH:MM values. + + * org.el (org-duration-string-to-minutes): Match non-round + numbers. Add a new optional parameter to allow returning the + output as a string. + + * org.el (org-auto-fill-fallback-function) + (org-indent-line-fallback-function) + (org-fill-paragraph-fallback-function) + (org-auto-fill-fallback-function) + (org-indent-line-fallback-function) + (org-fill-paragraph-fallback-function): Remove. + (org-fb-vars): New buffer-local variable. + (orgstruct++-mode): Use the fallback variable `org-fb-vars' to + store, use and restore variables if needed. + (org-fill-paragraph): Ignore `orgstruct++-mode' filling variables + when needed. + (org-auto-fill-function, org-indent-line-function): Ditto. + + * org-macs.el (orgstruct++-ignore-org-filling): New macro. + + * org-exp-block.el: Use `org-find-library-name' instead of + `find-library-name'. + + * org-compat.el (org-find-library-name): Convert into a macro to + avoid compilation of a function from XEmacs in Emacs and vice + versa. + + * org-table.el (org-table-store-formulas): Fix typo. + (org-table-maybe-eval-formula): Fix the regexp to only match + formulas, which never end with the `=' character. If the field + only contain this character, don't eval either. + + * org.el (org-set-property): Perform the correct check against + `org-properties-postprocess-alist'. + + * org-bbdb.el (org-bbdb-anniversary-format-alist): Update the + customization type. + (name): Suppress (defvar 'name) as name is not eval'ed when + setting `org-bbdb-anniversary-format-alist'. + + * org.el (org-version): When called non-interactively, insert the + short version string, otherwise send a message with the complete + version string. + + * org-odt.el (org-odt-update-meta-file): Use (org-version) and + delegate checking whether `org-version' is known as a variable + there. + + * org-html.el (org-export-as-html): Use (org-version). + + * org-docbook.el (org-export-as-docbook): Ditto. + + * org-latex.el (org-export-latex-make-header): Ditto. + + * org-clock.el (org-clocktable-write-default): Temporarily disable + `delete-active-region' so that we don't accidently delete an + active region when exporting a subtree/region. + + * org-clock.el (org-program-exists): Remove. + (org-show-notification, org-clock-play-sound): Use + `executable-find' instead of `org-program-exists'. + + * org-agenda.el (org-diary): Prevent failure from + `org-compile-prefix-format' when there is no agenda buffer. + + * org-agenda.el (org-agenda-mode): Replace obsolete variable + `buffer-substring-filters'. + + * org-indent.el (org-indent-mode): Ditto. + + * org-compat.el (org-find-library-name): Silent the byte-compiler + about a warning related to XEmacs support. + + * org-special-blocks.el + (org-special-blocks-convert-html-special-cookies): Use `org-line' + instead of `line'. + + * org-html.el (org-html-handle-links, org-export-as-html) + (org-format-org-table-html, org-format-table-table-html) + (org-html-export-list-line): Use `org-line' instead of `line' as + the free variable name. + + * org-latex.el (org-export-latex-tables): Let-bind `hfmt'. + + * org-faces.el (org-list-dt): New face. + + * org.el (org-set-font-lock-defaults): Use `org-list-dt' as the + face for definition terms in definition lists. + + * org.el (org-fill-paragraph): Pass the `justify' argument to + `org-fill-paragraph-fallback-function'. + + * org.el (org-eval-in-calendar): Fix docstring to mention the + KEEPDATE parameter. + + * org.el (org-refresh-category-properties): Let-bind + `inhibit-read-only' to t. + + * org.el (org-auto-fill-fallback-function) + (org-indent-line-fallback-function) + (org-fill-paragraph-fallback-function): New variables to store + some fall-back functions when turning `orgstruct++-mode' on. + (orgstruct++-mode): Set the new variables. + (org-indent-line-function, org-fill-paragraph) + (org-auto-fill-function): Use them. + + * org.el (org-read-date): Bugfix: call `org-eval-in-calendar' with + the 'keepdate parameter set to t when setting the cursor type. + + * org-agenda.el (org-agenda-persistent-marks): New option to keep + marks after a bulk action. The option defaults to nil. + (org-agenda-bulk-action): Use the new option. + + * org-capture.el (org-capture-fill-template): Use %\n instead of + %n as a template element to be replaced with the nth prompted + string. + (org-capture-templates): Update docstring. + + * org.el (org-goto): Fix docstring and document what C-u does. + + * org-publish.el (org-publish-cache-file-needs-publishing): Use + (case-fold-search t) when looking for #+INCLUDE:. + + * org.el: Use (case-fold-search t). + (org-edit-special, org-ctrl-c-ctrl-c): Ditto. + + * org-table.el: + (org-table-store-formulas, org-table-get-stored-formulas) + (org-table-fix-formulas, org-table-edit-formulas) + (org-old-auto-fill-inhibit-regexp, orgtbl-ctrl-c-ctrl-c) + (orgtbl-toggle-comment, org-table-get-remote-range): Ditto. + + * org-footnote.el: + (org-footnote-goto-local-insertion-point): Ditto. + + * org-exp.el: Ditto. + + * org-colview.el: + (org-dblock-write:columnview, org-dblock-write:columnview): Ditto. + + * org-clock.el (org-clocktable-write-default): Ditto. + + * org-capture.el (org-capture-place-table-line): Ditto. + + * ob.el (org-babel-data-names, org-babel-goto-named-src-block) + (org-babel-src-block-names) + (org-babel-where-is-src-block-result, org-babel-result-end) + (org-babel-where-is-src-block-head) + (org-babel-find-named-result, org-babel-result-names): Ditto. + + * org-table.el (orgtbl-send-table): Escape special characters. + Introduce a new parameter :no-escape to prevent escaping. + + * org-agenda.el (org-toggle-sticky-agenda): Only shout a message + when called interactively. + (org-agenda-get-restriction-and-command): Call + `org-toggle-sticky-agenda' interactively. + + * org-agenda.el (org-agenda-top-category-filter): New variable for + storing the current top-category filter. + (org-agenda-redo): Apply a top-category filter, if any. + (org-agenda-filter-by-top-category) + (org-agenda-filter-top-category-apply): Set + `org-agenda-top-category-filter' to the right value. + + * org-clock.el (org-clock-out, org-clock-cancel) + (org-clock-in): Don't modify `frame-title-format' if it is a + string. + + * org-latex.el (org-export-latex-special-chars): Fix bug when + escaping special characters in a table. + + * org.el (org-read-date): Set cursor-type to nil in the calendar. + + * org-faces.el (org-date-selected): Use inverse video. Don't + explicitely set bold to nil as it causes `customize-face' to show + the weight property and thus encourage the user to change it. + Warn in the docstring that using bold might cause problems when + displaying the calendar. + + * org-id.el (org-id-update-id-locations): New parameter to silent + `org-id-find'. + (org-id-find): Use the new parameter. + + * org.el (org-show-hierarchy-above, org-cycle) + (org-global-cycle, org-files-list, org-store-link) + (org-link-search, org-open-file, org-display-outline-path) + (org-refile-get-location, org-update-all-dblocks) + (org-change-tag-in-region, org-entry-properties) + (org-save-all-org-buffers, org-revert-all-org-buffers) + (org-buffer-list, org-cdlatex-mode) + (org-install-agenda-files-menu, org-end-of-subtree) + (org-speedbar-set-agenda-restriction): Use (derived-mode-p + 'org-mode) instead of (eq major-mode 'org-mode). + + * org-timer.el (org-timer-set-timer): Ditto. + + * org-table.el (orgtbl-mode, org-table-align, orgtbl-mode): Ditto. + + * org-src.el (org-edit-src-exit, org-edit-src-code) + (org-edit-fixed-width-region, org-edit-src-exit): Ditto. + + * org-remember.el (org-remember-handler): Ditto. + + * org-mouse.el (dnd-open-file, org-mouse-insert-item): Ditto. + + * org-macs.el (org-get-limited-outline-regexp): Ditto. + + * org-lparse.el (org-replace-region-by): Ditto. + + * org-latex.el (org-latex-to-pdf-process) + (org-replace-region-by-latex): Ditto. + + * org-indent.el (org-indent-indent-buffer): Ditto. + + * org-id.el (org-id-store-link, org-id-update-id-locations) + (org-id-store-link): Ditto. + + * org-html.el (org-export-html-preprocess) + (org-replace-region-by-html): Ditto. + + * org-footnote.el (org-footnote-normalize) + (org-footnote-goto-definition) + (org-footnote-create-definition, org-footnote-normalize): Ditto. + + * org-docbook.el (org-replace-region-by-docbook): Ditto. + + * org-ctags.el (find-tag): Ditto. + + * org-colview.el (org-columns-redo) + (org-columns-display-here, org-columns-edit-value) + (org-columns-redo): Ditto. + + * org-capture.el (org-capture-insert-template-here) + (org-capture, org-capture-finalize) + (org-capture-set-target-location) + (org-capture-insert-template-here): Ditto. + + * org-ascii.el (org-replace-region-by-ascii): Ditto. + + * org-archive.el (org-archive-subtree): Ditto. + + * org-agenda.el (org-agenda) + (org-agenda-get-restriction-and-command) + (org-agenda-get-some-entry-text, org-search-view) + (org-tags-view, org-agenda-get-day-entries) + (org-agenda-format-item, org-agenda-goto, org-agenda-kill) + (org-agenda-archive-with, org-agenda-switch-to): Ditto. + + * org.el (org-repeat-re) + (org-clone-subtree-with-time-shift, org-auto-repeat-maybe) + (org-deadline, org-schedule, org-matcher-time) + (org-time-stamp, org-read-date, org-read-date-get-relative) + (org-display-custom-time, org-get-wdays) + (org-time-string-to-absolute, org-closest-date) + (org-timestamp-change): Allow to set hourly repeat cookie. Send + an error when an hourly repeat cookie is set and no hour is + specified in the timestamp. + + * org-icalendar.el (org-print-icalendar-entries): Handle hourly + repeat cookies. + + * org-clock.el (org-program-exists): Fix docstring. + + * org-clock.el (org-clock-file-time-cell-format): New option. + (org-clocktable-write-default): Use it. + + * org-faces.el (org-date-selected): New face. + + * org.el (org-date-ovl): Use `org-date-selected'. + + * org.el (org-mode): Don't use `buffer-face-mode' by default. + + * org-agenda.el (org-agenda-mode-map): Bind `^' to + `org-agenda-filter-by-top-category'. + + * org-ascii.el (org-export-ascii-underline): Change the default + underlining characters for headlines of level 1 and 2. Also + introduce \. as the underline character for headlines of level 5. + + * org-table.el (org-table-recalculate-buffer-tables) + (org-table-iterate-buffer-tables): Add autoload cookie. + + * org.el (org-table-map-tables): Exclude tables in src and example + blocks. + + * org.el (org-fill-paragraph): Leave scheduled/deadline lines + untouched when filling an adjacent paragraph. + + * org-html.el (org-export-html-preamble-format) + (org-export-html-postamble-format): Improve the docstring. + + * org.el (org-todo): Fix regression: rename `state' to + `org-state'. + + * org-clock.el (org-show-notification): Use `fboundp' instead of + `featurep' and the additional `require'. + + * org-clock.el (org-clock-in-prepare-hook): New option to format + the total time cells. + (org-clocktable-write-default): Use the new option. + + * org.el (org-open-at-point): Allow to open the agenda from an + active or inactive timestamp in a headline. + + * org-html.el (org-export-html-date-format-string): Make a + defcustom. + + * org-latex.el (org-export-as-latex): Fix TeX-master declaration. + +2012-09-30 Carsten Dominik + + * org-table.el (org-table-expand-lhs-ranges): Allow hline + references to be expanded correctly in LHS of formulas. + + * org-beamer.el (org-beamer-inherited-properties): New option. + (org-beamer-after-initial-vars): Use new option to look for + inherited properties. + + * org.el (org-ts-regexp0): Allow time stamps without name of day. + + * org-agenda.el (org-toggle-sticky-agenda): + (org-agenda-sticky): Improve :set property. + + * org-agenda.el (org-agenda-local-vars): Clean up the variable + list. + (org-agenda-get-restriction-and-command): Add a key for toggling + sticky agenda views. + + * org-agenda.el (org-agenda-local-vars): Final decisions about + global/local + + * org-agenda.el (org-agenda-force-single-file): Variable removed. + (org-prepare-agenda-window): Store pre-agenda window config + locally. + (org-timeline): Introduce a scoped version of + `org-agenda-show-log'. + (org-agenda-list): Introduce a scoped version of + `org-agenda-show-log'. + (org-agenda-get-progress): Use the scoped version of + `org-agenda-show-log'. + (org-agenda-local-vars): Write the analysis result as a comment - + to be cleaned up in the next iteration. + + * org-agenda.el (org-toggle-sticky-agenda): Kill all agenda + buffers when toggling sticky-agendas. + (org-agenda-get-restriction-and-command): Add `C-c a C-k' as a key + to explicitly kill all agenda buffers. + (org-agenda-run-series): Remove any old agenda markers in the + buffer that is going to take the new block agenda. + (org-prepare-agenda): Reset markers before erasing the buffer anc + running `org-agenda-mode', because after that hte local variable + `org-agenda-markers' will have gone away. + (org-agenda-Quit): + (org-finalize-agenda): Install the marker resetter into the + `kill-buffer-hook'. + (org-agenda-save-markers-for-cut-and-paste): Look for markers in + all agenda buffers. + (org-agenda-kill-all-agenda-buffers): New function. + +2012-09-30 Chris Gray + + * org-html.el (org-export-as-html): Remove the check for body-only + in the code for generating tables of contents. + +2012-09-30 Christoph Dittmann (tiny change) + + * org-beamer.el (org-beamer-auto-fragile-frames): Make + [fragile] work with overlay specifications. + +2012-09-30 Christophe Junke (tiny change) + + * org-agenda.el (org-agenda-list): Ensures that the list returned + by `org-agenda-add-time-grid-maybe' is appended to ̀rtnall' before + checking if the latter is emtpy. + +2012-09-30 Christophe Junke (tiny change) + + * org-agenda.el (org-agenda-list): Ensure that the list returned + by `org-agenda-add-time-grid-maybe' is appended to `rtnall' before + checking if the latter is emtpy. + +2012-09-30 Christophe Rhodes (tiny change) + + * org-latex.el (org-export-latex-tables): Support setting the + :hfmt parameter from #+ATTR_LaTeX. + +2012-09-30 Daniel Dehennin (tiny change) + + * org-exp.el (org-export-handle-include-files) + (org-get-file-contents): Handle new parameter :addlevel. + +2012-09-30 Dave Abrahams (tiny change) + + * org.el (org-link-prettify): New function to prettify links while + displaying them with `org-insert-link'. + (org-insert-link): Use the new function. + +2012-09-30 David Maus + + * org-exp.el (org-export-language-setup): Use numeric character + entities for proper rendering of non-UTF8 documents. + + * org-exp.el (org-export-language-setup): Add japanese + translation. + +2012-09-30 Eric Schulte + + * ob-sh.el (org-babel-sh-evaluate): Don't could 0-length shebangs. + + * ob.el (org-babel-insert-result): Replace key sequence with + function call. Use a more informative flag to the local function. + (org-add-protective-commas): Declare a new external function. + + * org-src.el (org-add-protective-commas): This should be its own + function. + (org-edit-src-exit): Use the new function. + + * org-compat.el (org-labels): Remove. + + * org-bibtex.el (org-bibtex-headline): Don't use `org-labels'. + + * ob.el (org-babel-sha1-hash, org-babel-noweb-p): Ditto. + + * ob.el (org-babel-string-read): Don't automatically evaluate code + block results which look like elisp. + (org-babel-import-elisp-from-file): Raise a warning message when + the process of reading code block results raises an error. + + * ob-tangle.el (org-babel-with-temp-filebuffer): Don't execute + macro argument multiple times. + + * org.el (org-compat): Require org-compat before we first use one + of its functions (a macro actually). + + * ob-comint.el (org-babel-comint-with-output): Don't name the + filter function, but rather pass through the anonymous lambda + directly. + + * org.el (org-babel-load-languages): Common lisp should be + mentioned as a supported babel language. + + * org-clock.el (org-clock-special-range): "concat 'string" -> + "concat" + (org-clocktable-shift): "concat 'string" -> "concat" + + * org-bibtex.el (org-bibtex-headline): Replacing org-flet with + org-labels. + + * ob-calc.el (org-babel-execute:calc): Strip single quotes from + calc internal representations. + + * org-clock.el (org-clock-special-range): Replacing cl concatenate + with concat. + (org-clocktable-shift): Replacing cl concatenate with concat. + + * ob.el (org-babel-edit-distance): Remove use of map at runtime. + + * org-compat.el (org-flet): Compatibility function now that flet + has been removed from cl-macs. + (org-labels): Compatibility function now that labels has been + removed from cl-macs. + + * ob-R.el (org-compat): Require org-compat. + + * ob-comint.el: Require org-compat. + + * ob-exp.el (org-babel-exp-do-export): Switch to compatibility + function. + + * ob-gnuplot.el (org-babel-expand-body:gnuplot): Switch to + compatibility function. + + * ob-lob.el (org-babel-lob-get-info): Switch to compatibility + function. + (org-babel-lob-execute): Switch to compatibility function. + + * ob-python.el (org-babel-python-evaluate-session): Switch to + compatibility function. + + * ob-ref.el (org-babel-ref-index-list): Switch to compatibility + function. + + * ob-sh.el (org-babel-sh-var-to-string): Switch to compatibility + function. + + * ob-tangle.el (org-babel-load-file): Switch to compatibility + function. + (org-babel-tangle): Switch to compatibility function. + (org-babel-spec-to-string): Switch to compatibility function. + + * ob.el (org-babel-view-src-block-info): Switch to compatibility + function. + (org-babel-execute-src-block): Switch to compatibility function. + (org-babel-edit-distance): Switch to compatibility function. + (org-babel-switch-to-session-with-code): Switch to compatibility + function. + (org-babel-sha1-hash): Switch to compatibility function. + (org-babel-balanced-split): Switch to compatibility function. + (org-babel-join-splits-near-ch): Switch to compatibility function. + (org-babel-get-rownames): Switch to compatibility function. + (org-babel-format-result): Switch to compatibility function. + (org-babel-insert-result): Switch to compatibility function. + (org-babel-examplize-region): Switch to compatibility function. + (org-babel-merge-params): Switch to compatibility function. + (org-babel-noweb-p): Switch to compatibility function. + (org-babel-expand-noweb-references): Switch to compatibility + function. + + * org-bibtex.el (org-bibtex-headline): Switch to compatibility + function. + (org-bibtex-fleshout): Switch to compatibility function. + (org-bibtex-read): Switch to compatibility function. + (org-bibtex-write): Switch to compatibility function. + + * org-exp-blocks.el (org-export-blocks-preprocess): Switch to + compatibility function. + + * org-exp.el (org-export-format-source-code-or-example): Switch to + compatibility function. + + * org-macs.el (org-called-interactively-p): Indentation fix. + + * org-mouse.el (org-mouse-timestamp-today): Switch to + compatibility function. + (org-mouse-set-priority): Switch to compatibility function. + (org-mouse-popup-global-menu): Switch to compatibility function. + (org-mouse-context-menu): Switch to compatibility function. + + * org-plot.el (org-plot/gnuplot-to-grid-data): Switch to + compatibility function. + (org-plot/gnuplot-script): Switch to compatibility function. + + * org.el (org-entry-get): Switch to compatibility function. + (org-fill-paragraph): Switch to compatibility function. + (org-auto-fill-function): Switch to compatibility function. + + * ob-lob.el (org-babel-lob-execute): Only try to insert extant + hashes. + + * ob-R.el (org-babel-R-command): From a defvar to a defcustom. + + * ob.el (org-babel-set-current-result-hash): Change the hash of + the results for the current code block. + (org-babel-current-result-hash): Fix documentation. + + * ob-lob.el (org-babel-lob-execute): Don't re-execute the called + function if the current call line hash matches that in its + results. + + * ob-R.el (org-babel-R-assign-elisp): Can't assume every entry in + a table is a sequence. + + * ob-R.el (org-babel-R-assign-elisp): Clean up the code + implementing reads of irregular data into R. + + * ob.el (org-babel-header-arg-expand): In new buffers + (char-before) may return nil so use equal rather than =. + + * ob-R.el (org-babel-header-args:R): Adding values. + + * ob-clojure.el (org-babel-header-args:clojure): Adding values. + + * ob-lisp.el (org-babel-header-args:lisp): Adding values. + + * ob-sql.el (org-babel-header-args:sql): Adding values. + + * ob-sqlite.el (org-babel-header-args:sqlite): Adding values. + + * ob.el (org-babel-combine-header-arg-lists): Combine lists of + arguments and values. + (org-babel-insert-header-arg): Use new combined header argument + lists. + (org-babel-header-arg-expand): Add support for completing-read + insertion of header arguments after ":" + (org-babel-enter-header-arg-w-completion): Completing read + insertion of header arguments + (org-tab-first-hook): Adding header argument completion. + (org-babel-params-from-properties): Combining header argument + lists. + + * ob-exp.el (org-babel-exp-results): Ensure noweb expanded body is + used on export. + + * ob.el (org-babel-result-to-file): New optional description + argument. + (org-babel-insert-result): Moved description logic to another + function. + + * ob.el (org-babel-insert-result): Change name of filelinkdescr to + file-desc. + (org-babel-common-header-args-w-values): Change name of + filelinkdescr to file-desc. + + * ob-C.el (org-babel-C-execute): Add .exe to the end of compiled C + files on windows. + + * ob-exp.el (org-babel-exp-code): Escape all lines when exporting + Org-mode blocks. + + * ob.el (org-babel-parse-src-block-match): Make use of the new + language argument to org-babel-strip-protective-commas. + (org-babel-parse-inline-src-block-match): Make use of the new + language argument to org-babel-strip-protective-commas. + (org-babel-strip-protective-commas): Now accepts a language + argument. + +2012-09-30 Fabrice Niessen (tiny change) + + * org-agenda.el (org-agenda-write-buffer-name): Remove the test + for the presence of is required, if not present the variable will be ignored." +you can \"misuse\" it to also add other text to the header." :group 'org-agenda-export :group 'org-export-html :type 'string) @@ -228,9 +235,9 @@ you can \"misuse\" it to also add other text to the header. However, :type 'boolean) (defgroup org-agenda-custom-commands nil - "Options concerning agenda views in Org-mode." - :tag "Org Agenda Custom Commands" - :group 'org-agenda) + "Options concerning agenda views in Org-mode." + :tag "Org Agenda Custom Commands" + :group 'org-agenda) (defconst org-sorting-choice '(choice @@ -247,116 +254,118 @@ you can \"misuse\" it to also add other text to the header. However, ;; Keep custom values for `org-agenda-filter-preset' compatible with ;; the new variable `org-agenda-tag-filter-preset'. -(defvaralias 'org-agenda-filter-preset 'org-agenda-tag-filter-preset) +(if (fboundp 'defvaralias) + (defvaralias 'org-agenda-filter-preset 'org-agenda-tag-filter-preset) + (defvaralias 'org-agenda-filter 'org-agenda-tag-filter)) (defconst org-agenda-custom-commands-local-options - `(repeat :tag "Local settings for this command. Remember to quote values" + `(repeat :tag "Local settings for this command. Remember to quote values" (choice :tag "Setting" - (list :tag "Heading for this block" - (const org-agenda-overriding-header) - (string :tag "Headline")) - (list :tag "Files to be searched" - (const org-agenda-files) - (list - (const :format "" quote) - (repeat (file)))) - (list :tag "Sorting strategy" - (const org-agenda-sorting-strategy) - (list - (const :format "" quote) - (repeat - ,org-sorting-choice))) - (list :tag "Prefix format" - (const org-agenda-prefix-format :value " %-12:c%?-12t% s") - (string)) - (list :tag "Number of days in agenda" - (const org-agenda-span) - (choice (const :tag "Day" 'day) - (const :tag "Week" 'week) - (const :tag "Month" 'month) - (const :tag "Year" 'year) - (integer :tag "Custom"))) - (list :tag "Fixed starting date" - (const org-agenda-start-day) - (string :value "2007-11-01")) - (list :tag "Start on day of week" - (const org-agenda-start-on-weekday) - (choice :value 1 - (const :tag "Today" nil) - (integer :tag "Weekday No."))) - (list :tag "Include data from diary" - (const org-agenda-include-diary) - (boolean)) - (list :tag "Deadline Warning days" - (const org-deadline-warning-days) - (integer :value 1)) - (list :tag "Category filter preset" - (const org-agenda-category-filter-preset) - (list - (const :format "" quote) - (repeat - (string :tag "+category or -category")))) - (list :tag "Tags filter preset" - (const org-agenda-tag-filter-preset) - (list - (const :format "" quote) - (repeat - (string :tag "+tag or -tag")))) - (list :tag "Set daily/weekly entry types" - (const org-agenda-entry-types) - (list - (const :format "" quote) - (set :greedy t :value (:deadline :scheduled :timestamp :sexp) - (const :deadline) - (const :scheduled) - (const :timestamp) - (const :sexp)))) - (list :tag "Standard skipping condition" - :value (org-agenda-skip-function '(org-agenda-skip-entry-if)) - (const org-agenda-skip-function) - (list - (const :format "" quote) - (list - (choice - :tag "Skipping range" - (const :tag "Skip entry" org-agenda-skip-entry-if) - (const :tag "Skip subtree" org-agenda-skip-subtree-if)) - (repeat :inline t :tag "Conditions for skipping" - (choice - :tag "Condition type" - (list :tag "Regexp matches" :inline t (const :format "" 'regexp) (regexp)) - (list :tag "Regexp does not match" :inline t (const :format "" 'notregexp) (regexp)) - (list :tag "TODO state is" :inline t - (const 'todo) + (list :tag "Heading for this block" + (const org-agenda-overriding-header) + (string :tag "Headline")) + (list :tag "Files to be searched" + (const org-agenda-files) + (list + (const :format "" quote) + (repeat (file)))) + (list :tag "Sorting strategy" + (const org-agenda-sorting-strategy) + (list + (const :format "" quote) + (repeat + ,org-sorting-choice))) + (list :tag "Prefix format" + (const org-agenda-prefix-format :value " %-12:c%?-12t% s") + (string)) + (list :tag "Number of days in agenda" + (const org-agenda-span) + (choice (const :tag "Day" 'day) + (const :tag "Week" 'week) + (const :tag "Month" 'month) + (const :tag "Year" 'year) + (integer :tag "Custom"))) + (list :tag "Fixed starting date" + (const org-agenda-start-day) + (string :value "2007-11-01")) + (list :tag "Start on day of week" + (const org-agenda-start-on-weekday) + (choice :value 1 + (const :tag "Today" nil) + (integer :tag "Weekday No."))) + (list :tag "Include data from diary" + (const org-agenda-include-diary) + (boolean)) + (list :tag "Deadline Warning days" + (const org-deadline-warning-days) + (integer :value 1)) + (list :tag "Category filter preset" + (const org-agenda-category-filter-preset) + (list + (const :format "" quote) + (repeat + (string :tag "+category or -category")))) + (list :tag "Tags filter preset" + (const org-agenda-tag-filter-preset) + (list + (const :format "" quote) + (repeat + (string :tag "+tag or -tag")))) + (list :tag "Set daily/weekly entry types" + (const org-agenda-entry-types) + (list + (const :format "" quote) + (set :greedy t :value (:deadline :scheduled :timestamp :sexp) + (const :deadline) + (const :scheduled) + (const :timestamp) + (const :sexp)))) + (list :tag "Standard skipping condition" + :value (org-agenda-skip-function '(org-agenda-skip-entry-if)) + (const org-agenda-skip-function) + (list + (const :format "" quote) + (list + (choice + :tag "Skipping range" + (const :tag "Skip entry" org-agenda-skip-entry-if) + (const :tag "Skip subtree" org-agenda-skip-subtree-if)) + (repeat :inline t :tag "Conditions for skipping" (choice - (const :tag "any not-done state" 'todo) - (const :tag "any done state" 'done) - (const :tag "any state" 'any) - (list :tag "Keyword list" - (const :format "" quote) - (repeat (string :tag "Keyword"))))) - (list :tag "TODO state is not" :inline t - (const 'nottodo) - (choice - (const :tag "any not-done state" 'todo) - (const :tag "any done state" 'done) - (const :tag "any state" 'any) - (list :tag "Keyword list" - (const :format "" quote) - (repeat (string :tag "Keyword"))))) - (const :tag "scheduled" 'scheduled) - (const :tag "not scheduled" 'notscheduled) - (const :tag "deadline" 'deadline) - (const :tag "no deadline" 'notdeadline) - (const :tag "timestamp" 'timestamp) - (const :tag "no timestamp" 'nottimestamp)))))) - (list :tag "Non-standard skipping condition" - :value (org-agenda-skip-function) - (const org-agenda-skip-function) - (sexp :tag "Function or form (quoted!)")) - (list :tag "Any variable" - (variable :tag "Variable") - (sexp :tag "Value (sexp)")))) + :tag "Condition type" + (list :tag "Regexp matches" :inline t (const :format "" 'regexp) (regexp)) + (list :tag "Regexp does not match" :inline t (const :format "" 'notregexp) (regexp)) + (list :tag "TODO state is" :inline t + (const 'todo) + (choice + (const :tag "any not-done state" 'todo) + (const :tag "any done state" 'done) + (const :tag "any state" 'any) + (list :tag "Keyword list" + (const :format "" quote) + (repeat (string :tag "Keyword"))))) + (list :tag "TODO state is not" :inline t + (const 'nottodo) + (choice + (const :tag "any not-done state" 'todo) + (const :tag "any done state" 'done) + (const :tag "any state" 'any) + (list :tag "Keyword list" + (const :format "" quote) + (repeat (string :tag "Keyword"))))) + (const :tag "scheduled" 'scheduled) + (const :tag "not scheduled" 'notscheduled) + (const :tag "deadline" 'deadline) + (const :tag "no deadline" 'notdeadline) + (const :tag "timestamp" 'timestamp) + (const :tag "no timestamp" 'nottimestamp)))))) + (list :tag "Non-standard skipping condition" + :value (org-agenda-skip-function) + (const org-agenda-skip-function) + (sexp :tag "Function or form (quoted!)")) + (list :tag "Any variable" + (variable :tag "Variable") + (sexp :tag "Value (sexp)")))) "Selection of examples for agenda command settings. This will be spliced into the custom type of `org-agenda-custom-commands'.") @@ -434,69 +443,69 @@ should provide a description for the prefix, like :group 'org-agenda-custom-commands :type `(repeat (choice :value ("x" "Describe command here" tags "" nil) - (list :tag "Single command" - (string :tag "Access Key(s) ") - (option (string :tag "Description")) - (choice - (const :tag "Agenda" agenda) - (const :tag "TODO list" alltodo) - (const :tag "Search words" search) - (const :tag "Stuck projects" stuck) - (const :tag "Tags/Property match (all agenda files)" tags) - (const :tag "Tags/Property match of TODO entries (all agenda files)" tags-todo) - (const :tag "TODO keyword search (all agenda files)" todo) - (const :tag "Tags sparse tree (current buffer)" tags-tree) - (const :tag "TODO keyword tree (current buffer)" todo-tree) - (const :tag "Occur tree (current buffer)" occur-tree) - (sexp :tag "Other, user-defined function")) - (string :tag "Match (only for some commands)") - ,org-agenda-custom-commands-local-options - (option (repeat :tag "Export" (file :tag "Export to")))) - (list :tag "Command series, all agenda files" - (string :tag "Access Key(s)") - (string :tag "Description ") - (repeat :tag "Component" - (choice - (list :tag "Agenda" - (const :format "" agenda) - (const :tag "" :format "" "") - ,org-agenda-custom-commands-local-options) - (list :tag "TODO list (all keywords)" - (const :format "" alltodo) - (const :tag "" :format "" "") - ,org-agenda-custom-commands-local-options) - (list :tag "Search words" - (const :format "" search) - (string :tag "Match") - ,org-agenda-custom-commands-local-options) - (list :tag "Stuck projects" - (const :format "" stuck) - (const :tag "" :format "" "") - ,org-agenda-custom-commands-local-options) - (list :tag "Tags search" - (const :format "" tags) - (string :tag "Match") - ,org-agenda-custom-commands-local-options) - (list :tag "Tags search, TODO entries only" - (const :format "" tags-todo) - (string :tag "Match") - ,org-agenda-custom-commands-local-options) - (list :tag "TODO keyword search" - (const :format "" todo) - (string :tag "Match") - ,org-agenda-custom-commands-local-options) - (list :tag "Other, user-defined function" - (symbol :tag "function") - (string :tag "Match") - ,org-agenda-custom-commands-local-options))) - - (repeat :tag "Settings for entire command set" - (list (variable :tag "Any variable") - (sexp :tag "Value"))) - (option (repeat :tag "Export" (file :tag "Export to")))) - (cons :tag "Prefix key documentation" - (string :tag "Access Key(s)") - (string :tag "Description "))))) + (list :tag "Single command" + (string :tag "Access Key(s) ") + (option (string :tag "Description")) + (choice + (const :tag "Agenda" agenda) + (const :tag "TODO list" alltodo) + (const :tag "Search words" search) + (const :tag "Stuck projects" stuck) + (const :tag "Tags/Property match (all agenda files)" tags) + (const :tag "Tags/Property match of TODO entries (all agenda files)" tags-todo) + (const :tag "TODO keyword search (all agenda files)" todo) + (const :tag "Tags sparse tree (current buffer)" tags-tree) + (const :tag "TODO keyword tree (current buffer)" todo-tree) + (const :tag "Occur tree (current buffer)" occur-tree) + (sexp :tag "Other, user-defined function")) + (string :tag "Match (only for some commands)") + ,org-agenda-custom-commands-local-options + (option (repeat :tag "Export" (file :tag "Export to")))) + (list :tag "Command series, all agenda files" + (string :tag "Access Key(s)") + (string :tag "Description ") + (repeat :tag "Component" + (choice + (list :tag "Agenda" + (const :format "" agenda) + (const :tag "" :format "" "") + ,org-agenda-custom-commands-local-options) + (list :tag "TODO list (all keywords)" + (const :format "" alltodo) + (const :tag "" :format "" "") + ,org-agenda-custom-commands-local-options) + (list :tag "Search words" + (const :format "" search) + (string :tag "Match") + ,org-agenda-custom-commands-local-options) + (list :tag "Stuck projects" + (const :format "" stuck) + (const :tag "" :format "" "") + ,org-agenda-custom-commands-local-options) + (list :tag "Tags search" + (const :format "" tags) + (string :tag "Match") + ,org-agenda-custom-commands-local-options) + (list :tag "Tags search, TODO entries only" + (const :format "" tags-todo) + (string :tag "Match") + ,org-agenda-custom-commands-local-options) + (list :tag "TODO keyword search" + (const :format "" todo) + (string :tag "Match") + ,org-agenda-custom-commands-local-options) + (list :tag "Other, user-defined function" + (symbol :tag "function") + (string :tag "Match") + ,org-agenda-custom-commands-local-options))) + + (repeat :tag "Settings for entire command set" + (list (variable :tag "Any variable") + (sexp :tag "Value"))) + (option (repeat :tag "Export" (file :tag "Export to")))) + (cons :tag "Prefix key documentation" + (string :tag "Access Key(s)") + (string :tag "Description "))))) (defcustom org-agenda-query-register ?o "The register holding the current query string. @@ -550,9 +559,9 @@ this one will be used." (const :tag "equal" "="))) (defgroup org-agenda-skip nil - "Options concerning skipping parts of agenda files." - :tag "Org Agenda Skip" - :group 'org-agenda) + "Options concerning skipping parts of agenda files." + :tag "Org Agenda Skip" + :group 'org-agenda) (defcustom org-agenda-skip-function-global nil "Function to be called at each match during agenda construction. @@ -636,11 +645,11 @@ all Don't show any entries with a timestamp in the global todo list. The idea behind this is that by setting a timestamp, you have already \"taken care\" of this item. -This variable can also have an integer as a value. If positive (N), -todos with a timestamp N or more days in the future will be ignored. If +This variable can also have an integer as a value. If positive (N), +todos with a timestamp N or more days in the future will be ignored. If negative (-N), todos with a timestamp N or more days in the past will be -ignored. If 0, todos with a timestamp either today or in the future will -be ignored. For example, a value of -1 will exclude todos with a +ignored. If 0, todos with a timestamp either today or in the future will +be ignored. For example, a value of -1 will exclude todos with a timestamp in the past (yesterday or earlier), while a value of 7 will exclude todos with a timestamp a week or more in the future. @@ -674,7 +683,7 @@ all Don't show any scheduled entries in the global todo list. t Same as `all', for backward compatibility. -This variable can also have an integer as a value. See +This variable can also have an integer as a value. See `org-agenda-todo-ignore-timestamp' for more details. See also `org-agenda-todo-ignore-with-date'. @@ -715,7 +724,7 @@ all Ignore all TODO entries that do have a deadline. t Same as `near', for backward compatibility. -This variable can also have an integer as a value. See +This variable can also have an integer as a value. See `org-agenda-todo-ignore-timestamp' for more details. See also `org-agenda-todo-ignore-with-date'. @@ -774,6 +783,21 @@ but not scheduled today." (const :tag "Always" t) (const :tag "Not when scheduled today" not-today))) +(defcustom org-agenda-skip-timestamp-if-deadline-is-shown nil + "Non-nil means skip timestamp line if same entry shows because of deadline. +In the agenda of today, an entry can show up multiple times +because it has both a plain timestamp and has a nearby deadline. +When this variable is t, then only the deadline is shown and the +fact that the entry has a timestamp for or including today is not +shown. When this variable is nil, the entry will be shown +several times." + :group 'org-agenda-skip + :group 'org-agenda-daily/weekly + :version "24.1" + :type '(choice + (const :tag "Never" nil) + (const :tag "Always" t))) + (defcustom org-agenda-skip-deadline-if-done nil "Non-nil means don't show deadlines when the corresponding item is done. When nil, the deadline is still shown and should give you a happy feeling. @@ -799,7 +823,7 @@ because you will take care of it on the day when scheduled." :group 'org-agenda-daily/weekly :version "24.1" :type '(choice - (const :tag "Always show prewarning" nil) + (const :tag "Alwas show prewarning" nil) (const :tag "Remove prewarning if entry is scheduled" t) (integer :tag "Restart prewarning N days before deadline"))) @@ -860,12 +884,14 @@ N days, just insert a special line indicating the size of the gap." When nil, the matcher string is not shown, but is put into the help-echo property so than moving the mouse over the command shows it. Setting it to nil is good if matcher strings are very long and/or if -you want to use two-column display (see `org-agenda-menu-two-column')." +you want to use two-columns display (see `org-agenda-menu-two-columns')." :group 'org-agenda :version "24.1" :type 'boolean) -(defcustom org-agenda-menu-two-column nil +(define-obsolete-variable-alias 'org-agenda-menu-two-column 'org-agenda-menu-two-columns "24.3") + +(defcustom org-agenda-menu-two-columns nil "Non-nil means, use two columns to show custom commands in the dispatcher. If you use this, you probably want to set `org-agenda-menu-show-matcher' to nil." @@ -873,8 +899,14 @@ to nil." :version "24.1" :type 'boolean) -(defcustom org-finalize-agenda-hook nil - "Hook run just before displaying an agenda buffer." +(define-obsolete-variable-alias 'org-finalize-agenda-hook 'org-agenda-finalize-hook "24.3") +(defcustom org-agenda-finalize-hook nil + "Hook run just before displaying an agenda buffer. +The buffer is still writable when the hook is called. + +You can modify some of the buffer substrings but you should be +extra careful not to modify the text properties of the agenda +headlines as the agenda display heavily relies on them." :group 'org-agenda-startup :type 'hook) @@ -932,7 +964,8 @@ have been removed when this is called, as will any matches for regular expressions listed in `org-agenda-entry-text-exclude-regexps'.") (defvar org-agenda-include-inactive-timestamps nil - "Non-nil means include inactive time stamps in agenda and timeline.") + "Non-nil means include inactive time stamps in agenda and timeline. +Dynamically scoped.") (defgroup org-agenda-windows nil "Options concerning the windows used by the Agenda in Org Mode." @@ -975,11 +1008,11 @@ option will be ignored." :type 'boolean) (defcustom org-agenda-ndays nil - "Number of days to include in overview display. + "Number of days to include in overview display. Should be 1 or 7. Obsolete, see `org-agenda-span'." - :group 'org-agenda-daily/weekly - :type 'integer) + :group 'org-agenda-daily/weekly + :type 'integer) (make-obsolete-variable 'org-agenda-ndays 'org-agenda-span "24.1") @@ -1202,10 +1235,18 @@ agenda display." :type 'boolean) (defcustom org-agenda-start-with-log-mode nil - "The initial value of log-mode in a newly created agenda window." + "The initial value of log-mode in a newly created agenda window. +See `org-agenda-log-mode' and `org-agenda-log-mode-items' for further +explanations on the possible values." :group 'org-agenda-startup :group 'org-agenda-daily/weekly - :type 'boolean) + :type '(choice (const :tag "Don't show log items" nil) + (const :tag "Show only log items" 'only) + (const :tag "Show all possible log items" 'clockcheck) + (repeat :tag "Choose among possible values for `org-agenda-log-mode-items'" + (choice (const :tag "Show closed log items" 'closed) + (const :tag "Show clocked log items" 'clock) + (const :tag "Show all logged state changes" 'state))))) (defcustom org-agenda-start-with-clockreport-mode nil "The initial value of clockreport-mode in a newly created agenda window." @@ -1501,8 +1542,10 @@ Custom commands can set this variable in the options section." :group 'org-agenda-line-format) (defvar org-prefix-format-compiled nil - "The compiled version of the most recently used prefix format. -See the variable `org-agenda-prefix-format'.") + "The compiled prefix format and associated variables. +This is a list where first element is a list of variable bindings, and second +element is the compiled format expression. See the variable +`org-agenda-prefix-format'.") (defcustom org-agenda-todo-keyword-format "%-1s" "Format for the TODO keyword in agenda lines. @@ -1511,6 +1554,16 @@ to occupy a fixed space in the agenda display." :group 'org-agenda-line-format :type 'string) +(defcustom org-agenda-diary-sexp-prefix nil + "A regexp that matches part of a diary sexp entry +which should be treated as scheduling/deadline information in +`org-agenda'. + +For example, you can use this to extract the `diary-remind-message' from +`diary-remind' entries." + :group 'org-agenda-line-format + :type '(choice (const :tag "None" nil) (regexp :tag "Regexp"))) + (defcustom org-agenda-timerange-leaders '("" "(%d/%d): ") "Text preceding timerange entries in the agenda view. This is a list with two strings. The first applies when the range @@ -1659,7 +1712,7 @@ determines if it is a foreground or a background color." (defcustom org-agenda-day-face-function nil "Function called to determine what face should be used to display a day. -The only argument passed to that function is the day. It should +The only argument passed to that function is the day. It should returns a face, or nil if does not want to specify a face and let the normal rules apply." :group 'org-agenda-line-format @@ -1762,10 +1815,6 @@ Note that functions in this alist don't need to be quoted." :version "24.1" :group 'org-agenda) -(eval-when-compile - (require 'cl)) -(require 'org) - (defmacro org-agenda-with-point-at-orig-entry (string &rest body) "Execute BODY with point at location given by `org-hd-marker' property. If STRING is non-nil, the text property will be fetched from position 0 @@ -1789,7 +1838,7 @@ works you probably want to add it to `org-agenda-custom-commands' for good." (setcdr ass (cdr entry)) (push entry org-agenda-custom-commands)))) -;;; Define the Org-agenda-mode +;;; Define the org-agenda-mode (defvar org-agenda-mode-map (make-sparse-keymap) "Keymap for `org-agenda-mode'.") @@ -1797,7 +1846,7 @@ works you probably want to add it to `org-agenda-custom-commands' for good." (defvaralias 'org-agenda-keymap 'org-agenda-mode-map)) (defvar org-agenda-menu) ; defined later in this file. -(defvar org-agenda-restrict) ; defined later in this file. +(defvar org-agenda-restrict nil) ; defined later in this file. (defvar org-agenda-follow-mode nil) (defvar org-agenda-entry-text-mode nil) (defvar org-agenda-clockreport-mode nil) @@ -1805,10 +1854,76 @@ works you probably want to add it to `org-agenda-custom-commands' for good." (defvar org-agenda-redo-command nil) (defvar org-agenda-query-string nil) (defvar org-agenda-mode-hook nil - "Hook for `org-agenda-mode', run after the mode is turned on.") + "Hook run after `org-agenda-mode' is turned on. +The buffer is still writable when this hook is called.") (defvar org-agenda-type nil) (defvar org-agenda-force-single-file nil) -(defvar org-agenda-bulk-marked-entries) ;; Defined further down in this file +(defvar org-agenda-bulk-marked-entries nil + "List of markers that refer to marked entries in the agenda.") + +;;; Multiple agenda buffers support + +(defcustom org-agenda-sticky nil + "Non-nil means agenda q key will bury agenda buffers. +Agenda commands will then show existing buffer instead of generating new ones. +When nil, `q' will kill the single agenda buffer." + :group 'org-agenda + :version "24.3" + :type 'boolean) + +;;;###autoload +(defun org-toggle-sticky-agenda (&optional arg) + "Toggle `org-agenda-sticky'." + (interactive "P") + (let ((new-value (if arg + (> (prefix-numeric-value arg) 0) + (not org-agenda-sticky)))) + (if (equal new-value org-agenda-sticky) + (and (org-called-interactively-p 'interactive) + (message "Sticky agenda was already %s" + (if org-agenda-sticky "enabled" "disabled"))) + (setq org-agenda-sticky new-value) + (org-agenda-kill-all-agenda-buffers) + (and (org-called-interactively-p 'interactive) + (message "Sticky agenda was %s" + (if org-agenda-sticky "enabled" "disabled")))))) + +(defvar org-agenda-buffer nil + "Agenda buffer currently being generated.") + +(defvar org-agenda-last-prefix-arg nil) +(defvar org-agenda-this-buffer-name nil) +(defvar org-agenda-doing-sticky-redo nil) +(defvar org-agenda-this-buffer-is-sticky nil) + +(defconst org-agenda-local-vars + '(org-agenda-this-buffer-name + org-agenda-undo-list + org-agenda-pending-undo-list + org-agenda-follow-mode + org-agenda-entry-text-mode + org-agenda-clockreport-mode + org-agenda-show-log + org-agenda-redo-command + org-agenda-query-string + org-agenda-type + org-agenda-bulk-marked-entries + org-agenda-undo-has-started-in + org-agenda-info + org-agenda-tag-filter-overlays + org-agenda-cat-filter-overlays + org-agenda-pre-window-conf + org-agenda-columns-active + org-agenda-tag-filter + org-agenda-category-filter + org-agenda-markers + org-agenda-last-search-view-search-was-boolean + org-agenda-filtered-by-category + org-agenda-filter-form + org-agenda-show-window + org-agenda-cycle-counter + org-agenda-last-prefix-arg) + "Variables that must be local in agenda buffers to allow multiple buffers.") (defun org-agenda-mode () "Mode for time-sorted view on action items in Org-mode files. @@ -1817,7 +1932,30 @@ The following commands are available: \\{org-agenda-mode-map}" (interactive) - (kill-all-local-variables) + (cond (org-agenda-doing-sticky-redo + ;; Refreshing sticky agenda-buffer + ;; + ;; Preserve the value of `org-agenda-local-vars' variables, + ;; while letting `kill-all-local-variables' kill the rest + (let ((save (buffer-local-variables))) + (kill-all-local-variables) + (mapc 'make-local-variable org-agenda-local-vars) + (dolist (elem save) + (let ((var (car elem)) + (val (cdr elem))) + (when (and val + (member var org-agenda-local-vars)) + (set var val))))) + (set (make-local-variable 'org-agenda-this-buffer-is-sticky) t)) + (org-agenda-sticky + ;; Creating a sticky Agenda buffer for the first time + (kill-all-local-variables) + (mapc 'make-local-variable org-agenda-local-vars) + (set (make-local-variable 'org-agenda-this-buffer-is-sticky) t)) + (t + ;; Creating a non-sticky agenda buffer + (kill-all-local-variables) + (set (make-local-variable 'org-agenda-this-buffer-is-sticky) nil))) (setq org-agenda-undo-list nil org-agenda-pending-undo-list nil org-agenda-bulk-marked-entries nil) @@ -1829,14 +1967,13 @@ The following commands are available: (easy-menu-add org-agenda-menu) (if org-startup-truncated (setq truncate-lines t)) (org-set-local 'line-move-visual nil) - (org-add-hook 'post-command-hook 'org-agenda-post-command-hook nil 'local) + (org-add-hook 'post-command-hook 'org-agenda-update-agenda-type nil 'local) (org-add-hook 'pre-command-hook 'org-unhighlight nil 'local) ;; Make sure properties are removed when copying text - (when (boundp 'buffer-substring-filters) - (org-set-local 'buffer-substring-filters - (cons (lambda (x) - (set-text-properties 0 (length x) nil x) x) - buffer-substring-filters))) + (make-local-variable 'filter-buffer-substring-functions) + (add-hook 'filter-buffer-substring-functions + (lambda (fun start end delete) + (substring-no-properties (funcall fun start end delete)))) (unless org-agenda-keep-modes (setq org-agenda-follow-mode org-agenda-start-with-follow-mode org-agenda-entry-text-mode org-agenda-start-with-entry-text-mode @@ -1868,11 +2005,13 @@ The following commands are available: (org-defkey org-agenda-mode-map "\C-k" 'org-agenda-kill) (org-defkey org-agenda-mode-map "\C-c\C-w" 'org-agenda-refile) (org-defkey org-agenda-mode-map "m" 'org-agenda-bulk-mark) +(org-defkey org-agenda-mode-map "*" 'org-agenda-bulk-mark-all) (org-defkey org-agenda-mode-map "%" 'org-agenda-bulk-mark-regexp) (org-defkey org-agenda-mode-map "u" 'org-agenda-bulk-unmark) -(org-defkey org-agenda-mode-map "U" 'org-agenda-bulk-remove-all-marks) -(org-defkey org-agenda-mode-map "A" 'org-agenda-append-agenda) +(org-defkey org-agenda-mode-map "U" 'org-agenda-bulk-unmark-all) (org-defkey org-agenda-mode-map "B" 'org-agenda-bulk-action) +(org-defkey org-agenda-mode-map "k" 'org-agenda-capture) +(org-defkey org-agenda-mode-map "A" 'org-agenda-append-agenda) (org-defkey org-agenda-mode-map "\C-c\C-x!" 'org-reload) (org-defkey org-agenda-mode-map "\C-c\C-x\C-a" 'org-agenda-archive-default) (org-defkey org-agenda-mode-map "\C-c\C-xa" 'org-agenda-toggle-archive-tag) @@ -1901,8 +2040,6 @@ The following commands are available: (org-defkey org-agenda-mode-map "y" 'org-agenda-year-view) (org-defkey org-agenda-mode-map "\C-c\C-z" 'org-agenda-add-note) (org-defkey org-agenda-mode-map "z" 'org-agenda-add-note) -(org-defkey org-agenda-mode-map "k" 'org-agenda-action) -(org-defkey org-agenda-mode-map "\C-c\C-x\C-k" 'org-agenda-action) (org-defkey org-agenda-mode-map [(shift right)] 'org-agenda-do-date-later) (org-defkey org-agenda-mode-map [(shift left)] 'org-agenda-do-date-earlier) (org-defkey org-agenda-mode-map [?\C-c ?\C-x (right)] 'org-agenda-do-date-later) @@ -1913,7 +2050,7 @@ The following commands are available: (org-defkey org-agenda-mode-map "\C-c\C-d" 'org-agenda-deadline) (let ((l '(1 2 3 4 5 6 7 8 9 0))) (while l (org-defkey org-agenda-mode-map - (int-to-string (pop l)) 'digit-argument))) + (int-to-string (pop l)) 'digit-argument))) (org-defkey org-agenda-mode-map "F" 'org-agenda-follow-mode) (org-defkey org-agenda-mode-map "R" 'org-agenda-clockreport-mode) @@ -1924,21 +2061,23 @@ The following commands are available: (org-defkey org-agenda-mode-map "!" 'org-agenda-toggle-deadlines) (org-defkey org-agenda-mode-map "G" 'org-agenda-toggle-time-grid) (org-defkey org-agenda-mode-map "r" 'org-agenda-redo) -(org-defkey org-agenda-mode-map "g" 'org-agenda-redo) +(org-defkey org-agenda-mode-map "g" (lambda () (interactive) (org-agenda-redo t))) (org-defkey org-agenda-mode-map "e" 'org-agenda-set-effort) (org-defkey org-agenda-mode-map "\C-c\C-xe" 'org-agenda-set-effort) (org-defkey org-agenda-mode-map "\C-c\C-x\C-e" 'org-clock-modify-effort-estimate) (org-defkey org-agenda-mode-map "\C-c\C-xp" 'org-agenda-set-property) (org-defkey org-agenda-mode-map "q" 'org-agenda-quit) +(org-defkey org-agenda-mode-map "Q" 'org-agenda-Quit) (org-defkey org-agenda-mode-map "x" 'org-agenda-exit) (org-defkey org-agenda-mode-map "\C-x\C-w" 'org-agenda-write) (org-defkey org-agenda-mode-map "\C-x\C-s" 'org-save-all-org-buffers) (org-defkey org-agenda-mode-map "s" 'org-save-all-org-buffers) -(org-defkey org-agenda-mode-map "P" 'org-agenda-show-priority) (org-defkey org-agenda-mode-map "T" 'org-agenda-show-tags) (org-defkey org-agenda-mode-map "n" 'org-agenda-next-line) (org-defkey org-agenda-mode-map "p" 'org-agenda-previous-line) +(org-defkey org-agenda-mode-map "N" 'org-agenda-next-item) +(org-defkey org-agenda-mode-map "P" 'org-agenda-previous-item) (substitute-key-definition 'next-line 'org-agenda-next-line org-agenda-mode-map global-map) (substitute-key-definition 'previous-line 'org-agenda-previous-line @@ -1946,8 +2085,8 @@ The following commands are available: (org-defkey org-agenda-mode-map "\C-c\C-a" 'org-attach) (org-defkey org-agenda-mode-map "\C-c\C-n" 'org-agenda-next-date-line) (org-defkey org-agenda-mode-map "\C-c\C-p" 'org-agenda-previous-date-line) -(org-defkey org-agenda-mode-map "," 'org-agenda-priority) (org-defkey org-agenda-mode-map "\C-c," 'org-agenda-priority) +(org-defkey org-agenda-mode-map "," 'org-agenda-priority) (org-defkey org-agenda-mode-map "i" 'org-agenda-diary-entry) (org-defkey org-agenda-mode-map "c" 'org-agenda-goto-calendar) (org-defkey org-agenda-mode-map "C" 'org-agenda-convert-date) @@ -1981,6 +2120,7 @@ The following commands are available: (org-defkey org-agenda-mode-map "/" 'org-agenda-filter-by-tag) (org-defkey org-agenda-mode-map "\\" 'org-agenda-filter-by-tag-refine) (org-defkey org-agenda-mode-map "<" 'org-agenda-filter-by-category) +(org-defkey org-agenda-mode-map "^" 'org-agenda-filter-by-top-category) (org-defkey org-agenda-mode-map ";" 'org-timer-set-timer) (define-key org-agenda-mode-map "?" 'org-agenda-show-the-flagging-note) (org-defkey org-agenda-mode-map "\C-c\C-x\C-mg" 'org-mobile-pull) @@ -2034,7 +2174,7 @@ The following commands are available: ["Show some entry text" org-agenda-entry-text-mode :style toggle :selected org-agenda-entry-text-mode :active t] - "--" + "--" ["Show Logbook entries" org-agenda-log-mode :style toggle :selected org-agenda-show-log :active (org-agenda-check-type nil 'agenda 'timeline) @@ -2054,9 +2194,10 @@ The following commands are available: ["Show original entry" org-agenda-show t] ["Go To (other window)" org-agenda-goto t] ["Go To (this window)" org-agenda-switch-to t] + ["Capture with cursor date" org-agenda-capture t] ["Follow Mode" org-agenda-follow-mode :style toggle :selected org-agenda-follow-mode :active t] -; ["Tree to indirect frame" org-agenda-tree-to-indirect-buffer t] + ;; ["Tree to indirect frame" org-agenda-tree-to-indirect-buffer t] "--" ("TODO" ["Cycle TODO" org-agenda-todo t] @@ -2075,10 +2216,11 @@ The following commands are available: ["Delete subtree" org-agenda-kill t]) ("Bulk action" ["Mark entry" org-agenda-bulk-mark t] + ["Mark all" org-agenda-bulk-mark-all t] ["Mark matching regexp" org-agenda-bulk-mark-regexp t] ["Unmark entry" org-agenda-bulk-unmark t] - ["Unmark all entries" org-agenda-bulk-remove-all-marks :active t :keys "C-u s"]) - ["Act on all marked" org-agenda-bulk-action t] + ["Unmark all entries" org-agenda-bulk-unmark-all :active t :keys "U"]) + ["Act on all marked" org-agenda-bulk-action t] "--" ("Tags and Properties" ["Show all Tags" org-agenda-show-tags t] @@ -2090,11 +2232,6 @@ The following commands are available: ["Schedule" org-agenda-schedule t] ["Set Deadline" org-agenda-deadline t] "--" - ["Mark item" org-agenda-action :active t :keys "k m"] - ["Show mark item" org-agenda-action :active t :keys "k v"] - ["Schedule marked item" org-agenda-action :active t :keys "k s"] - ["Set Deadline for marked item" org-agenda-action :active t :keys "k d"] - "--" ["Change Date +1 day" org-agenda-date-later (org-agenda-check-type nil 'agenda 'timeline)] ["Change Date -1 day" org-agenda-date-earlier (org-agenda-check-type nil 'agenda 'timeline)] ["Change Time +1 hour" org-agenda-do-date-later :active (org-agenda-check-type nil 'agenda 'timeline) :keys "C-u S-right"] @@ -2115,7 +2252,7 @@ The following commands are available: ["Set Priority" org-agenda-priority t] ["Increase Priority" org-agenda-priority-up t] ["Decrease Priority" org-agenda-priority-down t] - ["Show Priority" org-agenda-show-priority t]) + ["Show Priority" org-show-priority t]) ("Calendar/Diary" ["New Diary Entry" org-agenda-diary-entry (org-agenda-check-type nil 'agenda 'timeline)] ["Goto Calendar" org-agenda-goto-calendar (org-agenda-check-type nil 'agenda 'timeline)] @@ -2144,12 +2281,8 @@ The following commands are available: (defvar org-agenda-allow-remote-undo t "Non-nil means allow remote undo from the agenda buffer.") -(defvar org-agenda-undo-list nil - "List of undoable operations in the agenda since last refresh.") (defvar org-agenda-undo-has-started-in nil "Buffers that have already seen `undo-start' in the current undo sequence.") -(defvar org-agenda-pending-undo-list nil - "In a series of undo commands, this is the list of remaining undo items.") (defun org-agenda-undo () "Undo a remote editing step in the agenda. @@ -2193,14 +2326,60 @@ that have been changed along." ;;; Agenda dispatch -(defvar org-agenda-restrict nil) (defvar org-agenda-restrict-begin (make-marker)) (defvar org-agenda-restrict-end (make-marker)) (defvar org-agenda-last-dispatch-buffer nil) (defvar org-agenda-overriding-restriction nil) +(defcustom org-agenda-custom-commands-contexts nil + "Alist of custom agenda keys and contextual rules. + +For example, if you have a custom agenda command \"p\" and you +want this command to be accessible only from plain text files, +use this: + + '((\"p\" (in-file . \"\\.txt\"))) + +Here are the available contexts definitions: + + in-file: command displayed only in matching files + in-mode: command displayed only in matching modes + not-in-file: command not displayed in matching files + not-in-mode: command not displayed in matching modes + [function]: a custom function taking no argument + +If you define several checks, the agenda command will be +accessible if there is at least one valid check. + +You can also bind a key to another agenda custom command +depending on contextual rules. + + '((\"p\" \"q\" (in-file . \"\\.txt\"))) + +Here it means: in .txt files, use \"p\" as the key for the +agenda command otherwise associated with \"q\". (The command +originally associated with \"q\" is not displayed to avoid +duplicates.)" + :version "24.3" + :group 'org-agenda-custom-commands + :type '(repeat (list :tag "Rule" + (string :tag " Agenda key") + (string :tag "Replace by command") + (repeat :tag "Available when" + (choice + (cons :tag "Condition" + (choice + (const :tag "In file" in-file) + (const :tag "Not in file" not-in-file) + (const :tag "In mode" in-mode) + (const :tag "Not in mode" not-in-mode)) + (regexp)) + (function :tag "Custom function")))))) + +(defvar org-keys nil) +(defvar org-match nil) ;;;###autoload -(defun org-agenda (&optional arg keys restriction) +(defun org-agenda (&optional arg org-keys restriction) "Dispatch agenda commands to collect entries to the agenda buffer. Prompts for a command to execute. Any prefix arg will be passed on to the selected command. The default selections are: @@ -2215,6 +2394,7 @@ M Like `m', but select only TODO entries, no ordinary headlines. L Create a timeline for the current buffer. e Export views to associated files. s Search entries for keywords. +S Search entries for keywords, only with TODO keywords. / Multi occur across all agenda files and also files listed in `org-agenda-text-search-extra-files'. < Restrict agenda commands to buffer, subtree, or region. @@ -2236,6 +2416,7 @@ Pressing `<' twice means to restrict to the current subtree or region (interactive "P") (catch 'exit (let* ((prefix-descriptions nil) + (org-agenda-buffer-name org-agenda-buffer-name) (org-agenda-window-setup (if (equal (buffer-name) org-agenda-buffer-name) 'current-window @@ -2253,9 +2434,12 @@ Pressing `<' twice means to restrict to the current subtree or region ((not (nth 1 x)) (cons (car x) (cons "" (cddr x)))) (t (cons (car x) (cons "" (cdr x)))))) org-agenda-custom-commands))) + (org-agenda-custom-commands + (org-contextualize-keys + org-agenda-custom-commands org-agenda-custom-commands-contexts)) (buf (current-buffer)) (bfn (buffer-file-name (buffer-base-buffer))) - entry key type match lprops ans) + entry key type org-match lprops ans) ;; Turn off restriction unless there is an overriding one, (unless org-agenda-overriding-restriction (unless (org-bound-and-true-p org-agenda-keep-restricted-file-list) @@ -2270,10 +2454,16 @@ Pressing `<' twice means to restrict to the current subtree or region (put 'org-agenda-redo-command 'last-args nil) ;; Remember where this call originated (setq org-agenda-last-dispatch-buffer (current-buffer)) - (unless keys + (unless org-keys (setq ans (org-agenda-get-restriction-and-command prefix-descriptions) - keys (car ans) + org-keys (car ans) restriction (cdr ans))) + ;; If we have sticky agenda buffers, set a name for the buffer, + ;; depending on the invoking keys. The user may still set this + ;; as a command option, which will overwrite what we do here. + (if org-agenda-sticky + (setq org-agenda-buffer-name + (format "*Org Agenda(%s)*" org-keys))) ;; Establish the restriction, if any (when (and (not org-agenda-overriding-restriction) restriction) (put 'org-agenda-files 'org-restrict (list bfn)) @@ -2292,11 +2482,15 @@ Pressing `<' twice means to restrict to the current subtree or region ;; For example the todo list should not need it (but does...) (cond - ((setq entry (assoc keys org-agenda-custom-commands)) + ((setq entry (assoc org-keys org-agenda-custom-commands)) (if (or (symbolp (nth 2 entry)) (functionp (nth 2 entry))) (progn - (setq type (nth 2 entry) match (eval (nth 3 entry)) + (setq type (nth 2 entry) org-match (eval (nth 3 entry)) lprops (nth 4 entry)) + (if org-agenda-sticky + (setq org-agenda-buffer-name + (or (and (stringp org-match) (format "*Org Agenda(%s:%s)*" org-keys org-match)) + (format "*Org Agenda(%s)*" org-keys)))) (put 'org-agenda-redo-command 'org-lprops lprops) (cond ((eq type 'agenda) @@ -2304,44 +2498,45 @@ Pressing `<' twice means to restrict to the current subtree or region ((eq type 'alltodo) (org-let lprops '(org-todo-list current-prefix-arg))) ((eq type 'search) - (org-let lprops '(org-search-view current-prefix-arg match nil))) + (org-let lprops '(org-search-view current-prefix-arg org-match nil))) ((eq type 'stuck) (org-let lprops '(org-agenda-list-stuck-projects current-prefix-arg))) ((eq type 'tags) - (org-let lprops '(org-tags-view current-prefix-arg match))) + (org-let lprops '(org-tags-view current-prefix-arg org-match))) ((eq type 'tags-todo) - (org-let lprops '(org-tags-view '(4) match))) + (org-let lprops '(org-tags-view '(4) org-match))) ((eq type 'todo) - (org-let lprops '(org-todo-list match))) + (org-let lprops '(org-todo-list org-match))) ((eq type 'tags-tree) (org-check-for-org-mode) - (org-let lprops '(org-match-sparse-tree current-prefix-arg match))) + (org-let lprops '(org-match-sparse-tree current-prefix-arg org-match))) ((eq type 'todo-tree) (org-check-for-org-mode) (org-let lprops '(org-occur (concat "^" org-outline-regexp "[ \t]*" - (regexp-quote match) "\\>")))) + (regexp-quote org-match) "\\>")))) ((eq type 'occur-tree) (org-check-for-org-mode) - (org-let lprops '(org-occur match))) + (org-let lprops '(org-occur org-match))) ((functionp type) - (org-let lprops '(funcall type match))) + (org-let lprops '(funcall type org-match))) ((fboundp type) - (org-let lprops '(funcall type match))) + (org-let lprops '(funcall type org-match))) (t (error "Invalid custom agenda command type %s" type)))) (org-agenda-run-series (nth 1 entry) (cddr entry)))) - ((equal keys "C") + ((equal org-keys "C") (setq org-agenda-custom-commands org-agenda-custom-commands-orig) (customize-variable 'org-agenda-custom-commands)) - ((equal keys "a") (call-interactively 'org-agenda-list)) - ((equal keys "s") (call-interactively 'org-search-view)) - ((equal keys "t") (call-interactively 'org-todo-list)) - ((equal keys "T") (org-call-with-arg 'org-todo-list (or arg '(4)))) - ((equal keys "m") (call-interactively 'org-tags-view)) - ((equal keys "M") (org-call-with-arg 'org-tags-view (or arg '(4)))) - ((equal keys "e") (call-interactively 'org-store-agenda-views)) - ((equal keys "?") (org-tags-view nil "+FLAGGED") + ((equal org-keys "a") (call-interactively 'org-agenda-list)) + ((equal org-keys "s") (call-interactively 'org-search-view)) + ((equal org-keys "S") (org-call-with-arg 'org-search-view (or arg '(4)))) + ((equal org-keys "t") (call-interactively 'org-todo-list)) + ((equal org-keys "T") (org-call-with-arg 'org-todo-list (or arg '(4)))) + ((equal org-keys "m") (call-interactively 'org-tags-view)) + ((equal org-keys "M") (org-call-with-arg 'org-tags-view (or arg '(4)))) + ((equal org-keys "e") (call-interactively 'org-store-agenda-views)) + ((equal org-keys "?") (org-tags-view nil "+FLAGGED") (org-add-hook 'post-command-hook (lambda () @@ -2357,15 +2552,15 @@ Pressing `<' twice means to restrict to the current subtree or region (copy-sequence note)) nil 'face 'org-warning))))))) t t)) - ((equal keys "L") - (unless (eq major-mode 'org-mode) + ((equal org-keys "L") + (unless (derived-mode-p 'org-mode) (error "This is not an Org-mode file")) (unless restriction (put 'org-agenda-files 'org-restrict (list bfn)) (org-call-with-arg 'org-timeline arg))) - ((equal keys "#") (call-interactively 'org-agenda-list-stuck-projects)) - ((equal keys "/") (call-interactively 'org-occur-in-agenda-files)) - ((equal keys "!") (customize-variable 'org-stuck-projects)) + ((equal org-keys "#") (call-interactively 'org-agenda-list-stuck-projects)) + ((equal org-keys "/") (call-interactively 'org-occur-in-agenda-files)) + ((equal org-keys "!") (customize-variable 'org-stuck-projects)) (t (error "Invalid agenda key")))))) (defun org-agenda-append-agenda () @@ -2373,11 +2568,13 @@ Pressing `<' twice means to restrict to the current subtree or region This function allows interactive building of block agendas. Agenda views are separated by `org-agenda-block-separator'." (interactive) - (unless (string= (buffer-name) org-agenda-buffer-name) + (unless (derived-mode-p 'org-agenda-mode) (error "Can only append from within agenda buffer")) (let ((org-agenda-multi t)) (org-agenda) - (widen))) + (widen) + (org-agenda-finalize) + (org-agenda-fit-window-to-buffer))) (defun org-agenda-normalize-custom-commands (cmds) (delq nil @@ -2393,7 +2590,7 @@ Agenda views are separated by `org-agenda-block-separator'." "The user interface for selecting an agenda command." (catch 'exit (let* ((bfn (buffer-file-name (buffer-base-buffer))) - (restrict-ok (and bfn (eq major-mode 'org-mode))) + (restrict-ok (and bfn (derived-mode-p 'org-mode))) (region-p (org-region-active-p)) (custom org-agenda-custom-commands) (selstring "") @@ -2406,15 +2603,15 @@ Agenda views are separated by `org-agenda-block-separator'." (erase-buffer) (insert (eval-when-compile (let ((header -" -Press key for an agenda command: < Buffer, subtree/region restriction + "Press key for an agenda command: < Buffer, subtree/region restriction -------------------------------- > Remove restriction a Agenda for current week or day e Export agenda views t List of all TODO entries T Entries with special TODO kwd m Match a TAGS/PROP/TODO query M Like m, but only TODO entries +s Search for keywords S Like s, but only TODO entries L Timeline for current buffer # List stuck projects (!=configure) -s Search for keywords C Configure custom agenda commands -/ Multi-occur ? Find :FLAGGED: entries +/ Multi-occur C Configure custom agenda commands +? Find :FLAGGED: entries * Toggle sticky agenda views ") (start 0)) (while (string-match @@ -2474,13 +2671,12 @@ s Search for keywords C Configure custom agenda commands ((stringp match) (setq match (copy-sequence match)) (org-add-props match nil 'face 'org-warning)) - (match - (format "set of %d commands" (length match))) - (t "")))) + ((listp type) + (format "set of %d commands" (length type)))))) (if (org-string-nw-p match) (add-text-properties 0 (length line) (list 'help-echo - (concat "Matcher: "match)) line))) + (concat "Matcher: " match)) line))) (push line lines))) (setq lines (nreverse lines)) (when prefixes @@ -2497,7 +2693,7 @@ s Search for keywords C Configure custom agenda commands prefixes)) ;; Check if we should display in two columns - (if org-agenda-menu-two-column + (if org-agenda-menu-two-columns (progn (setq n (length lines) n1 (+ (/ n 2) (mod n 2)) @@ -2547,6 +2743,9 @@ s Search for keywords C Configure custom agenda commands nil (cons (substring (car x) 1) (cdr x)))) custom)))) + ((eq c ?*) + (call-interactively 'org-toggle-sticky-agenda) + (sit-for 2)) ((and (not restrict-ok) (memq c '(?1 ?0 ?<))) (message "Restriction is only possible in Org-mode buffers") (ding) (sit-for 1)) @@ -2568,7 +2767,7 @@ s Search for keywords C Configure custom agenda commands ((eq c ?>) (org-agenda-remove-restriction-lock 'noupdate) (setq restriction nil)) - ((and (equal selstring "") (memq c '(?s ?a ?t ?m ?L ?C ?e ?T ?M ?# ?! ?/ ??))) + ((and (equal selstring "") (memq c '(?s ?S ?a ?t ?m ?L ?C ?e ?T ?M ?# ?! ?/ ??))) (throw 'exit (cons (setq selstring (char-to-string c)) restriction))) ((and (> (length selstring) 0) (eq c ?\d)) (delete-window) @@ -2577,55 +2776,72 @@ s Search for keywords C Configure custom agenda commands ((equal c ?q) (error "Abort")) (t (error "Invalid key %c" c)))))))) -(defvar org-agenda-overriding-arguments nil) ; dynamically scoped parameter -(defvar org-agenda-last-arguments nil - "The arguments of the previous call to `org-agenda'.") +(defun org-agenda-fit-window-to-buffer () + "Fit the window to the buffer size." + (and (memq org-agenda-window-setup '(reorganize-frame)) + (fboundp 'fit-window-to-buffer) + (org-fit-window-to-buffer + nil + (floor (* (frame-height) (cdr org-agenda-window-frame-fractions))) + (floor (* (frame-height) (car org-agenda-window-frame-fractions)))))) + +(defvar org-cmd nil) +(defvar org-agenda-overriding-cmd nil) +(defvar org-agenda-overriding-arguments nil) +(defvar org-agenda-overriding-cmd-arguments nil) (defun org-agenda-run-series (name series) - (org-let (nth 1 series) '(org-prepare-agenda name)) + (org-let (nth 1 series) '(org-agenda-prepare name)) + ;; We need to reset agenda markers here, because when constructing a + ;; block agenda, the individual blocks do not do that. + (org-agenda-reset-markers) (let* ((org-agenda-multi t) (redo (list 'org-agenda-run-series name (list 'quote series))) - (org-agenda-overriding-arguments - (or org-agenda-overriding-arguments - (unless (null (delq nil (get 'org-agenda-redo-command 'last-args))) - (get 'org-agenda-redo-command 'last-args)))) (cmds (car series)) (gprops (nth 1 series)) match ;; The byte compiler incorrectly complains about this. Keep it! - cmd type lprops) - (while (setq cmd (pop cmds)) - (setq type (car cmd) match (eval (nth 1 cmd)) lprops (nth 2 cmd)) - (cond - ((eq type 'agenda) - (org-let2 gprops lprops - '(call-interactively 'org-agenda-list))) - ((eq type 'alltodo) - (org-let2 gprops lprops - '(call-interactively 'org-todo-list))) - ((eq type 'search) - (org-let2 gprops lprops - '(org-search-view current-prefix-arg match nil))) - ((eq type 'stuck) - (org-let2 gprops lprops - '(call-interactively 'org-agenda-list-stuck-projects))) - ((eq type 'tags) - (org-let2 gprops lprops - '(org-tags-view current-prefix-arg match))) - ((eq type 'tags-todo) - (org-let2 gprops lprops - '(org-tags-view '(4) match))) - ((eq type 'todo) - (org-let2 gprops lprops - '(org-todo-list match))) - ((fboundp type) - (org-let2 gprops lprops - '(funcall type match))) - (t (error "Invalid type in command series")))) + org-cmd type lprops) + (while (setq org-cmd (pop cmds)) + (setq type (car org-cmd) + match (eval (nth 1 org-cmd)) + lprops (nth 2 org-cmd)) + (let ((org-agenda-overriding-arguments + (if (eq org-agenda-overriding-cmd org-cmd) + (or org-agenda-overriding-arguments + org-agenda-overriding-cmd-arguments)))) + (cond + ((eq type 'agenda) + (org-let2 gprops lprops + '(call-interactively 'org-agenda-list))) + ((eq type 'alltodo) + (org-let2 gprops lprops + '(call-interactively 'org-todo-list))) + ((eq type 'search) + (org-let2 gprops lprops + '(org-search-view current-prefix-arg match nil))) + ((eq type 'stuck) + (org-let2 gprops lprops + '(call-interactively 'org-agenda-list-stuck-projects))) + ((eq type 'tags) + (org-let2 gprops lprops + '(org-tags-view current-prefix-arg match))) + ((eq type 'tags-todo) + (org-let2 gprops lprops + '(org-tags-view '(4) match))) + ((eq type 'todo) + (org-let2 gprops lprops + '(org-todo-list match))) + ((fboundp type) + (org-let2 gprops lprops + '(funcall type match))) + (t (error "Invalid type in command series"))))) (widen) + (let ((inhibit-read-only t)) + (add-text-properties (point-min) (point-max) + `(org-serie t org-serie-redo-cmd ,redo))) (setq org-agenda-redo-command redo) - (put 'org-agenda-redo-command 'last-args org-agenda-last-arguments) (goto-char (point-min))) - (org-fit-agenda-window) - (org-let (nth 1 series) '(org-finalize-agenda))) + (org-agenda-fit-window-to-buffer) + (org-let (nth 1 series) '(org-agenda-finalize))) ;;;###autoload (defmacro org-batch-agenda (cmd-key &rest parameters) @@ -2743,7 +2959,6 @@ This ensures the export commands can easily use it." (setq res (replace-match ";" t t res))) (org-trim res))) - ;;;###autoload (defun org-store-agenda-views (&rest parameters) (interactive) @@ -2756,11 +2971,18 @@ This ensures the export commands can easily use it." (pop-up-frames nil) (dir default-directory) (pars (org-make-parameter-alist parameters)) - cmd thiscmdkey files opts cmd-or-set) + cmd thiscmdkey thiscmdcmd match files opts cmd-or-set bufname) (save-window-excursion (while cmds (setq cmd (pop cmds) thiscmdkey (car cmd) + thiscmdcmd (cdr cmd) + match (nth 2 thiscmdcmd) + bufname (if org-agenda-sticky + (or (and (stringp match) + (format "*Org Agenda(%s:%s)*" thiscmdkey match)) + (format "*Org Agenda(%s)*" thiscmdkey)) + org-agenda-buffer-name) cmd-or-set (nth 2 cmd) opts (nth (if (listp cmd-or-set) 3 4) cmd) files (nth (if (listp cmd-or-set) 4 5) cmd)) @@ -2769,15 +2991,17 @@ This ensures the export commands can easily use it." (org-eval-in-environment (append org-agenda-exporter-settings opts pars) (org-agenda nil thiscmdkey)) - (set-buffer org-agenda-buffer-name) + (set-buffer bufname) (while files (org-eval-in-environment (append org-agenda-exporter-settings opts pars) - (org-agenda-write (expand-file-name (pop files) dir) nil t))) - (and (get-buffer org-agenda-buffer-name) - (kill-buffer org-agenda-buffer-name))))))) + (org-agenda-write (expand-file-name (pop files) dir) nil t bufname))) + (and (get-buffer bufname) + (kill-buffer bufname))))))) (def-edebug-spec org-batch-store-agenda-views (&rest sexp)) +(defvar org-agenda-current-span nil + "The current span used in the agenda view.") ; local variable in the agenda buffer (defun org-agenda-mark-header-line (pos) "Mark the line at POS as an agenda structure header." (save-excursion @@ -2788,9 +3012,9 @@ This ensures the export commands can easily use it." (put-text-property (point-at-bol) (point-at-eol) 'org-agenda-title-append org-agenda-title-append)))) -(defvar org-mobile-creating-agendas) +(defvar org-mobile-creating-agendas) ; defined in org-mobile.el (defvar org-agenda-write-buffer-name "Agenda View") -(defun org-agenda-write (file &optional open nosettings) +(defun org-agenda-write (file &optional open nosettings agenda-bufname) "Write the current buffer (an agenda view) as a file. Depending on the extension of the file name, plain text (.txt), HTML (.html or .htm) or Postscript (.ps) is produced. @@ -2801,7 +3025,8 @@ With prefix argument OPEN, open the new file immediately. If NOSETTINGS is given, do not scope the settings of `org-agenda-exporter-settings' into the export commands. This is used when the settings have already been scoped and we do not wish to overrule other, -higher priority settings." +higher priority settings. +If AGENDA-BUFFER-NAME, use this as the buffer name for the agenda to write." (interactive "FWrite agenda to file: \nP") (if (not (file-writable-p file)) (error "Cannot write agenda to file %s" file)) @@ -2828,9 +3053,7 @@ higher priority settings." ((string-match "\\.html?\\'" file) (require 'htmlize) (set-buffer (htmlize-buffer (current-buffer))) - - (when (and org-agenda-export-html-style - (string-match "\n")) "\n" "\n")) @@ -520,14 +519,15 @@ DRAWERS-REGEXP are converted to freemind notes." (list node-res note-res)))) (defun org-freemind-write-node (mm-buffer drawers-regexp - num-left-nodes base-level - current-level next-level this-m2 - this-node-end - this-children-visible - next-node-start - next-has-some-visible-child) + num-left-nodes base-level + current-level next-level this-m2 + this-node-end + this-children-visible + next-node-start + next-has-some-visible-child) (let* (this-icons this-bg-color + this-m2-link this-m2-escaped this-rich-node this-rich-note @@ -560,6 +560,10 @@ DRAWERS-REGEXP are converted to freemind notes." (add-to-list 'this-icons "full-7")) )))) (setq this-m2 (org-trim this-m2)) + (when (string-match org-bracket-link-analytic-regexp this-m2) + (setq this-m2-link (concat "link=\"" (match-string 1 this-m2) + (match-string 3 this-m2) "\" ") + this-m2 (replace-match "\\5" nil nil this-m2 0))) (setq this-m2-escaped (org-freemind-escape-str-from-org this-m2)) (let ((node-notes (org-freemind-org-text-to-freemind-subnode/note this-m2-escaped @@ -569,7 +573,8 @@ DRAWERS-REGEXP are converted to freemind notes." (setq this-rich-node (nth 0 node-notes)) (setq this-rich-note (nth 1 node-notes))) (with-current-buffer mm-buffer - (insert " next-level current-level) (unless (or this-children-visible @@ -784,15 +789,15 @@ Otherwise give an error say the file exists." ;;; (unless (if node-at-line-last ;;; (>= (point) node-at-line-last) ;;; nil) - ;; Write last node: - (setq this-m2 next-m2) - (setq current-level next-level) - (setq next-node-start (if node-at-line-last - (1+ node-at-line-last) - (point-max))) - (setq num-left-nodes (org-freemind-write-node mm-buffer drawers-regexp num-left-nodes base-level current-level next-level this-m2 this-node-end this-children-visible next-node-start next-has-some-visible-child)) - (with-current-buffer mm-buffer (insert "\n")) - ;) + ;; Write last node: + (setq this-m2 next-m2) + (setq current-level next-level) + (setq next-node-start (if node-at-line-last + (1+ node-at-line-last) + (point-max))) + (setq num-left-nodes (org-freemind-write-node mm-buffer drawers-regexp num-left-nodes base-level current-level next-level this-m2 this-node-end this-children-visible next-node-start next-has-some-visible-child)) + (with-current-buffer mm-buffer (insert "\n")) + ;) ) (with-current-buffer mm-buffer (while (> current-level base-level) @@ -1032,7 +1037,7 @@ PATH should be a list of steps, where each step has the form (let* ((child-attr-list (cadr child)) (step-attr-copy (copy-sequence step-attr-list))) (dolist (child-attr child-attr-list) - ;; Compare attr names: + ;; Compare attr names: (when (org-freemind-symbols= (caar step-attr-copy) (car child-attr)) ;; Compare values: (let ((step-val (cdar step-attr-copy)) @@ -1066,12 +1071,12 @@ PATH should be a list of steps, where each step has the form (defun org-freemind-test-get-tree-text () (let ((node '(p nil "\n" - (a - ((href . "link")) - "text") - "\n" - (b nil "hej") - "\n"))) + (a + ((href . "link")) + "text") + "\n" + (b nil "hej") + "\n"))) (org-freemind-get-tree-text node))) ;; (org-freemind-test-get-tree-text) @@ -1085,11 +1090,9 @@ PATH should be a list of steps, where each step has the form ;;(a (setq is-link t) ) ((h1 h2 h3 h4 h5 h6 p) ;;(setq ntxt (concat "\n" ntxt)) - (setq lf-after 2) - ) + (setq lf-after 2)) (br - (setq lf-after 1) - ) + (setq lf-after 1)) (t (cond ((stringp n) @@ -1106,8 +1109,7 @@ PATH should be a list of steps, where each step has the form (let ((att (car att-val)) (val (cdr att-val))) (when (eq att 'href) - (setq link val))))) - ))))) + (setq link val)))))))))) (if lf-after (setq ntxt (concat ntxt (make-string lf-after ?\n))) (setq ntxt (concat ntxt " "))) @@ -1184,7 +1186,7 @@ PATH should be a list of steps, where each step has the form (org-freemind-node-to-org child (1+ level) skip-levels))))) ;; Fix-me: put back special things, like drawers that are stored in -;; the notes. Should maybe all notes contents be put in drawers? +;; the notes. Should maybe all notes contents be put in drawers? ;;;###autoload (defun org-freemind-to-org-mode (mm-file org-file) "Convert FreeMind file MM-FILE to `org-mode' file ORG-FILE." diff --git a/lisp/org/org-gnus.el b/lisp/org/org-gnus.el index 5b855c291f..77f9c0b8a7 100644 --- a/lisp/org/org-gnus.el +++ b/lisp/org/org-gnus.el @@ -32,6 +32,7 @@ ;;; Code: (require 'org) +(require 'gnus-util) (eval-when-compile (require 'gnus-sum)) ;; Declare external functions and variables @@ -100,11 +101,11 @@ If `org-store-link' was called with a prefix arg the meaning of (if (and (string-match "^nntp" group) ;; Only for nntp groups (org-xor current-prefix-arg org-gnus-prefer-web-links)) - (org-make-link (if (string-match "gmane" unprefixed-group) - "http://news.gmane.org/" - "http://groups.google.com/group/") - unprefixed-group) - (org-make-link "gnus:" group)))) + (concat (if (string-match "gmane" unprefixed-group) + "http://news.gmane.org/" + "http://groups.google.com/group/") + unprefixed-group) + (concat "gnus:" group)))) (defun org-gnus-article-link (group newsgroups message-id x-no-archive) "Create a link to a Gnus article. @@ -125,7 +126,7 @@ If `org-store-link' was called with a prefix arg the meaning of "http://mid.gmane.org/%s" "http://groups.google.com/groups/search?as_umsgid=%s") (org-fixup-message-id-for-http message-id)) - (org-make-link "gnus:" group "#" message-id))) + (concat "gnus:" group "#" message-id))) (defun org-gnus-store-link () "Store a link to a Gnus folder or message." @@ -206,7 +207,7 @@ If `org-store-link' was called with a prefix arg the meaning of desc link newsgroup xarchive) ; those are always nil for gcc (and (not gcc) - (error "Can not create link: No Gcc header found.")) + (error "Can not create link: No Gcc header found")) (org-store-link-props :type "gnus" :from from :subject subject :message-id id :group gcc :to to) (setq desc (org-email-link-description) @@ -233,9 +234,9 @@ If `org-store-link' was called with a prefix arg the meaning of (setq group (match-string 1 path) article (match-string 3 path)) (when group - (setq group (org-substring-no-properties group))) + (setq group (org-no-properties group))) (when article - (setq article (org-substring-no-properties article))) + (setq article (org-no-properties article))) (org-gnus-follow-link group article))) (defun org-gnus-follow-link (&optional group article) @@ -244,9 +245,9 @@ If `org-store-link' was called with a prefix arg the meaning of (funcall (cdr (assq 'gnus org-link-frame-setup))) (if gnus-other-frame-object (select-frame gnus-other-frame-object)) (when group - (setq group (org-substring-no-properties group))) + (setq group (org-no-properties group))) (when article - (setq article (org-substring-no-properties article))) + (setq article (org-no-properties article))) (cond ((and group article) (gnus-activate-group group) (condition-case nil @@ -272,7 +273,7 @@ If `org-store-link' was called with a prefix arg the meaning of ;; stop on integer overflows (> articles 0)) (setq group-opened (gnus-group-read-group - articles nil group) + articles t group) articles (if (< articles 16) (1+ articles) (* articles 2)))) diff --git a/lisp/org/org-habit.el b/lisp/org/org-habit.el index 6b4776662e..5b68ac3226 100644 --- a/lisp/org/org-habit.el +++ b/lisp/org/org-habit.el @@ -67,6 +67,12 @@ relative to the current effective date." :group 'org-habit :type 'boolean) +(defcustom org-habit-show-all-today nil + "If non-nil, will show the consistency graph of all habits on +today's agenda, even if they are not scheduled." + :group 'org-habit + :type 'boolean) + (defcustom org-habit-today-glyph ?! "Glyph character used to identify today." :group 'org-habit diff --git a/lisp/org/org-html.el b/lisp/org/org-html.el index 5cecc44a2d..79b028638a 100644 --- a/lisp/org/org-html.el +++ b/lisp/org/org-html.el @@ -98,8 +98,32 @@ not be modified." :group 'org-export-html :type 'boolean) -(defconst org-export-html-scripts -"" -"Basic JavaScript that is needed by HTML files produced by Org-mode.") + "Basic JavaScript that is needed by HTML files produced by Org-mode.") (defconst org-export-html-style-default -"