diff options
author | Dirk Hohndel <dirk@hohndel.org> | 2012-08-26 12:25:51 -0700 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2012-08-26 12:29:58 -0700 |
commit | 21fd73515f3bdcd606aaf0c5b16dae1775d7a37d (patch) | |
tree | d529a0f2c6c0daffd34b62dc3249e196d205f986 /equipment.c | |
parent | 666538ec7739fe839623bd1b6f9f80ff884ad5a9 (diff) | |
download | subsurface-21fd73515f3bdcd606aaf0c5b16dae1775d7a37d.tar.gz |
Ignore Nitrox/He seetings when editing cylinders for multiple dives
When figuring out which cylinders to change in a multi-dive edit, we
already ignored the beginning and end pressures. But it turns out to make
more sense to also ignore the Nitrox / Helium settings.
Imagine you do a number of dives - for some reason your dive computer
records the wrong cylinder size in the downloaded logfile (like my uemis
does all the time). Dives will likely have different Nitrox percentage,
but you should still be able to simply fix the cylinder size for all dives
at once.
Suggested-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'equipment.c')
-rw-r--r-- | equipment.c | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/equipment.c b/equipment.c index 43bb29d59..d676fc05d 100644 --- a/equipment.c +++ b/equipment.c @@ -461,13 +461,11 @@ gboolean description_equal(const char *desc1, const char *desc2) } /* when checking for the same cylinder we want the size and description to match - but don't compare the start and end pressures */ + but don't compare the start and end pressures, nor the Nitrox/He values */ static gboolean one_cylinder_equal(cylinder_t *cyl1, cylinder_t *cyl2) { return cyl1->type.size.mliter == cyl2->type.size.mliter && cyl1->type.workingpressure.mbar == cyl2->type.workingpressure.mbar && - cyl1->gasmix.o2.permille == cyl2->gasmix.o2.permille && - cyl1->gasmix.he.permille == cyl2->gasmix.he.permille && description_equal(cyl1->type.description, cyl2->type.description); } @@ -481,6 +479,21 @@ gboolean cylinders_equal(cylinder_t *cyl1, cylinder_t *cyl2) return TRUE; } +/* copy size and description of all cylinders from cyl1 to cyl2 */ +void copy_cylinders(cylinder_t *cyl1, cylinder_t *cyl2) +{ + int i; + + for (i = 0; i < MAX_CYLINDERS; i++) { + cyl2[i].type.size.mliter = cyl1[i].type.size.mliter; + cyl2[i].type.workingpressure.mbar = cyl1[i].type.workingpressure.mbar; + if (cyl1[i].type.description) + cyl2[i].type.description = strdup(cyl1[i].type.description); + else + cyl2[i].type.description = NULL; + } +} + static gboolean weightsystem_none(void *_data) { weightsystem_t *ws = _data; |