MCPcopy Create free account
hub / github.com/NetHack/NetHack / tgetstr

Function tgetstr

sys/share/tclib.c:241–313  ·  view source on GitHub ↗

look up a string entry; update `*outptr' */

Source from the content-addressed store, hash-verified

239
240/* look up a string entry; update `*outptr' */
241char *
242tgetstr(const char *which, char **outptr)
243{
244 int n;
245 char c, *r, *result;
246 const char *q, *p = tc_field(which, &q);
247
248 if (!p || p[2] != '=')
249 return (char *) 0;
250 p += 3;
251 if ((q = strchr(p, ':')) == 0)
252 q = p + strlen(p);
253 r = result = *outptr;
254 while (p < q) {
255 switch ((*r = *p++)) {
256 case '\\':
257 switch ((c = *p++)) {
258 case 'E':
259 *r = ESC;
260 break;
261 case 'a':
262 *r = BEL;
263 break;
264 case 'b':
265 *r = '\b';
266 break;
267 case 'f':
268 *r = '\f';
269 break;
270 case 'n':
271 *r = '\n';
272 break;
273 case 'r':
274 *r = '\r';
275 break;
276 case 't':
277 *r = '\t';
278 break;
279 case '0':
280 case '1':
281 case '2':
282 case '3':
283 case '4':
284 case '5':
285 case '6':
286 case '7':
287 n = c - '0';
288 if (*p >= '0' && *p <= '7')
289 n = 8 * n + (*p++ - '0');
290 if (*p >= '0' && *p <= '7')
291 n = 8 * n + (*p++ - '0');
292 *r = (char) n;
293 break;
294 /* case '^': case '\\': */
295 default:
296 *r = c;
297 break;
298 }

Callers 2

init_hiliteFunction · 0.85
tc_storeFunction · 0.85

Calls 1

tc_fieldFunction · 0.85

Tested by

no test coverage detected