Permalink
Browse files

Re-applying the listpri stuff still missing from the pull requests.

  • Loading branch information...
1 parent 2891472 commit 8f6070e702fdd45d0fa05e6c9df9664e3ca5a4ef @inkarkat inkarkat committed Jul 10, 2011
Showing with 55 additions and 35 deletions.
  1. +20 −13 tests/t1200-pri.sh
  2. +32 −8 tests/t1250-listpri.sh
  3. +3 −14 todo.sh
View
@@ -53,6 +53,25 @@ TODO: 2 prioritized (C).
--
TODO: 3 of 3 tasks shown
+>>> todo.sh add "smell the coffee +wakeup"
+4 smell the coffee +wakeup
+TODO: 4 added.
+
+>>> todo.sh -p list
+1 (B) smell the uppercase Roses +flowers @outside
+2 (C) notice the sunflowers
+4 smell the coffee +wakeup
+3 stop
+--
+TODO: 4 of 4 tasks shown
+EOF
+
+cat > todo.txt <<EOF
+(B) smell the uppercase Roses +flowers @outside
+(C) notice the sunflowers
+stop
+EOF
+test_todo_session 'reprioritize' <<EOF
>>> todo.sh pri 2 A
2 (A) notice the sunflowers
TODO: 2 re-prioritized from (C) to (A).
@@ -68,23 +87,11 @@ TODO: 3 of 3 tasks shown
2 (A) notice the sunflowers
TODO: 2 already prioritized (A).
->>> todo.sh -p listpri
-2 (A) notice the sunflowers
-1 (B) smell the uppercase Roses +flowers @outside
---
-TODO: 2 of 3 tasks shown
-
->>> todo.sh add "smell the coffee +wakeup"
-4 smell the coffee +wakeup
-TODO: 4 added.
-
>>> todo.sh -p list
2 (A) notice the sunflowers
1 (B) smell the uppercase Roses +flowers @outside
-4 smell the coffee +wakeup
3 stop
--
-TODO: 4 of 4 tasks shown
+TODO: 3 of 3 tasks shown
EOF
-
test_done
View
@@ -4,13 +4,6 @@ test_description='list priority functionality
'
. ./test-lib.sh
-test_todo_session 'listpri usage' <<EOF
->>> todo.sh listpri ?
-usage: todo.sh listpri PRIORITY
-note: PRIORITY must a single letter from A to Z.
-=== 1
-EOF
-
cat > todo.txt <<EOF
(B) smell the uppercase Roses +flowers @outside
(C) notice the sunflowers
@@ -42,7 +35,7 @@ cat > todo.txt <<EOF
(n) not a prioritized task
notice the (C)opyright
EOF
-test_todo_session 'listpri filtering' <<EOF
+test_todo_session 'listpri filtering priorities' <<EOF
>>> todo.sh -p listpri
1 (B) smell the uppercase Roses +flowers @outside
2 (C) notice the sunflowers
@@ -68,4 +61,35 @@ TODO: 0 of 5 tasks shown
TODO: 0 of 5 tasks shown
EOF
+cat > todo.txt <<EOF
+(B) ccc xxx this line should be third.
+ccc xxx this line should be third.
+(A) aaa zzz this line should be first.
+aaa zzz this line should be first.
+(B) bbb yyy this line should be second.
+bbb yyy this line should be second.
+EOF
+test_todo_session 'listpri filtering of TERM' <<EOF
+>>> todo.sh -p listpri "should be"
+3 (A) aaa zzz this line should be first.
+5 (B) bbb yyy this line should be second.
+1 (B) ccc xxx this line should be third.
+--
+TODO: 3 of 6 tasks shown
+
+>>> todo.sh -p listpri a "should be"
+3 (A) aaa zzz this line should be first.
+--
+TODO: 1 of 6 tasks shown
+
+>>> todo.sh -p listpri b second
+5 (B) bbb yyy this line should be second.
+--
+TODO: 1 of 6 tasks shown
+
+>>> todo.sh -p listpri x "should be"
+--
+TODO: 0 of 6 tasks shown
+EOF
+
test_done
View
17 todo.sh
@@ -923,7 +923,7 @@ case $action in
todo=$(sed "$item!d" "$TODO_FILE")
[ -z "$todo" ] && die "TODO: No task $item."
- if sed "$item!d" "$TODO_FILE" | grep "^(.) " > /dev/null; then
+ if [[ "$todo" = \(?\)\ * ]]; then
sed -i.bak -e $item"s/^(.) //" "$TODO_FILE"
if [ $TODOTXT_VERBOSE -gt 0 ]; then
NEWTODO=$(sed "$item!d" "$TODO_FILE")
@@ -944,7 +944,7 @@ case $action in
# Split multiple do's, if comma separated change to whitespace separated
# Loop the 'do' function for each item
- for item in $(echo $* | tr ',' ' '); do
+ for item in $(echo $* | tr ',' ' '); do
[ -z "$item" ] && die "$errmsg"
[[ "$item" = +([0-9]) ]] || die "$errmsg"
@@ -1013,18 +1013,7 @@ case $action in
"listpri" | "lsp" )
shift ## was "listpri", new $1 is priority to list or first TERM
- if [ "${1:-}" ]
- then
- ## A priority was specified
- pri=$( printf "%s\n" "$1" | tr 'a-z' 'A-Z' | grep '^[A-Z]$' ) || {
- die "usage: $TODO_SH listpri PRIORITY
-note: PRIORITY must a single letter from A to Z."
- }
- else
- ## No priority specified; show all priority tasks
- pri="[A-Z]"
- fi
-
+ pri=$(printf "%s\n" "$1" | tr 'a-z' 'A-Z' | grep '^[A-Z]$') && shift || pri="[A-Z]"
post_filter_command="grep '^ *[0-9]\+ (${pri}) '"
_list "$TODO_FILE" "$@"
;;

0 comments on commit 8f6070e

Please sign in to comment.