* 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
* lisp/org.el (org-check-before-invisible-edit): Fix "Before first
heading" error.
Invisible characters can come from overlays and text properties. The
current implementation tries to remove outline overlays, even though
it may be something else.
Reported-by: John Kitchin <jkitchin@andrew.cmu.edu>
<http://lists.gnu.org/archive/html/emacs-orgmode/2017-06/msg00365.html>
lisp/org-protocol.el (org-protocol-project-alist): Date-URL is added
as example.
(org-protocol-open-source): First match is processed in rewrite.
testing/lisp/test-org-protocol.el (test-org-protocol/org-protocol-open-source):
Configuration displaying a date-style URL is added.
TINYCHANGE
* lisp/org-element.el (org-element-latex-fragment-parser): Also check
border character right after opening "$" sign.
* testing/lisp/test-org-element.el (test-org-element/latex-fragment-parser):
Add tests.
Reported-by: thomas <thomas@friendlyvillagers.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/114285>
* lisp/org.el (org-todo): Display state change message when headline
is not visible, reversing unintentional modification from dd17e9d29.
Prior to dd17e9d29 (2014-05-31), a message was displayed when changing
the state of a headline that was *not* visible, helping the user know
what the new state was even though the headline was off the screen.
While extending this code, dd17e9d29 unintentionally reversed the
visibility check, resulting in the message only being shown when the
headline is visible.
Reported-by: Russell Adams <RLAdams@AdamsInfoServ.Com>
<https://lists.gnu.org/archive/html/emacs-orgmode/2017-06/msg00442.html>
* lisp/ox-texinfo.el (org-texinfo-classes): Change default value and
structure.
(org-texinfo--structuring-command): New function.
(org-texinfo-headline): Use new function.
The new structure handles properly appendices at sub-levels.
* lisp/org.el (org-open-at-point): Also open links in example blocks
and diary-sexps.
* testing/lisp/test-org.el (test-org/open-at-point/keyword):
(test-org/open-at-point/property):
(test-org/open-at-point/comment): Add tests.
Reported-by: Dieter Faulbaum <Dieter.Faulbaum@helmholtz-berlin.de>
<http://lists.gnu.org/archive/html/emacs-orgmode/2017-06/msg00277.html>
* lisp/org-clock.el (org-clock-out):
(org-clock-sum):
(org-clocktable-steps):
(org-clock-update-time-maybe): Use UTC to compute time differences.
* testing/lisp/test-org-clock.el (test-org-clock/clocktable/scope):
Update test.
* doc/org.texi (Info directory file): Fix node name.
(Headings and sectioning structure): Document location of text before
first headline.
(A Texinfo example): Update example.
* lisp/ox-texinfo.el (org-texinfo-template): Handle contents of very
first section.
(org-texinfo-section): Ignore very first section.
According to Texinfo specifications, Top node contents should not
appear in printed output. Move it near "@top" command, within
"@ifnottex".
* lisp/org-indent.el (org-indent--text-line-prefixes):
(org-indent--heading-line-prefixes):
(org-indent--inlinetask-line-prefixes): New variables.
(org-indent--compute-prefixes): New function.
(org-indent-mode): Use new function.
(org-indent-set-line-properties): Use new variables. Also prevent
regular lines from being prefixed with stars.
Reported-by: Forrest Sedgwick <fgsedgwick@gmail.com>
<http://lists.gnu.org/archive/html/emacs-orgmode/2017-06/msg00341.html>
* lisp/ox-texinfo.el (org-texinfo-keyword): Index keywords are
specific to Texinfo back-end, so they expect regular Texinfo code.
* doc/org.texi (Indices): Update documentation.
* lisp/org-macro.el (org-macro--counter-increment): Rename the
optional arg RESET to ACTION, as now that action can mean setting,
resetting or even holding the specified counter. ACTION set to
"-" will hold the previous value of the counter. White-space is
now trimmed from the NAME arg too.
* doc/org.texi (Macro replacement): Document the new hold action.
* testing/lisp/test-org-macro.el (test-org-macro/n): Add new tests for
the hold action.
* lisp/ox-texinfo.el (org-texinfo-table-default-markup): Rename from
`org-texinfo-def-table-markup'. Set default value to the neutral
"@asis".
(org-texinfo-plain-list): Use new name.
* lisp/org-compat.el (org-texinfo-def-table-markup): Mark as obsolete.
* doc/org.texi (Publishing options): Document change.
* lisp/org-table.el (org-table-duration-custom-format): Add new
HH:MM format.
(org-table-duration-hour-zero-padding): New option.
(org-table-eval-formula): Select second-less format if
requested.
(org-table-time-seconds-to-string): Implement formats without
seconds and without zero-padding for hours.
* testing/lisp/test-org-table.el (test-org-table/duration):
New test for second-less durations.
* doc/org.texi (Formula syntax for Calc)
(Durations and time values): Document the U mode switch.
* lisp/org.el (org--file-cache): New variable.
(org-reset-file-cache):
(org-file-url-p): New function.
(org-mode-restart): Use new function.
* lisp/org.el (org-file-contents): Allow the FILE argument to be a
URL. If the URL contents are already cached, return the cache
contents, else download the file and return contents of that. The
file is automatically cached each time it is downloaded. Add a new
optional argument NOCACHE. If this is non-nil, the URL is always
downloaded afresh. Use `org--file-cache' and `org-file-url-p'.
* lisp/org.el (org-edit-special): Do not allow editing the "file" if a
URL is specified for the "#+SETUPFILE".
* lisp/ox.el (org-export--list-bound-variables)
(org-export--prepare-file-contents):
* lisp/org-macro.el (org-macro--collect-macros) : Adapt to the
possibility that the input to `org-file-contents' can be a URL too.
* doc/org.texi (Export settings, In-buffer settings)
(The very busy C-c C-c key): Mention that #+SETUPFILE keyword can now
take a URL as a value, and that C-c C-c on the #+SETUPFILE line will
clear the org file cache.
* testing/lisp/test-org.el (test-org/org-file-contents-url)
(test-org/org-file-contents-file): Add tests for org-file-contents.
* testing/lisp/test-ox.el (test-org-export/get-inbuffer-options): Add
test for reading setupfile specified via a URL.
* lisp/ob-shell.el (org-babel--variable-assignments:bash): Do not
error when value is a list.
* testing/lisp/test-ob-shell.el (ob-shell/simple-list): New test.
Reported-by: Keith Amidon <camalot@picnicpark.org>
<http://permalink.gmane.org/gmane.emacs.orgmode/113920>
* lisp/ox.el (org-export--install-footnote-definitions):
Provide :raw-value property when building a virtual footnote
section, as `org-export-search-cells' expects it.
* lisp/org-src.el (org-edit-footnote-reference): Do not collapse
footnote definitions after editing remotely one of them.
* testing/lisp/test-org-src.el (test-org-src/footnote-references): New
test.
* lisp/ox-texinfo.el (org-texinfo-text-markup-alist): Change default
value.
(org-texinfo--text-markup): Handle protected @samp{...} command.
@samp{} is more versatile than @verb{} as it can belong to more
commands. So, it makes more sense as a default value.
* lisp/ox-texinfo.el (org-texinfo--sanitize-title): New function.
(org-texinfo--get-node): Use new function. Tiny improvement over
aesthetics of duplicate node names.
(org-texinfo--sanitize-node): Fix docstring.
(org-texinfo-headline): Use new function
(org-texinfo--@ref): Remove colons and protect commas in description.
(org-texinfo-link): Use new function. Better handling of targets
within headings.
(org-texinfo--format-entries): Use new function. Remove colons from
menu entries.
* lisp/ox-texinfo.el (org-texinfo--@ref): New function.
(org-texinfo-link): Use new function.
When node name doesn't correspond to actual title, use the third @ref
argument to ensure the node name is not printed nor displayed.
* lisp/org-macro.el (org-macro-replace-all): Expand macros only within
narrowed part of buffer.
* testing/lisp/test-org-macro.el (test-org/macro-replace-all): Update
test.
Expanding macros outside in the whole buffer could make sense, e.g.,
if a macro expands to some Babel code, which, in turn, is evaluated
prior to export. However, by principle of least surprise, it is
better to limit expansion to current accessible part of the buffer.
* lisp/org-gnus.el (org-gnus-nnimap-query-article-no-from-file):
Remove variable.
* lisp/org-gnus.el (org-gnus-nnimap-cached-article-number): Remove
function.
(org-gnus-follow-link): Apply changes. Small refactoring.
`org-gnus-nnimap-cached-article-number' has been removed from Gnus
since 2010 and is not present in Emacs versions supported by Org.
* lisp/org-capture.el (org-capture-place-entry): Make sure planning
line is visible when added in a narrowed capture buffer. Refactor
code.
Reported-by: Detlef Steuer <steuer@unibw-hamburg.de>
<http://permalink.gmane.org/gmane.emacs.orgmode/113756>
* lisp/org.el (org-comment-string): Wrap definition in an
eval-and-compile because this variable is used within the body of
eval-when-compile, leading to an error under "make single".
(org-at-timestamp-p): Use bound-and-true-p to check
org-agenda-include-inactive-timestamps because org-agenda may not be
loaded yet.
Reported-by: Kaushal Modi <kaushal.modi@gmail.com>
<https://lists.gnu.org/archive/html/emacs-orgmode/2017-05/msg00326.html>
* lisp/org-clock.el (org-clocktable-write-default): Limit number of
time columns to the deepest headline level.
* testing/lisp/test-org-clock.el (test-org-clock/clocktable/maxlevel):
Update tests.
* lisp/org.el (org-activate-links): New function.
(org-set-font-lock-defaults): Use new function.
(org-activate-angle-links):
(org-activate-bracket-links):
(org-activate-plain-links): Remove functions.
* lisp/org-agenda.el (org-agenda-get-some-entry-text):
(org-agenda-finalize): Use new function.
Reported-by: 林镇国 <mistkafka@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/113485>
* lisp/org-macro.el (org-macro--counter-table): New variable.
(org-macro--counter-initialize):
(org-macro--counter-increment): New functions.
(org-macro-initialize-templates): Use new functions.
* doc/org.texi (Macro replacement): Document new macro.
* testing/lisp/test-org-macro.el (test-org-macro/n):
(test-org-macro/property): New tests.
* lisp/ox-publish.el (org-publish-file): Do not expand symlinks so as
to get proper publishing directory.
Reported-by: Julien Cubizolles <j.cubizolles@free.fr>
<http://permalink.gmane.org/gmane.emacs.orgmode/113611>
* lisp/org-capture.el (org-capture-finalize): Remove blank lines
number fix, which only applies to narrowed capture buffers.
(org-capture-insert-template-here):
(org-capture-place-plain-text):
(org-capture-place-item):
(org-capture-place-entry): Do not hard-code number of blank lines
after entry.
Reported-by: Igor Perepelytsya <igorquail@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/113093>
Reported-by: Jay Dresser <jay@jaydresser.us>
<http://permalink.gmane.org/gmane.emacs.orgmode/113449>
* lisp/org.el (org-fill-element): New function.
(org-fill-paragraph): Use new function. Also handle region, when
called interactively.
* testing/lisp/test-org.el (test-org/fill-element): Renamed from
test-org/fill-paragraph. Update tests.
Reported-by: Oskar Kvist <oskar.kvist@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/113542>
* lisp/org-colview.el (org-columns--compute-spec): Make sure current
and new values do not differ only by leading or trailing blanks
before replacing the former by the latter.
Reported-by: Hendrik Tews <hendrik@askra.de>
<http://permalink.gmane.org/gmane.emacs.orgmode/113597>
* lisp/org.el (org-protect-slash): Remove function.
(org-refile-get-targets): Apply removal.
This internal function is used only once throughout the code base.
* lisp/org.el (org-store-link): When a double C-u prefix argument is
given, do not reverse the meaning of the org-context-in-file-links
option.
* testing/lisp/test-org.el (test-org/store-link): Add tests.
This allows the user to fall back to the core link storing functions
without also reversing their org-context-in-file-links preference,
because wanting to do the former does not mean a user also wants to do
the latter.
Reported-by: York Zhao <gtdplatform@gmail.com>
<https://lists.gnu.org/archive/html/emacs-orgmode/2017-05/msg00254.html>
* lisp/org-colview.el (org-columns--displayed-value): When value is
a number and a format string is specified, apply it.
* testing/lisp/test-org-colview.el (test-org-colview/columns-summary):
Add tests.
Reported-by: Hendrik Tews <hendrik@askra.de>
<http://permalink.gmane.org/gmane.emacs.orgmode/113547>
* lisp/org-clock.el (org-clocktable-write-default): Do not ignore
properties specified by :properties parameter.
* testing/lisp/test-org-clock.el (test-org-clock/clocktable/properties):
New test.
The regression was introduced in b897ab722.
Reported-by: Dale <dale@codefu.org>
<http://permalink.gmane.org/gmane.emacs.orgmode/112219>
* lisp/org-macs.el (org-read-function): New function.
* lisp/org-table.el (org-table-sort-lines): Make WITH-CASE an optional
argument to match org-sort-entries and org-sort-list.
* lisp/org.el (org-sort-entries):
* lisp/org-table.el (org-table-sort-lines):
* lisp/org-list.el (org-sort-list): Read COMPARE-FUNC when called
interactively rather than being restricted to the default behavior of
sort-subr's PREDICATE parameter. Only prompt for for GETKEY-FUNC and
COMPARE-FUNC during an interactive call, like org-table-sort-lines
already did for GETKEY-FUNC, but use an argument rather than relying
on the brittle called-interactively-p.
Suggested-by: Zhitao Gong <zhitaao.gong@gmail.com>
<https://lists.gnu.org/archive/html/emacs-orgmode/2017-05/msg00040.html>
* org.el (org-refile-get-targets): Setting org-refile-use-outline-path
to `file' or `buffer-name' causes an additional target for the file’s
root node to be inserted. This functionality was absent when using
`full-file-path'. We now add this since it is convenient and makes the
behavior more consistent.
* lisp/ob-ref.el (org-babel-ref-resolve): Fix unescaped character
literal.
Fix all unescaped character literals
3c4c8ca06e3306ccbcd07e354eb51abe53b52d22
Philipp Stephani
Sun May 7 13:22:34 2017 +0200
* lisp/org-element.el (org-element-context): Do not parse timestamps
within planning line.
* testing/lisp/test-org-element.el (test-org-element/context): Remove test.
Strictly speaking, timestamps within planning lines are parameters
values that use timestamp syntax, not real timestamps belonging to the
document contents.
* lisp/org-element.el (org-element-latex-fragment-parser):
* lisp/org.el (org-latex-regexps): Allow an apostrophe right after
a fragment.
* testing/lisp/test-org-element.el (test-org-element/latex-fragment-parser):
Add test.
In Text mode, and, as a consequence, in Org mode, "'" is not treated
as punctuation, but as word constituent. The apostrophe isn't caught
by "\s." regexp.
Reported-by: Joe Corneli <holtzermann17@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/113464>
* lisp/org.el (org-N-empty-lines-before-current): Insert empty lines
before point, not after.
* testing/lisp/test-org.el (test-org/insert-heading): Add test.
* lisp/org-agenda.el (org-agenda-bulk-action): Do not request logging
writing a note when multiple entries are being re-deadline'd at the
same time.
Reported-by: Allen Li <darkfeline@felesatra.moe>
<http://permalink.gmane.org/gmane.emacs.orgmode/113426>
* lisp/org-agenda.el (org-agenda-bulk-unmark-all): Do not reset
markers stored in `org-agenda-bulk-marked-entries'. These markers
are not specific to bulk actions and need not be modified by
side-effect.
Reported-by: Adrian Bradd <adrian.bradd@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/112895>
Use case: have two windows open side-by-side. One has an Org-mode
file, the other - a Dired buffer with a file we want to attach.
With this change, and user's `dired-dwim-target' setting, the prompt
for file to attach will start in the Dired buffer's directory.
* lisp/org.el (org-sort): Revert change from c1addc825 that replaced
org-call-with-arg with funcall because org-table-sort-lines changes
its behavior based on the return value of called-interactively-p.
* lisp/org.el (org-sort): Use funcall instead of org-call-with-arg,
and make WITH-CASE an optional argument.
* lisp/org-table.el (org-table-sort-lines): Make WITH-CASE an optional
argument.
* org.el (org-refile-get-targets): Add case to optionally prefix
refile targets with the buffer name.
(org-refile-use-outline-path): Add new option setting and document.
Having an option to use the buffer name as a prefix is convenient,
since this will work hand in hand with uniquify to only show those
parts of the filesystem path needed to disambiguate buffers of
identically named files, as opposed to prefixing refile targets with
the full filesystem path.
* org.el (org-refile-get-targets): Only escape slashes in headline
part of refile target; leave any file-system path component (when
enabled) unescaped.
The reason to escape slashes in refile targets is to make it clear
when a slash was part of a headline vs. part of the outline path. It
makes sense to treat slashes in the file system part the same way as
outline paths, since this won’t result in any confusion and serves to
make target selection less noisy.
* lisp/ox-publish.el (org-publish-org-to):
(org-publish-collect-index):
(org-publish--store-crossrefs):
(org-publish-resolve-external-link): Use `file-truename' so that
caching keys do not depend on links in the file name.
* lisp/ox-publish.el (org-publish-file): Use function dedicated to
files instead of string related ones. Small refactoring.
(org-publish-cache-get-file-property): Small refactoring.
* lisp/ox-publish.el (org-publish-get-project-from-filename):
(org-publish-attachment):
(org-publish-projects):
(org-publish-org-sitemap): Use file comparison functions instead of
string ones so as to properly handle symbolic links in filenames.
* lisp/org.el (org--get-expected-indentation): Correctly indent line
when last element in an item is not a greater element.
* testing/lisp/test-org.el (test-org/indent-line): Add test.
* lisp/ob-python.el (org-babel-execute:python):
`org-babel-python-command` should be set before calling
`org-babel-python-initiate-session`.
TINYCHANGE
* lisp/ox.el (org-export-get-loc):
(org-export-unravel-code):
(org-export-format-code):
(org-export-format-code-default): Do not trim leading and trailing
blank lines from code during export.
* testing/lisp/test-ox.el (test-org-export/unravel-code): Update tests.
(test-org-export/format-code-default): Add tests.
Reported-by: Li DebugFan <debugfanli@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/113205>
* lisp/org-src.el (org-src--source-type):
(org-src--tab-width): New variables.
(org-src--edit-element): Set variables above.
(org-src--contents-for-write-back): Re-indent properly non-blank lines
before inserting contents back into the source buffer.
(org-edit-src-code): Delegate block indentation to
`org-src--contents-for-write-back'.
* testing/lisp/test-org-src.el (test-org-src/indented-blocks): New
test.
Reported-by: Brent Goodrick <bgoodr@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/113207>
* lisp/org-clock.el (org-clock-get-table-data): Use `org-get-heading'.
Also, avoid calling `org-entry-properties' since getting "TIMESTAMP"
or "TIMESTAMP_IA" properties can be very slow.
* lisp/org-agenda.el (org-agenda-list-stuck-projects): Store the redo
command in a text property so it is found correctly.
`org-agenda-redo' checks the `org-redo-cmd' text property, not
`org-agenda-redo-command'.
TINYCHANGE
* lisp/ob-C.el (org-babel-C-execute): Make sure name of compiled
program is converted to local representation before sending it to the
shell on remote host.
The problem was when one would try to evaluate C source code block in
the file on remote host. Compilation would go normally, then
evaluation would fail with error like "/bin/sh: unable to find file".
TINYCHANGE
* lisp/org-agenda.el (org-agenda):
(org-agenda-run-series): Do not restrict `tags-todo' searches to
non-DONE TODO keywords.
Reported-by: Kevin Foley <kfoley15@gmail.com>
* lisp/org-protocol.el: (org-protocol-do-capture) Don't push link to
kill-ring when invoking `org-protocol-capture'. Otherwise,
`org-protocol-do-capture' interferes with capture templates that
insert the contents of the clipboard or the kill ring.
* lisp/org-capture.el (org-capture--clipboards): New variable.
(org-capture-fill-template): Use new variable.
Reported-by: Allen Li <darkfeline@felesatra.moe>
<http://permalink.gmane.org/gmane.emacs.orgmode/113020>
* lisp/org-protocol.el (org-protocol-check-filename-for-protocol): Do
not catch every error so as to ease old style support. Re-format
code to fit within 80 columns.
Reported-by: Adam Porter <adam@alphapapa.net>
<http://permalink.gmane.org/gmane.emacs.orgmode/113102>
* lisp/org.el (org-todo): Fix explanation, if state change is blocked
by contained checkboxes.
Consider a node, which contains unchecked checkboxes; if you have set
org-enforce-todo-checkbox-dependencies and try to change the node to
DONE, you will be denied with a message explaining why. However in this
special case the explanation would be wrong in talking of an unrelated
node instead of the checkboxes.
The fix uses the already existing variable org-blocked-by-checkboxes
(which is handled in org-block-todo-from-checkboxes). Similar code is
already present in org-agenda-dim-blocked-tasks within org-agenda.el.
* lisp/org-clock.el (org-clock-get-table-data): Fix link creation with
headlines containing COMMENT or TODO keywords. Fix docstring.
Small refactoring.
Reported-by: "Stacey Marshall" <stacey.marshall@oracle.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/113094>
* contrib/lisp/org-toc.el (org-toc-quit):
* lisp/org-mhe.el (org-mhe-follow-link): Use kill-buffer rather than
menu-bar.el's kill-this-buffer.
See Emacs bug#26466 and discussion on emacs.devel:
https://lists.gnu.org/archive/html/emacs-devel/2017-04/msg00346.html.
This is in favor of backporting Emacs's 2e4f4c9d48 (Don't call
'kill-this-buffer' outside of menus, 2017-04-12), which introduces a
new function kill-current-buffer that provides special handling of
minibuffers.
(org-babel-sql-convert-standard-filename): If it is not in Cygwin
environment, and `system-nt' is "windows-nt", Emacs must be in minGW
or MSYS environment, and can handle Windows filename correctly.
TINYCHANGE
* doc/org.texi : Change reference to "cdn.mathjax.org" to "cdnjs.com",
removing comment about no longer relevant terms of service.
* lisp/ox-html.el (org-html-mathjax-options) : Change link to
appropriate cdnjs.com link to load MathJax.
Updating MathJax CDN links to reflect cdnjs.com as cdn.mathjax.org
will be disconitnued as of 30 April 2017.
TINYCHANGE
* lisp/org-element.el (org-element--object-lex): Fix parsing of radio
links within emphasis.
* testing/lisp/test-org-element.el (test-org-element/link-parser): Add
test.
Reported-by: R C <recifx@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/113063>
* lisp/org.el (org-forward-heading-same-level): Do not fail when
heading is at the beginning of the buffer.
* testing/lisp/test-org.el (test-org/forward-heading-same-level): New
test.
Reported-by: Rafael Laboissière <rafael@laboissiere.net>
<http://permalink.gmane.org/gmane.emacs.orgmode/113084>
* lisp/org-agenda.el (org-agenda-write): Use default-directory of
export file. This is necessary for htmlize.el to write the correct
path to agenda icons.
* lisp/org-clock.el (org-dblock-write:clocktable): Preserve current
narrowing, if any, when building the table.
Reported-by: Christof Musik <ml-orgmode@litephone.org>
<http://permalink.gmane.org/gmane.emacs.orgmode/112872>