* lisp/org-footnote.el (org-footnote-normalize): Remove an useless
part of the function.
(org-insert-footnote-reference-near-definition): Remove function.
* lisp/org-footnote.el (org-footnote-normalize): Fix normalization of
inline footnotes with no footnote section.
* testing/lisp/test-org-footnote.el: New test file.
Thanks to Samuel Wales for reporting this.
* org-bbdb.el (org-bbdb-old): Replace `defvar' after loading 'bbdb to
check for old or new version by a check for the required function in
`org-bbdb-open' and `org-bbdb-store-link'.
(org-bbdb-store-link, org-bbdb-open): Check which version of bbdb is
to be used.
This is a follow up of ddf4f1e7a9.
Instead of depending on the loading of bbdb we do a check for the
required function in `org-bbdb-open' and `org-bbdb-store-link'.
* lisp/org.el (org-link-search): Search for #+name affiliated keywords
and invisible targets.
* contrib/lisp/org-element.el (org-element-link-parser): Remove "ref"
links relative part.
(org-element-target-parser): Move property name from `:raw-value' to
`:value'.
(org-element-recursive-objects): Remove targets from tables. Cells
are not parsed unless explicitely asked by back-end developer, too
late. A target wouldn't be noticed in time. One solution could be to
parse every table, but that's time consumming.
(org-element-object-restrictions): Target are not recursive anymore.
* contrib/lisp/org-export.el (org-export-resolve-fuzzy-link): Find
elements with a matching "#+name: path" affiliated keyword.
(org-export-get-ordinal): Make special cases for headlines, items,
footnotes definitions and references.
(org-export-resolve-ref-link): Removed function.
* EXPERIMENTAL/org-e-latex.el (org-e-latex-link): Handle
cross-reference numbers.
(org-e-latex-target): Targets have no contents.
* EXPERIMENTAL/org-e-ascii.el (org-e-ascii--describe-links): Ignore
fuzzy links in link description at the end of the section.
(org-e-ascii-link): Handle cross-reference numbers.
* testing/contrib/lisp/test-org-export.el: Add tests.
* testing/lisp/test-org.el: Add tests.
* org-lparse.el (org-lparse-end-footnote-definition): Cleanup
newlines in a transcoded footnote definition. This ensures
that the line that is currently being processed by
`org-do-lparse' loop doesn't get broken up into multiple
lines. Fix for the following bug -
* lisp/org-footnote.el (org-footnote-normalize): Force a paragraph
break after the last footnote definition. This is an an
implicit assumption made by the org-lparse.el library. With
this change, footnote definitions can reliably be exported
with ODT backend. See
http://lists.gnu.org/archive/html/emacs-orgmode/2012-02/msg01013.html.
* lisp/ob-ditaa.el (org-ditaa-jar-path): Already defined in
org-exp-blocks.el.
* lisp/org-exp-blocks.el (org-ditaa-jar-path): Declare appropriately
for the fact that this is really now a Babel thing -- even if it is
used here and the definition should remain here for reasons of load
dependencies.
* org-bbdb.el (org-bbdb-old): Wrap `defvar' so the variable gets
defined after bbdb was loaded.
Thanks to Nick Dokos for reporting this glitch in
<8273.1330161610@alphaville>.
* lisp/org-odt.el (org-odt-insert-toc): Remove this stray,
dysfunctional routine. This possibly has crept in because of the
broken merges between "maint" and "origin" branches.
(org-odt-begin-table): Don't emit an empty paragraph when a table is
neither labelled or captioned.
(org-odt-init-outfile): Remove reference to an unused variable.
* lisp/ob-sql.el(org-babel-execute:sql): Add support for MonetDB to
SQL code blocks.
Hi,
the attached patch adds support for evaluating SQL blocks on MonetDB.
The MonetDB client normally requires the password to be inputted on the
console. To get around this, you have to use a dotfile ~/.monetdb with
authentification data. Note that this file is ignored if you specify a
user on the cmdline. See
http://www.monetdb.org/Documentation/mclient-man-page for details.
A usage example follows.
Setup MonetDB test database and authentification data
#+BEGIN_SRC sh :results output verbatim
MONETDB_DIR=$HOME/unix/var/monetdb/demodb
monetdbd create $MONETDB_DIR
monetdbd start $MONETDB_DIR
monetdb create demodb
monetdb release demodb
cat > ~/.monetdb <<EOF
user=monetdb
password=monetdb
EOF
#+END_SRC
#+RESULTS:
: created database in maintenance mode: demodb
: taken database out of maintenance mode: demodb
Data is returned without column names (the default return format
cannot be parsed by Babel).
#+BEGIN_SRC sql :engine monetdb :cmdline demodb
CREATE TABLE foo ( bar INTEGER );
SELECT 'Table count', count(*) FROM foo;
#+END_SRC
#+RESULTS:
| Table count | 0 |
The parameter "-i" is required on the command line in order to use
special client commands. Also note that a newline is required at the
end if the last line contains a special client command.
#+BEGIN_SRC sql :engine monetdb :cmdline demodb -i :results output
verbatim
\d
\?
#+END_SRC
#+RESULTS:
#+begin_example
TABLE sys.foo
\? - show this message
\<file - read input from file
\>file - save response in file, or stdout if no file is given
\|cmd - pipe result to process, or stop when no command is given
\h - show the readline history
\D table- dumps the table, or the complete database if none given.
\d[Stvsfn]+ [obj] - list database objects, or describe if obj given
\A - enable auto commit
\a - disable auto commit
\e - echo the query in sql formatting mode
\f - format using a built-in renderer {csv,tab,raw,sql,xml}
\w# - set maximal page width (-1=unlimited, 0=terminal width,
>0=limit to num)
\r# - set maximum rows per page (-1=raw)
\L file - save client/server interaction
\X - trace mclient code
\q - terminate session
#+end_example
Have fun!
> attached is a patch that enhances org-babel-goto-named-src-block (bound
> to C-c C-v g by default). Included are two enhancements:
>
> 1. the point is pushed to the org-mark-ring, such that returning with
> C-c & becomes possible
> 2. the target src block is guessed from
> a) noweb-reference
> b) #+call:
> c) #+results:
> d) symbol-at-point
> if one of these is found (in that order)
* lisp/ob.el (org-babel-goto-named-src-block): Pushing the point to
the org-mark-ring and guessing at the code block name to jump to.
* org-agenda.el (org-agenda-tree-to-indirect-buffer): Fix handling of
indirect buffer and window.
Check if the window of last indirect buffer is still live and properly
handle the case of `org-last-indirect-buffer' being nil.
Changes suggested by Dave Abrahams in <m2boow1q9e.fsf@boostpro.com>.
2012-01-17 Jambunathan K <kjambunathan@gmail.com>
* etc/styles/OrgOdtContentTemplate.xml
(OrgIndentedSection-Level-*): New section styles. These
sections are indented to the same level as the corresponding
list entries. These sections hold tables that occur within a
list.
(OrgTable): Increased relative width from 90% to 96% for
aesthetic reasons.
* lisp/org-odt.el (org-odt-table-indentedp): New variable
(org-odt-begin-table): Modified. If the table is within a
list, temporarily leave the list and begin an indented section
before emitting the table.
(org-odt-end-table): Modified. If the table was within a
list, close the indented section and re-open the list
immediately after ending the table.
(org-odt-continue-list, org-odt-discontinue-list): Helper
routines to temporarily discontinue and continue a list.
(org-odt-list-stack-stashed): New variable to hold the state
of a pending list.
(org-odt-begin-list, org-odt-begin-list-item)
(org-odt-end-list-item): Modified. Handle nitty-gritties for
continuing a list and list item.
(org-odt-section-count): New variable that keeps track of
section count. Used in conjunction with naming of sections.
(org-odt-begin-section, org-odt-end-section): New defuns.
(org-odt-init-outfile): Initialize
`org-odt-list-stack-stashed' and `org-odt-section-count'.
* lisp/org-lparse.el (org-lparse-list-item-count): Removed. Was a
superfluous variable.
(org-lparse-list-level): Removed. Now derived from
`org-lparse-list-stack'.
(org-lparse-list-stack): New. List that records the list
types - ordered, unordered or descriptive - in the following
order: self, parent, grand-parent etc.
(org-do-lparse): Added, removed above let-bound vars.
Disallowed regular tables within list-table block.
(org-lparse-begin-list, org-lparse-end-list)
(org-lparse-begin-list-item, org-lparse-end-list-item):
Propagate above changes.
OpenDocument doesn't permit tables to occur in the middle of a
list. Use list continuations and indented sections to typeset
indented tables.
Fixes the following bug:
http://lists.gnu.org/archive/html/emacs-orgmode/2012-01/msg00515.html
Add support for indented tables in ODT export
2012-01-20 Jambunathan K <kjambunathan@gmail.com>
* lisp/org-odt.el (org-odt-format-textbox): Honor user-specified
width in captioned images.
Fix for bug reported here:
http://lists.gnu.org/archive/html/emacs-orgmode/2012-01/msg00641.html
Honor user-specified width in captioned images
2012-01-23 Jambunathan K <kjambunathan@gmail.com>
* lisp/org-odt.el (org-odt-table-style-format): New. Template for
auto-generated table styles.
(org-odt-automatic-styles, org-odt-object-counters): New
variables.
(org-odt-add-automatic-style): New function.
(org-odt-write-automatic-styles): New function. Create
automatic styles for tables that have custom :rel-width.
(org-odt-begin-table): Parse attributes specified with
"#+ATTR_ODT: " option and use it to create an automatic table
style.
(org-odt-save-as-outfile): Call
`org-odt-add-write-automatic-styles'.
(org-odt-init-outfile): Init newly add variables.
(org-odt-section-count): Remove it.
(org-odt-begin-section): Use `org-odt-add-automatic-style' to
generate an automatic section name.
Customize table width using :rel-width option. For example,
to create a table of width 60% use:
#+attr_odt: :rel-width 60
| A | B |
|---+---|
| | |
org-odt.el: Put table width under user-control
2012-01-23 Jambunathan K <kjambunathan@gmail.com>
* lisp/org-odt.el (org-odt-label-styles): Add a new style.
(org-odt-category-map-alist): Use it.
Andreas Leha writes:
The following snippet exports correctly to LaTeX and to html, but
produces the text "Figure Figure" in odt.
Could the behaviour be synchronized?
=== example.org ==========================
* Test ref
plot(1:10, 1:10)
Here is a reference to Figure \ref{fig:bar}
=== example.org ==========================
org-odt.el: Make label references consistent with LaTeX export
2012-01-24 Jambunathan K <kjambunathan@gmail.com>
* lisp/org-odt.el (org-odt-entity-frame-styles): Add frame params
for images that are anchored as character.
(org-export-odt-format-image): Handle new anchor type
"as-char".
(org-export-odt-default-image-sizes-alist): Misc. change.
(org-export-odt-format-formula): Misc. change.
With this change, one can use the below snippet to produce
images that are laid out side-by-side.
#+ATTR_ODT: :width 7 :height 7 :anchor as-char
#+header: :file foo.png
[[./foo.png]]
#+caption: bar
#+ATTR_ODT: :width 7 :height 7 :anchor as-char
#+header: :file bar.png
[[./bar.png]]
See http://lists.gnu.org/archive/html/emacs-orgmode/2012-01/msg00677.html.
org-odt.el: Allow images to be anchored as characters
2012-01-24 Jambunathan K <kjambunathan@gmail.com>
* lisp/org-odt.el (org-export-odt-format-formula): Use :style
property to specify custom table styles.
Continuation of the earlier commit titled: "Put table width
under user-control".
org-odt.el: Fix regression in typesetting of MathML formulae
2012-01-27 Jambunathan K <kjambunathan@gmail.com>
* lisp/org-odt.el (org-odt-format-preamble): Don't insert TOC here.
Delay it till the end of export.
(org-odt-begin-document-body): Make a note of the default
position of TOC in `org-lparse-dyn-first-heading-pos'.
(org-odt-insert-toc): Insert TOC as directed by
[TABLE-OF-CONTENTS] line or at the default position.
(org-odt-end-export): Call `org-odt-insert-toc'.
Fix for the following bug:
http://lists.gnu.org/archive/html/emacs-orgmode/2012-01/msg00974.html
org-odt.el: Honor "[TABLE-OF-CONTENTS]" directive
2012-01-27 Jambunathan K <kjambunathan@gmail.com>
org-odt.el: Fix earlier commit
2012-01-30 Jambunathan K <kjambunathan@gmail.com>
* OrgOdtStyles.xml (OrgTitlePage): New page style. Include no
footer. Use "OrgFrontMatterPage" for the following page.
(OrgFrontMatterPage): New page style. Include a footer that
displays page numbers in Roman style. Use mirrored pages.
Use "OrgFrontMatterPage" for the following page.
(OrgPage): New page style. Include a footer that displays
page numbers. Use mirrored pages. Use "OrgPage" for the
following page.
(OrgFirstPage): New page style. Include a footer that
displays page numbers. Right page only. Use "OrgPage" for
the following page.
(Standard): Modify to include a footer that displays page
numbers. Use mirrored pages. Use "Standard" for the
following page.
None of the above page styles have a header.
The newly added page styles are not used as yet.
org-odt.el: By default, include page numbers in the page footer
2012-01-31 Jambunathan K <kjambunathan@gmail.com>
org-odt.el: Do `clear-image-cache' before `create-image'
2012-02-03 Jambunathan K <kjambunathan@gmail.com>
* lisp/org-lparse.el (org-lparse-do-convert): Replace
`call-process' with `shell-command-to-string'.
* lisp/org-odt.el (org-export-odt-convert-processes): Add a new
converter which depends solely on LibreOffice and nothing
else.
(org-export-odt-convert-process): Make the above native
converter the default.
Thanks to Giles for introducing the "--convert-to" option of
soffice.exe. The option seems to be a fairly recent
development.
http://imperfectsoftware.blogspot.in/2012/01/one-of-my-less-enjoyable-tasks-is-to.html
With this change, one can export to pdf via odt by a simple
(setq org-export-odt-preferred-output-format "pdf")
There is no need to install additional converters.
org-odt.el: Make LibreOffice the default converter
2012-02-09 Jambunathan K <kjambunathan@gmail.com>
* org-odt.el (org-export-odt-convert-capabilities): Change the
default value.
See http://lists.gnu.org/archive/html/emacs-orgmode/2012-02/msg00293.html.
Offer "docx" as an option in `org-export-odt-preferred-output-format'
2012-02-12 Jambunathan K <kjambunathan@gmail.com>
org-odt.el: Fix indentation
2012-02-12 Jambunathan K <kjambunathan@gmail.com>
org-odt.el: Tag all custom variables with Emacs version
2012-02-12 Jambunathan K <kjambunathan@gmail.com>
* lisp/org-odt.el (org-export-odt-convert-processes): Re-define
(org-export-odt-convert-capabilities): Fix an accidental
regression.
* lisp/org-lparse.el (org-lparse-do-convert): Related change.
Simplify definition of `org-export-odt-convert-processes'
2012-02-12 Jambunathan K <kjambunathan@gmail.com>
Retire support for BasicODConverter
2012-02-14 Jambunathan K <kjambunathan@gmail.com>
* org-odt.el (org-export-as-odt-to-buffer)
(org-replace-region-by-odt, org-export-region-as-odt): Remove
these interactive functions. They are of questionable value.
org-odt.el: Remove interactive functions of questionable value
2012-02-15 Jambunathan K <kjambunathan@gmail.com>
Improve converting from ODT to other formats
2012-02-15 Jambunathan K <kjambunathan@gmail.com>
* org-odt.el (org-export-odt-image-size-probe-method)
(org-odt-do-image-size): Use imagemagick preferentially to
determine image sizes.
See http://lists.gnu.org/archive/html/emacs-orgmode/2012-02/msg00288.html
org-odt.el: Use imagemagick to determine image sizes
2012-02-16 Jambunathan K <kjambunathan@gmail.com>
* org.texi (Top, OpenDocument Text export)
(ODT export commands, Extending ODT export)
(Images in ODT export, Tables in ODT export)
(Configuring a document converter): Add or Update.
org.texi: Update ODT section
* lisp/ob.el:
Fix `org-babel-result-end' command to provide consistent result
removal where result is type `wrap'. Prior to this fix
multiple (org-ctrl-c-ctrl-c) commands will add multiple newlines to
the end of results (one newline per block execution).
This fixes the test `test-ob/org-babel-remove-result--results-wrap'
* testing/lisp/test-ob.el:
Uncomment test since it now passes.
Conflicts:
testing/lisp/test-ob.el
Thanks to Glenn Morris for this fix in Emacs trunk.
Conflicts:
lisp/ob-emacs-lisp.el
lisp/ob-perl.el
lisp/ob-python.el
lisp/ob-ruby.el
lisp/ob-screen.el
lisp/org-eshell.el
lisp/org-mouse.el
* org.el (org-recenter-calendar): Use `with-selected-window' to select
calendar window and save currently selected window and current buffer.
Fixes a bug reported by Thomas Morgan in <mid:87obsxwpvc.fsf@ziiuu.com>.
* lisp/org.el (org-goto): call org-refile-get-location with NO-EXCLUDE
argument set, otherwise not only are headlines in the current subtree
excluded, but it throws an error if point happens not to be within a
subtree (e.g. at start of buffer).
TINYCHANGE
* org.el (org-scan-tags): Fix highlighting in sparse-tree.
`org-get-heading' uses `org-heading-regexp' introduced by
dfcb6faef1 but `org-scan-tags' assumed
match groups of the old regular expression.
This should fix a bug reported by Suvayu Ali in
<20120209032255.431e8197@kuru.dyndns-at-home.com>.
* org-clock.el (org-in-clocktable-p): Moved to org.el.
* org.el (org-in-clocktable-p): New function. Moved from org-clock.el
Fixes a bug reported by suvayu ali in
<CAMXnza2W9VSJ2d-dDmsByNmTVgxnt1Onp=J5S=TsFEi8MOVNtg@mail.gmail.com>.
`org-context' depends on the function but org.el does not depend on
org-clock.el.
* org-exp.el (org-export-get-title-from-subtree): Don't format tags in
title if title headline does not have tags.
Fixes a bug reported by John Hendy in
<CA+M2ft_UnBVfUbmoUX6J2MY7e_9w+7an5n23rAarpnnQnaV=ZA@mail.gmail.com>.
* lisp/org-odt.el (org-odt-format-preamble): Don't insert TOC here.
Delay it till the end of export.
(org-odt-begin-document-body): Make a note of the default
position of TOC in `org-lparse-dyn-first-heading-pos'.
(org-odt-insert-toc): Insert TOC as directed by
[TABLE-OF-CONTENTS] line or at the default position.
(org-odt-end-export): Call `org-odt-insert-toc'.
Fix for the following bug:
http://lists.gnu.org/archive/html/emacs-orgmode/2012-01/msg00974.html
* org-capture.el (org-capture-place-item): Don't search for
position in existing list if :exact-position was supplied.
This fixes a bug reported by François Pinard in
<http://thread.gmane.org/gmane.emacs.orgmode/49995>.
* etc/styles/OrgOdtContentTemplate.xml
(OrgIndentedSection-Level-*): New section styles. These
sections are indented to the same level as the corresponding
list entries. These sections hold tables that occur within a
list.
(OrgTable): Increased relative width from 90% to 96% for
aesthetic reasons.
* lisp/org-odt.el (org-odt-table-indentedp): New variable
(org-odt-begin-table): Modified. If the table is within a
list, temporarily leave the list and begin an indented section
before emitting the table.
(org-odt-end-table): Modified. If the table was within a
list, close the indented section and re-open the list
immediately after ending the table.
(org-odt-continue-list, org-odt-discontinue-list): Helper
routines to temporarily discontinue and continue a list.
(org-odt-list-stack-stashed): New variable to hold the state
of a pending list.
(org-odt-begin-list, org-odt-begin-list-item)
(org-odt-end-list-item): Modified. Handle nitty-gritties for
continuing a list and list item.
(org-odt-section-count): New variable that keeps track of
section count. Used in conjunction with naming of sections.
(org-odt-begin-section, org-odt-end-section): New defuns.
(org-odt-init-outfile): Initialize
`org-odt-list-stack-stashed' and `org-odt-section-count'.
* lisp/org-lparse.el (org-lparse-list-item-count): Removed. Was a
superfluous variable.
(org-lparse-list-level): Removed. Now derived from
`org-lparse-list-stack'.
(org-lparse-list-stack): New. List that records the list
types - ordered, unordered or descriptive - in the following
order: self, parent, grand-parent etc.
(org-do-lparse): Added, removed above let-bound vars.
Disallowed regular tables within list-table block.
(org-lparse-begin-list, org-lparse-end-list)
(org-lparse-begin-list-item, org-lparse-end-list-item):
Propagate above changes.
OpenDocument doesn't permit tables to occur in the middle of a
list. Use list continuations and indented sections to typeset
indented tables.
Fixes the following bug:
http://lists.gnu.org/archive/html/emacs-orgmode/2012-01/msg00515.html
* lisp/ob-sqlite.el (org-babel-execute:sqlite): Specify the use of ","
as the separator to `org-table-convert-region'. Fixes errors when
only one result per line of output.
* lisp/ob.el (org-babel-strip-protective-commas): Use
`org-strip-protective-commas'.
* lisp/org-exp.el (org-export-select-backend-specific-text): Use
`org-strip-protective-commas'.
* lisp/org-src.el (org-edit-src-code): Use
`org-strip-protective-commas'.
* lisp/org.el (org-strip-protective-commas): Single definition for
this functionality.
* org.el (org-recenter-calendar): Use `with-selected-window' to select
calendar window and save currently selected window and current buffer.
Fixes a bug reported by Thomas Morgan in <mid:87obsxwpvc.fsf@ziiuu.com>.
* org-odt.el (org-export-as-odt-to-buffer)
(org-replace-region-by-odt, org-export-region-as-odt): Remove
these interactive functions. They are of questionable value.
* lisp/org.el (org-goto): call org-refile-get-location with NO-EXCLUDE
argument set, otherwise not only are headlines in the current subtree
excluded, but it throws an error if point happens not to be within a
subtree (e.g. at start of buffer).
TINYCHANGE
* org-clock.el (org-clock-out): Do not delete the current clocking task
when org-clock-out-hook clocks in another task
My clock out hook keeps the clock running by automatically clocking in
a new task (the parent task, or the default task). This sets a new
clocking task which was then clobbered at the end of org-clock-out
so that J in the agenda would return
"No running clock, use `C-c C-x C-j' to jump to the most recent one"
We now detect that another task is clocked in and skip clearing the
org-clock-current-task variable used by the agenda to determine if
the clock is currently running.
* org.el (org-scan-tags): Fix highlighting in sparse-tree.
`org-get-heading' uses `org-heading-regexp' introduced by
dfcb6faef1 but `org-scan-tags' assumed
match groups of the old regular expression.
This should fix a bug reported by Suvayu Ali in
<20120209032255.431e8197@kuru.dyndns-at-home.com>.
* org-clock.el (org-in-clocktable-p): Moved to org.el.
* org.el (org-in-clocktable-p): New function. Moved from org-clock.el
Fixes a bug reported by suvayu ali in
<CAMXnza2W9VSJ2d-dDmsByNmTVgxnt1Onp=J5S=TsFEi8MOVNtg@mail.gmail.com>.
`org-context' depends on the function but org.el does not depend on
org-clock.el.
* org-exp.el (org-export-get-title-from-subtree): Don't format tags in
title if title headline does not have tags.
Fixes a bug reported by John Hendy in
<CA+M2ft_UnBVfUbmoUX6J2MY7e_9w+7an5n23rAarpnnQnaV=ZA@mail.gmail.com>.
* lisp/org-footnote.el (org-blank-before-new-entry,
org-export-footnotes-seen, org-export-footnotes-data): Fix bogus
declarations.
This fixes bug #10745. Thanks to Steve Revilak for the report and to
Glenn Morris for the solution.
* lisp/org-exp-blocks.el (org-export-blocks): Changed the name of
exporting comment blocks given that it seems regular comment blocks
no longer export.
* lisp/ob-exp.el (org-babel-exp-in-export-file,
org-babel-exp-src-block, org-babel-exp-inline-src-blocks): Allow
org-current-export-file to contain a buffer.
This allows to resolve references from a buffer not visiting any file
(i.e. a temporary buffer) during export process.
Conflicts:
lisp/ob-exp.el (org-babel-exp-in-export-file): Allow
org-current-export-file to contain a buffer name.
* lisp/org-lparse.el (org-lparse-do-convert): Replace
`call-process' with `shell-command-to-string'.
* lisp/org-odt.el (org-export-odt-convert-processes): Add a new
converter which depends solely on LibreOffice and nothing
else.
(org-export-odt-convert-process): Make the above native
converter the default.
Thanks to Giles for introducing the "--convert-to" option of
soffice.exe. The option seems to be a fairly recent
development.
http://imperfectsoftware.blogspot.in/2012/01/one-of-my-less-enjoyable-tasks-is-to.html
With this change, one can export to pdf via odt by a simple
(setq org-export-odt-preferred-output-format "pdf")
There is no need to install additional converters.
* lisp/org-footnote.el (org-footnote-create-definition): Fix space
insertion when creating a new footnote. This fixes newline munching
when `org-footnote-section' is nil and blank lines stacking when it
isn't nil.
Thanks to Eric Abrahamsen for reporting this.
* lisp/org-footnote.el (org-footnote-normalize): Ensure footnote
definition will be inserted at the end of the section corresponding
to to its first reference.
* lisp/org-footnote.el (org-footnote-at-definition-p): Make sure to
move point at the beginning of the separator before skiping white
spaces. Refactor code.
This makes it easier to keep consistent behavior.
* lisp/ob-tangle.el (org-babel-tangle-clean): Just use default value.
* lisp/ob.el (org-babel-noweb-wrap): Add default value.
(org-babel-expand-noweb-references): Just use default value.
* lisp/org-exp.el (org-export-select-backend-specific-text): Always
preserve original indentation as a text property so that lists do
not get broken by indentation at column 0.
* org.el (org-at-drawer-p): Normalize the docstring to match
other `org-at-*-p' docstrings.
(org-indent-block, org-indent-drawer, org-at-block-p): New
functions.
(org-metaright): Use the new functions to indent a drawer or a
block depending on the context. Also update the docstring.
* org.el (org-set-regexps-and-options): Set the value of
`org-drawers' by adding the value of the infile #+DRAWERS
option to that of the existing `org-drawers'.
* org.texi (Drawers): Clearly states that #+DRAWERS will add
drawers to the one originally listed in `org-drawers'.
* org-inlinetask.el (org-inlinetask-toggle-visibility): Use
`org-show-entry' instead of `outline-flag-region' to keep the
drawers folded when unfolding an inline task.
Thanks to Viktor Rosenfeld for requiring this.
* lisp/org.el (org-open-link-from-string): Regard `reference-buffer'
when setting `org-inhibit-startup'.
When opening a link to another Org file not yet opened (first close it
if opened) before this patch:
1) When point is on the line with the link and the line is not a
heading then the target file is opened with the target file startup
view state, e. g. the default OVERVIEW.
2) When point is on the heading of the entry of which the link is part
of then the target file is opened with "SHOW ALL". But it is
expected to regard the target file startup view state like case 1).
Note: Only in case 2) `org-open-at-point' uses
`org-offer-links-in-entry' and from there `org-open-link-from-string'.
example current buffer with link:
#+BEGIN_SRC org
,* section
, [[file:myfile.org::*mytarget]]
#+END_SRC
example target file myfile.org:
#+BEGIN_SRC org
,* mytarget
, text
,*** subsection
#+END_SRC
Thanks to Sean O'Halpin for suggesting this change.
* lisp/ob-tangle.el (org-babel-tangle-clean): Use the customizable
noweb wrappers.
* lisp/ob.el (org-babel-noweb-wrap-start): Begin a noweb reference.
(org-babel-noweb-wrap-end): End a noweb reference.
(org-babel-noweb-wrap): Apply the customizable noweb wrappers.
(org-babel-expand-noweb-references): Use the customizable noweb
wrappers.
* lisp/org-odt.el (org-odt-format-preamble): Don't insert TOC here.
Delay it till the end of export.
(org-odt-begin-document-body): Make a note of the default
position of TOC in `org-lparse-dyn-first-heading-pos'.
(org-odt-insert-toc): Insert TOC as directed by
[TABLE-OF-CONTENTS] line or at the default position.
(org-odt-end-export): Call `org-odt-insert-toc'.
Fix for the following bug:
http://lists.gnu.org/archive/html/emacs-orgmode/2012-01/msg00974.html
* org.el (org-insert-property-drawer): Not an interactive
command anymore.
(org-insert-drawer): With a prefix argument, insert a property
drawer. Check for headline within the region before inserting
the drawer. Don't include special drawers in the completion
table.
(org-mode-map): New keybinding `C-c C-x d' for
`org-insert-drawer'.
* org.texi (Drawers): How to insert/complete drawers.
Thanks to Nicolas Goaziou for the discussion and the patch.
* org-pcomplete.el (pcomplete/org-mode/drawer): New function
to complete drawer at point.
(org-thing-at-point): Use it.
Thanks to Nick Dokos for a request in this area.
* lisp/ob.el:
Fix `org-babel-result-end' command to provide consistent result
removal where result is type `wrap'. Prior to this fix
multiple (org-ctrl-c-ctrl-c) commands will add multiple newlines to
the end of results (one newline per block execution).
This fixes the test `test-ob/org-babel-remove-result--results-wrap'
* testing/lisp/test-ob.el:
Uncomment test since it now passes.
Clocking only works with headings indented with less than `30' stars
(hardcoded `lmax' value in `org-clock-sum'). Since especially inline
tasks may dupe someone into using more stars, document the limit in
the docsring of `org-inlinetask-min-level'.
* org.el (org-read-date): New parameter `inactive' when
reading for insertion of inactive timestamps.
(org-time-stamp, org-read-date-display): Use the new
parameter.
Thanks to François Pinard for this suggestion.
* lisp/ob.el (org-babel-expand-noweb-references): Only allow
reference names which start and end with non-whitespace characters.
Also, raise errors as appropriate given org-babel-noweb-error-langs.
* doc/org.texi (noweb-sep): Document new header argument.
* lisp/ob.el (org-babel-common-header-args-w-values): Add new header
argument.
(org-babel-expand-noweb-references): Use header argument rather than
customization variable.
* org-capture.el (org-capture-place-item): Don't search for
position in existing list if :exact-position was supplied.
This fixes a bug reported by François Pinard in
<http://thread.gmane.org/gmane.emacs.orgmode/49995>.
* lisp/ob.el (org-babel-noweb-separator): Custom variable for
accumulated noweb references.
(org-babel-expand-noweb-references): Allow separator for noweb
references.
* doc/org.texi (noweb-ref): Documentation of this new custom variable.
* lisp/org.el (org-beginning-of-line): In an item, special position
for C-a is after check-box, if any.
(org-special-ctrl-a/e): Modify doc-string accordingly.
* lisp/org-odt.el (org-export-odt-format-formula): Use :style
property to specify custom table styles.
Continuation of the earlier commit titled: "Put table width
under user-control".
* lisp/ob-exp.el (org-babel-exp-call-line-template): Control export of
additional call line information.
(org-babel-exp-non-block-elements): Fancier call line export.
* testing/examples/babel.org (an): Example data to test new call line
export.
* testing/lisp/test-ob-exp.el (ob-exp/export-call-line-information):
Test new call line export.
* lisp/org-odt.el (org-odt-entity-frame-styles): Add frame params
for images that are anchored as character.
(org-export-odt-format-image): Handle new anchor type
"as-char".
(org-export-odt-default-image-sizes-alist): Misc. change.
(org-export-odt-format-formula): Misc. change.
With this change, one can use the below snippet to produce
images that are laid out side-by-side.
#+ATTR_ODT: :width 7 :height 7 :anchor as-char
#+header: :file foo.png
[[./foo.png]]
#+caption: bar
#+ATTR_ODT: :width 7 :height 7 :anchor as-char
#+header: :file bar.png
[[./bar.png]]
See http://lists.gnu.org/archive/html/emacs-orgmode/2012-01/msg00677.html.
* lisp/org-odt.el (org-odt-label-styles): Add a new style.
(org-odt-category-map-alist): Use it.
Andreas Leha writes:
The following snippet exports correctly to LaTeX and to html, but
produces the text "Figure Figure" in odt.
Could the behaviour be synchronized?
=== example.org ==========================
* Test ref
plot(1:10, 1:10)
Here is a reference to Figure \ref{fig:bar}
=== example.org ==========================
* lisp/org-odt.el (org-odt-table-style-format): New. Template for
auto-generated table styles.
(org-odt-automatic-styles, org-odt-object-counters): New
variables.
(org-odt-add-automatic-style): New function.
(org-odt-write-automatic-styles): New function. Create
automatic styles for tables that have custom :rel-width.
(org-odt-begin-table): Parse attributes specified with
"#+ATTR_ODT: " option and use it to create an automatic table
style.
(org-odt-save-as-outfile): Call
`org-odt-add-write-automatic-styles'.
(org-odt-init-outfile): Init newly add variables.
(org-odt-section-count): Remove it.
(org-odt-begin-section): Use `org-odt-add-automatic-style' to
generate an automatic section name.
Customize table width using :rel-width option. For example,
to create a table of width 60% use:
#+attr_odt: :rel-width 60
| A | B |
|---+---|
| | |
* lisp/org-src.el (org-src-in-org-buffer): Run commands in the parent
buffer.
(org-edit-src-save): Use new macro.
(org-src-tangle): Tangle the parent buffer.
* org.el (org-set-tags-command, org-set-tags): Make ̀C-u C-c
C-q' do the right thing even when point is before the first
heading.
Thanks to François Pinard for mentioning this.
* lisp/ob-exp.el (org-babel-exp-results): Alter a copy of info.
* testing/examples/babel.org (an): Example data for test behavior.
* testing/lisp/test-ob-exp.el (ob-exp/noweb-no-export-and-exports-both):
Confirm proper behavior.
* etc/styles/OrgOdtContentTemplate.xml
(OrgIndentedSection-Level-*): New section styles. These
sections are indented to the same level as the corresponding
list entries. These sections hold tables that occur within a
list.
(OrgTable): Increased relative width from 90% to 96% for
aesthetic reasons.
* lisp/org-odt.el (org-odt-table-indentedp): New variable
(org-odt-begin-table): Modified. If the table is within a
list, temporarily leave the list and begin an indented section
before emitting the table.
(org-odt-end-table): Modified. If the table was within a
list, close the indented section and re-open the list
immediately after ending the table.
(org-odt-continue-list, org-odt-discontinue-list): Helper
routines to temporarily discontinue and continue a list.
(org-odt-list-stack-stashed): New variable to hold the state
of a pending list.
(org-odt-begin-list, org-odt-begin-list-item)
(org-odt-end-list-item): Modified. Handle nitty-gritties for
continuing a list and list item.
(org-odt-section-count): New variable that keeps track of
section count. Used in conjunction with naming of sections.
(org-odt-begin-section, org-odt-end-section): New defuns.
(org-odt-init-outfile): Initialize
`org-odt-list-stack-stashed' and `org-odt-section-count'.
* lisp/org-lparse.el (org-lparse-list-item-count): Removed. Was a
superfluous variable.
(org-lparse-list-level): Removed. Now derived from
`org-lparse-list-stack'.
(org-lparse-list-stack): New. List that records the list
types - ordered, unordered or descriptive - in the following
order: self, parent, grand-parent etc.
(org-do-lparse): Added, removed above let-bound vars.
Disallowed regular tables within list-table block.
(org-lparse-begin-list, org-lparse-end-list)
(org-lparse-begin-list-item, org-lparse-end-list-item):
Propagate above changes.
OpenDocument doesn't permit tables to occur in the middle of a
list. Use list continuations and indented sections to typeset
indented tables.
Fixes the following bug:
http://lists.gnu.org/archive/html/emacs-orgmode/2012-01/msg00515.html
* lisp/ob.el (org-babel-map-src-blocks): Don't pollute symbol space.
(org-babel-map-inline-src-blocks): Don't pollute symbol space.
(org-babel-map-call-lines): Don't pollute symbol space.
(org-babel-map-executables): Map over *all* executable Org-mode
elements.
(org-babel-execute-buffer): Execute elements in buffer order instead
of arbitrarily.
* org.el (org-structure-template-alist): Use uppercase for
keywords.
* org-publish.el (org-publish-index-generate-theindex): Use
uppercase for the #+INCLUDE keyword.
* lisp/ob.el (org-babel-results-keyword): New user-configurable
results keyword.
(org-babel-where-is-src-block-result): Use new user-configurable
results keyword.
* lisp/org-indent.el (org-indent-refresh-maybe): Check for new
headlines from the beginning of the line to be sure to catch
any newly inserted headline there.
* lisp/ob-exp.el (org-babel-exp-src-block): Use `org-babel-noweb-p'.
(org-babel-exp-inline-src-blocks): Use `org-babel-noweb-p'.
* lisp/ob-tangle.el (org-babel-tangle-collect-blocks): Use
`org-babel-noweb-p'.
* lisp/ob.el (org-babel-execute-src-block): Use `org-babel-noweb-p'.
(org-babel-expand-src-block): Use `org-babel-noweb-p'.
(org-babel-load-in-session): Use `org-babel-noweb-p'.
(org-babel-merge-params): Use `org-babel-noweb-p'.
(org-babel-noweb-p): New function used to determine if noweb
expansion should be carried out in a given context.
* lisp/org-agenda.el (org-agenda-switch-to): Widen org buffer only if point is
outside the current restriction
Widen org buffer when visiting from agenda only if point is outside
current restriction.
Visiting a task with RET or TAB in the agenda should not affect the
org-mode buffer restriction unless the target task is not currently
visible due to the restriction.
* lisp/org-agenda.el (org-agenda-clock-in): Save restriction when clocking in from the agenda
Narrowed org buffers are now retained when clocking in from the agenda.
We only widen the buffer when the task to clock in is outside the existing
restriction.
* lisp/org.el: Honour existing restrictions when regenerating the agenda
Narrowed org buffers are now retained when regenerating the agenda
with org-agenda-redo
* lisp/ob.el (org-babel-common-header-args-w-values): Add the new
header argument name.
(org-babel-insert-result): Respect the value of the :wrap header
argument when inserting results.
(org-babel-result-end): Find the end of arbitrarily named result
blocks.
* lisp/org-indent.el (org-indent-refresh-maybe): Check for new
headlines from the beginning of the line to be sure to catch
any newly inserted headline there.
* lisp/ob-emacs-lisp.el: A comment on the last line of an emacs-lisp
code block would cause an error when the block is was executed. This
fix cures this behaviour.
* testing/lisp/test-ob-emacs-lisp.el: Regression tests for the above
fix.
* org-mobile.el (org-mobile-push): Use `org-agenda-tag-filter'
instead of the obsolete `org-agenda-filter'.
Thanks to Charles Sebold for reporting this.
* org-agenda.el: Add an alias for `org-agenda-filter'.
(diary-list-entries-hook): Use the non-obsolete hook.
(org-agenda-filter-apply): Silent compiler warning.
* ob-ditaa.el (org-ditaa-jar-path): Make a defcustom.
(org-ditaa-jar-option): New option.
(org-babel-execute:ditaa): Use it.
Thanks to Waldemar Reusch for reporting this need.
Thanks to Martyn Jago for the test case
* lisp/ob.el (org-babel-balanced-split): Explicit checking if list
before calling member.
* testing/lisp/test-ob.el (test-ob/org-babel-balanced-split): Testing
the new Emacs22-proof behavior.
Thanks to Martyn Jago for the test case
* lisp/ob.el (org-babel-balanced-split): Explicit checking if list
before calling member.
* testing/lisp/test-ob.el (test-ob/org-babel-balanced-split): Testing
the new Emacs22-proof behavior.
* org.el (org-ctrl-c-ctrl-c): Preserve symmetry when adding
and removing checkboxes with `C-u C-c C-c' on the first item
of a list. Also, don't reinitialize checkboxes that are
already ticked.
Thanks to Nicolas Goaziou for these fixes.
* lisp/org-list.el (org-list-write-struct): Add an optional argument
for structure changes happening outside the function.
* lisp/org.el (org-ctrl-c-ctrl-c): Now, C-u C-c C-c on the first item
of a sub-list should toggle check-box presence of every item in the
same sub-list. Also fix check-box insertion on a single item.
* lisp/org-bbdb.el (org-bbdb-old): New variable.
(org-bbdb-store-link):
(org-bbdb-open): Check for `org-bbdb-old'.
(org-bbdb-open-old):
(org-bbdb-open-new): New functions.
Patch by Ivan Kanis
* lisp/ob.el (org-babel-expand-noweb-references): Rather than using a
pure regexp solution to resolve noweb references, actually check the
information of every code block in the buffer. This will cause a
slowdown in noweb reference expansion, but is necessary for correct
behavior.
* org-odt.el (org-odt-styles-dir): Assume that the styles
files are located under `data-directory' of Emacs distribution
as etc/org/OrgOdtStyles.xml and
etc/org/OrgOdtContentTemplate.xml. Also update docstring.
(org-export-odt-schema-dir): Update docstring.
* org-exp-blocks.el (org-export-blocks-preprocess): Fix regexp
for matching the end of a block.
Thanks to Robert Lupton the Good for reporting this and to Nick
Dokos for digging the issue further.
* org.el (org-open-at-point): Escape link path for http:, https:,
ftp:, news:, and doi: links only if the path contains space or
non-ascii character.
This should take care of mistakenly double-escaped links as reported
by Jeff Horn in <http://article.gmane.org/gmane.emacs.orgmode/48731>.
We are just guessing here and push the responsibility for proper
escaping to the target application.
* org.el (org-refile-get-targets): Ignore headlines without a true
headline.
This fixes a bug reported by Nathan Neff in
<http://article.gmane.org/gmane.emacs.orgmode/50035>.
Headlines with just a keyword are ignored as possible refile target.
* org-publish.el (org-publish-index-generate-theindex): Use
theindex.inc for storing index entries, and theindex.org for
including theindex.inc.
Commit f0d7ac removed the theindex.inc and directly included
index entries in theindex.org. This is not as flexible as using
theindex.org as a page you want to manually edit, which can then
include theindex.inc with proper content.
Thanks to Stefan Vollmar for insisting about this issue.
* lisp/org-odt.el (org-export-odt-default-org-styles-alist):
Add styles for title and subtitle.
(org-odt-format-toc): New.
(org-odt-format-preamble): New. Users can redefine this to
customize what goes before the document body. Currently it
outputs title, author and email, date and toc.
(org-odt-begin-document-body): Use `org-odt-format-preamble'.
(org-odt-format-date): Renamed from
`org-odt-iso-date-from-org-timestamp'. Also added an
additional param for format string.
(org-odt-begin-annotation, org-odt-update-meta-file): Use
`org-odt-format-date'.
* etc/styles/OrgOdtStyles.xml (Title, OrgTitle, Subtitle)
(OrgSubtitle): New styles for formatting title.
Rename `org-on-heading-p' and `org-on-target-p' to
`org-at-heading-p' and `org-at-target-p' to be more
consistent with the org-at-*-p family.
Also define two aliases.
* org.el (org-at-drawer-p): New function.
(org-end-of-line): Use it.
This function make the behavior of C-e in folded drawers consistent
with C-e in folded subtrees: in this case, point moves to the last
invisible characters of the line, not to the last character.
* lisp/ob.el (*org-babel-use-quick-and-dirty-noweb-expansion*):
Controls the method in which noweb references are expanded.
(org-babel-expand-noweb-references): Bring back the option for
regexp-based noweb expansion.
* org.el (org-ctrl-c-ctrl-c): Preserve symmetry when adding
and removing checkboxes with `C-u C-c C-c' on the first item
of a list. Also, don't reinitialize checkboxes that are
already ticked.
Thanks to Nicolas Goaziou for these fixes.
* lisp/org-list.el (org-list-write-struct): Add an optional argument
for structure changes happening outside the function.
* lisp/org.el (org-ctrl-c-ctrl-c): Now, C-u C-c C-c on the first item
of a sub-list should toggle check-box presence of every item in the
same sub-list. Also fix check-box insertion on a single item.
* org-agenda.el (org-agenda-filter-preset): New alias.
(org-agenda-filter-by-category): New command.
(org-agenda-mode-map): Add the new command.
(org-agenda-custom-commands-local-options): Add category
filter preset.
(org-agenda-mark-filtered-text): Mark both tag and filter
overlays.
(org-agenda-category-filter-preset): New variable.
(org-finalize-agenda, org-agenda-redo)
(org-agenda-filter-make-matcher, org-agenda-filter-apply):
Handle both category and tag filters.
(org-agenda-filter-show-all-tag): Rename from
`org-agenda-filter-by-tag-show-all'.
(org-agenda-filter-show-all-cat): New function.
(org-agenda-set-mode-name): Show the category filter in the
modeline.
* org-faces.el (org-agenda-filter-category): New face.
* org.texi (Agenda commands): Update documentation about the
new category filtering feature.
This feature has been requested by several people -- thanks
to all of them for mentioning this possibility.
* lisp/org-bbdb.el (org-bbdb-old): New variable.
(org-bbdb-store-link):
(org-bbdb-open): Check for `org-bbdb-old'.
(org-bbdb-open-old):
(org-bbdb-open-new): New functions.
Patch by Ivan Kanis
* org-agenda.el (org-agenda-write): Rename from
`org-write-agenda'.
(org-agenda-mode-map, org-agenda-menu)
(org-batch-store-agenda-views): Use new name
`org-agenda-write'.
* org.el (org-loop-over-headlines-in-active-region): Fix
docstring.
(org-todo, org-deadline, org-schedule): Honor the 'start-level
value of `org-loop-over-headlines-in-active-region'.
* lisp/org-agenda.el (org-agenda-switch-to): Widen org buffer only if point is
outside the current restriction
Widen org buffer when visiting from agenda only if point is outside
current restriction.
Visiting a task with RET or TAB in the agenda should not affect the
org-mode buffer restriction unless the target task is not currently
visible due to the restriction.
* lisp/org-agenda.el (org-agenda-clock-in): Save restriction when clocking in from the agenda
Narrowed org buffers are now retained when clocking in from the agenda.
We only widen the buffer when the task to clock in is outside the existing
restriction.
* lisp/org.el: Honour existing restrictions when regenerating the agenda
Narrowed org buffers are now retained when regenerating the agenda
with org-agenda-redo
Initialize`org-export-odt-schema-dir' *before* initializing
`org-odt-styles-dir'. This re-arrangement prevents the warning message that
notifies the user of missing OpenDocument schema files not lurk around in
the echo area like a sore-thumb.
* org-odt.el (org-odt-lib-dir): Add docstring.
(org-odt-data-dir): New variable. Use this variable to
control the locations from which the ODT exporter picks the
OpenDocument styles and schema files from. Set this variable
explicitly only if the in-built heuristics for locating the
above files fails.
(org-odt-styles-dir-list, org-odt-schema-dir-list): New
variables. Pay specific attention to (eval-when-compile ...)
form through which Makefile's $(datadir) - contained in
`org-odt-data-dir' - gets compiled in as a "hard coded"
constant.
(org-odt-styles-dir, org-export-odt-schema-dir): Add messages
to aid debugging.
* Makefile (etcdir): Remove this.
(stylesdir): Rename to datadir.
(datadir): Was stylesdir.
(STYLESFILES): Rename to DATAFILES.
(DATAFILES): Was STYLESFILES. Offer a menu of files that is
available. Package maintainers can use this list and their
own discretion to cherry-pick what they are willing to install
in their distribution.
(CP): Add recursive flag so that directories listed in
DATAFILES can be copied enbloc.
(install-lisp): Use conditional flag BATCH_EXTRA
(BATCH_EXTRA): "Target-specific variable value" that plumbs
the value of $(datadir) in to org-odt.el via
`org-odt-data-dir'. See ChangeLog entries for
`org-odt-styles-dir-list' and `org-odt-schema-dir-list'.
(BATCH): Add BATCH_EXTRA.
(lisp/org-odt.elc): Force re-generation of this target every
time so that $(datadir) gets plumbed in to org-odt.el through
`org-odt-data-dir'.
(org-odt-data-dir): "FORCE" target. Also a variable defined
in org-odt.el.
(install-etc): Rename this target to install-data.
(install-data): Was install-etc.
Fix for the following report:
http://lists.gnu.org/archive/html/emacs-orgmode/2011-12/msg00799.html
Ulrich Mueller <ulm@gentoo.org> writes:
In Gentoo we have an issue with the location of the
OpenDocument style files, reported to us in bug 396269 [1].
When org-mode is installed as a separate Gentoo package, its
lisp files are installed in
/usr/share/emacs/site-lisp/org-mode/. According to our
policy, non-lisp files would go to
/usr/share/emacs/etc/org-mode/. We would pass this as the
"etcdir" parameter to "make install", so the odt style files
would be installed in stylesdir =
/usr/share/emacs/etc/org-mode/styles/.
Now org-odt.el currently defines org-odt-styles-dir in a
defconst, and it searches only in ../etc/styles/,
./etc/styles/, and ./etc/org/ relative to lispdir. Obviously
it cannot find the files in the Gentoo location.
[1] <https://bugs.gentoo.org/show_bug.cgi?id=396269>
* org-archive.el (org-archive-subtree)
(org-archive-to-archive-sibling, org-toggle-archive-tag)
(org-archive-set-tag): Handle the 'start-level value for
`org-loop-over-headlines-in-active-region'.
* org.el (org-scan-tags): New parameter `start-level' to
scan only through headlines of that level.
(org-map-entries): New allowed value `region-start-level' for
the `scope' parameter, to allow scanning through headlines of
the same level than the first headline in the region.
(org-loop-over-headlines-in-active-region): New allowed value
'start-level.
This change gives more flexibility when looping over the active
region for commands like `org-schedule', `org-deadline', etc.
By setting `org-loop-over-headlines-in-active-region' to
̀start-level', those command will act upon headlines that are
of the same level than the first one in the region.
* org-archive.el (org-archive-subtree)
(org-archive-to-archive-sibling, org-archive-set-tag)
(org-toggle-archive-tag): Allow to loop over the active region
by using `org-loop-over-headlines-in-active-region'.
* lisp/ob.el (org-babel-expand-noweb-references): Rather than using a
pure regexp solution to resolve noweb references, actually check the
information of every code block in the buffer. This will cause a
slowdown in noweb reference expansion, but is necessary for correct
behavior.
* org-agenda.el (org-agenda-write-buffer-name): New variable.
(org-write-agenda): Use it.
Setting this variable through `org-agenda-exporter-settings' can
be useful -- thanks to Konstantin Ziegler for mentioning this need.
* org-exp.el (org-export-date-timestamp-format): New option to
define the way a timestamp in #+DATE will be exported.
(org-infile-export-plist): Use the new option.
Thanks to Torsten Wagner for this idea.
* org-odt.el (org-odt-styles-dir): Assume that the styles
files are located under `data-directory' of Emacs distribution
as etc/org/OrgOdtStyles.xml and
etc/org/OrgOdtContentTemplate.xml. Also update docstring.
(org-export-odt-schema-dir): Update docstring.
* org-exp-blocks.el (org-export-blocks-preprocess): Fix regexp
for matching the end of a block.
Thanks to Robert Lupton the Good for reporting this and to Nick
Dokos for digging the issue further.
* org.el (org-open-at-point): Escape link path for http:, https:,
ftp:, news:, and doi: links only if the path contains space or
non-ascii character.
This should take care of mistakenly double-escaped links as reported
by Jeff Horn in <http://article.gmane.org/gmane.emacs.orgmode/48731>.
We are just guessing here and push the responsibility for proper
escaping to the target application.
* org-beamer.el (org-beamer-fragile-re): Also recognize
\lstinline and \verb as commands that make a frame fragile.
Thanks to Christoph LANGE for this patch.
* org.el (org-refile-get-targets): Ignore headlines without a true
headline.
This fixes a bug reported by Nathan Neff in
<http://article.gmane.org/gmane.emacs.orgmode/50035>.
Headlines with just a keyword are ignored as possible refile target.
* org-publish.el (org-publish-index-generate-theindex): Use
theindex.inc for storing index entries, and theindex.org for
including theindex.inc.
Commit f0d7ac removed the theindex.inc and directly included
index entries in theindex.org. This is not as flexible as using
theindex.org as a page you want to manually edit, which can then
include theindex.inc with proper content.
Thanks to Stefan Vollmar for insisting about this issue.
* lisp/org-odt.el (org-export-odt-default-org-styles-alist):
Add styles for title and subtitle.
(org-odt-format-toc): New.
(org-odt-format-preamble): New. Users can redefine this to
customize what goes before the document body. Currently it
outputs title, author and email, date and toc.
(org-odt-begin-document-body): Use `org-odt-format-preamble'.
(org-odt-format-date): Renamed from
`org-odt-iso-date-from-org-timestamp'. Also added an
additional param for format string.
(org-odt-begin-annotation, org-odt-update-meta-file): Use
`org-odt-format-date'.
* etc/styles/OrgOdtStyles.xml (Title, OrgTitle, Subtitle)
(OrgSubtitle): New styles for formatting title.
* lisp/ob-ref.el (org-babel-ref-split-args): Now uses
`org-babel-balanced-split'.
* testing/lisp/test-ob.el (test-ob/splitting-variable-lists-in-references):
Test new working behavior.
* org-html.el (org-export-html-preamble)
(org-export-html-postamble): Fix docstrings.
(org-export-as-html): Insert the string used by a custom
function for `org-export-html-pre/postamble'.
The documentation is now in sync with the behavior: a custom
function for `org-export-html-pre/postamble' takes no argument,
and its value is inserted as a string. Before that, users had
to use (insert ...) constructs to insert content in the preamble
through a custom function.
Thanks to Bill Jackson for spotting these inconsistencies.
* org.el (org-block-regexp)
(org-heading-keyword-regexp-format)
(org-heading-keyword-maybe-regexp-format): Move up to keep the
byte-compiler happy.
* org-special-blocks.el (org-html): Require 'org-html.
(org-open-par, org-close-par-maybe): Declare as functions.
* ob.el (org-reduce): Declare as a function.
(org-current-export-file): Declare.
* ob-ref.el (org-babel-update-intermediate): Make a defvar.
* org-agenda.el (org-agenda-do-tree-to-indirect-buffer): New
function.
(org-agenda-tree-to-indirect-buffer): Use the new function.
TINYCHANGE
Without this change, `org-agenda-follow-indirect' tends to cause the
window configration to bounce around chaotically as you move from item
to item.
* org-html.el (org-export-as-html): Fix bug when inserting the
output of a custom function for the pre/postamble.
Thanks to Bill Jackson for raising a related issue.
* lisp/ob.el (org-babel-expand-noweb-references): Fixed regexp.
* testing/lisp/test-ob.el (test-ob/noweb-expansion): Test both named
code block and noweb-ref header argument references.
* org-html.el (org-export-as-html): Apply
`org-export-html-get-todo-kwd-class-name' to the class
attribute of the todo-keyword span tag, not to its text content.
The problem was that special characters in todo keywords were being
replaced by underscore. This was meant to happen to the class
attributes set around them.
TINYCHANGE
This only swaps two arguments to a concat.
* org-agenda.el (org-agenda-get-timestamps)
(org-agenda-get-sexps): Use face for highlighting "calendar"
events.
* org-faces.el: Add faces `org-agenda-calendar-event' and
`org-agenda-calendar-sexp'.
* lisp/org-clock.el (org-clock-out-if-current): Fix marker in no buffer error
for task state change in an indirect buffer
org-clock-out-when-current was enhanced in 098cf35 (Clock: Clock out
when done also in indirect buffers, 2009-03-23) to handle indirect
buffers.
This enhancement uses (buffer-base-buffer (org-clocking-buffer)) but
when not clocking (org-clocking-buffer) returns nil - so
buffer-base-buffer returns the base buffer of the current buffer which
is never nil. This leads to marker in no buffer errors trying to stop
the clock when it is not running.
Now we explicitly check up front that the clock is running before
any other conditions that lead to stopping the clock.
* doc/org.texi (External links): Document the link types file+sys and
file+emacs, slightly narrow used page width.
* lisp/org.el (org-offer-links-in-entry): Make list when assigning a
single link.
"M-1 C-c C-o" or (org-open-at-point 1) or (org-offer-links-in-entry 1)
on a headline followed by two links enters Lisp error. Both changes
are remainders of the commit release_6.33f-189-g3e0c61d.
Given that arbitrary regions may already be hidden using a drawer the
ability to hide any named entity is redundant. In addition the name
based hiding does not mix well with other keywords.
Thanks to Nicolas Goaziou for raising this issue and suggesting the
removal of #+name based hiding.
* lisp/ob.el (org-babel-expand-noweb-references): Rather than collect
the info from *every* block in the current buffer, simply regexp
search for those blocks which appear to match the continued source
name.
* lisp/ob.el (org-babel-insert-result): Do not examplize wrapped
scalar results, simply wrap them.
(org-babel-result-end): Find the end of results wrapped in a RESULTS
drawer.
* org-special-blocks.el
(org-special-blocks-convert-html-special-cookies): Close paragraph
before opening or closing the <div>, and open paragraph after. Also
changed newline placement to be the same as for other blocks.
The problem was that special blocks did not produce well-formed HTML
because they wrapped the opening and closing
<div> tags in <p> tags.
TINYCHANGE
This patch only borrows a few lines from the handling of `CENTER'
blocks in org-export-as-html.
Format for fields which contain the result of a formula.
For example, using \"~%s~\" will display the result within tilde
characters. Beware that modifying the display can prevent the
field from being used in another formula.
Based on an idea of Dov Grobgeld.
* org-exp.el (org-export-normalize-links): Mark bracket links before
normalization to avoid erroneous normalization of bracket link parts.
This fixes a bug reported by M. Bauer at
<http://thread.gmane.org/gmane.emacs.orgmode/49756> and allows proper
normalization of bracket links with a link in the query part, e.g.
[[http://example.tld?q=http://example.tld][Example]]
* lisp/org-capture.el (org-capture-set-target-location): Set the capture
default time also to the prompt time.
In the file+datetree+promt target type, the user is being asked for a
date, where to file an entry. In the template, there can the escape
placeholders for active and inactive time stamps. So far, these were
filled with todays date. This patch changes this behavior, so that
also at %t and %u escaped, the date entered at the prompt will be
used.
Reported by Erik Hetzner.
* lisp/org-exp.el (org-export-res/src-name-cleanup): Remove #+name and
#+results lines during preprocess.
Now Babel doesn't handle anymore those keywords cleanup (as #+name may
be used for other thing than code evaluation), that task is moved to
org-export.el. See commit 25a0a02121.
Thanks to Thorsten Jolitz for contributing support for this new
language.
* Makefile (LISPF): Add ob-picolisp to the Makefile.
* contrib/babel/langs/ob-picolisp.el: Remove from contrib.
* lisp/ob-picolisp.el: Add to core lisp directory.
* lisp/org.el (org-babel-load-languages): Add Pico Lisp to the list of
supported code block languages.
* doc/org.texi (eval): Documenting the full range of :eval header
argument values.
* lisp/ob.el (org-babel-confirm-evaluate): Adding support for new
range of :eval header arguments.
* testing/lisp/test-ob.el (test-ob/eval-header-argument): Testing the
:eval header argument.
* doc/org.texi (eval): Documentation of the new :eval option.
* lisp/ob.el (org-babel-confirm-evaluate): Inhibit evaluation during
export when eval is set to "non-export".
* lisp/ob-ref.el (org-babel-update-intermediate): New custom variable.
(org-babel-ref-resolve): Optionally update the in-buffer results of
code blocks which are evaluated to resolve references.
* lisp/ob.el (org-babel-join-splits-near-ch): Rejoins a list of a
split string when a character appears on either side of the split.
(org-babel-parse-multiple-vars): Rejoin splits around "=" signs.
* lisp/ob-exp.el (org-babel-exp-lob-one-liners): Don't limit
in-verbatim check to inline code blocks, do lob code blocks as well.
* testing/lisp/test-ob-lob.el (test-ob-lob/do-not-eval-lob-lines-in-example-blocks-on-export):
Test ensuring that #+call lines in verbatim blocks are not evaluated
* lisp/org.el (org-todo): Interpret 0 prefix arg as note inhibitor.
Sometimes I want to quickly make a few TODOs done in the agenda and I
want to bypass the note taking I have normally set up. With this
change, I can press `0 t d' in the agenda to do this.
* lisp/ob.el (org-babel-named-src-block-regexp-for-name): Ensure that
partial names are not matched.
(org-babel-named-data-regexp-for-name): Ensure that partial names
are not matched.
* testing/lisp/test-ob.el (test-ob/do-not-resolve-to-partial-names-data):
Test to ensure that partial names are not matched.
* lisp/ob-ref.el (org-babel-ref-resolve): Search for named code blocks
before named data.
* lisp/ob.el (org-babel-named-data-regexp-for-name): New function for
finding named data.
* testing/lisp/test-ob.el (test-ob/resolve-code-blocks-before-data-blocks):
Test to ensure that named references are resolved in the correct
order.
* lisp/ob-ref.el (org-babel-ref-resolve): Don't change location when
looking at the contents.
* testing/lisp/test-ob.el (test-ob/catches-all-references): Test
enforcing the correct behavior.
* org.el (org-set-outline-overlay-data): Use outline-flag-region to make a
region invisible. This ensures all necessary actions, especially adding
isearch-open-invisible property, are applied.
* lisp/ob.el (org-babel-find-named-result): Downcase "name" before comparison.
* testing/lisp/test-ob.el (test-ob/does-not-replace-a-block-with-the-results):
Test that named code blocks are replaced with their results.
* lisp/ob-exp.el (org-babel-in-example-or-verbatim): Some valid
execution contexts (e.g., call lines) look like commented lines.
* lisp/ob.el (org-babel-get-src-block-info): Empty match string
doesn't count.
(org-babel-process-params): Always process parameters, even if you
don't to table splitting.
* testing/lisp/test-ob-C.el (ob-C/table): Ignore failures for this C
test.
* testing/lisp/test-ob-fortran.el (ob-fortran/input-var): Ignore
failures for this fortran test.
This results in the following behavior.
#+property: var foo=1
#+property: var+ bar=2
#+begin_src emacs-lisp
(+ foo bar)
#+end_src
#+results:
: 3
#+begin_src emacs-lisp
(org-entry-get (point) "var" t)
#+end_src
#+results:
: foo=1 bar=2
* overwriting a file-wide property
:PROPERTIES:
:var: foo=7
:END:
#+begin_src emacs-lisp
foo
#+end_src
#+results:
: 7
#+begin_src emacs-lisp
(org-entry-get (point) "var" t)
#+end_src
#+results:
: foo=7
* appending to a file-wide property
:PROPERTIES:
:var+: baz=3
:END:
#+begin_src emacs-lisp
(+ foo bar baz)
#+end_src
#+results:
: 6
#+begin_src emacs-lisp
(org-entry-get (point) "var" t)
#+end_src
#+results:
: foo=1 bar=2 baz=3
* lisp/org.el (org-update-property-plist): Updates a given property
list with a property name and a property value.
(org-set-regexps-and-options): Use org-update-property-plist.
(org-entry-get): Use org-update-property-plist.
* testing/examples/property-inheritance.org: Example file for testing
appending property behavior.
* testing/lisp/test-property-inheritance.el: Tests of appending
property behavior.
* lisp/ob.el (org-babel-balanced-split): Allow splitting on single
characters as well as groups of two characters.
(org-babel-parse-multiple-vars): Split variables on single spaces.
Nick Dokos <nicholas.dokos@hp.com> writes:
> Eric Schulte <schulte.eric@gmail.com> wrote:
>
>> The attached updated patch fixes a bug in the original.
>>
>
> Minor problem in applying:
>
> ,----
> | $ git apply ~/Mail/inbox/724
> | /home/nick/Mail/inbox/724:671: trailing whitespace.
> | #+name:
> | /home/nick/Mail/inbox/724:599: new blank line at EOF.
> | +
> | warning: 2 lines add whitespace errors.
> `----
The attached version fixes these issues, Thanks -- Eric
>From 0e43d59ee8d46a63f86780a502de726271bc39de Mon Sep 17 00:00:00 2001
From: Eric Schulte <schulte.eric@gmail.com>
Date: Fri, 28 Oct 2011 10:44:21 -0600
Subject: [PATCH] removing code block, results and call-line synonyms -- BREAKING CHANGE
Following a round of on-list discussion many code block synonyms have
been removed, moving forward the following syntax is valid.
- call lines are specified with #+call:
- code blocks are named with #+name:
- results are named with #+name:, however results generated by a code
block may still be labeled with #+results:, and tables named with
#+tblname: will be considered to be named results
The following function may be used to update an existing Org-mode
buffer to the new syntax.
(defun update-org-buffer ()
"Update an Org-mode buffer to the new data, code block and call line syntax."
(interactive)
(save-excursion
(flet ((to-re (lst) (concat "^[ \t]*#\\+" (regexp-opt lst t)
"\\(\\[\\([[:alnum:]]+\\)\\]\\)?\\:[ \t]*"))
(update (re new)
(goto-char (point-min))
(while (re-search-forward re nil t)
(replace-match new nil nil nil 1))))
(let ((old-re (to-re '("RESULTS" "DATA" "SRCNAME" "SOURCE")))
(lob-re (to-re '("LOB")))
(case-fold-search t))
(update old-re "name")
(update lob-re "call")))))
Note: If an old version of Org-mode (e.g., the one shipped with Emacs)
is installed on your system many of the important variables will
be pre-defined with a defvar and *will not* have their values
automatically updated, these include the following.
- org-babel-data-names
- org-babel-result-regexp
- org-babel-src-block-regexp
- org-babel-src-name-regexp
- org-babel-src-name-w-name-regexp
It may be necessary to either remove the source code of older
versions of Org-mode, or to explicitly evaluate the ob.el file.
* lisp/ob-exp.el (org-exp-res/src-name-cleanup): Updated
Documentation.
* lisp/ob-lob.el (org-babel-block-lob-one-liner-regexp): Updated
regular expression.
(org-babel-inline-lob-one-liner-regexp): Updated regular expression.
* lisp/ob-ref.el (org-babel-ref-resolve): Notice when something that
looks like a data results may actually be a code block.
* lisp/ob-table.el: Updated documentation.
* lisp/ob.el (org-babel-src-name-regexp): Simplified regexp.
(org-babel-get-src-block-info): Updated match strings.
(org-babel-data-names): Simplified acceptable names.
(org-babel-find-named-block): Indentation.
(org-babel-find-named-result): Updated to not return a code block as
a result.
* lisp/org.el (org-fontify-meta-lines-and-blocks-1): Removing
references to old syntactic elements.
(org-additional-option-like-keywords): Removing references to old
syntactic elements.
* contrib/babel/library-of-babel.org: Updated to make use of the new
syntax.
* testing/examples/babel-dangerous.org: Updated to make use of the new
syntax.
* testing/examples/babel.org: Updated to make use of the new syntax.
* testing/examples/ob-awk-test.org: Updated to make use of the new
syntax.
* testing/examples/ob-fortran-test.org: Updated to make use of the new
syntax.
* testing/lisp/test-ob.el: Removed two bad tests which tested the
literal values of old regular expressions rather than their
behavior.