diff options
author | phk <phk@FreeBSD.org> | 2005-07-21 08:32:56 +0000 |
---|---|---|
committer | phk <phk@FreeBSD.org> | 2005-07-21 08:32:56 +0000 |
commit | 9b19f9f39e850cb61bd61ae144c1e0540b8ffa5f (patch) | |
tree | a67f82c441c38c8cbc8c0f9934ace77bb808a266 /usr.bin | |
parent | d27c2fdc745db9021ebd3870695829fd1242cbbf (diff) | |
download | FreeBSD-src-9b19f9f39e850cb61bd61ae144c1e0540b8ffa5f.zip FreeBSD-src-9b19f9f39e850cb61bd61ae144c1e0540b8ffa5f.tar.gz |
In 2003, a -s flag was added to ministat to separate the
avg/median/stddev bars onto separate lines for readability if the
ranges overlapped. In 2005, ministat was extended to support more than
2 datasets, but the -s code was not updated. It will coredump if run
with -s and >2 sets.
PR: 82909
Submitted by: Dan Nelson <dnelson@allantgroup.com>
Diffstat (limited to 'usr.bin')
-rw-r--r-- | usr.bin/ministat/Makefile | 1 | ||||
-rw-r--r-- | usr.bin/ministat/ministat.c | 12 |
2 files changed, 8 insertions, 5 deletions
diff --git a/usr.bin/ministat/Makefile b/usr.bin/ministat/Makefile index 62de6a0..d1a10a3 100644 --- a/usr.bin/ministat/Makefile +++ b/usr.bin/ministat/Makefile @@ -12,3 +12,4 @@ test: ${PROG} ./${PROG} ${.CURDIR}/chameleon ${.CURDIR}/iguana ./${PROG} -c 80 ${.CURDIR}/chameleon ${.CURDIR}/iguana ./${PROG} -s -c 80 ${.CURDIR}/chameleon ${.CURDIR}/iguana + ./${PROG} -s -c 80 ${.CURDIR}/chameleon ${.CURDIR}/iguana ${.CURDIR}/iguana diff --git a/usr.bin/ministat/ministat.c b/usr.bin/ministat/ministat.c index 4bce24f..cbada01 100644 --- a/usr.bin/ministat/ministat.c +++ b/usr.bin/ministat/ministat.c @@ -283,12 +283,13 @@ struct plot { char *data; char **bar; int separate_bars; + int num_datasets; }; static struct plot plot; static void -SetupPlot(int width, int separate) +SetupPlot(int width, int separate, int num_datasets) { struct plot *pl; @@ -298,6 +299,7 @@ SetupPlot(int width, int separate) pl->data = NULL; pl->bar = NULL; pl->separate_bars = separate; + pl->num_datasets = num_datasets; pl->min = 999e99; pl->max = -999e99; } @@ -344,8 +346,8 @@ PlotSet(struct dataset *ds, int val) bar = 0; if (pl->bar == NULL) { - pl->bar = malloc(sizeof(char *) * 2); - memset(pl->bar, 0, sizeof(char*) * 2); + pl->bar = malloc(sizeof(char *) * pl->num_datasets); + memset(pl->bar, 0, sizeof(char*) * pl->num_datasets); } if (pl->bar[bar] == NULL) { pl->bar[bar] = malloc(pl->width); @@ -426,7 +428,7 @@ DumpPlot(void) putchar('|'); putchar('\n'); } - for (i = 0; i < 2; i++) { + for (i = 0; i < pl->num_datasets; i++) { if (pl->bar[i] == NULL) continue; putchar('|'); @@ -568,7 +570,7 @@ main(int argc, char **argv) } if (!flag_n) { - SetupPlot(74, flag_s); + SetupPlot(74, flag_s, nds); for (i = 0; i < nds; i++) DimPlot(ds[i]); for (i = 0; i < nds; i++) |