Hi Gerd
yes, I think this is a bug. In opposite to the previously posted rules your
rules should work.
@Steve: If I got that right the ExpressionArranger kicks in too early. It
should only be called when the if-stack is empty (again).
Can you have a look at it?
If you have:
if (railway=*) then
if (tunnel=no) then
railway=rail [0x14 resolution 21]
() { set tunnel = yes }
railway=tram [0x15 resolution 21]
end
end
This is converted (correctly) to:
$tunnel=no {set mkgmap:if:2='true';}
$tunnel=no & $railway=rail & $railway=* [0x14 level 2]
$tunnel=no & $railway=* {set tunnel='yes';}
$mkgmap:if:2=true & $railway=tram & $railway=* [0x15 level 2]
But with tunnel!=no instead, this becomes:
$tunnel!=no {set mkgmap:if:2='true';}
$tunnel!=no & $railway=rail & $railway=* [0x14 level 2]
$tunnel!=no & $railway=* {set tunnel='yes';}
$mkgmap:if:2=true & $railway=tram & $railway=* [0x15 level 2]
and so fails on the first statement.
The only way to fix this that springs to mind is to instead convert
this to:
railway=* && $tunnel!=no {set mkgmap:if:2='true';}
$tunnel!=no & $railway=rail & $railway=* [0x14 level 2]
$tunnel!=no & $railway=* {set tunnel='yes';}
$mkgmap:if:2=true & $railway=tram [0x15 level 2]
Steve
_______________________________________________
mkgmap-dev mailing list
[email protected]
http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev