From ef90d5cd08b8295591f8b38de10e31d0de2e2fb6 Mon Sep 17 00:00:00 2001 From: martin-s Date: Thu, 12 Nov 2009 14:54:10 +0000 Subject: Add:Core:Support for custom tags for gpx log git-svn-id: http://svn.code.sf.net/p/navit/code/trunk/navit@2741 ffa7fe5e-494d-0410-b361-a75ebd5db220 --- navit/vehicle.c | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'navit/vehicle.c') diff --git a/navit/vehicle.c b/navit/vehicle.c index fe8c282db..6fe75ee1e 100644 --- a/navit/vehicle.c +++ b/navit/vehicle.c @@ -386,6 +386,39 @@ vehicle_log_nmea(struct vehicle *this_, struct log *log) log_write(log, pos_attr.u.str, strlen(pos_attr.u.str), 0); } +void +vehicle_log_gpx_add_tag(char *tag, char **logstr) +{ + char *ext_start="\t\n"; + char *ext_end="\t\n"; + char *trkpt_end=""; + char *start=NULL,*end=NULL; + if (!*logstr) { + start=g_strdup(ext_start); + end=g_strdup(ext_end); + } else { + char *str=strstr(*logstr, ext_start); + int len; + if (str) { + len=str-*logstr+strlen(ext_start); + start=g_strdup(*logstr); + start[len]='\0'; + end=g_strdup(str+strlen(ext_start)); + } else { + str=strstr(*logstr, trkpt_end); + len=str-*logstr; + end=g_strdup_printf("%s%s",ext_end,str); + str=g_strdup(*logstr); + str[len]='\0'; + start=g_strdup_printf("%s%s",str,ext_start); + g_free(str); + } + } + *logstr=g_strdup_printf("%s%s%s",start,tag,end); + g_free(start); + g_free(end); +} + static void vehicle_log_gpx(struct vehicle *this_, struct log *log) { -- cgit v1.2.1