Mercurial > geeqie
diff src/secure_save.c @ 536:d8494488d2d2
Add a wrapper to fwrite().
author | zas_ |
---|---|
date | Thu, 01 May 2008 22:27:44 +0000 |
parents | 135570a8bd96 |
children | 8268cbe682f1 |
line wrap: on
line diff
--- a/src/secure_save.c Thu May 01 21:42:22 2008 +0000 +++ b/src/secure_save.c Thu May 01 22:27:44 2008 +0000 @@ -370,6 +370,26 @@ return ret; } +/** fwrite() wrapper, set ssi->err to errno on error and return a value less than + * the number of elements to write. If ssi->err is set when called, it immediatly returns 0. + */ +size_t +secure_fwrite(const void *ptr, size_t size, size_t nmemb, SecureSaveInfo *ssi) +{ + size_t ret; + + if (!ssi || !ssi->fp || ssi->err) return 0; + + ret = fwrite(ptr, size, nmemb, ssi->fp); + if (ret < nmemb) + { + ssi->err = errno; + secsave_errno = SS_ERR_OTHER; + } + + return ret; +} + gchar * secsave_strerror(SecureSaveErrno secsave_error) {