]> git.tdb.fi Git - ext/subsurface.git/blobdiff - save-xml.c
Don't save empty cylinder descriptions in the xml
[ext/subsurface.git] / save-xml.c
index 07b8b80969d25f28616499083b8aab452127fd22..91ead9f1d6d6eab18cdc093f559dedb1a8785408 100644 (file)
@@ -180,7 +180,8 @@ static void save_cylinder_info(FILE *f, struct dive *dive)
                }
                if (volume)
                        show_milli(f, " size='", volume, " l", "'");
-               if (description)
+               show_pressure(f, cylinder->type.workingpressure, " workpressure='", "'");
+               if (description && *description)
                        fprintf(f, " description='%s'", description);
                show_pressure(f, cylinder->start, " start='", "'");
                show_pressure(f, cylinder->end, " end='", "'");
@@ -204,9 +205,14 @@ static void save_dive(FILE *f, struct dive *dive)
        int i;
        struct tm *tm = gmtime(&dive->when);
 
-       fprintf(f, "<dive date='%04u-%02u-%02u' time='%02u:%02u:%02u' duration='%u:%02u min'>\n",
-               tm->tm_year+1900, tm->tm_mon+1, tm->tm_mday,
-               tm->tm_hour, tm->tm_min, tm->tm_sec,
+       fputs("<dive", f);
+       if (dive->number)
+               fprintf(f, " number='%d'", dive->number);
+       fprintf(f, " date='%04u-%02u-%02u'",
+               tm->tm_year+1900, tm->tm_mon+1, tm->tm_mday);
+       fprintf(f, " time='%02u:%02u:%02u'",
+               tm->tm_hour, tm->tm_min, tm->tm_sec);
+       fprintf(f, " duration='%u:%02u min'>\n",
                FRACTION(dive->duration.seconds, 60));
        save_overview(f, dive);
        save_cylinder_info(f, dive);
@@ -226,7 +232,7 @@ void save_dives(const char *filename)
                return;
 
        /* Flush any edits of current dives back to the dives! */
-       flush_dive_info_changes();
+       update_dive(current_dive);
 
        fprintf(f, "<dives>\n<program name='diveclog' version='%d'></program>\n", VERSION);
        for (i = 0; i < dive_table.nr; i++)