]> granicus.if.org Git - transmission/commitdiff
tr_cpPercentComplete() considers cases where size is 0
authorMitchell Livingston <livings124@transmissionbt.com>
Wed, 25 Nov 2009 05:01:51 +0000 (05:01 +0000)
committerMitchell Livingston <livings124@transmissionbt.com>
Wed, 25 Nov 2009 05:01:51 +0000 (05:01 +0000)
libtransmission/completion.h

index ad7a102295422e60702ff1bab9dd1611a9d8d4d2..835cac3077c1ec4e0eb9dafec5c23e74d1a4e5b6 100644 (file)
@@ -105,7 +105,13 @@ static TR_INLINE uint64_t tr_cpLeftUntilDone( const tr_completion * cp )
 
 static TR_INLINE float tr_cpPercentComplete( const tr_completion * cp )
 {
-    return tr_getRatio( cp->sizeNow, tr_torrentInfo(cp->tor)->totalSize );
+    const double ratio = tr_getRatio( cp->sizeNow, tr_torrentInfo(cp->tor)->totalSize );
+    if( (int)ratio == TR_RATIO_NA )
+        return 0.0;
+    else if( (int)ratio == TR_RATIO_INF )
+        return 1.0;
+    else
+        return ratio;
 }
 
 static TR_INLINE float tr_cpPercentDone( const tr_completion * cp )