summaryrefslogtreecommitdiffstats
path: root/planner.c
diff options
context:
space:
mode:
authorGravatar Robert C. Helling <helling@atdotde.de>2014-06-04 23:54:33 +0200
committerGravatar Dirk Hohndel <dirk@hohndel.org>2014-06-05 07:09:58 -0700
commit14eb0e23afb989e4b89007cd5d1ec7454a2df054 (patch)
treed1643324612a8c3dc6cff414a0d7154d1c76ac67 /planner.c
parent40dd6f4c3931e58ca18754ecfe9c8da5f2c6f542 (diff)
downloadsubsurface-14eb0e23afb989e4b89007cd5d1ec7454a2df054.tar.gz
Planner: Change 'lasttime' only if we printed something in the plan.
This makes the 'segment' durations equal the runtime differences even when we don't display transitions in deco. Signed-off-by: Robert C. Helling <helling@atdotde.de> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'planner.c')
-rw-r--r--planner.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/planner.c b/planner.c
index 438b84c73..01bf9f71b 100644
--- a/planner.c
+++ b/planner.c
@@ -573,18 +573,21 @@ static void add_plan_to_notes(struct diveplan *diveplan, struct dive *dive, bool
gaschange = true;
if (plan_verbatim) {
if (dp->depth != lastdepth) {
- if (plan_display_transitions || dp->entered || !dp->next || (gaschange && dp->next && (dp->depth != dp->next->depth || !dp->next->time)))
+ if (plan_display_transitions || dp->entered || !dp->next || (gaschange && dp->next && (dp->depth != dp->next->depth || !dp->next->time))) {
len += snprintf(buffer + len, sizeof(buffer) - len, translate("gettextFromC", "Transition to %.*f %s in %d:%02d min - runtime %d:%02u on %s<br>"),
decimals, depthvalue, depth_unit,
FRACTION(dp->time - lasttime, 60),
FRACTION(dp->time, 60),
gasname(&gasmix));
+ lasttime = dp->time;
+ }
} else {
len += snprintf(buffer + len, sizeof(buffer) - len, translate("gettextFromC", "Stay at %.*f %s for %d:%02d min - runtime %d:%02u on %s<br>"),
decimals, depthvalue, depth_unit,
FRACTION(dp->time - lasttime, 60),
FRACTION(dp->time, 60),
gasname(&gasmix));
+ lasttime = dp->time;
}
} else {
if (dp->depth == lastdepth || plan_display_transitions || dp->entered || !dp->next || (gaschange && dp->next && (dp->depth != dp->next->depth || !dp->next->time))) {
@@ -600,6 +603,7 @@ static void add_plan_to_notes(struct diveplan *diveplan, struct dive *dive, bool
len += snprintf(buffer + len, sizeof(buffer) - len, " <td><b>&nbsp;</b><td>");
}
len += snprintf(buffer + len, sizeof(buffer) - len, "</tr>");
+ lasttime = dp->time;
}
}
if (gaschange) {
@@ -610,7 +614,6 @@ static void add_plan_to_notes(struct diveplan *diveplan, struct dive *dive, bool
}
gasmix = newgasmix;
}
- lasttime = dp->time;
lastdepth = dp->depth;
} while ((dp = dp->next) != NULL);
len = strlen(buffer);