From 052fbe3f86eaab1940f25824705d809cd9af59e5 Mon Sep 17 00:00:00 2001 From: Timo Teras Date: Wed, 7 Jan 2009 21:45:11 +0200 Subject: various: make fancy progress bar and update todo --- src/io.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/io.c') diff --git a/src/io.c b/src/io.c index 2c94886..09b5212 100644 --- a/src/io.c +++ b/src/io.c @@ -108,7 +108,8 @@ size_t apk_istream_skip(struct apk_istream *is, size_t size) return done; } -size_t apk_istream_splice(void *stream, int fd, size_t size) +size_t apk_istream_splice(void *stream, int fd, size_t size, + apk_progress_cb cb, void *cb_ctx) { struct apk_istream *is = (struct apk_istream *) stream; unsigned char *buf; @@ -123,6 +124,9 @@ size_t apk_istream_splice(void *stream, int fd, size_t size) return -1; while (done < size) { + if (done != 0 && cb != NULL) + cb(cb_ctx, muldiv(APK_PROGRESS_SCALE, done, size)); + togo = size - done; if (togo > bufsz) togo = bufsz; -- cgit v1.2.3