richter 01/09/01 14:31:10
Modified: . Changes.pod Embperl.pm Embperl.xs EmbperlObject.pm
ep.h epcmd.c epmain.c eputil.c test.pl
test/conf httpd.conf.src
Log:
- Add undef to %idat for select tag with nothing selected if
optAllFormdata is set.
- source sync <-> Embperl 2
Revision Changes Path
1.182 +5 -1 embperl/Changes.pod
Index: Changes.pod
===================================================================
RCS file: /home/cvs/embperl/Changes.pod,v
retrieving revision 1.181
retrieving revision 1.182
diff -u -r1.181 -r1.182
--- Changes.pod 2001/08/16 07:50:15 1.181
+++ Changes.pod 2001/09/01 21:31:10 1.182
@@ -25,7 +25,11 @@
- Make sure the HTML::Embperl::Mail generates correct line endings
- If Perl's STDOUT and/or STDIN are tied to any package, Embperl now
calls the Perl methods PRINT and READ for doing I/O. This currently
- only works, when not running under mod_perl.
+ only works, when not running under mod_perl.
+ - Delete unnecessary PerlFixupHandler from httpd.conf.src for make test.
+ Reported by David Merberg.
+ - Add undef to %idat for select tag with nothing selected if
+ optAllFormdata is set.
=head1 1.3.3 (RELEASE) 6. Juni 2001
1.169 +2 -2 embperl/Embperl.pm
Index: Embperl.pm
===================================================================
RCS file: /home/cvs/embperl/Embperl.pm,v
retrieving revision 1.168
retrieving revision 1.169
diff -u -r1.168 -r1.169
--- Embperl.pm 2001/08/13 10:53:44 1.168
+++ Embperl.pm 2001/09/01 21:31:10 1.169
@@ -10,7 +10,7 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
#
-# $Id: Embperl.pm,v 1.168 2001/08/13 10:53:44 richter Exp $
+# $Id: Embperl.pm,v 1.169 2001/09/01 21:31:10 richter Exp $
#
###################################################################################
@@ -64,7 +64,7 @@
@ISA = qw(Exporter DynaLoader);
-$VERSION = '1.3.4_dev-2';
+$VERSION = '1.3.4_dev-3';
# HTML::Embperl cannot be bootstrapped in nonlazy mode except
# under mod_perl, because its dependencies import symbols like ap_palloc
1.50 +7 -4 embperl/Embperl.xs
Index: Embperl.xs
===================================================================
RCS file: /home/cvs/embperl/Embperl.xs,v
retrieving revision 1.49
retrieving revision 1.50
diff -u -r1.49 -r1.50
--- Embperl.xs 2001/06/15 06:28:18 1.49
+++ Embperl.xs 2001/09/01 21:31:10 1.50
@@ -195,12 +195,13 @@
void
-embperl_GetPackageOfFile(sSourcefile, sPackage, mtime)
+embperl_GetPackageOfFile(sSourcefile, sPackage, mtime, bEP1Compat)
char * sSourcefile
char * sPackage
double mtime
+ int bEP1Compat
PPCODE:
- tFile * pFile = GetFileData (sSourcefile, sPackage, mtime) ;
+ tFile * pFile = GetFileData (sSourcefile, sPackage, mtime, bEP1Compat) ;
EXTEND(SP,2) ;
PUSHs(sv_2mortal(newSViv(pFile -> mtime == -1?1:0))) ;
PUSHs(sv_2mortal(newSVpv(pFile -> sCurrPackage, pFile -> nCurrPackage))) ;
@@ -793,12 +794,14 @@
RETVAL = r -> pCodeSV ;
if (items > 1)
{
+ if (r -> pCodeSV)
+ SvREFCNT_dec (r -> pCodeSV) ;
r -> pCodeSV = ST(1) ;
SvREFCNT_inc (r -> pCodeSV) ;
}
ST(0) = RETVAL;
- if (RETVAL != &sv_undef)
- sv_2mortal(ST(0));
+ /*if (RETVAL != &sv_undef)
+ sv_2mortal(ST(0));*/
1.45 +11 -5 embperl/EmbperlObject.pm
Index: EmbperlObject.pm
===================================================================
RCS file: /home/cvs/embperl/EmbperlObject.pm,v
retrieving revision 1.44
retrieving revision 1.45
diff -u -r1.44 -r1.45
--- EmbperlObject.pm 2001/05/15 04:50:06 1.44
+++ EmbperlObject.pm 2001/09/01 21:31:10 1.45
@@ -10,7 +10,7 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
#
-# $Id: EmbperlObject.pm,v 1.44 2001/05/15 04:50:06 richter Exp $
+# $Id: EmbperlObject.pm,v 1.45 2001/09/01 21:31:10 richter Exp $
#
###################################################################################
@@ -256,7 +256,7 @@
{
print HTML::Embperl::LOG "[$$]EmbperlObject Found Base: $fn\n" if ($debug);
print HTML::Embperl::LOG "[$$]EmbperlObject path: $searchpath\n" if
($debug);
- my ($basenew, $basepackage) = HTML::Embperl::GetPackageOfFile ($fn, $req ->
{'package'} || '', -M _) ;
+ my ($basenew, $basepackage) = HTML::Embperl::GetPackageOfFile ($fn, $req ->
{'package'} || '', -M _, $ENV{EMBPERL_EP1COMPAT} || 0) ;
if (!-f $filename && exists $req -> {object_fallback})
{
@@ -268,7 +268,7 @@
my ($new, $package) ;
- ($new, $package) = HTML::Embperl::GetPackageOfFile ($filename, $req ->
{'package'} || '', -M _) if (!$fallback) ;
+ ($new, $package) = HTML::Embperl::GetPackageOfFile ($filename, $req ->
{'package'} || '', -M _, $ENV{EMBPERL_EP1COMPAT} || 0) if (!$fallback) ;
if ($basenew)
{
@@ -276,10 +276,16 @@
HTML::Embperl::Execute ({%$req, inputfile => $fn, import => 0 }) ;
- no strict ;
+ #no strict ;
+ #@{"$basepackage\:\:ISA"} = ($req -> {object_handler_class} ||
'HTML::Embperl::Req') ;
+ #use strict ;
+ }
+ no strict ;
+ if (!@{"$basepackage\:\:ISA"})
+ {
@{"$basepackage\:\:ISA"} = ($req -> {object_handler_class} ||
'HTML::Embperl::Req') ;
- use strict ;
}
+ use strict ;
if ($new || $fallback)
{
1.39 +2 -1 embperl/ep.h
Index: ep.h
===================================================================
RCS file: /home/cvs/embperl/ep.h,v
retrieving revision 1.38
retrieving revision 1.39
diff -u -r1.38 -r1.39
--- ep.h 2001/06/15 06:28:18 1.38
+++ ep.h 2001/09/01 21:31:10 1.39
@@ -220,7 +220,8 @@
tFile * GetFileData (/*in*/ char * sSourcefile,
/*in*/ char * sPackage,
- /*in*/ double mtime) ;
+ /*in*/ double mtime,
+ /*in*/ int bEP1Compat) ;
tConf * SetupConfData (/*in*/ HV * pReqInfo,
1.46 +30 -2 embperl/epcmd.c
Index: epcmd.c
===================================================================
RCS file: /home/cvs/embperl/epcmd.c,v
retrieving revision 1.45
retrieving revision 1.46
diff -u -r1.45 -r1.46
--- epcmd.c 2001/08/13 10:53:44 1.45
+++ epcmd.c 2001/09/01 21:31:10 1.46
@@ -10,7 +10,7 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
#
-# $Id: epcmd.c,v 1.45 2001/08/13 10:53:44 richter Exp $
+# $Id: epcmd.c,v 1.46 2001/09/01 21:31:10 richter Exp $
#
###################################################################################*/
@@ -62,6 +62,8 @@
/*in*/ const char * sArg) ;
static int HtmlSelect (/*i/o*/ register req * r,
/*in*/ const char * sArg) ;
+static int HtmlEndselect (/*i/o*/ register req * r,
+ /*in*/ const char * sArg) ;
static int HtmlOption (/*i/o*/ register req * r,
/*in*/ const char * sArg) ;
static int HtmlEndtable (/*i/o*/ register req * r,
@@ -101,7 +103,7 @@
{ "/form", HtmlEndform, 0, 0, cmdNorm, 0, 0, cnNop , 0
, 1 } ,
{ "/menu", HtmlEndtable, 0, 1, cmdTable, 0, 0, cnMenu ,
optDisableTableScan, 1 } ,
{ "/ol", HtmlEndtable, 0, 1, cmdTable, 0, 0, cnOl ,
optDisableTableScan, 1 } ,
- { "/select", HtmlEndtable, 0, 1, cmdTable, 0, 0, cnSelect ,
optDisableSelectScan, 1 } ,
+ { "/select", HtmlEndselect, 0, 1, cmdTable, 0, 0, cnSelect ,
optDisableSelectScan, 1 } ,
{ "/table", HtmlEndtable, 0, 1, cmdTable, 0, 0, cnTable ,
optDisableTableScan, 1 } ,
{ "/textarea", HtmlEndtextarea, 0, 1, cmdTextarea, 0, 0, cnNop ,
optDisableInputScan, 1 } ,
{ "/tr", HtmlEndrow, 0, 1, cmdTablerow, 0, 0, cnTr ,
optDisableTableScan, 1 } ,
@@ -1732,6 +1734,32 @@
}
}
+
+/* ---------------------------------------------------------------------------- */
+/* */
+/* /select tag ... */
+/* */
+/* ---------------------------------------------------------------------------- */
+
+static int HtmlEndselect (/*i/o*/ register req * r,
+ /*in*/ const char * sArg)
+ {
+ if (r -> bOptions & optAllFormData)
+ {
+ char * pName ;
+ int l ;
+ EPENTRY (HtmlEndselect) ;
+
+ pName = r -> HtmlStack.State.sArg?r -> HtmlStack.State.sArg:"" ;
+ l = strlen (pName) ;
+
+ if (!hv_exists (r -> pInputHash, pName, l))
+ if (hv_store (r -> pInputHash, pName, l, &sv_undef, 0) == NULL)
+ return rcHashError ;
+ }
+
+ return HtmlEndtable (r, sArg) ;
+ }
1.113 +5 -4 embperl/epmain.c
Index: epmain.c
===================================================================
RCS file: /home/cvs/embperl/epmain.c,v
retrieving revision 1.112
retrieving revision 1.113
diff -u -r1.112 -r1.113
--- epmain.c 2001/08/13 10:53:44 1.112
+++ epmain.c 2001/09/01 21:31:10 1.113
@@ -10,7 +10,7 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
#
-# $Id: epmain.c,v 1.112 2001/08/13 10:53:44 richter Exp $
+# $Id: epmain.c,v 1.113 2001/09/01 21:31:10 richter Exp $
#
###################################################################################*/
@@ -1979,7 +1979,8 @@
tFile * GetFileData (/*in*/ char * sSourcefile,
/*in*/ char * sPackage,
- /*in*/ double mtime)
+ /*in*/ double mtime,
+ /*in*/ int bEP1Compat)
{
SV * * ppSV ;
@@ -2016,8 +2017,8 @@
strcat( cache_key, olddir );
-#ifdef EP2xxx
- if ( pConf->bEP1Compat )
+#ifdef EP2
+ if ( bEP1Compat )
{
strcat( cache_key, "-1" ); /* make sure Embperl 1.x compatible files get
another namespace */
cache_key_len += 2 ;
1.26 +22 -5 embperl/eputil.c
Index: eputil.c
===================================================================
RCS file: /home/cvs/embperl/eputil.c,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -r1.25 -r1.26
--- eputil.c 2001/07/18 14:30:21 1.25
+++ eputil.c 2001/09/01 21:31:10 1.26
@@ -10,7 +10,7 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
#
-# $Id: eputil.c,v 1.25 2001/07/18 14:30:21 richter Exp $
+# $Id: eputil.c,v 1.26 2001/09/01 21:31:10 richter Exp $
#
###################################################################################*/
@@ -391,6 +391,23 @@
return nLen ;
}
+#ifdef EP2
+ if (bInUrl == 16)
+ {
+ /* Just remove \ for rtf */
+ if (nLen == 0)
+ nLen = strlen (sData) ;
+ e = sData + nLen ;
+ while (p < e)
+ {
+ if (*p == '\\' && p[1] != '\0')
+ *p++ = ' ' ;
+ p++ ;
+ }
+ return nLen ;
+ }
+#endif
+
s = NULL ;
if (nLen == 0)
nLen = strlen (sData) ;
@@ -1037,10 +1054,10 @@
(void)hv_iterinit(symtab);
while ((val = hv_iternextsv(symtab, &key, &klen)))
{
- if(SvTYPE(val) != SVt_PVGV)
+ if(SvTYPE(val) != SVt_PVGV || SvANY(val) == NULL)
{
if (bDebug)
- lprintf (r, "[%d]CUP: Ignore ??? because it's no gv\n", r -> nPid) ;
+ lprintf (r, "[%d]CUP: Ignore %s because it's no gv\n", r -> nPid, key)
;
continue;
}
@@ -1087,7 +1104,7 @@
sObjName = NULL ;
- lprintf (r, "[%d]CUP: type = %d flags=%x\n", r -> nPid, SvTYPE
(GvSV((GV*)val)), SvFLAGS (GvSV((GV*)val))) ;
+ /* lprintf (r, "[%d]CUP: type = %d flags=%x\n", r -> nPid, SvTYPE
(GvSV((GV*)val)), SvFLAGS (GvSV((GV*)val))) ; */
if((sv = GvSV((GV*)val)) && SvTYPE (sv) == SVt_PVMG)
{
HV * pStash = SvSTASH (sv) ;
@@ -1110,7 +1127,7 @@
if((sv = GvSV((GV*)val)) && SvROK (sv) && SvOBJECT (SvRV(sv)))
{
HV * pStash = SvSTASH (SvRV(sv)) ;
- lprintf (r, "[%d]CUP: rv type = %d\n", r -> nPid, SvTYPE
(SvRV(GvSV((GV*)val)))) ;
+ /* lprintf (r, "[%d]CUP: rv type = %d\n", r -> nPid, SvTYPE
(SvRV(GvSV((GV*)val)))) ; */
if (pStash)
{
sObjName = HvNAME(pStash) ;
1.114 +26 -3 embperl/test.pl
Index: test.pl
===================================================================
RCS file: /home/cvs/embperl/test.pl,v
retrieving revision 1.113
retrieving revision 1.114
diff -u -r1.113 -r1.114
--- test.pl 2001/08/16 07:50:15 1.113
+++ test.pl 2001/09/01 21:31:10 1.114
@@ -11,7 +11,7 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
#
-# $Id: test.pl,v 1.113 2001/08/16 07:50:15 richter Exp $
+# $Id: test.pl,v 1.114 2001/09/01 21:31:10 richter Exp $
#
###################################################################################
@@ -647,6 +647,17 @@
'offline' => 1,
'param' => { 'Nachname' => 'Richter', Vorname => 'Gerald' },
},
+ 'rtf/rtfadv.asc' => {
+ 'version' => 2,
+ 'syntax' => 'RTF',
+ 'offline' => 1,
+ 'param' => [
+ { 'adressen_anrede' => 'Herr', 'adressen_name' =>
'Richter', 'adressen_vorname' => 'Gerald' },
+ { 'adressen_anrede' => 'Frau', 'adressen_name' => 'Weis',
'adressen_vorname' => 'Ulrike' },
+ { 'adressen_anrede' => 'Frau', 'adressen_name' => 'Weis',
'adressen_vorname' => 'Sarah' },
+ { 'adressen_anrede' => 'Frau', 'adressen_name' => 'Weis',
'adressen_vorname' => 'Marissa' },
+ ]
+ },
'rtf/rtfloop.asc' => {
'version' => 2,
'syntax' => 'RTF',
@@ -659,6 +670,18 @@
{ 'Kunde' => 'blabla', Kurs => 'blubblub', 'Nachname' =>
'Richter5', Vorname => 'Gerald5' },
]
},
+ 'rtf/rtfmeta.asc' => {
+ 'version' => 2,
+ 'syntax' => 'RTF',
+ 'offline' => 1,
+ 'param' => [
+ { 'adressen_anrede' => 'Herr', 'adressen_name' =>
'Richter', 'nr' => 11 },
+ { 'adressen_anrede' => 'Herr', 'adressen_name' =>
'Richter', 'nr' => 12 },
+ { 'adressen_anrede' => 'Herr', 'adressen_name' =>
'Richter', 'nr' => 13 },
+ { 'adressen_anrede' => 'Frau', 'adressen_name' => 'Weis',
'nr' => 21 },
+ { 'adressen_anrede' => 'Frau', 'adressen_name' => 'Weis',
'nr' => 22 },
+ ]
+ },
) ;
for ($i = 0 ; $i < @testdata; $i += 2)
@@ -1825,7 +1848,7 @@
},
{
text => 'Wait for expire',
- 'sleep' => 2,
+ 'sleep' => 3,
},
{
text => 'Expires in 1 sec (reexec)',
@@ -1932,7 +1955,7 @@
},
{
text => 'Wait for expire',
- 'sleep' => 2,
+ 'sleep' => 3,
},
{
text => '$EXPIRES in source (reexc)',
1.44 +13 -13 embperl/test/conf/httpd.conf.src
Index: httpd.conf.src
===================================================================
RCS file: /home/cvs/embperl/test/conf/httpd.conf.src,v
retrieving revision 1.43
retrieving revision 1.44
diff -u -r1.43 -r1.44
--- httpd.conf.src 2001/08/14 04:28:08 1.43
+++ httpd.conf.src 2001/09/01 21:31:10 1.44
@@ -333,19 +333,19 @@
Options ExecCGI
</Location>
-<Location /registrydbg/>
-PerlFixupHandler Apache::DB
-SetHandler perl-script
-PerlHandler Apache::Registry
-Options ExecCGI
-</Location>
-
-<Location /embperldbg/>
-PerlFixupHandler Apache::DB
-SetHandler perl-script
-PerlHandler HTML::Embperl
-Options ExecCGI
-</Location>
+#<Location /registrydbg/>
+#PerlFixupHandler Apache::DB
+#SetHandler perl-script
+#PerlHandler Apache::Registry
+#Options ExecCGI
+#</Location>
+#
+#<Location /embperldbg/>
+#PerlFixupHandler Apache::DB
+#SetHandler perl-script
+#PerlHandler HTML::Embperl
+#Options ExecCGI
+#</Location>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]