* ox-html.el (org-html--build-pre/postamble): Find the spec based on the
language case-insensitively.
Note that the default org-html-preamble-format and
org-export-default-language are incompatible.
* lisp/org-table.el (orgtbl-setup): Hijack DEL key. We also hijack
`delete-backward-char' but major modes derived from `prog-mode'
usually bypass it.
Reported-by: Alex G <agrambot@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/107232>
* ox-html.el (org-html-with-latex): Add dvisvgm support.
(org-html-with-latex): Add dvisvgm support.
(org-html-format-latex): "ltxpng" -> "ltximg".
(org-html-latex-environment): Add dvisvgm support.
(org-html-latex-fragment): Add dvisvgm support.
* org.el (org-preview-latex-default-process): New variable.
(org-latex-create-formula-image-program): Rename it to `org-preview-latex-default-process'.
(org-latex-preview-ltximg-directory): Rename it to `org-preview-latex-image-directory'.
(org-preview-latex-image-directory): New variable.
(org--format-latex-make-overlay): Add optional image-type, which used to deal with svg.
(org-toggle-latex-fragment): "org-ltxpng" -> "org-ltximg".
(org-format-latex): Add dvisvgm support.
(org-create-formula-image): Big refactor, merge dvipng and imagemagick
backend's feature. Add dvisvgm feature.
(org-preview-latex-process-alist): Add new variable, which used to set
latex preview processes.
(org-create-formula-image-with-dvipng):
(org-create-formula-image-with-imagemagick): Useless, removed.
* org.texi (@LaTeX{} fragments):
(Previewing @LaTeX{} fragments):
(Math formatting in HTML export):
(Working with @LaTeX{} math snippets): Add dvisvgm information.
* lisp/org-table.el (orgtbl-self-insert-command): Properly overwrite
white spaces when there is room for it. This is on par with what
`org-self-insert-command' does in Org tables.
Reported-by: Alex <agrambot@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/107112>
* lisp/org.el (org-compile-file):
(org-file-newer-than-p): New functions.
* lisp/ox-latex.el (org-latex-compile): Use new functions.
* lisp/ox-man.el (org-man-compile): Use new functions.
(org-man-collect-errors): Remove it.
* lisp/ox-texinfo.el (org-texinfo-compile): Use new functions.
(org-texinfo-collect-errors): Remove function as it is not accurate
enough (e.g., it doesn't handle internationalization).
* org-macro.el (org-macro--vc-modified-time): New function.
* org-macro.el (org-macro-initialize-templates): Add support for new
function.
* doc/org.texi (Macro replacement): Document new behavior.
* etc/ORG-NEWS: Mention new behavior.
* lisp/org-capture.el (`org-capture-templates'): Adjust the
`org-capture-templates' defcustom template to support specifying the capture
target file using either a literal pathname, a function, a variable or a
form, as documented. Previously the Customize UI supported specifying only a
literal pathname.
(org-capture-templates): Clarify the documentation for the `function' method
for setting up the capture target.
* doc/org.texi (Template elements): Clarify the `function' method for setting up
the capture target.
* lisp/org-compat.el (org-select-frame-set-input-focus): Check for
w32-focus-frame to quiet byte compiler.
Don't use declare-function because this function was marked obsolete in
Emacs 23.1 (44fe0f6).
* lisp/org-gnus.el (org-gnus-nnimap-cached-article-number): Check that
nnimap-group-overview-filename, which was removed from Emacs in 2010,
is defined before calling.
* lisp/org.el (org-export-backend-options): Add back removed
declare-function call.
* lisp/ob-awk.el (orgtbl-to-generic):
* lisp/ob-core.el (orgtbl-to-generic):
* lisp/ob-gnuplot.el (orgtbl-to-generic): Remove BACKEND argument from
declare-function calls.
The last backport added this argument to match orgtbl-to-generic's
signature in Emacs's version of Org, but the BACKEND argument to
orgtbl-to-generic was later removed in 9209aa3 (org-table: Use "ox.el"
internally for radio tables, 2014-08-24).
* lisp/org-src.el (org-src-mode-configure-edit-buffer): Do not treat
each save as meant to save source buffer.
Reported-by: David Dynerman <david@block-party.net>
<http://permalink.gmane.org/gmane.emacs.orgmode/106998>
* org-agenda.el (`org-agenda-bulk-custom-functions'): Change the defcustom
template to recognize that the code expects this alist's elements to be
two-element lists like (?a b), not conses like (?a . b).
The Customize UI previously incorrectly presented the latter. When
saved, this led to the agenda bulk-commands menu correctly presenting
the accelerator key 'a' but then erroring when it tried to execute the
associated command 'b'.
* lisp/org-clock.el (org-clock-drawer-name): When
`org-clock-into-drawer' is a number and `org-log-into-drawer' is t,
default to "LOGBOOK".
* testing/lisp/test-org-clock.el (test-org-clock/into-drawer):
(test-org-clock/drawer-name): New tests.
* ob-comint.el (org-babel-comint-eval-invisibly-and-wait-for-file):
The tramp macro `with-parsed-tramp-file-name' invokes a bunch of
tramp functions. These are now declared and tramp is explicitly
required.
* lisp/org-clock.el (org-clock-find-position): Create a default
"LOGBOOK" drawer when `org-clock-into-drawer' is a numeric value.
Reported-by: Carlos Noguera <carlos.francisco.noguera@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/106886>
* lisp/ox-html.el (org-html-style-default): Add languages.
The standard CSS for HTML export only supported a couple of
programming languages to have a language name "hover" on src
blocks. This patch adds all languages supported per Org
manual, those from org.el's org-babel-load-languages-alist,
additional language identifiers in ob-*.el and languages
which have a) an emacs mode and b) are supported by the LaTeX
listings package. Additional a language "conf" is supported
for generic configuraiton files; an emacs mode exists for
this, but for LaTeX listings a language " " has to be faked.
As this patch is for HTML, this is no impediment.
Thanks for reporting the missing support to Tianxian XIONG.
* lisp/org.el (org-occur): Fix infloop when regexp matches a single
char. Improve docstring.
(org-check-before-date):
(org-check-after-date):
(org-check-dates-range): Match correct object since point may be at the
beginning of the next one.
* testing/lisp/test-org.el (test-org/occur): New test.
* lisp/org-capture.el (org-capture):
(org-mks): Replace `error' with `user-error'.
When `org-capture` is aborted by user with 'q' or 'C-g', `user-error' is
better than `error' when exiting.
TINYCHANGE
* lisp/ob-paltuml (org-babel-execute:plantuml): add new output formats
of plantuml:
- pdf : this needs extra java mudules to run which are mentioned on the
plantml website (http://fr.plantuml.com/pdf.html)
- vdx
- xmi
- scxml
- html
- txt (ascii art)
- utxt (ascii art using unicode)
The output format is based on the extension of the output file.
* lisp/org.el (org-flag-drawer): Do not require point to be at a drawer
in order to call the function with an optional argument.
* testing/lisp/test-org.el (test-org/flag-drawer): Narrow test.
* lisp/org.el (org-show-set-visibility): Always show point, even when it
is hidden in a block or a drawer.
* testing/lisp/test-org.el (test-org/show-set-visibility): Add tests.
Reported-by: Derek Feichtinger <dfeich@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/106744>
* lisp/org.el (org-show-context-detail): Change default visibility span
for agenda context.
* lisp/org-agenda.el (org-agenda-goto):
(org-agenda-todo):
(org-agenda-add-note):
(org-agenda-priority):
(org-agenda-set-tags):
(org-agenda-set-property):
(org-agenda-set-effort):
(org-agenda-toggle-archive-tag):
(org-agenda-clock-in): Special visibility is taken care of by
`org-show-context'. Do not hard-code anything else.
* contrib/lisp/org-contacts.el (org-contacts-gnus-article-from-goto):
Special visibility is taken care of by `org-show-context'. Do not
hard-code anything else.
* lisp/ob-exp.el (org-babel-exp-process-buffer): Handle
`org-export-babel-evaluate' handling.
(org-babel-exp-results): Ignore `org-export-babel-evaluate' since it is
handled as a higher level.
* lisp/ox.el (org-export-as): Allow to short-circuit babel evaluation if
`org-export-babel-evaluate' is nil.
* testing/lisp/test-ob-exp.el (ob-export/babel-evaluate): New test.
Reported-by: Nicolas Richard <nrichard@ulb.ac.be>
<http://permalink.gmane.org/gmane.emacs.orgmode/106767>
* lisp/ox.el (org-export-format-reference): Internal references are
always 10 character long.
This reduces further possible reference clashes with user-defined
labels.
* ob-comint.el (org-babel-comint-eval-invisibly-and-wait-for-file):
Remove the `(ignore v)'. This creates a byte-compiler warning for
supposedly unused `v', but allows remote execution.
* ob-comint.el: (tramp-flush-directory-property declaration): The
file is now "tramp-cache".
* ob-comint.el (org-babel-comint-eval-invisibly-and-wait-for-file):
Remove unused let binding for `v' (which is let bound by
`with-parsed-tramp-file-name').
Bug reported by Vikas Rawal
Subject: Using tramp to run R source code blocks on remote server
Archived-At: <http://permalink.gmane.org/gmane.emacs.orgmode/106557>
* lisp/org.el (org-yank): Update docstring for change in default value
of org-yank-adjusted-subtrees.
The default value was changed to nil in 2949012 (Change default values
of some variables., 2009-02-01).
Reported-by: Jorge Peixoto de Morais Neto <jorge13515@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/106610>
* lisp/ob-emacs-lisp.el (org-babel-header-args:emacs-lisp):
(org-babel-default-header-args:emacs-lisp): New variables.
(org-babel-execute:emacs-lisp): Add an optional argument to the eval
function.
* lisp/org-agenda.el (org-agenda-mark-clocking-task):
(org-agenda-clock-goto): `org-clock-current-task' may not be defined, so
check that first.
Reported-by: Kyle Meyer <kyle@kyleam.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/106504>
* lisp/org-pcomplete.el (pcomplete/org-mode/file-option/tags):
(pcomplete/org-mode/tag): Use new `org-current-tag-alist' instead of
`org-tag-alist' so as to take `org-tag-persistent-alist' into
consideration.
* lisp/org.el (org-current-tag-alist): New variable.
(org-set-tags):
(org-global-tags-completion-table):
(org-agenda-prepare-buffers): Use new variable.
(org-set-regexps-and-options): Use new variable. Handle STARTUP early
so that "#+STARTUP: noptag" is taken into consideration.
* lisp/org-agenda.el (org-agenda-bulk-action): Use new variable.
* lisp/org-mobile.el (org-mobile-create-index-file): `org-tag-alist' is
no longer buffer-local.
* testing/lisp/test-org.el (test-org/set-regexps-and-options): Add
tests.
* lisp/org.el (org-tag-string-to-alist):
(org-tag-alist-to-string):
(org-tag-alist-to-groups): New functions.
(org-set-regexps-and-options): Use new functions.
(org--setup-process-tags): Remove function.
(org--setup-collect-keywords): Return tag groups as a string instead of
a list so as to be compatible with new functions.
* lisp/org-mobile.el (org-mobile-create-index-file): Use new functions.
* lisp/org-pcomplete.el (pcomplete/org-mode/file-option/tags): Use new
functions.
(pcomplete/org-mode/tag): Small refactoring.
* testing/lisp/test-org.el (test-org/tag-string-to-alist):
(test-org/tag-alist-to-string):
(test-org/tag-alist-to-groups): New tests.
* lisp/org-capture.el (org-capture-place-table-line): Move point in
front of the table before trying to analyze it.
Reported-by: Christian Moe <mail@christianmoe.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/106356>
* lisp/ox-ascii.el (org-ascii--unique-links):
(org-ascii-headline):
(org-ascii-section): Fix export of links in headlines.
Reported-by: Samuel Wales <samologist@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/106338>
* lisp/org.el (org-timestamp-format):
* lisp/ox-icalendar.el (org-icalendar-convert-timestamp): Specify t for
the ZONE argument of format-time-string to indicate UTC.
As of Emacs's af32fa9 (New optional ZONE arg for format-time-string
etc., 2015-07-26), UTC is indicated by passing t as the third argument
to format-time-string rather than any non-nil value.
This change is in place of a backport of Emacs's b787d55 (More
format-time-string change fixups, 2016-04-02), which would not work for
earlier versions of Emacs.
* ob-lisp.el (org-babel-lisp-eval-fn): New variable.
(org-babel-execute:lisp): Support using SLY to evaluate lisp src block.
Let user can evaluate Lisp src block with SLY.
Modified from a patch proposal by stardiviner.
TINYCHANGE
* lisp/org.el (org-check-dates-range): Fix a bug introduces with the
switch to lexical binding in commit
1f49e9fdfd.
This change fixed the following bug: C-c \ D leads to error message "Symbol's value as variable is void: start-date".
TINYCHANGE
* lisp/org-info.el (org-info-export): Convert info links to HTML URL's
that point to appropriate gnu.org or other pages. User's can customize
the behavior using `org-info-emacs-documents' and
`org-info-other-documets' new variables.
TINYCHANGE
* lisp/org.el (org--get-expected-indentation): Return correct columns
when at the end of an empty item.
* testing/lisp/test-org.el (test-org/indent-line): Add test.
* lisp/ob-C.el (org-babel-C-header-to-C): change ulong to size_t for
indexing a table as mandated by the latest version of the D language
(thanks to Chris Andrews)
* lisp/org-table.el (org-table-eval-formula): Nowadays, Calc is
installed with Emacs, so there is no need to specify this. Also
remove hard-coded "C-u".
(org-table-recalculate): Fix code typo.
* lisp/org-table.el (org-table-eval-formula): Expand first and last
references into proper fields coordinates before replacing ranges.
Reported-by: Pablo S. Casas <pabloscasas@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/105895>
* lisp/org-agenda.el (org-agenda-bulk-action): Fix rescheduling TODO items with `org-log-reschedule' set to `note'.
Reported-by: Allen Li <darkfeline@felesatra.moe>
<http://permalink.gmane.org/gmane.emacs.orgmode/105591>
* lisp/ox-publish.el (org-publish--collect-references): Renamed...
(org-publish--store-crossrefs): ... to this.
(org-publish-org-to): Use previous function. Small refactoring.
(org-publish-resolve-external-link): Use tight integration with
`org-export-get-reference' so as to provide reliable cross references.
* lisp/ox.el (org-export-get-reference): Conversely, take into
consideration references suggested by
`org-publish-resolve-external-link'.
* lisp/ox.el (org-export-get-reference): Use randomly generated labels.
(org-export-new-reference):
(org-export-format-reference): New functions.
* testing/lisp/test-ox.el (test-org-export/get-reference): New test.
The new scheme is better when datum type cannot be known ahead of time
or when references are not created sequentially, e.g., during
a publishing process where a reference to a file can be require before
the file is published.
* lisp/org-agenda.el (org-agenda-show-the-flagging-note):
* lisp/org-footnote.el (org-footnote-goto-definition):
* lisp/org-table.el (org-table-edit-formulas): Fix straight quotes
rendered as curvy quotes in echoes messages (in emacs 25.1).
* lisp/org-table.el (org-table-align): Fix straight quotes rendered as
curvy quotes in help echo (in emacs 25.1).
* lisp/org-protocol.el (org-protocol-create-for-org):
* lisp/org-table.el (org-table-sum): Minor reformatting.
The below thread discusses why these changes were needed especially when
using emacs 25.1 or newer emacsen (that added support for rendering
back-quotes and straight quotes as left/right curvy quotes by default):
http://thread.gmane.org/gmane.emacs.orgmode/105594
Fix the quote style displayed when key-bindings are shown in
the echo via (message .. (substitute-command-keys ..)).
So below will render that single quote as curly.
(message "C-c '")
The fix (Reference:
https://lists.gnu.org/archive/html/bug-gnu-emacs/2015-10/msg00234.html)
is to print that quote verbatim using the "%s" modifier:
(message "%s" "C-c '")
Also an help-echo text property value was fixed in `org-table-align'.
`substitute-command-keys' should not be used in that. Instead \\[COMMAND]
should be used directly in the string.
* lisp/org-crypt.el (org-decrypt-entry): Decrypt entries with
a properties drawer.
This commit propagates changes made to `org-encrypt-entry' in the
previous commit.
* lisp/org.el (org--get-outline-path-1): Replace links with their
description, or path, in addition to removing statistics cookies.
(org-get-outline-path): Add an optional argument to include current
headline in path.
(org-refile-get-targets): Make use of new argument. Remove call to
`org-link-display-format', which is now handled in
`org--get-outline-path-1'.
* testing/lisp/test-org.el (test-org/get-outline-path): Add tests.
Reported-by: Tobias Getzner <tobias.getzner@gmx.de>
<http://permalink.gmane.org/gmane.emacs.orgmode/105425>
* lisp/org.el (org--get-outline-path-1): Fix wrong type arrayp error
when trying to get the outline path of an empty headline.
* testing/lisp/test-org.el (test-org/get-outline-path): Add test.
Reported-by: Tobias Getzner <tobias.getzner@gmx.de>
<http://permalink.gmane.org/gmane.emacs.orgmode/105407>
* lisp/org-colview.el (org-dblock-write:columnview): Fix typo in pcase
so ID are properly recognized in current document.
* testing/lisp/test-org-colview.el (test-org-colview/dblock): Add tests.
* lisp/ob-core.el (org-babel-where-is-src-block-result): Return nil when
anonymous results would be located outside of the container of the
source block.
* testing/lisp/test-ob.el (test-ob/where-is-src-block-result): Add test.
Reported-by: Dominik Schrempf <dominik.schrempf@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/105309>
* lisp/org.el (org-refile-get-targets): Fix bug when using
`org-refile-target-verify-function'. Improve speed.
(org-olpa): Remove variable.
(org-outline-path-cache): New variable.
(org--get-outline-path-1): New function.
(org-get-outline-path): Use new function. This fixes return value when
cache is used and calls are not in the same path.
* testing/lisp/test-org.el (test-org/get-outline-path): New test.
Reported-by: Florian Adamsky <fa-org-mode@haktar.org>
<http://permalink.gmane.org/gmane.emacs.orgmode/104829>
* lisp/org-colview.el (org-columns--display-here): Remove unnecessary
`org-columns-spec' property.
(org-columns-update): Use (current-column) to extract column format
specifications.
* lisp/org.el (org--get-expected-indentation): Fix indentation bug.
* testing/lisp/test-org.el (test-org/indent-line): Add test.
In the following document, the last line would be indented to "|"
- item
#+BEGIN_SRC emacs-lisp
(+ 1 1)
#+END_SRC
|
* lisp/org-colview.el (org-columns-edit-value):
(org-columns-next-allowed-value): Make sure overlays are still in place
when a property altering current headline is modified. Refactor code.
Do not limit allowed values to 10.
* testing/lisp/test-org-colview.el (test-org-colview/columns-next-allowed-value):
New test.
* lisp/org-colview.el (org-columns-new): Change signature to allow both
editing and column creation non-interactively.
(org-columns-edit-attributes): Use new signature.
* testing/lisp/test-org-colview.el (test-org-colview/columns-new):
Update tests.
* lisp/org-colview.el (org-columns-move-right): Do not compute values
swapping columns. Comment about a corner case.
* testing/lisp/test-org-colview.el (test-org-colview/columns-move-left):
(test-org-colview/columns-move-right): New tests.
* lisp/org-colview.el (org-columns-get-format): Do not assume
`org-columns-default-format' contains valid columns format. Look for
COLUMNS keyword if necessary.
(org-columns-quit): Reset `org-columns-current-fmt'.
(org-columns-redo): Provide `org-columns-current-fmt' as the active
format so as to avoid extracting it again.
* testing/lisp/test-org-colview.el (test-org-colview/get-format): New
test.
* lisp/org-colview.el (org-columns-check-computed): Check if current
column contains an operator instead of looking for an `org-computed'
text property.
(org-columns--compute-spec): Do not apply `org-computed' text property.
* lisp/org-colview.el (org-edit-headline): Move from here...
* lisp/org.el (org-edit-headline): ... to here. Also refactor code.
Accept to set headline non-interactively.
* testing/lisp/test-org.el (test-org/edit-headline): New test.
* lisp/org-colview.el (org-columns-store-format): Make sure we're really
at a COLUMNS keyword before replacing it. Also replace only the first
one, not all of them.
* testing/lisp/test-org-colview.el (test-org-colview/columns-new): Add
tests.
* lisp/org-colview.el (org-columns--collect-values):
(org-agenda-colview-summarize): Use column format specification as the
unique identifier for the returned alist.
* lisp/org-colview.el (org-columns--display-here): Store column format
specification in a new overlay property.
(org-columns--set-widths):
(org-columns--display-here): Use column format specification instead of
(org-columns--displayed-value): Since the same property can have
multiple titles, use column specification instead of property as keys.
(org-columns--collect-values): Apply signature change.
(org-columns-update): Handle multiple columns for the same property.
Also apply signature change to `org-columns--displayed-value'.
(org-columns--compute-spec): New function.
(org-columns-compute):
(org-columns-compute-all): Use new function.
* testing/lisp/test-org-colview.el (test-org-colview/columns-summary):
(test-org-colview/columns-update): Add tests.
* doc/org.texi (Column attributes): Document computation with multiple
summary types for a given property.
* lisp/org-colview.el (org-columns--summarize): Throw an error when no
summarize function is associated to a given operator.
(org-columns-compile-format): Do not provide summarize function, which
can be found using the accessor `org-columns--summarize'.
(org-columns-new):
(org-columns-uncompile-format):
(org-columns-compute):
(org-columns-compute-all):
(org-agenda-colview-summarize): Use new compiled format.
* lisp/org-colview.el (org-columns-compile-format): Property is
upper-cased. Title is not, however.
(org-columns--displayed-value):
(org-columns--collect-values):
(org-columns--autowidth-alist):
(org-columns--overlay-text):
(org-columns--display-here):
(org-columns--display-here-title):
(org-columns-next-allowed-value):
(org-columns):
(org-columns-widen):
(org-columns-update):
(org-columns--capture-view):
(org-dblock-write:columnview):
(org-agenda-colview-summarize): Since properties in compiled format are
upper-cased, remove the `upcase' or `assoc-string' dance.
* testing/lisp/test-org-colview.el (test-org-colview/columns-new):
(test-org-colview/columns-update): Add case-sensitivity tests.
`assoc-string' is still necessary in functions where property is
provided by the user, e.g. `org-columns-update'.
* lisp/ox-publish.el (org-publish-file): Ignore NO-CACHE parameter when
writing cache to file. This is needed to recover from an interrupted
publishing process.
Reported-by: Julien Cubizolles <j.cubizolles@free.fr>
<http://permalink.gmane.org/gmane.emacs.orgmode/105046>
* lisp/ob-core.el (org-babel-execute-src-block): Simplify.
(org-babel-tramp-handle-call-process-region): Remove.
Commit 57104f9f changed an org-flet to a let, rendering the whole
apparatus of modifying call-process-region inoperative. Supposedly this
was put in place to work around a bug in
tramp-handle-call-process-region, which was removed from tramp in
2012 (after being renamed to tramp-sh-call-process-region). *shrug*
This commit just removes the whole thing.
It also no longer consults ‘org-src-lang-modes’, following on from
commit 6287416.
* lisp/ob-core.el (org-babel-make-language-alias): New function.
* lisp/ob-emacs-lisp.el: Use it.
Previously this was accomplished via org-src-lang-modes, but that is a
poor solution, as it conflates the remapping of language mode names with
the creation of aliases.
* lisp/org-colview.el (org-columns--summarize): New function.
(org-columns-new):
(org-columns-compile-format): Use new function.
(org-agenda-colview-summarize): Use new function. Fix return value for
CLOCKSUM and CLOCKSUM_T.
* lisp/org-colview.el (org-columns-summary-types): New variable.
(org-columns-compile-map): Rename into...
(org-columns-summary-types-default): ... this.
(org-columns-new):
(org-columns-compile-format): Use new variables.
* testing/lisp/test-org-colview.el (test-org-colview/columns-summary):
Add test.
* doc/org.texi (Column attributes): Document new variable. Improve
description of time and age based summary types.
* lisp/org-colview.el (org-columns-compile-map): Externalize summary
functions. Remove "none" summary.
(org-columns-new): Apply previous removal.
(org-columns--fractional-duration-re): Rename variable to...
(org-columns--duration-re): ... this.
(org-columns-compute): Change how values are computed. This is now done
in one pass. A summarize function is given a list of strings and
possible a format string. It has to return the computed value as
a string.
(org-columns--time-to-seconds):
(org-columns--age-to-seconds):
(org-columns--summary-apply-times):
(org-columns--summary-sum):
(org-columns--summary-currencies):
(org-columns--summary-checkbox):
(org-columns--summary-checkbox-count):
(org-columns--summary-checkbox-percent):
(org-columns--summary-min):
(org-columns--summary-max):
(org-columns--summary-mean):
(org-columns--summary-sum-times):
(org-columns--summary-min-time):
(org-columns--summary-max-time):
(org-columns--summary-mean-time):
(org-columns--summary-min-age):
(org-columns--summary-max-age):
(org-columns--summary-mean-age): New functions.
(org-columns--summary-estimate):
(org-agenda-colview-summarize): Update functions to new process.
(org-columns-string-to-number): Apply variable renaming.
* testing/lisp/test-org-colview.el (test-org-colview/columns-summary):
Fix test. Add some more.
* lisp/ob-core.el (org-babel-insert-result): Delegate removal of old
inline results to...
(org-babel-where-is-src-block-result): ... this.
Now `org-babel-where-is-src-block-result' behaves in a symmetric way for
inline an non-inline source blocks.
* lisp/ox-html.el (org-html--todo): Don't show nil in format string for
TODO class
Use empty string if :html-todo-kwd-class-prefix is not present.
TINYCHANGE
* lisp/ob-core.el (org-babel-where-is-src-block-result): Find results
for inline src-blocks or inline babel call not located on a subsequent
line, e.g., because of filling.
(org-babel-insert-result): When inline results exist, replace them
in-place.
(org-babel-remove-inline-result): Also remove results not located on the
same line as the source code.
(org-babel-examplify-region): Change signature. Properly mark inline
results at the beginning of a line.
* testing/lisp/test-ob.el (test-ob/inline-src_blk-default-results-replace-line-1):
Add tests.
* lisp/org-colview.el (org-columns-compute): Properly summarize values
obtained through inline tasks.
* testing/lisp/test-org-colview.el (test-org-colview/columns-update):
Add test.
Previously, the summary of values from inline tasks was added to to the
summary of values from children.
* lisp/org-colview.el (org-columns--overlay-text): New function.
(org-columns--display-here): Use new function.
(org-columns-update): Properly handle additional decorations to
displayed values (e.g., ellipses).
* testing/lisp/test-org-colview.el (test-org-colview/columns-update):
New test.
* lisp/org-colview.el (org-columns-dblock-insert): Rename to...
(org-columns-insert-dblock): ... this. Also fix a bug that would insert
"local" instead of `local' as the :id value.
* lisp/org.el (org-mode-map):
(org-org-menu): Use new name.
* lisp/org-colview.el (org-columns-time): Rename to...
(org--columns-time): ... this.
(org-columns--fractional-duration-re): New variable.
(org-columns-edit-value):
(org-columns):
(org-columns-compute-all):
(org-agenda-columns): Use new variable.
(org-columns-compile-map): Remove unneeded "calc" attribute.
(org-columns-number-to-string):
(org-columns-string-to-number): Fix ages set as a duration (e.g., "1d
12h"). Compare ages as seconds, not number of days.
* doc/org.texi (Column attributes): Document syntax for "age".
* lisp/org-colview.el (org-columns-compute-all): Small refactoring.
(org-columns-number-to-string): Handle special case of 0 among 0. Small
refactoring.
(org-nofm-to-completion):
(org-format-time-period): Remove functions.
* lisp/org-colview.el (org-columns-current-widths): Remove variable.
(org-columns--value): Remove function.
(org-columns--displayed-value): New function.
(org-columns--collect-values): New function.
(org-columns-display-here): Rename function to...
(org-columns--display-here): ... this. First argument is now mandatory.
(org-columns-display-here-title): Rename function to...
(org-columns--display-here-title): ... this.
(org-columns-autowidth-alist): Rename function to...
(org-columns--autowidth-alist): ... this. Remove one argument.
(org-columns-edit-value):
(org-columns-next-allowed-value): Always refresh all columns, not only
the current one. Otherwise, the current column may end up with
a different width than the others.
(org-columns):
(org-dblock-write:columnview):
(org-agenda-columns):
(org-agenda-colview-summarize): Apply changes above.
Columns width is now computed according to displayed values, not real
ones.
* lisp/org-colview.el (org-columns-capture-view): Properties are not
case sensitive.
(org-dblock-write:columnview): Take into consideration stars turned into
spaces (i.e., invisible leading stars) when computing heading level.
Also do not assume "ITEM" is always in the first column of the table.
Reported-by: Axel Kielhorn <org-mode@axelkielhorn.de>
<http://permalink.gmane.org/gmane.emacs.orgmode/105051>
* lisp/org-element.el (org-element-context): Make sure point is on tag
line before searching for it.
* testing/lisp/test-org-element.el (test-org-element/context): Add test.
Small refactoring.
Reported-by: Kaushal Modi <kaushal.modi@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/105018>
* lisp/ob-coq.el: Create a variable `coq-program-name' and remove unused
`org-babel-coq-eoe'.
(org-babel-coq-initiate-session): Use `coq-program-name'.
* lisp/org-archive.el (org-toggle-archive-tag): Use `org-flag-subtree',
which is much faster than outline-hide-subtree'.
Reported-by: Michael Ziems <michael.ziems@xiron.de>
<http://permalink.gmane.org/gmane.emacs.orgmode/105005>
* lisp/ob-lob.el (org-babel-lob-get-info): Make the function on par with
`org-babel-get-src-block-info' by providing the beginning position of
Babel code.
(org-babel-lob-execute):
* lisp/ob-exp.el (org-babel-exp-process-buffer):
(org-babel-exp-results): Handle new data.
* lisp/ob-lob.el (org-babel-block-lob-one-liner-regexp):
(org-babel-inline-lob-one-liner-regexp):
(org-babel-lob-one-line-regexp):
* lisp/ob-core.el (org-babel-inline-src-block-regexp): Remove variables.
(org-babel-map-inline-src-blocks):
(org-babel-map-call-lines):
(org-babel-map-executables):
(org-babel-execute-buffer):
* lisp/ob-exp.el (org-babel-exp-process-buffer):
(org-babel-exp-results): Do not use removed variables.
Babel now mostly uses the parser to handle Babel code. Regexps are not
needed anymore.
* lisp/ob-core.el (org-babel-get-inline-src-block-matches): Remove
function.
(org-babel-when-in-src-block):
(org-babel-insert-result): Do not use removed function.
(org-babel-remove-inline-result): Add an optional argument for a tiny
speed-up.
* testing/examples/babel.org:
* testing/lisp/test-ob.el (test-ob/inline-src_blk-default-results-replace-line-1):
Remove needless tests.
* lisp/ob-core.el (org-babel-get-src-block-info): Rewrite function.
Change signature.
(org-babel-parse-src-block-match):
(org-babel-parse-inline-src-block-match): Remove functions.
(org-babel-execute-src-block): Remove useless function call.
* lisp/ob-exp.el (org-babel-exp-process-buffer): Make use of signature
change.
(org-babel-exp-results): Use new return value from
`org-babel-get-src-block-info'. Tiny refactoring.
* testing/lisp/test-ob.el (test-ob/nested-code-block): Fix test.
* contrib/lisp/org-eldoc.el (org-eldoc-get-src-lang): Use parser instead
of removed function.
* testing/examples/babel.org: Fix test environment.
* lisp/ob-exp.el (org-babel-in-example-or-verbatim): Remove function.
* testing/lisp/test-ob.el (test-ob/combining-scalar-and-raw-result-types):
Update test.
This function is unused and inaccurate. If needed, the parser should be
used instead.
* lisp/ob-core.el (org-babel--insert-results-keyword):
(org-babel--clear-results-maybe): New functions.
(org-babel-where-is-src-block-result): Rewrite function. Improve
accuracy, in particular when RESULTS is not the closest affiliated
keyword from the results.
* testing/lisp/test-ob.el (test-ob/where-is-src-block-result): New test.
* lisp/ob-core.el (org-babel-find-named-result): Prevent false positive
using parser.
(org-babel-current-result-hash):
(org-babel-set-current-result-hash):
(org-babel-where-is-src-block-result): Do not rely on some undocumented
match data.
* testing/lisp/test-ob.el (test-ob/find-name-result): New test.
* lisp/ob-core.el (org-babel-get-src-block-info): Do not return block
indentation.
(org-babel-parse-src-block-match): Ignore block indentation.
(org-babel-demarcate-block): Find appropriate indentation instead of
using the one from the original block.
(org-babel-where-is-src-block-result): Change signature. Indent
according to context instead of relying on indentation from original
block.
(org-babel-insert-result): Change signature.
(org-babel-check-confirm-evaluate):
(org-babel-execute-src-block):
(org-babel-insert-header-arg): Apply change to src-block info.
* lisp/ob-exp.el (org-babel-exp-process-buffer): Apply change to
src-block info.
* lisp/ob-lob.el (org-babel-lob-get-info): Do not return indentation.
(org-babel-lob-execute): Apply change to lob-info.
Indentation from source block is often wrong at the block and its
results may not be in the same context.
* lisp/ob-core.el (org-babel-goto-named-src-block): Use parser instead
of `org-babel-lob-one-liner-regexp'.
* lisp/ob-lob.el (org-babel-lob-execute-maybe): Ignore spurious check,
now handled by the parser.
(org-babel-lob-get-info): Fully use parser. Accept a new optional
argument to avoid parsing the same location twice.
* lisp/ob-exp.el (org-babel-exp-process-buffer):
* lisp/ob-ref.el (org-babel-ref-resolve): Optimize call to
`org-babel-lob-get-info'.
* lisp/org-element.el (org-element-src-block-parser):
(org-element-example-block-parser): Do not remove any indentation when
parsing the element.
* testing/lisp/test-org-element.el (test-org-element/src-block-parser):
* testing/lisp/test-org-element.el (test-org-element/src-block-parser):
Update test.
Properly handling indentation requires knowing about
`org-src-preserve-indentation''s value. This is out of the scope of the
parser.
* org-attach.el (org-attach-use-annex): New function to check if git
annex should be used.
(org-attach-annex-get-maybe): New function to get a file from git
annex if necessary.
(org-attach-annex-auto-get): New defcustom to determine behavior
of org-attach-annex-get-maybe.
(org-attach-open): Automatically get attached files from git annex when
opening if necessary.
* testing/lisp/test-org-annex.el: New file for testing org-attach. Only
contains code for testing org-attach with git annex at the moment.
* mk/targets.mk: Fix cleantest target so it can delete git annex repos.
* lisp/org-colview.el (org-columns-display-here): Do not add star to
headlines at the display level...
(org-columns): ... but when collecting values, here...
(org-agenda-columns): ... and there.
Reported-by: Michael Brand <michael.ch.brand@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/104846>
* lisp/org.el (org-latex-fragment-image-overlays): Remove variable.
(org--format-latex-make-overlay): Do not register anymore created
overlays in the removed variable.
(org--list-latex-overlays): New function.
(org-remove-latex-fragment-image-overlays): Use new function.
(org-context): Work around use of `org-latex-fragment-image-overlays'.
Reported-by: Dima Kogan <dima@secretsauce.net>
<http://permalink.gmane.org/gmane.emacs.orgmode/104822>
* org-colview(org-columns-display-here): Fix for lines without level by
giving them artificially level 0.
Idea: Exclude lines without level from column-view.
* lisp/org-agenda.el (org-agenda-filter-by-tag-refine): Remove command
because this functionality is redundant with org-agenda-filter-by-tag
as of 6c6ae99.
Reported-by: Viktor Rosenfeld <v.rosenfeld@gmx.de>
<http://permalink.gmane.org/gmane.emacs.orgmode/104605>
* lisp/org-agenda.el (org-agenda-filter-by-tag-refine): Refine rather
than exlude tags, reverting change from 6c6ae99. Mark as obsolete
because this functionality is now redundant with
org-agenda-filter-by-tag.
Reported-by: Viktor Rosenfeld <v.rosenfeld@gmx.de>
<http://permalink.gmane.org/gmane.emacs.orgmode/104605>
* lisp/org.el (org-file-apps-defaults-macosx): Tiny re-ordering.
(org-file-apps-defaults-windowsnt): Default values provide functions
instead of sexp.
(org-file-apps): Use a function instead of a sexp.
See <http://permalink.gmane.org/gmane.emacs.orgmode/104272>.
* lisp/ox-html.el (org-html-table-row-open-tag):
(org-html-table-row-close-tag): New variables.
(org-html-table-row-tags): Remove variable.
(org-html-table-row): Use new variables.
* lisp/org.el (org-completion-use-ido):
(org-completion-use-iswitchb):
(org-completion-fallback-command): Remove variables.
(org-refile):
(org-set-effort):
(org-read-property-value): Apply variables removal.
(org-iread-file-name): Make it an obsolete alias for `read-file-name'.
(org-file-complete-link): Use `read-file-name'.
(org-switchb): Remove unused function.
Completion mechanisms are expected to be handled at a lower level,
e.g. in `read-file-name-function'.