micro-utils/miscutils/spark.c

51 lines
738 B
C

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
long parse_long(const char *str) {
long val;
char *ptr;
val = strtol(str, &ptr, 0);
if (!*str || *ptr)
return 0;
return val;
}
int main(int argc, char **argv) {
long min = 0;
long max = 0;
if (argc > 1) {
for (int i = 1; i < argc; i++) {
long val = parse_long(argv[i]);
if (val > max)
max = val;
else if (val < min)
min = val;
}
}
else {
printf("spark [val1 val2...]\n");
return 0;
}
long diff = max - min - 1;
if (diff < 1)
diff = 1;
for (int i = 1; i < argc; i++) {
putchar('\xe2');
putchar('\x96');
putchar('\x82' + round(parse_long(argv[i]) - min - 1) / diff * 7);
}
putchar('\n');
return 0;
}