summaryrefslogtreecommitdiffstats
path: root/usr.bin
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>2005-07-21 08:32:56 +0000
committerphk <phk@FreeBSD.org>2005-07-21 08:32:56 +0000
commit9b19f9f39e850cb61bd61ae144c1e0540b8ffa5f (patch)
treea67f82c441c38c8cbc8c0f9934ace77bb808a266 /usr.bin
parentd27c2fdc745db9021ebd3870695829fd1242cbbf (diff)
downloadFreeBSD-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/Makefile1
-rw-r--r--usr.bin/ministat/ministat.c12
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++)
OpenPOWER on IntegriCloud