Fix air temperature for multi-dive editing

The air temperature editing was broken when you edited multiple dives at
once: even if you didn't actually change the air temperature, all dives
would be reset to that particular temperature.

The logic for editing dives is that we have a 'master' dive (which is
the dive that all the entries get filled in from), and only if the
entries have changed from what the master dive information was (ie the
user actually edited it) do we change that particular piece of
information.

And we only change it for dives that match the master dive for that
entry.

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-02-03 20:40:45 +11:00 committed by Dirk Hohndel
parent 5cc6e21064
commit ec0535d4df

2
info.c
View file

@ -579,7 +579,7 @@ static void save_dive_info_changes(struct dive *dive, struct dive *master, struc
default:
mkelvin = 0;
}
if (mkelvin != dive->dc.airtemp.mkelvin) {
if (mkelvin != dive->dc.airtemp.mkelvin && dive->dc.airtemp.mkelvin == master->dc.airtemp.mkelvin) {
dive->dc.airtemp.mkelvin = mkelvin;
changed = 1;
}