summaryrefslogtreecommitdiffstats
path: root/profile.c
diff options
context:
space:
mode:
authorGravatar Linus Torvalds <torvalds@linux-foundation.org>2011-11-09 12:31:06 -0600
committerGravatar Linus Torvalds <torvalds@linux-foundation.org>2011-11-09 12:31:06 -0600
commitd03a92728fb625a388ce4eb4d8e885c6fc40d55a (patch)
treec2c42f04f8199fd0f3e5a158f98624c5bf91d15c /profile.c
parentc51b105526b7722d7d29d6111f4afd80a5e7c27b (diff)
parente38eb77e30c2d0d06eb61db0cd1bdf3f5e164e8d (diff)
downloadsubsurface-d03a92728fb625a388ce4eb4d8e885c6fc40d55a.tar.gz
Merge branch 'testdata' of git://github.com/dirkhh/subsurface
* 'testdata' of git://github.com/dirkhh/subsurface: Correctly plot dives ending below the surface
Diffstat (limited to 'profile.c')
-rw-r--r--profile.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/profile.c b/profile.c
index 173032a13..60e0f4215 100644
--- a/profile.c
+++ b/profile.c
@@ -1098,7 +1098,7 @@ static struct plot_info *create_plot_info(struct dive *dive, int nr_samples, str
entry->temperature = sample->temperature.mkelvin;
if (depth || lastdepth)
- lastindex = i+pi_idx;
+ lastindex = i + pi_idx;
lastdepth = depth;
if (depth > pi->maxdepth)
@@ -1162,9 +1162,12 @@ static struct plot_info *create_plot_info(struct dive *dive, int nr_samples, str
i = nr + 2;
pi->entry[i].sec = sec + 20;
pi->entry[i+1].sec = sec + 40;
- /* the number of actual entries - we may have allocated more if there
- * were gas change events, but this is how many were filled */
+ /* the number of actual entries - some computers have lots of
+ * depth 0 samples at the end of a dive, we want to make sure
+ * we have exactly one of them at the end */
pi->nr = lastindex+1;
+ while (pi->nr <= i+2 && pi->entry[pi->nr-1].depth > 0)
+ pi->nr++;
pi->maxtime = pi->entry[lastindex].sec;
pi->endpressure = pi->minpressure = dive->cylinder[0].end.mbar;