s_grow
(*((s)->ptr)++ = (char)(c)) : s_grow((s), (c)))
(*(s)->ptr = 0) : (s_grow((s), 0), (s)->ptr--, 0))
extern int s_grow(string *sp, int c);
extern int s_grow();