summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBenny Baumann <BenBE@geshi.org>2020-09-13 23:50:24 +0200
committercgzones <cgzones@googlemail.com>2020-09-17 22:08:13 +0200
commit40441dca8e22f30297b45f78a58013e9face3935 (patch)
tree404e0568437c4fa7f5a522cd6929c29f08534171
parentc7568bc0540d7d33233fc55fa9d5b11cffd56e36 (diff)
Enhance highlighting of semi-large and large numbers
-rw-r--r--CRT.c6
-rw-r--r--CRT.h1
-rw-r--r--Process.c74
3 files changed, 53 insertions, 28 deletions
diff --git a/CRT.c b/CRT.c
index 3aea895e..16f0e957 100644
--- a/CRT.c
+++ b/CRT.c
@@ -98,6 +98,7 @@ int CRT_colorSchemes[LAST_COLORSCHEME][LAST_COLORELEMENT] = {
[PROCESS_SHADOW] = A_BOLD | ColorPairGrayBlack,
[PROCESS_TAG] = A_BOLD | ColorPair(Yellow,Black),
[PROCESS_MEGABYTES] = ColorPair(Cyan,Black),
+ [PROCESS_GIGABYTES] = ColorPair(Green,Black),
[PROCESS_BASENAME] = A_BOLD | ColorPair(Cyan,Black),
[PROCESS_TREE] = ColorPair(Cyan,Black),
[PROCESS_R_STATE] = ColorPair(Green,Black),
@@ -167,6 +168,7 @@ int CRT_colorSchemes[LAST_COLORSCHEME][LAST_COLORELEMENT] = {
[PROCESS_SHADOW] = A_DIM,
[PROCESS_TAG] = A_BOLD,
[PROCESS_MEGABYTES] = A_BOLD,
+ [PROCESS_GIGABYTES] = A_BOLD,
[PROCESS_BASENAME] = A_BOLD,
[PROCESS_TREE] = A_BOLD,
[PROCESS_R_STATE] = A_BOLD,
@@ -236,6 +238,7 @@ int CRT_colorSchemes[LAST_COLORSCHEME][LAST_COLORELEMENT] = {
[PROCESS_SHADOW] = A_BOLD | ColorPair(Black,White),
[PROCESS_TAG] = ColorPair(White,Blue),
[PROCESS_MEGABYTES] = ColorPair(Blue,White),
+ [PROCESS_GIGABYTES] = ColorPair(Green,White),
[PROCESS_BASENAME] = ColorPair(Blue,White),
[PROCESS_TREE] = ColorPair(Green,White),
[PROCESS_R_STATE] = ColorPair(Green,White),
@@ -305,6 +308,7 @@ int CRT_colorSchemes[LAST_COLORSCHEME][LAST_COLORELEMENT] = {
[PROCESS_SHADOW] = A_BOLD | ColorPairGrayBlack,
[PROCESS_TAG] = ColorPair(White,Blue),
[PROCESS_MEGABYTES] = ColorPair(Blue,Black),
+ [PROCESS_GIGABYTES] = ColorPair(Green,Black),
[PROCESS_BASENAME] = ColorPair(Green,Black),
[PROCESS_TREE] = ColorPair(Blue,Black),
[PROCESS_R_STATE] = ColorPair(Green,Black),
@@ -374,6 +378,7 @@ int CRT_colorSchemes[LAST_COLORSCHEME][LAST_COLORELEMENT] = {
[PROCESS_SHADOW] = A_BOLD | ColorPair(Black,Blue),
[PROCESS_TAG] = A_BOLD | ColorPair(Yellow,Blue),
[PROCESS_MEGABYTES] = ColorPair(Cyan,Blue),
+ [PROCESS_GIGABYTES] = ColorPair(Green,Blue),
[PROCESS_BASENAME] = A_BOLD | ColorPair(Cyan,Blue),
[PROCESS_TREE] = ColorPair(Cyan,Blue),
[PROCESS_R_STATE] = ColorPair(Green,Blue),
@@ -443,6 +448,7 @@ int CRT_colorSchemes[LAST_COLORSCHEME][LAST_COLORELEMENT] = {
[PROCESS_SHADOW] = A_BOLD | ColorPairGrayBlack,
[PROCESS_TAG] = A_BOLD | ColorPair(Yellow,Black),
[PROCESS_MEGABYTES] = A_BOLD | ColorPair(Green,Black),
+ [PROCESS_GIGABYTES] = A_BOLD | ColorPair(Yellow,Black),
[PROCESS_BASENAME] = A_BOLD | ColorPair(Green,Black),
[PROCESS_TREE] = ColorPair(Cyan,Black),
[PROCESS_THREAD] = ColorPair(Green,Black),
diff --git a/CRT.h b/CRT.h
index 32992e41..4199837e 100644
--- a/CRT.h
+++ b/CRT.h
@@ -58,6 +58,7 @@ typedef enum ColorElements_ {
PROCESS_SHADOW,
PROCESS_TAG,
PROCESS_MEGABYTES,
+ PROCESS_GIGABYTES,
PROCESS_TREE,
PROCESS_R_STATE,
PROCESS_D_STATE,
diff --git a/Process.c b/Process.c
index 7a04c0f9..343a736d 100644
--- a/Process.c
+++ b/Process.c
@@ -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) {

© 2014-2024 Faster IT GmbH | imprint | privacy policy