Improve dive trip sort comparison function

We do want to compare "loose" dives too, but we need to be a bit
careful, and always use the trip date as the primary sort key for any
dives that are not in the same trip.

Reported-and-tested-by: Miika Turkia <miika.turkia@gmail.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Linus Torvalds 2013-01-07 14:12:07 -08:00 committed by Dirk Hohndel
parent 661a380912
commit c2bc6633ec

View file

@ -1461,15 +1461,18 @@ static gint dive_nr_sort(GtkTreeModel *model,
tripb = b->divetrip;
}
if (!tripa || !tripb)
return 0;
if (tripa->when < tripb->when)
return -1;
if (tripa->when > tripb->when)
return 1;
if (a && b)
return a->when - b->when;
return 0;
/*
* Compare dive dates within the same trip (or when there
* are no trips involved at all). But if we have two
* different trips use the trip dates for comparison
*/
if (tripa != tripb) {
if (tripa)
when_a = tripa->when;
if (tripb)
when_b = tripb->when;
}
return when_a - when_b;
}