X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;f=navit%2Fvehicle.c;h=dd0c74983102983f81de4ad00304b10a5c1914d5;hb=1b5fda65b4cd2499d0c52302d84e031846c6506e;hp=fe8c282db96713ac1ae9d1f6e54abd0175a1fb20;hpb=a0a78759defd1d774f00c690e34d22ad6da546ef;p=navit-package diff --git a/navit/vehicle.c b/navit/vehicle.c index fe8c282..dd0c749 100644 --- a/navit/vehicle.c +++ b/navit/vehicle.c @@ -193,12 +193,11 @@ vehicle_get_attr(struct vehicle *this_, enum attr_type type, struct attr *attr, * @param attrs */ int -vehicle_set_attr(struct vehicle *this_, struct attr *attr, - struct attr **attrs) +vehicle_set_attr(struct vehicle *this_, struct attr *attr) { int ret=1; if (this_->meth.set_attr) - ret=this_->meth.set_attr(this_->priv, attr, attrs); + ret=this_->meth.set_attr(this_->priv, attr); if (ret == 1 && attr->type != attr_navit) this_->attrs=attr_generic_set_attr(this_->attrs, attr); return ret != 0; @@ -311,6 +310,8 @@ vehicle_draw(struct vehicle *this_, struct graphics *gra, struct point *pnt, int angle+=360; dbg(1,"enter this=%p gra=%p pnt=%p lazy=%d dir=%d speed=%d\n", this_, gra, pnt, lazy, angle, speed); dbg(1,"point %d,%d\n", pnt->x, pnt->y); + if (!this_->cursor) + return; this_->cursor_pnt=*pnt; this_->cursor_pnt.x-=this_->cursor->w/2; this_->cursor_pnt.y-=this_->cursor->h/2; @@ -386,6 +387,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) {