=================================================================== RCS file: /cvs/todotxt/Text-Todo/bin/todo.pl,v retrieving revision 1.10 retrieving revision 1.12 diff -u -r1.10 -r1.12 --- todotxt/Text-Todo/bin/todo.pl 2010/01/11 00:18:25 1.10 +++ todotxt/Text-Todo/bin/todo.pl 2010/01/11 01:41:21 1.12 @@ -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); @@ -217,7 +217,27 @@ die "Unable to deprioritize entry\n"; } -sub mark_done { return &unsupported } +# since "do" is reserved +sub mark_done { + my ( $config, $line ) = @_; + if ( !( $line && $line =~ /^\d+$/xms ) ) { + die 'usage: todo.pl del ITEM#' . "\n"; + } + my $todo = Text::Todo->new($config); + + my $entry = $todo->list->[ $line - 1 ]; + + if ( $entry->do && $todo->save ) { + my $status = print $line, ': ', $entry->text, "\n", + 'TODO: ', $line, " marked as done.\n"; + if (!$opts{a}) { + return archive($config); + } + return $status; + } + die "Unable to mark as done\n"; +} + sub help { return &unsupported } sub list { @@ -314,7 +334,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 }