]> git.ipfire.org Git - thirdparty/mtr.git/commitdiff
curses: simplify format_number()
authorSami Kerola <kerolasa@iki.fi>
Tue, 4 Oct 2016 16:28:56 +0000 (17:28 +0100)
committerSami Kerola <kerolasa@iki.fi>
Tue, 11 Oct 2016 18:29:19 +0000 (19:29 +0100)
When sprintf() calls are closer to each other it is easier to see how they
differ.

curses.c

index aff0b67fa55a0219f87c908c3d753fb921930c0a..8928b7bdab3afed83361993a1c52ca21c4b5618d 100644 (file)
--- a/curses.c
+++ b/curses.c
@@ -81,37 +81,23 @@ static void pwcenter(char *str)
 
 static char *format_number (int n, int w, char *buf)
 {
-   // XXX todo: implement w != 5.. 
-   if (w != 5) {
-     snprintf (buf, w+1, "%s", "unimpl");
-     return (buf);
-   }
-
-   if (n < 100000) {
-     return buf;
-   }
-   if (n < 1000000) {
-     snprintf (buf, w+1, "%3dk%1d", n/1000, (n%1000)/100);
-     return buf;
-   }
-   if (n < 10000000) {
-     snprintf (buf, w+1, "%1dM%03d", n/1000000, (n%1000000)/1000);
-     return buf;
-   }
-   if (n < 100000000) {
-     snprintf (buf, w+1, "%2dM%02d", n/1000000, (n%1000000)/10000);
-     return buf;
-   }
-   if (n < 1000000000) {
-     snprintf (buf, w+1, "%3dM%01d", n/1000000, (n%1000000)/100000);
-     return buf;
-   }
-   //if (n < 10000000000) {
-     snprintf (buf, w+1, "%1dG%03d", n/1000000000, (n%1000000000)/1000000);
-     return buf;
-   //}
-
-   //return ("big");
+  if (w != 5)
+    /* XXX todo: implement w != 5.. */
+    snprintf(buf, w + 1, "%s", "unimpl");
+  else if (n < 100000)
+    /* buf is good as-is */ ;
+  else if (n < 1000000)
+    snprintf(buf, w + 1, "%3dk%1d", n / 1000, (n % 1000) / 100);
+  else if (n < 10000000)
+    snprintf(buf, w + 1, "%1dM%03d", n / 1000000, (n % 1000000) / 1000);
+  else if (n < 100000000)
+    snprintf(buf, w + 1, "%2dM%02d", n / 1000000, (n % 1000000) / 10000);
+  else if (n < 1000000000)
+    snprintf(buf, w + 1, "%3dM%01d", n / 1000000, (n % 1000000) / 100000);
+  else /* if (n < 10000000000) */
+    snprintf(buf, w + 1, "%1dG%03d", n / 1000000000, (n % 1000000000) / 1000000);
+
+  return buf;
 }