Fix:Core:More routing fixes
authormartin-s <martin-s@ffa7fe5e-494d-0410-b361-a75ebd5db220>
Sun, 19 Apr 2009 13:52:03 +0000 (13:52 +0000)
committermartin-s <martin-s@ffa7fe5e-494d-0410-b361-a75ebd5db220>
Sun, 19 Apr 2009 13:52:03 +0000 (13:52 +0000)
git-svn-id: https://navit.svn.sourceforge.net/svnroot/navit/trunk@2216 ffa7fe5e-494d-0410-b361-a75ebd5db220

navit/navit/attr.c
navit/navit/item.c
navit/navit/route.c

index ba4c0ac..fbb7e62 100644 (file)
@@ -134,7 +134,10 @@ attr_new_from_text(const char *name, const char *value)
                        break;
                }
                if (attr >= attr_type_int_begin && attr <= attr_type_int_end) {
-                       ret->u.num=strtol(value, NULL, 0);
+                       if (value[0] == '0' && value[1] == 'x')
+                               ret->u.num=strtoul(value, NULL, 0);
+                       else
+                               ret->u.num=strtol(value, NULL, 0);
                        
                        if ((attr >= attr_type_rel_abs_begin) && (attr < attr_type_boolean_begin)) {
                                /* Absolute values are from -0x40000000 - 0x40000000, with 0x0 being 0 (who would have thought that?)
index 4c8f7b3..d7a7e6b 100644 (file)
@@ -59,8 +59,9 @@ struct default_flags default_flags2[]={
        {type_ramp, AF_MOTORIZED_FAST},
        {type_roundabout, AF_ALL},
        {type_ferry, AF_ALL},
-       {type_cycleway, AF_ALL},
+       {type_cycleway, AF_PBH},
        {type_track_gravelled, AF_ALL},
+       {type_footway, AF_PBH},
 };
 
 
index 33b1db8..7eec394 100644 (file)
@@ -1944,7 +1944,7 @@ route_graph_update(struct route *this, struct callback *cb)
 struct street_data *
 street_get_data (struct item *item)
 {
-       int count=0;
+       int count=0,*flags;
        struct street_data *ret = NULL, *ret1;
        struct attr flags_attr, maxspeed_attr;
        const int step = 128;
@@ -1969,8 +1969,13 @@ street_get_data (struct item *item)
        ret->count=count;
        if (item_attr_get(item, attr_flags, &flags_attr)) 
                ret->flags=flags_attr.u.num;
-       else
-               ret->flags=0;
+       else {
+               flags=item_get_default_flags(item->type);
+               if (flags)
+                       ret->flags=*flags;
+               else
+                       ret->flags=0;
+       }
 
        ret->maxspeed = -1;
        if (ret->flags & AF_SPEED_LIMIT) {