xref: /minix3/minix/usr.bin/trace/escape.c (revision 521fa314e2aaec3c192c15f2aaa4c677a544e62a)
1 
2 #include "inc.h"
3 
4 static const char *const escape[256] = {
5 	"\\0",   "\\x01", "\\x02", "\\x03", "\\x04", "\\x05", "\\x06", "\\x07",
6 	"\\x08", "\\t",   "\\n",   "\\x0B", "\\x0C", "\\r",   "\\x0E", "\\x0F",
7 	"\\x10", "\\x11", "\\x12", "\\x13", "\\x14", "\\x15", "\\x16", "\\x17",
8 	"\\x18", "\\x19", "\\x1A", "\\x1B", "\\x1C", "\\x1D", "\\x1E", "\\x1F",
9 	" ",     "!",     "\\\"",  "#",     "$",     "%",     "&",     "'",
10 	"(",     ")",     "*",     "+",     ",",     "-",     ".",     "/",
11 	"0",     "1",     "2",     "3",     "4",     "5",     "6",     "7",
12 	"8",     "9",     ":",     ";",     "<",     "=",     ">",     "?",
13 	"@",     "A",     "B",     "C",     "D",     "E",     "F",     "G",
14 	"H",     "I",     "J",     "K",     "L",     "M",     "N",     "O",
15 	"P",     "Q",     "R",     "S",     "T",     "U",     "V",     "W",
16 	"X",     "Y",     "Z",     "[",     "\\",    "]",     "^",     "_",
17 	"`",     "a",     "b",     "c",     "d",     "e",     "f",     "g",
18 	"h",     "i",     "j",     "k",     "l",     "m",     "n",     "o",
19 	"p",     "q",     "r",     "s",     "t",     "u",     "v",     "w",
20 	"x",     "y",     "z",     "{",     "|",     "}",     "~",     "\\x7F",
21 	"\\x80", "\\x81", "\\x82", "\\x83", "\\x84", "\\x85", "\\x86", "\\x87",
22 	"\\x88", "\\x89", "\\x8A", "\\x8B", "\\x8C", "\\x8D", "\\x8E", "\\x8F",
23 	"\\x90", "\\x91", "\\x92", "\\x93", "\\x94", "\\x95", "\\x96", "\\x97",
24 	"\\x98", "\\x99", "\\x9A", "\\x9B", "\\x9C", "\\x9D", "\\x9E", "\\x9F",
25 	"\\xA0", "\\xA1", "\\xA2", "\\xA3", "\\xA4", "\\xA5", "\\xA6", "\\xA7",
26 	"\\xA8", "\\xA9", "\\xAA", "\\xAB", "\\xAC", "\\xAD", "\\xAE", "\\xAF",
27 	"\\xB0", "\\xB1", "\\xB2", "\\xB3", "\\xB4", "\\xB5", "\\xB6", "\\xB7",
28 	"\\xB8", "\\xB9", "\\xBA", "\\xBB", "\\xBC", "\\xBD", "\\xBE", "\\xBF",
29 	"\\xC0", "\\xC1", "\\xC2", "\\xC3", "\\xC4", "\\xC5", "\\xC6", "\\xC7",
30 	"\\xC8", "\\xC9", "\\xCA", "\\xCB", "\\xCC", "\\xCD", "\\xCE", "\\xCF",
31 	"\\xD0", "\\xD1", "\\xD2", "\\xD3", "\\xD4", "\\xD5", "\\xD6", "\\xD7",
32 	"\\xD8", "\\xD9", "\\xDA", "\\xDB", "\\xDC", "\\xDD", "\\xDE", "\\xDF",
33 	"\\xE0", "\\xE1", "\\xE2", "\\xE3", "\\xE4", "\\xE5", "\\xE6", "\\xE7",
34 	"\\xE8", "\\xE9", "\\xEA", "\\xEB", "\\xEC", "\\xED", "\\xEE", "\\xEF",
35 	"\\xF0", "\\xF1", "\\xF2", "\\xF3", "\\xF4", "\\xF5", "\\xF6", "\\xF7",
36 	"\\xF8", "\\xF9", "\\xFA", "\\xFB", "\\xFC", "\\xFD", "\\xFE", "\\xFF",
37 };
38 
39 /*
40  * For the given character, return a string representing an escaped version of
41  * the character.
42  */
43 const char *
get_escape(char c)44 get_escape(char c)
45 {
46 
47 	return escape[(unsigned int)(unsigned char)c];
48 }
49