break;
}
- if (rc == 0)
+ if (rc == 0) {
f->pkg->priv->last_file = f;
+ f->eof = 0;
+ } else if (f->pkg->priv->last_file == f) {
+ f->pkg->priv->last_file = NULL;
+ }
+
return rc;
}
rc = fread(buf, 1, want, f->pkg->priv->f);
f->offset += rc;
+
+ if (want < n || rc < want && feof(f->pkg->priv->f))
+ f->eof = 1;
return rc;
}