diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-09-24 12:03:58 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-09-24 12:03:58 -0700 |
commit | 6ae67f96f8e2252b6d32b42708324ab77f8ff0fa (patch) | |
tree | 7a72d5ba5bd3b25d50e373622902497893d59d9f /equipment.c | |
parent | 37760d830f516fe6813aabce82b6158249a691ad (diff) | |
download | subsurface-6ae67f96f8e2252b6d32b42708324ab77f8ff0fa.tar.gz |
Update cylinder info properly
The "cylinders_equal()/copy_cylinders()" functions were buggered, and
only checked (and copied) the cylinder type. That was on purpose, since
you do want to be able to change the type of a cylinder without changing
the gasmix of the cylinder.
HOWEVER, the reverse is also true: you may want to change the gasmix of
a cylinder without changing the type.
So it's not that the type of the cylinder is special - it's that the
type and the gasmix should be considered separately.
Do that properly for the equipment editing case.
Reported-by: Ďoďo <dodo.sk@gmail.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'equipment.c')
-rw-r--r-- | equipment.c | 34 |
1 files changed, 0 insertions, 34 deletions
diff --git a/equipment.c b/equipment.c index 7c473f6df..ccdee6268 100644 --- a/equipment.c +++ b/equipment.c @@ -485,40 +485,6 @@ gboolean description_equal(const char *desc1, const char *desc2) (desc1 && desc2 && strcmp(desc1, desc2) == 0)); } -/* when checking for the same cylinder we want the size and description to match - 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 && - description_equal(cyl1->type.description, cyl2->type.description); -} - -gboolean cylinders_equal(cylinder_t *cyl1, cylinder_t *cyl2) -{ - int i; - - for (i = 0; i < MAX_CYLINDERS; i++) - if (!one_cylinder_equal(cyl1 + i, cyl2 + i)) - return FALSE; - 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; |