aboutsummaryrefslogtreecommitdiffstats
path: root/core/parse.c
diff options
context:
space:
mode:
authorGravatar Berthold Stoeger <bstoeger@mail.tuwien.ac.at>2020-09-06 12:39:51 +0200
committerGravatar Dirk Hohndel <dirk@hohndel.org>2020-09-06 12:59:54 -0700
commit7f1def86021eda8cc01911b4944be4bc38ae65fe (patch)
tree49eec74b2d0a4789e328f9f1728be3aeb882e72f /core/parse.c
parent55e42373066ade9ad2e1a51adf27a0a28cb0d02a (diff)
downloadsubsurface-7f1def86021eda8cc01911b4944be4bc38ae65fe.tar.gz
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>
Diffstat (limited to 'core/parse.c')
-rw-r--r--core/parse.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/core/parse.c b/core/parse.c
index f3b7e0b36..1ddb49d60 100644
--- a/core/parse.c
+++ b/core/parse.c
@@ -203,6 +203,8 @@ void dive_site_start(struct parser_state *state)
{
if (state->cur_dive_site)
return;
+ state->taxonomy_category = -1;
+ state->taxonomy_origin = -1;
state->cur_dive_site = calloc(1, sizeof(struct dive_site));
}
@@ -210,10 +212,6 @@ void dive_site_end(struct parser_state *state)
{
if (!state->cur_dive_site)
return;
- if (state->cur_dive_site->taxonomy.nr == 0) {
- free(state->cur_dive_site->taxonomy.category);
- state->cur_dive_site->taxonomy.category = NULL;
- }
if (state->cur_dive_site->uuid) {
struct dive_site *ds = alloc_or_get_dive_site(state->cur_dive_site->uuid, state->sites);
merge_dive_site(ds, state->cur_dive_site);