Branch Coverage

locale.c
Criterion Covered Total %
branch 59 294 20.1


line true false branch
61 0 37127 if (s) {
64 0 0 if (t) {
66 0 0 if (u && (u[1] == 0)) {
0 0 if (u && (u[1] == 0)) {
75 0 37127 if (!okay)
91 24715 0 if (lc && lc->decimal_point) {
24715 0 if (lc && lc->decimal_point) {
92 24715 0 if (lc->decimal_point[0] == '.' && lc->decimal_point[1] == 0) {
24715 0 if (lc->decimal_point[0] == '.' && lc->decimal_point[1] == 0) {
97 0 0 if (PL_numeric_radix_sv)
101 0 0 if (! is_ascii_string((U8 *) lc->decimal_point, 0)
102 0 0 && is_utf8_string((U8 *) lc->decimal_point, 0)
103 0 0 && is_cur_LC_category_utf8(LC_NUMERIC))
125 0 12403 if (! newnum) {
134 50 12353 if (! PL_numeric_name || strNE(PL_numeric_name, save_newnum)) {
34 16 if (! PL_numeric_name || strNE(PL_numeric_name, save_newnum)) {
137 2 42 PL_numeric_standard = ((*save_newnum == 'C' && save_newnum[1] == '\0')
138 44 12343 || strEQ(save_newnum, "POSIX"));
12345 0 || strEQ(save_newnum, "POSIX"));
155 12328 30 if (! PL_numeric_standard) {
171 0 0 if (! PL_numeric_local) {
193 3170816 12386 for (i = 0; i < 256; i++) {
194 3170816 0 if (isUPPER_LC(i))
322246 2848570 if (isUPPER_LC(i))
195 322246 0 PL_fold_locale[i] = toLOWER_LC(i);
196 2848570 0 else if (isLOWER_LC(i))
322267 2526303 else if (isLOWER_LC(i))
197 322267 0 PL_fold_locale[i] = toUPPER_LC(i);
217 0 12385 if (! newcoll) {
218 0 0 if (PL_collation_name) {
229 32 12353 if (! PL_collation_name || strNE(PL_collation_name, newcoll)) {
18 14 if (! PL_collation_name || strNE(PL_collation_name, newcoll)) {
233 0 30 PL_collation_standard = ((*newcoll == 'C' && newcoll[1] == '\0')
234 30 12341 || strEQ(newcoll, "POSIX"));
12341 0 || strEQ(newcoll, "POSIX"));
244 0 12371 if (mult < 1 && !(fa == 0 && fb == 0))
0 0 if (mult < 1 && !(fa == 0 && fb == 0))
247 12341 30 PL_collxfrm_base = (fa > (Size_t)mult) ? (fa - mult) : 0;
286 0 12353 : "";
345 0 12353 if (! setlocale(LC_ALL, setlocale_init))
349 12353 0 if (!setlocale_failure) {
352 12353 0 if (! (curctype = setlocale(LC_CTYPE, setlocale_init)))
359 12353 0 if (! (curcoll = setlocale(LC_COLLATE, setlocale_init)))
366 12353 0 if (! (curnum = setlocale(LC_NUMERIC, setlocale_init)))
373 0 12353 if (setlocale_failure) {
375 0 0 const bool locwarn = (printwarn > 1 ||
0 0 const bool locwarn = (printwarn > 1 ||
376 0 0 (printwarn &&
377 0 0 (!(p = PerlEnv_getenv("PERL_BADLANG")) || atoi(p))));
379 0 0 if (locwarn) {
382 0 0 PerlIO_printf(Perl_error_log,
0 0 PerlIO_printf(Perl_error_log,
0 0 PerlIO_printf(Perl_error_log,
0 0 PerlIO_printf(Perl_error_log,
405 0 0 PerlIO_printf(Perl_error_log,
0 0 PerlIO_printf(Perl_error_log,
0 0 PerlIO_printf(Perl_error_log,
0 0 PerlIO_printf(Perl_error_log,
409 0 0 PerlIO_printf(Perl_error_log,
0 0 PerlIO_printf(Perl_error_log,
0 0 PerlIO_printf(Perl_error_log,
0 0 PerlIO_printf(Perl_error_log,
0 0 PerlIO_printf(Perl_error_log,
0 0 PerlIO_printf(Perl_error_log,
0 0 PerlIO_printf(Perl_error_log,
416 0 0 PerlIO_printf(Perl_error_log,
0 0 PerlIO_printf(Perl_error_log,
0 0 PerlIO_printf(Perl_error_log,
0 0 PerlIO_printf(Perl_error_log,
0 0 PerlIO_printf(Perl_error_log,
0 0 PerlIO_printf(Perl_error_log,
0 0 PerlIO_printf(Perl_error_log,
425 0 0 for (e = environ; *e; e++) {
426 0 0 if (strnEQ(*e, "LC_", 3)
427 0 0 && strnNE(*e, "LC_ALL=", 7)
428 0 0 && (p = strchr(*e, '=')))
429 0 0 PerlIO_printf(Perl_error_log, "\t%.*s = \"%s\",\n",
0 0 PerlIO_printf(Perl_error_log, "\t%.*s = \"%s\",\n",
0 0 PerlIO_printf(Perl_error_log, "\t%.*s = \"%s\",\n",
0 0 PerlIO_printf(Perl_error_log, "\t%.*s = \"%s\",\n",
438 0 0 PerlIO_printf(Perl_error_log,
0 0 PerlIO_printf(Perl_error_log,
0 0 PerlIO_printf(Perl_error_log,
0 0 PerlIO_printf(Perl_error_log,
0 0 PerlIO_printf(Perl_error_log,
0 0 PerlIO_printf(Perl_error_log,
0 0 PerlIO_printf(Perl_error_log,
444 0 0 PerlIO_printf(Perl_error_log,
0 0 PerlIO_printf(Perl_error_log,
0 0 PerlIO_printf(Perl_error_log,
0 0 PerlIO_printf(Perl_error_log,
450 0 0 if (setlocale(LC_ALL, "C")) {
451 0 0 if (locwarn)
452 0 0 PerlIO_printf(Perl_error_log,
0 0 PerlIO_printf(Perl_error_log,
0 0 PerlIO_printf(Perl_error_log,
0 0 PerlIO_printf(Perl_error_log,
457 0 0 if (locwarn)
458 0 0 PerlIO_printf(Perl_error_log,
0 0 PerlIO_printf(Perl_error_log,
0 0 PerlIO_printf(Perl_error_log,
0 0 PerlIO_printf(Perl_error_log,
529 31 12322 PL_unicode = p ? parse_unicode_opts(&p) : 0;
530 0 12353 if (PL_unicode & PERL_UNICODE_UTF8CACHEASSERT_FLAG)
574 0 0 if (! xbuf)
579 0 0 for (xin = 0; xin < len; ) {
584 0 0 if (xused >= PERL_INT_MAX)
586 0 0 if ((STRLEN)xused < xAlloc - xout)
590 0 0 if (! xbuf)
632 12353 0 if (! save_input_locale) {
635 25 12328 if ((*save_input_locale == 'C' && save_input_locale[1] == '\0')
0 25 if ((*save_input_locale == 'C' && save_input_locale[1] == '\0')
636 12328 0 || strEQ(save_input_locale, "POSIX"))
650 0 12328 if (category != LC_CTYPE) { /* nl_langinfo works only on LC_CTYPE */
654 0 0 if (! save_ctype_locale) {
662 0 0 if (strEQ(save_ctype_locale, save_input_locale)) {
666 0 0 else if (! setlocale(LC_CTYPE, save_input_locale)) {
676 12328 0 if (codeset) {
680 0 12328 if (save_ctype_locale) {
686 0 12328 || foldEQ(codeset, STR_WITH_LEN("UTF8"));
0 0 || foldEQ(codeset, STR_WITH_LEN("UTF8"));
702 0 0 if (final_pos >= 3) {
706 0 0 while ((name += strcspn(name, "Uu") + 1)
0 0 while ((name += strcspn(name, "Uu") + 1)
0 0 while ((name += strcspn(name, "Uu") + 1)
0 0 while ((name += strcspn(name, "Uu") + 1)
0 0 while ((name += strcspn(name, "Uu") + 1)
709 0 0 if (toFOLD(*(name)) != 't'
0 0 if (toFOLD(*(name)) != 't'
0 0 if (toFOLD(*(name)) != 't'
0 0 if (toFOLD(*(name)) != 't'
710 0 0 || toFOLD(*(name + 1)) != 'f')
0 0 || toFOLD(*(name + 1)) != 'f')
715 0 0 if (*(name) == '-') {
716 0 0 if ((name > save_input_locale + final_pos - 1)) {
721 0 0 if (*(name) == '8') {
743 0 0 if (instr(save_input_locale, "8859")) {
768 0 0 if (category != LC_MONETARY) {
772 0 0 if (! save_monetary_locale) {
776 0 0 if (strNE(save_monetary_locale, save_input_locale)) {
777 0 0 if (! setlocale(LC_MONETARY, save_input_locale)) {
787 0 0 if (lc && lc->currency_symbol) {
0 0 if (lc && lc->currency_symbol) {
788 0 0 if (! is_utf8_string((U8 *) lc->currency_symbol, 0)) {
791 0 0 else if (is_ascii_string((U8 *) lc->currency_symbol, 0)) {
797 0 0 if (save_monetary_locale) {
811 0 0 : ! only_ascii;