diff options
author | Christian Göttsche <cgzones@googlemail.com> | 2021-01-10 15:57:46 +0100 |
---|---|---|
committer | Christian Göttsche <cgzones@googlemail.com> | 2021-01-11 12:02:25 +0100 |
commit | a5db139a0a671e1f7422d6cd387f4bc8d0afb8e7 (patch) | |
tree | b8060e0b189b7cd045d7a135c2e17593bb1fb34c /linux | |
parent | 8a67d7f0866bf9451aad301e98059daa5c18e7c3 (diff) |
Linux: use correct column alignment for wide fields
This affects:
- PROC_COMM, PROC_EXE and CWD on Linux
- JAIL on FreeBSD and DragonFlyBSD
- ZONE on Solaris
Diffstat (limited to 'linux')
-rw-r--r-- | linux/LinuxProcess.c | 31 |
1 files changed, 19 insertions, 12 deletions
diff --git a/linux/LinuxProcess.c b/linux/LinuxProcess.c index 11bc2d80..ce6d34d6 100644 --- a/linux/LinuxProcess.c +++ b/linux/LinuxProcess.c @@ -707,39 +707,46 @@ static void LinuxProcess_writeField(const Process* this, RichString* str, Proces return; } case PROC_COMM: { + const char* procComm; if (lp->procComm) { attr = CRT_colors[Process_isUserlandThread(this) ? PROCESS_THREAD_COMM : PROCESS_COMM]; - /* 15 being (TASK_COMM_LEN - 1) */ - xSnprintf(buffer, n, "%-15.15s ", lp->procComm); + procComm = lp->procComm; } else { attr = CRT_colors[PROCESS_SHADOW]; - xSnprintf(buffer, n, "%-15.15s ", Process_isKernelThread(lp) ? kthreadID : "N/A"); + procComm = Process_isKernelThread(lp) ? kthreadID : "N/A"; } - break; + /* 15 being (TASK_COMM_LEN - 1) */ + Process_printLeftAlignedField(str, attr, procComm, 15); + return; } case PROC_EXE: { + const char* procExe; if (lp->procExe) { attr = CRT_colors[Process_isUserlandThread(this) ? PROCESS_THREAD_BASENAME : PROCESS_BASENAME]; if (lp->procExeDeleted) attr = CRT_colors[FAILED_READ]; - xSnprintf(buffer, n, "%-15.15s ", lp->procExe + lp->procExeBasenameOffset); + procExe = lp->procExe + lp->procExeBasenameOffset; } else { attr = CRT_colors[PROCESS_SHADOW]; - xSnprintf(buffer, n, "%-15.15s ", Process_isKernelThread(lp) ? kthreadID : "N/A"); + procExe = Process_isKernelThread(lp) ? kthreadID : "N/A"; } - break; + Process_printLeftAlignedField(str, attr, procExe, 15); + return; } - case CWD: + case CWD: { + const char* cwd; if (!lp->cwd) { - xSnprintf(buffer, n, "%-25s ", "N/A"); attr = CRT_colors[PROCESS_SHADOW]; + cwd = "N/A"; } else if (String_startsWith(lp->cwd, "/proc/") && strstr(lp->cwd, " (deleted)") != NULL) { - xSnprintf(buffer, n, "%-25s ", "main thread terminated"); attr = CRT_colors[PROCESS_SHADOW]; + cwd = "main thread terminated"; } else { - xSnprintf(buffer, n, "%-25.25s ", lp->cwd); + cwd = lp->cwd; } - break; + Process_printLeftAlignedField(str, attr, cwd, 25); + return; + } default: Process_writeField(this, str, field); return; |