[PATCH 1/3] Revert "Save latitude and longitude on XML even if location not set"

Anton Lundin glance at acc.umu.se
Tue May 6 15:27:49 PDT 2014


This fixes the bug in #440 by accident, and introduces lots of empty
attributes and tags in the xml.

This reverts commit 6378bfd91ee6c0ad746b072d8a9389e0eba7c614.

Signed-off-by: Anton Lundin <glance at acc.umu.se>
---
 save-xml.c | 27 ++++++++++++++++++---------
 1 file changed, 18 insertions(+), 9 deletions(-)

diff --git a/save-xml.c b/save-xml.c
index b61f794..54a0a86 100644
--- a/save-xml.c
+++ b/save-xml.c
@@ -71,16 +71,19 @@ static void quote(struct membuffer *b, const char *text, int is_attribute)
 static void show_utf8(struct membuffer *b, const char *text, const char *pre, const char *post, int is_attribute)
 {
 	int len;
+
+	if (!text)
+		return;
+	while (isspace(*text))
+		text++;
+	len = strlen(text);
+	if (!len)
+		return;
+	while (len && isspace(text[len - 1]))
+		len--;
+	/* FIXME! Quoting! */
 	put_string(b, pre);
-	if (text){
-		while (isspace(*text))
-			text++;
-		len = strlen(text);
-		while (len && isspace(text[len - 1]))
-			len--;
-		/* FIXME! Quoting! */
-		quote(b, text, is_attribute);
-	}
+	quote(b, text, is_attribute);
 	put_string(b, post);
 }
 
@@ -185,7 +188,13 @@ static void show_location(struct membuffer *b, struct dive *dive)
 	 */
 	if (latitude.udeg || longitude.udeg) {
 		int len = sprintf(buffer, "  <location ");
+
 		len += format_location(buffer + len, latitude, longitude);
+		if (!dive->location) {
+			memcpy(buffer + len, "/>\n", 4);
+			put_string(b, buffer);
+			return;
+		}
 		buffer[len++] = '>';
 		buffer[len] = 0;
 		prefix = buffer;
-- 
1.9.1



More information about the subsurface mailing list