const char *unit;
int idx, offset, gas_used;
struct dive *prev_dive;
+ struct tm *tm;
process_all_dives(dive, &prev_dive);
- strftime(buf, 80, "%a, %b %d, %Y, %k:%M", gmtime(&dive->when));
+ tm = gmtime(&dive->when);
+ snprintf(buf, sizeof(buf),
+ "%s, %s %d, %d %2d:%02d",
+ weekday(tm->tm_wday),
+ monthname(tm->tm_mon),
+ tm->tm_mday, tm->tm_year + 1900,
+ tm->tm_hour, tm->tm_min);
+
set_label(info_stat_w.date, buf);
set_label(info_stat_w.dive_time, "%d min", (dive->duration.seconds + 30) / 60);
if (prev_dive)
set_label(info_stat_w.max_depth, "%.*f %s", decimals, value, unit);
value = get_depth_units(dive->meandepth.mm, &decimals, &unit);
set_label(info_stat_w.avg_depth, "%.*f %s", decimals, value, unit);
- value = get_temp_units(dive->watertemp.mkelvin, &unit);
- set_label(info_stat_w.water_temp, "%.1f %s", value, unit);
+ if (dive->watertemp.mkelvin) {
+ value = get_temp_units(dive->watertemp.mkelvin, &unit);
+ set_label(info_stat_w.water_temp, "%.1f %s", value, unit);
+ } else
+ set_label(info_stat_w.water_temp, "");
value = get_volume_units(dive->sac, &decimals, &unit);
if (value > 0) {
set_label(info_stat_w.sac, "%.*f %s/min", decimals, value, unit);
/* for the O2/He readings just create a list of them */
for (idx = 0; idx < MAX_CYLINDERS; idx++) {
cylinder_t *cyl = &dive->cylinder[idx];
- /* we assume that every valid cylinder has either a working pressure
- * or a size; but for good measure let's also accept cylinders with
- * a starting or ending pressure*/
- if (cyl->type.workingpressure.mbar || cyl->type.size.mliter ||
- cyl->start.mbar || cyl->end.mbar) {
+ unsigned int start, end;
+
+ start = cyl->start.mbar ? : cyl->sample_start.mbar;
+ end = cyl->end.mbar ? : cyl->sample_end.mbar;
+ if (!cylinder_none(cyl)) {
/* 0% O2 strangely means air, so 21% - I don't like that at all */
- int o2 = cyl->gasmix.o2.permille ? : 209;
+ int o2 = cyl->gasmix.o2.permille ? : AIR_PERMILLE;
if (offset > 0) {
snprintf(buf+offset, 80-offset, ", ");
offset += 2;
}
/* and if we have size, start and end pressure, we can
* calculate the total gas used */
- if (cyl->type.size.mliter && cyl->start.mbar && cyl->end.mbar)
- gas_used += cyl->type.size.mliter / 1000.0 *
- (cyl->start.mbar - cyl->end.mbar);
+ if (cyl->type.size.mliter && start && end)
+ gas_used += cyl->type.size.mliter / 1000.0 * (start - end);
}
- if (offset)
- set_label(info_stat_w.o2he, buf);
+ set_label(info_stat_w.o2he, buf);
if (gas_used) {
value = get_volume_units(gas_used, &decimals, &unit);
set_label(info_stat_w.gas_used, "%.*f %s", decimals, value, unit);