Commit Graph

953 Commits

Author SHA1 Message Date
Bastien Guerry 3404ac84ec Move `org-toggle-sticky-agenda' again and autoload it
The previous related commit was to prevent an error
when M-x org-reload RET was reloading org files from
an ELPA directory.  We now autoload the function so
that it is know by the time org-reload might be called.
2012-08-26 23:44:49 +02:00
Bastien Guerry d832837693 org-agenda.el: Define `org-toggle-sticky-agenda' before calling it 2012-08-26 23:24:40 +02:00
Bastien Guerry d85e7bc10a org-agenda.el: Fix bug when calling `org-agenda-kill' and `org-agenda-archive-with' with a non-nil value of `org-agenda-stick'
* org-agenda.el (org-agenda-kill, org-agenda-archive-with):
Fix bug when called with a non-nil value of `org-agenda-stick'.

Thanks to Moritz Ulrich for reporting this.
2012-08-26 14:53:59 +02:00
Bastien Guerry 74d1658c60 org-agenda.el (org-agenda-refile): Fix bug when refiling an sticky agenda entry
* org-agenda.el (org-agenda-refile): Fix bug when refiling an
entry from a sticky agenda.

Thanks a lot to Moritz Ulrich for reporting this.
2012-08-26 11:20:02 +02:00
Bastien Guerry d44b56e81e org-agenda.el: Fix bug about restoring existing window conf
* org-agenda.el (org-prepare-agenda-window): Use
`org-pre-agenda-window-conf' if already set.
(org-agenda-Quit): Set `org-pre-agenda-window-conf' to nil
when quitting.
(org-agenda-quit): Ditto.

Thanks to Moritz Ulrich for reporting a bug about this.
2012-08-24 15:54:58 +02:00
Bastien Guerry 10dbdf5fc2 Update the handling of agenda/capture keys contextualization.
* org.el (org-contextualize-keys): Rename from
`org-contextualize-agenda-or-capture'.  Fix normalization to
handle empty key replacement string.
(org-contextualize-validate-key): Rename from
`org-contexts-validate'.  Allow checking against a custom
function.

* org-agenda.el (org-agenda-custom-commands-contexts): Update.
(org-agenda): Use `org-contextualize-keys'.

* org-capture.el (org-capture-templates-contexts): Ditto.

* org.texi (Templates in contexts, Setting Options): Update to
reflect changes in how contexts options are processed.
2012-08-24 12:18:05 +02:00
Bastien Guerry 6c94ea0518 Implement key replacement depending on the contexts.
* org.el (org-contextualize-agenda-or-capture): Handle key
replacement depending on the contexts.

* org-capture.el (org-capture-templates-contexts): Allow to
use the context as a way to replace one capture template by
another one.

* org-agenda.el (org-agenda-custom-commands-contexts): Allow
to use the context as a way to replace one agenda custom
command by another one.

* org.texi (Templates in contexts): Document the new structure
of the variables `org-agenda-custom-commands-contexts' and
`org-capture-templates-contexts'.

In the setup below, X is not a real capture template, it is just
an alias to templates A and B in .txt and .el files.  A and B are
deactivated by default in all files.

(setq org-capture-templates
      '(("X" "Nothing but an alias")
	("A" "AAAA" entry (file+headline [...]))
	("B" "BBBB" entry (file+headline [...]))))

(setq org-capture-templates-contexts
      '(("A" "A" ((not-in-file . ".*")))
	("B" "B" ((not-in-file . ".*")))
	("X" "A" ((in-file . "\\.txt")))
	("X" "B" ((in-file . "\\.el")))))

Thanks to Carsten for suggesting this "key-replacement" idea!
2012-08-24 12:17:58 +02:00
Bastien Guerry d378c7b41b Implement context filtering for agenda commands and capture templates.
* org.el (org-contextualize-agenda-or-capture)
(org-rule-validate): New functions, implement context
filtering for agenda commands and capture templates.

* org-agenda.el (org-agenda-custom-commands-contexts): New
option.
(org-agenda): Use it.

* org-capture.el (org-capture-templates-contexts): New option.
(org-capture-select-template): Use it.

* org.texi (Templates in contexts): Document the new option
`org-capture-templates-contexts'.
(Storing searches): Document the new option
`org-agenda-custom-commands-contexts'.

This idea comes from Sylvain Rousseau, who implemented a similar
feature with org-context.el: https://github.com/thisirs/org-context

This implementation is a bit simpler and more general.  Simpler
because it relies on existing templates, no need to define other
contextual ones.  More general because contexts can be defined
wrt files and modes.

Thanks *very much* to Sylvain for paving the way -- certainly a
great addition to Org.
2012-08-23 11:08:47 +02:00
Bastien Guerry 6a69ceaed6 org-agenda.el: Fix a bug in category filtering
* org-agenda.el (org-prepare-agenda): Minor code clean-up.
(org-agenda-filter-by-category): Filtering must be turned off
only when a category filter has been set and this filter is
not empty.
2012-08-21 18:12:16 +02:00
Bastien Guerry 88213fff61 org-agenda.el: Code clean-up
* org-agenda.el (org-search-view, org-agenda-get-todos)
(org-agenda-get-timestamps, org-agenda-get-sexps)
(org-agenda-get-progress, org-agenda-get-deadlines)
(org-agenda-get-scheduled, org-agenda-get-blocks): Use
`category-pos' instead of `org-category-pos'.
2012-08-21 18:01:30 +02:00
Bastien Guerry 4e5ed3c453 org-agenda.el (org-agenda-persistent-marks): Minor docstring enhancement
* org-agenda.el (org-agenda-persistent-marks): Minor docstring enhancement.
2012-08-20 08:02:36 +02:00
Bastien Guerry 523f13dd08 org-agenda.el: New 'warntime property for agenda entries
* org-agenda.el (org-agenda-get-timestamps)
(org-agenda-get-sexps, org-agenda-get-deadlines)
(org-agenda-get-scheduled): Add the 'warntime as a text
property, getting its value from the APPT_WARNTIME property.
(org-agenda-to-appt): Use the 'warntime text property.

Thanks to Ivan Kanis for reporting a bug related to this.
2012-08-19 21:48:52 +02:00
Bastien Guerry 655da8d1d3 Remove useless (t nil) sexps at the end of some (cond ...) constructs
* org.el (org-compute-latex-and-specials-regexp)
(org-paste-subtree, org-sort-entries, org-store-link)
(org-open-at-point, org-file-remote-p, org-add-log-setup)
(org-set-tags-to, org-fast-tag-selection)
(org-diary-sexp-entry): Ditto.

* org-agenda.el (org-agenda-get-blocks, org-cmp-priority)
(org-cmp-effort, org-cmp-todo-state, org-cmp-alpha)
(org-cmp-tag, org-cmp-time): Remove useless (t nil) sexps at
the end of (cond ...) constructs.

* org-mobile.el (org-mobile-create-index-file): Ditto.

* org-lparse.el (org-lparse-format-table-row): Ditto.

* org-list.el (org-sort-list): Ditto.

* org-id.el (org-id-get): Ditto.

* org-html.el (org-export-html-preprocess): Ditto.

* org-exp.el (org-default-export-plist)
(org-table-clean-before-export): Ditto.

(t nil) in (cond (...) (...) (t nil)) has no other meaning that to
remind the developer that the cond sexp returns nil in case no condition
is matched.  For several (cond ...) constructs this is obvious from reading
the code.  For others, the reminder might be useful and we leave it.

See the discussion about this on emacs-devel:
http://thread.gmane.org/gmane.emacs.devel/152664
2012-08-19 14:42:54 +02:00
Bastien Guerry 76b0d582b8 Replace Emacs version to "24.2" by "24.3"
This is needed because the current HEAD of the git repository
will not be synced with Emacs 24.2 but more likely with Emacs 24.3.
2012-08-16 09:24:58 +02:00
Bastien Guerry 57166defd1 org-agenda.el (org-agenda-menu-two-column): Rename to `org-agenda-menu-two-columns'
* org-agenda.el (org-agenda-menu-two-column): Rename to
`org-agenda-menu-two-columns'.
2012-08-15 10:31:22 +02:00
Bastien Guerry d1b72db961 org-agenda.el (org-diary): Fix tiny typo
* org-agenda.el (org-diary): Fix tiny typo.
2012-08-13 16:30:43 +02:00
Bastien Guerry 9a9d4e3666 Fix some warnings. 2012-08-13 00:36:15 +02:00
Bastien Guerry 82af1bb96c org-agenda.el (org-agenda-get-sexps): Use `org-get-tags-at' to allow tag inheritance
* org-agenda.el (org-agenda-get-sexps): Use `org-get-tags-at'
to allow tag inheritance.

Thanks to Simon Thum for suggesting this.
2012-08-11 19:52:56 +02:00
Bastien Guerry 70dd1196d2 Massive code clean-up.
Delete trailing whitespaces.
Indent all sexps correctly.
Sentences end with double spaces.
2012-08-11 19:10:44 +02:00
Bastien Guerry 621364fc6d org-agenda.el: Add a 'tags property for agenda entries created from sexps
* org-agenda.el (org-agenda-get-sexps): Add a 'tags property
for agenda entries created from sexps.

Thanks to Simon Thum for reporting this.
2012-08-10 12:29:51 +02:00
Bastien Guerry 068a354747 org-agenda.el (org-agenda-switch-to): Run hooks in ̀org-agenda-after-show-hook'
* org-agenda.el (org-agenda-switch-to): Run hooks in
̀org-agenda-after-show-hook'.

Thanks to Jack Erwin for suggesting this.
2012-08-10 10:12:44 +02:00
Christophe Junke 9dae6f04b1 Let `org-agenda-time-grid' control if the grid is displayed.
* org-agenda.el (org-agenda-list): Ensure that the
list returned by `org-agenda-add-time-grid-maybe' is appended
to `rtnall' before checking if the latter is emtpy.

In the case where rtnall is empty (no item for current day), we do not
call org-agenda-add-time-grid-maybe.  This seems bogus because that
function is already computing whether the time grid must be included,
and does so according to the user's preferences.

In particular, the `org-agenda-time-grid' variable has a
'require-timed' parameter controlling the visibility of the time grid.

So, this patch :

 - removes the premature check for rtnall being empty,
 - inconditionally calls org-agenda-add-time-grid-maybe,
 - and finally checks the emptiness of the resulting list
   before pretty printing.

TINYCHANGE
2012-08-07 23:44:08 +02:00
Bastien Guerry 179f5e484a org-agenda.el: New commands `org-agenda-next/previous-item'.
* org-agenda.el (org-agenda-mode-map): Bind
`org-agenda-show-priority' to `C-c,' instead of `P'.
(org-agenda-next-item, org-agenda-previous-item): New
commands to move by one item down/up in the agenda.
(org-agenda-mode-map): Bind `org-agenda-next-item' and
`org-agenda-previous-item' to `N' and `P' respectively.

Thanks to Eric Abrahamsen for this idea and a first patch.
2012-08-07 23:11:26 +02:00
Bastien Guerry 6f571de2f0 org-agenda.el: More appropriate error when there is no Org agenda.
* org-agenda.el (org-agenda-check-type): Throw a more
appropriate error message when no agenda is currently being
displayed.
2012-08-05 09:16:40 +02:00
Bastien Guerry b771d4b05b org-agenda.el: Bugfix for `org-agenda-write'.
* org-agenda.el (org-agenda-write): Fix bug when writing
agenda to an external file while `org-agenda-sticky' is
non-nil.
2012-08-01 16:32:36 +02:00
Bastien Guerry a865abb5fe Let's a :APPT_WARNTIME: property override `appt-message-warning-time' in `org-agenda-to-appt'.
* org.el (org-speed-commands-default): New speedy command to
quickly add the :APPT_WARNTIME: property.

* org-agenda.el (org-agenda-to-appt): Use the :APPT_WARNTIME:
property to override `appt-message-warning-time' when adding
an appointment from an entry.

* org.texi (Weekly/daily agenda): Mention APPT_WARNTIME and
its use in `org-agenda-to-appt'.

This feature has been suggested, along with preliminary patches,
by Ivan Kanis.  Thanks!
2012-08-01 16:05:47 +02:00
Bastien Guerry 9f66ab1d84 Fix bug when using `org-store-agenda-views' with `org-agenda-sticky' on.
* org-agenda.el (org-batch-store-agenda-views): Use the sticky
agenda buffer name, if required.
(org-agenda-write): New parameter `agenda-bufname' to allow
setting the agenda buffer name.

Thanks to François Allisson for reporting this bug.
2012-07-30 12:19:17 +02:00
Bastien Guerry 8eb584331a Add punctuation at the end of the first line of docstrings. Code cleanup. 2012-07-30 10:08:15 +02:00
Bastien Guerry 46daa10bf3 org-agenda.el (org-agenda-start-with-log-mode): Add relevant customization types.
* org-agenda.el (org-agenda-start-with-log-mode): Add relevant
customization types.

Thanks to John Wiegley for raising this issue and to Carsten for
directions.
2012-07-28 18:53:11 +02:00
Achim Gratz 044b0ff7e8 Fix breakage from previous commit
* lisp/org-element.el: Do not (require 'org).

* lisp/org-agenda.el: Remove duplicate requires.
2012-07-28 07:21:20 +02:00
Max Mikhanosha 2443318f18 Fix undefined org-habit-show-all-today variable when org-habit is not loaded
* lisp/org-agenda.el (defvar org-habit-show-habits-only-for-today): initialize to nil

TINYCHANGE
2012-05-29 16:39:54 -04:00
Max Mikhanosha e67734fe8e Add ability to show all (even unscheduled) habits on today agenda, by
setting `org-habit-show-all-today' to t.

* lisp/org-agenda.el (defvar org-habit-show-all-today): new variable
(org-agenda-get-scheduled): show all habits if user wants it
* lisp/org-habit.el (defcustom org-habit-show-all-today): new variable
2012-05-28 14:56:23 -04:00
Bastien Guerry 2a7321f70a Revert "Let org-agenda-time-grid control if the grid is displayed"
This reverts commit 993dd076fb.
2012-05-26 06:22:51 +02:00
Christophe Junke 993dd076fb Let org-agenda-time-grid control if the grid is displayed
* lisp/org-agenda.el (org-agenda-list): Ensures that the
list returned by `org-agenda-add-time-grid-maybe' is appended
to ̀rtnall' before checking if the latter is emtpy.

In the case where `rtnall' is empty (no item for current day),
we do not call `org-agenda-add-time-grid-maybe'.  This seems
bogus because that function is already computing whether the
time grid must be included, and does so according to the
user's preferences.

In particular, the `org-agenda-time-grid' variable has a
`require-timed' parameter controlling the visibility of the
time grid.

So, this patch :

 - removes the premature check for `rtnall' being empty,
 - inconditionally calls `org-agenda-add-time-grid-maybe',
 - appends the result to `rtnall',
 - and finally checks the emptiness of the resulting list
   before pretty printing.

TINYCHANGE
2012-05-26 00:19:01 +02:00
Achim Gratz 595d451280 use org-no-warnings macro for XEmacs compatibility
* lisp/org-agenda.el: Replace with-no-warnings with
  org-no-warnings (defined in org-macs.el).

* lisp/org-bbdb.el: Replace with-no-warnings with
  org-no-warnings (defined in org-macs.el).

* lisp/org-clock.el: Replace with-no-warnings with
  org-no-warnings (defined in org-macs.el).

* lisp/org.el: Replace with-no-warnings with org-no-warnings (defined
  in org-macs.el).
2012-05-19 09:48:57 +02:00
Bastien Guerry 4f60b5f3a5 Use (with-no-warnings ...) construct for `date' and `entry'. 2012-05-17 11:07:19 +02:00
Bastien Guerry 505cc7a221 org-agenda.el: Remove any timestamp from the headline text.
* org-agenda.el (org-agenda-get-timestamps): Remove any
active timestamp from the headline text, not only those for
the current date.

Thanks to SW, Nick Dokos, Samuel Wales and Brian van den Broek
for inputs about this.
2012-05-08 16:09:25 +02:00
Bastien Guerry 0727ce7030 org-agenda.el: Fix bug: use `org-agenda-bulk-unmark-all'.
* org-agenda.el (org-agenda-bulk-action): Fix bug: use
`org-agenda-bulk-unmark-all'.
2012-05-08 10:44:13 +02:00
Bastien Guerry e508b497a3 org-agenda.el (org-agenda-view-mode-dispatch): message more readable.
* org-agenda.el (org-agenda-view-mode-dispatch): Make the
message more readable.
2012-05-05 09:57:30 +02:00
Bastien Guerry 39204efe9a New command `org-agenda-bulk-mark-all' bound to `*'. Other minor enhancements.
* org-agenda.el (org-agenda-mode-map): New keybinding ̀*' to
mark all entries for bulk action.
(org-agenda-menu): New menu item for marking all entries.
(org-agenda-bulk-mark-all): New function to mark all entries.
(org-agenda-bulk-mark-regexp): Minor docstring fix.
(org-agenda-bulk-unmark): With a prefix argument, unmark all.
Also send a better message.
(org-agenda-bulk-remove-all-marks): Rename to
`org-agenda-bulk-unmark-all'.  Check against
`org-agenda-bulk-marked-entries' before trying to unmark
entries.  Minor docstring fix.
(org-agenda-bulk-unmark-all): Renamed from
̀org-agenda-bulk-remove-all-marks'.
2012-05-05 09:21:22 +02:00
Bastien Guerry a16814a475 New option ̀org-agenda-bulk-mark-char'.
* org-agenda.el (org-agenda-bulk-mark-char): New option.
(org-agenda-bulk-mark): Use the new option.
2012-05-05 09:07:37 +02:00
Bastien Guerry e5c8780e5c Merge branch 'maint' 2012-05-01 10:04:46 +02:00
Bastien Guerry adb10d1543 org-agenda.el (org-agenda-bulk-mark-regexp): Fix bug.
* org-agenda.el (org-agenda-bulk-mark-regexp): Fix bug when
setting the number of marked entries.
2012-05-01 10:04:31 +02:00
Bastien Guerry 237c65b1f7 org.el: Fix `org-diary' again by checking `org-agenda-buffer' correctly. 2012-04-30 00:04:20 +02:00
Bastien Guerry 982b7b972f Merge branch 'fix-org-diary-bug' into fix-compiler-warnings 2012-04-28 22:23:40 +02:00
Bastien Guerry 4b8359a395 org-agenda.el: Prevent org-diary to fail.
* org-agenda.el (org-diary): Prevent failure from
`org-compile-prefix-format' when there is no agenda buffer.

Thanks to Rafael who reported this.
2012-04-28 22:23:08 +02:00
Bastien Guerry c5f73635d0 Replace obsolete variable `buffer-substring-filters'.
* org-agenda.el (org-agenda-mode): Replace obsolete variable
`buffer-substring-filters'.

* org-indent.el (org-indent-mode): Ditto.
2012-04-28 21:36:58 +02:00
Bastien Guerry 5add9cdef0 org-agenda.el: Implement `org-agenda-persistent-marks' for bulk actions.
* org-agenda.el (org-agenda-persistent-marks): New option to
keep marks after a bulk action.  The option defaults to nil.
(org-agenda-bulk-action): Use the new option.

* org.texi (Agenda commands): Document persistent marks.
2012-04-24 18:10:55 +02:00
Toby S. Cubitt 9432a9f1a0 Agenda: Add org-agenda-skip-timestamp-if-deadline-is-shown
* lisp/org-agenda.el (org-agenda-skip-timestamp-if-deadline-is-shown):
Skip timestamp items in agenda view if item is already shown as a
deadline item.
(org-agenda-skip-dealine-if-done): Pass deadline results to
org-agenda-get-timestamps.
(org-agenda-get-timestamps): Optionally take list of deadline results,
so that timestamp results can be skipped if already included in
deadline results.
2012-04-23 12:50:43 +02:00
Toby S. Cubitt 987b185e90 Agenda: Add org-agenda-diary-sexp-prefix customization option
* lisp/org-agenda.el (org-agenda-diary-sexp-prefix): Regexp matching
deadline/scheduling information to be displayed in diary sexp agenda
items.
(org-agenda-get-sexps): Extract deadline/scheduling information from
diary sexp entries.
2012-04-23 12:48:43 +02:00
Bastien Guerry 94bc01e77e org-agenda.el: Small fix. Use `org-called-interactively-p' instead of `called-interactively-p'. 2012-04-22 23:15:04 +02:00
Bastien Guerry de7c48759c Let `org-toggle-sticky-agenda' output a message only when called interactively.
* org-agenda.el (org-toggle-sticky-agenda): Only shout a
message when called interactively.
(org-agenda-get-restriction-and-command): Call
`org-toggle-sticky-agenda' interactively.
2012-04-22 15:27:21 +02:00
Bastien Guerry 18cf324f07 org-agenda.el: Fix bug in top-category filtering.
* org-agenda.el (org-agenda-top-category-filter): New variable
for storing the current top-category filter.
(org-agenda-redo): Apply a top-category filter, if any.
(org-agenda-filter-by-top-category)
(org-agenda-filter-top-category-apply): Set
`org-agenda-top-category-filter' to the right value.

Thanks to John Wiegley for reporting this.
2012-04-22 09:21:42 +02:00
Max Mikhanosha 7094dddca4 * lisp/org-agenda.el (org-agenda-quit): Fixed messed up parenthesis in previous commit
TINYCHANGE
2012-04-21 08:40:58 -04:00
Max Mikhanosha 9e4cacc803 Fix q key in sticky agenda not honoring org-agenda-restore-windows-after-quit
* lisp/org-agenda.el (org-agenda-quit): copy the code for optionally
  restoring window configuration after burying the sticky agenda
  buffer.
2012-04-21 08:32:12 -04:00
Madan Ramakrishnan edb7e341d1 org-agenda.el: Fix `org-agenda-bulk-toggle'.
* org-agenda.el (org-agenda-bulk-mark): Truly make arg optional as
advertised by the function.

Problem here was that `org-agenda-bulk-toggle' calls
`org-agenda-bulk-mark' with no parameters; however, the (max arg 1)
call inside `org-agenda-bulk-mark' will fail with no parameter.

TINYCHANGE
2012-04-21 12:13:16 +02:00
Bastien Guerry d5c0af72cf Use (derived-mode-p 'org-mode) instead of (eq major-mode 'org-mode).
* org.el (org-show-hierarchy-above, org-cycle)
(org-global-cycle, org-files-list, org-store-link)
(org-link-search, org-open-file, org-display-outline-path)
(org-refile-get-location, org-update-all-dblocks)
(org-change-tag-in-region, org-entry-properties)
(org-save-all-org-buffers, org-revert-all-org-buffers)
(org-buffer-list, org-cdlatex-mode)
(org-install-agenda-files-menu, org-end-of-subtree)
(org-speedbar-set-agenda-restriction): Use (derived-mode-p
'org-mode) instead of (eq major-mode 'org-mode).

* org-timer.el (org-timer-set-timer): Ditto.

* org-table.el (orgtbl-mode, org-table-align, orgtbl-mode): Ditto.

* org-src.el (org-edit-src-exit, org-edit-src-code)
(org-edit-fixed-width-region, org-edit-src-exit): Ditto.

* org-remember.el (org-remember-handler): Ditto.

* org-mouse.el (dnd-open-file, org-mouse-insert-item): Ditto.

* org-macs.el (org-get-limited-outline-regexp): Ditto.

* org-lparse.el (org-replace-region-by): Ditto.

* org-latex.el (org-latex-to-pdf-process)
(org-replace-region-by-latex): Ditto.

* org-indent.el (org-indent-indent-buffer): Ditto.

* org-id.el (org-id-store-link, org-id-update-id-locations)
(org-id-store-link): Ditto.

* org-html.el (org-export-html-preprocess)
(org-replace-region-by-html): Ditto.

* org-footnote.el (org-footnote-normalize)
(org-footnote-goto-definition)
(org-footnote-create-definition, org-footnote-normalize): Ditto.

* org-docbook.el (org-replace-region-by-docbook): Ditto.

* org-ctags.el (find-tag): Ditto.

* org-colview.el (org-columns-redo)
(org-columns-display-here, org-columns-edit-value)
(org-columns-redo): Ditto.

* org-colview-xemacs.el (org-columns-redo)
(org-columns-display-here, org-columns-edit-value)
(org-columns-redo): Ditto.

* org-capture.el (org-capture-insert-template-here)
(org-capture, org-capture-finalize)
(org-capture-set-target-location)
(org-capture-insert-template-here): Ditto.

* org-ascii.el (org-replace-region-by-ascii):  Ditto.

* org-archive.el (org-archive-subtree): Ditto.

* org-agenda.el (org-agenda)
(org-agenda-get-restriction-and-command)
(org-agenda-get-some-entry-text, org-search-view)
(org-tags-view, org-agenda-get-day-entries)
(org-agenda-format-item, org-agenda-goto, org-agenda-kill)
(org-agenda-archive-with, org-agenda-switch-to): Ditto.
2012-04-21 00:43:16 +02:00
Bastien Guerry ec921a2a68 Support hourly repeat cookies.
* org.el (org-repeat-re)
(org-clone-subtree-with-time-shift, org-auto-repeat-maybe)
(org-deadline, org-schedule, org-matcher-time)
(org-time-stamp, org-read-date, org-read-date-get-relative)
(org-display-custom-time, org-get-wdays)
(org-time-string-to-absolute, org-closest-date)
(org-timestamp-change): Allow to set hourly repeat cookie.
Send an error when an hourly repeat cookie is set and no hour
is specified in the timestamp.

* org.texi (Repeated tasks): Document repeat cookies for
years, months, weeks, days and hours.

* org-agenda.el (org-agenda-get-timestamps): Match hourly
repeat cookies.

* org-icalendar.el (org-print-icalendar-entries): Handle
hourly repeat cookies.

Thanks a lot to Takafumi Arakaki for this idea and for a preliminary
version of this patch.
2012-04-21 00:42:56 +02:00
Toby S. Cubitt f426dadef0 Agenda: Add new todo-unblocked and nottodo-unblocked skip conditions
* lisp/org-agenda.el (org-agenda-skip-if, org-agenda-skip-if-todo):
Add new todo-unblocked and nottodo-unblocked skip conditions.  These
match as for todo and nottodo, but only for unblocked todo items.

TINYCHANGE

This patch adds two new tests to `org-agenda-skip-if': 'todo-unblocked
and 'nottodo-unblocked.  These match like 'todo and 'nottodo, but only on
unblocked todo items.  This type of test is useful when compiling custom
agenda views containing lists of currently actionable todo items.

Whilst it's possible to code such tests in `org-agenda-custom-commands'
directly (well, Elisp is Turing-complete: you can in principle code
anything!), it's far less convenient than a simple `org-agenda-skip-if'
test which can reuse much of the existing machinery.

Note that the attached patch applies on top of my other "Fix
org-agenda-skip-if bug" patch, though this new feature is independent of
that bug-fix.
2012-04-20 12:12:42 +02:00
Bastien Guerry d1f1c586d5 Fix merge conflict. 2012-04-20 11:43:27 +02:00
Madan Ramakrishnan ec56dc8ead org-agenda.el: Fix `org-agenda-bulk-toggle'.
* org-agenda.el (org-agenda-bulk-mark): Truly make arg optional as
advertised by the function.

Problem here was that `org-agenda-bulk-toggle' calls
`org-agenda-bulk-mark' with no parameters; however, the (max arg 1)
call inside `org-agenda-bulk-mark' will fail with no parameter.

TINYCHANGE
2012-04-20 11:35:21 +02:00
Bastien Guerry ee6347cc7f org-agenda.el: Bind `^' to `org-agenda-filter-by-top-category'.
* org-agenda.el (org-agenda-mode-map): Bind `^' to
`org-agenda-filter-by-top-category'.
2012-04-17 11:28:44 +02:00
Bastien Guerry 5659dbeebe Delete trailing spaces. 2012-04-17 11:25:22 +02:00
Bastien Guerry a6349c2f50 Fix compiler warnings. 2012-04-17 11:17:17 +02:00
Max Mikhanosha ec7bd3b1be Fix org-agenda-to-appt, which got broken by sticky agenda
* lisp/org-agenda.el (org-agenda-new-marker): Check for NIL org-agenda-buffer
(org-agenda-to-appt): Bind org-agenda-buffer to NIL
2012-04-16 18:55:41 -04:00
Max Mikhanosha 973efcd9c9 Merge branch 'max-sticky-agenda' 2012-04-16 05:25:06 -04:00
John Wiegley 3bd1c2e9bf Added new `org-agenda-filter-by-top-category' command 2012-04-16 03:13:22 -05:00
Max Mikhanosha 7212801808 Merged origin/master into max-sticky-agenda 2012-04-13 18:15:18 -04:00
Bastien Guerry 990558eb21 Merge branch 'hotfix' 2012-04-10 22:26:18 +02:00
Bastien Guerry bfe8ec1fce org-agenda.el: Fix inconsistency in `org-agenda-filter-apply' for category filters.
* org-agenda.el (org-agenda-filter-make-matcher)
(org-agenda-filter-apply): Allow filtering entries out by
category.  Using `C-u <' from the agenda view will redisplay
the agenda without entries from categories of the current
line.

Thanks to John Wiegley for pointing this out.
2012-04-10 22:25:53 +02:00
Bastien Guerry 5841dbd5ec Merge branch 'hotfix' 2012-04-10 20:23:29 +02:00
Bastien Guerry 3ec180b88f Revert "org-agenda.el: Remove useless prefix argument."
This reverts commit 346907b996.
2012-04-10 20:23:15 +02:00
Bastien Guerry 4611adac23 Merge branch 'hotfix' 2012-04-10 20:09:33 +02:00
Bastien Guerry 346907b996 org-agenda.el: Remove useless prefix argument.
* org-agenda.el (org-agenda-filter-by-category): Remove
useless prefix argument.

Thanks to John Wiegley for spotting this.
2012-04-10 20:09:28 +02:00
Bastien Guerry ae4ba1b35c Add :version to org-agenda.el options. 2012-04-03 13:40:11 +02:00
Bastien Guerry a5774431b3 Merge branch 'hotfix-7.8.06' 2012-04-02 16:46:02 +02:00
Bastien Guerry 7ea4efd411 Don't rename `entry' to `org-entry'.
This issue should be handled more carefully.
2012-04-02 16:45:47 +02:00
Bastien Guerry 967783215b Merge branch 'hotfix-7.8.06'
Conflicts:
	lisp/org.el
2012-03-31 11:04:40 +02:00
Bastien Guerry 6cbf1f4172 Fix global dynamic variables in org-agenda.el and org.el.
Thanks to Martyn Jago for preliminary work on this.
2012-03-30 23:04:55 +02:00
Bastien Guerry 86643eba4f org-agenda.el (org-agenda-filter-apply): Bugfix: Add a missing let binding.
* org-agenda.el (org-agenda-filter-apply): Bugfix: Add let
binding.
2012-03-23 22:13:59 +01:00
Max Mikhanosha 013d9f03f2 When an agenda item with 'extra property (such as Scheduled 2x)
is redisplayed, it was losing the 'extra property on redisplay

* lisp/org-agenda.el (org-agenda-change-all-lines): move accessing of
'extra text property outside of with-current-buffer for original
buffer
2012-03-22 15:02:54 -04:00
Bastien Guerry b54ad29fa3 Merge branch 'hotfix-7.8.06' 2012-03-22 01:19:24 +01:00
Bastien Guerry 2fa0aa69ea org-agenda.el: Fix incorrect custom option definition.
* org-agenda.el (org-agenda-custom-commands-local-options):
Fix incorrect custom option definition.

Thanks to Joe Vornehm Jr. for this patch.
See http://patchwork.newartisans.com/patch/1231/
2012-03-22 01:19:03 +01:00
Bastien Guerry 44bf4de900 Merge branch 'hotfix-7.8.06'
Conflicts:
	lisp/org-agenda.el
2012-03-20 13:06:26 +01:00
Bastien Guerry fc717f3eb7 Fix compiler warnings. 2012-03-20 13:04:55 +01:00
Bastien Guerry ecd0562c5f Fix the master branch.
I started from the 78ec8e commit then cherry-picked and squashed
commits that have been done in master since then, except the bad
commits that overwrote the tree (in master) with the tree in maint.

This commit also bumps the version number to 7.8.06.

The only "fix" that was made between 78ec8e and the previous commit
is e0072f which has been reported to break stuff.
2012-03-19 22:01:29 +01:00
David Maus cd2d138883 Don't reset `org-done-keywords-for-agenda' when org-agenda-multi
* org-agenda.el (org-prepare-agenda): Don't reset
`org-done-keywords-for-agenda' when org-agenda-multi.

Fixes a bug with DONE keywords in org-todo face reported by Hans-Peter
Deifel in <87r4xwypxh.fsf@hpdeifel.de>.
2012-03-18 17:58:12 +01:00
Bastien Guerry 6e306f65ff Fix copyright years in maint. 2012-03-17 16:31:04 +01:00
Bastien Guerry de42649f7b Manually revert maint to e85080.
e85080 is the last correct commit in the maint branch
before releasing 7.8.04.  The 7.8.05 release should be
done from this commit.
2012-03-17 16:28:46 +01:00
Bastien Guerry 73bb18ba37 Manually revert to the Release 7.8.04 tag. 2012-03-17 15:52:24 +01:00
Bastien Guerry 38c5045725 Fix copyright years. 2012-03-17 14:36:25 +01:00
Bastien Guerry 6e534f9c61 Manually revert back to commit e85080.
This fixes a wrong merge that should not have happened:
commit 7e903a merges the master branch into the maint branch,
while we really want to keep the maint branch a bugfix-only
branch.

This commit reverts back the maint branch to its state before
merging the master branch.  From there, we will fix remaining
problems with the maint branch (e.g. copyright issues) then
release this maint branch as Org-mode 7.8.05.
2012-03-17 14:34:01 +01:00
Bastien Guerry b66ff157e1 Merge branch 'maint' 2012-03-16 19:19:24 +01:00
Bastien Guerry 8e7f84ea3d org-agenda.el: Fix the order conditions are being checked.
* org-agenda.el (org-agenda-skip-if): Fix the order conditions
are being checked.  Also enhance the docstring a bit.

TINYCHANGE

Thanks to Toby Cubitt for a patch to this effect.
2012-03-16 19:18:41 +01:00
Bastien Guerry ced72ea5d8 org-agenda.el: Fix the display of indirect agenda window.
* org-agenda.el (org-agenda-tree-to-indirect-buffer): Fix the
display of indirect agenda window.

TINYCHANGE

Thanks to Dave Abrahams for a patch to this effect.
2012-03-16 19:05:26 +01:00
Eric Schulte 07ac15ef72 Merge branch 'origin-maint'
Conflicts:
	lisp/org-src.el
2012-03-14 09:56:52 -04:00
Eric Schulte 4542824f2c fix compiler warnings
* lisp/ob.el (org-strip-protective-commas): Declared.
* lisp/org-agenda.el (org-agenda-filtered-by-category): Declared.
  (org-agenda-filter-apply): Capture free variable.
* lisp/org-footnote.el (org-skip-whitespace): Declared.
* lisp/org-mobile.el (org-agenda-filter): Declared.
* lisp/org-src.el (org-strip-protective-commas): Declared.
2012-03-14 09:55:04 -04:00
Carsten Dominik b771abdfd2 Fix :set property of `org-agenda-sticky'
* lisp/org-agenda.el (org-toggle-sticky-agenda):
(org-agenda-sticky): Improve :set property.
2012-03-10 17:44:23 +01:00
Max Mikhanosha 86dd7d27a3 org-agenda-sticky: Make customizing it call `org-toggle-sticky-agenda' 2012-03-10 08:33:21 -05:00
Carsten Dominik 7fd1c2ad71 Silence the compiler about a dynamically scoped variable 2012-03-10 08:03:53 +01:00