Christian Göttsche
18b1e9fba9
Do not drop qualifier in cast
...
ListItem.c:73:33: warning: cast from 'const void *' to 'struct ListItem_ *' drops const qualifier [-Wcast-qual]
ListItem* obj1 = (ListItem*) cast1;
^
ListItem.c:74:33: warning: cast from 'const void *' to 'struct ListItem_ *' drops const qualifier [-Wcast-qual]
ListItem* obj2 = (ListItem*) cast2;
^
Process.c:434:28: warning: cast from 'const void *' to 'struct Process_ *' drops const qualifier [-Wcast-qual]
Process* p1 = (Process*)v1;
^
Process.c:435:28: warning: cast from 'const void *' to 'struct Process_ *' drops const qualifier [-Wcast-qual]
Process* p2 = (Process*)v2;
^
Process.c:441:36: warning: cast from 'const void *' to 'struct Process_ *' drops const qualifier [-Wcast-qual]
Settings *settings = ((Process*)v1)->settings;
^
Process.c:443:22: warning: cast from 'const void *' to 'struct Process_ *' drops const qualifier [-Wcast-qual]
p1 = (Process*)v1;
^
Process.c:444:22: warning: cast from 'const void *' to 'struct Process_ *' drops const qualifier [-Wcast-qual]
p2 = (Process*)v2;
^
Process.c:446:22: warning: cast from 'const void *' to 'struct Process_ *' drops const qualifier [-Wcast-qual]
p2 = (Process*)v1;
^
Process.c:447:22: warning: cast from 'const void *' to 'struct Process_ *' drops const qualifier [-Wcast-qual]
p1 = (Process*)v2;
^
AffinityPanel.c:37:16: warning: cast from 'const char *' to 'void *' drops const qualifier [-Wcast-qual]
free((void*)this->text);
^
AffinityPanel.c:39:19: warning: cast from 'const char *' to 'void *' drops const qualifier [-Wcast-qual]
free((void*)this->indent);
^
linux/LinuxProcess.c:294:36: warning: cast from 'const void *' to 'struct Process_ *' drops const qualifier [-Wcast-qual]
Settings *settings = ((Process*)v1)->settings;
^
linux/LinuxProcess.c:296:27: warning: cast from 'const void *' to 'struct LinuxProcess_ *' drops const qualifier [-Wcast-qual]
p1 = (LinuxProcess*)v1;
^
linux/LinuxProcess.c:297:27: warning: cast from 'const void *' to 'struct LinuxProcess_ *' drops const qualifier [-Wcast-qual]
p2 = (LinuxProcess*)v2;
^
linux/LinuxProcess.c:299:27: warning: cast from 'const void *' to 'struct LinuxProcess_ *' drops const qualifier [-Wcast-qual]
p2 = (LinuxProcess*)v1;
^
linux/LinuxProcess.c:300:27: warning: cast from 'const void *' to 'struct LinuxProcess_ *' drops const qualifier [-Wcast-qual]
p1 = (LinuxProcess*)v2;
^
linux/LinuxProcessList.c:62:32: warning: cast from 'const void *' to 'struct TtyDriver_ *' drops const qualifier [-Wcast-qual]
TtyDriver* a = (TtyDriver*) va;
^
linux/LinuxProcessList.c:63:32: warning: cast from 'const void *' to 'struct TtyDriver_ *' drops const qualifier [-Wcast-qual]
TtyDriver* b = (TtyDriver*) vb;
^
linux/Battery.c:130:21: warning: cast from 'const char *' to 'char *' drops const qualifier [-Wcast-qual]
free((char *) isOnline);
^
linux/Battery.c:197:26: warning: cast from 'const char *' to 'char *' drops const qualifier [-Wcast-qual]
xSnprintf((char *) filePath, sizeof filePath, SYS_POWERSUPPLY_DIR "/%s/type", entryName);
^
linux/Battery.c:209:29: warning: cast from 'const char *' to 'char *' drops const qualifier [-Wcast-qual]
xSnprintf((char *) filePath, sizeof filePath, SYS_POWERSUPPLY_DIR "/%s/uevent", entryName);
^
linux/Battery.c:262:29: warning: cast from 'const char *' to 'char *' drops const qualifier [-Wcast-qual]
xSnprintf((char *) filePath, sizeof filePath, SYS_POWERSUPPLY_DIR "/%s/online", entryName);
^
2020-09-24 20:14:17 +02:00
Christian Göttsche
6a03cd237a
Avoid warning about unreachable break statement
...
htop.c:112:13: warning: 'break' will never be executed [-Wunreachable-code-break]
break;
^~~~~
htop.c:109:13: warning: 'break' will never be executed [-Wunreachable-code-break]
break;
^~~~~
2020-09-24 20:14:17 +02:00
Christian Göttsche
cd1ba1422b
Avoid bad function cast warning
...
linux/Platform.c:142:17: warning: cast from function call of type 'double' to non-matching type 'int' [-Wbad-function-cast]
return (int) floor(uptime);
^~~~~~~~~~~~~
2020-09-24 20:14:17 +02:00
Christian Göttsche
4a1f3fca96
Drop unnecessary usage of comma operator
2020-09-24 20:14:17 +02:00
Christian Göttsche
4296e74ada
Include prototype in Battery implementation
...
linux/Battery.c:291:6: warning: no previous prototype for function 'Battery_getData' [-Wmissing-prototypes]
void Battery_getData(double* level, ACPresence* isOnAC) {
^
2020-09-24 20:14:17 +02:00
Christian Göttsche
ce0fd5f6d8
Drop unused macros
2020-09-24 20:14:17 +02:00
Christian Göttsche
edf1b10d2c
Read CPU frequency from sysfs by default
...
Use the more portable sysfs node /sys/devices/system/cpu/cpuX/cpufreq/scaling_cur_freq
to get the CPU frequency.
In case of an error fall back to /proc/cpuinfo .
Also use a fixed width of 4 for the frequency to avoid position jumps
in case the frequency moves in the range 900-1100 MHz.
2020-09-24 20:11:28 +02:00
Christian Göttsche
f4e1f4619f
Add DeepCode inline suppression
...
We just want a non-NUll pointer in the matching pid hashtable.
The pointer is not dereferenced anyways.
2020-09-24 20:04:47 +02:00
Christian Göttsche
594409f299
Add DeepCode inline suppression
...
commsize is bounded by the allocated length passed in by commLen, saved
into commLenIn
2020-09-24 19:56:30 +02:00
ryenus
f4bb50294a
show selected command wrapped in a separate window
...
For a process with a very long command, especially with many long
command line arguments, inspecting the command and its arguments could
become inconvenient.
Meanwhile htop supports the concept of "screen", or window, which is
extended here to create a dedicated "CommandScreen", making it possible
to display the command of the selected process in a separate window
meanwhile being wrapped into multiple lines.
Another benefit of using a command screen is, the user can navigate
through the wrapped lines of the command and perform actions like
searching and filtering.
2020-09-24 19:22:25 +02:00
Christian Göttsche
5233817122
Avoid unsigned integer overflow
...
unsigned integer overflows are well-defined, but they might point to a counting issue.
Having the code free of unsigned overflows makes it easier to spot potential bugs.
Action.c:332:27: runtime error: implicit conversion from type 'int' of value -1 (32-bit, signed) to type 'uid_t' (aka 'unsigned int') changed the value to 4294967295 (32-bit, unsigned)
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior Action.c:332:27 in
2020-09-24 18:06:59 +02:00
Benny Baumann
7ecea3d485
Use return value of CLAMP function
2020-09-24 18:06:36 +02:00
Benny Baumann
ba0fca1800
Add -Wfloat-equal to default build flags
2020-09-24 18:06:36 +02:00
Benny Baumann
321960bd96
Update delay accounting to use NAN on error
2020-09-24 18:06:36 +02:00
Benny Baumann
3c65d78d77
Update CPU freq display to use NAN on error
2020-09-24 18:06:36 +02:00
Benny Baumann
ebcf924643
Use threshold for display of guest/steal/irq meters
2020-09-24 18:06:36 +02:00
Benny Baumann
d0d3deb73c
Properly query sysconf settting and use NAN if unavailable
...
This also fixes an issue with time returned negative if sysconf(_SC_CLK_TCK) returned an error.
2020-09-24 18:06:36 +02:00
Benny Baumann
29ec115143
Update IO rate display to use NAN on error
2020-09-24 18:06:36 +02:00
Benny Baumann
47e2cefe02
Update battery API to use NAN on error
2020-09-24 18:06:36 +02:00
Christian Hesse
f805093589
align cpu id to right
2020-09-24 17:53:57 +02:00
Christian Göttsche
d2b3a7a375
Drop dead process fields
...
They are nowhere used.
2020-09-24 17:48:38 +02:00
Michael F. Schönitzer
c1b5201444
Consistent wording/formatting of field descriptions
2020-09-24 17:48:17 +02:00
Michael F. Schönitzer
83257744cc
Document M_PSS and M_PSSWP in man page
2020-09-24 17:48:17 +02:00
Michael F. Schönitzer
7844e06eb0
Document field M_SWAP in man page
2020-09-24 17:48:17 +02:00
Christian Göttsche
2565dd3c58
Drop dead code after break
2020-09-24 17:47:17 +02:00
Christian Göttsche
6b11738744
Avoid arithmetic on booleans
2020-09-23 19:09:11 +02:00
Christian Göttsche
f9966b5be3
Use checked allocation wrappers
2020-09-23 17:50:21 +02:00
Benny Baumann
e0e5997c53
Fix minor regression in number highlighting
...
Fixes #163
2020-09-21 14:10:07 +02:00
Christian Göttsche
eb260af6bf
Fix memory leak on cgroup read failure
2020-09-21 13:55:29 +02:00
senjan
2c933f210b
htop shows no used memory in Solaris zone
2020-09-21 13:54:45 +02:00
senjan
543286256e
htop crashes on Solaris 11.4 due to missing ZFS ARC kstats
2020-09-21 13:54:45 +02:00
Christian Göttsche
5ea13e7ea9
Add format attribute
2020-09-18 12:28:40 +02:00
Christian Göttsche
efb971f9df
Fail travis CI on compiler warnings
2020-09-18 12:28:40 +02:00
Christian Göttsche
475f729a36
Resolve unused variable on FreeBSD
2020-09-18 12:28:40 +02:00
Christian Göttsche
e719a85994
Mark noreturn functions
2020-09-18 12:28:40 +02:00
Christian Göttsche
b85a31415e
Avoid checking of undefined macros
...
These feature macros are either define or not defined at all at the
configure step.
2020-09-18 12:28:40 +02:00
Christian Göttsche
c3952e7c20
Use strict function prototypes
...
int foo(); declares a function taking any number of arguments.
2020-09-18 12:28:40 +02:00
Christian Göttsche
7107d1db0b
Refactor __attribute__ usage
...
Use internal macros for compatibility with non GNUC compilers.
2020-09-18 12:28:40 +02:00
Christian Göttsche
f4602f7b4e
Add some default compiler warnings
...
Compatible with gcc and clang.
2020-09-18 12:28:40 +02:00
Christian Göttsche
dd6500c7c7
Sort option in help message
2020-09-18 12:27:45 +02:00
Christian Göttsche
f6b0efded5
Convert short version option to capital V
...
v is generally used for enabling verbose mode
2020-09-18 12:27:45 +02:00
Christian Göttsche
f3b4e248a3
Drop unused variable
2020-09-18 12:22:18 +02:00
Michael F. Schönitzer
1061bd719a
Change option '-m' to '-M' for consistency of cli
...
`-m` was added as short option for `--no-mouse`, this is inconsistence
to the rest of the cli since otherwise the short options to disable a
feature are capital letters. Therefore this commit renames the option to
`-M`.
This commit also documents the option in the man page.
2020-09-18 12:04:21 +02:00
Benny Baumann
40441dca8e
Enhance highlighting of semi-large and large numbers
2020-09-17 22:08:13 +02:00
Christian Göttsche
c7568bc054
Fix memory leak in actionSetAffinity()
...
Call correct delete method for AffinityPanel
2020-09-17 22:04:11 +02:00
Christian Göttsche
71c068ad28
Free movingBar memory on exit
2020-09-17 22:04:11 +02:00
Christian Göttsche
8a849bc85a
Call character checking function with unsigned char
...
See https://wiki.sei.cmu.edu/confluence/display/c/STR37-C.+Arguments+to+character-handling+functions+must+be+representable+as+an+unsigned+char
2020-09-17 22:03:24 +02:00
Christian Göttsche
1f5bd5c4c8
Avoid modifying optarg
...
It might be working, but lets rather not modify getopt's global variable
`optarg`.
Also there is no need to call `getenv("USER")`, just use `geteuid()`.
2020-09-17 21:55:26 +02:00
Christian Göttsche
5d4061732f
Allow third party sigsegv handler
...
For example from sanitizers.
2020-09-17 21:54:21 +02:00
Christian Göttsche
00665e2a2b
Avoid unsigned integer overflow
...
unsigned overflow is well defined, but creates noise when using
sanitizers. unsigned overflow can be a symptom of logic issues of
counter, so its reasonable to use.
linux/LinuxProcessList.c:64:50: runtime error: unsigned integer overflow: 0 - 1 cannot be represented in type 'unsigned int'
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior linux/LinuxProcessList.c:64:50 in
linux/LinuxProcessList.c:64:11: runtime error: implicit conversion from type 'unsigned int' of value 4294967295 (32-bit, unsigned) to type 'int' changed the value to -1 (32-bit, signed)
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior linux/LinuxProcessList.c:64:11 in
linux/LinuxProcessList.c:64:78: runtime error: unsigned integer overflow: 4 - 136 cannot be represented in type 'unsigned int'
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior linux/LinuxProcessList.c:64:78 in
2020-09-17 21:53:31 +02:00