sha1close() flushes, writes checksum, and closes.
The second can be suppressed; make the last suppressible as well.
Signed-off-by: Dana How <redacted>
---
csum-file.c | 3 +++
1 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/csum-file.c b/csum-file.c
index b7174c6..e1ff769 100644
--- a/csum-file.c
+++ b/csum-file.c
@@ -35,7 +35,10 @@ int sha1close(struct sha1file *f, unsigned char *result, int update)
if (offset) {
SHA1_Update(&f->ctx, f->buffer, offset);
sha1flush(f, offset);
+ f->offset = 0;
}
+ if (update < 0)
+ return 0; /* only want to flush (no checksum write, no close) */
SHA1_Final(f->buffer, &f->ctx);
if (result)
hashcpy(result, f->buffer);--
1.5.1.89.g8abf0