summaryrefslogtreecommitdiffstats
path: root/parse-xml.c
diff options
context:
space:
mode:
Diffstat (limited to 'parse-xml.c')
-rw-r--r--parse-xml.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/parse-xml.c b/parse-xml.c
index 9226aa63d..2470f8bb4 100644
--- a/parse-xml.c
+++ b/parse-xml.c
@@ -168,6 +168,7 @@ static struct {
} cur_event;
static struct tm cur_tm;
static int cur_cylinder_index, cur_ws_index;
+static int lastndl, laststoptime, laststopdepth;
static enum import_source {
UNKNOWN,
@@ -668,6 +669,12 @@ static void try_to_fill_sample(struct sample *sample, const char *name, char *bu
return;
if (MATCH(".sample.time", sampletime, &sample->time))
return;
+ if (MATCH(".sample.ndl", sampletime, &sample->ndl))
+ return;
+ if (MATCH(".sample.stoptime", sampletime, &sample->stoptime))
+ return;
+ if (MATCH(".sample.stopdepth", depth, &sample->stopdepth))
+ return;
switch (import_source) {
case DIVINGLOG:
@@ -1027,6 +1034,9 @@ static void ws_end(void)
static void sample_start(void)
{
cur_sample = prepare_sample(get_dc());
+ cur_sample->ndl.seconds = lastndl;
+ cur_sample->stoptime.seconds = laststoptime;
+ cur_sample->stopdepth.mm = laststopdepth;
}
static void sample_end(void)
@@ -1035,6 +1045,9 @@ static void sample_end(void)
return;
finish_sample(get_dc());
+ lastndl = cur_sample->ndl.seconds;
+ laststoptime = cur_sample->stoptime.seconds;
+ laststopdepth = cur_sample->stopdepth.mm;
cur_sample = NULL;
}
@@ -1058,6 +1071,8 @@ static void divecomputer_start(void)
/* .. this is the one we'll use */
cur_dc = dc;
+
+ lastndl = laststoptime = laststopdepth = 0;
}
static void divecomputer_end(void)