diff options
author | Benny Baumann <BenBE@geshi.org> | 2021-05-25 19:02:12 +0200 |
---|---|---|
committer | Benny Baumann <BenBE@geshi.org> | 2021-05-25 21:55:04 +0200 |
commit | b6ff5c8a2e5981a0e71423953b565a1389c5428d (patch) | |
tree | 5091521cb893526ab1e35db19768254d08e35700 /Process.c | |
parent | c408add10847c597de9fb7ba76295c386dc39649 (diff) |
Move CWD field handling to platform-neutral code
Diffstat (limited to 'Process.c')
-rw-r--r-- | Process.c | 17 |
1 files changed, 17 insertions, 0 deletions
@@ -777,6 +777,20 @@ void Process_writeField(const Process* this, RichString* str, ProcessField field Process_printLeftAlignedField(str, attr, procExe, TASK_COMM_LEN - 1); return; } + case CWD: { + const char* cwd; + if (!this->procCwd) { + attr = CRT_colors[PROCESS_SHADOW]; + cwd = "N/A"; + } else if (String_startsWith(this->procCwd, "/proc/") && strstr(this->procCwd, " (deleted)") != NULL) { + attr = CRT_colors[PROCESS_SHADOW]; + cwd = "main thread terminated"; + } else { + cwd = this->procCwd; + } + Process_printLeftAlignedField(str, attr, cwd, 25); + return; + } case ELAPSED: Process_printTime(str, /* convert to hundreds of a second */ this->processList->realtimeMs / 10 - 100 * this->starttime_ctime, coloring); return; case MAJFLT: Process_printCount(str, this->majflt, coloring); return; case MINFLT: Process_printCount(str, this->minflt, coloring); return; @@ -915,6 +929,7 @@ void Process_done(Process* this) { free(this->cmdline); free(this->procComm); free(this->procExe); + free(this->procCwd); free(this->mergedCommand.str); free(this->tty_name); } @@ -1074,6 +1089,8 @@ int Process_compareByKey_Base(const Process* p1, const Process* p2, ProcessField const char *exe2 = p2->procExe ? (p2->procExe + p2->procExeBasenameOffset) : (Process_isKernelThread(p2) ? kthreadID : ""); return SPACESHIP_NULLSTR(exe1, exe2); } + case CWD: + return SPACESHIP_NULLSTR(p1->procCwd, p2->procCwd); case ELAPSED: r = -SPACESHIP_NUMBER(p1->starttime_ctime, p2->starttime_ctime); return r != 0 ? r : SPACESHIP_NUMBER(p1->pid, p2->pid); |