* lisp/ob-tangle.el (org-babel-tangle-single-block): Prevent double unescaping
of source block by removing unnecessary call to `org-unescape-code-in-string'.
* testing/lisp/test-ob-tangle.el (ob-tangle/nested-block) New function.
* lisp/org-agenda.el (org-todo-list):
(org-tags-view): Specify the keymap for the substitute-command-keys
call because, as of b6c5a174d, this call is made outside of the agenda
buffer.
The substitute-command-keys call in org-search-view is already taken
care of by 48f333805.
* lisp/org.el (org-insert-todo-heading): Insert TODO keyword relative
to the original headline, not to the headline above.
* testing/lisp/test-org.el (test-org/insert-todo-heading-respect-content):
Add test.
* lisp/ox-texinfo.el (org-texinfo-classes): Introduce @chapheading and
al. in default value.
(org-texinfo--structuring-command): Remove function.
(org-texinfo-headline): Handle unnumbered out of TOC headlines.
(org-texinfo-section): Do not add menu in unnumbered headings.
* lisp/org-table.el (org-table-shrunk-column-indicator):
* lisp/org.el (org-startup-shrink-all-tables): Update Org version to 9.2
and Emacs version to 27.1.
(customize-package-emacs-version-alist): Map Org 9.2 to Emacs 27.1.
Emacs 26.1 is now in the pretest phase, and the version for Emacs's
development branch is 27.1.
* lisp/org-clock (org-clocktable-steps): Fix weekly-step clock report
ignoring hours between start of period and start of week, when start
of period is on a day of week numerically less than start of week.
Clock report now always inserts a "week" starting at the start of
the period, if necessary; all following weeks start on the start of
the week as expected.
TINYCHANGE
* lisp/org-capture.el: (org-capture-fill-template) Fix interactive
timestamp entry to match the behavior of org-time-stamp. This fixes
a bug related to the %^t and %^u template escapes which resulted in
incorrect timestamps (<2017-10-06 Fri-12:00>). The difference
between %^t and %^T now corresponds to the difference between
org-time-stamp called without and with a prefix argument.
* lisp/org.el (org-backward-paragraph): Do not error when called from
a block opening line.
* testing/lisp/test-org.el (test-org/backward-paragraph): Add tests.
Reported-by: Omar Antolin <omar.antolin@gmail.com>
<http://lists.gnu.org/archive/html/emacs-orgmode/2017-10/msg00051.html>
* lisp/org-clock.el (org-clock--oldest-date): Only execute
'decode-time' on times later than year -2**31 under macOS 10.6.
See Bug#27706.
Workaround for faulty localtime() under macOS 10.6
bd49b6f1b39cffeaf6098bc7b0182552683b1c07
Charles A. Roelli
Sun Oct 1 19:07:22 2017 +0200
* lisp/org-colview.el (org-columns-remove-overlays): Fix
"wrong-type-argument markerp nil".
When calling `org-agenda-columns', `org-columns-top-level-marker' is
not set. Handle this situation.
Reported-by: Benjamin Beckwith <bnbeckwith@gmail.com>
<http://lists.gnu.org/archive/html/emacs-orgmode/2017-09/msg00566.html>
* lisp/org-agenda.el (org-search-view): Specify the keymap for the
substitute-command-keys call because, as of b6c5a174d, this call is
made outside of the agenda buffer.
* lisp/org-irc.el (org-irc-export): Add a new function,
org-irc-export, which properly exports irc links to html and markdown
* lisp/ox-md.el (org-md-link): Remove workaround to get irc links
working properly in ox-md, and use org-irc's export functions instead
* lisp/ox-publish.el (org-publish-get-base-files): Ensure MATCH regexp
is always a string since `directory-files-recursively' requires it.
* testing/lisp/test-ox-publish.el (test-org-publish/get-project-from-filename):
Add test.
Suggested-by: Jens Lechtenboerger <lechten@wi.uni-muenster.de>
<http://lists.gnu.org/archive/html/emacs-orgmode/2017-09/msg00528.html>
* lisp/ox-html.el (org-html-src-block): Unless klipse is used, export
source code blocks as content of `pre' elements, and not as content of
`code' children of `pre' elements. Restores the previous way of
exporting source code blocks, and fixes the display of language
indicators while hovering over the blocks in the exported HTML file,
when klipse is not used.
(org-html-keep-old-src): Remove it. Not needed because it is now the
default, unless klipse is used.
Emacs's bc511a64f6d made tree-wide changes to prefer https to http.
For Org, this resulted in the header of every lisp/*.el file being
changed. Make the same changes in lisp/*.el files that were added
since Org version 9.0.10 (the last version that was synced with
Emacs).
* lisp/ob-tangle.el (org-babel-tangle-publish): Port to new copy-file
behavior.
Adjust ob-tangle to new copy-file behavior
74b8615fcceba7b92c4938e1bcc92015f10ae899
Paul Eggert
Sun Sep 10 22:31:23 2017 -0700
* lisp/org.el (org-buffer-property-keys): Remove optional argument
IGNORE-MALFORMED.
* lisp/org-pcomplete.el (pcomplete/org-mode/prop): Update call to
previous function.
* testing/lisp/test-org.el (test-org/buffer-property-keys): Remove
a test.
More often than not, the question just gets in the way. Use `M-x
org-lint' instead.
* lisp/ob-scheme.el (org-babel-scheme-execute-with-geiser): Return
"#<void>" or "#<unspecified>" when the REPL says so.
* testing/lisp/test-ob-scheme.el (test-ob-scheme/unspecified): New
test.
(test-ob-scheme/prologue): Fix tests.
Reported-by: Lawrence Bottorff <borgauf@gmail.com>
<http://lists.gnu.org/archive/html/emacs-orgmode/2017-09/msg00346.html>
* lisp/org-colview.el (org-columns-summary-types): Allow new format.
(org-columns--summarize): Update to new summary type format.
(org-columns--collect): New function.
(org-columns--compute-spec): Apply changes.
* testing/lisp/test-org-colview.el (test-org-colview/columns-summary):
Add test.
In addition to (LABEL . SUMMARIZE), org-columns-summary-types now
accepts (LABEL SUMMARIZE COLLECT) entries. The new COLLECT function is
called with one argument, the property being summarized.
TINYCHANGE
* lisp/org-capture.el: (org-capture-place-entry) Ensure that level is
set to 1 (i.e., the top level) if there is no headline target
defined. Otherwise, captured items are improperly nested by context.
* lisp/org.el (org-insert-link): Simplify so that description is only
prompted for once, if auto-desc is not set, and takes as its default
value, in order, default-description, the return value of
org-make-link-description-function (if the variable is non-nil), and
the current desc. Update the docstring to reflect that
default-description takes precedence over
org-make-link-description-function.
(org-make-link-description-function): Remove from docstring the
statement that if the variable is nil, then the link will be used as
the default description. This is undesirable, and was not in any case
implemented.
* lisp/ob-scheme.el (org-babel-scheme-execute-with-geiser): Use
Geiser's explicit 'retort' object, instead of catching and parsing
an expected Emacs message (which for me is in any case overwritten
by a following "Mark set" message); this also means we don't need
the with-output-to-string approach for getting 'output' results.
Also 'let' Geiser variables so as to avoid popping up the REPL
and *Geiser dbg* buffers.
* lisp/org.el (customize-package-emacs-version-alist): Add entries for
all existing ":package-version" values, and remove entries for
versions that aren't used as ":package-version" values.
Note that this alist has a limited effect because we specify
":version" in almost all of our defcustoms. Two functions make use of
this alist: describe-variable-custom-version-info and
customize-changed-options. The former only looks at the alist if
:version isn't specified, and the latter only looks at :version if an
entry for :package-version isn't found in the alist.
We should consider removing the defcustom :version specifications so
that the package-version->version mapping only needs to be maintained
in one place.
* lisp/org-duration.el (org-duration-to-minutes): Accept the empty
string.
* testing/lisp/test-org-duration.el (test-org-duration/to-minutes):
Add test.
For backward compatibility with `org-duration-string-to-minutes'
accept the empty string as a duration.
* lisp/org-table.el (org-table--align-field): New function.
(org-table-align): Use new function. Refactor code.
(org-table-justify-field-maybe): Use new function.
(org-table-get-remote-range): Remove duplicate bindings.
* doc/org.texi (Column width and alignment): Remove footnote.
* testing/lisp/test-org-table.el (test-org-table/align): New test.
* lisp/org-table.el (org-table-shrink): New function.
* lisp/org.el (org-startup-align-all-tables): Update docstring.
(org-startup-shrink-all-tables): New variable.
(org-mode): Use new function and new variable.
* lisp/org-archive.el (org-archive-subtree): Update todo statistics
when calling `org-archive-subtree'.
(org-archive-to-archive-sibling): Update cookie statistics when
calling `org-archive-to-archive-sibling'.
* testing/lisp/test-org-archive.el: New file.
This can be disabled by setting `org-provide-todo-statistics' to nil.
* lisp/ob-sqlite.el (org-babel-sqlite-expand-vars): Stop interfering
with the 'orgtbl-to-csv' default formatting.
* testing/lisp/test-ob-sqlite.el: New file.
The problem here was that ob-sqlite was providing a format to the
`orgtbl-to-csv' that actually overwrote the default format in that
function, and in the case where there were commas in the content of
the table, broke the table as argument mechanism.
TINYCHANGE
* lisp/org-agenda.el (org-agenda--insert-overriding-header): Use
propertize instead of org-add-props.
(org-agenda-list): Replace nested if with cond.
(org-todo-list): Replace mapc-lambda with dolist.
(org-todo-list): Fix bug by using window-width instead of frame-width.
* lisp/org-agenda.el (org-agenda--insert-overriding-header): Add macro.
(org-agenda-list)
(org-search-view)
(org-todo-list)
(org-tags-view): Use macro.
(org-agenda-overriding-header): Update docstring.
* etc/ORG-NEWS: Explain that header can be disabled with empty string.
Replace org-agenda-overriding-header tests in these four functions with
calls to a macro, eliminating the duplicate code. Also, disable the
header when the variable is set to the empty string.
* lisp/org.el (org-copy-visible): Rewrite function. Do not use
dubious `org-find-visible' and `org-find-invisible'.
* testing/lisp/test-org.el (test-org/copy-visible): New test.
Reported-by: Gary Cheng <garycheng12@gmail.com>
<http://lists.gnu.org/archive/html/emacs-orgmode/2017-08/msg00568.html>
* lisp/org-lint.el (org-lint-undefined-footnote-reference): Do not
warn when definition is inline.
* testing/lisp/test-org-lint.el (test-org-lint/undefined-footnote-reference):
Add tests.
Reported-by: Eric S Fraga <esflists@gmail.com>
<http://lists.gnu.org/archive/html/emacs-orgmode/2017-08/msg00577.html>
* lisp/org-table.el (org-table-sort-lines): Fix regexp. Also test
durations.
* testing/lisp/test-org-table.el (test-org-table/sort-lines): Update
tests. Add a new one.
* lisp/ox-icalendar.el (org-icalendar-entry): Both properties now
optionally inherit, depending on value of
`org-use-property-inheritance'.
* doc/org.texi: Mention change.
* lisp/ox-icalendar.el (org-icalendar-entry): Look for a "TIMEZONE"
property.
(org-icalendar--vevent, org-icalendar--vtodo): Accept additional
timezone argument.
(org-icalendar-convert-timestamp): Change parameter name to "tz", and
accept a wider variety of values.
* doc/org.texi: Mention in manual.
* lisp/ox-org.el (org-org-publish-to-org):
* lisp/ox-html.el (org-html-htmlize-generate-css):
(org-html-fontify-code):
* lisp/org-agenda.el (org-agenda-write): Throw an error
requesting the user to install htmlize.el.
* doc/org.texi (Exporting agenda views, Literal examples):
Don’t assume htmlize.el is available.
You need to install it from https://github.com/hniksic/emacs-htmlize
See https://github.com/hniksic/emacs-htmlize/issues/7 for this issue.
* lisp/org.el (org-display-inline-images): Fix thinko in previous
commit. Also remove code related to nested links as this is no
longer possible in Org syntax.
* lisp/org-agenda.el (org-agenda-bulk-action): Fix the prefix argument
checks introduced by 4f578a3f7 to avoid inadvertently setting
org-agenda-schedule or org-agenda-deadline's time argument to ARG's
value when ARG is non-nil.
Reported-by: Julien Cubizolles <j.cubizolles@free.fr>
<https://lists.gnu.org/archive/html/emacs-orgmode/2017-08/msg00263.html>
* lisp/ox-html.el (org-html--build-meta-info): Use an invisible
character "‎" (left-to-right mark) in the HTML title tags
instead of removing the title altogether (invalid HTML) or setting
the content of title tag to nothing (invalid HTML).
Discussion:
<http://lists.gnu.org/archive/html/emacs-orgmode/2017-08/msg00021.html>
* lisp/org-compat.el (org-decode-time): New function.
* lisp/org-clock.el (org-clock-get-sum-start): Use new function.
Emacs 24's `decode-time' doesn't accept two arguments.
* lisp/org-clock.el (org-clock-select-task): Remove `interactive'.
This function is not meant to be called interactively. Use
`org-clock-goto' with a prefix argument instead.
* lisp/org-compat.el (org-decode-time): New function.
* lisp/org-clock.el (org-clock-get-sum-start): Use new function.
Emacs 24's `decode-time' doesn't accept two arguments.
* lisp/ob-vala.el: Add support for the Vala language to Babel.
* testing/lisp/test-ob-vala.el: Add tests for ob-vala.el.
* doc/org.texi (Working with source code): Add Vala to the list of
supported languages.
* lisp/org-agenda.el (org-agenda--mark-blocked-entry): Always return
the entry passed to `org-agenda--mark-blocked-entry' (previously
returned nil if entry did not have todo-state text property).
* lisp/org.el (org-clone-local-variables): Prevent errors that could
happen when trying to set local variables that cannot be set,
e.g. `enable-multibyte-characters'.
* lisp/org-capture.el (org-capture-templates): Make explicit that the time
stamp aware %-escapes are influenced by `org-capture-use-agenda-date'.
TINYCHANGE
* lisp/org.el (org-emphasis-regexp-components): Allow emphasis markers
after an hyphen.
(org-do-emphasis-faces): Do not strike-through table hlines.
Hypen is already allowed after emphasis markers. This allows one to
write, e.g., 2017-*09*-27.
* lisp/ob-C.el (org-babel-C-expand-C): Add a :namespaces export option
to C++ org babel blocks. Namespaces specified here will be added to
the file in the format 'using namespace %s;'. Multiple namespaces
can be specified, separated by spaces.
TINYCHANGE
* lisp/org.el (org-split-string): Move the function...
* lisp/org-macs.el (org-split-string): ... here. Also clarify
docstring with regards to `split-string'.
* lisp/org-colview.el (org-columns-overlays):
(org-columns-begin-marker):
(org-columns-top-level-marker): Make variables buffer local.
(org-columns-remove-overlays): Assume columns view are to be removed
in current buffer.
(org-columns-edit-allowed): Small refactoring. Raise an error when
called although no columns view is active in current buffer.
(org-columns-goto-top-level):
(org-columns):
(org-agenda-columns): Do not assume `org-columns-begin-marker' and
`org-columns-top-level-marker' are markers.
(org-columns-store-format):
(org-columns-redo): Skip if no columns view is current active.
(org-agenda-colview-compute): Do not let-bind
`org-columns-begin-marker' and `org-columns-top-level-marker'.
* lisp/org-mobile.el (org-mobile-encrypt-file):
(org-mobile-decrypt-file): Fix the message digest as MD5 for
compatibility across OpenSSL versions.
OpenSSL switched to using SHA256 by default for symmetric encryption
in version 1.1. Unfortunately that means that newer versions of the
openssl command line tool can not decrypt encrypted org-mobile files
without the '-md md5' option. This commit changes the shell commands
in org-mobile-encrypt-file and org-mobile-decrypt-file to explicitly
specify MD5 as the hash digest.
TINYCHANGE
* lisp/ob-scheme.el (org-babel-scheme-null-to): New variable.
(org-babel-scheme--table-or-string): New function.
(org-babel-execute-src-block): Changed to allow the return of a table
for the output.
(org-babel-expand-body:scheme) Add :prologue param support.
TINYCHANGE
* lisp/org.el (org-cycle-hide-drawers): Don't check whether STATE is
`contents' within the `when' body because the `when' condition will
not pass in this case.
* org-agenda.el (org-agenda-filter-by-tag): Pass t for the
require-match argument of completing-read because the collection
includes all valid tags.
In addition to preventing a user from filtering on a value that
doesn't match any entries, this makes the default Emacs completion
more convenient because a tag can be selected by entering its unique
prefix.
Composite agenda views could not separately specify whether to dim
blocked tasks.
* lisp/org-agenda.el (org-agenda--mark-blocked-entry): New function.
(org-agenda-dim-blocked-tasks): Modified to work with text properties
set by org-agenda--marked-blocked-entry.
* lisp/org-capture.el (org-capture-fill-template): Fix link returned
by %K. Also, both %k and %K should be expanded as strings even when
there is no clocking data.
Reported-by: Michal Politowski <mpol@meep.pl>
* lisp/org-agenda.el (org-agenda-time-grid): Users may now customize
the string to display after the time in the agenda. The order of
items was updated to reflect the order that they are displayed in the
agenda.
TINYCHANGE
* lisp/org-clock (org-clocktable-steps): Fix :tstart :tend parsing
with time zones.
The regression was introduced in 112c5ba479.
Reported-by: Dale Sedivec <dale@codefu.org>
* lisp/ox-md.el (org-md-link): Add mailto and irc to links that pass
their types through to markdown export
See: https://github.com/larstvei/ox-gfm/issues/17 for an external
bug report
TINYCHANGE
* lisp/org.el (org-create-formula-image): Use back-quote + single
quote to get the correct rendering of curved quotes.
Message displayed before this fix: "Please adjust ’imagemagick’ .."
Message displayed after this fix: "Please adjust ‘imagemagick’ .."
The effect of this fix is visible on emacs 25.1 and newer (See Emacs
NEWS).
* lisp/org.el (org-time-string-to-time): Remove optional POS and
BUFFER arguments. Accept new optional ZONE argument.
(org-time-string-to-seconds): Accept optional ZONE argument.
(org-check-before-date):
(org-check-after-date):
(org-check-dates-range):
(org-goto-calendar):
* lisp/ob-gnuplot.el (org-time-string-to-time):
* lisp/org-agenda.el (org-agenda-get-blocks):
* lisp/org-clock.el (org-clock-timestamps-change):
* lisp/org-list.el (org-time-string-to-seconds): Use UTC for time
difference and time comparison.
* testing/lisp/test-org-clock.el (org-test-clock-create-clock): Use
UTC for time differences.
* org.el (org-activate-dates): Change `org-activate-dates' to activate
custom timestamps for both dates in date ranges. Formerly, only the
second date would be activated. The reason was a misplaced
`if'. Replaced it with `when'. Also added doc comments.
TINYCHANGE