richter 01/06/14 23:28:26
Modified: . Changes.pod Embperl.pm Embperl.xs ep.h eputil.c
test/cmp escape.htm
test/html escape.htm
Log:
- Added method $r -> Espace for html & url escaping
Revision Changes Path
1.174 +8 -0 embperl/Changes.pod
Index: Changes.pod
===================================================================
RCS file: /home/cvs/embperl/Changes.pod,v
retrieving revision 1.173
retrieving revision 1.174
diff -u -r1.173 -r1.174
--- Changes.pod 2001/06/06 04:16:43 1.173
+++ Changes.pod 2001/06/15 06:28:16 1.174
@@ -1,5 +1,13 @@
=pod
+=head1 1.3.4_dev -- That's what currently under developement
+
+Last Update: <$localtime$> (MET)
+
+NOTE: This version is only available via L<"CVS"|CVS/"INTRO">
+
+ - Added method $r -> Espace for html & url escaping
+
=head1 1.3.3 (RELEASE) 6. Juni 2001
- fixes problem with cleanup and Perl 5.6.0+ which broke
1.161 +2 -2 embperl/Embperl.pm
Index: Embperl.pm
===================================================================
RCS file: /home/cvs/embperl/Embperl.pm,v
retrieving revision 1.160
retrieving revision 1.161
diff -u -r1.160 -r1.161
--- Embperl.pm 2001/06/05 04:56:20 1.160
+++ Embperl.pm 2001/06/15 06:28:17 1.161
@@ -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.160 2001/06/05 04:56:20 richter Exp $
+# $Id: Embperl.pm,v 1.161 2001/06/15 06:28:17 richter Exp $
#
###################################################################################
@@ -64,7 +64,7 @@
@ISA = qw(Exporter DynaLoader);
-$VERSION = '1.3.3';
+$VERSION = '1.3.4_dev';
# HTML::Embperl cannot be bootstrapped in nonlazy mode except
# under mod_perl, because its dependencies import symbols like ap_palloc
1.49 +12 -0 embperl/Embperl.xs
Index: Embperl.xs
===================================================================
RCS file: /home/cvs/embperl/Embperl.xs,v
retrieving revision 1.48
retrieving revision 1.49
diff -u -r1.48 -r1.49
--- Embperl.xs 2001/05/31 19:16:11 1.48
+++ Embperl.xs 2001/06/15 06:28:18 1.49
@@ -718,6 +718,18 @@
CODE:
lprintf (r,"[%d]MEM: %s: SVs: %d OBJs: %d\n", r->nPid, sText, sv_count,
sv_objcount) ;
+SV *
+embperl_Escape(r, str, mode)
+ tReq * r
+ char * str = NO_INIT
+ int mode
+PREINIT:
+ STRLEN len ;
+CODE:
+ str = SvPV(ST(1),len) ;
+ RETVAL = Escape(r, str, len, mode, NULL, 0) ;
+OUTPUT:
+ RETVAL
int
1.38 +6 -0 embperl/ep.h
Index: ep.h
===================================================================
RCS file: /home/cvs/embperl/ep.h,v
retrieving revision 1.37
retrieving revision 1.38
diff -u -r1.37 -r1.38
--- ep.h 2001/05/29 06:28:10 1.37
+++ ep.h 2001/06/15 06:28:18 1.38
@@ -438,6 +438,12 @@
/*in*/ int nDataLen,
/*in*/ struct tCharTrans * pEscTab,
/*in*/ char cEscChar) ;
+SV * Escape (/*i/o*/ register req * r,
+ /*in*/ const char * sData,
+ /*in*/ int nDataLen,
+ /*in*/ int nEscMode,
+ /*in*/ struct tCharTrans * pEscTab,
+ /*in*/ char cEscChar) ;
int TransHtml (/*i/o*/ register req * r,
/*i/o*/ char * sData,
1.24 +77 -1 embperl/eputil.c
Index: eputil.c
===================================================================
RCS file: /home/cvs/embperl/eputil.c,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -r1.23 -r1.24
--- eputil.c 2001/06/05 03:22:09 1.23
+++ eputil.c 2001/06/15 06:28:19 1.24
@@ -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.23 2001/06/05 03:22:09 richter Exp $
+# $Id: eputil.c,v 1.24 2001/06/15 06:28:19 richter Exp $
#
###################################################################################*/
@@ -129,6 +129,82 @@
owrite (r, p, sData - p) ;
}
+/* ---------------------------------------------------------------------------- */
+/* */
+/* Escape a string and return a sv */
+/* */
+/* in sData = input: string */
+/* nDataLen = input: length of string */
+/* pEscTab = input: escape table */
+/* cEscChar = input: char to escape escaping (0 = off) */
+/* */
+/* ---------------------------------------------------------------------------- */
+
+SV * Escape (/*i/o*/ register req * r,
+ /*in*/ const char * sData,
+ /*in*/ int nDataLen,
+ /*in*/ int nEscMode,
+ /*in*/ struct tCharTrans * pEscTab,
+ /*in*/ char cEscChar)
+
+ {
+ char * pHtml ;
+ const char * p ;
+ int l ;
+ SV * pSV = newSVpv("",0) ;
+
+ EPENTRY (Escape) ;
+
+
+ if (nEscMode >= 0)
+ {
+ if (nEscMode & escHtml && !r -> bEscInUrl)
+ pEscTab = Char2Html ;
+ else if (nEscMode & escUrl)
+ pEscTab = Char2Url ;
+ else
+ pEscTab = NULL ;
+ if (nEscMode & escEscape)
+ cEscChar = '\0' ;
+ else
+ cEscChar = '\\' ;
+ }
+
+ if (pEscTab == NULL)
+ {
+ sv_setpvn (pSV, sData, nDataLen) ;
+ return pSV ;
+ }
+
+ p = sData ;
+ l = nDataLen ;
+
+ while (l > 0)
+ {
+ if (cEscChar && *sData == cEscChar)
+ {
+ if (p != sData)
+ sv_catpvn (pSV, (char *)p, sData - p) ;
+ sData++, l-- ;
+ p = sData ;
+ }
+ else
+ {
+ pHtml = pEscTab[(unsigned char)(*sData)].sHtml ;
+ if (*pHtml)
+ {
+ if (p != sData)
+ sv_catpvn (pSV, (char *)p, sData - p) ;
+ sv_catpv (pSV, pHtml) ;
+ p = sData + 1;
+ }
+ }
+ sData++, l-- ;
+ }
+ if (p != sData)
+ sv_catpvn (pSV, (char *)p, sData - p) ;
+ return pSV ;
+ }
#if 0
1.24 +9 -2 embperl/test/cmp/escape.htm
Index: escape.htm
===================================================================
RCS file: /home/cvs/embperl/test/cmp/escape.htm,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -r1.23 -r1.24
--- escape.htm 2001/04/27 07:40:28 1.23
+++ escape.htm 2001/06/15 06:28:22 1.24
@@ -159,9 +159,16 @@
</TR>
</table>
+Escape method:
-
-
+0: (this is the value in $a) ������???<&+
+1: (this is the value in $a) äöüäöü???<&+
+2: (this%20is%20the%20value%20in%20$a)%20������%3F%3F%3F%3C%26%2B%20%20
+3: (this is the value in $a) äöüäöü???<&+
+4: (this is the value in $a) ������???<&+
+5: (this is the value in $a) äöüäöü???<&+
+6: (this%20is%20the%20value%20in%20$a)%20������%3F%3F%3F%3C%26%2B%20%20
+7: (this is the value in $a) äöüäöü???<&+
<P>Ok.<P>
1.18 +12 -1 embperl/test/html/escape.htm
Index: escape.htm
===================================================================
RCS file: /home/cvs/embperl/test/html/escape.htm,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- escape.htm 2001/03/27 12:27:52 1.17
+++ escape.htm 2001/06/15 06:28:24 1.18
@@ -1,4 +1,4 @@
-
+[- $r = shift -]
<html>
<head>
<title>Some tests for Embperl escaping</title>
@@ -183,7 +183,18 @@
</TR>
</table>
+Escape method:
+
+[- $escmode = 0 -]
+0: [+ $r -> Escape($b, 0) +]
+1: [+ $r -> Escape($b, 1) +]
+2: [+ $r -> Escape($b, 2) +]
+3: [+ $r -> Escape($b, 3) +]
+4: [+ $r -> Escape($b, 4) +]
+5: [+ $r -> Escape($b, 5) +]
+6: [+ $r -> Escape($b, 6) +]
+7: [+ $r -> Escape($b, 7) +]
<P>Ok.<P>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]