diff options
author | Dirk Hohndel <dirk@hohndel.org> | 2014-05-14 13:08:06 +0900 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2014-05-14 13:08:06 +0900 |
commit | 818542eeca6da96b0f10b3dda70d14cdd80399ea (patch) | |
tree | f2fdff1b4c57c7d0337974c49fc3f999bc2fabbb | |
parent | 3159a90b0aa670c7a82f931412e681d195528aab (diff) | |
download | subsurface-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.c | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -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); |