diff options
author | Edward Thomson <ethomson@edwardthomson.com> | 2015-01-10 18:05:01 +0000 |
---|---|---|
committer | Edward Thomson <ethomson@edwardthomson.com> | 2015-01-10 18:24:27 +0000 |
commit | 9af3c4169c51b967579042e392937acbc75da79d (patch) | |
tree | 3d3df459c1c295fad607cb1739152f148faac5ed /examples | |
parent | b91f28be7d36a94e5e4ccef798ab03ed62a8517c (diff) | |
download | libgit2-9af3c4169c51b967579042e392937acbc75da79d.tar.gz |
clone example: don't divide by zero
Local transports don't have data about the size, avoid dividing by
zero in the callback.
Diffstat (limited to 'examples')
-rw-r--r-- | examples/network/clone.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/examples/network/clone.c b/examples/network/clone.c index 182d1c35b..6144e217e 100644 --- a/examples/network/clone.c +++ b/examples/network/clone.c @@ -18,14 +18,20 @@ typedef struct progress_data { static void print_progress(const progress_data *pd) { - int network_percent = (100*pd->fetch_progress.received_objects) / pd->fetch_progress.total_objects; - int index_percent = (100*pd->fetch_progress.indexed_objects) / pd->fetch_progress.total_objects; + int network_percent = pd->fetch_progress.total_objects > 0 ? + (100*pd->fetch_progress.received_objects) / pd->fetch_progress.total_objects : + 0; + int index_percent = pd->fetch_progress.total_objects > 0 ? + (100*pd->fetch_progress.indexed_objects) / pd->fetch_progress.total_objects : + 0; + int checkout_percent = pd->total_steps > 0 ? (100 * pd->completed_steps) / pd->total_steps : 0; int kbytes = pd->fetch_progress.received_bytes / 1024; - if (pd->fetch_progress.received_objects == pd->fetch_progress.total_objects) { + if (pd->fetch_progress.total_objects && + pd->fetch_progress.received_objects == pd->fetch_progress.total_objects) { printf("Resolving deltas %d/%d\r", pd->fetch_progress.indexed_deltas, pd->fetch_progress.total_deltas); |