-unsigned char zebra_prim(char **s)
-{
- unsigned char c;
- unsigned int i = 0;
-
- yaz_log (YLOG_DEBUG, "prim %.3s", *s);
- if (**s == '\\')
- {
- (*s)++;
- c = **s;
- switch (c)
- {
- case '\\': c = '\\'; (*s)++; break;
- case 'r': c = '\r'; (*s)++; break;
- case 'n': c = '\n'; (*s)++; break;
- case 't': c = '\t'; (*s)++; break;
- case 's': c = ' '; (*s)++; break;
- case 'x': sscanf(*s, "x%2x", &i); c = i; *s += 3; break;
- case '0':
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9':
- sscanf(*s, "%3o", &i);
- c = i;
- *s += 3;
- break;
- default:
- (*s)++;
- }
- }
- else
- {
- c = **s;
- ++(*s);
- }
- return c;
-}
-