]> git.tdb.fi Git - ext/subsurface.git/blobdiff - save-xml.c
Might as well free current_file
[ext/subsurface.git] / save-xml.c
index c9085db51554394442e3f92ef2782e52c52ec37f..37d6d062eabf836f188b8cfc2bcd0b6feae0c6a4 100644 (file)
@@ -183,6 +183,7 @@ static void save_overview(FILE *f, struct dive *dive)
        show_utf8(f, dive->divemaster, "  <divemaster>","</divemaster>\n");
        show_utf8(f, dive->buddy, "  <buddy>","</buddy>\n");
        show_utf8(f, dive->notes, "  <notes>","</notes>\n");
+       show_utf8(f, dive->suit, "  <suit>","</suit>\n");
 }
 
 static void save_cylinder_info(FILE *f, struct dive *dive)
@@ -218,6 +219,26 @@ static void save_cylinder_info(FILE *f, struct dive *dive)
        }
 }
 
+static void save_weightsystem_info(FILE *f, struct dive *dive)
+{
+       int i;
+
+       for (i = 0; i < MAX_WEIGHTSYSTEMS; 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", "'");
+               if (description && *description)
+                       fprintf(f, " description='%s'", description);
+               fprintf(f, " />\n");
+       }
+}
+
 static void show_index(FILE *f, int value, const char *pre, const char *post)
 {
        if (value)
@@ -272,6 +293,7 @@ static void save_dive(FILE *f, struct dive *dive)
                FRACTION(dive->duration.seconds, 60));
        save_overview(f, dive);
        save_cylinder_info(f, dive);
+       save_weightsystem_info(f, dive);
        save_events(f, dive->events);
        for (i = 0; i < dive->samples; i++)
                save_sample(f, dive->sample+i);