Correctly use ferror.

SVN revision: 36617
This commit is contained in:
Cedric BAIL 2008-10-13 12:09:31 +00:00
parent 4c0daa8810
commit 6ee6cdeeb3
1 changed files with 34 additions and 28 deletions

View File

@ -548,7 +548,9 @@ eet_flush2(Eet_File *ef)
return EET_ERROR_NONE;
write_error:
switch (ferror(ef->fp))
if (ferror(ef->fp))
{
switch (errno)
{
case EFBIG: error = EET_ERROR_WRITE_ERROR_FILE_TOO_BIG; break;
case EIO: error = EET_ERROR_WRITE_ERROR_IO_ERROR; break;
@ -556,6 +558,7 @@ eet_flush2(Eet_File *ef)
case EPIPE: error = EET_ERROR_WRITE_ERROR_FILE_CLOSED; break;
default: error = EET_ERROR_WRITE_ERROR; break;
}
}
sign_error:
if (ef->fp) fclose(ef->fp);
ef->fp = NULL;
@ -655,7 +658,9 @@ eet_flush(Eet_File *ef)
return EET_ERROR_NONE;
write_error:
switch (ferror(ef->fp))
if (ferror(ef->fp))
{
switch (errno)
{
case EFBIG:
fclose(ef->fp);
@ -678,8 +683,9 @@ eet_flush(Eet_File *ef)
ef->fp = NULL;
return EET_ERROR_WRITE_ERROR;
}
}
sign_error:
fclose(ef->fp);
if (ef->fp) fclose(ef->fp);
ef->fp = NULL;
return EET_ERROR_WRITE_ERROR;
}