Change 28589 by [EMAIL PROTECTED] on 2006/07/16 19:12:28

        Subject: Re: Fix loads of warnings from the last escaping patch...
        From: demerphq <[EMAIL PROTECTED]>
        Date: Sun, 16 Jul 2006 19:59:02 +0200
        Message-ID: <[EMAIL PROTECTED]>

Affected files ...

... //depot/perl/dump.c#231 edit
... //depot/perl/embed.fnc#400 edit
... //depot/perl/ext/re/re.pm#28 edit
... //depot/perl/pod/perlapi.pod#267 edit
... //depot/perl/proto.h#741 edit
... //depot/perl/regcomp.c#448 edit
... //depot/perl/regcomp.h#84 edit

Differences ...

==== //depot/perl/dump.c#231 (text) ====
Index: perl/dump.c
--- perl/dump.c#230~28582~      2006-07-15 14:59:43.000000000 -0700
+++ perl/dump.c 2006-07-16 12:12:28.000000000 -0700
@@ -121,7 +121,7 @@
 
 
 /*
-=for apidoc Apd|char*|pv_escape|NN SV *dsv|NN const U8 const *str\
+=for apidoc Apd|char*|pv_escape|NN SV *dsv|NN const char const *str\
                |const STRLEN count|const STRLEN max
                |STRLEN const *escaped, const U32 flags
 
@@ -158,28 +158,29 @@
 =cut
 */
 #define PV_ESCAPE_OCTBUFSIZE 32
+
 char *
-Perl_pv_escape( pTHX_ SV *dsv, U8 const * const str, 
+Perl_pv_escape( pTHX_ SV *dsv, char const * const str, 
                 const STRLEN count, const STRLEN max, 
                 STRLEN * const escaped, const U32 flags ) 
 {
-    U8 dq = (flags & PERL_PV_ESCAPE_QUOTE) ? '"' : '\\';
-    U8 octbuf[PV_ESCAPE_OCTBUFSIZE] = "\\123456789ABCDF";
+    char dq = (flags & PERL_PV_ESCAPE_QUOTE) ? '"' : '\\';
+    char octbuf[PV_ESCAPE_OCTBUFSIZE] = "\\123456789ABCDF";
     STRLEN wrote = 0;    /* chars written so far */
     STRLEN chsize = 0;   /* size of data to be written */
     STRLEN readsize = 1; /* size of data just read */
     bool isuni= flags & PERL_PV_ESCAPE_UNI ? 1 : 0; /* is this unicode */
-    const U8 *pv  = str;
-    const U8 *end = pv + count; /* end of string */
+    const char *pv  = str;
+    const char *end = pv + count; /* end of string */
 
     if (!flags & PERL_PV_ESCAPE_NOCLEAR) 
            sv_setpvn(dsv, "", 0);
     
-    if ((flags & PERL_PV_ESCAPE_UNI_DETECT) && is_utf8_string(pv, count))
+    if ((flags & PERL_PV_ESCAPE_UNI_DETECT) && is_utf8_string((U8*)pv, count))
         isuni = 1;
     
     for ( ; (pv < end && (!max || (wrote < max))) ; pv += readsize ) {
-        const UV u= (isuni) ? utf8_to_uvchr(pv, &readsize) : *pv;            
+        const UV u= (isuni) ? utf8_to_uvchr((U8*)pv, &readsize) : (U8)*pv;     
       
         const U8 c = (U8)u & 0xFF;
         
         if ( ( u > 255 ) || (flags & PERL_PV_ESCAPE_ALL)) {
@@ -208,7 +209,7 @@
                             chsize = 1;
                                break;
                default:
-                        if ( (pv < end) && isDIGIT(*(pv+readsize)) )
+                        if ( (pv < end) && isDIGIT((U8)*(pv+readsize)) )
                             chsize = my_snprintf( octbuf, 
PV_ESCAPE_OCTBUFSIZE, 
                                                   "\\%03o", c);
                            else
@@ -236,9 +237,9 @@
     return SvPVX(dsv);
 }
 /*
-=for apidoc Apd|char *|pv_pretty|NN SV *dsv|NN const U8 const *str\
+=for apidoc Apd|char *|pv_pretty|NN SV *dsv|NN const char const *str\
            |const STRLEN count|const STRLEN max\
-           |const U8 const *start_color| const U8 const *end_color\
+           |const char const *start_color| const char const *end_color\
            |const U32 flags
 
 Converts a string into something presentable, handling escaping via
@@ -264,8 +265,8 @@
 */
 
 char *
-Perl_pv_pretty( pTHX_ SV *dsv, U8 const * const str, const STRLEN count, 
-  const STRLEN max, U8 const * const start_color, U8 const * const end_color, 
+Perl_pv_pretty( pTHX_ SV *dsv, char const * const str, const STRLEN count, 
+  const STRLEN max, char const * const start_color, char const * const 
end_color, 
   const U32 flags ) 
 {
     U8 dq = (flags & PERL_PV_PRETTY_QUOTE) ? '"' : '\\';
@@ -318,7 +319,7 @@
 char *
 Perl_pv_display(pTHX_ SV *dsv, const char *pv, STRLEN cur, STRLEN len, STRLEN 
pvlim)
 {
-    pv_pretty( dsv, pv, cur, pvlim, 0, 0, PERL_PV_PRETTY_DUMP);
+    pv_pretty( dsv, pv, cur, pvlim, NULL, NULL, PERL_PV_PRETTY_DUMP);
     if (len > cur && pv[cur] == '\0')
             sv_catpvn( dsv, "\\0", 2 );
     return SvPVX(dsv);

==== //depot/perl/embed.fnc#400 (text) ====
Index: perl/embed.fnc
--- perl/embed.fnc#399~28582~   2006-07-15 14:59:43.000000000 -0700
+++ perl/embed.fnc      2006-07-16 12:12:28.000000000 -0700
@@ -982,14 +982,14 @@
 ApR    |MGVTBL*|get_vtbl       |int vtbl_id
 Apd    |char*  |pv_display     |NN SV *dsv|NN const char *pv|STRLEN cur|STRLEN 
len \
                                |STRLEN pvlim
-Apd    |char*  |pv_escape      |NN SV *dsv|NN U8 const * const str\
+Apd    |char*  |pv_escape      |NN SV *dsv|NN char const * const str\
                                 |const STRLEN count|const STRLEN max\
                                 |NULLOK STRLEN * const escaped\
                                 |const U32 flags                               
-Apd     |char*  |pv_pretty      |NN SV *dsv|NN U8 const * const str\
+Apd     |char*  |pv_pretty      |NN SV *dsv|NN char const * const str\
                                 |const STRLEN count|const STRLEN max\
-                                |NULLOK U8 const * const start_color\
-                                |NULLOK U8 const * const end_color\
+                                |NULLOK char const * const start_color\
+                                |NULLOK char const * const end_color\
                                 |const U32 flags                               
 Afp    |void   |dump_indent    |I32 level|NN PerlIO *file|NN const char* 
pat|...
 Ap     |void   |dump_vindent   |I32 level|NN PerlIO *file|NN const char* pat \

==== //depot/perl/ext/re/re.pm#28 (text) ====
Index: perl/ext/re/re.pm
--- perl/ext/re/re.pm#27~28582~ 2006-07-15 14:59:43.000000000 -0700
+++ perl/ext/re/re.pm   2006-07-16 12:12:28.000000000 -0700
@@ -235,9 +235,10 @@
     OFFSETS_DEBUG   => 0x020000,
     STATE           => 0x040000,
 );
-$flags{ALL} = $flags{COMPILE} | $flags{EXECUTE};
+$flags{ALL} = $flags{COMPILE} | $flags{EXECUTE} | $flags{STATE};
 $flags{All} = $flags{all} = $flags{DUMP} | $flags{EXECUTE};
 $flags{More} = $flags{MORE} = $flags{ALL} | $flags{TRIE_MORE};
+$flags{State} = $flags{DUMP} | $flags{EXECUTE} | $flags{STATE};
 
 my $installed = 0;
 

==== //depot/perl/pod/perlapi.pod#267 (text+w) ====
Index: perl/pod/perlapi.pod
--- perl/pod/perlapi.pod#266~28490~     2006-07-06 02:01:16.000000000 -0700
+++ perl/pod/perlapi.pod        2006-07-16 12:12:28.000000000 -0700
@@ -781,27 +781,75 @@
 =item pv_escape
 X<pv_escape>
 
+               |const STRLEN count|const STRLEN max
+               |STRLEN const *escaped, const U32 flags
+
 Escapes at most the first "count" chars of pv and puts the results into
-buf such that the size of the escaped string will not exceed "max" chars
+dsv such that the size of the escaped string will not exceed "max" chars
 and will not contain any incomplete escape sequences.
 
-If flags contains PERL_PV_ESCAPE_QUOTE then the string will have quotes
-placed around it; moreover, if the number of chars converted was less than
-"count" then a trailing elipses (...) will be added after the closing
-quote.
-
-If PERL_PV_ESCAPE_QUOTE is not set, but PERL_PV_ESCAPE_PADR is, then the
-returned string will be right padded with spaces such that it is max chars
-long.
+If flags contains PERL_PV_ESCAPE_QUOTE then any double quotes in the string
+will also be escaped.
 
 Normally the SV will be cleared before the escaped string is prepared,
-but when PERL_PV_ESCAPE_CAT is set this will not occur.
+but when PERL_PV_ESCAPE_NOCLEAR is set this will not occur.
+
+If PERL_PV_ESCAPE_UNI is set then the input string is treated as unicode,
+if PERL_PV_ESCAPE_UNI_DETECT is set then the input string is scanned
+using C<is_utf8_string()> to determine if it is unicode.
+
+If PERL_PV_ESCAPE_ALL is set then all input chars will be output
+using C<\x01F1> style escapes, otherwise only chars above 255 will be
+escaped using this style, other non printable chars will use octal or
+common escaped patterns like C<\n>. If PERL_PV_ESCAPE_NOBACKSLASH
+then all chars below 255 will be treated as printable and 
+will be output as literals.
+
+If PERL_PV_ESCAPE_FIRSTCHAR is set then only the first char of the
+string will be escaped, regardles of max. If the string is utf8 and 
+the chars value is >255 then it will be returned as a plain hex 
+sequence. Thus the output will either be a single char, 
+an octal escape sequence, a special escape like C<\n> or a 3 or 
+more digit hex value. 
+
+Returns a pointer to the escaped text as held by dsv.
+
+NOTE: the perl_ form of this function is deprecated.
+
+       char*   pv_escape(SV *dsv, char const * const str, const STRLEN count, 
const STRLEN max, STRLEN * const escaped, const U32 flags)
+
+=for hackers
+Found in file dump.c
+
+=item pv_pretty
+X<pv_pretty>
 
-Returns a pointer to the string contained by SV.
+           |const STRLEN count|const STRLEN max\
+           |const char const *start_color| const char const *end_color\
+           |const U32 flags
+
+Converts a string into something presentable, handling escaping via
+pv_escape() and supporting quoting and elipses. 
+
+If the PERL_PV_PRETTY_QUOTE flag is set then the result will be 
+double quoted with any double quotes in the string escaped. Otherwise
+if the PERL_PV_PRETTY_LTGT flag is set then the result be wrapped in
+angle brackets. 
+           
+If the PERL_PV_PRETTY_ELIPSES flag is set and not all characters in
+string were output then an elipses C<...> will be appended to the 
+string. Note that this happens AFTER it has been quoted.
+           
+If start_color is non-null then it will be inserted after the opening
+quote (if there is one) but before the escaped text. If end_color
+is non-null then it will be inserted after the escaped text but before
+any quotes or elipses.
 
+Returns a pointer to the prettified text as held by dsv.
+           
 NOTE: the perl_ form of this function is deprecated.
 
-       char*   pv_escape(SV *dsv, const char *pv, const STRLEN count, const 
STRLEN max, const U32 flags)
+       char*   pv_pretty(SV *dsv, char const * const str, const STRLEN count, 
const STRLEN max, char const * const start_color, char const * const end_color, 
const U32 flags)
 
 =for hackers
 Found in file dump.c

==== //depot/perl/proto.h#741 (text+w) ====
Index: perl/proto.h
--- perl/proto.h#740~28584~     2006-07-15 17:20:25.000000000 -0700
+++ perl/proto.h        2006-07-16 12:12:28.000000000 -0700
@@ -2674,11 +2674,11 @@
                        __attribute__nonnull__(pTHX_1)
                        __attribute__nonnull__(pTHX_2);
 
-PERL_CALLCONV char*    Perl_pv_escape(pTHX_ SV *dsv, U8 const * const str, 
const STRLEN count, const STRLEN max, STRLEN * const escaped, const U32 flags)
+PERL_CALLCONV char*    Perl_pv_escape(pTHX_ SV *dsv, char const * const str, 
const STRLEN count, const STRLEN max, STRLEN * const escaped, const U32 flags)
                        __attribute__nonnull__(pTHX_1)
                        __attribute__nonnull__(pTHX_2);
 
-PERL_CALLCONV char*    Perl_pv_pretty(pTHX_ SV *dsv, U8 const * const str, 
const STRLEN count, const STRLEN max, U8 const * const start_color, U8 const * 
const end_color, const U32 flags)
+PERL_CALLCONV char*    Perl_pv_pretty(pTHX_ SV *dsv, char const * const str, 
const STRLEN count, const STRLEN max, char const * const start_color, char 
const * const end_color, const U32 flags)
                        __attribute__nonnull__(pTHX_1)
                        __attribute__nonnull__(pTHX_2);
 

==== //depot/perl/regcomp.c#448 (text) ====
Index: perl/regcomp.c
--- perl/regcomp.c#447~28582~   2006-07-15 14:59:43.000000000 -0700
+++ perl/regcomp.c      2006-07-16 12:12:28.000000000 -0700
@@ -867,7 +867,7 @@
         if ( tmp ) {
             PerlIO_printf( Perl_debug_log, "%*s", 
                 colwidth,
-                pv_pretty(sv, (U8*)SvPV_nolen_const(*tmp), SvCUR(*tmp), 
colwidth, 
+                pv_pretty(sv, SvPV_nolen_const(*tmp), SvCUR(*tmp), colwidth, 
                            PL_colors[0], PL_colors[1],
                            (SvUTF8(*tmp) ? PERL_PV_ESCAPE_UNI : 0) |
                            PERL_PV_ESCAPE_FIRSTCHAR 
@@ -960,7 +960,7 @@
            if ( tmp ) {
                 PerlIO_printf( Perl_debug_log, "%*s:%3X=%4"UVXf" | ",
                     colwidth,
-                    pv_pretty(sv, (U8*)SvPV_nolen_const(*tmp), SvCUR(*tmp), 
colwidth, 
+                    pv_pretty(sv, SvPV_nolen_const(*tmp), SvCUR(*tmp), 
colwidth, 
                            PL_colors[0], PL_colors[1],
                            (SvUTF8(*tmp) ? PERL_PV_ESCAPE_UNI : 0) |
                            PERL_PV_ESCAPE_FIRSTCHAR 
@@ -1002,7 +1002,7 @@
         if ( tmp ) {
             PerlIO_printf( Perl_debug_log, "%*s", 
                 colwidth,
-                pv_pretty(sv, (U8*)SvPV_nolen_const(*tmp), SvCUR(*tmp), 
colwidth, 
+                pv_pretty(sv, SvPV_nolen_const(*tmp), SvCUR(*tmp), colwidth, 
                            PL_colors[0], PL_colors[1],
                            (SvUTF8(*tmp) ? PERL_PV_ESCAPE_UNI : 0) |
                            PERL_PV_ESCAPE_FIRSTCHAR 
@@ -6454,7 +6454,7 @@
         * we have no flag "this EXACTish node was UTF-8" 
         * --jhi */
        const char * const s = 
-           pv_pretty(dsv, (U8*)STRING(o), STR_LEN(o), 60, 
+           pv_pretty(dsv, STRING(o), STR_LEN(o), 60, 
                PL_colors[0], PL_colors[1],
                PERL_PV_ESCAPE_UNI_DETECT |
                PERL_PV_PRETTY_ELIPSES    |
@@ -7029,7 +7029,7 @@
                if (elem_ptr) 
                    PerlIO_printf(Perl_debug_log, "%*s%s\n",
                       (int)(2*(l+4)), "",
-                       pv_pretty(sv, (U8*)SvPV_nolen_const(*elem_ptr), 
SvCUR(*elem_ptr), 60, 
+                       pv_pretty(sv, SvPV_nolen_const(*elem_ptr), 
SvCUR(*elem_ptr), 60, 
                            PL_colors[0], PL_colors[1],
                            (SvUTF8(*elem_ptr) ? PERL_PV_ESCAPE_UNI : 0) |
                            PERL_PV_PRETTY_ELIPSES    |

==== //depot/perl/regcomp.h#84 (text) ====
Index: perl/regcomp.h
--- perl/regcomp.h#83~28582~    2006-07-15 14:59:43.000000000 -0700
+++ perl/regcomp.h      2006-07-16 12:12:28.000000000 -0700
@@ -631,20 +631,20 @@
 
 #define RE_PV_COLOR_DECL(rpv,rlen,isuni,dsv,pv,l,m,c1,c2) \
     const char * const rpv =                          \
-        pv_pretty((dsv), (U8*)(pv), (l), (m), \
+        pv_pretty((dsv), (pv), (l), (m), \
             PL_colors[(c1)],PL_colors[(c2)], \
             ((isuni) ? PERL_PV_ESCAPE_UNI : 0) );         \
     const int rlen = SvCUR(dsv)
 
 #define RE_SV_ESCAPE(rpv,isuni,dsv,sv,m) \
     const char * const rpv =                          \
-        pv_pretty((dsv), (U8*)(SvPV_nolen_const(sv)), (SvCUR(sv)), (m), \
+        pv_pretty((dsv), (SvPV_nolen_const(sv)), (SvCUR(sv)), (m), \
             PL_colors[(c1)],PL_colors[(c2)], \
             ((isuni) ? PERL_PV_ESCAPE_UNI : 0) )
 
 #define RE_PV_QUOTED_DECL(rpv,isuni,dsv,pv,l,m)                    \
     const char * const rpv =                                       \
-        pv_pretty((dsv), (U8*)(pv), (l), (m), \
+        pv_pretty((dsv), (pv), (l), (m), \
             PL_colors[0], PL_colors[1], \
             ( PERL_PV_PRETTY_QUOTE | PERL_PV_PRETTY_ELIPSES |      \
               ((isuni) ? PERL_PV_ESCAPE_UNI : 0))                  \
End of Patch.

Reply via email to