=================================================================== RCS file: /cvs/todotxt/Text-Todo/bin/todo.pl,v retrieving revision 1.6 retrieving revision 1.8 diff -u -r1.6 -r1.8 --- todotxt/Text-Todo/bin/todo.pl 2010/01/10 23:54:26 1.6 +++ todotxt/Text-Todo/bin/todo.pl 2010/01/11 00:00:56 1.8 @@ -1,5 +1,5 @@ #!/usr/bin/perl -# $RedRiver: todo.pl,v 1.5 2010/01/10 23:37:12 andrew Exp $ +# $RedRiver: todo.pl,v 1.7 2010/01/10 23:58:11 andrew Exp $ ######################################################################## # todo.pl *** a perl version of todo.sh. Uses Text::Todo. # @@ -103,11 +103,13 @@ } sub add { - my ( $config, $entry ) = @_; - if ( !$entry ) { + my ( $config, @entry ) = @_; + if ( !@entry ) { die "usage: todo.pl add 'item'\n"; } + my $entry = join q{ }, @entry; + my $todo = Text::Todo->new($config); if ( $todo->add($entry) ) { my @list = $todo->list; @@ -121,11 +123,13 @@ } sub addto { - my ( $config, $file, $entry ) = @_; - if ( !( $file && $entry ) ) { + my ( $config, $file, @entry ) = @_; + if ( !( $file && @entry ) ) { die "usage: todo.pl addto DEST 'TODO ITEM'\n"; } + my $entry = join q{ }, @entry; + my $todo = Text::Todo->new($config); $file = $todo->file($file); @@ -141,11 +145,13 @@ } sub append { - my ( $config, $line, $text ) = @_; - if ( !( $line && $text && $line =~ /^\d+$/xms ) ) { + my ( $config, $line, @text) = @_; + if ( !( $line && @text && $line =~ /^\d+$/xms ) ) { die 'usage: todo.pl append ITEM# "TEXT TO APPEND"' . "\n"; } + my $text = join q{ }, @text; + my $todo = Text::Todo->new($config); my $entry = $todo->list->[ $line - 1 ]; @@ -276,7 +282,24 @@ } sub move { return &unsupported } -sub prepend { return &unsupported } + +sub prepend { + my ( $config, $line, @text) = @_; + if ( !( $line && @text && $line =~ /^\d+$/xms ) ) { + die 'usage: todo.pl prepend ITEM# "TEXT TO APPEND"' . "\n"; + } + + my $text = join q{ }, @text; + + my $todo = Text::Todo->new($config); + my $entry = $todo->list->[ $line - 1 ]; + + if ( $entry->prepend($text) && $todo->save ) { + return printf "%02d: %s\n", $line, $entry->text; + } + die "Unable to append\n"; +} + sub pri { return &unsupported } sub replace { return &unsupported } sub report { return &unsupported }