summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdam Saponara <as@php.net>2020-10-31 20:36:53 -0400
committerAdam Saponara <as@php.net>2020-10-31 20:36:53 -0400
commita83f515f0fb75a079601be0d2e0e24b9402c9e15 (patch)
tree6985bc794500e9c0bd3351df4b6b530550f935e6
parentdde71c6637905e1707bd1020c93e930f4b0a480b (diff)
Address items from review
-rw-r--r--Process.c12
-rw-r--r--Process.h3
-rw-r--r--ProcessList.c4
-rw-r--r--Settings.c1
-rw-r--r--htop.c7
5 files changed, 16 insertions, 11 deletions
diff --git a/Process.c b/Process.c
index f78720a5..d3e6f4c6 100644
--- a/Process.c
+++ b/Process.c
@@ -6,7 +6,6 @@ Released under the GNU GPLv2, see the COPYING file
in the source distribution for its full text.
*/
-
#include "config.h" // IWYU pragma: keep
#include "Process.h"
@@ -383,10 +382,10 @@ void Process_display(const Object* cast, RichString* out) {
if (this->tag == true)
RichString_setAttr(out, CRT_colors[PROCESS_TAG]);
if (this->settings->highlightChanges) {
- if (Process_isNew(this))
- out->highlightAttr = CRT_colors[PROCESS_NEW];
if (Process_isTomb(this))
out->highlightAttr = CRT_colors[PROCESS_TOMB];
+ else if (Process_isNew(this))
+ out->highlightAttr = CRT_colors[PROCESS_NEW];
}
assert(out->chlen > 0);
}
@@ -421,13 +420,14 @@ void Process_toggleTag(Process* this) {
}
bool Process_isNew(const Process* this) {
- if (this->processList && this->processList->scanTs >= this->seenTs)
- return (this->processList->scanTs - this->seenTs <= this->processList->settings->highlightDelaySecs);
+ assert(this->processList);
+ if (this->processList->scanTs >= this->seenTs)
+ return this->processList->scanTs - this->seenTs <= this->processList->settings->highlightDelaySecs;
return false;
}
bool Process_isTomb(const Process* this) {
- return (this->tombTs > 0);
+ return this->tombTs > 0;
}
bool Process_setPriority(Process* this, int priority) {
diff --git a/Process.h b/Process.h
index e3ff333f..c75ee501 100644
--- a/Process.h
+++ b/Process.h
@@ -9,8 +9,8 @@ in the source distribution for its full text.
*/
#include <stdbool.h>
-#include <sys/types.h>
#include <time.h>
+#include <sys/types.h>
#include "Object.h"
#include "RichString.h"
@@ -78,6 +78,7 @@ typedef struct Process_ {
bool tag;
bool showChildren;
bool show;
+ bool wasShown;
unsigned int pgrp;
unsigned int session;
unsigned int tty_nr;
diff --git a/ProcessList.c b/ProcessList.c
index 1ae7b9cc..364de1e0 100644
--- a/ProcessList.c
+++ b/ProcessList.c
@@ -14,6 +14,7 @@ in the source distribution for its full text.
#include "CRT.h"
#include "XUtils.h"
+
ProcessList* ProcessList_init(ProcessList* this, const ObjectClass* klass, UsersTable* usersTable, Hashtable* pidMatchList, uid_t userId) {
this->processes = Vector_new(klass, true, DEFAULT_SIZE);
this->processTable = Hashtable_new(140, false);
@@ -306,6 +307,7 @@ void ProcessList_scan(ProcessList* this, bool pauseProcessUpdate) {
for (int i = 0; i < Vector_size(this->processes); i++) {
Process* p = (Process*) Vector_get(this->processes, i);
p->updated = false;
+ p->wasShown = p->show;
p->show = true;
}
@@ -334,7 +336,7 @@ void ProcessList_scan(ProcessList* this, bool pauseProcessUpdate) {
}
} else if (p->updated == false) {
// process no longer exists
- if (this->settings->highlightChanges) {
+ if (this->settings->highlightChanges && p->wasShown) {
// mark tombed
p->tombTs = this->scanTs + this->settings->highlightDelaySecs;
} else {
diff --git a/Settings.c b/Settings.c
index a0a05042..8310eecb 100644
--- a/Settings.c
+++ b/Settings.c
@@ -313,6 +313,7 @@ Settings* Settings_new(int initialCpuCount) {
this->updateProcessNames = false;
this->showProgramPath = true;
this->highlightThreads = true;
+ this->highlightChanges = false;
this->highlightDelaySecs = DEFAULT_HIGHLIGHT_SECS;
#ifdef HAVE_LIBHWLOC
this->topologyAffinity = false;
diff --git a/htop.c b/htop.c
index 351f5867..48c6f8d0 100644
--- a/htop.c
+++ b/htop.c
@@ -50,14 +50,14 @@ static void printHelpFlag(void) {
"-d --delay=DELAY Set the delay between updates, in tenths of seconds\n"
"-F --filter=FILTER Show only the commands matching the given filter\n"
"-h --help Print this help screen\n"
+ "-H --highlight-changes[=DELAY] Highlight new and old processes\n"
"-M --no-mouse Disable the mouse\n"
- "-p --pid=PID,[,PID,PID...] Show only the given PIDs\n"
+ "-p --pid=PID[,PID,PID...] Show only the given PIDs\n"
"-s --sort-key=COLUMN Sort by COLUMN (try --sort-key=help for a list)\n"
"-t --tree Show the tree view by default\n"
"-u --user[=USERNAME] Show only processes for a given user (or $USER)\n"
"-U --no-unicode Do not use unicode but plain ASCII\n"
"-V --version Print version info\n"
- "-H --highlight-changes[=DELAY] Highlight new and old processes\n"
"\n"
"Long options may be passed with a single dash.\n\n"
"Press F1 inside htop for online help.\n"
@@ -212,7 +212,8 @@ static CommandLineSettings parseArguments(int argc, char** argv) {
}
if (delay) {
if (sscanf(delay, "%16d", &(flags.highlightDelaySecs)) == 1) {
- if (flags.highlightDelaySecs < 1) flags.highlightDelaySecs = 1;
+ if (flags.highlightDelaySecs < 1)
+ flags.highlightDelaySecs = 1;
} else {
fprintf(stderr, "Error: invalid highlight delay value \"%s\".\n", delay);
exit(1);

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