Author: richter Date: Tue Jul 16 04:38:26 2013 New Revision: 1503556 URL: http://svn.apache.org/r1503556 Log: - hash order and exit adaption for Perl 5.18
Added: perl/embperl/trunk/test/cmp/includeerr2.htm518 Modified: perl/embperl/trunk/Changes.pod perl/embperl/trunk/Embperl.pm perl/embperl/trunk/Embperl/Syntax/HTML.pm perl/embperl/trunk/MANIFEST perl/embperl/trunk/Old.xs perl/embperl/trunk/epeval.c perl/embperl/trunk/epparse.c perl/embperl/trunk/test.pl perl/embperl/trunk/test/cmp/escape.htm perl/embperl/trunk/test/cmp/hidden.htm perl/embperl/trunk/test/cmp/include.htm Modified: perl/embperl/trunk/Changes.pod URL: http://svn.apache.org/viewvc/perl/embperl/trunk/Changes.pod?rev=1503556&r1=1503555&r2=1503556&view=diff ============================================================================== --- perl/embperl/trunk/Changes.pod (original) +++ perl/embperl/trunk/Changes.pod Tue Jul 16 04:38:26 2013 @@ -13,6 +13,12 @@ - Fixed a refcounting problem cause message "Attempt to free unreferenced scalar" during mod_perl startup with Perl 5.14.x + - Fix some dependencies on hash order inside the parser + which causes Embperl to fail with Perl >= 5.18 because + of hash randomisation. + - Changed the way exit passed through internaly, so it + works with Perl >= 5.18 + - Adapted tests to Perl 5.18 - Fix output inside of Registry script for mod_perl 2.0.4+ - Fix problem with error output on stderr for Windows 64Bit - removed support for XALAN XML parser. It was outdated Modified: perl/embperl/trunk/Embperl.pm URL: http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl.pm?rev=1503556&r1=1503555&r2=1503556&view=diff ============================================================================== --- perl/embperl/trunk/Embperl.pm (original) +++ perl/embperl/trunk/Embperl.pm Tue Jul 16 04:38:26 2013 @@ -319,7 +319,7 @@ sub get_multipart_formdata foreach ( @$ffld ) { # the param_fetch needs CGI.pm 2.43 - $params = $cgi->param_fetch( $_ ) ; + $params = $cgi->param_fetch( -name => $_ ) ; #$params = $cgi->{$_} ; if ($#$params > 0) { Modified: perl/embperl/trunk/Embperl/Syntax/HTML.pm URL: http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Syntax/HTML.pm?rev=1503556&r1=1503555&r2=1503556&view=diff ============================================================================== --- perl/embperl/trunk/Embperl/Syntax/HTML.pm (original) +++ perl/embperl/trunk/Embperl/Syntax/HTML.pm Tue Jul 16 04:38:26 2013 @@ -150,14 +150,14 @@ sub AddTag $self -> AddToRoot ({ - 'HTML Tag' => { + 'A HTML Tag' => { 'text' => '<', 'end' => '>', } - }) if (!exists $self -> {-root}{'HTML Tag'}) ; + }) if (!exists $self -> {-root}{'A HTML Tag'}) ; - $self -> AddElement ('HTML Tag', @_) ; + $self -> AddElement ('A HTML Tag', @_) ; } Modified: perl/embperl/trunk/MANIFEST URL: http://svn.apache.org/viewvc/perl/embperl/trunk/MANIFEST?rev=1503556&r1=1503555&r2=1503556&view=diff ============================================================================== --- perl/embperl/trunk/MANIFEST (original) +++ perl/embperl/trunk/MANIFEST Tue Jul 16 04:38:26 2013 @@ -238,6 +238,7 @@ mod_embperl.c test.pl test/cmp/includeerr3.htm514 test/cmp/includeerr2.htm514 +test/cmp/includeerr2.htm518 test/cmp/error.htm514 test/cmp/varerr.htm514 test/cmp/Execute.htm Modified: perl/embperl/trunk/Old.xs URL: http://svn.apache.org/viewvc/perl/embperl/trunk/Old.xs?rev=1503556&r1=1503555&r2=1503556&view=diff ============================================================================== --- perl/embperl/trunk/Old.xs (original) +++ perl/embperl/trunk/Old.xs Tue Jul 16 04:38:26 2013 @@ -136,6 +136,7 @@ void embperl_exit(...) CODE: /* from mod_perl's perl_util.c */ + /* does not work with Perl >= 5.18 struct ufuncs umg; umg.uf_val = errgv_empty_set; @@ -143,17 +144,18 @@ CODE: umg.uf_index = (IV)0; sv_magic(ERRSV, Nullsv, 'U', (char*) &umg, sizeof(umg)); + */ ENTER; SAVESPTR(diehook); diehook = Nullsv; if (items > 0) - croak("request %d", SvIV(ST(0))); + croak(">embperl_exit< request %d", SvIV(ST(0))); else - croak("component"); + croak(">embperl_exit< component"); LEAVE; /* we don't get this far, but croak() will rewind */ - sv_unmagic(ERRSV, 'U'); + /* sv_unmagic(ERRSV, 'U'); */ Modified: perl/embperl/trunk/epeval.c URL: http://svn.apache.org/viewvc/perl/embperl/trunk/epeval.c?rev=1503556&r1=1503555&r2=1503556&view=diff ============================================================================== --- perl/embperl/trunk/epeval.c (original) +++ perl/embperl/trunk/epeval.c Tue Jul 16 04:38:26 2013 @@ -556,7 +556,8 @@ int CallCV (/*i/o*/ register req * r, STRLEN l ; char * p ; - if (SvMAGICAL (pSVErr) && mg_find (pSVErr, 'U')) + p = SvPV (pSVErr, l) ; + if (p && l > 14 && strncmp(p, ">embperl_exit<", 14) == 0) { /* On an Apache::exit call, the function croaks with error having 'U' magic. * When we get this return, we'll just give up and quit this file completely, @@ -572,7 +573,6 @@ int CallCV (/*i/o*/ register req * r, if (r -> Component.Config.bDebug & dbgEval) lprintf (r -> pApp, "[%d]EVAL> exit called\n", r -> pThread -> nPid) ; - sv_unmagic(pSVErr,'U'); sv_setpv(pSVErr,""); r -> Component.Config.bOptions |= optNoUncloseWarn ; @@ -581,7 +581,6 @@ int CallCV (/*i/o*/ register req * r, return rcExit ; } - p = SvPV (pSVErr, l) ; if (l > sizeof (r -> errdat1) - 1) l = sizeof (r -> errdat1) - 1 ; strncpy (r -> errdat1, p, l) ; @@ -844,27 +843,26 @@ int CallStoredCV (/*i/o*/ register req STRLEN l ; char * p ; - if (SvMAGICAL (pSVErr) && mg_find (pSVErr, 'U')) + p = SvPV (pSVErr, l) ; + if (p && l > 14 && strncmp(p, ">embperl_exit<", 14) == 0) { /* On an Apache::exit call, the function croaks with error having 'U' magic. * When we get this return, we'll just give up and quit this file completely, * without error. */ /*struct magic * m = SvMAGIC (pSVErr) ;*/ - tDomTree * pDomTree = DomTree_self (r -> Component.xCurrDomTree) ; tIndex n = ArrayGetSize (r -> pApp, pDomTree -> pCheckpoints) ; if (n > 2) DomTree_checkpoint (r, n-1) ; p = SvPV(ERRSV, l) ; - if (l > 0 && strncmp (p, "request ",8) == 0) + if (l > 0 && strncmp (p, ">embperl_exit< request ", 23) == 0) r -> bExit = 1 ; if (r -> Component.Config.bDebug & dbgEval) lprintf (r -> pApp, "[%d]EVAL> %s exit called (%s)\n", r -> pThread -> nPid, r -> bExit?"request":"component", p?p:"") ; - sv_unmagic(pSVErr,'U'); sv_setpv(pSVErr,""); r -> Component.Config.bOptions |= optNoUncloseWarn ; @@ -873,7 +871,6 @@ int CallStoredCV (/*i/o*/ register req return rcExit ; } - p = SvPV (pSVErr, l) ; if (l > sizeof (r -> errdat1) - 1) l = sizeof (r -> errdat1) - 1 ; strncpy (r -> errdat1, p, l) ; Modified: perl/embperl/trunk/epparse.c URL: http://svn.apache.org/viewvc/perl/embperl/trunk/epparse.c?rev=1503556&r1=1503555&r2=1503556&view=diff ============================================================================== --- perl/embperl/trunk/epparse.c (original) +++ perl/embperl/trunk/epparse.c Tue Jul 16 04:38:26 2013 @@ -46,6 +46,17 @@ static int CmpToken (/*in*/ const void * } /* ------------------------------------------------------------------------ */ +/* compare tokens */ +/* ------------------------------------------------------------------------ */ + +static int RevCmpToken (/*in*/ const void * p1, + /*in*/ const void * p2) + + { + return strcmp (*((const char * *)p2), *((const char * *)p1)) ; + } + +/* ------------------------------------------------------------------------ */ /* compare tokens for descending order */ /* ------------------------------------------------------------------------ */ @@ -81,6 +92,14 @@ static int CheckProcInfo (/*i/o*/ r I32 l ; HV * pHVProcInfo ; int n ; + int i ; + int m ; + typedef struct tSortToken + { + char * pKey ; + SV * pSVValue ; + } tSortToken ; + tSortToken * pSortTokenHash ; epTHX ; ppSV = hv_fetch(pHash, "procinfo", sizeof ("procinfo") - 1, 0) ; @@ -95,11 +114,28 @@ static int CheckProcInfo (/*i/o*/ r pHVProcInfo = (HV *)SvRV (*ppSV) ; - hv_iterinit (pHVProcInfo ) ; - while ((pEntry = hv_iternext (pHVProcInfo))) - { - pKey = hv_iterkey (pEntry, &l) ; - pSVValue = hv_iterval (pHVProcInfo , pEntry) ; + m = 0 ; + n = HvKEYS (pHVProcInfo) ; + pSortTokenHash = (tSortToken *)malloc (sizeof (struct tSortToken) * n) ; + hv_iterinit (pHVProcInfo) ; + while ((pEntry = hv_iternext (pHVProcInfo))) + { + pKey = hv_iterkey (pEntry, &l) ; + pSVValue = hv_iterval (pHVProcInfo, pEntry) ; + + pSortTokenHash[m].pKey = pKey ; + pSortTokenHash[m].pSVValue = pSVValue ; + m++ ; + } + + qsort (pSortTokenHash, m, sizeof (struct tSortToken), RevCmpToken) ; + + i = 0 ; + while (i < m) + { + pKey = pSortTokenHash[i].pKey ; + pSVValue = pSortTokenHash[i].pSVValue ; + i++ ; if (pSVValue == NULL || !SvROK (pSVValue) || SvTYPE (SvRV (pSVValue)) != SVt_PVHV) { @@ -227,7 +263,14 @@ int BuildTokenTable (/*i/o*/ register re I32 l ; STRLEN len ; int n ; + int m ; int i ; + typedef struct tSortToken + { + char * pKey ; + SV * pToken ; + } tSortToken ; + tSortToken * pSortTokenHash ; unsigned char * pStartChars = pTokenTable -> cStartChars ; unsigned char * pAllChars = pTokenTable -> cAllChars ; epTHX ; @@ -297,17 +340,37 @@ int BuildTokenTable (/*i/o*/ register re } } - n = 0 ; + m = 0 ; + n = HvKEYS (pTokenHash) ; + pSortTokenHash = (tSortToken *)malloc (sizeof (struct tSortToken) * n) ; hv_iterinit (pTokenHash) ; while ((pEntry = hv_iternext (pTokenHash))) { + pKey = hv_iterkey (pEntry, &l) ; + pToken = hv_iterval (pTokenHash, pEntry) ; + + pSortTokenHash[m].pKey = pKey ; + pSortTokenHash[m].pToken = pToken ; + m++ ; + } + + qsort (pSortTokenHash, m, sizeof (struct tSortToken), CmpToken) ; + + n = 0 ; + i = 0 ; + while (i < m) + { HV * pHash ; struct tTokenTable * pNewTokenTable ; char * sContains ; char * sC ; - pKey = hv_iterkey (pEntry, &l) ; - pToken = hv_iterval (pTokenHash, pEntry) ; + pKey = pSortTokenHash[i].pKey ; + pToken = pSortTokenHash[i].pToken ; + i++ ; + if (r -> Component.Config.bDebug & dbgBuildToken) + lprintf (r -> pApp, "[%d]TOKENKey: %s\n", r -> pThread -> nPid, pKey) ; + if (*pKey != '-') { if (!SvROK (pToken) || SvTYPE (SvRV (pToken)) != SVt_PVHV) @@ -404,6 +467,8 @@ int BuildTokenTable (/*i/o*/ register re } } + free (pSortTokenHash) ; + qsort (pTable, numTokens - 1, sizeof (struct tToken), pTokenTable -> bLSearch?CmpTokenDesc:CmpToken) ; Modified: perl/embperl/trunk/test.pl URL: http://svn.apache.org/viewvc/perl/embperl/trunk/test.pl?rev=1503556&r1=1503555&r2=1503556&view=diff ============================================================================== --- perl/embperl/trunk/test.pl (original) +++ perl/embperl/trunk/test.pl Tue Jul 16 04:38:26 2013 @@ -422,9 +422,16 @@ 'errors' => 3, 'version' => 2, 'repeat' => 2, - 'condition' => '$] >= 5.014000', + 'condition' => '$] >= 5.014000 && $] < 5.018000', 'cmpext' => '514', }, + 'includeerr2.htm' => { + 'errors' => 9, + 'version' => 2, + 'repeat' => 2, + 'condition' => '$] >= 5.018000', + 'cmpext' => '518', + }, 'includeerr3.htm' => { 'errors' => 2, 'condition' => '$] < 5.014000', @@ -930,6 +937,7 @@ 'version' => 2, 'syntax' => 'RTF', 'offline' => 1, + 'condition' => '$] < 5.018000', 'param' => [ { 'adressen_anrede' => 'Herr', 'adressen_name' => 'Richter', 'adressen_vorname' => 'Gerald', anschreiben_typ => 'Dienstadresse', adressen_dienststelle => 'adr dienst', adressen_dienstbezeichnung => 'DBEZ', adressen_dienst_strasse => 'dstr 1', adressen_priv_strasse => 'pstr 1' }, { 'adressen_anrede' => 'Herr', 'adressen_name' => 'Richter2', 'adressen_vorname' => 'Gerald2', anschreiben_typ => 'Dienstadresse', adressen_dienststelle => 'adr dienst 2', adressen_dienstbezeichnung => 'DBEZ2' }, Modified: perl/embperl/trunk/test/cmp/escape.htm URL: http://svn.apache.org/viewvc/perl/embperl/trunk/test/cmp/escape.htm?rev=1503556&r1=1503555&r2=1503556&view=diff ============================================================================== --- perl/embperl/trunk/test/cmp/escape.htm (original) +++ perl/embperl/trunk/test/cmp/escape.htm Tue Jul 16 04:38:26 2013 @@ -41,17 +41,17 @@ LAYER: <layer src="http://localhost/t IMG: <img src="http://localhost/tests?id=abcdefghijklmnopqrstuvwxyz&text=This%20is%20a%20text%20%3F%20%26%20%2B%20-%20%2521" name="%20foo"> FORM: <form action="http://localhost/tests?id=abcdefghijklmnopqrstuvwxyz&text=This%20is%20a%20text%20%3F%20%26%20%2B%20-%20%2521" name="%20foo"> -Hash in A <a href="http://localhost/tests?A=1&B=2"> -Array in A <a href="http://localhost/tests?X=9&Y=8&Z=7"> +^Hash in A <a href=\"http:\/\/localhost\/tests\?(A=1\&B=2|B=2\&A=1)\"> +^Array in A <a href=\"http:\/\/localhost\/tests\?(X=9|Y=8|Z=7)\&(X=9|Y=8|Z=7)\&(X=9|Y=8|Z=7)\"> -Hash in H <a href="http://localhost/tests?A=1&B=2"> +^Hash in H <a href=\"http:\/\/localhost\/tests\?(A=1\&B=2|B=2\&A=1)\"> ^Array in H <a href=\"http\:\/\/localhost\/tests\?(X=9|Y=8|Z=7)\&(X=9|Y=8|Z=7)\&(X=9|Y=8|Z=7)\"> ^<a href=\"tst.html\?(par1=1|par2=2)&(par1=1|par2=2)\">1<\/a> -^<a href=\"tst.html\?(par1=1&par2=2|par2=2&par1=1)&par3=3\">2<\/a> -<a href="tst.html?par1=1&par2=2">3</a> -<a href="tst.html?par1=1&par2=2&par3=3">4</a> +^<a href=\"tst.html\?(par1=1&par2=2&par3=3|par2=2&par1=1&par3=3|par2=2&par3=3&par1=1|par1=1&par3=3&par2=2|par3=3&par2=2&par1=1|par3=3&par1=1&par2=2)\">2<\/a> +^<a href=\"tst.html\?(par1=1&par2=2|par2=2&par1=1)\">3</a> +^<a href=\"tst.html\?(par1=1&par2=2&par3=3|par2=2&par1=1&par3=3|par2=2&par3=3&par1=1|par1=1&par3=3&par2=2|par3=3&par2=2&par1=1|par3=3&par1=1&par2=2)\">4</a> Modified: perl/embperl/trunk/test/cmp/hidden.htm URL: http://svn.apache.org/viewvc/perl/embperl/trunk/test/cmp/hidden.htm?rev=1503556&r1=1503555&r2=1503556&view=diff ============================================================================== --- perl/embperl/trunk/test/cmp/hidden.htm (original) +++ perl/embperl/trunk/test/cmp/hidden.htm Tue Jul 16 04:38:26 2013 @@ -9,10 +9,10 @@ <p> </p> a1<input type="hidden" name="feld1" value="Wert1"><input type="hidden" name="feld2" value="Wert2"><input type="hidden" name="feld3" value="Wert3"><input type="hidden" name="feld4" value="Wert4?foo=bar"> - a2<input type="hidden" name="feld1" value="Pfalz"><input type="hidden" name="feld2" value="Rhein"hessen"&Pfalz"> +^ a2(<input type=\"hidden\" name=\"feld1\" value=\"Pfalz\"><input type=\"hidden\" name=\"feld2\" value=\"Rhein"hessen"&Pfalz\">|<input type=\"hidden\" name=\"feld2\" value=\"Rhein"hessen"&Pfalz\"><input type=\"hidden\" name=\"feld1\" value=\"Pfalz\">) a3<input type="hidden" name="feld2" value="Rhein"hessen"&Pfalz"> a4<input type="hidden" name="feld2" value="Rhein"hessen"&Pfalz"> - a5<input type="hidden" name="feld1" value="Pfalz"><input type="hidden" name="feld2" value="Rhein"hessen"&Pfalz"> +^ a5(<input type=\"hidden\" name=\"feld1\" value=\"Pfalz\"><input type=\"hidden\" name=\"feld2\" value=\"Rhein"hessen"&Pfalz\">|<input type=\"hidden\" name=\"feld2\" value=\"Rhein"hessen"&Pfalz\"><input type=\"hidden\" name=\"feld1\" value=\"Pfalz\">) a6<input type="hidden" name="feld2" value="Rhein"hessen"&Pfalz"> a7<input type="hidden" name="feld2" value="Rhein"hessen"&Pfalz"> a8<input type="hidden" name="feld4" value="Wert4?foo=bar"><input type="hidden" name="feld3" value="Wert3"><input type="hidden" name="feld2" value="Wert2"><input type="hidden" name="feld1" value="Wert1"> Modified: perl/embperl/trunk/test/cmp/include.htm URL: http://svn.apache.org/viewvc/perl/embperl/trunk/test/cmp/include.htm?rev=1503556&r1=1503555&r2=1503556&view=diff ============================================================================== --- perl/embperl/trunk/test/cmp/include.htm (original) +++ perl/embperl/trunk/test/cmp/include.htm Tue Jul 16 04:38:26 2013 @@ -43,7 +43,7 @@ <P><table><tr><td>fdat1</td><td>text1</td></tr><tr><td>test1</td><td>value1</td></tr></table></P> <H1> 7b.) Presetup \%fdat</H1> -<P><table><tr><td>fdat2</td><td>text2</td></tr><tr><td>test2</td><td>value2</td></tr></table></P> +^<P><table><tr><td>(fdat2<\/td><td>text2<\/td><\/tr><tr><td>test2<\/td><td>value2|test2<\/td><td>value2<\/td><\/tr><tr><td>fdat2<\/td><td>text2)<\/td><\/tr><\/table><\/P> <H1> 7c.) Presetup \@ffld</H1> <P><table></table></P> @ffld = fdat3 test3 Added: perl/embperl/trunk/test/cmp/includeerr2.htm518 URL: http://svn.apache.org/viewvc/perl/embperl/trunk/test/cmp/includeerr2.htm518?rev=1503556&view=auto ============================================================================== --- perl/embperl/trunk/test/cmp/includeerr2.htm518 (added) +++ perl/embperl/trunk/test/cmp/includeerr2.htm518 Tue Jul 16 04:38:26 2013 @@ -0,0 +1,71 @@ +<HTML><HEAD><TITLE>Embperl Error</TITLE></HEAD><BODY bgcolor="#FFFFFF"> +<H1>Internal Server Error</H1> +The server encountered an internal error or misconfiguration and was unable to complete your request.<P> +^Please contact the server administrator,.*?and inform them of the time the error occurred, and anything you might have done that may have caused the error.<P><P> +<table cellspacing='2' cellpadding='5'> +<tr bgcolor='#eeeeee'><td> +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> +^\[\d+\]ERR: 32: Warning in Perl code: Use of uninitialized value \$Embperl::__\d+::param\[0\] in concatenation \(\.\) or string at .+incsub.htm line 6. +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> +</td></tr> +<tr bgcolor='#eeeeee'><td> +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> +^\[\d+\]ERR: 32: Warning in Perl code: Use of uninitialized value \$Embperl::__\d+::param\[0\] in concatenation \(\.\) or string at .+incsub.htm line 6. +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> +</td></tr> +<tr bgcolor='#eeeeee'><td> +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> +^\[\d+\]ERR: 32: Warning in Perl code: Use of uninitialized value \$Embperl::__\d+::param\[0\] in concatenation \(\.\) or string at .+incsub.htm line 6. +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> +</td></tr> +<tr bgcolor='#eeeeee'><td> +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> +^\[\d+\]ERR: 32: Warning in Perl code: Use of uninitialized value \$Embperl::__\d+::param\[0\] in concatenation \(\.\) or string at .+incsub.htm line 6. +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> +</td></tr> +<tr bgcolor='#eeeeee'><td> +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> +^\[\d+\]ERR: 24: Error in Perl code: Can't locate object method "is" via package "here" \(perhaps you forgot to load "here"\?\) at .+incerr.htm line 6. +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> +</td></tr> +<tr bgcolor='#eeeeee'><td> +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> +^\[\d+\]ERR: 32: Warning in Perl code: Unquoted string "table" may clash with future reserved word at .+incerr.htm line 6. +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> +</td></tr> +<tr bgcolor='#eeeeee'><td> +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> +^\[\d+\]ERR: 32: Warning in Perl code: Unquoted string "td" may clash with future reserved word at .+incerr.htm line 8. +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> +</td></tr> +<tr bgcolor='#eeeeee'><td> +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> +^\[\d+\]ERR: 24: Error in Perl code: syntax error at .+line 4, near "\+\]" +^<br> Unknown regexp modifier "\/t" at +^<br> \(Might be a runaway multi-line \/\/ string starting on line 10\) +^<br> Unknown regexp modifier "\/r" at +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> +</td></tr> +<tr bgcolor='#eeeeee'><td> +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> +^\[\d+\]ERR: 32: Warning in Perl code: Unquoted string "table" may clash with future reserved word at .+incerr.htm line 6. +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> +</td></tr> +<tr bgcolor='#eeeeee'><td> +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> +^\[\d+\]ERR: 32: Warning in Perl code: Unquoted string "td" may clash with future reserved word at .+incerr.htm line 8. +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> +</td></tr> +<tr bgcolor='#eeeeee'><td> +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> +^\[\d+\]ERR: 24: Error in Perl code: syntax error at .+line 4, near "\+\]" +^<br> Unknown regexp modifier "\/t" at +^<br> \(Might be a runaway multi-line \/\/ string starting on line 10\) +^<br> Unknown regexp modifier "\/r" at +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> +</td></tr> +</table> +<br> +^Embperl +</BODY></HTML> + --------------------------------------------------------------------- To unsubscribe, e-mail: embperl-cvs-unsubscr...@perl.apache.org For additional commands, e-mail: embperl-cvs-h...@perl.apache.org