diff options
author | Benny Baumann <BenBE@geshi.org> | 2020-09-13 23:50:24 +0200 |
---|---|---|
committer | cgzones <cgzones@googlemail.com> | 2020-09-17 22:08:13 +0200 |
commit | 40441dca8e22f30297b45f78a58013e9face3935 (patch) | |
tree | 404e0568437c4fa7f5a522cd6929c29f08534171 /Process.c | |
parent | c7568bc0540d7d33233fc55fa9d5b11cffd56e36 (diff) |
Enhance highlighting of semi-large and large numbers
Diffstat (limited to 'Process.c')
-rw-r--r-- | Process.c | 74 |
1 files changed, 46 insertions, 28 deletions
@@ -61,46 +61,64 @@ void Process_humanNumber(RichString* str, unsigned long number, bool coloring) { int largeNumberColor = CRT_colors[LARGE_NUMBER]; int processMegabytesColor = CRT_colors[PROCESS_MEGABYTES]; + int processGigabytesColor = CRT_colors[PROCESS_GIGABYTES]; int processColor = CRT_colors[PROCESS]; if (!coloring) { largeNumberColor = CRT_colors[PROCESS]; processMegabytesColor = CRT_colors[PROCESS]; + processGigabytesColor = CRT_colors[PROCESS]; } - if(number >= (10 * ONE_DECIMAL_M)) { - #ifdef __LP64__ - if(number >= (100 * ONE_DECIMAL_G)) { - len = snprintf(buffer, 10, "%4luT ", number / ONE_G); - RichString_appendn(str, largeNumberColor, buffer, len); - return; - } else if (number >= (1000 * ONE_DECIMAL_M)) { - len = snprintf(buffer, 10, "%4.1lfT ", (double)number / ONE_G); - RichString_appendn(str, largeNumberColor, buffer, len); - return; - } - #endif - if(number >= (100 * ONE_DECIMAL_M)) { - len = snprintf(buffer, 10, "%4luG ", number / ONE_M); - RichString_appendn(str, largeNumberColor, buffer, len); - return; - } - len = snprintf(buffer, 10, "%4.1lfG ", (double)number / ONE_M); - RichString_appendn(str, largeNumberColor, buffer, len); - return; - } else if (number >= 100000) { - len = snprintf(buffer, 10, "%4luM ", number / ONE_K); - RichString_appendn(str, processMegabytesColor, buffer, len); - return; - } else if (number >= 1000) { + if (number < 1000) { + //Plain number, no markings + len = snprintf(buffer, 10, "%5lu ", number); + RichString_appendn(str, processColor, buffer, len); + } else if (number < 100000) { + //2 digit MB, 3 digit KB len = snprintf(buffer, 10, "%2lu", number/1000); RichString_appendn(str, processMegabytesColor, buffer, len); number %= 1000; len = snprintf(buffer, 10, "%03lu ", number); RichString_appendn(str, processColor, buffer, len); - return; + } else if (number < 1000 * ONE_K) { + //3 digit MB + number /= ONE_K; + len = snprintf(buffer, 10, "%4luM ", number); + RichString_appendn(str, processMegabytesColor, buffer, len); + } else if (number < 10000 * ONE_K) { + //1 digit GB, 3 digit MB + number /= ONE_K; + len = snprintf(buffer, 10, "%1lu", number/1000); + RichString_appendn(str, processGigabytesColor, buffer, len); + number %= 1000; + len = snprintf(buffer, 10, "%03luM ", number); + RichString_appendn(str, processMegabytesColor, buffer, len); + } else if (number < 100 * ONE_M) { + //2 digit GB, 1 digit MB + number /= 100 * ONE_K; + len = snprintf(buffer, 10, "%2lu", number/10); + RichString_appendn(str, processGigabytesColor, buffer, len); + number %= 10; + len = snprintf(buffer, 10, ".%1luG ", number); + RichString_appendn(str, processMegabytesColor, buffer, len); + } else if (number < 1000 * ONE_M) { + //3 digit GB + number /= ONE_M; + len = snprintf(buffer, 10, "%4luG ", number); + RichString_appendn(str, processGigabytesColor, buffer, len); + } else if (number < 10000 * ONE_M) { + //1 digit TB, 3 digit GB + number /= ONE_M; + len = snprintf(buffer, 10, "%1lu", number/1000); + RichString_appendn(str, largeNumberColor, buffer, len); + number %= 1000; + len = snprintf(buffer, 10, "%03luG ", number); + RichString_appendn(str, processGigabytesColor, buffer, len); + } else { + //2 digit TB and above + len = snprintf(buffer, 10, "%4.1lfT ", (double)number/ONE_G); + RichString_appendn(str, largeNumberColor, buffer, len); } - len = snprintf(buffer, 10, "%5lu ", number); - RichString_appendn(str, processColor, buffer, len); } void Process_colorNumber(RichString* str, unsigned long long number, bool coloring) { |