Commit a89c8ef0 authored by Bastien Guerry's avatar Bastien Guerry
Browse files

Merge Org 7.9.3d (commit e8f5b0ad).

parent f5e9cbd4
2013-01-13 Bastien Guerry <bzg@gnu.org>
* org.texi (Installation): Simplify.
2013-01-13 François Allisson <francois@allisson.co> (tiny change)
* org.texi (Handling links): Update the mention to the obsolete
variable `org-link-to-org-use-id' with a mention to the newer
variable `org-id-link-to-org-use-id'. Mention the need to load
the org-id library.
2013-01-08 Bastien Guerry <bzg@gnu.org> 2013-01-08 Bastien Guerry <bzg@gnu.org>
* org.texi (Pushing to MobileOrg): Add footnote about using * org.texi (Pushing to MobileOrg): Add footnote about using
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
@c %**start of header @c %**start of header
@setfilename ../../info/org @setfilename ../../info/org
@settitle The Org Manual @settitle The Org Manual
@set VERSION 7.9.3+ (GNU Emacs 24.3) @set VERSION 7.9.3d (GNU Emacs 24.3)
   
@c Use proper quote and backtick for code sections in PDF output @c Use proper quote and backtick for code sections in PDF output
@c Cf. Texinfo manual 14.2 @c Cf. Texinfo manual 14.2
...@@ -339,7 +339,7 @@ with contributions by David O'Toole, Bastien Guerry, Philip Rooke, Dan Davison, ...@@ -339,7 +339,7 @@ with contributions by David O'Toole, Bastien Guerry, Philip Rooke, Dan Davison,
Introduction Introduction
   
* Summary:: Brief summary of what Org does * Summary:: Brief summary of what Org does
* Installation:: How to install a downloaded version of Org * Installation:: Installing Org
* Activation:: How to activate Org for certain buffers * Activation:: How to activate Org for certain buffers
* Feedback:: Bug reports, ideas, patches etc. * Feedback:: Bug reports, ideas, patches etc.
* Conventions:: Typesetting conventions in the manual * Conventions:: Typesetting conventions in the manual
...@@ -771,7 +771,7 @@ MobileOrg ...@@ -771,7 +771,7 @@ MobileOrg
   
@menu @menu
* Summary:: Brief summary of what Org does * Summary:: Brief summary of what Org does
* Installation:: How to install a downloaded version of Org * Installation:: Installing Org
* Activation:: How to activate Org for certain buffers * Activation:: How to activate Org for certain buffers
* Feedback:: Bug reports, ideas, patches etc. * Feedback:: Bug reports, ideas, patches etc.
* Conventions:: Typesetting conventions in the manual * Conventions:: Typesetting conventions in the manual
...@@ -851,118 +851,69 @@ Theory Ltd.} ...@@ -851,118 +851,69 @@ Theory Ltd.}
@cindex installation @cindex installation
@cindex XEmacs @cindex XEmacs
   
@b{Important:} @i{If you the version of Org that comes with Emacs or as a Org is part of recent distributions of GNU Emacs, so you normally don't need
XEmacs package, please skip this section and go directly to @ref{Activation}. to install it. If, for one reason or another, you want to install Org on top
If you downloaded Org as an ELPA package, please read the instructions on the of this pre-packaged version, there are three ways to do it:
@uref{http://orgmode.org/elpa.html, 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).}
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}.
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:
   
@itemize @bullet @itemize @bullet
@item Unpack the distribution archive. @item By using Emacs package system.
@item Change into (@code{cd}) the Org directory. @item By downloading Org as an archive.
@item Run @code{make help config} @item By using Org's git repository.
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 Run @code{make install} or @code{sudo make install}
to build and install Org mode on your system.
@end itemize @end itemize
   
If you use a cloned Git repository, then the procedure is slightly different. We @b{strongly recommend} to stick to a single installation method.
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.
   
@itemize @bullet @subsubheading Using Emacs packaging system
@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 Optionally run @code{make test}
to build Org mode and then run the full testsuite.
@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 Recent Emacs distributions include a packaging system which lets you install
install somewhere into your home directory, you can run Org directly from the Elisp libraries. You can install Org with @kbd{M-x package-install RET org}.
distribution directory or Org repository by compiling Org mode in place: To make sure your Org configuration is well taken into account, initialize
the package system with @code{(package-initialize)} before setting any Org
@itemize @bullet option. If you want to use Org's package repository, check out the
@item Change into (@code{cd}) the Org repository. @uref{http://orgmode.org/elpa.html, Org ELPA page}.
@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 @subsubheading Downloading Org as an archive
without any compilation. Simply replace the last step in the recipe above
with @code{make uncompiled}.
   
Then add the following line to @file{.emacs}: You can download Org latest release from @uref{http://orgmode.org/, Org's
website}. In this case, make sure you set the load-path correctly in your
@file{.emacs}:
   
@example @example
(add-to-list 'load-path "~/path/to/orgdir/lisp") (add-to-list 'load-path "~/path/to/orgdir/lisp")
@end example @end example
   
@noindent The downloaded archive contains contributed libraries that are not included
If you plan to use code from the @file{contrib} subdirectory without in Emacs. If you want to use them, add the @file{contrib} directory to your
compiling them, do a similar step for this directory: load-path:
   
@example @example
(add-to-list 'load-path "~/path/to/orgdir/contrib/lisp" t) (add-to-list 'load-path "~/path/to/orgdir/contrib/lisp" t)
@end example @end example
   
If you want to include those files with the build and install, please Optionally, you can compile the files and/or install them in your system.
customize the variable @code{ORG_ADD_CONTRIB} instead in your @code{local.mk} Run @code{make help} to list compilation and installation options.
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 @subsubheading Using Org's git repository
@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 You can clone Org's repository and install Org like this:
install the Info documentation separately (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 @example
This is not dpkg install-info anymore, but GNU install-info $ cd ~/src/
See the man page for ginstall-info for command line arguments $ git clone git://orgmode.org/org-mode.git
$ make autoloads
@end example @end example
   
@noindent which can be safely ignored.} Note that @code{make autoloads} is mandatory: it defines Org's version and
on your system). Org's autoloaded functions, respectively in @file{org-version.el} and in
@file{org-loaddefs.el}.
   
@example Remember to add the correct load-path as described in the method above.
make install-info
@end example
   
Do not forget to activate Org as described in the following section. You can also compile and install Org from this git repository: check
@page @code{make help} to get the list of compilation/installation options.
For more detailed explanations on Org's build system, please check the Org
Build System page on @uref{http://orgmode.org/worg/dev/org-build-system.html, Worg}.
   
@node Activation, Feedback, Installation, Introduction @node Activation, Feedback, Installation, Introduction
@section Activation @section Activation
...@@ -3384,13 +3335,16 @@ be the description@footnote{If the headline contains a timestamp, it will be ...@@ -3384,13 +3335,16 @@ be the description@footnote{If the headline contains a timestamp, it will be
removed from the link and result in a wrong link---you should avoid putting removed from the link and result in a wrong link---you should avoid putting
timestamp in the headline.}. timestamp in the headline.}.
   
@vindex org-link-to-org-use-id @vindex org-id-link-to-org-use-id
@cindex property, CUSTOM_ID @cindex property, CUSTOM_ID
@cindex property, ID @cindex property, ID
If the headline has a @code{CUSTOM_ID} property, a link to this custom ID If the headline has a @code{CUSTOM_ID} property, a link to this custom ID
will be stored. In addition or alternatively (depending on the value of will be stored. In addition or alternatively (depending on the value of
@code{org-link-to-org-use-id}), a globally unique @code{ID} property will be @code{org-id-link-to-org-use-id}), a globally unique @code{ID} property will
created and/or used to construct a link. So using this command in Org be created and/or used to construct a link@footnote{The library @code{org-id}
must first be loaded, either through @code{org-customize} by enabling
@code{id} in @code{org-modules} , or by adding @code{(require 'org-id)} in
your @file{.emacs}.}. So using this command in Org
buffers will potentially create two links: a human-readable from the custom buffers will potentially create two links: a human-readable from the custom
ID, and one that is globally unique and works even if the entry is moved from ID, and one that is globally unique and works even if the entry is moved from
file to file. Later, when inserting the link, you need to decide which one file to file. Later, when inserting the link, you need to decide which one
......
2013-01-08 Achim Gratz <Stromeko@Stromeko.de> 2013-01-13 Bastien Guerry <bzg@gnu.org>
* org-compat.el (org-condition-case-unless-debug): Delete.
* org-odt.el (org-odt-cleanup-xml-buffers): Use
`condition-case' instead of `org-condition-case-unless-debug',
which is now deleted.
* org-capture.el (org-capture-templates-contexts):
* org-agenda.el (org-agenda-custom-commands-contexts):
Docstring fix.
* org.el (org-get-tags-at): Remove duplicate inherited tags.
* org-agenda.el (org-agenda-show-inherited-tags): Allow to be set
to 'always or to a list of agenda types.
(org-agenda-finalize): Rework conditions under which inherited
tags should be made available even when not displayed.
(org-search-view, org-agenda-get-todos)
(org-agenda-get-timestamps, org-agenda-get-sexps)
(org-agenda-get-progress, org-agenda-get-scheduled)
(org-agenda-get-blocks): Use new possible values of
`org-agenda-show-inherited-tags'.
   
* org-compat.el (org-define-obsolete-function-alias) * org.el (org-open-at-point): Fix opening all links at point.
(org-define-obsolete-variable-alias): Introduce new compatibility
macros to obsolete functions and variables.
   
* org-agenda.el, org-clock.el, org-id.el, org-lparse.el, * org-agenda.el (org-get-entries-from-diary): Turn off
org-protocol.el org.el: Use `diary-file-name-prefix' instead of
`org-define-obsolete-{function,variable}-alias' instead of `diary-file-name-prefix-function', the former is checked before
`define-obsolate{function,variable}-alias'. the latter.
* org.el (org-edit-special): Check for table.el before checking
for Org tables.
2013-01-13 Michael Albinus <michael.albinus@gmx.de>
* ob-eval.el (org-babel-shell-command-on-region): Use
`executable-find' for local `shell-file-name'.
2013-01-08 Achim Gratz <Stromeko@Stromeko.de>
   
* org-faces.el: Define face alias mode-line for XEmacs (it's * org-faces.el: Define face alias mode-line for XEmacs (it's
called modeline there). called modeline there).
   
* org-compat.el (org-condition-case-unless-debug): Do not use
defalias for special forms, the Emacs 22 byte-compiler does not
recognize them correctly when compiling macros. Use a macro
instead and rely on macro expansion. That however makes the
decision at compile time, which should be acceptable in this case
since it only affects debugging.
* org-compat.el (org-no-popups): New wrapper macro which let-binds * org-compat.el (org-no-popups): New wrapper macro which let-binds
the correct variables to suppress popup windows depending on the the correct variables to suppress popup windows depending on the
Emacs version in use. This is a compile-time decision when Emacs version in use. This is a compile-time decision when
......
...@@ -137,11 +137,17 @@ specifies the value of ERROR-BUFFER." ...@@ -137,11 +137,17 @@ specifies the value of ERROR-BUFFER."
t))) t)))
(let ((input-file (org-babel-temp-file "input-")) (let ((input-file (org-babel-temp-file "input-"))
(error-file (if error-buffer (org-babel-temp-file "scor-") nil)) (error-file (if error-buffer (org-babel-temp-file "scor-") nil))
;; Unfortunately, `executable-find' does not support file name
;; handlers. Therefore, we could use it in the local case
;; only.
(shell-file-name (shell-file-name
(if (file-executable-p (cond ((and (not (file-remote-p default-directory))
(executable-find shell-file-name))
shell-file-name)
((file-executable-p
(concat (file-remote-p default-directory) shell-file-name)) (concat (file-remote-p default-directory) shell-file-name))
shell-file-name shell-file-name)
"/bin/sh")) ("/bin/sh")))
exit-status) exit-status)
;; There is an error in `process-file' when `error-file' exists. ;; There is an error in `process-file' when `error-file' exists.
;; This is fixed in Emacs trunk as of 2012-12-21; let's use this ;; This is fixed in Emacs trunk as of 2012-12-21; let's use this
......
...@@ -890,7 +890,7 @@ you want to use two-columns display (see `org-agenda-menu-two-columns')." ...@@ -890,7 +890,7 @@ you want to use two-columns display (see `org-agenda-menu-two-columns')."
:version "24.1" :version "24.1"
:type 'boolean) :type 'boolean)
(org-define-obsolete-variable-alias 'org-agenda-menu-two-column 'org-agenda-menu-two-columns "24.3") (define-obsolete-variable-alias 'org-agenda-menu-two-column 'org-agenda-menu-two-columns "24.3")
(defcustom org-agenda-menu-two-columns nil (defcustom org-agenda-menu-two-columns nil
"Non-nil means, use two columns to show custom commands in the dispatcher. "Non-nil means, use two columns to show custom commands in the dispatcher.
...@@ -900,7 +900,7 @@ to nil." ...@@ -900,7 +900,7 @@ to nil."
:version "24.1" :version "24.1"
:type 'boolean) :type 'boolean)
(org-define-obsolete-variable-alias 'org-finalize-agenda-hook 'org-agenda-finalize-hook "24.3") (define-obsolete-variable-alias 'org-finalize-agenda-hook 'org-agenda-finalize-hook "24.3")
(defcustom org-agenda-finalize-hook nil (defcustom org-agenda-finalize-hook nil
"Hook run just before displaying an agenda buffer. "Hook run just before displaying an agenda buffer.
The buffer is still writable when the hook is called. The buffer is still writable when the hook is called.
...@@ -1648,26 +1648,53 @@ When non-nil, this must be the number of minutes, e.g. 60 for one hour." ...@@ -1648,26 +1648,53 @@ When non-nil, this must be the number of minutes, e.g. 60 for one hour."
(const :tag "No default duration"))) (const :tag "No default duration")))
(defcustom org-agenda-show-inherited-tags t (defcustom org-agenda-show-inherited-tags t
"Non-nil means show inherited tags in each agenda line." "Non-nil means show inherited tags in each agenda line.
When this option is set to 'always, it take precedences over
`org-agenda-use-tag-inheritance' and inherited tags are shown
in every agenda.
When this option is set to t (the default), inherited tags are
shown when they are available, i.e. when the value of
`org-agenda-use-tag-inheritance' has been taken into account.
This can be set to a list of agenda types in which the agenda
must display the inherited tags. Available types are 'todo,
'agenda, 'search and 'timeline.
When set to nil, never show inherited tags in agenda lines."
:group 'org-agenda-line-format :group 'org-agenda-line-format
:type 'boolean) :group 'org-agenda
:version "24.3"
:type '(choice
(const :tag "Show inherited tags when available" t)
(const :tag "Always show inherited tags" 'always)
(repeat :tag "Show inherited tags only in selected agenda types"
(symbol :tag "Agenda type"))))
(defcustom org-agenda-use-tag-inheritance '(todo search timeline agenda) (defcustom org-agenda-use-tag-inheritance '(todo search timeline agenda)
"List of agenda view types where to use tag inheritance. "List of agenda view types where to use tag inheritance.
In tags/tags-todo/tags-tree agenda views, tag inheritance is In tags/tags-todo/tags-tree agenda views, tag inheritance is
controlled by `org-use-tag-inheritance'. In other agenda types, controlled by `org-use-tag-inheritance'. In other agenda types,
`org-use-tag-inheritance' is not used when selecting the agenda `org-use-tag-inheritance' is not used for the selection of the
entries, but you may want the agenda to use the inherited tags agenda entries. Still, you may want the agenda to be aware of
anyway, e.g. for later tag filtering. the inherited tags anyway, e.g. for later tag filtering.
The default value reset tags in every agenda type. Setting this Allowed value are 'todo, 'search, 'timeline and 'agenda.
option to nil will speed up non-tags agenda view a lot.
Allowed value are 'todo, 'search, 'timeline and 'agenda." This variable has no effect if `org-agenda-show-inherited-tags'
:version "24.3" is set to 'always. In that case, the agenda is aware of those
tags.
The default value sets tags in every agenda type. Setting this
option to nil will speed up non-tags agenda view a lot."
:group 'org-agenda :group 'org-agenda
:type '(repeat (symbol :tag "Agenda type"))) :version "24.3"
:type '(choice
(const :tag "Use tag inheritance in all agenda types" t)
(repeat :tag "Use tag inheritance in selected agenda types"
(symbol :tag "Agenda type"))))
(defcustom org-agenda-hide-tags-regexp nil (defcustom org-agenda-hide-tags-regexp nil
"Regular expression used to filter away specific tags in agenda views. "Regular expression used to filter away specific tags in agenda views.
...@@ -2363,7 +2390,7 @@ For example, if you have a custom agenda command \"p\" and you ...@@ -2363,7 +2390,7 @@ For example, if you have a custom agenda command \"p\" and you
want this command to be accessible only from plain text files, want this command to be accessible only from plain text files,
use this: use this:
'((\"p\" (in-file . \"\\.txt\"))) '((\"p\" ((in-file . \"\\.txt\"))))
Here are the available contexts definitions: Here are the available contexts definitions:
...@@ -2379,7 +2406,7 @@ accessible if there is at least one valid check. ...@@ -2379,7 +2406,7 @@ accessible if there is at least one valid check.
You can also bind a key to another agenda custom command You can also bind a key to another agenda custom command
depending on contextual rules. depending on contextual rules.
'((\"p\" \"q\" (in-file . \"\\.txt\"))) '((\"p\" \"q\" ((in-file . \"\\.txt\"))))
Here it means: in .txt files, use \"p\" as the key for the Here it means: in .txt files, use \"p\" as the key for the
agenda command otherwise associated with \"q\". (The command agenda command otherwise associated with \"q\". (The command
...@@ -3569,8 +3596,14 @@ generating a new one." ...@@ -3569,8 +3596,14 @@ generating a new one."
(save-excursion (next-single-property-change (point-min) 'org-habit-p))) (save-excursion (next-single-property-change (point-min) 'org-habit-p)))
(org-habit-insert-consistency-graphs)) (org-habit-insert-consistency-graphs))
(setq org-agenda-type (org-get-at-bol 'org-agenda-type)) (setq org-agenda-type (org-get-at-bol 'org-agenda-type))
(when (delq nil (mapcar (lambda (tp) (org-agenda-check-type nil tp)) (unless (or (eq org-agenda-show-inherited-tags 'always)
org-agenda-use-tag-inheritance)) (and (listp org-agenda-show-inherited-tags)
(memq org-agenda-type org-agenda-show-inherited-tags))
(and (eq org-agenda-show-inherited-tags t)
(or (eq org-agenda-use-tag-inheritance t)
(and (listp org-agenda-use-tag-inheritance)
(not (memq org-agenda-type
org-agenda-use-tag-inheritance))))))
(let (mrk) (let (mrk)
(save-excursion (save-excursion
(goto-char (point-min)) (goto-char (point-min))
...@@ -4290,7 +4323,7 @@ in `org-agenda-text-search-extra-files'." ...@@ -4290,7 +4323,7 @@ in `org-agenda-text-search-extra-files'."
'help-echo (format "mouse-2 or RET jump to location"))) 'help-echo (format "mouse-2 or RET jump to location")))
(full-words org-agenda-search-view-force-full-words) (full-words org-agenda-search-view-force-full-words)
(org-agenda-text-search-extra-files org-agenda-text-search-extra-files) (org-agenda-text-search-extra-files org-agenda-text-search-extra-files)
regexp rtn rtnall files file pos regexp rtn rtnall files file pos inherited-tags
marker category category-pos tags c neg re boolean marker category category-pos tags c neg re boolean
ee txt beg end words regexps+ regexps- hdl-only buffer beg1 str) ee txt beg end words regexps+ regexps- hdl-only buffer beg1 str)
(unless (and (not edit-at) (unless (and (not edit-at)
...@@ -4444,7 +4477,13 @@ in `org-agenda-text-search-extra-files'." ...@@ -4444,7 +4477,13 @@ in `org-agenda-text-search-extra-files'."
(setq marker (org-agenda-new-marker (point)) (setq marker (org-agenda-new-marker (point))
category (org-get-category) category (org-get-category)
category-pos (get-text-property (point) 'org-category-position) category-pos (get-text-property (point) 'org-category-position)
tags (org-get-tags-at nil t) inherited-tags
(or (eq org-agenda-show-inherited-tags 'always)
(memq 'todo org-agenda-show-inherited-tags)
(and (eq org-agenda-show-inherited-tags t)
(or (eq org-agenda-use-tag-inheritance t)
(memq 'todo org-agenda-use-tag-inheritance))))
tags (org-get-tags-at nil (not inherited-tags))
txt (org-agenda-format-item txt (org-agenda-format-item
"" ""
(buffer-substring-no-properties (buffer-substring-no-properties
...@@ -4974,7 +5013,7 @@ of what a project is and how to check if it stuck, customize the variable ...@@ -4974,7 +5013,7 @@ of what a project is and how to check if it stuck, customize the variable
(pop-up-frames nil) (pop-up-frames nil)
(diary-list-entries-hook (diary-list-entries-hook
(cons 'org-diary-default-entry diary-list-entries-hook)) (cons 'org-diary-default-entry diary-list-entries-hook))
(diary-file-name-prefix-function nil) ; turn this feature off (diary-file-name-prefix nil) ; turn this feature off
(diary-modify-entry-list-string-function 'org-modify-diary-entry-string) (diary-modify-entry-list-string-function 'org-modify-diary-entry-string)
entries entries
(org-disable-agenda-to-diary t)) (org-disable-agenda-to-diary t))
...@@ -5250,7 +5289,7 @@ the documentation of `org-diary'." ...@@ -5250,7 +5289,7 @@ the documentation of `org-diary'."
"\\|") "\\)")) "\\|") "\\)"))
(t org-not-done-regexp)))) (t org-not-done-regexp))))
marker priority category category-pos tags todo-state marker priority category category-pos tags todo-state
ee txt beg end) ee txt beg end inherited-tags)
(goto-char (point-min)) (goto-char (point-min))
(while (re-search-forward regexp nil t) (while (re-search-forward regexp nil t)
(catch :skip (catch :skip
...@@ -5268,7 +5307,14 @@ the documentation of `org-diary'." ...@@ -5268,7 +5307,14 @@ the documentation of `org-diary'."
category-pos (get-text-property (point) 'org-category-position) category-pos (get-text-property (point) 'org-category-position)
txt (org-trim txt (org-trim
(buffer-substring (match-beginning 2) (match-end 0))) (buffer-substring (match-beginning 2) (match-end 0)))
tags (org-get-tags-at nil t) inherited-tags
(or (eq org-agenda-show-inherited-tags 'always)
(and (listp org-agenda-show-inherited-tags)
(memq 'todo org-agenda-show-inherited-tags))
(and (eq org-agenda-show-inherited-tags t)
(or (eq org-agenda-use-tag-inheritance t)
(memq 'todo org-agenda-use-tag-inheritance))))
tags (org-get-tags-at nil (not inherited-tags))
txt (org-agenda-format-item "" txt category tags t) txt (org-agenda-format-item "" txt category tags t)
priority (1+ (org-get-priority txt)) priority (1+ (org-get-priority txt))
todo-state (org-get-todo-state)) todo-state (org-get-todo-state))
...@@ -5395,7 +5441,8 @@ Do we have a reason to ignore this TODO entry because it has a time stamp? ...@@ -5395,7 +5441,8 @@ Do we have a reason to ignore this TODO entry because it has a time stamp?
"\\|\\(<%%\\(([^>\n]+)\\)>\\)")) "\\|\\(<%%\\(([^>\n]+)\\)>\\)"))
marker hdmarker deadlinep scheduledp clockp closedp inactivep marker hdmarker deadlinep scheduledp clockp closedp inactivep
donep tmp priority category category-pos ee txt timestr tags donep tmp priority category category-pos ee txt timestr tags
b0 b3 e3 head todo-state end-of-match show-all warntime habitp) b0 b3 e3 head todo-state end-of-match show-all warntime habitp
inherited-tags)
(goto-char (point-min)) (goto-char (point-min))
(while (setq end-of-match (re-search-forward regexp nil t)) (while (setq end-of-match (re-search-forward regexp nil t))
(setq b0 (match-beginning 0) (setq b0 (match-beginning 0)
...@@ -5447,7 +5494,14 @@ Do we have a reason to ignore this TODO entry because it has a time stamp? ...@@ -5447,7 +5494,14 @@ Do we have a reason to ignore this TODO entry because it has a time stamp?
(assoc (point) deadline-position-alist)) (assoc (point) deadline-position-alist))
(throw :skip nil)) (throw :skip nil))
(setq hdmarker (org-agenda-new-marker) (setq hdmarker (org-agenda-new-marker)
tags (org-get-tags-at nil t)) inherited-tags
(or (eq org-agenda-show-inherited-tags 'always)
(and (listp org-agenda-show-inherited-tags)
(memq 'agenda org-agenda-show-inherited-tags))
(and (eq org-agenda-show-inherited-tags t)
(or (eq org-agenda-use-tag-inheritance t)
(memq 'agenda org-agenda-use-tag-inheritance))))
tags (org-get-tags-at nil (not inherited-tags)))
(looking-at "\\*+[ \t]+\\([^\r\n]+\\)") (looking-at "\\*+[ \t]+\\([^\r\n]+\\)")
(setq head (or (match-string 1) "")) (setq head (or (match-string 1) ""))
(setq txt (org-agenda-format-item (setq txt (org-agenda-format-item
...@@ -5479,7 +5533,7 @@ Do we have a reason to ignore this TODO entry because it has a time stamp? ...@@ -5479,7 +5533,7 @@ Do we have a reason to ignore this TODO entry because it has a time stamp?
(abbreviate-file-name buffer-file-name)))) (abbreviate-file-name buffer-file-name))))
(regexp "^&?%%(") (regexp "^&?%%(")
marker category extra category-pos ee txt tags entry marker category extra category-pos ee txt tags entry
result beg b sexp sexp-entry todo-state warntime) result beg b sexp sexp-entry todo-state warntime inherited-tags)
(goto-char (point-min)) (goto-char (point-min))
(while (re-search-forward regexp nil t) (while (re-search-forward regexp nil t)
(catch :skip (catch :skip
...@@ -5497,7 +5551,14 @@ Do we have a reason to ignore this TODO entry because it has a time stamp? ...@@ -5497,7 +5551,14 @@ Do we have a reason to ignore this TODO entry because it has a time stamp?
(setq marker (org-agenda-new-marker beg) (setq marker (org-agenda-new-marker beg)
category (org-get-category beg) category (org-get-category beg)
category-pos (get-text-property beg 'org-category-position) category-pos (get-text-property beg 'org-category-position)
tags (save-excursion (org-back-to-heading t) (org-get-tags-at nil t)) inherited-tags
(or (eq org-agenda-show-inherited-tags 'always)
(and (listp org-agenda-show-inherited-tags)
(memq 'agenda org-agenda-show-inherited-tags))
(and (eq org-agenda-show-inherited-tags t)
(or (eq org-agenda-use-tag-inheritance t)
(memq 'agenda org-agenda-use-tag-inheritance))))
tags (org-get-tags-at nil (not inherited-tags))
todo-state (org-get-todo-state) todo-state (org-get-todo-state)
warntime (get-text-property (point) 'org-appt-warntime) warntime (get-text-property (point) 'org-appt-warntime)
extra nil) extra nil)
...@@ -5628,7 +5689,7 @@ please use `org-class' instead." ...@@ -5628,7 +5689,7 @@ please use `org-class' instead."
1 11)))) 1 11))))
(org-agenda-search-headline-for-time nil) (org-agenda-search-headline-for-time nil)
marker hdmarker priority category category-pos tags closedp marker hdmarker priority category category-pos tags closedp