/[suikacvs]/markup/html/whatpm/Whatpm/Charset/DecodeHandle.pm
Suika

Diff of /markup/html/whatpm/Whatpm/Charset/DecodeHandle.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.2 by wakaba, Sun Jul 15 16:51:14 2007 UTC revision 1.3 by wakaba, Sat May 17 12:29:24 2008 UTC
# Line 526  sub uri_to_name ($$$) { Line 526  sub uri_to_name ($$$) {
526    return undef;    return undef;
527  } # uri_to_name  } # uri_to_name
528    
529    require IO::Handle;
530    
531    package Whatpm::Charset::DecodeHandle::ByteBuffer;
532    
533    sub new ($$) {
534      my $self = bless {
535        buffer => '',
536      }, shift;
537      $self->{filehandle} = shift;
538      return $self;
539    } # new
540    
541    sub read {
542      my $self = shift;
543      my $pos = length $self->{buffer};
544      my $r = $self->{filehandle}->read ($self->{buffer}, $_[1], $pos);
545      substr ($_[0], $_[2]) = substr ($self->{buffer}, $pos);
546      return $r;
547    } # read
548    
549    sub close { $_[0]->{filehandle}->close }
550    
551  package Whatpm::Charset::DecodeHandle::Encode;  package Whatpm::Charset::DecodeHandle::Encode;
552    
553  sub charset ($) { $_[0]->{charset} }  sub charset ($) { $_[0]->{charset} }
554    
555  sub close ($) { CORE::close $_[0]->{filehandle} }  sub close ($) { $_[0]->{filehandle}->close }
556    
557  sub getc ($) {  sub getc ($) {
558    my $self = $_[0];    my $self = $_[0];
# Line 538  sub getc ($) { Line 560  sub getc ($) {
560        
561    my $error;    my $error;
562    if ($self->{continue}) {    if ($self->{continue}) {
563      if (read $self->{filehandle}, $self->{byte_buffer}, 256,      if ($self->{filehandle}->read ($self->{byte_buffer}, 256,
564          length $self->{byte_buffer}) {                                     length $self->{byte_buffer})) {
565        #        #
566      } else {      } else {
567        $error = 1;        $error = 1;
568      }      }
569      $self->{continue} = 0;      $self->{continue} = 0;
570    } elsif (512 > length $self->{byte_buffer}) {    } elsif (512 > length $self->{byte_buffer}) {
571      read $self->{filehandle}, $self->{byte_buffer}, 256,      $self->{filehandle}->read ($self->{byte_buffer}, 256,
572          length $self->{byte_buffer};                                 length $self->{byte_buffer});
573    }    }
574    
575    my $r;    my $r;
# Line 613  sub getc ($) { Line 635  sub getc ($) {
635    
636    my $error;    my $error;
637    if ($self->{continue}) {    if ($self->{continue}) {
638      if (read $self->{filehandle}, $self->{byte_buffer}, 256,      if ($self->{filehandle}->read ($self->{byte_buffer}, 256,
639          length $self->{byte_buffer}) {                                     length $self->{byte_buffer})) {
640        #        #
641      } else {      } else {
642        $error = 1;        $error = 1;
643      }      }
644      $self->{continue} = 0;      $self->{continue} = 0;
645    } elsif (512 > length $self->{byte_buffer}) {    } elsif (512 > length $self->{byte_buffer}) {
646      read $self->{filehandle}, $self->{byte_buffer}, 256,      $self->{filehandle}->read ($self->{byte_buffer}, 256,
647          length $self->{byte_buffer};                                 length $self->{byte_buffer});
648    }    }
649        
650    my $r;    my $r;
# Line 683  sub getc ($) { Line 705  sub getc ($) {
705    A: {    A: {
706      my $error;      my $error;
707      if ($self->{continue}) {      if ($self->{continue}) {
708        if (read $self->{filehandle}, $self->{byte_buffer}, 256,        if ($self->{filehandle}->read ($self->{byte_buffer}, 256,
709            length $self->{byte_buffer}) {                                       length $self->{byte_buffer})) {
710          #          #
711        } else {        } else {
712          $error = 1;          $error = 1;
713        }        }
714        $self->{continue} = 0;        $self->{continue} = 0;
715      } elsif (512 > length $self->{byte_buffer}) {      } elsif (512 > length $self->{byte_buffer}) {
716        read $self->{filehandle}, $self->{byte_buffer}, 256,        $self->{filehandle}->read ($self->{byte_buffer}, 256,
717            length $self->{byte_buffer};                                   length $self->{byte_buffer});
718      }      }
719            
720      unless ($error) {      unless ($error) {
# Line 797  sub getc ($) { Line 819  sub getc ($) {
819    
820    my $error;    my $error;
821    if ($self->{continue}) {    if ($self->{continue}) {
822      if (read $self->{filehandle}, $self->{byte_buffer}, 256,      if ($self->{filehandle}->read ($self->{byte_buffer}, 256,
823          length $self->{byte_buffer}) {                                     length $self->{byte_buffer})) {
824        #        #
825      } else {      } else {
826        $error = 1;        $error = 1;
827      }      }
828      $self->{continue} = 0;      $self->{continue} = 0;
829    } elsif (512 > length $self->{byte_buffer}) {    } elsif (512 > length $self->{byte_buffer}) {
830      read $self->{filehandle}, $self->{byte_buffer}, 256,      $self->{filehandle}->read ($self->{byte_buffer}, 256,
831          length $self->{byte_buffer};                                 length $self->{byte_buffer});
832    }    }
833    
834    my $r;    my $r;

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.3

[email protected]
ViewVC Help
Powered by ViewVC 1.1.24