- while ((cc = getline(&line, &len, stdin)) != -1) {
- ++lineno;
-
- /* ignore blank lines and comments */
- if (*line == '\n' || *line == '#')
- continue;
-
- /* handle continuation lines */
- while (cc >= 2 && strcmp(line+cc-2, "\\\n") == 0) {
- char *line1 = NULL;
- ssize_t len1 = 0;
- int cc1;
- cc1 = getline(&line1, &len1, stdin);
-
- if (cc1 < 0) {
- fprintf(stderr, "Missing continuation line\n");
- return -1;
- }
- ++lineno;
- line = realloc(line, cc + cc1);
- if (!line) {
- fprintf(stderr, "Out of memory\n");
- return -1;
- }
-
- strcpy(line+cc-2, line1);
- cc += cc1 - 2;
- free(line1);
- }