summaryrefslogtreecommitdiffstats
path: root/Meter.h
diff options
context:
space:
mode:
authorNathan Scott <nathans@redhat.com>2020-12-07 11:41:22 +1100
committerNathan Scott <nathans@redhat.com>2020-12-07 11:41:22 +1100
commitb92cfa7d7ac09b4e8a3c377496edd49228221f72 (patch)
treeaefa244b8140e21e2d02018e57c7b9fa0c7d23ec /Meter.h
parent57d9ecc5519a44d4d08f1739ab4b741ccfc2d35a (diff)
parentad764ff972082608604634c84e5427e7bfdcda1a (diff)
Merge branch 'conversion' of https://github.com/cgzones/htop into cgzones-conversion
Diffstat (limited to 'Meter.h')
-rw-r--r--Meter.h27
1 files changed, 25 insertions, 2 deletions
diff --git a/Meter.h b/Meter.h
index 43518e52..cb054057 100644
--- a/Meter.h
+++ b/Meter.h
@@ -20,13 +20,36 @@ in the source distribution for its full text.
#define METER_BUFFER_LEN 256
+#define METER_BUFFER_CHECK(buffer, size, written) \
+ do { \
+ if ((written) < 0 || (size_t)(written) >= (size)) { \
+ return; \
+ } \
+ (buffer) += (written); \
+ (size) -= (size_t)(written); \
+ } while (0)
+
+#define METER_BUFFER_APPEND_CHR(buffer, size, c) \
+ do { \
+ if ((size) < 2) { \
+ return; \
+ } \
+ *(buffer)++ = c; \
+ *(buffer) = '\0'; \
+ (size)--; \
+ if ((size) == 0) { \
+ return; \
+ } \
+ } while (0)
+
+
struct Meter_;
typedef struct Meter_ Meter;
typedef void(*Meter_Init)(Meter*);
typedef void(*Meter_Done)(Meter*);
typedef void(*Meter_UpdateMode)(Meter*, int);
-typedef void(*Meter_UpdateValues)(Meter*, char*, int);
+typedef void(*Meter_UpdateValues)(Meter*, char*, size_t);
typedef void(*Meter_Draw)(Meter*, int, int, int);
typedef struct MeterClass_ {
@@ -101,7 +124,7 @@ extern const MeterClass Meter_class;
Meter* Meter_new(const ProcessList* pl, int param, const MeterClass* type);
-int Meter_humanUnit(char* buffer, unsigned long int value, int size);
+int Meter_humanUnit(char* buffer, unsigned long int value, size_t size);
void Meter_delete(Object* cast);

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