* 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 %?.
Thanks to Gsqual for reporting this and to Nick Dokos for digging into this
issue.
* org-table.el (org-table-convert-refs-to-rc): Fix bug when
converting remote table references.
Thanks to Jose E. Marchesi who provided a preliminary patch for this.
* org-rmail.el (org-rmail-follow-link): Use `rmail-widen'
instead of `widen' and don't toggle header as `rmail-widen'
already takes care of this.
TINYCHANGE
--
T.F. Torrey
* targets.mk: Remove targets compile-source and compile-single,
obsoleted by new configuration option. Remove repetitive code in
clean targets by using pattern substitution. Avoid superfluous
invocations of find by using multiple path arguments.
* Makefile: Remove compile-source and compile-single target
documentation.
* default.mk: Add new option _COMPILE_ to select compilation method.
Set default value to keep current behaviour.
* lisp/Makefile: Use new $(_COMPILE_) to dispatch compilation target.
Implement private targets compile-dirall (default), compile-single,
compile-slint1 and compile-slint2.
The additional compilation methods catch more and/or different errors
in the sources by compiling the sources in a single Emacs process per
compilation and with different conditions of the source directory, but
take much longer to compile even in the absence of such errors. The
default method to use can be changed (like all other options) via
local.mk or temporarily on the command line.
* 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-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-element.el (org-element-item-parser,
org-element-plain-list-parser): Make sure that the element ends at
the beginning of a line if possible.
(org-element-at-point): Return expected element when point is at an
element's end or at its contents' end.
* testing/lisp/test-org-element.el: Add test.
* testing/lisp/test-org.el: Add test.
* 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.
In the case where rtnall is empty (no item for current day), we do not
call org-agenda-add-time-grid-maybe. This seems bogus because that
function is already computing whether the time grid must be included,
and does so according to the user's preferences.
In particular, the `org-agenda-time-grid' variable has a
'require-timed' parameter controlling the visibility of the time grid.
So, this patch :
- removes the premature check for rtnall being empty,
- inconditionally calls org-agenda-add-time-grid-maybe,
- and finally checks the emptiness of the resulting list
before pretty printing.
TINYCHANGE
* 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.
Thanks to Eric Abrahamsen for this idea and a first patch.
* 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-rmail.el (org-rmail-store-link, org-rmail-follow-link):
Toggle headers when necessary.
Thanks to T.F. Torrey for reporting this bug and for proposing a fix.
* 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.
* lisp/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.
* 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.
* default.mk: Re-introduce ELC for single file compilation.
* targets.mk: New targets compile-single and compile-single-source
that get handed off to lisp/Makefile.
* lisp/Makefile: Implement pattern rule using $(ELC). Implement
target compile-single that uses a separate Emacs process for each
target by invoking the pattern rule. Implement target
compile-single-source that additionally removes the compiled file
directly after it has been produced, so compilation will always use
source files only, never byte-compiled files.
* Makefile: Document new targets.
These new targets are meant to check for problems with
interdependencies in Org.
* 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-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.
Thanks to James Harkins who helped figuring out the problem here.
* 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.
* lisp/org-element.el (org-element-item-interpreter): Simplify bullet
creation.
(org-element-plain-list-interpreter): Fix wrong bullets, if needed.
This change allows to intrepret plain lists without providing list's
structure, which can be a bit hairy. For example, the following
snippet now suffices to create a list programmatically:
(org-element-interpret-data
'(plain-list nil
(item (:bullet "-") (paragraph nil "a"))
(item (:bullet "-") (paragraph nil "b"))))
* 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-capture.el (org-capture-templates): New template %l to
insert the literal link pointing at the current buffer.
* org.texi (Template expansion): Document the new %l template.
Thanks to Eric Abrahamsen for this idea.
* 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-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.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.
* 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.
* 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-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'.
Thanks to Bjarte Johansen for bringing this up.
* 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.
Thanks to François Allisson for reporting this bug.
* lisp/org-element.el (org-element-at-point): Add :parent property to
output.
(org-element-context): Add :parent property to output. Also return
a single element or object instead of a list of parents.
(org-element-forward, org-element-up): Apply changes.
* testing/lisp/test-org-element.el: Add tests.
* 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-element.el (org-element-at-point): Fix function when buffer
starts with an inlinetask. Also fix it when called on the last
element in a greater element or the buffer.
* org-agenda.el (org-agenda-start-with-log-mode): Add relevant
customization types.
Thanks to John Wiegley for raising this issue and to Carsten for
directions.
* org-faces.el (org-document-title): Use the normal height.
The :height 1.44 was ugly, visually disruptive. If you disagree
and miss the good old fat face, set `org-document-title' to whatever
suits you.
* 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.
* org-clock.el (org-clock-in): Set the marker for
`org-clock-history' at a safer position.
The clock marker stored in `org-clock-history' used to be at the
beginning of the heading. When manually inserting content here,
the marker is not updated because it is *before* the point. So
set the clock marker right after the first "*" of the headline
so that it will always be correctly updated.
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.
* lisp/ob.el (org-babel-exeext): New defconst to hold extension for
executables or nil if none. Should be ".exe" for both Windows and
Cygwin.
* lisp/ob-C.el (org-babel-C-execute): Use org-babel-exeext when
constructing the target file name for the compiled executable.
* lisp/ob-fortran.el (org-babel-execute:fortran): Add org-babel-exeext
when constructing the target file name for the compiled executable.
Thanks to Achim for pointing out this careless oversight in my last
commit.
* lisp/org-clock.el (org-clock-special-range): "concat 'string" ->
"concat"
(org-clocktable-shift): "concat 'string" -> "concat"
This allows more calculations to be performed, but at what cost?
* lisp/ob-calc.el (org-babel-execute:calc): Strip single quotes from
calc internal representations.
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.
* lisp/org-clock.el (org-clock-idle-time): Org-mode assumed that x11idle
was an available command, and returned an idle time of 0 if it was not
(never idle). Added checks so that org-idle-time will come from emacs'
own current-idle-time if x11idle cannot be found or if it cannot
retrieve the idle time from X11
TINYCHANGE
* lisp/org-compat.el (org-condition-case-unless-debug): Alias
to `condition-case' when both `condition-case-no-debug' and
`condition-case-unless-debug' is unavailable.
* 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'.
* lisp/Makefile: Add LISPN (empty by default) which is used to filter
out files from LISPC. This means that install will not fail due to
a corresponding .elc missing. This might become useful if lisp
source files set "no-byte-compile: t" for whatever reason.
* 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.