summaryrefslogtreecommitdiffstats
path: root/core/divelist.c
diff options
context:
space:
mode:
Diffstat (limited to 'core/divelist.c')
-rw-r--r--core/divelist.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/core/divelist.c b/core/divelist.c
index 84694da60..f691cd7f1 100644
--- a/core/divelist.c
+++ b/core/divelist.c
@@ -1655,11 +1655,16 @@ static bool add_trip_to_table(struct dive_trip *trip, struct dive_table *dives_f
* If downloaded is true, only the divecomputer of the first dive
* will be considered, as it is assumed that all dives come from
* the same computer.
+ * If merge_all_trips is true, all trips are merged. This is used
+ * when merging log files. If it is false, only autogenerated trips
+ * are merged. This is used for download-from-dc. There, if the user
+ * explicitly asked for a new trip, we don't want to merge into old
+ * trips.
* Note: the dives in import_table and the trips in import_trip_table
* are consumed. On return both tables have size 0.
*/
void process_imported_dives(struct dive_table *import_table, struct trip_table *import_trip_table,
- bool prefer_imported, bool downloaded)
+ bool prefer_imported, bool downloaded, bool merge_all_trips)
{
int i, j;
struct dive_trip *trip_import, *trip_old;
@@ -1695,6 +1700,8 @@ void process_imported_dives(struct dive_table *import_table, struct trip_table *
*/
for (i = 0; i < import_trip_table->nr; i++) {
trip_import = import_trip_table->trips[i];
+ if (!merge_all_trips && !trip_import->autogen)
+ continue;
for (j = 0; j < trip_table.nr; j++) {
trip_old = trip_table.trips[j];
if (trips_overlap(trip_import, trip_old)) {