fix fclose return status logic, again

the previous fix was incorrect, as it would prevent f->close(f) from
being called if fflush(f) failed. i believe this was the original
motivation for using | rather than ||. so now let's just use a second
statement to constrain the order of function calls, and to back to
using |.
This commit is contained in:
Rich Felker 2011-05-02 09:18:03 -04:00
parent bd67467325
commit 78c808b126
1 changed files with 2 additions and 1 deletions

View File

@ -13,7 +13,8 @@ int fclose(FILE *f)
OFLUNLOCK();
}
r = -(fflush(f) || f->close(f));
r = fflush(f);
r |= f->close(f);
if (!perm) free(f);