* lisp/org.el (org-do-latex-and-related): Fix infloop when user
provides a wrong value for `org-highlight-latex-and-related'. In
this case, `org-latex-and-related-regexp' is the empty string and
generates an infloop since matching it doesn't move point.
* ob-core.el (org-babel-execute-src-block): Do not run
`org-babel-confirm-evaluate´ if source block has a cache and the
cache value is current (there is no evaluation involved in this
case).
* org.el (org-show-context): Remove useless catch. Make sure the
top of the window is a visible headline.
* org.el (org-activate-plain-links): Remove unused catch.
* org-macs.el (org-get-alist-option): Return nil, not (nil), so
that `org-show-context' DTRT.
Thanks to Samuel Wales for his patience in reporting this.
* org.el (org-overview): Stay on current line.
This circumvents a bug in hide-sublevels which displays the
"..." ellipsis on top of the window when hiding levels that
are past the middle of the window---at least this is the
way I could understand the problem.
Thanks to Samuel Wales for reporting the problem, Arun Persaud and
William for creating reproducible recipes, Suvayu Ali, Nick Dokos
and Achim Gratz for further help.
* lisp/ox-latex.el (org-latex-compile): Add an optional argument for
latex snippet previewing.
* lisp/org.el (org-create-formula-image-with-imagemagick): Use
`org-latex-compile' instead of rewriting it.
* lisp/org.el (org-create-formula--latex-header): New function.
(org-create-formula-image-with-dvipng,
org-create-formula-image-with-imagemagick): Use new function.
This functionality was removed in
0484c5c64d, when clearing out old export
framework from "org.el".
* lisp/ox.el (org-export-get-previous-element): Change order of
retured elements in `org-export-get-previous-element'.
* testing/lisp/test-ox.el: Update test.
* lisp/org-element.el (org-element-all-successors): Add `plain-link'
successor.
(org-element-object-restrictions): Remove `link' within `link'. Allow
`plain-link' instead.
(org-element-plain-link-successor): New function.
* testing/lisp/test-org-element.el: Add test.
Plain links within links are needed for the following kind of syntax:
[[http://orgmode.org][file:unicorn.png]]
No other link type is allowed within links.
* lisp/org.el (org-match-substring-regexp,
org-match-substring-with-braces-regexp): Update regexp.
A sub/superscript cannot start anymore at the beginning of the line
or after a space.
* lisp/ox-texinfo.el (org-texinfo--format-menu): Ensure two spaces
after :: before including description. Also adjusted logic to
insert description on desired column (by accounting for added text
when inserting node.
property
* lisp/ox-texinfo.el (org-texinfo--get-node)
and (org-texinfo--generate-menu-items): Use :OPTIONAL_TITLE:.
(org-export-define-backend): Remove :TEXINFO_MENU_TITLE from
options-alist
* lisp/ox-texinfo.el (org-texinfo-node-description-column): New custom
variable.
(org-texinfo--format-menu): Use new variable to set column for
description in node listings. If the headline extends past this
column, add the description after the headline.
The default column is 32 as suggested by Thomas S. Dye,
http://article.gmane.org/gmane.emacs.orgmode/66664
* lisp/ox-texinfo.el (org-texinfo-link): Fixed info link exporting to
recognize # as well as : when finding the info node.
Issue reported by Thomas S. Dye in
http://article.gmane.org/gmane.emacs.orgmode/66655
* lisp/ox-texinfo.el: Included support for appendices.
To include appendices, use a non-nil value for the :APPENDIX: property
of a headline. This headline will be exported at the appropriate
level as an appendix.
* org-macs.el: Don't define `with-silent-modifications' for
emacsen that don't have it.
* org-compat.el (org-with-silent-modifications): New
compatibility macro.
* org.el (org-refresh-category-properties)
(org-refresh-properties, org-entry-blocked-p)
(org-agenda-prepare-buffers):
* org-indent.el (org-indent-remove-properties)
(org-indent-add-properties):
* org-colview.el (org-columns-display-here)
(org-columns-remove-overlays, org-columns-quit)
(org-columns-edit-value, org-columns-compute-all)
(org-columns-compute, org-agenda-colview-compute):
* org-clock.el (org-clock-sum): Use the compatibility macro
`org-with-silent-modifications' instead of
`with-silent-modifications'.
Thanks to Achim for a preliminary patch.
* lisp/org-datetree.el (org-datetree-find-year-create): Also match
headlines with tags.
Change made to fix the problem where a year headline of a
datetree was not matched if it had a tag. The :NOEXPORT: tag
is one useful case that should be matched.
Initial problem observation reported by Jeffrey McBeth on the
org-mode mailing list.
TINYCHANGE
* org.el (org-sort-remove-invisible): Use defsust. Do not
only check against invisible links, truly returns the visible
part of the string.
Thanks to François Pinard for suggesting this.
* org.el (org-sort-remove-invisible): Add a docstring.
(org-sort-entries): Remove hidden links when comparing
entries.
* org-list.el (org-sort-list): Remove hidden links when
comparing list items.
Thanks to François Pinard for suggesting this.
* lisp/ox-html.el (org-html-toc, org-html--toc-text): Change to
docstring.
(org-html-list-of-listings, org-html-list-of-tables): New functions.
(org-html-keyword): Use new functions.
(org-html-src-block): Add an ID attribute when a name is given.
* lisp/org-element.el (org-element-footnote-definition-parser):
Require 2 blank lines to separate footnote definition.
* lisp/org-footnote.el (org-footnote-at-definition-p): Require 2 blank
lines to separate footnote definition.
* doc/org.texi: Update documentation for footnotes.
* testing/lisp/test-org-element.el: Update tests.
* testing/lisp/test-org-footnote.el: Add tests.
Footnote definitions can still be separated with other footnote
definitions and headlines. This change allows to have multiple
paragraphs in a footnote definition without resorting to the "\par"
trick.
* lisp/ox.el (org-export-stack): Rewrite.
(org-export-stack-refresh): Refactor.
(org-export-stack-remove, org-export-stack-view): Apply renaming.
(org-export-stack-mode-map): Use tabulated list map as a basis.
(org-export-stack--generate, org-export-stack--num-predicate): New
function.
* lisp/ox.el (org-export-get-optional-title): Return regular title
when no optional title is found.
* lisp/ox-ascii.el (org-ascii--build-title): Apply change to
`org-export-get-optional-title'.
* lisp/ox-html.el (org-html--format-toc-headline): Apply change to
`org-export-get-optional-title'.
* lisp/ox-latex.el (org-latex-headline): Apply change to
`org-export-get-optional-title'.
* testing/lisp/test-ox.el: Add tests.
* org.el (org-agenda-prepare-buffers): Don't use
`with-silent-modifications' too early.
Thanks to J. David Boyd for reporting this and to Florian Beck for
confirming the problem.
* lisp/ox-ascii.el (org-ascii--build-title): Add an argument. Use
optional title when building a toc line.
(org-ascii--build-toc): Call `org-ascii--build-title' with appropriate
arguments.
* lisp/ox-latex.el (org-latex-headline): Use optional title for table
of contents.
* lisp/ox-html.el (org-html--toc-text): Renamed from
`org-html-toc-text'. Add docstring.
(org-html--format-toc-headline): Renamed from
`org-html-format-toc-headline'. Add docstring. Use optional title if
possible.
(org-html-toc): Add docstring.
* lisp/org-element.el (org-element-headline-parser): Node
property :OPTIONAL_TITLE: in a headline will be parsed and stored
under :optional-title property.
* lisp/ox.el (org-export-get-optional-title): New function.
* lisp/ox-publish.el (org-publish-resolve-external-fuzzy-link): No
error when resolving external fuzzy links outside publishing. Though
search option for these links will not be resolved.
* org-macs.el: Add a comment on when to use `org-unmodified'
and when to use `with-silent-modifications'.
* org-colview.el (org-columns-display-here)
(org-columns-remove-overlays, org-columns-quit)
(org-columns-edit-value, org-columns-compute-all)
(org-columns-compute, org-agenda-colview-compute):
* org-clock.el (org-clock-sum):
* org.el (org-refresh-category-properties)
(org-refresh-properties, org-entry-blocked-p)
(org-agenda-prepare-buffers): Use `with-silent-modifications'
instead of `org-unmodified'.
Thanks to Stefan Monnier for reminding me about `with-silent-modifications'!
* org.el (org-tsr-regexp-both): Don't activate dates in links.
(org-activate-dates): Change match boundaries according to the
new value of `org-tsr-regexp-both'.
Thanks to Richard Huang for reporting a related issue.
* ox-latex.el (org-latex-format-headline-default-function):
New option.
(org-latex-format-headline-function): Use the new option as
the default value.
The rationale here is that most users will expect Org 8.0
to format headlines like Org <8.0 did. If they want a different
formatting, then they can use `org-latex-format-headline-function'.
* lisp/ox.el (org-export--generate-copy-script): Clone
`buffer-file-coding-system' when creating a buffer copy.
This patches makes sure the output will share the same encoding as the
original buffer.
* ob-python.el (org-babel-python-command): Use a defcustom.
(org-babel-python-mode): Use a defcustom and default to
'python-mode when featured.
Thanks to Andreas Röhler for providing a prelimiary patch.
* lisp/org.el (org-current-time): Replace call to obsolete function
`time-to-seconds´ with a call to compatibility function
`org-float-time´.
XEmacs 21.5 already has float-time, so we may not need a compatibility
function here depending on what version of XEmacs introduced it and
what is the earliest version that Org is supposed to still support.
* lisp/ox-html.el (org-html-link): Resolve external links with search
options like [[file.org::#custom-id]] or
[[file.org::*headline-search]].
In particular, this allows to resolve completely links produced by
index generation during publishing.
* lisp/ox-publish.el (org-publish-collect-numbering,
org-publish-resolve-external-fuzzy-link): New functions.
(org-publish-org-to): Add new collecting function to final output
filter. Move index collecting function to the same filter.
(org-publish-collect-index): Called from final output filter.
An external fuzzy link is: [[file.org::*headline search]]
* lisp/ox-html.el (org-html-format-headline--wrap, org-html-headline):
Use :CUSTOM_ID, not :custom-id.
* contrib/lisp/ox-deck.el (org-deck-toc): Use :CUSTOM_ID,
not :custom-id.
* org-protocol.el:
* org-bibtex.el: Remove remember support.
* org-clock.el (org-clock-heading-for-remember): Delete.
(org-clock-in): Do not set the heading for remember.
Users are encouraged to migrate their remember templates to
`org-capture-templates' instead of `org-remember-templates'.
See `org-capture-import-remember-templates' on how to ease
the transition.
* lisp/ox-latex.el (org-latex-property-drawer): Remove function.
* contrib/lisp/ox-groff.el (org-groff-property-drawer): Remove
function.
This changes ensures that:
paragraph
# comment
another paragraph
will be exported as:
paragraph
another paragraph
and not as:
paragraph
another paragraph
It only applies on back-end where empty lines are meaningful (e.g. not
html).
* org.el (org-move-subtree-down, org-forward-element)
(org-backward-element):
* org-table.el (org-table-previous-field)
(org-table-move-column, org-table-move-row):
* org-list.el (org-move-item-down, org-move-item-up)
(org-cycle-item-indentation): Use `user-error' when moving or
modifying the element at point is not possible.
* contrib/lisp/ox-koma-letter.el (org-koma-letter-template): Allow to
span documentclass options accross multiple lines in template.
* lisp/ox-beamer.el (org-beamer-template): Allow to span documentclass
options accross multiple lines in template.
* lisp/ox-latex.el (org-latex-template): Allow to span documentclass
options accross multiple lines in template.
Thanks to Michael Strey for reporting this bug.
* lisp/ox-texinfo.el (org-texinfo--get-node): New function.
(org-texinfo-headline, org-texinfo-link): Use new function.
The same function is used to create @node entries and links to nodes,
to avoid any discrepancy between them
* org-agenda.el (org-agenda-local-vars): Don't include
`org-agenda-show-window' as it needs to be checked outside of
the agenda window.
Thanks to Bernt Hansen for reporting this.
* org-compat.el (org-file-equal-p): New compatibility function.
* ox.el (org-export-output-file-name): Use the new function.
Thanks to Mark Edgington for reporting this.
* org-clock.el (org-clock-set-current)
(org-clock-delete-current): Delete.
(org-clock-in, org-clock-out): Set and delete
`org-clock-current-task'. Minor code clean-up.
* org-clock.el (org-clock-in, org-clock-in-last): Tell
`org-current-time' to always return a past time.
* org.el (org-current-time): New argument `past' to force
returning a past time when rounding.
If (setq org-clock-rounding-minutes 5) and time is 12:33
the clock start time would be 12:35, and the clock mode-line
would display 0:-2. The fix ensures the rounded value is
always in the past.
* org-agenda.el (org-agenda-unmark-clocking-task): New
function.
(org-agenda-mark-clocking-task): Use it.
(org-agenda-clock-in): Let the cursor where it is.
(org-agenda-clock-out): Ditto. Also remove the
`org-agenda-clocking' overlay.
* org.el (org-next-link): New parameter `search-backward'.
Fix bug when at a link with no 'org-link face, e.g., in a DONE
headline. Throw a message instead of an error.
(org-previous-link): Use `org-next-link'.
* lisp/ox-publish.el (org-publish-index-generate-theindex): Do not
create an "* Index" headline in "theindex.inc". Though, create an
"Index" title in fallback "theindex.org".
* org.el (org-mode): Don't make characters from
`org-emphasis-alist' word constituants.
(org-mode-transpose-word-syntax-table): Rename from
`org-syntax-table'.
(org-transpose-words): Use
`org-mode-transpose-word-syntax-table'.
Thanks to Achim Gratz and T.F. Torrey for reporting the broken tests.
When using C-RET to insert a new headline, the new headline was
inserted after arbitrary amounts of whitespace at the end of the
subtree. This whitespace is now shrunk, to avoid unnatural spacing.
* lisp/org.el (org-insert-heading): Shrink whitespace at end of
subtree when `org-insert-heading-respect-content' is on.
* lisp/org-element.el (org-element-headline-parser,
org-element-inlinetask-parser): Upcase properties. This is done to
avoid confusion between properties from parser (e.g. `:end') and
properties from the property drawer (e.g. :END:).
In particular, it means that :CUSTOM_ID: property is accessed through:
(org-element-property :CUSTOM_ID headline)
* org-agenda.el (org-agenda-set-restriction-lock): Put the
overlay until the end of the subtree, not the end of the
headline.
When the agenda restriction is on, user expect agenda views to check
every entry in the subtree. If a user add an entry outside of the
overlay without noticing it, this entry will not be checked and the
user will wonder why. Put the end of the overlay at the end of the
subtree so that the user always knows if the entries she is adding
are within the current restriction.
We might need to find a less instrusive overlay color, though.
* org.el (org-entry-delete, org-delete-property): New optional
arg delete-empty-drawer, a string, to delete any empty drawer
with that name.
(org-toggle-ordered-property): Delete the drawer "PROPERTIES"
if empty.
* org.el (org-set-tags-command): Fix bug when setting tags for
multiple headlines in an active region.
Do not set the end of the region back to the beginning of the
previous headline.
* lisp/org-faces.el (org-latex-and-related): Renamed from
`org-latex-and-export-specials', which wasn't appropriate anymore.
* lisp/org.el (org-highlight-latex-and-related,
org-latex-and-related-regexp): New variables.
(org-compute-latex-and-related-regexp, org-do-latex-and-related): New
function, revived from a previous commit.
(org-set-regexps-and-options, org-set-font-lock-defaults): Use new
functions.
* org-src.el (org-src-mode-map, org-edit-src-code)
(org-edit-fixed-width-region, org-edit-src-save): Use C-c C-k
for `org-edit-src-abort'.
Thanks to Bernt Hansen for the suggestion.
* lisp/ox.el (org-export-install-filters): Properly install filters
send through ext-plist mechanism.
* lisp/ox-publish.el (org-publish-org-to): Small refactoring.
* lisp/ox-html.el (org-html-keyword): Remove INDEX keyword handling.
ox-publish.el takes care of it already.
* org-table.el (org-table-align): Only set the window start
when table alignment is performed in the selected window.
Thanks to Michael Brand for reporting this.
When opening an .org file from another .org file, org-mode
is initialized in the second one while the window is not yet
selected. So, functions run during org-mode's initialization
need to check if the org-mode window is the selected one before
manipulating the "current window".
* org-src.el (org-edit-src-auto-save-idle-delay): New option.
(org-src-ask-before-returning-to-edit-buffer): Make a defcustom.
(org-edit-src-code-timer): New timer variable.
(org-edit-src-code): Run the timer.
(org-edit-fixed-width-region): Enhance message.
(org-edit-src-exit): Cancel the timer.
Thanks to Andreas Leha for suggesting this.
* lisp/org.el (org-org-menu): Use correct key "C-u C-c C-x !" to do
org-reload uncompiled in the menu.
The key binding has been changed in 8619361669 due to a conflict with
agenda mode, but the menu entry had never been corrected.
* org-src.el (org-edit-src-save): Prevent saving when editing
fixed-width buffer, exiting will save already.
(org-edit-src-exit): Inconditionally kill the src/example
editing buffer.
* org-pcomplete.el (pcomplete/org-mode/file-option): Require
'org-element. This fixes a bug about unbound variable
`org-element-affiliated-keywords' when trying to complete a
keyword before 'org-element was required.
* org-src.el (org-src-mode-map): New binding C-c k to abort
editing.
(org-edit-src-code): Mention the keybinding to abort editing
and go back to the correct position.
(org-edit-src-abort): New command to abort editing.
Thanks to Zech for suggesting this.
* lisp/ox.el (org-export-resolve-fuzzy-link): Whitespaces are not
significant when matching a fuzzy link.
* lisp/org-element.el (org-element-link-parser): Do not remove
newlines characters in paths anymore, since this is not required.
* testing/lisp/test-org-element.el: Update tests.
* testing/lisp/test-ox.el: Add test.
* lisp/ox.el (org-export--dispatch-ui): Renamed from
`org-export-dispatch-ui'. Handle scrolling.
(org-export--dispatch-action): Renamed from
`org-export-dispatch-action'. Implement scrolling.
(org-export-dispatch): Apply renaming.
Heavily based on a patch from Jambunathan K.