_UB
_UB(fp)._size = 0;
#define HASUB(fp) (_UB(fp)._base != NULL)
if (_UB(fp)._base != (fp)->_ubuf) \
free(_UB(fp)._base); \
_UB(fp)._base = NULL; \
if (fp->_r >= _UB(fp)._size && __submore(fp))
_UB(fp)._base = fp->_ubuf;
_UB(fp)._size = sizeof(fp->_ubuf);
if (_UB(fp)._base == fp->_ubuf) {
_UB(fp)._base = p;
_UB(fp)._size = BUFSIZ;
i = _UB(fp)._size;
p = reallocarray(_UB(fp)._base, i, 2);
_UB(fp)._base = p;
_UB(fp)._size = i * 2;