X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=pp_pack.c;h=ca2795df2826f071e86fddda4e9d879bd9b5e12c;hb=80002e0d612c016105daaa578514ef1b726842f4;hp=92d0a36a55a627da4f934d697c9e1bf40b6a2127;hpb=2596d9fe3023e9da9e3e000993c9f26fa30909ef;p=p5sagit%2Fp5-mst-13.2.git diff --git a/pp_pack.c b/pp_pack.c index 92d0a36..ca2795d 100644 --- a/pp_pack.c +++ b/pp_pack.c @@ -179,7 +179,7 @@ S_mul128(pTHX_ SV *sv, U8 m) char *t; if (!strnEQ(s, "0000", 4)) { /* need to grow sv */ - SV *tmpNew = newSVpvn("0000000000", 10); + SV * const tmpNew = newSVpvn("0000000000", 10); sv_catsv(tmpNew, sv); SvREFCNT_dec(sv); /* free old sv */ @@ -369,7 +369,7 @@ S_mul128(pTHX_ SV *sv, U8 m) typedef U8 packprops_t; #if 'J'-'I' == 1 /* ASCII */ -const packprops_t packprops[512] = { +STATIC const packprops_t packprops[512] = { /* normal */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -490,7 +490,7 @@ const packprops_t packprops[512] = { }; #else /* EBCDIC (or bust) */ -const packprops_t packprops[512] = { +STATIC const packprops_t packprops[512] = { /* normal */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -612,9 +612,8 @@ const packprops_t packprops[512] = { STATIC U8 uni_to_byte(pTHX_ const char **s, const char *end, I32 datumtype) { - UV val; STRLEN retlen; - val = utf8n_to_uvchr((U8 *) *s, end-*s, &retlen, + UV val = utf8n_to_uvchr((U8 *) *s, end-*s, &retlen, ckWARN(WARN_UTF8) ? 0 : UTF8_ALLOW_ANY); /* We try to process malformed UTF-8 as much as possible (preferrably with warnings), but these two mean we make no progress in the string and @@ -685,9 +684,8 @@ uni_to_bytes(pTHX_ const char **s, const char *end, const char *buf, int buf_len STATIC bool next_uni_uu(pTHX_ const char **s, const char *end, I32 *out) { - UV val; STRLEN retlen; - val = utf8n_to_uvchr((U8 *) *s, end-*s, &retlen, UTF8_CHECK_ONLY); + const UV val = utf8n_to_uvchr((U8 *) *s, end-*s, &retlen, UTF8_CHECK_ONLY); if (val >= 0x100 || !ISUUCHAR(val) || retlen == (STRLEN) -1 || retlen == 0) { *out = 0; @@ -701,7 +699,7 @@ next_uni_uu(pTHX_ const char **s, const char *end, I32 *out) STATIC void bytes_to_uni(pTHX_ const U8 *start, STRLEN len, char **dest) { U8 buffer[UTF8_MAXLEN]; - const U8 *end = start + len; + const U8 * const end = start + len; char *d = *dest; while (start < end) { const int length = @@ -943,7 +941,7 @@ STATIC bool S_next_symbol(pTHX_ tempsym_t* symptr ) { const char* patptr = symptr->patptr; - const char* patend = symptr->patend; + const char* const patend = symptr->patend; symptr->flags &= ~FLAG_SLASH; @@ -2987,7 +2985,7 @@ S_pack_rec(pTHX_ SV *cat, tempsym_t* symptr, SV **beglist, SV **endlist ) ckWARN(WARN_PACK)) Perl_warner(aTHX_ packWARN(WARN_PACK), "Character in 'c' format wrapped in pack"); - PUSH_BYTE(utf8, cur, aiv & 0xff); + PUSH_BYTE(utf8, cur, (U8)(aiv & 0xff)); } break; case 'C': @@ -3004,7 +3002,7 @@ S_pack_rec(pTHX_ SV *cat, tempsym_t* symptr, SV **beglist, SV **endlist ) ckWARN(WARN_PACK)) Perl_warner(aTHX_ packWARN(WARN_PACK), "Character in 'C' format wrapped in pack"); - *cur++ = aiv & 0xff; + *cur++ = (char)(aiv & 0xff); } break; case 'W': { @@ -3549,7 +3547,8 @@ S_pack_rec(pTHX_ SV *cat, tempsym_t* symptr, SV **beglist, SV **endlist ) if (len <= 2) len = 45; else len = len / 3 * 3; if (len >= 64) { - Perl_warner(aTHX_ packWARN(WARN_PACK), + if (ckWARN(WARN_PACK)) + Perl_warner(aTHX_ packWARN(WARN_PACK), "Field too wide in 'u' format in pack"); len = 63; }