* lisp/org-table.el (org-table-get-remote-range): Extend regexp to
match "#+NAME: table" additionally to "#+TBLNAME: table".
* testing/lisp/test-org-table.el: Add test.
* testing/org-test.el (org-test-table-target-expect): Allow several
tables to support testing remote references in the last table.
* lisp/ob-core.el (org-babel-inline-result-wrap): Defcustom controlling
the wrapping of inline results.
(org-babel-examplize-region): Use new defcustom controlling the
wrapping of inline results.
* lisp/ox.el (org-export-expand): Optionally add affiliated keywords
to results.
* lisp/ox-org.el (org-org-identity): Use new argument for
`org-export-expand'.
* lisp/org.el (org-fill-paragraph): Move to table beginning before
aligning the table when M-q is called from an affiliated keyword.
* testing/lisp/test-org.el: Add test.
* lisp/org-element.el (org-element-fixed-width-interpreter): Fix
interpretation of fixed-width elements with a nil or empty string
value.
* testing/lisp/test-org-element.el: Add tests.
* org.el (org-insert-heading): Fix case when there the first
heading starts at the beginning of the buffer.
In this case, `org-backward-heading-same-level' will throw an error in
the let form, and the error would fall back on "*" instead of falling
back on the correct number of stars to add.
Thanks to Jisang Yoo and John Hendy who reported this bug.
* org-agenda.el (org-agenda-write):
* ob-core.el (org-babel-expand-src-block): Use
`org-called-interactively-p'.
Thanks to Jason L Wright for reporting this.
* org.el (org-agenda-prepare-buffers): Add tags defined in
org-tag-persistent-alist to org-tag-alist-for-agenda.
This makes tag hotkeys defined in `org-tag-persistent-alist' appear when
the user invokes `org-agenda-filter-by-tag-refine'.
TINYCHANGE
* org.el (org-read-date-minibuffer-local-map): Check if we are
at the beginning of the prompt, not if we are after a whitespace.
Bind C-. to `calendar-goto-today'.
* org-clock.el (org-clock-in): Don't forward by one character
when setting the marker in the clock history.
This was done to prevent the marker from being broken when a user
manually insert some text right one it. I cannot reproduce this
manual marker modification problem, so let's remove this ugly
exception, as it is not consistent with other clock markers.
Thanks to Bernt Hansen for pointing this out.
* org.el (org-read-date-minibuffer-local-map): Call
`calendar-goto-today' only if there is a space before point in
the minibuffer prompt.
Thanks to Michael Brand and others who asked for this regression to be fixed.
* org.el (org-insert-heading): Reveal context when called
interactively. Fix bug about wrong conversion of lines with
:END: or #+end_ into headlines.
(org-in-drawer-p): New function.
(org-meta-return): Use `org-catch-invisible-edits' and the
`org-in-drawer-p' to check whether we are within a drawer.
Thanks to Muchenxuan Tong and John Hendy who reported these errors.
* lisp/ox-texinfo.el (org-texinfo-coding-system): Clarify default
setting.
(org-texinfo-template): Ensure buffer-file-coding-system is used
when org-texinfo-coding-system is not set.
* lisp/org.el (org-insert-heading): Check for checkbox at the
beginning of the item, not just at the beginning of the line.
Without this fix, M-RET in numbered lists would create a checkboxed
item because it was using match data from a previous match. Now we
make sure we go back to the beginning of the item, so that the match
really tells us if there was a checkbox there.
* lisp/ob-core.el (org-babel-execute-src-block): Return nil in case of
`:results none'. Also run `org-babel-after-execute-hook' in this
circumstance.
Previously, the code returned the string "results silenced" in the case
of =:results none=, as this is the return value of the call to
`message'; additionally, the after-execute hook was not being run.
* lisp/org-id.el (org-id-locations-save): Bind print-(level,length) to
nil in this function.
Having these variables set to non-nil values results in an unreadable
result being written to `org-id-locations-file'.
* lisp/ob-R.el (org-babel-R-graphics-devices): New defvar.
(org-babel-R-construct-graphics-device-call): Use it instead of a
hard-coded list of graphics devices.
The `org-babel-R-graphics-devices' variable now holds the association
between graphics file types and R functions. This allows users by
modifying this alist to choose to use e.g. the Cairo* functions from the
R package “Cairo” or one of several alternative devices for SVG
output (SVGAnnotation, RSVGTipsDevice).
* lisp/ox.el (org-export--skip-p, org-export--interpret-p): When
`org-export-with-footnotes' is nil, ignore completely footnotes
references and definitions instead of exporting them verbatim.
* testing/lisp/test-ox.el: Add tests.
* org.el (org-clone-subtree-with-time-shift): Unconditionally
ask for a time shift if there is a time-stamp. Don't ask for
a time shift when called with a universal prefix argument.
Thanks to Ingmar Meissner for raising this issue again.
* lisp/ox-beamer.el (org-beamer--frame-level): Small refactoring.
(org-beamer--format-block, org-beamer-headline): Do not systematically
downcase environment names as some require upper case in their
names (e.g. noteNH and CJK).
Thanks to James Harkins for reporting the bug.
* ob-core.el (org-babel-insert-result): Fix bug when inserting
results as a list: ensure we split a string containing "\n".
Thanks to Sébastien Vauban for reporting this.
* org.el (org-store-link): Don't add a search string when
storing a link from a radio target.
(org-open-at-point): Jump to the radio link (<<<radio>>>), not
to the simple target (<<target>>).
* lisp/ox.el (org-export-with-timestamps): Only applies to isolated
timestamps, i.e. timestamps in a paragraph containing only
timestamps and empty strings.
(org-export--skip-p): Skip timestamps according to new behaviour.
* testing/lisp/test-ox.el: Update tests.
* lisp/ob-core.el (org-babel-when-in-src-block): New macro.
(org-babel-execute-src-block-maybe)
(org-babel-expand-src-block-maybe)
(org-babel-load-in-session-maybe, org-babel-pop-to-session-maybe):
Use it.
org-babel-get-src-block-info is a potentially expensive operation, which
is why its ‘light’ argument exists. But in any case, it is overkill to
query the whole info, if all that is needed is whether point is in a
block or not. Factor the simplified common code out into a macro.
* org-datetree.el (org-datetree-find-month-create)
(org-datetree-find-day-create): Add a docstring.
(org-datetree-find-year-create): Only match headlines with a
year or a year and one or more tags.
Thanks to Suvayu Ali for reporting this.
* lisp/ob-core.el (org-babel-execute-src-block): Use `copy-tree'
to prevent setf from modifying users variables withing let-bound
`info' variable.
Otherwise, the setf calls in this function can reach into and change
other configuration variables, such as the library of babel.
* lisp/ob-exp.el (org-export-babel-evaluate): Add a 'inline-only option.
(org-babel-exp-results): Implement 'inline-only for
`org-export-babel-evaluate'.
* doc/org.texi (Exporting code blocks): Document the 'inline-only setting
for `org-export-babel-evaluate'.
This is useful because there is no way for inline results to be stored.
The imagined usecase is that all non-inline source blocks will be
evaluated manually by the user. Inline blocks, however, must be
evaluated during export, or they will be simply deleted by the exporter.
* ox.el (org-export-stack-mode)
* org-crypt.el (org-crypt-check-auto-save)
(org-crypt-use-before-save-magic): Use `org-add-hook' when the
hooks are local hooks.
* org-indent.el (org-indent-mode)
* org-agenda.el (org-agenda-mode): Use `org-add-hook' and
merge upstream change from Emacs revno r112320.
* lisp/ob-perl.el (org-babel-perl-wrapper-method): Select output
handle only after evaluation so that output is not mixed into
results eavaluation.
(org-babel-perl-evaluate): Fix the handling of results for ":results
output" to also parse tables. Use the same lambda construction as
in ob-sh.el to avoid code duplication.
* lisp/ox-latex.el (org-latex--script-size): Use \text command for
subscript and superscript. This is far superior to \mathrm, but it
requires "amstext" package. In particular, accented characters are
now allowed within sub/superscript.
* lisp/org.el (org-latex-default-packages-alist): Add "amstext"
package.
* org-agenda.el (org-agenda-drag-line-forward)
(org-agenda-drag-line-backward): New commands.
(org-agenda-mode-map): Bind the new commands to M-<down> and
M-<up> respectively.
* org.texi (Agenda commands): Add a table heading for dragging
agenda lines forward/backward.
* org-agenda.el (org-agenda-bulk-toggle): Fix docstring.
(org-agenda-bulk-toggle-all): New command.
(org-agenda-mode-map): Bind `org-agenda-bulk-toggle' to `M-m'
and `org-agenda-bulk-toggle-all' to `M-*'.
(org-agenda-menu): Add `org-agenda-bulk-toggle' and
`org-agenda-bulk-toggle-all'.
(org-agenda-bulk-mark, org-agenda-bulk-unmark): Jump to the
next headline, not the next line.
* org-capture.el (org-mks): Fix bug: let-bind
`case-fold-search' to nil while matching the first letter of a
multi-letters template.
Thanks to Robert Goldman for reporting this bug and providing the fix.
* lisp/ox-latex.el: Remove instructions since everything is documented
in Org manual.
* lisp/ox.el (org-export-with-smart-quotes): Use LATEX instead of
LaTeX for keywords, the latter being hard to type, somewhat
difficult to read, and overall just pedantic.
* ox-latex.el (latex): Don't force exporting with smart
quotes.
* ox.el (org-export-with-smart-quotes): Mention the need to
use the relevant Babel package when setting this option to
non-nil.
Before the fix, if the user used #+LANGUAGE: fr with no other
customization, the quotes would disappear from the PDF output.
That's because smart quotes were enforced, while the .tex file
needs \usepackage[french]{babel} to display the quotes.
We now don't force the smart quotes and give more explanations
in `org-export-with-smart-quotes'.
* org-src.el (org-edit-src-turn-on-auto-save): New option.
(org-edit-src-code): Use it.
(org-edit-src-auto-save-idle-delay): Enhance docstring.
* doc/org.texi (Editing source code): Document
`org-edit-src-auto-save-idle-delay' and
`org-edit-src-turn-on-auto-save'.
Thanks to Charles C. Berry for bringing this up again.
* doc/org.texi (Header and sectioning): Add a footnote about the
different between LATEX_HEADER_EXTRA and LATEX_HEADER.
* lisp/ox-latex.el (org-latex-classes): Be more explicit about
LATEX_HEADER_EXTRA.
* lisp/ox-html.el (org-html-headline): Use (new) org-html--container
function to set container element.
(org-html--container): Returns appropriate element for headline
container:
1. The element set on the headline :HTML_CONTAINER property.
2. the :html-container element (if the relative headline level
is 1.)
3. The default ("div").
* org.el (org-shifttab): Show the correct number of empty
headlines when called with a numeric prefix argument. Enhance
docstring.
Thanks to Michael Crouch for reporting this bug and providing the fix.
* lisp/ox.el (org-export-filters-alist): Remove macro filter.
(org-export-filter-macro-functions): Remove variable.
Macro filters are never called since macro expansion happens before
the export process.
* org.el (org-adaptive-fill-function, org-fill-paragraph):
Throw a useful error message when parse an element fails in
the current buffer.
This can happen for example in a `message-mode' buffer when using
orgstruct-mode. If you insert a line like:
SCHEDULED: <2013-04-13 Sat> is blablabla
then org-element-at-point will fail and the user will get an error
he cannot understand.
* lisp/ox-beamer.el (beamer): Install a default class set-up when
loading library.
This change should provide a meaninfgul export even if user forgot to
set-up `org-latex-classes'.
* org-clock.el (org-clock-select-task): Remove successive
duplicates in the clock history to consider.
Thanks to Sébastien Vauban for pointing at this.
* lisp/ob-exp.el (org-babel-exp-results): Suppress user confirmation
of the emacs-lisp wrapper execution around a lob call.
* lisp/ob-lob.el (org-babel-lob-execute): Suppress user confirmation
of the emacs-lisp wrapper execution around a lob call.
* lisp/org.el (org-read-date-get-relative): Handle positive and
negative weekday specifications so that they don't return today.
If today is Friday, "fri" should mean next Friday. This changes
the previous behavior, which required you to specify "+2fri" in
order to mean next Friday if today was Friday. If you want to
schedule something for today, you can use ".".
* doc/org.texi (The date/time prompt): Update the documentation
to reflect the new way `org-read-date-get-relative' handles
weekdays.
TINYCHANGE
* org.el (org-make-tags-matcher, org-change-tag-in-region):
Add buffer's tags to the tags completion table.
(org-tags-expand): Prevent circular replacement of group tags.
Tiny docstring formatting.
(org-uniquify): Make a defsubst. Use `delete-dups' instead of
`add-to-list'.
Thanks to Christian Moe for reporting the bug about group tags.
* org.el (org-forward-heading-same-level): Fix bug when
forwarding to a hidden subtree of the same level.
Thanks to Bernt Hansen for reporting this bug.
* org-clock.el (org-clock-insert-selection-line): Don't
display the clockout time.
This partially reverts commit ff4b7a47, which introduced this, but
Bernt Hansen confirmed this was not practical in some circumstances.
* org.el (org-emphasis-regexp-components): Make a defvar.
This used to be a defcustom (Org <8.0) but allowing the users to
set this option proved cumbersome. See this message/thread:
http://article.gmane.org/gmane.emacs.orgmode/68681
* org-mobile.el (org-mobile-edit): Insert new headings at the
end of the parent subtree. Use `org-at-heading-p' instead of
the obsolete `org-on-heading-p'.
Thanks to James Harkins for reporting this.
* org.el (org-insert-heading-respect-content): Fix docstring.
(org-insert-heading): When in a non-empty non-headline line,
convert the current line into a headline.
Thanks to Bernt Hansen for reporting this issue.
* org-table.el (org-table-copy-down): Don't move cursor when
getting the field.
This prevents the point from moving when inadvertently calling
S-RET outside of a table.
* lisp/ox-latex.el (org-latex--inline-image): Remove specific default
image width for floats. If no width nor height is provided, it
should default to `org-latex-image-default-width' value.
* lisp/ox-html.el (html): Rename :html-table-tag property
into :org-table-attributes.
(org-html-table-default-attributes): New variable.
(org-html-table-tag): Removed variable.
(org-html--make-attribute-string): New function.
(org-html-link--inline-image, org-html-table): Use new function.
* doc/org.texi: Document variable changes.
It is now possible to write properties and values in attributes lines
without falling back on `:options':
#+attr_html: :border 1
| a |
* ox.el (org-export-options-alist, org-export--skip-p): Use
`:with-planning' instead of `:with-plannings', to keep in sync
with the corresponding option's name.
* lisp/ox-html.el (org-html-metadata-timestamp-format): New variable,
renamed from `org-html--timestamp-format'.
(org-html--build-meta-info, org-html-format-spec,
org-html--build-pre/postamble): Use new variable.
* org-clock.el (org-clock-select-task): Fix window to buffer.
Hide the cursor.
(org-clock-insert-selection-line): Add the clock-out time.
Thanks to Bernt Hansen for reporting the issue about the window.
(org-table-make-reference): A range with only empty fields should lead
to length 0.
* testing/lisp/test-org-table.el: Adapt expected for several
ert-deftest.
The range len bugs may lead to wrong calculations for range references
with empty fields when the range len is relevant. Affects typically
Calc vmean on simple range and without format specifier EN. Also
Lisp with e. g. `length' on simple range or with L.
It is worth a small compatibility change: For a range with only empty
fields it is now possible and necessary to choose different behaviors
of vmean by adding the format specifiers E and/or N.
This is a follow-up of commit
764315b3fc.
* ox-html.el (org-html-table-row-tags): Allow new dynamically
bound value `row-number'.
(org-html-table-row): Bind `row-number' to the number of the
row (first row is 0).
* org.el (org-minutes-to-clocksum-string): Round fractions of
minutes.
When adding efforts values in the column view, "0:20" will first be
converted as 0.333333333 hour. When converting the final sum, we
now round the final sum of minutes (e.g. 99.999999999) to get the
correct hour displa (i.e. 1:40 instead of 1:39).
* org-agenda.el (org-agenda-span-to-ndays): Enhance docstring.
(org-agenda-goto-date): Fix bug when going to a date in month
view.
Thanks to Eric S Fraga for reporting this bug.
* ox-html.el (org-html-table-row): Dynamically bind
`rowgroup-number', `start-rowgroup-p', `end-rowgroup-p',
`top-row-p', `bottom-row-p'.
(org-html-table-row-tags): Update docstring: tell what
variables are dynamically bound.
Thanks to Stefan Vollmar for raising this problem.
* org-src.el (org-edit-src-code): Don't set
`buffer-auto-save-file-name' unless `auto-save-default' is
non-nil.
Thanks to Charles Berry for reporting this.
Because in actuality the call line expands to an Emacs Lisp code
block.
* lisp/ob-lob.el (org-babel-lob-execute): Include default elisp header
args in call lines.
* lisp/ox-html.el (org-html-postamble-format,
org-html-preamble-format): Allow last modification time of source in
template.
(org-html-format-spec): Produce last modification time when the source
is a file.
* ox.el (org-export-replace-region-by): New function.
* ox-texinfo.el (org-texinfo-convert-region-to-texinfo):
* ox-md.el (org-md-convert-region-to-md):
* ox-latex.el (org-latex-convert-region-to-latex):
* ox-html.el (org-html-convert-region-to-html): New functions
to replace the active region by its export into various
backends.
* org-table.el (org-calc-current-TBLFM): Ensure to remove the
currently inserted TBLFM line, when calling `org-table-recalculate'
returns an error and the processing stops.
* testing/lisp/test-org-table.el: Add test.
When you hit =C-c C-c= at the line of "#+TBLFM: $2=$1*2::$2=$1**2" in
| 1 | |
| 2 | |
#+TBLFM: $2=$1*1
#+TBLFM: $2=$1*2::$2=$1**2
you got:
| 1 | |
| 2 | |
#+TBLFM: $2=$1*2::$2=$1**2
#+TBLFM: $2=$1*1
#+TBLFM: $2=$1*2::$2=$1**2
with the error message of:
user-error: Double definition `$2=' in TBLFM line, please fix by hand
In this case, you expected:
| 1 | |
| 2 | |
#+TBLFM: $2=$1*1
#+TBLFM: $2=$1*2::$2=$1**2
* lisp/ox-publish.el (org-publish-find-date): Fix "bad timestamp"
error with some DATE values: :date property in communication channel
is no longer a string.
* lisp/ox.el (org-export-insert-default-template): New function.
(org-export--dispatch-ui, org-export--dispatch-action): Access to the
function through the dispatcher.
From the dispatcher, if subtree export is selected, options will be
installed as node properties in current subtree.
* lisp/ox-icalendar.el (org-icalendar-convert-timestamp): Update
docstring.
(org-icalendar-dtstamp): New function.
(org-icalendar--vevent, org-icalendar--vtodo): Use new function.
* org-agenda.el (org-agenda-top-headline-filter): Rename from
`org-agenda-top-headline-filter'.
(org-find-top-headline): Rename from `org-find-top-category'.
Add a docstring.
(org-agenda-filtered-by-top-headline): Rename from
`org-agenda-filtered-by-top-category'.
(org-agenda-filter-by-top-headline): Rename from
`org-agenda-filter-by-top-category'. Fix docstring.
(org-agenda-filter-top-headline-apply): Rename from
`org-agenda-filter-top-category-apply'. Fix docstring.
(org-agenda-mode-map): Update binding.
Using category here was confusing, because there is no Org
category involved, the filtering is really against a headline.
Since category filtering also exists, the confusion was bad.