diff options
Diffstat (limited to 'girepository/cmph/chm.c')
-rw-r--r-- | girepository/cmph/chm.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/girepository/cmph/chm.c b/girepository/cmph/chm.c index 9cdbf41b..3af8c806 100644 --- a/girepository/cmph/chm.c +++ b/girepository/cmph/chm.c @@ -10,6 +10,7 @@ #include <stdio.h> #include <assert.h> #include <string.h> +#include <errno.h> //#define DEBUG #include "debug.h" @@ -225,6 +226,10 @@ int chm_dump(cmph_t *mphf, FILE *fd) nbytes = fwrite(&(data->m), sizeof(cmph_uint32), (size_t)1, fd); nbytes = fwrite(data->g, sizeof(cmph_uint32)*data->n, (size_t)1, fd); + if (nbytes == 0 && ferror(fd)) { + fprintf(stderr, "ERROR: %s\n", strerror(errno)); + return 0; + } /* #ifdef DEBUG fprintf(stderr, "G: "); for (i = 0; i < data->n; ++i) fprintf(stderr, "%u ", data->g[i]); @@ -265,6 +270,10 @@ void chm_load(FILE *f, cmph_t *mphf) chm->g = (cmph_uint32 *)malloc(sizeof(cmph_uint32)*chm->n); nbytes = fread(chm->g, chm->n*sizeof(cmph_uint32), (size_t)1, f); + if (nbytes == 0 && ferror(f)) { + fprintf(stderr, "ERROR: %s\n", strerror(errno)); + return; + } #ifdef DEBUG fprintf(stderr, "G: "); for (i = 0; i < chm->n; ++i) fprintf(stderr, "%u ", chm->g[i]); |