Lines Matching defs:cat
368 #define GROWING2(utf8, cat, start, cur, item_size, item_count) \
372 GROWING((utf8), (cat), (start), (cur), (item_size) * (item_count)); \
375 #define GROWING(utf8, cat, start, cur, in_len) \
382 if (catcur + glen >= SvLEN(cat)) { \
383 (start) = sv_exp_grow(cat, glen); \
384 (cur) = (start) + SvCUR(cat); \
388 #define PUSH_GROWING_BYTES(utf8, cat, start, cur, buf, in_len) \
393 if ((cur) + gl >= (start) + SvLEN(cat)) { \
395 SvCUR_set((cat), (cur) - (start)); \
396 (start) = sv_exp_grow(cat, gl); \
397 (cur) = (start) + SvCUR(cat); \
1984 Perl_packlist(pTHX_ SV *cat, const char *pat, const char *patend, SV **beglist, SV **endlist )
1992 /* We're going to do changes through SvPVX(cat). Make sure it's valid.
1994 SvPV_force_nolen(cat);
1995 if (DO_UTF8(cat))
1998 (void)pack_rec( cat, &sym, beglist, endlist );
2107 S_pack_rec(pTHX_ SV *cat, tempsym_t* symptr, SV **beglist, SV **endlist )
2119 marked_upgrade(aTHX_ cat, symptr);
2123 symptr->strbeg = SvCUR(cat);
2132 char *start = SvPVX(cat);
2133 char *cur = start + SvCUR(cat);
2156 GROWING2(utf8, cat, start, cur, size, (STRLEN)len);
2188 cat (CUR length and '\0' termination) if it updated *cur and
2226 GROWING(0, cat, start, cur, len);
2259 was_utf8 = SvUTF8(cat);
2261 beglist = pack_rec(cat, symptr, beglist, endlist);
2262 if (SvUTF8(cat) != was_utf8)
2348 if (!utf8 && !SvUTF8(cat)) {
2349 marked_upgrade(aTHX_ cat, symptr);
2353 start = SvPVX(cat);
2354 cur = start + SvCUR(cat);
2383 GROWING(0, cat, start, cur, len);
2403 GROWING(0, cat, start, cur, fromlen*(UTF8_EXPAND-1)+len);
2420 GROWING(0, cat, start, cur, len);
2427 SvTAINT(cat);
2450 GROWING(utf8, cat, start, cur, field_len);
2519 GROWING(utf8, cat, start, cur, field_len);
2604 end = start+SvLEN(cat)-1;
2615 SvCUR_set(cat, cur - start);
2617 GROWING(0, cat, start, cur, len+UTF8_MAXLEN);
2618 end = start+SvLEN(cat)-UTF8_MAXLEN;
2623 if (!SvUTF8(cat)) {
2625 SvCUR_set(cat, cur - start);
2626 marked_upgrade(aTHX_ cat, symptr);
2630 start = SvPVX(cat);
2631 cur = start + SvCUR(cat);
2632 end = start+SvLEN(cat)-UTF8_MAXLEN;
2641 SvCUR_set(cat, cur - start);
2642 GROWING(0, cat, start, cur, len+1);
2643 end = start+SvLEN(cat)-1;
2655 marked_upgrade(aTHX_ cat, symptr);
2663 end = start+SvLEN(cat);
2674 SvCUR_set(cat, cur - start);
2675 GROWING(0, cat, start, cur,
2677 end = start+SvLEN(cat);
2683 SvCUR_set(cat, cur - start);
2684 GROWING(0, cat, start, cur, len+UTF8_MAXLEN);
2685 end = start+SvLEN(cat)-UTF8_MAXLEN;
2884 SvCUR_set(cat, cur - start);
2903 PUSH_GROWING_BYTES(utf8, cat, start, cur,
2936 PUSH_GROWING_BYTES(utf8, cat, start, cur,
2956 PUSH_GROWING_BYTES(utf8, cat, start, cur,
3052 GROWING(utf8, cat, start, cur, sizeof(char *));
3105 GROWING(utf8, cat, start, cur, (fromlen+2) / 3 * 4 + (fromlen+len-1)/len * 2);
3120 SvCUR_set(cat, cur - start);
3137 SvCUR_set(cat, cur - start);
3149 SV *cat = TARG;
3156 SvPVCLEAR(cat);
3157 SvUTF8_off(cat);
3159 packlist(cat, pat, patend, MARK, SP + 1);
3161 if (SvUTF8(cat)) {
3163 const char * result = SvPV_nomg(cat, result_len);
3176 SvSETMAGIC(cat);
3178 PUSHs(cat);