summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormdankov <mdankov@ffa7fe5e-494d-0410-b361-a75ebd5db220>2014-04-01 21:10:31 +0000
committermdankov <mdankov@ffa7fe5e-494d-0410-b361-a75ebd5db220>2014-04-01 21:10:31 +0000
commit7ddd78aac8762fe135c4072bc608c6099dfe50a2 (patch)
treec869e7dd9e8a3999feed5153dfbc4b7376a826bd
parent0c87f18a47cd614166efefc96305e2a29044347c (diff)
downloadnavit-7ddd78aac8762fe135c4072bc608c6099dfe50a2.tar.gz
Fix:gui_internal:Convert charset of all map-originated strings before using them.
git-svn-id: http://svn.code.sf.net/p/navit/code/trunk/navit@5763 ffa7fe5e-494d-0410-b361-a75ebd5db220
-rw-r--r--navit/gui/internal/gui_internal.c20
-rw-r--r--navit/gui/internal/gui_internal_poi.c24
2 files changed, 20 insertions, 24 deletions
diff --git a/navit/gui/internal/gui_internal.c b/navit/gui/internal/gui_internal.c
index e9bf8804b..4a527fbd3 100644
--- a/navit/gui/internal/gui_internal.c
+++ b/navit/gui/internal/gui_internal.c
@@ -630,7 +630,7 @@ gui_internal_select_waypoint(struct gui_priv *this, const char *title, const cha
struct map *map;
struct map_rect *mr;
struct item *item;
- char *label,*text;
+ char *text;
int i;
int dstcount=navit_get_destination_count(this->nav)+1;
@@ -655,9 +655,7 @@ gui_internal_select_waypoint(struct gui_priv *this, const char *title, const cha
if(item->type!=type_waypoint && item->type!=type_route_end)
continue;
if (item_attr_get(item, attr_label, &attr)) {
- label=map_convert_string(item->map, attr.u.str);
- text=g_strdup_printf(_("Waypoint %s"), label);
- map_convert_free(label);
+ text=g_strdup_printf(_("Waypoint %s"), map_convert_string_tmp(item->map, attr.u.str));
} else
continue;
gui_internal_widget_append(wtable,row=gui_internal_widget_table_row_new(this,gravity_left|orientation_horizontal|flags_fill));
@@ -887,7 +885,7 @@ gui_internal_cmd_view_in_browser(struct gui_priv *this, struct widget *wm, void
if (item) {
while(item_attr_get(item, attr_url_local, &attr)) {
if (! cmd)
- cmd=g_strdup_printf("navit-browser.sh '%s' &",attr.u.str);
+ cmd=g_strdup_printf("navit-browser.sh '%s' &",map_convert_string_tmp(item->map,attr.u.str));
}
}
map_rect_destroy(mr);
@@ -1150,7 +1148,7 @@ gui_internal_cmd_position_do(struct gui_priv *this, struct pcoord *pc_in, struct
item = map_rect_get_item_byid(mr, wm->item.id_hi, wm->item.id_lo);
if (item) {
if (item_attr_get(item, attr_description, &attr))
- gui_internal_widget_append(w, gui_internal_label_new(this, attr.u.str));
+ gui_internal_widget_append(w, gui_internal_label_new(this, map_convert_string_tmp(item->map,attr.u.str)));
if (item_attr_get(item, attr_url_local, &attr)) {
gui_internal_widget_append(wtable,row=gui_internal_widget_table_row_new(this,gravity_left|orientation_horizontal|flags_fill));
gui_internal_widget_append(row,
@@ -1264,7 +1262,7 @@ gui_internal_cmd_position_do(struct gui_priv *this, struct pcoord *pc_in, struct
struct point p;
struct transformation *trans;
- char *text, *label;
+ char *text;
struct map_selection *sel;
GList *l, *ll;
@@ -1293,9 +1291,7 @@ gui_internal_cmd_position_do(struct gui_priv *this, struct pcoord *pc_in, struct
continue;
}
if (item_attr_get(itemo, attr_label, &attr)) {
- label=map_convert_string(itemo->map, attr.u.str);
- text=g_strdup(label);
- map_convert_free(label);
+ text=g_strdup(map_convert_string_tmp(itemo->map, attr.u.str));
} else
text=g_strdup(item_to_name(item->type));
gui_internal_widget_append(wtable,row=gui_internal_widget_table_row_new(this,gravity_left|orientation_horizontal|flags_fill));
@@ -1547,7 +1543,7 @@ gui_internal_cmd_bookmarks(struct gui_priv *this, struct widget *wm, void *data)
while ((item=bookmarks_get_item(mattr.u.bookmarks))) {
if (!item_attr_get(item, attr_label, &attr)) continue;
- label_full=attr.u.str;
+ label_full=map_convert_string_tmp(item->map,attr.u.str);
dbg(2,"full_labled: %s\n",label_full);
// hassub == 1 if the item type is a sub-folder
@@ -3145,7 +3141,7 @@ gui_internal_populate_route_table(struct gui_priv * this, struct navit * navit)
| orientation_horizontal);
gui_internal_widget_append(this->route_data.route_table,row);
- label = gui_internal_label_new(this,attr.u.str);
+ label = gui_internal_label_new(this,map_convert_string_tmp(item->map,attr.u.str));
gui_internal_widget_append(row,label);
label->item=*item;
diff --git a/navit/gui/internal/gui_internal_poi.c b/navit/gui/internal/gui_internal_poi.c
index f2ec92282..9679f48b9 100644
--- a/navit/gui/internal/gui_internal_poi.c
+++ b/navit/gui/internal/gui_internal_poi.c
@@ -111,7 +111,7 @@ gui_internal_poi_icon(struct gui_priv *this, struct item *item)
src=el->u.icon.src;
if(!src || !src[0])
src="%s";
- icon=g_strdup_printf(src,icon_src.u.str);
+ icon=g_strdup_printf(src,map_convert_string_tmp(item->map,icon_src.u.str));
}
else {
icon=g_strdup(el->u.icon.src);
@@ -365,22 +365,22 @@ gui_internal_compose_item_address_string(struct item *item)
char *s=g_strdup("");
struct attr attr;
if(item_attr_get(item, attr_house_number, &attr))
- s=g_strjoin(" ",s,attr.u.str,NULL);
+ s=g_strjoin(" ",s,map_convert_string_tmp(item->map,attr.u.str),NULL);
if(item_attr_get(item, attr_street_name, &attr))
- s=g_strjoin(" ",s,attr.u.str,NULL);
+ s=g_strjoin(" ",s,map_convert_string_tmp(item->map,attr.u.str),NULL);
if(item_attr_get(item, attr_street_name_systematic, &attr))
- s=g_strjoin(" ",s,attr.u.str,NULL);
+ s=g_strjoin(" ",s,map_convert_string_tmp(item->map,attr.u.str),NULL);
if(item_attr_get(item, attr_district_name, &attr))
- s=g_strjoin(" ",s,attr.u.str,NULL);
+ s=g_strjoin(" ",s,map_convert_string_tmp(item->map,attr.u.str),NULL);
if(item_attr_get(item, attr_town_name, &attr))
- s=g_strjoin(" ",s,attr.u.str,NULL);
+ s=g_strjoin(" ",s,map_convert_string_tmp(item->map,attr.u.str),NULL);
if(item_attr_get(item, attr_county_name, &attr))
- s=g_strjoin(" ",s,attr.u.str,NULL);
+ s=g_strjoin(" ",s,map_convert_string_tmp(item->map,attr.u.str),NULL);
if(item_attr_get(item, attr_country_name, &attr))
- s=g_strjoin(" ",s,attr.u.str,NULL);
+ s=g_strjoin(" ",s,map_convert_string_tmp(item->map,attr.u.str),NULL);
if(item_attr_get(item, attr_address, &attr))
- s=g_strjoin(" ",s,"|",attr.u.str,NULL);
+ s=g_strjoin(" ",s,"|",map_convert_string_tmp(item->map,attr.u.str),NULL);
return s;
}
@@ -412,7 +412,7 @@ gui_internal_cmd_pois_item_selected(struct poi_param *param, struct item *item)
if (param->isAddressFilter) {
s=gui_internal_compose_item_address_string(item);
} else if (item_attr_get(item, attr_label, &attr)) {
- s=g_strdup_printf("%s %s", item_to_name(item->type), attr.u.str);
+ s=g_strdup_printf("%s %s", item_to_name(item->type), map_convert_string_tmp(item->map,attr.u.str));
} else {
s=g_strdup(item_to_name(item->type));
}
@@ -640,14 +640,14 @@ gui_internal_cmd_pois(struct gui_priv *this, struct widget *wm, void *data)
if (item->type==type_house_number) {
label=gui_internal_compose_item_address_string(item);
} else if (item_attr_get(item, attr_label, &attr)) {
- label=g_strdup(attr.u.str);
+ label=map_convert_string(item->map,attr.u.str);
// Buildings which label is equal to addr:housenumber value
// are duplicated by item_house_number. Don't include such
// buildings into the list. This is true for OSM maps created with
// maptool patched with #859 latest patch.
// FIXME: For non-OSM maps, we probably would better don't skip these items.
if(item->type==type_poly_building && item_attr_get(item, attr_house_number, &attr) ) {
- if(strcmp(label,attr.u.str)==0) {
+ if(strcmp(label,map_convert_string_tmp(item->map,attr.u.str))==0) {
g_free(label);
continue;
}