- case '\n': /* swallow the \n */
- state = quote == 0 ? 2 : 3;
- }
- break;
- case 5: /* got \[0-7] */
- if (c >= '0' && c <= '7') {
- *p = *p * 8 + c - '0';
- state = 6;
- } else {
- (void) s_ungetc(c);
- p++;
- state = quote == 0 ? 2 : 3;
- }
- break;
- case 6: /* got \[0-7][0-7] */
- if (c >= '0' && c <= '7')
- *p = *p * 8 + c - '0';
- else
- (void) s_ungetc(c);
- p++;
- state = quote == 0 ? 2 : 3;
- break;
- case 7: /* got # */
- if (c == '\n' || c == EOF) {
- (void) s_ungetc(c);
- state = 1;