* lisp/org.el (org-fill-context-prefix, org-fill-paragraph): Do not
fill verse blocks contents. Verse blocks can be used to format
free-form poetry, so filling has to be done manually.
* testing/lisp/test-org.el: Remove unnecessary tests.
* 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.texi (Templates in contexts, Setting Options): Update to
reflect changes in how contexts options are processed.
* 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.texi (Templates in contexts): Document the new structure
of the variables `org-agenda-custom-commands-contexts' and
`org-capture-templates-contexts'.
In the setup below, X is not a real capture template, it is just
an alias to templates A and B in .txt and .el files. A and B are
deactivated by default in all files.
(setq org-capture-templates
'(("X" "Nothing but an alias")
("A" "AAAA" entry (file+headline [...]))
("B" "BBBB" entry (file+headline [...]))))
(setq org-capture-templates-contexts
'(("A" "A" ((not-in-file . ".*")))
("B" "B" ((not-in-file . ".*")))
("X" "A" ((in-file . "\\.txt")))
("X" "B" ((in-file . "\\.el")))))
Thanks to Carsten for suggesting this "key-replacement" idea!
* 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.texi (Templates in contexts): Document the new option
`org-capture-templates-contexts'.
(Storing searches): Document the new option
`org-agenda-custom-commands-contexts'.
This idea comes from Sylvain Rousseau, who implemented a similar
feature with org-context.el: https://github.com/thisirs/org-context
This implementation is a bit simpler and more general. Simpler
because it relies on existing templates, no need to define other
contextual ones. More general because contexts can be defined
wrt files and modes.
Thanks *very much* to Sylvain for paving the way -- certainly a
great addition to Org.
* org.el (org-mark-subtree): Maybe call `org-mark-element'
interactively.
(org-mark-element): Only mark further elements when called
interactively.
For example, M-x org-export RET calls `org-mark-subtree' and
should not mark the further element when an element is already
marked.
Thanks To Bernt Hansen for reporting a bug related to this.
# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
* 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.
This fixes a bug when fontifying [[http://orgmode.org][Org]]Mode --
where "Mode" should not be fontified, because it is not part of the
bracketed link.
Note that there was another related bug: C-c C-o on "Mode" used to
try opening a plain link. Also fixed in this commit.
* 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.
(t nil) in (cond (...) (...) (t nil)) has no other meaning that to
remind the developer that the cond sexp returns nil in case no condition
is matched. For several (cond ...) constructs this is obvious from reading
the code. For others, the reminder might be useful and we leave it.
See the discussion about this on emacs-devel:
http://thread.gmane.org/gmane.emacs.devel/152664
* lisp/org.el (org-fill-paragraph): Fix filling in a narrowed buffer.
(org-fill-context-prefix): Fill prefix doesn't depend on current
narrowing.
* testing/lisp/test-org.el: Add test.
* 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.
* lisp/org.el (org-fill-paragraph): No need to use
`org-element-paragraph-separate' in a verse block since blank lines
only can end a "paragraph".
* lisp/org-element.el (org-element-paragraph-separate): Apply changes
to comments.
(org-element-paragraph-parser): Correctly find end of paragraphs.
(org-element--current-element): Require colons for Babel calls.
(org-element-center-block-parser, org-element-dynamic-block-parser,
org-element-quote-block-parser, org-element-special-block-parser,
org-element-comment-block-parser, org-element-example-block-parser,
org-element-export-block-parser, org-element-src-block-parser,
org-element-verse-block-parser): Fall-back to paragraph parsing when
incomplete or ill-formed.
* testing/lisp/test-org-element.el: Update tests.
* 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.el (org-fill-context-prefix): Require org-element.
(org-timestamp-change): Fix bug by saving excursion when
adjusting another clock.
Thanks to Steinar Bang for reporting this.
* 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.
Thanks to Torsten Wagner for triggering this discussion.
* 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 (orgstruct-setup): Require `org-element'.
This prevents an error for git users who use orgstruct-mode
(and orgstruct++-mode) and forget to make autoloads.
* 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.
* lisp/org.el (org-mark-subtree): Do not make a special case for
inlinetasks when marking a subtree. These are handled by
`org-element-mark-element'.
* testing/lisp/test-org.el: Add test.
* 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 (org-outline-regexp-bol, org-heading-regexp): Use
variables instead of constants.
This fixes compiler warnings when compiling with Emacs 23.4.
* org.el (org-open-at-point): Only set
`clean-buffer-list-kill-buffer-names' when the feature
'midnight has been loaded.
Thanks to François Allisson for reporting this bug.
* 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.texi (Special properties, Column attributes)
(Agenda column view): Document the new special property
CLOCKSUM_T.
Thanks to Brian Wood who asked a question wrt this.
* 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.el (org-latex-preview-ltxpng-directory): New option.
(org-preview-latex-fragment): Store LaTeX preview images in
`org-latex-preview-ltxpng-directory'.
Added an option `org-latex-preview-ltxpng-directory' with a path
where the preview images will be stored. The default does not
change (small little ltxpng scattered all over the place) but now
the user can chose an absolute path and put all the images on a
single place.
TINYCHANGE
* 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'.
Thanks to Tobias Naehring for this idea.
* 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.
Thanks to Yagnesh Raghava Yakkala who suggested this.
* org.el (org-mode-map): Don't bind C-<up> and C-<down> 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.texi (Fast access to TODO states): Fix documentation
about allowed characters for fast todo selection.
* org.el (org-todo-keywords): Ditto.
This fixes this wrong change here:
http://orgmode.org/w/?p=org-mode.git;a=commit;h=b6cb72
Prior to this change compiling org-mode and then running Org-mode
functions from a batch Emacs would throw the following error.
Symbol's function definition is void: org-check-version
Moving the require of org-compat before the use of this function in
org.el fixes this problem.
* lisp/org.el (org-compat): Require org-compat before we first use one
of its functions (a macro actually).
* 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.texi (Weekly/daily agenda): Mention APPT_WARNTIME and
its use in `org-agenda-to-appt'.
This feature has been suggested, along with preliminary patches,
by Ivan Kanis. Thanks!
* 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.
See http://debbugs.gnu.org/cgi/bugreport.cgi?bug=11774 for a
discussion about this.
* 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: Update a few keybindings.
Use [(control down)] and "\M-}" for `org-element-forward'.
Use [(control up)] and "\M-{ `org-element-backward'.
Use "\C-c\C-^" for `org-element-up'.
Use "\C-c\C-_" for `org-element-down'.
Use "\C-c\C-@" for `org-element-mark-element'.
* org-element.el (org-element-down): Throw an error when the
element has no content.
* lisp/org.el (org-mode): Set comments related variables.
(org-insert-comment, org-comment-or-uncomment-region): New functions.
* testing/lisp/test-org.el: Add test.
* 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'.
Thanks to Bjarte Johansen for bringing this up.
* 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.
Thanks to John Hendy who triggered this change.
* lisp/org.el (org-fill-context-prefix): New function.
(org-fill-paragraph, org-auto-fill-function): Use new function. Also
handle comments.
(org-adaptive-fill-function): Remove function.
(org-get-local-variables, orgstruct++-mode): Don't store now unused
adaptive-fill* functions.
* lisp/org.el (org-planning-or-clock-line-re): Make it a defconst.
It's no use to make it a buffer-local variable since variables on
which it depends are not buffer-local anyway.
* 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-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-mode-map): Bind `org-resolve-clocks' to `C-c C-x C-z'.
* org.texi (Resolving idle time): Document new keybinding.
Thanks to Joseph Thomas for suggesting this.
* 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-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.texi (Clocking commands): Document the use of
S-M-<up/down> on clock timestamps.
Thanks to Joseph Thomas who suggested this.
Thanks to dunib from #org-mode for pointing this out.
* lisp/org.el (org-babel-load-languages): Common lisp should be
mentioned as a supported babel language.
This patch ensure Org-mode will build on all supported versions of
Emacs, after the renaming of the cl macros behind the cl- prefix in the
recent Emacs trunk.
* lisp/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.
* lisp/ob-R.el (org-compat): Require org-compat.
* lisp/ob-comint.el: Require org-compat.
* lisp/ob-exp.el (org-babel-exp-do-export): Switch to compatibility
function.
* lisp/ob-gnuplot.el (org-babel-expand-body:gnuplot): Switch to
compatibility function.
* lisp/ob-lob.el (org-babel-lob-get-info): Switch to compatibility
function.
(org-babel-lob-execute): Switch to compatibility function.
* lisp/ob-python.el (org-babel-python-evaluate-session): Switch to
compatibility function.
* lisp/ob-ref.el (org-babel-ref-index-list): Switch to compatibility
function.
* lisp/ob-sh.el (org-babel-sh-var-to-string): Switch to compatibility
function.
* lisp/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.
* lisp/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.
* lisp/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.
* lisp/org-exp-blocks.el (org-export-blocks-preprocess): Switch to
compatibility function.
* lisp/org-exp.el (org-export-format-source-code-or-example): Switch to
compatibility function.
* lisp/org-macs.el (org-called-interactively-p): Indentation fix.
* lisp/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.
* lisp/org-plot.el (org-plot/gnuplot-to-grid-data): Switch to
compatibility function.
(org-plot/gnuplot-script): Switch to compatibility function.
* lisp/org.el (org-entry-get): Switch to compatibility function.
(org-fill-paragraph): Switch to compatibility function.
(org-auto-fill-function): Switch to compatibility function.
* UTILITIES/org-fixup.el (org-make-org-version): Provide feature
'org-version.
* lisp/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.
* lisp/org.el: Use org-check-version.
This should finally provide the correct behaviour in all supported
use-cases as well as a few corner scenarios that were reported on the
mailing list and allow to always build on Git, ELPA and Emacs Bzr
correctly. The file org-version.el must be added to the Emacs sources
and should be re-generated each time orgmode Git is synced to Emacs
Bzr (it would be best to automate this).
Note that the internal functions (org-release) and (org-git-release)
are not autoloaded when org-version is not present and become only
available when org.el is loaded. This should pose no problem since
they are only used by (org-version), which is autoloaded from org.el.
* UTILITIES/org-fixup.el: Clean up and add doc strings.
* UTILITIES/org-fixup.el (org-make-autoloads): Add optional arguments
and implementation for comopiling and force compiling.
* UTILITIES/org-fixup.el (org-make-autoloads-compile,
org-make-autoloads-compile-force): Convenience definitions with
pre-selected arguments, avoids complicated quoted on invocation from
command line.
* UTILITIES/org-fixup.el (org-fixup): Add "-git" to git version when
run from a bare Git worktree. Give message instead of returning
string inside quoted progn for easier tracing.
* lisp/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.texi (Fast access to TODO states): Explicitely says only
letters are supported as fast TODO selection keys.
* org.el (org-todo-keywords): Ditto.
Thanks to Samuel Wales for pointing at this.
* 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.
Thanks to Bernt Hansen who reported the problem.
* org.el (org-link-expand-abbrev): Implement "%(my-function)"
as a new specifier. Update the docstring.
* org.texi (Link abbreviations): Illustrate the use of the
"%h" specifier. Document the new "%(my-function)" specifier.
Thanks to Takaaki ISHIKAWA who came all the way down from Tokyo
to Paris and raised a not-so-distant issue: "could we translate
emails from the mailing list and have a URI for each translated
email?" See the update in the manual for an answer.
* 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.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.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.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.el (org-time-stamp): With two universal arguments,
insert an active timestamp with the current time without
prompting the user.
This idea came up on the list, I can't recall who proposed this.
Thanks to him anyway!
* org.el (org-at-comment-p): New function.
(org-toggle-heading): Use `org-at-comment-p' to skip comments.
Thanks to Charlie Millar for raising this issue.
* 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).
Thanks to Nick Dokos for raising this issue.
* lisp/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.
* lisp/org.el (org-fontify-entities): Fix bug: The entities \sup[123] and
\there4 were not "prettified" when org-pretty-entities was enabled.
TINYCHANGE
* lisp/org.el (org-fontify-entities): Fix bug: The entities \sup[123] and
\there4 were not "prettified" when org-pretty-entities was enabled.
TINYCHANGE
* org.el (org-open-at-point): Allow to open the agenda from an
active or inactive timestamp in a headline.
TINYCHANGE
Thanks to Ingo Lohmar for this patch.
* org.el (org-scan-tags): Fix bug when building the scanner regexp.
Thanks to Mike McLean, who first reported this issue and provided a
reproducible recipe. Thanks to Laurynas Biveinis and Loris Bennett
who provided complementary feedback on this.
* 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.
* lisp/org-agenda.el: Replace with-no-warnings with
org-no-warnings (defined in org-macs.el).
* lisp/org-bbdb.el: Replace with-no-warnings with
org-no-warnings (defined in org-macs.el).
* lisp/org-clock.el: Replace with-no-warnings with
org-no-warnings (defined in org-macs.el).
* lisp/org.el: Replace with-no-warnings with org-no-warnings (defined
in org-macs.el).
* lisp/org-compat.el (org-find-library-dir): rename
org-find-library-name (misleading) and implement with a function
that exists identically in Emacs/XEmacs.
* UTILITIES/org-fixup.el: change calls to org-find-library-dir.
Simplify invocations of git, use the same arguments as in targets.mk
and use only functions that work the same in EMacs and XEmacs.
* lisp/org-exp-blocks.el: change calls to org-find-library-dir.
* lisp/org.el: change calls to org-find-library-dir. Make require for
noutline fail silently because it is missing from XEmacs.
* UTILITIES/org-fixup.el (org-make-org-version): change defconst to
defun for org-release and org-git-version and close over those
variables (do not make them global anymore).
* UTILITIES/org-fixup.el (org-fixup): check for org-version.el or try
to use git to get the version from the worktree (code uses parts of
the former implementation from org.el).
* lisp/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).
Supported use-cases:
1) Org uninstalled (and possibly uncompiled) from Git or tarball.
1a) No org-version.el or org-install.el exists in worktree. Partially
supported configuration, org version is determined from git if
possible via UTILITIES/org-fixup.el. However, Emacs versions
delivered with orgmode will provide autoloads that may or may not work
with that version of org (mixed installation). If such a situation is
encountered, warn the user. It can work if the autoloads from the
installation match the ones that would be generated for the worktree,
which generelly is only the case if there is a relatively recent
installation in site-lisp.
1b) Autoload file org-install.el exists in worktree. Fully supported
configuration, org version is determined from git if possible via
UTILITIES/org-fixup.el.
1c) Both org-version.el or org-install.el exist in worktree.
Recommended configuration for 1), org version is taken from
org-version.el (git never gets invoked).
2) Org installed. Both org-version.el and org-install.el must exist
in install directory. Only supported configuration for 2), org
version is taken from org-version.el (git never gets invoked since
UTILITIES/org-fixup.el is not available).
Any unsupported configuration should still yield a version string, but
it will contain "N/A" to alert the user about a botched org
installation.
* lisp/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 (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.
Promoting a top-level subtree can be useful but should not be allowed by
default, as this restructuring is only reversible with M-x undo RET.
* org.el (org-create-formula-image-with-dvipng)
(org-create-formula-image-with-imagemagick): Make sure a file
exists before trying to delete it.
Thanks to Benjamin Motz for this idea.
* org.el (org-indent-line-function): Fix bug.
Don't fall back systematically on `org-fb-vars' to do
the indentation. Only fall back at then end, when no
modification has been done by indenting a la Org. In
that case, use `indent-according-to-mode' instead of
using `indent-line-function' to avoid a possible loop.
Thanks to Eric Fraga, Christopher Schmidt and Nicolas
Goaziou who reported problems with this.
* 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.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.
Thanks to Ken Williams for this feature request and to Charles
C. Berry for a preliminary patch for this.
* org.el (org-properties-postprocess-alist): Better
customization type.
(org-set-property): Fix the check against
`org-properties-postprocess-alist'.
Thanks to Bill Wishon for testing/spotting this.
* 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.
Thanks to Sébastien for reporting these bugs.
* 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.el (org-create-formula-image-with-imagemagick): Use 'call-process
to launch latex so that no shell output buffer will be shown when previewing
formulas.
* 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.
* lisp/org.el (org-set-regexps-and-options): Fix
`org-planning-or-clock-line-re' regexp. Indeed "\\>" will never
match since time keywords must end with colons, which are not word
constituent.
* 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.
Thanks to Alex Lane for suggesting this.
* 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.
Thanks to Christopher Schmidt for reporting this and to Eric
S Fraga for insisting on it.
This commit creates these fall-back buffer-local variables:
(defvar org-auto-fill-fallback-function nil)
(defvar org-fill-paragraph-fallback-function nil)
(defvar org-indent-line-fallback-function nil)
When `org-auto-fill-function' cannot do anything useful in the
current mode and `org-auto-fill-fallback-function' is set (for
example to `message-do-auto-fill), use the fall-back function
before `do-auto-file'.
When `org-fill-paragraph-function' cannot do anything useful in the
current mode and `org-fill-paragraph-fallback-function' is set (for
example to `message-fill-paragraph'), use the fall-back function
before `fill-paragraph'.
When `org-indent-line-fallback-function' is set, always run it
instead of `org-indent-line-function'.
* org.el (org-read-date): Bugfix: call `org-eval-in-calendar'
with the 'keepdate parameter set to t when setting the cursor
type.
Thanks to Matt Lundin for reporting this and for the solution.
* 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.
Using inverse video for the selected date might be too much for many
people, but with cursor-type set to nil (thanks to Toby Cubitt for this)
and with a light-weight font, we need to really highlight the selected
date -- and a simple color change is not catchy enough IMO.
* org-archive.el (org-archive-subtree): Allow archiving to a
datetree.
* org.el (org-archive-location): Ditto.
* org.texi (Moving subtrees): Document the ability to archive
to a datetree.
TINYCHANGE
* lisp/org-list.el (org-list-struct-indent): Follow
`org-list-demote-modify-bullet' specifications for ordered bullets.
(org-list-indent-item-generic, org-indent-item-tree,
org-outdent-item-tree): Fix bug when operating on a region.
(org-outdent-item, org-indent-item): Allow to operate on a region.
* lisp/org.el (org-shiftmetaleft, org-shiftmetaright): Allow to
operate on a region.
* testing/lisp/test-org-list.el: Add tests.