Process: Display single digit precision for CPU% greater than 99.9%

Since commit edf319e[1], we're dynamically adjusting column width of
"CPU%", showing single digit precision also for values greater than
"99.9%" makes "CPU%" column consistent with all other values.

[1]: edf319e53d

Change "Process_printPercentage()" function's logic to always display
value (i.e. "val") with single precision. Except when value is greater
than "99.9%" for columns like "MEM%", whose width is fixed to "4" and
value cannot go beyond "100%".

Credits: @Explorer09, thanks for the patch[2] to fix title alignment
         issue.

[2]: https://github.com/htop-dev/htop/pull/959#issuecomment-1092480951

Closes: #957
This commit is contained in:
Kumar
2022-04-14 16:35:02 +05:30
committed by BenBE
parent e053446cbd
commit 0af08bcfc9
11 changed files with 28 additions and 21 deletions

View File

@ -116,7 +116,10 @@ static const char* alignedProcessFieldTitle(const ProcessList* this, ProcessFiel
if (Process_fields[field].autoWidth) {
static char titleBuffer[UINT8_MAX + 1];
xSnprintf(titleBuffer, sizeof(titleBuffer), "%-*.*s ", Process_fieldWidths[field], Process_fieldWidths[field], title);
if (field == PERCENT_CPU)
xSnprintf(titleBuffer, sizeof(titleBuffer), "%*s ", Process_fieldWidths[field], title);
else
xSnprintf(titleBuffer, sizeof(titleBuffer), "%-*.*s ", Process_fieldWidths[field], Process_fieldWidths[field], title);
return titleBuffer;
}