summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorEdward Thomson <ethomson@edwardthomson.com>2015-01-10 18:05:01 +0000
committerEdward Thomson <ethomson@edwardthomson.com>2015-01-10 18:24:27 +0000
commit9af3c4169c51b967579042e392937acbc75da79d (patch)
tree3d3df459c1c295fad607cb1739152f148faac5ed /examples
parentb91f28be7d36a94e5e4ccef798ab03ed62a8517c (diff)
downloadlibgit2-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.c12
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);