Skip to content

Commit

Permalink
merge-file: handle empty files gracefully
Browse files Browse the repository at this point in the history
Earlier, it would error out while trying to read and/or writing them.
Now, calling merge-file with empty files is neither interesting nor
useful, but it is a bug that needed fixing.

Noticed by Clemens Buchacher.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
  • Loading branch information
Johannes Schindelin authored and Junio C Hamano committed Mar 14, 2008
1 parent 1affea4 commit 381b851
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 3 deletions.
3 changes: 2 additions & 1 deletion builtin-merge-file.c
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,8 @@ int cmd_merge_file(int argc, const char **argv, const char *prefix)

if (!f)
ret = error("Could not open %s for writing", filename);
else if (fwrite(result.ptr, result.size, 1, f) != 1)
else if (result.size &&
fwrite(result.ptr, result.size, 1, f) != 1)
ret = error("Could not write to %s", filename);
else if (fclose(f))
ret = error("Could not close %s", filename);
Expand Down
4 changes: 2 additions & 2 deletions xdiff-interface.c
Original file line number Diff line number Diff line change
Expand Up @@ -152,8 +152,8 @@ int read_mmfile(mmfile_t *ptr, const char *filename)
if ((f = fopen(filename, "rb")) == NULL)
return error("Could not open %s", filename);
sz = xsize_t(st.st_size);
ptr->ptr = xmalloc(sz);
if (fread(ptr->ptr, sz, 1, f) != 1)
ptr->ptr = xmalloc(sz ? sz : 1);
if (sz && fread(ptr->ptr, sz, 1, f) != 1)
return error("Could not read %s", filename);
fclose(f);
ptr->size = sz;
Expand Down

0 comments on commit 381b851

Please sign in to comment.