mirror of https://github.com/xzeldon/htop.git
Refactor to tty_nr process field display
If no terminal name can be found, fall back to generic display method with major and minor device numbers. Print special value '(none)' in case both are zero.
This commit is contained in:
parent
03d6345c89
commit
a3c8285237
12
Process.c
12
Process.c
|
@ -365,7 +365,17 @@ void Process_writeField(const Process* this, RichString* str, ProcessField field
|
|||
case TIME: Process_printTime(str, this->time); return;
|
||||
case TGID: xSnprintf(buffer, n, "%*d ", Process_pidDigits, this->tgid); break;
|
||||
case TPGID: xSnprintf(buffer, n, "%*d ", Process_pidDigits, this->tpgid); break;
|
||||
case TTY_NR: xSnprintf(buffer, n, "%3u:%3u ", major(this->tty_nr), minor(this->tty_nr)); break;
|
||||
case TTY_NR: {
|
||||
unsigned int major = major(this->tty_nr);
|
||||
unsigned int minor = minor(this->tty_nr);
|
||||
if (major == 0 && minor == 0) {
|
||||
attr = CRT_colors[PROCESS_SHADOW];
|
||||
xSnprintf(buffer, n, "(none) ");
|
||||
} else {
|
||||
xSnprintf(buffer, n, "%3u:%3u ", major, minor);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case USER: {
|
||||
if (Process_getuid != this->st_uid)
|
||||
attr = CRT_colors[PROCESS_SHADOW];
|
||||
|
|
|
@ -607,15 +607,14 @@ static void LinuxProcess_writeField(const Process* this, RichString* str, Proces
|
|||
int attr = CRT_colors[DEFAULT_COLOR];
|
||||
size_t n = sizeof(buffer) - 1;
|
||||
switch (field) {
|
||||
case TTY_NR: {
|
||||
case TTY_NR:
|
||||
if (lp->ttyDevice) {
|
||||
xSnprintf(buffer, n, "%-9s", lp->ttyDevice + 5 /* skip "/dev/" */);
|
||||
} else {
|
||||
attr = CRT_colors[PROCESS_SHADOW];
|
||||
xSnprintf(buffer, n, "? ");
|
||||
xSnprintf(buffer, n, "%-8s ", lp->ttyDevice + 5 /* skip "/dev/" */);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
Process_writeField(this, str, field);
|
||||
return;
|
||||
case CMINFLT: Process_colorNumber(str, lp->cminflt, coloring); return;
|
||||
case CMAJFLT: Process_colorNumber(str, lp->cmajflt, coloring); return;
|
||||
case M_DRS: Process_humanNumber(str, lp->m_drs * pageSizeKB, coloring); return;
|
||||
|
|
Loading…
Reference in New Issue