Branch Coverage

LineBreak.xs
Criterion Covered Total %
branch 360 1096 32.8


line true false branch
50 0 11236 if (buf == NULL) {
51 0 0 if ((buf = malloc(sizeof(unistr_t))) == NULL)
53 0 11236 } else if (buf->str)
58 0 11236 if (SvOK(str))
0 0 if (SvOK(str))
0 0 if (SvOK(str))
59 11236 0 utf8 = (U8 *)SvPV(str, utf8len);
62 0 11236 if (utf8len <= 0)
65 0 11236 if ((buf->str = (unichar_t *)malloc(sizeof(unichar_t) * unilen)) == NULL)
70 87029 11236 while (utf8ptr < utf8 + utf8len) {
72 87029 0 *uniptr = (unichar_t) NATIVE_TO_UNI(
89 0 87029 if (len == 0) {
111 0 35 if (buf == NULL) {
112 0 0 if ((buf = malloc(sizeof(unistr_t))) == NULL)
114 0 35 } else if (buf->str)
119 0 35 if (SvOK(str))
0 0 if (SvOK(str))
0 0 if (SvOK(str))
120 33 2 s = SvPV(str, len);
123 0 35 if (len == 0)
125 0 35 if ((buf->str = malloc(sizeof(unichar_t) * len)) == NULL)
128 62 35 for (i = 0; i < len; i++)
145 14560 0 if (unistr == NULL || unistr->str == NULL || unilen == 0) {
12334 2226 if (unistr == NULL || unistr->str == NULL || unilen == 0) {
4 12330 if (unistr == NULL || unistr->str == NULL || unilen == 0) {
153 102381 12330 while (uniptr < unistr->str + uniidx + unilen &&
102381 0 while (uniptr < unistr->str + uniidx + unilen &&
155 0 102381 if ((newbuf = realloc(buf,
208 465 110 if (!sv_isobject(sv)) {
211 110 0 } else if (sv_derived_from(sv, "Unicode::GCString"))
212 110 0 return PerltoC(gcstring_t *, sv);
214 0 0 croak("Unknown object %s", HvNAME(SvSTASH(SvRV(sv))));
0 0 croak("Unknown object %s", HvNAME(SvSTASH(SvRV(sv))));
0 0 croak("Unknown object %s", HvNAME(SvSTASH(SvRV(sv))));
0 0 croak("Unknown object %s", HvNAME(SvSTASH(SvRV(sv))));
0 0 croak("Unknown object %s", HvNAME(SvSTASH(SvRV(sv))));
0 0 croak("Unknown object %s", HvNAME(SvSTASH(SvRV(sv))));
241 2737 0 if (!sv || !SvOK(sv))
0 2737 if (!sv || !SvOK(sv))
0 0 if (!sv || !SvOK(sv))
0 0 if (!sv || !SvOK(sv))
243 2737 0 if (SvPOK(sv))
244 2737 0 return strcasecmp((str = SvPV_nolen(sv)), "YES") == 0 ||
246 0 0 return SvNV(sv) != 0.0;
267 49 32 if (pregexec(rx, str_arg, str_end, str_beg, 0, screamer, 1)) {
296 0 1040 if (sv == NULL)
298 520 520 if (0 < d)
300 520 0 else if (d < 0)
317 130 0 if (dataref == NULL ||
0 130 if (dataref == NULL ||
323 81 49 if (text != NULL) {
324 0 81 if ((pp = av_fetch(data, 0, 0)) == NULL)
328 81 0 if (SvRXOK(*pp))
337 0 81 if (rx == NULL)
346 0 49 if ((pp = av_fetch(data, 1, 0)) == NULL)
348 0 49 else if (SvOK(*pp))
0 0 else if (SvOK(*pp))
0 0 else if (SvOK(*pp))
353 0 49 if (func == NULL) {
354 0 0 if ((ret = gcstring_newcopy(str, lbobj)) == NULL)
355 0 0 return (lbobj->errnum = errno ? errno : ENOMEM), NULL;
360 0 49 PUSHMARK(SP);
362 0 49 XPUSHs(sv_2mortal(CtoPerl("Unicode::LineBreak", lbobj)));
363 0 49 XPUSHs(sv_2mortal(unistrtoSV(str, 0, str->len)));
368 49 0 if (SvTRUE(ERRSV)) {
49 0 if (SvTRUE(ERRSV)) {
49 0 if (SvTRUE(ERRSV)) {
0 49 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
49 0 if (SvTRUE(ERRSV)) {
0 49 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
49 0 if (SvTRUE(ERRSV)) {
49 0 if (SvTRUE(ERRSV)) {
49 0 if (SvTRUE(ERRSV)) {
49 0 if (SvTRUE(ERRSV)) {
49 0 if (SvTRUE(ERRSV)) {
49 0 if (SvTRUE(ERRSV)) {
49 0 if (SvTRUE(ERRSV)) {
0 49 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 49 if (SvTRUE(ERRSV)) {
369 0 0 if (!lbobj->errnum)
374 0 49 if ((ret = gcstring_new(NULL, lbobj)) == NULL)
375 0 0 return (lbobj->errnum = errno ? errno : ENOMEM), NULL;
377 221 49 for (i = 0; i < count; i++) {
379 0 221 if (!SvOK(sv))
0 0 if (!SvOK(sv))
0 0 if (!SvOK(sv))
383 2329 221 for (j = 0; j < gcstr->gclen; j++) {
384 0 2329 if (gcstr->gcstr[j].flag &
388 958 1371 if (i < count - 1 && j == 0)
172 786 if (i < count - 1 && j == 0)
390 2108 49 else if (0 < j)
395 221 0 if (!sv_isobject(sv))
400 49 0 FREETMPS;
424 756 0 if (action <= LINEBREAK_STATE_NONE || LINEBREAK_STATE_MAX <= action)
0 756 if (action <= LINEBREAK_STATE_NONE || LINEBREAK_STATE_MAX <= action)
429 0 756 PUSHMARK(SP);
431 0 756 XPUSHs(sv_2mortal(CtoPerl("Unicode::LineBreak", lbobj)));
432 0 756 XPUSHs(sv_2mortal(newSVpv(actionstr, 0)));
433 0 756 XPUSHs(sv_2mortal(CtoPerl("Unicode::GCString", gcstring_copy(str))));
438 756 0 if (SvTRUE(ERRSV)) {
756 0 if (SvTRUE(ERRSV)) {
756 0 if (SvTRUE(ERRSV)) {
0 756 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
756 0 if (SvTRUE(ERRSV)) {
0 756 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
756 0 if (SvTRUE(ERRSV)) {
756 0 if (SvTRUE(ERRSV)) {
756 0 if (SvTRUE(ERRSV)) {
756 0 if (SvTRUE(ERRSV)) {
756 0 if (SvTRUE(ERRSV)) {
756 0 if (SvTRUE(ERRSV)) {
756 0 if (SvTRUE(ERRSV)) {
0 756 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 756 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
439 0 0 if (!lbobj->errnum)
443 0 756 } else if (count != 1)
447 402 354 if (!SvOK(sv))
402 0 if (!SvOK(sv))
402 0 if (!SvOK(sv))
451 110 646 if (sv_isobject(sv))
455 756 0 FREETMPS;
474 0 2328 PUSHMARK(SP);
476 0 2328 XPUSHs(sv_2mortal(CtoPerl("Unicode::LineBreak", lbobj)));
477 0 2328 XPUSHs(sv_2mortal(newSVnv(len)));
478 0 2328 XPUSHs(sv_2mortal(CtoPerl("Unicode::GCString", gcstring_copy(pre))));
479 0 2328 XPUSHs(sv_2mortal(CtoPerl("Unicode::GCString", gcstring_copy(spc))));
480 0 2328 XPUSHs(sv_2mortal(CtoPerl("Unicode::GCString", gcstring_copy(str))));
485 2328 0 if (SvTRUE(ERRSV)) {
2328 0 if (SvTRUE(ERRSV)) {
2328 0 if (SvTRUE(ERRSV)) {
0 2328 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
2328 0 if (SvTRUE(ERRSV)) {
0 2328 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
2328 0 if (SvTRUE(ERRSV)) {
2328 0 if (SvTRUE(ERRSV)) {
2328 0 if (SvTRUE(ERRSV)) {
2328 0 if (SvTRUE(ERRSV)) {
2328 0 if (SvTRUE(ERRSV)) {
2328 0 if (SvTRUE(ERRSV)) {
2328 0 if (SvTRUE(ERRSV)) {
0 2328 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 2328 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
486 0 0 if (!lbobj->errnum)
490 0 2328 } else if (count != 1)
493 0 2328 ret = POPn;
496 2328 0 FREETMPS;
516 0 0 PUSHMARK(SP);
518 0 0 XPUSHs(sv_2mortal(CtoPerl("Unicode::LineBreak", lbobj)));
519 0 0 XPUSHs(sv_2mortal(CtoPerl("Unicode::GCString", gcstring_copy(str))));
524 0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
525 0 0 if (!lbobj->errnum)
528 0 0 } if (count == 0)
532 0 0 for (i = count; i; i--) {
534 0 0 if (SvOK(sv)) {
0 0 if (SvOK(sv)) {
0 0 if (SvOK(sv)) {
536 0 0 if (gcstr->gclen)
539 0 0 if (!sv_isobject(sv))
545 0 0 FREETMPS;
559 189 21 for (p = (char **)linebreak_propvals_EA; *p != NULL; p++)
560 0 189 XPUSHs(sv_2mortal(newSVpv(*p, 0)));
567 840 21 for (p = (char **)linebreak_propvals_LB; *p != NULL; p++)
568 0 840 XPUSHs(sv_2mortal(newSVpv(*p, 0)));
575 0 483 if ((RETVAL = linebreak_new(ref_func)) == NULL)
609 0 1351 if (items < 2)
611 353 998 else if (items < 3) {
612 353 0 key = (char *)SvPV_nolen(ST(1));
614 0 353 if (strcasecmp(key, "BreakIndent") == 0)
617 0 353 else if (strcasecmp(key, "CharMax") == 0)
619 56 297 else if (strcasecmp(key, "ColMax") == 0)
621 0 297 else if (strcasecmp(key, "ColMin") == 0)
623 0 297 else if (strcasecmp(key, "ComplexBreaking") == 0)
626 0 297 else if (strcasecmp(key, "Context") == 0) {
627 0 0 if (self->options & LINEBREAK_OPTION_EASTASIAN_CONTEXT)
631 0 297 } else if (strcasecmp(key, "EAWidth") == 0) {
637 0 0 if (self->map == NULL || self->mapsiz == 0)
0 0 if (self->map == NULL || self->mapsiz == 0)
640 0 0 for (i = 0; i < self->mapsiz; i++)
641 0 0 if (self->map[i].eaw != PROP_UNKNOWN) {
642 0 0 if (p != self->map[i].eaw){
648 0 0 if (ret == NULL)
652 0 0 for (c = self->map[i].beg; c <= self->map[i].end; c++)
656 0 0 if (ret == NULL)
659 0 297 } else if (strcasecmp(key, "Format") == 0) {
661 0 0 if (func == NULL)
663 0 0 else if (func == linebreak_format_NEWLINE)
665 0 0 else if (func == linebreak_format_SIMPLE)
667 0 0 else if (func == linebreak_format_TRIM)
669 0 0 else if (func == format_func) {
670 0 0 if ((val = (SV *)self->format_data) == NULL)
676 0 297 } else if (strcasecmp(key, "HangulAsAL") == 0)
679 0 297 else if (strcasecmp(key, "LBClass") == 0) {
685 0 0 if (self->map == NULL || self->mapsiz == 0)
0 0 if (self->map == NULL || self->mapsiz == 0)
688 0 0 for (i = 0; i < self->mapsiz; i++)
689 0 0 if (self->map[i].lbc != PROP_UNKNOWN) {
690 0 0 if (p != self->map[i].lbc){
696 0 0 if (ret == NULL)
700 0 0 for (c = self->map[i].beg; c <= self->map[i].end; c++)
704 0 0 if (ret == NULL)
707 0 297 } else if (strcasecmp(key, "LegacyCM") == 0)
709 297 0 else if (strcasecmp(key, "Newline") == 0) {
711 297 0 if (self->newline.str == NULL || self->newline.len == 0)
0 297 if (self->newline.str == NULL || self->newline.len == 0)
715 0 0 } else if (strcasecmp(key, "Prep") == 0) {
717 0 0 if (self->prep_func == NULL || self->prep_func[0] == NULL)
0 0 if (self->prep_func == NULL || self->prep_func[0] == NULL)
720 0 0 for (i = 0; (func = self->prep_func[i]) != NULL; i++)
721 0 0 if (func == linebreak_prep_URIBREAK) {
722 0 0 if (self->prep_data == NULL ||
0 0 if (self->prep_data == NULL ||
727 0 0 } else if (func == prep_func) {
728 0 0 if (self->prep_data == NULL ||
0 0 if (self->prep_data == NULL ||
736 0 0 } else if (strcasecmp(key, "Sizing") == 0) {
738 0 0 if (func == NULL)
740 0 0 else if (func == linebreak_sizing_UAX11)
742 0 0 else if (func == sizing_func) {
743 0 0 if ((val = (SV *)self->sizing_data) == NULL)
749 0 0 } else if (strcasecmp(key, "Urgent") == 0) {
751 0 0 if (func == NULL)
753 0 0 else if (func == linebreak_urgent_ABORT)
755 0 0 else if (func == linebreak_urgent_FORCE)
757 0 0 else if (func == urgent_func) {
758 0 0 if ((val = (SV *)self->urgent_data) == NULL)
764 0 0 } else if (strcasecmp(key, "ViramaAsJoiner") == 0)
770 0 998 } else if (!(items % 2))
772 8237 998 else for (RETVAL = NULL, i = 1; i < items; i += 2) {
773 0 8237 if (!SvPOK(ST(i)))
775 8237 0 key = (char *)SvPV_nolen(ST(i));
778 497 7740 if (strcasecmp(key, "Prep") == 0) {
783 483 14 if (! SvOK(val))
483 0 if (! SvOK(val))
483 0 if (! SvOK(val))
785 11 3 else if (SvROK(val) &&
11 0 else if (SvROK(val) &&
786 11 0 SvTYPE(av = (AV *)SvRV(val)) == SVt_PVAV &&
790 10 1 if (SvRXOK(pattern))
799 10 1 if (rx != NULL)
801 0 1 else if (SvOK(pattern)) {
0 0 else if (SvOK(pattern)) {
0 0 else if (SvOK(pattern)) {
811 1 0 if (rx != NULL) {
825 0 11 if (rx == NULL)
828 0 11 if (av_fetch(av, 1, 0) == NULL)
830 0 11 else if (SvOK(func = *av_fetch(av, 1, 0)))
0 0 else if (SvOK(func = *av_fetch(av, 1, 0)))
0 0 else if (SvOK(func = *av_fetch(av, 1, 0)))
837 11 0 if (func != NULL)
843 3 0 char *s = SvPV_nolen(val);
845 1 2 if (strcasecmp(s, "BREAKURI") == 0)
847 2 0 else if (strcasecmp(s, "NONBREAKURI") == 0)
853 509 7231 } else if (strcasecmp(key, "Format") == 0) {
854 1 508 if (! SvOK(val))
1 0 if (! SvOK(val))
1 0 if (! SvOK(val))
856 17 491 else if (sv_derived_from(val, "CODE"))
859 491 0 char *s = SvPV_nolen(val);
861 0 491 if (strcasecmp(s, "DEFAULT") == 0) {
867 483 8 } else if (strcasecmp(s, "SIMPLE") == 0)
870 4 4 else if (strcasecmp(s, "NEWLINE") == 0)
873 4 0 else if (strcasecmp(s, "TRIM") == 0)
879 491 6740 } else if (strcasecmp(key, "Sizing") == 0) {
880 0 491 if (! SvOK(val))
0 0 if (! SvOK(val))
0 0 if (! SvOK(val))
882 8 483 else if (sv_derived_from(val, "CODE"))
885 483 0 char *s = SvPV_nolen(val);
887 0 483 if (strcasecmp(s, "DEFAULT") == 0) {
893 483 0 } else if (strcasecmp(s, "UAX11") == 0)
899 489 6251 } else if (strcasecmp(key, "Urgent") == 0) {
900 483 6 if (! SvOK(val))
483 0 if (! SvOK(val))
483 0 if (! SvOK(val))
902 0 6 else if (sv_derived_from(val, "CODE"))
905 6 0 char *s = SvPV_nolen(val);
907 0 6 if (strcasecmp(s, "NONBREAK") == 0) {
912 2 4 } else if (strcasecmp(s, "CROAK") == 0)
915 4 0 else if (strcasecmp(s, "FORCE") == 0)
921 358 5893 } else if (strcasecmp(key, "BreakIndent") == 0) {
922 357 1 if (SVtoboolean(val))
926 485 5408 } else if (strcasecmp(key, "CharMax") == 0)
927 0 485 self->charmax = SvUV(val);
928 538 4870 else if (strcasecmp(key, "ColMax") == 0)
929 31 507 self->colmax = (double)SvNV(val);
930 485 4385 else if (strcasecmp(key, "ColMin") == 0)
931 0 485 self->colmin = (double)SvNV(val);
932 358 4027 else if (strcasecmp(key, "ComplexBreaking") == 0) {
933 357 1 if (SVtoboolean(val))
937 546 3481 } else if (strcasecmp(key, "Context") == 0) {
938 0 546 if (SvOK(val))
0 0 if (SvOK(val))
0 0 if (SvOK(val))
939 546 0 opt = (char *)SvPV_nolen(val);
942 546 0 if (opt && strcasecmp(opt, "EASTASIAN") == 0)
55 491 if (opt && strcasecmp(opt, "EASTASIAN") == 0)
946 485 2996 } else if (strcasecmp(key, "EAWidth") == 0) {
952 357 128 if (! SvOK(val))
357 0 if (! SvOK(val))
357 0 if (! SvOK(val))
954 128 0 else if (SvROK(val) &&
128 0 else if (SvROK(val) &&
955 128 0 SvTYPE(av = (AV *)SvRV(val)) == SVt_PVAV &&
956 128 0 av_len(av) + 1 == 2 &&
957 128 0 av_fetch(av, 0, 0) != NULL && av_fetch(av, 1, 0) != NULL) {
959 128 0 if (SvIOK(sv))
960 128 0 p = (propval_t) SvIV(sv);
965 128 0 if (SvROK(sv) &&
128 0 if (SvROK(sv) &&
967 65956 128 for (i = 0; i < av_len(codes) + 1; i++) {
968 0 65956 if (av_fetch(codes, i, 0) == NULL)
970 0 65956 if (! SvIOK(sv = *av_fetch(codes, i, 0)))
972 0 65956 linebreak_update_eawidth(self,
975 0 0 } else if (SvIOK(sv)) {
976 0 0 linebreak_update_eawidth(self, (unichar_t) SvUV(sv),
982 484 2512 } else if (strcasecmp(key, "HangulAsAL") == 0) {
983 1 483 if (SVtoboolean(val))
987 492 2020 } else if (strcasecmp(key, "LBClass") == 0) {
993 483 9 if (! SvOK(val))
483 0 if (! SvOK(val))
483 0 if (! SvOK(val))
995 9 0 else if (SvROK(val) &&
9 0 else if (SvROK(val) &&
996 9 0 SvTYPE(av = (AV *)SvRV(val)) == SVt_PVAV &&
997 9 0 av_len(av) + 1 == 2 &&
998 9 0 av_fetch(av, 0, 0) != NULL && av_fetch(av, 1, 0) != NULL) {
1000 9 0 if (SvIOK(sv))
1001 9 0 p = (propval_t) SvIV(sv);
1006 1 8 if (SvROK(sv) &&
1 0 if (SvROK(sv) &&
1008 58 1 for (i = 0; i < av_len(codes) + 1; i++) {
1009 0 58 if (av_fetch(codes, i, 0) == NULL)
1011 0 58 if (! SvIOK(sv = *av_fetch(codes, i, 0)))
1013 0 58 linebreak_update_lbclass(self,
1016 8 0 } else if (SvIOK(sv)) {
1017 0 8 linebreak_update_lbclass(self, (unichar_t) SvUV(sv),
1023 832 1188 } else if (strcasecmp(key, "LegacyCM") == 0) {
1024 831 1 if (SVtoboolean(val))
1028 483 705 } else if (strcasecmp(key, "Newline") == 0) {
1029 483 0 if (!sv_isobject(val)) {
1034 0 0 } else if (sv_derived_from(val, "Unicode::GCString"))
1035 0 0 linebreak_set_newline(self,
1039 0 0 croak("_config: Unknown object %s",
0 0 croak("_config: Unknown object %s",
1040 0 0 HvNAME(SvSTASH(SvRV(val))));
0 0 HvNAME(SvSTASH(SvRV(val))));
0 0 HvNAME(SvSTASH(SvRV(val))));
0 0 HvNAME(SvSTASH(SvRV(val))));
1041 705 0 } else if (strcasecmp(key, "ViramaAsJoiner") == 0) {
1042 357 348 if (SVtoboolean(val))
1056 0 2971 if (self->stash == NULL)
1068 0 0 snprintf(buf, 64, "%s(0x%lx)", HvNAME(SvSTASH(SvRV(ST(0)))),
0 0 snprintf(buf, 64, "%s(0x%lx)", HvNAME(SvSTASH(SvRV(ST(0)))),
0 0 snprintf(buf, 64, "%s(0x%lx)", HvNAME(SvSTASH(SvRV(ST(0)))),
0 0 snprintf(buf, 64, "%s(0x%lx)", HvNAME(SvSTASH(SvRV(ST(0)))),
0 0 snprintf(buf, 64, "%s(0x%lx)", HvNAME(SvSTASH(SvRV(ST(0)))),
0 0 snprintf(buf, 64, "%s(0x%lx)", HvNAME(SvSTASH(SvRV(ST(0)))),
1081 0 0 snprintf(buf, 64, "%s(0x%lx)", HvNAME(SvSTASH(SvRV(ST(0)))),
0 0 snprintf(buf, 64, "%s(0x%lx)", HvNAME(SvSTASH(SvRV(ST(0)))),
0 0 snprintf(buf, 64, "%s(0x%lx)", HvNAME(SvSTASH(SvRV(ST(0)))),
0 0 snprintf(buf, 64, "%s(0x%lx)", HvNAME(SvSTASH(SvRV(ST(0)))),
0 0 snprintf(buf, 64, "%s(0x%lx)", HvNAME(SvSTASH(SvRV(ST(0)))),
0 0 snprintf(buf, 64, "%s(0x%lx)", HvNAME(SvSTASH(SvRV(ST(0)))),
1095 0 0 if (!SvOK(ST(1)) || !SvOK(ST(2)))
0 0 if (!SvOK(ST(1)) || !SvOK(ST(2)))
0 0 if (!SvOK(ST(1)) || !SvOK(ST(2)))
0 0 if (!SvOK(ST(1)) || !SvOK(ST(2)))
0 0 if (!SvOK(ST(1)) || !SvOK(ST(2)))
0 0 if (!SvOK(ST(1)) || !SvOK(ST(2)))
1097 0 0 if (self == NULL)
1100 0 0 if (RETVAL == PROP_UNKNOWN)
1114 0 18 if (!SvOK(ST(1)) || !SvOK(ST(2)))
0 0 if (!SvOK(ST(1)) || !SvOK(ST(2)))
0 0 if (!SvOK(ST(1)) || !SvOK(ST(2)))
0 18 if (!SvOK(ST(1)) || !SvOK(ST(2)))
0 0 if (!SvOK(ST(1)) || !SvOK(ST(2)))
0 0 if (!SvOK(ST(1)) || !SvOK(ST(2)))
1116 0 18 if (lbobj == NULL)
1118 0 18 if ((blbc = gcstring_lbclass_ext(bgcstr, -1)) == PROP_UNKNOWN)
1120 0 18 if ((albc = gcstring_lbclass(agcstr, 0)) == PROP_UNKNOWN)
1123 0 18 if (RETVAL == PROP_UNKNOWN)
1145 0 0 if (5 < items)
1149 0 0 if (RETVAL == -1.0)
1163 0 6382 if (input == NULL)
1167 2 6380 if (ret == NULL) {
1168 0 2 if (self->errnum == LINEBREAK_EEXTN)
1169 0 0 croak("%s", SvPV_nolen(ERRSV));
0 0 croak("%s", SvPV_nolen(ERRSV));
0 0 croak("%s", SvPV_nolen(ERRSV));
0 0 croak("%s", SvPV_nolen(ERRSV));
1170 2 0 else if (self->errnum == LINEBREAK_ELONG)
1172 0 0 else if (self->errnum)
1178 6380 0 switch (GIMME_V) {
1181 1119 51 for (i = 0; ret[i] != NULL; i++)
1184 0 51 XPUSHs(sv_2mortal(unistrtoSV((unistr_t *)r, 0, r->len)));
1189 10799 6329 for (i = 0; ret[i] != NULL; i++)
1190 0 10799 XPUSHs(sv_2mortal(CtoPerl("Unicode::GCString", ret[i])));
1210 0 2346 if (ret == NULL) {
1211 0 0 if (self->errnum == LINEBREAK_EEXTN)
1212 0 0 croak("%s", SvPV_nolen(ERRSV));
0 0 croak("%s", SvPV_nolen(ERRSV));
0 0 croak("%s", SvPV_nolen(ERRSV));
0 0 croak("%s", SvPV_nolen(ERRSV));
1213 0 0 else if (self->errnum == LINEBREAK_ELONG)
1215 0 0 else if (self->errnum)
1221 2346 0 switch (GIMME_V) {
1224 294 2346 for (i = 0; ret[i] != NULL; i++)
1227 0 2346 XPUSHs(sv_2mortal(unistrtoSV((unistr_t *)r, 0, r->len)));
1232 0 0 for (i = 0; ret[i] != NULL; i++)
1233 0 0 XPUSHs(sv_2mortal(CtoPerl("Unicode::GCString", ret[i])));
1264 4 0 if (RETVAL == NULL)
1278 0 416 if (str == NULL)
1281 0 416 if ((RETVAL = gcstring_newcopy(str, lbobj)) == NULL)
1300 356 0 if (self != NULL)
1301 689 356 for (i = 0; i < self->gclen; i++)
1302 0 689 XPUSHs(sv_2mortal(
1313 0 0 snprintf(buf, 64, "%s(0x%lx)", HvNAME(SvSTASH(SvRV(ST(0)))),
0 0 snprintf(buf, 64, "%s(0x%lx)", HvNAME(SvSTASH(SvRV(ST(0)))),
0 0 snprintf(buf, 64, "%s(0x%lx)", HvNAME(SvSTASH(SvRV(ST(0)))),
0 0 snprintf(buf, 64, "%s(0x%lx)", HvNAME(SvSTASH(SvRV(ST(0)))),
0 0 snprintf(buf, 64, "%s(0x%lx)", HvNAME(SvSTASH(SvRV(ST(0)))),
0 0 snprintf(buf, 64, "%s(0x%lx)", HvNAME(SvSTASH(SvRV(ST(0)))),
1345 0 1035 if (swap == TRUE)
1368 106 2351 if (swap == TRUE)
1370 9 2342 else if (swap == -1) {
1404 0 0 if (1 < items)
1405 0 0 i = SvIV(ST(1));
1408 0 0 if (i < 0 || self == NULL || self->gclen <= i)
0 0 if (i < 0 || self == NULL || self->gclen <= i)
0 0 if (i < 0 || self == NULL || self->gclen <= i)
1410 0 0 if (2 < items) {
1411 0 0 flag = SvUV(ST(2));
1412 0 0 if (flag == (flag & 255))
1428 0 3311 if (1 < items)
1429 0 0 i = SvIV(ST(1));
1432 3311 0 if (i < 0 || self == NULL || self->gclen <= i)
3311 0 if (i < 0 || self == NULL || self->gclen <= i)
0 3311 if (i < 0 || self == NULL || self->gclen <= i)
1454 0 0 if (sv_isobject(ST(1)))
1459 0 0 if (sv_isobject(ST(1)))
1461 0 0 for (i = 2; i < items; i++) {
1465 0 0 if (!sv_isobject(ST(i)))
1478 0 3365 if ((RETVAL = gcstring_lbclass(self, 0)) == PROP_UNKNOWN)
1488 0 0 if ((RETVAL = gcstring_lbclass_ext(self, -1)) == PROP_UNKNOWN)
1501 0 0 if (1 < items)
1502 0 0 i = SvIV(ST(1));
1506 0 0 if (RETVAL == PROP_UNKNOWN)
1519 0 0 if (1 < items)
1520 0 0 i = SvIV(ST(1));
1524 0 0 if (RETVAL == PROP_UNKNOWN)
1545 1 1023 if (gcstring_eos(self))
1557 2328 2328 if (1 < items)
1558 2328 0 gcstring_setpos(self, SvIV(ST(1)));
1573 3 2331 if (replacement != NULL)
1574 0 3 if (gcstring_replace(self, offset, length, replacement) == NULL)
1576 0 2334 if (RETVAL == NULL)