* org.el (org-update-parent-todo-statistics): fix bug when
updating statistics from the column view.
This was reported by James Deaton and confirmed by Bernt Hansen.
* org.el (org-narrow-to-block): New function to narrow to block.
Bound this function to `C-x n b'.
* org.texi (Dynamic blocks, Structure editing): Mention
the function `org-narrow-to-block'.
This is inspired by a request by Leonidas Tsampros.
On Sat, Jan 29 2011, Matt Lundin wrote:
> The regexp in org-link-expand-abbrev does not allow for accented
> characters in the link abbreviation. I am not sure whether this is an
> intended limitation or a bug. :)
I don't see any reason. Patch attached.
>From 1ec1e178aaa6a9935819a873ae492be7a2ddb2f6 Mon Sep 17 00:00:00 2001
From: Julien Danjou <julien@danjou.info>
Date: Mon, 31 Jan 2011 21:19:07 +0100
Subject: [PATCH] Allow more char type in link abbrev
* org.el (org-link-expand-abbrev): Allow any type of character
in link expand.
Signed-off-by: Julien Danjou <julien@danjou.info>
On Jan 26, 2011, at 10:34 AM, Eli Zaretskii wrote:
> The file org-complete.el, added about a month ago, causes a file-name
> clash with org-compat.el after 8+3 truncation. This causes trouble
> when unpacking Emacs tarballs on DOS filesystems.
Also rename org-complete-* functions in org-pcomplete.el and remove a
wrong reference to org-complete in doc/org.texi.
We still use org-complete-* namespace for the custom group and the
custom variables.
I just found a left over in org-list.el. :)
Updated patch attached.
>From bf6c65a42e04d4753c58795442a479685bb5f318 Mon Sep 17 00:00:00 2001
From: Julien Danjou <julien@danjou.info>
Date: Wed, 26 Jan 2011 11:14:11 +0100
Subject: [PATCH] org: remove org-invisible-p
* org.el: Remove org-invisible-p: outline-invisible-p is
available in Emacs 22 and in recent XEmacs 21. Replace in
various files.
Signed-off-by: Julien Danjou <julien@danjou.info>
* lisp/org.el (org-occur-next-match): New function.
(org-mode): Set the variable `next-error-function'.
(org-highlight-new-match): Add an `org-type' property to the overlays.
* doc/org.texi (Sparse trees): Document the next-error / previous-error
functionality.
After a sparse tree construction, `M-g n' and `M-g p' will now jump to
the location of matches.
* Makefile (LISPF): Add org-special-blocks to the list of Lisp files
* lisp/org-special-blocks.el (htmlp):
(latexp):
(line): Add defvars for dynamically scoped variables.
* lisp/org.el (org-modules): Move org-special-blocks into
the core modules section.
* lisp/org.el (org-get-category): New optional argument FORCE-REFRESH.
Automatically refresh if the property is not there.
(org-entry-properties): Remove refresh - this is now done in
org-get-category.
* lisp/org-clock.el (org-clock-insert-selection-line): Let `org-get-category'
do the property refresh.
* lisp/org-archive.el (org-archive-subtree): Force a refresh of
category properties.
Based on a patch by Julien Danjou.
* org-icalendar.el (org-print-icalendar-entries): Do not manually
refresh categories.
* org-clock.el (org-clock-insert-selection-line): Do not manually
refresh categories.
* org.el (org-get-category): Refresh categories if no category found.
(org-entry-properties): Do not manually refresh categories.
(org-prepare-agenda-buffers): Do not manually refresh categories.
It seems a very bad thing to call manually for a category refresh. It
seems better to try to refresh if we do not have a category.
Signed-off-by: Julien Danjou <julien@danjou.info>
* lisp/org.el (org-before-first-heading-p): If point is on an org-mode heading line then we are not before the first heading
If point is anywhere on the first line of the first heading then we
are not before the first heading. This makes
org-before-first-heading-p returns t instead of nil when on the '*' or
blank of the first level 1 heading in an org file.
This was noticed when the first heading has an encryption
tag :crypt:. C-c C-r would not decrypt this entry if point is at the
beginning of the line since it was considered before the first
heading.
* org-capture.el (org-capture-fill-template): Use `org-set-property'
directly.
* org.el (org-set-property): Split property and values reading.
(org-read-property-name, org-read-property-value)
(org-set-property-function): New functions.
(org-property-set-functions-alist): New variable.
The goal of this patch is to introduce a special variable
`org-property-set-functions-alist'. This variable allows to read
properties values in a more intelligent way from `org-set-property' or
from `org-capture'.
For that, it simplifies the `org-set-property' code and remove
duplication between `org-capture' and `org-set-property'.
Signed-off-by: Julien Danjou <julien@danjou.info>
* lisp/org.el (org-make-target-link-regexp): regexp-quote target
before replacing whitespace.
Previously a radio link <<<...>>> would match all three-letter words
in the buffer. The manual indicates the radio links are meant to
match literally (modulo whitespace differences), so we should
regexp-quote all the targets to avoid over-eager matching.
* lisp/org.el: (org-entry-properties) Stop scanning for timestamps if
a specific timestamp property (e.g., DEADLINE, SCHEDULED, etc.) is
requested and a match is found. Also, if a specific timestamp property
is requested, do not push non-relevant timestamps onto property list.
This change only effects org-entry-properties when a specific
timestamp is requested with the special flag, as in:
(org-entry-properties nil 'special "SCHEDULED")
Previously, even if only the SCHEDULED timestamp was requested,
org-entry-properties would parse all the timestamps in an entry. This
extra parsing could slow down the construction of agenda views,
especially with entries that contained a large number of log
items (CLOCK, state changes, etc.). The function org-entry-get,
however, is only interested in the first occurrence of the item. When
looking for a specific type of timestamp, org-entry-properties now
stops searching for timestamps after the match is found, unless the
property is "CLOCK".
Here are the relevant ELP results:
Before:
org-entry-get 296 0.4724579999 0.0015961418
org-entry-properties 31 0.3438769999 0.0110928064
After:
org-entry-get 296 0.1447729999 0.0004890979
org-entry-properties 31 0.015765 0.0005085483
* org-inlinetask.el (org-inlinetask-outline-regexp): new function
* org-inlinetask.el (org-inlinetask-goto-beginning): new function
* org-inlinetask.el (org-inlinetask-goto-end): new function
* org.el (org-mark-subtree): new command
* org.el (org-speed-commands-default, org-mode-map): make use of new command
This reverts commit 383802d063.
The commit had org-mode process the headlines from bottom to top, which
meant that any changes to the visibility of lower headlines were
overridden/modified by changes higher up the tree. Reverting the commit
causes VISIBILITY to work correctly.
* lisp/org.el: (org-make-heading-search-string) Optionally limit
number of lines stored in file link search strings.
(org-context-in-file-links) Add option to set to integer specifying
number of lines.
* lisp/ob.el (org-babel-insert-result): Responds to new "wrap" header
argument.
(org-babel-merge-params): Includes new "wrap" header argument in
one of the results header argument exclusive groups.
* lisp/org.el (org-additional-option-like-keywords): Fontify begin and
and results lines as comments.
* lisp/org.el (org-open-at-point): Don't do footnote action if cursor is
on a bracket link.
Sebastian Mengin writes:
> Hi,
>
> Consider the following minimal example:
>
> Text[fn:1]
>
> * Footnotes
> [fn:1] Note with a [[file:abecedaire.jpg][link]].
>
> Here with orgmode 7.02, doing C-c C-o on the link moves the cursor on
> [fn:1] and says in the minibuffer: "Position saved mark to ring, go back
> with C-c &", instead of opening the linked file.
>
> Is this a bug?
>
* lisp/org.el (org-indent-line-function): drawers and blocks have no
influence on indentation of text below. Also fix indentation problem
with a block at column 0 and add a special case for literal examples.
* lisp/org-faces.el (org-cycle-level-faces): New option.
* lisp/org.el (org-get-level-face): Honor org-cycle-level-faces
Original patch by Jonathan BISSON, modified by Carsten Dominik
* org.el (org-open-at-point): Remove stale link handler for news:
links.
This condition case is never evaluated because the news: link is
already passed to `browse-url'.
* lisp/org.el (org-diary-sexp-entry): Split sexp result strings at semicolon.
When evaluating my %%(org-calendar-holidays) on October 31st, I got a
line like:
"Halloween; Daylight Saving Time Ends 3:00am (CEST)"
And it displays in calendar:
3:00 .... Halloween; Daylight Saving Time Ends (CEST)
This is wrong since Halloween is all day, not only at 3:00.
Splitting results on "; " allows to have an independant entry on each
event and displays things correctly.
Signed-off-by: Julien Danjou <julien@danjou.info>
* lisp/org.el (org-shorten-string): New function.
* lisp/org-exp.el (org-export-convert-protected-spaces): New function.
(org-export-preprocess-string): Call
`org-export-convert-protected-spaces' to handle new hard spaces.
* lisp/org-clock.el (org-clocktable): New customization group.
(org-clocktable-defaults): New option.
(org-clock-clocktable-formatter): New option.
(org-clock-clocktable-default-properties): New option.
(org-dblock-write:clocktable): Rewrite to split out functionality
into separate functions.
(org-clocktable-write-default):
(org-clocktable-indent-string):
(org-clock-get-table-data): New functions.
* lisp/org-agenda.el (org-agenda-list):
(org-agenda-redo):
(org-agenda-clockreport-mode):
(org-agenda-set-mode-name): Rewrite to implement filtered clock tables.
* doc/org.texi (Clocking commands):
(The clock table): New sections.
(Agenda commands): Document filtered clock reports.
* lisp/org-agenda.el (org-agenda-get-sexps): Handle lists as return values
from diary entries
* lisp/org-bbdb.el (org-bbdb-anniversaries): Handle lists of anniversaries
* lisp/org.el (org-diary-sexp-entry): Handle lists as return values
from diary entries.
ukasz Stelmach <lukasz.stelmach@iem.pw.edu.pl> writes:
> I've disovered, that %%(org-bbdb-anniversaries) returns (as every other
> sexp) a string. Which is OK if there is only one.
>
> Anniversaries: John Doe's 10th wedding anniversary
>
> Unfortunately the agenda view becomes awful if we have noted Jane's
> weeding date too
>
> Anniversaries: John Doe's 10th wedding anniversary; Jane Doe's 10th wedding anniversary
>
> And what if we know 3 Eves and 5 Adams and it's Christmas Eve? (Hint:
> their name day)
[...]
As Thomas Bauman pointed out, there are functions that can be used in
sexps which return cons cells like this
(nil . "Full Moon 3:35am (CEST)")
(this one is diary-lunar-phases), these aren't properly supported by the
previous version of my patch. This one can distinguish between such a
cons cell and a "real" list.
("John Doe's 10th wedding anniversary"
"Jane Doe's 10th wedding anniversary")
This is because
(consp (cdr '(a . b))) ; => nil
so org-diary-sexp-entry can be made return (cdr result) only in case of
the former cons cell. The third condition in the `cond' block is IMHO
enough as it is now, but if you think adding
(listp (cdr result))
may help then be it.
* lisp/org.el (org-cycle): Make sure resetting to startup visibility
works after another cycle command.
Gez writes:
> I have a query about the C-u C-u TAB command. When I've just edited
> or used S-TAB (no matter which part of the global cycle it's on) C-u
> C-u TAB works as I would expect. But if I've just used TAB, C-u C-u
> TAB cycles hrough -> CONTENTS -> SHOW ALL etc, even while the mini
> buffer displays "startup visibility plus VISIBILITY properties" at
> each stage of the cycle. C-u C-u TAB also cycles when it's repeated.
> I find it hard to keep track of whether it will cycle or not while I'm
> using it to view areas of the outline, so in effect, the only way I
> feel sure I can quickly return to my desired startup visibility is
> with S-TAB C-u C-u TAB, which is a lot of keystrokes! So my questions
> are - is this expected behaviour? Can it be changed?
* doc/org.texi: Document the <c> cookie.
* lisp/org-exp.el (org-store-forced-table-alignment):
(org-export-remove-special-table-lines): Allow the "c" cookie for
table alignment.
* lisp/org-html.el (org-export-table-header-tags):
(org-export-table-data-tags): Add another %s format for the alignment.
(org-export-html-table-align-individual-fields): New option.
(org-format-org-table-html): Implement field-by-field alignment and
support centering.
(org-format-table-table-html): Make sure the new table tag formats
don't break this function.
* lisp/org-table.el (org-table-cookie-line-p):
(org-table-align): Allow for the <c> cookie.
* lisp/org.el (org-set-font-lock-defaults): Allow for the <c> cookie.
* lisp/org-inlinetask.el (org-inlinetask-min-level): Set customization
type to integer or nil.
* lisp/org.el (org-insert-heading): When after an inline task, do not
use level but go back to headline level before the inline task
* lisp/org-inlinetask.el (org-inlinetask-in-task-p): New function.
* lisp/org.el (org-indent-line-function): Fix indentation of inline tasks
Patch by Nicolas Goaziou
* lisp/org.el (org-set-tags): Allow comma as a separator when
specifying tags at the completion interface.
(org-tags-completion-function): Allow comma as a separator when
specifying tags at the completion interface.
Patch by Richard Riley, extended by Carsten
* lisp/org.el (org-insert-heading): Run org-insert-heading-hook when creating
the first heading in a file
The org-insert-heading-hook was skipped when creating the first
heading in a new org file.
* lisp/org.el (org-startup-with-inline-images): New option.
(org-startup-options): Add new keywords inlineimages and
noinlineimages.
(org-mode): Inline images when this has been configured.
* doc/org.texi (Handling links):
(In-buffer settings): Document inlining images on startup.
* lisp/org.el (org-speed-command-hook): New. Hook for installing
additional speed commands. Use this for enabling speed commands on
src blocks.
(org-speed-command-default-hook): The default hook for
org-speed-command-hook. Factored out from org-self-insert-command
and mimics existing behaviour.
(org-self-insert-command): Modified to use org-speed-command-hook.
TINYCHANGE.
* lisp/org.el (org-additional-option-like-keywords): Add PROPERTIES to
the list of completable meta line words.
(org-complete): Complete property names after #+PROPERTY
* org.el (org-make-org-heading-search-string): Leave headline
intact.
Otherwise `org-link-search-must-match-exact-headline' set to a non-nil
value won't work properly.
* org.el (org-link-types): Add 'message:' link type to default link
types.
Jules Bean wrote:
>The link-type "message" is one of the ones org handles by default, it
>is an explicit case in org-open-at-point, much like http and it is
>handled by the following code:
>((member type '("message"))
> (browse-url (concat type ":" path)))
>However it is not included in the default value of org-link-types:
>(defvar org-link-types '("http" "https" "ftp" "mailto" "file" "news"
> "shell" "elisp" "doi"))
>...and therefore it doesn't work when clicked/followed.
>Manually adding it to org-link-types makes it work correctly. For me,
>anyway.
* org.el (org-skip-over-state-notes): do not compute bottom point at
each item.
* org-mouse.el (org-mouse-for-each-item): use `org-apply-on-list'
instead of moving to each item.
* org.el (org-priority): Save match data before call to
`read-char-exclusive'.
Otherwise interactively calling `org-priority' with org-indent-mode
enabled fails to set a new priority cookie.
Bug reported by Joseph Buchignani.
* org.el (org-store-log-note): Indent new notes to the right column.
Also take `org-list-two-spaces-after-bullet-regexp' into
consideration when creating the note.
* lisp/org.el (org-delete-backward-char): check for nil overwrite-mode before inserting
spaces.
TINYCHANGE
There's probably a different/better way to do this, but this seemed the least intrusive.
This patch is in the public domain.
Also bind `org-timer-cancel-timer' to `C-c C-x :' in org-mode.
We may want to bind this command in org-agenda-mode as well but
I don't have any good idea of a keybinding now.
* org.el (org-fontify-meta-lines-and-blocks): Alter main
regexp to match code blocks with switches and header
args. Call `org-src-font-lock-fontify-block' for automatic
fontification of code in code blocks, controlled by variable
`org-src-fontify-natively'.
(org-src-fontify-natively): New variable
* org-src.el (org-src-font-lock-fontify-block): New function
called during font-lock
(org-src-fontify-block): New function for manual fontification
of code block at point.
(org-src-fontify-buffer): New function to manually fontify all
code blocks in buffer
(org-src-get-lang-mode): New utility function to map language
name as a string to major mode symbol
Based on an initial fontification patch by David O'Toole and
suggestions from Carsten Dominik.
* org.el (org-indent-line-function): indentation of source block is
left to `org-edit-src-exit' and shouldn't be modified by
`org-indent-line-function'. Indentation of others blocks should be
the same as the #+begin line.