[Talk-de] GPSbabel - kleine Veränderung für OSM

Sven Geggus lists at fuchsschwanzdomain.de
Do Aug 14 20:53:38 UTC 2008


Tobias Wendorff <tobias.wendorff at uni-dortmund.de> wrote:

> echt toll, dass Du sowas weißt. Dann erkläre mir doch bitte auch, wie
> ich jenes in C/C++ realisieren kann und in einen Patch aufbereiten kann.

Gerne doch :)

Wenn man nachfolgenden patch einspielt kann mit Hilfe des Parameters
created_by beliebige created_by tags setzen und mit Hilfe eines leeren
created_by tags dafür sorgen, dass gar kein solcher Tag reingeschrieben
wird.

Ich werde das mal upstream einreichen.

Gruss

Sven

--- osm.c.orig	2008-08-14 22:25:06.549645351 +0200
+++ osm.c	2008-08-14 22:40:05.337795184 +0200
@@ -24,12 +24,13 @@
 #include "avltree.h"
 #include "xmlgeneric.h"
 
-static char *opt_tag, *opt_tagnd;
+static char *opt_tag, *opt_tagnd, *created_by;
 
 static arglist_t osm_args[] = 
 {
 	{ "tag", &opt_tag, 	"Write additional way tag key/value pairs", NULL, ARGTYPE_STRING, ARG_NOMINMAX },
 	{ "tagnd", &opt_tagnd,	"Write additional node tag key/value pairs", NULL, ARGTYPE_STRING, ARG_NOMINMAX },
+	{ "created_by", &created_by, "Use this value as custom created_by value","GPSBabel", ARGTYPE_STRING, ARG_NOMINMAX },
 	ARG_TERMINATOR
 };
 
@@ -785,11 +786,14 @@
 		}
 		gbfprintf(fout, ">\n");
 
-		gbfprintf(fout, "    <tag k='created_by' v='GPSBabel");
-		if (gpsbabel_time != 0)
-			gbfprintf(fout, "-%s", gpsbabel_version);
-		gbfprintf(fout, "'/>\n");
-
+		if (strlen(created_by) !=0) {
+			gbfprintf(fout, "    <tag k='created_by' v='%s",created_by);
+			if (gpsbabel_time != 0)
+				if (strcmp("GPSBabel",created_by)==0)
+					gbfprintf(fout, "-%s", gpsbabel_version);
+			gbfprintf(fout, "'/>\n");
+		}
+		
 		osm_write_tag("name", wpt->shortname);
 		osm_write_tag("note", (wpt->notes) ? wpt->notes : wpt->description);
 		if (wpt->icon_descr)
@@ -837,10 +841,13 @@
 {
 	if (skip_rte) return;
 
-	gbfprintf(fout, "    <tag k='created_by' v='GPSBabel");
-	if (gpsbabel_time != 0)
-		gbfprintf(fout, "-%s", gpsbabel_version);
-	gbfprintf(fout, "'/>\n");
+	if (strlen(created_by) !=0) {
+		gbfprintf(fout, "    <tag k='created_by' v='%s",created_by);
+		if (gpsbabel_time != 0)
+			if (strcmp("GPSBabel",created_by)==0)
+				gbfprintf(fout, "-%s", gpsbabel_version);
+		gbfprintf(fout, "'/>\n");
+	}
 
 	osm_write_tag("name", rte->rte_name);
 	osm_write_tag("note", rte->rte_desc);


-- 
"Every time you use Google, you're using a Linux machine"
                             (Chris DiBona, a programs manager for Google)

/me is giggls at ircnet, http://sven.gegg.us/ on the Web




Mehr Informationen über die Mailingliste Talk-de