* 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'.
* lisp/org-element.el (org-element--cache-active-p):
(org-element-cache-reset): Do not activate cache outside Org buffers,
even if using "orgstruct-mode".
Reported-by: "Mark A. Hershberger" <mah@nichework.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/104648>
* lisp/ox-latex.el (org-latex-src-block): Fix numbering reset on source
blocks when using the listings package.
Reported-by: P-O Gustafsson <kullager@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/104650>
* lisp/ob-tangle.el (org-babel-tangle-jump-to-org): Find correct
location in the Org document.
* testing/lisp/test-ob-tangle.el (ob-tangle/jump-to-org): New test.
* lisp/ob-core.el (org-babel-update-block-body): Correctly handle block
indentation.
(org-babel-where-is-src-block-head): Accept an optional argument in
order to avoid parsing twice the same element.
* testing/lisp/test-ob.el (org-test-ob/update-block-body): New test.
* lisp/org-src.el (org-src-font-lock-fontify-block): Use
org-font-lock-ensure instead of font-lock-fontify-buffer.
This replacement has previously been made (f36b19e, d81e6b5) and then reverted
(99f9999, 003a0f1) twice because source blocks were not being reliably
highlighted when font-lock-ensure was used instead of
font-lock-fontify-buffer. This was due to a bug in font-lock-ensure
that has now been fixed (see Emacs's 21beb19 and bug#22399).
font-lock-ensure was introduced after Emacs 24.5, so this issue only
pertains to users with a developmental version of Emacs.
* lisp/org-compat.el (org-font-lock-ensure): Add new alias that accepts
the same number of arguments as font-lock-ensure does. Use an org-
prefix.
* lisp/org-clock.el (org-clock-get-clocktable):
* lisp/org.el (org-fontify-like-in-org-mode):
* lisp/ox-html.el (org-html-fontify-code):
* lisp/ox-odt.el (org-odt-do-format-code):
* lisp/ox-org.el (org-org-publish-to-org): Use org-font-lock-ensure.
See Emacs's bug#22399.
* lisp/org-table.el (org-table-show-reference): Do not move point
outside the table when editing formulas. Fix docstring.
Reported-by: Samuel Wales <samologist@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/104472>
* lisp/ox-latex.el (org-latex-compile): Improve timestamp check on HFS+
filesystem by only considering 1-second clock resolution.
Previously, the call to (current-time) could return a timestamp with
a non-zero microsecond or picosecond fields, while the file attribute
always has zeros for these fields. The check that the generated file is
newer than the reference timestamp only succeeded when the time to
generate the file crossed a 1-second clock interval.
TINYCHANGE
* lisp/org-element.el (org-element--parse-objects): Add an optional
argument to avoid walking a secondary string twice. Make less
consing.
(org-element--parse-elements): Make less consing.
(org-element-headline-parser):
(org-element-inlinetask-parser):
(org-element-item-parser):
(org-element-parse-secondary-string): Apply changes.
* lisp/ob-core.el (org-babel-check-confirm-evaluate)
(org-babel-map-src-blocks): Don't emit warnings if added vars are not used.
(*this*): Declare as dyn-bound.
(org-babel-expand-src-block, org-babel-load-in-session)
(org-babel-switch-to-session-with-code, org-babel-get-rownames):
Mark unused args.
(org-babel-combine-header-arg-lists): Remove unused var `args'.
* lisp/org-src.el (org-inhibit-startup):
Declare as dyn-bound.
lisp/org: Fix some compiler warnings
1203e8aecb7f49621af52cc13bc0e4427545dd4f
Stefan Monnier
Mon Jan 25 10:11:31 2016 -0500
Expunge "allow" + infinitive without direct object from source and doc.
fbce4757a874cc43806eb41b8637538b101c3c69
Alan Mackenzie
Sun Jan 24 20:30:39 2016 +0000
* lisp/org.el (org-activate-plain-links): Ensure that a valid buffer
position is given as first argument to get-text-property, in
particular when the plain link is at the very beginning of the buffer.
TINYCHANGE
* ox-icalendar.el (org-icalendar-export-current-agenda): Correct
argument order in call to org-icalendar--vcalendar (timezone should be
third, description fourth).
TINYCHANGE
* lisp/org-colview.el (org-columns-next-allowed-value): Fix error when
trying to edit a column from a headline starting at the very beginning
of the buffer.
This patch also prepares for lexical binding.
Reported-by: "T.F. Torrey" <tftorrey@tftorrey.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/104370>
* lisp/ob-R.el: org-babel-R-evaluate-external-process and
org-babel-R-evaluate-session trim the extraneous newlines from the
end of R output.
* testing/lisp/test-ob-R.el: test-ob-R/results-file tests that
`:results file' yields one line enclosed in square brackets for a
result like "abc/def.ghi".
Fixes issue noted by Andreas Leha
Subject: [babel] return file from R
Archived-At: <http://permalink.gmane.org/gmane.emacs.orgmode/103658>
* lisp/org.el (org-auto-repeat-maybe): Only consider repeaters in
regular text, not within, e.g., example blocks.
Reported-by: Karl Voit <devnull@Karl-Voit.at>
<http://permalink.gmane.org/gmane.emacs.orgmode/104260>
* lisp/org.el (org-agenda-prepare-buffers): Do not use
`org-uniquify-alist' since it uses `eq' for comparison, whereas where
are using strings as keys.
Reported-by: Vincent Emanuele <vincent.emanuele@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/104196>
* lisp/org-element.el (org-element-context): Do not look for objects
within TODO keyword, priority cookie, comment keyword or tags.
* lisp/org.el (org-activate-tags): Fix regexp.
* testing/lisp/test-org-element.el (test-org-element/context): Add test.
Reported-by: John Kitchin <jkitchin@andrew.cmu.edu>
* lisp/org.el: The declaration of `org-state' fixes function `org-todo'.
Without the declaration the progressing of todo-states fails in some
cases with "Debugger entered--Lisp error: (void-variable org-state)".
Cf. thread http://permalink.gmane.org/gmane.emacs.orgmode/104179.
* lisp/org-table.el (org-table-current-field-formula): Column formulas
are stored with a leading dollar sign. Also raise an error when no
field applies, unless NOERROR is non-nil.
* lisp/org-table.el (org-table-eval-formula): Remove unnecessary error.
* lisp/org-bibtex.el (org-bibtex): Fix type error in cases where the
buffer is not visiting a file. In an indirect buffer, use the file
name for the base buffer.
* lisp/org-bibtex.el (org-bibtex): Mark FILENAME argument as required
because, when called from Lisp, the function does not provide a
default file name when FILENAME is nil, leading to a type error.
* lisp/org-clock.el (org-clocktable-write-default): Count properties
columns when using special :formula %
The previous count did not consider properties columns, so the generated
formula was incorrect.
* lisp/org.el (org-auto-repeat-maybe): Only clear non-repeated SCHEDULED
information in a repeated task.
* doc/org.texi (Repeated tasks): Document behavior.
Do not clear non-repeated DEADLINE information however, as it could be
a global deadline for all occurrences of the task. Also, this case is
taken care of by `org-agenda-skip-scheduled-if-deadline-is-shown' with
a value set to `repeated-after-deadline'.
* lisp/org.el (org-auto-repeat-maybe): Do not remove SCHEDULED time
stamp when encountering a time stamp without a repeater. Also, ensure
"REPEAT_TO_STATE" property can be inherited. Small refactoring.
Reported-by: "Bradley M. Kuhn" <bkuhn@ebb.org>
<http://permalink.gmane.org/gmane.emacs.orgmode/104103>
* lisp/org.el (org-make-tags-matcher): Return a function instead of
a sexp. Refactor code.
(org--matcher-tags-todo-only): New variable. Replace `todo-only'
dynamic binding.
(org-scan-tags): Apply changes to `org-make-tags-matcher'.
(org-match-sparse-tree):
(org-map-entries): Use new variable.
* lisp/org-crypt.el (org-encrypt-entries):
(org-decrypt-entries): Use new variable.
* lisp/org-clock.el (org-clock-get-table-data): Apply changes to
`org-make-tags-matcher'.
* lisp/org-agenda.el (org-tags-view): Use new variable.
* lisp/org-capture.el (org-capture-fill-template):
* lisp/org-feed.el (org-feed-format-entry): Fix handling escaped
placeholders in templates. In particular, do not rely on match data
when `org-capture-escaped-%' is used.
Reported-by: Michael Brand <michael.ch.brand@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/104081>
* lisp/org.el (org-log-note-buffer): Remove variable.
(org-log-note-marker): New variable.
(org-log-note-effective-time): Fix docstring.
(org-add-log-setup):
(org-add-log-note):
(org-store-log-note): Use new variable.
Unlike to previous variable, this one stores the location of the entry
where the note is going to be inserted, not necessarily the location of
the note, which is computed later.
* lisp/org.el (org-log-beginning): Properly locate notes when no drawer
is used.
(org-store-log-note): Function above already moves point to the correct
location.
* lisp/org-feed.el (org-feed-format-entry): Fix function according to
recent changes to Org Capture library. Small refactoring.
Reported-by: Michael Brand <michael.ch.brand@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/103941>
* lisp/org-capture.el (org-capture-expand-embedded-elisp): Do not mark
invalid sexp. Renamed from `org-capture--expand-embedded-elisp'.
(org-capture-fill-template): Escape " characters for placeholders
located within sexp. Small refactoring.
(org-capture-inside-embedded-elisp-p): Rewrite function.
* lisp/org.el (org-tree-to-indirect-buffer): Remove tags from name.
Just use org-tree title for naming an indirect org-tree buffer. If tags
are appended the name clutters mode-line.
TINYCHANGE
Signed-off-by: Stefan-W. Hahn <stefan.hahn@s-hahn.de>
* lisp/org.el (org-log-note-marker): Remove variable.
(org-log-note-buffer): New variable.
(org-add-log-setup): Remove one argument. Also use new variable.
(org-refile):
(org-todo):
(org-auto-repeat-maybe):
(org-deadline):
(org-schedule):
(org-add-note): Apply argument removal.
(org-store-log-note): Use new variable. Compute the insertion's location
at the time the note is really inserted in the buffer.
* lisp/org-clock.el (org-clock-out): Apply argument removal. Remove hack
around shared drawers.
Reported-by: Olli P <kotkis@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/103958>
* lisp/org-clock.el (org-clock-stored-history): New variable.
(org-clock-save):
(org-clock-load): Use new variable.
Reported-by: Matt Lundin <mdl@imapmail.org>
<http://permalink.gmane.org/gmane.emacs.orgmode/103972>
* lisp/org.el (org--valid-property-p): New function.
(org-entry-put):
(org-set-property): Use new function.
Suggested-by: Julien Cubizolles <j.cubizolles@free.fr>
<http://permalink.gmane.org/gmane.emacs.orgmode/104044>
* lisp/org-element.el (org-element-export-block-parser): Type is always
stored in capitals.
* testing/lisp/test-ox.el (test-org-export/export-block): Add test.
Reported-by: Suvayu Ali <fatkasuvayu+linux@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/103921>
* lisp/ox-publish.el (org-publish-cache-file-needs-publishing):
According to the syntax of #+INCLUDE statement in *info* page,
there's no space between search option and file path.
TINYCHANGE
* lisp/org-datetree.el (org-datetree-find-iso-date-create): New function.
(org-datetree--find-create): Support fixed text for insert.
(org-datetree-insert-line): Support fixed text for insert.
* testing/lisp/test-org-datetree.el (test-org-datetree/find-iso-date-create):
New test.
ISO week trees order dates by week and not by month.
* lisp/org-datetree.el (org-datetree--find-create): New function.
(org-datetree-find-year-create, org-datetree-find-month-create,
org-datetree-find-day-create): Removed functions
(org-datetree-find-date-create): Use `org-datetree--find-create' instead
of removed functions. Use calendar extract functions.
(org-datetree-insert-line): Do more formatting in `format-time-string'
since we call it anyway
* testing/lisp/test-org-datetree.el (test-org-datetree/find-date-create):
Test if new entries are put at the right place.
* lisp/org-pcomplete.el (pcomplete/org-mode/prop): Add
`ignore-malformed' argument in call to `org-buffer-property-keys'
* lisp/org.el (org-buffer-property-keys): Add support for new argument
`ignore-malformed'.
* testing/lisp/test-org-pcomplete.el: Add new file for testing
`pcomplete' integration.
* testing/lisp/test-org.el (test-org/buffer-property-keys): Test
behaviour of `org-buffer-property-keys' with new `ignore-malformed'
argument.
When property name completion is being performed, it means that we are
inside malformed property drawer that will become valid only after
successful completion. In this case in makes no sense to perform
interactive drawer repair.
* lisp/org-agenda.el (org-agenda--quit): Fix changes introduced by
9b1c682 and 8594aed that incorrectly assume that the agenda buffer is
always the current buffer at the time of killing or burying.
Reported-by: David Mann <manndmd@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/103791>
* lisp/org-footnote.el (org-footnote--collect-references): Include
inline references at the beginning of the line, which are allowed,
unlike regular references.
* lisp/org-footnote.el (org-footnote-re):
(org-footnote-definition-re): Do not match [1]-like constructs.
(org-footnote): Fix typo.
(org-footnote-auto-label): Do not offer to create [1]-like constructs
anymore.
(org-footnote-new): Remove reference to obsolete value in
`org-footnote-auto-label'.
(org-footnote-at-reference-p):
(org-footnote-get-next-reference):
(org-footnote-next-reference-or-definition):
(org-footnote-goto-definition):
(org-footnote-goto-previous-reference): Use new regexp.
(org-footnote-normalize-label): Remove "fn:" prefix instead of adding
it.
(org-footnote-get-definition):
(org-footnote-all-labels):
(org-footnote-unique-label): Small refactoring.
(org-footnote-create-definition):
(org-footnote-delete-definitions):
(org-footnote--clear-footnote-section):
(org-footnote--collect-references):
(org-footnote--collect-definitions):
(org-footnote--set-label):
(org-footnote-sort): New functions.
(org-footnote-auto-adjust-maybe):
(org-footnote-action): Use new functions. Small refactoring.
(org-footnote-renumber-fn:N): Refactor code. Handle nested footnotes.
(org-footnote-normalize): Turn footnotes into [fn:N] construct instead
of [N].
* testing/lisp/test-org-footnote.el (test-org-footnote/delete):
(test-org-footnote/goto-definition):
(test-org-footnote/normalize): Update test
(test-org-footnote/sort):
(test-org-footnote/renumber-fn:N): New tests.
(test-org-footnote/normalize-outside-org): Remove test.
* lisp/org-element.el (org-element--set-regexps):
(org-element-footnote-definition-interpreter):
(org-element-footnote-reference-parser):
(org-element-footnote-reference-interpreter): Do not consider [1]-like
constructs as footnotes anymore.
* lisp/ox.el (org-export-expand-include-keyword):
(org-export--prepare-file-contents): Apply changes to footnotes.
* doc/org.texi (Footnotes): Remove references to plain footnotes.
* testing/lisp/test-org-element.el (test-org-element/footnote-reference-parser):
(test-org-element/footnote-reference-interpreter):
* testing/lisp/test-ox.el (test-org-export/expand-include):
(test-org-export/expand-macro):
(test-org-export/get-footnote-number):
(test-org-export/collect-footnote-definitions):
(test-org-export/footnotes):
(test-org-export/fuzzy-link): Update tests.
Since it is possible to refer unambiguously to a label without the "fn:"
prefix, the latter becomes part of the syntax and no longer part of the
label. In particular [fn:1] and [fn:label] are labelled, respectively,
"1" and "label".
* lisp/org-protocol.el: Update documentation.
(org-protocol-store-link, org-protocol-capture,
org-protocol-open-source): Accept new-style links.
(org-protocol-check-filename-for-protocol): Update documentation.
(org-protocol-parse-parameters, org-protocol-assign-parameters):
New functions.
This allows the use of org-protocol on KDE 5 and makes org-protocol
links more URI-like. New-style links are of the form:
org-protocol://store-link?title=TITLE&url=URL
* testing/lisp/test-org-protocol.el: New file.
* lisp/org-element.el (org-element-export-block-parser):
(org-element--current-element): Use new syntax for export blocks.
(org-element-block-name-alist): Remove.
* lisp/ox.el (org-export-register-backend):
(org-export-define-derived-backend): Remove :export-block keyword from
back-end's definition.
(org-export-expand-include-keyword): Use new syntax for include
keywords.
* lisp/ox-ascii.el (ascii):
* lisp/ox-beamer.el (beamer):
* lisp/ox-html.el (html):
* lisp/ox-latex.el (latex):
(org-latex-prefer-user-labels):
* lisp/ox-man.el (man):
* lisp/ox-md.el (md):
* lisp/ox-odt.el (odt):
* lisp/ox-texinfo.el (texinfo): Propagate changes to "ox.el".
* lisp/ob-core.el (org-babel-insert-result):
* lisp/ob-haskell.el (org-babel-haskell-export-to-lhs): Use new syntax.
* lisp/org.el (org-structure-template-alist): Use new syntax.
(org-protecting-blocks): Add "export" to protected blocks. Remove
back-ends blocks, which are now special blocks.
(org-fontify-meta-lines-and-blocks-1): Fontify correctly new blocks.
* lisp/org-footnote.el (org-footnote-forbidden-blocks):
* lisp/org-list.el (org-list-forbidden-blocks): Add "export" to
forbidden blocks. Remove back-ends blocks, which are now special
blocks.
* contrib/lisp/ox-extra.el: Update comments.
* testing/lisp/test-org-element.el (test-org-element/export-block-parser):
(test-org-element/export-block-interpreter):
* testing/lisp/test-ob.el (test-ob/org-babel-remove-result--results-html):
(test-ob/org-babel-remove-result--results-latex):
* testing/lisp/test-ox.el (test-org-export/expand-include): Update tests.
Export blocks are explicitly marked as such at the syntax level to
disambiguate their parsing from special blocks. The new syntax is
#+BEGIN_EXPORT backend
...
#+END_EXPORT
instead of
#+BEGIN_backend
...
#+END_backend
As a consequence, =INCLUDE= keywords syntax is modified, e.g.,
#+INCLUDE: "file.org" HTML
becomes
#+INCLUDE: "file.org" export html
* lisp/ob-sql.el: Add a database type 'oracle that uses sqlplus to
support running SQL blocks against an Oracle database.
Use with properties like this (all mandatory):
:engine oracle :dbhost <host.com> :dbport <1521> :dbuser <username>
:database <database> :dbpassword <secret>
TINYCHANGE
* lisp/org-table.el (org-table-recalculate): Expand "$<" without
returning an error. Small refactoring.
* testing/lisp/test-org-table.el (test-org-table/first-rc): New test.
Reported-by: Stefan Nobis <stefan-ml@snobis.de>
<http://permalink.gmane.org/gmane.emacs.orgmode/103693>
* lisp/ox-latex.el (org-latex--delayed-footnotes-definitions):
* lisp/ox.el (org-export--selected-trees):
(org-export--prune-tree):
(org-export--merge-external-footnote-definitions):
(org-export--footnote-reference-map): Provide nil value for binders.
Using
(letrec ((SYMBOL)) ...)
to bind SYMBOL to nil relies on (setq SYMBOL) setting SYMBOL to nil. As
of 5d93a89 (Byte compiler: on setq with an odd number of arguments,
generate a `signal', 2015-11-26) in the Emacs repo, setq signals an
error when given an odd number of arguments.
Reported-by: Zack Piper <zack@apertron.net>
<http://permalink.gmane.org/gmane.emacs.orgmode/103539>
<http://permalink.gmane.org/gmane.emacs.devel/196182>
* lisp/org.el (org-unique-local-variables): New variable.
(org-get-local-variables):
(org-clone-local-variables): Use variable above. Do not rely on an
obscure naming convention to determine if a local variable is meant to
be cloned or read.
* lisp/org.el (org-mode): `org-startup-truncated' and
`org-startup-indented' are expected to have an effect only when
`org-inhibit-startup' is non-nil.
* lisp/org-capture.el (org-capture-steal-local-variables): Remove function.
(org-capture-fill-template): Apply removal. Use
`org-clone-local-variables' instead. Focus on Org specific variables.
* lisp/org.el (org-get-local-variables):
(org-clone-local-variables): Ignore internal local variables, whose
value is probably tied to their respective buffer. In particular, this
prevents cache related variables from being copied.
* lisp/org-indent.el (org-indent--initial-marker): Renamed from
`org-indent-initial-marker'. Marking it as internal prevents it from
being copied by `org-clone-local-variables' and alike.
(org-indent-mode):
(org-indent-initialize-buffer): Apply renaming.
* lisp/org-capture.el (org-capture-is-refiling): New variable.
(org-capture-place-template): Silence byte-compiler.
* lisp/org.el (org-refile): Use new variable.
* lisp/org-table.el (org-table-eval-formula): Properly parse named
fields when indentation of current line ends with a TAB character.
* testing/lisp/test-org-table.el (test-org-table/tab-indent): New test.
Reported-by: Piotr Gajewski <pg7@outlook.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/103290>
* org-inlinetask.el(org-inlinetask-goto-end): Position point just at the
end. Do not forward-line.
Fixes org-cycle for state CHILDREN when the children are inlinetasks
which have immediate neigbors.
* lisp/org-capture.el (org-capture-templates): Update docstring.
(org-capture-fill-template): Expand interactive placeholders when the
template is otherwise completely filled.
This restores the previous behaviour for template's expansion.
* lisp/org-capture.el (org-capture-fill-template): Allow more than one
word when filling %{prompt} place holders.
Reported-by: Eric S Fraga <e.fraga@ucl.ac.uk>
<http://permalink.gmane.org/gmane.emacs.orgmode/103251>
* lisp/ox-html.el (org-html-template): Add lang attribute to exported
html tag. Some features of the CSS Text Module (Level 3) require this
attribute to be present (for example, so that the browser knows how to
hyphenate the text). For more info, please take a look here:
https://drafts.csswg.org/css-text-3/#languages
TINYCHANGE
* lisp/ox-html.el: Remove superfluous whitespace from meta tags, put
there by `org-html--buld-meta-info' and `org-html--build-head'.
`org-html-close-tag' already inserts a space, so it is not necessary
to add another. Previously these affected tags would look like
<meta name="generator" content="Org-mode" />.
TINYCHANGE
* ox-latex.el (org-latex-custom-lang-environments): Extend the
documentation string.
* ox-latex.el (org-latex-src-block): Allow a custom language environment
to be a format string to be directly inserted.
* lisp/org-capture.el (org-capture-templates): Improve docstring.
(org-capture-fill-template): Prevent recursive evaluation of %(...)
placeholders. Fix escaping of % character in templates.
* testing/lisp/test-org-capture.el: New file.
Reported-by: Thomas Preindl <thomas.preindl@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/103018>
* lisp/org-agenda.el (org-agenda-write): Fix arguments passed to
`org-agenda-remove-marked-text' to properly remove entries with
`invisible' property set to `org-filtered'.
* lisp/ox-icalendar.el (org-icalendar-export-current-agenda): Always
include TODO entries in the output. The motivation is that a user not
filtering out TODO or DONE items in the current agenda probably wants
them in the output.
Reported-by: "sgeorgii ." <sgeorgii@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/102998>
* lisp/org-agenda.el (org-agenda-filter-make-matcher-tag-exp): Deal with
the case when the user provided an empty string to filter or exclude
rows from the agenda.
This is done in order to fix a problem reported in emacs-orgmode mailing
list 2015-11-25 02:50 with subject "[O] [RFC] [PATCH] Changes to Tag
groups - allow nesting and regexps".
* lisp/org-table.el (org-table-get-formula):
(org-table-store-formulas): Column formulas references are stored along
with their dollar-sign since "Fix `org-table-get-range' with column
formulas". Update functions accordingly.
Reported-by: John Hendy <jw.hendy@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/103056>
* lisp/ox-publish.el (org-publish-cache-file-needs-publishing): Ignore
any link search suffix on an include so that the path represents
a valid file during the publishing check.
TINYCHANGE
* lisp/org-colview.el (org-columns-capture-view): Obey to
skip-empty-rows even when "ITEM" doesn't belong to current title.
Reported-by: Joon Ro <joon.ro@outlook.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/102924>
* lisp/ox.el (org-export--delete-comments): Preserve document's
structure when removing comment lines or comment blocks.
* testing/lisp/test-ox.el (test-org-export/comments): New test.
Reported-by: Samuel Wales <samologist@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/102860>
* lisp/org-table.el (org-table-analyze): Fix incorrect replacement for
"$>" reference when the table ends on a hline.
* testing/lisp/test-org-table.el (test-org-table/end-on-hline): New
test.
* lisp/org-src.el (org-edit-inline-src-code): New function.
(org-src--contents-area): Handle inline src blocks.
* lisp/org.el (org-edit-special): When on an inline src block, edit it.
* lisp/org-list.el (org-list-parse-list): Use `letrec'.
(org-list-to-generic): Do not allow random sexp, but authorize functions.
(org-list-to-subtree): Apply change to previous function.
Reported-by: Kaushal Modi <kaushal.modi@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/102651>
* lisp/ox-publish.el (org-publish-compare-directory-files):
(org-publish-get-base-files-1):
(org-publish-get-base-files):
(org-publish-index-generate-theindex):
(org-publish--collect-references):
(org-publish-resolve-external-link): Prefix functions from cl-lib with
"cl-" or replace `case' with `pcase'.
* lisp/ob-R.el (org-babel-R-evaluate-session) should find prompts more
reliably. First, the regular expression used requires spacing
between and after instances of `[>+.]'. Also, the search terminates
at the first `\n', so complicated results with prompt like strings
in them are not deleted.
Prompt finding is necessarily heuristic. It may be necessary to render
the regular expression with a defcustom as is done in ess-mode.
* lisp/org-lint.el (org-lint-wrong-header-value): Don’t call
`org-babel-process-params'.
This function adds generated values to the header args: it’s never a
user error if these are incorrect. It also calls babel code to resolve
:var references, which makes linting an undesirably long and potentially
side-effectful operation.
* lisp/ox-latex.el (org-latex-latex-fragment): Since $$..$$ snippets are
not wrapped within a math-block, do not remove markers.
(org-latex--wrap-latex-math-block): Do not wrap $$...$$ LaTeX snippets.
* lisp/ox-ascii.el (org-ascii-inner-template): Since 47265b3, footnotes
definitions' contents do no start with `org-data'. Update code.
Reported-by: Samuel Wales <samologist@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/102648>
* lisp/org.el (org-self-insert-command): Do not call
`backward-delete-char' since it possibly deletes active region.
Simplify code.
This fixes bug#21838.
* lisp/ob-core.el (org-babel-check-confirm-evaluate): Convert from macro
to function.
(org-babel-check-evaluate):
(org-babel-confirm-evaluate): Adapt to above change. Convert from
defsubst to defun.
* testing/lisp/test-ob.el (ob/check-eval) New test.
(org-test-babel-confirm-evaluate): New function supporting it.
* lisp/ob-core.el (org-babel-read-element): New function.
* lisp/ob-ref.el (org-babel-ref-resolve): Use new function. Refactor
code.
(org-babel-ref-at-ref-p): Remove function.
* testing/lisp/test-ob.el (test-ob/ignore-reference-in-commented-headings):
New test.
* testing/lisp/test-ob.el (test-ob/resolve-code-blocks-before-data-blocks):
Remove test
The second test is removed because names are expected to be unique.
There is no order to expect when more than one uses the same name.
Reported-by: myq <myqlarson@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/102464>
* lisp/ox.el (org-export-get-environment): Do not handle :back-end
and :translate-alist.
(org-export--collect-tree-properties): Do not handle :exported-data.
(org-export--get-export-attributes): New function.
(org-export-as): Use new function.
* testing/lisp/test-ox.el (org-test-with-parsed-data): Use new function.
* lisp/ox.el (org-export-get-environment): Do not fill :id-alist yet.
(org-export-collect-tree-properties): Complete it here instead.
Reported-by: Samuel Wales <samologist@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/102540>
* lisp/org-agenda.el (org-agenda--timestamp-to-absolute): New function.
(org-agenda-get-timestamps):
(org-agenda-get-deadlines):
(org-agenda-get-scheduled): Use new function.
* lisp/org.el (org-diary-sexp-no-match): New error.
(org-time-string-to-absolute): Raise an error when a diary sexp cannot
match instead of returning a nonsensical value.
Reported-by: "Stefan-W. Hahn" <stefan.hahn@s-hahn.de>
<http://permalink.gmane.org/gmane.emacs.orgmode/102417>
* lisp/org.el (org-format-outline-path): Ignore nil path elements.
* testing/lisp/test-org.el (test-org/format-outline-path): Add test.
The PATH argument shouldn't contain a nil item. However, this didn't
fail before 1c74002, and helm-get-org-candidates-in-file relies on this
behavior, so prevent it from failing now.
Reported-by: Simon Thum <simon.thum@gmx.de>
<http://permalink.gmane.org/gmane.emacs.orgmode/102411>
* lisp/org.el (org-format-outline-path): Change loop counter.
The old version gives the same result when combined with the other for
clause, but it reads as though the intention is to reach
(length path) rather than (1- (length path)).
* lisp/org-agenda.el (org-agenda-get-day-entries): Rewrite function to
avoid O(n^2) complexity. Also fix empty deadline list passed as
argument when :deadline (or :deadline*) is not the first symbol.
* lisp/org.el (org-format-outline-path): Avoid out-of-range error when
the length of PREFIX is greater than the value given for WIDTH.
Prevent result from extending beyond WIDTH. Simplify code.
* testing/lisp/test-org.el (test-org/format-outline-path): Add tests.
Reported-by: Simon Thum <simon.thum@gmx.de>
<http://permalink.gmane.org/gmane.emacs.orgmode/102241>
* lisp/org-agenda.el (org-agenda-get-deadlines):
(org-agenda-get-scheduled): When closest scheduled/deadline date is
today, also report all days since original timestamp.
* lisp/org.el (org-emphasis-regexp-components): Allow singe quote,
double quote and comma as the last character in an emphasis string.
Reported-by: Marcin Borkowski <mbork@mbork.pl>
<http://permalink.gmane.org/gmane.emacs.orgmode/102191>
* lisp/org-agenda.el (org-agenda-get-deadlines):
(org-agenda-get-scheduled): For past repeaters, compute the number of
scheduled or deadline days since original date, not closest repeater.
Suggested-by: cesar mena <cmena@pobox.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/101884>
* lisp/org.el (org-return): Properly follow links when description is
emphasized. Also tolerate links and timestamps in otherwise forbidden
areas (e.g., comments, node properties...), much like
`org-open-at-point'.
* testing/lisp/test-org.el (test-org/return): Add tests.
Reported-by: Samuel Wales <samologist@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/101977>
* lisp/org-clock.el (org-clock-find-position): Create clock drawer when
a drawer is missing, even though requested, but some clocks are
already present in the entry.
Reported-by: Nikolay Kudryavtsev <nikolay.kudryavtsev@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/101973>
* lisp/ox.el (org-export-with-broken-links): New variable.
(org-export-options-alist): Add new OPTIONS item.
(org-link-broken): New error type.
(org-export-resolve-coderef):
(org-export-resolve-fuzzy-link):
(org-export-resolve-id-link): Raise appropriate error symbol when a link
cannot be resolved.
(org-export-data): Handle new error type.
* doc/org.texi (Export settings): Document new feature.
* testing/lisp/test-ox.el (test-org-export/resolve-id-link):
(test-org-export/resolve-fuzzy-link):
(test-org-export/resolve-coderef): Update tests.
* lisp/org-element.el (org-element--next-mode): Line following an
inlinetask can be a planning.
* testing/lisp/test-org-element.el (test-org-element/inlinetask-parser):
Update test.
Reported-by: Gregor Zattler <telegraph@gmx.net>
<http://permalink.gmane.org/gmane.emacs.orgmode/101958>
* lisp/ox-beamer.el (org-beamer--get-label): Remove protective braces
when extracting label from options.
(org-beamer--format-frame): Protect label with braces if it contains
colons.
Based off a patch from Fabrice
Popineau (<http://permalink.gmane.org/gmane.emacs.orgmode/101933>).
* lisp/org.el (org-closest-date): Rewrite function with less arguments.
Improve readability.
(org-time-string-to-absolute): Apply changes to `org-closest-date'.
Improve docstring.
* testing/lisp/test-org.el (test-org/closest-date): New test.
This change implies specific repeaters (i.e., ".+" and "++") are no
longer treated the same as regular one (i.e. "+") wrt
`org-agenda-repeating-timestamp-show-all'. Indeed, only the latter
represents multiple dates. The former represent another date only when
TODO state changes, which could then skip some occurrences.
This fixes issue raised at
<http://permalink.gmane.org/gmane.emacs.orgmode/101884> and
<http://article.gmane.org/gmane.emacs.orgmode/26154>.
* org-capture.el (org-capture-refile): Call finalize first, then
refile. If the capture buffer needs to be killed afterwards, kill
after refiling.
Refiling before finalizing led to an incorrect cursor position during
refile. Since adjusting the buffer position and bounds for the refiled
entry is difficult, I reverted the `org-capture-refile' function to its
original order of finalizing and then refiling. However, this leads to
a bug with killing the buffer on capture, described in
<http://permalink.gmane.org/gmane.emacs.orgmode/78027/>. To work around
this, now the :kill-buffer flag is cleared before calling finalize, and
the capture buffer is killed after `org-refile' is called.
TINYCHANGE
* lisp/ox-publish.el (org-publish-projects): Call preparation function
earlier in the process, before files constituting the project are
collected.
Suggested-by: Arun Isaac <theroarofthedragon@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/101858>
* lisp/org-src.el (org-edit-src-code): Always preserve tabs not related
to indentation.
* testing/lisp/test-org-src.el (test-org-src/preserve-tabs): New test.
* lisp/org-element.el (org-element-remove-indentation): Mark as
an obsolete replacement for `org-remove-indentation'.
(org-element-example-block-parser):
(org-element-example-block-interpreter):
(org-element-src-block-parser):
* lisp/ox.el (org-export-unravel-code): Apply obsolescence.
* lisp/org.el (org-remove-indentation):
(org-do-remove-indentation): Change algorithm so as not to untabify
string or buffer.
Only <tab> characters used for indentation may be removed.
Reported-by: "Charles C. Berry" <ccberry@ucsd.edu>
<http://permalink.gmane.org/gmane.emacs.orgmode/101768>
* ox-latex.el (org-latex--make-preamble): Renamed
org-latex--make-header.
(org-latex--insert-compiler): New function.
(org-latex-template):
* ox-koma-letter.el: Use new function.
* lisp/org-mouse.el (org-mouse-insert-item):
(org-mouse-context-menu):
* lisp/org-pcomplete.el (org-thing-at-point):
* lisp/org.el (org-read-date-minibuffer-local-map):
(org-timestamp-change): Provide LIMIT argument to org-looking-back.
* lisp/org.el (org-read-date-minibuffer-local-map):
(org-insert-heading): Replace looking-back with org-looking-back.
As of Emacs 25, the LIMIT argument to looking-back is advertised as a
required argument.