summaryrefslogtreecommitdiffstats
path: root/Meter.c
AgeCommit message (Collapse)Author
2016-02-02Avoid crash on huge screens.Hisham
Fix by @Explorer09 (see discussion on #355).
2016-02-02Check for failure in allocations.Hisham
2016-01-21Change variable 'dot' to avoid division by reciprocal.Explorer09
(Cherry-picked from d56bcd8e0d8d6a177fc2e40db32fc73ea4588684, the experimental graph coloring branch) The variable 'dot' in GraphMeterMode_draw now means "maximum number of dots per value (column) in graph". The old meaning was "amount of value that is to be represented by a dot" and was always a fraction. Due to a limitation in floating point computing, if GRAPH_HEIGHT were not a power of 2, then rounding errors will occur on numbers like (1.0/3). (Currently GRAPH_HEIGHT is 4 and so no precision loss.) 'dot' was used as a divisor, and it's "division by a reciprocal". We change that to simple multiplication.
2016-01-21New macro GRAPH_HEIGHT for Graph Meter heightExplorer09
(Cherry-picked from e93028d7fa0c5f00b5dc3336fd28abaf905cd572, the experimental graph coloring branch) Currently GRAPH_HEIGHT=4 . This prevents hard-coding the height of the graph meters, and allows user to change it at compile-time.
2016-01-15Introduce CLAMP macro. Unify all MIN(MAX(a,b),c) uses.Explorer09
With the CLAMP macro replacing the combination of MIN and MAX, we will have at least two advantages: 1. It's more obvious semantically. 2. There are no more mixes of confusing uses like MIN(MAX(a,b),c) and MAX(MIN(a,b),c) and MIN(a,MAX(b,c)) appearing everywhere. We unify the 'clamping' with a single macro. Note that the behavior of this CLAMP macro is different from the combination `MAX(low,MIN(x,high))`. * This CLAMP macro expands to two comparisons instead of three from MAX and MIN combination. In theory, this makes the code slightly smaller, in case that (low) or (high) or both are computed at runtime, so that compilers cannot optimize them. (The third comparison will matter if (low)>(high); see below.) * CLAMP has a side effect, that if (low)>(high) it will produce weird results. Unlike MIN & MAX which will force either (low) or (high) to win. No assertion of ((low)<=(high)) is done in this macro, for now. This CLAMP macro is implemented like described in glib <http://developer.gnome.org/glib/stable/glib-Standard-Macros.html> and does not handle weird uses like CLAMP(a++, low++, high--) .
2016-01-11Present IO-Wait as a dot in monochrome. Fixes #345.Hisham Muhammad
Thank you @Explorer09 for the report!
2015-11-23Array entries have been oddly flipped here for years.Hisham Muhammad
2015-08-29kilobytes is the smallest unit and never has precisionChristian Hesse
Signed-off-by: Christian Hesse <mail@eworm.de>
2015-08-27Fix indentation.Hisham Muhammad
2015-08-27Merge pull request #208 from eworm-de/dynamic-unitHisham Muhammad
Dynamic unit
2015-08-27make units more dynamicChristian Hesse
Signed-off-by: Christian Hesse <mail@eworm.de>
2015-08-25use ASCII blank even for graphical meter in UTF-8 modeChristian Hesse
If the terminal has no font with braille characters we see... Nothing useful. Use an ASCII blank at least, so we have an idea about what's going on.
2015-08-20Standardize variable name.Hisham Muhammad
2015-08-19simplify Meter loopChristian Hesse
* Use MIN() and MAX() to make sure values are inside bounds. This should fix an issue where Meters were missing dots at the bottom. * Remove variable 'level' and calculate on the fly.
2015-08-19remove UTF-8 code when compiling with --disable-unicodeChristian Hesse
2015-08-19make arrays one dimensionalChristian Hesse
With more dimensional arrays we have to define the array size. Use one dimensional arrays to be more flexible. Additionally this allows to shrink array size for ASCII.
2015-08-19Rename String to StringUtils.David Hunt
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-03-16Fix saving of header states, motion in Setup screen.Hisham Muhammad
2015-03-16Remove spurious UTF-8 char from ASCII mode.Hisham Muhammad
2015-02-04Move graph according to configured CRT_delay.Hisham Muhammad
2015-02-03Add longer descriptions to available meters.Hisham Muhammad
2015-01-23Another mega-patch for the refactoring process.Hisham Muhammad
Kinda runs, but functionality from the original main loop is still missing. Patience.
2015-01-21Sorry about the mega-patch.Hisham Muhammad
This is a work-in-progress, code is currently broken. (Some actions, and notably, the header, are missing.)
2014-11-27Move UptimeMeter into platform-dependent area.Hisham Muhammad
Set up environment to move other meters.
2014-04-21Remove useless assignment.Hisham Muhammad
2014-02-27alignment improvementsHisham Muhammad
2014-01-16Fix order of calloc arguments.Hisham Muhammad
(Patch by Dawid Gajownik)
2014-01-16BUGFIX: Fix crash when adding meters and toggling detailed CPU time.Hisham Muhammad
See https://bugzilla.redhat.com/show_bug.cgi?id=987805 for details. (thanks to Dawid Gajownik for the detailed analysis!)
2012-12-05Changes in object model: separate class objects to store vtable. Also, nicer ↵Hisham Muhammad
UTF-8 display of big numbers.
2011-12-26Remove old memory debugging routines. We have Valgrind nowadays.Hisham Muhammad
2011-12-26major header cleanupHisham Muhammad
2011-11-18Mega-commit with features and tweaks for 1.0:Hisham Muhammad
* 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-10-25cleanups and fixes, thanks to cppcheck and gcc -WextraHisham Muhammad
2011-08-26Fix segfault in BarMeterMode_draw() for small terminal widthsHisham Muhammad
2011-05-26Tempus fugit.Hisham Muhammad
2011-03-31retain meter state when it is reinit'ed in the Setup screenHisham Muhammad
2011-03-22* Option for counting CPUs from zeroHisham Muhammad
(thanks to Sean Noonan) * Meters update in every screen (no longer halting while on Setup, etc.)
2010-11-22Remove arbitrary limit from rich stringsHisham Muhammad
Fix subtree hiding Fix reading of CPU values in hidden threads Fix hiding of zombie processes as kernel threads Remove "debug proc" code Code cleanup in processElements
2010-02-25Tempus fugit.Hisham Muhammad
2010-02-25warning fixesHisham Muhammad
2009-06-02changes for htop 0.8.2Hisham Muhammad
2009-02-17Option to display hostname in the meters areaHisham Muhammad
2008-09-23ACPI Battery meterHisham Muhammad
contributed by Ian Hands
2008-03-09Clean up headers by using 'static' whenever possible.Hisham Muhammad
Reduces resulting code size.
2008-03-09Add Unicode support, enabled with the --enable-unicodeHisham Muhammad
flag, which requires libncursesw. Thanks to Sergej Pupykin!
2006-07-12Perform RichString operations by hand.Hisham Muhammad
Avoid unnecessary operations when processing entries on ProcessList.
2006-07-11Performance improvement hackathon: improve process comparison routines,Hisham Muhammad
disable useless code in release builds such as runtime type-checking on dynamic data structures and process fields that are not being computed, faster(?) method for verifying the process owner (still need to ensure correctness), don't destroy and create process objects for hidden kernel threads over and over. Phew. I shouldn't be doing all this today, but I could not resist.
2006-06-06Updates for new version of the MakeHeader.py script.Hisham Muhammad
2006-05-18Missed LoadMeter!Hisham Muhammad
2006-05-09Final fixes to make "All CPUs" the default CPU display mode.Hisham Muhammad