mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
cleanup: use taxonomy_set_category() function
Instead of manipulating the taxonomy structures directly, use the taxonomy_set_category() function. This improves encapsulation and gives us the possibility to improve the taxonomy data structures. This concerns three places: 1) git parser 2) XML parser 3) reverse geo-lookup This improves the XML parser code slightly: The parser assumes that the value-attribute comes last (after origin and category). While it still does that, it now at least generates a warning if it encounters a value-attribute without origin- or category-attribute. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
parent
55e4237306
commit
7f1def8602
5 changed files with 32 additions and 38 deletions
|
@ -309,15 +309,10 @@ static void parse_site_gps(char *line, struct membuffer *str, struct git_parser_
|
|||
|
||||
static void parse_site_geo(char *line, struct membuffer *str, struct git_parser_state *state)
|
||||
{
|
||||
if (state->active_site->taxonomy.category == NULL)
|
||||
state->active_site->taxonomy.category = alloc_taxonomy();
|
||||
int nr = state->active_site->taxonomy.nr;
|
||||
if (nr < TC_NR_CATEGORIES) {
|
||||
struct taxonomy *t = &state->active_site->taxonomy.category[nr];
|
||||
t->value = detach_cstring(str);
|
||||
sscanf(line, "cat %d origin %d \"", &t->category, (int *)&t->origin);
|
||||
state->active_site->taxonomy.nr++;
|
||||
}
|
||||
int origin;
|
||||
int category;
|
||||
sscanf(line, "cat %d origin %d \"", &category, &origin);
|
||||
taxonomy_set_category(&state->active_site->taxonomy , category, mb_cstring(str), origin);
|
||||
}
|
||||
|
||||
static char *remove_from_front(struct membuffer *str, int len)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue