stas        2003/01/21 19:19:43

  Modified:    .        Changes
               src/modules/perl modperl_io.c modperl_io.h
               t/modperl .cvsignore
               todo     api.txt
               xs/Apache/RequestIO Apache__RequestIO.h
               xs/maps  modperl_functions.map
               xs/tables/current/ModPerl FunctionTable.pm
  Added:       t/response/TestModperl request_rec_tie_api.pm
  Log:
  - expose useful macros from modperl_io.c via modperl_io.h
  - add $r->FILENO implementation
  - add a test
  
  Revision  Changes    Path
  1.107     +2 -0      modperl-2.0/Changes
  
  Index: Changes
  ===================================================================
  RCS file: /home/cvs/modperl-2.0/Changes,v
  retrieving revision 1.106
  retrieving revision 1.107
  diff -u -r1.106 -r1.107
  --- Changes   20 Jan 2003 07:54:52 -0000      1.106
  +++ Changes   22 Jan 2003 03:19:43 -0000      1.107
  @@ -10,6 +10,8 @@
   
   =item 1.99_09-dev
   
  +Add $r->FILENO implementation [Stas]
  +
   Apache::Test: Support <NoAutoConfig> </NoAutoConfig> blocks in .pm
   files, so we can have a full manual control over generated config
   sections. These sections are fully parsed and variables are
  
  
  
  1.1                  modperl-2.0/t/response/TestModperl/request_rec_tie_api.pm
  
  Index: request_rec_tie_api.pm
  ===================================================================
  package TestModperl::request_rec_tie_api;
  
  use strict;
  use warnings FATAL => 'all';
  
  use Apache::RequestIO ();
  
  use Apache::Test;
  use Apache::TestUtil;
  
  use Apache::Const -compile => 'OK';
  
  sub handler {
      my $r = shift;
  
      plan $r, tests => 1;
  
      ok t_cmp(fileno(STDOUT), $r->FILENO(), "FILENO");
  
      return Apache::OK;
  }
  
  1;
  
  
  
  1.9       +0 -13     modperl-2.0/src/modules/perl/modperl_io.c
  
  Index: modperl_io.c
  ===================================================================
  RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_io.c,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- modperl_io.c      24 Mar 2002 02:41:29 -0000      1.8
  +++ modperl_io.c      22 Jan 2003 03:19:43 -0000      1.9
  @@ -1,18 +1,5 @@
   #include "mod_perl.h"
   
  -/*
  - * bleedperl change #11639 switch tied handle magic
  - * from living in the gv to the GvIOp(gv), so we have to deal
  - * with both to support 5.6.x
  - */
  -#if ((PERL_REVISION == 5) && (PERL_VERSION >= 7))
  -#   define TIEHANDLE_SV(handle) (SV*)GvIOp((SV*)handle)
  -#else
  -#   define TIEHANDLE_SV(handle) (SV*)handle
  -#endif
  -
  -#define dHANDLE(name) GV *handle = gv_fetchpv(name, TRUE, SVt_PVIO)
  -
   #define TIEHANDLE(handle,r) \
   modperl_io_handle_tie(aTHX_ handle, "Apache::RequestRec", (void *)r)
   
  
  
  
  1.2       +13 -0     modperl-2.0/src/modules/perl/modperl_io.h
  
  Index: modperl_io.h
  ===================================================================
  RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_io.h,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- modperl_io.h      5 May 2001 22:06:41 -0000       1.1
  +++ modperl_io.h      22 Jan 2003 03:19:43 -0000      1.2
  @@ -1,6 +1,19 @@
   #ifndef MODPERL_IO_H
   #define MODPERL_IO_H
   
  +/*
  + * bleedperl change #11639 switch tied handle magic
  + * from living in the gv to the GvIOp(gv), so we have to deal
  + * with both to support 5.6.x
  + */
  +#if ((PERL_REVISION == 5) && (PERL_VERSION >= 7))
  +#   define TIEHANDLE_SV(handle) (SV*)GvIOp((SV*)handle)
  +#else
  +#   define TIEHANDLE_SV(handle) (SV*)handle
  +#endif
  +
  +#define dHANDLE(name) GV *handle = gv_fetchpv(name, TRUE, SVt_PVIO)
  +
   #define IoFLUSH_off(gv) \
   IoFLAGS(GvIOp((gv))) &= ~IOf_FLUSH
   
  
  
  
  1.11      +1 -0      modperl-2.0/t/modperl/.cvsignore
  
  Index: .cvsignore
  ===================================================================
  RCS file: /home/cvs/modperl-2.0/t/modperl/.cvsignore,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- .cvsignore        22 Oct 2002 15:13:22 -0000      1.10
  +++ .cvsignore        22 Jan 2003 03:19:43 -0000      1.11
  @@ -10,3 +10,4 @@
   methodobj.t
   method.t
   setauth.t
  +request_rec_tie_api.t
  
  
  
  1.30      +1 -1      modperl-2.0/todo/api.txt
  
  Index: api.txt
  ===================================================================
  RCS file: /home/cvs/modperl-2.0/todo/api.txt,v
  retrieving revision 1.29
  retrieving revision 1.30
  diff -u -r1.29 -r1.30
  --- api.txt   6 Dec 2002 16:19:36 -0000       1.29
  +++ api.txt   22 Jan 2003 03:19:43 -0000      1.30
  @@ -3,7 +3,7 @@
   ------------------------------------------
   
   tied filehandle interface:
  - -CLOSE, OPEN, EOF, TELL, SEEK, FILENO
  + -CLOSE, OPEN, EOF, TELL, SEEK
    -READLINE - proper implementation (see comment in Apache::compat)
   
   $r->finfo:
  
  
  
  1.31      +7 -0      modperl-2.0/xs/Apache/RequestIO/Apache__RequestIO.h
  
  Index: Apache__RequestIO.h
  ===================================================================
  RCS file: /home/cvs/modperl-2.0/xs/Apache/RequestIO/Apache__RequestIO.h,v
  retrieving revision 1.30
  retrieving revision 1.31
  diff -u -r1.30 -r1.31
  --- Apache__RequestIO.h       17 Jan 2003 03:08:31 -0000      1.30
  +++ Apache__RequestIO.h       22 Jan 2003 03:19:43 -0000      1.31
  @@ -237,6 +237,13 @@
   }
   
   static MP_INLINE
  +int mpxs_Apache__RequestRec_FILENO(pTHX_ request_rec *r)
  +{
  +    dHANDLE("STDOUT");
  +    return PerlIO_fileno(IoOFP(TIEHANDLE_SV(handle)));
  +}
  +
  +static MP_INLINE
   apr_status_t mpxs_Apache__RequestRec_sendfile(request_rec *r,
                                                 const char *filename,
                                                 apr_off_t offset,
  
  
  
  1.49      +1 -0      modperl-2.0/xs/maps/modperl_functions.map
  
  Index: modperl_functions.map
  ===================================================================
  RCS file: /home/cvs/modperl-2.0/xs/maps/modperl_functions.map,v
  retrieving revision 1.48
  retrieving revision 1.49
  diff -u -r1.48 -r1.49
  --- modperl_functions.map     12 Jan 2003 02:33:27 -0000      1.48
  +++ modperl_functions.map     22 Jan 2003 03:19:43 -0000      1.49
  @@ -47,6 +47,7 @@
    apr_ssize_t:DEFINE_WRITE | | \
                request_rec *:r, SV *:buffer, apr_ssize_t:bufsiz=-1, int:offset=0
    mpxs_Apache__RequestRec_GETC
  + mpxs_Apache__RequestRec_FILENO
   
   MODULE=Apache::Response   PACKAGE=Apache::RequestRec
   DEFINE_send_cgi_header | | request_rec *:r, SV *:buffer
  
  
  
  1.97      +14 -0     modperl-2.0/xs/tables/current/ModPerl/FunctionTable.pm
  
  Index: FunctionTable.pm
  ===================================================================
  RCS file: /home/cvs/modperl-2.0/xs/tables/current/ModPerl/FunctionTable.pm,v
  retrieving revision 1.96
  retrieving revision 1.97
  diff -u -r1.96 -r1.97
  --- FunctionTable.pm  17 Jan 2003 03:08:31 -0000      1.96
  +++ FunctionTable.pm  22 Jan 2003 03:19:43 -0000      1.97
  @@ -5396,6 +5396,20 @@
       ]
     },
     {
  +    'return_type' => 'int',
  +    'name' => 'mpxs_Apache__RequestRec_FILENO',
  +    'args' => [
  +      {
  +        'type' => 'PerlInterpreter *',
  +        'name' => 'my_perl'
  +      },
  +      {
  +        'type' => 'request_rec *',
  +        'name' => 'r'
  +      },
  +    ]
  +  },
  +  {
       'return_type' => 'apr_status_t',
       'name' => 'mpxs_Apache__RequestRec_sendfile',
       'args' => [
  
  
  


Reply via email to