From eb2077d782a7074a368dd0046aaf7efe4824b7a4 Mon Sep 17 00:00:00 2001 From: rswindell <> Date: Sat, 9 Feb 2008 22:25:00 +0000 Subject: [PATCH] Fix-up total_blocks calculation based on current block number + remaining blocks. --- src/sbbs3/sexyz.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/sbbs3/sexyz.c b/src/sbbs3/sexyz.c index 36f372b126..17d8c4344e 100644 --- a/src/sbbs3/sexyz.c +++ b/src/sbbs3/sexyz.c @@ -637,14 +637,15 @@ BOOL data_waiting(void* unused, unsigned timeout) } /****************************************************************************/ -/* Returns the number of blocks required to send len bytes */ +/* Returns the total number of blocks required to send the file */ /****************************************************************************/ -unsigned num_blocks(ulong len, unsigned block_size) +unsigned num_blocks(unsigned block_num, ulong offset, ulong len, unsigned block_size) { ulong blocks; + ulong remain = len - offset; - blocks=len/block_size; - if(len%block_size) + blocks=block_num + (remain/block_size); + if(remain%block_size) blocks++; return(blocks); } @@ -681,7 +682,7 @@ void xmodem_progress(void* unused, unsigned block_num, ulong offset, ulong fsize l-=t; /* now, it's est time left */ if(l<0) l=0; if(mode&SEND) { - total_blocks=num_blocks(fsize,xm.block_size); + total_blocks=num_blocks(block_num,offset,fsize,xm.block_size); fprintf(statfp,"\rBlock (%lu%s): %lu/%lu Byte: %lu " "Time: %lu:%02lu/%lu:%02lu %u cps %lu%% " ,xm.block_size%1024L ? xm.block_size: xm.block_size/1024L -- GitLab