[BACK]Return to Todo.pm CVS log [TXT][DIR] Up to [local] / todotxt / Text-Todo / lib / Text

Diff for /todotxt/Text-Todo/lib/Text/Todo.pm between version 1.7 and 1.8

version 1.7, 2010/01/09 05:26:51 version 1.8, 2010/01/09 06:26:43
Line 18 
Line 18 
   
     my %path_of;      my %path_of;
     my %list_of;      my %list_of;
       my %loaded_of;
   
     sub new {      sub new {
         my ( $class, $options ) = @_;          my ( $class, $options ) = @_;
Line 130 
Line 131 
         my ( $self, $file ) = @_;          my ( $self, $file ) = @_;
         my $ident = ident($self);          my $ident = ident($self);
   
           $loaded_of{$ident} = undef;
   
           if ( $list_of{$ident} = $self->listfile($file) ) {
               $loaded_of{$ident} = $file;
               return 1;
           }
   
           return;
       }
   
       sub listfile {
           my ( $self, $file ) = @_;
   
         $file = $self->file($file);          $file = $self->file($file);
   
         if ( !defined $file ) {          if ( !defined $file ) {
             croak q{todo file can't be found};              carp q{file can't be found};
               return;
         }          }
   
         if ( !-e $file ) {          if ( !-e $file ) {
             carp "todo file [$file] does not exist";              carp "file [$file] does not exist";
             return;              return;
         }          }
   
         my @list;          my @list;
         my $line = 1;  
         open my $fh, '<', $file or croak "Couldn't open [$file]: $!";          open my $fh, '<', $file or croak "Couldn't open [$file]: $!";
         while (<$fh>) {          while (<$fh>) {
             s/\r?\n$//xms;              s/\r?\n$//xms;
               next if !length $_;
             push @list, Text::Todo::Entry->new($_);              push @list, Text::Todo::Entry->new($_);
         }          }
         close $fh or croak "Couldn't close [$file]: $!";          close $fh or croak "Couldn't close [$file]: $!";
         $list_of{$ident} = \@list;  
   
         return 1;          return wantarray ? @list : \@list;
     }      }
   
     sub save {      sub save {
Line 249 
Line 263 
         return wantarray ? @projects : \@projects;          return wantarray ? @projects : \@projects;
     }      }
   
     sub archive  { carp 'unsupported'; return }      sub archive { carp 'unsupported'; return }
     sub addto    { carp 'unsupported'; return }  
     sub listfile { carp 'unsupported'; return }      sub addto {
           my ( $self, $file, $entry ) = @_;
           my $ident = ident($self);
   
           $file = $self->file($file);
           if ( !defined $file ) {
               croak q{file can't be found};
           }
   
           open my $fh, '>>', $file or croak "Couldn't open [$file]: $!";
           print {$fh} $entry, "\n"
               or croak "Couldn't print to [$file]: $!";
           close $fh or croak "Couldn't close [$file]: $!";
   
           if ( defined $loaded_of{$ident} && $file eq $loaded_of{$ident} ) {
               return $self->load($file);
           }
   
           return 1;
       }
   
     sub _find_entry_id {      sub _find_entry_id {
         my ( $self, $entry ) = @_;          my ( $self, $entry ) = @_;

Legend:
Removed from v.1.7  
changed lines
  Added in v.1.8

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>