Bastien | 13 Dec 00:45 2011

Release 7.8.01

Dear all,

I'm releasing 7.8.01.  7.8 has a bug about HTML publishing,
please don't use it.

Below is the list of changes, also accessible on the website:

Special thanks to Jambunathan, Nicolas, Eric and Carsten for
their work on this release.  I won't tell how excited I am by
all these new changes: we waited long for the ODT exporter to
be in Org's core, and we can now celebrate this achievement!  
Thanks again to Jambunathan for his steady support here.  We 
also waited long for having a new parser/exporter and this
is what Nicolas has been silently achieving: the promises of 
this code will unfold as we will write new exporters and 
rewrite old ones.  Also thanks to Eric for his patience in 
sorting out key standardization issues about code blocks.

Long life to Org!

Version 7.8


- Jambunathan's ODT exporter is now part of Org's core.
- Nicolas' new export engine is now part of =contrib/=
- Standard code block keywords
- 10 new committers
- Many bugfixes

See below for details.

New committers who signed the FSF copyright assigment 

Here is the list of new contributors who signed the FSF papers
since Org 7.7 - welcome, and thanks for your contributions!

- Andreas Leha
- Christian Moe
- Julian Gehring
- Max Mikhanosha
- Michael Brand
- Niels Giessen
- Pieter Praet
- Sergey Litvinov
- Thomas Holst
- Thorsten Jolitz

The ODT exporter is now part of Org's core 

- Full refresh of the OpenDocument Text section in the
  manual.  All new features listed below are fully-documented.
- Associate custom styles on per-file basis using
  =#+ODT_STYLES_FILE:= directive.
- Fontify code listings using an enhanced version of
  =htmlfontify.el= and generate line numbers natively.
- Embed MathML and OpenDocument formula files.
- Use LaTeX to MathML converter -- say MathToWeb
  ([]) -- for handling LaTeX Math
- In tables, use column width cookies to control relative width
  of columns.
- Also for tables, you can specify custom styles using
  =#+ATTR_ODT:= lines.
- Lots of bug fixes.


The following features are /experimental/.  These features are
specific to the ODT export engine and their implementation and
usage could change considerably in future versions.

- Support for list tables -- see this [message on the list].
- Support for annotation blocks -- see this [message on the list].

Special thanks to Jambunathan for his work and his patience
through the process of integrating this vital contribution into
Org's core.

[message on the list]:
[message on the list]:

New export engine by Nicolas 

See the comment sections in org-element.el and in org-export.el
(in =contrib/lisp/=).  Also check the experimental LaTeX exporter
using in =EXPERIMENTAL/org-e-latex.el=.

Check Nicolas' announcement [on the list] and hack around!

Thanks a lot to Nicolas for this great and promising achievement.

[on the list]:

Incompatible changes 

Standardized code block keywords 

Following a round of on-list discussion, many code block synonyms
have been removed.  You can safely move forward the following

- call lines are specified with #+call:
- code blocks are named with - results are named with   code block may
  still be labeled with   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."
      (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

- =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.

Removed the =#+BABEL:= keyword 

Code block header arguments may now be specified using the
standard =#+Property:= keyword.  See [Property names ending in `+'
accumulate] for more information on the extended property syntax. 

[Property names ending in `+' accumulate]: #accumulating-property-keywords

Deleted =org-mode-p= ([git]) 

This function has been deleted: please update your hacks if you
relied on it.


New features and user-visible improvements 

Day names are optional when you type timestamps manually ([git]) 

You can type "<2011-12-12>" or [2011-12-12] and modify this timestamps with
S-<right> like other timestamps.  Thanks to Carsten for implementing this.


Improved filtering through =org-agenda-to-appt= ([git]) 

The new function allows the user to refine the scope of entries
to pass to =org-agenda-get-day-entries= and allows to filter out
entries using a function.

Thanks to Peter Münster for raising a related issue and to
Tassilo Horn for this idea.  Also thanks to Peter Münster for
[fixing a small bug] in the final implementation.

[fixing a small bug]:;a=commit;h=68ffb7a7

=org-agenda-date-later= jumps to today when modifying past date ([git]) 

The command =org-agenda-date-later= (<S-right> in the Agenda
Mode) directly jumps to today.  Thanks to Carsten for
implementing this.


Use prefix arg 0 to inhibit note taking for TODO change ([git]) 

See Carsten's comment: "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."

Thanks to Carsten for implementing this.


Various improvements to =org-indent.el= 

Nicolas Goaziou worked on refactoring and improving
=org-indent.el=, which should now be faster.  It also better
combines with =visual-line-mode=.

Property names ending in =+= accumulate 

This results in the following behavior.

=org-agenda-custom-commands= has a default value ([git]) 

This option used to be `nil' by default.  This now has a default
value, displaying an agenda and all TODOs.  See the docstring for
details.  Thanks to Carsten for this.


=outline-demote/promote= points to =org-demote/promote-subtree= 

Users who use this outline commands in =outline-mode= will want
them to behave the Org way in Org.  Thanks to Michael Brand for
the suggestion.

New escape characters for =org-log-note-headings= ([git]) 

The option =org-log-note-headings= now supports %d and %D for
inactive and active timestamps.  This affect the behavior of the
command =org-store-log-note=.  Thanks to John J Foerch for a
patch for this.


New command =org-table-transpose-table-at-point= ([git]) 

See the docstring.  This hack from Juan Pechiar is now part of
Org's core.  Thanks to Juan!


Allow recursive edit of minibuffer ([git]) 

You can now use the command =C-c != (=org-time-stamp-inactive=)
when prompted e.g. for a link name.  This is because the central
function =org-completing-read= now support recursive edit.  Only
=C-c != is available at the moment, but if you can think of a
useful command to use, please let me know.

Thanks to Skip Collins for the idea and to Nick Dokos for the


Allow dynamic construction of the publishing destination ([git]) 

Thanks to Kai Tetzlaff for adding this.


Set the capture default time to the prompt time ([git]) 

In the file+datetree+promt target type, the user is being asked
for a date, where to file an entry.  In the template, he can use
the escape placeholders for active and inactive time stamps.  So
far, these were filled with todays date.  This behavior changed
so that, also at %t and %u, the date to use is the one entered at
the prompt.

Reported by Erik Hetzner and fixed by Carsten.


=org-agenda-skip-additional-timestamps-same-entry= defaults to `nil' ([git]) 


org-sudoku.el -- small sudoku solver 

Carsten wrote org-sudoku.el, a little sudoku solver, which lives
in the contrib/ directory.

From [his message]: "my daughter got stuck with a couple of SUDOKU
puzzles during the vacation (where wh had no internet
connection), so I hacked a small SUDOKU solver that reads a 9x9
Org table and solves it as a sudoku puzzle.  A little silly, but
maybe fun for someone - I have pushed it into the contrib/lisp

[his message]:

Code Block related features and improvements 

Added [tikzDevice] support to ob-R.el 


Support for Pico Lisp code blocks 

Thanks to Thorsten Jolitz Pico Lisp code blocks are now
supported.  See =ob-picolisp.el= for more information.

Extension to the =eval= code block header argument 

The =eval= code block header argument now accepts four (six)
possible values the meaning of which is shown in the table below.

  never or no                 The code block will not be evaluated under any      
  query                       Evaluation of the code block will require a query.  
  never-export or no-export   The code block will not be evaluated during export  
                              but may still be called                             
  query-export                Evaluation of the code block during export will     
                              require a query.                                    

Update of intermediate results during code block evaluation 

When set to t, the new =org-babel-update-intermediate= variable
will update in-buffer results for code blocks which are evaluated
in the resolution of a variable reference.  This can be used to
ensure that the latest returned results are always shown in

Support for Fortran code block is now in the core 

Thanks to Sergey Litvinov for contributing this support.

The =sbe= function allows header argument specification 

If first variable is a string and not a cons cell, then interpret
it as a string of header arguments to be passed to the code

Support for Shen code blocks 

See [] for information on Shen.

A major mode for shen code blocks is available through the GNU

New options and faces 

New option =org-export-html-headline-anchor-format= ([git]) 

Format for anchors in HTML headlines.

It requires to %s: both will be replaced by the anchor referring
to the headline (e.g. "sec-2").  When set to `nil', don't insert
HTML anchors in headlines.

This was requested by Alan L Tyree.


New option =org-table-formula-field-format= ([git]) 

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.

Thanks to Dov Grobgeld for this idea.


New option =org-loop-over-headlines-in-active-region= ([git]) 

When set to `t', some commands will loop over the active
region.  Currently, =org-schedule= and =org-deadline= uses this
option: pressing =C-c C-s= or =C-c C-d= when the region is active
will let you schedule/deadline all the visible headlines in the

Thanks a lot to David Maus for implementing this.


New option =org-catch-invisible-edits= ([git]) 

This option makes it possible to check what is the right thing to do before
editing invisible regions.  Here are the possible values of this option:

+nil              Do not check, so just do invisible edits.
+error            Throw an error and do nothing.
+show             Make point visible, and do the requested edit.
+show-and-error   Make point visible, then throw an error and abort the edit.
+smart            Make point visible, and do insertion/deletion if it is
                  adjacent to visible text and the change feels predictable.

See the docstring for more details.

Thanks to Carsten for implementing this.


New option =org-export-latex-table-caption-above= 

Let the user place a caption above its table in LaTeX.
Thanks to Thomas Dye for a patch to this effect.

New option =org-agenda-follow-indirect= ([git]) 

By setting `org-agenda-follow-indirect' to a non-nil value,
`org-agenda-follow-mode' will use an indirect buffer to display
only the current item, rather than the whole agenda file in which
it lives.  

Thanks to Dave Abrahams for implementing this.


New option =org-refile-active-region-within-subtree= ([git]) 

Non-nil means also refile active region within a subtree.

By default =org-refile= doesn't allow refiling regions if they
don't contain a set of subtrees, but it might be convenient to do
so sometimes: in that case, the first line of the region is
converted to a headline before refiling.

Thanks to Jeff Horn for raising the issue of refiling a list
item, and to Nicolas Goaziou, Nick Dokos and Suvayu Ali for
discussing them patiently.  


New option =org-latex-to-mathml-convert-command= 

This option lets you specify a way to convert LaTeX fragments to
MathML.  See also =org-latex-to-mathml-jar-file= and the
docstring of =org-create-math-formula=.

Thanks to Jambunathan K for implementing this.

New option =org-properties-postprocess-alist= ([git]) 

See its docstring:

Alist of properties and functions to adjust inserted values.
Elements of this alist must be of the form

  ([string] [function])

where [string] must be a property name and [function] must be a
lambda expression: this lambda expression must take one argument,
the value to adjust, and return the new value as a string.

For example, this element will allow the property "Remaining"
to be updated wrt the relation between the "Effort" property
and the clock summary:

       (let ((clocksum (org-clock-sum-current-item))
             (effort (org-duration-string-to-minutes
                     (org-entry-get (point) "Effort"))))
         (org-minutes-to-hh:mm-string (- effort clocksum))))))

This is inspired by a request from Pascal Mattia.


New options =org-habit-today-glyph= and =org-habit-completed-glyph= ([git]) 

This gives you control over the character used for displaying
today (default is `!') and days on which a task has been
completed (default is `*').  Thanks to John Wiegley for this.


New option =org-bibtex-type-property-name= ([git]) 

Configurable property name for bibtex entry types.  Thanks to
Eric Schulte for this.


New face =org-agenda-filter-tags= ([git]) 

This face is used for highlighting the tag(s) filter in the
modeline.  Thanks to Sébastien Vauban for this idea and its


New faces =org-agenda-calendar-event= and =org-agenda-calendar-sexp= ([git]) 

=org-agenda-calendar-event= is the face used to show events and
appointments in the agenda, and =org-agenda-calendar-sexp= the
one used to show events computed from a S-expression.  

Thanks to Sébastien Vauban for this addition.


Important bugfixes 

Respect =org-export-with-tags= when exporting a subtree ([git]) 

Thanks to Suvayu Ali for spotting this problem and fixing it.


Fix XEmacs compatibility issue when creating an indirect buffer ([git]) 

Thanks to Michael Sperber for this fix.