| 219 | #define eventname(i) (getstr(tmname[i])) |
| 220 | |
| 221 | static void PrintString(const TString* ts) |
| 222 | { |
| 223 | const char* s=getstr(ts); |
| 224 | size_t i,n=tsslen(ts); |
| 225 | printf("\""); |
| 226 | for (i=0; i<n; i++) |
| 227 | { |
| 228 | int c=(int)(unsigned char)s[i]; |
| 229 | switch (c) |
| 230 | { |
| 231 | case '"': |
| 232 | printf("\\\""); |
| 233 | break; |
| 234 | case '\\': |
| 235 | printf("\\\\"); |
| 236 | break; |
| 237 | case '\a': |
| 238 | printf("\\a"); |
| 239 | break; |
| 240 | case '\b': |
| 241 | printf("\\b"); |
| 242 | break; |
| 243 | case '\f': |
| 244 | printf("\\f"); |
| 245 | break; |
| 246 | case '\n': |
| 247 | printf("\\n"); |
| 248 | break; |
| 249 | case '\r': |
| 250 | printf("\\r"); |
| 251 | break; |
| 252 | case '\t': |
| 253 | printf("\\t"); |
| 254 | break; |
| 255 | case '\v': |
| 256 | printf("\\v"); |
| 257 | break; |
| 258 | default: |
| 259 | if (isprint(c)) printf("%c",c); else printf("\\%03d",c); |
| 260 | break; |
| 261 | } |
| 262 | } |
| 263 | printf("\""); |
| 264 | } |
| 265 | |
| 266 | static void PrintType(const Proto* f, int i) |
| 267 | { |
no test coverage detected