ucx/properties.c

changeset 130
633f15ce2ee4
parent 125
fca8efb122de
child 152
3238f65db163
     1.1 --- a/ucx/properties.c	Wed Jul 24 14:26:17 2013 +0200
     1.2 +++ b/ucx/properties.c	Mon Aug 05 14:38:37 2013 +0200
     1.3 @@ -210,8 +210,8 @@
     1.4              return 1;
     1.5          }
     1.6      }
     1.7 -    if(parser->error) {
     1.8 -        return 1;
     1.9 +    if (parser->error) {
    1.10 +        return parser->error;
    1.11      } else {
    1.12          return 0;
    1.13      }
    1.14 @@ -219,17 +219,20 @@
    1.15  
    1.16  int ucx_properties_load(UcxMap *map, FILE *file) {
    1.17      UcxProperties *parser = ucx_properties_new();
    1.18 -    if(!parser || !map || !file) {
    1.19 +    if(!(parser && map && file)) {
    1.20          return 1;
    1.21      }
    1.22      
    1.23 +    // buffer size is documented - change doc, when you change bufsize!
    1.24 +    const size_t bufsize = 1024;
    1.25 +    
    1.26      int error = 0;
    1.27      size_t r;
    1.28 -    char buf[1024];
    1.29 -    while((r = fread(buf, 1, 1024, file)) != 0) {
    1.30 +    char buf[bufsize];
    1.31 +    while((r = fread(buf, 1, bufsize, file)) != 0) {
    1.32          ucx_properties_fill(parser, buf, r);
    1.33 -        if(ucx_properties2map(parser, map)) {
    1.34 -            error = 1;
    1.35 +        error = ucx_properties2map(parser, map);
    1.36 +        if (error) {
    1.37              break;
    1.38          }
    1.39      }
    1.40 @@ -253,7 +256,9 @@
    1.41          written += fwrite(value.ptr, 1, value.length, file);
    1.42          written += fwrite("\n", 1, 1, file);
    1.43  
    1.44 -        if (written != k.len + value.length + 4) return 1;
    1.45 +        if (written != k.len + value.length + 4) {
    1.46 +            return 1;
    1.47 +        }
    1.48      }
    1.49  
    1.50      return 0;

mercurial