Fix behavior of --todo with an optional argument

The previous behavior of --todo was to always only list uncompleted
items, unless zero was specified as additional argument. Restore and
document this behavior.

Also, fix two tests that failed because the --todo output is now sorted.

Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
This commit is contained in:
Lukas Fleischer 2016-01-28 18:34:42 +01:00
parent 41389abd55
commit 03c4465baf
5 changed files with 12 additions and 10 deletions

View File

@ -183,10 +183,10 @@ in read-only mode, all changes from this session will be lost without warning!
*-t*[num], *--todo*[=num]::
Print the *todo* list and exit. If the optional number 'num' is given, then
only todos having a priority equal to 'num' will be returned. The priority
number must be between 1 (highest) and 9 (lowest). It is also possible to
specify *0* for the priority, in which case only completed tasks will be
shown. Equivalent to *-Q --filter-type todo*, combined with
only uncompleted todos having a priority equal to 'num' will be returned. The
priority number must be between 1 (highest) and 9 (lowest). It is also
possible to specify *0* for the priority, in which case only completed tasks
will be shown. Equivalent to *-Q --filter-type todo*, combined with
*--filter-priority* and *--filter-completed* or *--filter-uncompleted*.
*--to* <date>::

View File

@ -376,10 +376,10 @@ in read-only mode, all changes from this session will be lost without warning!
`-t[num], --todo[=num]`::
Print the `todo` list and exit. If the optional number `num` is given, then
only todos having a priority equal to `num` will be returned. The priority
number must be between 1 (highest) and 9 (lowest). It is also possible to
specify `0` for the priority, in which case only completed tasks will be
shown. Equivalent to `-Q --filter-type todo`, combined with
only uncompleted todos having a priority equal to `num` will be returned. The
priority number must be between 1 (highest) and 9 (lowest). It is also
possible to specify `0` for the priority, in which case only completed tasks
will be shown. Equivalent to `-Q --filter-type todo`, combined with
`--filter-priority` and `--filter-completed` or `--filter-uncompleted`.
`--to <date>`::

View File

@ -534,6 +534,8 @@ int parse_args(int argc, char **argv)
filter.priority = atoi(optarg);
if (filter.priority == 0)
filter.completed = 1;
else
filter.uncompleted = 1;
EXIT_IF(filter.priority > 9,
_("invalid priority: %s"), optarg);
} else {

View File

@ -8,8 +8,8 @@ if [ "$1" = 'actual' ]; then
elif [ "$1" = 'expected' ]; then
cat <<EOD
to do:
9. Gloriously slams
9. Beefburger's
9. Gloriously slams
9. Seasons
02/23/13:

View File

@ -6,7 +6,7 @@ if [ "$1" = 'actual' ]; then
"$CALCURSE" --read-only -D "$DATA_DIR"/ -t3
elif [ "$1" = 'expected' ]; then
echo 'to do:'
sed -n 's/^\[3\] \(.*\)/3. \1/p' "$DATA_DIR"/todo
sed -n 's/^\[3\] \(.*\)/3. \1/p' "$DATA_DIR"/todo | sort
else
./run-test "$0"
fi