]> git.tdb.fi Git - ext/subsurface.git/blobdiff - save-xml.c
Might as well free current_file
[ext/subsurface.git] / save-xml.c
index d6c249730790ffa8aba58139aef07084e24f9944..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)
@@ -262,6 +283,8 @@ static void save_dive(FILE *f, struct dive *dive)
        fputs("<dive", f);
        if (dive->number)
                fprintf(f, " number='%d'", dive->number);
+       if (dive->rating)
+               fprintf(f, " rating='%d'", dive->rating);
        fprintf(f, " date='%04u-%02u-%02u'",
                tm->tm_year+1900, tm->tm_mon+1, tm->tm_mday);
        fprintf(f, " time='%02u:%02u:%02u'",
@@ -270,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);