ifix the horizontal scale - ploot - simple plotting tools Err bitreich.org 70
hgit clone git://bitreich.org/ploot git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/ploot URL:git://bitreich.org/ploot git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/ploot bitreich.org 70
1Log /scm/ploot/log.gph bitreich.org 70
1Files /scm/ploot/files.gph bitreich.org 70
1Refs /scm/ploot/refs.gph bitreich.org 70
1Tags /scm/ploot/tag bitreich.org 70
1README /scm/ploot/file/README.md.gph bitreich.org 70
1LICENSE /scm/ploot/file/LICENSE.gph bitreich.org 70
i--- Err bitreich.org 70
1commit 26a6e01805dd158f9f97be0cc9bf43f3d5b6db37 /scm/ploot/commit/26a6e01805dd158f9f97be0cc9bf43f3d5b6db37.gph bitreich.org 70
1parent 1d056caf74acaf182318297e2911fa8595fbd45c /scm/ploot/commit/1d056caf74acaf182318297e2911fa8595fbd45c.gph bitreich.org 70
hAuthor: Josuah Demangeon <me@josuah.net> URL:mailto:me@josuah.net bitreich.org 70
iDate: Tue, 3 Mar 2020 21:26:54 +0100 Err bitreich.org 70
i Err bitreich.org 70
ifix the horizontal scale Err bitreich.org 70
i Err bitreich.org 70
iDiffstat: Err bitreich.org 70
i M Makefile | 18 +++++++++--------- Err bitreich.org 70
i M ploot-braille.c | 26 +++++++++++++++----------- Err bitreich.org 70
i A ploot-csv.5 | 77 +++++++++++++++++++++++++++++++ Err bitreich.org 70
i D ploot-csv.7 | 77 ------------------------------- Err bitreich.org 70
i M ploot-farbfeld.c | 6 ++++-- Err bitreich.org 70
i M ploot-feed.c | 2 +- Err bitreich.org 70
i M ploot-text.c | 2 +- Err bitreich.org 70
i M src/csv.c | 2 +- Err bitreich.org 70
i M src/ffplot.c | 2 +- Err bitreich.org 70
i M src/scale.c | 84 +++++++------------------------ Err bitreich.org 70
i M src/scale.h | 8 +++----- Err bitreich.org 70
i D src/tool.c | 80 ------------------------------- Err bitreich.org 70
i A src/util.c | 80 +++++++++++++++++++++++++++++++ Err bitreich.org 70
i R src/tool.h -> src/util.h | 0 Err bitreich.org 70
i Err bitreich.org 70
i14 files changed, 211 insertions(+), 253 deletions(-) Err bitreich.org 70
i--- Err bitreich.org 70
1diff --git a/Makefile b/Makefile /scm/ploot/file/Makefile.gph bitreich.org 70
i@@ -1,27 +1,27 @@ Err bitreich.org 70
i include config.mk Err bitreich.org 70
i Err bitreich.org 70
i src = src/csv.c src/drawille.c src/ffplot.c src/font.c src/font13.c \ Err bitreich.org 70
i- src/font8.c src/log.c src/scale.c src/tool.c Err bitreich.org 70
i+ src/font8.c src/log.c src/scale.c src/util.c Err bitreich.org 70
i inc = src/csv.h src/drawille.h src/ffplot.h src/font.h src/log.h \ Err bitreich.org 70
i- src/scale.h src/tool.h Err bitreich.org 70
i+ src/scale.h src/util.h Err bitreich.org 70
i bin = ploot-farbfeld ploot-feed ploot-braille ploot-text Err bitreich.org 70
i obj = ${src:.c=.o} Err bitreich.org 70
i lib = -lm Err bitreich.org 70
i Err bitreich.org 70
i-all: $(bin) Err bitreich.org 70
i+all: ${bin} Err bitreich.org 70
i Err bitreich.org 70
i .c.o: Err bitreich.org 70
i ${CC} -c ${CFLAGS} -o $@ $< Err bitreich.org 70
i Err bitreich.org 70
i ${obj} ${bin:=.o}: ${inc} Makefile Err bitreich.org 70
i ${bin}: ${obj} ${bin:=.o} Err bitreich.org 70
i- ${CC} $(LFLAGS) -o $@ $@.o ${obj} $(lib) Err bitreich.org 70
i+ ${CC} ${LFLAGS} -o $@ $@.o ${obj} ${lib} Err bitreich.org 70
i Err bitreich.org 70
i-install: $(bin) Err bitreich.org 70
i- mkdir -p ${PREFIX}/bin $(MANDIR)/man1 $(MANDIR)/man7 Err bitreich.org 70
i- cp $(bin) ${PREFIX}/bin Err bitreich.org 70
i- cp ploot-farbfeld.1 ploot-feed.1 $(MANDIR)/man1 Err bitreich.org 70
i- cp ploot-csv.7 $(MANDIR)/man7 Err bitreich.org 70
i+install: ${bin} Err bitreich.org 70
i+ mkdir -p ${PREFIX}/bin ${MANDIR}/man1 ${MANDIR}/man5 Err bitreich.org 70
i+ cp ${bin} ${PREFIX}/bin Err bitreich.org 70
i+ cp *.1 ${MANDIR}/man1 Err bitreich.org 70
i+ cp *.5 ${MANDIR}/man7 Err bitreich.org 70
i Err bitreich.org 70
i clean: Err bitreich.org 70
i rm -f *.o */*.o ${bin} Err bitreich.org 70
1diff --git a/ploot-braille.c b/ploot-braille.c /scm/ploot/file/ploot-braille.c.gph bitreich.org 70
i@@ -10,7 +10,7 @@ Err bitreich.org 70
i Err bitreich.org 70
i #include "drawille.h" Err bitreich.org 70
i #include "scale.h" Err bitreich.org 70
i-#include "tool.h" Err bitreich.org 70
i+#include "util.h" Err bitreich.org 70
i #include "log.h" Err bitreich.org 70
i Err bitreich.org 70
i char const *arg0 = NULL; Err bitreich.org 70
i@@ -104,23 +104,26 @@ braille_render(struct drawille *drw, FILE *fp, double vmin, double vmax) Err bitreich.org 70
i } Err bitreich.org 70
i Err bitreich.org 70
i static void Err bitreich.org 70
i-plot(struct csv *vl, FILE *fp, size_t ncol, int row, int col) Err bitreich.org 70
i+plot(struct csv *vl, FILE *fp, size_t ncol, int rows, int cols) Err bitreich.org 70
i { Err bitreich.org 70
i double vmin, vmax, vstep; Err bitreich.org 70
i time_t tmin, tmax, tstep; Err bitreich.org 70
i struct drawille *drw; Err bitreich.org 70
i Err bitreich.org 70
i- col -= 8; Err bitreich.org 70
i+ cols -= 8; /* scale printed at the right */ Err bitreich.org 70
i Err bitreich.org 70
i- scale(vl, ncol, &tmin, &tmax, &tstep, &vmin, &vmax, &vstep); Err bitreich.org 70
i- row -= ncol - 1; /* room for the labels and the scale */ Err bitreich.org 70
i- row /= ncol; /* plot <ncol> times */ Err bitreich.org 70
i- row = MAX(row, 3); /* readable */ Err bitreich.org 70
i+ scale_minmax(vl, ncol, &tmin, &tmax, &vmin, &vmax); Err bitreich.org 70
i+ tstep = scale_tstep(tmin, tmax, cols / 10); Err bitreich.org 70
i+ vstep = scale_vstep(vmin, vmax, rows / 10); Err bitreich.org 70
i Err bitreich.org 70
i- debug("vstep=%lf vstep=%ld ncol=%zu row=%zu", vstep, tstep, ncol, row); Err bitreich.org 70
i+ rows -= ncol - 1; /* room for the labels and the scale */ Err bitreich.org 70
i+ rows /= ncol; /* plot <ncol> times */ Err bitreich.org 70
i+ rows = MAX(rows, 3); /* readable */ Err bitreich.org 70
i+ Err bitreich.org 70
i+ debug("vstep=%lf vstep=%ld ncol=%zu rows=%zu", vstep, tstep, ncol, rows); Err bitreich.org 70
i Err bitreich.org 70
i for (; ncol > 0; vl++, ncol--) { Err bitreich.org 70
i- assert(drw = drawille_new(row, col)); Err bitreich.org 70
i+ assert(drw = drawille_new(rows, cols)); Err bitreich.org 70
i fprintf(fp, " %s\n", vl->label); Err bitreich.org 70
i if (braille_histogram(vl, drw, tmin, tmax, vmin, vmax) == -1) Err bitreich.org 70
i die(1, "allocating drawille canvas"); Err bitreich.org 70
i@@ -128,7 +131,7 @@ plot(struct csv *vl, FILE *fp, size_t ncol, int row, int col) Err bitreich.org 70
i die(1, "rendering braille canvas"); Err bitreich.org 70
i free(drw); Err bitreich.org 70
i } Err bitreich.org 70
i- if (braille_axis_x(fp, tmin, tmax, tstep, col) == -1) Err bitreich.org 70
i+ if (braille_axis_x(fp, tmin, tmax, tstep, cols) == -1) Err bitreich.org 70
i die(1, "printing x axis");; Err bitreich.org 70
i Err bitreich.org 70
i } Err bitreich.org 70
i@@ -136,7 +139,7 @@ plot(struct csv *vl, FILE *fp, size_t ncol, int row, int col) Err bitreich.org 70
i static void Err bitreich.org 70
i usage(void) Err bitreich.org 70
i { Err bitreich.org 70
i- fprintf(stderr, "usage: %s\n", arg0); Err bitreich.org 70
i+ fprintf(stderr, "usage: %s [-r rows] [-c cols]\n", arg0); Err bitreich.org 70
i exit(1); Err bitreich.org 70
i } Err bitreich.org 70
i Err bitreich.org 70
i@@ -148,6 +151,7 @@ main(int argc, char **argv) Err bitreich.org 70
i int c, rows, cols; Err bitreich.org 70
i Err bitreich.org 70
i rows = 20, cols = 80; Err bitreich.org 70
i+ arg0 = *argv; Err bitreich.org 70
i optind = 0; Err bitreich.org 70
i while ((c = getopt(argc, argv, "r:c:")) > -1) { Err bitreich.org 70
i switch (c) { Err bitreich.org 70
1diff --git a/ploot-csv.5 b/ploot-csv.5 /scm/ploot/file/ploot-csv.5.gph bitreich.org 70
i@@ -0,0 +1,77 @@ Err bitreich.org 70
i+.Dd $Mdocdate: February 01 2020$ Err bitreich.org 70
i+.Dt PLOOT-CSV 5 Err bitreich.org 70
i+.Os Err bitreich.org 70
i+. Err bitreich.org 70
i+. Err bitreich.org 70
i+.Sh NAME Err bitreich.org 70
i+. Err bitreich.org 70
i+.Nm ploot-csv Err bitreich.org 70
i+.Nd input format used by the ploot set of programs Err bitreich.org 70
i+. Err bitreich.org 70
i+. Err bitreich.org 70
i+.Sh SYNOPSIS Err bitreich.org 70
i+. Err bitreich.org 70
i+.Bd -literal Err bitreich.org 70
i+epoch,column-name-1,column-name-2 Err bitreich.org 70
i+timestamp,value1,value2 Err bitreich.org 70
i+timestamp,value1,value2 Err bitreich.org 70
i+… Err bitreich.org 70
i+.Ed Err bitreich.org 70
i+. Err bitreich.org 70
i+. Err bitreich.org 70
i+.Sh DESCRIPTION Err bitreich.org 70
i+. Err bitreich.org 70
i+This is the simple comma-separated format used by the ploot-* programs. Err bitreich.org 70
i+. Err bitreich.org 70
i+. Err bitreich.org 70
i+.Sh INPUT FORMAT Err bitreich.org 70
i+. Err bitreich.org 70
i+.Nm Err bitreich.org 70
i+has a first header line, then zero or more data lines, both Err bitreich.org 70
i+comma-separated list of values. Err bitreich.org 70
i+. Err bitreich.org 70
i+. Err bitreich.org 70
i+.Ss Header line Err bitreich.org 70
i+. Err bitreich.org 70
i+The input must contain a first header line with the label of each column in order. Err bitreich.org 70
i+The first column is always Err bitreich.org 70
i+.Dq epoch . Err bitreich.org 70
i+Then there are the actual column names. Err bitreich.org 70
i+. Err bitreich.org 70
i+.Bd -literal -offset indent Err bitreich.org 70
i+epoch,free_memory,process_count Err bitreich.org 70
i+.Ed Err bitreich.org 70
i+. Err bitreich.org 70
i+. Err bitreich.org 70
i+.Ss Data lines Err bitreich.org 70
i+. Err bitreich.org 70
i+The following lines are the data. Err bitreich.org 70
i+The first column is always an unix timestamp as in Err bitreich.org 70
i+.Vt time_t . Err bitreich.org 70
i+The remaining columns are values parsed as floating point numbers by Err bitreich.org 70
i+.Xr strtod 3 : Err bitreich.org 70
i+. Err bitreich.org 70
i+.Bd -literal -offset indent Err bitreich.org 70
i+1533752053,16.3,45 Err bitreich.org 70
i+1533752054,18.7,42 Err bitreich.org 70
i+1533752055,40.1,39 Err bitreich.org 70
i+1533752056,40.1,39 Err bitreich.org 70
i+.Ed Err bitreich.org 70
i+. Err bitreich.org 70
i+. Err bitreich.org 70
i+.Sh SEE ALSO Err bitreich.org 70
i+. Err bitreich.org 70
i+.Xr ploot-feed 1 , Err bitreich.org 70
i+.Xr ploot-farbfeld 1 Err bitreich.org 70
i+. Err bitreich.org 70
i+.Sh HISTORY Err bitreich.org 70
i+. Err bitreich.org 70
i+.Nm Err bitreich.org 70
i+was defined at Err bitreich.org 70
i+.Lk gopher://bitreich.org/1/scm/ploot/ "Bitreich" Err bitreich.org 70
i+. Err bitreich.org 70
i+. Err bitreich.org 70
i+.Sh AUTHORS Err bitreich.org 70
i+. Err bitreich.org 70
i+.An Josuah Demangeon Err bitreich.org 70
i+.Aq Mt me@josuah.net Err bitreich.org 70
1diff --git a/ploot-csv.7 b/ploot-csv.7 /scm/ploot/file/ploot-csv.7.gph bitreich.org 70
i@@ -1,77 +0,0 @@ Err bitreich.org 70
i-.Dd $Mdocdate: February 01 2020$ Err bitreich.org 70
i-.Dt PLOOT-CSV 7 Err bitreich.org 70
i-.Os Err bitreich.org 70
i-. Err bitreich.org 70
i-. Err bitreich.org 70
i-.Sh NAME Err bitreich.org 70
i-. Err bitreich.org 70
i-.Nm ploot-csv Err bitreich.org 70
i-.Nd input format used by the ploot set of programs Err bitreich.org 70
i-. Err bitreich.org 70
i-. Err bitreich.org 70
i-.Sh SYNOPSIS Err bitreich.org 70
i-. Err bitreich.org 70
i-.Bd -literal Err bitreich.org 70
i-epoch,column-name-1,column-name-2 Err bitreich.org 70
i-timestamp,value1,value2 Err bitreich.org 70
i-timestamp,value1,value2 Err bitreich.org 70
i-… Err bitreich.org 70
i-.Ed Err bitreich.org 70
i-. Err bitreich.org 70
i-. Err bitreich.org 70
i-.Sh DESCRIPTION Err bitreich.org 70
i-. Err bitreich.org 70
i-This is the simple comma-separated format used by the ploot-* programs. Err bitreich.org 70
i-. Err bitreich.org 70
i-. Err bitreich.org 70
i-.Sh INPUT FORMAT Err bitreich.org 70
i-. Err bitreich.org 70
i-.Nm Err bitreich.org 70
i-has a first header line, then zero or more data lines, both Err bitreich.org 70
i-comma-separated list of values. Err bitreich.org 70
i-. Err bitreich.org 70
i-. Err bitreich.org 70
i-.Ss Header line Err bitreich.org 70
i-. Err bitreich.org 70
i-The input must contain a first header line with the label of each column in order. Err bitreich.org 70
i-The first column is always Err bitreich.org 70
i-.Dq epoch . Err bitreich.org 70
i-Then there are the actual column names. Err bitreich.org 70
i-. Err bitreich.org 70
i-.Bd -literal -offset indent Err bitreich.org 70
i-epoch,free_memory,process_count Err bitreich.org 70
i-.Ed Err bitreich.org 70
i-. Err bitreich.org 70
i-. Err bitreich.org 70
i-.Ss Data lines Err bitreich.org 70
i-. Err bitreich.org 70
i-The following lines are the data. Err bitreich.org 70
i-The first column is always an unix timestamp as in Err bitreich.org 70
i-.Vt time_t . Err bitreich.org 70
i-The remaining columns are values parsed as floating point numbers by Err bitreich.org 70
i-.Xr strtod 3 : Err bitreich.org 70
i-. Err bitreich.org 70
i-.Bd -literal -offset indent Err bitreich.org 70
i-1533752053,16.3,45 Err bitreich.org 70
i-1533752054,18.7,42 Err bitreich.org 70
i-1533752055,40.1,39 Err bitreich.org 70
i-1533752056,40.1,39 Err bitreich.org 70
i-.Ed Err bitreich.org 70
i-. Err bitreich.org 70
i-. Err bitreich.org 70
i-.Sh SEE ALSO Err bitreich.org 70
i-. Err bitreich.org 70
i-.Xr ploot-feed 1 , Err bitreich.org 70
i-.Xr ploot-farbfeld 1 Err bitreich.org 70
i-. Err bitreich.org 70
i-.Sh HISTORY Err bitreich.org 70
i-. Err bitreich.org 70
i-.Nm Err bitreich.org 70
i-was defined at Err bitreich.org 70
i-.Lk gopher://bitreich.org/1/scm/ploot/ "Bitreich" Err bitreich.org 70
i-. Err bitreich.org 70
i-. Err bitreich.org 70
i-.Sh AUTHORS Err bitreich.org 70
i-. Err bitreich.org 70
i-.An Josuah Demangeon Err bitreich.org 70
i-.Aq Mt me@josuah.net Err bitreich.org 70
1diff --git a/ploot-farbfeld.c b/ploot-farbfeld.c /scm/ploot/file/ploot-farbfeld.c.gph bitreich.org 70
i@@ -15,7 +15,7 @@ Err bitreich.org 70
i #include "ffplot.h" Err bitreich.org 70
i #include "font.h" Err bitreich.org 70
i #include "log.h" Err bitreich.org 70
i-#include "tool.h" Err bitreich.org 70
i+#include "util.h" Err bitreich.org 70
i #include "scale.h" Err bitreich.org 70
i Err bitreich.org 70
i #define MARGIN 4 Err bitreich.org 70
i@@ -211,7 +211,9 @@ plot(struct csv *vl, struct ffcolor **cl, size_t ncol, char *name, char *units) Err bitreich.org 70
i double vmin, vmax, vstep; Err bitreich.org 70
i time_t tmin, tmax, tstep; Err bitreich.org 70
i Err bitreich.org 70
i- scale(vl, ncol, &tmin, &tmax, &tstep, &vmin, &vmax, &vstep); Err bitreich.org 70
i+ scale_minmax(vl, ncol, &tmin, &tmax, &vmin, &vmax); Err bitreich.org 70
i+ tstep = scale_tstep(tmin, tmax, 7); Err bitreich.org 70
i+ vstep = scale_vstep(vmin, vmax, 7); Err bitreich.org 70
i Err bitreich.org 70
i assert(plot.buf = calloc(IMAGE_H * IMAGE_W, sizeof *plot.buf)); Err bitreich.org 70
i Err bitreich.org 70
1diff --git a/ploot-feed.c b/ploot-feed.c /scm/ploot/file/ploot-feed.c.gph bitreich.org 70
i@@ -9,7 +9,7 @@ Err bitreich.org 70
i #include <time.h> Err bitreich.org 70
i #include <unistd.h> Err bitreich.org 70
i Err bitreich.org 70
i-#include "tool.h" Err bitreich.org 70
i+#include "util.h" Err bitreich.org 70
i #include "log.h" Err bitreich.org 70
i Err bitreich.org 70
i #define WIDTH_MAX 1024 Err bitreich.org 70
1diff --git a/ploot-text.c b/ploot-text.c /scm/ploot/file/ploot-text.c.gph bitreich.org 70
i@@ -5,7 +5,7 @@ Err bitreich.org 70
i Err bitreich.org 70
i #include "drawille.h" Err bitreich.org 70
i #include "font.h" Err bitreich.org 70
i-#include "tool.h" Err bitreich.org 70
i+#include "util.h" Err bitreich.org 70
i Err bitreich.org 70
i char *arg0 = NULL; Err bitreich.org 70
i Err bitreich.org 70
1diff --git a/src/csv.c b/src/csv.c /scm/ploot/file/src/csv.c.gph bitreich.org 70
i@@ -9,7 +9,7 @@ Err bitreich.org 70
i #include <time.h> Err bitreich.org 70
i Err bitreich.org 70
i #include "log.h" Err bitreich.org 70
i-#include "tool.h" Err bitreich.org 70
i+#include "util.h" Err bitreich.org 70
i Err bitreich.org 70
i /* Err bitreich.org 70
i * Read CSV data onto a set of (struct csv). Err bitreich.org 70
1diff --git a/src/ffplot.c b/src/ffplot.c /scm/ploot/file/src/ffplot.c.gph bitreich.org 70
i@@ -7,7 +7,7 @@ Err bitreich.org 70
i #include <stdint.h> Err bitreich.org 70
i Err bitreich.org 70
i #include "font.h" Err bitreich.org 70
i-#include "tool.h" Err bitreich.org 70
i+#include "util.h" Err bitreich.org 70
i Err bitreich.org 70
i /* Err bitreich.org 70
i * Convert (x,y) coordinates to (row,col) for printing into the buffer. Err bitreich.org 70
1diff --git a/src/scale.c b/src/scale.c /scm/ploot/file/src/scale.c.gph bitreich.org 70
i@@ -3,7 +3,7 @@ Err bitreich.org 70
i #include <stddef.h> Err bitreich.org 70
i #include <time.h> Err bitreich.org 70
i Err bitreich.org 70
i-#include "tool.h" Err bitreich.org 70
i+#include "util.h" Err bitreich.org 70
i #include "log.h" Err bitreich.org 70
i Err bitreich.org 70
i /* Err bitreich.org 70
i@@ -31,7 +31,7 @@ scale_xpos(time_t t, time_t t1, time_t t2, int szx) Err bitreich.org 70
i return szx * (t - t1) / (t2 - t1); Err bitreich.org 70
i } Err bitreich.org 70
i Err bitreich.org 70
i-static void Err bitreich.org 70
i+void Err bitreich.org 70
i scale_minmax(struct csv *vl, int ncol, Err bitreich.org 70
i time_t *tmin, time_t *tmax, Err bitreich.org 70
i double *vmin, double *vmax) Err bitreich.org 70
i@@ -56,10 +56,10 @@ scale_minmax(struct csv *vl, int ncol, Err bitreich.org 70
i die(1, "invalid time scale: min=%lld max=%lld", *tmin, *tmax); Err bitreich.org 70
i } Err bitreich.org 70
i Err bitreich.org 70
i-static time_t Err bitreich.org 70
i-scale_tstep(time_t min, time_t max, int density) Err bitreich.org 70
i+time_t Err bitreich.org 70
i+scale_tstep(time_t min, time_t max, int nval) Err bitreich.org 70
i { Err bitreich.org 70
i- time_t dt, *s, scale[] = { Err bitreich.org 70
i+ time_t dt, *sc, scale[] = { Err bitreich.org 70
i 1, 5, 2, 10, 20, 30, 60, 60*2, 60*5, 60*10, 60*20, 60*30, 3600, Err bitreich.org 70
i 3600*2, 3600*5, 3600*10, 3600*18, 3600*24, 3600*24*2, Err bitreich.org 70
i 3600*24*5, 3600*24*10, 3600*24*20, 3600*24*30, 3600*24*50, Err bitreich.org 70
i@@ -67,75 +67,29 @@ scale_tstep(time_t min, time_t max, int density) Err bitreich.org 70
i }; Err bitreich.org 70
i Err bitreich.org 70
i dt = max - min; Err bitreich.org 70
i- for (s = scale; s < scale + LEN(scale); s++) Err bitreich.org 70
i- if (dt < *s * density) Err bitreich.org 70
i- return *s; Err bitreich.org 70
i- return 0; Err bitreich.org 70
i+ Err bitreich.org 70
i+ for (sc = scale; *sc > 0; sc++) Err bitreich.org 70
i+ if (dt < *sc * nval) Err bitreich.org 70
i+ return *sc; Err bitreich.org 70
i+ return dt / nval; Err bitreich.org 70
i } Err bitreich.org 70
i Err bitreich.org 70
i-static double Err bitreich.org 70
i-scale_vstep(double min, double max, int density) Err bitreich.org 70
i+double Err bitreich.org 70
i+scale_vstep(double min, double max, int nval) Err bitreich.org 70
i { Err bitreich.org 70
i- double dv, d, *s, scale[] = { 1, 2, 3, 5 }; Err bitreich.org 70
i+ double dv, d, *sc, scale[] = { 1, 2, 3, 5 }; Err bitreich.org 70
i Err bitreich.org 70
i dv = max - min; Err bitreich.org 70
i Err bitreich.org 70
i if (dv > 1) Err bitreich.org 70
i for (d = 1; d != 0; d *= 10) Err bitreich.org 70
i- for (s = scale; s < scale + LEN(scale); s++) Err bitreich.org 70
i- if (dv < *s * d * density) Err bitreich.org 70
i- return *s * d; Err bitreich.org 70
i+ for (sc = scale; sc < scale + LEN(scale); sc++) Err bitreich.org 70
i+ if (dv < *sc * d * nval) Err bitreich.org 70
i+ return *sc * d; Err bitreich.org 70
i if (dv < 1) Err bitreich.org 70
i for (d = 1; d != 0; d *= 10) Err bitreich.org 70
i- for (s = scale + LEN(scale) - 1; s >= scale; s--) Err bitreich.org 70
i- if (dv > *s / d * density / 2) Err bitreich.org 70
i- return *s / d; Err bitreich.org 70
i+ for (sc = scale + LEN(scale) - 1; sc >= scale; sc--) Err bitreich.org 70
i+ if (dv > *sc / d * nval / 2) Err bitreich.org 70
i+ return *sc / d; Err bitreich.org 70
i return 0; Err bitreich.org 70
i } Err bitreich.org 70
i- Err bitreich.org 70
i-/* Err bitreich.org 70
i- * Adjust the vertical scale so that everything fits, with nice Err bitreich.org 70
i- * scale values. Err bitreich.org 70
i- */ Err bitreich.org 70
i-void Err bitreich.org 70
i-scale_vminmax(double *min, double *max, int row) Err bitreich.org 70
i-{ Err bitreich.org 70
i- double unit, range, mi; Err bitreich.org 70
i- Err bitreich.org 70
i- range = *max - *min; Err bitreich.org 70
i- unit = 1; Err bitreich.org 70
i- Err bitreich.org 70
i- /* Zoom until it fills the canvas. */ Err bitreich.org 70
i- for (; (row - 1) * unit > range; unit /= 10) Err bitreich.org 70
i- continue; Err bitreich.org 70
i- Err bitreich.org 70
i- /* Dezoom until it fits the canvas. */ Err bitreich.org 70
i- for (; (row - 1) * unit < range; unit *= 10) Err bitreich.org 70
i- continue; Err bitreich.org 70
i- Err bitreich.org 70
i- /* Fine tune. */ Err bitreich.org 70
i- if ((row - 1) * unit / 5 > range) Err bitreich.org 70
i- unit /= 5; Err bitreich.org 70
i- if ((row - 1) * unit / 4 > range) Err bitreich.org 70
i- unit /= 4; Err bitreich.org 70
i- if ((row - 1) * unit / 2 > range) Err bitreich.org 70
i- unit /= 2; Err bitreich.org 70
i- Err bitreich.org 70
i- /* Align the minimum (and the zero). */ Err bitreich.org 70
i- for (mi = 0; mi > *min - unit; mi -= unit) Err bitreich.org 70
i- continue; Err bitreich.org 70
i- Err bitreich.org 70
i- /* Update the displayed minimal and maximal. */ Err bitreich.org 70
i- *min = mi; Err bitreich.org 70
i- *max = mi + unit * row; Err bitreich.org 70
i-} Err bitreich.org 70
i- Err bitreich.org 70
i-void Err bitreich.org 70
i-scale(struct csv *vl, int ncol, Err bitreich.org 70
i- time_t *tmin, time_t *tmax, time_t *tstep, Err bitreich.org 70
i- double *vmin, double *vmax, double *vstep) Err bitreich.org 70
i-{ Err bitreich.org 70
i- scale_minmax(vl, ncol, tmin, tmax, vmin, vmax); Err bitreich.org 70
i- *tstep = scale_tstep(*tmin, *tmax, SCALE_X); Err bitreich.org 70
i- *vstep = scale_vstep(*vmin, *vmax, SCALE_Y); Err bitreich.org 70
i-} Err bitreich.org 70
1diff --git a/src/scale.h b/src/scale.h /scm/ploot/file/src/scale.h.gph bitreich.org 70
i@@ -6,13 +6,11 @@ Err bitreich.org 70
i Err bitreich.org 70
i #include "csv.h" Err bitreich.org 70
i Err bitreich.org 70
i-#define SCALE_X 7 /* nb of values on x axis */ Err bitreich.org 70
i-#define SCALE_Y 7 /* nb of values on y axis */ Err bitreich.org 70
i- Err bitreich.org 70
i /**/ Err bitreich.org 70
i int scale_ypos (double, double, double, int); Err bitreich.org 70
i int scale_xpos (time_t, time_t, time_t, int); Err bitreich.org 70
i-void scale_vminmax (double *, double *, int); Err bitreich.org 70
i-void scale (struct csv *, int, time_t *, time_t *, time_t *, double *, double *, double *); Err bitreich.org 70
i+void scale_minmax (struct csv *, int, time_t *, time_t *, double *, double *); Err bitreich.org 70
i+time_t scale_tstep (time_t, time_t, int); Err bitreich.org 70
i+double scale_vstep (double, double, int); Err bitreich.org 70
i Err bitreich.org 70
i #endif Err bitreich.org 70
1diff --git a/src/tool.c b/src/tool.c /scm/ploot/file/src/tool.c.gph bitreich.org 70
i@@ -1,80 +0,0 @@ Err bitreich.org 70
i-#include "tool.h" Err bitreich.org 70
i- Err bitreich.org 70
i-#include <ctype.h> Err bitreich.org 70
i-#include <errno.h> Err bitreich.org 70
i-#include <limits.h> Err bitreich.org 70
i-#include <stdarg.h> Err bitreich.org 70
i-#include <stdio.h> Err bitreich.org 70
i-#include <stdlib.h> Err bitreich.org 70
i-#include <string.h> Err bitreich.org 70
i- Err bitreich.org 70
i-size_t Err bitreich.org 70
i-strlcpy(char *buf, const char *str, size_t sz) Err bitreich.org 70
i-{ Err bitreich.org 70
i- size_t len, cpy; Err bitreich.org 70
i- Err bitreich.org 70
i- cpy = ((len = strlen(str)) > sz) ? (sz) : (len); Err bitreich.org 70
i- memcpy(buf, str, cpy); Err bitreich.org 70
i- buf[sz - 1] = '\0'; Err bitreich.org 70
i- return len; Err bitreich.org 70
i-} Err bitreich.org 70
i- Err bitreich.org 70
i-void Err bitreich.org 70
i-put3utf(long rune) Err bitreich.org 70
i-{ Err bitreich.org 70
i- putchar((char)(0xe0 | (0x0f & (rune >> 12)))); /* 1110xxxx */ Err bitreich.org 70
i- putchar((char)(0x80 | (0x3f & (rune >> 6)))); /* 10xxxxxx */ Err bitreich.org 70
i- putchar((char)(0x80 | (0x3f & (rune)))); /* 10xxxxxx */ Err bitreich.org 70
i-} Err bitreich.org 70
i- Err bitreich.org 70
i-char * Err bitreich.org 70
i-strsep(char **strp, const char *sep) Err bitreich.org 70
i-{ Err bitreich.org 70
i- char *s, *prev; Err bitreich.org 70
i- Err bitreich.org 70
i- if (*strp == NULL) Err bitreich.org 70
i- return NULL; Err bitreich.org 70
i- for (s = prev = *strp; strchr(sep, *s) == NULL; s++); Err bitreich.org 70
i- if (*s == '\0') { Err bitreich.org 70
i- *strp = NULL; Err bitreich.org 70
i- return prev; Err bitreich.org 70
i- } Err bitreich.org 70
i- *s = '\0'; Err bitreich.org 70
i- *strp = s + 1; Err bitreich.org 70
i- Err bitreich.org 70
i- return prev; Err bitreich.org 70
i-} Err bitreich.org 70
i- Err bitreich.org 70
i-void Err bitreich.org 70
i-strchomp(char *s) Err bitreich.org 70
i-{ Err bitreich.org 70
i- char *x = s + strlen(s); Err bitreich.org 70
i- Err bitreich.org 70
i- while (--x >= s && (*x == '\r' || *x == '\n')) Err bitreich.org 70
i- *x = '\0'; Err bitreich.org 70
i-} Err bitreich.org 70
i- Err bitreich.org 70
i-/* Err bitreich.org 70
i- * Set 'str' to a human-readable form of 'num' with always a width of 8 (+1 for Err bitreich.org 70
i- * the '\0' terminator). Buffer overflow is ensured not to happen due to the Err bitreich.org 70
i- * max size of a double. Return the exponent. Err bitreich.org 70
i- */ Err bitreich.org 70
i-int Err bitreich.org 70
i-humanize(char *str, double val) Err bitreich.org 70
i-{ Err bitreich.org 70
i- int exp, precision; Err bitreich.org 70
i- char label[] = { '\0', 'M', 'G', 'T', 'E' }; Err bitreich.org 70
i- Err bitreich.org 70
i- for (exp = 0; ABS(val) > 1000; exp++) Err bitreich.org 70
i- val /= 1000; Err bitreich.org 70
i- Err bitreich.org 70
i- precision = (ABS(val) < 10) ? 2 : (ABS(val) < 100) ? 1 : 0; Err bitreich.org 70
i- precision += (exp == 0); Err bitreich.org 70
i- Err bitreich.org 70
i- snprintf(str, 9, "%+.*f %c", precision, val, label[exp]); Err bitreich.org 70
i- str[8] = '\0'; Err bitreich.org 70
i- if (val >= 0) Err bitreich.org 70
i- str[0] = ' '; Err bitreich.org 70
i- Err bitreich.org 70
i- return exp * 3; Err bitreich.org 70
i-} Err bitreich.org 70
1diff --git a/src/util.c b/src/util.c /scm/ploot/file/src/util.c.gph bitreich.org 70
i@@ -0,0 +1,80 @@ Err bitreich.org 70
i+#include "util.h" Err bitreich.org 70
i+ Err bitreich.org 70
i+#include <ctype.h> Err bitreich.org 70
i+#include <errno.h> Err bitreich.org 70
i+#include <limits.h> Err bitreich.org 70
i+#include <stdarg.h> Err bitreich.org 70
i+#include <stdio.h> Err bitreich.org 70
i+#include <stdlib.h> Err bitreich.org 70
i+#include <string.h> Err bitreich.org 70
i+ Err bitreich.org 70
i+size_t Err bitreich.org 70
i+strlcpy(char *buf, const char *str, size_t sz) Err bitreich.org 70
i+{ Err bitreich.org 70
i+ size_t len, cpy; Err bitreich.org 70
i+ Err bitreich.org 70
i+ cpy = ((len = strlen(str)) > sz) ? (sz) : (len); Err bitreich.org 70
i+ memcpy(buf, str, cpy); Err bitreich.org 70
i+ buf[sz - 1] = '\0'; Err bitreich.org 70
i+ return len; Err bitreich.org 70
i+} Err bitreich.org 70
i+ Err bitreich.org 70
i+void Err bitreich.org 70
i+put3utf(long rune) Err bitreich.org 70
i+{ Err bitreich.org 70
i+ putchar((char)(0xe0 | (0x0f & (rune >> 12)))); /* 1110xxxx */ Err bitreich.org 70
i+ putchar((char)(0x80 | (0x3f & (rune >> 6)))); /* 10xxxxxx */ Err bitreich.org 70
i+ putchar((char)(0x80 | (0x3f & (rune)))); /* 10xxxxxx */ Err bitreich.org 70
i+} Err bitreich.org 70
i+ Err bitreich.org 70
i+char * Err bitreich.org 70
i+strsep(char **strp, const char *sep) Err bitreich.org 70
i+{ Err bitreich.org 70
i+ char *s, *prev; Err bitreich.org 70
i+ Err bitreich.org 70
i+ if (*strp == NULL) Err bitreich.org 70
i+ return NULL; Err bitreich.org 70
i+ for (s = prev = *strp; strchr(sep, *s) == NULL; s++); Err bitreich.org 70
i+ if (*s == '\0') { Err bitreich.org 70
i+ *strp = NULL; Err bitreich.org 70
i+ return prev; Err bitreich.org 70
i+ } Err bitreich.org 70
i+ *s = '\0'; Err bitreich.org 70
i+ *strp = s + 1; Err bitreich.org 70
i+ Err bitreich.org 70
i+ return prev; Err bitreich.org 70
i+} Err bitreich.org 70
i+ Err bitreich.org 70
i+void Err bitreich.org 70
i+strchomp(char *s) Err bitreich.org 70
i+{ Err bitreich.org 70
i+ char *x = s + strlen(s); Err bitreich.org 70
i+ Err bitreich.org 70
i+ while (--x >= s && (*x == '\r' || *x == '\n')) Err bitreich.org 70
i+ *x = '\0'; Err bitreich.org 70
i+} Err bitreich.org 70
i+ Err bitreich.org 70
i+/* Err bitreich.org 70
i+ * Set 'str' to a human-readable form of 'num' with always a width of 8 (+1 for Err bitreich.org 70
i+ * the '\0' terminator). Buffer overflow is ensured not to happen due to the Err bitreich.org 70
i+ * max size of a double. Return the exponent. Err bitreich.org 70
i+ */ Err bitreich.org 70
i+int Err bitreich.org 70
i+humanize(char *str, double val) Err bitreich.org 70
i+{ Err bitreich.org 70
i+ int exp, precision; Err bitreich.org 70
i+ char label[] = { '\0', 'M', 'G', 'T', 'E' }; Err bitreich.org 70
i+ Err bitreich.org 70
i+ for (exp = 0; ABS(val) > 1000; exp++) Err bitreich.org 70
i+ val /= 1000; Err bitreich.org 70
i+ Err bitreich.org 70
i+ precision = (ABS(val) < 10) ? 2 : (ABS(val) < 100) ? 1 : 0; Err bitreich.org 70
i+ precision += (exp == 0); Err bitreich.org 70
i+ Err bitreich.org 70
i+ snprintf(str, 9, "%+.*f %c", precision, val, label[exp]); Err bitreich.org 70
i+ str[8] = '\0'; Err bitreich.org 70
i+ if (val >= 0) Err bitreich.org 70
i+ str[0] = ' '; Err bitreich.org 70
i+ Err bitreich.org 70
i+ return exp * 3; Err bitreich.org 70
i+} Err bitreich.org 70
1diff --git a/src/tool.h b/src/util.h /scm/ploot/file/src/util.h.gph bitreich.org 70
.
Response:
text/plain