From 8d2b1669e695a54240a113023ecbe76d35da4f9c Mon Sep 17 00:00:00 2001 From: Curtis McEnroe Date: Mon, 20 Aug 2018 23:03:54 -0400 Subject: Generate scheme.h --- bin/scheme.c | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) (limited to 'bin/scheme.c') diff --git a/bin/scheme.c b/bin/scheme.c index db4ff88f..00cb9581 100644 --- a/bin/scheme.c +++ b/bin/scheme.c @@ -126,6 +126,36 @@ static void hex(bool ansi) { printHex(scheme.cursor); } +static void printC(struct Hsv hsv) { + struct Rgb rgb = toRgb(hsv); + printf("\t0x%02X%02X%02X,\n", rgb.r, rgb.g, rgb.b); +} +static void header(void) { + printf( + "// This file is generated by scheme -c.\n\n" + "#include \n\n" + "const struct {\n" + "\tuint32_t darkBlack, darkRed, darkGreen, darkYellow;\n" + "\tuint32_t darkBlue, darkMagenta, darkCyan, darkWhite;\n" + "\tuint32_t lightBlack, lightRed, lightGreen, lightYellow;\n" + "\tuint32_t lightBlue, lightMagenta, lightCyan, lightWhite;\n" + "\tuint32_t background, text, bold, selection, cursor;\n" + "} SCHEME = {\n" + ); + for (int i = BLACK; i <= WHITE; ++i) { + printC(scheme.dark[i]); + } + for (int i = BLACK; i <= WHITE; ++i) { + printC(scheme.light[i]); + } + printC(scheme.background); + printC(scheme.text); + printC(scheme.bold); + printC(scheme.selection); + printC(scheme.cursor); + printf("};\n"); +} + static void console(void) { for (int i = BLACK; i <= WHITE; ++i) { struct Rgb rgb = toRgb(scheme.dark[i]); @@ -235,7 +265,7 @@ int main(int argc, char *argv[]) { bool ansi = true; char out = 'x'; int opt; - while (0 < (opt = getopt(argc, argv, "aghlmtx"))) { + while (0 < (opt = getopt(argc, argv, "acghlmtx"))) { switch (opt) { break; case 'a': ansi = true; break; case 't': ansi = false; @@ -244,6 +274,7 @@ int main(int argc, char *argv[]) { } } switch (out) { + break; case 'c': header(); break; case 'g': png((struct Hsv *)&scheme, (ansi ? 16 : 21)); break; case 'h': hsv(ansi); break; case 'l': console(); -- cgit 1.4.1