@@ -409,35 +409,33 @@ double wallclock(void)
409409 */
410410static const char * filesize_to_str (size_t fsize )
411411{
412- #define NSUFFIXES 4
413- #define BUFFSIZE 100
414- static char suffixes [NSUFFIXES ] = {'T' , 'G' , 'M' , 'K' };
415- static char output [BUFFSIZE ];
416- static const char one_byte [] = "1 byte" ;
412+ static const char suffixes [] = {'T' , 'G' , 'M' , 'K' };
413+ static char output [100 ];
417414 size_t lsize = fsize ;
418- for (int i = 0 ; i <= NSUFFIXES ; i ++ ) {
419- int shift = (NSUFFIXES - i ) * 10 ;
415+ for (int i = 0 ; i <= sizeof ( suffixes ) ; i ++ ) {
416+ int shift = (sizeof ( suffixes ) - i ) * 10 ;
420417 if ((fsize >> shift ) == 0 ) continue ;
421418 int ndigits = 3 ;
422419 for (; ndigits >= 1 ; ndigits -- ) {
423420 if ((fsize >> (shift + 12 - ndigits * 3 )) == 0 ) break ;
424421 }
425422 if (ndigits == 0 || (fsize == (fsize >> shift << shift ))) {
426- if (i < NSUFFIXES ) {
427- snprintf (output , BUFFSIZE , "%" PRIu64 "%cB (%" PRIu64 " bytes)" , // # notranslate
423+ if (i < sizeof ( suffixes ) ) {
424+ snprintf (output , sizeof ( output ) , "%" PRIu64 "%cB (%" PRIu64 " bytes)" , // # notranslate
428425 (uint64_t )(lsize >> shift ), suffixes [i ], (uint64_t )lsize );
429426 return output ;
430427 }
431428 } else {
432- snprintf (output , BUFFSIZE , "%.*f%cB (%" PRIu64 " bytes)" , // # notranslate
429+ snprintf (output , sizeof ( output ) , "%.*f%cB (%" PRIu64 " bytes)" , // # notranslate
433430 ndigits , (double )fsize / (1LL << shift ), suffixes [i ], (uint64_t )lsize );
434431 return output ;
435432 }
436433 }
437- if (fsize == 1 ) return one_byte ;
438- snprintf (output , BUFFSIZE , "%" PRIu64 " bytes" , (uint64_t )lsize ); // # notranslate
434+ if (fsize == 1 ) return "1 byte" ;
435+ snprintf (output , sizeof ( output ) , "%" PRIu64 " bytes" , (uint64_t )lsize ); // # notranslate
439436 return output ;
440437}
438+
441439double copyFile (size_t fileSize ) // only called in very very rare cases
442440{
443441 double tt = wallclock ();
0 commit comments