* lisp/ox.el (org-export--get-buffer-attributes):
Resurrect :input-buffer property.
This property was removed in 604b9389. since it wasn't necessary
anymore internally. It is back again as a consequence of a user
request.
http://permalink.gmane.org/gmane.emacs.orgmode/91230
* lisp/ox-latex.el (org-latex--wrap-label): Add \phantomsection.
Without this, links will jump to the nearest sectioning command
instead of to the exact spot of definition.
* lisp/org-faces.el (org-copy-face): Remove function.
(org-checkbox-statistics-todo, org-checkbox-statistics-done)
(org-block-begin-line, org-block-end-line, org-quote)
(org-verse, org-agenda-date, org-agenda-date-today)
(org-agenda-clocking, org-agenda-date-weekend)
(org-agenda-current-time, org-mode-line-clock)
(org-mode-line-clock-overrun): Convert to `defface' from
`org-copy-face'.
The ‘org-copy-face’ function didn’t properly deal with face
customizations and color themes.
* lisp/ox-latex.el (org-latex-src-block): Support :float nil with
caption for minted.
(org-latex-listings): Edit docstring to describe this usecase.
* lisp/org.el (org-latex-default-packages-alist): Add “capt-of”
package.
This takes advantage of the capt-of package’s \captionof command,
which allows to insert a caption (with autogenerated number and
\ref-able label) without creating a floating environment. One example
of where this is useful is in the case of a minted source code listing
that spans more than one page. (Latex floats can’t be larger than a
page, generally speaking.)
The listings package already handles this case using its own mechanism.
* lisp/ob-ruby.el (org-babel-ruby-evaluate): Clean up the session code
and remove a superfluous `butlast'. Work around a problem in comint
where the first prompt in a session may be printed after the
evaluation has already started, thus producing a spurious line in
the output.
* testing/lisp/test-ob-ruby.el (test-ob-ruby/session-output-1,
test-ob-ruby/session-output-2 test-ob-ruby/session-output-3): Test
correct transfer of interpreter state across several session
invocations.
* lisp/ob-ruby.el (org-babel-ruby-evaluate): Temporarily disable the
irb prompt to ensure that the output is properly recognized using
the standard settings from inf-ruby and no extra settings in .irbrc
or other configuration files from Ruby. Remove superfluous
`comint-send-input' that produced a spurious empty line in output.
* testing/lisp/test-ob-ruby.el (test-ob-ruby/session-output): Remove
spurious emtpy line in expected output.
* lisp/ob-sql.el (dbstring-mysql): Rename function and tweak a bit its
implementation
(org-babel-execute:sql): Use new function name
Prefix `dbstring-mysql' function with the namespace "org-babel-sql" to
avoid name collisions.
Also replace the call to `remq' by `delq' because it is a bit more
efficient, and also to be consistent with
`org-babel-sql-dbstring-postgresql'.
* lisp/ob-sql.el (org-babel-sql-dbstring-postgresql): New function
(org-babel-execute:sql): Use new function.
Before this patch, it was necessary to use :cmdline parameter to
specify host, user and database different the the default ones. Now,
this can be done using parameters that are independents of the engine
used.
This is not trivial (and not recommended) to pass password as a
command line argument to psql, so :dbpassword is not supported.
* lisp/org-agenda.el (org-agenda-bulk-mark,
org-agenda-bulk-mark-regexp, org-agenda-bulk-toggle-all): This fixes
e.g. org-agenda-bulk-mark-all when time-grid is shown.
TINYCHANGE
* lisp/ox-ascii.el (org-ascii-list-margin): New variable.
(ascii): New property.
(org-ascii--current-text-width, org-ascii-plain-list): Take into
account list margin.
* doc/org.texi (Publishing options):
* etc/ORG-NEWS (argument): Document new variable.
* lisp/org.el (org-N-empty-lines-before-current): Make sure to delete
only empty lines, not trailing whitespaces.
* testing/lisp/test-org.el (test-org/insert-heading): Add test.
Thanks to Oleh for reporting it.
http://permalink.gmane.org/gmane.emacs.orgmode/90876
* lisp/ob-sh.el (org-babel-sh-initiate-session): After initiating a
session, initialize the marker `comint-last-output-start' since it
is going to be used by the ANSI color filter without further checks
in Emacs 23 and throws an error.
* lisp/ob-shell.el (org-babel-sh-initiate-session): After initiating a
session, initialize the marker `comint-last-output-start' since it
is going to be used by the ANSI color filter without further checks
in Emacs 23 and throws an error.
* lisp/ox-html.el (org-html-headline): Make sure even listified
headlines have proper anchors so internal links can refer to them.
Small refactoring.
Thanks to Bruce Gilstrap for reporting it.
http://permalink.gmane.org/gmane.emacs.orgmode/90835
* lisp/org.el (org-hide-block-toggle-maybe): Do not return a non-nil
value when toggling failed.
(org-hide-block-toggle): Update docstring.
* testing/lisp/test-org.el (test-org/hide-block-toggle-maybe): New
test.
* lisp/ob-gnuplot.el (org-babel-gnuplot-table-to-data): Dynamically
bind `org-babel-gnuplot-timestamp-fmt' instead of making it
buffer-local, since export takes place in another buffer anyway.
Thanks to Thomas Holst for reporting it.
http://permalink.gmane.org/gmane.emacs.orgmode/90709
* lisp/org-src.el (org-edit-src-code): Fix regexp.
(org-edit-src-exit): Do not remove auto-save timer. This is
handled by the timer itself.
`org-edit-src-save' calls `org-edit-src-exit', which then clears the
auto-save timer, thus preventing any further auto-saves before the
next `org-edit-src-code' call.
Thanks to Adriaan Sticker for reporting it.
http://permalink.gmane.org/gmane.emacs.orgmode/90650
* lisp/ob-eval.el (org-babel-eval): Switch to compilation mode only if
the current mode is not already (a derived mode of)
compilation-mode. Remove the read-only state from the buffer
directly without using `read-only-mode'.
* lisp/org-element.el (org-element--cache-for-removal): Do not
consider property drawers as robusts: if contents are modified,
remove the whole drawer from cache.
* lisp/ob-comint.el (org-babel-comint-eval-invisibly-and-wait-for-file):
Fix bug.
The intention is to test whether the string ends with a newline, so we
should just do that. Otherwise:
(string-match "\n$" "foo\n\nbar") ;; => 3 => :-(
* lisp/org-element.el (org-element--current-element): Only look after
planning lines right after parsing a section.
(org-element--next-mode): New function.
(org-element--parse-elements, org-element--parse-to): Use new
function.
* lisp/org.el (org-planning-line-re): New variable. Renamed from
`org-planning-or-clock-line-re'.
* lisp/org-element.el (org-element-paragraph-separate,
org-element-headline-parser, org-element-inlinetask-parser, ,
org-element--current-element): Use new variable.
(org-element-planning-parser): Check previous line before parsing
planning info. When right after a headline, fallback to paragraph
parsing.
* testing/lisp/test-org-element.el (test-org-element/planning-parser):
Add a test. Update others.
(test-org-element/timestamp): Remove a test.
* testing/lisp/test-ox.el (test-org-export/handle-options): Update
test.
* lisp/org-element.el (org-element-property-drawer-parser,
org-element-node-property-parser): Ignore lines that are not node
properties.
(org-element-node-property-interpreter): Allow nil properties.
* lisp/org.el (org-re-property): Fix regexp to match properties with
empty values.
* testing/lisp/test-org-element.el (test-org-element/node-property):
Add tests.
Thanks to Eike for reporting it.
http://permalink.gmane.org/gmane.emacs.orgmode/90293
* org-table.el (orgtbl-ascii-plot): Top-level function.
(orgtbl-ascii-draw), (orgtbl-uc-draw-grid), (orgtbl-uc-draw-cont):
Functions which go in table formulas for drawing bars.
* org.el: key binding and menu binding
Thanks to Michael Brand and Nicolas Goaziou for feedback and
enhancements.
* lisp/org-element.el (org-element-headline-interpreter): Take into
consideration `org-odd-levels-only' value. Small refactoring.
* testing/lisp/test-org-element.el (test-org-element/headline-interpreter):
Add test.
* lisp/ox-texinfo.el (org-texinfo--get-node): Return a node or anchor
name.
(org-texinfo--sanitize-content): Fix regexp.
(org-texinfo-link): Fix various bugs in link export.
* contrib/lisp/ox-groff.el (org-groff-link):
* lisp/ox-beamer.el (org-beamer-link):
* lisp/ox-html.el (org-html-link):
* lisp/ox-latex.el (org-latex-link):
* lisp/ox-odt.el (org-odt-link): When radio link has no valid
target (e.g., this is a subtree export and the radio target is not
in the exported subtree), simply return contents.
Thanks to Daniel Clement for reporting it.
http://permalink.gmane.org/gmane.emacs.orgmode/90218
* lisp/org-clock.el (org-find-open-clocks):
* lisp/org.el (org-clone-subtree-with-time-shift,
org-insert-property-drawer, org-at-clock-log-p): Use
`org-clock-string' whenever possible instead of hardcoded "CLOCK".
(org-clock-line-re): New variable.
* lisp/org-element.el (org-element-headline-parser,
org-element-inlinetask-parser, org-element-item-parser,
org-element-section-parser, org-element-clock-parser,
org-element-node-property-parser, org-element-planning-parser,
org-element-table-row-parser): Add dummy :post-affiliated property.
* lisp/org.el (org--get-expected-indentation, org-indent-line,
org-indent-region, org-adaptive-fill-function,
org-toggle-fixed-width, org-forward-paragraph,
org-backward-paragraph, org-mode-flyspell-verify): Remove nullity
checks for :post-affiliated.
Even though these elements cannot have affiliated keywords, beginning
of element is a logical default value. It makes checking the nullity
of the unnecessary.
* lisp/ox.el (org-export-table-row-in-header-p): New function.
(org-export-table-row-starts-header-p,
org-export-table-row-ends-header-p): Use new function.
* testing/lisp/test-ox.el (test-org-export/table-row-in-header-p): New
test.
* lisp/ox.el (org-export-first-sibling-p, org-export-first-sibling-p):
Extend to all elements and objects.
* testing/lisp/test-ox.el (test-org-export/first-sibling-p,
test-org-export/last-sibling-p): Add tests.
* etc/ORG-NEWS: Document change.
* lisp/ox-html.el (org-html-paragraph): Do not wrap first paragraph in
an item within <p> tags in the most simple cases.
Thanks to Daniel Clemente for suggesting it.
http://permalink.gmane.org/gmane.emacs.orgmode/89413
* lisp/ox-icalendar.el (org-icalendar-create-uid): Remove unused
optional argument.
(org-icalendar--combine-files): Change signature. Simplify process.
(org-icalendar-combine-agenda-files): Apply signature change. Do not
check anymore ICALENDAR-MARK property.
(org-icalendar-entry): Do not check anymore ICALENDAR-MARK property.
(org-icalendar-export-to-ics): Comply to comments.
(org-icalendar-export-current-agenda): Rewrite function.
* lisp/org-agenda.el (org-agenda-write): Update docstring.
Instead of parsing every agenda before picking up needed entries, copy
these entries in a temporary buffer, then export it.
* lisp/org-agenda.el (org-agenda-write): Write headings in proper
order.
`org-paste-subtree' leaves point before inserted text, so there is no
need to reverse contents.
http://permalink.gmane.org/gmane.emacs.orgmode/89867
* lisp/ob-exp.el (org-babel-exp-inline-code-template): New
customizable variable to export inline source code (similar to
`org-babel-exp-code-template').
(org-babel-exp-code): New `type' argument to differentiate between
inline and standard code blocks.
* lisp/ob-core.el (org-babel-inline-src-block-regexp): Allow empty set
of switches and header arguments as in "src_sh[]{echo foo;}". Also
permit spaces before them.
* testint/lisp/test-org-element.el
(test-org-element/inline-src-block-parser): Test extended syntax for
inline source code.
* testing/lisp/test-ob-exp.el (ob-exp/exports-inline-code): New
function for testing inline source code handling. Also add three new
failing tests exhibiting unexpected results with ":results code"
switches.
* testing/lisp/test-ob.el
(test-org-babel/org-babel-get-inline-src-block-matches): Test for
inline source blocks with empty header arguments.
* testing/examples/babel.org: New sections for testing (i) exported
inline source code (used by `ob-exp/exports-inline-code'); (ii)
parsing inline source blocks with empty header arguments (used by
`test-org-babel/org-babel-get-inline-src-block-matches').
Until now pieces of inline source code were handled as standard code
blocks during export. These changes enable them to be exported.
* lisp/ox-md.el (org-md-link): Allow custom link type export function.
`md' back-end is now on par with other core export back-ends.
Thanks to Ken Markoff for reponting it.
http://permalink.gmane.org/gmane.emacs.orgmode/90011
This reverts commit 79873390ed.
The fix was wrong and gave rise to a different problem - see
http://thread.gmane.org/gmane.emacs.orgmode/89945
Revert it for now, since there is a workaround for the original
problem and plan on a correct fix in the near future.
* lisp/ob-lilypond.el (org-babel-lilypond-OSX-ly-path,
org-babel-lilypond-OSX-pdf-path, org-babel-lilypond-OSX-midi-path,
org-babel-lilypond-nix-ly-path, org-babel-lilypond-nix-pdf-path,
org-babel-lilypond-nix-midi-path, org-babel-lilypond-w32-ly-path,
org-babel-lilypond-w32-pdf-path, org-babel-lilypond-w32-midi-path,
org-babel-lilypond-determine-ly-path,
org-babel-lilypond-determine-pdf-path,
org-babel-lilypond-determine-midi-path): Remove.
(org-babel-lilypond-ly-command, org-babel-lilypond-midi-command,
org-babel-lilypond-pdf-command): Replacement for removed variables
and functions. Adapt all calls to the removed functions to use
these variables instead.
(org-babel-lilypond-commands): New defcustom for setting up
the *-command variables. Keep different defaults for different
systems as the original code did to avoid tripping up unsuspecting
users.
(org-babel-lilypond-execute-tangled-ly,
org-babel-lilypond-check-for-compile-error): Revert conditions to
avoid superfluous forms. Remove unused return values.
* testing/lisp/test-ob-lilypond.el: Do test for new variables and
replace removed function calls with the appropriate variable
content. Exercise the new defcustom thoroughly.
* lisp/ox-md.el (org-md-separate-elements): Outside of lists, preserve
blank lines between paragraphs and plain lists.
For example
Consider this list:
- three
- four
should become
# Another test<a id="sec-2"></a>
Consider this list:
- three
- four
Thanks to Rafael for reporting it.
http://permalink.gmane.org/gmane.emacs.orgmode/89840
* lisp/ob-latex.el (convert-pdf): Rename function to have
org-babel-latex- prefix.
(org-babel-execute:latex): Use renamed function. Include :headers
when generating SVG/HTML also.
* lisp/org-element.el (org-element-normalize-contents): Fix
indentation removal when there is an empty line within a verse block.
* testing/lisp/test-org-element.el (test-org-element/normalize-contents):
Add test.
* lisp/ox-texinfo.el (org-texinfo--normalize-headlines): Do not set
pre blanks since the value is now hard-coded.
(org-texinfo-headline): Force one blank line before contents, when non
empty. Refactoring.
(org-texinfo-src-block): Refactor code. Comply to predicate naming.
* lisp/ox-texinfo.el (org-texinfo-headline): Remove `not-in-toc'
special case for tags.
Check is useless for 2 reasons :
1. there is no way to control @contents in the file header so
sectioning name,
2. menu entries provide their own title. If it has to be handled,
that should be elsewhere anyway.
* lisp/ox-texinfo.el (org-texinfo-info-process): Fix docstring.
(org-texinfo-compile): Do not check for impossible cases (e.g., if the
previous variable contains a function).
* lisp/ox-texinfo.el (org-texinfo--sanitize-node): "@", "{" and "}"
characters are allowed in a node name. So are "(" and ")" unless
"(" starts the name and there is ")" somewhere in the name. Also
trim and collapse whitespace characters. Renamed from
`org-texinfo--sanitize-menu'.
(org-texinfo--get-node): Do not sanitize node names over zealously.
Ensure returned node names are unique.
(org-texinfo-headline): Only add @node command where it makes sense.
* lisp/ox-texinfo.el (org-texinfo-make-menu): Change signature.
Remove some intermediate functions. Generate the full master menu
when asked.
(org-texinfo--build-menu): Use a simpler algorithm.
(org-texinfo--format-entries): Fix entries when both node and title
are different.
(org-texinfo--menu-entries): Renamed from `org-texinfo--generate-menu-list'.
(org-texinfo-headline): Move menu handling to next function.
(org-texinfo-section): Handle menu for current parent.
(org-texinfo--menu-headlines, org-texinfo--generate-detailed): Remove
functions.
(org-texinfo--normalize-headlines): New function.
* lisp/ox-texinfo.el (org-texinfo-headline): Do not sanitize heading
text for sectioning command.
For example
* This is ~code~
should be possibly exported as
@chapter This is @code{code}
not
@chapter This is @@code@{code@}
Currently only session code block evaluation is supported, however
this is a reasonable default for forth.
* lisp/org.el (org-babel-load-languages): Add "Forth" to the list of
loadable languages.
* list/ob-forth.el: New file.
* lisp/org.el (org-cdlatex-environment-indent): New function.
New function is bound to "\C-c{" in `org-cdlatex-mode-map' to add
a LaTeX environment and indent it.
TINYCHANGE
* lisp/ox-org.el (org-org-keyword): Do not check for keywords
targeting other export back-ends since
`org-element-block-name-alist' doesn't contain such information
anymore.
* lisp/ox-org.el (org-org-keyword): Do not handle OPTIONS keywords
since those are handled in the template.
(org-org-template): Handle OPTIONS keyword.
As a consequence, OPTIONS keyword do not appear anymore when doing
a body-only export.
Thanks to Thorsten Jolitz for suggesting the idea.
http://permalink.gmane.org/gmane.emacs.orgmode/89633
* lisp/org-element.el (org-element-comment-block-interpreter,
org-element-example-block-interpreter,
org-element-src-block-interpreter): Handle values with missing final
newline, e.g., when built by the user.
* testing/lisp/test-org-element.el (test-org-element/comment-block-interpreter,
test-org-element/example-block-interpreter,
test-org-element/src-block-interpreter): Add tests
Thanks to Thorsten Jolitz for suggesting the idea.
http://permalink.gmane.org/gmane.emacs.orgmode/89602
* lisp/ob-R.el (org-babel-R-evaluate-session): Improve the capturing
of R output.
This uses a built-in facility of R to write the output to a file,
rather than trying to capture it in an emacs buffer using ESS (a
process by which the output can get mixed with other irrelevant text,
such as R command prompts).
* lisp/ob-R.el (org-babel-R-assign-elisp): Strip text properties from
strings.
Before this change, babel would try to format propertized strings
using elisp read syntax. The upshot is that evaluating the following
code block would give an error (in R, not emacs), since the “bar” in
foo-ex gets text properties via font lock:
| #+name: foo-ex
| #+begin_example
| bar
| #+end_example
|
| #+name: foo
| #+begin_src R :var foo=foo-ex
| foo
| #+end_src
* lisp/ox-texinfo.el (org-texinfo-table): Remove reference to
"verbatim" attribute. Handle table.el tables. Tiny refactoring.
(org-texinfo-table--org-table, org-texinfo-table--table.el-table):
Remove functions.
(org-texinfo-table-column-widths): Indent code correctly. Ignore
special column, if any. Add a comment about the limitation on the
width computation.
(org-texinfo-table-row): Small refactoring.
* lisp/ox-texinfo.el (texinfo): Do not provide a default value for
@setfilename value.
(org-texinfo-filename): Remove variable.
(org-texinfo-template): Correctly find value for @setfilename command.
If none is possible, do not provide the command at all.
* lisp/ox.el (org-export-to-file): Provide output file name in
communication channel, through :output-file property.
This change is needed to fix back-ends needing this information during
the process, e.g., `texinfo'.
* lisp/ob-core.el (org-babel-common-header-args-w-values): Add
:output-dir'.
Otherwise tthis property is not inherited correctly from
subtree-/file-level properties.
* lisp/ox-texinfo.el (org-texinfo-classes): Change default value.
Update docstring.
(org-texinfo-template): Insert header string from current class after
"@settitle" command. Always provide "\input texinfo" at the beginning
of the output.
Header string in the class was inserted before "@setfilename".
Texinfo ignores anything between "\input texinfo" and that command,
making any value besides the default one useless.
* lisp/ox-texinfo.el (org-texinfo-template): Fix multi-line
subauthors. Correctly add email, when provided. Check if author
info is wanted first.
This patch also removes AUTHOR variable since it's up to the user to
set it or not, through a class or a header keyword.
* lisp/ox-texinfo.el (texinfo): Make sure comments are ignored.
(org-texinfo-comment, org-texinfo-comment-block): Remove functions.
This is consistent with all other back-ends, which ignore any comment.
* lisp/ox-ascii.el (org-ascii-filter-paragraph-spacing): Fix "concat:
Wrong type argument: wholenump, auto" error.
Thanks to Xebar Saram for reporting the bug and to Eric Abrahamsen for
finding it out.
http://permalink.gmane.org/gmane.emacs.orgmode/89096
* org.el (org-ellipsis, org-remove-highlights-with-change):
Enhance docstring.
(org-preview-latex-fragment): Make obsolete. Alias to the new
name `org-toggle-latex-fragment'.
(org-mode, org-mode-map): Use `org-toggle-latex-fragment'.
* lisp/org.el (org-hide-block-toggle): Correctly find boundaries of
the block at point. Fix `off' argument behavior. Allow to hide
a block when at any affiliated keyword.
* testing/lisp/test-org.el (test-org/hide-block-toggle): New test.
Thanks to Andrea Rossetti for reporting it.
http://permalink.gmane.org/gmane.emacs.orgmode/89324
* lisp/ox-publish.el: (org-publish-find-title) (org-publish-find-date)
Make sure to call org-export-get-environment in copy of buffer if
emacs is already visiting. Otherwise, #+bind variables meant for
export can be set in live buffers.
This patch also optimizes the above functions by inhibiting
org-startup on buffers emacs visits temporarily.
* lisp/ox-html.el: Remove options.
* lisp/ox-icalendar.el: Remove options.
* lisp/ox-latex.el (org-latex-guess-inputenc, org-latex-compile,
org-latex--collect-warnings): Use full variable name instead of an
option.
* lisp/ox-man.el: Remove options.
* lisp/ox-odt.el: Remove options.
* lisp/ox-texinfo.el: Remove options.
* doc/org.texi (Publishing options): Update documentation accordingly.
These variables are meant to be used outside (or on the fringe) of the
export process, where information channel is not available.
remove
* lisp/ox-publish.el: (org-publish-find-title) (org-publish-find-date)
Fix unnecessary invocations of org-mode with
org-inhibit-startup.
The functions above call org-mode with org-inhibit-startup in org
buffers that are already open. The result is that these open buffers
lose some crucial local variables during publishing. For instance,
an open buffer will lose its dir-local-variables-alist setting
during publishing. There is no need to call org-mode here, because
org-mode is a) either already initialized in the buffer or b)
initialized via earlier call to find-file-no-select.
This looks to me like a relic of some past time when these functions were
called in temporary buffers that contained copies of the file's contents.
* org-faces.el (org-block-background): Delete.
* org.el (org-fontify-meta-lines-and-blocks-1): Don't use an
overlay for the block background.
(org-in-src-block-p): Check against the `src-block' text
property, not against an overlay.
The overlay was introduced here:
http://orgmode.org/cgit.cgi/org-mode.git/commit/?id=27d98d879
and fixed here
http://orgmode.org/cgit.cgi/org-mode.git/commit/?id=69811ff44
But (1) it makes fontification slowler, (2) it makes
`org-in-src-block-p' slower and it prevents correct ps-printing
of Org buffers.
If we want to use a different background color, we need another
solution than using overlays.
* org-clock.el (org-clock-display-default-range): New option.
(org-clock-display): Use the new option.
(org-clock-sum-custom): New parameters `range' and `propname'.
(org-clock-special-range): Allow to enter a special range
through the calendar.
This allows org-narrow-to-subtree to function in Outline mode.
* lisp/org-macs.el (org-get-limited-outline-regexp): Use
outline-regexp instead of org-outline-regexp when not in Org mode.