=================================================================== RCS file: /cvs/todotxt/Text-Todo/bin/todo.pl,v retrieving revision 1.9 retrieving revision 1.11 diff -u -r1.9 -r1.11 --- todotxt/Text-Todo/bin/todo.pl 2010/01/11 00:17:38 1.9 +++ todotxt/Text-Todo/bin/todo.pl 2010/01/11 00:30:31 1.11 @@ -1,5 +1,5 @@ #!/usr/bin/perl -# $RedRiver: todo.pl,v 1.7 2010/01/10 23:58:11 andrew Exp $ +# $RedRiver: todo.pl,v 1.9 2010/01/11 00:17:38 andrew Exp $ ######################################################################## # todo.pl *** a perl version of todo.sh. Uses Text::Todo. # @@ -183,7 +183,7 @@ } my $todo = Text::Todo->new($config); - my $entry = $todo->list->[$line - 1]; + my $entry = $todo->list->[ $line - 1 ]; print "Delete '" . $entry->text . "'? (y/n)\n"; warn "XXX No delete confirmation currently!\n"; @@ -205,7 +205,7 @@ sub depri { my ( $config, $line ) = @_; if ( !( $line && $line =~ /^\d+$/xms ) ) { - die 'usage: todo.pl del ITEM#' . "\n"; + die 'usage: todo.pl depri ITEM#' . "\n"; } my $todo = Text::Todo->new($config); @@ -295,10 +295,10 @@ return print map {"\+$_\n"} $todo->listproj; } -sub move { return &unsupported } +sub move { return &unsupported } sub prepend { - my ( $config, $line, @text) = @_; + my ( $config, $line, @text ) = @_; if ( !( $line && @text && $line =~ /^\d+$/xms ) ) { die 'usage: todo.pl prepend ITEM# "TEXT TO PREPEND"' . "\n"; } @@ -314,7 +314,27 @@ die "Unable to prepend\n"; } -sub pri { return &unsupported } +sub pri { + my ( $config, $line, $priority ) = @_; + my $error = 'usage: todo.pl pri ITEM# PRIORITY'; + if ( !( $line && $line =~ /^\d+$/xms && $priority ) ) { + die $error; + } + if ( $priority !~ /^[A-Z]$/xms ) { + die $error . "\n" + . "note: PRIORITY must a single letter from A to Z.\n"; + } + + my $todo = Text::Todo->new($config); + + my $entry = $todo->list->[ $line - 1 ]; + if ( $entry->pri($priority) && $todo->save ) { + return print $line, ': ', $entry->text, "\n", + 'TODO: ', $line, ' prioritized (', $entry->priority, ").\n"; + } + die "Unable to prioritize entry\n"; +} + sub replace { return &unsupported } sub report { return &unsupported } @@ -330,8 +350,7 @@ $term = defined $term ? quotemeta($term) : ''; my $shown = 0; - my @sorted - = map { sprintf "%02d %s", $_->{line}, $_->{entry}->text } + my @sorted = map { sprintf "%02d %s", $_->{line}, $_->{entry}->text } sort { lc $a->{entry}->text cmp lc $b->{entry}->text } @list; foreach my $line ( grep {/$term/xms} @sorted ) {