Commit Graph

1615 Commits

Author SHA1 Message Date
Bastien Guerry ae8d522a6c New variables to skip confirmation for elisp/shell links.
* org.el (org-confirm-shell-link-not-regexp)
(org-confirm-elisp-link-not-regexp): New custom variables.
(org-open-at-point): Use the new custom variables.
2011-03-05 10:08:19 +01:00
Bastien Guerry 87ce7900c6 * org.el (org-move-subtree-down): leave the cursor at the same column we were at.
* org.el (org-move-subtree-down): leave the cursor at the same
column we were at.
2011-03-03 11:51:47 +01:00
Carsten Dominik aaf0e2d6bb Get rid of some compiler warnings
* Makefile (lisp/org-special-blocks.elc): Add dependency on org-compat.el
* lisp/ob-ref.el (org-at-item-p): Declare function.
* lisp/org-agenda.el (diary-time-regexp): defvar.
* lisp/org-archive.el (org-archive-subtree): Bind local variable `infile-p'.
* lisp/org-capture.el (org-capture-insert-template-here): Get template
text from property list, to avoid byte compiler message.
* lisp/org-latex.el (org-export-latex-tables): Bind local variable `width'.
* lisp/org-special-blocks.el (org-compat): Add require statement.
* lisp/org-table.el (orgtbl-ctrl-c-ctrl-c): Bind local variable `const-str'.
* lisp/org.el (org-eval): Moved function here from org-agenda.el.
2011-03-01 07:24:14 +01:00
Nicolas Goaziou c2443d48e9 fix a bug in org-open-at-point
My bad, wrong manipulation. Here is the patch.

To reproduce the error, you can type the following in a fresh Org
#+begin_src org
target some text <<<target>>> another text target
#+end_src

Using C-c C-o on any of the two links will return an error.
Regards,

>From f7738f3e9239fc4fddccc7850dad7a0936087a58 Mon Sep 17 00:00:00 2001
From: Nicolas Goaziou <n.goaziou@gmail.com>
Date: Sat, 19 Feb 2011 09:37:48 +0100
Subject: [PATCH] Fix bug with link to radio target at beginning or end of buffer

* lisp/org.el (org-open-at-point): if a link to a radio target is the
  first, (resp. the last), element of a buffer, function cannot find
  the property change required to get its boundaries, and
  `buffer-substring' is called with an invalid nil argument.
2011-02-26 18:14:38 +01:00
Nicolas Goaziou f4db739a67 Keep byte-compiler happy 2011-02-23 15:03:27 +01:00
Nicolas Goaziou 6489346093 Make byte-compiler happy 2011-02-22 20:55:41 +01:00
Bastien Guerry 77c278c932 Fix small typos in docstrings. 2011-02-19 12:52:26 +01:00
Nicolas Goaziou 729564ae74 Send list only with cursor at top item
* lisp/org.el (org-ctrl-c-ctrl-c): call `org-list-send-list' only when
  cursor it at very first item of the list, as specified in the
  manual. Also refactored the list part of the function a bit.
2011-02-19 11:27:53 +01:00
Nicolas Goaziou 2366083b82 Remove org-entry-get from ignore-errors macro 2011-02-19 10:51:38 +01:00
Nicolas Goaziou 713262edc1 Preserve hierarchy when converting items to headlines and the other way
* lisp/org.el (org-toggle-item, org-toggle-heading): make sure every
  sub-item in a list is changed into a sub-heading and sub-headings
  are translated into sub-items. Also ignore inline tasks in the
  process.

org-toggle-item on headlines preserves hierarchy
2011-02-18 13:43:49 +01:00
Nicolas Goaziou 5adafe0c8d Changes to filling in items
* lisp/org.el (org-set-autofill-regexps): use `org-item-re' in
  `paragraph-start' to recognize alphabetical lists.
(org-fill-paragraph): enforce a pre-computed fill-prefix before
  calling fill-paragraph when point in in an item. Also prevent
  paragraphs getting merged into an adjacent list upon filling.
(org-adaptive-fill-function): make sure to determine real fill-prefix
  for auto-fill.
(org-auto-fill-function): use a pre-computed fill-prefix before
  calling do-auto-fill.
* lisp/org-list.el (org-list-item-body-column): new function
2011-02-18 12:45:12 +01:00
Nicolas Goaziou b7f6a916b3 Fix toggling and cycling visibility for items and inline tasks
* lisp/org-inlinetask.el (org-inlinetask-at-task-p,
org-inlinetask-toggle-visibility): new functions.
* lisp/org-list.el (org-list-set-item-visibility): new function.
* lisp/org.el (org-cycle, org-cycle-internal-local): separate lists
  and inline tasks from headlines.
(org-outline-level): do not consider lists as headlines.
  Cycling visibility is using different tools.
2011-02-18 12:45:12 +01:00
Nicolas Goaziou 69cc51fa43 C-c C-c also repairs ill-formed lists
* lisp/org-list.el (org-list-struct): mark items less indented than
  top item of the list, so that they will be modified.
(org-list-struct-apply-struct): compare struct's indentation with
  line's indentation instead of old-struct's. This is needed because
  `org-list-struct' automatically fixes indentation so changes might not
  be seen otherwise.
* lisp/org.el (org-ctrl-c-ctrl-c): small refactoring.
2011-02-18 12:45:12 +01:00
Nicolas Goaziou f7ebd6bcf0 org-list: ignore inline tasks when shifting an item, and fix indentation
* lisp/org-list.el (org-list-struct-apply-struct): inline tasks along
  with their content must stay at column 0 even if the item is gaining
  indentation. Moreover, fix indentation of text in an inline task,
  now it can be in such a task within a list.
2011-02-18 12:45:12 +01:00
Nicolas Goaziou 0148fac717 org-list: make org-at-item-p less permissive
* lisp/org-list.el (org-at-item-p): also verify context is valid.
  Otherwise it would recognize valid items where org-in-item-p
  wouldn't.
(org-in-item-p, org-list-struct-apply-struct): use shorter version of
org-at-item-p.
(org-cycle-list-bullet): fix typo.
(org-list-parse-list): avoid calling org-at-item-p two times by using
an appropriate regexp
* lisp/org.el (org-indent-line-function): use an appropriate regexp
  instead of calling org-at-item-p two times.
2011-02-18 12:45:12 +01:00
Nicolas Goaziou f7dbea5989 Fix small bug in org-toggle-item
* lisp/org.el (org-toggle-item): when used on normal text, ensure
  every line in region is included in the new item, regardless of its
  original indentation.
2011-02-18 12:45:12 +01:00
Nicolas Goaziou 304e8f1cd2 Change behavior of org-toggle-item when used with normal text.
* lisp/org.el (org-toggle-item): Now accepts a prefix argument. When
  used without argument on normal text, it will make the whole region
  one item. With an argument, it defaults to old behavior: change each
  line in region into an item.
2011-02-18 12:45:11 +01:00
Nicolas Goaziou 89c066a10c Newline-and-indent respects list structure
* lisp/org.el (org-return): when called from inside an item with the
  indent flag, function should keep text moved inside the item. This
  allows to use C-j to separate lines in an item: cursor won't go back
  to column 0.
2011-02-18 12:45:11 +01:00
Nicolas Goaziou bd68169b4b org-list: reorder file, rename functions, improve comments
* lisp/ob.el (org-babel-result-end): apply renaming.
* lisp/org-exp.el (org-export-mark-list-properties): apply renaming.
* lisp/org-list.el (org-list-prevs-alist): renamed from
  org-list-struct-prev-alist.
(org-list-parents-alist): renamed from org-list-struct-parent-alist.
(org-list-write-struct): renamed from org-list-struct-fix-struct.
(org-list-parse-list, org-sort-list, org-list-indent-item-generic,
org-toggle-checkbox, org-update-checkbox-count, org-cycle-list-bullet,
org-list-repair, org-insert-item, org-move-item-up, org-move-item-up,
org-move-item-down, org-next-item, org-previous-item,
org-end-of-item-list, org-beginning-of-item-list, org-apply-on-list):
apply renaming.
(org-get-bullet): removed function, as it is not needed anymore.
2011-02-18 12:45:11 +01:00
Nicolas Goaziou 4efa974264 Fix for `org-beginning-of-line' at an item
* lisp/org.el (org-beginning-of-line): apply changes to
  `org-item-beginning-re' to correct sub-expression reference.
2011-02-18 12:45:11 +01:00
Nicolas Goaziou 781228183a org-list: implement alphabetical lists
* lisp/org-list.el (org-alphabetical-lists): new variable
(org-item-re, org-list-full-item, org-cycle-list-bullet,
org-list-struct-fix-bul, org-list-inc-bullet-maybe): reflect
introduction of the new variable.
(org-item-beginning-re): changed into a function, so any modification
of `org-alphabetical-lists' will not require reloading Org.
(org-at-item-p, org-toggle-checkbox, org-update-checkbox-count,
org-list-parse-list, org-list-send-list): reflect changes to
`org-item-beginning-re'.
(org-list-use-alpha-bul-p): new function.
* lisp/org.el (org-check-for-hidden): reflect changes to
`org-item-beginning-re'.
* lisp/org-capture.el (org-capture-place-item): reflect changes to
`org-item-beginning-re'.
* lisp/org-docbook.el (org-export-docbook-list-line): handle new type
of items.
* lisp/org-exp.el (org-export-mark-list-end,
org-export-mark-list-properties): reflect changes to
`org-item-beginning-re'.
* lisp/org-html.el (org-html-export-list-line): handle new type of
items.
* lisp/org-latex.el (org-export-latex-lists): handle new type of items
and reflect changes to `org-item-beginning-re'.
* lisp/org-ascii.el (org-export-ascii-preprocess): handle new counters.

Modified from a patch by Nathaniel Flath.
2011-02-18 12:45:10 +01:00
Nicolas Goaziou 215d3fa030 Improve usage of `org-in-item-p'
When the function needs to know if cursor is in a plain list and move
to item beginning if it is the case, a fast way is to ignore errors on
(goto-char (org-in-item-p)).
2011-02-18 12:45:10 +01:00
Nicolas Goaziou 79553c4764 org-list: fixes for incorrect number of arguments 2011-02-18 12:45:10 +01:00
Nicolas Goaziou 6c81e8cc05 Move org-get-string-indentation out of org-list.el
* lisp/org.el (org-get-string-indentation): moved in generally useful
  functions section, as it wasn't specific to plain lists and that no
  code was using it in org-list.el.
2011-02-18 12:45:09 +01:00
Nicolas Goaziou 2adbcfffe1 Remove uses of deprecated top-point and bottom-point functions
* lisp/org.el (org-skip-over-state-notes,org-store-log-note): use new
  accessors.

* list/ob.el (org-babel-result-end): use new accessors.

* list/org-exp.el (org-export-mark-list-ending): use new accessors.
2011-02-18 12:45:08 +01:00
Nicolas Goaziou c12ce921d7 Checkboxes do not change indentation in lists
* org.el (org-indent-line-function): Indentation of item's body starts
  just after the bullet, not after a checkbox. Moreover, As
  `org-in-item-p' also returns item beginning position when point is
  in a list, do not compute it a second time.
2011-02-18 12:45:08 +01:00
Nicolas Goaziou e223357743 Lighten process when C-c C-c is called at a list item
* org.el (org-ctrl-c-ctrl-c): when called at a list item, replace
  usage `org-repair-list', forcing another reading of the list, with
  only needed subroutines.
2011-02-18 12:45:08 +01:00
David Maus 0d6dacd978 Throw error if encoding character in utf8 fails
* lisp/org.el (org-link-escape): Throw error if encoding character in
utf8 fails.
2011-02-17 19:26:49 +01:00
David Maus 139cc1d4c2 Always percent escape the percent sign
* lisp/org.el (org-link-escape, org-link-escape-chars-browser)
(org-link-escape-chars): Always percent escape the percent sign.
2011-02-17 19:26:49 +01:00
David Maus 7b58cccddd Refactor unescaping functions
* org.el (org-link-unescape): Simpler algorithm for replacing percent
escapes.
(org-link-unescape-compound): Use cond statements instead of nested
if, convert hex string with string-to-number, save match data.
(org-link-unescape-single-byte-sequence): Use mapconcat and
string-to-number for unescaping single byte sequence.
2011-02-17 19:26:49 +01:00
David Maus dc76fd5d71 Rename lambda argument
* org.el (org-link-escape): Rename lambda argument.
2011-02-17 19:26:49 +01:00
David Maus 1350e57626 Add percent sign to list of escape chars
* org.el (org-link-escape-chars-browser, org-link-escape-chars): Add
percent sign to list of escape chars.
2011-02-17 19:26:49 +01:00
David Maus 51e665622c Unescape functions moved and renamed from org-protocol.el
* org.el (org-link-unescape, org-link-unescape-compound)
(org-link-unescape-single-byte-sequence): Functions moved and renamed
from org-protocol.el.
2011-02-17 19:26:48 +01:00
David Maus 27915744a2 New optional argument: Merge user table with default table
* org.el (org-link-escape): New optional argument.  Merge user table
with default table.
2011-02-17 19:26:48 +01:00
David Maus 41c771378a Fixup doc string
* org.el (org-link-escape): Fixup doc string.
2011-02-17 19:26:48 +01:00
David Maus 1a68b67939 New format of percent escape table
* org.el (org-link-escape-chars, org-link-escape-chars-browser): New
format of percent escape table.
(org-link-escape): Use new table format.

Just a plain list with the chars that should be escaped.
2011-02-17 19:26:48 +01:00
David Maus 0c4bb0e406 New unicode aware percent encoding algorithm
* org.el (org-link-escape): New unicode aware percent encoding
algorithm.
2011-02-17 19:26:48 +01:00
Dan Davison fda90a9aad New function `org-clone-local-variables'.
* org-exp.el (org-export-preprocess-string): Set the source
buffer and use `org-clone-local-variables' to get local
variables from it.

* org.el (org-clone-local-variables): New function.
2011-02-15 18:03:58 +01:00
Bastien Guerry 846a2d13d3 Code cleanup: use (org-mode-p) when possible. 2011-02-15 05:18:22 +01:00
Tom Dye 03ddcc63bb * lisp/org.el: Update documentation of `org-add-link-type'. 2011-02-13 00:31:52 +01:00
Dan Davison 4d880b150f Fix bug when using prefix arg to construct `org-link-search' call.
* lisp/org.el (org-open-at-point): Fix bug when using prefix arg to
construct `org-link-search' call. Rename prefix arg with a more
generic name, to reflect its diverse uses in this function.
2011-02-12 23:56:36 +01:00
Bastien Guerry 03c33d0d38 Don't wrap org-entry-get into condition-case.
* ob.el (org-babel-params-from-properties): don't wrap
org-entry-get into condition-case.

* org-table.el (org-table-export): don't wrap org-entry-get
into condition-case.

* org.el (org-store-link): don't wrap org-entry-get into
condition-case.
2011-02-12 19:02:52 +01:00
Bastien Guerry f0c9e8d672 Whitespace and indentation cleanup. 2011-02-12 18:53:07 +01:00
Dan Davison 7dd425cc5d Allow properties to be retrieved before first heading in file.
* lisp/org.el (org-entry-get): Don't look for a property drawer if we
are before the first heading in the file.
(org-entry-get-with-inheritance): Don't attempt to move up the tree if
we are before the first heading in the file. Also, enclose less of the
function in the save-excursion.
2011-02-12 18:51:40 +01:00
Bastien Guerry 8ec508b128 Add org-notmuch.el by Matthieu Lemerre to contrib/lisp/. 2011-02-12 16:53:10 +01:00
Eric Schulte 27d98d8793 adding faces for block backgrounds and begin/end lines
Patch by Sébastien Vauban
  Committed by Eric Schulte with one tiny change
2011-02-04 13:47:58 -07:00
Bastien Guerry 28b88bbb11 Fix bug in org-update-parent-todo-statistics.
* 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.
2011-02-04 10:44:29 +01:00
Bastien Guerry 814871c42b Fix docstring typo in org-link-search-must-match-exact-headline. 2011-02-03 18:00:16 +01:00
Bastien Guerry dfbdc547d5 Revert "(org-scan-tags): Optimize a bit the regexp search."
This reverts commit 0b7ce5f47d.
2011-02-03 17:35:51 +01:00
Bastien Guerry 0b7ce5f47d (org-scan-tags): Optimize a bit the regexp search. 2011-02-02 19:27:51 +01:00
Bastien Guerry 7b72c57e15 (org-hidden-keywords): Fix docstring. 2011-02-02 16:29:56 +01:00
Bastien Guerry 16b408bd06 (org-block-regexp): Now also match dynamic blocks. 2011-02-02 16:12:27 +01:00
Bastien Guerry b3c3746d92 New function org-narrow-to-block.
* 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.
2011-02-02 11:47:41 +01:00
Bastien Guerry 4828e3c2d0 Fix bug when using org-schedule/org-deadline on timestamps with complex repeaters.
* org.el (org-schedule, org-deadline): Fix bug: take care of
repeating timestamps like ".+1d/3d" or "+1d 10d".
2011-02-02 11:04:50 +01:00
Osamu Okano a017fca37f Various docstrings typo fixes by Osamu OKANO. 2011-02-01 13:05:13 +01:00
Bastien Guerry e6f51d2485 Merge branch 't/patch568' 2011-01-31 21:36:55 +01:00
Julien Danjou f1bfcc6f8a Bug: UTF-8 characters in #+LINK does not work [7.4]
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>
2011-01-31 21:36:05 +01:00
Bastien Guerry e4bbefeef6 Another small docstring typo. 2011-01-31 20:42:50 +01:00
Bastien Guerry 3c5dc21985 Fix typo in docstring. 2011-01-31 20:32:18 +01:00
Bastien Guerry df23e58b48 Rename org-complete.el to org-pcomplete.el to avoid file-name clash.
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.
2011-01-31 18:40:05 +01:00
Julien Danjou 84d7165d74 org: remove org-invisible-p
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>
2011-01-26 18:26:46 +01:00
Carsten Dominik e10eaa2502 Revert "* org.el (org-fast-tag-selection): Fix bug when assigning keys"
This reverts commit c7d1e0f997.
2011-01-26 11:08:40 +01:00
Nicolas Goaziou 576c7bd520 Use existing macro to simplify code in LaTeX exporter
* lisp/org.el (org-current-level):
(org-store-link):
(org-mark-subtree): Use `org-with-limited-levels'.
2011-01-26 11:07:34 +01:00
Bastien Guerry c7d1e0f997 * org.el (org-fast-tag-selection): Fix bug when assigning keys
* org.el (org-fast-tag-selection): Fix bug when assigning keys
for fast tag selection.

Patch submitted by Jason Dunsmore.
2011-01-18 00:50:32 +01:00
Bastien Guerry f33ae10e36 org-blank-before-new-entry: Fix small typo in the docstring. 2011-01-18 00:03:49 +01:00
Bastien Guerry 97b264a092 org-refile-check-position: explain how to clear the cache
* org.el (org-refile-check-position): send a more explicit
message on how to clear the cache before refiling again.
2011-01-15 18:29:07 +01:00
Carsten Dominik 378beac762 Fix sorting with a bold emphasis at beginning of line
* lisp/org.el (org-sort-entries): Fix sorting with a bold emphasis at bol
2011-01-11 20:34:08 +01:00
Carsten Dominik dd23461349 Implement next-error and previous-error functionality for sparse trees
* 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.
2011-01-06 12:36:22 +01:00
Bastien Guerry ed824d4e46 org.el: don't try to remove space in comma-separated tags.
No space is allowed in the prompt, trying to remove them is
confusing when reading the code.
2011-01-04 16:15:33 +01:00
Bastien Guerry 881b73bd77 Merge branch 'master' of git+ssh://repo.or.cz/srv/git/org-mode 2011-01-04 16:10:51 +01:00
Carsten Dominik 8dfd845c7f Add contrib package org-eshell.el
* contrib/lisp/org-eshell.el: New file
* lisp/org.el (org-modules): Add `org-eshell'.
2011-01-04 16:06:09 +01:00
Bastien Guerry 591db35943 org.el: document optional argument for org-global-tags-completion-table 2011-01-04 15:19:23 +01:00
Carsten Dominik 00b59ec005 Add some additional stuff needed after moving org-special-blocks.el
* 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.
2011-01-03 22:08:10 +01:00
Carsten Dominik a6255a6ab7 Remove duplicate definition of `org-plist-delete'
* org.el (org-plist-delete): Remove duplicate definition.

Patch by Julien Danjou.
2011-01-03 13:21:15 +01:00
Carsten Dominik ca733df0d4 Move the category property refresh to org-get-category where possible
* 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.
2011-01-03 13:12:42 +01:00
Carsten Dominik 55d664e6d3 Revert "Always return refreshed category"
This reverts commit f5bb1b7dbf.
2010-12-24 17:32:22 +01:00
Julien Danjou f5bb1b7dbf Always return refreshed category
* 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>
2010-12-23 08:42:32 +01:00
Dan Davison 6eaad22a37 Check for clear-image-cache before using it
* lisp/org.el (org-display-inline-images): Check for clear-image-cache
before using it.
2010-12-23 08:36:42 +01:00
Bernt Hansen ca1b251f19 Add missing value to docstring for org-link-frame-setup
* lisp/org.el: Document missing value for org-link-frame-setup
2010-12-23 08:27:38 +01:00
Bernt Hansen de62618009 Fix before first heading check
* 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.
2010-12-20 13:22:05 +01:00
Julien Danjou ce837d0e8f org: rework `org-set-property'
* 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>
2010-12-17 18:37:30 +01:00
Julien Danjou 073391f5a7 Allow to retrieve email link date
* org.el (org-email-link-description): Allow to retrieve email link date.

Signed-off-by: Julien Danjou <julien@danjou.info>
2010-12-16 14:17:54 +01:00
Lawrence Mitchell 32be74e098 Quote any special characters in org-make-target-link-regexp
* 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.
2010-12-16 14:12:28 +01:00
Bastien Guerry eb0d35dd18 Fix typo (which broke lisp/org.el).
Thanks to Matt Lundin for a warning about this.
2010-12-14 21:48:43 +01:00
John Wiegley 14350cac34 Added FILE meta-property 2010-12-14 02:02:40 -05:00
Matt Lundin 4760c3b948 Make timestamp search in org-entry-properties more efficient.
* 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
2010-12-13 15:13:36 +01:00
Carsten Dominik 651e137c50 Make sure windows are created correctly on full-screen sessions
Patch by Leo
2010-12-12 08:36:49 +01:00
Carsten Dominik 7666ba421f Version number back to 7.4 2010-12-10 18:49:40 +01:00
Carsten Dominik 76a25715c9 Bump version number to 7.5 2010-12-10 18:43:10 +01:00
Carsten Dominik 1330048ba0 Keep byte compiler happy 2010-12-10 14:13:05 +01:00
Carsten Dominik 9df61b6c3e Fix typos 2010-12-10 11:12:56 +01:00
Julien Danjou 330721f406 org: remove useless computed value in org-make-tags-matcher
* org.el (org-make-tags-matcher): Remove useless cat-p value.

Signed-off-by: Julien Danjou <julien@danjou.info>
2010-12-10 07:30:24 +01:00
Julien Danjou 8c2f37270d org-entry-properties: enhance docstring
* org.el (org-entry-properties): Enhance docstring.

Signed-off-by: Julien Danjou <julien@danjou.info>
2010-12-10 07:29:14 +01:00
Nicolas Goaziou aa9fbbb323 Fix cycling indentation with inline tasks
* org.el (org-current-level): ignore inline tasks when getting current
  level of entry
2010-12-06 19:13:09 +01:00
Nicolas Goaziou 5bbce0473d Fix indentation after an inline task with drawers
* org.el (org-indent-line-function): ignore drawers inside inline
  tasks  if the line to indent isn't inside an inline task itself.
2010-12-06 19:13:09 +01:00
Nicolas Goaziou 9be9f727f8 Fix LaTeX export of subtrees and inline tasks 2010-12-06 19:13:09 +01:00
Nicolas Goaziou 5ecd79ea74 Handle inline tasks when marking a subtree
* 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
2010-12-06 19:13:09 +01:00
Carsten Dominik e9215698a2 Revert "Fix :VISIBILITY: handling of nested "folded" properties"
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.
2010-12-06 10:06:21 +01:00
Matt Lundin c8ab88cb69 Allow user to limit amount of context stored in file link search strings
* 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.
2010-12-06 10:05:29 +01:00
Carsten Dominik 73d361d844 Empty properties when cloning an entry
Patch by Mike Mc Lean
2010-12-06 10:03:04 +01:00
Carsten Dominik 238c815502 Revert "org: use org-today in habits auto repeat"
This reverts commit d1eb6cb25b.
2010-12-04 00:19:22 +01:00
Carsten Dominik 316e7e5fbc Merge branch 'master' of git+ssh://repo.or.cz/srv/git/org-mode
Conflicts:
	lisp/org-agenda.el
2010-12-03 22:03:06 +01:00
Carsten Dominik 94c19c82b7 Make compiler happy
* lisp/org-clock.el (org-quarter-to-date): Define variables.
(org-clock-special-range): Defin variables.  Use org-floor*.
(org-clocktable-write-default): Define tcol.
* lisp/org-compat.el (org-floor*): New function.
* lisp/org-complete.el: Declare external functions and variables.
2010-12-03 10:20:41 +01:00
Julien Danjou d1eb6cb25b org: use org-today in habits auto repeat
* org.el (org-auto-repeat-maybe): Use org-today.

Signed-off-by: Julien Danjou <julien@danjou.info>
2010-12-01 00:48:51 +01:00
Julien Danjou 2e08843369 Rename org-agenda-today to org-today.
Signed-off-by: Julien Danjou <julien@danjou.info>
2010-12-01 00:48:28 +01:00
Sébastien Vauban 6d33af4a5c Fix documentation for global tag list during capture
* lisp/org.el (org-complete-tags-always-offer-all-agenda-tags): Fix
docstring.
2010-11-29 10:28:07 +01:00
Carsten Dominik 1123a5d48e Edit formulas with "C-c '"when in TBLMF line
* lisp/org.el (org-edit-special): Edit formulas when in TBLMF line

Conflicts:

	lisp/org.el
2010-11-27 08:05:00 +01:00
Carsten Dominik 9cc19e3919 Merge branch 'master' of git+ssh://repo.or.cz/srv/git/org-mode
Conflicts:
	lisp/org.el
2010-11-24 23:44:04 +01:00
Eric Schulte b5f7b02814 "wrap" :results header argument wraps code block results
* 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.
2010-11-24 10:19:44 -07:00
Dan Davison fb008fdd88 Add some more keywords for completion
* lisp/org.el (org-additional-option-like-keywords): Add more keywords,
and colons to some old ones.
2010-11-23 15:11:14 +01:00
Achim Gratz 95bb16661b Fix byte compiler warnings
* org-macs.el (org-called-interactively-p): Wrap function call in
	with-no-warnings.
	(with-silent-modifications) Declare macro for Emacs < 23.2.

TINYCHANGE
2010-11-22 21:22:27 +01:00
Carsten Dominik f692ba3c26 Remove confusion of C-c C-o in footnote with cursor on link
* 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?
>
2010-11-20 18:24:18 +01:00
Carsten Dominik dce955fad0 Merge branch 'master' of git+ssh://repo.or.cz/srv/git/org-mode 2010-11-20 12:33:45 +01:00
Carsten Dominik 3dc846ae38 Make org-edit-special call the formula editor if cursor is in TBLFM line
* lisp/org.el (org-edit-special): Check also for TBLFM line.

Patch by Thorsten Wagner.
2010-11-20 12:33:37 +01:00
Carsten Dominik 967c71f5ef Merge branch 'master' of git+ssh://repo.or.cz/srv/git/org-mode 2010-11-20 00:11:46 +01:00
Nicolas Goaziou c538b0eeab Fix indentation of drawers, blocks and literal examples
* 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.
2010-11-18 16:35:46 +01:00
John Wiegley 0ff8d32131 Now using pcomplete for in-buffer completion 2010-11-18 07:34:16 +01:00
Carsten Dominik 815374e952 Allow a user-define function for getting the base priority of a node
* lisp/org.el (org-get-priority-function): New option.
(org-get-priority): Call `org-get-priority-function' if that
has been set.
2010-11-17 09:12:47 +01:00
Carsten Dominik c2a366ac5a Add command names for chapters 4-7 2010-11-13 10:09:15 -06:00
Carsten Dominik c8832d6e27 Remove [home] and [end] bindings of unknown purpose 2010-11-12 15:35:49 -06:00
Carsten Dominik 1f40cbc596 New option to stop level nine headline to use level 1 face
* 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
2010-11-12 13:37:38 -06:00
Carsten Dominik 42dd7afe45 Fix typo 2010-11-12 12:17:00 -06:00
Carsten Dominik af71c1b049 Send table in Org-mode as well, just like radio tables do it in other modes
* lisp/org.el (org-ctrl-c-ctrl-c): Consider sending a radio table also in Org
2010-11-12 09:28:22 -06:00
Carsten Dominik dd7b13bde8 Fix typo
Patch by Robert Goldman
2010-11-12 09:24:15 -06:00
David Maus 49a00abf3d Remove stale link handler for news: links
* 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'.
2010-11-07 16:21:32 +01:00
Bastien Guerry 6630edbd0f Set version number to 7.3 2010-11-07 14:52:14 +01:00
Nicolas Goaziou e652a1ed85 Simplify and fix indentation code in lists
* org.el (org-indent-line-function): simplify code and remove bug that
  would insert a tab at the beginning of the line when trying to
  indent the item.
2010-11-04 19:05:10 +01:00
Carsten Dominik da0f4997fb Merge branch 'master' of git+ssh://repo.or.cz/srv/git/org-mode 2010-11-04 16:46:25 +01:00
Julien Danjou 3e4b139f1d org-agenda: return multiple results when sexp return a string with "; "
* 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>
2010-11-04 13:05:50 +01:00
Carsten Dominik 106ad6e9e5 Fix sparse tree dispatch menu
* lisp/org.el (org-sparse-tree): Mention [r] in dispatch menu
2010-11-03 23:26:23 +01:00
Carsten Dominik 350b75be63 Rewrite of the clock table code
* 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.
2010-11-02 08:47:23 +01:00
David Maus 7bef01a90f Check for heading that ends at end of buffer
* org.el (org-narrow-to-subtree): Check for heading that ends at end
of buffer.
2010-11-01 19:28:11 +01:00
Eric Schulte 421405df19 adding ob-calc to org-babel-load-languages
* lisp/org.el (org-babel-load-languages): adding calc
2010-10-29 19:02:44 -06:00
Carsten Dominik 82af72eef7 Push version number to 7.02trans 2010-10-29 09:11:46 +02:00
Łukasz Stelmach 47107b6612 Sexp diary entries may retrurn a list
* 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.
2010-10-26 07:27:19 +02:00
Jambunathan K c1b8f41c37 Return 'dedicated on match when search must match exact headline
* org.el (org-link-search): Return 'dedicated on successful match when
org-link-search-must-match-exact-headline is set to t.
2010-10-24 20:35:44 +02:00
Carsten Dominik d0f737e9c2 Post-fix for globablvisibility patch
Patch by Michael Brandt
2010-10-24 18:09:24 +02:00
Carsten Dominik d600831eb7 Use better regexp for finding image links
* lisp/org.el (org-display-inline-images): Improve regexp
2010-10-23 14:43:00 +02:00
Carsten Dominik 94f2f59a93 Fix startup visibility bug
* 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?
2010-10-22 18:14:18 +02:00
Carsten Dominik e85eee0624 Fix some issues in inline image display
* lisp/org.el (org-display-inline-images): Allow
non-ASCII characters in image file names.  Save match data.

Patch by Taichi Kawabata
2010-10-22 10:52:46 +02:00
Carsten Dominik a841867856 Update all ++ repeaters in an entry
* lisp/org.el (org-auto-repeat-maybe): Fix shifting multiple time stamps.

See http://www.mail-archive.com/emacs-orgmode@gnu.org/msg30284.html.

Patch by Andrew Korty
2010-10-22 09:57:28 +02:00
Carsten Dominik ca991d2ad4 HTML export: Improved support for field alignment, including centering
* 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.
2010-10-22 09:19:39 +02:00
Carsten Dominik c41409c530 Enhance XEmacs compatibility
* lisp/org-list.el (org-list-search-unenclosed-generic): Replace call
to booleanp.

* lisp/org-compat.el (org-decompose-region): New defsubst.
* lisp/org.el (org-toggle-pretty-entities):
(org-unfontify-region): Use `org-decompose-region'.
2010-10-17 18:39:26 +02:00
Carsten Dominik c9bb51e883 Make it configurable wether agenda jumping prefers the future
* lisp/org.el (org-agenda-jump-prefer-future): New option.
* lisp/org-agenda.el (org-agenda-goto-date): Use
`org-agenda-jump-prefer-future'.
2010-10-17 08:32:23 +02:00
Carsten Dominik df5894cdcb Fix docstring of `org-insert-heading'
* lisp/org.el (org-insert-heading): Fix docstring.
2010-10-16 07:30:00 +02:00
Carsten Dominik bf8d076bb5 When on the headline of an inline task, insert another inline tasks
* lisp/org.el (org-insert-heading): When on the headline of an inline
task, insert another inline tasks.
2010-10-15 07:51:54 +02:00
Carsten Dominik 19d695ef8f Fix heading insertion with C-RET when inline tasks are involved
* lisp/org.el (org-insert-heading): Skip inline tasks when trying to
insert a new heading after the end of the subtree.
2010-10-14 11:03:47 +02:00
Carsten Dominik d44f065c08 Keep byte compiler happy 2010-10-14 10:36:21 +02:00
Carsten Dominik 575e502a53 Keep byte compiler happy 2010-10-14 10:30:43 +02:00
Carsten Dominik e101ec0c8e Fix headline insertion after inline task
* 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
2010-10-14 10:29:56 +02:00