From f1e08fd470502e5703a7338d6b5a5130a5f41c14 Mon Sep 17 00:00:00 2001 From: Berthold Stoeger Date: Sun, 23 Feb 2020 11:38:53 +0100 Subject: core: introduce set_cylinder() function We have a set_weightsystem() function. For symmetry, introduce a set_cylinder() function so that we can more-or-less copy&paste the weightsystem undo code for cylinder undo. Signed-off-by: Berthold Stoeger --- core/equipment.c | 9 +++++++++ core/equipment.h | 1 + 2 files changed, 10 insertions(+) (limited to 'core') diff --git a/core/equipment.c b/core/equipment.c index 4672cbe00..3d169a338 100644 --- a/core/equipment.c +++ b/core/equipment.c @@ -291,6 +291,15 @@ void remove_cylinder(struct dive *dive, int idx) remove_from_cylinder_table(&dive->cylinders, idx); } +// cyl is cloned. +void set_cylinder(struct dive *dive, int idx, cylinder_t cyl) +{ + if (idx < 0 || idx >= dive->cylinders.nr) + return; + free_cylinder(dive->cylinders.cylinders[idx]); + dive->cylinders.cylinders[idx] = clone_cylinder(cyl); +} + void remove_weightsystem(struct dive *dive, int idx) { remove_from_weightsystem_table(&dive->weightsystems, idx); diff --git a/core/equipment.h b/core/equipment.h index 8bc752022..4ed809eff 100644 --- a/core/equipment.h +++ b/core/equipment.h @@ -86,6 +86,7 @@ extern void add_weightsystem_description(const weightsystem_t *); extern bool same_weightsystem(weightsystem_t w1, weightsystem_t w2); extern bool same_cylinder(cylinder_t cyl1, cylinder_t cyl2); extern void remove_cylinder(struct dive *dive, int idx); +extern void set_cylinder(struct dive *dive, int idx, cylinder_t ws); extern void remove_weightsystem(struct dive *dive, int idx); extern void set_weightsystem(struct dive *dive, int idx, weightsystem_t ws); extern void reset_cylinders(struct dive *dive, bool track_gas); -- cgit v1.2.3-70-g09d2