From fb92a2f9abfcd7e64687a19d9846521795063fb3 Mon Sep 17 00:00:00 2001 From: June McEnroe Date: Mon, 20 Aug 2018 23:03:54 -0400 Subject: Generate scheme.h --- bin/.gitignore | 2 ++ bin/Makefile | 5 ++++- bin/scheme.c | 33 ++++++++++++++++++++++++++++++++- 3 files changed, 38 insertions(+), 2 deletions(-) diff --git a/bin/.gitignore b/bin/.gitignore index 5ff66354..0c078cbb 100644 --- a/bin/.gitignore +++ b/bin/.gitignore @@ -1,4 +1,6 @@ tags +scheme.h +*.o atch dtch glitch diff --git a/bin/Makefile b/bin/Makefile index 677b5673..5ccf614a 100644 --- a/bin/Makefile +++ b/bin/Makefile @@ -13,11 +13,14 @@ bsd: any $(BSD_BINS) linux: any $(LIN_BINS) .gitignore: Makefile - echo tags $(ALL_BINS) scheme.png | tr ' ' '\n' > .gitignore + echo tags scheme.h *.o $(ALL_BINS) scheme.png | tr ' ' '\n' > .gitignore tags: *.c ctags -w *.c +scheme.h: scheme + ./scheme -c > scheme.h + atch: dtch ln -f dtch atch diff --git a/bin/scheme.c b/bin/scheme.c index 20c7efbf..4ec5453b 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 0'>2022-02-13Bail from blame if blob is binaryJune McEnroe 2022-02-13Remove dependency on memrchrJune McEnroe 2020-03-13Bump versionJason A. Donenfeld 2020-03-13global: use proper accessors for maybe_treeJason A. Donenfeld 2020-03-12ui-snapshot: add support for zstd compressionChristian Hesse 2020-03-12tests: add tests for xz compressed snapshotsChristian Hesse 2020-02-26ui-snapshot: add support for lzip compressionHanspeter Portner 2020-02-17git: update to v2.25.1Christian Hesse 2020-01-13tests: allow to skip git version testsChristian Hesse 2020-01-13Bump versionJason A. Donenfeld 2020-01-13git: update to v2.25.0Christian Hesse 2019-12-11tests: skip tests if strace is not functionalChristian Hesse 2019-12-10git: update to v2.24.1Christian Hesse 2019-11-22ui-repolist: do not return unsigned (negative) valueChristian Hesse 2019-11-08git: update to v2.24.0Christian Hesse 2019-10-25git: update to v2.23.0Christian Hesse 2019-10-25git: update to v2.22.0Christian Hesse 2019-06-25ui-tree: allow per repository override for enable-blameChristian Hesse 2019-06-05tests: successfully validate rc versionsChristian Hesse 2019-06-05git: update to v2.21.0Christian Hesse 2019-06-05ui-ssdiff: ban strncat()Christian Hesse 2019-06-05global: make 'char *path' const where possibleChristian Hesse 2019-05-20ui-shared: restrict to 15 levelsJason A. Donenfeld 2019-02-23ui-diff,ui-tag: don't use htmlf with non-formatted stringsChris Mayo 2019-02-23ui-ssdiff: resolve HTML5 validation errorsChris Mayo 2019-01-03filters: migrate from luacrypto to luaosslJason A. Donenfeld 2019-01-02ui-shared: fix broken sizeof in title setting and rewriteJason A. Donenfeld 2018-12-09git: update to v2.20.0Christian Hesse 2018-11-25ui-blame: set repo for sbJason A. Donenfeld 2018-11-25auth-filter: pass url with query string attachedJason A. Donenfeld 2018-11-21git: use xz compressed archive for downloadChristian Hesse 2018-10-12git: update to v2.19.1Christian Hesse 2018-09-11ui-ssdiff: ban strcat()Christian Hesse 2018-09-11ui-ssdiff: ban strncpy()Christian Hesse 2018-09-11ui-shared: ban strcat()Christian Hesse 2018-09-11ui-patch: ban sprintf()Christian Hesse 2018-09-11ui-log: ban strncpy()Christian Hesse 2018-09-11ui-log: ban strcpy()Christian Hesse 2018-09-11parsing: ban sprintf()Christian Hesse 2018-09-11parsing: ban strncpy()Christian Hesse 2018-08-28filters: generate anchor links from markdownChristian Hesse 2018-08-03Bump version.Jason A. Donenfeld 2018-08-03clone: fix directory traversalJason A. Donenfeld 2018-08-03config: record repo.snapshot-prefix in the per-repo configKonstantin Ryabitsev