summaryrefslogtreecommitdiffstats
path: root/divelist.c
diff options
context:
space:
mode:
Diffstat (limited to 'divelist.c')
-rw-r--r--divelist.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/divelist.c b/divelist.c
index a3bb1fb5e..83161b8c5 100644
--- a/divelist.c
+++ b/divelist.c
@@ -893,8 +893,6 @@ static void fill_dive_list(void)
/* if we have pre-existing trips, start on the last one */
trip = g_list_last(dive_trip_list);
- if (trip)
- dive_trip = DIVE_TRIP(trip);
treestore = GTK_TREE_STORE(dive_list.treemodel);
liststore = GTK_TREE_STORE(dive_list.listmodel);
@@ -911,6 +909,9 @@ static void fill_dive_list(void)
DIVE_LOCATION, dive_trip->location,
-1);
}
+ /* the dive_trip info might have been killed by a previous UNGROUPED dive */
+ if (trip)
+ dive_trip = DIVE_TRIP(trip);
/* tripflag defines how dives are handled;
* TF_NONE "not handled yet" - create time based group if autogroup == TRUE
* NO_TRIP "set as no group" - simply leave at top level
@@ -925,7 +926,7 @@ static void fill_dive_list(void)
/* allocate new trip - all fields default to 0
and get filled in further down */
dive_trip = alloc_dive();
- dive_trip_list = INSERT_TRIP(dive_trip, dive_trip_list);
+ dive_trip_list = insert_trip(dive_trip, dive_trip_list);
trip = FIND_TRIP(dive_trip, dive_trip_list);
}
} else { /* either the dive has a trip or we aren't creating trips */
@@ -938,7 +939,7 @@ static void fill_dive_list(void)
* Otherwise we need to create a new trip */
if (autogroup) {
dive_trip = alloc_dive();
- dive_trip_list = INSERT_TRIP(dive_trip, dive_trip_list);
+ dive_trip_list = insert_trip(dive_trip, dive_trip_list);
trip = FIND_TRIP(dive_trip, dive_trip_list);
} else {
/* let's go back to the last valid trip */