Essentially,
ls)
shift
exec "$TODO_SH" listfile "$TODO_FILE" "$@"
;;
lsa)
shift
cat "$TODO_FILE" "$DONE_FILE" > "$TMP_FILE"
exec $TODO_SH listfile "$TMP_FILE" "$@"
;;
lsp)
shift ## was "listpri"
shift ## was priority
exec $TODO_SH listfile "$TODO_FILE" "$pri" "$@"
;;;
Also adds the following features:
1. Numbers are padded with up to five zeros (but only the minimum
necessary), letting you list up to 999,999 tasks with the same
formatting.
2. All ls-family commands hide context, priority, and project when
the user sets those hide options.
3. Quoted arguments are passed on to grep as whole arguments,
enabling the following:
$ todo.sh ls buy a | head -n2
34 Buy a portable gas can
22 Buy door
$ todo.sh ls "buy a"
34 Buy a portable gas can
4. listfile can take an absolute path. Any filename starting with a
"/" will be treated as an absolute path; any other filename will
be treated as relative to $TODO_DIR. Since a leading "/" would be
striped by the operating system anyway under the old code, this
is fully backward compatible.
Contains the following regressions:
1. The ls verbose line count messages are more generic.
2. There is no verbose line count line for lspri.
3. I don't think listfile's absolute path feature will work on
Windows. If it doesn't, either this patch needs to be thrown
away, listall needs to be rewritten, or (my preference) $TMP_FILE
needs to set as relative to $TODO_DIR.
23 KiB
Executable File
23 KiB
Executable File