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 * 44 get_escape(char c) 45 { 46 47 return escape[(unsigned int)(unsigned char)c]; 48 } 49