ihumanize a number for the 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 04a8bcf172e92e0f70bc889b5181bc3cbdb8f381 /scm/ploot/commit/04a8bcf172e92e0f70bc889b5181bc3cbdb8f381.gph bitreich.org 70
hAuthor: Josuah Demangeon <mail@josuah.net> URL:mailto:mail@josuah.net bitreich.org 70
iDate: Fri, 2 Feb 2018 02:16:15 +0100 Err bitreich.org 70
i Err bitreich.org 70
ihumanize a number for the scale Err bitreich.org 70
i Err bitreich.org 70
iDiffstat: Err bitreich.org 70
i A .gitignore | 2 ++ Err bitreich.org 70
i A Makefile | 4 ++++ Err bitreich.org 70
i A plot | 0 Err bitreich.org 70
i A plot.c | 37 +++++++++++++++++++++++++++++++ Err bitreich.org 70
i Err bitreich.org 70
i4 files changed, 43 insertions(+), 0 deletions(-) Err bitreich.org 70
i--- Err bitreich.org 70
1diff --git a/.gitignore b/.gitignore /scm/ploot/file/.gitignore.gph bitreich.org 70
i@@ -0,0 +1,2 @@ Err bitreich.org 70
i+*.o Err bitreich.org 70
i+./plot Err bitreich.org 70
1diff --git a/Makefile b/Makefile /scm/ploot/file/Makefile.gph bitreich.org 70
i@@ -0,0 +1,4 @@ Err bitreich.org 70
i+CFLAGS = -Wall -Wextra -Werror -std=c89 -pedantic Err bitreich.org 70
i+ Err bitreich.org 70
i+all: plot.o Err bitreich.org 70
i+ ${CC} -o plot plot.o Err bitreich.org 70
1diff --git a/plot b/plot /scm/ploot/file/plot.gph bitreich.org 70
iBinary files differ. Err bitreich.org 70
1diff --git a/plot.c b/plot.c /scm/ploot/file/plot.c.gph bitreich.org 70
i@@ -0,0 +1,37 @@ Err bitreich.org 70
i+#include <stdio.h> Err bitreich.org 70
i+ Err bitreich.org 70
i+#define ABS(x) ((x) < 0 ? -(x) : (x)) 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 Err bitreich.org 70
i+ * (including '\0' terminator). Err bitreich.org 70
i+ */ Err bitreich.org 70
i+void Err bitreich.org 70
i+humanize(double num, char *str, size_t len) Err bitreich.org 70
i+{ Err bitreich.org 70
i+ int exp; Err bitreich.org 70
i+ char *label = " kMGTE", fmt[] = "%+.?f%c"; Err bitreich.org 70
i+ Err bitreich.org 70
i+ for (exp = 0; ABS(num) > 1000; exp += 3) Err bitreich.org 70
i+ num /= 1000; Err bitreich.org 70
i+ Err bitreich.org 70
i+ fmt[3] = (ABS(num) < 10) ? '3' : (ABS(num) < 100) ? '2' : '1'; Err bitreich.org 70
i+ if (exp == 0) { Err bitreich.org 70
i+ fmt[5] = '\0'; Err bitreich.org 70
i+ fmt[3]++; Err bitreich.org 70
i+ } Err bitreich.org 70
i+ snprintf(str, len, fmt, num, label[exp / 3]); Err bitreich.org 70
i+ if (num > 0) Err bitreich.org 70
i+ str[0] = ' '; Err bitreich.org 70
i+} Err bitreich.org 70
i+ Err bitreich.org 70
i+int Err bitreich.org 70
i+main() Err bitreich.org 70
i+{ Err bitreich.org 70
i+ char str[8]; Err bitreich.org 70
i+ Err bitreich.org 70
i+ humanize(-1 << 18, str, sizeof(str)); Err bitreich.org 70
i+ printf("%s\n", str); Err bitreich.org 70
i+ Err bitreich.org 70
i+ return 0; Err bitreich.org 70
i+} Err bitreich.org 70
.
Response:
text/plain