Skip to content

Commit

Permalink
Alter sha1close() 3rd argument to request flush only
Browse files Browse the repository at this point in the history
update=0 suppressed writing the final SHA-1 but was not used.
Now final=0 suppresses SHA-1 finalization, SHA-1 writing,
and closing -- in other words,  only flush the buffer.

Signed-off-by: Dana L. How <[email protected]>
Signed-off-by: Junio C Hamano <[email protected]>
  • Loading branch information
danahow authored and Junio C Hamano committed May 21, 2007
1 parent 93d496a commit f021536
Showing 1 changed file with 5 additions and 3 deletions.
8 changes: 5 additions & 3 deletions csum-file.c
Original file line number Diff line number Diff line change
Expand Up @@ -29,18 +29,20 @@ static void sha1flush(struct sha1file *f, unsigned int count)
}
}

int sha1close(struct sha1file *f, unsigned char *result, int update)
int sha1close(struct sha1file *f, unsigned char *result, int final)
{
unsigned offset = f->offset;
if (offset) {
SHA1_Update(&f->ctx, f->buffer, offset);
sha1flush(f, offset);
f->offset = 0;
}
if (!final)
return 0; /* only want to flush (no checksum write, no close) */
SHA1_Final(f->buffer, &f->ctx);
if (result)
hashcpy(result, f->buffer);
if (update)
sha1flush(f, 20);
sha1flush(f, 20);
if (close(f->fd))
die("%s: sha1 file error on close (%s)", f->name, strerror(errno));
free(f);
Expand Down

0 comments on commit f021536

Please sign in to comment.