]> asedeno.scripts.mit.edu Git - git.git/blobdiff - csum-file.c
Merge branch 'np/progress'
[git.git] / csum-file.c
index 9929991deaf423510abbc1fed2faa0b78c2a55da..3729e73e19e18a78c15fb90dfc28133f541176ef 100644 (file)
@@ -8,6 +8,7 @@
  * able to verify hasn't been messed with afterwards.
  */
 #include "cache.h"
+#include "progress.h"
 #include "csum-file.h"
 
 static void sha1flush(struct sha1file *f, unsigned int count)
@@ -17,6 +18,7 @@ static void sha1flush(struct sha1file *f, unsigned int count)
        for (;;) {
                int ret = xwrite(f->fd, buf, count);
                if (ret > 0) {
+                       display_throughput(f->tp, ret);
                        buf = (char *) buf + ret;
                        count -= ret;
                        if (count)
@@ -79,6 +81,11 @@ int sha1write(struct sha1file *f, void *buf, unsigned int count)
 }
 
 struct sha1file *sha1fd(int fd, const char *name)
+{
+       return sha1fd_throughput(fd, name, NULL);
+}
+
+struct sha1file *sha1fd_throughput(int fd, const char *name, struct progress *tp)
 {
        struct sha1file *f;
        unsigned len;
@@ -94,6 +101,7 @@ struct sha1file *sha1fd(int fd, const char *name)
        f->fd = fd;
        f->error = 0;
        f->offset = 0;
+       f->tp = tp;
        f->do_crc = 0;
        SHA1_Init(&f->ctx);
        return f;