| File src/viewcolumns_parser.c changed (mode: 100644) (index 2681f3020..041c34efc) |
| 31 |
31 |
|
|
| 32 |
32 |
static column_info_t * parse_all(map_name_cb cn, const char str[], size_t *len, |
static column_info_t * parse_all(map_name_cb cn, const char str[], size_t *len, |
| 33 |
33 |
void *arg); |
void *arg); |
| 34 |
|
static void free_list(column_info_t *list, size_t list_len); |
|
|
34 |
|
static void free_info_list(column_info_t *list, size_t list_len); |
|
35 |
|
static void free_info(column_info_t *info); |
| 35 |
36 |
static int parse(map_name_cb cn, const char str[], column_info_t *info, |
static int parse(map_name_cb cn, const char str[], column_info_t *info, |
| 36 |
37 |
void *arg); |
void *arg); |
| 37 |
38 |
static void load_defaults(column_info_t *info); |
static void load_defaults(column_info_t *info); |
| |
| ... |
... |
parse_columns(columns_t *columns, add_column_cb ac, map_name_cb cn, |
| 55 |
56 |
if((list = parse_all(cn, str, &list_len, arg)) != NULL) |
if((list = parse_all(cn, str, &list_len, arg)) != NULL) |
| 56 |
57 |
{ |
{ |
| 57 |
58 |
add_all(columns, ac, list, list_len); |
add_all(columns, ac, list, list_len); |
| 58 |
|
free_list(list, list_len); |
|
|
59 |
|
free_info_list(list, list_len); |
| 59 |
60 |
return 0; |
return 0; |
| 60 |
61 |
} |
} |
| 61 |
62 |
return 1; |
return 1; |
| |
| ... |
... |
parse_all(map_name_cb cn, const char str[], size_t *len, void *arg) |
| 99 |
100 |
|
|
| 100 |
101 |
if(token != NULL) |
if(token != NULL) |
| 101 |
102 |
{ |
{ |
| 102 |
|
free_list(list, list_len); |
|
|
103 |
|
free_info_list(list, list_len); |
| 103 |
104 |
return NULL; |
return NULL; |
| 104 |
105 |
} |
} |
| 105 |
106 |
else |
else |
| |
| ... |
... |
parse_all(map_name_cb cn, const char str[], size_t *len, void *arg) |
| 111 |
112 |
|
|
| 112 |
113 |
/* Frees list of column info structures. */ |
/* Frees list of column info structures. */ |
| 113 |
114 |
static void |
static void |
| 114 |
|
free_list(column_info_t *list, size_t list_len) |
|
|
115 |
|
free_info_list(column_info_t *list, size_t list_len) |
| 115 |
116 |
{ |
{ |
| 116 |
117 |
if(list == NULL) |
if(list == NULL) |
| 117 |
118 |
{ |
{ |
| |
| ... |
... |
free_list(column_info_t *list, size_t list_len) |
| 121 |
122 |
size_t i; |
size_t i; |
| 122 |
123 |
for(i = 0U; i < list_len; ++i) |
for(i = 0U; i < list_len; ++i) |
| 123 |
124 |
{ |
{ |
| 124 |
|
free(list[i].literal); |
|
|
125 |
|
free_info(&list[i]); |
| 125 |
126 |
} |
} |
| 126 |
127 |
free(list); |
free(list); |
| 127 |
128 |
} |
} |
| 128 |
129 |
|
|
|
130 |
|
/* Frees data of a single column info structure. The parameter can be NULL. */ |
|
131 |
|
static void |
|
132 |
|
free_info(column_info_t *info) |
|
133 |
|
{ |
|
134 |
|
if(info != NULL) |
|
135 |
|
{ |
|
136 |
|
update_string(&info->literal, NULL); |
|
137 |
|
} |
|
138 |
|
} |
|
139 |
|
|
| 129 |
140 |
/* Parses single column description. Returns zero on successful parsing. */ |
/* Parses single column description. Returns zero on successful parsing. */ |
| 130 |
141 |
static int |
static int |
| 131 |
142 |
parse(map_name_cb cn, const char str[], column_info_t *info, void *arg) |
parse(map_name_cb cn, const char str[], column_info_t *info, void *arg) |