/* locale.c
*
- * Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999,
- * 2000, 2001, 2002, 2003, 2005, 2006, by Larry Wall and others
+ * Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
+ * 2001, 2002, 2003, 2005, 2006, 2007, by Larry Wall and others
*
* You may distribute under the terms of either the GNU General Public
* License or the Artistic License, as specified in the README file.
const char * const s = strchr(locs, '=');
bool okay = TRUE;
+ PERL_ARGS_ASSERT_STDIZE_LOCALE;
+
if (s) {
const char * const t = strchr(s, '.');
okay = FALSE;
dVAR;
int i;
+ PERL_ARGS_ASSERT_NEW_CTYPE;
+
for (i = 0; i < 256; i++) {
if (isUPPER_LC(i))
PL_fold_locale[i] = toLOWER_LC(i);
}
#endif /* USE_LOCALE_CTYPE */
+ PERL_ARGS_ASSERT_NEW_CTYPE;
PERL_UNUSED_ARG(newctype);
PERL_UNUSED_CONTEXT;
}
char *xbuf;
STRLEN xAlloc, xin, xout; /* xalloc is a reserved word in VC */
+ PERL_ARGS_ASSERT_MEM_COLLXFRM;
+
/* the first sizeof(collationix) bytes are used by sv_collxfrm(). */
/* the +1 is for the terminating NUL. */
*(U32*)xbuf = PL_collation_ix;
xout = sizeof(PL_collation_ix);
for (xin = 0; xin < len; ) {
- SSize_t xused;
+ Size_t xused;
for (;;) {
xused = strxfrm(xbuf + xout, s + xin, xAlloc - xout);
- if (xused == -1)
+ if (xused >= PERL_INT_MAX)
goto bad;
if ((STRLEN)xused < xAlloc - xout)
break;