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