bl/textfileutils.c
changeset 12 84459e0f099b
parent 5 f600b0d1fc5d
child 13 eca715c100fe
     1.1 --- a/bl/textfileutils.c	Fri Jan 27 10:30:16 2012 +0000
     1.2 +++ b/bl/textfileutils.c	Mon Jan 30 23:32:57 2012 +0000
     1.3 @@ -9,25 +9,30 @@
     1.4   * DOS-style line endings are handled transparently even on platforms which
     1.5   * don't normally use this format.
     1.6   */
     1.7 -boolean file_get_contents_text(const char *filename,char **contents,
     1.8 +gboolean file_get_contents_text(const char *filename,char **contents,
     1.9    size_t *length)
    1.10  {
    1.11      int i;
    1.12      char *raw;
    1.13      size_t raw_length;
    1.14 -    String *string;
    1.15 -    if (!file_get_contents(filename,&raw,&raw_length))
    1.16 +    GString *string;
    1.17 +    GError *error=NULL;
    1.18 +    if (!g_file_get_contents(filename,&raw,&raw_length,&error))
    1.19 +    {
    1.20 +	fprintf(stderr,"%s: %s\n",filename,error->message);
    1.21 +	g_error_free(error);
    1.22  	return FALSE;
    1.23 -    string=string_new(NULL);
    1.24 +    }
    1.25 +    string=g_string_new(NULL);
    1.26      for(i=0;i<raw_length;i++)
    1.27  	if (raw[i]!='\r')
    1.28 -	    string_append_c(string,raw[i]);
    1.29 -    mem_free(raw);
    1.30 +	    g_string_append_c(string,raw[i]);
    1.31 +    g_free(raw);
    1.32      if (length)
    1.33  	*length=string->len;
    1.34      if (contents)
    1.35 -	*contents=string_free(string,FALSE);
    1.36 +	*contents=g_string_free(string,FALSE);
    1.37      else
    1.38 -	string_free(string,TRUE);
    1.39 +	g_string_free(string,TRUE);
    1.40      return TRUE;
    1.41  }