ali@0: #include ali@0: #include ali@5: #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@6: gboolean 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@6: GString *string; ali@6: GError *error=NULL; ali@6: if (!g_file_get_contents(filename,&raw,&raw_length,&error)) ali@6: { ali@6: fprintf(stderr,"%s: %s\n",filename,error->message); ali@6: g_error_free(error); ali@0: return FALSE; ali@6: } ali@6: string=g_string_new(NULL); ali@0: for(i=0;ilen; ali@0: if (contents) ali@6: *contents=g_string_free(string,FALSE); ali@0: else ali@6: g_string_free(string,TRUE); ali@0: return TRUE; ali@0: }