1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
From c2cc7e2f348c10c4c39dbce43861882e10ef1b4f Mon Sep 17 00:00:00 2001
From: Daniel Lange <DLange@git.local>
Date: Fri, 11 Dec 2020 18:13:10 +0100
Subject: [PATCH 1/2] Fix broken tree display
upstream commits 4c44a70 and f6613db
---
Process.c | 3 ++-
ProcessList.c | 15 ++++++---------
linux/LinuxProcess.c | 3 ++-
3 files changed, 10 insertions(+), 11 deletions(-)
diff --git a/Process.c b/Process.c
index 8245f86..927731b 100644
--- a/Process.c
+++ b/Process.c
@@ -320,7 +320,8 @@ void Process_writeField(const Process* this, RichString* str, ProcessField field
buf += written;
n -= written;
}
- const char* draw = CRT_treeStr[lastItem ? (this->settings->direction == 1 ? TREE_STR_BEND : TREE_STR_TEND) : TREE_STR_RTEE];
+
+ const char* draw = CRT_treeStr[lastItem ? TREE_STR_BEND : TREE_STR_RTEE];
xSnprintf(buf, n, "%s%s ", draw, this->showChildren ? CRT_treeStr[TREE_STR_SHUT] : CRT_treeStr[TREE_STR_OPEN] );
RichString_append(str, CRT_colors[PROCESS_TREE], buffer);
Process_writeCommand(this, attr, baseattr, str);
diff --git a/ProcessList.c b/ProcessList.c
index 2d27339..e3199d2 100644
--- a/ProcessList.c
+++ b/ProcessList.c
@@ -479,23 +479,20 @@ void ProcessList_rebuildPanel(ProcessList* this) {
int size = ProcessList_size(this);
int idx = 0;
for (int i = 0; i < size; i++) {
- bool hidden = false;
Process* p = ProcessList_get(this, i);
if ( (!p->show)
|| (this->userId != (uid_t) -1 && (p->st_uid != this->userId))
|| (incFilter && !(String_contains_i(Process_getCommand(p), incFilter)))
|| (this->pidMatchList && !Hashtable_get(this->pidMatchList, p->tgid)) )
- hidden = true;
+ continue;
- if (!hidden) {
- Panel_set(this->panel, idx, (Object*)p);
- if ((this->following == -1 && idx == currPos) || (this->following != -1 && p->pid == currPid)) {
- Panel_setSelected(this->panel, idx);
- this->panel->scrollV = currScrollV;
- }
- idx++;
+ Panel_set(this->panel, idx, (Object*)p);
+ if ((this->following == -1 && idx == currPos) || (this->following != -1 && p->pid == currPid)) {
+ Panel_setSelected(this->panel, idx);
+ this->panel->scrollV = currScrollV;
}
+ idx++;
}
}
diff --git a/linux/LinuxProcess.c b/linux/LinuxProcess.c
index 8298000..62837cb 100644
--- a/linux/LinuxProcess.c
+++ b/linux/LinuxProcess.c
@@ -605,8 +605,9 @@ static void LinuxProcess_writeCommandField(const Process *this, RichString *str,
buf = stpcpy(buf, " ");
}
}
+
n -= (buf - buffer);
- const char* draw = CRT_treeStr[lastItem ? (this->settings->direction == 1 ? TREE_STR_BEND : TREE_STR_TEND) : TREE_STR_RTEE];
+ const char* draw = CRT_treeStr[lastItem ? TREE_STR_BEND : TREE_STR_RTEE];
xSnprintf(buf, n, "%s%s ", draw, this->showChildren ? CRT_treeStr[TREE_STR_SHUT] : CRT_treeStr[TREE_STR_OPEN] );
RichString_append(str, CRT_colors[PROCESS_TREE], buffer);
LinuxProcess_writeCommand(this, attr, baseattr, str);
--
2.25.1
|