5 /* ---------------------------------------------------------------------- */
7 #define SAVE_STRING_COUNT 50
8 static void *strings[SAVE_STRING_COUNT];
11 /* ---------------------------------------------------------------------- */
17 if (strings[nextstring]) free (strings[nextstring]);
18 res = strings[nextstring] = xmalloc (n);
19 if (++nextstring == SAVE_STRING_COUNT) nextstring = 0;
23 /* ---------------------------------------------------------------------- */
26 debugstr_an (LPCSTR src, int n)
30 if (!src) return "(null)";
32 dst = res = gimme1 (n * 4 + 10);
34 while (n-- > 0 && *src)
39 case '\n': *dst++ = '\\'; *dst++ = 'n'; break;
40 case '\r': *dst++ = '\\'; *dst++ = 'r'; break;
41 case '\t': *dst++ = '\\'; *dst++ = 't'; break;
42 case '"': *dst++ = '\\'; *dst++ = '"'; break;
43 case '\\': *dst++ = '\\'; *dst++ = '\\'; break;
45 if (c >= ' ' && c <= 126)
50 *dst++ = '0' + ((c >> 6) & 7);
51 *dst++ = '0' + ((c >> 3) & 7);
52 *dst++ = '0' + ((c >> 0) & 7);
67 /* ---------------------------------------------------------------------- */
72 return debugstr_an (s, 80);
75 /* ---------------------------------------------------------------------- */
78 debugstr_wn (LPCWSTR src, int n)
82 if (!src) return "(null)";
84 dst = res = gimme1 (n * 4 + 10);
86 while (n-- > 0 && *src)
91 case '\n': *dst++ = '\\'; *dst++ = 'n'; break;
92 case '\r': *dst++ = '\\'; *dst++ = 'r'; break;
93 case '\t': *dst++ = '\\'; *dst++ = 't'; break;
94 case '"': *dst++ = '\\'; *dst++ = '"'; break;
95 case '\\': *dst++ = '\\'; *dst++ = '\\'; break;
97 if (c >= ' ' && c <= 126)
102 *dst++ = '0' + ((c >> 6) & 7);
103 *dst++ = '0' + ((c >> 3) & 7);
104 *dst++ = '0' + ((c >> 0) & 7);
119 /* ---------------------------------------------------------------------- */
122 debugstr_w (LPCWSTR s)
124 return debugstr_wn (s, 80);
127 /* ---------------------------------------------------------------------- */