char *get_next_line(void) { char *line; char *buffer; int i; i = 0; if ((line = malloc(2)) == NULL) return (NULL); if ((buffer = malloc(2)) == NULL) return (NULL); ini_line_buffer(line, buffer); while (buffer[0] != '\n' && (buffer[0] != '\0' || i == 0)) { if (next_read(buffer, i) == -1) return (NULL); if (buffer[0] != '\n') { line[i++] = buffer[0]; if ((line = my_realloc(line, i + 1)) == NULL) return (NULL); } } free(buffer); return (line); }
unsigned char get_from_buf() { unsigned char ret; if (buf_write == buf_read) { ret = last_read; } else { ret = last_read = buf[buf_read]; buf_read = next_read(); } return ret; }