aboutsummaryrefslogtreecommitdiffstats
path: root/Meter.c
diff options
context:
space:
mode:
authorDaniel Lange <DLange@git.local>2016-07-25 18:25:28 +0200
committerDaniel Lange <DLange@git.local>2016-07-25 18:25:28 +0200
commit31b71b67011fa52f091df6fe536a11d6d0bfb256 (patch)
tree31cb222871017376af8b7435d24cf4961863fa93 /Meter.c
parent8c82a38002ce09db2a0b83dab8b598cf1ab0596c (diff)
downloaddebian_htop-31b71b67011fa52f091df6fe536a11d6d0bfb256.tar.gz
debian_htop-31b71b67011fa52f091df6fe536a11d6d0bfb256.tar.bz2
debian_htop-31b71b67011fa52f091df6fe536a11d6d0bfb256.zip
Imported Upstream version 2.0.2upstream/2.0.2
Diffstat (limited to 'Meter.c')
-rw-r--r--Meter.c39
1 files changed, 16 insertions, 23 deletions
diff --git a/Meter.c b/Meter.c
index 9a7868e..49fe8d0 100644
--- a/Meter.c
+++ b/Meter.c
@@ -37,7 +37,7 @@ typedef struct Meter_ Meter;
typedef void(*Meter_Init)(Meter*);
typedef void(*Meter_Done)(Meter*);
typedef void(*Meter_UpdateMode)(Meter*, int);
-typedef void(*Meter_SetValues)(Meter*, char*, int);
+typedef void(*Meter_UpdateValues)(Meter*, char*, int);
typedef void(*Meter_Draw)(Meter*, int, int, int);
typedef struct MeterClass_ {
@@ -46,7 +46,7 @@ typedef struct MeterClass_ {
const Meter_Done done;
const Meter_UpdateMode updateMode;
const Meter_Draw draw;
- const Meter_SetValues setValues;
+ const Meter_UpdateValues updateValues;
const int defaultMode;
const double total;
const int* attributes;
@@ -66,7 +66,8 @@ typedef struct MeterClass_ {
#define Meter_updateMode(this_, m_) As_Meter(this_)->updateMode((Meter*)(this_), m_)
#define Meter_drawFn(this_) As_Meter(this_)->draw
#define Meter_doneFn(this_) As_Meter(this_)->done
-#define Meter_setValues(this_, c_, i_) As_Meter(this_)->setValues((Meter*)(this_), c_, i_)
+#define Meter_updateValues(this_, buf_, sz_) \
+ As_Meter(this_)->updateValues((Meter*)(this_), buf_, sz_)
#define Meter_defaultMode(this_) As_Meter(this_)->defaultMode
#define Meter_getItems(this_) As_Meter(this_)->curItems
#define Meter_setItems(this_, n_) As_Meter(this_)->curItems = (n_)
@@ -132,12 +133,8 @@ Meter* Meter_new(struct ProcessList_* pl, int param, MeterClass* type) {
this->h = 1;
this->param = param;
this->pl = pl;
- char maxItems = type->maxItems;
- if (maxItems == 0) {
- maxItems = 1;
- }
- type->curItems = maxItems;
- this->values = xCalloc(maxItems, sizeof(double));
+ type->curItems = type->maxItems;
+ this->values = xCalloc(type->maxItems, sizeof(double));
this->total = type->total;
this->caption = xStrdup(type->caption);
if (Meter_initFn(this))
@@ -184,8 +181,7 @@ void Meter_delete(Object* cast) {
if (Meter_doneFn(this)) {
Meter_done(this);
}
- if (this->drawData)
- free(this->drawData);
+ free(this->drawData);
free(this->caption);
free(this->values);
free(this);
@@ -216,8 +212,7 @@ void Meter_setMode(Meter* this, int modeIndex) {
Meter_updateMode(this, modeIndex);
} else {
assert(modeIndex >= 1);
- if (this->drawData)
- free(this->drawData);
+ free(this->drawData);
this->drawData = NULL;
MeterMode* mode = Meter_modes[modeIndex];
@@ -249,7 +244,7 @@ ListItem* Meter_toListItem(Meter* this, bool moving) {
static void TextMeterMode_draw(Meter* this, int x, int y, int w) {
char buffer[METER_BUFFER_LEN];
- Meter_setValues(this, buffer, METER_BUFFER_LEN - 1);
+ Meter_updateValues(this, buffer, METER_BUFFER_LEN - 1);
(void) w;
attrset(CRT_colors[METER_TEXT]);
@@ -269,7 +264,7 @@ static char BarMeterMode_characters[] = "|#*@$%&.";
static void BarMeterMode_draw(Meter* this, int x, int y, int w) {
char buffer[METER_BUFFER_LEN];
- Meter_setValues(this, buffer, METER_BUFFER_LEN - 1);
+ Meter_updateValues(this, buffer, METER_BUFFER_LEN - 1);
w -= 2;
attrset(CRT_colors[METER_TEXT]);
@@ -291,11 +286,8 @@ static void BarMeterMode_draw(Meter* this, int x, int y, int w) {
char bar[w + 1];
int blockSizes[10];
- for (int i = 0; i < w; i++)
- bar[i] = ' ';
- const size_t barOffset = w - MIN((int)strlen(buffer), w);
- snprintf(bar + barOffset, w - barOffset + 1, "%s", buffer);
+ snprintf(bar, w + 1, "%*s", w, buffer);
// First draw in the bar[] buffer...
int offset = 0;
@@ -397,7 +389,7 @@ static void GraphMeterMode_draw(Meter* this, int x, int y, int w) {
data->values[i] = data->values[i+1];
char buffer[nValues];
- Meter_setValues(this, buffer, nValues - 1);
+ Meter_updateValues(this, buffer, nValues - 1);
double value = 0.0;
int items = Meter_getItems(this);
@@ -466,7 +458,7 @@ static void LEDMeterMode_draw(Meter* this, int x, int y, int w) {
LEDMeterMode_digits = LEDMeterMode_digitsAscii;
char buffer[METER_BUFFER_LEN];
- Meter_setValues(this, buffer, METER_BUFFER_LEN - 1);
+ Meter_updateValues(this, buffer, METER_BUFFER_LEN - 1);
RichString_begin(out);
Meter_displayBuffer(this, buffer, &out);
@@ -529,7 +521,7 @@ MeterMode* Meter_modes[] = {
/* Blank meter */
-static void BlankMeter_setValues(Meter* this, char* buffer, int size) {
+static void BlankMeter_updateValues(Meter* this, char* buffer, int size) {
(void) this; (void) buffer; (void) size;
}
@@ -548,8 +540,9 @@ MeterClass BlankMeter_class = {
.delete = Meter_delete,
.display = BlankMeter_display,
},
- .setValues = BlankMeter_setValues,
+ .updateValues = BlankMeter_updateValues,
.defaultMode = TEXT_METERMODE,
+ .maxItems = 0,
.total = 100.0,
.attributes = BlankMeter_attributes,
.name = "Blank",

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