76 #define STR(x) vstring_str(x)
77 #define LEN(x) VSTRING_LEN(x)
78 #define END(x) vstring_end(x)
100 if (lineno != 0 && (ch ==
'\n' ||
LEN(buf) > start))
103 for (cp =
STR(buf) + start; cp <
END(buf) &&
ISSPACE(*cp); cp++)
105 if (cp ==
END(buf) || *cp ==
'#')
107 else if (start == 0 && lineno != 0 && first_line != 0)
108 *first_line = *lineno;
115 if (next !=
'#' && !
ISSPACE(next))
128 msg_warn(
"%s: logical line must not start with whitespace: \"%.30s%s\"",
130 LEN(buf) > 30 ?
"..." :
"");
131 return (
readllines(buf, fp, lineno, first_line));
137 return (
LEN(buf) > 0 ? buf : 0);
VSTRING * vstring_truncate(VSTRING *vp, ssize_t len)
#define VSTRING_TERMINATE(vp)
#define VSTRING_ADDCH(vp, ch)
#define vstream_ungetc(vp, ch)
#define VSTRING_RESET(vp)
void msg_warn(const char *fmt,...)
VSTRING * readllines(VSTRING *buf, VSTREAM *fp, int *lineno, int *first_line)