diff options
author | Nathan Scott <nathans@redhat.com> | 2020-12-07 11:41:22 +1100 |
---|---|---|
committer | Nathan Scott <nathans@redhat.com> | 2020-12-07 11:41:22 +1100 |
commit | b92cfa7d7ac09b4e8a3c377496edd49228221f72 (patch) | |
tree | aefa244b8140e21e2d02018e57c7b9fa0c7d23ec /Meter.h | |
parent | 57d9ecc5519a44d4d08f1739ab4b741ccfc2d35a (diff) | |
parent | ad764ff972082608604634c84e5427e7bfdcda1a (diff) |
Merge branch 'conversion' of https://github.com/cgzones/htop into cgzones-conversion
Diffstat (limited to 'Meter.h')
-rw-r--r-- | Meter.h | 27 |
1 files changed, 25 insertions, 2 deletions
@@ -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); |