dougm       01/11/07 19:19:48

  Modified:    lib/Apache compat.pm
               todo     api.txt
  Added:       t/modperl readline.t
               t/response/TestModperl readline.pm
  Log:
  add READLINE compat stub and test
  
  Revision  Changes    Path
  1.23      +11 -0     modperl-2.0/lib/Apache/compat.pm
  
  Index: compat.pm
  ===================================================================
  RCS file: /home/cvs/modperl-2.0/lib/Apache/compat.pm,v
  retrieving revision 1.22
  retrieving revision 1.23
  diff -u -r1.22 -r1.23
  --- compat.pm 2001/10/09 05:42:49     1.22
  +++ compat.pm 2001/11/08 03:19:47     1.23
  @@ -215,6 +215,17 @@
       return \$data;
   }
   
  +#XXX: would like to have a proper implementation
  +#that reads line-by-line as defined by $/
  +#the best way will probably be to use perlio in 5.8.0
  +#anything else would be more effort that it is worth
  +sub READLINE {
  +    my $r = shift;
  +    my $line;
  +    $r->read($line, $r->headers_in->get('Content-length'));
  +    $line ? $line : undef;
  +}
  +
   use constant IOBUFSIZE => 8192;
   
   #XXX: howto convert PerlIO to apr_file_t
  
  
  
  1.1                  modperl-2.0/t/modperl/readline.t
  
  Index: readline.t
  ===================================================================
  use strict;
  use warnings FATAL => 'all';
  
  use Apache::Test;
  use Apache::TestRequest;
  use Apache::TestUtil;
  
  plan tests => 2, \&have_lwp;
  
  my $location = "/TestModperl::readline";
  
  my $expect = join "\n", map { $_ x 24 } 'a'..'e';
  
  my $str = POST_BODY $location, content => $expect;
  
  ok $str;
  
  ok t_cmp($expect, $str, 'readline');
  
  
  
  
  1.1                  modperl-2.0/t/response/TestModperl/readline.pm
  
  Index: readline.pm
  ===================================================================
  package TestModperl::readline;
  
  use strict;
  use warnings FATAL => 'all';
  
  use Apache::Test;
  use Apache::compat (); #XXX
  
  sub handler {
      my $r = shift;
  
      tie *STDIN, $r unless tied *STDIN;
  
      while (defined(my $line = <STDIN>)) {
          $r->puts($line);
      }
  
      Apache::OK;
  }
  
  1;
  
  
  
  1.15      +2 -1      modperl-2.0/todo/api.txt
  
  Index: api.txt
  ===================================================================
  RCS file: /home/cvs/modperl-2.0/todo/api.txt,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- api.txt   2001/11/07 04:03:07     1.14
  +++ api.txt   2001/11/08 03:19:48     1.15
  @@ -3,7 +3,8 @@
   ------------------------------------------
   
   tied filehandle interface:
  - -CLOSE, READLINE
  + -CLOSE, OPEN, BINMODE, EOF, TELL, SEEK, FILENO
  + -READLINE - proper implementation (see comment in Apache::compat)
   
   $r->finfo:
   need apr_finfo_t <-> struct stat conversion (might already be there,
  
  
  


Reply via email to