MCPcopy Create free account
hub / github.com/CobaltFusion/DebugViewPP / fieldbackch

Function fieldbackch

Libraries/snappy/testdata/fields.c:309–398  ·  view source on GitHub ↗
(str, out, strip)

Source from the content-addressed store, hash-verified

307 }
308
309static int fieldbackch (str, out, strip)
310 register char * str; /* First char of backslash sequence */
311 register char ** out; /* Where to store result */
312 int strip; /* NZ to convert the sequence */
313 {
314 register int ch; /* Character being developed */
315 char * origstr; /* Original value of str */
316
317 if (!strip)
318 {
319 *(*out)++ = '\\';
320 if (*str != 'x' && *str != 'X' && (*str < '0' || *str > '7'))
321 {
322 *(*out)++ = *str;
323 return *str != '\0';
324 }
325 }
326 switch (*str)
327 {
328 case '\0':
329 *(*out)++ = '\0';
330 return 0;
331 case 'a':
332 *(*out)++ = '\007';
333 return 1;
334 case 'b':
335 *(*out)++ = '\b';
336 return 1;
337 case 'f':
338 *(*out)++ = '\f';
339 return 1;
340 case 'n':
341 *(*out)++ = '\n';
342 return 1;
343 case 'r':
344 *(*out)++ = '\r';
345 return 1;
346 case 'v':
347 *(*out)++ = '\v';
348 return 1;
349 case 'X':
350 case 'x':
351 /* Hexadecimal sequence */
352 origstr = str++;
353 ch = 0;
354 if (*str >= '0' && *str <= '9')
355 ch = *str++ - '0';
356 else if (*str >= 'a' && *str <= 'f')
357 ch = *str++ - 'a' + 0xa;
358 else if (*str >= 'A' && *str <= 'F')
359 ch = *str++ - 'A' + 0xa;
360 if (*str >= '0' && *str <= '9')
361 ch = (ch << 4) | (*str++ - '0');
362 else if (*str >= 'a' && *str <= 'f')
363 ch = (ch << 4) | (*str++ - 'a' + 0xa);
364 else if (*str >= 'A' && *str <= 'F')
365 ch = (ch << 4) | (*str++ - 'A' + 0xa);
366 break;

Callers 1

fields.cFile · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected