summaryrefslogtreecommitdiffstats
path: root/Meter.c
Commit message (Collapse)AuthorAgeFilesLines
* Remove redundant is-null checks on free(Meter.drawData)Explorer092016-05-271-4/+2
|
* Rename Meter.setValues() functions to updateValues()Explorer092016-05-041-9/+10
| | | | | | | | | | | | Rationale (copied from htop issue #471): The function name "setValues" is misleading. For most OOP (object- oriented programming) contexts, setXXX functions mean they will change some member variables of an object into something specified in function arguments. But in the *Meter_setValues() case, the new values are not from the arguments, but from a hard-coded source. The caller is not supposed to change the values[] to anything it likes, but rather to "update" the values from the source. Hence, updateValues is a better name for this family of functions.
* BarMeterMode_draw minor code improvementExplorer092016-03-221-4/+1
| | | | | | | | | | | | | Removed a loop that sets the bar[] buffer with spaces and merged that task to the snprintf() call just below. No need for the barOffset variable. Display behavior is unchanged. Size comparision (when compiled on Ubuntu 14.04 64-bit): $ size htop.old htop.new text data bss dec hex filename 137312 15112 3776 156200 26228 htop.old 137216 15112 3776 156104 261c8 htop.new
* Explicit "maxItems" property of metersExplorer092016-03-111-6/+3
| | | | | | | | | Two changes in this commit: - All meters now explicitly specify "maxItems" property, even for just 1 item. (Exception is "container" CPU meter classes, which use CUSTOM_METERMODE.) - "maxItems" being 0 is now allowed. This will let bar meters and graph meters render an empty meter.
* Avoid crash on huge screens.Hisham2016-02-021-1/+6
| | | | Fix by @Explorer09 (see discussion on #355).
* Check for failure in allocations.Hisham2016-02-021-5/+5
|
* Change variable 'dot' to avoid division by reciprocal.Explorer092016-01-211-3/+3
| | | | | | | | | | | | | | (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.
* New macro GRAPH_HEIGHT for Graph Meter heightExplorer092016-01-211-7/+9
| | | | | | | | (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.
* Introduce CLAMP macro. Unify all MIN(MAX(a,b),c) uses.Explorer092016-01-151-9/+10
| | | | | | | | | | | | | | | | | | | | | | | 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--) .
* Present IO-Wait as a dot in monochrome. Fixes #345.Hisham Muhammad2016-01-111-1/+1
| | | | Thank you @Explorer09 for the report!
* Array entries have been oddly flipped here for years.Hisham Muhammad2015-11-231-1/+0
|
* kilobytes is the smallest unit and never has precisionChristian Hesse2015-08-291-0/+3
| | | | Signed-off-by: Christian Hesse <mail@eworm.de>
* Fix indentation.Hisham Muhammad2015-08-271-21/+21
|
* Merge pull request #208 from eworm-de/dynamic-unitHisham Muhammad2015-08-271-0/+28
|\ | | | | Dynamic unit
| * make units more dynamicChristian Hesse2015-08-271-0/+28
| | | | | | | | Signed-off-by: Christian Hesse <mail@eworm.de>
* | use ASCII blank even for graphical meter in UTF-8 modeChristian Hesse2015-08-251-1/+1
|/ | | | | | 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.
* Standardize variable name.Hisham Muhammad2015-08-201-9/+9
|
* simplify Meter loopChristian Hesse2015-08-191-12/+6
| | | | | | * 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.
* remove UTF-8 code when compiling with --disable-unicodeChristian Hesse2015-08-191-5/+21
|
* make arrays one dimensionalChristian Hesse2015-08-191-29/+32
| | | | | | 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.
* Rename String to StringUtils.David Hunt2015-08-191-1/+1
| | | | | | | | | 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
* Fix saving of header states, motion in Setup screen.Hisham Muhammad2015-03-161-2/+4
|
* Remove spurious UTF-8 char from ASCII mode.Hisham Muhammad2015-03-161-1/+1
|
* Move graph according to configured CRT_delay.Hisham Muhammad2015-02-041-1/+1
|
* Add longer descriptions to available meters.Hisham Muhammad2015-02-031-0/+1
|
* Another mega-patch for the refactoring process.Hisham Muhammad2015-01-231-1/+3
| | | | | Kinda runs, but functionality from the original main loop is still missing. Patience.
* Sorry about the mega-patch.Hisham Muhammad2015-01-211-34/+63
| | | | | This is a work-in-progress, code is currently broken. (Some actions, and notably, the header, are missing.)
* Move UptimeMeter into platform-dependent area.Hisham Muhammad2014-11-271-30/+0
| | | | Set up environment to move other meters.
* Remove useless assignment.Hisham Muhammad2014-04-211-1/+1
|
* alignment improvementsHisham Muhammad2014-02-271-0/+31
|
* Fix order of calloc arguments.Hisham Muhammad2014-01-161-1/+1
| | | | (Patch by Dawid Gajownik)
* BUGFIX: Fix crash when adding meters and toggling detailed CPU time.Hisham Muhammad2014-01-161-5/+11
| | | | | See https://bugzilla.redhat.com/show_bug.cgi?id=987805 for details. (thanks to Dawid Gajownik for the detailed analysis!)
* Changes in object model: separate class objects to store vtable. Also, nicer ↵Hisham Muhammad2012-12-051-110/+113
| | | | UTF-8 display of big numbers.
* Remove old memory debugging routines. We have Valgrind nowadays.Hisham Muhammad2011-12-261-1/+0
|
* major header cleanupHisham Muhammad2011-12-261-17/+16
|
* Mega-commit with features and tweaks for 1.0:Hisham Muhammad2011-11-181-2/+7
| | | | | | | | | | | * 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.
* cleanups and fixes, thanks to cppcheck and gcc -WextraHisham Muhammad2011-10-251-4/+1
|
* Fix segfault in BarMeterMode_draw() for small terminal widthsHisham Muhammad2011-08-261-2/+8
|
* Tempus fugit.Hisham Muhammad2011-05-261-1/+1
|
* retain meter state when it is reinit'ed in the Setup screenHisham Muhammad2011-03-311-1/+2
|
* * Option for counting CPUs from zeroHisham Muhammad2011-03-221-22/+37
| | | | | | (thanks to Sean Noonan) * Meters update in every screen (no longer halting while on Setup, etc.)
* Remove arbitrary limit from rich stringsHisham Muhammad2010-11-221-12/+14
| | | | | | | | | 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
* Tempus fugit.Hisham Muhammad2010-02-251-1/+1
|
* warning fixesHisham Muhammad2010-02-251-10/+11
|
* changes for htop 0.8.2Hisham Muhammad2009-06-021-7/+6
|
* Option to display hostname in the meters areaHisham Muhammad2009-02-171-0/+2
|
* ACPI Battery meterHisham Muhammad2008-09-231-2/+5
| | | | | contributed by Ian Hands
* Clean up headers by using 'static' whenever possible.Hisham Muhammad2008-03-091-43/+43
| | | | | Reduces resulting code size.
* Add Unicode support, enabled with the --enable-unicodeHisham Muhammad2008-03-091-2/+3
| | | | | | flag, which requires libncursesw. Thanks to Sergej Pupykin!
* Perform RichString operations by hand.Hisham Muhammad2006-07-121-1/+1
| | | | | Avoid unnecessary operations when processing entries on ProcessList.

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