| 335 | } while(0) |
| 336 | |
| 337 | void copy_string(int quote, FILE *f1, FILE *f2) |
| 338 | { |
| 339 | register int c; |
| 340 | int s_lineno = lineno; |
| 341 | char *s_line = dup_line(); |
| 342 | char *s_cptr = s_line + (cptr - line - 1); |
| 343 | |
| 344 | for (;;) { |
| 345 | OUTC(c = *cptr++); |
| 346 | if (c == quote) { |
| 347 | FREE(s_line); |
| 348 | return; } |
| 349 | if (c == '\n') |
| 350 | unterminated_string(s_lineno, s_line, s_cptr); |
| 351 | if (c == '\\') { |
| 352 | OUTC(c = *cptr++); |
| 353 | if (c == '\n') { |
| 354 | if (get_line() == 0) |
| 355 | unterminated_string(s_lineno, s_line, s_cptr); } } } |
| 356 | } |
| 357 | |
| 358 | void copy_comment(FILE *f1, FILE *f2) |
| 359 | { |
no test coverage detected