diff options
author | sleske <sleske@ffa7fe5e-494d-0410-b361-a75ebd5db220> | 2013-06-30 23:07:02 +0000 |
---|---|---|
committer | sleske <sleske@ffa7fe5e-494d-0410-b361-a75ebd5db220> | 2013-06-30 23:07:02 +0000 |
commit | 3c2bc532366491895273f23ac3fea1cee9a127e1 (patch) | |
tree | 08ede3ab3abe2c697b528a2d98061357b42e96e5 /navit/attr.c | |
parent | 4e08fc8246ee99e9aab0842531d4363c66351108 (diff) | |
download | navit-3c2bc532366491895273f23ac3fea1cee9a127e1.tar.gz |
Fix:core:Ignore unknown/invalid item types in config.|Fixes #1127.
git-svn-id: http://svn.code.sf.net/p/navit/code/trunk/navit@5542 ffa7fe5e-494d-0410-b361-a75ebd5db220
Diffstat (limited to 'navit/attr.c')
-rw-r--r-- | navit/attr.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/navit/attr.c b/navit/attr.c index 3dfe8e449..dccc04c2d 100644 --- a/navit/attr.c +++ b/navit/attr.c @@ -105,6 +105,7 @@ attr_new_from_text(const char *name, const char *value) struct attr *ret; struct coord_geo *g; struct coord c; + enum item_type item_type; char *pos,*type_str,*str,*tok; int min,max,count; @@ -122,9 +123,14 @@ attr_new_from_text(const char *name, const char *value) str=type_str; while ((tok=strtok(str, ","))) { ret->u.item_types=g_realloc(ret->u.item_types, (count+2)*sizeof(enum item_type)); - ret->u.item_types[count++]=item_from_name(tok); - ret->u.item_types[count]=type_none; - str=NULL; + item_type=item_from_name(tok); + if (item_type!=type_none) { + ret->u.item_types[count++]=item_type; + ret->u.item_types[count]=type_none; + } else { + dbg(0,"Unknown item type '%s' ignored.\n",tok); + } + str=NULL; } g_free(type_str); break; |