Skip to content

Instantly share code, notes, and snippets.

@shimaore
Last active November 26, 2016 11:57
Show Gist options
  • Save shimaore/25b4b5df124afababceee0d0be1beaca to your computer and use it in GitHub Desktop.
Save shimaore/25b4b5df124afababceee0d0be1beaca to your computer and use it in GitHub Desktop.
Index: spatialite_osm_filter.c
==================================================================
--- spatialite_osm_filter.c
+++ spatialite_osm_filter.c
@@ -252,36 +252,39 @@
sqlite3_column_text (query, 9));
if (first)
{
/* first NODE row */
- char *timestamp = clean_xml (p_timestamp);
- char *changeset = clean_xml (p_changeset);
- char *user = NULL;
- if (p_user)
- user = clean_xml (p_user);
+ char *timestamp = p_timestamp ? clean_xml (p_timestamp) : NULL;
+ char *changeset = p_changeset ? clean_xml (p_changeset) : NULL;
+ char *user = p_user ? clean_xml (p_user) : NULL;
first = 0;
#if defined(_WIN32) || defined(__MINGW32__)
/* CAVEAT - M$ runtime doesn't supports %lld for 64 bits */
fprintf (out, "\t<node id=\"%I64d\"", id);
#else
fprintf (out, "\t<node id=\"%lld\"", id);
#endif
- if (!user)
- fprintf (out,
- " lat=\"%1.7f\" lon=\"%1.7f\" version=\"%d\" changeset=\"%s\" uid=\"%d\" timestamp=\"%s\"",
- y, x, version, changeset, uid,
- timestamp);
- else
- fprintf (out,
- " lat=\"%1.7f\" lon=\"%1.7f\" version=\"%d\" changeset=\"%s\" user=\"%s\" uid=\"%d\" timestamp=\"%s\"",
- y, x, version, changeset, user,
- uid, timestamp);
- free (changeset);
- if (user)
- free (user);
- free (timestamp);
+
+ if (user) {
+ fprintf (out, " user=\"%s\"", user);
+ free(user);
+ }
+ if (changeset) {
+ fprintf (out, " changeset=\"%s\"", changeset);
+ free(changeset);
+ }
+ if (timestamp) {
+ fprintf (out, " timestamp=\"%s\"", timestamp);
+ free(timestamp);
+ }
+ if (!version)
+ version = 1;
+ fprintf (out, " version=\"%d\"", version);
+ fprintf (out,
+ " lat=\"%1.7f\" lon=\"%1.7f\" uid=\"%d\" ",
+ y, x, uid);
if (k == NULL && v == NULL)
fprintf (out, "/>\n");
else
fprintf (out, ">\n");
}
@@ -419,12 +422,12 @@
sqlite3_column_int64 (query, 6);
if (first)
{
/* first WAY row */
- char *timestamp = clean_xml (p_timestamp);
- char *changeset = clean_xml (p_changeset);
+ char *timestamp = p_timestamp ? clean_xml (p_timestamp) : NULL;
+ char *changeset = p_changeset ? clean_xml (p_changeset) : NULL;
char *user = NULL;
if (p_user)
user = clean_xml (p_user);
first = 0;
#if defined(_WIN32) || defined(__MINGW32__)
@@ -431,25 +434,28 @@
/* CAVEAT - M$ runtime doesn't supports %lld for 64 bits */
fprintf (out, "\t<way id=\"%I64d\"", id);
#else
fprintf (out, "\t<way id=\"%lld\"", id);
#endif
- if (!user)
- fprintf (out,
- " version=\"%d\" changeset=\"%s\" uid=\"%d\" timestamp=\"%s\">\n",
- version, changeset, uid,
- timestamp);
- else
- fprintf (out,
- " version=\"%d\" changeset=\"%s\" user=\"%s\" uid=\"%d\" timestamp=\"%s\">\n",
- version, changeset, user, uid,
- timestamp);
- free (changeset);
- if (user)
- free (user);
- free (timestamp);
- }
+
+ if (user) {
+ fprintf (out, " user=\"%s\"", user);
+ free(user);
+ }
+ if (changeset) {
+ fprintf (out, " changeset=\"%s\"", changeset);
+ free(changeset);
+ }
+ if (timestamp) {
+ fprintf (out, " timestamp=\"%s\"", timestamp);
+ free(timestamp);
+ }
+ if (!version)
+ version = 1;
+ fprintf (out, " version=\"%d\"", version);
+ fprintf (out, " uid=\"%d\" >\n", uid);
+ }
/* NODE REF tag */
#if defined(_WIN32) || defined(__MINGW32__)
/* CAVEAT - M$ runtime doesn't supports %lld for 64 bits */
fprintf (out, "\t\t<nd ref=\"%I64d\"/>\n", node_id);
#else
@@ -660,12 +666,12 @@
sqlite3_column_int64 (query_way, 7);
if (first)
{
/* first WAY row */
- char *timestamp = clean_xml (p_timestamp);
- char *changeset = clean_xml (p_changeset);
+ char *timestamp = p_timestamp ? clean_xml (p_timestamp) : NULL;
+ char *changeset = p_changeset ? clean_xml (p_changeset) : NULL;
char *user = NULL;
if (p_user)
user = clean_xml (p_user);
first = 0;
#if defined(_WIN32) || defined(__MINGW32__)
@@ -672,23 +678,26 @@
/* CAVEAT - M$ runtime doesn't supports %lld for 64 bits */
fprintf (out, "\t<relation id=\"%I64d\"", id);
#else
fprintf (out, "\t<relation id=\"%lld\"", id);
#endif
- if (!user)
- fprintf (out,
- " version=\"%d\" changeset=\"%s\" uid=\"%d\" timestamp=\"%s\">\n",
- version, changeset, uid,
- timestamp);
- else
- fprintf (out,
- " version=\"%d\" changeset=\"%s\" user=\"%s\" uid=\"%d\" timestamp=\"%s\">\n",
- version, changeset, user, uid,
- timestamp);
- free (changeset);
- free (user);
- free (timestamp);
+ if (user) {
+ fprintf (out, " user=\"%s\"", user);
+ free(user);
+ }
+ if (changeset) {
+ fprintf (out, " changeset=\"%s\"", changeset);
+ free(changeset);
+ }
+ if (timestamp) {
+ fprintf (out, " timestamp=\"%s\"", timestamp);
+ free(timestamp);
+ }
+ if (!version)
+ version = 1;
+ fprintf (out, " version=\"%d\"", version);
+ fprintf (out, " uid=\"%d\" >\n", uid);
}
/* NODE REF tag */
#if defined(_WIN32) || defined(__MINGW32__)
/* CAVEAT - M$ runtime doesn't supports %lld for 64 bits */
fprintf (out,
@shimaore
Copy link
Author

Version numbers cannot be 0.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment