diff options
author | Berthold Stoeger <bstoeger@mail.tuwien.ac.at> | 2018-11-18 11:06:24 +0100 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2018-11-20 08:14:54 -0800 |
commit | 3b9e0b59311908f6cbc099f3b7fd5294fd5d0d30 (patch) | |
tree | 8c48b277b2e24855903144770338b5af60c785db /core/dive.c | |
parent | dcb2a17b7dcef6bd0802897f9ef2cfbe4206fe61 (diff) | |
download | subsurface-3b9e0b59311908f6cbc099f3b7fd5294fd5d0d30.tar.gz |
Core: remove ASSIGNED_TRIP trip flag
The distinction between ASSIGNED_TRIP and IN_TRIP was used to
prefer non-autogenerated trips on merging of dives. But owing
to bit rot this seem to have worked only partially anyway:
The IN_TRIP field was set in create_and_hookup_trip_from_dive()
and immediately overwritten in add_dive_to_trip() called
in the next line.
Instead, use the trip->autogen flag to check for priority and
remove the ASSIGNED_TRIP flag alltogether.
Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
Diffstat (limited to 'core/dive.c')
-rw-r--r-- | core/dive.c | 21 |
1 files changed, 9 insertions, 12 deletions
diff --git a/core/dive.c b/core/dive.c index d6fba1714..22f88d43f 100644 --- a/core/dive.c +++ b/core/dive.c @@ -2578,24 +2578,21 @@ static const struct dive *get_preferred_trip(const struct dive *a, const struct { dive_trip_t *atrip, *btrip; - /* - * The larger tripflag is more relevant: we prefer - * take manually assigned trips over auto-generated - * ones. - */ - if (a->tripflag > b->tripflag) - return a; - - if (a->tripflag < b->tripflag) - return b; - - /* Otherwise, look at the trip data and pick the "better" one */ + /* If only one dive has a trip, choose that */ atrip = a->divetrip; btrip = b->divetrip; if (!atrip) return b; if (!btrip) return a; + + /* Both dives have a trip - prefer the non-autogenerated one */ + if (atrip->autogen && !btrip->autogen) + return b; + if (!atrip->autogen && btrip->autogen) + return a; + + /* Otherwise, look at the trip data and pick the "better" one */ if (!atrip->location) return b; if (!btrip->location) |