summaryrefslogtreecommitdiffstats
path: root/dive.c
diff options
context:
space:
mode:
authorGravatar Dirk Hohndel <dirk@hohndel.org>2013-03-17 18:07:59 -0700
committerGravatar Dirk Hohndel <dirk@hohndel.org>2013-03-17 20:04:25 -0700
commit8a5792d473bb30a6f5cbfd2168c4427c16436031 (patch)
tree58ec7fcb24aec27de5c7b4d2511478ed6550c1b1 /dive.c
parentbfa37c3cac22949323bb6a5dfb23557638d20757 (diff)
downloadsubsurface-8a5792d473bb30a6f5cbfd2168c4427c16436031.tar.gz
Manually add gas changes to a dive
Create a little widget that lists all the gases / tanks we know about and allow the user to pick one of them. Turns out that add_event only added events at the end of the list - but we treat that list as chronologically sorted. So I fixed that little mis-feature as well. This does raise the question whether we need the inverse operation (removing a gas change). And if there are other things that we should be able to manually edit, now that we have the infrastructure for this neat little context menu... See #60 -- this doesn't address all of the issues mentioned there, but at least deals with the 'headline' of the feature request... Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'dive.c')
-rw-r--r--dive.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/dive.c b/dive.c
index da80044ed..0351b8ba6 100644
--- a/dive.c
+++ b/dive.c
@@ -21,11 +21,13 @@ void add_event(struct divecomputer *dc, int time, int type, int flags, int value
ev->type = type;
ev->flags = flags;
ev->value = value;
- ev->next = NULL;
p = &dc->events;
- while (*p)
+
+ /* insert in the sorted list of events */
+ while (*p && (*p)->time.seconds < time)
p = &(*p)->next;
+ ev->next = *p;
*p = ev;
remember_event(name);
}