From 818542eeca6da96b0f10b3dda70d14cdd80399ea Mon Sep 17 00:00:00 2001 From: Dirk Hohndel Date: Wed, 14 May 2014 13:08:06 +0900 Subject: [PATCH] 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 --- dive.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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);