FILE *fp;
int nread;
int width;
+ int width_flag;
int ungot_char;
int ungot_flag;
};
{
sc->fp = fp;
sc->nread = 0;
+ sc->width_flag = 0;
sc->ungot_flag = 0;
if ((sc->ungot_char = getc(fp)) > 0) { /* not EOF or EOS */
sc->ungot_flag = 1;
if (sc->ungot_char > 0) {
++sc->nread;
}
+ sc->width_flag = 0;
return sc->ungot_char;
}
if (sc->ungot_flag == 0) {
sc->ungot_char = getc(sc->fp);
}
+ sc->width_flag = 1;
if (--sc->width < 0) {
sc->ungot_flag = 1;
return 0;
assert(sc->width < 0);
return;
}
+ if (sc->width_flag) {
+ ++sc->width;
+ }
sc->ungot_flag = 1;
if (sc->ungot_char > 0) { /* not EOF or EOS */
--sc->nread;