* org-clock.el (org-clocktable-defaults): Revert extra layer of quoting.
It appears the goal in 9b23f082 was to allow defaulting a plist member
to a variable; however the plist was being constructed with LIST and
therefore the `, combination was unnecessary.
TINYCHANGE
* 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-clock.el (org-clock-in-last): New command.
This autoloaded command provides a way to clock in the last clocked
item stored in `org-clock-history' from any buffer. This is handy
when you don't want to go back to your .org file to clock into the
last clocked task.
* lisp/org-mobile.el (org-mobile-edit): Added handling of
addheading, refile, archive, archive-sibling and delete edit nodes.
(org-mobile-locate-entry): olp links containing only a file are now be
located correctly.
(org-mobile-apply): Instead of finding the location of all target
headings for edit nodes in a separate loop, they will be found
immediately before applying edits.
org-mobile-apply needed to be changed, as the new edit nodes can
insert new headings or delete them, thereby changing the locations
of the target headings. Thanks to Aaron Peromsik for helping with
this patch.
* 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-html.el (org-export-as-html): Add links to the Org mode
and GNU Emacs websites When :html-postamble is set to 't.
* org-export.el (org-export-creator-string): Add links to the
Org mode and GNU Emacs websites.
* lisp/ob.el (org-babel-set-current-result-hash): Change the hash of the
results for the current code block.
(org-babel-current-result-hash): Fix documentation.
* lisp/ob-lob.el (org-babel-lob-execute): Don't re-execute the called
function if the current call line hash matches that in its results.
* org-special-blocks.el
(org-special-blocks-convert-html-special-cookies): Prevent
errors by first checking `org-line' is not nil.
Thanks to Sébastien Vauban for reporting this.
* lisp/org-list.el (org-at-item-description-p,
org-list-item-body-column): Make the inline regexp more consistent
with `org-list-full-item-re', the inline regexp "Description list
items" from `org-set-font-lock-defaults and others'.
This resolves some issues with M-q (org-fill-paragraph) on description
lists.
* 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.
setting `org-habit-show-all-today' to t.
* lisp/org-agenda.el (defvar org-habit-show-all-today): new variable
(org-agenda-get-scheduled): show all habits if user wants it
* lisp/org-habit.el (defcustom org-habit-show-all-today): new variable
* lisp/org-agenda.el (org-agenda-list): Ensures that the
list returned by `org-agenda-add-time-grid-maybe' is appended
to ̀rtnall' before checking if the latter is emtpy.
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',
- appends the result to `rtnall',
- and finally checks the emptiness of the resulting list
before pretty printing.
TINYCHANGE
* org.texi (Using capture): Mention the
`org-capture-last-stored' bookmark as a way to jump to the
last stored capture.
* org-capture.el (org-capture-bookmark): New option.
(org-capture-finalize): Use it.
* lisp/org-datetree.el: Fix regexp to allow datetree to find headings
with trailing whitespace. This fixes a bug in which an existing
datetree heading (e.g., "* 2012 ") would not be found by
org-datetree-find-year-create if it had trailing whitespace. This can
cause problems, for instance, if one is using column view on the date
tree, since editing subheadings with column view adds whitespace at
the end of the top heading.
* 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
* lisp/org-odt.el (org-odt-init-outfile): Fix previous commit.
Make sure that nxml-mode is loaded before let-binding
`nxml-auto-insert-xml-declaration-flag'.
* lisp/org-odt.el (org-odt-init-outfile)
(org-odt-write-manifest-file): Disable
`nxml-auto-insert-xml-declaration-flag'.
* lisp/org-lparse.el (org-do-lparse): Don't trigger auto-mode
processing.
Guard against insertion of multiple XML declarations within
component XML files when
`nxml-auto-insert-xml-declaration-flag' is on.
Fixes bug
http://lists.gnu.org/archive/html/emacs-orgmode/2012-05/msg00510.html.
* 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-publish.el (org-publish-cache-file-needs-publishing):
Make the column mandatory after #+include:.
* org-exp.el (org-export-handle-include-files): Ditto.
* lisp/ob.el (org-babel-capitalize-examplize-region-markers): Controls
the capitalization of begin and end example blocks.
(org-babel-examplize-region): Optionally capitalize example block
delimiters.
* 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).
Thanks to Seb and Nick for pointing this out.
* lisp/org-exp-blocks.el (org-export-blocks-preprocess): Even when the
body of a block is not indented the boundary markers should be
indented to their original positions so things like list indentation
still work.
* org-publish.el (org-publish-cache-file-needs-publishing):
Make quotes mandatory around the file name and allow spaces in
it.
Thanks to Albert for this suggestion.
* 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/Makefile: remove stop targets, make autoloads depend on source
files again (not .PHONY). Keep autoload files around after compile,
but make sure to re-create them before installation and compile.
Remove autoload files before re-creating them to avoid errors from
Emacs when saving the buffer.
* targets.mk: remove stop targets and the mess that was necessary to
support them.
* default.mk: must use $(CURDIR) not $(PWD), $(PWD) is not well
defined when using sudo.
* UTILITIES/org-fixup.el: new file, has functions to create
org-version.el and org-install.el, now use by the build system.
* lisp/Makefile: delete said definitions, now sourced from toplevel
make. "clean" and "cleanall" should do the same thing here, make
them aliases, ditto for "all" and "compile". Both autoload files
must be .PHONY and depend only on each other for correct ordering.
Make "compile-dirty" actually do that again (i.e. no implied
"clean", but "cleanauto"). Remove autoload files directly after
install, so that they will only be present when explicitly requested
by "autoloads". Create "org-version.el" before compilation as it is
mandatory. Remove $(ORG_MAKE_INSTALL) and $(ORG_MAKE_VERSION),
source from default.mk/local.mk.
* default.mk: move definitions for $(ORG_MAKE_INSTALL) and
$(ORG_MAKE_VERSION) here so that they can be more easily configured.
Remove definition of "org-release" from $(BATCH) and $(BTEST), now
sourced from "org-version.el".
* targets.mk: target reorganization, introduce "stop" targets to
prevent cleaning of org-version.el. Use new targets for "oldorg" to
make it more robust in case of errors. New target "cleanutils" to
remove any "*.elc" files that may have been produced there and add
this target to "cleanall". Do the same in cleancontrib.
* 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-latex.el
(org-export-latex-link-with-unknown-path-format): New option.
(org-export-latex-links): Use it.
Thanks to Sébastien Vauban for a preliminary patch for this.
* org-agenda.el (org-agenda-get-timestamps): Remove any
active timestamp from the headline text, not only those for
the current date.
Thanks to SW, Nick Dokos, Samuel Wales and Brian van den Broek
for inputs about this.
* 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.
* lisp/org-footnote.el (org-footnote-new): Don't call
org-footnote-unique-label if org-footnote-auto-label is set to
random.
Calling org-footnote-unique-label calls org-footnote-all-labels, which
can dramatically slow down footnote creation in a buffer with many
footnotes. This is unecessary if org-footnote-auto-label is set to
random.
* org-table.el (org-table-time-string-to-seconds): Return the
empty string if provided.
(org-table-eval-formula): When assigning a duration string,
handle it correctly -- i.e. don't make any computation on it,
except the one to insert it using the correct duration format.
Thanks to Sébastien Vauban for spotting this.
* 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-clock.el (org-frame-title-format-backup): New variable
to store the value of `frame-title-format' before `org-clock'
might replace it by `org-clock-frame-title-format'.
(org-clock-frame-title-format): New option.
(org-frame-title-string): Delete.
(org-clock-update-mode-line): Minor code reformatting.
(org-clock-in, org-clock-out, org-clock-cancel): Use
`org-clock-frame-title-format'.
See http://thread.gmane.org/gmane.emacs.orgmode/55477
Trying to update `frame-title-format' is tricky and error-prone, since
users can set up this variable in many different ways. AFAIK there is
no equivalent to `global-mode-string' for setting the frame title, we
would use it otherwise.
The user can still configure `org-clock-frame-title-format' the way he
wants.
* org.el (org-toggle-heading): Allow `C-u C-c *' to mark the
list at point before converting items to headings. With a
simple universal-argument, set `current-prefix-arg' to 1,
otherwise keep the numeric value.
* org-agenda.el (org-agenda-mode-map): New keybinding ̀*' to
mark all entries for bulk action.
(org-agenda-menu): New menu item for marking all entries.
(org-agenda-bulk-mark-all): New function to mark all entries.
(org-agenda-bulk-mark-regexp): Minor docstring fix.
(org-agenda-bulk-unmark): With a prefix argument, unmark all.
Also send a better message.
(org-agenda-bulk-remove-all-marks): Rename to
`org-agenda-bulk-unmark-all'. Check against
`org-agenda-bulk-marked-entries' before trying to unmark
entries. Minor docstring fix.
(org-agenda-bulk-unmark-all): Renamed from
̀org-agenda-bulk-remove-all-marks'.
* org.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.
* lisp/org-compat.el (org-find-library-name): Convert into a macro to
avoid compilation of a function from XEmacs in Emacs and vice versa.
Based on a not fully working proposal by A. Gratz to the orgmode
mailing list:
http://lists.gnu.org/archive/html/emacs-orgmode/2012-04/msg00009.html
* org-table.el (org-table-store-formulas): Fix typo.
(org-table-maybe-eval-formula): Fix the regexp to only match
formulas, which never end with the `=' character. If the
field only contain this character, don't eval either.
Thanks to Thomas S. Dye for reporting this.
* org-table.el (org-tbl-calc-modes): Rename from
`org-table-modes'.
(org-set-calc-mode, org-table-eval-formula): Use it.
Thanks to Mikkel Kristiansen for reporting this and
to Nick Dokos for tracking down the bug and proposing
a fix.
* org-bbdb.el (org-bbdb-anniversary-format-alist): Update the
customization type.
(name): Suppress (defvar 'name) as name is not eval'ed when
setting `org-bbdb-anniversary-format-alist'.
* org.el (org-version): When called non-interactively, insert
the short version string, otherwise send a message with the
complete version string.
* org-odt.el (org-odt-update-meta-file): Use (org-version) and
delegate checking whether `org-version' is known as a variable
there.
* org-html.el (org-export-as-html): Use (org-version).
* org-docbook.el (org-export-as-docbook): Ditto.
* org-latex.el (org-export-latex-make-header): Ditto.
* org-clock.el (org-clocktable-write-default): Temporarily
disable `delete-active-region' so that we don't accidently
delete an active region when exporting a subtree/region.
Thanks to Mike McLean for the detailed bug report.
* org-clock.el (org-program-exists): Remove.
(org-show-notification, org-clock-play-sound): Use
`executable-find' instead of `org-program-exists'.
Thanks to Sébastien Vauban for pointing this.
* 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-html.el (org-html-handle-links, org-export-as-html)
(org-format-org-table-html, org-format-table-table-html)
(org-html-export-list-line): Use `org-line' instead of `line'
as the free variable name.
* org-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-agenda.el (org-agenda-persistent-marks): New option to
keep marks after a bulk action. The option defaults to nil.
(org-agenda-bulk-action): Use the new option.
* org.texi (Agenda commands): Document persistent marks.
* org-capture.el (org-capture-fill-template): Use %\n instead of %n as a
template element to be replaced with the nth prompted string.
(org-capture-templates): Update docstring.
* org.texi (Template expansion): Update doc to reflect change.
Using %n triggers errors when the template contains escaped strings,
which happens a lot with links.
* org-table.el (orgtbl-to-generic): Add check for :skipheadrule.
When present, the :hline following the head will be skipped. This is
necessary to avoid doubling of horizontal rules in LaTeX longtable
environments and consequent width problems.
* org-latex.el (org-export-latex-tables-tstart)
(org-export-latex-tables-hline)
(org-export-latex-tables-tend): New options.
(org-export-latex-tables): Use the new options.
* lisp/org-agenda.el (org-agenda-skip-timestamp-if-deadline-is-shown):
Skip timestamp items in agenda view if item is already shown as a
deadline item.
(org-agenda-skip-dealine-if-done): Pass deadline results to
org-agenda-get-timestamps.
(org-agenda-get-timestamps): Optionally take list of deadline results,
so that timestamp results can be skipped if already included in
deadline results.
* lisp/org-agenda.el (org-agenda-diary-sexp-prefix): Regexp matching
deadline/scheduling information to be displayed in diary sexp agenda
items.
(org-agenda-get-sexps): Extract deadline/scheduling information from
diary sexp entries.
* lisp/org-gnus.el: (org-gnus-follow-link): Fix argument to
gnus-group-read-group so that following a link does not result in
unread article being selected.
The NO-ARTICLE argument to gnus-group-read-group should be t.
Otherwise org-gnus-follow-link selects the most unread article in a
group before selecting the linked article. This results in unread
articles being unread (which can cause one to miss important mail).
* org-table.el (orgtbl-send-table): Escape special characters.
Introduce a new parameter :no-escape to prevent escaping.
* org.texi (Radio tables): Document the :no-escape parameter.
Thanks to Alexander Willand for raising this issue.