Hyperlinks in the form "info:file#node" work with plain spaces in the
"node" part and do not need to have spaces encoded as %20. This is
the case for me, who is using the Debian emacs-snapshot package,
version 20110926-1.

* org.texi (External links): Add footnote on how the behavior of the
text search in Org files are controled by the variable
org-link-search-must-match-exact-headline.

This change is necessary in order to avoid misleading the user as
regards of the behavior of the search, in particular because the
default value of org-link-search-must-match-exact-headline is
'query-to-create.

> The patch looks good but I'd like to understand it better.
> Can you send an example configuration working with your patch?

In org-publish-project-alist, i have HTML publishing projects which
should be published to different target directories depending on e.g.
where emacs is running (which i determine in my init files using the MAC
address of the default GW, the name the machine, ...).

Here is an example: At home, i publish to a local directory
(:publishing-directory "~/tmp/publish-test") but at work i would like to
publish directly to a webserver (:publishing-directory
"/plinkx:doxydoc:~/public_html/publish-test" - this is on w32, using
tramps PuTTY/plink). To avoid having to change the definition of the
publishing project when i change locations i would like to construct the
actual value of :publishing-directory by calling a function:

Depending on the location i'm in, 'kt:org-default-publishing-dir' would
be set to either "~/tmp" or "/plinkx:doxydoc:~/public_html". Without the
patch, the example above does not work as the value of
:publishing-directory does not get evaluated.

Thanks for the hint. I've attached a revised version of the patch which
includes a changelog/commit msg - i hope that works for you.

Publish: allow dynamic construction of the publish destination.

* org-publish.el (org-publish-file): Added 'eval'ing the value of the
:publishing-directory property before using it as destination of the
publishing project. This allows to construct the publish destination
directory dynamically at run-time using the return value of a
function.

* contrib/odt/styles/OrgOdtContentTemplate.xml: Added styles
for working with applying table templates.

The exporter with it's factory settings doesn't depend on the
availability of these styles for formatting - i.e., these
styles should ideally be created by the user himself depending
on his tastes. However considering the complexity & verbosity
of these styles these have been included to:
- illustrate how the table templating facilitites can be
exploited by the user
- enable unit-testing of table template changes

>> I use a very recent emacs 24 bzr checkout and org master from git.
>> Not sure who's the culprit.
>
> Same problem here. After a quick look it seems that there has been a
> recent change in the arguments taken by the completion-table-case-fold
> function in minibuffer.el :
>
> http://bzr.savannah.gnu.org/lh/emacs/trunk/revision/105991

* contrib/lisp/org-lparse.el
(org-lparse-table-get-colalign-info): Renamed
`org-forced-aligns' to `org-col-cookies'. Renamed local
variable `forced-aligns' to `col-cookies'.
(org-lparse-format-table-row): With the introduction of
`org-col-cookies' property the internal structure of
`org-lparse-table-colalign-info' has changed. Do the right
thing while setting up col alignment. Pass on the colwidth
property as horiz-span arg of `TABLE-CELL' callback.

* contrib/lisp/org-odt.el (org-odt-begin-table): Let the table
style be settable throught #+ATTR_ODT line. By default tables
are configured to occupy 90% of paper width. This is too big
for smaller tables. For aesthetic reasons, a user might
prefer that such tables of shorter width and thus specify a
different style.
(org-odt-end-table, org-odt-format-table-cell): Honor colwidth
specification.

* lisp/org-exp.el (org-store-forced-table-alignment): Parse
the column cookie for both alignment and width specification.
Store the resulting value in `org-col-cookies' property.
Retire the previously used `org-forced-aligns' property for
consistency. Renamed local variable `aligns' to `cookies'.
* lisp/org-html.el (org-format-org-table-html): Use
`org-col-cookies'. Renamed local variable forced-aligns to
col-cookies.

This is a preparatory patch. A backend can look at the colwidth
specification and (at it's discretion) use it to control relative
sizes of individual columns in a table. At this moment, it is unclear
whether the widths used to control the display of table in Org buffer
can be overloaded to also control the formatting of table in a
backend.

* contrib/lisp/org-odt.el (org-odt-get-label-definition): If a
label cannot be resolved, issue a warning and return nil.
(org-odt-fixup-label-references): Nothing to fixup if a
referenced label is not seen by the odt exporter.

* lisp/ob.el (org-babel-common-header-args-w-values): New variable to
hold common header arguments and their default values.
(org-babel-header-arg-names): Redefined using the new common header
arg variable.
(org-babel-insert-header-arg): New function to help when inserting
header arguments.

org-crypt: when running `org-decrypt-entry', only run `auto-save-mode' check if on an encrypted entry

* lisp/org-crypt.el (org-crypt-check-auto-save): New function, see next change.
* lisp/org-crypt.el (org-decrypt-entry): Break the auto-save-mode check out
into a separate function, and call it at a later point, to assure it only
runs when visiting an encrypted entry.

Currently `org-decrypt-entry' is doing the auto-save-mode check whenever
it's run, regardless of context, while this only makes sense when run on
an entry which is actually encrypted (or looks like it, at least).

Continue numbering from any previous numbered snippet with +n, even when previous numbered snippet does not immediately precede it.

* org-mode/lisp/org-exp.el (org-export-number-lines):

Check whether number parameter (this is a numbered block!) is
non-nil as well as whether cont is nil (this numbered block should
*not* continue numbering where we left off before!) before resetting
the count to zero.

From the docs:

If you use a `+n' switch, the numbering from the previous
numbered snippet will be continued in the current one.

Make org-open-at-point only ask once whether new header should be created

* lisp/org.el (org-open-at-point): Make org-open-at-point only ask once
about creating a new headline

When following "thisfile" links org-open-at-point is kind enough to
retry org-link-search again after widening the buffer it can't be
found. However org-link-search also asks the question "No match -
create this as a new heading? (y or n)" when target can't be
found. This means that the question is asked twice when following a
nonexistent link and answering no.

This is fixed by setting org-link-search-inhibit-query in first try,
so only second invocation asks the question.

> I would change the doc for org-refile-targets to say that the resulting
> list of targets is the union of all the targets matched by each cons
> cell. I think you could take that pretty much verbatim.
>

Funny enough, I noticed this too last week, so I whipped up this patch.
It inserts the range when start date is the same as the end date. Please
test (it's still young) && include in Org if you so please.

* lisp/org-list.el (org-list-parents-alist): When no parent is found
for an item, set it as the closest less indented item above. If
none is found, make it a top level item.
(org-list-write-struct): Externalize code.
(org-list-struct-fix-item-end): New function.
(org-list-struct): Remove a now useless fix.
* lisp/org.el (org-ctrl-c-ctrl-c): Use new function.

* lisp/org.el (org-end-of-line): When on an item, move point at the
end of the line, but before any hidden text. Thus, it's still
possible to use commands, like C-c C-c, acting at items. This is
still disabled if `org-special-ctrl-a/e' ignores C-e.

* lisp/org-footnote.el (org-footnote-goto-definition): This patch
makes sure the function says when a definition has been found.
Thus, moving from the reference to the definition doesn't offer to
create the latter again.

* lisp/org-footnote.el (org-footnote-create-definition): When the tag
is missing, it is created before any existing footnote, or at end of
buffer. In the latter case, the marker pointing at the position
where the new footnote is going to be inserted (at end of buffer)
stays before the tag. This patch makes sure that the marker will be
kept after the tag.