* lisp/org-timer.el (org-timer-set-mode-line): Check
`org-timer-display' when value is 'off.
This solves the error of (org-timer-set-mode-line 'off) when
`org-timer-display' is 'mode-line. In this case `frame-title-format'
may not be a list.
TINYCHANGE
* lisp/org-clock.el (org-x11idle-exists-p): Only shell out when running
on X.
The definition of this variable currently executes "command" via the
shell during evaluation, irrespective of the platform on which
Org-mode is running. Unfortunately, on Windows, this matches the
"command.com" NT Virtual DOS Machine executable and so this gets
launched, but this is a shell and therefore sits there waiting for
user input and never returns. The net result is that Emacs will hang
on Windows when evaluating org-clock.el with the ntdvm.exe process
spinning at 100%.
The simple fix is to check that the platform is X before trying to
deal with the "x11idle" external process.
TINYCHANGE
* org-agenda.el (org-agenda-local-vars): Remove
̀org-agenda-last-arguments' from the list of local variables.
(org-agenda-mode-map): `g' does the same than `r' in buffers
with only one agenda view, but its behavior differs when there
are several views. In manually appended agendas (with `A'),
`g' displays only the agenda under the point. With multiple
agenda blocks, `g' reinitializes the view by discarding any
temporary changes (e.g. with ̀f' or `w'), while ̀r' keeps those
temporary changes for the agenda view under the point.
(org-agenda-run-series, org-agenda-redo): Implement the above
changes.
(org-agenda-mark-header-line): Don't set useless properties.
(org-agenda-list, org-todo-only, org-search-view)
(org-todo-list, org-tags-view, org-agenda-list-stuck-projects)
(org-agenda-manipulate-query, org-agenda-goto-today)
(org-agenda-later, org-agenda-change-time-span): Use text
properties for storing the last command and the last arguments
for each agenda block.
(org-unhighlight-once): Delete.
* org-agenda.el (org-agenda-pre-window-conf): Rename from
`org-pre-agenda-window-conf'.
(org-agenda-local-vars, org-agenda-prepare-window)
(org-agenda-Quit, org-agenda-quit): Use the new name.
* org-agenda.el (org-keys, org-match): New variable,
dynamically scoped in `org-agenda'.
(org-agenda, org-agenda-list, org-search-view, org-todo-list)
(org-tags-view): Use the new variables.
(org-batch-store-agenda-views): Let-bind `match'.
* org-agenda.el (org-search-view, org-todo-list)
(org-tags-view): Do not let `org-agenda-sticky' prevent the
use of these functions programmatically. Also use the sticky
agenda function correctly.
* org-agenda.el (org-agenda-fit-window-to-buffer): Rename from
`org-fit-agenda-window'.
(org-agenda-run-series, org-agenda-prepare, org-agenda-list)
(org-search-view, org-todo-list, org-tags-view): Use the new
name.
* org-agenda.el (org-agenda-list): Fix bug: don't throw an
error when called from programs as (org-agenda-list).
Thanks to Rainer Thiel for reporting this bug.
* lisp/org.el (org-mode): Call external initalizers. Now both filling
code and comments code have their own independant part in org.el.
(org-setup-filling): Renamed from `org-set-autofill-regexps'.
(org-setup-comments-handling): New function.
* lisp/org.el (org-fill-paragraph): Refine filling in comments and in
paragraphs. Allow commented blank lines. Take into consideration
the indentation of the second line of the paragraph being filled.
(org-comment-or-uncomment-region): Rewrite function. Now comment
region at a fixed column: the minimal indentation of the region.
(org-fill-context-prefix): Rename function into
`org-adaptive-fill-function'. Also, In a paragraph, choose the same
prefix as the current line.
* org-agenda.el (org-agenda): In sticky agendas, use the
current command's match to set the buffer name. This gives
more information to the user and allows to distinguish various
agendas triggered by the same key.
(org-batch-store-agenda-views): Handle the new sticky agenda
buffer name.
* org-table.el (org-table-number-regexp): Allow the user to
set it to a new regexp, which allows commas as decimal mark.
The default is to not use this setting, but the one before
commit 7ff8c1, which has ben reverted.
See the discussion here:
http://thread.gmane.org/gmane.emacs.orgmode/59389
* org-agenda.el (org-agenda-overriding-cmd)
(org-agenda-multi-current-cmd)
(org-agenda-multi-overriding-arguments): New variables.
(org-agenda-run-series): `org-agenda-overriding-arguments'
defaults to the last agenda block arguments, so don't use it
globally.
(org-agenda-mark-header-line): Add properties needed so that
`org-agenda-overriding-arguments', `org-agenda-current-span'
and `org-agenda-last-arguments' can be set to their correct
contextual value.
(org-agenda-multi-back-to-pos): New variable.
(org-agenda-later): Retrieve `org-agenda-current-span' and
`org-agenda-overriding-arguments' from text properties. Also
handle numeric span.
(org-agenda-later, org-agenda-change-time-span): Set
`org-agenda-overriding-cmd' so that we to take overriding
arguments into account for this command only.
The behavior for agenda blocks where there is only one (agenda)
command is not changed. Changing the time span and redoing with
`g' will keep the new time span. The behavior changed for blocks
where there are multiples (agenda) blocks. In this case, redoing
will restore the initial view (before any time span change) and
changing the time span is done independantly for each block.
Thanks to Charles Philip Chan for reporting this nasty bug.
* lisp/org.el (org-backward-element): When called at the beginning of
first element in section, the function shouldn't return an error but
move point to headline or point-min instead.
* testing/lisp/test-org.el: Add test.
The previous related commit was to prevent an error
when M-x org-reload RET was reloading org files from
an ELPA directory. We now autoload the function so
that it is know by the time org-reload might be called.
* lisp/ob.el (org-babel-expand-noweb-references): Capture current
noweb start and end patterns then use to set buffer locals in
(with-temp-buffer) form.
This solves the problem that using different patterns for
org-babel-noweb-wrap-start and org-babel-noweb-wrap-end could be done
only globally.
TINYCHANGE
* Makefile: Include default.mk and targets.mk from mk/ where they've
been moved to.
* README_maintainer: Rename utils to make throughout.
* doc/Makefile: Rename utils to make throughout.
* doc/org.texi: Remove reference to utils/, x11idle.c is now in
contrib/scripts.
* mk/make_emacs_changelog: Add mk/ to list of directories not to be
reported in Emacs' ChangeLog. Also retain utils/ and re-add
UTILITIES; add a comment explaining why these need to stay.
* mk/default.mk: Rename utils to make throughout. Include version.mk
from mk/ where it's been moved to.
* mk/targets.mk: Rename utils to make throughout.
* mk/server.mk: Rename utils to make throughout. Only put those files
from mk/ into the archives that are needed outside the server:
default.mk targets.mk version.mk and org-fixup.el.
* lisp/org-compat.el: Rename utils to make throughout.
* .gitignore: Rename utils to make throughout.
* org-agenda.el (org-agenda-kill, org-agenda-archive-with):
Fix bug when called with a non-nil value of `org-agenda-stick'.
Thanks to Moritz Ulrich for reporting this.
* lisp/org.el (org-fill-context-prefix): Fix incorrect output when
called at the beginning of a plain list with an affiliated keyword.
(org-fill-paragraph): Remove useless variable.
* lisp/org-element.el (org-element-paragraph-parser): Fix parsing of
paragraph at the beginning of an item.
* testing/lisp/test-org-element.el: Add test.
* org-agenda.el (org-prepare-agenda-window): Use
`org-pre-agenda-window-conf' if already set.
(org-agenda-Quit): Set `org-pre-agenda-window-conf' to nil
when quitting.
(org-agenda-quit): Ditto.
Thanks to Moritz Ulrich for reporting a bug about this.
* org-capture.el (org-capture-fill-template): Protect the text
used for replacement from being further replaced.
Thanks to Moritz Ulrich for reporting this bug.
* 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.
* lisp/org-element.el (org-element-paragraph-separate): Since this
variable is meant to be searched forward, \end{...} shouldn't
trigger the end of a paragraph before checking if it is the end of
a complete environment.
(org-element-latex-environment-parser): Slight change to the regexp
matching the beginning of a latex environment.
(org-element-paragraph-parser): Paragraphs don't end at incomplete
latex environments.
(org-element-latex-or-entity-successor): Remove paragraph environments
from latex fragment search.
* 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-icalendar.el (org-icalendar-print-entries): Fix bug:
when `org-icalendar-use-plain-timestamp' is nil, scheduled and
deadline items should not be ignored.
Thanks to Friedrich Delgado for reporting this.
* org-freemind.el (org-freemind-convert-links-from-org):
Replace literally to prevent errors when replacing with string
containing backslashes.
Thanks to Martin Beck for reporting this.
* org-pcomplete.el (org-thing-at-point): Allow to match (and
then complete) a "thing" containing dashes.
Thanks to Aidan Gauland for reporting this problem.
* default.mk, targets.mk, lisp/Makefile: Rename _COMPILE_ to ORGCM.
* default.mk: Define ORGCM=dirall, show other possible values as
comments
* targets.mk: Implement target `single´, temporarily set
ORGCM (overriding configuration). Show newly introduced
configuration variables with `check-*´.
* lisp/Makefile: Implement dispatch for compile based on ORGCM.
Output header that contains the target for easier debugging.
* Makefile: Document target `single´.
* org-agenda.el (org-prepare-agenda): Minor code clean-up.
(org-agenda-filter-by-category): Filtering must be turned off
only when a category filter has been set and this filter is
not empty.
* ob-fortran.el (org-babel-fortran-transform-list): Rename
from `ob-fortran-transform-list'.
(org-babel-fortran-var-to-fortran): Use the new function's
name.
* ob-calc.el (org-babel-calc-maybe-resolve-var): Rename from
`ob-calc-maybe-resolve-var'.
(org-babel-execute:calc): Use the new function's name.
* org-jsinfo.el (org-infojs-template): Add a license.
(org-infojs-handle-options): Replace all template elements.
* org-html.el (org-export-html-scripts): Add a license.
(org-export-html-mathjax-config): Replace all template
elements.
(org-export-html-mathjax-template): Add a license.
(org-export-as-html): Minor code clean-up.
* org.el (org-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.
* org-agenda.el (org-agenda-get-timestamps)
(org-agenda-get-sexps, org-agenda-get-deadlines)
(org-agenda-get-scheduled): Add the 'warntime as a text
property, getting its value from the APPT_WARNTIME property.
(org-agenda-to-appt): Use the 'warntime text property.
Thanks to Ivan Kanis 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.
* org-clock.el (org-clock-put-overlay): Put the overlay on the
whole headline, not only on the last character. This fixes a
bug with overlays on headlines ending with a bracketed link.
Thanks to Ryan Kaskel for reporting this.
* org-html.el (org-export-as-html): Make sure we always
process a string.
* org-exp.el (org-export-cleanup-toc-line): Always return a
string.
Thanks to Friedrich Delgado for reporting this.
* org-exp.el (org-export-handle-metalines): Rename from
`org-export-handle-table-metalines'. Now also handle source
block metalines.
(org-export-res/src-name-cleanup): Delete.
(org-export-preprocess-string): Use
`org-export-handle-metalines'. Don't use
`org-export-res/src-name-cleanup' anymore.
This fixes a but reported by Feiming Chen, thanks to him.
* org-html.el (org-format-org-table-html): Don't include the
caption tag for empty captions in HTML export. Keep it in the
DocBook export so that it produces valid DocBook XML.
* lisp/org-element.el (org-element-item-parser): Do not remove tag
from body if list isn't descriptive.
* lisp/org-list.el (org-insert-item): Only ask about a term for
descriptive lists.
(org-list-struct, org-list-insert-item): Do not recognize a tag in an
ordered list.
* testing/lisp/test-org-element.el: Add test.
* lisp/org-list.el (org-list-automatic-rules): Remove `bullet' rule,
which is now hard-coded.
(org-cycle-list-bullet): Hard code `bullet' rule.
(org-list-get-list-type): Make sure a list with numbered bullets
cannot have `descriptive' type.
* testing/lisp/test-org-list.el: Add tests.
* 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-icalendar.el (org-icalendar-print-entries): Rename from
`org-print-icalendar-entries'.
(org-icalendar-start-file): Rename from
`org-start-icalendar-file'.
(org-icalendar-finish-file): Rename from
`org-finish-icalendar-file'.
(org-icalendar-ts-to-string): Rename from
`org-ical-ts-to-string'.
(org-export-icalendar): Use the correct functions.
* 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-macs.el (org-no-properties): Allow a new parameter
`restricted' to restrict the properties removal to those in
`org-rm-props'. The default is now to remove all properties.
* org-compat.el (org-substring-no-properties): Remove unused
defun.
* org-remember.el (org-remember-apply-template): Remove
redundant removal of text properties.
(org-remember-apply-template): Use `org-no-properties'.
* org-capture.el (org-capture-fill-template): Remove redundant
removal of text properties.
(org-capture-fill-template): Use `org-no-properties'.
* org-gnus.el (org-gnus-open, org-gnus-follow-link): Use
`org-no-properties'.
* ob-R.el (org-babel-edit-prep:R): Don't set the session.
See the discussion for this issue here:
http://article.gmane.org/gmane.emacs.orgmode/58600
Thanks to Mikhail Titov and to Andrew Young for exploring it.
# 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-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'.
# 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.
* lisp/Makefile: Add targets `slint3´ (one Emacs process for all
sources) and `slint4´ (one Emacs instance for each source) using
ELINTL and ELINTF to lint lisp files. Split out compile actions
into internal targets and implement `compile-*´ targets in terms of
these internal targets. Follow all targets that do not
procude *.elc files with `dirall´ so that the *.elc files exist at
the end of compilation.
* default.mk: Add configuration variables ELINTL and ELINTF.
* targets.mk: Add ELINTL and ELINTF to CONF_CALL.
* org-colview.el (org-columns): New argument `columns-fmt-string'.
* org-colview.el (org-columns-get-format-end-top-level): Split
into `org-columns-get-format' and `org-columns-goto-top-level'.
* lisp/org-colview.el (org-dblock-write:columnview): Add a new parameter
:format which specifies the column view format for the output of the
columnview dynamic block.
This patch allows to interactively set a column view like this:
M-: (org-columns "%66ITEM(Task) %6Effort(Estim.){:}") RET
or to specify a column view in columnview dynamic blocks:
TINYCHANGE
* lisp/org-element.el (org-element-at-point): Return consistent value
when function is called on a blank line within a plain list.
* testing/lisp/test-org-element.el: Add test.
* org-feed.el (org-feed-format-entry): Require `org-capture'.
Expand Elisp %(...) templates.
(org-feed-default-template): Update docstring.
* org-capture.el (org-capture-expand-embedded-elisp): New
function.
(org-capture-fill-template): Use it.
(org-capture-inside-embedded-elisp-p): New function to tell if
we are within an Elisp %(...) template.
* org-publish.el (org-publish-needed-p)
(org-publish-update-timestamp, org-publish-file)
(org-publish-cache-file-needs-publishing): New argument
`base-dir'.
(org-publish-cache-ctime-of-src): Use the new argument to make
sure we find the file according to :base-directory.
* org-capture.el (org-capture-string): New command to prompt
for the interactive text interactively. This can also be used
in Elisp programs to use ̀org-capture' with some initial text.
(org-capture-initial): New variable to store the initial text.
(org-capture): Use `org-capture-initial'.
* org.el (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-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.