It seems that geolookups might return null for some values. This will
result in corrupted XML as show_utf8 does not terminate the current tag
if t->value is empty. So let's just skip the geo data that is missing
the value.

Signed-off-by: Miika Turkia <[email protected]>
---
 save-xml.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/save-xml.c b/save-xml.c
index 0fdb390..1668858 100644
--- a/save-xml.c
+++ b/save-xml.c
@@ -555,7 +555,7 @@ void save_dives_buffer(struct membuffer *b, const bool 
select_only)
                if (ds->taxonomy.nr) {
                        for (int j = 0; j < ds->taxonomy.nr; j++) {
                                struct taxonomy *t = &ds->taxonomy.category[j];
-                               if (t->category != TC_NONE) {
+                               if (t->category != TC_NONE && t->value) {
                                        put_format(b, "  <geo cat='%d'", 
t->category);
                                        put_format(b, " origin='%d'", 
t->origin);
                                        show_utf8(b, t->value, " value='", 
"'/>\n", 1);
-- 
2.1.4

_______________________________________________
subsurface mailing list
[email protected]
http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface

Reply via email to