* calendar/todos.el: Improve item marking and handling of marked items.
[bpt/emacs.git] / lisp / ChangeLog
index db18c22..c9ca1b6 100644 (file)
+2013-01-29  Stephen Berman  <stephen.berman@gmx.net>
+
+       * calendar/todos.el: Improve item marking and handling of marked items.
+       (todos-prefix): Add validator to ensure value differs from that of
+       todos-item-mark.
+       (todos-item-mark): New defcustom.
+       (todos-prefix-overlay): New function.
+       (todos-marked-item-p): Use it.  Adapt implementation to new
+       handling of marked items.
+       (todos-insert-with-overlays): When inserting pushes down a marked
+       item, move its prefix overlay.
+       (todos-prefix-overlays): Add overlay even when prefix is empty string,
+       otherwise item marking fails.  Improve handling of marked items.
+       (todos-mark-unmark-item): Adapt to new handling of marked items
+       and simplify by removing marking of all items in category.
+       (todos-mark-category): Adapt to new handling of marked items and
+       don't use todos-mark-unmark-item.
+       (todos-unmark-category): Adapt to new handling of marked items.
+       (todos-delete-item): Remove obsolete handling of marked items and
+       useless restoration of point.
+       (todos-set-item-priority): Use new handling of marked items.
+       (todos-move-item, todos-item-done, todos-item-undo)
+       (todos-archive-done-item): Remove obsolete handling of marked items.
+
+2013-01-25  Stephen Berman  <stephen.berman@gmx.net>
+
+       * calendar/todos.el: Improve definitions and use of some faces.
+       (todos-top-priority): Use current definition of font-lock-constant-face.
+       (todos-diary-expired): Make default value contrast more with
+       default value of todos-date face.
+       (todos-nondiary, todos-category-string): New faces.
+       (todos-nondiary-face, todos-category-string-face): Corresponding
+       new variables.
+       (todos-done, todos-comment): Switch default values to go better
+       with default value of todos-date face.
+       (todos-done-sep): Change default value.
+       (todos-category-string-matcher-1)
+       (todos-category-string-matcher-2): Improve doc string.
+       (todos-font-lock-keywords): Use todos-nondiary-face and
+       todos-category-string-face.
+       (todos-done-separator): Propertize string with todos-done-sep face.
+       (todos-filtered-items-mode): Fix typo.
+
+2013-01-23  Stephen Berman  <stephen.berman@gmx.net>
+
+       * calendar/todos.el: Improve handling of saved top priorities items.
+       (todos-find-item): Find done items and items whose priority has
+       changed or whose text was truncated or augmented; add doc string.
+       (todos-check-top-priorities): Highlight each item that is not up
+       to date.
+       (todos-jump-to-item): Jump to items whose priority has changed or
+       whose text was truncated or augmented.
+
+2013-01-22  Stephen Berman  <stephen.berman@gmx.net>
+
+       * calendar/todos.el: Revise handling of initial display and extend
+       to top priorities file.
+       (todos-display-categories-first): Remove, replacing by this:
+       (todos-show-first): New defcustom.
+       (todos-first-visit): Remove, replacing by this:
+       (todos-visited): New variable.
+       (todos-absolute-file-name): Extend possible values of optional
+       argument to take top priorities files into account.
+       (todos-modes-set-3, todos-mode): Remove use of todos-first-visit.
+       (todos-mode-external-set): Call find-file-noselect instead of
+       find-buffer-visiting, since the latter may fail.
+       (todos-show): Revise handling of initial display using
+       todos-show-first and todos-visited and extend to top priorities
+       file.
+       (todos-quit): Adapt to new handling of initial display.
+
+2013-01-14  Stephen Berman  <stephen.berman@gmx.net>
+
+       * calendar/todos.el: Implement saving top priority items buffers,
+       improve implementation of item filtering commands and
+       infrastucture, and fix two bugs.
+       (todos-prefix-overlays): Use todos-top-priority face only in Todos
+       mode.
+       (todos-multiple-filter-files): Get file-truename of Todos file.
+       (todos-filter-items): Pass a list of files from the caller instead
+       of building it here, and move handling of cancelled file selection
+       dialog to callers.  Correct omission of file-wide default number
+       of top priorities.
+       (todos-filtered-buffer-name): Treat file-list argument only as a list.
+       (todos-find-item, todos-check-top-priorities)
+       (todos-top-priorities-filename)
+       (todos-save-top-priorities-buffer): New functions.
+       (todos-save): Use todos-save-top-priorities-buffer.
+       (todos-jump-to-item): Refactor and use todos-find-item.
+       (todos-top-priorities): Simplify semantics of prefix argument.
+       Check if top priorities file exists and if so, visit it, reporting
+       whether it is up to date.  Add optional argument and use it to
+       handle multiple files.
+       (todos-diary-items, todos-regexp-items): Add optional argument and
+       use it to handle multiple files.
+       (todos-top-priorities-multifile, todos-diary-items-multifile)
+       (todos-regexp-items-multifile): Refactor, using corresponding
+       non-multifile command.
+       (auto-mode-alist): Add pattern for top priorities files to visit
+       these in Todos Filtered Items mode.
+
+2013-01-08  Stephen Berman  <stephen.berman@gmx.net>
+
+       * calendar/todos.el: Fix tabular alignment in Todos Categories mode.
+       (todos-adjusted-category-label-length): New function.
+       (todos-padded-string): Use it.
+
+2013-01-08  Stephen Berman  <stephen.berman@gmx.net>
+
+       * calendar/todos.el (todos-move-item): Allow moving done items to
+       done section of another category.
+
+2013-01-06  Stephen Berman  <stephen.berman@gmx.net>
+
+       * calendar/todos.el: Display numerical priority string of top
+       priority items in category in a distinctive face.
+       (todos-prefix-string): Make doc string more precise.
+       (todos-top-priority): New defface.
+       (todos-done, todos-done-sep): Use more compact face definition
+       \(taken from font-lock.el).
+       (todos-comment): Give a complete face definition, instead of
+       inheriting from todos-done.
+       (todos-font-lock-keywords): Use todos-comment-face for
+       todos-comment-string-matcher.
+       (todos-prefix-overlays): Use todos-top-priority as the face
+       property of top priority items; don't condition reapplying item
+       prefix overlay on whether the string changed, since that prevents
+       updating display after changing number of top priorities.
+       (todos-set-top-priorities): Call todos-prefix-overlays to update
+       display.
+
+2013-01-04  Stephen Berman  <Stephen.Berman@rub.de>
+
+       * calendar/todos.el (todos-reset-global-current-todos-file)
+       (todos-display-categories-1): Use absolute name of
+       todos-default-todos-file.
+
+2013-01-04  Stephen Berman  <Stephen.Berman@rub.de>
+
+       * calendar/todos.el (todos-insert-item): Fix copy and paste error
+       from previous change.
+
+2013-01-03  Stephen Berman  <stephen.berman@gmx.net>
+
+       * calendar/todos.el: Implement extended category completions.
+       (todos-default-todos-file): Change default value to correct custom
+       type.
+       (todos-category-completions-files): New defcustom.
+       (todos-reevaluate-category-completions-files-defcustom)
+       (todos-absolute-file-name, todos-category-completions): New defuns.
+       (todos-reevaluate-filelist-defcustoms):
+       Add todos-category-completions-files and
+       todos-reevaluate-category-completions-files-defcustom.
+       (todos-allcats-file, todos-all-categories-alist)
+       (todos-jump-to-category-other-file, todos-jump-to-any-category)
+       (todos-move-item-to-file): Remove (todos-all-categories-alist both
+       as defvar and as defun).
+       (todos-read-category): Rewrite using extended category completions
+       and better handling of completion against existing or non-existing
+       categories.
+       (todos-validate-name): Correct doc string; use local instead of
+       dynamic variables in function body.
+       (todos-insert-category-line): Adjust use of todos-jump-to-category
+       to new argument list.
+       (todos-key-bindings, todos-menu): Delete entries for removed
+       commands.
+       (todos-show): Get absolute name of todos-default-todos-file;
+       add `nowarn' argument to find-file-noselect; adjust use of
+       todos-add-category to new argument list.
+       (todos-jump-to-category): Rewrite using extended category
+       completions; reverse argument list, adapting FILE argument to new
+       completion mechanism; add autoload cookie; call todos-show if
+       there are no Todos files.
+       (todos-add-category): Rewrite using extended category completions;
+       add FILE argument to accommodate new completion mechanism.
+       (todos-merge-category): Adapt to extended category completions,
+       adding prefix argument.
+       (todos-insert-item): Adapt to extended category completions; use
+       todos-read-category instead of todos-jump-to-category in prefix
+       argument calls; call todos-show if there are no Todos files; if
+       item is inserted at end of category, recenter to ensure the items
+       above it are displayed in the window.
+       (todos-move-item): Adapt to extended category completions, making
+       argument prefix argument; allow moving within category (for the
+       sake of code simplification); add `nowarn' argument to
+       find-file-noselect.
+       (todos-archive-done-item): Prevent error when attempting to
+       archive not-done todo item; adjust use of todos-add-category to
+       new argument list.
+
+2012-12-15  Stephen Berman  <stephen.berman@gmx.net>
+
+       * calendar/todos.el (todos-archive-done-item): Fix archiving of
+       all done items in a category and resulting display of todo file.
+
+2012-12-14  Stephen Berman  <stephen.berman@gmx.net>
+
+       * calendar/todos.el (todos-priorities-rules): Fix customization
+       type to prevent mismatch error.
+       (todos-set-top-priorities): Fix rule construction; fix input check;
+       improve prompt.
+
+2012-12-14  Stephen Berman  <stephen.berman@gmx.net>
+
+       * calendar/todos.el (todos-insert-item): If user exits Calendar
+       before choosing a date, cancel item insertion.
+       (todos-set-date-from-calendar): If user exits Calendar before
+       choosing a date, clean up properly.
+
+2012-12-12  Stephen Berman  <stephen.berman@gmx.net>
+
+       * calendar/todos.el: Extend and improve handling of item editing,
+       especially of date/time header.
+       (todos-month-name-array, todos-month-abbrev-array): New defconsts.
+       (todos-date-pattern): Use explicitly numbered groups.
+       (todos-read-date): Optionally read and return just one of the date
+       string components year, month or monthname, day.
+       (todos-key-bindings): Add bindings for new item header editing
+       commands.
+       (todos-edit-item): Exclude date/time header from minibuffer by
+       default; include it by passing a prefix argument.
+       (todos-edit-item-header-1): New function containing the guts of
+       the commands for editing item date/time headers.
+       (todos-edit-item-header): Use it.  Condition editing of time
+       string on value of `todos-always-add-time-string'.
+       (todos-edit-item-date-from-calendar): Use todos-edit-item-header-1.
+       (todos-edit-item-date-to-today): Rename from
+       todos-edit-item-date-is-today and use todos-edit-item-header-1.
+       (todos-edit-item-date): Remove.
+       (todos-edit-item-date-day-name, todos-edit-item-date-year)
+       (todos-edit-item-date-month, todos-edit-item-date-day): New commands.
+
+2012-12-02  Stephen Berman  <stephen.berman@gmx.net>
+
+       * calendar/todos.el (todos-show): Fix a comment.
+       (todos-add-category): Prompt for a new category if passed category
+       is the empty string, not nil.
+
+2012-11-26  Stephen Berman  <stephen.berman@gmx.net>
+
+       * calendar/todos.el (todos-make-categories-list)
+       (todos-convert-legacy-files, todos-jump-to-item)
+       (todos-move-category, todos-merge-category)
+       (todos-archive-done-item, todos-unarchive-items): Include end of
+       line in regex searches for beginning of category, in order not to
+       get a category whose name contains the searched for category name.
+
+2012-11-15  Stephen Berman  <stephen.berman@gmx.net>
+
+       * calendar/todos.el (todos-forward-category): Fix typo.
+
+2012-10-30  Stephen Berman  <stephen.berman@gmx.net>
+
+       * calendar/todos.el (todos-define-insertion-command):
+       Let generated insertion commands accept a prefix argument.
+
+2012-10-08  Stephen Berman  <Stephen.Berman@rub.de>
+
+       * calendar/todos.el (todos-move-item): If user quits before
+       completing movement, restore display of initial category; if item
+       is moved to end of target category, make sure the items above it
+       are displayed in the window.
+
+2012-10-08  Stephen Berman  <stephen.berman@gmx.net>
+
+       * calendar/todos.el: Fixes to todos-move-item and some of its
+       subroutines.
+       (todos-move-item): When there are marked items, point need not be
+       on an item; remove obsolete use of todos-add-category, since this
+       is now already done in todos-read-category; fix typo.
+       (todos-diary-item-p): Exclude empty lines.
+       (todos-read-category): Restore point and narrowing after adding
+       new category, to avoid moving to beginning of file when moving
+       marked items to a new category.
+       (todos-set-item-priority): Prompt for priority only when the
+       category has at least one todo item; only use non-nil priority to
+       calculate insertion location.
+       (todos-read-category): Don't reset todos-categories when a new
+       category is added due to todos-move-item or todos-jump-to-item.
+
+2012-09-24  Stephen Berman  <stephen.berman@gmx.net>
+
+       Changes from 2012-07-14 (revision 110020).
+       * calendar/todos.el (todos-copy-item): New command.
+       (todos-insertion-map): Add key binding for it.
+
+2012-09-24  Stephen Berman  <stephen.berman@gmx.net>
+
+       Changes from 2012-07-13 (revision 110019).
+       * calendar/todos.el (todos-undo-item-omit-comment): New defcustom.
+       (todos-item-undo): Use it.
+       (todos-allcats-file, todos-all-categories-alist): New variables.
+       (todos-all-categories-alist): New function.
+       (todos-jump-to-any-category): New command.
+       (todos-move-item): Remove mark overlays from buffer items were
+       moved from; update todos-categories-with-marks,
+
+2012-09-24  Stephen Berman  <stephen.berman@gmx.net>
+
+       Changes from 2012-06-27 (revision 110018).
+       * calendar/todos.el: Further code rearrangement; further new and
+       revised comments.
+       (todos-reevaluate-filelist-defcustoms): Rename from
+       todos-reevaluate-defcustoms and adjust callers.
+       (todos-date-pattern, todos-nondiary-start, todos-nondiary-end)
+       (todos-date-string-start, todos-done-string-start)
+       (todos-item-start): Change from defvar to defconst.
+       (todos-set-top-priorities): Use read-number and simplify.
+       (todos-insert-item): Check whether date-type argument is a string.
+       (todos-set-date-from-calendar): Check whether
+       todos-date-from-calendar is a string; simplify cond clause.
+       (todos-archive-done-item, todos-unarchive-items):
+       Use buffer-substring-no-properties.
+
+2012-09-23  Stephen Berman  <stephen.berman@gmx.net>
+
+       Changes from 2012-06-25 (revision 110017).
+       * calendar/todos.el (todos-item-undo): Fix restoration on
+       cancelling; use buffer-substring-no-properties; comment out code
+       removing mark overlay; fix insertion of undone items; display any
+       remaining done items.
+
+2012-09-23  Stephen Berman  <stephen.berman@gmx.net>
+
+       Changes from 2012-06-24 (revision 110016).
+       * calendar/todos.el: Further significant code rearrangement;
+       further comment revision.
+       (todos-mode-display): New defgroup.
+       (todos-prefix, todos-number-priorities)
+       (todos-done-separator-string, todos-done-string)
+       (todos-comment-string, todos-show-with-done)
+       (todos-mode-line-function, todos-skip-archived-categories)
+       (todos-highlight-item, todos-wrap-lines)
+       (todos-line-wrapping-function): Use it.
+       (todos-item-insertion): New defgroup.
+       (todos-include-in-diary, todos-diary-nonmarking)
+       (todos-nondiary-marker, todos-always-add-time-string)
+       (todos-use-only-highlighted-region): Use it.
+       (todos-forward-button, todos-backward-button): New commands.
+       (todos-categories-mode-map): Use them, replacing forward-button
+       and backward-button.
+       (todos-merge-category): Fix and improve implementation; handle
+       archived items.
+       (todos-insert-item, todos-set-date-from-calendar): Handle setting
+       date by calling todos-insert-item-from-calendar.
+       (todos-delete-item): Fix overlay handling.
+       (todos-move-item): Highlight item to be moved.
+       (todos-item-undo): Handle marked items.
+       (todos-insert-item-from-calendar): Rewrite using
+       todos-date-from-calendar.
+
+2012-09-23  Stephen Berman  <stephen.berman@gmx.net>
+
+       Changes from 2012-06-21 (revision 110015).
+       * calendar/todos.el: Further comment revision.
+       (todos-sorted-column): Change default value, also taking tty into
+       account.
+       (todos-reset-done-separator): Fix faulty variable binding.
+       (todos-reset-and-enable-done-separator): Save match data; comment
+       out code that causes problems for Edebug.
+       (todos-item-start): Handle empty line between todo and done items
+       when done items are hidden.
+       (todos-read-date): Use a leap year for `*' to allow
+       calendar-last-day-of-month to return Feb. 29.
+       (todos-archive-mode, todos-edit-mode, todos-categories-mode)
+       (todos-filtered-items-mode): Delete faulty parentheses.
+       (todos-quit): Save Todos and archive files unconditionally.
+       (todos-forward-item): Accept only positive prefix argument.
+       (todos-backward-item): Accept only positive prefix argument; don't
+       move point to beginning of buffer if it is on the first item.
+       (todos-hide-show-date-time): Remove obsolete interactive spec.
+       (todos-move-category): Improve prompt string; ensure file moved to
+       is different from file moved from.
+       (todos-merge-categories): Remove.
+       (todos-set-category-priority): New command.
+       (todos-raise-category-priority, todos-lower-category-priority):
+       Use it to define these commands.
+       (todos-set-item-priority): Rewrite and generalize.
+       (todos-raise-item-priority, todos-lower-item-priority): Use it to
+       define these commands.
+
+2012-09-23  Stephen Berman  <stephen.berman@gmx.net>
+
+       Changes from 2012-06-15 (revision 110014).
+       * calendar/todos.el (todos-reset-done-separator)
+       (todos-reset-and-enable-done-separator): New functions.
+       (todos-reset-done-separator-string): Rewrite using
+       todos-reset-done-separator for string longer than 1 character.
+       (todos-mode): Add todos-reset-and-enable-done-separator to
+       window-configuration-change-hook, replacing previous anonymous
+       function.
+       (todos-unload-hook): And remove it.
+
+2012-09-23  Stephen Berman  <stephen.berman@gmx.net>
+
+       Changes from 2012-06-14 (revision 110013).
+       * calendar/todos.el (todos-done-separator-string): New defcustom.
+       (todos-done-separator): New variable replacing defcustom of the
+       same name.
+       (todos-reset-done-separator-string, todos-done-separator):
+       New functions.
+       (todos-mode): Make function added to
+       window-configuration-change-hook do a better job of updating the
+       done items separator string overlay.
+       (todos-unload-hook): Remove it here.
+       (todos-item-undo): Fix search for item's end.
+
+2012-09-23  Stephen Berman  <stephen.berman@gmx.net>
+
+       Changes from 2012-06-03 (revision 110012).
+       * calendar/todos.el: Further comment revision.
+       (todos-sorted-column): Change default value.
+       (todos-item-start): Handle empty category (needed in
+       todos-filter-items).
+       (todos-read-date): Don't use calendar-read; make code cleaner.
+       (todos-multiple-filter-files): Rename this variable from
+       todos-multiple-files and adjust users.
+       (todos-multiple-filter-files-widget): Rename from
+       todos-multiple-files-widget and adjust users.
+       (todos-multiple-filter-files): Rename this function from
+       todos-multiple-files and adjust callers.
+       (todos-filter-items): Remove unused code.
+       (todos-insert-category-line): Add space so highlighting of last
+       column is consistent with the others; adjust display of column
+       highlighting.
+       (todos-menu): Remove obsolete entry.
+       (todos-categories-mode-map): Add new bindings.
+       (todos-display-categories-alphabetically-or-by-priority): New command.
+       (todos-display-categories-sorted-by-todo)
+       (todos-display-categories-sorted-by-diary)
+       (todos-display-categories-sorted-by-done)
+       (todos-display-categories-sorted-by-archived): Restore and fix
+       implementation.
+
+2012-09-23  Stephen Berman  <stephen.berman@gmx.net>
+
+       Changes from 2012-06-02 (revision 110011).
+       * calendar/todos.el: Significant code rearrangement; further
+       comment revision.
+       (todos-filtered-items-buffer): Rename from todos-filter-buffer and
+       adjust users.
+       (todos-filtered-buffer-name): Rename from
+       todos-special-buffer-name and adjust users.
+       (todos-filtered-items-mode-map): Rename from
+       todos-filter-items-mode-map and adjust users.
+       (todos-mode-external-set): Use todos-categories instead of
+       todos-set-categories (and add comment to check if this DTRT).
+       (todos-filtered-items-mode): Rename from todos-filter-items-mode
+       and adjust users.
+       (todos-add-category): Don't call todos-validate-name, since
+       todos-read-category does.
+       (todos-edit-quit): Use todos-repair-categories-sexp.
+       (todos-done-item-add-edit-or-delete-comment): Rename from
+       todos-done-item-add-or-edit-comment and adjust users; add optional
+       argument to prompt to delete comment.
+       (todos-item-undo): Delete done item comment on undoing if user
+       confirms.
+
+2012-09-22  Stephen Berman  <stephen.berman@gmx.net>
+
+       Changes from 2012-06-02 (revision 110010).
+       * calendar/todos.el: Further code rearrangement and comment
+       revision.
+       (todos-item-start): Handle empty line between todo and done items
+       when done items are displayed.
+       (todos-key-bindings): Comment out bindings meant only for
+       todos-archive-mode.
+       (todos-archive-mode-map): Fix typo.
+       (todos-archive-mode): Derive from special-mode instead of
+       todos-mode to prevent its key bindings from being available here.
+       (todos-archive-done-item): Remove obsolete code; fix item count
+       updating.
+       (todos-unarchive-items): Simplify; fix unarchiving of all items in
+       category; fix item count updating; fix typo.
+
+2012-09-22  Stephen Berman  <stephen.berman@gmx.net>
+
+       Changes from 2012-06-01 (revision 110009).
+       * calendar/todos.el: Further code rearrangement and comment
+       revision.
+       (todos-add-to-buffer-list, todos-update-buffer-list): New functions.
+       (todos-file-buffers): New variable.
+       (todos-reset-global-current-todos-file): Use it to simplify
+       implementation of this function.
+       (todos-filtered): New defgroup.
+       (todos-filter-buffer, todos-top-priorities-buffer)
+       (todos-diary-items-buffer, todos-regexp-items-buffer)
+       (todos-priorities-rules, todos-show-priorities)
+       (todos-filter-files, todos-filter-done-items): Use it.
+       (todos-skip-archived-categories): Rename from
+       todos-ignore-archived-categories and adjust users.
+       (todos-display-as-todos-file): Rename from todos-after-find-file
+       and adjust callers.
+       (todos-reset-highlight-item, todos-mode-external-set)
+       (todos-jump-to-category, todos-jump-to-item)
+       (todos-raise-category-priority, todos-insert-item)
+       (todos-move-item): Use find-file-visiting.
+       (todos-make-categories-list): Use file-truename.
+       (todos-display-categories-1): Adjust title text for archive files;
+       use done label for item counts in archive files.
+       (todos-modes-set-3): Add todos-display-as-todos-file to
+       find-file-hook.
+       (todos-mode): Add todos-add-to-buffer-list to find-file-hook and
+       todos-update-buffer-list post-command-hook.
+       (todos-unload-hook): And remove them.
+       (todos-show): Only when interactively invoked from an archive,
+       switch to corresponding Todos file.
+       (todos-archive-done-item): Remove obsolete code; fix handling of
+       marked items; fix search for existing category; check whether
+       archive exists and write to file if not; improve display handling.
+
+2012-09-21  Stephen Berman  <stephen.berman@gmx.net>
+
+       Changes from 2012-05-29 (revision 110008).
+       * calendar/todos.el: Further comment revision.
+       (todos-item-end): Replace use of command todos-forward-item by
+       regexp searches using internal variables.
+       (todos-raise-category-priority): Improve and comment.
+       (todos-insert-item): Fix insertion of empty time string.
+
+2012-09-21  Stephen Berman  <stephen.berman@gmx.net>
+
+       Changes from 2012-05-29 (revision 110007).
+       * calendar/todos.el (todos-ignore-archived-categories):
+       Revert last change; remove :initialize and :set functions; change
+       use and change users accordingly.
+       (todos-reset-categories, todos-categories-full)
+       (todos-truncate-categories-list): Remove.
+       (todos-set-categories, todos-update-categories-sexp):
+       Use todos-categories instead of todos-categories-full; remove use
+       of todos-ignore-archived-categories and
+       todos-truncate-categories-list.
+       (todos-check-format, todos-repair-categories-sexp):
+       Use todos-categories instead of todos-categories-full.
+       (todos-read-category): Improve last change.
+       (todos-validate-name): Use completing-read.
+       (todos-categories-category-number): Rename from
+       todos-category-number and adjust users.
+       (todos-update-categories-display, todos-mode-external-set)
+       (todos-delete-category, todos-move-category, todos-merge-category)
+       (todos-unarchive-items): Remove use of todos-categories-full and
+       todos-ignore-archived-categories.
+       (todos-modes-set-3, todos-add-category): Remove use of
+       todos-categories-full.
+       (todos-edit-mode): Fix typo.
+       (todos-forward-category): Use todos-ignore-archived-categories.
+
+2012-09-21  Stephen Berman  <stephen.berman@gmx.net>
+
+       Changes from 2012-05-28 (revision 110006).
+       * calendar/todos.el: Doubts about todos-ignore-archived-categories.
+       (todos-ignore-archived-categories): Change default value.
+
+2012-09-21  Stephen Berman  <stephen.berman@gmx.net>
+
+       Changes from 2012-05-27 (revision 110005).
+       * calendar/todos.el: Further comment revision.
+       (todos-reset-global-current-todos-file):
+       Try to make this not slow down kill-buffer.
+       (todos-update-categories-sexp): Handle the case where there is no
+       categories sexp yet, i.e. after inserting the first item in the
+       file, so todos-display-categories works.
+       (todos-read-file-name): Improve implementation.
+       (todos-validate-name): Use variable todos-files.
+       (todos-category-number): New variable.
+       (todos-insert-category-line, todos-update-categories-display)
+       (todos-raise-category-priority): Use it.
+       (todos-add-file): Remove unused remnant code.
+
+2012-09-21  Stephen Berman  <stephen.berman@gmx.net>
+
+       Changes from 2012-05-25 (revision 110004).
+       * calendar/todos.el: Further comment revision.
+       (todos-set-item-top-priority): New command.
+       (todos-reset-global-current-todos-file):
+       Use todos-files-function instead of todos-files.
+       (todos-read-category): Add optional argument to test whether
+       caller adds new category; if so, don't prompt for new category and
+       don't restore original todos-categories list.
+       (todos-categories-mode-map): Update to renamed commands.
+       (todos-filter-items-mode-map): Add binding for new command.
+       (todos-mode): Fix typo.
+       (todos-show): If called from archive file, show corresponding
+       category in Todos file, if it exists.
+       (todos-jump-to-category): Remove code to add new category, since
+       todos-read-category can do that.
+       (todos-add-file): Remove obsolete code; visit new file in selected
+       window.
+       (todos-add-category): Simplify.
+       (todos-rename-category): Use force-mode-line-update instead of
+       setting mode-line-buffer-identification.
+       (todos-delete-category): Improve logic of prompts; use
+       todos-categories-full and check todos-ignore-archived-categories.
+       (todos-raise-category-priority, todos-lower-category-priority):
+       Rename from todos-{raise,lower}-category and adjust callers.
+       (todos-move-category, todos-merge-category):
+       Set todos-categories-full; on setting todos-categories check
+       todos-ignore-archived-categories.
+       (todos-insert-item): Let-bind use-empty-active-region and use
+       use-region-p instead of transient-mark-mode.
+       (todos-raise-item-priority): Improve implementation.
+       (todos-archive-done-item): Rename from
+       todos-archive-done-item-or-items and adjust callers; confine to
+       Todos mode.
+       (todos-unarchive-items): On setting todos-categories check
+       todos-ignore-archived-categories.
+
+2012-09-21  Stephen Berman  <stephen.berman@gmx.net>
+
+       Changes from 2012-05-23 (revision 110003).
+       * calendar/todos.el (todos-key-bindings): Remove binding of
+       deleted command.
+       (todos-menu): Remove entry of deleted command.
+       (todos-show-archive): Fix last change.
+       (todos-done-item-add-or-edit-comment): Rename from
+       todos-comment-done-item and adjust callers; prompt to edit an
+       existing comment.
+
+2012-09-21  Stephen Berman  <stephen.berman@gmx.net>
+
+       Changes from 2012-05-22 (revision 110002).
+       * calendar/todos.el (todos-set-show-current-file): Rename from
+       todos-toggle-show-current-file and adjust callers.
+       (todos-number-priorities): Rename from todos-number-prefix and
+       adjust users.
+       (todos-update-count): Rename from todos-set-count and adjust
+       callers.
+       (todos-hide-show-item-numbering): Rename from
+       todos-toggle-item-numbering and adjust callers.
+       (todos-hide-show-done-items): Rename from
+       todos-toggle-view-done-items and adjust callers.
+       (todos-show-done-only): Rename from todos-toggle-show-done-only.
+       (todos-view-archived-items): Comment out.
+       (todos-show-archive): Prompt to choose another archive file if
+       current Todos file lacks an archive; prompt to visit archive
+       anyway when current category has no archived items.
+
+2012-09-21  Stephen Berman  <stephen.berman@gmx.net>
+
+       Changes from 2012-05-21 (revision 110001).
+       * calendar/todos.el: Further comment revision and code
+       rearrangement.
+       (todos-item-end): Revert last change.
+       (todos-key-bindings, todos-menu, todos-archive-mode-map)
+       (todos-filter-items-mode-map): Use renamed commands.
+       (todos-hide-show-date-time): Rename from
+       todos-toggle-display-date-time.
+       (todos-mark-unmark-item): Rename from todos-toggle-mark-item and
+       adjust caller.
+       (todos-backward-item): Exempt special handling only from
+       todos-regexp-items-buffer instead of todos-filter-items-mode.
+       (todos-raise-item-priority): Don't allow item reprioritizing in
+       Todos filter items mode except for top priority items.
+
+2012-09-21  Stephen Berman  <stephen.berman@gmx.net>
+
+       Changes from 2012-05-19 (revision 110000).
+       * calendar/todos.el: Add and revise further doc strings and
+       comments.
+       (todos-filter-function, todos-custom-items)
+       (todos-custom-items-multifile): Remove.
+       (todos-filter-done-items): New defcustom.
+       (todos-item-end, todos-backward-item): Handle todos-filter-items-mode.
+       (todos-filter-items): Check return value of caller first; tag
+       archived items for todos-jump-to-item; delete categories sexp
+       before processing filter; check todos-filter-done-items for
+       whether to leave done items; remove custom filter; fix regexp for
+       file and category tags; don't invoke buffer fontification.
+       (powerset-recursive): Fix typo.
+       (todos-key-bindings): Remove unused bindings.
+       (todos-top-priorities-multifile, todos-diary-items-multifile)
+       (todos-regexp-items-multifile): Use variable todos-multiple-files.
+       (todos-jump-to-item): Fix regexp; handle archive tags; take
+       todos-filter-done-items into account.
+       (todos-insert-item-from-calendar): Relocate to end of file
+       together with key-binding as addition to calendar.el.
+
+2012-09-20  Stephen Berman  <stephen.berman@gmx.net>
+
+       Changes from 2012-05-17 (revision 109999).
+       * calendar/todos.el: Add and revise further doc strings and
+       comments; major code rearrangement.
+       (todos-merged-files, todos-prompt-merged-files)
+       (todos-print-priorities, todos-tmp-buffer-name)
+       (todos-top-priorities-widgets, todos-update-merged-files)
+       (todos-merged-top-priorities, todos-merged-diary-items)
+       (todos-merged-regexp-items, todos-merged-custom-items)
+       (todos-raw-mode, todos-change-default-file)
+       (todos-toggle-diary-inclusion, todos-toggle-item-diary-nonmarking)
+       (todos-toggle-diary-nonmarking, todos-validate-category-name):
+       Remove.
+       (todos-category-string-matcher): Comment out.
+       (todos-categories): New defgroup.
+       (todos-initial-file, todos-filter-buffer)
+       (todos-top-priorities-buffer, todos-categories-category-label)
+       (todos-diary-items-buffer, todos-regexp-items-buffer)
+       (todos-custom-items-buffer, todos-filter-files)
+       (todos-highlight-item, todos-todo-mode-date-time-regexp):
+       New defcustoms.
+       (todos-diary-expired): New face.
+       (todos-print-buffer, todos-multiple-files)
+       (todos-multiple-files-widget, todos-key-bindings): New variables.
+       (todos-short-file-name, todos-reevaluate-default-file-defcustom)
+       (todos-special-buffer-name)
+       (todos-reevaluate-filter-files-defcustom)
+       (todos-reset-highlight-item, todos-reevaluate-defcustoms)
+       (todos-nondiary-marker-matcher, todos-diary-nonmarking-matcher)
+       (todos-diary-expired-matcher, todos-category-string-matcher-1)
+       (todos-category-string-matcher-2, todos-repair-categories-sexp)
+       (todos-validate-name, todos-multiple-files)
+       (todos-display-categories-1, todos-update-categories-display)
+       (todos-modes-set-3, todos-mode-external-set): New functions.
+       (todos-set-top-priorities-in-file)
+       (todos-set-top-priorities-in-category)
+       (todos-top-priorities-multifile, todos-diary-items-multifile)
+       (todos-regexp-items-multifile, todos-custom-items-multifile)
+       (todos-convert-legacy-files, todos-jump-to-item)
+       (todos-edit-multiline-item, todos-edit-item-date-from-calendar)
+       (todos-edit-item-diary-inclusion)
+       (todos-edit-category-diary-inclusion)
+       (todos-edit-item-diary-nonmarking)
+       (todos-edit-category-diary-nonmarking): New commands.
+       (todos, todos-faces): Update :version.
+       (todos-done-separator, todos-completion-ignore-case):
+       Change default value.
+       (todos-done-separator): Change :set function.
+       (todos-indent-to-here): Add :validate function to :type.
+       (todos-prefix-string, todos-mark, todos-button)
+       (todos-sorted-column, todos-archived-only, todos-search)
+       (todos-done, todos-done-sep): Provide full face definitions
+       instead of inheriting.
+       (todos-edit-buffer, todos-categories-buffer): Change from
+       defcustom to defvar.
+       (todos-category-beg, todos-category-done): Change from defvar to
+       defconst.
+       (todos-files): Check if todos-files-directory exists.
+       (todos-default-todos-file, todos-mode-line-control, todos-print):
+       Use todos-short-file-name.
+       (todos-font-lock-keywords): Use todos-nondiary-marker-matcher,
+       todos-diary-nonmarking-matcher, todos-category-string-matcher-1,
+       todos-category-string-matcher-2, todos-diary-expired-matcher.
+       (todos-category-select): Use todos-done-string-start, and
+       condition search on todos-show-with-done; don't make display
+       overlay for done items separator string if there already is one;
+       use todos-highlight-item, require hl-line and activate
+       hl-line-mode here in order to avoid a hang if done in todos-mode
+       or the mode hook.
+       (todos-update-categories-sexp): Use todos-categories-full if set,
+       otherwise todos-categories.
+       (todos-make-categories-list): Don't test for archive file when
+       processing a legacy todo-mode file.
+       (todos-check-format): Add check for todos-categories sexp.
+       (todos-diary-item-p): Use todos-nondiary-start instead of
+       todos-date-pattern.
+       (todos-marked-item-p): Rename from todos-item-marked-p.
+       (todos-read-file-name): Don't accept empty name; validate.
+       (todos-read-category): Validate new name before prompting whether
+       to add new category; force quit if user answers no.
+       (todos-filter-items): Improve implementation.
+       (todos-set-top-priorities): Rewrite as a noninteractive function
+       using minibuffer input instead of widgets.
+       (todos-insert-sort-button): Call todos-display-sorted with
+       argument nil to display categories in numerical order, instead of
+       calling todos-display-categories.
+       (powerset-recursive): Borrow and slightly reformulate the (GDFL'd)
+       Common Lisp powerset function at
+       http://rosettacode.org/wiki/Power_set#Common_Lisp.
+       (powerset-bitwise): Implement in Emacs Lisp the (GDFL'd) C
+       powerset function at http://rosettacode.org/wiki/Power_set#C.
+       (todos-powerset): Defalias to powerset-bitwise.
+       (todos-mode-map): Generate from todos-key-bindings instead of
+       listing each key definition.
+       (todos-categories-mode-map): Add two bindings.
+       (todos-filter-items-mode-map): Add some bindings, remove others.
+       (todos-mode): Derive from special-mode; use todos-modes-set-3; add
+       function setting todos-done-separator to
+       window-configuration-change-hook.
+       (todos-unload-hook): Remove function setting todos-done-separator
+       from window-configuration-change-hook.
+       (todos-archive-mode): Derive from todos-mode; use todos-modes-set-3.
+       (todos-edit-mode): Derive from text-mode; use todos-mode-external-set.
+       (todos-categories-mode): Derive from special-mode; use
+       todos-mode-external-set.
+       (todos-filter-items-mode): Derive from special-mode.
+       (todos-quit): Save archive file if it hasn't yet been saved.
+       (todos-display-categories): Delegate all functionality to
+       todos-display-categories-1 and todos-update-categories-display.
+       (todos-toggle-view-done-items): Improve implementation.
+       (todos-highlight-item): Require hl-line.
+       (todos-toggle-display-date-time): Remove argument and make it
+       apply only to whole file.
+       (todos-top-priorities, todos-diary-items, todos-regexp-items)
+       (todos-custom-items): Use todos-special-buffer-name.
+       (todos-add-file): Use todos-short-file-name and
+       todos-reevaluate-defcustoms; remove validation, since it's now
+       done in todos-read-file-name.
+       (todos-add-category): Also update todos-categories-full if non-nil.
+       (todos-delete-category): Delete file after confirmation if only
+       category is deleted.
+       (todos-move-category): Use todos-short-file-name and
+       todos-reevaluate-defcustoms.
+       (todos-insert-item): Fix getting date from the calendar and
+       insertion of time string.
+       (todos-set-date-from-calendar): Enter calendar buffer, suppressing
+       display of diary entries.
+       (todos-edit-multiline): Add optional argument to restrict editing
+       buffer to current item, otherwise make entire buffer (i.e. whole
+       file) editable.
+       (todos-edit-quit): When whole file is editable, check file format
+       validity before killing buffer, and if valid, recalculate
+       categories sexp to be safe.
+       (todos-edit-item-header): Allow choosing date from calendar.
+       (todos-item-done): Handle marked items.
+
+2012-09-19  Stephen Berman  <stephen.berman@gmx.net>
+
+       Changes from 2011-12-03 (revision 109998).
+       * calendar/todos.el (todos-item-start): Restore commented out code
+       to prevent wrongly moving point in widened buffer.
+
+2012-09-19  Stephen Berman  <stephen.berman@gmx.net>
+
+       Changes from 2011-12-02 (revision 109997).
+       * calendar/todos.el: Remove old commentary from todo-mode.el; add
+       and revise further doc strings and comments; require cl.el at
+       compile time for remove-duplicates; use function powerset from
+       http://rosettacode.org/wiki/Power_set#Common_Lisp (GFDL); further
+       code rearrangement.  Add adapted version of diary-goto-entry as comment.
+       (todos-file-top, todos-archived-categories-buffer)
+       (todos-save-top-priorities-too, todos-toggle-item-diary-inclusion)
+       (todos-save-top-priorities, todos-reset-separator)
+       (todos-switch-todos-file, todos-item-string-start, todos-counts)
+       (todos-string-count-lines, todos-string-multiline-p)
+       (todos-display-categories-alphabetically): Remove.
+       (todos-insert-item-ask-date, todos-insert-item-ask-date-time)
+       (todos-insert-item-ask-date-time-for-diary)
+       (todos-insert-item-ask-date-time-for-diary-here)
+       (todos-insert-item-ask-date-time-here)
+       (todos-insert-item-ask-date-maybe-notime)
+       (todos-insert-item-ask-date-maybe-notime-for-diary)
+       (todos-insert-item-ask-date-maybe-notime-for-diary-here)
+       (todos-insert-item-ask-date-maybe-notime-here)
+       (todos-insert-item-ask-date-for-diary)
+       (todos-insert-item-ask-date-for-diary-here)
+       (todos-insert-item-ask-date-here, todos-insert-item-ask-dayname)
+       (todos-insert-item-ask-dayname-time)
+       (todos-insert-item-ask-dayname-time-for-diary)
+       (todos-insert-item-ask-dayname-time-for-diary-here)
+       (todos-insert-item-ask-dayname-time-here)
+       (todos-insert-item-ask-dayname-maybe-notime)
+       (todos-insert-item-ask-dayname-maybe-notime-for-diary)
+       (todos-insert-item-ask-dayname-maybe-notime-for-diary-here)
+       (todos-insert-item-ask-dayname-maybe-notime-here)
+       (todos-insert-item-ask-dayname-for-diary)
+       (todos-insert-item-ask-dayname-for-diary-here)
+       (todos-insert-item-ask-dayname-here, todos-insert-item-ask-time)
+       (todos-insert-item-ask-time-for-diary)
+       (todos-insert-item-ask-time-for-diary-here)
+       (todos-insert-item-ask-time-here)
+       (todos-insert-item-maybe-notime)
+       (todos-insert-item-maybe-notime-for-diary)
+       (todos-insert-item-maybe-notime-for-diary-here)
+       (todos-insert-item-maybe-notime-here)
+       (todos-insert-item-for-diary, todos-insert-item-for-diary-here)
+       (todos-insert-item-here): Remove; all of these are now generated
+       on loading (some with the same name, most with other names.)
+       (todos-item-counts, todos-display-categories-alphabetically)
+       (todos-display-categories-sorted-by-todo)
+       (todos-display-categories-sorted-by-diary)
+       (todos-display-categories-sorted-by-done)
+       (todos-display-categories-sorted-by-archived): Comment out.
+       (todos-comment-string, todos-mode-line-function)
+       (todos-filter-function, todos-priorities-rules)
+       (todos-visit-files-commands, todos-categories-totals-label)
+       (todos-use-only-highlighted-region, todos-diary-nonmarking):
+       New defcustoms.
+       (todos-mark, todos-comment): New faces.
+       (todos-comment-face): Corresponding new variable.
+       (todos-categories-full, todos-global-current-todos-file)
+       (todos-first-visit, todos-insertion-commands-args-genlist)
+       (todos-insertion-commands-args, todos-insertion-commands-names)
+       (todos-insertion-commands, todos-insertion-commands-arg-key-list)
+       (todos-top-priorities-widgets, todos-date-from-calendar)
+       (todos-item-mark, todos-categories-with-marks): New variables.
+       (todos-mode-line-control, todos-reset-global-current-todos-file)
+       (todos-gen-arglists, todos-insertion-command-name)
+       (todos-insertion-key-bindings, todos-unload-hook)
+       (todos-filter-items, todos-set-date-from-calendar)
+       (todos-comment-string-matcher, todos-after-find-file)
+       (todos-reset-nondiary-marker, todos-reset-done-string)
+       (todos-reset-comment-string, todos-show-current-file)
+       (todos-item-marked-p, todos-total-item-counts): New functions.
+       (todos-define-insertion-command): New macro.
+       (todos-toggle-mark-item, todos-mark-category)
+       (todos-unmark-category, todos-set-top-priorities)
+       (todos-merged-diary-items, todos-regexp-items)
+       (todos-merged-regexp-items, todos-custom-items)
+       (todos-merged-custom-items, todos-comment-done-item)
+       (todos-archive-category-done-items, todos-unarchive-items)
+       (todos-print-to-file): New commands.
+       (todos-done-separator): Change :set function.
+       (todos-done-string): Uncomment :initialize and :set functions.
+       (todos-files): Use file-truename.
+       (todos-show-current-file): Rename from
+       todos-auto-switch-todos-file and change :set function accordingly.
+       (todos-font-lock-keywords): Use todos-comment-string-matcher;
+       change names of other matcher functions to new *-matcher.
+       (todos-category-number): Change initial value.
+       (todos-insertion-map): Use todos-insertion-key-bindings to
+       generate key definitions.
+       (todos-mode-map): Don't suppress digit keys, so they can supply
+       prefix arguments; add new and change some existing bindings.
+       (todos-archive-mode-map): Change a key binding.
+       (todos-categories-mode-map): Comment out a key binding.
+       (todos-filter-items-mode-map): Rename from
+       todos-top-priorities-mode-map.
+       (todos-mode): Make todos-current-todos-file,
+       todos-categories-full, todos-categories, todos-first-visit,
+       todos-category-number, todos-show-done-only,
+       todos-categories-with-marks local variables and set them; add
+       todos-show-current-file to pre-command-hook, todos-after-find-file
+       to post-command-hook and todos-reset-global-current-todos-file to
+       kill-buffer-hook.
+       (todos-archive-mode): Make todos-current-todos-file,
+       todos-categories and todos-category-number local variables and set
+       them; add todos-after-find-file to post-command-hook.
+       (todos-raw-mode): New derived major mode.
+       (todos-categories-mode): Don't set font-lock-defaults and
+       buffer-read-only; make todos-current-todos-file and
+       todos-categories local variables and set them.
+       (todos-filter-items-mode): Rename from todos-top-priorities-mode-map.
+       (todos-quit): Don't reset todos-categories on quitting
+       todos-categories-mode; handle quitting todos-filter-items-mode.
+       (todos-show): Simplify; when visiting an archive file switch to
+       corresponding Todos file; use todos-first-visit.
+       (todos-view-archived-items): Simplify; call todos-category-number.
+       (todos-show-archive): Rename from todos-switch-to-archive and
+       adjust callers; simplify.
+       (todos-toggle-display-date-time): Add optional argument to toggle
+       display in entire file.
+       (todos-top-priorities): Use todos-filter-items, which now contains
+       the previous core of this command.
+       (todos-merged-top-priorities, todos-diary-items):
+       Use todos-filter-items.
+       (todos-forward-category): Add optional argument to go to the
+       previous category.
+       (todos-backward-category): Use todos-forward-category.
+       (todos-jump-to-category): Refine implementation.
+       (todos-forward-item, todos-backward-item): Fix movement from todo
+       to done item and vice versa.
+       (todos-add-file): Remove argument and simplify.
+       (todos-rename-category): Use todos-current-todos-file and
+       todos-mode-line-function; set todos-categories with
+       todos-set-categories.
+       (todos-delete-category): Ask what to do if category has archived items.
+       (todos-raise-category): Ensure modified todos-categories is added
+       to file's categories sexp.
+       (todos-move-category): Improve implementation, especially handling
+       of archived categories.
+       (todos-merge-category): Tweak; set item counts.
+       (todos-insert-item): Improve handling of various argument values;
+       add new argument values to control marking of diary items and to
+       use region for item body.
+       (todos-insert-item-from-calendar): Use todos-global-current-todos-file.
+       (todos-delete-item, todos-edit-item-header): Handle marked items.
+       (todos-edit-item): Incorporate functionality of removed
+       todos-string-multiline-p.
+       (todos-edit-multiline): Use set-window-buffer instead of
+       switch-to-buffer.
+       (todos-edit-quit): Don't save on quitting; use todos-show instead
+       of todos-category-select.
+       (todos-raise-item-priority): Add argument to lower priority;
+       improve handling of top priority items in todos-filter-items-mode;
+       restore marks.
+       (todos-lower-item-priority): Use todos-raise-item-priority.
+       (todos-set-item-priority): Increment maximum number if item is new.
+       (todos-move-item): Handle marked items; delay changing category
+       moved from till after movement to avoid restoring if user cancels
+       before insertion.
+       (todos-item-done): Add optional argument to insert comment; fix
+       item counts and update sexp.
+       (todos-item-undo): Fix item counts and update.
+       (todos-archive-done-item-or-items): Rename from
+       todos-archive-done-items; add optional argument to archive all
+       items in category; handle marked items.
+       (todos-unarchive-category): Use todos-unarchive-items.
+       (todos-toggle-diary-inclusion): Incorporate functionality of
+       removed todos-toggle-item-diary-inclusion; handle marked items.
+       (todos-print): Add optional argument to print to file.
+       (todos-done-string-start): Don't use todos-nondiary-start.
+       (todos-date-string-matcher, todos-time-string-matcher)
+       (todos-done-string-matcher, todos-category-string-matcher): Rename
+       from *-match and adjust callers.
+       (todos-wrap-and-indent): Use set instead of setq for local variables.
+       (todos-prefix-overlays): Improve overlay handling.
+       (todos-reset-categories): Fix and complete implementation.
+       (todos-toggle-show-current-file): Rename from
+       todos-toggle-switch-todos-file-noninteractively.
+       (todos-category-select): Use todos-mode-line-function.
+       (todos-item-start): Comment out code used by removed function.
+       (todos-remove-item): Handle presence of both prefix/number and
+       mark overlays.
+       (todos-get-count): Simplify.
+       (todos-set-count): Change argument list and adjust callers; simplify.
+       (todos-set-categories): Handle new archive files; use
+       todos-categories-full and todos-ignore-archived-categories.
+       (todos-truncate-categories-list): Use todos-categories-full.
+       (todos-update-categories-sexp): Use kill-region instead of
+       kill-line; use todos-categories-full.
+       (todos-read-file-name): Add argument to require existing file and
+       adjust callers; use file-truename.
+       (todos-read-category): Remove argument to require existing
+       category and delegate it to completing-read in function body.
+       (todos-validate-category-name): Make empty string prompt only for
+       initial category name.
+       (todos-read-date): Use = instead of eq for testing if month = 13,
+       and if it is, set monthname to *.
+       (todos-display-categories): Use todos-global-current-todos-file;
+       use set-window-buffer instead of switch-to-buffer; add a line
+       showing item count totals.
+       (todos-padded-string): Use the longest of category name or label.
+       (todos-descending-counts): Rename from
+       todos-descending-counts-store and adjust users.
+       (todos-insert-category-line): Adjust format; use mapconcat; kill
+       buffer after jumping to category.
+
 2012-09-18  Stephen Berman  <stephen.berman@gmx.net>
 
+       Changes from 2011-05-16 (revision 109996).
        * calendar/todos.el Add and revise various doc strings, remove
        further commented out code; add further comments; further code
        rearrangement.
        Todos files; change display to include category (and file) name as
        part of item header; use todos-top-priorities-mode.
        (todos-diary-items): Reimplement using only todos-top-priorities.
-       (todos-forward-category, todos-backward-category): Accommodate to
+       (todos-forward-category, todos-backward-category): Adjust to
        1-based numbering of categories; move point to top of category.
        (todos-jump-to-category): Rewrite, adding optional arguments to
        provide a category in non-interactive uses and to prompt for which
        (todos-delete-category): Use todos-get-count and
        todos-update-categories-sexp, let-bind variable that were
        mistakenly global; use delete-region instead of kill-region;
-       accommodate to 1-based numbering of categories; move point to top
-       of category.
+       adjust to 1-based numbering of categories; move point to top of
+       category.
        (todos-raise-category): Handle item count vectors; use
        todos-insert-category-line and todos-update-categories-sexp.
        (todos-insert-item): Use nil time-string argument to omit time
        (todos-item-done): Handle diary items; simplify handling of
        insertion in done items section.
        (todos-item-undo): Handle diary items.
-       (todos-archive-done-items): Accommodate to new handling of archive
+       (todos-archive-done-items): Adjust to new handling of archive
        files (in parallel with Todos files); handle diary items; use
        todos-done-string-start.
        (todos-toggle-item-diary-inclusion): Use todos-nondiary-start,
        (todos-reset-separator): Handle archive files.
        (todos-category-number): Make category number one more than its
        list index.
-       (todos-current-category): Accommodate to 1-based numbering of
-       categories.
+       (todos-current-category): Adjust to 1-based numbering of categories.
        (todos-category-select): Simplify handling of done items and done
        separator string overlay.
        (todos-item-start): Use todos-date-string-start and
 
 2012-09-14  Stephen Berman  <stephen.berman@gmx.net>
 
+       Changes from 2010-07-09 (revision 109995).
        * calendar/todos.el Remove lots of commented out code; add various
        comments; further code rearrangement.
        (todos-insert-item-here-ask-date-time)
 
 2012-09-13  Stephen Berman  <stephen.berman@gmx.net>
 
+       Changes from 2010-06-18 (revision 109994).
        * calendar/todos.el: Numerous spelling and comment fixes, doc
        string fixes to conform with checkdoc, further rearrangement of
        definitions, etc.
 
 2012-09-13  Stephen Berman  <stephen.berman@gmx.net>
 
+       Changes from 2010-05-25 (revision 109993).
        * calendar/todos.el: Comment out calendar require, since diary-lib
        requires calendar.  Rearrange file to group definitions according
        to their use (types of commands, internal functions, etc.)
 
 2012-09-12  Stephen Berman  <stephen.berman@gmx.net>
 
+       Changes from 2009-11-07 (revision 109992).
        * calendar/todos.el: Comment out time-stamp require; require
        calendar and diary-lib.
        (todos-prefix): Change default value and doc string to reflect new
 
 2012-09-12  Stephen Berman  <stephen.berman@gmx.net>
 
+       Changes from 2009-07-04 (revision 109991).
        * calendar/todos.el (todos-window-configuration): Comment out.
        (todos-display-categories): Comment out use of
        todos-window-configuration; use switch-to-buffer instead of
 
 2012-09-12  Stephen Berman  <stephen.berman@gmx.net>
 
+       Changes from 2009-06-26 (revision 109989).
        * calendar/todos.el (todos-file-do, todos-file-done):
        Change default location to directory "~/.emacs.d/".
        (todos-completion-ignore-case, todos-categories-buffer):
 
 2012-09-12  Stephen Berman  <stephen.berman@gmx.net>
 
+       Changes from 2009-02-16 (revision 109988).
        * calendar/todos.el (todos-list-categories): Fix typos.
        (todos-show): Ensure file is in todos-mode.
 
 2012-09-12  Stephen Berman  <stephen.berman@gmx.net>
 
+       Changes from 2009-02-12 (revision 109987).
        * calendar/todos.el (todos-header): Remove defvar.
        (todos-add-category): Comment out code that inserts and updates
        the file local variables first line of the file todos-file-do.
 
 2012-09-11  Stephen Berman  <stephen.berman@gmx.net>
 
+       Changes from 2009-02-12 (revision 109986).
        * calendar/todos.el: New file.  This is a copy of todo-mode.el
        from revision 94343 except for the following changes: replace all
        occurrences of the namespace prefix "todo-" with "todos-", delete