Commit Graph

14879 Commits

Author SHA1 Message Date
Nicolas Goaziou 956a5a4cb1 Ignore inlinetasks in `org-before-first-heading-p'
* lisp/org.el (org-before-first-heading-p): Ignore inlinetasks.
2018-06-13 22:20:27 +02:00
Nicolas Goaziou f50f373389 Add facility for commit log messages from Org documents
* lisp/org-compat.el (org-add-log-current-headline): New function.
* lisp/org.el (org-mode): Use new function.
2018-06-13 22:15:56 +02:00
Nicolas Goaziou 3f26c9bd2e `org-get-heading' returns nil instead of erroring out
* lisp/org.el (org-get-heading): Return nil instead of throwing an
  error before first headline.
2018-06-13 22:15:17 +02:00
Nicolas Goaziou f440ff0a6a Fix imenu compatibility with non-contiguous structure
* lisp/org.el (org-mode): Move imenu compatibility to "org-compat.el".
* lisp/org-compat.el (org-imenu-new-marker): Remove function.
(org-imenu-get-tree): Handle non-contiguous structure.

Reported-by: Thibault Polge <thibault@thb.lt>
<http://lists.gnu.org/r/emacs-orgmode/2018-06/msg00088.html>
2018-06-13 01:13:16 +02:00
Nicolas Goaziou 3745c0af9f Fix indentation when wrapping a block around a region
* lisp/org.el (org-insert-structure-template): Indent like the first
  line, not the line the point happens to be on.

Reported-by: stardiviner <numbchild@gmail.com>
<http://lists.gnu.org/r/emacs-orgmode/2018-06/msg00107.html>
2018-06-12 09:03:33 +02:00
Marco Wahl 842002f9f7 org-archive: Fix insert of extra blank line at archiving
* lisp/org-archive.el (org-archive-subtree): Remove insertion of extra
  blank line in case of org-archive-reversed-order.
2018-06-07 15:52:26 +02:00
Marco Wahl 13a09b3ba5 Merge branch 'maint' 2018-06-06 16:05:26 +02:00
Marco Wahl 2b76aebfc6 org-element: Fix interpretation as todo kwd when prefix of headline
* lisp/org-element.el (org-element-headline-parser): Check for space
  after todo-kwd.
* testing/lisp/test-org-element.el (test-org-element/headline-todo-keyword):
  Respective tests.
2018-06-06 15:58:20 +02:00
Nicolas Goaziou 8b9c1e15df ob-tangle: Fix `org-babel-detangle'
* lisp/ob-tangle.el (org-babel-tangle-jump-to-org): Preserve position
  in source block only if it doesn't put point outside of the block.

Reported-by: Frederick Giasson <fred@curbside.com>
<http://lists.gnu.org/r/emacs-orgmode/2018-06/msg00008.html>
2018-06-05 11:55:55 +02:00
Nicolas Goaziou ed7d1dc6d7 Fix quirks in `org-insert-structure-template'
* lisp/org.el (org-insert-structure-template): Fix some issues.
  Refactor code.
* testing/lisp/test-org.el (test-org/insert-structure-template):
  Update tests.

Reported-by: stardiviner <numbchild@gmail.com>
<http://lists.gnu.org/r/emacs-orgmode/2018-05/msg00553.html>
2018-06-02 23:41:56 +02:00
Nicolas Goaziou 97fac41194 Revert "ob-C: Provide `ob-C++' and `ob-D'"
This reverts commit f35994b314.
2018-05-30 12:57:21 +02:00
Rasmus 7ac46c52b7 Check format of org-structure-template-alist
* org.el (org--check-org-structure-template-alist): New function
  yielding user-error if using old org-structure-template-alist
  format.
  (org--insert-structure-template-mks):
* org-tempo.el (org-tempo-add-templates): Use new function
2018-05-28 23:44:51 +02:00
Nicolas Goaziou dac180ea0d org-footnote: Improve :safe values
* lisp/org-footnote.el (org-footnote-auto-label):
(org-footnote-auto-adjust): Use simpler :safe value.

The point of the :safe value is to determine if the variable is safe,
not to check correctness of its value. Besides, lambda functions
appear as the following in *Help* buffer:

  This variable is safe as a file local variable if its value
  satisfies the predicate which is a byte-compiled expression.

which is not particularly clear.  Let's keep :safe values simple.
2018-05-28 21:18:28 +02:00
Aaron Ecay c32938b7fd Revert "Un-fontlock sub/superscripts when point enters them"
This reverts commit 102832e66f.

See <https://lists.gnu.org/archive/cgi-bin/namazu.cgi?query=%2Bmessage-id%3A%3C87y3g43mjy.fsf%40nicolasgoaziou.fr%3E&submit=Search&idxname=emacs-orgmode>
2018-05-27 21:29:57 +01:00
Nicolas Goaziou f35994b314 ob-C: Provide `ob-C++' and `ob-D'
Reported-by: Van L <van@scratch.space>
<http://lists.gnu.org/r/emacs-orgmode/2018-05/msg00492.html>
2018-05-27 22:21:15 +02:00
Nicolas Goaziou c698c8e959 Fix tags completion
* lisp/org.el (org-tags-completion-function): Refactor function. Fix
  tag completion.

Reported-by: Alain.Cochard@unistra.fr
<http://lists.gnu.org/r/emacs-orgmode/2018-05/msg00450.html>
2018-05-27 22:13:00 +02:00
Nicolas Goaziou 2086ea42cf org-footnote: Tiny refactoring
* lisp/org-footnote.el (org-footnote-section): Tiny refactoring.
2018-05-27 21:59:19 +02:00
Aaron Ecay c56bb9d59a org-footnote: add :safe properties to the defcustoms 2018-05-27 17:33:44 +01:00
Aaron Ecay 102832e66f Un-fontlock sub/superscripts when point enters them
* lisp/org.el (org-remove-font-lock-display-properties): Rename to
‘org-remove-font-lock-display-properties’.  It is a more
specific/accurate name.
(org-match-substring-with-braces-regexp):
(org-match-substring-regexp): Add a note to docstrings about what the
match groups are.
(org-raise-scripts--post-command-hook): New function, modeled on
‘prettify-symbols--post-command-hook’.
(org-raise-scripts): Use the above.

Inspired by
<https://lists.gnu.org/archive/cgi-bin/namazu.cgi?query=%2Bmessage-id%3A%3C518DCC34-E435-42F7-A15E-FAE7727033F8%40scratch.space%3E&submit=Search&idxname=emacs-orgmode>
2018-05-27 17:13:59 +01:00
Aaron Ecay 5192e810ae Add “summary” to ‘org-html-html5-elements’
* lisp/ox-html.el (org-html-html5-elements): Add “summary”

As suggested by Kaushal Modi in
<https://lists.gnu.org/archive/cgi-bin/namazu.cgi?query=%2Bmessage-id%3A%3CCAFyQvY2YoLDpM9PWLV86FwvPOVkuxg9O8KdryG3z%3D5QRm7Aujg%40mail.gmail.com%3E&submit=Search&idxname=emacs-orgmode>
2018-05-27 16:59:15 +01:00
Aaron Ecay 1117d65622 org.el: remove trailing whitespace 2018-05-27 16:58:39 +01:00
Nicolas Goaziou 2c5a8740ad Remove spurious colon in tags view
* lisp/org.el (org-scan-tags): Remove spurious colon in tags view.
  Small refactoring.

The regression was introduced in
be31a0c459.

Reported-by: Rainer Stengele <rainer.stengele@online.de>
<http://lists.gnu.org/r/emacs-orgmode/2018-05/msg00478.html>
2018-05-26 12:30:46 +02:00
Nicolas Goaziou 2918894f36 org-table: Tiny refactoring
* lisp/org-table.el (org-table-get-formula): Tiny refactoring.
(org-table-get-stored-formulas): Fix string.
2018-05-22 10:46:57 +02:00
Nicolas Goaziou 9d51a8b5a0 org-capture: Fix table line capture with custom location
* lisp/org-capture.el (org-capture-place-table-line): Fix error when
  a precise location is given, e.g. with `file+function' target.

* testing/lisp/test-org-capture.el (test-org-capture/table-line): Add
test.

Reported-by: Thomas Holst <thomas_holst@gmx.de>
<http://lists.gnu.org/r/emacs-orgmode/2018-05/msg00359.html>
2018-05-17 22:57:49 +02:00
Nicolas Goaziou 1cfd5d04e3 Fix a docstring
* lisp/org.el (org-store-link): Use "link" instead of puzzling
  "org-link".
2018-05-17 16:55:31 +02:00
Nicolas Goaziou 463664bdd0 Merge branch 'maint' 2018-05-16 22:07:33 +02:00
Nicolas Goaziou 2b26644b3a Fix `org-skip-over-state-notes'
* lisp/org.el (org-skip-over-state-notes): Allow empty TODO states.

Reported-by: Michael Brand <michael.ch.brand@gmail.com>
<http://lists.gnu.org/r/emacs-orgmode/2018-05/msg00337.html>
2018-05-16 22:06:39 +02:00
Nicolas Goaziou c46fcd9874 org-lint: Add checker for spurious colons in tags
* lisp/org-lint.el (org-lint--checkers): Add checker.
(org-lint-spurious-colons): New function.
* testing/lisp/test-org-lint.el (test-org/spurious-colons): New test.
2018-05-14 17:41:04 +02:00
Nicolas Goaziou 7143ae0355 Fix typo
* lisp/org.el (org-tag-alist): Fix typo in docstring.
2018-05-14 15:38:05 +02:00
Nicolas Goaziou ac21151c4a Fix typo in docstring
* lisp/org.el (org-tag-persistent-alist): Fix typo.

Reported-by: Bernt Hansen <bernt@norang.ca>
<http://lists.gnu.org/r/emacs-orgmode/2018-05/msg00293.html>
2018-05-13 22:36:09 +02:00
Nicolas Goaziou 640e05523a org-agenda: Fix the last fix...
* lisp/org-agenda.el (org-tags-view): Fix last commit.
2018-05-11 21:55:23 +02:00
Nicolas Goaziou 68b376dee0 org-agenda: Fix "org-agenda: one-armed “if” -> “when”"
* lisp/org-agenda.el (org-tags-view): Re-instate delete `else' part.

Reported-by: Bernt Hansen <bernt@norang.ca>
<http://lists.gnu.org/r/emacs-orgmode/2018-05/msg00286.html>
2018-05-11 21:49:25 +02:00
Nicolas Goaziou 92b03d161a ox-texinfo: Change sentence ending
* lisp/ox-texinfo.el (org-texinfo-plain-text): Sentences can end with
  a capital letter without a special symbol in Org.

It is simpler to provide a non-breaking space when a capital letter
followed by a period should not end than providing a way to force
ending a sentence.
2018-05-11 19:40:10 +02:00
Nicolas Goaziou 13fb6a3fae Move obsolete declarations into "org-compat.el" 2018-05-10 15:41:50 +02:00
Aaron Ecay 7106eab974 Many small code improvements
* lisp/org-capture.el (org-capture-member): Make obsolete; the old
definition was identical to ‘org-capture-get’ anyway.
(org-capture-mode-map): Move the calls to ‘define-key’ up to where the
variable is defined.
(org-capture-mode-hook): Small docstring tweak.
(org-capture-mode): Fix typo in mode lighter.
(org-capture-set-target-location, org-capture-place-item):
(org-capture-place-plain-text, org-capture-narrow):
(org-capture-empty-lines-after):
(org-capture-import-remember-templates): ‘if’ without else -> ‘when’
* lisp/org-colview.el (org-columns-edit-value): Change an error to a
user-error.
(org-columns-uncompile-format): Improve docstring.
* lisp/org-compat.el (org-remove-from-invisibility-spec): Make
obsolete, the underlying emacs function exists since 1997, commit 31aa282e.
(org-in-invisibility-spec-p, org-count-lines): ‘if’ without else -> ‘when’.
* lisp/org-element.el (org-element-swap-A-B):
* lisp/org-entities.el (org-entities-create-table):
* lisp/org-list.el (org-insert-item):
* lisp/org-macs.el (org-with-point-at, org-base-buffer):
(org-preserve-local-variables, org-overlay-display):
(org-overlay-before-string): ‘if’ without else -> ‘when’.
* lisp/org-eshell.el (org-eshell-open): Fix docstring typo.
* lisp/org-pcomplete.el (pcomplete/org-mode/file-option/language):
(pcomplete/org-mode/file-option/startup):
(pcomplete/org-mode/file-option/options):
(pcomplete/org-mode/file-option/infojs_opt):
(pcomplete/org-mode/link, pcomplete/org-mode/tex):
(pcomplete/org-mode/todo, pcomplete/org-mode/searchhead):
(pcomplete/org-mode/tag, pcomplete/org-mode/prop): Avoid the formerly
misspelled ‘pcomplete-uniqify-list’ function.  It has a defalias in
emacs >= 27; we add our own for older emacsen.
(pcomplete/org-mode/file-option/bind): ‘if’ without else -> ‘when’.
* lisp/org-protocol.el (org-protocol-capture):
(org-protocol-convert-query-to-plist): ‘if’ without else -> ‘when’.
(org-protocol-do-capture): Pacify byte compiler, simplify conditional
logic.
* lisp/org-table.el (org-table-create-with-table.el): Simplify conditional
logic.
(org-table-create, org-table-convert-region, org-table-next-field):
(org-table-beginning-of-field, org-table-end-of-field):
* lisp/org-w3m.el (org-w3m-copy-for-org-mode): ‘if’ without else ->
‘when’.
* lisp/org.el (org-babel-do-load-languages, org-previous-link):
(org-refile): Use ‘(foo ...)’ instead of ‘(funcall 'foo ...)’.
(org-add-log-note): Convert a long cond into a cl-case.
(org-priority): Improve docstring, show a deprecation warning if the
‘show’ argument is passed (which was previously silently ignored).
Also, use ?\s instead of ?\ as a character literal for space.
(org-fast-tag-insert): Fix docstring typo.
(org-fill-element): ‘if’ without else -> ‘when’.
(org-on-target-p): Remove ancient compatibility alias.
2018-05-10 04:22:30 +01:00
Aaron Ecay 9d5852e3b8 org-agenda: misc code improvements
* lisp/org-agenda.el:
(org-agenda-todo-nextset, org-agenda-set-tags): Use “(foo ...)”
instead of “(funcall 'foo ...)”.
(org-agenda-add-entry-to-org-agenda-diary-file): Convert a cond to a
cl-case.

Also remove some compatibility code to work around an emacs feature
that was changed in 2005 (emacs commit 9a20c79b)
2018-05-10 04:22:30 +01:00
Aaron Ecay c9dd7a6a9d org-agenda: one-armed “if” -> “when”
* lisp/org-agenda.el (org-agenda-mode):
(org-agenda-undo, org-agenda):
(org-agenda-get-restriction-and-command):
(org-batch-agenda-csv, org-fix-agenda-info):
(org-agenda-get-some-entry-text):
(org-agenda-prepare, org-agenda-finalize):
(org-agenda-fontify-priorities, org-agenda-entry-text-hide):
(org-agenda-list, org-agenda-ndays-to-span):
(org-search-view, org-todo-list):
(org-tags-view, org-modify-diary-entry-string):
(org-agenda-get-day-entries, org-agenda-get-progress):
(org-agenda-get-deadlines, org-prefix-category-max-length):
(org-agenda-format-item, org-agenda-fix-displayed-tags):
(org-compile-prefix-format):
(org-agenda-before-sorting-filter-function):
(org-agenda-limit-interactively, org-cmp-time):
(org-agenda-set-restriction-lock-from-agenda):
(org-agenda-get-represented-tags, org-agenda-filter-apply):
(org-agenda-filter-top-headline-apply):
(org-agenda-remove-filter, org-agenda-compute-starting-span):
(org-unhighlight, org-unhighlight-once):
(org-agenda-show-tags, org-agenda-check-no-diary):
(org-agenda-date-later-minutes, org-agenda-diary-entry-in-org-file):
(org-agenda-add-entry-to-org-agenda-diary-file):
(org-agenda-bulk-unmark, org-agenda-to-appt): Convert ‘if’ without
‘else’ to ‘when,’ or ‘unless’ in the case of “(if (not ...))”
(org-batch-agenda-csv): Also convert while-catch to dolist.
(org-agenda-prepare): Also simplify a quasiquoted structure.
(org-agenda-entry-text-hide): Also convert a bogus ‘mapcar’ to ‘mapc’.
(org-compile-prefix-format): Also convert sequential ‘if’s to ‘cl-case’.
2018-05-10 04:22:30 +01:00
Aaron Ecay 673165c035 ox-*: single-armed “if” -> “when”
* lisp/ox-html.el (org-html-htmlize-generate-css):
(org-html-template, org-html-final-function):
* lisp/ox-publish.el (org-publish-cache-set-file-property):
* lisp/ox-texinfo.el (org-texinfo-quote-block): Transform ‘if’ with no
else to ‘when’.
2018-05-10 01:17:12 +01:00
Aaron Ecay ccfe51d83c ob-*: single armed “if” -> “when”
* lisp/ob-C.el (org-babel-C-val-to-base-type):
* lisp/ob-comint.el (org-babel-comint-buffer-livep):
* lisp/ob-fortran.el (org-babel-fortran-ensure-main-wrap):
* lisp/ob-octave.el (org-babel-octave-import-elisp-from-file):
* lisp/ob-scheme.el (org-babel-scheme-get-repl): Transform ‘if’ with
no else branch to ‘when’
* lisp/ob-lua.el (org-babel-lua-evaluate-external-process):
* lisp/ob-python.el (org-babel-python-evaluate-external-process):
Simplify conditional logic slightly.
2018-05-10 01:14:24 +01:00
Aaron Ecay 2b7677c097 ob-js.el: fix declare-function calls for external library fns
Otherwise, check-declare gives us errors if these dependencies are not
installed.
2018-05-10 01:10:52 +01:00
Aaron Ecay 581fd90645 Fix declare-function and friends in org.el
* lisp/org-table.el (org-table-with-shrunk-field): Move from here...
* lisp/org-macs.el: ...to here

The move is necessary because this macro is used (at compile time) in
org.el.  We cannot leave its definition in org-table, because that
would lead to a require loop.  So we need to put it in org-macs, and
require the latter file in org.el also at compile time.

Finally, update and sort the declare-function calls.
2018-05-10 01:07:57 +01:00
Aaron Ecay 4afb7f747b Update declare-function calls for functions that have moved.
In cases where functions have moved from org.el into org-macs.el, it
is often possible to replace declare-function by (require 'org-macs)
2018-05-10 01:04:12 +01:00
Nicolas Goaziou 0dda9bf1c1 Mark `org-get-indentation' as obsolete
* lisp/org-macs.el (org-get-indentation): Move function...
* lisp/org-compat: ... here.
* lisp/ob-core.el (org-babel-demarcate-block):
(org-babel-insert-result):
(org-babel-update-block-body):
* lisp/ob-exp.el (org-babel-exp-process-buffer):
* lisp/org-agenda.el (org-agenda-get-some-entry-text):
* lisp/org-capture.el (org-capture-place-item):
* lisp/org-clock.el (org-clock-in):
* lisp/org-element.el (org-element-swap-A-B):
* lisp/org-feed.el (org-feed-format-entry):
* lisp/org-indent.el (org-indent-add-properties):
* lisp/org-list.el (org-in-item-p):
(org-list-struct):
(org-list-struct-apply-struct):
(org-list-item-body-column):
(org-toggle-item):
* lisp/org-src.el (org-src--edit-element):
* lisp/org.el (org-fixup-indentation):
(org-cdlatex-environment-indent):
(org--get-expected-indentation):
(org-indent-region):
(org-toggle-fixed-width):
* lisp/ox.el (org-export-expand-include-keyword): Use
  `current-indentation' instead.
2018-05-09 01:26:31 +02:00
Nicolas Goaziou 0c03971b09 org-list: Avoid unnecessary call to `org-in-item-p'
* lisp/org-list.el (org-list-insert-item): Compute item containing POS
  based on the list structure instead of the buffer.
2018-05-07 23:23:12 +02:00
Kyle Meyer 1dbc506086 Merge branch 'maint' 2018-05-06 02:33:55 -04:00
Kyle Meyer 732aa477b0 Update version keyword 2018-05-06 02:28:09 -04:00
Nicolas Goaziou e8a4f39e73 Merge branch 'maint' 2018-05-04 00:26:37 +02:00
Nicolas Goaziou 064caac937 ox-html: Make use of :html-preamble/postamble-format
* lisp/ox-html.el (org-html--build-pre/postamble): Use
`:html-preamble-format' and `:html-postamble-format' instead of
relying on the global variables.

Reported-by: Brady Trainor <mail@bradyt.com>
<http://lists.gnu.org/r/emacs-orgmode/2018-05/msg00073.html>
2018-05-04 00:24:36 +02:00
Carsten Dominik ee336b8cf7 Fix typo in docstring 2018-05-03 09:25:56 +02:00
Nicolas Goaziou b148cb0864 Merge branch 'maint' 2018-05-02 23:55:12 +02:00
Nicolas Goaziou 631c4b703e org-src: Clear overlay in Org buffer after major mode change
* lisp/org-src.el (org-src--allow-write-back):
(org-src--auto-save-timer):
(org-src--babel-info):
(org-src--beg-marker):
(org-src--block-indentation):
(org-src--end-marker):
(org-src--from-org-mode):
(org-src--overlay):
(org-src--preserve-indentation):
(org-src--remote):
(org-src--saved-temp-window-config):
(org-src--source-type):
(org-src--tab-width): Define as local and permanent variable.

(org-src--edit-element):
(org-edit-src-code):
(org-edit-inline-src-code): Use `setq' instead of `setq-local'.

When major mode is changed in an edit buffer, the variables above
would be cleared and the overlay in the source buffer could not be
removed anymore.
2018-05-02 23:52:35 +02:00
Nicolas Goaziou eacf403172 org-src: Do not use `setq-local' when not necessary
* lisp/org-src.el (org-src--contents-for-write-back):
(org-src-mode):
(org-src-mode-configure-edit-buffer): Use `setq' instead of
`setq-local' on variable automatically buffer-local when set.
2018-05-02 23:35:00 +02:00
Nicolas Goaziou cac45d5469 ox-beamer: Fix `org-beamer-select-environment'
* lisp/ox-beamer.el (org-beamer-select-environment): Fix thinko.

The error prevents the function to complete: only the tag is added,
not the property.
2018-05-01 23:27:37 +02:00
Nicolas Goaziou 8efcb62dc4 org-src: Add association between beamer and `latex-mode'
* lisp/org-src.el (org-src-lang-modes): Add an entry for "beamer".
  Improve docstring.
2018-05-01 23:17:40 +02:00
Nicolas Goaziou 9ab45860a6 Merge branch 'maint' 2018-05-01 15:06:57 +02:00
Nicolas Goaziou 80eb69b648 org-list: Proper error message when trying to indent top level item
* lisp/org-list.el (org-list-struct-indent): Return proper error
  message upon trying to indent a top-level item.  Use `user-error'.
* testing/lisp/test-org-list.el (test-org-list/indent-item): Add test.
2018-05-01 15:06:08 +02:00
Nicolas Goaziou ede4b999b8 Silence byte-compiler 2018-04-30 14:23:26 +02:00
Nicolas Goaziou 4a3c1a414b org-macs: Silence byte-compiler 2018-04-30 13:59:34 +02:00
Nicolas Goaziou 6d4e0b3dd1 Move `org-no-popups' to "org-macs.el"
* lisp/org-compat.el (org-no-popups): Move function...
* lisp/org-macs.el : ... here.
2018-04-30 13:58:25 +02:00
Nicolas Goaziou 5c12c21a73 org-capture: Narrow to current captured row
* lisp/org-capture.el (org-capture-place-table-line): Narrow to
  current captured row and obey :unnarrowed property, like every other
  target type.
2018-04-30 11:42:01 +02:00
Nicolas Goaziou cbb48611ef org-capture: Fix aborting a captured row
* lisp/org-capture.el (org-capture-place-table-line): Add missing
  `org-capture-mark-kill-region'.
2018-04-30 01:01:54 +02:00
Nicolas Goaziou ab53ee2c3d org-capture: Fix capturing in a table
* lisp/org-capture.el (org-capture-place-table-line): Rewrite function.
* testing/lisp/test-org-capture.el (test-org-capture/table-line): New
  test.
2018-04-30 00:52:57 +02:00
Bastien 6dea0de7ca org.el: Add a new `org-browse-news' menu entry
* lisp/org.el (org-browse-news): New command to browse the
news for the latest major release.
(org-org-menu): New menu entry to use the new command.

Thanks to Thomas Dye and Tim Cross for suggesting this.
2018-04-30 00:27:16 +02:00
Bastien e11613b1c5 org.el: Add missing modules
* lisp/org.el (org-modules): Add missing modules.
2018-04-30 00:20:34 +02:00
Bastien 5c9bab29d4 Merge branch 'master' of code.orgmode.org:bzg/org-mode 2018-04-29 23:39:55 +02:00
Bastien 4697a19f6f org.el: Enhance a docstring
* lisp/org.el (org-babel-load-languages): Enhance docstring.
2018-04-29 23:39:32 +02:00
Nicolas Goaziou 70fc172191 Mark `org-file-remote-p' as obsolete
* lisp/org.el (org-file-remote-p): Move function...
* lisp/org-compat.el: ... here.
* lisp/ox.el (org-export--prepare-file-contents):
(org-export-file-uri): Use `file-remote-p'.
2018-04-29 16:28:25 +02:00
Nicolas Goaziou bc92f734cf org-macro: Remove unnecessary `declare-function' 2018-04-29 12:26:59 +02:00
Nicolas Goaziou 722f8a517f org-macs: Re-order sections alphabetically 2018-04-29 12:09:34 +02:00
Nicolas Goaziou 3c013ba24d Silence byte-compiler 2018-04-29 12:03:17 +02:00
Nicolas Goaziou 9d8aade7ec Mark `org-with-silent-modifications' as obsolete
* lisp/org-clock.el (org-clock-sum):
* lisp/org-colview.el (org-columns--display-here):
(org-columns-remove-overlays):
(org-columns-quit):
(org-columns-edit-value):
(org-columns--compute-spec):
(org-columns-compute-all):
(org-agenda-colview-compute):
* lisp/org-indent.el (org-indent-remove-properties):
(org-indent-add-properties):
* lisp/org.el (org-sort-entries):
(org-refresh-properties):
(org-refresh-category-properties):
(org-refresh-stats-properties):
(org-agenda-prepare-buffers): Do not use
`org-with-silent-modifications'.
2018-04-29 12:02:01 +02:00
Nicolas Goaziou a2994cb005 Mark "org-version-check" obsolete
* lisp/org-compat.el (org-version-check): Mark as obsolete.
(org-no-popups):
* testing/examples/babel.org: Remove use of `org-version-check'.
2018-04-29 11:54:40 +02:00
Nicolas Goaziou 31afe4b718 Move window-related function to "org-macs.el"
* lisp/org.el (org-switch-to-buffer-other-window):
* lisp/org-compat.el (org-fit-window-to-buffer): Move functions...
* lisp/org-macs.el: ... here.
2018-04-29 10:31:24 +02:00
Nicolas Goaziou 4d568fc83c Move `org-parse-time-string' to "org-macs.el"
* lisp/org.el (org-parse-time-string): Move function...
* lisp/org-macs.el : ... here.  Remove obsolete FIXME.  Improve
  docstring.
2018-04-29 10:26:41 +02:00
Nicolas Goaziou 298eaa1c32 org-agenda: Fix last commit
* lisp/org-agenda.el (org-agenda-align-tags): Fix thinko in last
  commit.
2018-04-29 10:03:31 +02:00
Nicolas Goaziou 031b75f500 org-agenda: Fix tags alignment
* lisp/org-agenda.el (org-agenda-align-tags): Fix regexp.  Improve
  docstring.

The regression was introduced in "Use `org-tag-line-re'".

Reported-by: Xu Chunyang <mail@xuchunyang.me>
<http://lists.gnu.org/r/emacs-orgmode/2018-04/msg00587.html>
2018-04-29 09:57:33 +02:00
Nicolas Goaziou cc9ae41738 Mark `org-preserve-lc' as obsolete
* lisp/org-macs.el (org-preserve-lc): Move function...
* lisp/org-compat.el (org-preserve-lc): ... here.

The function is no longer used in code base.
2018-04-29 00:44:26 +02:00
Nicolas Goaziou 89071f287f org-table: Fix failing tests
* lisp/org-table.el (org-table-copy-region): Preserve return value.
  Sligthly improve docstring.
2018-04-29 00:31:35 +02:00
Nicolas Goaziou f77f5b963d Add :safe keyword to `org-hide-emphasis-markers'
* lisp/org.el (org-hide-emphasis-markers): Add :safe keyword.
2018-04-29 00:19:55 +02:00
Nicolas Goaziou 0c58605f2f org-compat: Silence byte-compiler 2018-04-29 00:18:59 +02:00
Nicolas Goaziou c6d717cc89 Slightly speed up `org--align-tags-here'
* lisp/org.el (org--align-tags-here): Check if tags are already at the
  correct column before messing with the buffer.
2018-04-29 00:11:24 +02:00
Nicolas Goaziou 8785052735 `org-set-tags' cleans tag even when new tags are identical
* lisp/org.el (org-set-tags): Clean old tags unconditionally.

Even if the tags are the same, the line could contain noise, e.g.,
blanks after the tags, that could be cleaned up anyway.
2018-04-29 00:11:24 +02:00
Nicolas Goaziou 1615261cdc Preserve point when setting or aligning tags
* lisp/org.el (org--align-tags-here):
(org-set-tags-command):
(org-align-tags): Preserve point.
* testing/lisp/test-org.el (test-org/set-tags-command): Add test.
2018-04-28 23:45:04 +02:00
Nicolas Goaziou 7aadf4fe8c Improve `org-fix-tags-on-the-fly'
* lisp/org.el (org-fix-tags-on-the-fly): Improve docstring.  Skip more
  cases.
2018-04-28 23:45:04 +02:00
Nicolas Goaziou 4c13d0a1a8 Do not load Org Tempo by default
* lisp/org.el (org-modules): Do not load Org Tempo by default.

Org Tempo is a backward compatible substitute for the new expansion
mechanism.  It is only available for either die-hard "<s" users or
power users that need advanced templates.
2018-04-28 17:29:00 +02:00
Bastien 2b6004f57e org-agenda.el: Update the logic of regexp filters
* lisp/org-agenda.el (org-agenda-filter-by-regexp): Remove
existing regexp filter.  Only cumulate filters when called
with two prefix arguments.

It seems more common and reasonable to hit "=" to filter
then hit "=" again to remove the filter.  Cumulative filters
are still accessible through hitting `C-u C-u ='.
2018-04-28 14:12:37 +02:00
Bastien 2debcd5b22 org.el: New command `org-toggle-narrow-to-subtree'
* lisp/org.el (org-toggle-narrow-to-subtree): New command.
(org-speed-commands-default): Use the new command for the "s"
speed command.
2018-04-28 14:00:25 +02:00
Bastien f2af4a37a6 Fix commit 011f1c6 2018-04-28 13:53:06 +02:00
Bastien 0f83eac078 org.el: Enhance messages when (un)setting timestamps
* lisp/org.el (org--deadline-or-schedule): Enhance messages.
2018-04-28 13:31:45 +02:00
Bastien ed50e13e91 org-agenda.el: Only remove agenda restriction if it exists
* lisp/org-agenda.el (org-agenda-remove-restriction-lock):
Only remove agenda restriction if it exists.
2018-04-28 13:02:45 +02:00
Bastien 4c14e0d1f2 org.el: New speed command "k" to kill the subtree at point
* lisp/org.el (org-speed-commands-default): Add "k" to kill
the subtree at point.
2018-04-28 12:57:15 +02:00
Bastien 5c8cb1e733 Add messages for `org-table-copy-region' and `org-copy-visible'
* lisp/org-table.el (org-table-copy-region):
* lisp/org.el (org-copy-visible): Add a message.
2018-04-28 12:52:20 +02:00
Bastien b5b7bb8446 org.el: Display a message when a checkbox could not be updated
* lisp/org.el (org-ctrl-c-ctrl-c): Display a message when the
checkbox item at point could not be updated.

* lisp/org-list.el (org-list-write-struct): Return the updated
structure.
2018-04-28 12:43:14 +02:00
Bastien 1933d9ef26 org-clock.el (org-clock-jump-to-current-clock): Tiny enhancements
* lisp/org-clock.el (org-clock-jump-to-current-clock): Add a
docstring, do not use as a command and throw a user error
instead of an error when no clock is active.
2018-04-28 12:23:26 +02:00
Bastien 8f572aa23b Merge branch 'master' of code.orgmode.org:bzg/org-mode 2018-04-28 12:11:08 +02:00
Bastien 011f1c6181 Let `org-agenda-set-restriction-lock' remove restriction at point
* lisp/org-compat.el (org-speedbar-set-agenda-restriction):
* lisp/org-agenda.el (org-agenda-set-restriction-lock):
If there is an agenda restriction at point, remove it.

* doc/org-manual.org:
* etc/ORG-NEWS: Document the new feature.
2018-04-28 12:09:56 +02:00
Marco Wahl 2e2b083024 org-faces: Complete docstring for org-quote, org-verse
* lisp/org-faces.el (org-quote, org-verse): Note dependency on
  `org-fontify-quote-and-verse-blocks' in docstring.
* lisp/org-faces.el (org-block): Remove non-existant dependency on
  `org-fontify-quote-and-verse-blocks' from docstring.

This change emerged from question
https://emacs.stackexchange.com/questions/41182/change-background-color-of-quote-block/41260
2018-04-28 09:50:51 +02:00
Bastien 26f54050b6 Merge branch 'master' of code.orgmode.org:bzg/org-mode 2018-04-28 08:06:20 +02:00
Bastien 39b9a12bab org.el: Enhance a few docstrings
* lisp/org.el (org-structure-template-alist)
(org--insert-structure-template-mks)
(org--insert-structure-template-unique-keys)
(org-insert-structure-template): Enhance docstrings.
2018-04-28 08:05:54 +02:00
Nicolas Goaziou eab65c9cf8 Fix colview-related failing tests
* lisp/org-compat.el (org-line-number-display-width): New function.
* lisp/org-colview.el (org-columns--display-here-title): Use new
  function.
2018-04-28 02:17:44 +02:00
Nicolas Goaziou 031f362352 Fix `org-toggle-tag'
* lisp/org.el (org-toggle-tag): Fix weird behavior with inherited tags.

* testing/lisp/test-org.el (test-org/toggle-tag): Add test.

Reported-by: Bernt Hansen <bernt@norang.ca>
<http://lists.gnu.org/r/emacs-orgmode/2018-04/msg00537.html>
2018-04-28 02:10:44 +02:00
Bastien d48bff37ad Merge branch 'master' of code.orgmode.org:bzg/org-mode 2018-04-28 00:59:25 +02:00
Bastien 4e97d8621e org-tempo.el: Enhance a few docstrings
* lisp/org-tempo.el (org-tempo, org-tempo-keywords-alist)
(org-tempo-setup, org-tempo-add-templates)
(org-tempo--include-file): Enhance docstrings.
2018-04-28 00:46:25 +02:00
Nicolas Goaziou 9a1f208223 Merge branch 'maint' 2018-04-27 17:13:40 +02:00
Nicolas Goaziou 388254e0d0 Revert "org.el: Fix bug when links contain special characters"
This reverts commit b1d084c1ab.

The fix introduces a bug where `org-edit-special' throws an error on
INCLUDE keywords.
2018-04-27 17:12:18 +02:00
Bastien b08245a74e Merge branch 'maint' 2018-04-27 12:32:30 +02:00
Bastien e8c40b7a07 org.el: Update version keyword to 9.1.12
Thanks to Nicolas for reminding me.
2018-04-27 12:31:13 +02:00
Bastien 1a5ca5fa83 Merge branch 'maint' 2018-04-27 03:17:44 +02:00
Bastien 5d0792057d Fix commit f21fb8a 2018-04-27 03:17:12 +02:00
Bastien 8b6e5d5f2e Revert "org-agenda.el: Fix bug when getting the warning delay of a deadline"
This reverts commit f21fb8ad3b.
2018-04-27 03:09:28 +02:00
Bastien 67f1a33b45 Merge branch 'master' of code.orgmode.org:bzg/org-mode 2018-04-27 01:27:40 +02:00
Bastien 6cd224e833 Merge branch 'maint' of code.orgmode.org:bzg/org-mode into maint 2018-04-27 01:27:15 +02:00
Bastien 8fd176ee76 Merge branch 'maint' into wip 2018-04-27 01:09:51 +02:00
Marco Wahl a0a40a4651 org: Remove special whitespace treatment when moving subtree
* lisp/org.el (org-move-subtree-down): Remove special whitespace treatment.
* testing/lisp/test-org.el (test-org/drag-element-backward):
  Accommodate test.
2018-04-27 01:08:29 +02:00
Bastien 8cdefed80b org-colview.el: Possibly take linum-offset into account
* lisp/org-colview.el (org-columns--display-here-title):
Possibly take linum-offset into account.

Thanks to Eric S Fraga for reporting this.
2018-04-27 00:44:55 +02:00
Bastien 25f99522ad org-src.el: Don't set `buffer-file-name'
* lisp/org-src.el (org-src-mode-configure-edit-buffer): Don't
set `buffer-file-name'.

Thanks to Clément Pit-Claudel for reporting this.
2018-04-27 00:25:15 +02:00
Bastien f21fb8ad3b org-agenda.el: Fix bug when getting the warning delay of a deadline
* lisp/org-agenda.el (org-agenda-get-deadlines): Fix bug when
getting the warning delay of a deadline.

Thanks to Alex Branham for reporting this.
2018-04-26 22:59:36 +02:00
Bastien b1d084c1ab org.el: Fix bug when links contain special characters
* lisp/org.el (org-open-link-from-string): Fix bug when links
contain special characters.

Thanks to Joon Ro for reporting this.
2018-04-26 21:52:39 +02:00
Bastien b64f31abd2 org.el: Tiny enhancements for `org-open-at-point-global'
* lisp/org.el (org-open-at-point-global): Use `thing-at-point'
to match possibly more urls and emails.  Enhance docstring.
2018-04-26 21:50:37 +02:00
Bastien d561b3d0b9 org.el: Add org-eww to the list of default modules
* lisp/org.el (org-modules): Add org-eww to the list of
default modules.
2018-04-26 21:30:37 +02:00
Bastien 71ad7d19ea org.el: Add org-tempo to the list of default modules
* lisp/org.el (org-modules): Add org-tempo to the list of
default modules.

Template expansion is likely to be expected by many users, as it was
on by default in previous releases.  Let's load org-tempo by default
and let users remove it.  If needed, we can remove this in future
releases.
2018-04-26 21:29:48 +02:00
Matt Lundin 407014e068 Fix default directory for git-annex checks
* lisp/org-attach.el: (org-attach-annex-get-maybe) Ensure shell
  command that checks whether a git-annex file exists is called from
  within the git-annex repository. Otherwise, it will result in an
  error.
2018-04-26 21:17:55 +02:00
Bastien 877617d467 org-agenda: Act on the current entry if there is no mark
* lisp/org-agenda.el (org-agenda-bulk-action): When there is
no mark, act on the agenda entry at point.

Thanks to Marco Wahl for suggesting this.
2018-04-26 21:12:20 +02:00
Bastien f80f7ed98b org-clock.el: New option :tags to insert tags in clock reports
* lisp/org-clock.el (org-clocktable-defaults)
(org-clocktable-write-default, org-clock-get-table-data):
Rename :tags to :match and use :tags to insert a column with
the headline's tags.

Thanks to Raymond Zeitler for suggesting this.
2018-04-26 20:55:27 +02:00
Bastien 2742211ec6 org-agenda.el: Fix bug when keyboard-quitting the match prompt
* lisp/org-agenda.el (org-tags-view): Don't leave an empty
*Org agenda* buffer when keyboard-quitting the match prompt.

Thanks to Xu Chunyang for reporting this.
2018-04-26 18:44:58 +02:00
Allen Li 8944b578b8 Remove agenda-archives even with buffer restriction
* lisp/org-agenda.el (org-search-view): Remove agenda-archives even
  with buffer restriction.
2018-04-26 16:12:39 +02:00
Bastien b8d0498a0e org-inlinetask.el: Tiny formatting and rephrasing fixes 2018-04-26 15:51:18 +02:00
Nicolas Goaziou 60483fbfc3 Merge branch 'maint' 2018-04-26 14:18:07 +02:00
Nicolas Goaziou e2e5495239 Fix "(wrong-number-of-arguments max 0)" with fast tag selection
* lisp/org.el (org-fast-tag-selection): Fix
  "(wrong-number-of-arguments max 0)" error when setting tag and no
  tag is defined.
2018-04-26 14:16:17 +02:00
Nicolas Goaziou ea6825cf1f Improve docstring
* lisp/org.el (org-set-tags-command): Improve docstring.
2018-04-26 13:52:19 +02:00
Bastien 886ab9c766 Modify syntax entry for < and > globally
* lisp/org.el (org-mode): Let < and > be recognized as opening
and ending characters.

These characters are typically used in timestamps where it is useful
to use C-M-f and C-M-b to manipulate them.
2018-04-26 11:29:30 +02:00
Bastien 5a0162097a org.el (org-mode): Don't modify syntax entry for "@" globally
* lisp/org.el (org-mode): Don't modify syntax entry for "@" globally.

This syntax entry dates from commit fe939ecb when it was used to allow
"@" in tags.   Now "@" is a word constituent in tags, not anywhere.
2018-04-26 11:26:18 +02:00
Bastien 2ea09c9ad7 Merge branch 'master' of code.orgmode.org:bzg/org-mode 2018-04-26 09:57:05 +02:00
Bastien 23a4a1c99b Merge branch 'maint' 2018-04-26 09:56:55 +02:00
Bastien 4323db60c5 Fix typo in docstring
* lisp/org-eww.el (org-eww-copy-for-org-mode): Fix typo in docstring.

Thanks to Xu Chunyang <mail@xuchunyang.me> for reporting this.
2018-04-26 09:56:45 +02:00
Nicolas Goaziou 2056b60aae Fix merge with maint
Re-introduce commit "Fix multiple tag selection" (f1b43fe9e).
2018-04-26 02:44:23 +02:00
Nicolas Goaziou 8a90b34aa6 Fix error when setting more than one tag
* lisp/org.el (org-set-tags-command): Fix type of history argument in
  `completing-read'.
2018-04-26 02:30:09 +02:00
Nicolas Goaziou f1b43fe9e6 Fix multiple tag selection
* lisp/org.el (org--tag-add-to-alist): Preserve order when merging tag
  alists.  Remove duplicates only when they are outside a group.
  Rename from `org-tag-add-to-alist'.
(org-set-regexps-and-options):
(org-global-tags-completion-table):
(org-make-tags-matcher):
(org-set-tags):
(org-change-tag-in-region):
(org-agenda-prepare-buffers): Apply renaming.

Reported-by: Alex Branham <alex.branham@gmail.com>
<http://lists.gnu.org/r/emacs-orgmode/2018-04/msg00311.html>
2018-04-23 15:24:23 +02:00
Kyle Meyer 08e196d7fa Merge branch 'maint' 2018-04-22 11:13:14 -04:00
Kyle Meyer e3b1c664e7 Update version keyword 2018-04-22 11:09:36 -04:00
Nicolas Goaziou 02e290d1d4 Merge branch 'maint' 2018-04-21 15:22:53 +02:00
Nicolas Goaziou cb63ccb78e org-capture: Fix error on capture abort
* lisp/org-capture.el (org-capture-finalize): Do not set `abort-note'
  to `dirty' too easily.

Reported-by: Brad Knotwell <bknotwell@yahoo.com>
<http://lists.gnu.org/r/emacs-orgmode/2018-04/msg00183.html>
2018-04-21 15:21:25 +02:00
Nicolas Goaziou 8b121d3aa2 org-agenda: Fix missing colons in agenda tags
* lisp/org-agenda.el (org-agenda-format-item): Fix missing colons in
  agenda tags.

This regression was introduced in "Standardize tag regexps" commit.

Reported-by: Samuel Wales <samologist@gmail.com>
<http://lists.gnu.org/r/emacs-orgmode/2018-04/msg00321.html>
2018-04-21 11:54:25 +02:00
Nicolas Goaziou c1ebb6d221 Merge branch 'maint' 2018-04-21 11:26:54 +02:00
Nicolas Goaziou c75c574d58 org-capture: Fix error when clipboard is empty
* lisp/org-capture.el (org-capture-fill-template): Fix "%x"
  placeholder when clipboard is empty.

Reported-by: Brady Trainor <mail@bradyt.com>
<http://lists.gnu.org/r/emacs-orgmode/2018-04/msg00328.html>
2018-04-21 11:25:46 +02:00
Nicolas Goaziou 56fe493618 Merge branch 'maint' 2018-04-21 11:13:03 +02:00
Nicolas Goaziou 5792f06871 ox-md: Tiny refactoring
* lisp/ox-md.el (org-md--build-toc): Tiny refactoring.
2018-04-21 11:12:04 +02:00
Yue Zhu c6e5aa1da8 ox-md: Fix ToC on unnumbered headings
(org-md--build-toc): When exporting markdown with ToC, if heading
numbering is not enabled, ToC will be shown as an unordered list.

TINYCHANGE
2018-04-21 10:59:47 +02:00
Nicolas Goaziou 3719cdd48e org-table: Fix shrunk hlines
* lisp/org-table.el (org-table--shrink-field): Handle properly shrunk
  hlines with a width cookie.
* testing/lisp/test-org-table.el (test-org-table/toggle-column-width):
  Add test.  Fix tests.

Reported-by: William Denton <wtd@pobox.com>
<http://lists.gnu.org/r/emacs-orgmode/2018-04/msg00306.html>
2018-04-20 11:57:37 +02:00
Nicolas Goaziou 95af956cfd Merge branch 'maint' 2018-04-20 11:05:56 +02:00
Andrew Eggenberger 8c3d4fbde7 Document `org-timestamp-up' and `org-timestamp-down' behavior
* org.el (org-timestamp-up): Document undocumented behavior.
(org-timestamp-up): The function changes the timestamp type when
the point is on the enclosing bracket.  The documentation now
reflects that behavior.

* org.el (org-timestamp-down): Document undocumented behavior.
(org-timestamp-down): The function changes the timestamp type when
the point is on the enclosing bracket.  The documentation now
reflects that behavior.

TINYCHANGE
2018-04-20 11:05:28 +02:00
Nicolas Goaziou 4d152b994e Rewrite tags setting functions
* lisp/org.el (org-setting-tags): Remove variable.
(org-set-tags-command): Change signature.  For interactive use only.
(org-set-tags-to): Remove function.
(org-align-all-tags): Remove function.
(org-align-tags): New function.
(org-set-tags): Change signature.  For non-interactive use only.
(org-promote):
(org-demote):
(org-refile):
(org-todo):
(org-priority):
(org-toggle-tag):
(org-entry-put):
(org-fix-tags-on-the-fly):
(org-ctrl-c-ctrl-c):
(org-delete-indentation):
(org-return):
(org-kill-line): Apply signature change.  Use new functions.
* lisp/ox-beamer.el (org-beamer-property-changed):
(org-beamer-select-environment): Apply signature change.  Use new
functions.
* testing/lisp/test-org-archive.el (test-org-archive/to-archive-sibling):
  Update test.
* testing/lisp/test-org.el (test-org/set-tags): Add tests.
(test-org/set-tags-command): New test.
(test-org/set-tags-to): Remove test.
2018-04-20 10:51:21 +02:00
Nicolas Goaziou be31a0c459 Standardize tag regexps
* lisp/org.el (org-tag-re):
(org-tag-group-re): New variable
(org-tag-string-to-alist):
(org-scan-tags):
(org-make-tags-matcher):
(org-fast-tag-selection): Use new variables.
* lisp/org-agenda.el (org-agenda-list-stuck-projects):
(org-agenda-format-item):
(org-agenda-fix-displayed-tags):
* lisp/org-archive.el (org-archive-subtree): Use new variables.
2018-04-19 14:28:54 +02:00
Nicolas Goaziou edc159c2f2 Remove `org-get-tags-string'
* lisp/org.el (org-get-tags-string): Move to "org-compat".
(org-make-tag-string): New function
(org-set-tags-to):
(org-set-tags):
(org-set-current-tags-overlay):
(org-entry-properties):
(org-agenda-prepare-buffers):
* lisp/org-mouse.el (org-mouse-set-tags):
* lisp/ox-ascii.el (org-ascii--build-title):
* lisp/ox-beamer.el (org-beamer-select-environment):
* lisp/ox-latex.el (org-latex-format-inlinetask-default-function):
* lisp/ox-md.el (org-md-headline):
(org-md--build-toc):
* lisp/ox-texinfo.el (org-texinfo-format-headline-default-function):
(org-texinfo-format-inlinetask-default-function):
* contrib/lisp/ox-groff.el (org-groff-headline):
(org-groff-inlinetask): Use new function.
* lisp/org-compat.el (org-get-tags-string): New function.
2018-04-19 11:52:07 +02:00
Nicolas Goaziou 2a293843ad org-lint: Remove useless checker
* lisp/org-lint.el (org-lint--checkers): Remove useless checker.
(org-lint-empty-headline-with-tags): Remove function.
* testing/lisp/test-org-lint.el (test-org-lint/empty-headline-with-tags):
  Remove test.
2018-04-19 11:52:07 +02:00
Nicolas Goaziou e87ebca2a7 Use `org-tag-line-re'
* lisp/org.el (org-activate-tags):
(org-toggle-tag):
(org--align-tags-here):
(org-fast-tag-selection):
(org-kill-line):
* lisp/org-agenda.el (org-agenda-align-tags): Use `org-tag-line-re'.
2018-04-19 11:52:07 +02:00
Nicolas Goaziou 7d2ebc3ffa Deprecate `org-get-local-tags' and `org-get-local-tags-at'
* contrib/lisp/org-drill.el (org-drill-entry-p):
(org-drill-entry-leech-p):
* lisp/org-bibtex.el (org-bibtex-headline):
(org-get-local-tags-at): Use `org-get-tags'.
* lisp/org.el (org-get-local-tags-at):
(org-get-local-tags): Move to...
* lisp/org-compat.el: ... here.
2018-04-19 11:51:54 +02:00
Nicolas Goaziou f05493504a Replace `org-get-tags-at' with `org-get-tags'
* contrib/lisp/org-drill.el (org-part-of-drill-entry-p):
* lisp/org-agenda.el (org-agenda-finalize):
(org-search-view):
(org-agenda-get-todos):
(org-agenda-get-timestamps):
(org-agenda-get-sexps):
(org-agenda-get-progress):
(org-agenda-get-deadlines):
(org-agenda-get-scheduled):
(org-agenda-get-blocks):
(org-agenda-change-all-lines):
* lisp/org-bibtex.el (org-bibtex-headline):
* lisp/org-clock.el (org-clock-get-table-data):
* lisp/org-pcomplete.el (org-get-tags):
* lisp/org.el (org-trust-scanner-tags):
(org-get-local-tags-at):
(org-get-local-tags):
(org-set-tags):
(org-map-entries):
(org-entry-properties): Use `org-get-tags' instead of
`org-get-tags-at'.
2018-04-19 11:51:54 +02:00
Nicolas Goaziou fbe56f89f7 Change `org-get-tags' specifications
* lisp/org.el (org-tag-line-re): New variable.
(org-hide-archived-subtrees):
(org-get-buffer-tags): Use new function.
(org--get-local-tags): New function.
(org-get-tags): Change meaning.  Now get all inherited tags.  Change
signature.
* lisp/org-archive.el (org-archive-subtree):
* lisp/org-mobile.el (org-mobile-apply):
(org-mobile-edit):
* lisp/org-mouse.el (org-mouse-tag-menu):
* lisp/org-pcomplete.el (pcomplete/org-mode/tag): Apply change

* testing/lisp/test-org.el (test-org/get-tags): New test.
(test-org/tags-at): Remove test.
2018-04-19 11:51:54 +02:00
Nicolas Goaziou 6457a9e4e6 Merge branch 'maint' 2018-04-18 22:18:47 +02:00
Nicolas Goaziou 8814988d1c Fix error message
* lisp/org.el (org-kill-line): Fix error message.
2018-04-18 22:18:23 +02:00
Nicolas Goaziou ee5fa18430 Remove `org<>' function
* lisp/org.el (org<>): Remove function.
2018-04-17 16:08:23 +02:00
Nicolas Goaziou ff3f3876a8 Move time related functions from "org.el" to "org-macs.el"
* lisp/org.el (org-2ft):
(org-time=):
(org-time<):
(org-time<=):
(org-time>):
(org-time>=):
(org-time<>):
(org-matcher-time): Move from here to...
* lisp/org-macs.el: ... here
2018-04-17 16:06:09 +02:00
Nicolas Goaziou 1171d5ef0c Merge branch 'maint' 2018-04-16 13:45:52 +02:00
Nicolas Goaziou 8b6a617ff5 Remove inlinetask END part from Agenda view
* lisp/org-inlinetask.el (org-inlinetask-end-p): New function.
(org-inlinetask-at-task-p):
(org-inlinetask-in-task-p):
(org-inlinetask-goto-beginning):
(org-inlinetask-goto-end):
* lisp/org.el (org-scan-tags): Use new function.

Reported-by: Alain.Cochard@unistra.fr
<http://lists.gnu.org/r/emacs-orgmode/2018-04/msg00235.html>
2018-04-16 13:44:52 +02:00
Feng Shu b4422add37 org-capture: Do not save buffer when running `org-capture-finalize'
* lisp/org-capture.el (org-capture-finalize): Do not run
  `save-buffer'.
2018-04-16 12:11:00 +02:00
Nicolas Goaziou bb03551246 ob-shell: Small refactoring
* lisp/ob-shell.el (org-babel-sh-evaluate): Slightly refactor code.
2018-04-15 12:26:03 +02:00
Nicolas Goaziou cc9233c1f4 Merge branch 'maint' 2018-04-14 19:32:05 +02:00
Nicolas Goaziou 1a1e47198f Fix `org-{w3m|eww}-copy-for-org-mode' on blank links
* lisp/org-w3m.el (org-w3m-copy-for-org-mode):
* lisp/org-eww.el (org-eww-copy-for-org-mode): Do not error when
  called on blank links.

Reported-by: Bob Newell <bobnewell@bobnewell.net>
<http://lists.gnu.org/r/emacs-orgmode/2018-04/msg00255.html>
2018-04-14 19:30:17 +02:00
stardiviner d7e12d1df7 * ob-clojure: Support :ns header argument
* lisp/ob-clojure.el (org-babel-clojure-default-ns): New variable.
(org-babel-clojure-cider-current-ns): New function.
(org-babel-expand-body:clojure):
(org-babel-execute:clojure): Support :ns header argument.

Remove optional parameter (cider-current-ns) to better handle
namespaces.
2018-04-14 18:21:55 +02:00
Nicolas Goaziou 434d232ca7 Merge branch 'maint' 2018-04-12 21:46:25 +02:00
Nicolas Goaziou 1976c02af0 Fix docstring
* lisp/org.el (org-file-apps): Fix regexp in docstring.
2018-04-12 21:46:05 +02:00
stardiviner b088389c6b ob-core: Add document and test for "graphics" format
* doc/org-manual.org: Document value.

* lisp/ob-core.el (org-babel-common-header-args-w-values): Handle
  symbol "graphics".

* testing/lisp/test-ob.el (test-ob/result-graphics-link-type-header-argument):
  New test.
2018-04-12 15:16:04 +02:00
stardiviner 296b0de4e8 ob-core: Add "link" results format
* lisp/ob-core.el (org-babel-execute-src-block): Handle "link" :results
  format.

* doc/org-manual.org: Add document for new result format "link".

* testing/lisp/test-ob.el (test-ob/result-file-link-type-header-argument):
  New test.
2018-04-12 15:15:59 +02:00
Nicolas Goaziou 52ba1a27ad Merge branch 'maint' 2018-04-11 23:03:01 +02:00
Nicolas Goaziou d20fc4d7c5 org-capture: Properly handle `org-extend-today-until' in templates
* lisp/org-capture.el (org-capture-set-target-location): Handle
  non-default `org-extend-today-until'.

Reported-by: Robert Irelan <rirelan@gmail.com>
<http://lists.gnu.org/r/emacs-orgmode/2018-04/msg00023.html>
2018-04-11 23:01:16 +02:00
Nicolas Goaziou 384d763447 Move some functions into "org-macs.el"
* lisp/org.el (org-file-newer-than-p):
(org-compile-file): Move...
* lisp/org-macs.el: ... here.
2018-04-11 22:03:18 +02:00
Nicolas Goaziou cbbca2991b Merge branch 'maint' 2018-04-11 21:43:37 +02:00
Nicolas Goaziou b7a7dd1492 Update version keyword 2018-04-11 21:42:46 +02:00
Nicolas Goaziou 575d66625d org-table: Fix alignment with long links
* lisp/org-table.el (org-table-align): Fix alignment with long links.
2018-04-09 21:55:33 +02:00
Nicolas Goaziou fb58727f32 Merge branch 'maint' 2018-04-08 18:39:36 +02:00
Nicolas Goaziou f05c2eae33 Fix RET on multi-line links
* lisp/org.el (org-return): Follow multi-line links.
* testing/lisp/test-org.el (test-org/return): Add tests.

Reported-by: Brent Goodrick <bgoodr@gmail.com>
<http://lists.gnu.org/r/emacs-orgmode/2018-04/msg00105.html>
2018-04-08 18:35:40 +02:00
Rasmus 39837b4b31 org: Change org-insert-structure-template to C-c C-,
* lisp/org.el (org-mode-map):
* doc/org-manual.org (With): Change keybinding of
  org-insert-structure-template.

See the thread titled "Poll: new keybinding for
org-insert-structure-template?" in December 2017 for details.
2018-04-08 12:47:12 +02:00
Rasmus d04c20deec org: Change structure insertion
* lisp/org.el (org-insert-structure-template): Change newline
  behavior.
* testing/lisp/test-org.el (test-org/insert-template): New tests.

`org-insert-structure-template' considers indentation and also insert
newlines between the beginning and the end of the block.
2018-04-08 12:47:12 +02:00
Rasmus e5f6cb6c8b org-tempo: Various improvements
* lisp/org-tempo.el (org-tempo-keywords-alist): Improve docstring.
(org-tempo--update-maybe):
(org-tempo--keys): New function.
(org-tempo-complete-tag):
(org-tempo-setup):
(org-tempo-add-templates): Use new functions.
(org-tempo-add-block): Smarter position of point.
* testing/lisp/test-org-tempo.el (test-org-tempo/cursor-placement):
 (test-org-tempo/space-first-line): New tests.
* testing/lisp/test-org-tempo.el (test-org-tempo/completion): Adapt
  test to changes.

Org Tempo more carefully checks for new definitions.  When inserting
blocks point will differ depending on whether it is source block.
2018-04-08 12:47:12 +02:00
Rasmus b56df737b7 org: org-structure-template-alist uses string keys
* lisp/org-tempo.el (org-tempo-keywords-alist):
  (org-tempo-setup):
  (org-tempo-add-templates):
* testing/lisp/test-org-tempo.el (test-org-tempo/add-new-templates):
* lisp/org.el (org-structure-template-alist): Use string keys.
  (org--insert-structure-template-mks):
  (org--insert-structure-template-unique-keys): New functions for block selection.
  (org-insert-structure-template): Use new functions.
* etc/ORG-NEWS:
* doc/org-manual.org: Reflect changes.
2018-04-08 12:47:12 +02:00
Rasmus ac4d5fe1b3 org-macs: Make tab, space and RET equivalent in org-mks
* lisp/org-macs.el (org--mks-read-key): New function.
  (org-mks): Use new function and make space, tab and RET equivalent.
2018-04-08 12:47:08 +02:00
Rasmus 06ab656f42 org-macs: Move org-mks from org-capture to org-macs
* lisp/org-capture.el (org-mks): Moved to org-macs.el.
* lisp/org-macs.el (org-mks): Added from org-capture.el.

The move is being done to accommodate the usage of org-mks in other
Org libraries.
2018-04-07 13:03:18 +02:00
Nicolas Goaziou 3485523821 Merge branch 'maint' 2018-04-05 16:48:46 +02:00
Brad Knotwell 8e5d74ca4c ob-sed: Use -f instead of --file to support BSD sed
lisp/ob-sed.el (org-babel-execute:sed): Change file flag to "-f"
instead of "--file" to support BSD sed as well.

Signed-off-by: Bjarte Johansen <bjarte.johansen@gmail.com>
2018-04-05 16:47:41 +02:00
Nicolas Goaziou 717b0f039d Merge branch 'maint' 2018-04-05 16:46:11 +02:00
Pierre Téchoueyres befc92b9c0 org-agenda: Call `recenter' only if buffer has a window
* lisp/org-agenda.el (org-agenda-list): Condition the call to
  `recenter` only when the buffer has a window associated.

This permit to call `org-agenda-list` in a `with-temp-buffer` like
below:

(with-temp-buffer
  (let ((org-agenda-sticky nil)
        (org-agenda-buffer-tmp-name (buffer-name)))
    (org-agenda-list 1)
    (buffer-string))
2018-04-05 16:45:40 +02:00
Nicolas Goaziou a1ca78d5b8 Merge branch 'maint' 2018-04-03 21:28:37 +02:00
Nicolas Goaziou 3e1f111c3b ob-python: Small refactoring
* lisp/ob-python.el (org-babel-python-evaluate-session): Small
  refactoring.
2018-04-03 21:27:59 +02:00
Gong Qijian 1966d58b25 ob-python: Insert blank line when sending code to interpreter
* lisp/ob-python.el (org-bable-python-evaluate-session):

Syntax error occurs when evaluating the following code block:

\#+begin_src python :session
if True:
    1
2
\#+end_src

A blank line is required for top level module code to end an indented block, such as a for loop, try/except, or if statement.

https://www.python.org/dev/peps/pep-0008/#blank-line

TINYCHANGE
2018-04-03 21:24:18 +02:00
Marco Wahl 873caa6ad7 org.el: Fix two docstrings
* lisp/org.el (org-beginning-of-line, org-end-of-line): Fixed
  documentation of org-beginning-of-line; synchronized with
  documentation of org-end-of-line.
2018-04-03 17:03:34 +02:00
Nicolas Goaziou 003af466c5 ob-core: Fix failing tests.
* lisp/ob-core.el (org-babel-result-to-file): Do not assume current
  buffer is visiting a file.
2018-04-03 00:11:14 +02:00
Nicolas Goaziou 20b5d8aaec ob-js: Fix `indium-run-node' call.
* lisp/ob-js.el (org-babel-execute:js): `indium-run-node' expects
  a command to run.
2018-04-02 23:45:29 +02:00
stardiviner 174e9d1ec9 Fix org-babel-js-initiate-session
* ob-js.el (org-babel-js-initiate-session): Add required optional
 second argument.
2018-04-02 20:42:42 +02:00
stardiviner f57df8fc74 ob-shell: Add zsh and fish shells.
* ob-shell.el (org-babel-shell-names) add "zsh" and "fish".
2018-04-02 20:42:16 +02:00
Nicolas Goaziou e462125cfc org-table: Improve shrinking on right-aligned and centered columns
* lisp/org-table.el (org-table--make-shrinking-overlay): New function.
(org-table--shrink-field): Use new function.
(org-table--shrink-columns): Update function.
* testing/lisp/test-org-table.el (test-org-table/toggle-column-width):
  Update test.
2018-04-02 20:30:40 +02:00
Nicolas Goaziou 834f6d100b org-tempo: Require `org' 2018-03-31 08:51:10 +02:00
Nicolas Goaziou 83f4627679 Change default value for scientific notation related variables
* lisp/ox-latex.el (org-latex-table-scientific-notation):
* lisp/ox-texinfo.el (org-texinfo-table-scientific-notation): Change
  default value to nil.

Reported-by: Günter Lichtenberg <mail@guenterlichtenberg.de>
<http://lists.gnu.org/r/emacs-orgmode/2018-03/msg00527.html>
2018-03-30 22:20:30 +02:00
Kyle Meyer 052fc2226b Merge branch 'maint' 2018-03-27 18:22:29 -04:00
Rasmus ab488dc438 org.el: Fix whitespace issue blocking upstream commit 2018-03-27 18:21:31 -04:00
Nicolas Goaziou 30b7fba2ae Merge branch 'maint' 2018-03-26 23:27:07 +02:00
Nicolas Goaziou 1b3cc4e463 Update version 2018-03-26 23:24:00 +02:00
Nicolas Goaziou 842a5ba6d3 org-agenda: Fix temporary delays
* lisp/org-agenda.el (org-agenda-get-scheduled): Ignore "--Xd" delays
  after first repeat.

Reported-by: hhkg@protonmail.com
<http://lists.gnu.org/r/emacs-orgmode/2018-03/msg00481.html>
2018-03-26 23:22:38 +02:00
Kyle Meyer be8f76cbe9 Merge branch 'maint' 2018-03-26 00:07:03 -04:00
Glenn Morris b45c1ff4d4 Backport commit a6a821d29 from Emacs
* lisp/ob-lisp.el (org-babel-lisp-eval-fn): Tweak type.

Avoids type mismatch when relevant library is not present/loaded.

a6a821d29bda3e45fb26289e6119359ea3b91ebb
Glenn Morris
Thu Mar 22 14:37:45 2018 -0400
2018-03-26 00:01:40 -04:00
Nicolas Goaziou 9aaa035e88 Merge branch 'maint' 2018-03-25 22:56:01 +02:00
Nicolas Goaziou 8c9ebc81f0 Revert "ob-table: Fix org-sbe's handling of quotes in cell values"
This reverts commit 5b59e16c9e.
2018-03-25 22:55:24 +02:00
Nicolas Goaziou 9e70db6bab Revert "ob-table: Fix org-sbe's handling of list arguments"
This reverts commit c9d617b322.
2018-03-25 22:55:14 +02:00
Nicolas Goaziou 6261bbd20b Revert "ob-table: Mention passing ranges as lists in org-sbe's documentation"
This reverts commit 02b1574ea9.
2018-03-25 22:54:56 +02:00
stardiviner 6bb4134cdd ob-js: Small refactoring.
* lisp/ob-js.el (org-babel-prep-session:js): Replace `mapc' + `lambda'
  with `dolist'.
2018-03-25 22:47:27 +02:00
stardiviner 5ee6c45953 ob-js: support :session for js-comint REPL.
* lisp/ob-js.el (org-babel-js-cmd): Add js-comint.
(org-babel-js-initiate-session): Add support for js-comint.
2018-03-25 22:47:03 +02:00
stardiviner b4e2fed77e ob-js: support :session for Indium Node REPL.
* lisp/ob-js.el (org-babel-js-cmd): Add "indium".
(org-babel-execute:js): Handle Indium REPL.
2018-03-25 22:41:05 +02:00
stardiviner 1a1e2286ba ob-js: support :session for skewer-mode REPL.
* lisp/ob-js.el (org-babel-js-cmd): Add "skewer-mode".
(org-babel-execute:js):
(org-babel-js-initiate-session): Handle skewer mode.
2018-03-25 22:38:02 +02:00
Nicolas Goaziou d33e6eae51 org-macro: Refactoring
* lisp/org-macro.el (org-macro-initialize-templates): Refactor function.
* testing/lisp/test-org-macro.el (test-org/macro-replace-all): Remove
  duplicate tests.  Add new test.
2018-03-23 23:40:56 +01:00
Nicolas Goaziou 28977b719c Merge branch 'maint' 2018-03-23 23:32:00 +01:00
Nicolas Goaziou 143a87e45c org-macro: Fix infloop when re-defining built-in macros
* lisp/org-macro.el (org-macro-initialize-templates): User-defined
  macros have higher precedence than built-in macros.

Reported-by: Eric S Fraga <esflists@gmail.com>
<http://lists.gnu.org/r/emacs-orgmode/2018-03/msg00413.html>
2018-03-23 23:30:06 +01:00
Kyle Meyer 2ddb26f95d Merge branch 'maint' 2018-03-22 09:26:49 -04:00
Kyle Meyer fa15abe6e8 Update version keyword
As of fffd300ef (Update version keyword, 2018-02-24), this should be
bumped with each release.
2018-03-22 09:18:32 -04:00
Bastien 366d80a6f2 Merge branch 'maint' 2018-03-22 02:28:02 +01:00
Bastien a9139d9976 lisp/org-list.el: Enhance error message
* lisp/org-list.el (org-list-indent-item-generic): Use
`user-error' and enhance the error message.
2018-03-22 02:22:15 +01:00
Nicolas Goaziou 6713c2792f Merge branch 'maint' 2018-03-21 12:52:43 +01:00
Nicolas Goaziou b5a90a7ab5 Silence byte-compiler 2018-03-21 12:52:19 +01:00
Nicolas Goaziou 4a631383dd Remove unused regexp
* lisp/org.el (org-log-drawer-start-re):
(org-log-drawer-end-re)
(org-log-drawer-re): Remove variables.
2018-03-21 12:49:41 +01:00
Bastien f0958d559c Merge branch 'maint' 2018-03-21 02:13:21 +01:00
Martin Kampas 894ec00e9f org.el: Fix recursion stop condition when expanding tags
* lisp/org.el (org-expand-tags): Fix recursion stop condition.

See http://lists.gnu.org/r/emacs-orgmode/2018-03/msg00228.html

TINYCHANGE
2018-03-21 02:12:42 +01:00
Bastien 27d0c469c0 Merge branch 'maint' 2018-03-21 01:58:25 +01:00
Bastien e28a5a66ad org.el: Enhance `org-tag-add-to-alist' and use it more
* lisp/org.el (org-tag-add-to-alist): Check against the car of
the ("tag") or ("tag" . ?k) element.
(org-global-tags-completion-table, org-make-tags-matcher)
(org-set-tags, org-change-tag-in-region)
(org-agenda-prepare-buffers): Use `org-tag-add-to-alist'.
2018-03-21 01:57:45 +01:00
Matt Lundin 393b98ae8e Include buffer tags in global tags completion
* lisp/org.el: (org-global-tags-completion-table): Return all tags,
  including tags in the buffer.

This fixes a bug that caused buffer tags to be excluded if user
configured tags either via `org-tag-alist' or the #+TAGS keyword.
2018-03-21 00:56:25 +01:00
Bastien a402419716 Merge branch 'maint' 2018-03-20 17:23:29 +01:00
Bastien b0cca9656d org.el: Fix bug when adding persistent tags
* lisp/org.el (org-tag-add-to-alist): New function.
(org-set-regexps-and-options): Use the new function to only
append persistent tags if they are not already in the tags
alist.
2018-03-20 17:23:18 +01:00
Bastien f18823b80a Merge branch 'maint' 2018-03-20 14:58:40 +01:00
Bastien b7f350f7ef org.el: Fix bug when building tags groups
* lisp/org.el (org-tag-alist-to-groups): Fix bug.
2018-03-20 14:58:20 +01:00
Bastien 8548dfa33f Merge branch 'maint' 2018-03-20 12:38:31 +01:00
Bastien b2d3dbabf7 org-capture.el: Fix docstring
* lisp/org-capture.el (org-capture-templates-contexts): Fix docstring.
2018-03-20 12:38:24 +01:00
Nicolas Goaziou f6b74a5649 Remove `org-context-p'
* lisp/org.el (org-context-p): Remove function.

The function is not used anywhere, and is deprecated
`org-element-at-point'.
2018-03-20 09:34:26 +01:00
Sebastian Reuße 1af7f303d5 Guard against empty headings when sorting
* org.el (org-sort-entries): Guard against empty headings when sorting
alphabetically, numerically.

Due to how ‘org-complex-heading-regexp’ is defined, the title capture group
currently returns nil in empty headings, which we don’t want to pass on to
‘org-sort-remove-invisible’.
2018-03-20 09:25:14 +01:00
Nicolas Goaziou 55d807f348 Merge branch 'maint' 2018-03-20 00:02:26 +01:00
Vladimir Panteleev 02b1574ea9 ob-table: Mention passing ranges as lists in org-sbe's documentation
* ob-table.el (org-sbe): Add documentation note.
2018-03-20 00:01:13 +01:00
Vladimir Panteleev c9d617b322 ob-table: Fix org-sbe's handling of list arguments
* ob-table.el (org-sbe): Add an explicit case for handling list
arguments. This avoids doing the wrong thing (%s-formatting a list,
thus losing syntax like double-quotes). This enables passing org-table
ranges through org-sbe in a simple and correct manner.

* test-ob-table.el: Add test.
2018-03-20 00:01:09 +01:00
Vladimir Panteleev 5b59e16c9e ob-table: Fix org-sbe's handling of quotes in cell values
* ob-table.el (org-sbe): org-sbe did the wrong thing when given a
reference to a cell containing quotes or backslashes, because it would
simply wrap any $-prefixed value in quotes, without any escaping. Fix
this by using "%S" (instead of "\"%s\"").

* test-ob-table.el: Add test.
2018-03-20 00:01:05 +01:00
Nicolas Goaziou beeb4bf23f ox: Fix regression in INCLUDE keywords
* lisp/ox.el (org-export--prepare-file-contents): Activate Org mode in
  temporary buffer so all regexps are set.  Also, be more strict when
  updating links, i.e., do not bother if both includer and includee
  belong to the same directory, or if there's no includer at all.
  Eventually, only update links within lines specifications, if any.

* testing/lisp/test-ox.el (test-org/expand-include/links): Add tests.

Reported-by: Kaushal Modi <kaushal.modi@gmail.com>
<http://lists.gnu.org/r/emacs-orgmode/2018-03/msg00394.html>
2018-03-19 23:48:38 +01:00
Nicolas Goaziou 0de3f78c28 Merge branch 'maint' 2018-03-18 21:27:19 +01:00
Nicolas Goaziou e1f1acbbfb Improve docstring for `org-time-stamp-inactive'
* lisp/org.el (org-time-stamp-inactive): Improve docstring.
2018-03-18 21:26:42 +01:00
Daniel Gomez d81a1d088c Fix file links when using #+INCLUDE 2018-03-18 16:09:55 +01:00
Nicolas Goaziou 594b2dbae8 Merge branch 'maint' 2018-03-17 14:57:25 +01:00