From 4582ae87a0a0675d0756b93dcda052c533cd2c96 Mon Sep 17 00:00:00 2001 From: Daniel Lange Date: Tue, 21 Sep 2021 08:54:37 +0200 Subject: Drop Debian patches accumulated over the 3.0.x-x cycle --- debian/changelog | 7 + debian/patches/0001-reset-cached-values.patch | 21 - .../patches/0002-fix-ncurses-field-padding.patch | 87 ---- debian/patches/0003-fix-hurd-build.patch | 71 --- debian/patches/0004-fix-kfreebsd-build.patch | 25 - debian/patches/0005-fix-sorting.patch | 540 --------------------- debian/patches/0006-fix-infoscreen-mouse.patch | 41 -- .../patches/0007-fix-exit-in-signal-handler.patch | 21 - debian/patches/0008-add-qterm-keyboard-code.patch | 13 - debian/patches/0009-hardening.patch | 18 - debian/patches/0010-fix-sort-timeout.patch | 25 - .../0011-improve-setup-for-many-cpu-systems.patch | 47 -- debian/patches/0012-fix-forced-sort-order.patch | 22 - debian/patches/0013-fix-btime-zero.patch | 33 -- debian/patches/0014-fix-zfs-coloring.patch | 37 -- .../0015-clean-infoscreen-before-new-scan.patch | 35 -- ...016-fix-div-by-zero-zfscompressedarcmeter.patch | 25 - debian/patches/series | 16 - 18 files changed, 7 insertions(+), 1077 deletions(-) delete mode 100644 debian/patches/0001-reset-cached-values.patch delete mode 100644 debian/patches/0002-fix-ncurses-field-padding.patch delete mode 100644 debian/patches/0003-fix-hurd-build.patch delete mode 100644 debian/patches/0004-fix-kfreebsd-build.patch delete mode 100644 debian/patches/0005-fix-sorting.patch delete mode 100644 debian/patches/0006-fix-infoscreen-mouse.patch delete mode 100644 debian/patches/0007-fix-exit-in-signal-handler.patch delete mode 100644 debian/patches/0008-add-qterm-keyboard-code.patch delete mode 100644 debian/patches/0009-hardening.patch delete mode 100644 debian/patches/0010-fix-sort-timeout.patch delete mode 100644 debian/patches/0011-improve-setup-for-many-cpu-systems.patch delete mode 100644 debian/patches/0012-fix-forced-sort-order.patch delete mode 100644 debian/patches/0013-fix-btime-zero.patch delete mode 100644 debian/patches/0014-fix-zfs-coloring.patch delete mode 100644 debian/patches/0015-clean-infoscreen-before-new-scan.patch delete mode 100644 debian/patches/0016-fix-div-by-zero-zfscompressedarcmeter.patch delete mode 100644 debian/patches/series diff --git a/debian/changelog b/debian/changelog index 0578414..ee27dee 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +htop (3.1.0-1) UNRELEASED; urgency=medium + + * Import upstream 3.1.0 release + * Drop all Debian patches (have been applied upstream or superseded) + + -- Daniel Lange Tue, 21 Sep 2021 08:55:00 +0200 + htop (3.0.5-7) unstable; urgency=medium * Fix division by 0 on ZfsCompressedArcMeter (when no ZFS volume is mounted) diff --git a/debian/patches/0001-reset-cached-values.patch b/debian/patches/0001-reset-cached-values.patch deleted file mode 100644 index 46ff165..0000000 --- a/debian/patches/0001-reset-cached-values.patch +++ /dev/null @@ -1,21 +0,0 @@ -Backport of https://github.com/htop-dev/htop/pull/473 - ---- a/linux/LinuxProcessList.c 2021-01-11 20:43:28.186510057 +0100 -+++ b/linux/LinuxProcessList.c 2021-01-14 13:48:23.452808449 +0100 -@@ -1454,10 +1454,16 @@ - if (proc->state == 'Z' && (proc->basenameOffset == 0)) { - proc->basenameOffset = -1; - setCommand(proc, command, commLen); -+ lp->procCmdlineBasenameOffset = 0; -+ lp->procCmdlineBasenameEnd = 0; -+ lp->mergedCommand.commChanged = true; - } else if (Process_isThread(proc)) { - if (settings->showThreadNames || Process_isKernelThread(proc) || (proc->state == 'Z' && proc->basenameOffset == 0)) { - proc->basenameOffset = -1; - setCommand(proc, command, commLen); -+ lp->procCmdlineBasenameOffset = 0; -+ lp->procCmdlineBasenameEnd = 0; -+ lp->mergedCommand.commChanged = true; - } else if (settings->showThreadNames) { - if (! LinuxProcessList_readCmdlineFile(proc, procFd)) { - goto errorReadingProcess; diff --git a/debian/patches/0002-fix-ncurses-field-padding.patch b/debian/patches/0002-fix-ncurses-field-padding.patch deleted file mode 100644 index a40b89f..0000000 --- a/debian/patches/0002-fix-ncurses-field-padding.patch +++ /dev/null @@ -1,87 +0,0 @@ -Backport of upstream 5fde0e012762b07e4955306b743afcf43fe237c6 - -Allows to set attributes when padding process fields in non-wide ncurses mode. - ---- a/Meter.c -+++ b/Meter.c -@@ -202,7 +202,7 @@ - // The text in the bar is right aligned; - // Pad with maximal spaces and then calculate needed starting position offset - RichString_begin(bar); -- RichString_appendChr(&bar, ' ', w); -+ RichString_appendChr(&bar, 0, ' ', w); - RichString_appendWide(&bar, 0, buffer); - int startPos = RichString_sizeVal(bar) - w; - if (startPos > w) { ---- a/Process.c -+++ b/Process.c -@@ -246,7 +246,7 @@ - - void Process_printLeftAlignedField(RichString* str, int attr, const char* content, unsigned int width) { - int c = RichString_appendnWide(str, attr, content, MINIMUM(width, strlen(content))); -- RichString_appendChr(str, ' ', width + 1 - c); -+ RichString_appendChr(str, attr, ' ', width + 1 - c); - } - - void Process_writeField(const Process* this, RichString* str, ProcessField field) { ---- a/RichString.c -+++ b/RichString.c -@@ -80,6 +80,15 @@ - } - } - -+void RichString_appendChr(RichString* this, int attrs, char c, int count) { -+ int from = this->chlen; -+ int newLen = from + count; -+ RichString_setLen(this, newLen); -+ for (int i = from; i < newLen; i++) { -+ this->chptr[i] = (CharType) { .attr = attrs, .chars = { c, 0 } }; -+ } -+} -+ - int RichString_findChar(RichString* this, char c, int start) { - wchar_t wc = btowc(c); - cchar_t* ch = this->chptr + start; -@@ -115,6 +124,15 @@ - } - } - -+void RichString_appendChr(RichString* this, int attrs, char c, int count) { -+ int from = this->chlen; -+ int newLen = from + count; -+ RichString_setLen(this, newLen); -+ for (int i = from; i < newLen; i++) { -+ this->chptr[i] = c | attrs; -+ } -+} -+ - int RichString_findChar(RichString* this, char c, int start) { - chtype* ch = this->chptr + start; - for (int i = start; i < this->chlen; i++) { -@@ -134,15 +152,6 @@ - this->chptr = this->chstr; - } - --void RichString_appendChr(RichString* this, char c, int count) { -- int from = this->chlen; -- int newLen = from + count; -- RichString_setLen(this, newLen); -- for (int i = from; i < newLen; i++) { -- RichString_setChar(this, i, c); -- } --} -- - void RichString_setAttr(RichString* this, int attrs) { - RichString_setAttrn(this, attrs, 0, this->chlen); - } ---- a/RichString.h -+++ b/RichString.h -@@ -50,7 +50,7 @@ - - void RichString_setAttr(RichString* this, int attrs); - --void RichString_appendChr(RichString* this, char c, int count); -+void RichString_appendChr(RichString* this, int attrs, char c, int count); - - int RichString_appendWide(RichString* this, int attrs, const char* data); - diff --git a/debian/patches/0003-fix-hurd-build.patch b/debian/patches/0003-fix-hurd-build.patch deleted file mode 100644 index f4690c5..0000000 --- a/debian/patches/0003-fix-hurd-build.patch +++ /dev/null @@ -1,71 +0,0 @@ -commit ecfe8794dc705d5ceaf8202c7cab73f3457d4d48 (HEAD -> fix-hurd-build, gh-fit/fix-hurd-build) -Author: Daniel Lange -Date: Thu Jan 14 13:27:47 2021 +0100 - - Define PATH_MAX for GNU/hurd - - Otherwise fails with - "> linux/LinuxProcessList.c:889:20: error: ‘PATH_MAX’ undeclared (first use in this function)" - ---- a/linux/Platform.c -+++ b/linux/Platform.c -@@ -14,7 +14,6 @@ - #include - #include - #include --#include - #include - #include - #include ---- a/linux/Platform.h -+++ b/linux/Platform.h -@@ -7,6 +7,7 @@ - in the source distribution for its full text. - */ - -+#include - #include - #include - -@@ -18,6 +19,12 @@ - #include "ProcessLocksScreen.h" - #include "SignalsPanel.h" - -+/* GNU/Hurd does not have PATH_MAX in limits.h */ -+#ifndef PATH_MAX -+ #define PATH_MAX 4096 -+#endif -+ -+ - extern const ProcessField Platform_defaultFields[]; - - extern const SignalItem Platform_signals[]; ---- a/linux/LinuxProcessList.c -+++ b/linux/LinuxProcessList.c -@@ -42,6 +42,7 @@ - #include "LinuxProcess.h" - #include "Macros.h" - #include "Object.h" -+#include "Platform.h" // needed for GNU/hurd to get PATH_MAX - #include "Process.h" - #include "Settings.h" - #include "XUtils.h" ---- a/linux/SELinuxMeter.c -+++ b/linux/SELinuxMeter.c -@@ -12,7 +12,6 @@ - #include - #include - #include --#include - #include - #include - -@@ -35,7 +34,7 @@ - return false; - } - -- if ((uint32_t)sfbuf.f_type != (uint32_t)SELINUX_MAGIC) { -+ if ((uint32_t)sfbuf.f_type != /* SELINUX_MAGIC */ 0xf97cff8cU) { - return false; - } - diff --git a/debian/patches/0004-fix-kfreebsd-build.patch b/debian/patches/0004-fix-kfreebsd-build.patch deleted file mode 100644 index b81be10..0000000 --- a/debian/patches/0004-fix-kfreebsd-build.patch +++ /dev/null @@ -1,25 +0,0 @@ -Backport of upstream commits 47cebaf and 78b993d - -Fix kfreeBSD build warnings ---- a/freebsd/FreeBSDProcessList.c -+++ b/freebsd/FreeBSDProcessList.c -@@ -5,6 +5,8 @@ - in the source distribution for its full text. - */ - -+#include "config.h" // IWYU pragma: keep -+ - #include "FreeBSDProcessList.h" - - #include ---- a/freebsd/Platform.c -+++ b/freebsd/Platform.c -@@ -5,6 +5,8 @@ - in the source distribution for its full text. - */ - -+#include "config.h" // IWYU pragma: keep -+ - #include "Platform.h" - - #include diff --git a/debian/patches/0005-fix-sorting.patch b/debian/patches/0005-fix-sorting.patch deleted file mode 100644 index fa1adf0..0000000 --- a/debian/patches/0005-fix-sorting.patch +++ /dev/null @@ -1,540 +0,0 @@ -Backport FIT patches to overhaul column sorting ---- a/Process.c -+++ b/Process.c -@@ -488,24 +488,21 @@ - } - - int Process_compare(const void* v1, const void* v2) { -- const Process *p1, *p2; -- const Settings *settings = ((const Process*)v1)->settings; -+ const Process *p1 = (const Process*)v1; -+ const Process *p2 = (const Process*)v2; - -- if (Settings_getActiveDirection(settings) == 1) { -- p1 = (const Process*)v1; -- p2 = (const Process*)v2; -- } else { -- p2 = (const Process*)v1; -- p1 = (const Process*)v2; -- } -+ const Settings *settings = p1->settings; - - ProcessField key = Settings_getActiveSortKey(settings); - - int result = Process_compareByKey(p1, p2, key); - -+ if (Settings_getActiveDirection(settings) != 1) -+ result = -result; -+ - // Implement tie-breaker (needed to make tree mode more stable) - if (!result) -- result = SPACESHIP_NUMBER(p1->pid, p2->pid); -+ return SPACESHIP_NUMBER(p1->pid, p2->pid); - - return result; - } -@@ -516,19 +513,19 @@ - switch (key) { - case PERCENT_CPU: - case PERCENT_NORM_CPU: -- return SPACESHIP_NUMBER(p2->percent_cpu, p1->percent_cpu); -+ return SPACESHIP_NUMBER(p1->percent_cpu, p2->percent_cpu); - case PERCENT_MEM: -- return SPACESHIP_NUMBER(p2->m_resident, p1->m_resident); -+ return SPACESHIP_NUMBER(p1->m_resident, p2->m_resident); - case COMM: - return SPACESHIP_NULLSTR(Process_getCommand(p1), Process_getCommand(p2)); - case MAJFLT: -- return SPACESHIP_NUMBER(p2->majflt, p1->majflt); -+ return SPACESHIP_NUMBER(p1->majflt, p2->majflt); - case MINFLT: -- return SPACESHIP_NUMBER(p2->minflt, p1->minflt); -+ return SPACESHIP_NUMBER(p1->minflt, p2->minflt); - case M_RESIDENT: -- return SPACESHIP_NUMBER(p2->m_resident, p1->m_resident); -+ return SPACESHIP_NUMBER(p1->m_resident, p2->m_resident); - case M_VIRT: -- return SPACESHIP_NUMBER(p2->m_virt, p1->m_virt); -+ return SPACESHIP_NUMBER(p1->m_virt, p2->m_virt); - case NICE: - return SPACESHIP_NUMBER(p1->nice, p2->nice); - case NLWP: -@@ -553,7 +550,7 @@ - case ST_UID: - return SPACESHIP_NUMBER(p1->st_uid, p2->st_uid); - case TIME: -- return SPACESHIP_NUMBER(p2->time, p1->time); -+ return SPACESHIP_NUMBER(p1->time, p2->time); - case TGID: - return SPACESHIP_NUMBER(p1->tgid, p2->tgid); - case TPGID: ---- a/Process.h -+++ b/Process.h -@@ -118,6 +118,7 @@ - const char* description; - uint32_t flags; - bool pidColumn; -+ bool defaultSortDesc; - } ProcessFieldData; - - // Implemented in platform-specific code: ---- a/ProcessList.c -+++ b/ProcessList.c -@@ -116,7 +116,7 @@ - header->chlen--; // rewind to override space - RichString_appendnWide(header, - CRT_colors[PANEL_SELECTION_FOCUS], -- CRT_treeStr[Settings_getActiveDirection(this->settings) == 1 ? TREE_STR_DESC : TREE_STR_ASC], -+ CRT_treeStr[Settings_getActiveDirection(this->settings) == 1 ? TREE_STR_ASC : TREE_STR_DESC], - 1); - } - if (COMM == fields[i] && settings->showMergedCommand) { ---- a/Settings.c -+++ b/Settings.c -@@ -330,7 +330,7 @@ - - this->sortKey = PERCENT_CPU; - this->treeSortKey = PID; -- this->direction = 1; -+ this->direction = -1; - this->treeDirection = 1; - this->shadowOtherUsers = false; - this->showThreadNames = false; -@@ -450,10 +450,10 @@ - void Settings_setSortKey(Settings* this, ProcessField sortKey) { - if (this->treeViewAlwaysByPID || !this->treeView) { - this->sortKey = sortKey; -- this->direction = 1; -+ this->direction = (Process_fields[sortKey].defaultSortDesc) ? -1 : 1; - this->treeView = false; - } else { - this->treeSortKey = sortKey; -- this->treeDirection = 1; -+ this->treeDirection = (Process_fields[sortKey].defaultSortDesc) ? -1 : 1; - } - } ---- a/darwin/DarwinProcess.c -+++ b/darwin/DarwinProcess.c -@@ -28,20 +28,20 @@ - [SESSION] = { .name = "SESSION", .title = "SID", .description = "Process's session ID", .flags = 0, .pidColumn = true, }, - [TTY_NR] = { .name = "TTY_NR", .title = " TTY ", .description = "Controlling terminal", .flags = 0, }, - [TPGID] = { .name = "TPGID", .title = "TPGID", .description = "Process ID of the fg process group of the controlling terminal", .flags = 0, .pidColumn = true, }, -- [MINFLT] = { .name = "MINFLT", .title = " MINFLT ", .description = "Number of minor faults which have not required loading a memory page from disk", .flags = 0, }, -- [MAJFLT] = { .name = "MAJFLT", .title = " MAJFLT ", .description = "Number of major faults which have required loading a memory page from disk", .flags = 0, }, -+ [MINFLT] = { .name = "MINFLT", .title = " MINFLT ", .description = "Number of minor faults which have not required loading a memory page from disk", .flags = 0, .defaultSortDesc = true, }, -+ [MAJFLT] = { .name = "MAJFLT", .title = " MAJFLT ", .description = "Number of major faults which have required loading a memory page from disk", .flags = 0, .defaultSortDesc = true, }, - [PRIORITY] = { .name = "PRIORITY", .title = "PRI ", .description = "Kernel's internal priority for the process", .flags = 0, }, - [NICE] = { .name = "NICE", .title = " NI ", .description = "Nice value (the higher the value, the more it lets other processes take priority)", .flags = 0, }, - [STARTTIME] = { .name = "STARTTIME", .title = "START ", .description = "Time the process was started", .flags = 0, }, - - [PROCESSOR] = { .name = "PROCESSOR", .title = "CPU ", .description = "Id of the CPU the process last executed on", .flags = 0, }, -- [M_VIRT] = { .name = "M_VIRT", .title = " VIRT ", .description = "Total program size in virtual memory", .flags = 0, }, -- [M_RESIDENT] = { .name = "M_RESIDENT", .title = " RES ", .description = "Resident set size, size of the text and data sections, plus stack usage", .flags = 0, }, -+ [M_VIRT] = { .name = "M_VIRT", .title = " VIRT ", .description = "Total program size in virtual memory", .flags = 0, .defaultSortDesc = true, }, -+ [M_RESIDENT] = { .name = "M_RESIDENT", .title = " RES ", .description = "Resident set size, size of the text and data sections, plus stack usage", .flags = 0, .defaultSortDesc = true, }, - [ST_UID] = { .name = "ST_UID", .title = " UID ", .description = "User ID of the process owner", .flags = 0, }, -- [PERCENT_CPU] = { .name = "PERCENT_CPU", .title = "CPU% ", .description = "Percentage of the CPU time the process used in the last sampling", .flags = 0, }, -- [PERCENT_MEM] = { .name = "PERCENT_MEM", .title = "MEM% ", .description = "Percentage of the memory the process is using, based on resident memory size", .flags = 0, }, -+ [PERCENT_CPU] = { .name = "PERCENT_CPU", .title = "CPU% ", .description = "Percentage of the CPU time the process used in the last sampling", .flags = 0, .defaultSortDesc = true, }, -+ [PERCENT_MEM] = { .name = "PERCENT_MEM", .title = "MEM% ", .description = "Percentage of the memory the process is using, based on resident memory size", .flags = 0, .defaultSortDesc = true, }, - [USER] = { .name = "USER", .title = "USER ", .description = "Username of the process owner (or user ID if name cannot be determined)", .flags = 0, }, -- [TIME] = { .name = "TIME", .title = " TIME+ ", .description = "Total time the process has spent in user and system time", .flags = 0, }, -+ [TIME] = { .name = "TIME", .title = " TIME+ ", .description = "Total time the process has spent in user and system time", .flags = 0, .defaultSortDesc = true, }, - [NLWP] = { .name = "NLWP", .title = "NLWP ", .description = "Number of threads in the process", .flags = 0, }, - [TGID] = { .name = "TGID", .title = "TGID", .description = "Thread group ID (i.e. process ID)", .flags = 0, .pidColumn = true, }, - [TRANSLATED] = { .name = "TRANSLATED", .title = "T ", .description = "Translation info (T translated, N native)", .flags = 0, }, ---- a/dragonflybsd/DragonFlyBSDProcess.c -+++ b/dragonflybsd/DragonFlyBSDProcess.c -@@ -28,20 +28,20 @@ - [SESSION] = { .name = "SESSION", .title = "SID", .description = "Process's session ID", .flags = 0, .pidColumn = true, }, - [TTY_NR] = { .name = "TTY_NR", .title = " TTY ", .description = "Controlling terminal", .flags = 0, }, - [TPGID] = { .name = "TPGID", .title = "TPGID", .description = "Process ID of the fg process group of the controlling terminal", .flags = 0, .pidColumn = true, }, -- [MINFLT] = { .name = "MINFLT", .title = " MINFLT ", .description = "Number of minor faults which have not required loading a memory page from disk", .flags = 0, }, -- [MAJFLT] = { .name = "MAJFLT", .title = " MAJFLT ", .description = "Number of major faults which have required loading a memory page from disk", .flags = 0, }, -+ [MINFLT] = { .name = "MINFLT", .title = " MINFLT ", .description = "Number of minor faults which have not required loading a memory page from disk", .flags = 0, .defaultSortDesc = true, }, -+ [MAJFLT] = { .name = "MAJFLT", .title = " MAJFLT ", .description = "Number of major faults which have required loading a memory page from disk", .flags = 0, .defaultSortDesc = true, }, - [PRIORITY] = { .name = "PRIORITY", .title = "PRI ", .description = "Kernel's internal priority for the process", .flags = 0, }, - [NICE] = { .name = "NICE", .title = " NI ", .description = "Nice value (the higher the value, the more it lets other processes take priority)", .flags = 0, }, - [STARTTIME] = { .name = "STARTTIME", .title = "START ", .description = "Time the process was started", .flags = 0, }, - [PROCESSOR] = { .name = "PROCESSOR", .title = "CPU ", .description = "Id of the CPU the process last executed on", .flags = 0, }, -- [M_VIRT] = { .name = "M_VIRT", .title = " VIRT ", .description = "Total program size in virtual memory", .flags = 0, }, -- [M_RESIDENT] = { .name = "M_RESIDENT", .title = " RES ", .description = "Resident set size, size of the text and data sections, plus stack usage", .flags = 0, }, -+ [M_VIRT] = { .name = "M_VIRT", .title = " VIRT ", .description = "Total program size in virtual memory", .flags = 0, .defaultSortDesc = true, }, -+ [M_RESIDENT] = { .name = "M_RESIDENT", .title = " RES ", .description = "Resident set size, size of the text and data sections, plus stack usage", .flags = 0, .defaultSortDesc = true, }, - [ST_UID] = { .name = "ST_UID", .title = " UID ", .description = "User ID of the process owner", .flags = 0, }, -- [PERCENT_CPU] = { .name = "PERCENT_CPU", .title = "CPU% ", .description = "Percentage of the CPU time the process used in the last sampling", .flags = 0, }, -- [PERCENT_NORM_CPU] = { .name = "PERCENT_NORM_CPU", .title = "NCPU%", .description = "Normalized percentage of the CPU time the process used in the last sampling (normalized by cpu count)", .flags = 0, }, -- [PERCENT_MEM] = { .name = "PERCENT_MEM", .title = "MEM% ", .description = "Percentage of the memory the process is using, based on resident memory size", .flags = 0, }, -+ [PERCENT_CPU] = { .name = "PERCENT_CPU", .title = "CPU% ", .description = "Percentage of the CPU time the process used in the last sampling", .flags = 0, .defaultSortDesc = true, }, -+ [PERCENT_NORM_CPU] = { .name = "PERCENT_NORM_CPU", .title = "NCPU%", .description = "Normalized percentage of the CPU time the process used in the last sampling (normalized by cpu count)", .flags = 0, .defaultSortDesc = true, }, -+ [PERCENT_MEM] = { .name = "PERCENT_MEM", .title = "MEM% ", .description = "Percentage of the memory the process is using, based on resident memory size", .flags = 0, .defaultSortDesc = true, }, - [USER] = { .name = "USER", .title = "USER ", .description = "Username of the process owner (or user ID if name cannot be determined)", .flags = 0, }, -- [TIME] = { .name = "TIME", .title = " TIME+ ", .description = "Total time the process has spent in user and system time", .flags = 0, }, -+ [TIME] = { .name = "TIME", .title = " TIME+ ", .description = "Total time the process has spent in user and system time", .flags = 0, .defaultSortDesc = true, }, - [NLWP] = { .name = "NLWP", .title = "NLWP ", .description = "Number of threads in the process", .flags = 0, }, - [TGID] = { .name = "TGID", .title = "TGID", .description = "Thread group ID (i.e. process ID)", .flags = 0, .pidColumn = true, }, - [JID] = { .name = "JID", .title = "JID", .description = "Jail prison ID", .flags = 0, .pidColumn = true, }, ---- a/freebsd/FreeBSDProcess.c -+++ b/freebsd/FreeBSDProcess.c -@@ -28,22 +28,22 @@ - [SESSION] = { .name = "SESSION", .title = "SID", .description = "Process's session ID", .flags = 0, .pidColumn = true, }, - [TTY_NR] = { .name = "TTY_NR", .title = " TTY ", .description = "Controlling terminal", .flags = PROCESS_FLAG_FREEBSD_TTY, }, - [TPGID] = { .name = "TPGID", .title = "TPGID", .description = "Process ID of the fg process group of the controlling terminal", .flags = 0, .pidColumn = true, }, -- [MINFLT] = { .name = "MINFLT", .title = " MINFLT ", .description = "Number of minor faults which have not required loading a memory page from disk", .flags = 0, }, -- [MAJFLT] = { .name = "MAJFLT", .title = " MAJFLT ", .description = "Number of major faults which have required loading a memory page from disk", .flags = 0, }, -+ [MINFLT] = { .name = "MINFLT", .title = " MINFLT ", .description = "Number of minor faults which have not required loading a memory page from disk", .flags = 0, .defaultSortDesc = true, }, -+ [MAJFLT] = { .name = "MAJFLT", .title = " MAJFLT ", .description = "Number of major faults which have required loading a memory page from disk", .flags = 0, .defaultSortDesc = true, }, - [PRIORITY] = { .name = "PRIORITY", .title = "PRI ", .description = "Kernel's internal priority for the process", .flags = 0, }, - [NICE] = { .name = "NICE", .title = " NI ", .description = "Nice value (the higher the value, the more it lets other processes take priority)", .flags = 0, }, - [STARTTIME] = { .name = "STARTTIME", .title = "START ", .description = "Time the process was started", .flags = 0, }, - - [PROCESSOR] = { .name = "PROCESSOR", .title = "CPU ", .description = "Id of the CPU the process last executed on", .flags = 0, }, -- [M_VIRT] = { .name = "M_VIRT", .title = " VIRT ", .description = "Total program size in virtual memory", .flags = 0, }, -- [M_RESIDENT] = { .name = "M_RESIDENT", .title = " RES ", .description = "Resident set size, size of the text and data sections, plus stack usage", .flags = 0, }, -+ [M_VIRT] = { .name = "M_VIRT", .title = " VIRT ", .description = "Total program size in virtual memory", .flags = 0, .defaultSortDesc = true, }, -+ [M_RESIDENT] = { .name = "M_RESIDENT", .title = " RES ", .description = "Resident set size, size of the text and data sections, plus stack usage", .flags = 0, .defaultSortDesc = true, }, - [ST_UID] = { .name = "ST_UID", .title = " UID ", .description = "User ID of the process owner", .flags = 0, }, -- [PERCENT_CPU] = { .name = "PERCENT_CPU", .title = "CPU% ", .description = "Percentage of the CPU time the process used in the last sampling", .flags = 0, }, -- [PERCENT_NORM_CPU] = { .name = "PERCENT_NORM_CPU", .title = "NCPU%", .description = "Normalized percentage of the CPU time the process used in the last sampling (normalized by cpu count)", .flags = 0, }, -- [PERCENT_MEM] = { .name = "PERCENT_MEM", .title = "MEM% ", .description = "Percentage of the memory the process is using, based on resident memory size", .flags = 0, }, -+ [PERCENT_CPU] = { .name = "PERCENT_CPU", .title = "CPU% ", .description = "Percentage of the CPU time the process used in the last sampling", .flags = 0, .defaultSortDesc = true, }, -+ [PERCENT_NORM_CPU] = { .name = "PERCENT_NORM_CPU", .title = "NCPU%", .description = "Normalized percentage of the CPU time the process used in the last sampling (normalized by cpu count)", .flags = 0, .defaultSortDesc = true, }, -+ [PERCENT_MEM] = { .name = "PERCENT_MEM", .title = "MEM% ", .description = "Percentage of the memory the process is using, based on resident memory size", .flags = 0, .defaultSortDesc = true, }, - [USER] = { .name = "USER", .title = "USER ", .description = "Username of the process owner (or user ID if name cannot be determined)", .flags = 0, }, -- [TIME] = { .name = "TIME", .title = " TIME+ ", .description = "Total time the process has spent in user and system time", .flags = 0, }, -- [NLWP] = { .name = "NLWP", .title = "NLWP ", .description = "Number of threads in the process", .flags = 0, }, -+ [TIME] = { .name = "TIME", .title = " TIME+ ", .description = "Total time the process has spent in user and system time", .flags = 0, .defaultSortDesc = true, }, -+ [NLWP] = { .name = "NLWP", .title = "NLWP ", .description = "Number of threads in the process", .flags = 0, .defaultSortDesc = true, }, - [TGID] = { .name = "TGID", .title = "TGID", .description = "Thread group ID (i.e. process ID)", .flags = 0, .pidColumn = true, }, - [JID] = { .name = "JID", .title = "JID", .description = "Jail prison ID", .flags = 0, .pidColumn = true, }, - [JAIL] = { .name = "JAIL", .title = "JAIL ", .description = "Jail prison name", .flags = 0, }, ---- a/linux/LinuxProcess.c -+++ b/linux/LinuxProcess.c -@@ -40,32 +40,32 @@ - [SESSION] = { .name = "SESSION", .title = "SID", .description = "Process's session ID", .flags = 0, .pidColumn = true, }, - [TTY_NR] = { .name = "TTY_NR", .title = "TTY ", .description = "Controlling terminal", .flags = 0, }, - [TPGID] = { .name = "TPGID", .title = "TPGID", .description = "Process ID of the fg process group of the controlling terminal", .flags = 0, .pidColumn = true, }, -- [MINFLT] = { .name = "MINFLT", .title = " MINFLT ", .description = "Number of minor faults which have not required loading a memory page from disk", .flags = 0, }, -- [CMINFLT] = { .name = "CMINFLT", .title = " CMINFLT ", .description = "Children processes' minor faults", .flags = 0, }, -- [MAJFLT] = { .name = "MAJFLT", .title = " MAJFLT ", .description = "Number of major faults which have required loading a memory page from disk", .flags = 0, }, -- [CMAJFLT] = { .name = "CMAJFLT", .title = " CMAJFLT ", .description = "Children processes' major faults", .flags = 0, }, -- [UTIME] = { .name = "UTIME", .title = " UTIME+ ", .description = "User CPU time - time the process spent executing in user mode", .flags = 0, }, -- [STIME] = { .name = "STIME", .title = " STIME+ ", .description = "System CPU time - time the kernel spent running system calls for this process", .flags = 0, }, -- [CUTIME] = { .name = "CUTIME", .title = " CUTIME+ ", .description = "Children processes' user CPU time", .flags = 0, }, -- [CSTIME] = { .name = "CSTIME", .title = " CSTIME+ ", .description = "Children processes' system CPU time", .flags = 0, }, -+ [MINFLT] = { .name = "MINFLT", .title = " MINFLT ", .description = "Number of minor faults which have not required loading a memory page from disk", .flags = 0, .defaultSortDesc = true, }, -+ [CMINFLT] = { .name = "CMINFLT", .title = " CMINFLT ", .description = "Children processes' minor faults", .flags = 0, .defaultSortDesc = true, }, -+ [MAJFLT] = { .name = "MAJFLT", .title = " MAJFLT ", .description = "Number of major faults which have required loading a memory page from disk", .flags = 0, .defaultSortDesc = true, }, -+ [CMAJFLT] = { .name = "CMAJFLT", .title = " CMAJFLT ", .description = "Children processes' major faults", .flags = 0, .defaultSortDesc = true, }, -+ [UTIME] = { .name = "UTIME", .title = " UTIME+ ", .description = "User CPU time - time the process spent executing in user mode", .flags = 0, .defaultSortDesc = true, }, -+ [STIME] = { .name = "STIME", .title = " STIME+ ", .description = "System CPU time - time the kernel spent running system calls for this process", .flags = 0, .defaultSortDesc = true, }, -+ [CUTIME] = { .name = "CUTIME", .title = " CUTIME+ ", .description = "Children processes' user CPU time", .flags = 0, .defaultSortDesc = true, }, -+ [CSTIME] = { .name = "CSTIME", .title = " CSTIME+ ", .description = "Children processes' system CPU time", .flags = 0, .defaultSortDesc = true, }, - [PRIORITY] = { .name = "PRIORITY", .title = "PRI ", .description = "Kernel's internal priority for the process", .flags = 0, }, - [NICE] = { .name = "NICE", .title = " NI ", .description = "Nice value (the higher the value, the more it lets other processes take priority)", .flags = 0, }, - [STARTTIME] = { .name = "STARTTIME", .title = "START ", .description = "Time the process was started", .flags = 0, }, - [PROCESSOR] = { .name = "PROCESSOR", .title = "CPU ", .description = "Id of the CPU the process last executed on", .flags = 0, }, -- [M_VIRT] = { .name = "M_VIRT", .title = " VIRT ", .description = "Total program size in virtual memory", .flags = 0, }, -- [M_RESIDENT] = { .name = "M_RESIDENT", .title = " RES ", .description = "Resident set size, size of the text and data sections, plus stack usage", .flags = 0, }, -- [M_SHARE] = { .name = "M_SHARE", .title = " SHR ", .description = "Size of the process's shared pages", .flags = 0, }, -- [M_TRS] = { .name = "M_TRS", .title = " CODE ", .description = "Size of the text segment of the process", .flags = 0, }, -- [M_DRS] = { .name = "M_DRS", .title = " DATA ", .description = "Size of the data segment plus stack usage of the process", .flags = 0, }, -- [M_LRS] = { .name = "M_LRS", .title = " LIB ", .description = "The library size of the process (calculated from memory maps)", .flags = PROCESS_FLAG_LINUX_LRS_FIX, }, -- [M_DT] = { .name = "M_DT", .title = " DIRTY ", .description = "Size of the dirty pages of the process (unused since Linux 2.6; always 0)", .flags = 0, }, -+ [M_VIRT] = { .name = "M_VIRT", .title = " VIRT ", .description = "Total program size in virtual memory", .flags = 0, .defaultSortDesc = true, }, -+ [M_RESIDENT] = { .name = "M_RESIDENT", .title = " RES ", .description = "Resident set size, size of the text and data sections, plus stack usage", .flags = 0, .defaultSortDesc = true, }, -+ [M_SHARE] = { .name = "M_SHARE", .title = " SHR ", .description = "Size of the process's shared pages", .flags = 0, .defaultSortDesc = true, }, -+ [M_TRS] = { .name = "M_TRS", .title = " CODE ", .description = "Size of the text segment of the process", .flags = 0, .defaultSortDesc = true, }, -+ [M_DRS] = { .name = "M_DRS", .title = " DATA ", .description = "Size of the data segment plus stack usage of the process", .flags = 0, .defaultSortDesc = true, }, -+ [M_LRS] = { .name = "M_LRS", .title = " LIB ", .description = "The library size of the process (calculated from memory maps)", .flags = PROCESS_FLAG_LINUX_LRS_FIX, .defaultSortDesc = true, }, -+ [M_DT] = { .name = "M_DT", .title = " DIRTY ", .description = "Size of the dirty pages of the process (unused since Linux 2.6; always 0)", .flags = 0, .defaultSortDesc = true, }, - [ST_UID] = { .name = "ST_UID", .title = " UID ", .description = "User ID of the process owner", .flags = 0, }, -- [PERCENT_CPU] = { .name = "PERCENT_CPU", .title = "CPU% ", .description = "Percentage of the CPU time the process used in the last sampling", .flags = 0, }, -- [PERCENT_NORM_CPU] = { .name = "PERCENT_NORM_CPU", .title = "NCPU%", .description = "Normalized percentage of the CPU time the process used in the last sampling (normalized by cpu count)", .flags = 0, }, -- [PERCENT_MEM] = { .name = "PERCENT_MEM", .title = "MEM% ", .description = "Percentage of the memory the process is using, based on resident memory size", .flags = 0, }, -+ [PERCENT_CPU] = { .name = "PERCENT_CPU", .title = "CPU% ", .description = "Percentage of the CPU time the process used in the last sampling", .flags = 0, .defaultSortDesc = true, }, -+ [PERCENT_NORM_CPU] = { .name = "PERCENT_NORM_CPU", .title = "NCPU%", .description = "Normalized percentage of the CPU time the process used in the last sampling (normalized by cpu count)", .flags = 0, .defaultSortDesc = true, }, -+ [PERCENT_MEM] = { .name = "PERCENT_MEM", .title = "MEM% ", .description = "Percentage of the memory the process is using, based on resident memory size", .flags = 0, .defaultSortDesc = true, }, - [USER] = { .name = "USER", .title = "USER ", .description = "Username of the process owner (or user ID if name cannot be determined)", .flags = 0, }, -- [TIME] = { .name = "TIME", .title = " TIME+ ", .description = "Total time the process has spent in user and system time", .flags = 0, }, -- [NLWP] = { .name = "NLWP", .title = "NLWP ", .description = "Number of threads in the process", .flags = 0, }, -+ [TIME] = { .name = "TIME", .title = " TIME+ ", .description = "Total time the process has spent in user and system time", .flags = 0, .defaultSortDesc = true, }, -+ [NLWP] = { .name = "NLWP", .title = "NLWP ", .description = "Number of threads in the process", .flags = 0, .defaultSortDesc = true, }, - [TGID] = { .name = "TGID", .title = "TGID", .description = "Thread group ID (i.e. process ID)", .flags = 0, .pidColumn = true, }, - #ifdef HAVE_OPENVZ - [CTID] = { .name = "CTID", .title = " CTID ", .description = "OpenVZ container ID (a.k.a. virtual environment ID)", .flags = PROCESS_FLAG_LINUX_OPENVZ, }, -@@ -74,28 +74,28 @@ - #ifdef HAVE_VSERVER - [VXID] = { .name = "VXID", .title = " VXID ", .description = "VServer process ID", .flags = PROCESS_FLAG_LINUX_VSERVER, }, - #endif -- [RCHAR] = { .name = "RCHAR", .title = " RD_CHAR ", .description = "Number of bytes the process has read", .flags = PROCESS_FLAG_IO, }, -- [WCHAR] = { .name = "WCHAR", .title = " WR_CHAR ", .description = "Number of bytes the process has written", .flags = PROCESS_FLAG_IO, }, -- [SYSCR] = { .name = "SYSCR", .title = " RD_SYSC ", .description = "Number of read(2) syscalls for the process", .flags = PROCESS_FLAG_IO, }, -- [SYSCW] = { .name = "SYSCW", .title = " WR_SYSC ", .description = "Number of write(2) syscalls for the process", .flags = PROCESS_FLAG_IO, }, -- [RBYTES] = { .name = "RBYTES", .title = " IO_RBYTES ", .description = "Bytes of read(2) I/O for the process", .flags = PROCESS_FLAG_IO, }, -- [WBYTES] = { .name = "WBYTES", .title = " IO_WBYTES ", .description = "Bytes of write(2) I/O for the process", .flags = PROCESS_FLAG_IO, }, -- [CNCLWB] = { .name = "CNCLWB", .title = " IO_CANCEL ", .description = "Bytes of cancelled write(2) I/O", .flags = PROCESS_FLAG_IO, }, -- [IO_READ_RATE] = { .name = "IO_READ_RATE", .title = " DISK READ ", .description = "The I/O rate of read(2) in bytes per second for the process", .flags = PROCESS_FLAG_IO, }, -- [IO_WRITE_RATE] = { .name = "IO_WRITE_RATE", .title = " DISK WRITE ", .description = "The I/O rate of write(2) in bytes per second for the process", .flags = PROCESS_FLAG_IO, }, -- [IO_RATE] = { .name = "IO_RATE", .title = " DISK R/W ", .description = "Total I/O rate in bytes per second", .flags = PROCESS_FLAG_IO, }, -+ [RCHAR] = { .name = "RCHAR", .title = " RD_CHAR ", .description = "Number of bytes the process has read", .flags = PROCESS_FLAG_IO, .defaultSortDesc = true, }, -+ [WCHAR] = { .name = "WCHAR", .title = " WR_CHAR ", .description = "Number of bytes the process has written", .flags = PROCESS_FLAG_IO, .defaultSortDesc = true, }, -+ [SYSCR] = { .name = "SYSCR", .title = " RD_SYSC ", .description = "Number of read(2) syscalls for the process", .flags = PROCESS_FLAG_IO, .defaultSortDesc = true, }, -+ [SYSCW] = { .name = "SYSCW", .title = " WR_SYSC ", .description = "Number of write(2) syscalls for the process", .flags = PROCESS_FLAG_IO, .defaultSortDesc = true, }, -+ [RBYTES] = { .name = "RBYTES", .title = " IO_RBYTES ", .description = "Bytes of read(2) I/O for the process", .flags = PROCESS_FLAG_IO, .defaultSortDesc = true, }, -+ [WBYTES] = { .name = "WBYTES", .title = " IO_WBYTES ", .description = "Bytes of write(2) I/O for the process", .flags = PROCESS_FLAG_IO, .defaultSortDesc = true, }, -+ [CNCLWB] = { .name = "CNCLWB", .title = " IO_CANCEL ", .description = "Bytes of cancelled write(2) I/O", .flags = PROCESS_FLAG_IO, .defaultSortDesc = true, }, -+ [IO_READ_RATE] = { .name = "IO_READ_RATE", .title = " DISK READ ", .description = "The I/O rate of read(2) in bytes per second for the process", .flags = PROCESS_FLAG_IO, .defaultSortDesc = true, }, -+ [IO_WRITE_RATE] = { .name = "IO_WRITE_RATE", .title = " DISK WRITE ", .description = "The I/O rate of write(2) in bytes per second for the process", .flags = PROCESS_FLAG_IO, .defaultSortDesc = true, }, -+ [IO_RATE] = { .name = "IO_RATE", .title = " DISK R/W ", .description = "Total I/O rate in bytes per second", .flags = PROCESS_FLAG_IO, .defaultSortDesc = true, }, - [CGROUP] = { .name = "CGROUP", .title = " CGROUP ", .description = "Which cgroup the process is in", .flags = PROCESS_FLAG_LINUX_CGROUP, }, -- [OOM] = { .name = "OOM", .title = " OOM ", .description = "OOM (Out-of-Memory) killer score", .flags = PROCESS_FLAG_LINUX_OOM, }, -+ [OOM] = { .name = "OOM", .title = " OOM ", .description = "OOM (Out-of-Memory) killer score", .flags = PROCESS_FLAG_LINUX_OOM, .defaultSortDesc = true, }, - [IO_PRIORITY] = { .name = "IO_PRIORITY", .title = "IO ", .description = "I/O priority", .flags = PROCESS_FLAG_LINUX_IOPRIO, }, - #ifdef HAVE_DELAYACCT -- [PERCENT_CPU_DELAY] = { .name = "PERCENT_CPU_DELAY", .title = "CPUD% ", .description = "CPU delay %", .flags = PROCESS_FLAG_LINUX_DELAYACCT, }, -- [PERCENT_IO_DELAY] = { .name = "PERCENT_IO_DELAY", .title = "IOD% ", .description = "Block I/O delay %", .flags = PROCESS_FLAG_LINUX_DELAYACCT, }, -- [PERCENT_SWAP_DELAY] = { .name = "PERCENT_SWAP_DELAY", .title = "SWAPD% ", .description = "Swapin delay %", .flags = PROCESS_FLAG_LINUX_DELAYACCT, }, -+ [PERCENT_CPU_DELAY] = { .name = "PERCENT_CPU_DELAY", .title = "CPUD% ", .description = "CPU delay %", .flags = PROCESS_FLAG_LINUX_DELAYACCT, .defaultSortDesc = true, }, -+ [PERCENT_IO_DELAY] = { .name = "PERCENT_IO_DELAY", .title = "IOD% ", .description = "Block I/O delay %", .flags = PROCESS_FLAG_LINUX_DELAYACCT, .defaultSortDesc = true, }, -+ [PERCENT_SWAP_DELAY] = { .name = "PERCENT_SWAP_DELAY", .title = "SWAPD% ", .description = "Swapin delay %", .flags = PROCESS_FLAG_LINUX_DELAYACCT, .defaultSortDesc = true, }, - #endif -- [M_PSS] = { .name = "M_PSS", .title = " PSS ", .description = "proportional set size, same as M_RESIDENT but each page is divided by the number of processes sharing it.", .flags = PROCESS_FLAG_LINUX_SMAPS, }, -- [M_SWAP] = { .name = "M_SWAP", .title = " SWAP ", .description = "Size of the process's swapped pages", .flags = PROCESS_FLAG_LINUX_SMAPS, }, -- [M_PSSWP] = { .name = "M_PSSWP", .title = " PSSWP ", .description = "shows proportional swap share of this mapping, Unlike \"Swap\", this does not take into account swapped out page of underlying shmem objects.", .flags = PROCESS_FLAG_LINUX_SMAPS, }, -- [CTXT] = { .name = "CTXT", .title = " CTXT ", .description = "Context switches (incremental sum of voluntary_ctxt_switches and nonvoluntary_ctxt_switches)", .flags = PROCESS_FLAG_LINUX_CTXT, }, -+ [M_PSS] = { .name = "M_PSS", .title = " PSS ", .description = "proportional set size, same as M_RESIDENT but each page is divided by the number of processes sharing it.", .flags = PROCESS_FLAG_LINUX_SMAPS, .defaultSortDesc = true, }, -+ [M_SWAP] = { .name = "M_SWAP", .title = " SWAP ", .description = "Size of the process's swapped pages", .flags = PROCESS_FLAG_LINUX_SMAPS, .defaultSortDesc = true, }, -+ [M_PSSWP] = { .name = "M_PSSWP", .title = " PSSWP ", .description = "shows proportional swap share of this mapping, Unlike \"Swap\", this does not take into account swapped out page of underlying shmem objects.", .flags = PROCESS_FLAG_LINUX_SMAPS, .defaultSortDesc = true, }, -+ [CTXT] = { .name = "CTXT", .title = " CTXT ", .description = "Context switches (incremental sum of voluntary_ctxt_switches and nonvoluntary_ctxt_switches)", .flags = PROCESS_FLAG_LINUX_CTXT, .defaultSortDesc = true, }, - [SECATTR] = { .name = "SECATTR", .title = " Security Attribute ", .description = "Security attribute of the process (e.g. SELinux or AppArmor)", .flags = PROCESS_FLAG_LINUX_SECATTR, }, - [PROC_COMM] = { .name = "COMM", .title = "COMM ", .description = "comm string of the process from /proc/[pid]/comm", .flags = 0, }, - [PROC_EXE] = { .name = "EXE", .title = "EXE ", .description = "Basename of exe of the process from /proc/[pid]/exe", .flags = 0, }, -@@ -760,75 +760,75 @@ - - switch (key) { - case M_DRS: -- return SPACESHIP_NUMBER(p2->m_drs, p1->m_drs); -+ return SPACESHIP_NUMBER(p1->m_drs, p2->m_drs); - case M_DT: -- return SPACESHIP_NUMBER(p2->m_dt, p1->m_dt); -+ return SPACESHIP_NUMBER(p1->m_dt, p2->m_dt); - case M_LRS: -- return SPACESHIP_NUMBER(p2->m_lrs, p1->m_lrs); -+ return SPACESHIP_NUMBER(p1->m_lrs, p2->m_lrs); - case M_TRS: -- return SPACESHIP_NUMBER(p2->m_trs, p1->m_trs); -+ return SPACESHIP_NUMBER(p1->m_trs, p2->m_trs); - case M_SHARE: -- return SPACESHIP_NUMBER(p2->m_share, p1->m_share); -+ return SPACESHIP_NUMBER(p1->m_share, p2->m_share); - case M_PSS: -- return SPACESHIP_NUMBER(p2->m_pss, p1->m_pss); -+ return SPACESHIP_NUMBER(p1->m_pss, p2->m_pss); - case M_SWAP: -- return SPACESHIP_NUMBER(p2->m_swap, p1->m_swap); -+ return SPACESHIP_NUMBER(p1->m_swap, p2->m_swap); - case M_PSSWP: -- return SPACESHIP_NUMBER(p2->m_psswp, p1->m_psswp); -+ return SPACESHIP_NUMBER(p1->m_psswp, p2->m_psswp); - case UTIME: -- return SPACESHIP_NUMBER(p2->utime, p1->utime); -+ return SPACESHIP_NUMBER(p1->utime, p2->utime); - case CUTIME: -- return SPACESHIP_NUMBER(p2->cutime, p1->cutime); -+ return SPACESHIP_NUMBER(p1->cutime, p2->cutime); - case STIME: -- return SPACESHIP_NUMBER(p2->stime, p1->stime); -+ return SPACESHIP_NUMBER(p1->stime, p2->stime); - case CSTIME: -- return SPACESHIP_NUMBER(p2->cstime, p1->cstime); -+ return SPACESHIP_NUMBER(p1->cstime, p2->cstime); - case RCHAR: -- return SPACESHIP_NUMBER(p2->io_rchar, p1->io_rchar); -+ return SPACESHIP_NUMBER(p1->io_rchar, p2->io_rchar); - case WCHAR: -- return SPACESHIP_NUMBER(p2->io_wchar, p1->io_wchar); -+ return SPACESHIP_NUMBER(p1->io_wchar, p2->io_wchar); - case SYSCR: -- return SPACESHIP_NUMBER(p2->io_syscr, p1->io_syscr); -+ return SPACESHIP_NUMBER(p1->io_syscr, p2->io_syscr); - case SYSCW: -- return SPACESHIP_NUMBER(p2->io_syscw, p1->io_syscw); -+ return SPACESHIP_NUMBER(p1->io_syscw, p2->io_syscw); - case RBYTES: -- return SPACESHIP_NUMBER(p2->io_read_bytes, p1->io_read_bytes); -+ return SPACESHIP_NUMBER(p1->io_read_bytes, p2->io_read_bytes); - case WBYTES: -- return SPACESHIP_NUMBER(p2->io_write_bytes, p1->io_write_bytes); -+ return SPACESHIP_NUMBER(p1->io_write_bytes, p2->io_write_bytes); - case CNCLWB: -- return SPACESHIP_NUMBER(p2->io_cancelled_write_bytes, p1->io_cancelled_write_bytes); -+ return SPACESHIP_NUMBER(p1->io_cancelled_write_bytes, p2->io_cancelled_write_bytes); - case IO_READ_RATE: -- return SPACESHIP_NUMBER(p2->io_rate_read_bps, p1->io_rate_read_bps); -+ return SPACESHIP_NUMBER(p1->io_rate_read_bps, p2->io_rate_read_bps); - case IO_WRITE_RATE: -- return SPACESHIP_NUMBER(p2->io_rate_write_bps, p1->io_rate_write_bps); -+ return SPACESHIP_NUMBER(p1->io_rate_write_bps, p2->io_rate_write_bps); - case IO_RATE: -- return SPACESHIP_NUMBER(p2->io_rate_read_bps + p2->io_rate_write_bps, p1->io_rate_read_bps + p1->io_rate_write_bps); -+ return SPACESHIP_NUMBER(p1->io_rate_read_bps + p1->io_rate_write_bps, p2->io_rate_read_bps + p2->io_rate_write_bps); - #ifdef HAVE_OPENVZ - case CTID: - return SPACESHIP_NULLSTR(p1->ctid, p2->ctid); - case VPID: -- return SPACESHIP_NUMBER(p2->vpid, p1->vpid); -+ return SPACESHIP_NUMBER(p1->vpid, p2->vpid); - #endif - #ifdef HAVE_VSERVER - case VXID: -- return SPACESHIP_NUMBER(p2->vxid, p1->vxid); -+ return SPACESHIP_NUMBER(p1->vxid, p2->vxid); - #endif - case CGROUP: - return SPACESHIP_NULLSTR(p1->cgroup, p2->cgroup); - case OOM: -- return SPACESHIP_NUMBER(p2->oom, p1->oom); -+ return SPACESHIP_NUMBER(p1->oom, p2->oom); - #ifdef HAVE_DELAYACCT - case PERCENT_CPU_DELAY: -- return SPACESHIP_NUMBER(p2->cpu_delay_percent, p1->cpu_delay_percent); -+ return SPACESHIP_NUMBER(p1->cpu_delay_percent, p2->cpu_delay_percent); - case PERCENT_IO_DELAY: -- return SPACESHIP_NUMBER(p2->blkio_delay_percent, p1->blkio_delay_percent); -+ return SPACESHIP_NUMBER(p1->blkio_delay_percent, p2->blkio_delay_percent); - case PERCENT_SWAP_DELAY: -- return SPACESHIP_NUMBER(p2->swapin_delay_percent, p1->swapin_delay_percent); -+ return SPACESHIP_NUMBER(p1->swapin_delay_percent, p2->swapin_delay_percent); - #endif - case IO_PRIORITY: - return SPACESHIP_NUMBER(LinuxProcess_effectiveIOPriority(p1), LinuxProcess_effectiveIOPriority(p2)); - case CTXT: -- return SPACESHIP_NUMBER(p2->ctxt_diff, p1->ctxt_diff); -+ return SPACESHIP_NUMBER(p1->ctxt_diff, p2->ctxt_diff); - case SECATTR: - return SPACESHIP_NULLSTR(p1->secattr, p2->secattr); - case PROC_COMM: { ---- a/openbsd/OpenBSDProcess.c -+++ b/openbsd/OpenBSDProcess.c -@@ -81,12 +81,14 @@ - .title = " MINFLT ", - .description = "Number of minor faults which have not required loading a memory page from disk", - .flags = 0, -+ .defaultSortDesc = true, - }, - [MAJFLT] = { - .name = "MAJFLT", - .title = " MAJFLT ", - .description = "Number of major faults which have required loading a memory page from disk", - .flags = 0, -+ .defaultSortDesc = true, - }, - [PRIORITY] = { - .name = "PRIORITY", -@@ -117,12 +119,14 @@ - .title = " VIRT ", - .description = "Total program size in virtual memory", - .flags = 0, -+ .defaultSortDesc = true, - }, - [M_RESIDENT] = { - .name = "M_RESIDENT", - .title = " RES ", - .description = "Resident set size, size of the text and data sections, plus stack usage", - .flags = 0, -+ .defaultSortDesc = true, - }, - [ST_UID] = { - .name = "ST_UID", -@@ -135,18 +139,21 @@ - .title = "CPU% ", - .description = "Percentage of the CPU time the process used in the last sampling", - .flags = 0, -+ .defaultSortDesc = true, - }, - [PERCENT_NORM_CPU] = { - .name = "PERCENT_NORM_CPU", - .title = "NCPU%", - .description = "Normalized percentage of the CPU time the process used in the last sampling (normalized by cpu count)", - .flags = 0, -+ .defaultSortDesc = true, - }, - [PERCENT_MEM] = { - .name = "PERCENT_MEM", - .title = "MEM% ", - .description = "Percentage of the memory the process is using, based on resident memory size", - .flags = 0, -+ .defaultSortDesc = true, - }, - [USER] = { - .name = "USER", -@@ -159,6 +166,7 @@ - .title = " TIME+ ", - .description = "Total time the process has spent in user and system time", - .flags = 0, -+ .defaultSortDesc = true, - }, - [NLWP] = { - .name = "NLWP", ---- a/solaris/SolarisProcess.c -+++ b/solaris/SolarisProcess.c -@@ -28,20 +28,20 @@ - [SESSION] = { .name = "SESSION", .title = "SID", .description = "Process's session ID", .flags = 0, .pidColumn = true, }, - [TTY_NR] = { .name = "TTY_NR", .title = " TTY ", .description = "Controlling terminal", .flags = 0, }, - [TPGID] = { .name = "TPGID", .title = "TPGID", .description = "Process ID of the fg process group of the controlling terminal", .flags = 0, .pidColumn = true, }, -- [MINFLT] = { .name = "MINFLT", .title = " MINFLT ", .description = "Number of minor faults which have not required loading a memory page from disk", .flags = 0, }, -- [MAJFLT] = { .name = "MAJFLT", .title = " MAJFLT ", .description = "Number of major faults which have required loading a memory page from disk", .flags = 0, }, -+ [MINFLT] = { .name = "MINFLT", .title = " MINFLT ", .description = "Number of minor faults which have not required loading a memory page from disk", .flags = 0, .defaultSortDesc = true, }, -+ [MAJFLT] = { .name = "MAJFLT", .title = " MAJFLT ", .description = "Number of major faults which have required loading a memory page from disk", .flags = 0, .defaultSortDesc = true, }, - [PRIORITY] = { .name = "PRIORITY", .title = "PRI ", .description = "Kernel's internal priority for the process", .flags = 0, }, - [NICE] = { .name = "NICE", .title = " NI ", .description = "Nice value (the higher the value, the more it lets other processes take priority)", .flags = 0, }, - [STARTTIME] = { .name = "STARTTIME", .title = "START ", .description = "Time the process was started", .flags = 0, }, - [PROCESSOR] = { .name = "PROCESSOR", .title = "CPU ", .description = "Id of the CPU the process last executed on", .flags = 0, }, -- [M_VIRT] = { .name = "M_VIRT", .title = " VIRT ", .description = "Total program size in virtual memory", .flags = 0, }, -- [M_RESIDENT] = { .name = "M_RESIDENT", .title = " RES ", .description = "Resident set size, size of the text and data sections, plus stack usage", .flags = 0, }, -+ [M_VIRT] = { .name = "M_VIRT", .title = " VIRT ", .description = "Total program size in virtual memory", .flags = 0, .defaultSortDesc = true, }, -+ [M_RESIDENT] = { .name = "M_RESIDENT", .title = " RES ", .description = "Resident set size, size of the text and data sections, plus stack usage", .flags = 0, .defaultSortDesc = true, }, - [ST_UID] = { .name = "ST_UID", .title = " UID ", .description = "User ID of the process owner", .flags = 0, }, -- [PERCENT_CPU] = { .name = "PERCENT_CPU", .title = "CPU% ", .description = "Percentage of the CPU time the process used in the last sampling", .flags = 0, }, -- [PERCENT_NORM_CPU] = { .name = "PERCENT_NORM_CPU", .title = "NCPU%", .description = "Normalized percentage of the CPU time the process used in the last sampling (normalized by cpu count)", .flags = 0, }, -- [PERCENT_MEM] = { .name = "PERCENT_MEM", .title = "MEM% ", .description = "Percentage of the memory the process is using, based on resident memory size", .flags = 0, }, -+ [PERCENT_CPU] = { .name = "PERCENT_CPU", .title = "CPU% ", .description = "Percentage of the CPU time the process used in the last sampling", .flags = 0, .defaultSortDesc = true, }, -+ [PERCENT_NORM_CPU] = { .name = "PERCENT_NORM_CPU", .title = "NCPU%", .description = "Normalized percentage of the CPU time the process used in the last sampling (normalized by cpu count)", .flags = 0, .defaultSortDesc = true, }, -+ [PERCENT_MEM] = { .name = "PERCENT_MEM", .title = "MEM% ", .description = "Percentage of the memory the process is using, based on resident memory size", .flags = 0, .defaultSortDesc = true, }, - [USER] = { .name = "USER", .title = "USER ", .description = "Username of the process owner (or user ID if name cannot be determined)", .flags = 0, }, -- [TIME] = { .name = "TIME", .title = " TIME+ ", .description = "Total time the process has spent in user and system time", .flags = 0, }, -+ [TIME] = { .name = "TIME", .title = " TIME+ ", .description = "Total time the process has spent in user and system time", .flags = 0, .defaultSortDesc = true, }, - [NLWP] = { .name = "NLWP", .title = "NLWP ", .description = "Number of threads in the process", .flags = 0, }, - [TGID] = { .name = "TGID", .title = "TGID", .description = "Thread group ID (i.e. process ID)", .flags = 0, .pidColumn = true, }, - [ZONEID] = { .name = "ZONEID", .title = "ZONEID", .description = "Zone ID", .flags = 0, .pidColumn = true, }, ---- a/unsupported/UnsupportedProcess.c -+++ b/unsupported/UnsupportedProcess.c -@@ -19,20 +19,20 @@ - [SESSION] = { .name = "SESSION", .title = "SID", .description = "Process's session ID", .flags = 0, .pidColumn = true, }, - [TTY_NR] = { .name = "TTY_NR", .title = " TTY ", .description = "Controlling terminal", .flags = 0, }, - [TPGID] = { .name = "TPGID", .title = "TPGID", .description = "Process ID of the fg process group of the controlling terminal", .flags = 0, .pidColumn = true, }, -- [MINFLT] = { .name = "MINFLT", .title = " MINFLT ", .description = "Number of minor faults which have not required loading a memory page from disk", .flags = 0, }, -- [MAJFLT] = { .name = "MAJFLT", .title = " MAJFLT ", .description = "Number of major faults which have required loading a memory page from disk", .flags = 0, }, -+ [MINFLT] = { .name = "MINFLT", .title = " MINFLT ", .description = "Number of minor faults which have not required loading a memory page from disk", .flags = 0, .defaultSortDesc = true,}, -+ [MAJFLT] = { .name = "MAJFLT", .title = " MAJFLT ", .description = "Number of major faults which have required loading a memory page from disk", .flags = 0, .defaultSortDesc = true, }, - [PRIORITY] = { .name = "PRIORITY", .title = "PRI ", .description = "Kernel's internal priority for the process", .flags = 0, }, - [NICE] = { .name = "NICE", .title = " NI ", .description = "Nice value (the higher the value, the more it lets other processes take priority)", .flags = 0, }, - [STARTTIME] = { .name = "STARTTIME", .title = "START ", .description = "Time the process was started", .flags = 0, }, - - [PROCESSOR] = { .name = "PROCESSOR", .title = "CPU ", .description = "Id of the CPU the process last executed on", .flags = 0, }, -- [M_VIRT] = { .name = "M_VIRT", .title = " VIRT ", .description = "Total program size in virtual memory", .flags = 0, }, -- [M_RESIDENT] = { .name = "M_RESIDENT", .title = " RES ", .description = "Resident set size, size of the text and data sections, plus stack usage", .flags = 0, }, -+ [M_VIRT] = { .name = "M_VIRT", .title = " VIRT ", .description = "Total program size in virtual memory", .flags = 0, .defaultSortDesc = true, }, -+ [M_RESIDENT] = { .name = "M_RESIDENT", .title = " RES ", .description = "Resident set size, size of the text and data sections, plus stack usage", .flags = 0, .defaultSortDesc = true, }, - [ST_UID] = { .name = "ST_UID", .title = " UID ", .description = "User ID of the process owner", .flags = 0, }, -- [PERCENT_CPU] = { .name = "PERCENT_CPU", .title = "CPU% ", .description = "Percentage of the CPU time the process used in the last sampling", .flags = 0, }, -- [PERCENT_MEM] = { .name = "PERCENT_MEM", .title = "MEM% ", .description = "Percentage of the memory the process is using, based on resident memory size", .flags = 0, }, -+ [PERCENT_CPU] = { .name = "PERCENT_CPU", .title = "CPU% ", .description = "Percentage of the CPU time the process used in the last sampling", .flags = 0, .defaultSortDesc = true, }, -+ [PERCENT_MEM] = { .name = "PERCENT_MEM", .title = "MEM% ", .description = "Percentage of the memory the process is using, based on resident memory size", .flags = 0, .defaultSortDesc = true, }, - [USER] = { .name = "USER", .title = "USER ", .description = "Username of the process owner (or user ID if name cannot be determined)", .flags = 0, }, -- [TIME] = { .name = "TIME", .title = " TIME+ ", .description = "Total time the process has spent in user and system time", .flags = 0, }, -+ [TIME] = { .name = "TIME", .title = " TIME+ ", .description = "Total time the process has spent in user and system time", .flags = 0, .defaultSortDesc = true, }, - [NLWP] = { .name = "NLWP", .title = "NLWP ", .description = "Number of threads in the process", .flags = 0, }, - [TGID] = { .name = "TGID", .title = "TGID", .description = "Thread group ID (i.e. process ID)", .flags = 0, .pidColumn = true, }, - }; diff --git a/debian/patches/0006-fix-infoscreen-mouse.patch b/debian/patches/0006-fix-infoscreen-mouse.patch deleted file mode 100644 index e917fbc..0000000 --- a/debian/patches/0006-fix-infoscreen-mouse.patch +++ /dev/null @@ -1,41 +0,0 @@ -Backport Infoscreen mouse improvements ---- a/InfoScreen.c -+++ b/InfoScreen.c -@@ -109,12 +109,21 @@ - MEVENT mevent; - int ok = getmouse(&mevent); - if (ok == OK) { -- if (mevent.y >= panel->y && mevent.y < LINES - 1) { -- Panel_setSelected(panel, mevent.y - panel->y + panel->scrollV); -- ch = 0; -- } else if (mevent.y == LINES - 1) { -- ch = IncSet_synthesizeEvent(this->inc, mevent.x); -+ if (mevent.bstate & BUTTON1_RELEASED) { -+ if (mevent.y >= panel->y && mevent.y < LINES - 1) { -+ Panel_setSelected(panel, mevent.y - panel->y + panel->scrollV - 1); -+ ch = 0; -+ } else if (mevent.y == LINES - 1) { -+ ch = IncSet_synthesizeEvent(this->inc, mevent.x); -+ } - } -+ #if NCURSES_MOUSE_VERSION > 1 -+ else if (mevent.bstate & BUTTON4_PRESSED) { -+ ch = KEY_WHEELUP; -+ } else if (mevent.bstate & BUTTON5_PRESSED) { -+ ch = KEY_WHEELDOWN; -+ } -+ #endif - } - } - ---- a/TraceScreen.c -+++ b/TraceScreen.c -@@ -42,7 +42,7 @@ - this->tracing = true; - FunctionBar* fuBar = FunctionBar_new(TraceScreenFunctions, TraceScreenKeys, TraceScreenEvents); - CRT_disableDelay(); -- return (TraceScreen*) InfoScreen_init(&this->super, process, fuBar, LINES - 2, ""); -+ return (TraceScreen*) InfoScreen_init(&this->super, process, fuBar, LINES - 2, " "); - } - - void TraceScreen_delete(Object* cast) { diff --git a/debian/patches/0007-fix-exit-in-signal-handler.patch b/debian/patches/0007-fix-exit-in-signal-handler.patch deleted file mode 100644 index b341d19..0000000 --- a/debian/patches/0007-fix-exit-in-signal-handler.patch +++ /dev/null @@ -1,21 +0,0 @@ -Backport of bd694c0ce60a60e29dc4ae22923f251fbd196332 -From: =?UTF-8?q?Christian=20G=C3=B6ttsche?= -Date: Fri, 29 Jan 2021 12:38:30 +0100 -Subject: [PATCH] Do not call exit(3) in signal handler - -Call safe _exit(2) instead ---- - CRT.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/CRT.c -+++ b/CRT.c -@@ -621,7 +621,7 @@ - static void CRT_handleSIGTERM(int sgn) { - (void) sgn; - CRT_done(); -- exit(0); -+ _exit(0); - } - - #ifdef HAVE_SETUID_ENABLED diff --git a/debian/patches/0008-add-qterm-keyboard-code.patch b/debian/patches/0008-add-qterm-keyboard-code.patch deleted file mode 100644 index 0e52e28..0000000 --- a/debian/patches/0008-add-qterm-keyboard-code.patch +++ /dev/null @@ -1,13 +0,0 @@ -Partial backport of 06b5828dc4649bc23197712fe17b2d4e8d0adbbe - -Fix QTerminal keycode for Shift-F3 (previous in search) ---- a/CRT.c -+++ b/CRT.c -@@ -698,6 +698,7 @@ - define_key("\033OQ", KEY_F(2)); - define_key("\033OR", KEY_F(3)); - define_key("\033OS", KEY_F(4)); -+ define_key("\033O2R", KEY_F(15)); - define_key("\033[11~", KEY_F(1)); - define_key("\033[12~", KEY_F(2)); - define_key("\033[13~", KEY_F(3)); diff --git a/debian/patches/0009-hardening.patch b/debian/patches/0009-hardening.patch deleted file mode 100644 index e2b4638..0000000 --- a/debian/patches/0009-hardening.patch +++ /dev/null @@ -1,18 +0,0 @@ -Backport of commit 12208af7773775bf637ee2f8a07fdd6300238fc1 -Author: Benny Baumann -Date: Mon Feb 1 22:09:39 2021 +0100 - - DiD: Avoid negative cmdlineBasenameOffset - ---- a/linux/LinuxProcess.c -+++ b/linux/LinuxProcess.c -@@ -202,6 +202,9 @@ - size_t tokenLen; - const size_t commLen = strlen(comm); - -+ if (cmdlineBasenameOffset < 0) -+ return false; -+ - for (const char *token = cmdline + cmdlineBasenameOffset; *token; ) { - for (tokenBase = token; *token && *token != '\n'; ++token) { - if (*token == '/') { diff --git a/debian/patches/0010-fix-sort-timeout.patch b/debian/patches/0010-fix-sort-timeout.patch deleted file mode 100644 index 0822589..0000000 --- a/debian/patches/0010-fix-sort-timeout.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 12f5f06e8855b653c98b75de55a45098bb468d57 Mon Sep 17 00:00:00 2001 -From: Daniel Lange -Date: Mon, 1 Feb 2021 16:02:31 +0100 -Subject: [PATCH] Check for sortTimeout to not run towards -inf - -Seems to happen on Mac OS "Big Sur" (~forced application sleep) -Partial fix for #510 ---- - ScreenManager.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/ScreenManager.c b/ScreenManager.c -index 64af535b..df5fed4f 100644 ---- a/ScreenManager.c -+++ b/ScreenManager.c -@@ -202,7 +202,8 @@ void ScreenManager_run(ScreenManager* this, Panel** lastFocus, int* lastKey) { - } - } - if (ch == ERR) { -- sortTimeout--; -+ if (sortTimeout > 0) -+ sortTimeout--; - if (prevCh == ch && !timedOut) { - closeTimeout++; - if (closeTimeout == 100) { diff --git a/debian/patches/0011-improve-setup-for-many-cpu-systems.patch b/debian/patches/0011-improve-setup-for-many-cpu-systems.patch deleted file mode 100644 index bae69f5..0000000 --- a/debian/patches/0011-improve-setup-for-many-cpu-systems.patch +++ /dev/null @@ -1,47 +0,0 @@ -From 8fb51627b2e116d7957f57f27aff31ea726d7d86 Mon Sep 17 00:00:00 2001 -From: Daniel Lange -Date: Tue, 2 Feb 2021 10:32:11 +0100 -Subject: [PATCH] Improve initial setup for systems with many CPUs - -Resolves #435 ---- - Settings.c | 19 +++++++++++++++++-- - 1 file changed, 17 insertions(+), 2 deletions(-) - -diff --git a/Settings.c b/Settings.c -index 6c8f8894..f12a51f4 100644 ---- a/Settings.c -+++ b/Settings.c -@@ -55,7 +55,7 @@ static void Settings_readMeterModes(Settings* this, const char* line, int column - - static void Settings_defaultMeters(Settings* this, int initialCpuCount) { - int sizes[] = { 3, 3 }; -- if (initialCpuCount > 4) { -+ if (initialCpuCount > 4 && initialCpuCount <= 128) { - sizes[1]++; - } - for (int i = 0; i < 2; i++) { -@@ -64,7 +64,22 @@ static void Settings_defaultMeters(Settings* this, int initialCpuCount) { - this->columns[i].len = sizes[i]; - } - int r = 0; -- if (initialCpuCount > 8) { -+ -+ if (initialCpuCount > 128) { -+ // Just show the average, ricers need to config for impressive screenshots -+ this->columns[0].names[0] = xStrdup("CPU"); -+ this->columns[0].modes[0] = BAR_METERMODE; -+ } else if (initialCpuCount > 32) { -+ this->columns[0].names[0] = xStrdup("LeftCPUs8"); -+ this->columns[0].modes[0] = BAR_METERMODE; -+ this->columns[1].names[r] = xStrdup("RightCPUs8"); -+ this->columns[1].modes[r++] = BAR_METERMODE; -+ } else if (initialCpuCount > 16) { -+ this->columns[0].names[0] = xStrdup("LeftCPUs4"); -+ this->columns[0].modes[0] = BAR_METERMODE; -+ this->columns[1].names[r] = xStrdup("RightCPUs4"); -+ this->columns[1].modes[r++] = BAR_METERMODE; -+ } else if (initialCpuCount > 8) { - this->columns[0].names[0] = xStrdup("LeftCPUs2"); - this->columns[0].modes[0] = BAR_METERMODE; - this->columns[1].names[r] = xStrdup("RightCPUs2"); diff --git a/debian/patches/0012-fix-forced-sort-order.patch b/debian/patches/0012-fix-forced-sort-order.patch deleted file mode 100644 index fcc667f..0000000 --- a/debian/patches/0012-fix-forced-sort-order.patch +++ /dev/null @@ -1,22 +0,0 @@ -From e86acd6893c17165b8b889bea122a283b9c09fe7 Mon Sep 17 00:00:00 2001 -From: Daniel Lange -Date: Sun, 7 Feb 2021 13:46:57 +0100 -Subject: [PATCH] Remove force sort order to ASC when returning to tree mode - -Bug found by BenBE via IRC ---- - Action.c | 3 --- - 1 file changed, 3 deletions(-) - ---- a/Action.c -+++ b/Action.c -@@ -227,9 +227,6 @@ - - static Htop_Reaction actionToggleTreeView(State* st) { - st->settings->treeView = !st->settings->treeView; -- if (st->settings->treeView) { -- st->settings->treeDirection = 1; -- } - - ProcessList_expandTree(st->pl); - return HTOP_REFRESH | HTOP_SAVE_SETTINGS | HTOP_KEEP_FOLLOWING | HTOP_REDRAW_BAR | HTOP_UPDATE_PANELHDR; diff --git a/debian/patches/0013-fix-btime-zero.patch b/debian/patches/0013-fix-btime-zero.patch deleted file mode 100644 index 451a058..0000000 --- a/debian/patches/0013-fix-btime-zero.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 7433bf4b18278080fb2ac22c5828490883066570 Mon Sep 17 00:00:00 2001 -From: Nathan Scott -Date: Mon, 15 Feb 2021 19:32:55 +1100 -Subject: [PATCH] Correctly detect failure to initialize boottime - -A zero value for btime (boottime) in /proc/stat is a -real situation that happens, so deal with this case. - -Resolves https://github.com/htop-dev/htop/issues/527 ---- - linux/LinuxProcessList.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - ---- a/linux/LinuxProcessList.c -+++ b/linux/LinuxProcessList.c -@@ -64,7 +64,7 @@ - # define O_PATH 010000000 - #endif - --static long long btime; -+static long long btime = -1; - - static long jiffy; - -@@ -240,7 +240,7 @@ - } - fclose(statfile); - -- if (!btime) -+ if (btime == -1) - CRT_fatalError("No btime in " PROCSTATFILE); - } - diff --git a/debian/patches/0014-fix-zfs-coloring.patch b/debian/patches/0014-fix-zfs-coloring.patch deleted file mode 100644 index df913c9..0000000 --- a/debian/patches/0014-fix-zfs-coloring.patch +++ /dev/null @@ -1,37 +0,0 @@ -Author: Daniel Lange -Date: Tue Feb 9 20:25:57 2021 +0100 - - Make ZFS Meter "Unavailable" text match others -> FAILED_READ coloring - -Author: Ross Williams -Date: Tue Feb 9 16:59:03 2021 +0000 - - [..] correctly color ZFS ARC ratio - ---- a/zfs/ZfsArcMeter.c -+++ b/zfs/ZfsArcMeter.c -@@ -72,7 +72,7 @@ - RichString_appendAscii(out, CRT_colors[ZFS_OTHER], buffer); - } else { - RichString_writeAscii(out, CRT_colors[METER_TEXT], " "); -- RichString_appendAscii(out, CRT_colors[FAILED_SEARCH], "Unavailable"); -+ RichString_appendAscii(out, CRT_colors[FAILED_READ], "Unavailable"); - } - } - ---- a/zfs/ZfsCompressedArcMeter.c -+++ b/zfs/ZfsCompressedArcMeter.c -@@ -54,11 +54,11 @@ - RichString_appendAscii(out, CRT_colors[METER_VALUE], buffer); - RichString_appendAscii(out, CRT_colors[METER_TEXT], " Compressed, "); - ZfsCompressedArcMeter_printRatioString(this, buffer, sizeof(buffer)); -- RichString_appendAscii(out, CRT_colors[METER_VALUE], buffer); -+ RichString_appendAscii(out, CRT_colors[ZFS_RATIO], buffer); - RichString_appendAscii(out, CRT_colors[METER_TEXT], " Ratio"); - } else { - RichString_writeAscii(out, CRT_colors[METER_TEXT], " "); -- RichString_appendAscii(out, CRT_colors[FAILED_SEARCH], "Compression Unavailable"); -+ RichString_appendAscii(out, CRT_colors[FAILED_READ], "Compression Unavailable"); - } - } - diff --git a/debian/patches/0015-clean-infoscreen-before-new-scan.patch b/debian/patches/0015-clean-infoscreen-before-new-scan.patch deleted file mode 100644 index 8ba234c..0000000 --- a/debian/patches/0015-clean-infoscreen-before-new-scan.patch +++ /dev/null @@ -1,35 +0,0 @@ -From d8d83031d9d42d64e89388c842056031c6dad27c Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?=C3=98ystein=20Hi=C3=A5sen?= -Date: Mon, 15 Feb 2021 20:32:01 +0100 -Subject: [PATCH] InfoScreen: Remove old lines before scanning again - ---- - InfoScreen.c | 8 ++++++-- - 1 file changed, 6 insertions(+), 2 deletions(-) - ---- a/InfoScreen.c -+++ b/InfoScreen.c -@@ -145,8 +145,10 @@ - break; - case KEY_F(5): - clear(); -- if (As_InfoScreen(this)->scan) -+ if (As_InfoScreen(this)->scan) { -+ Vector_prune(this->lines); - InfoScreen_scan(this); -+ } - - InfoScreen_draw(this); - break; -@@ -161,8 +163,10 @@ - break; - case KEY_RESIZE: - Panel_resize(panel, COLS, LINES - 2); -- if (As_InfoScreen(this)->scan) -+ if (As_InfoScreen(this)->scan) { -+ Vector_prune(this->lines); - InfoScreen_scan(this); -+ } - - InfoScreen_draw(this); - break; diff --git a/debian/patches/0016-fix-div-by-zero-zfscompressedarcmeter.patch b/debian/patches/0016-fix-div-by-zero-zfscompressedarcmeter.patch deleted file mode 100644 index a548469..0000000 --- a/debian/patches/0016-fix-div-by-zero-zfscompressedarcmeter.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 099dab88be5a7a1c9207e7bc7116618b7108f851 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Christian=20G=C3=B6ttsche?= -Date: Thu, 22 Apr 2021 17:12:02 +0200 -Subject: [PATCH] ZfsCompressedArcMeter: avoid division by 0 - -On systems not using ZFS `this->values[0]` is zero. ---- - zfs/ZfsCompressedArcMeter.c | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - ---- a/zfs/ZfsCompressedArcMeter.c -+++ b/zfs/ZfsCompressedArcMeter.c -@@ -33,7 +33,11 @@ - } - - static void ZfsCompressedArcMeter_printRatioString(const Meter* this, char* buffer, size_t size) { -- xSnprintf(buffer, size, "%.2f:1", this->total / this->values[0]); -+ if (this->values[0] > 0) { -+ xSnprintf(buffer, size, "%.2f:1", this->total / this->values[0]); -+ } else { -+ xSnprintf(buffer, size, "N/A"); -+ } - } - - static void ZfsCompressedArcMeter_updateValues(Meter* this, char* buffer, size_t size) { diff --git a/debian/patches/series b/debian/patches/series deleted file mode 100644 index 9ab8f3d..0000000 --- a/debian/patches/series +++ /dev/null @@ -1,16 +0,0 @@ -0001-reset-cached-values.patch -0002-fix-ncurses-field-padding.patch -0003-fix-hurd-build.patch -0004-fix-kfreebsd-build.patch -0005-fix-sorting.patch -0006-fix-infoscreen-mouse.patch -0007-fix-exit-in-signal-handler.patch -0008-add-qterm-keyboard-code.patch -0009-hardening.patch -0010-fix-sort-timeout.patch -0011-improve-setup-for-many-cpu-systems.patch -0012-fix-forced-sort-order.patch -0013-fix-btime-zero.patch -0014-fix-zfs-coloring.patch -0015-clean-infoscreen-before-new-scan.patch -0016-fix-div-by-zero-zfscompressedarcmeter.patch -- cgit v1.2.3