summaryrefslogtreecommitdiffstats
path: root/linux
diff options
context:
space:
mode:
authorChristian Göttsche <cgzones@googlemail.com>2021-01-10 15:57:46 +0100
committerChristian Göttsche <cgzones@googlemail.com>2021-01-11 12:02:25 +0100
commita5db139a0a671e1f7422d6cd387f4bc8d0afb8e7 (patch)
treeb8060e0b189b7cd045d7a135c2e17593bb1fb34c /linux
parent8a67d7f0866bf9451aad301e98059daa5c18e7c3 (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.c31
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;

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