aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Lange <DLange@git.local>2021-09-21 08:54:37 +0200
committerDaniel Lange <DLange@git.local>2021-09-21 08:56:02 +0200
commit4582ae87a0a0675d0756b93dcda052c533cd2c96 (patch)
tree8b33f325e3347c5eea8f53fd74d5efb1ca8a556d
parenta2b6942d15d220bb0518003d4f818a922d88e9f9 (diff)
downloaddebian_htop-4582ae87a0a0675d0756b93dcda052c533cd2c96.tar.gz
debian_htop-4582ae87a0a0675d0756b93dcda052c533cd2c96.tar.bz2
debian_htop-4582ae87a0a0675d0756b93dcda052c533cd2c96.zip
Drop Debian patches accumulated over the 3.0.x-x cycle
-rw-r--r--debian/changelog7
-rw-r--r--debian/patches/0001-reset-cached-values.patch21
-rw-r--r--debian/patches/0002-fix-ncurses-field-padding.patch87
-rw-r--r--debian/patches/0003-fix-hurd-build.patch71
-rw-r--r--debian/patches/0004-fix-kfreebsd-build.patch25
-rw-r--r--debian/patches/0005-fix-sorting.patch540
-rw-r--r--debian/patches/0006-fix-infoscreen-mouse.patch41
-rw-r--r--debian/patches/0007-fix-exit-in-signal-handler.patch21
-rw-r--r--debian/patches/0008-add-qterm-keyboard-code.patch13
-rw-r--r--debian/patches/0009-hardening.patch18
-rw-r--r--debian/patches/0010-fix-sort-timeout.patch25
-rw-r--r--debian/patches/0011-improve-setup-for-many-cpu-systems.patch47
-rw-r--r--debian/patches/0012-fix-forced-sort-order.patch22
-rw-r--r--debian/patches/0013-fix-btime-zero.patch33
-rw-r--r--debian/patches/0014-fix-zfs-coloring.patch37
-rw-r--r--debian/patches/0015-clean-infoscreen-before-new-scan.patch35
-rw-r--r--debian/patches/0016-fix-div-by-zero-zfscompressedarcmeter.patch25
-rw-r--r--debian/patches/series16
18 files changed, 7 insertions, 1077 deletions
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 <DLange@debian.org> 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 <DLange@git.local>
-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 <dirent.h>
- #include <fcntl.h>
- #include <inttypes.h>
--#include <limits.h>
- #include <math.h>
- #include <stdint.h>
- #include <stdio.h>
---- a/linux/Platform.h
-+++ b/linux/Platform.h
-@@ -7,6 +7,7 @@
- in the source distribution for its full text.
- */
-
-+#include <limits.h>
- #include <stdbool.h>
- #include <sys/types.h>
-
-@@ -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 <stdbool.h>
- #include <stdio.h>
- #include <unistd.h>
--#include <linux/magic.h>
- #include <sys/statfs.h>
- #include <sys/statvfs.h>
-
-@@ -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 <assert.h>
---- 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 <devstat.h>
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?= <cgzones@googlemail.com>
-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 <BenBE@geshi.org>
-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 <DLange@git.local>
-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 <DLange@git.local>
-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 <DLange@git.local>
-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 <nathans@redhat.com>
-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 <DLange@git.local>
-Date: Tue Feb 9 20:25:57 2021 +0100
-
- Make ZFS Meter "Unavailable" text match others -> FAILED_READ coloring
-
-Author: Ross Williams <ross@ross-williams.net>
-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?= <oystein.hiaasen@gmail.com>
-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?= <cgzones@googlemail.com>
-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

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