ali@0: #include ali@0: #include ali@0: #include ali@0: ali@0: /* ali@0: * Read a file into memory (which should be freed with mem_free when no ali@0: * longer required). Returns NULL on error and outputs a suitable error ali@0: * message to stderr. ali@0: * DOS-style line endings are handled transparently even on platforms which ali@0: * don't normally use this format. ali@0: */ ali@0: boolean file_get_contents_text(const char *filename,char **contents, ali@0: size_t *length) ali@0: { ali@0: int i; ali@0: char *raw; ali@0: size_t raw_length; ali@0: String *string; ali@0: if (!file_get_contents(filename,&raw,&raw_length)) ali@0: return FALSE; ali@0: string=string_new(NULL); ali@0: for(i=0;ilen; ali@0: if (contents) ali@0: *contents=string_free(string,FALSE); ali@0: else ali@0: string_free(string,TRUE); ali@0: return TRUE; ali@0: }