diff options
Diffstat (limited to 'parse-xml.c')
-rw-r--r-- | parse-xml.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/parse-xml.c b/parse-xml.c index 85b1c5306..ba5ca1e50 100644 --- a/parse-xml.c +++ b/parse-xml.c @@ -932,6 +932,22 @@ static degrees_t parse_degrees(char *buf, char **end) return ret; } +static void gps_lat(char *buffer, void *_dive) +{ + char *end; + struct dive *dive = _dive; + + dive->latitude = parse_degrees(buffer, &end); +} + +static void gps_long(char *buffer, void *_dive) +{ + char *end; + struct dive *dive = _dive; + + dive->longitude = parse_degrees(buffer, &end); +} + static void gps_location(char *buffer, void *_dive) { char *end; @@ -986,8 +1002,14 @@ static void try_to_fill_dive(struct dive *dive, const char *name, char *buf) return; if (MATCH(".gps", gps_location, dive)) return; + if (MATCH(".latitude", gps_lat, dive)) + return; + if (MATCH(".longitude", gps_long, dive)) + return; if (MATCH(".location", utf8_string, &dive->location)) return; + if (MATCH(".name", utf8_string, &dive->location)) + return; if (MATCH(".suit", utf8_string, &dive->suit)) return; if (MATCH(".divesuit", utf8_string, &dive->suit)) |