summaryrefslogtreecommitdiffstats
path: root/save-xml.c
diff options
context:
space:
mode:
authorGravatar Anton Lundin <glance@acc.umu.se>2014-05-07 00:27:49 +0200
committerGravatar Dirk Hohndel <dirk@hohndel.org>2014-05-06 15:35:08 -0700
commit7b0b5d9643d31e9b3ad260841011b81ec18eff8a (patch)
tree0dd4c786ee653eeeb515ca13455807b35f64ea4e /save-xml.c
parent0c836ebc47cab2f37274ae03ab2be6c7b2fd0456 (diff)
downloadsubsurface-7b0b5d9643d31e9b3ad260841011b81ec18eff8a.tar.gz
Revert "Save latitude and longitude on XML even if location not set"
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@acc.umu.se> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'save-xml.c')
-rw-r--r--save-xml.c27
1 files changed, 18 insertions, 9 deletions
diff --git a/save-xml.c b/save-xml.c
index b61f79440..54a0a8606 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;