Commit Graph

3512 Commits

Author SHA1 Message Date
Nicolas Goaziou 4eb4f47141 Simplify `org-show-context' configuration
* lisp/org.el (org-show-context-detail): New variable.
(org-context-choice, org-show-following-heading, org-show-siblings,
org-show-entry-below, org-show-hierarchy-above): Remove variables.
(org-show-set-visibility): New function.
(org-convert-to-oddeven-levels, org-get-location, org-show-context,
org-reveal): Use new function.
(org-link-search): Update docstring.

* lisp/org-agenda.el (org-agenda-cycle-show): Use new function.
(org-agenda-show): Replace missing variable.

* testing/lisp/test-org.el (test-org/show-set-visibility): New test.

* doc/org.texi (Sparse trees):
* doc/orgguide.texi (Sparse trees): Document changes.

* etc/ORG-NEWS: Signal changes.

Configuration of `org-show-context' is done with a single variable
offering six different views, instead of four variables for a total
of 16 configurations.
2015-02-22 14:57:09 +01:00
Nicolas Goaziou 1ba7d23c52 Small fix
* lisp/org.el (org-mode-flyspell-verify): Small fix.
2015-02-22 11:41:01 +01:00
Rasmus 1616e08448 org.el: Backwards compatibility
* org.el (org-cdlatex-environment-indent): Remove cl-prefixes for
  compatibility.
2015-02-20 01:35:34 +01:00
Rasmus 14a9510ce1 org.el: Change indention for cdlatex environments
* org.el (org-cdlatex-environment-indent): Use different indent
  algorithm based on content above the new latex-environment.
2015-02-19 22:40:51 +01:00
Nicolas Goaziou 38ab8b2af3 Fix `org-time-stamp'
* lisp/org.el (org-time-stamp): Properly insert time when specified.

This fixes e50baa4cf7.

Reported-by: Rasmus <rasmus@gmx.us>
<http://permalink.gmane.org/gmane.emacs.orgmode/95210>
2015-02-19 10:33:26 +01:00
Nicolas Goaziou 55ce4b74b3 Fix `org-return' on list items
* lisp/org.el (org-return): Properly preserve list structure when
  calling `org-return-indent' on an item.

* testing/lisp/test-org.el (test-org/return): Add test.

Reported-by: Rasmus <rasmus@gmx.us>
<http://permalink.gmane.org/gmane.emacs.orgmode/94977>
2015-02-14 02:07:18 +01:00
Nicolas Goaziou e50baa4cf7 Fix `org-time-stamp'
* lisp/org.el (org-time-stamp): Correctly match repeater, if any.
  Refactor code.

* testing/lisp/test-org.el (test-org/time-stamp): New test.

Reported-by: Nicolas Richard <theonewiththeevillook@yahoo.fr>
<http://permalink.gmane.org/gmane.emacs.orgmode/94974>
2015-02-13 21:54:21 +01:00
Nicolas Goaziou fd51dad999 Turn momentarily planning keywords into defvar
* lisp/org.el (org-closed-string, org-deadline-string,
  org-scheduled-string): Use a defvar.

DEADLINE, SCHEDULED and CLOSED are now meant to be constants. However,
we preserve backward-compatibility during obsolencence phase.
2015-02-12 00:46:29 +01:00
Nicolas Goaziou a4083de5c2 Fix typo
* lisp/org.el (org-read-date-analyze): Fix typo.

Reported-by: Charles Millar <millarc@verizon.net>
<http://permalink.gmane.org/gmane.emacs.orgmode/94820>
2015-02-10 17:43:13 +01:00
Nicolas Goaziou 16841306ed Use `org-element-copy'
* lisp/org.el (org-timestamp-split-range): Use `org-element-copy'.  Do
  not preserve :parent property anymore.

* lisp/ox.el (org-export-as): Use `org-element-copy'.

* testing/lisp/test-org.el (test-org/timestamp-split-range): Update test.
2015-02-09 10:15:59 +01:00
Yuri D. Lensky ba544e4caa Fix timestamp-based sorting of tags-based entries in agenda
* lisp/org.el (org-scan-tags): Fix agenda org tags scans to properly
  add timestamp property, completely analogously to
  org-agenda-get-todos.
* lisp/org-agenda.el (org-agenda-entry-get-agenda-timestamp,
  org-agenda-get-todos): Factored timestamp retrieval code out to
  separate function org-agenda-entry-get-agenda-timestamp from
  org-agenda-get-todos.

Before this fix, timestamps were ignored when sorting agenda views of
the 'tags' and 'tags-todo' types.

TINYCHANGE
2015-02-09 01:08:42 +01:00
Nicolas Goaziou 0be8495d01 Call `org-insert-heading' instead of (insert "* ")
* lisp/org-agenda.el (org-agenda-insert-diary-as-top-level):
* lisp/org.el (org-link-search):  Call `org-insert-heading' instead
  of (insert "* ").

This allows, in particular, to run `org-insert-heading-hook' and
possibly fix up blank lines around.
2015-02-08 01:45:38 +01:00
Nicolas Goaziou ca0199c7ee `org-insert-heading' can be forced to insert top-level headline
* lisp/org.el (org-insert-heading): Change signature.  Tiny refactoring.
* testing/lisp/test-org.el (test-org/insert-heading): Add tests.
2015-02-08 01:43:30 +01:00
Alan Schmitt 6d691e2aa8 Function `org-link-search' does exact headline search
* lisp/org.el (org-link-search): Change headline search such that it
always does an exact search, ignoring spaces.

* testing/lisp/test-org.el (test-org/fuzzy-links): Test exact headline
match with spaces and cookies.

* doc/org.texi (External links): Cleanup footnote about the
`org-link-search-must-match-exact-headline' option for text searches
and add a footnote about the effect of the same option for heading
searches.

* doc/ORG-NEWS: Document changes.
2015-02-07 22:42:40 +01:00
Nicolas Goaziou ab9e9d2857 Tiny refactoring
* lisp/org.el (org-ctrl-c-ctrl-c): Tiny refactoring.
2015-02-05 18:12:23 +01:00
Nicolas Goaziou 4c00842e88 Fix `org-toggle-heading'
* lisp/org.el (org-toggle-heading): Avoid adding spurious stars when
  changing a plain list into a subtree.

Reported-by: Rainer Stengele <rainer.stengele@online.de>
<http://permalink.gmane.org/gmane.emacs.orgmode/94223>
2015-02-03 21:39:53 +01:00
Sami Airaksinen c90925be29 org.el: org-babel-load-file loads first tangle file
(org-babel-load-file): When org-mode FILE has multiple target files
for tangle blocks, `exported-file' will be set to last found
target file, which might not be the `file'.

Therefore fix for this bug is to select the last element of that
tangled file list, which is the tangle target file of the first found
tangle block, most typically the `file'.

TINYCHANGE
2015-02-01 00:02:21 +01:00
Nicolas Goaziou fe63e59faf Small refactoring
* lisp/org.el (org-log-beginning):
* lisp/org-agenda.el (org-agenda-insert-diary-make-new-entry): Small
  refactoring.
2015-01-30 19:41:02 +01:00
Nicolas Goaziou 98a1bc868a Replace `org-end-of-meta-data-and-drawers'
* lisp/org.el (org-end-of-meta-data): New function.
(org-end-of-meta-data-and-drawers): Remove function.

* lisp/org-capture.el (org-capture-place-plain-text): Use new
  function.

* testing/lisp/test-org.el (test-org/end-of-meta-data): New test.

* etc/ORG-NEWS: Document removal.
2015-01-30 19:31:27 +01:00
Nicolas Goaziou 31e7634779 Fix special properties list
* lisp/org.el (org-special-properties): Add missing "CATEGORY".

* doc/org.texi (Special properties): Remove "NOBLOCKING" as a special
  property, since it can only be set through a properties drawer.
  This is a reserved property.

Reported-by: Samuel Loury <konubinix@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/94483>
2015-01-30 09:55:31 +01:00
Aaron Ecay 076e0ea518 Fix error messages.
* lisp/ob-coq.el (org-babel-coq-initiate-session):
* lisp/ob-latex.el (org-babel-execute:latex):
* lisp/org-macro.el (org-macro-replace-all):
* lisp/org.el (org--get-display-dpi): Fix formatting of error
messages.
2015-01-26 02:53:15 -05:00
Aaron Ecay 9f75cea40d Obsolete ‘org-at-regexp-p’.
* lisp/org.el (org-at-regexp-p): Remove, adding an obsolete function
alias.
(org-in-regexp): Tidy docstring.
(org-open-at-point):
(org-between-regexps-p):
* lisp/org-table.el (org-table-fedit-shift-reference):
(org-table-show-reference): Call ‘org-in-regexp’ instead.
2015-01-22 01:52:49 -05:00
Nicolas Goaziou cf77de2c3a Fix docstrings
* lisp/org.el (org-next-visible-heading,
  org-previous-visible-heading): Shorten summary.  Fix typo.
2015-01-21 23:44:21 +01:00
Aaron Ecay 9348b5f1b0 Add new functions to move to the next/prev headline skipping inline tasks.
* lisp/org.el (org-next-visible-heading):
(org-previous-visible-heading): New functions.
(org-speed-commands-default, org-mode-map): Use them.
2015-01-20 18:55:07 -05:00
Nicolas Goaziou 9fc8e3c0fa `org-open-link' follows timestamps in properties
* lisp/org.el (org-open-at-point): Follow timestamps in properties
  drawers.  Refactor.

Suggested-by: Marco Wahl <marcowahlsoft@gmail.com>
2015-01-20 21:42:12 +01:00
Aaron Ecay d34b804a6f org: Calculate dpi directly.
* lisp/org.el (org--get-display-dpi): New function.
(org-create-formula-image-with-dvipng):
(org-create-formula-image-with-imagemagick): Use it.

The previous method tried to calculate the display dpi from the font
height, but this is wonky and not necessary, since it can be
calculated directly.
2015-01-19 00:34:56 -05:00
Aaron Ecay 05ac7b37a4 org.el: org-toggle-inline-images: Only display messsages when interactive.
* lisp/org.el (org-toggle-inline-images): Only message if
called-interactively-p.

The old code made a halfhearted attempt to do this; this patch
provides the other half of the heart.
2015-01-19 00:16:51 -05:00
Nicolas Goaziou d1c5dc2e41 Fix `org-set-visibility-according-to-property'
* lisp/org.el (org-set-visibility-according-to-property): Ensure state
  is exctracted from a real node property.  Ignore narrowing.
2015-01-18 17:00:49 +01:00
Nicolas Goaziou 71610b19ff Remove `org-in-drawer-p'
* lisp/org.el (org-in-drawer-p): Remove function.

The function is unused, and slightly wrong.
2015-01-17 23:42:00 +01:00
Marco Wahl e0879b03d0 Merge branch 'maint' 2015-01-12 13:02:20 +01:00
Marco Wahl ca21b7b86d org*.el: Fix call to calendar API
* lisp/org-clock.el: Replace occurances of
'calendar-absolute-from-iso' with 'calendar-iso-to-absolute'.

* lisp/org-agenda.el: Same as above.

* lisp/org.el: Same as above.

Some (long marked obsolete) calendar entities have been dropped from
Emacs recently.  One of those is 'calendar-absolute-from-iso'.
2015-01-12 12:35:10 +01:00
Oleh Krehel 6c811ac861 Fix docstring
* lisp/org.el (org-insert-time-stamp): Add a reference to
  `format-time-string'.
2015-01-10 22:28:18 +01:00
Nicolas Goaziou 85c55d453b Fix `org-read-date-prefer-future' when rescheduling
* lisp/org.el (org-read-date-analyze): When
  `org-read-date-prefer-future', offer a date in the future even if
  default date is different from now.

* testing/lisp/test-org.el (test-org/org-read-date): Add tests.

Reported-by: Rasmus <rasmus@gmx.us>
<http://permalink.gmane.org/gmane.emacs.orgmode/93805>
2015-01-06 23:19:42 +01:00
Nicolas Goaziou 18f50c4a20 Fix docstring
* lisp/org.el (org-add-link-type): Remove reference to non-existent
  `org-export-normalize-links' function.
2015-01-05 17:47:53 +01:00
Nicolas Goaziou 52638c17e5 Fix typo
* lisp/org.el (org-outline-level): Fix typo.
2014-12-24 17:28:48 +01:00
Nicolas Goaziou c6d9a4ec22 Fix false positive SCHEDULED lines in sparse tree
* lisp/org.el (org-check-before-date, org-check-after-date,
  org-check-dates-range): Make sure we're really at a timestamp before
  validating the entry.

Reported-by: James Harkins <jamshark70@qq.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/93126>
2014-12-23 12:22:16 +01:00
Nicolas Goaziou f0a13a09d8 Implement `org-at-planning-p'
* lisp/org.el (org-at-planning-p): New function.
* testing/lisp/test-org.el (test-org/at-planning-p): New test.
2014-12-23 12:14:40 +01:00
Nicolas Goaziou 1c5014740e Compare `org-current-level' and `org-outline-level'
* lisp/org.el (org-outline-level, org-current-level): Update
  docstrings to insist on the difference between the two functions.
2014-12-23 11:12:00 +01:00
Nicolas Goaziou 6dcaafff3e Tiny refactoring
* lisp/org.el (org-current-level): Tiny refactoring.
2014-12-22 00:09:08 +01:00
Nicolas Goaziou c5ba48072c Fix typo
* lisp/org.el (org-re-timestamp): Fix typo introduced in
  eae19b1284.
2014-12-21 23:39:38 +01:00
Nicolas Goaziou eae19b1284 Fix default value in `org-sparse-tree-default-date-type'
* lisp/org.el (org-sparse-tree-default-date-type): Use new default
  value instead of the undocumented previous one.  Fix docstring, too.
(org-sparse-tree): Apply change to previous variable.
(org-re-timestamp): Apply change to previous variable.  Refactor code.
2014-12-21 23:20:14 +01:00
Nicolas Goaziou 7dc8a1b362 Move `org-do-sort' into "org-table.el"
* lisp/org.el (org-do-sort): Remove function.

* lisp/org-table.el (org-table--do-sort): New function.
(org-table-sort-lines): Use new function.

`org-do-sort' is really a helper function for `org-table-sort-lines',
which applies exclusively on tables.
2014-12-21 22:23:11 +01:00
Nicolas Goaziou 4a214a0647 `org-outline-level' ignores narrowing
* lisp/org.el (org-outline-level): Ignore narrowing.  Refactor to be
  slightly faster.
2014-12-21 22:14:26 +01:00
Nicolas Goaziou 442216871a Fix `org-log-beginning' on empty entries
* lisp/org.el (org-log-beginning): Check for the need to insert
  a drawer in all cases.

Suggested-by: Eric Abrahamsen <eric@ericabrahamsen.net>
<http://permalink.gmane.org/gmane.emacs.orgmode/93538>
2014-12-20 21:59:51 +01:00
Nicolas Goaziou 13711d4583 Fix table sorting with ?F key
* lisp/org.el (org-do-sort): Properly reverse results when ?F and
  a compare function is provided.  Small refactoring.

* testing/lisp/test-org-table.el (test-org-table/sort-lines): New
  test.
2014-12-20 21:29:51 +01:00
Jon Snader 71b098702c org.el: Implement user-defined table sorting
* lisp/org.el (org-do-sort): Implement the ?f and ?F sorting options
  to allow user-defined table sorting.  Update the DOC string.

* lisp/org-table (org-table-sort-lines): Add the GETKEY-FUNC and
  COMPARE-FUNC optional parameters and pass them to the call to
  `org-do-sort'.  Update the DOC string.

* doc/org.texi (org-table-sort-lines): Update documentation to reflect
  the addition of the ?f and ?F options.

This patch implements user-defined extraction and comparison functions
for table sorting.  Thanks to Nicolas Goaziou for helpful suggestions.

This patch was discussed on the Org Mode mailing list:
http://article.gmane.org/gmane.emacs.orgmode/93334
2014-12-20 20:36:57 +01:00
Alan Schmitt 57b76e2771 org.el: Allow calendars to be in their own frame
* lisp/org.el (org-read-date): Create and delete frames if
`calendar-setup' is set to 'calendar-only.
2014-12-16 19:09:22 +01:00
Nicolas Goaziou 389274c1c4 Fix `org-hide-archived-subtrees'
* lisp/org.el (org-hide-archived-subtrees): Prevent an error when END
  argument doesn't match the end of a subtree.  Prevent false
  positives.  Also, archive tag is case-sensitive.
2014-12-16 10:28:34 +01:00
Nicolas Goaziou eac147621e Fix 434103
* lisp/org.el (org-log-into-drawer): Fix
  04f6830a46e54db23afbe3c94de38a22c3.
2014-12-15 13:07:10 +01:00
Nicolas Goaziou 43410304f6 Function `org-log-into-drawer' returns a string or nil
* lisp/org.el (org-log-into-drawer): Update docstring.  Function
  returns a string or nil, not t anymore.
(org-mode-flyspell-verify): Small refactoring.
2014-12-14 18:21:42 +01:00