billiob pushed a commit to branch master.

http://git.enlightenment.org/apps/terminology.git/commit/?id=4d7708a0f181f6e326bb3b7455c3806da53912eb

commit 4d7708a0f181f6e326bb3b7455c3806da53912eb
Author: Boris Faure <bill...@gmail.com>
Date:   Thu Feb 26 23:46:58 2015 +0100

    tyls: rewrite size_print to avoid arithmetic exception
---
 src/bin/tyls.c | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/src/bin/tyls.c b/src/bin/tyls.c
index 84761da..f381b32 100644
--- a/src/bin/tyls.c
+++ b/src/bin/tyls.c
@@ -44,20 +44,20 @@ echo_on(void)
 }
 
 static void
-size_print(char *buf, int bufsz, char *sz, unsigned long long size)
+size_print(char *buf, int bufsz, char *sz, long long size)
 {
-   char prefixes[] = " KMGTPEZY";
-   int i = 0;
+   char *prefix = " KMGTPEZY";
 
-   while (prefixes[i])
+   while (*prefix)
      {
-        if (size < (1024ULL << 10 * i) || !prefixes[i])
+        if ((size < 1024) || (*prefix == 'Y'))
           {
-             snprintf(buf, bufsz, "%4lld", size / (1024 << 10 * (i - 1)));
-             *sz = prefixes[i];
+             snprintf(buf, bufsz, "%4lld", size);
+             *sz = *prefix;
              return;
           }
-        ++i;
+        size >>= 10;
+        prefix++;
      }
 }
 

-- 


Reply via email to