aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Dirk Hohndel <dirk@hohndel.org>2014-05-14 13:08:06 +0900
committerGravatar Dirk Hohndel <dirk@hohndel.org>2014-05-14 13:08:06 +0900
commit818542eeca6da96b0f10b3dda70d14cdd80399ea (patch)
treef2fdff1b4c57c7d0337974c49fc3f999bc2fabbb
parent3159a90b0aa670c7a82f931412e681d195528aab (diff)
downloadsubsurface-818542eeca6da96b0f10b3dda70d14cdd80399ea.tar.gz
Don't merge divecomputers if we know they are different
When merging dives, if we know for sure that the dive computers are different, don't merge them into one (by interleaving the data), but instead keep both as separate dive computers in the same dive. This fixes a bug when due to a faulty download the same dive from two dive computers looks quite different. They don't get merged automatically (which is fine - they are quite different), but when manually merging them, we of course want one dive with two dive computers, not one dive with one merged dive computer. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
-rw-r--r--dive.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/dive.c b/dive.c
index 68f619bdd..f593dde94 100644
--- a/dive.c
+++ b/dive.c
@@ -2135,7 +2135,7 @@ struct dive *merge_dives(struct dive *a, struct dive *b, int offset, bool prefer
if (dl) {
/* If we prefer downloaded, do those first, and get rid of "might be same" computers */
join_dive_computers(&res->dc, &dl->dc, &a->dc, 1);
- } else if (offset)
+ } else if (offset && might_be_same_device(&a->dc, &b->dc))
interleave_dive_computers(&res->dc, &a->dc, &b->dc, offset);
else
join_dive_computers(&res->dc, &a->dc, &b->dc, 0);