* todos.el: Improve handling of jumping to a category, in
[bpt/emacs.git] / lisp / calendar / ChangeLog
CommitLineData
04c9cdf7
SB
12013-05-14 Stephen Berman <stephen.berman@gmx.net>
2
3 * todos.el: Improve handling of jumping to a category, in
4 particular that of an archive.
5 (todos-category-completions): Add optional parameter to restrict
6 completions of archive categories to current archive. Exclude
7 archive from completion files.
8 (todos-read-category): When called from an archive, restrict
9 category completions to the archive. Fix mistaken use of all
10 completion files instead of just those in which the chosen
11 category occurs.
12 (todos-archive-mode-map): Add new key binding.
13 (todos-jump-to-category): Rename second optional parameter and
14 extend its use to restricting category completions to the current
15 archive.
16 (todos-jump-to-archive-category): New command.
17
199b0d39
SB
182013-05-13 Stephen Berman <stephen.berman@gmx.net>
19
20 * todos.el (todos-modes-set-2): Restore point after finding start
21 and end of hl-line-range-function.
22
74e14031
SB
232013-05-13 Stephen Berman <stephen.berman@gmx.net>
24
25 * todos.el: Fixes for item marking and marked items.
26 (todos-toggle-mark-item): Make no-op if point is not on an item.
27 Toggle mark even if point is not at start of item.
28 (todos-item-done): Signal an error if a done item is marked.
29 Process marked todo items even if point is in done items section.
30
5bdcc430
SB
312013-05-11 Stephen Berman <stephen.berman@gmx.net>
32
33 * todos.el (todos-item-undone): Remove item highlighting when user
34 quits before deciding whether to omit comment. Fix misplaced
35 closing paren. Change two uses of `if' to `when'.
36
caa229d5
SB
372013-05-10 Stephen Berman <stephen.berman@gmx.net>
38
39 * todos.el: Rename numerous commands and defcustoms and adjust all
40 uses, change numerous key bindings, make some basic commands
41 noninteractive and use them to define the commands, unify
42 archiving commands.
43 (todos-directory): Rename from todos-files-directory.
44 (todos-print-buffer-function): Rename from todos-print-function.
45 (todos-number-prefix): Rename from todos-number-priorities.
46 (todos-top-priorities-overrides): Rename from todos-priorities-rules.
47 (todos-top-priorities): Rename from todos-show-priorities.
48 (todos-insertion-command-name, todos-insertion-key-bindings):
49 Use "todos-insert-item-".
50 (todos-key-bindings, todos-archive-mode-map)
51 (todos-categories-mode-map, todos-filtered-items-mode-map):
52 Adjust to renamed commands, make bindings more systematic,
53 reorder entries.
54 (todos-show-categories-table): Rename from todos-display-categories.
55 (todos-sort-categories-alphabetically-or-by-priority): Rename from
56 todos-display-categories-alphabetically-or-by-priority.
57 (todos-sort-categories-by-todo): Rename from
58 todos-display-categories-sorted-by-todo.
59 (todos-sort-categories-by-diary): Rename from
60 todos-display-categories-sorted-by-diary.
61 (todos-sort-categories-by-done): Rename from
62 todos-display-categories-sorted-by-done.
63 (todos-sort-categories-by-archived): Rename from
64 todos-display-categories-sorted-by-archived.
65 (todos-print-buffer): Rename function from todos-print.
66 (todos-print-buffer-to-file): Rename from todos-print-to-file.
67 (todos-go-to-source-item): Rename from todos-jump-to-item.
68 (todos-forward-item, todos-backward-item): Remove interactive form
69 and move most of doc string and prefix argument error checking to...
70 (todos-next-item, todos-previous-item): ...these new commands,
71 which use the preceding functions.
72 (todos-next-button): Rename from todos-forward-button.
73 (todos-previous-button): Rename from todos-backward-button.
74 (todos-toggle-prefix-numbers): Rename from
75 todos-hide-show-item-numbering.
76 (todos-toggle-view-done-items): Rename from todos-hide-show-done-items.
77 (todos-toggle-view-done-only): Rename from todos-show-done-only.
78 (todos-toggle-item-highlighting): Rename from todos-highlight-item.
79 (todos-toggle-item-header): Rename from todos-hide-show-date-time.
80 (todos-toggle-mark-item): Rename from todos-mark-unmark-item.
81 (todos-filter-top-priorities): Rename from todos-top-priorities.
82 (todos-filter-top-priorities-multifile): Rename from
83 todos-top-priorities-multifile.
84 (todos-filter-diary-items): Rename from todos-diary-items.
85 (todos-filter-diary-items-multifile): Rename from
86 todos-diary-items-multifile.
87 (todos-filter-regexp-items): Rename from todos-regexp-items.
88 (todos-filter-regexp-items-multifile): Rename from
89 todos-regexp-items-multifile.
90 (todos-insert-item-1): Remove interactive form, since
91 todos-insert-item is generated like other item insertion commands.
92 (todos-edit-file): Rename from todos-edit-multiline.
93 (todos-item-undone): Rename from todos-item-undo.
94 (todos-archive-done-item): Add raw prefix spec to interactive form
95 and use it to test for archiving all done items in category;
96 reorder tests in function body accordingly.
97 (todos-archive-category-done-items): Remove.
98
1171e432
SB
992013-04-27 Stephen Berman <stephen.berman@gmx.net>
100
101 * todos.el (todos-edit-multiline-item): Make a no-op when point is
102 not on an item.
103
7680f777
SB
1042013-04-24 Stephen Berman <stephen.berman@gmx.net>
105
106 * todos.el (todos-check-format): Add check of well-formedness of
107 categories sexp. If it is well-formed but differs from
108 todos-categories, do not signal an error but display a message.
109
308f5beb
SB
1102013-04-21 Stephen Berman <stephen.berman@gmx.net>
111
112 * todos.el: Fixes and improvements related to item relocation.
113 (todos-category-completions): On ensuring proper category display,
114 if done items in category are visible, keep them visible.
115 (todos-set-item-priority): Keep top of category in view while
116 setting priority.
117 (todos-move-item): Restore prevention of moving within the same
118 category. Move done items to top, not end, of done items section.
119 When user quits before setting priority, make sure to return to
120 starting file.
121 (todos-item-undo): Partly reimplement along lines of
122 todos-move-item, adding highlighting of single item as undo
123 target, setting priority of multiple undone items, improving
124 handling of quitting before setting priority.
125 (todos-unarchive-items): Restore items to top, not end, of
126 category's done section.
127
f1806c78
SB
1282013-04-19 Stephen Berman <stephen.berman@gmx.net>
129
130 * todos.el: Extend and improve item filtering and handling of
131 saved files of filtered items.
132 (todos-show-first): Add choices for diary and regexp items.
133 (todos-absolute-file-name): Handle file names for diary and regexp
134 items.
135 (todos-filter-items): New function abstracted from item filtering
136 commands, with handling of saved files of diary and regexp items.
137 (todos-filter-items-1): Rename from todos-filter-items.
138 (todos-filtered-buffer-name): Remove, since functionality is now
139 incorporated into new function todos-filter-items.
140 (todos-filtered-items-buffer, todos-top-priorities-buffer)
141 (todos-diary-items-buffer, todos-regexp-items-buffer):
142 Make defconsts instead of defcustoms.
143 (todos-find-item): Restrict calculation and comparison of
144 priorities to top priority items, in order to handle diary and
145 regexp items.
146 (todos-check-filtered-items-file): Rename from
147 todos-check-top-priorities and adjust message and callers.
148 (todos-filter-items-filename): Rename from
149 todos-top-priorities-filename, adjusting caller and extending to
150 files of filtered diary and regexp items.
151 (todos-save-filtered-items-buffer): Rename from
152 todos-save-top-priorities-buffer and adjust caller and uses. Use
153 write-file instead of write-region and use existing file name if
154 previously saved.
155 (todos-show): Handle initially displaying saved file of filtered
156 diary or regexp items.
157 (todos-top-priorities, todos-top-priorities-multifile)
158 (todos-diary-items, todos-diary-items-multifile)
159 (todos-regexp-items, todos-regexp-items-multifile): Use new
160 function todos-filter-items.
161 (auto-mode-alist): Extend regexp for files assigned to
162 todos-filtered-items-mode to handle saved diary and regexp items.
163
1642013-03-17 Stephen Berman <stephen.berman@gmx.net>
165
166 * calendar/todos.el (todos-insert-item): Fix mistake in logic of
167 here insertion from last change, and ensure category is set when
168 command is called from outside Todos buffer.
169
1702013-03-15 Stephen Berman <stephen.berman@gmx.net>
171
172 * calendar/todos.el: Item unarchiving fixes and improvements.
173 (todos-archive-mode-map): Add bindings for item and category
174 marking/unmarking; make todos-display-categories binding same as
175 in Todos mode; remove todos-unarchive-category binding.
176 (todos-unarchive-category): Remove.
177 (todos-unarchive-items): Fix handling of marked items. Remove
178 code for unarchiving whole category, since that is covered by
179 unarchiving marked items. Handle unarchiving items to a category
180 that had been deleted from the todo file by re-adding the
181 category. Use todos-category-select to display restored items,
182 not todos-show. Remove obsolete or superfluous code.
183
1842013-03-15 Stephen Berman <stephen.berman@gmx.net>
185
186 * calendar/todos.el (todos-reset-prefix): Don't remove overlays,
187 since it's superfluous and also wrongly removes items marks.
188 (todos-category-completions): Select current category on visiting
189 file, to ensure category is properly displayed if user switches to
190 file via a non-Todos command.
191 (todos-mark-category): Make implementation cleaner.
192 (todos-unmark-category): Improve implementation. Get overlay
193 property only when there is an overlay.
194
1952013-03-14 Stephen Berman <stephen.berman@gmx.net>
196
197 * calendar/todos.el (todos-insert-item): Fix last change to make
198 sure calling insertion "here" from outside goal todo items section
199 gives new item top priority. With priority insertion, if user
200 cancels before setting priority, restore display.
201 (todos-find-item): Restore narrowing after searching.
202 (todos-item-done): Allow adding (same) comment to marked items.
203 Don't add empty comment to done item.
204
2052013-03-13 Stephen Berman <stephen.berman@gmx.net>
206
207 * calendar/todos.el (todos-quit): If quitting
208 todos-filtered-items-mode makes todos-mode current, don't call
209 todos-show, which (here wrongly) prompts for a new Todos file.
210 (todos-delete-category): Fix incorrect quotation mark.
211 (todos-set-item-priority): Make prefix argument a no-op with
212 commands for raising or lowering item priority. Move mistakenly
213 placed right paren to end of defun, where it belongs.
214
2152013-02-25 Stephen Berman <stephen.berman@gmx.net>
216
217 * calendar/todos.el (todos-key-bindings): Add binding for `todos-show'.
218 (todos-show): Prompt for which todo file to visit when invoked
219 from Todos mode.
220
2212013-02-19 Stephen Berman <stephen.berman@gmx.net>
222
223 * calendar/todos.el: Item insertion and done/undo fixes.
224 (todos-insert-item): Maybe set the insertion file to
225 todos-global-current-todos-file. When inserting into a file that
226 was not being visited on invoking this command, ensure chosen
227 category is properly selected. Make item inserted "here" the
228 first todo item if the command was invoked with point in done
229 items section or outside of the current category.
230 (todos-item-done): When done items are shown, put cursor on first
231 just done item.
232 (todos-item-undo): Put cursor on undone item.
233
2342013-02-16 Stephen Berman <stephen.berman@gmx.net>
235
236 * calendar/todos.el: Improve handling of overlays.
237 (todos-get-overlay): New function.
238 (todos-prefix-overlay): Remove, since subsumed by
239 todos-get-overlay, and replace by the latter in callers.
240 (todos-reset-prefix): Apply only to buffer visiting Todos files.
241 Simplify implementation and use `todos' overlay property.
242 (todos-reset-done-separator): Use todos-get-overlay and `todos'
243 overlay property. Fix logic.
244 (todos-category-select): Use todos-get-overlay and `todos' overlay
245 property.
246 (todos-remove-item): Use todos-get-overlay. Correct obsolete code.
247 (todos-prefix-overlays): Use todos-top-priority face also for
248 non-numerical prefix of top priority items. Add `todos' overlay
249 property.
250 (todos-hide-show-date-time): Simplify, using todos-get-overlay and
251 `todos' overlay property.
252
2532013-02-14 Stephen Berman <stephen.berman@gmx.net>
254
255 * calendar/todos.el (todos-edit-multiline, todos-edit-quit):
256 Revert buffer renaming.
257
2582013-02-11 Stephen Berman <stephen.berman@gmx.net>
259
260 * calendar/todos.el (todos-edit-quit): On quitting file editing,
261 rename buffer back to current Todos file. After selecting
262 category, put point at top instead of recentering.
263
2642013-02-08 Stephen Berman <stephen.berman@gmx.net>
265
266 * calendar/todos.el (todos-edit-multiline-item): Revert to using
267 indirect buffer, which makes it easier to return to Todos mode.
268 (todos-edit-quit): Don't delete and reinsert items that don't need
269 indenting. Revert to just killing buffer on quitting single item
270 editing. On quitting file editing, select nearest category.
271
2722013-02-07 Stephen Berman <stephen.berman@gmx.net>
273
274 * calendar/todos.el: Bug fixes and improvements to item editing
275 and insertion.
276 (todos-check-format): Compare current value of todos-categories
277 with actual categories sexp.
278 (todos-repair-categories-sexp): Add warning to doc string about
279 category order getting restored to list element order.
280 (todos-mode-external-set): When todos-categories is nil, as in
281 Todos Edit mode, set it by reading actual categories sexp.
282 (todos-edit-mode): Make buffer writeable.
283 (todos-done-item-section-p): New function.
284 (todos-insert-item): Use it as part of preventing insertion here
285 in done items section. Move check for display of done items only
286 to just before setting new item's priority, and if cancelled after
287 toggling to todo items, restore display of done items.
288 (todos-edit-multiline-item): Don't base on todos-edit-multiline
289 but just narrow and change mode.
290 (todos-edit-multiline): Don't make indirect buffer but just widen
291 and change mode; also remove overlays.
292 (todos-edit-quit): Restore Todos mode and category display; when
293 quitting multiline item editing, ensure items above edited item
294 are visible in window if possible.
295 (todos-done-item-add-edit-or-delete-comment): If user moved point
296 during editing, make sure it moves back to edited item before
297 returning.
298
2992013-02-05 Stephen Berman <stephen.berman@gmx.net>
300
301 * calendar/todos.el (todos-reset-done-separator-string):
302 Complete the implementation.
303 (todos-hide-show-done-items): If start of done items sections is
304 below the bottom of the window, make it visible.
305 (todos-insert-item): Allow inserting item here to work outside of
306 the current category, but then at top of category. After checking
307 whether only done items are shown, restore point to ensure
308 inserting item here works correctly.
309 (todos-set-item-priority): Delete leftover right paren at end.
310
3112013-02-04 Stephen Berman <stephen.berman@gmx.net>
312
313 * calendar/todos.el: Bug fixes involving or displaying done items.
314 (todos-done-separator): Make length of long separator one less
315 than window-width, in order to avoid following empty line.
316 (todos-forward-item, todos-backward-item): Make empty line below
317 last todo item accessible only by invoking without a numerical
318 prefix argument and make the latter invocations move only to items.
319 (todos-insert-item): Set todos-current-todos-file after selecting
320 buffer, in order not to set global value. If only done items are
321 shown when this command is invoked, toggle to show todo items to
322 avoid insertion into done items section. When done items are
323 shown, protect from cancelling before setting item priority: this
324 also needs recentering to display all items.
325 (todos-set-item-priority): Only call on (not done) todo items.
326 Check that done items are visible not because file is widened.
327 Use only `any' argument of called-interactively-p. Make sure that
328 giving an undone item lowest priority restores it to the todo
329 section.
330 (todos-item-done): If done items are visible on invoking this
331 command, keep them visible afterwards. Stop looking for marked
332 items on reaching the empty line below the last todo item.
333
3342013-02-02 Stephen Berman <stephen.berman@gmx.net>
335
336 * calendar/todos.el: Several small fixes and improvements.
337 (todos-done-separator-string): Change default value.
338 (todos-update-categories-sexp): Remove unnecessary and misquided
339 setq of todos-default-todos-file. Use delete-region instead of
340 kill-region to avoid polluting kill-ring.
341 (todos-unload-hook): Remove (was not used).
342 (todos-edit-multiline): Don't generate new edit buffer name on
343 each invocation---that can cause confusion due to indirect buffer.
344 (todos-edit-quit): Ensure lines in edit buffer that follow hard
345 newlines are indented in the file to conform to diary format.
346 (todos-set-item-priority): If done items in category are visible,
347 keep them visible.
348
3492013-01-30 Stephen Berman <stephen.berman@gmx.net>
350
351 * calendar/todos.el: Fix done separator overlay bug. Remove most
352 FIXME comments.
353 (todos-reset-and-enable-done-separator): Remove commented out
354 workaround for done separator overlay bug; fix doc string.
355 (todos-reset-done-separator): Delete old overlay after adding new
356 overlay to fix done separator overlay bug; improve implementation.
357 (todos-prefix-overlays): Improve first line of doc string.
358
3592013-01-29 Stephen Berman <stephen.berman@gmx.net>
360
361 * calendar/todos.el: Improve item marking and handling of marked items.
362 (todos-prefix): Add validator to ensure value differs from that of
363 todos-item-mark.
364 (todos-item-mark): New defcustom.
365 (todos-prefix-overlay): New function.
366 (todos-marked-item-p): Use it. Adapt implementation to new
367 handling of marked items.
368 (todos-insert-with-overlays): When inserting pushes down a marked
369 item, move its prefix overlay.
370 (todos-prefix-overlays): Add overlay even when prefix is empty string,
371 otherwise item marking fails. Improve handling of marked items.
372 (todos-mark-unmark-item): Adapt to new handling of marked items
373 and simplify by removing marking of all items in category.
374 (todos-mark-category): Adapt to new handling of marked items and
375 don't use todos-mark-unmark-item.
376 (todos-unmark-category): Adapt to new handling of marked items.
377 (todos-delete-item): Remove obsolete handling of marked items and
378 useless restoration of point.
379 (todos-set-item-priority): Use new handling of marked items.
380 (todos-move-item, todos-item-done, todos-item-undo)
381 (todos-archive-done-item): Remove obsolete handling of marked items.
382
3832013-01-25 Stephen Berman <stephen.berman@gmx.net>
384
385 * calendar/todos.el: Improve definitions and use of some faces.
386 (todos-top-priority): Use current definition of font-lock-constant-face.
387 (todos-diary-expired): Make default value contrast more with
388 default value of todos-date face.
389 (todos-nondiary, todos-category-string): New faces.
390 (todos-nondiary-face, todos-category-string-face): Corresponding
391 new variables.
392 (todos-done, todos-comment): Switch default values to go better
393 with default value of todos-date face.
394 (todos-done-sep): Change default value.
395 (todos-category-string-matcher-1)
396 (todos-category-string-matcher-2): Improve doc string.
397 (todos-font-lock-keywords): Use todos-nondiary-face and
398 todos-category-string-face.
399 (todos-done-separator): Propertize string with todos-done-sep face.
400 (todos-filtered-items-mode): Fix typo.
401
4022013-01-23 Stephen Berman <stephen.berman@gmx.net>
403
404 * calendar/todos.el: Improve handling of saved top priorities items.
405 (todos-find-item): Find done items and items whose priority has
406 changed or whose text was truncated or augmented; add doc string.
407 (todos-check-top-priorities): Highlight each item that is not up
408 to date.
409 (todos-jump-to-item): Jump to items whose priority has changed or
410 whose text was truncated or augmented.
411
4122013-01-22 Stephen Berman <stephen.berman@gmx.net>
413
414 * calendar/todos.el: Revise handling of initial display and extend
415 to top priorities file.
416 (todos-display-categories-first): Remove, replacing by this:
417 (todos-show-first): New defcustom.
418 (todos-first-visit): Remove, replacing by this:
419 (todos-visited): New variable.
420 (todos-absolute-file-name): Extend possible values of optional
421 argument to take top priorities files into account.
422 (todos-modes-set-3, todos-mode): Remove use of todos-first-visit.
423 (todos-mode-external-set): Call find-file-noselect instead of
424 find-buffer-visiting, since the latter may fail.
425 (todos-show): Revise handling of initial display using
426 todos-show-first and todos-visited and extend to top priorities
427 file.
428 (todos-quit): Adapt to new handling of initial display.
429
4302013-01-14 Stephen Berman <stephen.berman@gmx.net>
431
432 * calendar/todos.el: Implement saving top priority items buffers,
433 improve implementation of item filtering commands and
434 infrastucture, and fix two bugs.
435 (todos-prefix-overlays): Use todos-top-priority face only in Todos
436 mode.
437 (todos-multiple-filter-files): Get file-truename of Todos file.
438 (todos-filter-items): Pass a list of files from the caller instead
439 of building it here, and move handling of cancelled file selection
440 dialog to callers. Correct omission of file-wide default number
441 of top priorities.
442 (todos-filtered-buffer-name): Treat file-list argument only as a list.
443 (todos-find-item, todos-check-top-priorities)
444 (todos-top-priorities-filename)
445 (todos-save-top-priorities-buffer): New functions.
446 (todos-save): Use todos-save-top-priorities-buffer.
447 (todos-jump-to-item): Refactor and use todos-find-item.
448 (todos-top-priorities): Simplify semantics of prefix argument.
449 Check if top priorities file exists and if so, visit it, reporting
450 whether it is up to date. Add optional argument and use it to
451 handle multiple files.
452 (todos-diary-items, todos-regexp-items): Add optional argument and
453 use it to handle multiple files.
454 (todos-top-priorities-multifile, todos-diary-items-multifile)
455 (todos-regexp-items-multifile): Refactor, using corresponding
456 non-multifile command.
457 (auto-mode-alist): Add pattern for top priorities files to visit
458 these in Todos Filtered Items mode.
459
4602013-01-08 Stephen Berman <stephen.berman@gmx.net>
461
462 * calendar/todos.el: Fix tabular alignment in Todos Categories mode.
463 (todos-adjusted-category-label-length): New function.
464 (todos-padded-string): Use it.
465
4662013-01-08 Stephen Berman <stephen.berman@gmx.net>
467
468 * calendar/todos.el (todos-move-item): Allow moving done items to
469 done section of another category.
470
4712013-01-06 Stephen Berman <stephen.berman@gmx.net>
472
473 * calendar/todos.el: Display numerical priority string of top
474 priority items in category in a distinctive face.
475 (todos-prefix-string): Make doc string more precise.
476 (todos-top-priority): New defface.
477 (todos-done, todos-done-sep): Use more compact face definition
478 \(taken from font-lock.el).
479 (todos-comment): Give a complete face definition, instead of
480 inheriting from todos-done.
481 (todos-font-lock-keywords): Use todos-comment-face for
482 todos-comment-string-matcher.
483 (todos-prefix-overlays): Use todos-top-priority as the face
484 property of top priority items; don't condition reapplying item
485 prefix overlay on whether the string changed, since that prevents
486 updating display after changing number of top priorities.
487 (todos-set-top-priorities): Call todos-prefix-overlays to update
488 display.
489
4902013-01-04 Stephen Berman <Stephen.Berman@rub.de>
491
492 * calendar/todos.el (todos-reset-global-current-todos-file)
493 (todos-display-categories-1): Use absolute name of
494 todos-default-todos-file.
495
4962013-01-04 Stephen Berman <Stephen.Berman@rub.de>
497
498 * calendar/todos.el (todos-insert-item): Fix copy and paste error
499 from previous change.
500
5012013-01-03 Stephen Berman <stephen.berman@gmx.net>
502
503 * calendar/todos.el: Implement extended category completions.
504 (todos-default-todos-file): Change default value to correct custom
505 type.
506 (todos-category-completions-files): New defcustom.
507 (todos-reevaluate-category-completions-files-defcustom)
508 (todos-absolute-file-name, todos-category-completions): New defuns.
509 (todos-reevaluate-filelist-defcustoms):
510 Add todos-category-completions-files and
511 todos-reevaluate-category-completions-files-defcustom.
512 (todos-allcats-file, todos-all-categories-alist)
513 (todos-jump-to-category-other-file, todos-jump-to-any-category)
514 (todos-move-item-to-file): Remove (todos-all-categories-alist both
515 as defvar and as defun).
516 (todos-read-category): Rewrite using extended category completions
517 and better handling of completion against existing or non-existing
518 categories.
519 (todos-validate-name): Correct doc string; use local instead of
520 dynamic variables in function body.
521 (todos-insert-category-line): Adjust use of todos-jump-to-category
522 to new argument list.
523 (todos-key-bindings, todos-menu): Delete entries for removed
524 commands.
525 (todos-show): Get absolute name of todos-default-todos-file;
526 add `nowarn' argument to find-file-noselect; adjust use of
527 todos-add-category to new argument list.
528 (todos-jump-to-category): Rewrite using extended category
529 completions; reverse argument list, adapting FILE argument to new
530 completion mechanism; add autoload cookie; call todos-show if
531 there are no Todos files.
532 (todos-add-category): Rewrite using extended category completions;
533 add FILE argument to accommodate new completion mechanism.
534 (todos-merge-category): Adapt to extended category completions,
535 adding prefix argument.
536 (todos-insert-item): Adapt to extended category completions; use
537 todos-read-category instead of todos-jump-to-category in prefix
538 argument calls; call todos-show if there are no Todos files; if
539 item is inserted at end of category, recenter to ensure the items
540 above it are displayed in the window.
541 (todos-move-item): Adapt to extended category completions, making
542 argument prefix argument; allow moving within category (for the
543 sake of code simplification); add `nowarn' argument to
544 find-file-noselect.
545 (todos-archive-done-item): Prevent error when attempting to
546 archive not-done todo item; adjust use of todos-add-category to
547 new argument list.
548
5492012-12-15 Stephen Berman <stephen.berman@gmx.net>
550
551 * calendar/todos.el (todos-archive-done-item): Fix archiving of
552 all done items in a category and resulting display of todo file.
553
5542012-12-14 Stephen Berman <stephen.berman@gmx.net>
555
556 * calendar/todos.el (todos-priorities-rules): Fix customization
557 type to prevent mismatch error.
558 (todos-set-top-priorities): Fix rule construction; fix input check;
559 improve prompt.
560
5612012-12-14 Stephen Berman <stephen.berman@gmx.net>
562
563 * calendar/todos.el (todos-insert-item): If user exits Calendar
564 before choosing a date, cancel item insertion.
565 (todos-set-date-from-calendar): If user exits Calendar before
566 choosing a date, clean up properly.
567
5682012-12-12 Stephen Berman <stephen.berman@gmx.net>
569
570 * calendar/todos.el: Extend and improve handling of item editing,
571 especially of date/time header.
572 (todos-month-name-array, todos-month-abbrev-array): New defconsts.
573 (todos-date-pattern): Use explicitly numbered groups.
574 (todos-read-date): Optionally read and return just one of the date
575 string components year, month or monthname, day.
576 (todos-key-bindings): Add bindings for new item header editing
577 commands.
578 (todos-edit-item): Exclude date/time header from minibuffer by
579 default; include it by passing a prefix argument.
580 (todos-edit-item-header-1): New function containing the guts of
581 the commands for editing item date/time headers.
582 (todos-edit-item-header): Use it. Condition editing of time
583 string on value of `todos-always-add-time-string'.
584 (todos-edit-item-date-from-calendar): Use todos-edit-item-header-1.
585 (todos-edit-item-date-to-today): Rename from
586 todos-edit-item-date-is-today and use todos-edit-item-header-1.
587 (todos-edit-item-date): Remove.
588 (todos-edit-item-date-day-name, todos-edit-item-date-year)
589 (todos-edit-item-date-month, todos-edit-item-date-day): New commands.
590
5912012-12-02 Stephen Berman <stephen.berman@gmx.net>
592
593 * calendar/todos.el (todos-show): Fix a comment.
594 (todos-add-category): Prompt for a new category if passed category
595 is the empty string, not nil.
596
5972012-11-26 Stephen Berman <stephen.berman@gmx.net>
598
599 * calendar/todos.el (todos-make-categories-list)
600 (todos-convert-legacy-files, todos-jump-to-item)
601 (todos-move-category, todos-merge-category)
602 (todos-archive-done-item, todos-unarchive-items): Include end of
603 line in regex searches for beginning of category, in order not to
604 get a category whose name contains the searched for category name.
605
6062012-11-15 Stephen Berman <stephen.berman@gmx.net>
607
608 * calendar/todos.el (todos-forward-category): Fix typo.
609
6102012-10-30 Stephen Berman <stephen.berman@gmx.net>
611
612 * calendar/todos.el (todos-define-insertion-command):
613 Let generated insertion commands accept a prefix argument.
614
6152012-10-08 Stephen Berman <Stephen.Berman@rub.de>
616
617 * calendar/todos.el (todos-move-item): If user quits before
618 completing movement, restore display of initial category; if item
619 is moved to end of target category, make sure the items above it
620 are displayed in the window.
621
6222012-10-08 Stephen Berman <stephen.berman@gmx.net>
623
624 * calendar/todos.el: Fixes to todos-move-item and some of its
625 subroutines.
626 (todos-move-item): When there are marked items, point need not be
627 on an item; remove obsolete use of todos-add-category, since this
628 is now already done in todos-read-category; fix typo.
629 (todos-diary-item-p): Exclude empty lines.
630 (todos-read-category): Restore point and narrowing after adding
631 new category, to avoid moving to beginning of file when moving
632 marked items to a new category.
633 (todos-set-item-priority): Prompt for priority only when the
634 category has at least one todo item; only use non-nil priority to
635 calculate insertion location.
636 (todos-read-category): Don't reset todos-categories when a new
637 category is added due to todos-move-item or todos-jump-to-item.
638
6392012-09-24 Stephen Berman <stephen.berman@gmx.net>
640
641 Changes from 2012-07-14 (revision 110020).
642 * calendar/todos.el (todos-copy-item): New command.
643 (todos-insertion-map): Add key binding for it.
644
6452012-09-24 Stephen Berman <stephen.berman@gmx.net>
646
647 Changes from 2012-07-13 (revision 110019).
648 * calendar/todos.el (todos-undo-item-omit-comment): New defcustom.
649 (todos-item-undo): Use it.
650 (todos-allcats-file, todos-all-categories-alist): New variables.
651 (todos-all-categories-alist): New function.
652 (todos-jump-to-any-category): New command.
653 (todos-move-item): Remove mark overlays from buffer items were
654 moved from; update todos-categories-with-marks,
655
6562012-09-24 Stephen Berman <stephen.berman@gmx.net>
657
658 Changes from 2012-06-27 (revision 110018).
659 * calendar/todos.el: Further code rearrangement; further new and
660 revised comments.
661 (todos-reevaluate-filelist-defcustoms): Rename from
662 todos-reevaluate-defcustoms and adjust callers.
663 (todos-date-pattern, todos-nondiary-start, todos-nondiary-end)
664 (todos-date-string-start, todos-done-string-start)
665 (todos-item-start): Change from defvar to defconst.
666 (todos-set-top-priorities): Use read-number and simplify.
667 (todos-insert-item): Check whether date-type argument is a string.
668 (todos-set-date-from-calendar): Check whether
669 todos-date-from-calendar is a string; simplify cond clause.
670 (todos-archive-done-item, todos-unarchive-items):
671 Use buffer-substring-no-properties.
672
6732012-09-23 Stephen Berman <stephen.berman@gmx.net>
674
675 Changes from 2012-06-25 (revision 110017).
676 * calendar/todos.el (todos-item-undo): Fix restoration on
677 cancelling; use buffer-substring-no-properties; comment out code
678 removing mark overlay; fix insertion of undone items; display any
679 remaining done items.
680
6812012-09-23 Stephen Berman <stephen.berman@gmx.net>
682
683 Changes from 2012-06-24 (revision 110016).
684 * calendar/todos.el: Further significant code rearrangement;
685 further comment revision.
686 (todos-mode-display): New defgroup.
687 (todos-prefix, todos-number-priorities)
688 (todos-done-separator-string, todos-done-string)
689 (todos-comment-string, todos-show-with-done)
690 (todos-mode-line-function, todos-skip-archived-categories)
691 (todos-highlight-item, todos-wrap-lines)
692 (todos-line-wrapping-function): Use it.
693 (todos-item-insertion): New defgroup.
694 (todos-include-in-diary, todos-diary-nonmarking)
695 (todos-nondiary-marker, todos-always-add-time-string)
696 (todos-use-only-highlighted-region): Use it.
697 (todos-forward-button, todos-backward-button): New commands.
698 (todos-categories-mode-map): Use them, replacing forward-button
699 and backward-button.
700 (todos-merge-category): Fix and improve implementation; handle
701 archived items.
702 (todos-insert-item, todos-set-date-from-calendar): Handle setting
703 date by calling todos-insert-item-from-calendar.
704 (todos-delete-item): Fix overlay handling.
705 (todos-move-item): Highlight item to be moved.
706 (todos-item-undo): Handle marked items.
707 (todos-insert-item-from-calendar): Rewrite using
708 todos-date-from-calendar.
709
7102012-09-23 Stephen Berman <stephen.berman@gmx.net>
711
712 Changes from 2012-06-21 (revision 110015).
713 * calendar/todos.el: Further comment revision.
714 (todos-sorted-column): Change default value, also taking tty into
715 account.
716 (todos-reset-done-separator): Fix faulty variable binding.
717 (todos-reset-and-enable-done-separator): Save match data; comment
718 out code that causes problems for Edebug.
719 (todos-item-start): Handle empty line between todo and done items
720 when done items are hidden.
721 (todos-read-date): Use a leap year for `*' to allow
722 calendar-last-day-of-month to return Feb. 29.
723 (todos-archive-mode, todos-edit-mode, todos-categories-mode)
724 (todos-filtered-items-mode): Delete faulty parentheses.
725 (todos-quit): Save Todos and archive files unconditionally.
726 (todos-forward-item): Accept only positive prefix argument.
727 (todos-backward-item): Accept only positive prefix argument; don't
728 move point to beginning of buffer if it is on the first item.
729 (todos-hide-show-date-time): Remove obsolete interactive spec.
730 (todos-move-category): Improve prompt string; ensure file moved to
731 is different from file moved from.
732 (todos-merge-categories): Remove.
733 (todos-set-category-priority): New command.
734 (todos-raise-category-priority, todos-lower-category-priority):
735 Use it to define these commands.
736 (todos-set-item-priority): Rewrite and generalize.
737 (todos-raise-item-priority, todos-lower-item-priority): Use it to
738 define these commands.
739
7402012-09-23 Stephen Berman <stephen.berman@gmx.net>
741
742 Changes from 2012-06-15 (revision 110014).
743 * calendar/todos.el (todos-reset-done-separator)
744 (todos-reset-and-enable-done-separator): New functions.
745 (todos-reset-done-separator-string): Rewrite using
746 todos-reset-done-separator for string longer than 1 character.
747 (todos-mode): Add todos-reset-and-enable-done-separator to
748 window-configuration-change-hook, replacing previous anonymous
749 function.
750 (todos-unload-hook): And remove it.
751
7522012-09-23 Stephen Berman <stephen.berman@gmx.net>
753
754 Changes from 2012-06-14 (revision 110013).
755 * calendar/todos.el (todos-done-separator-string): New defcustom.
756 (todos-done-separator): New variable replacing defcustom of the
757 same name.
758 (todos-reset-done-separator-string, todos-done-separator):
759 New functions.
760 (todos-mode): Make function added to
761 window-configuration-change-hook do a better job of updating the
762 done items separator string overlay.
763 (todos-unload-hook): Remove it here.
764 (todos-item-undo): Fix search for item's end.
765
7662012-09-23 Stephen Berman <stephen.berman@gmx.net>
767
768 Changes from 2012-06-03 (revision 110012).
769 * calendar/todos.el: Further comment revision.
770 (todos-sorted-column): Change default value.
771 (todos-item-start): Handle empty category (needed in
772 todos-filter-items).
773 (todos-read-date): Don't use calendar-read; make code cleaner.
774 (todos-multiple-filter-files): Rename this variable from
775 todos-multiple-files and adjust users.
776 (todos-multiple-filter-files-widget): Rename from
777 todos-multiple-files-widget and adjust users.
778 (todos-multiple-filter-files): Rename this function from
779 todos-multiple-files and adjust callers.
780 (todos-filter-items): Remove unused code.
781 (todos-insert-category-line): Add space so highlighting of last
782 column is consistent with the others; adjust display of column
783 highlighting.
784 (todos-menu): Remove obsolete entry.
785 (todos-categories-mode-map): Add new bindings.
786 (todos-display-categories-alphabetically-or-by-priority): New command.
787 (todos-display-categories-sorted-by-todo)
788 (todos-display-categories-sorted-by-diary)
789 (todos-display-categories-sorted-by-done)
790 (todos-display-categories-sorted-by-archived): Restore and fix
791 implementation.
792
7932012-09-23 Stephen Berman <stephen.berman@gmx.net>
794
795 Changes from 2012-06-02 (revision 110011).
796 * calendar/todos.el: Significant code rearrangement; further
797 comment revision.
798 (todos-filtered-items-buffer): Rename from todos-filter-buffer and
799 adjust users.
800 (todos-filtered-buffer-name): Rename from
801 todos-special-buffer-name and adjust users.
802 (todos-filtered-items-mode-map): Rename from
803 todos-filter-items-mode-map and adjust users.
804 (todos-mode-external-set): Use todos-categories instead of
805 todos-set-categories (and add comment to check if this DTRT).
806 (todos-filtered-items-mode): Rename from todos-filter-items-mode
807 and adjust users.
808 (todos-add-category): Don't call todos-validate-name, since
809 todos-read-category does.
810 (todos-edit-quit): Use todos-repair-categories-sexp.
811 (todos-done-item-add-edit-or-delete-comment): Rename from
812 todos-done-item-add-or-edit-comment and adjust users; add optional
813 argument to prompt to delete comment.
814 (todos-item-undo): Delete done item comment on undoing if user
815 confirms.
816
8172012-09-22 Stephen Berman <stephen.berman@gmx.net>
818
819 Changes from 2012-06-02 (revision 110010).
820 * calendar/todos.el: Further code rearrangement and comment
821 revision.
822 (todos-item-start): Handle empty line between todo and done items
823 when done items are displayed.
824 (todos-key-bindings): Comment out bindings meant only for
825 todos-archive-mode.
826 (todos-archive-mode-map): Fix typo.
827 (todos-archive-mode): Derive from special-mode instead of
828 todos-mode to prevent its key bindings from being available here.
829 (todos-archive-done-item): Remove obsolete code; fix item count
830 updating.
831 (todos-unarchive-items): Simplify; fix unarchiving of all items in
832 category; fix item count updating; fix typo.
833
8342012-09-22 Stephen Berman <stephen.berman@gmx.net>
835
836 Changes from 2012-06-01 (revision 110009).
837 * calendar/todos.el: Further code rearrangement and comment
838 revision.
839 (todos-add-to-buffer-list, todos-update-buffer-list): New functions.
840 (todos-file-buffers): New variable.
841 (todos-reset-global-current-todos-file): Use it to simplify
842 implementation of this function.
843 (todos-filtered): New defgroup.
844 (todos-filter-buffer, todos-top-priorities-buffer)
845 (todos-diary-items-buffer, todos-regexp-items-buffer)
846 (todos-priorities-rules, todos-show-priorities)
847 (todos-filter-files, todos-filter-done-items): Use it.
848 (todos-skip-archived-categories): Rename from
849 todos-ignore-archived-categories and adjust users.
850 (todos-display-as-todos-file): Rename from todos-after-find-file
851 and adjust callers.
852 (todos-reset-highlight-item, todos-mode-external-set)
853 (todos-jump-to-category, todos-jump-to-item)
854 (todos-raise-category-priority, todos-insert-item)
855 (todos-move-item): Use find-file-visiting.
856 (todos-make-categories-list): Use file-truename.
857 (todos-display-categories-1): Adjust title text for archive files;
858 use done label for item counts in archive files.
859 (todos-modes-set-3): Add todos-display-as-todos-file to
860 find-file-hook.
861 (todos-mode): Add todos-add-to-buffer-list to find-file-hook and
862 todos-update-buffer-list post-command-hook.
863 (todos-unload-hook): And remove them.
864 (todos-show): Only when interactively invoked from an archive,
865 switch to corresponding Todos file.
866 (todos-archive-done-item): Remove obsolete code; fix handling of
867 marked items; fix search for existing category; check whether
868 archive exists and write to file if not; improve display handling.
869
8702012-09-21 Stephen Berman <stephen.berman@gmx.net>
871
872 Changes from 2012-05-29 (revision 110008).
873 * calendar/todos.el: Further comment revision.
874 (todos-item-end): Replace use of command todos-forward-item by
875 regexp searches using internal variables.
876 (todos-raise-category-priority): Improve and comment.
877 (todos-insert-item): Fix insertion of empty time string.
878
8792012-09-21 Stephen Berman <stephen.berman@gmx.net>
880
881 Changes from 2012-05-29 (revision 110007).
882 * calendar/todos.el (todos-ignore-archived-categories):
883 Revert last change; remove :initialize and :set functions; change
884 use and change users accordingly.
885 (todos-reset-categories, todos-categories-full)
886 (todos-truncate-categories-list): Remove.
887 (todos-set-categories, todos-update-categories-sexp):
888 Use todos-categories instead of todos-categories-full; remove use
889 of todos-ignore-archived-categories and
890 todos-truncate-categories-list.
891 (todos-check-format, todos-repair-categories-sexp):
892 Use todos-categories instead of todos-categories-full.
893 (todos-read-category): Improve last change.
894 (todos-validate-name): Use completing-read.
895 (todos-categories-category-number): Rename from
896 todos-category-number and adjust users.
897 (todos-update-categories-display, todos-mode-external-set)
898 (todos-delete-category, todos-move-category, todos-merge-category)
899 (todos-unarchive-items): Remove use of todos-categories-full and
900 todos-ignore-archived-categories.
901 (todos-modes-set-3, todos-add-category): Remove use of
902 todos-categories-full.
903 (todos-edit-mode): Fix typo.
904 (todos-forward-category): Use todos-ignore-archived-categories.
905
9062012-09-21 Stephen Berman <stephen.berman@gmx.net>
907
908 Changes from 2012-05-28 (revision 110006).
909 * calendar/todos.el: Doubts about todos-ignore-archived-categories.
910 (todos-ignore-archived-categories): Change default value.
911
9122012-09-21 Stephen Berman <stephen.berman@gmx.net>
913
914 Changes from 2012-05-27 (revision 110005).
915 * calendar/todos.el: Further comment revision.
916 (todos-reset-global-current-todos-file):
917 Try to make this not slow down kill-buffer.
918 (todos-update-categories-sexp): Handle the case where there is no
919 categories sexp yet, i.e. after inserting the first item in the
920 file, so todos-display-categories works.
921 (todos-read-file-name): Improve implementation.
922 (todos-validate-name): Use variable todos-files.
923 (todos-category-number): New variable.
924 (todos-insert-category-line, todos-update-categories-display)
925 (todos-raise-category-priority): Use it.
926 (todos-add-file): Remove unused remnant code.
927
9282012-09-21 Stephen Berman <stephen.berman@gmx.net>
929
930 Changes from 2012-05-25 (revision 110004).
931 * calendar/todos.el: Further comment revision.
932 (todos-set-item-top-priority): New command.
933 (todos-reset-global-current-todos-file):
934 Use todos-files-function instead of todos-files.
935 (todos-read-category): Add optional argument to test whether
936 caller adds new category; if so, don't prompt for new category and
937 don't restore original todos-categories list.
938 (todos-categories-mode-map): Update to renamed commands.
939 (todos-filter-items-mode-map): Add binding for new command.
940 (todos-mode): Fix typo.
941 (todos-show): If called from archive file, show corresponding
942 category in Todos file, if it exists.
943 (todos-jump-to-category): Remove code to add new category, since
944 todos-read-category can do that.
945 (todos-add-file): Remove obsolete code; visit new file in selected
946 window.
947 (todos-add-category): Simplify.
948 (todos-rename-category): Use force-mode-line-update instead of
949 setting mode-line-buffer-identification.
950 (todos-delete-category): Improve logic of prompts; use
951 todos-categories-full and check todos-ignore-archived-categories.
952 (todos-raise-category-priority, todos-lower-category-priority):
953 Rename from todos-{raise,lower}-category and adjust callers.
954 (todos-move-category, todos-merge-category):
955 Set todos-categories-full; on setting todos-categories check
956 todos-ignore-archived-categories.
957 (todos-insert-item): Let-bind use-empty-active-region and use
958 use-region-p instead of transient-mark-mode.
959 (todos-raise-item-priority): Improve implementation.
960 (todos-archive-done-item): Rename from
961 todos-archive-done-item-or-items and adjust callers; confine to
962 Todos mode.
963 (todos-unarchive-items): On setting todos-categories check
964 todos-ignore-archived-categories.
965
9662012-09-21 Stephen Berman <stephen.berman@gmx.net>
967
968 Changes from 2012-05-23 (revision 110003).
969 * calendar/todos.el (todos-key-bindings): Remove binding of
970 deleted command.
971 (todos-menu): Remove entry of deleted command.
972 (todos-show-archive): Fix last change.
973 (todos-done-item-add-or-edit-comment): Rename from
974 todos-comment-done-item and adjust callers; prompt to edit an
975 existing comment.
976
9772012-09-21 Stephen Berman <stephen.berman@gmx.net>
978
979 Changes from 2012-05-22 (revision 110002).
980 * calendar/todos.el (todos-set-show-current-file): Rename from
981 todos-toggle-show-current-file and adjust callers.
982 (todos-number-priorities): Rename from todos-number-prefix and
983 adjust users.
984 (todos-update-count): Rename from todos-set-count and adjust
985 callers.
986 (todos-hide-show-item-numbering): Rename from
987 todos-toggle-item-numbering and adjust callers.
988 (todos-hide-show-done-items): Rename from
989 todos-toggle-view-done-items and adjust callers.
990 (todos-show-done-only): Rename from todos-toggle-show-done-only.
991 (todos-view-archived-items): Comment out.
992 (todos-show-archive): Prompt to choose another archive file if
993 current Todos file lacks an archive; prompt to visit archive
994 anyway when current category has no archived items.
995
9962012-09-21 Stephen Berman <stephen.berman@gmx.net>
997
998 Changes from 2012-05-21 (revision 110001).
999 * calendar/todos.el: Further comment revision and code
1000 rearrangement.
1001 (todos-item-end): Revert last change.
1002 (todos-key-bindings, todos-menu, todos-archive-mode-map)
1003 (todos-filter-items-mode-map): Use renamed commands.
1004 (todos-hide-show-date-time): Rename from
1005 todos-toggle-display-date-time.
1006 (todos-mark-unmark-item): Rename from todos-toggle-mark-item and
1007 adjust caller.
1008 (todos-backward-item): Exempt special handling only from
1009 todos-regexp-items-buffer instead of todos-filter-items-mode.
1010 (todos-raise-item-priority): Don't allow item reprioritizing in
1011 Todos filter items mode except for top priority items.
1012
10132012-09-21 Stephen Berman <stephen.berman@gmx.net>
1014
1015 Changes from 2012-05-19 (revision 110000).
1016 * calendar/todos.el: Add and revise further doc strings and
1017 comments.
1018 (todos-filter-function, todos-custom-items)
1019 (todos-custom-items-multifile): Remove.
1020 (todos-filter-done-items): New defcustom.
1021 (todos-item-end, todos-backward-item): Handle todos-filter-items-mode.
1022 (todos-filter-items): Check return value of caller first; tag
1023 archived items for todos-jump-to-item; delete categories sexp
1024 before processing filter; check todos-filter-done-items for
1025 whether to leave done items; remove custom filter; fix regexp for
1026 file and category tags; don't invoke buffer fontification.
1027 (powerset-recursive): Fix typo.
1028 (todos-key-bindings): Remove unused bindings.
1029 (todos-top-priorities-multifile, todos-diary-items-multifile)
1030 (todos-regexp-items-multifile): Use variable todos-multiple-files.
1031 (todos-jump-to-item): Fix regexp; handle archive tags; take
1032 todos-filter-done-items into account.
1033 (todos-insert-item-from-calendar): Relocate to end of file
1034 together with key-binding as addition to calendar.el.
1035
10362012-09-20 Stephen Berman <stephen.berman@gmx.net>
1037
1038 Changes from 2012-05-17 (revision 109999).
1039 * calendar/todos.el: Add and revise further doc strings and
1040 comments; major code rearrangement.
1041 (todos-merged-files, todos-prompt-merged-files)
1042 (todos-print-priorities, todos-tmp-buffer-name)
1043 (todos-top-priorities-widgets, todos-update-merged-files)
1044 (todos-merged-top-priorities, todos-merged-diary-items)
1045 (todos-merged-regexp-items, todos-merged-custom-items)
1046 (todos-raw-mode, todos-change-default-file)
1047 (todos-toggle-diary-inclusion, todos-toggle-item-diary-nonmarking)
1048 (todos-toggle-diary-nonmarking, todos-validate-category-name):
1049 Remove.
1050 (todos-category-string-matcher): Comment out.
1051 (todos-categories): New defgroup.
1052 (todos-initial-file, todos-filter-buffer)
1053 (todos-top-priorities-buffer, todos-categories-category-label)
1054 (todos-diary-items-buffer, todos-regexp-items-buffer)
1055 (todos-custom-items-buffer, todos-filter-files)
1056 (todos-highlight-item, todos-todo-mode-date-time-regexp):
1057 New defcustoms.
1058 (todos-diary-expired): New face.
1059 (todos-print-buffer, todos-multiple-files)
1060 (todos-multiple-files-widget, todos-key-bindings): New variables.
1061 (todos-short-file-name, todos-reevaluate-default-file-defcustom)
1062 (todos-special-buffer-name)
1063 (todos-reevaluate-filter-files-defcustom)
1064 (todos-reset-highlight-item, todos-reevaluate-defcustoms)
1065 (todos-nondiary-marker-matcher, todos-diary-nonmarking-matcher)
1066 (todos-diary-expired-matcher, todos-category-string-matcher-1)
1067 (todos-category-string-matcher-2, todos-repair-categories-sexp)
1068 (todos-validate-name, todos-multiple-files)
1069 (todos-display-categories-1, todos-update-categories-display)
1070 (todos-modes-set-3, todos-mode-external-set): New functions.
1071 (todos-set-top-priorities-in-file)
1072 (todos-set-top-priorities-in-category)
1073 (todos-top-priorities-multifile, todos-diary-items-multifile)
1074 (todos-regexp-items-multifile, todos-custom-items-multifile)
1075 (todos-convert-legacy-files, todos-jump-to-item)
1076 (todos-edit-multiline-item, todos-edit-item-date-from-calendar)
1077 (todos-edit-item-diary-inclusion)
1078 (todos-edit-category-diary-inclusion)
1079 (todos-edit-item-diary-nonmarking)
1080 (todos-edit-category-diary-nonmarking): New commands.
1081 (todos, todos-faces): Update :version.
1082 (todos-done-separator, todos-completion-ignore-case):
1083 Change default value.
1084 (todos-done-separator): Change :set function.
1085 (todos-indent-to-here): Add :validate function to :type.
1086 (todos-prefix-string, todos-mark, todos-button)
1087 (todos-sorted-column, todos-archived-only, todos-search)
1088 (todos-done, todos-done-sep): Provide full face definitions
1089 instead of inheriting.
1090 (todos-edit-buffer, todos-categories-buffer): Change from
1091 defcustom to defvar.
1092 (todos-category-beg, todos-category-done): Change from defvar to
1093 defconst.
1094 (todos-files): Check if todos-files-directory exists.
1095 (todos-default-todos-file, todos-mode-line-control, todos-print):
1096 Use todos-short-file-name.
1097 (todos-font-lock-keywords): Use todos-nondiary-marker-matcher,
1098 todos-diary-nonmarking-matcher, todos-category-string-matcher-1,
1099 todos-category-string-matcher-2, todos-diary-expired-matcher.
1100 (todos-category-select): Use todos-done-string-start, and
1101 condition search on todos-show-with-done; don't make display
1102 overlay for done items separator string if there already is one;
1103 use todos-highlight-item, require hl-line and activate
1104 hl-line-mode here in order to avoid a hang if done in todos-mode
1105 or the mode hook.
1106 (todos-update-categories-sexp): Use todos-categories-full if set,
1107 otherwise todos-categories.
1108 (todos-make-categories-list): Don't test for archive file when
1109 processing a legacy todo-mode file.
1110 (todos-check-format): Add check for todos-categories sexp.
1111 (todos-diary-item-p): Use todos-nondiary-start instead of
1112 todos-date-pattern.
1113 (todos-marked-item-p): Rename from todos-item-marked-p.
1114 (todos-read-file-name): Don't accept empty name; validate.
1115 (todos-read-category): Validate new name before prompting whether
1116 to add new category; force quit if user answers no.
1117 (todos-filter-items): Improve implementation.
1118 (todos-set-top-priorities): Rewrite as a noninteractive function
1119 using minibuffer input instead of widgets.
1120 (todos-insert-sort-button): Call todos-display-sorted with
1121 argument nil to display categories in numerical order, instead of
1122 calling todos-display-categories.
1123 (powerset-recursive): Borrow and slightly reformulate the (GDFL'd)
1124 Common Lisp powerset function at
1125 http://rosettacode.org/wiki/Power_set#Common_Lisp.
1126 (powerset-bitwise): Implement in Emacs Lisp the (GDFL'd) C
1127 powerset function at http://rosettacode.org/wiki/Power_set#C.
1128 (todos-powerset): Defalias to powerset-bitwise.
1129 (todos-mode-map): Generate from todos-key-bindings instead of
1130 listing each key definition.
1131 (todos-categories-mode-map): Add two bindings.
1132 (todos-filter-items-mode-map): Add some bindings, remove others.
1133 (todos-mode): Derive from special-mode; use todos-modes-set-3; add
1134 function setting todos-done-separator to
1135 window-configuration-change-hook.
1136 (todos-unload-hook): Remove function setting todos-done-separator
1137 from window-configuration-change-hook.
1138 (todos-archive-mode): Derive from todos-mode; use todos-modes-set-3.
1139 (todos-edit-mode): Derive from text-mode; use todos-mode-external-set.
1140 (todos-categories-mode): Derive from special-mode; use
1141 todos-mode-external-set.
1142 (todos-filter-items-mode): Derive from special-mode.
1143 (todos-quit): Save archive file if it hasn't yet been saved.
1144 (todos-display-categories): Delegate all functionality to
1145 todos-display-categories-1 and todos-update-categories-display.
1146 (todos-toggle-view-done-items): Improve implementation.
1147 (todos-highlight-item): Require hl-line.
1148 (todos-toggle-display-date-time): Remove argument and make it
1149 apply only to whole file.
1150 (todos-top-priorities, todos-diary-items, todos-regexp-items)
1151 (todos-custom-items): Use todos-special-buffer-name.
1152 (todos-add-file): Use todos-short-file-name and
1153 todos-reevaluate-defcustoms; remove validation, since it's now
1154 done in todos-read-file-name.
1155 (todos-add-category): Also update todos-categories-full if non-nil.
1156 (todos-delete-category): Delete file after confirmation if only
1157 category is deleted.
1158 (todos-move-category): Use todos-short-file-name and
1159 todos-reevaluate-defcustoms.
1160 (todos-insert-item): Fix getting date from the calendar and
1161 insertion of time string.
1162 (todos-set-date-from-calendar): Enter calendar buffer, suppressing
1163 display of diary entries.
1164 (todos-edit-multiline): Add optional argument to restrict editing
1165 buffer to current item, otherwise make entire buffer (i.e. whole
1166 file) editable.
1167 (todos-edit-quit): When whole file is editable, check file format
1168 validity before killing buffer, and if valid, recalculate
1169 categories sexp to be safe.
1170 (todos-edit-item-header): Allow choosing date from calendar.
1171 (todos-item-done): Handle marked items.
1172
11732012-09-19 Stephen Berman <stephen.berman@gmx.net>
1174
1175 Changes from 2011-12-03 (revision 109998).
1176 * calendar/todos.el (todos-item-start): Restore commented out code
1177 to prevent wrongly moving point in widened buffer.
1178
11792012-09-19 Stephen Berman <stephen.berman@gmx.net>
1180
1181 Changes from 2011-12-02 (revision 109997).
1182 * calendar/todos.el: Remove old commentary from todo-mode.el; add
1183 and revise further doc strings and comments; require cl.el at
1184 compile time for remove-duplicates; use function powerset from
1185 http://rosettacode.org/wiki/Power_set#Common_Lisp (GFDL); further
1186 code rearrangement. Add adapted version of diary-goto-entry as comment.
1187 (todos-file-top, todos-archived-categories-buffer)
1188 (todos-save-top-priorities-too, todos-toggle-item-diary-inclusion)
1189 (todos-save-top-priorities, todos-reset-separator)
1190 (todos-switch-todos-file, todos-item-string-start, todos-counts)
1191 (todos-string-count-lines, todos-string-multiline-p)
1192 (todos-display-categories-alphabetically): Remove.
1193 (todos-insert-item-ask-date, todos-insert-item-ask-date-time)
1194 (todos-insert-item-ask-date-time-for-diary)
1195 (todos-insert-item-ask-date-time-for-diary-here)
1196 (todos-insert-item-ask-date-time-here)
1197 (todos-insert-item-ask-date-maybe-notime)
1198 (todos-insert-item-ask-date-maybe-notime-for-diary)
1199 (todos-insert-item-ask-date-maybe-notime-for-diary-here)
1200 (todos-insert-item-ask-date-maybe-notime-here)
1201 (todos-insert-item-ask-date-for-diary)
1202 (todos-insert-item-ask-date-for-diary-here)
1203 (todos-insert-item-ask-date-here, todos-insert-item-ask-dayname)
1204 (todos-insert-item-ask-dayname-time)
1205 (todos-insert-item-ask-dayname-time-for-diary)
1206 (todos-insert-item-ask-dayname-time-for-diary-here)
1207 (todos-insert-item-ask-dayname-time-here)
1208 (todos-insert-item-ask-dayname-maybe-notime)
1209 (todos-insert-item-ask-dayname-maybe-notime-for-diary)
1210 (todos-insert-item-ask-dayname-maybe-notime-for-diary-here)
1211 (todos-insert-item-ask-dayname-maybe-notime-here)
1212 (todos-insert-item-ask-dayname-for-diary)
1213 (todos-insert-item-ask-dayname-for-diary-here)
1214 (todos-insert-item-ask-dayname-here, todos-insert-item-ask-time)
1215 (todos-insert-item-ask-time-for-diary)
1216 (todos-insert-item-ask-time-for-diary-here)
1217 (todos-insert-item-ask-time-here)
1218 (todos-insert-item-maybe-notime)
1219 (todos-insert-item-maybe-notime-for-diary)
1220 (todos-insert-item-maybe-notime-for-diary-here)
1221 (todos-insert-item-maybe-notime-here)
1222 (todos-insert-item-for-diary, todos-insert-item-for-diary-here)
1223 (todos-insert-item-here): Remove; all of these are now generated
1224 on loading (some with the same name, most with other names.)
1225 (todos-item-counts, todos-display-categories-alphabetically)
1226 (todos-display-categories-sorted-by-todo)
1227 (todos-display-categories-sorted-by-diary)
1228 (todos-display-categories-sorted-by-done)
1229 (todos-display-categories-sorted-by-archived): Comment out.
1230 (todos-comment-string, todos-mode-line-function)
1231 (todos-filter-function, todos-priorities-rules)
1232 (todos-visit-files-commands, todos-categories-totals-label)
1233 (todos-use-only-highlighted-region, todos-diary-nonmarking):
1234 New defcustoms.
1235 (todos-mark, todos-comment): New faces.
1236 (todos-comment-face): Corresponding new variable.
1237 (todos-categories-full, todos-global-current-todos-file)
1238 (todos-first-visit, todos-insertion-commands-args-genlist)
1239 (todos-insertion-commands-args, todos-insertion-commands-names)
1240 (todos-insertion-commands, todos-insertion-commands-arg-key-list)
1241 (todos-top-priorities-widgets, todos-date-from-calendar)
1242 (todos-item-mark, todos-categories-with-marks): New variables.
1243 (todos-mode-line-control, todos-reset-global-current-todos-file)
1244 (todos-gen-arglists, todos-insertion-command-name)
1245 (todos-insertion-key-bindings, todos-unload-hook)
1246 (todos-filter-items, todos-set-date-from-calendar)
1247 (todos-comment-string-matcher, todos-after-find-file)
1248 (todos-reset-nondiary-marker, todos-reset-done-string)
1249 (todos-reset-comment-string, todos-show-current-file)
1250 (todos-item-marked-p, todos-total-item-counts): New functions.
1251 (todos-define-insertion-command): New macro.
1252 (todos-toggle-mark-item, todos-mark-category)
1253 (todos-unmark-category, todos-set-top-priorities)
1254 (todos-merged-diary-items, todos-regexp-items)
1255 (todos-merged-regexp-items, todos-custom-items)
1256 (todos-merged-custom-items, todos-comment-done-item)
1257 (todos-archive-category-done-items, todos-unarchive-items)
1258 (todos-print-to-file): New commands.
1259 (todos-done-separator): Change :set function.
1260 (todos-done-string): Uncomment :initialize and :set functions.
1261 (todos-files): Use file-truename.
1262 (todos-show-current-file): Rename from
1263 todos-auto-switch-todos-file and change :set function accordingly.
1264 (todos-font-lock-keywords): Use todos-comment-string-matcher;
1265 change names of other matcher functions to new *-matcher.
1266 (todos-category-number): Change initial value.
1267 (todos-insertion-map): Use todos-insertion-key-bindings to
1268 generate key definitions.
1269 (todos-mode-map): Don't suppress digit keys, so they can supply
1270 prefix arguments; add new and change some existing bindings.
1271 (todos-archive-mode-map): Change a key binding.
1272 (todos-categories-mode-map): Comment out a key binding.
1273 (todos-filter-items-mode-map): Rename from
1274 todos-top-priorities-mode-map.
1275 (todos-mode): Make todos-current-todos-file,
1276 todos-categories-full, todos-categories, todos-first-visit,
1277 todos-category-number, todos-show-done-only,
1278 todos-categories-with-marks local variables and set them; add
1279 todos-show-current-file to pre-command-hook, todos-after-find-file
1280 to post-command-hook and todos-reset-global-current-todos-file to
1281 kill-buffer-hook.
1282 (todos-archive-mode): Make todos-current-todos-file,
1283 todos-categories and todos-category-number local variables and set
1284 them; add todos-after-find-file to post-command-hook.
1285 (todos-raw-mode): New derived major mode.
1286 (todos-categories-mode): Don't set font-lock-defaults and
1287 buffer-read-only; make todos-current-todos-file and
1288 todos-categories local variables and set them.
1289 (todos-filter-items-mode): Rename from todos-top-priorities-mode-map.
1290 (todos-quit): Don't reset todos-categories on quitting
1291 todos-categories-mode; handle quitting todos-filter-items-mode.
1292 (todos-show): Simplify; when visiting an archive file switch to
1293 corresponding Todos file; use todos-first-visit.
1294 (todos-view-archived-items): Simplify; call todos-category-number.
1295 (todos-show-archive): Rename from todos-switch-to-archive and
1296 adjust callers; simplify.
1297 (todos-toggle-display-date-time): Add optional argument to toggle
1298 display in entire file.
1299 (todos-top-priorities): Use todos-filter-items, which now contains
1300 the previous core of this command.
1301 (todos-merged-top-priorities, todos-diary-items):
1302 Use todos-filter-items.
1303 (todos-forward-category): Add optional argument to go to the
1304 previous category.
1305 (todos-backward-category): Use todos-forward-category.
1306 (todos-jump-to-category): Refine implementation.
1307 (todos-forward-item, todos-backward-item): Fix movement from todo
1308 to done item and vice versa.
1309 (todos-add-file): Remove argument and simplify.
1310 (todos-rename-category): Use todos-current-todos-file and
1311 todos-mode-line-function; set todos-categories with
1312 todos-set-categories.
1313 (todos-delete-category): Ask what to do if category has archived items.
1314 (todos-raise-category): Ensure modified todos-categories is added
1315 to file's categories sexp.
1316 (todos-move-category): Improve implementation, especially handling
1317 of archived categories.
1318 (todos-merge-category): Tweak; set item counts.
1319 (todos-insert-item): Improve handling of various argument values;
1320 add new argument values to control marking of diary items and to
1321 use region for item body.
1322 (todos-insert-item-from-calendar): Use todos-global-current-todos-file.
1323 (todos-delete-item, todos-edit-item-header): Handle marked items.
1324 (todos-edit-item): Incorporate functionality of removed
1325 todos-string-multiline-p.
1326 (todos-edit-multiline): Use set-window-buffer instead of
1327 switch-to-buffer.
1328 (todos-edit-quit): Don't save on quitting; use todos-show instead
1329 of todos-category-select.
1330 (todos-raise-item-priority): Add argument to lower priority;
1331 improve handling of top priority items in todos-filter-items-mode;
1332 restore marks.
1333 (todos-lower-item-priority): Use todos-raise-item-priority.
1334 (todos-set-item-priority): Increment maximum number if item is new.
1335 (todos-move-item): Handle marked items; delay changing category
1336 moved from till after movement to avoid restoring if user cancels
1337 before insertion.
1338 (todos-item-done): Add optional argument to insert comment; fix
1339 item counts and update sexp.
1340 (todos-item-undo): Fix item counts and update.
1341 (todos-archive-done-item-or-items): Rename from
1342 todos-archive-done-items; add optional argument to archive all
1343 items in category; handle marked items.
1344 (todos-unarchive-category): Use todos-unarchive-items.
1345 (todos-toggle-diary-inclusion): Incorporate functionality of
1346 removed todos-toggle-item-diary-inclusion; handle marked items.
1347 (todos-print): Add optional argument to print to file.
1348 (todos-done-string-start): Don't use todos-nondiary-start.
1349 (todos-date-string-matcher, todos-time-string-matcher)
1350 (todos-done-string-matcher, todos-category-string-matcher): Rename
1351 from *-match and adjust callers.
1352 (todos-wrap-and-indent): Use set instead of setq for local variables.
1353 (todos-prefix-overlays): Improve overlay handling.
1354 (todos-reset-categories): Fix and complete implementation.
1355 (todos-toggle-show-current-file): Rename from
1356 todos-toggle-switch-todos-file-noninteractively.
1357 (todos-category-select): Use todos-mode-line-function.
1358 (todos-item-start): Comment out code used by removed function.
1359 (todos-remove-item): Handle presence of both prefix/number and
1360 mark overlays.
1361 (todos-get-count): Simplify.
1362 (todos-set-count): Change argument list and adjust callers; simplify.
1363 (todos-set-categories): Handle new archive files; use
1364 todos-categories-full and todos-ignore-archived-categories.
1365 (todos-truncate-categories-list): Use todos-categories-full.
1366 (todos-update-categories-sexp): Use kill-region instead of
1367 kill-line; use todos-categories-full.
1368 (todos-read-file-name): Add argument to require existing file and
1369 adjust callers; use file-truename.
1370 (todos-read-category): Remove argument to require existing
1371 category and delegate it to completing-read in function body.
1372 (todos-validate-category-name): Make empty string prompt only for
1373 initial category name.
1374 (todos-read-date): Use = instead of eq for testing if month = 13,
1375 and if it is, set monthname to *.
1376 (todos-display-categories): Use todos-global-current-todos-file;
1377 use set-window-buffer instead of switch-to-buffer; add a line
1378 showing item count totals.
1379 (todos-padded-string): Use the longest of category name or label.
1380 (todos-descending-counts): Rename from
1381 todos-descending-counts-store and adjust users.
1382 (todos-insert-category-line): Adjust format; use mapconcat; kill
1383 buffer after jumping to category.
1384
13852012-09-18 Stephen Berman <stephen.berman@gmx.net>
1386
1387 Changes from 2011-05-16 (revision 109996).
1388 * calendar/todos.el Add and revise various doc strings, remove
1389 further commented out code; add further comments; further code
1390 rearrangement.
1391 (todos-file-do, todos-archive-file, todos-mode-hook)
1392 (todos-edit-mode-hook, todos-exclusion-start, todos-exclusion-end)
1393 (todos-view-archive, todos-search-string)
1394 (todos-jump-to-category-noninteractively, todos-initial-setup):
1395 Remove.
1396 (todos-files): Remove this defcustom.
1397 (todos-initial-category, todos-display-categories-first)
1398 (todos-auto-switch-todos-file, todos-default-todos-file)
1399 (todos-categories-category-label, todos-categories-todo-label)
1400 (todos-categories-diary-label, todos-categories-done-label)
1401 (todos-categories-archived-label)
1402 (todos-categories-number-separator, todos-categories-align)
1403 (todos-ignore-archived-categories, todos-nondiary-marker):
1404 New defcustoms.
1405 (todos-prefix, todos-done-separator, todos-file-top)
1406 (todos-categories-buffer, todos-archived-categories-buffer)
1407 (todos-edit-buffer, todos-always-add-time-string, todos-button):
1408 Change default value.
1409 (todos-done-string): Add todos-reset-done-string as :set function,
1410 but keep this commented out.
1411 (todos-files, todos-archives, todos-insertion-map)
1412 (todos-category-done, todos-nondiary-start, todos-nondiary-end)
1413 (todos-show-done-only, todos-date-string-start)
1414 (todos-done-string-start): New variables.
1415 (todos-files-directory, todos-files-function, todos-merged-files)
1416 (todos-prompt-merged-files, todos-files, todos-modes-set-1)
1417 (todos-modes-set-2, todos-reset-done-string, todos-reset-categories)
1418 (todos-toggle-switch-todos-file-noninteractively)
1419 (todos-switch-todos-file, todos-counts, todos-get-count)
1420 (todos-set-count, todos-set-categories)
1421 (todos-truncate-categories-list, todos-update-categories-sexp)
1422 (todos-read-file-name, todos-sort, todos-display-sorted)
1423 (todos-label-to-key, todos-insert-sort-button): New functions.
1424 (todos-display-categories-sorted-by-todo)
1425 (todos-display-categories-sorted-by-diary)
1426 (todos-display-categories-sorted-by-done)
1427 (todos-display-categories-sorted-by-archived)
1428 (todos-update-merged-files, todos-switch-to-archive)
1429 (todos-choose-archive, todos-merged-top-priorities)
1430 (todos-jump-to-category-other-file, todos-clear-matches)
1431 (todos-add-file, todos-change-default-file, todos-move-category)
1432 (todos-merge-category, todos-merge-categories)
1433 (todos-edit-item-time, todos-move-item-to-file)
1434 (todos-unarchive-category, todos-toggle-item-diary-nonmarking)
1435 (todos-toggle-diary-nonmarking): New commands.
1436 (todos-toggle-show-done-only): New command replacing todos-view-archive.
1437 (todos-faces): New defgroup; use in all face definitions.
1438 (todos-sorted-column, todos-archived-only, todos-search): New faces.
1439 (todos-font-lock-keywords): Use subexpression 1 with matcher
1440 todos-category-string-match.
1441 (todos-mode-map, todos-archive-mode-map, todos-edit-mode-map)
1442 (todos-categories-mode-map): Add new key bindings; change some
1443 existing bindings.
1444 (todos-top-priorities-mode-map): New keymap.
1445 (todos-menu): Add submenues and new entries.
1446 (auto-mode-alist): Add extension of Todos and Todos archive files.
1447 (todos-mode, todos-archive-mode): Make derived mode; use
1448 todos-modes-set-1, todos-modes-set-2, todos-auto-switch-todos-file
1449 and todos-switch-todos-file; make todos-show-done-only local
1450 variable.
1451 (todos-edit-mode): Make derived mode; use todos-modes-set-1.
1452 (todos-categories-mode): Make derived mode.
1453 (todos-top-priorities-mode): New derived major mode.
1454 (todos-save): Remove unused code.
1455 (todos-quit): Handle todos-categories-mode; save archive buffer.
1456 (todos-show): Add optional argument to prompt for a Todos file; if
1457 called interactively or with prefix arg or from an archive, don't
1458 make a no-op but reset todos-current-todos-file, todos-categories
1459 and todos-category-number; use todos-read-file-name,
1460 todos-display-categories-first, todos-ignore-archived-categories.
1461 (todos-display-categories): Change argument name; refactor code
1462 for inserting table labels and lines, using
1463 todos-ignore-archived-categories, todos-sort,
1464 todos-categories-number-separator, todos-insert-sort-button,
1465 todos-categories-*-labels, and todos-insert-category-line.
1466 (todos-display-categories-alphabetically): Use todos-display-sorted.
1467 (todos-toggle-view-done-items): Use todos-done-string-start and
1468 todos-get-count.
1469 (todos-toggle-display-date-time): Use todos-done-string-start.
1470 (todos-top-priorities): Remove autoload cookie; partially rewrite:
1471 new argument list; allow combining top priorities of multiple
1472 Todos files; change display to include category (and file) name as
1473 part of item header; use todos-top-priorities-mode.
1474 (todos-diary-items): Reimplement using only todos-top-priorities.
1475 (todos-forward-category, todos-backward-category): Adjust to
1476 1-based numbering of categories; move point to top of category.
1477 (todos-jump-to-category): Rewrite, adding optional arguments to
1478 provide a category in non-interactive uses and to prompt for which
1479 Todos file to jump to.
1480 (todos-search): Reimplement; highlight each match as found, say
1481 how many matches remain and prompt whether to go to next one; at
1482 end of search prompt whether to remove highlighting.
1483 (todos-add-category): Remove autoload cookie; assign new category
1484 the highest category number; associate zero-initialized vector of
1485 item counts, instead of property list, with new category; use
1486 todos-validate-category-name and todos-update-categories-sexp.
1487 (todos-rename-category): Use todos-validate-category-name and
1488 todos-update-categories-sexp; take archive files into account.
1489 (todos-delete-category): Use todos-get-count and
1490 todos-update-categories-sexp, let-bind variable that were
1491 mistakenly global; use delete-region instead of kill-region;
1492 adjust to 1-based numbering of categories; move point to top of
1493 category.
1494 (todos-raise-category): Handle item count vectors; use
1495 todos-insert-category-line and todos-update-categories-sexp.
1496 (todos-insert-item): Use nil time-string argument to omit time
1497 string; use todos-nondiary-start and todos-nondiary-end and
1498 todos-update-categories-sexp; if category named to insert into
1499 does not exist, add it; take new diary items into account.
1500 (todos-insert-item-ask-date, todos-insert-item-ask-date-time)
1501 (todos-insert-item-ask-date-time-for-diary)
1502 (todos-insert-item-ask-date-time-for-diary-here)
1503 (todos-insert-item-ask-date-time-here)
1504 (todos-insert-item-ask-date-maybe-notime)
1505 (todos-insert-item-ask-date-maybe-notime-for-diary)
1506 (todos-insert-item-ask-date-maybe-notime-for-diary-here)
1507 (todos-insert-item-ask-date-maybe-notime-here)
1508 (todos-insert-item-ask-date-for-diary)
1509 (todos-insert-item-ask-date-for-diary-here)
1510 (todos-insert-item-ask-date-here, todos-insert-item-ask-dayname)
1511 (todos-insert-item-ask-dayname-time)
1512 (todos-insert-item-ask-dayname-time-for-diary)
1513 (todos-insert-item-ask-dayname-time-for-diary-here)
1514 (todos-insert-item-ask-dayname-time-here)
1515 (todos-insert-item-ask-dayname-maybe-notime)
1516 (todos-insert-item-ask-dayname-maybe-notime-for-diary)
1517 (todos-insert-item-ask-dayname-maybe-notime-for-diary-here)
1518 (todos-insert-item-ask-dayname-maybe-notime-here)
1519 (todos-insert-item-ask-dayname-for-diary)
1520 (todos-insert-item-ask-dayname-for-diary-here)
1521 (todos-insert-item-ask-dayname-here, todos-insert-item-ask-time)
1522 (todos-insert-item-ask-time-for-diary)
1523 (todos-insert-item-ask-time-for-diary-here)
1524 (todos-insert-item-ask-time-here)
1525 (todos-insert-item-maybe-notime)
1526 (todos-insert-item-maybe-notime-for-diary)
1527 (todos-insert-item-maybe-notime-for-diary-here)
1528 (todos-insert-item-maybe-notime-here)
1529 (todos-insert-item-for-diary, todos-insert-item-for-diary-here):
1530 New insertion commands.
1531 (todos-insert-item-from-calendar): Use todos-current-todos-file.
1532 (todos-delete-item): Handle diary items;
1533 use todos-update-categories-sexp.
1534 (todos-edit-item): Check if point is with item string;
1535 use read-string instead of read-from-minibuffer;
1536 use todos-date-string-start; after editing put point at start of
1537 item text.
1538 (todos-edit-multiline): Narrow to item before invoking
1539 todos-edit-mode; show key binding of todos-edit-quit in a message.
1540 (todos-edit-quit): Use todos-save; kill buffer.
1541 (todos-edit-item-header): Add optional argument to prompt for
1542 editing only date string or only time string;
1543 use todos-date-string-start.
1544 (todos-edit-item-date, todos-edit-item-date-is-today)
1545 (todos-raise-item-priority, todos-lower-item-priority): Rename
1546 from todos-{raise, lower}-item and make them DTRT in
1547 todos-top-priorities-mode.
1548 (todos-set-item-priority): Make interactive; use todos-get-count
1549 and todos-insert-with-overlays; interactively, just relocate the
1550 item within its category.
1551 (todos-move-item): Add optional argument to prompt for a category
1552 in another Todos file; handle diary items; fix restoration after
1553 cancelling before inserting.
1554 (todos-item-done): Handle diary items; simplify handling of
1555 insertion in done items section.
1556 (todos-item-undo): Handle diary items.
1557 (todos-archive-done-items): Adjust to new handling of archive
1558 files (in parallel with Todos files); handle diary items; use
1559 todos-done-string-start.
1560 (todos-toggle-item-diary-inclusion): Use todos-nondiary-start,
1561 todos-nondiary-end and todos-item-counts.
1562 (todos-toggle-diary-inclusion): Use todos-category-done instead of
1563 todos-category-end.
1564 (todos-print): Remove autoload cookie; rewrite to make overlays,
1565 line wrapping and wrap prefixes printable.
1566 (todos-date-pattern): Make parenthesized groups shy.
1567 (todos-date-string-match): Use todos-date-string-start; make
1568 todos-date-pattern an explicitly numbered group.
1569 (todos-time-string-match): Use todos-date-string-start.
1570 (todos-done-string-match): Use todos-done-string-start.
1571 (todos-category-string-match): Rewrite to match new category and
1572 category+filename patterns in todos-top-priorities-mode.
1573 (todos-prefix-overlays): Use todos-done-string-start and
1574 todos-category-done.
1575 (todos-reset-prefix): Handle archive files; restore point after
1576 changing prefix.
1577 (todos-reset-separator): Handle archive files.
1578 (todos-category-number): Make category number one more than its
1579 list index.
1580 (todos-current-category): Adjust to 1-based numbering of categories.
1581 (todos-category-select): Simplify handling of done items and done
1582 separator string overlay.
1583 (todos-item-start): Use todos-date-string-start and
1584 todos-done-string-start.
1585 (todos-item-start, todos-item-end): Fix wrong parenthesizing.
1586 (todos-item-string): Restore point after getting item bounds; use
1587 buffer-substring-no-properties.
1588 (todos-done-item-p): Use todos-done-string-start.
1589 (todos-make-categories-list): Add optional argument to force
1590 looping through file to get categories and their item counts,
1591 otherwise set todos-categories from sexp in first line; use
1592 vectors of item counts instead of plists; count diary items.
1593 (todos-item-counts): Use todos-counts, todos-set-counts,
1594 todos-get-counts, and todos-update-categories-sexp instead of
1595 getting and setting properties; handle diary items.
1596 (todos-read-category): Add argument to set prompt; don't offer
1597 default category.
1598 (todos-validate-category-name): Rename from
1599 todos-check-category-name; take into account whether there are
1600 already categories or not.
1601 (todos-read-date): Accept `*' as an unspecified month, day, or year.
1602 (todos-padded-string): Accommodate new structure of
1603 todos-categories as alists; use todos-categories-align.
1604 (todos-descending-counts-store): New variable.
1605 (todos-insert-category-line): Rename from
1606 todos-insert-category-name and reimplement using labels and
1607 todos-get-counts instead of properties; use
1608 todos-ignore-archived-categories; highlight sorted column.
1609
16102012-09-14 Stephen Berman <stephen.berman@gmx.net>
1611
1612 Changes from 2010-07-09 (revision 109995).
1613 * calendar/todos.el Remove lots of commented out code; add various
1614 comments; further code rearrangement.
1615 (todos-insert-item-here-ask-date-time)
1616 (todos-insert-item-ask-date-time)
1617 (todos-insert-item-ask-dayname-time)
1618 (todos-insert-item-for-diary)
1619 (todos-insert-item-for-diary-ask-date-time)
1620 (todos-make-categories-alist, todos-categories-alist): Remove.
1621 (todos-categories-list): Comment out.
1622 (todos-make-categories-list): New function replacing
1623 todos-make-categories-alist, using category plists to get item
1624 counts and taking archive into account.
1625 (todos-current-todos-file): New variable.
1626 (todos-mode-map): Update key bindings.
1627 (todos-save): Add as comment code to make sure todos-categories
1628 sexp is current on saving.
1629 (todos-quit): Call todos-show on quitting Todos archive buffer.
1630 (todos-show): If todos-current-todos-file is not set to Todos
1631 file, set it as a new file; set todos-categories from
1632 todos-make-categories-alist.
1633 (todos-display-categories): Use a different display format for
1634 archive file; put point initially on the first button.
1635 (todos-toggle-view-done-items): Check the category's `done'
1636 property to determine if there are done items.
1637 (todos-view-archive): Set todos-current-todos-file to the archive
1638 file; jump from the Todos file to the same category in the
1639 archive, if it exists, else jump to the first category; use
1640 message instead of error.
1641 (todos-add-category): Intern a special symbol for the new category
1642 and set its property list to holds counts of the numbers of todo,
1643 done and archived items in the category; assign the new category
1644 the current highest category number.
1645 (todos-rename-category): Don't use todos-categories-alist.
1646 (todos-delete-category): Check the category's `todo' and `done'
1647 properties to determine if it is empty; ensure that the end of the
1648 last category is found; after deleting the category, empty its
1649 plist and unintern its special symbol.
1650 (todos-insert-item-here): Fix argument list of todos-insert-item.
1651 (todos-delete-item, todos-raise-item, todos-lower-item):
1652 Use message instead of error.
1653 (todos-move-item): If the category to be moved to does not exist,
1654 add it as a new category.
1655 (todos-item-done, todos-reset-separator):
1656 Use todos-category-select instead of todos-show.
1657 (todos-archive-done-items): Make buffer writeable; conditionalize
1658 search for end of category; save after adding to archive in case
1659 the file is new, so it can be found.
1660 (todos-category-select): Wrap search in if instead of or+and;
1661 don't hide done items in an archive.
1662 (todos-set-item-priority): Check the category's `todo'
1663 property to determine if there are not done todo items.
1664 (todos-jump-to-category-noninteractively): Just switch to buffer
1665 visiting todos-current-todos-file, since this can be either a
1666 Todos file or an archive.
1667 (todos-item-counts): Use category's plist instead of an alist.
1668 (todos-longest-category-name-length): Argument is now a list of
1669 category names, not an alist, so just test each element, not each
1670 element's the car.
1671 (todos-padded-string): Use todos-categories instead of
1672 todos-categories-alist.
1673 (todos-insert-category-name): Use category plist to get item
1674 counts; take archived items into account.
1675
16762012-09-13 Stephen Berman <stephen.berman@gmx.net>
1677
1678 Changes from 2010-06-18 (revision 109994).
1679 * calendar/todos.el: Numerous spelling and comment fixes, doc
1680 string fixes to conform with checkdoc, further rearrangement of
1681 definitions, etc.
1682 (todos-previous-line, todos-previous-answer)
1683 (todos-insert-item-ask-date, todos-change-date)
1684 (todos-date-nodayname-pattern, todos-dayname-date-pattern)
1685 (todos-count-items-in-category, todos-count-all-items): Remove.
1686 (todos-update-numbered-prefix, todos-item-start-overlays)
1687 (todos-add-item-non-interactively): Comment out, also in uses.
1688 (todos-done-separator): Change default value.
1689 (todos-always-add-time-string): Rename from todos-add-time-string
1690 and adjust uses.
1691 (todos-read-category): Rename from todos-completing-read and
1692 adjust callers; use todos-current-category.
1693 (todos-make-categories-alist): Rename from function
1694 todos-categories-alist.
1695 (todos-categories-alist): New variable.
1696 (todos-indent-to-here): New defcustom.
1697 (todos-button): New face.
1698 (todos-display-categories-alphabetically, todos-raise-category)
1699 (todos-lower-category, todos-insert-item-for-diary-ask-date-time)
1700 (todos-insert-item-here-ask-date-time)
1701 (todos-insert-item-ask-date-time)
1702 (todos-insert-item-ask-dayname-time): New commands.
1703 (todos-edit-item-header): New command replacing todos-change-date.
1704 (todos-category-number, todos-indent, todos-item-counts)
1705 (todos-check-category-name, todos-read-date, todos-read-dayname)
1706 (todos-read-time, todos-padded-string)
1707 (todos-insert-category-name): New functions.
1708 (todos-set-item-priority): New function replacing
1709 todos-add-item-non-interactively.
1710 (todos-mode-map): Remap newline to newline-and-indent.
1711 (todos-edit-mode-map): Make sparse keymap; remap newline to
1712 newline-and-indent.
1713 (todos-categories-mode-map): New keymap.
1714 (todos-mode, todos-edit-mode): Make indent-line-function local
1715 variable and set to todos-indent.
1716 (todos-categories-mode): New major mode.
1717 (todos-display-categories): List categories initially in their
1718 numerical order; add optional argument to switch to alphabetical
1719 listing.
1720 (todos-toggle-view-done-items): Simplify implementation.
1721 (todos-toggle-display-date-time): Fix regexp search string.
1722 (todos-backward-item, todos-forward-item): Use variable
1723 todos-item-start.
1724 (todos-add-category): Use todos-check-category-name and
1725 todos-categories-alist.
1726 (todos-rename-category): Use todos-current-category,
1727 todos-check-category-name and todos-categories-alist.
1728 (todos-delete-category): Use todos-check-category-name and
1729 todos-categories-alist and take done items into account.
1730 (todos-insert-item): Use separate arguments to handle insertion of
1731 date/dayname and time strings, add new argument to mark item for
1732 diary inclusion, use new todos-read-* functions,
1733 todos-set-item-priority and todos-item-counts.
1734 (todos-insert-item-here, todos-insert-item-for-diary)
1735 (todos-insert-item-from-calendar): Adapt to new version of
1736 todos-insert-item.
1737 (todos-delete-item, todos-item-done): Use todos-item-counts.
1738 (todos-edit-item): Indent newlines inserted by C-q C-j if nonspace
1739 char follows.
1740 (todos-lower-item): Ensure only not-done items can be lowered.
1741 (todos-move-item): Use todos-current-category, todos-read-category
1742 and todos-item-counts.
1743 (todos-archive-done-items): Use todos-current-category and
1744 todos-item-counts; fix regexp search string.
1745 (todos-item-undo): Use todos-current-category,
1746 todos-set-item-priority, todos-insert-with-overlays and
1747 todos-item-counts; restore if user quits before inserting undone
1748 item.
1749 (todos-date-pattern): Rewrite without using
1750 todos-date-nodayname-pattern and todos-dayname-date-pattern.
1751 (todos-date-string-match): Do not make todos-date-pattern an
1752 unnumbered group.
1753 (todos-time-string-match): Make todos-date-pattern a shy group.
1754 (todos-wrap-and-indent): Use todos-indent-to-here.
1755 (todos-reset-prefix): Revert to using todos-show instead of
1756 todos-category-select.
1757 (todos-prefix-overlays): Fix numbering of done items and updating
1758 of prefix.
1759 (todos-category-select): Use todos-current-category; fix display
1760 of separator string; don't move point to top of category.
1761 (todos-jump-to-category-noninteractively): Use todos-category-number.
1762 (todos-insert-with-overlays): Use todos-item-start unconditionally.
1763 (todos-item-start): New variable.
1764 (todos-item-start): Use it to define this function.
1765 (todos-item-end): Adjust if item is last unfinished one before
1766 displayed done items.
1767 (todos-remove-item): Use todos-item-start and todos-item-end
1768 instead of todos-forward-item and todos-backward-item.
1769 (todos-longest-category-name-length): Add argument for list of
1770 categories.
1771
17722012-09-13 Stephen Berman <stephen.berman@gmx.net>
1773
1774 Changes from 2010-05-25 (revision 109993).
1775 * calendar/todos.el: Comment out calendar require, since diary-lib
1776 requires calendar. Rearrange file to group definitions according
1777 to their use (types of commands, internal functions, etc.)
1778 (todos-file-done, todos-insert-threshold, todos-remove-separator)
1779 (todos-date-string, todos-time-string, todos-check-overlay)
1780 (todos-show-paren-hack, todos-file-item, todos-more-important-p):
1781 Comment out.
1782 (todos-current-date, todos-item-end-overlays)
1783 (todos-list-categories): Remove.
1784 (todos-item-end): Remove (the variable, not the function).
1785 (todos-prefix-overlays): Rename from todos-item-overlays and adjust
1786 callers.
1787 (todos-done-separator, todos-done-string, todos-show-with-done)
1788 (todos-files, todos-archive-file, todos-categories-buffer)
1789 (todos-archived-categories-buffer, todos-wrap-lines)
1790 (todos-line-wrapping-function): New defcustoms.
1791 (todos-done, todos-done-sep): New faces.
1792 (todos-done-face, todos-done-sep-face): Corresponding new variables.
1793 (todos-search-string, todos-date-nodayname-pattern)
1794 (todos-dayname-date-pattern, todos-date-pattern): New variables.
1795 (todos-done-string-match, todos-category-string-match)
1796 (todos-check-format, todos-wrap-and-indent, todos-reset-separator)
1797 (todos-current-category, todos-count-items-in-category)
1798 (todos-done-item-p, todos-categories-alist, todos-count-all-items)
1799 (todos-longest-category-name-length): New functions.
1800 (todos-categories-list): New buffer-specific function replacing
1801 todos-list-categories.
1802 (todos-toggle-item-numbering, todos-toggle-view-done-items)
1803 (todos-search, todos-view-archive, todos-diary-items)
1804 (todos-toggle-display-date-time, todos-insert-item-no-time)
1805 (todos-insert-item-ask-date, todos-insert-item-for-diary)
1806 (todos-insert-item-from-calendar, todos-edit-quit)
1807 (todos-change-date, todos-item-done, todos-archive-done-items)
1808 (todos-item-undo): New commands.
1809 (todos-archive-mode): New major mode.
1810 (todos-archive-mode-map, todos-edit-mode-map): New keymaps.
1811 (todos-category-beg): Change value.
1812 (todos-number-prefix): Change default value.
1813 (todos-edit-buffer): Change from defvar to defcustom.
1814 (todos-font-lock-keywords): Use todos-done-string-match and
1815 todos-category-string-match.
1816 (todos-backward-item, todos-forward-item): Use todos-done-string
1817 and todos-date-pattern.
1818 (todos-display-categories): Reimplement using buttons from
1819 button.el instead of widgets.
1820 (todos-top-priorities): Use with-current-buffer; take done items
1821 into account; ensure buffers gets fontified.
1822 (todos-add-category): Ensure new category does not begin with
1823 empty lines.
1824 (todos-jump-to-category): Use todos-category-select instead of
1825 todos-show.
1826 (todos-rename-category): Prompt for new name in body instead of in
1827 interactive spec.
1828 (todos-insert-item): Don't insert in done items section of
1829 category. Add two optional arguments to control insertion: (i) to
1830 insert near point without prompting for priority; (ii) to use
1831 defaults for date and time strings, to prompt for these, or to
1832 choose date from the Calendar.
1833 (todos-insert-item-here): Reimplement using todos-insert-item.
1834 (todos-delete-item): Don't move point after deleting last item.
1835 (todos-raise-item, todos-lower-item): Take done items into account.
1836 (todos-move-item): Don't move done items; update item numbering;
1837 restore if user quits before inserting moved item.
1838 (todos-print): Prompt for confirmation to print.
1839 (todos-reset-prefix): Search backward from end of file instead of
1840 forward from top.
1841 (todos-jump-to-category-noninteractively): Take Todos archive into
1842 account.
1843 (todos-category-select): Show or hide done items according to
1844 todos-show-with-done; if shown, coordinate separator and prefix
1845 overlays.
1846 (todos-add-item-non-interactively): Replace binary insertion
1847 algorithm with prompting for numerical priority.
1848 (todos-insert-with-overlays): Remove use of variable todos-item-end.
1849 (todos-item-start): Take done items into account; use
1850 todos-date-pattern.
1851 (todos-item-end): Reimplement using todos-forward-item.
1852 (todos-remove-item): Reimplement using todos-forward-item and
1853 todos-backward-item; redo overlay handling.
1854 (todos-mode-map): Add some new key bindings and change numerous
1855 existing bindings; use "i" as prefix key for item insertion
1856 commands.
1857 (todos-mode): Use todos-wrap-lines and delegate word-wrap and
1858 wrap-prefix settings to todos-wrap-and-indent; add to invisibility
1859 spec; set buffer-read-only to t and consequently let-bind this
1860 variable in all Todos commands that change buffer content.
1861 (todos-edit-mode): Make an indepent mode, not derived from text-mode.
1862 (todos-save): Don't save top priorities buffer.
1863 (todos-show): Make a no-op if called interactively in narrowed
1864 Todos mode, since, also to work around item prefix reduplication
1865 bug with show-paren-mode enabled; use todos-categories-list.
1866
18672012-09-12 Stephen Berman <stephen.berman@gmx.net>
1868
1869 Changes from 2009-11-07 (revision 109992).
1870 * calendar/todos.el: Comment out time-stamp require; require
1871 calendar and diary-lib.
1872 (todos-prefix): Change default value and doc string to reflect new
1873 meaning; add :initialize and :set functions.
1874 (todos-time-string-format, todos-entry-prefix-function)
1875 (todos-initials, todos-entry-timestamp-initials)
1876 (todos-prefix-face, todos-category-sep, todos-category-end)
1877 (todos-cp): Comment out.
1878 (todos-prefix-string): Inherit from font-lock-comment-face.
1879 (todos-item-header, todos-item-header-face): Remove.
1880 (todos-date, todos-time): New faces.
1881 (todos-date-face, todos-time-face): Corresponding new variables.
1882 (todos-add-time-string, todos-include-in-diary)
1883 (todos-exclusion-start, todos-exclusion-end, todos-number-prefix):
1884 New defcustoms.
1885 (todos-item-end, todos-item-start-overlays)
1886 (todos-item-end-overlays): New variables.
1887 (todos-date-string-match, todos-time-string-match): New functions.
1888 (todos-font-lock-keywords): Use them.
1889 (todos-current-date, todos-date-string, todos-time-string)
1890 (todos-toggle-item-diary-inclusion, todos-toggle-diary-inclusion)
1891 (todos-reset-prefix, todos-update-numbered-prefix)
1892 (todos-check-overlay, todos-item-overlays)
1893 (todos-insert-with-overlays, todos-show-paren-hack): New functions.
1894 (todos-highlight-item): New command.
1895 (todos-category-beg): Change value.
1896 (todos-category-select): Use todos-category-beg and todos-item-overlays.
1897 (todos-backward-item): Add optional count argument; use it and
1898 todos-item-start.
1899 (todos-forward-item): Use todos-check-overlay, todos-item-start
1900 and variable todos-item-end.
1901 (todos-edit-item, todos-delete-item): Use todos-number-prefix,
1902 todos-update-numbered-prefix, todos-item-overlays.
1903 (todos-add-category, todos-rename-category)
1904 (todos-list-categories): Use new category format.
1905 (todos-delete-category): Allow deleting non-empty category;
1906 use new category format.
1907 (todos-add-item-non-interactively): Comment out unnecessary
1908 save-excursion; use todos-insert-with-overlays.
1909 (todos-insert-item): Comment out unnecessary save-excursion; use
1910 new item format for date/time header and diary inclusion marking.
1911 (todos-insert-item-here): Use new item format for date/time header
1912 and diary inclusion marking; use todos-insert-with-overlays.
1913 (todos-raise-item): Make a no-op if point is on an empty line; use
1914 todos-insert-with-overlays.
1915 (todos-lower-item): Use todos-insert-with-overlays.
1916 (todos-top-priorities): Move call to todos-show inside
1917 save-excursion; add save-current-buffer after save-restriction.
1918 (todos-item-start): Use variable todos-item-end.
1919 (todos-item-end): Use todos-check-overlay and variable todos-item-end.
1920 (todos-remove-item): Take item overlays into account.
1921 (todos-mode): Change calculation of wrap-prefix; make
1922 hl-line-range-function a local variable and set it to highlight
1923 todo item.
1924 (todos-show): Ensure point stays at top of category.
1925
19262012-09-12 Stephen Berman <stephen.berman@gmx.net>
1927
1928 Changes from 2009-07-04 (revision 109991).
1929 * calendar/todos.el (todos-window-configuration): Comment out.
1930 (todos-display-categories): Comment out use of
1931 todos-window-configuration; use switch-to-buffer instead of
1932 pop-to-buffer.
1933 (todos-jump-to-category-noninteractively): Comment out use of
1934 todos-window-configuration.
1935 (todos-edit-item): Don't allow editing of date/time item header.
1936 (todos-insert-item, todos-insert-item-here): Insert date/time
1937 header in front of new item string.
1938 (todos-mode): Tweak wrap-prefix.
1939
19402012-09-12 Stephen Berman <stephen.berman@gmx.net>
1941
1942 Changes from 2009-06-26 (revision 109989).
1943 * calendar/todos.el (todos-file-do, todos-file-done):
1944 Change default location to directory "~/.emacs.d/".
1945 (todos-completion-ignore-case, todos-categories-buffer):
1946 New defcustoms.
1947 (todos-prefix-string, todos-item-header): New faces.
1948 (todos-prefix-face, todos-item-header-face): Corresponding
1949 new variables.
1950 (todos-rename-category, todos-delete-category)
1951 (todos-display-categories, todos-move-item): New commands.
1952 (todos-mode-map): Add key bindings for new commands and for
1953 todos-add-category, which had no key binding.
1954 (todos-jump-to-category-noninteractively): New function.
1955 (todos-top-priorities): Comment out code using a previously
1956 deleted variable.
1957 (todos-completing-read): Allow SPC to insert a space when entering
1958 a new category name; use todos-completion-ignore-case.
1959 (todos-font-lock-keywords, todos-window-configuration):
1960 New variables.
1961 (todos-mode): Make mode-name "TODOS"; make font-lock-defaults,
1962 word-wrap, and wrap-prefix local variables.
1963
19642012-09-12 Stephen Berman <stephen.berman@gmx.net>
1965
1966 Changes from 2009-02-16 (revision 109988).
1967 * calendar/todos.el (todos-list-categories): Fix typos.
1968 (todos-show): Ensure file is in todos-mode.
1969
19702012-09-12 Stephen Berman <stephen.berman@gmx.net>
1971
1972 Changes from 2009-02-12 (revision 109987).
1973 * calendar/todos.el (todos-header): Remove defvar.
1974 (todos-add-category): Comment out code that inserts and updates
1975 the file local variables first line of the file todos-file-do.
1976 (todos-list-categories): New function.
1977 (todos-show): Use it; remove use of a previously deleted variable.
1978
19792012-09-11 Stephen Berman <stephen.berman@gmx.net>
1980
1981 Changes from 2009-02-12 (revision 109986).
1982 * calendar/todos.el: New file. This is a copy of todo-mode.el
1983 from revision 94343 except for the following changes: replace all
1984 occurrences of the namespace prefix "todo-" with "todos-", delete
1985 the defvar todo-cats (the old name of todo-categories) and its use
1986 in todos-add-category, delete all defaliases of old command names.