From: martin-s Date: Sat, 17 May 2008 18:45:50 +0000 (+0000) Subject: Fix:Tools:Match only if all attributes are present X-Git-Tag: navit-0.5.0.5194svn~4099 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=942d9302996be6a4630d2720843049da9bd3b8d0;p=profile%2Fivi%2Fnavit.git Fix:Tools:Match only if all attributes are present git-svn-id: https://navit.svn.sourceforge.net/svnroot/navit/trunk@1053 ffa7fe5e-494d-0410-b361-a75ebd5db220 --- diff --git a/navit/src/osm2navit.c b/navit/src/osm2navit.c index 273481b..1448c79 100644 --- a/navit/src/osm2navit.c +++ b/navit/src/osm2navit.c @@ -887,13 +887,20 @@ write_attr(FILE *out, struct attr_bin *attr, void *buffer) static int attr_longest_match(struct attr_mapping **mapping, int mapping_count, enum item_type *types, int types_count) { - int i,j,longest=0,ret=0,sum; + int i,j,longest=0,ret=0,sum,val; struct attr_mapping *curr; for (i = 0 ; i < mapping_count ; i++) { sum=0; curr=mapping[i]; - for (j = 0 ; j < curr->attr_present_idx_count ; j++) - sum+=attr_present[curr->attr_present_idx[j]]; + for (j = 0 ; j < curr->attr_present_idx_count ; j++) { + val=attr_present[curr->attr_present_idx[j]]; + if (val) + sum+=val; + else { + sum=-1; + break; + } + } if (sum > longest) { longest=sum; ret=0;