diff options
Diffstat (limited to 'save-xml.c')
-rw-r--r-- | save-xml.c | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/save-xml.c b/save-xml.c index d16b16daf..0b83a0235 100644 --- a/save-xml.c +++ b/save-xml.c @@ -301,18 +301,29 @@ static void save_cylinder_info(FILE *f, struct dive *dive) } } +static int nr_weightsystems(struct dive *dive) +{ + int nr; + + for (nr = MAX_WEIGHTSYSTEMS; nr; --nr) { + weightsystem_t *ws = dive->weightsystem+nr-1; + if (!weightsystem_none(ws)) + break; + } + return nr; +} + static void save_weightsystem_info(FILE *f, struct dive *dive) { - int i; + int i, nr; - for (i = 0; i < MAX_WEIGHTSYSTEMS; i++) { + nr = nr_weightsystems(dive); + + for (i = 0; i < nr; i++) { weightsystem_t *ws = dive->weightsystem+i; int grams = ws->weight.grams; const char *description = ws->description; - /* No weight information at all? */ - if (grams == 0) - return; fprintf(f, " <weightsystem"); show_milli(f, " weight='", grams, " kg", "'"); show_utf8(f, description, " description='", "'", 1); |