int
_frnewwid(Frame *f, Point pt, Frbox *b)
{
b->wid = _frnewwid0(f, pt, b);
return b->wid;
}
int
_frnewwid0(Frame *f, Point pt, Frbox *b)
{
int c, x;
c = f->r.max.x;
x = pt.x;
if(b->nrune>=0 || b->bc!='\t')
return b->wid;
if(x+b->minwid > c)
x = pt.x = f->r.min.x;
x += f->maxtab;
x -= (x-f->r.min.x)%f->maxtab;
if(x-pt.x<b->minwid || x>c)
x = pt.x+b->minwid;
return x-pt.x;
}
void
_frclean(Frame *f, Point pt, int n0, int n1) /* look for mergeable boxes */
{
Frbox *b;
int nb, c;