Index: doc/options.txt
===================================================================
--- doc/options.txt	(revision 4462)
+++ doc/options.txt	(working copy)
@@ -19,9 +19,10 @@
 need to use this option to allow more memory to be allocated to the Java
 heap. Typically, mkgmap requires about 500MB per core, so an 8-core
 processor might need to specify -Xmx4g - note there is no space or
-equals sign in the option.  
+equals sign in the option.
 
 ;-enableassertions
+;-ea
 :	Causes an error to be thrown if an assertion written in the mkgmap
 code is evaluated as not true. This is useful in detecting bugs in the
 mkgmap code.
@@ -35,7 +36,7 @@
 === Mkgmap options ===
 
 The order of the options is significant in that options only apply
-to subsequent input files. If you are using splitter, you probably 
+to subsequent input files. If you are using splitter, you probably
 will need to put most of your options before '-c template.args'
 (this file is generated by splitter).
 
@@ -47,7 +48,7 @@
 : 	Display help on the given topic. If the topic is omitted then
 general help information is displayed, the same as in help=help.
 
-;--version 
+;--version
 : 	Write program version to stderr.
 
 === File options ===
@@ -55,7 +56,7 @@
 ;filename
 ;--input-file=filename
 : 	Read input data from the given file.  This option (or just a
-filename) may be specified more than once. Make sure you set all 
+filename) may be specified more than once. Make sure you set all
 wanted options before this.
 
 ;--gmapsupp
@@ -79,8 +80,8 @@
 <p>
 Lines beginning with a # character are ignored and can be used as
 comments.  Any command line option can be specified, however the
-leading '--' must be omitted.  The short option names with a single
-'-' cannot be used, simply use the long name instead. 
+leading '--' must be omitted.
+The short option names with a single '-' cannot be used, simply use the long name instead.
 
 ;--output-dir=directory
 :	Specify the directory in which all output files are written. It defaults
@@ -144,7 +145,7 @@
 gmapsupp.img file so that address search will work on a GPS
 device.
 <p>
-If both the --gmapsupp and any of --tdbfile, --gmapi, or --nsis options 
+If both the --gmapsupp and any of --tdbfile, --gmapi, or --nsis options
 are given alongside the --index option, then both indexes will be created.
 Note that this will require roughly twice as much memory.
 <p>
@@ -188,17 +189,17 @@
 of special characters in the road labels to mark the beginning and end of
 the important part. In combination with option --split-name-index
 only the words in the important part are indexed.
-<p>
+
 :There are two main effects of this option:
 ::	- On the PC, when zooming out, the name 'Rue de la Concorde' is only
 rendered as 'Concorde'.
 ::	- The index for road names only contains the important part of the name.
 You can search for road name Conc to find road names like 'Rue de la Concorde'.
-However, a search for 'Rue' will not list 'Rue de la Concorde' or
-'Rue du Moulin'. It may list 'Rueben Brookins Road' if that is in the map.
+However, a search for 'Rue' will not list 'Rue de la Concorde' or 'Rue du Moulin'.
+It may list 'Rueben Brookins Road' if that is in the map.
 Only MapSource shows a corresponding hint.
-<p>
-::	Another effect is that the index is smaller. 
+
+::	Another effect is that the index is smaller.
 :	See comments in the sample roadNameConfig.txt for further details.
 
 ;--mdr7-excl=name[,name...]
@@ -221,8 +222,8 @@
 ::	- 0x00 .. 0x0f (cities, sub type 0, type <= 0xf)
 ::	- 0x2axx..0x30xx (Food & Drink, Lodging, ...)
 ::	- 0x28xx (no category ?)
-::	- 0x64xx .. 0x66xx (attractions)   
-:	This option allows the exclusion of POI types from the index. 
+::	- 0x64xx .. 0x66xx (attractions)
+:	This option allows the exclusion of POI types from the index.
 The excluded types are not indexed, but may still be searchable on a device,
 as some devices seem to ignore most of the index, e.g. an Oregon 600 with
 firmware 5.00 only seems to use it for city search.
@@ -229,13 +230,13 @@
 If your device finds a POI name like 'Planet' when you search for 'Net',
 it doesn't use the index because the index created by mkgmap cannot help for
 that search.
-<p>
+
 :	So, this option may help when you care about the size of the index or the
-memory that is needed to calculate it.    
+memory that is needed to calculate it.
 The option expects a comma separated list of types or type ranges. A range is
 given with from-type-to-type, e.g. 0x6400-0x6405. First and last type are both
-excluded.  A range can span multiple types, e.g. 0x6400-0x661f.  
-:	Examples for usage: 
+excluded.  A range can span multiple types, e.g. 0x6400-0x661f.
+:	Examples for usage:
 ::	- Assume your style adds a POI with type 0x2800 for each addr:housenumber.
 It is not useful to index those numbers, so you can use --poi-excl-index=0x2800
 to exclude this.
@@ -253,7 +254,7 @@
 <p>
 The following special tags are added:
 <pre>
-  mkgmap:admin_level2 : Name of the admin_level=2 boundary 
+  mkgmap:admin_level2 : Name of the admin_level=2 boundary
   mkgmap:admin_level3 : Name of the admin_level=3 boundary
   ..
   mkgmap:admin_level11
@@ -265,29 +266,28 @@
     uk.me.parabola.mkgmap.reader.osm.boundary.BoundaryPreprocessor
     <inputfile> <boundsdir>
 </pre>
-:The input file must contain the boundaries that should be pre-processed. 
-It can have OSM, PBF or O5M file format. It is recommended that it 
+:The input file must contain the boundaries that should be pre-processed.
+It can have OSM, PBF or O5M file format. It is recommended that it
 contains the boundary data only to avoid very high memory usage.
 The boundsdir gives the directory where the processed files are stored.
-This directory can be used as --bounds parameter with mkgmap.               
+This directory can be used as --bounds parameter with mkgmap.
 
 ;--location-autofill=[option1,[option2]]
-: 	Controls how the address fields for country, region, city and zip info 
+: 	Controls how the address fields for country, region, city and zip info
 are gathered automatically if the fields are not set by using the special
 mkgmap address tags (e.g. mkgmap:city - see option index).
 Warning: automatic assignment of address fields is somehow a best guess.
 :;is_in
 ::     The is_in tag is analysed for country and region information.
-<p>
 :;nearest
-::	The city/hamlet points that are closest to the element are used 
-to assign the missing address fields. Beware that cities located 
-in the same tile are used only. So the results close to a tile 
-border have less quality.  
+::	The city/hamlet points that are closest to the element are used
+to assign the missing address fields. Beware that cities located
+in the same tile are used only. So the results close to a tile
+border have less quality.
 
 ;--housenumbers
-:   Enables house number search for OSM input files. 
-All nodes and polygons having addr:housenumber set are matched 
+:   Enables house number search for OSM input files.
+All nodes and polygons having addr:housenumber set are matched
 to streets. A match between a house number element and a street is created if
 the street is located within a radius of 150m and the addr:street tag value of
 the house number element equals the mgkmap:street tag value of the street.
@@ -294,9 +294,9 @@
 The mkgmap:street tag must be added to the street in the style file.
 For optimal results, the tags mkgmap:city and mkgmap:postal_code should be
 set for the housenumber element. If a street connects two or more cities
-this allows all addresses along the road to be found, even when they have the 
+this allows all addresses along the road to be found, even when they have the
 same number.
-: Example for given street name: 
+: Example for given street name:
 :: Node -  addr:street=Main Street addr:housenumber=2
 :: Way 1 - name=Main Street
 :: Way 2 - name=Main Street, mkgmap:street=Main Street
@@ -324,17 +324,17 @@
 
 ;--overview-levels=level:resolution[,level:resolution...]
 :   Like levels, specifies additional levels that are to be written to the
-overview map. Counting of the levels should continue. Up to 8 additional 
-levels may be specified, but the lowest usable resolution with MapSource 
+overview map. Counting of the levels should continue. Up to 8 additional
+levels may be specified, but the lowest usable resolution with MapSource
 seems to be 11. The hard coded default is empty.
-:	See also option --overview-dem-dist.      
+:	See also option --overview-dem-dist.
 
 ;--remove-ovm-work-files
-:   If overview-levels is used, mkgmap creates one additional file 
-with the prefix ovm_ for each map (*.img) file. 
+:   If overview-levels is used, mkgmap creates one additional file
+with the prefix ovm_ for each map (*.img) file.
 These files are used to create the overview map.
-With option --remove-ovm-work-files=true the files are removed 
-after the overview map was created. The default is to keep the files.  
+With option --remove-ovm-work-files=true the files are removed
+after the overview map was created. The default is to keep the files.
 
 === Style options ===
 
@@ -357,9 +357,9 @@
 style file.
 
 ;--style=name
-: 	Specify a style name. Must be used if --style-file points to a 
-directory or zip file containing multiple styles. If --style-file 
-is not used, it selects one of the built-in styles. 
+: 	Specify a style name. Must be used if --style-file points to a
+directory or zip file containing multiple styles. If --style-file
+is not used, it selects one of the built-in styles.
 
 ;--style-option=tag[=value][;tag[=value]...]
 : 	Provide a semicolon separated list of tags which can be used in the style.
@@ -366,12 +366,12 @@
 The intended use is to make a single style more flexible, e.g.
 you may want to use a slightly different set of rules for a map of
 a whole continent. The tags given will be prefixed with "mkgmap:option:".
-If no value is provided the default "true" is used.  
+If no value is provided the default "true" is used.
 This option allows to use rules like
 mkgmap:option:light=true & landuse=farmland {remove landuse}
 Example: -- style-option=light;routing=car
 will add the tags mkgmap:option:light=true and mkgmap:option:routing=car
-to each element before style processing happens. 
+to each element before style processing happens.
 
 ;--list-styles
 : 	List the available styles. If this option is preceded by a style-file
@@ -378,8 +378,8 @@
 option then it lists the styles available within that file.
 
 ;--check-styles
-: 	Perform some checks on the available styles. If this option is 
-preceded by a style-file option then it checks the styles 
+: 	Perform some checks on the available styles. If this option is
+preceded by a style-file option then it checks the styles
 available within that file. If it is also preceded by the style
 option it will only check that style.
 
@@ -449,7 +449,7 @@
 : 	Simplifies the ways with the Douglas Peucker algorithm.
 NUM is the maximal allowed error distance, by which the resulting
 way may differ from the original one.
-This distance gets shifted with lower zoom levels. 
+This distance gets shifted with lower zoom levels.
 Recommended setting is 4, this should lead to only small differences
 (Default is 2.6, which should lead to invisible changes)
 
@@ -465,18 +465,18 @@
 
 ;--min-size-polygon=NUM
 :   Removes all polygons smaller than NUM from the map.
-This reduces map size and speeds up redrawing of maps. 
+This reduces map size and speeds up redrawing of maps.
 Recommended value is 8 to 15, default is 8.
 :	See also polygon-size-limits.
 
 ;--polygon-size-limits=resolution:value[,resolution:value...]
 :	Allows you to specify different min-size-polygon values for each resolution.
-Sample:  
+Sample:
 ::	--polygon-size-limits="24:12, 18:10, 16:8, 14:4, 12:2, 11:0"
-:	If a resolution is not given, mkgmap uses the value for the next higher 
+:	If a resolution is not given, mkgmap uses the value for the next higher
 one. For the given sample, resolutions 19 to 24 will use value 12,
 resolution 17 and 18 will use 10, and so on.
-Value 0 means to not apply the size filter. 
+Value 0 means to not apply the size filter.
 Note that in resolution 24 the filter is not used.
 The following options are equivalent:
 ::	--min-size-polygon=12
@@ -499,10 +499,10 @@
 formula sqrt(size/2) gives an integer value.
 
 ;--dem=path[,path...]
-:   The option expects a comma separated list of paths to directories or zip 
-files containing *.hgt files. Directories are searched for *.hgt files 
+:   The option expects a comma separated list of paths to directories or zip
+files containing *.hgt files. Directories are searched for *.hgt files
 and also for *.hgt.zip and *.zip files.
-:   The list is searched in the given order, so if you want to use 1'' files 
+:   The list is searched in the given order, so if you want to use 1'' files
 make sure that they are found first. There are different sources for *.hgt
 files, some have so called voids which are areas without data. Those should be
 avoided.
@@ -517,7 +517,7 @@
 distance between two points in the hgt file, that is 3314 for 1'' and 9942 for
 3''. Higher distances mean lower resolution and thus fewer bytes in the map.
 Reasonable values for the highest resolution should not be much smaller than
-50% hgt resolution, that is somewhere between 1648 and 5520 for 1'' hgt input 
+50% hgt resolution, that is somewhere between 1648 and 5520 for 1'' hgt input
 files (3312 is often used), and 5520 to 9942 for 3'' hgt input files.
 :	Example which should work with levels="0:24, 1:22, 2:20, 3:18":
 :	--dem-dists=3312,13248,26512,53024
@@ -532,7 +532,7 @@
 resolution and dem-dist value, else bilinear is used. The default is auto.
 
 ;--dem-poly=filename
-:   If given, the filename should point to a *.poly file in osmosis polygon 
+:   If given, the filename should point to a *.poly file in osmosis polygon
 file format. The polygon described in the file is used to determine the area
 for which DEM data should be added to the map. If not given, the DEM data will
 cover the full tile area.
@@ -542,7 +542,7 @@
 overview map. If not given or 0, mkgmap will not add DEM to the overview map.
 Reasonable values depend on the size of the area and the lowest resolution
 used for the single tiles, good compromises are somewhere between 55000
-and 276160.  
+and 276160.
 
 === Miscellaneous options ===
 
@@ -570,9 +570,9 @@
 : 	Tells mkgmap to write NET data, which is needed for address search
 and routing. Use this option if you want address search, but do
 not need a map that supports routing or house number search.
-<p>
+
 ;--route
-: 	Tells mkgmap to write NET and NOD data, which are needed in maps 
+: 	Tells mkgmap to write NET and NOD data, which are needed in maps
 that support routing. If you specify this option, you do not need
 to specify --net and --no-net is ignored.
 
@@ -596,15 +596,15 @@
 
 ;--drive-on=left|right|detect|detect,left|detect,right
 : 	Explicitly specify which side of the road vehicles are
-expected to drive on. 
-If the first option is detect, the program tries 
+expected to drive on.
+If the first option is detect, the program tries
 to find out the proper flag. If that detection
 fails, the second value is used (or right if none is given).
-With OSM data as input, the detection tries to find out  
+With OSM data as input, the detection tries to find out
 the country each road is in and compares the number
 of drive-on-left roads with the rest.
-Use the --bounds option to make sure that the detection 
-finds the correct country. 
+Use the --bounds option to make sure that the detection
+finds the correct country.
 
 ;--check-roundabouts
 : 	Check that roundabouts have the expected direction (clockwise
@@ -661,7 +661,7 @@
 ;--cycle-map
 : 	Tells mkgmap that the map is for cyclists. This assumes that
 different vehicles are different kinds of bicycles, e.g. a way
-with mkgmap:car=yes and mkgmap:bicycle=no may be a road that is 
+with mkgmap:car=yes and mkgmap:bicycle=no may be a road that is
 good for racing bikes, but not for other cyclists.
 This allows the optimisation of sharp angles at junctions of those roads.
 Don't use with the default style as that is a general style!
@@ -695,11 +695,12 @@
 the following values:
 :* start  - The first point of the line
 :* end    - The last point of the line
-:* inner  - Each point of the line except the first and the last 
+:* inner  - Each point of the line except the first and the last
 :* mid    - The middle point
+
 ;--add-pois-to-areas
-: 	Generate a POI for each polygon and multipolygon. The POIs are created 
-after the relation style but before the other styles are applied. Each 
+: 	Generate a POI for each polygon and multipolygon. The POIs are created
+after the relation style but before the other styles are applied. Each
 POI is tagged with the same tags of
 the area/multipolygon. Additionally the tag mkgmap:area2poi=true is
 set so that it is possible to use that information in the points style
@@ -707,10 +708,11 @@
 The POIs are created at the following positions:
 :;polygons: the first rule that applies of:
 ::* the first node tagged with a tag defined by the --pois-to-areas-placement option
-::* the centre point  
+::* the centre point
 :;multipolygons: the first rule that applies of:
 ::* the node with role=label
 ::* the centre point of the biggest area
+
 ;--pois-to-areas-placement=tag=value[;tag=value...]
 :     A POI is placed at the first node of the polygon tagged with the first tag/value
 pair. If none of the nodes are tagged with the first tag-value pair the first node
@@ -721,7 +723,7 @@
 Default: entrance=main;entrance=yes;building=entrance
 
 ;--precomp-sea=directory|zipfile
-:     Defines the directory or a zip file that contains precompiled sea tiles. 
+:     Defines the directory or a zip file that contains precompiled sea tiles.
 Sea files in a zip file must be located in the zip file's root directory or in
 a sub directory sea. When this option is defined all natural=coastline tags
 from the input OSM tiles are removed and the precompiled data is used instead.
@@ -729,8 +731,8 @@
 and land-tag. The coastlinefile option is ignored if precomp-sea is set.
 
 ;--coastlinefile=filename[,filename...]
-: 	Defines a comma separated list of files that contain coastline 
-data. The coastline data from the input files is removed if 
+: 	Defines a comma separated list of files that contain coastline
+data. The coastline data from the input files is removed if
 this option is set. Files must have OSM or PBF file format.	
 
 ;--generate-sea[=ValueList]
@@ -760,23 +762,23 @@
 :;close-gaps=NUM
 :: close gaps in coastline that are less than this distance (metres)
 
-:;floodblocker 
+:;floodblocker
 :: enable the flood blocker that prevents a flooding of
 land by checking if the sea polygons contain streets
 (works only with multipolygon processing)		
 
-:;fbgap=NUM           
+:;fbgap=NUM
 :: flood blocker gap in metre (default 40)
 points that are closer to the sea polygon do not block
 
 :;fbthres=NUM
-:: at least so many highway points must be contained in 
+:: at least so many highway points must be contained in
 a sea polygon so that it may be removed by the flood
 blocker (default 20)
 
 :;fbratio=NUM
-:: only sea polygons with a higher ratio 
-(highway points * 100000 / polygon size) are removed 
+:: only sea polygons with a higher ratio
+(highway points * 100000 / polygon size) are removed
 (default 0.5)
 
 :;fbdebug
@@ -798,31 +800,31 @@
 the original that allows bicycle traffic (in both directions).
 
 ;--link-pois-to-ways
-:     This option may copy some specific attributes of a POI 
+:     This option may copy some specific attributes of a POI
 to a small part of the way the POI is located on. This can be used
 to let barriers block a way or to lower the calculated speed
 around traffic signals.
-POIs with the tags highway=* (e.g. highway=traffic_signals)  
+POIs with the tags highway=* (e.g. highway=traffic_signals)
 or barrier=* (e.g. barrier=cycle_barrier) are supported.
 The style developer must add at least one of the access tags
-(mkgmap:foot, mkgmap:car etc.), mkgmap:road-speed and/or 
-mkgmap:road-class to the POI. 
-The access tags are ignored if they have no effect for the way, 
-else a route restriction is added at the POI so that only 
-allowed vehicles are routed through it. 
-The tags mkgmap:road-speed and/or mkgmap:road-class are 
+(mkgmap:foot, mkgmap:car etc.), mkgmap:road-speed and/or
+mkgmap:road-class to the POI.
+The access tags are ignored if they have no effect for the way,
+else a route restriction is added at the POI so that only
+allowed vehicles are routed through it.
+The tags mkgmap:road-speed and/or mkgmap:road-class are
 applied to a small part of the way around the POI, typically
 to the next junction or a length of ~25m. The tags
-are ignored for pedestrian-only ways.      
+are ignored for pedestrian-only ways.
 
 ;--process-destination
 : 	Splits all motorway_link, trunk_link, primary_link, secondary_link,
 and tertiary_link ways tagged with destination into two or three parts where
 the second part is additionally tagged with mkgmap:dest_hint=*.
-The code checks for the tags destination, destination:lanes, 
+The code checks for the tags destination, destination:lanes,
 destination:street and some variants with :forward/:backward like
 destination:forward or destination:lanes:backward. If a value for
-destination is found, the special tag mkgmap:dest_hint is set to  
+destination is found, the special tag mkgmap:dest_hint is set to
 it  and the way is split.
 This happens before the style rules are processed.
 This allows to use any routable Garmin type (except 0x08 and 0x09)
@@ -831,11 +833,11 @@
 :	See also --process-exits.
 
 ;--process-exits
-:     Usual Garmin devices do not tell the name of the exit on motorways 
+:     Usual Garmin devices do not tell the name of the exit on motorways
 while routing with mkgmap created maps. This option splits each
-motorway_link, trunk_link, primary_link, secondary_link, and 
-tertiary_link way into three parts. 
-All parts are tagged with the original tags of the link. 
+motorway_link, trunk_link, primary_link, secondary_link, and
+tertiary_link way into three parts.
+All parts are tagged with the original tags of the link.
 Additionally the middle part is tagged with the following tags:
 
 ::	mkgmap:exit_hint=true
@@ -844,10 +846,10 @@
 ::	mkgmap:exit_hint_exit_to=<exit_to tag value of the exit>
 
 :	Adding a rule checking the mkgmap:exit_hint=true makes it possible
-to use any routable Garmin type (except 0x08 and 0x09) for the middle 
-part so that the Garmin device tells the name of this middle part as 
+to use any routable Garmin type (except 0x08 and 0x09) for the middle
+part so that the Garmin device tells the name of this middle part as
 hint where to leave the motorway/trunk.
-The first part must have type 0x08 or 0x09 so that Garmin uses the hint. 
+The first part must have type 0x08 or 0x09 so that Garmin uses the hint.
 
 ;--delete-tags-file=filename
 : 	Names a file that should contain one or more lines of the form
@@ -863,13 +865,13 @@
 an overview map. The options --nsis and --gmapi imply --tdbfile.
 
 ;--show-profiles=1
-: 	Sets a flag in tdb file. The meaning depends on the availability of DEM 
-data (see "Hill Shading (DEM) options"). 
-: 	Without DEM data the flag enables profile calculation in MapSource or 
-Basecamp based on information from contour lines. 
-: 	If DEM data is available the profile is calculated with that 
+: 	Sets a flag in tdb file. The meaning depends on the availability of DEM
+data (see "Hill Shading (DEM) options").
+: 	Without DEM data the flag enables profile calculation in MapSource or
+Basecamp based on information from contour lines.
+: 	If DEM data is available the profile is calculated with that
 information and the flag only changes the status line to show the height when
-you hover over an area with valid DEM data. 
+you hover over an area with valid DEM data.
 : 	The default is show-profiles=0.
 
 ;--transparent
@@ -891,7 +893,7 @@
 
 ;--hide-gmapsupp-on-pc
 : 	Set a bit in the gmapsupp.img that tells PC software that the file is
-already installed on the PC and therefore there is no need to read it 
+already installed on the PC and therefore there is no need to read it
 from the device.
 
 ;--poi-address
@@ -909,7 +911,7 @@
 that smaller features are rendered over larger ones
 (assuming the draw order is equal).
 The tag mkgmap:drawLevel can be used to override the
-natural area of a polygon, so forcing changes to the rendering order. 
+natural area of a polygon, so forcing changes to the rendering order.
 
 === Deprecated and Obsolete Options ===
 
@@ -916,7 +918,7 @@
 ;--drive-on-left
 ;--drive-on-right
 : 	Deprecated; use drive-on instead.
-The options are translated to drive-on=left|right. 
+The options are translated to drive-on=left|right.
 
 ;--make-all-cycleways
 :   Deprecated; use --make-opposite-cycleways instead. Former meaning:
@@ -973,6 +975,5 @@
 
 :	Optional BITMASK (default value 3) allows you to specify which
 adjustments are to be made (where necessary):
-
 ::	1 = increase angle between side road and outgoing main road
 ::	2 = increase angle between side road and incoming main road
Index: resources/help/en/options
===================================================================
--- resources/help/en/options	(revision 4462)
+++ resources/help/en/options	(working copy)
@@ -21,6 +21,7 @@
     specify -Xmx4g - note there is no space or equals sign in the option.
 
 -enableassertions
+-ea
     Causes an error to be thrown if an assertion written in the mkgmap code is
     evaluated as not true. This is useful in detecting bugs in the mkgmap code.
 
@@ -184,7 +185,6 @@
     beginning and end of the important part. In combination with option
     --split-name-index only the words in the important part are indexed.
 
-    
     There are two main effects of this option:
         - On the PC, when zooming out, the name 'Rue de la Concorde' is only
         rendered as 'Concorde'.
@@ -194,7 +194,6 @@
         Concorde' or 'Rue du Moulin'. It may list 'Rueben Brookins Road' if
         that is in the map. Only MapSource shows a corresponding hint.
 
-        
         Another effect is that the index is smaller.
     See comments in the sample roadNameConfig.txt for further details.
 
@@ -228,7 +227,6 @@
     like 'Planet' when you search for 'Net', it doesn't use the index because
     the index created by mkgmap cannot help for that search.
 
-    
     So, this option may help when you care about the size of the index or the
     memory that is needed to calculate it. The option expects a comma separated
     list of types or type ranges. A range is given with from-type-to-type, e.g.
@@ -252,7 +250,7 @@
     mkgmap:region etc. using these values.
 
      The following special tags are added:
-  mkgmap:admin_level2 : Name of the admin_level=2 boundary 
+  mkgmap:admin_level2 : Name of the admin_level=2 boundary
   mkgmap:admin_level3 : Name of the admin_level=3 boundary
   ..
   mkgmap:admin_level11
@@ -275,8 +273,6 @@
     automatic assignment of address fields is somehow a best guess.
     is_in
         The is_in tag is analysed for country and region information.
-
-        
     nearest
         The city/hamlet points that are closest to the element are used to
         assign the missing address fields. Beware that cities located in the
@@ -560,7 +556,6 @@
     routing. Use this option if you want address search, but do not need a map
     that supports routing or house number search.
 
-    
 --route
     Tells mkgmap to write NET and NOD data, which are needed in maps that
     support routing. If you specify this option, you do not need to specify
@@ -681,6 +676,7 @@
     * end - The last point of the line
     * inner - Each point of the line except the first and the last
     * mid - The middle point
+
 --add-pois-to-areas
     Generate a POI for each polygon and multipolygon. The POIs are created
     after the relation style but before the other styles are applied. Each POI
@@ -695,6 +691,7 @@
     multipolygons: the first rule that applies of:
         * the node with role=label
         * the centre point of the biggest area
+
 --pois-to-areas-placement=tag=value[;tag=value...]
     A POI is placed at the first node of the polygon tagged with the first
     tag/value pair. If none of the nodes are tagged with the first tag-value
@@ -943,6 +940,5 @@
 
     Optional BITMASK (default value 3) allows you to specify which adjustments
     are to be made (where necessary):
-
         1 = increase angle between side road and outgoing main road
         2 = increase angle between side road and incoming main road
Index: resources/roadNameConfig.txt
===================================================================
--- resources/roadNameConfig.txt	(revision 4462)
+++ resources/roadNameConfig.txt	(working copy)
@@ -1,16 +1,21 @@
-# Sample configuration file for road name prefixes and suffixes for use 
-# with the --road-name-config option.
+﻿# Sample configuration file for use with the --road-name-config option.
+# -*- coding: UTF-8 -*-
+
+# This gives road name prefixes and suffixes in various languages.
 # A road name like West Main Street is separated into a prefix 'West',
-# the important part 'Main', and the suffix 'Street'.  
+# the important part 'Main', and the suffix 'Street'.
 
 # The first section lists often used prefixes and suffixes for a language.
 # The next section is used to configure which languages are used for road names
-# in each country.  
+# in each country.
 
-# Note that the order of the options doesn't matter, as well as the position 
+# Note that the order of the options doesn't matter, as well as the position
 # in the comma separated lists. Very important is the proper usage of blanks
 # within the quotation marks as well as the spelling.
 
+# Having suffixes makes Find>Address less easy to use on some GPS devices! See posting 21-Feb-2019:
+#  http://www.mkgmap.org.uk/pipermail/mkgmap-dev/2019q1/029506.html
+
 ##########################################################################
 # Section 1
 # prefix1:<lang> list of 1st words
@@ -25,8 +30,13 @@
 prefix2:ca = "de las ", "de los ", "de la ", "del ", "de ", "d'"
 
 # english
-prefix1:en = "East ", "North ", "South ", "West " 
+prefix1:en = "East ", "North ", "South ", "West "
 suffix:en = " Road", " Street"
+#
+# UK road names don't have prefixes, eg "North View" and "South View" are unlikely to be connected.
+# So, via Section 2 (country to language mapping), have different prefix/suffix for the UK:
+#prefix:en_gb = empty
+suffix:en_gb = " Arcade", " Avenue", " Boulivard", " Circus", " Close", " Court", " Crescent", " Croft", " Drive", " Field", " Fields", " Gardens", " Gate", " Grove", " Hill", " Lane", " Mews", " Parade", " Park", " Passage", " Place", " Rise", " Road", " Square", " Street", " Terrace", " View", " Villas", " Walk", " Way", " Wood", " Yard"
 
 # french
 prefix1:fr = "Allée", "Avenue", "Boulevard", "Chemin", "Place", "Rue", "Route"
@@ -54,7 +64,7 @@
 ##########################################################################
 # Section 2
 # Map three letter ISO country codes to list of used languages for road names.
-# It is assumed that the style sets mkgmap:country to one of these ISO codes.    
+# It is assumed that the style sets mkgmap:country to one of these ISO codes.
 
 lang:AGO = pt
 lang:AND = es, ca
@@ -73,7 +83,7 @@
 lang:ESH = es
 lang:ESP = es, gl, eu, ca
 lang:FRA = fr
-lang:GBR = en
+lang:GBR = en_gb
 lang:GNB = pt
 lang:GTM = es
 lang:GUY = en
@@ -90,3 +100,5 @@
 lang:URI = es
 lang:USA = en
 lang:VEN = es
+
+# End Section 2
Index: src/uk/me/parabola/mkgmap/reader/osm/SeaGenerator.java
===================================================================
--- src/uk/me/parabola/mkgmap/reader/osm/SeaGenerator.java	(revision 4462)
+++ src/uk/me/parabola/mkgmap/reader/osm/SeaGenerator.java	(working copy)
@@ -409,7 +409,7 @@
 		String natural = way.getTag("natural");
 		if (natural == null)
 			return;
-	
+//%%diff... but think this is equiv
 		// cope with compound tag value
 		StringBuilder others = null;
 		boolean foundCoastline = false;
@@ -423,10 +423,12 @@
 		}
 		if (!foundCoastline)
 			return;
+//%%ok
 		if (precompSea != null)
 			splitCoastLineToLineAndShape(way, natural);
 		else if (coastlineFilenames == null) {
 			// create copy of way that has only the natural=coastline tag
+// %%% old version just del the tag and added to shoreline with confusing login in splitcoast...
 			Way shore = new Way(way.getOriginalId(), way.getPoints());
 			shore.setFakeId();
 			shore.addTag("natural", "coastline");
@@ -448,6 +450,7 @@
 	 * @param naturalVal the tag value
 	 */
 	private void splitCoastLineToLineAndShape(Way way, String naturalVal){
+//%%ok reg precompSeq vs precompSeaDir
 		if (precompSea == null)
 			return;
 		if (way.hasIdenticalEndPoints()){
@@ -565,6 +568,7 @@
 
 		// flag if all tiles contains sea or way only
 		// this is important for polygon processing
+//%%sigDiff precomp...
 		boolean distinctTilesOnly;
 		
 		List<Way> landWays = new ArrayList<>();
@@ -598,6 +602,7 @@
 	}
 
 	 
+//%%new? but for precomp
 	private boolean loadLandAndSee(List<Way> landWays, List<Way> seaWays) {
 		boolean distinctTilesOnly = true;
 		List<java.awt.geom.Area> seaOnlyAreas = new ArrayList<>();
@@ -636,6 +641,7 @@
  		return distinctTilesOnly;
 	}
 
+//%%new precomp only
 	private static void loadMixedTile(PrecompData pd, String tileName, List<Way> landWays, List<Way> seaWays) {
 		try {
 			InputStream is = null;
@@ -749,11 +755,13 @@
 			}
 		}
 		segments.clear();
-		
+
+//%%%%%% maybe this is sig when it makes a closed way
 		boolean merged;
 		do {
 			merged = false;
 			for (Way w1 : beginMap.values()) {
+// %%% lots moved elsewhere
 				Way w2 = beginMap.get(w1.getLastPoint());
 				if (w2 != null) {
 					merge(beginMap, joined, w1, w2);
@@ -768,6 +776,7 @@
 		return joined;
 	}
 
+//%%%from above
 	// merge the ways and maintain maps and list
 	private static void merge(Map<Coord, Way> beginMap, List<Way> joined, Way w1, Way w2) {
 		log.info("merging: ", beginMap.size(), w1.getId(), w2.getId());
@@ -814,10 +823,12 @@
 			log.info("Closed shorelines", closed);
 			log.info("Unclosed shorelines", shoreline.size() - closed);
 		}
-		
+
 		// clip all shoreline segments
 		clipShorlineSegments(shoreline, tileBounds);
 
+// %%% at this point, good has gen sea/bounds nw/ne etc
+//  %%%is following a valid assumption...
 		if(shoreline.isEmpty()) {
 			// No sea required
 			// Even though there is no sea, generate a land
@@ -834,6 +845,7 @@
 		long multiId = FakeIdGenerator.makeFakeId();
 		Relation seaRelation = null;
 		if (generateSeaUsingMP) {
+//%%%MP
 			log.debug("Generate seabounds relation", multiId);
 			seaRelation = new GeneralRelation(multiId);
 			seaRelation.addTag("type", "multipolygon");
@@ -851,6 +863,7 @@
 		NavigableMap<Double, Way> hitMap = findIntesectionPoints(shoreline, tileBounds, seaRelation);
 
 		// now construct inner ways from these segments
+// %%% other was calld createInnerWaus
 		createLandPolygons(tileBounds, islands, hitMap);
 
 		List<Way> antiIslands = removeAntiIslands(seaRelation, islands);
@@ -1088,6 +1101,7 @@
 		return null;
 	}
 
+    // %%% line / rename of createInnerWaus
 	/**
 	 * Add lines to ways that touch or cross the sea bounds so that the way is closed along the edges of the bounds. 
 	 * Adds complete edges or parts of them. This is done counter-clockwise.   
@@ -1115,9 +1129,11 @@
 					hNext = getEdgeHit(tileBounds, segment.getLastPoint());
 				} else {
 					w.addPointIfNotEqualToLastPoint(getPoint(tileBounds, hit));
+					//%%% aboove is diff: hit.getPoint(seaBounds));
 					hNext = hits.higher(hit);
 					if (hNext == null)
 						hNext = hFirst;
+					// %%% lots of stuff, maybe in addCorners
 					addCorners(w, tileBounds, hit, hNext);
 
 				}
@@ -1303,6 +1319,7 @@
 		return hitMap;
 	}
 
+    //%% this is new, but equiv was in class EdgeHit
 	// create the point where the shoreline hits the sea bounds
 	private static Coord getPoint(Area a, double edgePos) {
 		log.info("getPoint: ", a, edgePos);
@@ -1368,13 +1385,22 @@
 
 		log.info(String.format("getEdgeHit: (%d %d) (%d %d %d %d)", latHp, lonHp, minLatHp, minLongHp, maxLatHp, maxLongHp));
 		if (latHp <= minLatHp + toleranceHp) {
-			return (double) (lonHp - minLongHp) / (maxLongHp - minLongHp);
+// %% these don't reveal any problems
+		    double posn = (double)(lonHp - minLongHp) / (maxLongHp - minLongHp);
+		    assert posn >= 0 && posn < 1 : "bot 0+" + posn;
+		    return posn;
 		} else if (lonHp >= maxLongHp - toleranceHp) {
-			return 1 + ((double) (latHp - minLatHp) / (maxLatHp - minLatHp));
+		    double posn = (double)(latHp - minLatHp) / (maxLatHp - minLatHp);
+		    assert posn >= 0 && posn < 1 : "rhs 1+" + posn;
+		    return 1 + posn;
 		} else if (latHp >= maxLatHp - toleranceHp) {
-			return 2 + ((double) (maxLongHp - lonHp) / (maxLongHp - minLongHp));
+		    double posn = (double)(maxLongHp - lonHp) / (maxLongHp - minLongHp);
+		    assert posn >= 0 && posn < 1 : "top 2+" + posn;
+		    return 2 + posn;
 		} else if (lonHp <= minLongHp + toleranceHp) {
-			return 3 + ((double) (maxLatHp - latHp) / (maxLatHp - minLatHp));
+		    double posn = (double)(maxLatHp - latHp) / (maxLatHp - minLatHp);
+		    assert posn >= 0 && posn < 1 : "lhs 3+" + posn;
+		    return 3 + posn;
 		}
 		return null;
 	}
@@ -1420,6 +1446,8 @@
 			t = ((double) (maxLatHp - latHp)) / (maxLatHp - minLatHp);
 		}
 		// now created the EdgeHit for found values
+		assert t >= 0 && t < 1 : "nextEdge " + i + "+" + t;
+// %% doesn't reveal any problems
 		return i + t;
 	}
 
