2009-10-20  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/Makefile: Add sorting.o to the Makefile.

2009-10-12  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/waysx.c: When sorting we cannot have NULL pointers now.

	* src/nodesx.c, src/segmentsx.c, src/waysx.c:
	Re-order the functions in the file into a more logical order.
	No functional changes.

	* src/nodesx.c, src/planetsplitter.c, src/segmentsx.c, src/sorting.c, src/waysx.c:
	Rename the tmpdirname variable.

2009-10-10  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/nodesx.c, src/osmparser.c, src/segmentsx.c, src/sorting.c, src/waysx.c:
	Corrections after running with valgrind.

	* src/planetsplitter.c: Fix early termination test.

	* src/nodesx.c, src/nodesx.h, src/segmentsx.c:
	Remove the nodesx->gdata index.

2009-10-09  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/nodesx.c, src/segmentsx.c, src/typesx.h, src/waysx.c, src/waysx.h:
	Free the nodesx->super array and the segmentsx->firstnode array when finished
	with them.  Remove wayx->cid and overwrite wayx->id instead.  Overwrite
	nodex[i]->id=i for later geographically sorted use.

2009-10-08  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/nodesx.c, src/planetsplitter.c, src/segmentsx.c, src/segmentsx.h, src/superx.c:
	Replace node, segment and way indexes with a single index for a set of segments
	containing the location of the first segment for each node.

	* src/nodesx.h: Fix comment.

2009-10-07  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/osmparser.c, src/segmentsx.c, src/superx.c:
	AppendSegment adds a single segment and not a pair.

	* src/waysx.c: Use heapsort() instead of qsort().

	* src/nodesx.c, src/nodesx.h, src/planetsplitter.c, src/segmentsx.c, src/segmentsx.h,
	src/superx.c, src/waysx.c:
	Go back to the version 1.1 method of having each segment listed twice.  This
	simplifies the lookup of first/next segments at no in-RAM index cost and now
	that slim mode has sorting of file contents the balance has tipped back.

2009-10-04  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/functions.h, src/sorting.c:
	Change the sort function to allow the indexing callback to veto the write.

	* src/nodesx.c: Remove the duplicates when sorting.

	* src/waysx.c:
	Sort the ways using the same method as the nodes.  Also remove the duplicates.

	* src/nodesx.c:
	Use the new sort functions to allow sorting the data in the file without needing
	to read (or mmap) the whole file into RAM at the same time.

	* src/functions.h: Add some functions to perform sorting.

	* src/sorting.c: New file.

	* src/queue.c: Fix bug with binary heap sort.

2009-09-25  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/queue.c: Add comments describing the algorithm used.

2009-09-23  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/nodesx.c, src/waysx.c:
	Simplify the de-duplication when sorting and update some comments.

2009-09-22  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/nodesx.c, src/nodesx.h:
	Remove a leftover from the last change on these files.

	* src/segmentsx.c: Improve the super-segment de-duplication.

2009-09-21  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/nodesx.c, src/nodesx.h, src/planetsplitter.c:
	Remove the non-highway nodes without re-sorting the whole list again.

2009-09-17  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/osmparser.c, src/planetsplitter.c, src/segmentsx.c, src/superx.c, src/waysx.c,
	src/waysx.h:
	Added the slim mode to Ways as well.

	* src/ways.h: Add padding to Ways structure to allow it to be zeroed.

	* src/nodesx.c: Add some comments when closing and re-opening files.

	* src/files.c, src/functions.h:
	The WriteFile function now has a const parameter.

2009-09-15  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/nodesx.c, src/nodesx.h, src/planetsplitter.c, src/segmentsx.c:
	Some bug fixes and some missing unmap function calls.

2009-09-07  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/segmentsx.h, src/superx.c, src/nodesx.c, src/nodesx.h, src/segmentsx.c:
	Fixed slim mode for segments and nodes (slim now means mapping only one file
	into RAM at a time and none when creating the final output).

2009-09-06  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/nodesx.h, src/planetsplitter.c, src/segmentsx.c, src/segmentsx.h, src/superx.c,
	src/superx.h, src/nodesx.c:
	Slim version of segments code (still very slow and only works on simple cases).

	* src/files.c, src/functions.h:
	Remove the delete option from UnmapFile() and make it return NULL.

	* src/filedumper.c: Allow dumping all nodes, segments or ways.

2009-09-05  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/nodesx.c: Don't re-sort unnecessarily.

	* src/nodesx.c, src/nodesx.h, src/planetsplitter.c, src/segmentsx.c, src/superx.c:
	Improve slim mode for nodes so that no data is not loaded into RAM at all.

	* src/files.c, src/functions.h: Add some more file functions.

2009-09-03  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/nodesx.c, src/files.c, src/functions.h:
	Remove extra argument from MapFile function.

	* src/nodesx.c, src/nodesx.h, src/planetsplitter.c, src/segmentsx.c, src/superx.c:
	Added slim mode (--slim) to planetsplitter for nodes only.

	* src/files.c, src/functions.h:
	Changes to mapping and unmapping files for slim mode.

2009-08-25  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/planetsplitter.c: Revert the order that the functions are called.

	* src/nodesx.c: Fix for assert statement.

	* src/files.c: Bug fix for mmap().

2009-08-20  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/osmparser.c: Fix bug with memory allocation.

2009-08-19  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/nodesx.c, src/nodesx.h, src/planetsplitter.c, src/segmentsx.c, src/segmentsx.h,
	src/superx.c, src/waysx.c, src/waysx.h:
	Remove "sorted" parameter in data structure and change assert statements.

2009-08-17  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/router.c:
	Increase to 99 the number of waypoints that can be specified.

2009-08-15  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/queue.c: Fix comment.

	* src/Makefile:
	Tidy the compilation options to make it easier to turn them on and off.

	* src/router.c:
	Remove the --all, --super and --no-output command line options.
	Handle the renamed routing functions.

	* src/functions.h, src/optimiser.c:
	Rename the routing functions and make FindRoute only find routes with no
	super-nodes in them.

	* src/queue.c:
	When popping from queue make sure that place in queue is cleared.

	* src/optimiser.c, src/queue.c, src/results.c, src/results.h, src/superx.c:
	Optimise the priority queue used for routing.

	* src/filedumper.c: Fix dumping nodes when they are super-nodes.

2009-07-23  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/Makefile, src/optimiser.c, src/results.c, src/results.h, src/superx.c:
	Split off queue functions into a separate file.

	* src/queue.c: New file.

2009-07-19  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/nodesx.c, src/segments.h, src/segmentsx.c, src/ways.h, src/waysx.c, src/filedumper.c,
	src/nodes.h:
	Include the number of super-nodes, super-segments etc in the database as useful
	information to put in the statistics output.

	* src/superx.c: Fix incorrect progress indicator message.

	* src/waysx.c: Fix problem with memory reallocation.

	* src/nodesx.c, src/osmparser.c, src/planetsplitter.c, src/segmentsx.c, src/segmentsx.h,
	src/superx.c:
	Store only one copy of each segment but index once for each direction.

2009-07-12  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/functionsx.h, src/nodesx.c, src/nodesx.h, src/osmparser.c, src/output.c,
	src/planetsplitter.c, src/profiles.c, src/results.c, src/segments.c, src/segmentsx.c,
	src/segmentsx.h, src/superx.c, src/superx.h, src/ways.h, src/waysx.c, src/waysx.h:
	Tidy up and fix comments and include files.

	* src/osmparser.c, src/planetsplitter.c, src/router.c, src/segmentsx.c, src/superx.c,
	src/waysx.c, src/filedumper.c, src/nodesx.c, src/optimiser.c:
	Check all print statements and made them more consistent and/or accurate.

2009-07-11  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/nodesx.c, src/nodesx.h, src/planetsplitter.c, src/segmentsx.c, src/waysx.c,
	src/waysx.h:
	Free memory at the end of planetsplitter (to aid finding potential leaks
	earlier).

2009-07-09  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/segmentsx.c: Free memory correctly (really).

	* src/planetsplitter.c, src/waysx.c, src/waysx.h:
	Separate the sorting of Ways from compacting of Ways.

	* src/nodes.h, src/nodesx.c, src/nodesx.h, src/segmentsx.c, src/visualiser.c,
	src/filedumper.c, src/nodes.c:
	Rename structure members after recent changes.

	* src/segmentsx.c: Free memory correctly.

	* src/types.h, src/segmentsx.c: Fix duplicate checking.

	* src/planetsplitter.c: Ensure that variable is reset before using it.

	* src/types.h, src/visualiser.c, src/visualiser.h, src/filedumper.c, src/nodes.c,
	src/nodes.h, src/nodesx.c, src/nodesx.h, src/optimiser.c, src/osmparser.c, src/output.c,
	src/router.c, src/segments.c, src/segments.h, src/segmentsx.c:
	Change from float to double for latitude and longitude.
	Store latitude and longitude as an integer type rather than float (higher precision).

2009-07-08  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/superx.c: Ensure that variable is reset before using it.

2009-07-06  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/visualiser.c:
	Print all super-segments within and crossing the border.
	Don't display speed limits for tracks and paths unless set.

2009-07-04  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/segmentsx.h, src/superx.c, src/waysx.c, src/waysx.h:
	Change data structure to avoid calling realloc() each time to allocate more
	memory.

2009-07-02  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/types.h, src/waysx.c, src/waysx.h:
	Handle duplicate ways.

	* src/nodes.c, src/nodesx.c, src/planetsplitter.c, src/profiles.c, src/results.c,
	src/segments.c, src/segmentsx.c, src/superx.c, src/superx.h, src/types.h, src/ways.c,
	src/waysx.c:
	Fix some gcc pedantic warnings.

	* src/files.c, src/nodesx.c, src/osmparser.c, src/results.c, src/router.c, src/segments.c,
	src/segmentsx.c, src/superx.c, src/ways.c, src/waysx.c:
	Removed unused header files, change assert statements, tidy some code.

2009-07-01  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/nodesx.c, src/nodesx.h, src/planetsplitter.c, src/segmentsx.c, src/segmentsx.h, src/superx.c:
	Remove the Node structure from the NodeX structure to save memory.

	* src/filedumper.c:
	Print latitude and longitude in degrees.

2009-06-30  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/segmentsx.h:
	Re-order the data in the structure.

	* src/nodesx.c, src/nodesx.h, src/osmparser.c, src/planetsplitter.c, src/segmentsx.c,
	src/segmentsx.h, src/superx.c, src/waysx.h:
	Remove the Segment structure from the SegmentX structure to save memory.

2009-06-29  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/filedumper.c, src/nodes.h, src/nodesx.c, src/segments.c, src/segments.h,
	src/segmentsx.c, src/superx.c, src/types.h:
	Move the super-segment and normal-segment flags from the nodes to the distance.
	Remove the NODE() macro and rename SUPER_FLAG to NODE_SUPER.

	* src/waysx.c: Replace memmove with structure copy.

	* src/nodesx.c, src/segmentsx.c, src/segmentsx.h, src/superx.c:
	Rename SegmentsX sdata to ndata.

2009-06-25  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/waysx.c, src/waysx.h: Rename part of the structure.

	* src/nodesx.c, src/nodesx.h, src/planetsplitter.c, src/segmentsx.c, src/segmentsx.h,
	src/superx.c, src/waysx.h:
	Undo part of the previous change - only update the Segment way index at the end.

	* src/waysx.h, src/nodesx.c, src/osmparser.c, src/planetsplitter.c, src/segmentsx.c,
	src/segmentsx.h, src/superx.c, src/superx.h, src/typesx.h, src/waysx.c:
	Reduce the number of ways in the output by compacting them (sharing the same
	information between identical ways).

2009-06-24  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/filedumper.c, src/nodes.h:
	Allow dumping out of nodes, segments and ways.

2009-06-15  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/segmentsx.c, src/superx.c, src/visualiser.c, src/ways.c, src/ways.h:
	Rename WaysSame() with WaysCompare() and reverse the sense of the output.

	* src/functionsx.h, src/typesx.h: New file.

	* src/functions.h, src/nodesx.h, src/osmparser.c, src/planetsplitter.c, src/segmentsx.h,
	src/superx.h, src/types.h, src/waysx.h:
	Put some of types.h into typesx.h (for extended data types).
	Put some of functions.h into functionsx.h (for OSM parser).
	Change included files to match.

	* src/filedumper.c, src/osmparser.c, src/output.c, src/router.c, src/types.h, src/visualiser.c:
	Add a macro for converting degrees to radians and radians to degrees.

	* src/optimiser.c:
	Fix weight, height, width, length restriction routing.

	* doc/TAGGING.txt, src/osmparser.c:
	Recognise tags "vehicle" and "motor_vehicle".

2009-06-13  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	Version 1.1 released

2009-06-13  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/nodesx.c, src/planetsplitter.c, src/segmentsx.c, src/segmentsx.h:
	Handle nodes that are missing from the .osm file (ignore the segment).

	* src/nodesx.c:
	Revert the last change (Print an error message and exit if a node cannot be found).

	* doc/NEWS.txt: New file.

	* src/Makefile:
	Delete the executables from the web directory for 'distclean'.

2009-06-12  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* doc/USAGE.txt, doc/INSTALL.txt, doc/README.txt:
	Update the documentation.

	* src/Makefile: Copy the executables into the web directory.

2009-06-08  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/filedumper.c: Change help text.

	* src/visualiser.c:
	Change format of super-node/segment visualiser output.

2009-06-07  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* doc/TAGGING.txt: Updated with imperial to metric conversions.

	* src/Makefile: Added visualiser.c.

	* src/filedumper.c: Now used for data visualisation and statistics.

	* src/visualiser.h, src/visualiser.c: New file.

2009-06-05  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/osmparser.c:
	Improve parsing of imperial units (mph, feet & inches).

2009-06-03  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/nodesx.c:
	Print an error message and exit if a node cannot be found.

2009-05-31  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/ways.c, src/ways.h, src/waysx.c, src/waysx.h:
	Move function from waysx.c to ways.c.

2009-05-29  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* doc/USAGE.txt:
	Update usage information with new options and copyright.txt usage.

	* src/nodes.c, src/nodes.h, src/router.c:
	Make sure that the chosen "nearest point" is a highway that the profile allows.

2009-05-23  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/profiles.c:
	Change the default profile; horses are slower, bicycles may be allowed on
	footways (and similar).

2009-05-15  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/files.c, src/output.c:
	Error checking on opening files (to read/write data and to write output).

2009-05-14  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/output.c, src/results.c, src/router.c, src/segments.c, src/segmentsx.c, src/superx.c,
	src/types.h, src/nodes.c, src/nodesx.c, src/optimiser.c:
	Replace ~0 or 0 with NO_NODE value for "no node" condition.

2009-05-13  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/output.c:
	Remove one more NODE macro and fix an output formatting error.

	* src/nodes.c, src/nodes.h, src/optimiser.c, src/output.c, src/router.c:
	Remove some node macros, change some node function arguments.

	* src/optimiser.c, src/profiles.c, src/profiles.h:
	Move some common code into the profile.

	* src/superx.c: Remove distance and duration from Result structure.

	* src/output.c: Better junction detection.

	* src/optimiser.c, src/results.c, src/results.h:
	Remove distance and duration from Result structure.

2009-05-09  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/output.c:
	Add better junction detection for deciding on route waypoints.

2009-05-06  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/optimiser.c, src/profiles.c, src/profiles.h, src/types.h:
	Route using preferences for each highway.

	* src/router.c: Print out longitude then latitude.

2009-04-30  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/results.h, src/router.c, src/superx.c, src/types.h, src/optimiser.c, src/osmparser.c,
	src/planetsplitter.c, src/profiles.c, src/profiles.h, src/results.c:
	First attempt at preferences for highways - uses integer arithmetic and doesn't
	work well.

2009-04-27  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/functions.h, src/optimiser.c, src/output.c, src/results.c, src/results.h, src/router.c:
	Allow generating a route with intermediate waypoints.

2009-04-24  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/functions.h, src/output.c, src/router.c:
	Split the output functions into separate head/body/tail.
	Read in an optional copyright.txt file and include contents in output.

2009-04-23  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/profiles.c: Improve Javascript and perl print out.

	* src/filedumper.c, src/files.c, src/functions.h, src/planetsplitter.c, src/router.c:
	Move the filename generation to a new function.

2009-04-22  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/Makefile, src/functions.h, src/optimiser.c:
	Split the function to print the output into a new file.

	* src/output.c: New file.

2009-04-15  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/osmparser.c:
	Fix for parsing nodes from XML (no effect on results).

2009-04-12  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* doc/USAGE.txt, src/optimiser.c:
	Create a GPX route as well as a track.

	* src/ways.c: Changed the license to Affero GPLv3.

2009-04-10  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/optimiser.c:
	Add a waypoint to the GPX file for the start and finish points.

	* doc/USAGE.txt:
	Include more information about the output file formats.

2009-04-08  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	Version 1.0 released

2009-04-08  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* Makefile: New file.

	* src/Makefile: Fix dependency file generation.

	* doc/USAGE.txt, doc/TAGGING.txt, doc/README.txt, doc/INSTALL.txt, doc/ALGORITHM.txt:
	New file.

	* src/Makefile, src/filedumper.c, src/files.c, src/functions.h, src/nodes.c, src/nodes.h,
	src/nodesx.c, src/nodesx.h, src/optimiser.c, src/osmparser.c, src/planetsplitter.c,
	src/profiles.c, src/profiles.h, src/results.c, src/results.h, src/router.c, src/segments.c,
	src/segments.h, src/segmentsx.c, src/segmentsx.h, src/superx.c, src/superx.h, src/types.h,
	src/ways.h, src/waysx.c, src/waysx.h:
	Changed the license to Affero GPLv3.

2009-04-07  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/planetsplitter.c: Remove the --help-profile command line option.

2009-03-28  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/optimiser.c:
	Fix file headers (again) and fix segment distance/duration for abbreviated text
	output.

2009-03-24  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/osmparser.c, src/profiles.c, src/types.h, src/ways.c:
	Added highway=path; defaults to foot=yes but also is defaulted for bicycle and
	horse transport.

2009-03-23  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/optimiser.c: Fixed the header in the output text files.

	* src/osmparser.c:
	Add parsing for *=designated allowing passage along a highway.

	* src/profiles.h, src/router.c, src/profiles.c:
	Add a function to output default profiles as perl data structures.

2009-03-21  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/nodesx.c:
	Handle duplicated nodes (e.g. from concatenated input files).

	* src/optimiser.c: Add a header to the output text files.

2009-03-07  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/optimiser.c:
	Renamed the *.txt output to *-all.txt and added a new shorted *.txt output.

	* src/router.c: Renamed the --no-print option to --no-output.

2009-03-04  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/nodes.c: Fix bug with finding nearest node.

2009-03-03  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/superx.c: Fix the merging of super-segments.

2009-03-01  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/profiles.c, src/profiles.h:
	Added more limits (weight, height, width, length).

	* src/segments.c: Use the lower speed from the profile and the way.

	* src/osmparser.c: Added more limits (weight, height, width, length).
	Added highway=living_street and highway=services.

	* src/ways.c, src/ways.h, src/optimiser.c, src/router.c, src/segmentsx.c, src/superx.c,
	src/types.h:
	Added more limits (weight, height, width, length).

	* src/waysx.c, src/waysx.h:
	Added a function to test if two ways are the same.

2009-02-28  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/nodesx.c:
	Round the node location to avoid if falling into the wrong bin.

	* src/nodesx.c, src/planetsplitter.c, src/segmentsx.c, src/waysx.c:
	Move print statements from planetsplitter into individual functions.

	* src/Makefile: Compile with optimisation and no profiling.

	* src/profiles.c, src/router.c:
	Add new command line options to make it more CGI friendly.

2009-02-27  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/profiles.c, src/profiles.h, src/router.c:
	Print out Javascript code containing the profiles.

2009-02-24  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/segmentsx.h, src/superx.c, src/nodesx.c, src/segments.c, src/segments.h,
	src/segmentsx.c:
	Remove segment->next1 since it always points at the next segment or nowhere.

	* src/profiles.c: Remove track from valid types for most transports.

2009-02-15  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/functions.h, src/optimiser.c, src/router.c:
	Change some function names.

	* src/osmparser.c: Add in tests for motorcar=1 etc.

	* src/nodes.c, src/nodes.h, src/router.c:
	The search to find a node given the lat/long now searches harder.

	* src/optimiser.c: Better test for failing to find a route.

	* src/router.c: Change --only-super to --super.

	* src/nodesx.c, src/optimiser.c, src/osmparser.c, src/router.c, src/segments.c,
	src/segmentsx.c, src/types.h, src/nodes.c:
	Store radians rather than degrees.

	* src/segments.c, src/segmentsx.c:
	Change to sinf(), cosf(), sqrtf(), asinf() functions.

	* src/optimiser.c:
	Set the sortby parameter to the minimum distance/duration consistent with the
	travelled distance/duration and the remaining straight line distance with the
	fastest possible speed.

	* src/filedumper.c, src/nodes.c, src/nodes.h, src/nodesx.c, src/types.h:
	Add macros for handling lat/long to bin conversions.

	* src/osmparser.c: Handle oneway=1 and oneway=-1.

2009-02-10  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/results.c, src/results.h:
	Added a new 'sortby' entry to the Result.
	Changed node_t to index_t.

	* src/router.c: Changed node_t to index_t.

	* src/nodes.c, src/segments.c, src/segments.h:
	Change the Distance() function to return distance_t.

2009-02-08  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/optimiser.c, src/results.c, src/results.h, src/router.c, src/superx.c:
	Calculate quickest or shortest, not both.

	* src/optimiser.c, src/profiles.c, src/router.c:
	Give appropriate error messages if start or end of route are not possible.

2009-02-07  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/results.c:
	Slight speedup by doing a linear search when looking up results and not storing
	in sorted order.

	* src/superx.h, src/superx.c, src/waysx.h, src/waysx.c, src/segmentsx.h, src/segmentsx.c,
	src/nodesx.h, src/nodesx.c:
	New file.

	* src/ways.h, src/Makefile, src/filedumper.c, src/functions.h, src/nodes.c, src/nodes.h,
	src/optimiser.c, src/osmparser.c, src/planetsplitter.c, src/router.c, src/segments.c,
	src/segments.h, src/types.h, src/ways.c:
	Split the extended data types from the normal data types.

	* src/nodes.c: Return NULL if the node cannot be found.

	* src/Makefile, src/filedumper.c, src/optimiser.c, src/router.c:
	Add new command line options.

	* src/supersegments.c: Fix some status messages.

	* src/optimiser.c, src/types.h: Routing works with super-nodes now.

2009-02-06  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/ways.c, src/segments.c, src/segments.h, src/supersegments.c, src/types.h, src/nodes.c,
	src/nodes.h, src/optimiser.c, src/osmparser.c, src/planetsplitter.c, src/functions.h:
	Segments now not duplicated in database.
	Routing with all nodes works, not with super-nodes.

2009-02-04  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/router.c: Fix usage output.

	* src/ways.c, src/ways.h: Only sort once, don't store the index.

	* src/planetsplitter.c, src/router.c:
	Use '--*' command line arguments, not '-*'.

	* src/nodes.c, src/router.c, src/segments.c, src/ways.c:
	Make sure that nodes, segments and ways could be loaded.

	* src/nodes.h, src/optimiser.c, src/router.c, src/segments.c, src/segments.h,
	src/supersegments.c, src/types.h, src/filedumper.c, src/nodes.c:
	Sort the nodes geographically and take coordinates as command line arguments.

2009-02-02  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/ways.c, src/ways.h, src/nodes.c, src/nodes.h, src/osmparser.c, src/segments.c,
	src/segments.h, src/supersegments.c, src/types.h:
	More variable and function name changes.

2009-02-01  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/profiles.c, src/router.c, src/segments.c, src/segments.h, src/supersegments.c,
	src/ways.c, src/ways.h, src/files.c, src/functions.h, src/nodes.c, src/nodes.h,
	src/optimiser.c, src/osmparser.c, src/planetsplitter.c, src/filedumper.c:
	Rename some variable types.

2009-01-31  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/segments.c, src/segments.h, src/supersegments.c, src/types.h, src/ways.c, src/ways.h,
	src/functions.h, src/nodes.c, src/nodes.h, src/optimiser.c, src/planetsplitter.c,
	src/profiles.h, src/router.c:
	Intermediate version during code cleanup.

	* src/optimiser.c, src/planetsplitter.c, src/router.c, src/segments.c, src/segments.h,
	src/functions.h, src/nodes.h:
	Intermediate checkin, routing now working.

	* src/Makefile:
	Don't print out anything when creating the dependencies directory.

	* src/planetsplitter.c, src/router.c:
	Add command line options to specify the directory and filename prefix.

2009-01-30  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/results.c, src/planetsplitter.c: Remove gcc warning.

	* src/Makefile: Move dependencies to subdir.

	* src/osmparser.c: Remove gcc warning.

2009-01-29  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/functions.h, src/nodes.c, src/nodes.h, src/optimiser.c, src/planetsplitter.c,
	src/router.c, src/segments.c, src/segments.h, src/supersegments.c:
	Intermediate version while transitioning data format for nodes and segments.

2009-01-28  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/Makefile, src/functions.h, src/nodes.c, src/nodes.h, src/optimiser.c, src/osmparser.c,
	src/planetsplitter.c, src/segments.c, src/segments.h, src/supersegments.c, src/ways.c,
	src/ways.h:
	Intermediate version while transitioning data format for nodes and segments.

2009-01-27  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/Makefile, src/functions.h, src/nodes.c, src/nodes.h, src/optimiser.c,
	src/planetsplitter.c, src/router.c, src/segments.c, src/segments.h, src/supersegments.c,
	src/ways.c, src/ways.h:
	Intermediate version while transitioning data format for nodes and segments.

2009-01-26  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/osmparser.c, src/planetsplitter.c, src/segments.c, src/segments.h,
	src/supersegments.c, src/ways.c, src/ways.h, src/filedumper.c, src/files.c, src/functions.h,
	src/optimiser.c:
	Change Segment to contain index of way not its real ID.
	Don't store the real way ID to save space.

2009-01-25  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/segments.c, src/segments.h:
	Slightly speed up the Duration calculation by changing the macro.

	* src/osmparser.c, src/profiles.c, src/ways.c, src/ways.h:
	Fix misspelling of Unclassified.

	* src/planetsplitter.c, src/segments.c, src/segments.h, src/supersegments.c, src/ways.h,
	src/optimiser.c:
	Change the segment->way so that it contains the index of the way, not the id.

	* src/profiles.c, src/profiles.h: New file.

	* src/ways.c, src/ways.h, src/Makefile, src/functions.h, src/optimiser.c, src/osmparser.c,
	src/planetsplitter.c, src/router.c, src/segments.c, src/segments.h:
	Added profiles to define speed and allowed highways.
	Added new options to planetsplitter and router to use the profiles.

2009-01-24  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/optimiser.c: Changed some variable names for clarity.

	* src/planetsplitter.c: Print more information about progress.
	Don't quit until 99.9% unchanged.

	* src/optimiser.c, src/results.c, src/results.h, src/supersegments.c:
	Change the Results structure so that the real data doesn't need to be realloc().
	Add functions to access the first and subsequent elements of the Results structure.

2009-01-23  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/osmparser.c, src/planetsplitter.c:
	Fix bug with not specifying a method of transport.

	* src/optimiser.c, src/router.c: Proper check that it was unroutable.

	* src/functions.h, src/optimiser.c, src/planetsplitter.c, src/supersegments.c:
	Remove "iteration" as function argument.

	* src/functions.h, src/optimiser.c, src/osmparser.c, src/planetsplitter.c, src/router.c,
	src/ways.c, src/ways.h:
	Add command line options to planetsplitter and router.
	Select transport type (must be allowed on way for parsing).
	Select highway types (ignore when parsing or routing).

	* src/ways.h, src/functions.h, src/optimiser.c, src/osmparser.c, src/router.c,
	src/segments.c, src/segments.h, src/ways.c:
	Add enumerated type Transport.
	Replace variables of AllowType with Transport where more appropriate.
	Replace AllowType with Allowed.
	Replace WayType with Highway.

	* src/osmparser.c: Only include ways that are not Way_Unknown type.

	* src/osmparser.c: Include permissive access.

	* src/functions.h, src/optimiser.c, src/results.c, src/results.h, src/router.c:
	Create a large or small results structure depending on how many nodes are
	expected.

2009-01-22  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/results.h: Increase the number of bins to 64k.

	* src/optimiser.c, src/osmparser.c, src/segments.c, src/segments.h, src/supersegments.c:
	Remove INVALID_DISTANCE and INVALID_DURATION.

	* src/optimiser.c, src/osmparser.c, src/supersegments.c, src/ways.c, src/ways.h:
	Removed the Way_TYPE() macro.

	* src/results.c, src/results.h, src/optimiser.c:
	Move queue functions into results.c.

	* src/filedumper.c, src/nodes.c, src/nodes.h, src/planetsplitter.c, src/router.c:
	Nodes, Segments, Ways - Nodes, Segments, Ways.

	* src/filedumper.c, src/nodes.c, src/nodes.h, src/segments.c, src/segments.h, src/ways.c,
	src/ways.h:
	Remove the choice of indexed or non-indexed data structures.

2009-01-21  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/optimiser.c:
	Various small speed-ups including not-reversing direction.

	* src/functions.h, src/optimiser.c, src/osmparser.c, src/router.c, src/segments.c,
	src/segments.h, src/supersegments.c, src/ways.c, src/ways.h:
	Calculate way speeds at routing time.

	* src/supersegments.c:
	Add reverse-oneway segments when creating supernodes.
	Check incoming oneway streets as well as outgoing ones.

	* src/osmparser.c: Don't change speed on roundabouts.

2009-01-20  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/planetsplitter.c:
	Add command line options for skipping parsing and iteration limit.

	* src/optimiser.c, src/osmparser.c, src/segments.c, src/segments.h, src/supersegments.c:
	Remove duration from segment, calculate duration depending on speed.

2009-01-19  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/functions.h, src/optimiser.c, src/planetsplitter.c, src/supersegments.c:
	Iteratively calculate the super-segments.

	* src/ways.h: Redefine Way_TYPE() to include one-way status.

2009-01-18  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/optimiser.c, src/supersegments.c:
	Fix problems with way-type matching and duplicated/missing super-segments.

	* src/functions.h, src/optimiser.c, src/router.c: Print out a GPX file.

	* src/optimiser.c, src/filedumper.c, src/functions.h, src/planetsplitter.c, src/router.c,
	src/segments.c, src/segments.h, src/supersegments.c, src/ways.c, src/ways.h:
	Added Super-Ways and allow user to select method of transport.

	* src/segments.c: Fix for changes made to ways.

	* src/supersegments.c:
	Ensure that supernodes are inserted wherever the way type changes.

	* src/osmparser.c: Fill in the extra way information.

	* src/ways.h:
	Store more information about a way (allowed modes of transport).

	* src/filedumper.c: Fix output printing.

	* src/router.c: Print an error if no route can be found.

	* src/optimiser.c:
	Fix bugs when start and/or finish nodes are supernodes.

2009-01-17  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/Makefile: Add the option to create assembler output files.

	* src/optimiser.c, src/results.c, src/results.h, src/supersegments.c:
	Change the contents of the results data structure.

	* src/router.c: Added an option to not print the result.

2009-01-16  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/optimiser.c, src/results.h, src/router.c:
	Speed optimisation by changing the contents of the Results structure.

	* src/optimiser.c:
	Don't bother calculating the distance to go, it takes too long.

2009-01-14  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/planetsplitter.c: Remove bad segments and non-way nodes.

	* src/nodes.c, src/nodes.h: Remove nodes which are not in highways.
	Fix the sorting and create indexes after sorting, not before saving.

	* src/segments.c, src/segments.h:
	Remove bad segments (repeated consecutive nodes and duplicate segments).
	Fix the sorting and create indexes after sorting, not before saving.

	* src/supersegments.c: Use invalid distances properly.

	* src/ways.c:
	Fix the sort algorithm and update the indexes after sorting, not before saving.

	* src/optimiser.c: Fix the bug with merging the results.
	Fix the bug with not clearing the results structure properly.

	* src/osmparser.c:
	Add segments that correspond to the wrong way along one-way routes with an
	invalid distance.

2009-01-11  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/functions.h, src/optimiser.c, src/router.c:
	Routes correctly using super-nodes (not Lands End to John O'Groats though).

	* src/filedumper.c, src/functions.h, src/optimiser.c, src/planetsplitter.c, src/router.c,
	src/segments.h, src/supersegments.c:
	Replace Junction with SuperNode.

	* src/nodes.c, src/nodes.h, src/segments.h, src/ways.c, src/ways.h:
	Some small changes to the nodes, segments and ways functions.

	* src/Makefile, src/filedumper.c, src/functions.h, src/optimiser.c, src/planetsplitter.c,
	src/results.h, src/router.c, src/segments.c, src/segments.h, src/supersegments.c:
	Working version with supersegments and junctions.

2009-01-10  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/ways.c, src/ways.h, src/osmparser.c, src/segments.c:
	Store more information about ways.

	* src/results.h, src/results.c: New file.

	* src/Makefile, src/optimiser.c:
	Move the results data type into new files.

	* src/nodes.h, src/segments.h, src/ways.h:
	Increase the increment for the indexed array case.

	* src/ways.h, src/Makefile, src/filedumper.c, src/functions.h, src/nodes.c, src/nodes.h,
	src/optimiser.c, src/osmparser.c, src/planetsplitter.c, src/router.c, src/segments.c,
	src/segments.h, src/supersegments.c, src/ways.c:
	About to add the super-segment functionality using Segments data type to hold
	them.

	* src/functions.h, src/types.h:
	Changed after nodes, ways and segment changes.

2009-01-09  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/segments.h: New file.

	* src/segments.c:
	Changed the format of the segments data type to match the nodes.

	* src/nodes.h: Enable indexed arrays.

	* src/ways.h: New file.

	* src/ways.c:
	Changed the format of the ways data type to match the nodes.

	* src/nodes.c, src/nodes.h:
	Changed the format of the nodes data type again.

2009-01-07  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/nodes.h: New file.

	* src/nodes.c: Lots of modifications:
	Two data structures - in memory (pointers) and in file (array).
	Data is hashed into multiple bins.
	Each function takes a nodes structure as an argument.

2009-01-06  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/supersegments.c: New file.

	* src/Makefile, src/filedumper.c, src/functions.h, src/planetsplitter.c, src/types.h:
	Added SuperSegments data type, but it does nothing yet.

	* src/optimiser.c:
	Tried to optimise the Queue data type.  It was slower than the original.

2009-01-05  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/filedumper.c: Print out the longest segment.

	* src/optimiser.c:
	Some optimisations.  Increase the number of result bins and change
	find_insert_result() into insert_result().

2009-01-04  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/optimiser.c: Introduced some new data types to simplify the code.

	* src/filedumper.c: Print more useful information.

	* src/segments.c, src/types.h, src/ways.c, src/filedumper.c, src/functions.h, src/nodes.c,
	src/optimiser.c, src/osmparser.c, src/planetsplitter.c:
	Changed the node, way and segment functions and data types.
	Removed 'alloced', shortened the prototype array.
	Remove the automatic sorting of the data.
	Added assert statements.

2009-01-03  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/ways.c: New file.

	* src/router.c, src/types.h, src/Makefile, src/filedumper.c, src/functions.h,
	src/optimiser.c, src/osmparser.c, src/planetsplitter.c:
	Added the ways to the output.

2009-01-02  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/optimiser.c, src/osmparser.c, src/segments.c, src/types.h:
	Added macros to convert between distance/km and duration/hours/minutes.
	Shortened the Segment data type with shorter distances and durations.

2009-01-01  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/functions.h, src/nodes.c, src/planetsplitter.c, src/segments.c, src/types.h:
	Remove the functions to initialise the node and segment arrays.

	* src/optimiser.c, src/router.c, src/Makefile: Print out the results.

2008-12-31  Andrew M. Bishop  <amb@gedanken.demon.co.uk>

	* src/types.h, src/segments.c, src/router.c, src/planetsplitter.c, src/osmparser.c,
	src/optimiser.c, src/nodes.c, src/functions.h, src/files.c, src/filedumper.c, src/Makefile:
	New file.

