diff options
Diffstat (limited to 'parse-xml.c')
-rw-r--r-- | parse-xml.c | 15 |
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) |