Benny Baumann
0f5262917f
Make all required includes explicit
...
Information as seen by IWYU 0.12 + clang 9 on Linux
2020-10-18 20:09:05 +02:00
Benny Baumann
872e542f4e
Rename StringUtils.[ch] to XUtils.[ch]
2020-10-16 20:30:21 +02:00
Christian Göttsche
5cc20e7cb2
Settings: do not save initial cpu count
...
Not needed and confusing with ProcessList.cpuCount
2020-10-12 13:15:23 +02:00
Daniel Lange
079c2abf8e
Update License consistently to GPLv2 as per COPYING file
2020-10-05 10:13:12 +02:00
Christian Göttsche
42946ec113
Introduce ARRAYSIZE
2020-10-03 19:05:40 +02:00
Christian Göttsche
ffc65b3827
Reorder check to avoid crash on invalid process field setting
...
If using a setting from a different development version with an
unsupported process field, first dereferencing Process_fields[id] yields
to a crash:
=================================================================
==19530==ERROR: AddressSanitizer: global-buffer-overflow on address 0x000000612800 at pc 0x000000521d1a bp 0x7ffec47a5ff0 sp 0x7ffec47a5fe8
READ of size 8 at 0x000000612800 thread T0
#0 0x521d19 in readFields .htop/Settings.c:107:40
#1 0x51d117 in Settings_read .htop/Settings.c:141:10
#2 0x51c0c4 in Settings_new .htop/Settings.c:382:12
#3 0x4eafe2 in main .htop/htop.c:220:25
#4 0x7fa450570cc9 in __libc_start_main csu/../csu/libc-start.c:308:16
#5 0x427a59 in _start (.htop/htop+0x427a59)
0x000000612800 is located 0 bytes to the right of global variable 'Process_fields' defined in 'linux/LinuxProcess.c:24:18' (0x6118a0) of size 3936
SUMMARY: AddressSanitizer: global-buffer-overflow .htop/Settings.c:107:40 in readFields
Shadow bytes around the buggy address:
0x0000800ba4b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0000800ba4c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0000800ba4d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0000800ba4e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0000800ba4f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
=>0x0000800ba500:[f9]f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9
0x0000800ba510: f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9
0x0000800ba520: f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9
0x0000800ba530: f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9
0x0000800ba540: f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9
0x0000800ba550: f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9
Shadow byte legend (one shadow byte represents 8 application bytes):
Addressable: 00
Partially addressable: 01 02 03 04 05 06 07
Heap left redzone: fa
Freed heap region: fd
Stack left redzone: f1
Stack mid redzone: f2
Stack right redzone: f3
Stack after return: f5
Stack use after scope: f8
Global redzone: f9
Global init order: f6
Poisoned by user: f7
Container overflow: fc
Array cookie: ac
Intra object redzone: bb
ASan internal: fe
Left alloca redzone: ca
Right alloca redzone: cb
Shadow gap: cc
==19530==ABORTING
2020-09-17 21:46:22 +02:00
Zev Weiss
2899ed4cb0
Number CPUs from zero by default.
...
Numbering from one is idiosyncratic and inconsistent with basically
everything else in the world; it doesn't make much sense as default
behavior.
All naming is updated to reflect that numbering from one is a
non-default, opt-in option. The old label of the flag saved in htoprc
("cpu_count_from_zero") is still supported for backwards compatibility
with existing configs, however.
2020-09-15 03:25:08 -05:00
Nathan Scott
c9ecd0fa74
Revert the vim_mode setting for now, needs a rethink
...
There have been too many bugs reported in vim_mode, and
the proposed fixes are increasingly fragile - hence we
have decided to back it out for now. For reference:
https://github.com/htop-dev/htop/issues/69
https://github.com/htop-dev/htop/pull/37
https://github.com/htop-dev/htop/pull/106
The whitespace changes also arrived in commit 12805f61d
not sure what that was about, but backed out as well.
2020-09-15 09:33:58 +10:00
Hugo Musso Gualandi
9207401f97
Clean up some code duplication in the header files
...
PR htop-dev/htop#70 got rid of the infrastructure for generating header
files, but it left behind some code duplication.
Some of cases are things that belong in the header file and don't need
to be repeated in the C file. Other cases are things that belong in the
C file and don't need to be in the header file.
In this commit I tried to fix all of these that I could find. When given
a choice I preferred keeping things out of the header file, unless they
were being used by someone else.
2020-09-12 19:20:44 -03:00
Zev Weiss
a1a027b9bd
Axe automated header generation.
...
Reasoning:
- implementation was unsound -- broke down when I added a fairly
basic macro definition expanding to a struct initializer in a *.c
file.
- made it way too easy (e.g. via otherwise totally innocuous git
commands) to end up with timestamps such that it always ran
MakeHeader.py but never used its output, leading to overbuild noise
when running what should be a null 'make'.
- but mostly: it's just an awkward way of dealing with C code.
2020-09-03 11:58:58 -05:00
Nathan Scott
728b04bbb5
Merge branch 'ci-hwloc-job' of https://github.com/bertwesarg/htop into bertwesarg-ci-hwloc-job
2020-08-26 10:39:43 +10:00
Nathan Scott
5c5a599a2a
Merge branch 'hishamhm-pull-959'
2020-08-20 14:57:30 +10:00
Nathan Scott
6b443c5da9
Merge branch 'hishamhm-pull-932'
2020-08-20 14:47:07 +10:00
Daniel Flanagan
9ed47a213b
Fix whitespace
2019-10-31 11:29:28 -05:00
Daniel Flanagan
12805f61d8
Add simple vim mode
...
This commit adds a "vim_mode" setting (false/`0` by default) that causes
keys to be remapped in the following way by the `ScreenManager`:
+ h -> LEFT
+ j -> DOWN
+ k -> UP
+ l -> RIGHT
+ LEFT -> h (toggle help)
+ DOWN -> j (noop)
+ UP -> k (open kill menu)
+ RIGHT -> l (lsof current process)
+ K (Shift+K) -> k (open kill menu)
+ J (Shift+J) -> K (toggle show/hide kernel threads)
+ L (Shift+L) -> l (lsof current process)
I couldn't figure out where the manpage documentation is in the repo,
though I admittedly did not look particularly hard.
I believe this change would be a welcome option for heavy vim users like myself
who would like a familiar way to get around in htop.
2019-10-31 11:20:55 -05:00
Arnavion
1d5e6a27a0
Add a display option to hide CPU usage number from CPU meter.
2019-08-10 11:20:21 -07:00
Arnavion
4b0600d8f8
Add new display option to also show CPU frequency in CPU meters.
...
The option is only implemented on Linux. On other platforms, and on Linuxes
that do not expose the relevant sysfs file, the frequency will be 0.
The "CPU average" meter does not show a frequency, only
the individual per-CPU meters.
2019-08-09 21:34:48 -07:00
MartinJM
b0e24cd5a5
Added an option to disable the mouse.
2019-07-12 21:41:09 +02:00
Hisham Muhammad
f914617508
Make settings file finding sequence more straightforward
...
Avoid unnecessary access() call and make code read more linearly.
2018-02-18 20:42:17 -03:00
Hisham Muhammad
03b2581745
Only consider a read successful when the file seems valid
...
Require at least the `fields` entry to be present,
so we can have a decent guess that it was indeed a settings file.
2018-02-18 20:35:23 -03:00
Hisham Muhammad
3975e9ce5c
Merge branch 'master' of https://github.com/hishamhm/htop
2017-07-26 16:16:10 -03:00
Hisham Muhammad
543d65c6ab
Security review: make privilege dropping-restoring optional.
...
This is/was necessary only on macOS, because you needed root in order
to read the process list. This was never necessary on Linux, and
it also raises security concerns, so now it needs to be enabled
explicitly at build time.
2017-07-26 15:40:55 -03:00
Wael M. Nasreddine
ce0cf3c457
Settings: do not emit trailing whitespace
2017-07-24 16:36:27 -07:00
Hisham Muhammad
0fa03322a9
Dynamically adjust the size of line reads
...
* Dynamically adjust the size of line reads.
* Remove some more uses of fgets with arbitrary sizes.
* Fix reading of lines and width of n column.
Fixes #514 .
2016-06-19 18:55:35 -03:00
Hisham
7ededce9b5
Silence cast warning.
2016-05-30 12:22:07 -03:00
Hisham
fa0c637c55
Silence warnings about seteuid return value.
...
Closes #483 .
2016-05-25 21:37:07 -03:00
Hisham
820c079b14
Initialize default meter modes properly.
2016-02-02 16:15:07 +01:00
Hisham
ffcf48fb74
Merge branch 'xalloc'
2016-02-02 15:58:45 +01:00
Hisham
b54d2dde40
Check for failure in allocations.
2016-02-02 15:53:02 +01:00
Hisham
6434db5b6b
Differentiate threads by default.
2016-01-31 12:07:48 +01:00
Michael Klein
84783bd6f0
Fix fopen mode in Settings_read()
2015-12-09 20:34:11 +01:00
Michael Klein
42b08f2233
drop privileges during Settings_read()/Settings_write()
2015-12-02 23:42:10 +01:00
David Hunt
5e602f18d5
Rename String to StringUtils.
...
Fixes building on case-insensitive filesystems where String.h gets confused with <string.h>.
From d734dacea0a10d0465dad4e95b3421511e7da112 Mon Sep 17 00:00:00 2001
From: David Hunt <dhunt@iolanthe.attlocal.net>
Date: Sat, 11 Jul 2015 20:56:31 -0500
Subject: [PATCH 1/8] Rename String to StringUtils
2015-08-19 13:45:20 -03:00
Hisham Muhammad
e1e3ffad19
Ensure default matches classic htop behavior.
2015-08-12 17:24:41 -03:00
Hisham Muhammad
4d44c35519
Merge pull request #148 from nckx/display-basename
...
[PATCH] New setting: "Show program path"
2015-08-12 17:16:50 -03:00
Tobias Geerinckx-Rice
293eec4265
New setting: "Show program path"
...
Add a setting to hide all but the last component from the programme
path, leaving only the "basename". Makes htop more usable on smaller
screens, or systems with longer than average paths. Off by default.
"Highlight program basename" will still be respected, to further
visually separate process names from their arguments.
2015-08-07 14:20:14 +02:00
Hisham Muhammad
f1e8a074f2
store cpuCount in an attribute
2015-05-13 15:13:55 -03:00
Hisham Muhammad
01737ed66b
Reset to the default scheme, not the last one.
2015-04-09 15:44:26 -03:00
Hisham Muhammad
dc4576d327
Fix saving new color scheme.
2015-04-09 15:19:31 -03:00
Hisham Muhammad
70abaadbaf
Fix NULL-termination of array for later use by String_freeArray.
2015-03-25 16:36:42 -03:00
Hisham Muhammad
9ff5d2b243
Fix saving of header states, motion in Setup screen.
2015-03-16 23:01:21 -03:00
Hisham Muhammad
adbfe3c3f1
Get FreeBSD tree to compile again with latest changes.
2015-03-16 03:14:20 -03:00
Hisham Muhammad
be1700cf94
Isolate portable and Linux-specific process fields.
2015-03-16 01:43:04 -03:00
Hisham Muhammad
e3fe3962cb
Move more Linux-specific code into Linux subdir.
2015-03-15 20:29:13 -03:00
Hisham Muhammad
c2108e5a48
Another mega-patch for the refactoring process.
...
Kinda runs, but functionality from the original main loop
is still missing. Patience.
2015-01-23 03:08:21 -02:00
Hisham Muhammad
3383d8e556
Sorry about the mega-patch.
...
This is a work-in-progress, code is currently broken.
(Some actions, and notably, the header, are missing.)
2015-01-21 23:27:31 -02:00
Hisham Muhammad
b192af006f
Decouple Header from Meter classes.
...
(Yes, that's dynamic typing!)
2014-11-27 18:38:52 -02:00
Hisham Muhammad
27da00f339
Improve function prototype, helping analysis.
2014-04-24 19:50:33 -03:00
Hisham Muhammad
4e2c2d7927
Fix resource leak.
2014-04-24 19:29:20 -03:00
Hisham Muhammad
823bdbae13
safer code, check result of lstat
2014-04-22 20:35:57 -03:00
Hisham Muhammad
6d90e58c01
alignment improvements
2014-02-27 16:35:22 -03:00
Hisham Muhammad
8ace29c267
Make CPU meter optionally account guest time in its percentages
2013-12-18 02:58:34 +00:00
Hisham Muhammad
6cfa9e0bf2
Performance improvements due to conditional parsing of IO data depending on selected fields.
...
On my machine, this gives a ~20% improvement in htop process time use with the default config.
2013-05-24 22:46:01 +00:00
Hisham Muhammad
f44a8f2009
Option to update process names on every refresh
...
(thanks to Rob Hoelz)
2012-10-20 00:43:25 +00:00
Hisham Muhammad
368cb1fe20
avoid deleting valid symbolic links to .htoprc
...
so that home directories can be used with both old and new versions of htop
(see #3496731 ).
2012-03-05 11:12:58 +00:00
Hisham Muhammad
45f7a4fc8d
Remove old memory debugging routines. We have Valgrind nowadays.
2011-12-26 22:04:29 +00:00
Hisham Muhammad
84281bdc44
major header cleanup
2011-12-26 21:35:57 +00:00
Hisham Muhammad
93233a67ea
Move .htoprc to XDG-compliant path ~/.config/htop/htoprc,
...
respecting $XDG_CONFIG_HOME
(thanks to Hadzhimurad Ustarkhan for the suggestion.)
2011-12-25 20:22:41 +00:00
Hisham Muhammad
5b0b2255ef
Fix typo that has been lurking since 2006
2011-12-23 19:12:17 +00:00
Hisham Muhammad
7ca1081712
Mega-commit with features and tweaks for 1.0:
...
* Performance improvements
* Support for splitting CPU meters into two or four columns
(thanks to Wim Heirman)
* Switch from PLPA, which is now deprecated, to HWLOC.
* Bring back support for native Linux sched_setaffinity,
so we don't have to use HWLOC where we don't need to.
* Support for typing in user names and column fields in selection panels.
2011-11-18 06:08:56 +00:00
Hisham Muhammad
27b470e10d
Don't simply trust that string splits were successful...
2011-08-29 20:45:29 +00:00
Hisham Muhammad
da604d355a
be more precise in the comment
2011-08-12 16:37:27 +00:00
Hisham Muhammad
300caa076e
Tempus fugit.
2011-05-26 16:35:07 +00:00
Hisham Muhammad
a9c0ea3753
* Option for counting CPUs from zero
...
(thanks to Sean Noonan)
* Meters update in every screen (no longer halting while on Setup, etc.)
2011-03-22 20:37:08 +00:00
Hisham Muhammad
a600d5a6e9
Tempus fugit.
2010-02-25 02:08:18 +00:00
Hisham Muhammad
8f230920cd
show custom thread names
2010-02-25 01:37:31 +00:00
Hisham Muhammad
c9e59b4a33
minor tweaks by David Weber
2010-02-22 20:54:01 +00:00
Hisham Muhammad
da23c8c5a1
Clean up headers by using 'static' whenever possible.
...
Reduces resulting code size.
2008-03-09 08:58:38 +00:00
Hisham Muhammad
93f091c47e
BUGFIX: Fix display of CPU count for threaded processes.
...
When user threads are hidden, process now shows the
sum of processor usage for all processors. When user
threads are displayed, each thread shows its own
processor usage, including the root thread.
(thanks to Bert Wesarg for the report)
Also, add option to display thread colors differently.
2008-03-08 23:39:48 +00:00
Hisham Muhammad
807df03671
Avoid crashing when using many meters (thanks to David Cho for the report)
2007-11-26 22:06:25 +00:00
Hisham Muhammad
855d9eaf9a
IO-wait time now counts as idle time, which is a more
...
accurate description. It is still available in
split time, now called detailed CPU time.
(thanks to Samuel Thibault for the report)
2007-11-09 00:40:59 +00:00
Hisham Muhammad
e3acb5e07a
Add a trailing newline in .htoprc
...
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=420856
(sheesh, the things people get worked up about :) )
2007-08-10 06:26:39 +00:00
Hisham Muhammad
3e4f06d101
Contribution by Philipp Richter: Display IO-Wait, IRQ and Soft-IRQ values in status bar
...
(minor modifications: default to false, add help)
2006-10-04 14:21:27 +00:00
Hisham Muhammad
2f1f82ee87
Updates for new version of the MakeHeader.py script.
2006-06-06 20:41:01 +00:00
Hisham Muhammad
847b34d382
Minor fix to HTOPRC feature.
2006-05-09 17:59:20 +00:00
Hisham Muhammad
723bddfb87
Add support for $HTOPRC, as suggested by Luis Limon
2006-05-06 23:19:26 +00:00
Hisham Muhammad
33113fe0d7
- Overhaul meters implementation;
...
- add AllCPUsMeter;
- because of that, the new .htoprc is incompatible with previous released versions.
2006-04-10 20:40:38 +00:00
Hisham Muhammad
0df3ea08d3
Update copyrights.
2006-03-23 18:53:08 +00:00
Hisham Muhammad
d6231bab89
Initial import.
2006-03-04 18:16:49 +00:00