[fix] increase offset in ring buffer - ploot - simple plotting tools
(HTM) git clone git://bitreich.org/ploot git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/ploot
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) Tags
(DIR) README
(DIR) LICENSE
---
(DIR) commit 30b3f9c326b35c196f98d905c6e57afbc057c63b
(DIR) parent 453cb7f82c06a904e3b5aae5ee57d9a1fd91f460
(HTM) Author: Josuah Demangeon <mail@josuah.net>
Date: Sun, 4 Feb 2018 23:50:12 +0100
[fix] increase offset in ring buffer
Diffstat:
M ploot.c | 19 +++++++------------
1 file changed, 7 insertions(+), 12 deletions(-)
---
(DIR) diff --git a/ploot.c b/ploot.c
@@ -14,6 +14,9 @@
#define MIN(x, y) ((x) < (y) ? (x) : (y))
#define LEN(x) (sizeof(x) / sizeof(*x))
+int flag_h = 20;
+char *flag_t = NULL;
+
/*
* Set `str' to a human-readable form of `num' with always a width of 7 (+ 1
* the '\0' terminator). Buffer overflow is ensured not to happen due to the
@@ -28,7 +31,7 @@ humanize(char *str, double val)
for (exp = 0; ABS(val) > 1000; exp++)
val /= 1000;
- precision = (ABS(val) < 10) ? 3 : (ABS(val) < 100) ? 2 : 1;
+ precision = (ABS(val) < 10) ? (3) : (ABS(val) < 100) ? (2) : (1);
if (exp == 0)
precision++;
snprintf(str, 8, "%+.*f%c", precision, val, label[exp]);
@@ -139,7 +142,7 @@ ring_add(double *rbuf, size_t len, size_t pos, double val)
{
*rbuf = val;
- return (pos < len) ? pos + 1 : 0;
+ return (pos + 1 < len) ? (pos + 1) : (0);
}
/*
@@ -149,13 +152,8 @@ ring_add(double *rbuf, size_t len, size_t pos, double val)
void
ring_copy(double *buf, double *rbuf, size_t len, size_t pos)
{
- size_t i = 0;
-
memcpy(buf, rbuf + pos, (len - pos) * sizeof(*rbuf));
memcpy(buf + (len - pos), rbuf, pos * sizeof(*rbuf));
- printf("len: %zd, pos: %zd\n", len, pos);
- for (i = 0; i < len; i++)
- printf("%03zd: %lf\n", i, buf[i]);
}
/*
@@ -171,7 +169,7 @@ read_simple(double buf[MAX_VAL])
len = LEN(rbuf);
for (p = pos = 0; scanf("%lf\n", &val) > 0; p++)
- pos = ring_add(rbuf, len, pos, val);
+ pos = ring_add(rbuf + pos, len, pos, val);
len = MIN(len, p);
pos = MIN(pos, p);
@@ -202,7 +200,7 @@ read_time_series(double *valv, time_t *timev)
void
usage(void)
{
- printf("usage: ploot [-h height]\n");
+ printf("usage: ploot [-h <height>] [-t <title>]\n");
exit(1);
}
@@ -212,9 +210,6 @@ main(int argc, char **argv)
double val[MAX_VAL], *end;
char c;
- int flag_h = 20;
- char *flag_t = NULL;
-
while ((c = getopt(argc, argv, "h:t:")) != -1) {
switch (c) {
case -1: