static char * convert_escape (struct type *type, const char *dest_charset, char *p, char *limit, struct obstack *output) { /* Skip the backslash. */ ADVANCE; switch (*p) { case '\\': obstack_1grow (output, '\\'); ++p; break; case 'x': ADVANCE; if (!isxdigit (*p)) error (_("\\x used with no following hex digits.")); p = convert_hex (type, p, limit, output); break; case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': p = convert_octal (type, p, limit, output); break; case 'u': case 'U': { int length = *p == 'u' ? 4 : 8; ADVANCE; if (!isxdigit (*p)) error (_("\\u used with no following hex digits")); p = convert_ucn (p, limit, dest_charset, output, length); } } return p; }
/* Handle o case. */ int o_handler(va_list args) { int o; o = va_arg(args, int); return convert_octal(o); }