Sanitize and fix cylinder pressure overview

Doing per-dive cylinder start/end pressures is insane, when we can have
up to eight cylinders.  The cylinder start/end pressure cannot be per
dive, it needs to be per cylinder.

This makes the save format cleaner too, we have all the cylinder data in
just one place.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Linus Torvalds 2011-09-05 09:12:54 -07:00
parent 0f832f15d1
commit 5f79a804b9
5 changed files with 40 additions and 29 deletions

View file

@ -133,8 +133,6 @@ static void save_overview(FILE *f, struct dive *dive)
show_temperature(f, dive->watertemp, " <watertemp>", "</watertemp>\n");
show_duration(f, dive->duration, " <duration>", "</duration>\n");
show_duration(f, dive->surfacetime, " <surfacetime>", "</surfacetime>\n");
show_pressure(f, dive->beginning_pressure, " <cylinderstartpressure>", "</cylinderstartpressure>\n");
show_pressure(f, dive->end_pressure, " <cylinderendpressure>", "</cylinderendpressure>\n");
show_utf8(f, dive->location, " <location>","</location>\n");
show_utf8(f, dive->notes, " <notes>","</notes>\n");
}
@ -149,9 +147,11 @@ static void save_cylinder_info(FILE *f, struct dive *dive)
const char *description = cylinder->type.description;
int o2 = cylinder->gasmix.o2.permille;
int he = cylinder->gasmix.he.permille;
int start = cylinder->start.mbar;
int end = cylinder->end.mbar;
/* No cylinder information at all? */
if (!o2 && !volume)
if (!o2 && !volume && !start && !end)
return;
fprintf(f, " <cylinder");
if (o2) {
@ -163,6 +163,8 @@ static void save_cylinder_info(FILE *f, struct dive *dive)
show_milli(f, " size='", volume, " l", "'");
if (description)
fprintf(f, " description='%s'", description);
show_pressure(f, cylinder->start, " start='", "'");
show_pressure(f, cylinder->end, " end='", "'");
fprintf(f, " />\n");
}
}