summaryrefslogtreecommitdiff
path: root/noncore/apps/opie-reader/util.cpp
Unidiff
Diffstat (limited to 'noncore/apps/opie-reader/util.cpp') (more/less context) (show whitespace changes)
-rw-r--r--noncore/apps/opie-reader/util.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/noncore/apps/opie-reader/util.cpp b/noncore/apps/opie-reader/util.cpp
index a736f8b..2ca1cc8 100644
--- a/noncore/apps/opie-reader/util.cpp
+++ b/noncore/apps/opie-reader/util.cpp
@@ -1,4 +1,5 @@
1#include "util.h" 1#include "util.h"
2#include <limits.h>
2 3
3QString filesize(unsigned long l) 4QString filesize(unsigned long l)
4{ 5{
@@ -22,8 +23,16 @@ QString percent(unsigned long pos, unsigned long len)
22 unsigned long permil = 0; 23 unsigned long permil = 0;
23 if (len != 0) 24 if (len != 0)
24 { 25 {
26 if (pos > UINT_MAX/1000)
27 {
28 unsigned long l1 = (len+500)/1000;
29 permil = (pos+l1/2)/l1;
30 }
31 else
32 {
25 permil = (1000*pos+len/2)/len; 33 permil = (1000*pos+len/2)/len;
26 } 34 }
35 }
27 unsigned long percen = permil/10; 36 unsigned long percen = permil/10;
28 unsigned long frac = permil - 10*percen; 37 unsigned long frac = permil - 10*percen;
29 return QString::number(percen) + "." + QString::number(frac); 38 return QString::number(percen) + "." + QString::number(frac);