Author: joes
Date: Thu Oct 6 10:51:44 2005
New Revision: 306819
URL: http://svn.apache.org/viewcvs?rev=306819&view=rev
Log:
Move APR::Request::Param::Table and APR::Request::Cookie::Table
packages to APR::Request module.
Modified:
httpd/apreq/trunk/CHANGES
httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/APR__Request.h
httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/Cookie/APR__Request__Cookie.h
httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/Cookie/Cookie.pm
httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/Cookie/Cookie.pod
httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/Cookie/Cookie.xs
httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/Param/APR__Request__Param.h
httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/Param/Param.pm
httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/Param/Param.pod
httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/Param/Param.xs
httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/Request.pm
httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/Request.pod
httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/Request.xs
httpd/apreq/trunk/glue/perl/xsbuilder/maps/apreq_functions.map
Modified: httpd/apreq/trunk/CHANGES
URL:
http://svn.apache.org/viewcvs/httpd/apreq/trunk/CHANGES?rev=306819&r1=306818&r2=306819&view=diff
==============================================================================
--- httpd/apreq/trunk/CHANGES (original)
+++ httpd/apreq/trunk/CHANGES Thu Oct 6 10:51:44 2005
@@ -4,6 +4,11 @@
@section v2_07 Changes with libapreq2-2.07
+
+- Perl API [joes]
+ Move APR::Request::Param::Table and APR::Request::Cookie::Table
+ packages to APR::Request module.
+
- Perl XS [Steve Hay]
Fix compile problems on Win32 without PERL_IMPLICIT_SYS
related to link being an unresolved symbol.
Modified: httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/APR__Request.h
URL:
http://svn.apache.org/viewcvs/httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/APR__Request.h?rev=306819&r1=306818&r2=306819&view=diff
==============================================================================
--- httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/APR__Request.h (original)
+++ httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/APR__Request.h Thu Oct 6
10:51:44 2005
@@ -442,3 +442,330 @@
return s;
}
+
+
+static int apreq_xs_cookie_table_do_sub(void *data, const char *key,
+ const char *val)
+{
+ struct apreq_xs_do_arg *d = data;
+ apreq_cookie_t *c = apreq_value_to_cookie(val);
+ dTHXa(d->perl);
+ dSP;
+ SV *sv = apreq_xs_cookie2sv(aTHX_ c, d->pkg, d->parent);
+ int rv;
+
+ ENTER;
+ SAVETMPS;
+
+ PUSHMARK(SP);
+ EXTEND(SP,2);
+
+ PUSHs(sv_2mortal(newSVpvn(c->v.name, c->v.nlen)));
+ PUSHs(sv_2mortal(sv));
+
+ PUTBACK;
+ rv = call_sv(d->sub, G_SCALAR);
+ SPAGAIN;
+ rv = (1 == rv) ? POPi : 1;
+ PUTBACK;
+ FREETMPS;
+ LEAVE;
+
+ return rv;
+}
+
+MP_STATIC XS(apreq_xs_cookie_table_do)
+{
+ dXSARGS;
+ struct apreq_xs_do_arg d = { NULL, NULL, NULL, aTHX };
+ const apr_table_t *t;
+ int i, rv = 1;
+ SV *sv, *t_obj;
+ IV iv;
+ MAGIC *mg;
+
+ if (items < 2 || !SvROK(ST(0)) || !SvROK(ST(1)))
+ Perl_croak(aTHX_ "Usage: $object->do(\\&callback, @keys)");
+ sv = ST(0);
+
+ t_obj = apreq_xs_sv2object(aTHX_ sv, COOKIE_TABLE_CLASS, 't');
+ iv = SvIVX(t_obj);
+ t = INT2PTR(const apr_table_t *, iv);
+ mg = mg_find(t_obj, PERL_MAGIC_ext);
+ d.parent = mg->mg_obj;
+ d.pkg = mg->mg_ptr;
+ d.sub = ST(1);
+
+ if (items == 2) {
+ rv = apr_table_do(apreq_xs_cookie_table_do_sub, &d, t, NULL);
+ XSRETURN_IV(rv);
+ }
+
+ for (i = 2; i < items; ++i) {
+ const char *key = SvPV_nolen(ST(i));
+ rv = apr_table_do(apreq_xs_cookie_table_do_sub, &d, t, key, NULL);
+ if (rv == 0)
+ break;
+ }
+ XSRETURN_IV(rv);
+}
+
+MP_STATIC XS(apreq_xs_cookie_table_FETCH)
+{
+ dXSARGS;
+ const apr_table_t *t;
+ const char *cookie_class;
+ SV *sv, *obj, *parent;
+ IV iv;
+ MAGIC *mg;
+
+ if (items != 2 || !SvROK(ST(0))
+ || !sv_derived_from(ST(0), COOKIE_TABLE_CLASS))
+ Perl_croak(aTHX_ "Usage: " COOKIE_TABLE_CLASS "::FETCH($table, $key)");
+
+ sv = ST(0);
+
+ obj = apreq_xs_sv2object(aTHX_ sv, COOKIE_TABLE_CLASS, 't');
+ iv = SvIVX(obj);
+ t = INT2PTR(const apr_table_t *, iv);
+
+ mg = mg_find(obj, PERL_MAGIC_ext);
+ cookie_class = mg->mg_ptr;
+ parent = mg->mg_obj;
+
+ if (GIMME_V == G_SCALAR) {
+ IV idx;
+ const char *key, *val;
+ const apr_array_header_t *arr;
+ apr_table_entry_t *te;
+ key = SvPV_nolen(ST(1));
+
+ idx = SvCUR(obj);
+ arr = apr_table_elts(t);
+ te = (apr_table_entry_t *)arr->elts;
+
+ if (idx > 0 && idx <= arr->nelts
+ && !strcasecmp(key, te[idx-1].key))
+ val = te[idx-1].val;
+ else
+ val = apr_table_get(t, key);
+
+ if (val != NULL) {
+ apreq_cookie_t *c = apreq_value_to_cookie(val);
+ ST(0) = apreq_xs_cookie2sv(aTHX_ c, cookie_class, parent);
+ sv_2mortal(ST(0));
+ XSRETURN(1);
+ }
+ else {
+ XSRETURN_UNDEF;
+ }
+ }
+ else if (GIMME_V == G_ARRAY) {
+ struct apreq_xs_do_arg d = {NULL, NULL, NULL, aTHX};
+ d.pkg = cookie_class;
+ d.parent = parent;
+ XSprePUSH;
+ PUTBACK;
+ apr_table_do(apreq_xs_cookie_table_values, &d, t, SvPV_nolen(ST(1)),
NULL);
+ }
+ else
+ XSRETURN(0);
+}
+
+MP_STATIC XS(apreq_xs_cookie_table_NEXTKEY)
+{
+ dXSARGS;
+ SV *sv, *obj;
+ IV iv, idx;
+ const apr_table_t *t;
+ const apr_array_header_t *arr;
+ apr_table_entry_t *te;
+
+ if (!SvROK(ST(0)))
+ Perl_croak(aTHX_ "Usage: $table->NEXTKEY($prev)");
+
+ sv = ST(0);
+ obj = apreq_xs_sv2object(aTHX_ sv, COOKIE_TABLE_CLASS, 't');
+
+ iv = SvIVX(obj);
+ t = INT2PTR(const apr_table_t *, iv);
+ arr = apr_table_elts(t);
+ te = (apr_table_entry_t *)arr->elts;
+
+ if (items == 1)
+ SvCUR(obj) = 0;
+
+ if (SvCUR(obj) >= arr->nelts) {
+ SvCUR(obj) = 0;
+ XSRETURN_UNDEF;
+ }
+ idx = SvCUR(obj)++;
+ sv = newSVpv(te[idx].key, 0);
+ ST(0) = sv_2mortal(sv);
+ XSRETURN(1);
+}
+
+
+static int apreq_xs_param_table_do_sub(void *data, const char *key,
+ const char *val)
+{
+ struct apreq_xs_do_arg *d = data;
+ apreq_param_t *p = apreq_value_to_param(val);
+ dTHXa(d->perl);
+ dSP;
+ SV *sv = apreq_xs_param2sv(aTHX_ p, d->pkg, d->parent);
+ int rv;
+
+ ENTER;
+ SAVETMPS;
+
+ PUSHMARK(SP);
+ EXTEND(SP,2);
+
+ PUSHs(sv_2mortal(newSVpvn(p->v.name, p->v.nlen)));
+ PUSHs(sv_2mortal(sv));
+
+ PUTBACK;
+ rv = call_sv(d->sub, G_SCALAR);
+ SPAGAIN;
+ rv = (1 == rv) ? POPi : 1;
+ PUTBACK;
+ FREETMPS;
+ LEAVE;
+
+ return rv;
+}
+
+MP_STATIC XS(apreq_xs_param_table_do)
+{
+ dXSARGS;
+ struct apreq_xs_do_arg d = { NULL, NULL, NULL, aTHX };
+ const apr_table_t *t;
+ int i, rv = 1;
+ SV *sv, *t_obj;
+ IV iv;
+ MAGIC *mg;
+
+ if (items < 2 || !SvROK(ST(0)) || !SvROK(ST(1)))
+ Perl_croak(aTHX_ "Usage: $object->do(\\&callback, @keys)");
+ sv = ST(0);
+
+ t_obj = apreq_xs_sv2object(aTHX_ sv, PARAM_TABLE_CLASS, 't');
+ iv = SvIVX(t_obj);
+ t = INT2PTR(const apr_table_t *, iv);
+ mg = mg_find(t_obj, PERL_MAGIC_ext);
+ d.parent = mg->mg_obj;
+ d.pkg = mg->mg_ptr;
+ d.sub = ST(1);
+
+ if (items == 2) {
+ rv = apr_table_do(apreq_xs_param_table_do_sub, &d, t, NULL);
+ XSRETURN_IV(rv);
+ }
+
+ for (i = 2; i < items; ++i) {
+ const char *key = SvPV_nolen(ST(i));
+ rv = apr_table_do(apreq_xs_param_table_do_sub, &d, t, key, NULL);
+ if (rv == 0)
+ break;
+ }
+ XSRETURN_IV(rv);
+}
+
+MP_STATIC XS(apreq_xs_param_table_FETCH)
+{
+ dXSARGS;
+ const apr_table_t *t;
+ const char *param_class;
+ SV *sv, *t_obj, *parent;
+ IV iv;
+ MAGIC *mg;
+
+ if (items != 2 || !SvROK(ST(0))
+ || !sv_derived_from(ST(0), PARAM_TABLE_CLASS))
+ Perl_croak(aTHX_ "Usage: " PARAM_TABLE_CLASS "::FETCH($table, $key)");
+
+ sv = ST(0);
+
+ t_obj = apreq_xs_sv2object(aTHX_ sv, PARAM_TABLE_CLASS, 't');
+ iv = SvIVX(t_obj);
+ t = INT2PTR(const apr_table_t *, iv);
+
+ mg = mg_find(t_obj, PERL_MAGIC_ext);
+ param_class = mg->mg_ptr;
+ parent = mg->mg_obj;
+
+
+ if (GIMME_V == G_SCALAR) {
+ IV idx;
+ const char *key, *val;
+ const apr_array_header_t *arr;
+ apr_table_entry_t *te;
+ key = SvPV_nolen(ST(1));
+
+ idx = SvCUR(t_obj);
+ arr = apr_table_elts(t);
+ te = (apr_table_entry_t *)arr->elts;
+
+ if (idx > 0 && idx <= arr->nelts
+ && !strcasecmp(key, te[idx-1].key))
+ val = te[idx-1].val;
+ else
+ val = apr_table_get(t, key);
+
+ if (val != NULL) {
+ apreq_param_t *p = apreq_value_to_param(val);
+ ST(0) = apreq_xs_param2sv(aTHX_ p, param_class, parent);
+ sv_2mortal(ST(0));
+ XSRETURN(1);
+ }
+ else {
+ XSRETURN_UNDEF;
+ }
+ }
+ else if (GIMME_V == G_ARRAY) {
+ struct apreq_xs_do_arg d = {NULL, NULL, NULL, aTHX};
+ d.pkg = param_class;
+ d.parent = parent;
+ XSprePUSH;
+ PUTBACK;
+ apr_table_do(apreq_xs_param_table_values, &d, t, SvPV_nolen(ST(1)),
NULL);
+ }
+ else
+ XSRETURN(0);
+}
+
+MP_STATIC XS(apreq_xs_param_table_NEXTKEY)
+{
+ dXSARGS;
+ SV *sv, *obj;
+ IV iv, idx;
+ const apr_table_t *t;
+ const apr_array_header_t *arr;
+ apr_table_entry_t *te;
+
+ if (!SvROK(ST(0)) || !sv_derived_from(ST(0), PARAM_TABLE_CLASS))
+ Perl_croak(aTHX_ "Usage: " PARAM_TABLE_CLASS "::NEXTKEY($table,
$key)");
+
+ sv = ST(0);
+ obj = apreq_xs_sv2object(aTHX_ sv, PARAM_TABLE_CLASS,'t');
+
+ iv = SvIVX(obj);
+ t = INT2PTR(const apr_table_t *, iv);
+ arr = apr_table_elts(t);
+ te = (apr_table_entry_t *)arr->elts;
+
+ if (items == 1)
+ SvCUR(obj) = 0;
+
+ if (SvCUR(obj) >= arr->nelts) {
+ SvCUR(obj) = 0;
+ XSRETURN_UNDEF;
+ }
+ idx = SvCUR(obj)++;
+ sv = newSVpv(te[idx].key, 0);
+ ST(0) = sv_2mortal(sv);
+ XSRETURN(1);
+}
+
+
Modified:
httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/Cookie/APR__Request__Cookie.h
URL:
http://svn.apache.org/viewcvs/httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/Cookie/APR__Request__Cookie.h?rev=306819&r1=306818&r2=306819&view=diff
==============================================================================
---
httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/Cookie/APR__Request__Cookie.h
(original)
+++
httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/Cookie/APR__Request__Cookie.h
Thu Oct 6 10:51:44 2005
@@ -1,179 +1,3 @@
-static int apreq_xs_cookie_table_values(void *data, const char *key,
- const char *val)
-{
- struct apreq_xs_do_arg *d = (struct apreq_xs_do_arg *)data;
- dTHXa(d->perl);
- dSP;
- apreq_cookie_t *c = apreq_value_to_cookie(val);
- SV *sv = apreq_xs_cookie2sv(aTHX_ c, d->pkg, d->parent);
-
- XPUSHs(sv_2mortal(sv));
- PUTBACK;
- return 1;
-}
-
-static int apreq_xs_cookie_table_do_sub(void *data, const char *key,
- const char *val)
-{
- struct apreq_xs_do_arg *d = data;
- apreq_cookie_t *c = apreq_value_to_cookie(val);
- dTHXa(d->perl);
- dSP;
- SV *sv = apreq_xs_cookie2sv(aTHX_ c, d->pkg, d->parent);
- int rv;
-
- ENTER;
- SAVETMPS;
-
- PUSHMARK(SP);
- EXTEND(SP,2);
-
- PUSHs(sv_2mortal(newSVpvn(c->v.name, c->v.nlen)));
- PUSHs(sv_2mortal(sv));
-
- PUTBACK;
- rv = call_sv(d->sub, G_SCALAR);
- SPAGAIN;
- rv = (1 == rv) ? POPi : 1;
- PUTBACK;
- FREETMPS;
- LEAVE;
-
- return rv;
-}
-
-MP_STATIC XS(apreq_xs_cookie_table_do)
-{
- dXSARGS;
- struct apreq_xs_do_arg d = { NULL, NULL, NULL, aTHX };
- const apr_table_t *t;
- int i, rv = 1;
- SV *sv, *t_obj;
- IV iv;
- MAGIC *mg;
-
- if (items < 2 || !SvROK(ST(0)) || !SvROK(ST(1)))
- Perl_croak(aTHX_ "Usage: $object->do(\\&callback, @keys)");
- sv = ST(0);
-
- t_obj = apreq_xs_sv2object(aTHX_ sv, COOKIE_TABLE_CLASS, 't');
- iv = SvIVX(t_obj);
- t = INT2PTR(const apr_table_t *, iv);
- mg = mg_find(t_obj, PERL_MAGIC_ext);
- d.parent = mg->mg_obj;
- d.pkg = mg->mg_ptr;
- d.sub = ST(1);
-
- if (items == 2) {
- rv = apr_table_do(apreq_xs_cookie_table_do_sub, &d, t, NULL);
- XSRETURN_IV(rv);
- }
-
- for (i = 2; i < items; ++i) {
- const char *key = SvPV_nolen(ST(i));
- rv = apr_table_do(apreq_xs_cookie_table_do_sub, &d, t, key, NULL);
- if (rv == 0)
- break;
- }
- XSRETURN_IV(rv);
-}
-
-MP_STATIC XS(apreq_xs_cookie_table_FETCH)
-{
- dXSARGS;
- const apr_table_t *t;
- const char *cookie_class;
- SV *sv, *obj, *parent;
- IV iv;
- MAGIC *mg;
-
- if (items != 2 || !SvROK(ST(0))
- || !sv_derived_from(ST(0), COOKIE_TABLE_CLASS))
- Perl_croak(aTHX_ "Usage: " COOKIE_TABLE_CLASS "::FETCH($table, $key)");
-
- sv = ST(0);
-
- obj = apreq_xs_sv2object(aTHX_ sv, COOKIE_TABLE_CLASS, 't');
- iv = SvIVX(obj);
- t = INT2PTR(const apr_table_t *, iv);
-
- mg = mg_find(obj, PERL_MAGIC_ext);
- cookie_class = mg->mg_ptr;
- parent = mg->mg_obj;
-
- if (GIMME_V == G_SCALAR) {
- IV idx;
- const char *key, *val;
- const apr_array_header_t *arr;
- apr_table_entry_t *te;
- key = SvPV_nolen(ST(1));
-
- idx = SvCUR(obj);
- arr = apr_table_elts(t);
- te = (apr_table_entry_t *)arr->elts;
-
- if (idx > 0 && idx <= arr->nelts
- && !strcasecmp(key, te[idx-1].key))
- val = te[idx-1].val;
- else
- val = apr_table_get(t, key);
-
- if (val != NULL) {
- apreq_cookie_t *c = apreq_value_to_cookie(val);
- ST(0) = apreq_xs_cookie2sv(aTHX_ c, cookie_class, parent);
- sv_2mortal(ST(0));
- XSRETURN(1);
- }
- else {
- XSRETURN_UNDEF;
- }
- }
- else if (GIMME_V == G_ARRAY) {
- struct apreq_xs_do_arg d = {NULL, NULL, NULL, aTHX};
- d.pkg = cookie_class;
- d.parent = parent;
- XSprePUSH;
- PUTBACK;
- apr_table_do(apreq_xs_cookie_table_values, &d, t, SvPV_nolen(ST(1)),
NULL);
- }
- else
- XSRETURN(0);
-}
-
-MP_STATIC XS(apreq_xs_cookie_table_NEXTKEY)
-{
- dXSARGS;
- SV *sv, *obj;
- IV iv, idx;
- const apr_table_t *t;
- const apr_array_header_t *arr;
- apr_table_entry_t *te;
-
- if (!SvROK(ST(0)))
- Perl_croak(aTHX_ "Usage: $table->NEXTKEY($prev)");
-
- sv = ST(0);
- obj = apreq_xs_sv2object(aTHX_ sv, COOKIE_TABLE_CLASS, 't');
-
- iv = SvIVX(obj);
- t = INT2PTR(const apr_table_t *, iv);
- arr = apr_table_elts(t);
- te = (apr_table_entry_t *)arr->elts;
-
- if (items == 1)
- SvCUR(obj) = 0;
-
- if (SvCUR(obj) >= arr->nelts) {
- SvCUR(obj) = 0;
- XSRETURN_UNDEF;
- }
- idx = SvCUR(obj)++;
- sv = newSVpv(te[idx].key, 0);
- ST(0) = sv_2mortal(sv);
- XSRETURN(1);
-}
-
-
MP_STATIC XS(XS_APR__Request__Cookie_nil)
{
dXSARGS;
Modified: httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/Cookie/Cookie.pm
URL:
http://svn.apache.org/viewcvs/httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/Cookie/Cookie.pm?rev=306819&r1=306818&r2=306819&view=diff
==============================================================================
--- httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/Cookie/Cookie.pm
(original)
+++ httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/Cookie/Cookie.pm Thu Oct
6 10:51:44 2005
@@ -22,10 +22,3 @@
my $obj = shift;
return "$obj";
}
-
-package APR::Request::Cookie::Table;
-
-sub EXISTS {
- my ($t, $key) = @_;
- return defined $t->FETCH($key);
-}
Modified: httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/Cookie/Cookie.pod
URL:
http://svn.apache.org/viewcvs/httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/Cookie/Cookie.pod?rev=306819&r1=306818&r2=306819&view=diff
==============================================================================
--- httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/Cookie/Cookie.pod
(original)
+++ httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/Cookie/Cookie.pod Thu Oct
6 10:51:44 2005
@@ -64,8 +64,7 @@
a few utility functions and constants.
This manpage documents version 2.07
-of the APR::Request::Cookie and
-APR::Request::Cookie::Table packages.
+of the APR::Request::Cookie package.
@@ -298,116 +297,9 @@
-=head1 METHODS
-
- APR::Request::Cookie::Table - read-only version of APR::Table.
-
-Tables in this class normally arise from calls to
-C<< APR::Request::jar() >>.
-
-
-
-
-=head2 cookie_class
-
- $table->cookie_class()
- $table->cookie_class($set)
-
-Get/set the class each table element is blessed into during a
-L<get> or L<FETCH> call. If defined, the class must be derived
-from APR::Request::Cookie. When called with $set, it returns
-the $table. Otherwise it returns the name of the current class,
-or undef if no cookie class is defined.
-
-
-
-=for example begin
-
- {
- package FOO;
- @ISA= 'APR::Request::Cookie';
- }
-
- $jar->cookie_class("FOO");
- ok $_->isa("FOO") for values %$jar;
-
-=for example end
-
-=for example_testing
- $jar->do(sub { ok $_[1]->isa("FOO"); });
-
-
-
-
-=head2 get
-
- $table->get($key)
-
-Same as FETCH.
-
-
-
-=head2 FETCH
-
- $table->FETCH($key)
-
-In scalar context, this returns the first value matching
-$key (note: see NEXTKEY for additional notes). The match
-is always case-insensitive. In list context, this returns
-all matching values. Note: the type of the return values
-depends on the table's current cookie_class.
-
-
-
-
-=head2 EXISTS
-
-Synonym for C<< defined >>; these tables are not
-allowed to contain undefined values. Since these
-are constant tables, they don't autovivify either.
-
-
-
-
-=head2 FIRSTKEY
-
- $table->FIRSTKEY()
-
-Returns the first key in the table.
-
-
-
-
-=head2 NEXTKEY
-
- $table->NEXTKEY()
-
-Returns the next key in the table. For perl 5.8+,
-if the key is multivalued, a subsequent FETCH on
-this key will return the corresponding value, until
-either NEXTKEY or FIRSTKEY is invoked again. For
-perl 5.6, FETCH always returns the first value.
-
-
-
-
-=head2 do
-
- $table->do($callback, @keys)
-
-Same as APR::Table::do; iterates over the table
-calling $callback->($key, $value) for each matching
[EMAIL PROTECTED] If @keys is empty, this iterates over the
-entire table.
-
-Note: The type of $value inserted into the callback
-depends on the table's current cookie_class.
-
-
-
=head1 SEE ALSO
-L<< Apache2::Cookie >>, L<< APR::Request >>, L<< APR::Table >>.
+L<< Apache2::Cookie >>, L<< APR::Request >>.
Modified: httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/Cookie/Cookie.xs
URL:
http://svn.apache.org/viewcvs/httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/Cookie/Cookie.xs?rev=306819&r1=306818&r2=306819&view=diff
==============================================================================
--- httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/Cookie/Cookie.xs
(original)
+++ httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/Cookie/Cookie.xs Thu Oct
6 10:51:44 2005
@@ -265,44 +265,3 @@
OUTPUT:
RETVAL
-MODULE = APR::Request::Cookie PACKAGE = APR::Request::Cookie::Table
-
-SV *
-cookie_class(t, subclass=&PL_sv_undef)
- APR::Request::Cookie::Table t
- SV *subclass
-
- PREINIT:
- SV *obj = apreq_xs_sv2object(aTHX_ ST(0), COOKIE_TABLE_CLASS, 't');
- MAGIC *mg = mg_find(obj, PERL_MAGIC_ext);
- char *curclass = mg->mg_ptr;
-
- CODE:
-
- if (items == 2) {
- if (!SvOK(subclass)) {
- mg->mg_ptr = NULL;
- mg->mg_len = 0;
- }
- else if (!sv_derived_from(subclass, COOKIE_CLASS)) {
- Perl_croak(aTHX_ "Usage: "
- COOKIE_TABLE_CLASS "::cookie_class($table,
$class): "
- "class %s is not derived from " COOKIE_CLASS,
- SvPV_nolen(subclass));
- }
- else {
- STRLEN len;
- mg->mg_ptr = savepv(SvPV(subclass, len));
- mg->mg_len = len;
- }
- if (curclass != NULL)
- Safefree(curclass);
-
- XSRETURN(1);
- }
-
- RETVAL = (curclass == NULL) ? &PL_sv_undef : newSVpv(curclass, 0);
-
- OUTPUT:
- RETVAL
-
Modified:
httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/Param/APR__Request__Param.h
URL:
http://svn.apache.org/viewcvs/httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/Param/APR__Request__Param.h?rev=306819&r1=306818&r2=306819&view=diff
==============================================================================
---
httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/Param/APR__Request__Param.h
(original)
+++
httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/Param/APR__Request__Param.h
Thu Oct 6 10:51:44 2005
@@ -1,181 +1,3 @@
-static int apreq_xs_param_table_values(void *data, const char *key,
- const char *val)
-{
- struct apreq_xs_do_arg *d = (struct apreq_xs_do_arg *)data;
- dTHXa(d->perl);
- dSP;
- apreq_param_t *p = apreq_value_to_param(val);
- SV *sv = apreq_xs_param2sv(aTHX_ p, d->pkg, d->parent);
-
- XPUSHs(sv_2mortal(sv));
- PUTBACK;
- return 1;
-}
-
-
-static int apreq_xs_param_table_do_sub(void *data, const char *key,
- const char *val)
-{
- struct apreq_xs_do_arg *d = data;
- apreq_param_t *p = apreq_value_to_param(val);
- dTHXa(d->perl);
- dSP;
- SV *sv = apreq_xs_param2sv(aTHX_ p, d->pkg, d->parent);
- int rv;
-
- ENTER;
- SAVETMPS;
-
- PUSHMARK(SP);
- EXTEND(SP,2);
-
- PUSHs(sv_2mortal(newSVpvn(p->v.name, p->v.nlen)));
- PUSHs(sv_2mortal(sv));
-
- PUTBACK;
- rv = call_sv(d->sub, G_SCALAR);
- SPAGAIN;
- rv = (1 == rv) ? POPi : 1;
- PUTBACK;
- FREETMPS;
- LEAVE;
-
- return rv;
-}
-
-MP_STATIC XS(apreq_xs_param_table_do)
-{
- dXSARGS;
- struct apreq_xs_do_arg d = { NULL, NULL, NULL, aTHX };
- const apr_table_t *t;
- int i, rv = 1;
- SV *sv, *t_obj;
- IV iv;
- MAGIC *mg;
-
- if (items < 2 || !SvROK(ST(0)) || !SvROK(ST(1)))
- Perl_croak(aTHX_ "Usage: $object->do(\\&callback, @keys)");
- sv = ST(0);
-
- t_obj = apreq_xs_sv2object(aTHX_ sv, PARAM_TABLE_CLASS, 't');
- iv = SvIVX(t_obj);
- t = INT2PTR(const apr_table_t *, iv);
- mg = mg_find(t_obj, PERL_MAGIC_ext);
- d.parent = mg->mg_obj;
- d.pkg = mg->mg_ptr;
- d.sub = ST(1);
-
- if (items == 2) {
- rv = apr_table_do(apreq_xs_param_table_do_sub, &d, t, NULL);
- XSRETURN_IV(rv);
- }
-
- for (i = 2; i < items; ++i) {
- const char *key = SvPV_nolen(ST(i));
- rv = apr_table_do(apreq_xs_param_table_do_sub, &d, t, key, NULL);
- if (rv == 0)
- break;
- }
- XSRETURN_IV(rv);
-}
-
-MP_STATIC XS(apreq_xs_param_table_FETCH)
-{
- dXSARGS;
- const apr_table_t *t;
- const char *param_class;
- SV *sv, *t_obj, *parent;
- IV iv;
- MAGIC *mg;
-
- if (items != 2 || !SvROK(ST(0))
- || !sv_derived_from(ST(0), PARAM_TABLE_CLASS))
- Perl_croak(aTHX_ "Usage: " PARAM_TABLE_CLASS "::FETCH($table, $key)");
-
- sv = ST(0);
-
- t_obj = apreq_xs_sv2object(aTHX_ sv, PARAM_TABLE_CLASS, 't');
- iv = SvIVX(t_obj);
- t = INT2PTR(const apr_table_t *, iv);
-
- mg = mg_find(t_obj, PERL_MAGIC_ext);
- param_class = mg->mg_ptr;
- parent = mg->mg_obj;
-
-
- if (GIMME_V == G_SCALAR) {
- IV idx;
- const char *key, *val;
- const apr_array_header_t *arr;
- apr_table_entry_t *te;
- key = SvPV_nolen(ST(1));
-
- idx = SvCUR(t_obj);
- arr = apr_table_elts(t);
- te = (apr_table_entry_t *)arr->elts;
-
- if (idx > 0 && idx <= arr->nelts
- && !strcasecmp(key, te[idx-1].key))
- val = te[idx-1].val;
- else
- val = apr_table_get(t, key);
-
- if (val != NULL) {
- apreq_param_t *p = apreq_value_to_param(val);
- ST(0) = apreq_xs_param2sv(aTHX_ p, param_class, parent);
- sv_2mortal(ST(0));
- XSRETURN(1);
- }
- else {
- XSRETURN_UNDEF;
- }
- }
- else if (GIMME_V == G_ARRAY) {
- struct apreq_xs_do_arg d = {NULL, NULL, NULL, aTHX};
- d.pkg = param_class;
- d.parent = parent;
- XSprePUSH;
- PUTBACK;
- apr_table_do(apreq_xs_param_table_values, &d, t, SvPV_nolen(ST(1)),
NULL);
- }
- else
- XSRETURN(0);
-}
-
-MP_STATIC XS(apreq_xs_param_table_NEXTKEY)
-{
- dXSARGS;
- SV *sv, *obj;
- IV iv, idx;
- const apr_table_t *t;
- const apr_array_header_t *arr;
- apr_table_entry_t *te;
-
- if (!SvROK(ST(0)) || !sv_derived_from(ST(0), PARAM_TABLE_CLASS))
- Perl_croak(aTHX_ "Usage: " PARAM_TABLE_CLASS "::NEXTKEY($table,
$key)");
-
- sv = ST(0);
- obj = apreq_xs_sv2object(aTHX_ sv, PARAM_TABLE_CLASS,'t');
-
- iv = SvIVX(obj);
- t = INT2PTR(const apr_table_t *, iv);
- arr = apr_table_elts(t);
- te = (apr_table_entry_t *)arr->elts;
-
- if (items == 1)
- SvCUR(obj) = 0;
-
- if (SvCUR(obj) >= arr->nelts) {
- SvCUR(obj) = 0;
- XSRETURN_UNDEF;
- }
- idx = SvCUR(obj)++;
- sv = newSVpv(te[idx].key, 0);
- ST(0) = sv_2mortal(sv);
- XSRETURN(1);
-}
-
-
MP_STATIC XS(XS_APR__Request__Param_nil)
{
dXSARGS;
Modified: httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/Param/Param.pm
URL:
http://svn.apache.org/viewcvs/httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/Param/Param.pm?rev=306819&r1=306818&r2=306819&view=diff
==============================================================================
--- httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/Param/Param.pm (original)
+++ httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/Param/Param.pm Thu Oct 6
10:51:44 2005
@@ -21,10 +21,3 @@
package APR::Request::Brigade::IO;
push our(@ISA), ();
-
-package APR::Request::Param::Table;
-
-sub EXISTS {
- my ($t, $key) = @_;
- return defined $t->FETCH($key);
-}
Modified: httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/Param/Param.pod
URL:
http://svn.apache.org/viewcvs/httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/Param/Param.pod?rev=306819&r1=306818&r2=306819&view=diff
==============================================================================
--- httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/Param/Param.pod (original)
+++ httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/Param/Param.pod Thu Oct
6 10:51:44 2005
@@ -76,7 +76,7 @@
This manpage documents version 2.07
of the APR::Request::Param, APR::Request::Brigade,
-and APR::Request::Param::Table packages.
+and APR::Request::Brigade::IO packages.
=head1 OVERLOADS
@@ -265,95 +265,6 @@
$param->upload_fh
Returns a seekable filehandle representing the file-upload content.
-
-
-
-
-=head1 METHODS
-
-APR::Request::Param::Table
-
-
-
-
-=head2 param_class
-
- $table->param_class()
- $table->param_class($set)
-
-
-Get/set the class each table element is blessed into during a
-C<get> or C<FETCH> call. If defined, the class must be derived
-from APR::Request::Param. When called with $set, it returns
-the $table. Otherwise it returns the name of the current class,
-or undef if no param class is defined.
-
-
-
-
-=head2 get
-
- $table->get($key)
-
-Same as FETCH.
-
-
-
-
-=head2 FETCH
-
- $table->FETCH($key)
-
-In scalar context, this returns the first value matching
-$key (see NEXTKEY for additional notes on this). The match
-is always case-insensitive. In list context, this returns
-all matching values. Note: the type of the return values
-depends on the table's current param_class.
-
-
-
-=head2 EXISTS
-
-Synonym for C<< defined >>; these tables are not
-allowed to contain undefined values. Since these
-are constant tables, they don't autovivify either.
-
-
-
-
-=head2 NEXTKEY
-
- $table->NEXTKEY()
-
-Returns the next key in the table. For perl 5.8+,
-if the key is multivalued, a subsequent FETCH on
-this key will return the corresponding value, until
-either NEXTKEY or FIRSTKEY is invoked again. For
-perl 5.6, FETCH always returns the first value.
-
-
-
-
-=head2 FIRSTKEY
-
- $table->FIRSTKEY()
-
-Returns the first key in the table.
-
-
-
-
-=head2 do
-
- $table->do($callback, @keys)
-
-Same as APR::Table::do; iterates over the table
-calling $callback->($key, $value) for each matching
[EMAIL PROTECTED] If @keys is empty, this iterates over the
-entire table.
-
-Note: The type of $value inserted into the callback
-depends on the table's current value_class.
Modified: httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/Param/Param.xs
URL:
http://svn.apache.org/viewcvs/httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/Param/Param.xs?rev=306819&r1=306818&r2=306819&view=diff
==============================================================================
--- httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/Param/Param.xs (original)
+++ httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/Param/Param.xs Thu Oct 6
10:51:44 2005
@@ -1,7 +1,8 @@
/* On Win32 without PERL_IMPLICIT_SYS, PerlLIO_link is #defined as
* link, which in turn is #defined as win32_link, but mp2's
* modperl_perl_unembed.h #undefs link, leaving link as an unresolved
- * symbol when linking Param.dll. */
+ * symbol when linking Param.dll.
+ */
#ifdef WIN32
#ifndef PERL_IMPLICIT_SYS
#undef PerlLIO_link
@@ -133,49 +134,6 @@
RETVAL = apreq_param_make(pool, n, nlen, v, vlen);
if (SvTAINTED(name) || SvTAINTED(val))
apreq_param_tainted_on(RETVAL);
-
- OUTPUT:
- RETVAL
-
-
-MODULE = APR::Request::Param PACKAGE = APR::Request::Param::Table
-
-SV *
-param_class(t, subclass=&PL_sv_undef)
- APR::Request::Param::Table t
- SV *subclass
-
- PREINIT:
- SV *obj = apreq_xs_sv2object(aTHX_ ST(0), PARAM_TABLE_CLASS, 't');
- MAGIC *mg = mg_find(obj, PERL_MAGIC_ext);
- char *curclass = mg->mg_ptr;
-
- CODE:
-
- if (items == 2) {
- if (!SvOK(subclass)) {
- mg->mg_ptr = NULL;
- mg->mg_len = 0;
- }
- else if (!sv_derived_from(subclass, PARAM_CLASS)) {
- Perl_croak(aTHX_ "Usage: "
- PARAM_TABLE_CLASS "::param_class($table,
$class): "
- "class %s is not derived from " PARAM_CLASS,
- SvPV_nolen(subclass));
- }
- else {
- STRLEN len;
- mg->mg_ptr = savepv(SvPV(subclass, len));
- mg->mg_len = len;
-
- }
- if (curclass != NULL)
- Safefree(curclass);
-
- XSRETURN(1);
- }
-
- RETVAL = (curclass == NULL) ? &PL_sv_undef : newSVpv(curclass, 0);
OUTPUT:
RETVAL
Modified: httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/Request.pm
URL:
http://svn.apache.org/viewcvs/httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/Request.pm?rev=306819&r1=306818&r2=306819&view=diff
==============================================================================
--- httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/Request.pm (original)
+++ httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/Request.pm Thu Oct 6
10:51:44 2005
@@ -34,3 +34,17 @@
package APR::Request::Custom;
our @ISA = qw/APR::Request/;
+
+package APR::Request::Cookie::Table;
+
+sub EXISTS {
+ my ($t, $key) = @_;
+ return defined $t->FETCH($key);
+}
+
+package APR::Request::Param::Table;
+
+sub EXISTS {
+ my ($t, $key) = @_;
+ return defined $t->FETCH($key);
+}
Modified: httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/Request.pod
URL:
http://svn.apache.org/viewcvs/httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/Request.pod?rev=306819&r1=306818&r2=306819&view=diff
==============================================================================
--- httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/Request.pod (original)
+++ httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/Request.pod Thu Oct 6
10:51:44 2005
@@ -52,7 +52,9 @@
a few utility functions and constants.
This manpage documents version 2.07
-of the APR::Request and APR::Request::Custom packages.
+of the APR::Request, APR::Request::Custom,
+APR::Request::Cookie::Table, and
+APR::Request::Param::Table packages.
@@ -321,6 +323,202 @@
}
+
+
+
+=head1 METHODS
+
+ APR::Request::Cookie::Table - read-only version of APR::Table.
+
+Tables in this class normally arise from calls to
+C<< APR::Request::jar() >>.
+
+
+
+
+=head2 cookie_class
+
+ $table->cookie_class()
+ $table->cookie_class($set)
+
+Get/set the class each table element is blessed into during a
+L<get> or L<FETCH> call. If defined, the class must be derived
+from APR::Request::Cookie. When called with $set, it returns
+the $table. Otherwise it returns the name of the current class,
+or undef if no cookie class is defined.
+
+
+
+=for example begin
+
+ {
+ package FOO;
+ @ISA= 'APR::Request::Cookie';
+ }
+
+ $jar->cookie_class("FOO");
+ ok $_->isa("FOO") for values %$jar;
+
+=for example end
+
+=for example_testing
+ $jar->do(sub { ok $_[1]->isa("FOO"); });
+
+
+
+
+=head2 get
+
+ $table->get($key)
+
+Same as FETCH.
+
+
+
+=head2 FETCH
+
+ $table->FETCH($key)
+
+In scalar context, this returns the first value matching
+$key (note: see NEXTKEY for additional notes). The match
+is always case-insensitive. In list context, this returns
+all matching values. Note: the type of the return values
+depends on the table's current cookie_class.
+
+
+
+
+=head2 EXISTS
+
+Synonym for C<< defined >>; these tables are not
+allowed to contain undefined values. Since these
+are constant tables, they don't autovivify either.
+
+
+
+
+=head2 FIRSTKEY
+
+ $table->FIRSTKEY()
+
+Returns the first key in the table.
+
+
+
+
+=head2 NEXTKEY
+
+ $table->NEXTKEY()
+
+Returns the next key in the table. For perl 5.8+,
+if the key is multivalued, a subsequent FETCH on
+this key will return the corresponding value, until
+either NEXTKEY or FIRSTKEY is invoked again. For
+perl 5.6, FETCH always returns the first value.
+
+
+
+
+=head2 do
+
+ $table->do($callback, @keys)
+
+Same as APR::Table::do; iterates over the table
+calling $callback->($key, $value) for each matching
[EMAIL PROTECTED] If @keys is empty, this iterates over the
+entire table.
+
+Note: The type of $value inserted into the callback
+depends on the table's current cookie_class.
+
+
+
+
+=head1 METHODS
+
+APR::Request::Param::Table
+
+
+
+
+=head2 param_class
+
+ $table->param_class()
+ $table->param_class($set)
+
+
+Get/set the class each table element is blessed into during a
+C<get> or C<FETCH> call. If defined, the class must be derived
+from APR::Request::Param. When called with $set, it returns
+the $table. Otherwise it returns the name of the current class,
+or undef if no param class is defined.
+
+
+
+
+=head2 get
+
+ $table->get($key)
+
+Same as FETCH.
+
+
+
+
+=head2 FETCH
+
+ $table->FETCH($key)
+
+In scalar context, this returns the first value matching
+$key (see NEXTKEY for additional notes on this). The match
+is always case-insensitive. In list context, this returns
+all matching values. Note: the type of the return values
+depends on the table's current param_class.
+
+
+
+=head2 EXISTS
+
+Synonym for C<< defined >>; these tables are not
+allowed to contain undefined values. Since these
+are constant tables, they don't autovivify either.
+
+
+
+
+=head2 NEXTKEY
+
+ $table->NEXTKEY()
+
+Returns the next key in the table. For perl 5.8+,
+if the key is multivalued, a subsequent FETCH on
+this key will return the corresponding value, until
+either NEXTKEY or FIRSTKEY is invoked again. For
+perl 5.6, FETCH always returns the first value.
+
+
+
+
+=head2 FIRSTKEY
+
+ $table->FIRSTKEY()
+
+Returns the first key in the table.
+
+
+
+
+=head2 do
+
+ $table->do($callback, @keys)
+
+Same as APR::Table::do; iterates over the table
+calling $callback->($key, $value) for each matching
[EMAIL PROTECTED] If @keys is empty, this iterates over the
+entire table.
+
+Note: The type of $value inserted into the callback
+depends on the table's current value_class.
Modified: httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/Request.xs
URL:
http://svn.apache.org/viewcvs/httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/Request.xs?rev=306819&r1=306818&r2=306819&view=diff
==============================================================================
--- httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/Request.xs (original)
+++ httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/Request.xs Thu Oct 6
10:51:44 2005
@@ -270,6 +270,92 @@
OUTPUT:
RETVAL
+
+MODULE = APR::Request::Param PACKAGE = APR::Request::Param::Table
+
+SV *
+param_class(t, subclass=&PL_sv_undef)
+ APR::Request::Param::Table t
+ SV *subclass
+
+ PREINIT:
+ SV *obj = apreq_xs_sv2object(aTHX_ ST(0), PARAM_TABLE_CLASS, 't');
+ MAGIC *mg = mg_find(obj, PERL_MAGIC_ext);
+ char *curclass = mg->mg_ptr;
+
+ CODE:
+
+ if (items == 2) {
+ if (!SvOK(subclass)) {
+ mg->mg_ptr = NULL;
+ mg->mg_len = 0;
+ }
+ else if (!sv_derived_from(subclass, PARAM_CLASS)) {
+ Perl_croak(aTHX_ "Usage: "
+ PARAM_TABLE_CLASS "::param_class($table,
$class): "
+ "class %s is not derived from " PARAM_CLASS,
+ SvPV_nolen(subclass));
+ }
+ else {
+ STRLEN len;
+ mg->mg_ptr = savepv(SvPV(subclass, len));
+ mg->mg_len = len;
+
+ }
+ if (curclass != NULL)
+ Safefree(curclass);
+
+ XSRETURN(1);
+ }
+
+ RETVAL = (curclass == NULL) ? &PL_sv_undef : newSVpv(curclass, 0);
+
+ OUTPUT:
+ RETVAL
+
+
+MODULE = APR::Request::Cookie PACKAGE = APR::Request::Cookie::Table
+
+SV *
+cookie_class(t, subclass=&PL_sv_undef)
+ APR::Request::Cookie::Table t
+ SV *subclass
+
+ PREINIT:
+ SV *obj = apreq_xs_sv2object(aTHX_ ST(0), COOKIE_TABLE_CLASS, 't');
+ MAGIC *mg = mg_find(obj, PERL_MAGIC_ext);
+ char *curclass = mg->mg_ptr;
+
+ CODE:
+
+ if (items == 2) {
+ if (!SvOK(subclass)) {
+ mg->mg_ptr = NULL;
+ mg->mg_len = 0;
+ }
+ else if (!sv_derived_from(subclass, COOKIE_CLASS)) {
+ Perl_croak(aTHX_ "Usage: "
+ COOKIE_TABLE_CLASS "::cookie_class($table,
$class): "
+ "class %s is not derived from " COOKIE_CLASS,
+ SvPV_nolen(subclass));
+ }
+ else {
+ STRLEN len;
+ mg->mg_ptr = savepv(SvPV(subclass, len));
+ mg->mg_len = len;
+ }
+ if (curclass != NULL)
+ Safefree(curclass);
+
+ XSRETURN(1);
+ }
+
+ RETVAL = (curclass == NULL) ? &PL_sv_undef : newSVpv(curclass, 0);
+
+ OUTPUT:
+ RETVAL
+
+
MODULE = APR::Request PACKAGE = APR::Request::Custom
APR::Request
Modified: httpd/apreq/trunk/glue/perl/xsbuilder/maps/apreq_functions.map
URL:
http://svn.apache.org/viewcvs/httpd/apreq/trunk/glue/perl/xsbuilder/maps/apreq_functions.map?rev=306819&r1=306818&r2=306819&view=diff
==============================================================================
--- httpd/apreq/trunk/glue/perl/xsbuilder/maps/apreq_functions.map (original)
+++ httpd/apreq/trunk/glue/perl/xsbuilder/maps/apreq_functions.map Thu Oct 6
10:51:44 2005
@@ -16,7 +16,7 @@
MODULE=APR::Request::Cookie PACKAGE=APR::Request::Cookie PREFIX=apreq_cookie_
apreq_cookie_expires
-MODULE=APR::Request::Cookie PACKAGE=APR::Request::Cookie::Table
PREFIX=APR__Request__Cookie__Table_
+MODULE=APR::Request PACKAGE=APR::Request::Cookie::Table
PREFIX=APR__Request__Cookie__Table_
DEFINE_get | apreq_xs_cookie_table_FETCH |
DEFINE_FETCH | apreq_xs_cookie_table_FETCH |
DEFINE_NEXTKEY | apreq_xs_cookie_table_NEXTKEY |
@@ -33,7 +33,7 @@
DEFINE_body | apreq_xs_body |
DEFINE_param | apreq_xs_param |
-MODULE=APR::Request::Param PACKAGE=APR::Request::Param::Table
PREFIX=APR__Request__Param__Table_
+MODULE=APR::Request PACKAGE=APR::Request::Param::Table
PREFIX=APR__Request__Param__Table_
DEFINE_get | apreq_xs_param_table_FETCH |
DEFINE_FETCH | apreq_xs_param_table_FETCH |
DEFINE_NEXTKEY | apreq_xs_param_table_NEXTKEY |