Mercurial > repos > blastem
comparison config.c @ 1783:eda8df5bc74c
Minor cleanup
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Mon, 11 Mar 2019 00:04:48 -0700 |
parents | ba3fb7a3be6b |
children | a4cae960fd08 |
comparison
equal
deleted
inserted
replaced
1782:b2bffd98063d | 1783:eda8df5bc74c |
---|---|
47 | 47 |
48 config_data = NULL; | 48 config_data = NULL; |
49 curline = strip_ws(curline); | 49 curline = strip_ws(curline); |
50 int len = strlen(curline); | 50 int len = strlen(curline); |
51 if (!len) { | 51 if (!len) { |
52 *line = *line + 1; | 52 (*line)++; |
53 continue; | 53 continue; |
54 } | 54 } |
55 if (curline[0] == '#') { | 55 if (curline[0] == '#') { |
56 *line = *line + 1; | 56 (*line)++; |
57 continue; | 57 continue; |
58 } | 58 } |
59 if (curline[0] == '}') { | 59 if (curline[0] == '}') { |
60 if (started) { | 60 if (started) { |
61 return head; | 61 return head; |
65 | 65 |
66 char * end = curline + len - 1; | 66 char * end = curline + len - 1; |
67 if (*end == '{') { | 67 if (*end == '{') { |
68 *end = 0; | 68 *end = 0; |
69 curline = strip_ws(curline); | 69 curline = strip_ws(curline); |
70 *line = *line + 1; | 70 (*line)++; |
71 head = tern_insert_node(head, curline, parse_config_int(state, 1, line)); | 71 head = tern_insert_node(head, curline, parse_config_int(state, 1, line)); |
72 } else { | 72 } else { |
73 char * val = strip_ws(split_keyval(curline)); | 73 char * val = strip_ws(split_keyval(curline)); |
74 char * key = curline; | 74 char * key = curline; |
75 if (*val) { | 75 if (*val) { |
76 head = tern_insert_ptr(head, key, strdup(val)); | 76 head = tern_insert_ptr(head, key, strdup(val)); |
77 } else { | 77 } else { |
78 fprintf(stderr, "Key %s is missing a value on line %d\n", key, *line); | 78 fprintf(stderr, "Key %s is missing a value on line %d\n", key, *line); |
79 } | 79 } |
80 *line = *line + 1; | 80 (*line)++; |
81 } | 81 } |
82 } | 82 } |
83 return head; | 83 return head; |
84 } | 84 } |
85 | 85 |
172 } | 172 } |
173 long config_size = file_size(config_file); | 173 long config_size = file_size(config_file); |
174 if (!config_size) { | 174 if (!config_size) { |
175 goto config_empty; | 175 goto config_empty; |
176 } | 176 } |
177 char * config_data = malloc(config_size+1); | 177 char *config_data = calloc(config_size + 1, 1); |
178 if (fread(config_data, 1, config_size, config_file) != config_size) { | 178 if (fread(config_data, 1, config_size, config_file) != config_size) { |
179 goto config_read_fail; | 179 goto config_read_fail; |
180 } | 180 } |
181 config_data[config_size] = '\0'; | |
182 | 181 |
183 ret = parse_config(config_data); | 182 ret = parse_config(config_data); |
184 config_read_fail: | 183 config_read_fail: |
185 free(config_data); | 184 free(config_data); |
186 config_empty: | 185 config_empty: |