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 | 3322c6161436098504dbf467bd1973cadc7f2712 (patch) | |
tree | 124e627d6f6aaaf554b3132e52329cb6ab8dc623 | |
parent | Simplify bit lexing and parsing (diff) | |
download | src-3322c6161436098504dbf467bd1973cadc7f2712.tar.gz src-3322c6161436098504dbf467bd1973cadc7f2712.zip |
Add ASCII control code names to bit
-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 ed03eb97..6ef8ade1 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))) { |