12 if (inbuffer == NULL) {
24getline(
char **lineptr,
size_t *n, FILE *stream)
29 if (*lineptr == NULL) {
31 *lineptr = malloc(*n);
32 if (*lineptr == NULL) {
37 while ((c = fgetc(stream)) != EOF) {
40 *lineptr = realloc(*lineptr, *n);
41 if (*lineptr == NULL) {
45 (*lineptr)[pos++] = c;
50 (*lineptr)[pos] =
'\0';
52 return (c == EOF && pos == 0) ? -1 : (
ssize_t)pos;
61 if (bytes_read <= 0) {
62 printf(
"Error reading input\n");
68 input_buffer->
buffer[bytes_read - 1] = 0;
74 free(input_buffer->
buffer);