This var is used to enable padding or truncating of output items.
FF_LINESNGL/FF_LINEGLOB do their own version of this, so there's
no need to set it there.
Or to put it another way, we don't expect a FF_LINESNGL or FF_LINEGLOB op
to be followed immediately by FF_SPACE, FF_HALFSPACE, FF_ITEM nor FF_MORE.
Not calculating it makes the code simpler and eases the path to merging
the appending code.
const char *const send = s + len;
item_is_utf8 = DO_UTF8(sv);
- itemsize = len;
- if (!itemsize)
+ if (!len)
break;
gotsome = TRUE;
- chophere = s + itemsize;
+ chophere = s + len;
source = (U8 *) s;
to_copy = len;
while (s < send) {
break;
} else {
if (s == send) {
- itemsize--;
to_copy--;
} else
lines++;
Copy(source, t, to_copy, char);
t += to_copy;
SvCUR_set(PL_formtarget, SvCUR(PL_formtarget) + to_copy);
- if (item_is_utf8) {
- if (SvGMAGICAL(sv)) {
- /* Mustn't call sv_pos_b2u() as it does a second
- mg_get(). Is this a bug? Do we need a _flags()
- variant? */
- itemsize = utf8_length(source, source + itemsize);
- } else {
- sv_pos_b2u(sv, &itemsize);
- }
- assert(!tmp);
- } else if (tmp) {
+ if (tmp)
Safefree(tmp);
- }
break;
}