/* Accomodate broken VAXC compiler, which applies U8 cast to
* both args of ?: operator, causing EOF to change into 255
*/
- if (cnt > 0) { i = (U8)buf[cnt - 1]; } else { i = EOF; }
- }
-
- if (cnt > 0) {
- if (append)
- sv_catpvn(sv, (char *) buf, cnt);
+ if (cnt > 0)
+ i = (U8)buf[cnt - 1];
else
- sv_setpvn(sv, (char *) buf, cnt);
+ i = EOF;
}
+ if (cnt < 0)
+ cnt = 0; /* we do need to re-set the sv even when cnt <= 0 */
+ if (append)
+ sv_catpvn(sv, (char *) buf, cnt);
+ else
+ sv_setpvn(sv, (char *) buf, cnt);
+
if (i != EOF && /* joy */
(!rslen ||
SvCUR(sv) < rslen ||