#include #include #include #include "libbb.h" /* * Reads consecutive lines from file line that start with end_string * read finishes at an empty line or eof */ extern char *read_text_file_to_buffer(FILE *src_file) { char *line = NULL; char *buffer = NULL; int buffer_length = 0; int line_length = 0; buffer = xmalloc(1); strcpy(buffer, ""); /* Loop until line is empty, or just one char, which will be '\n' */ do { line = get_line_from_file(src_file); if (line == NULL) { break; } line_length = strlen(line); buffer_length += line_length + 1; buffer = (char *) xrealloc(buffer, buffer_length + 1); strcat(buffer, line); free(line); } while (line_length > 1); if (strlen(buffer) == 0) { return(NULL); } else { return(strdup(buffer)); } }