diff options
author | June McEnroe <june@causal.agency> | 2018-10-03 16:34:09 -0400 |
---|---|---|
committer | June McEnroe <june@causal.agency> | 2018-10-03 16:34:09 -0400 |
commit | 2287c43eef06304be656a70184f9fd42d9645014 (patch) | |
tree | 1c6f6f19e6243c111269ce9b0292de0eb0331df6 /bin/psfed.c | |
parent | Fix ≈ glyph of sans6x8 (diff) | |
download | src-2287c43eef06304be656a70184f9fd42d9645014.tar.gz src-2287c43eef06304be656a70184f9fd42d9645014.zip |
Add -H flag to psfed to increase height
Diffstat (limited to 'bin/psfed.c')
-rw-r--r-- | bin/psfed.c | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/bin/psfed.c b/bin/psfed.c index b51da092..307e32b4 100644 --- a/bin/psfed.c +++ b/bin/psfed.c @@ -504,10 +504,12 @@ int main(int argc, char *argv[]) { uint32_t newLen = 256; uint32_t newWidth = 8; uint32_t newHeight = 16; + uint32_t setHeight = 0; int opt; - while (0 < (opt = getopt(argc, argv, "g:h:w:"))) { + while (0 < (opt = getopt(argc, argv, "H:g:h:w:"))) { switch (opt) { + break; case 'H': setHeight = strtoul(optarg, NULL, 0); break; case 'g': newLen = strtoul(optarg, NULL, 0); break; case 'h': newHeight = strtoul(optarg, NULL, 0); break; case 'w': newWidth = strtoul(optarg, NULL, 0); @@ -520,6 +522,24 @@ int main(int argc, char *argv[]) { path = strdup(argv[optind]); fileRead(newLen, newWidth, newHeight); + if (setHeight) { + if (setHeight < header.glyph.height) { + errx(EX_CONFIG, "cannot decrease height"); + } + + uint32_t setSize = bytes(header.glyph.width) * setHeight; + uint8_t *setGlyphs = calloc(header.glyph.len, setSize); + for (uint32_t i = 0; i < header.glyph.len; ++i) { + memcpy(&setGlyphs[setSize * i], glyph(i), header.glyph.size); + } + free(glyphs); + glyphs = setGlyphs; + + header.glyph.height = setHeight; + header.glyph.size = setSize; + normal.modified = true; + } + frameOpen(); frameClear(); |