aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG.md1
-rw-r--r--core/dive.c6
2 files changed, 7 insertions, 0 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index fd08a144a..939dc2ea2 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,4 @@
+- add GPS fix downloaded from a dive comuter to existing dive site
- fix broken curser left/right shortcut for showing multiple dive computers
- allow editing the profile for dives imported without samples (via CSV)
- fix potential crash (and other errors) importing DL7 dives
diff --git a/core/dive.c b/core/dive.c
index 571f244df..a7d202ba5 100644
--- a/core/dive.c
+++ b/core/dive.c
@@ -2639,6 +2639,12 @@ struct dive *merge_dives(const struct dive *a, const struct dive *b, int offset,
/* we take the first dive site, unless it's empty */
*site = a->dive_site && !dive_site_is_empty(a->dive_site) ? a->dive_site : b->dive_site;
+ if (!dive_site_has_gps_location(*site) && dive_site_has_gps_location(b->dive_site)) {
+ /* we picked the first dive site and that didn't have GPS data, but the new dive has
+ * GPS data (that could be a download from a GPS enabled dive computer).
+ * Keep the dive site, but add the GPS data */
+ (*site)->location = b->dive_site->location;
+ }
fixup_dive(res);
free(cylinders_map_a);
free(cylinders_map_b);