diff options
author | June McEnroe <june@causal.agency> | 2020-12-31 18:58:45 -0500 |
---|---|---|
committer | June McEnroe <june@causal.agency> | 2020-12-31 18:58:45 -0500 |
commit | 2fbf2818acf804137151f4fa4ad6e48952199c20 (patch) | |
tree | c1f9b6a4d6491e78d349067a50a636cab3c4393c /bin | |
parent | Simplify bit lexing and parsing (diff) | |
download | src-2fbf2818acf804137151f4fa4ad6e48952199c20.tar.gz src-2fbf2818acf804137151f4fa4ad6e48952199c20.zip |
Add ASCII control code names to bit
Diffstat (limited to 'bin')
-rw-r--r-- | bin/bit.y | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/bin/bit.y b/bin/bit.y index d4ca3b8e..7a7d37ed 100644 --- a/bin/bit.y +++ b/bin/bit.y @@ -159,6 +159,14 @@ static int yylex(void) { } } +static const char *Codes[128] = { + "NUL", "SOH", "STX", "ETX", "EOT", "ENQ", "ACK", "BEL", + "BS", "HT", "NL", "VT", "NP", "CR", "SO", "SI", + "DLE", "DC1", "DC2", "DC3", "DC4", "NAK", "SYN", "ETB", + "CAN", "EM", "SUB", "ESC", "FS", "GS", "RS", "US", + [127] = "DEL", +}; + static void print(uint64_t val) { int bits = val > UINT32_MAX ? 64 : val > UINT16_MAX ? 32 @@ -172,8 +180,9 @@ static void print(uint64_t val) { } printf(" %#"PRIo64" 0b%s", val, bin); } - if (val < 128 && isprint(val)) { - printf(" '%c'", (char)val); + if (val < 128) { + if (isprint(val)) printf(" '%c'", (char)val); + if (Codes[val]) printf(" %s", Codes[val]); } if (val) { if (!(val & MASK(40))) { |