commit f3f98c7007ed5089ebedcd43402a071da839ee89 from: Omar Polo date: Tue Feb 08 22:43:32 2022 UTC prettify pagebundler output commit - 34b4388f7fddbfe1af5164983ff624e075537a31 commit + f3f98c7007ed5089ebedcd43402a071da839ee89 blob - c6213eb152fc7ca12894974ace9ea49632edc6fb blob + 5d0967c18384a468f594004896966a810ac030fd --- pagebundler.c +++ pagebundler.c @@ -22,6 +22,7 @@ * Usage: pagebundler file > outfile */ +#include #include #include #include @@ -54,10 +55,16 @@ setfname(const char *fname, char *buf, size_t siz) buf[len] = '\0'; } +static int +validc(int c) +{ + return isprint(c) && c != '\\' && c != '\'' && c != '\n'; +} + int main(int argc, char **argv) { - size_t len, r, i; + size_t len, r, i, n; int did; FILE *f; uint8_t buf[BUFSIZ]; @@ -76,10 +83,11 @@ main(int argc, char **argv) return 1; } - printf("const uint8_t %s[] = {\n", varname); + printf("const uint8_t %s[] = {", varname); did = 0; len = 0; + n = 0; for (;;) { r = fread(buf, 1, sizeof(buf), f); len += r; @@ -87,9 +95,18 @@ main(int argc, char **argv) if (r != 0) did = 1; - printf("\t"); - for (i = 0; i < r; ++i) { - printf("0x%x, ", buf[i]); + for (i = 0; i < r; ++i, ++n) { + if (n % 12 == 0) + printf("\n\t"); + else + printf(" "); + + if (validc(buf[i])) + printf("'%c',", buf[i]); + else if (buf[i] == '\n') + printf("'\\n',"); + else + printf("0x%x,", buf[i]); } printf("\n");