Merge branch 'upstream'
[routino] / ChangeLog
1 2010-11-13  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
2
3         Version 1.5.1 released
4
5 2010-11-13  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
6
7         * doc/NEWS.txt, doc/README.txt: Updated for version 1.5.1.
8
9         * doc/USAGE.txt: Update program usage for new logging option.
10
11         * xml/routino-translations.xml:
12         Add translation for ferry into German (patch from Michael G├╝nnewig).
13
14         * src/relationsx.c: Fix bug with relation processing.
15
16         * src/logging.h: Add GCC attributes for the logging functions.
17
18         * src/logging.h, src/logging.c: New file.
19
20         * src/Makefile, src/nodesx.c, src/optimiser.c, src/osmparser.c, src/planetsplitter.c,
21         src/relationsx.c, src/router.c, src/segmentsx.c, src/superx.c, src/tagmodifier.c,
22         src/waysx.c:
23         Add an option to make the output more suitable for a log file.
24
25 2010-10-31  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
26
27         * src/files.c:
28         Ensure that enough memory gets allocated in FileName() function.
29
30 2010-10-30  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
31
32         Version 1.5 released
33
34 2010-10-30  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
35
36         * doc/README.txt, doc/NEWS.txt: Updated for version 1.5.
37
38 2010-10-18  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
39
40         * src/profiles.c:
41         Use sqrt() function to reduce the effect of property preferences close to 50%.
42         Ensure that preferences cannot equal zero (error on division).
43
44         * doc/ALGORITHM.txt, doc/INSTALL.txt, doc/USAGE.txt:
45         Updated with information about the new features.
46
47         * doc/CONFIGURATION.txt, doc/TAGGING.txt:
48         Add in the footroute and bicycleroute configuration options and route relation
49         tag processing.
50
51 2010-10-16  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
52
53         * src/files.c: Fixed some comments for recent changes.
54
55 2010-10-09  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
56
57         * xml/routino-profiles.xml:
58         Add footroute and bicycleroute to the profiles.
59
60         * src/files.c, src/files.h, src/relationsx.c:
61         The ReOpenFile() function cannot be read/write because it stops the router
62         running with read-only access to the database.
63
64         * src/nodesx.c, src/relationsx.c, src/segmentsx.c, src/superx.c:
65         Fix previous check-in on this set of files.
66
67         * src/xmlparse.l: Ensure that comparisons are made with unsigned chars.
68
69 2010-10-03  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
70
71         * src/nodesx.c, src/relationsx.c, src/segmentsx.c, src/superx.c:
72         Don't try mapping a file if it is zero length (e.g. no super-segments).
73
74         * src/files.c, src/files.h, src/relationsx.c:
75         Add a function to map a file writeable and use it for updating the ways when
76         processing route relations.
77
78         * src/relationsx.c:
79         Avoid self-recursion and adding route information to relations that already have
80         it.
81
82 2010-09-25  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
83
84         * src/osmparser.c, src/relationsx.c, src/relationsx.h, src/waysx.h:
85         Apply the route=bicycle or route=foot tags from the relation to all ways
86         contained in it and to all ways in all sub-relations of it (including recursion
87         to depth 5).  This requires all relations to be stored even if not routes
88         because they might be included by another relation that is.
89
90         * src/segmentsx.c: Don't sort the (super-)segments if there are none.
91
92         * src/nodesx.c, src/functions.h, src/sorting.c:
93         Rename the heapsort() function to filesort_heapsort().
94
95 2010-09-19  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
96
97         * src/files.c, src/files.h, src/nodesx.c, src/segmentsx.c, src/sorting.c, src/waysx.c:
98         Change the names of the functions used to open files, change the ReOpen function
99         to open R/W.
100
101         * src/relationsx.c: Remove the sorting of the route relations.
102
103 2010-09-17  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
104
105         * src/nodesx.c, src/segmentsx.c:
106         Zero the NodesFile and SegmentsFile data structures before writing them (zeros
107         unused bytes).
108
109         * src/planetsplitter.c, src/waysx.c, src/waysx.h:
110         Split the sorting of waysx from the compacting so that the route relation
111         information can be included before compacting.
112
113         * xml/routino-tagging.xml, src/functionsx.h, src/osmparser.c, src/planetsplitter.c:
114         Parse relations and extract foot and bicycle routes to be added as properties to
115         the ways.
116
117         * src/types.c, src/types.h: Add footroute and bicycleroute properties.
118
119         * src/relationsx.c, src/relationsx.h: New file.
120
121         * src/typesx.h, src/Makefile:
122         Add files and datatypes for processing relations.
123
124         * xml/routino-tagging-nomodify.xml, xml/routino-tagging.xsd, src/tagging.c:
125         Process tags for relations.
126
127 2010-09-16  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
128
129         * src/waysx.c, src/segmentsx.c, src/nodesx.c:
130         Fix the comment for the Append...() function.
131
132 2010-09-15  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
133
134         * xml/routino-profiles.xml, xml/routino-tagging.xml, xml/routino-translations.xml,
135         src/output.c, src/translations.c, src/types.c, src/types.h:
136         Add routing on ferries.
137
138         * src/filedumper.c, src/planetsplitter.c, src/router.c:
139         Bug fix for last change.
140
141         * src/filedumper.c, src/planetsplitter.c, src/router.c:
142         Improve the usage information to tell which command line argument was in error.
143
144         * src/profiles.c:
145         Fix --help-profile-perl option and make perl and JSON outputs more pretty.
146
147         * src/router.c, src/planetsplitter.c:
148         Usage message has wrong option name.
149
150         * src/xmlparse.l:
151         Fix last change to make UTF-8 parsing more strict, also added strict conversion
152         to XML-safe character references.
153
154         * src/translations.c:
155         Convert translations read from file into XML-safe encodings before using them.
156
157         * src/output.c: HTML file has UTF-8 meta-tag.
158
159         * xml/routino-translations.xml:
160         Revert to UTF-8 multi-byte representations instead of character references.
161
162 2010-09-14  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
163
164         * src/xmlparse.l: Stricter checking on XML data (Unicode).
165
166 2010-09-05  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
167
168         * xml/Makefile, src/Makefile, doc/Makefile, Makefile:
169         Move all of the installation pathnames to the top level Makefile and include it
170         into the lower level makefiles.
171
172         * src/planetsplitter.c, src/router.c, src/tagmodifier.c:
173         Use the installed tagging.xml, profiles.xml or translations.xml files as the
174         fallback option if no other given.
175
176 2010-09-04  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
177
178         * xml/routino-translations.xml:
179         Change German translations from named HTML character encodings to numeric ones
180         (works in GPX files as well as HTML).
181
182         * xml/routino-translations.xml:
183         Added Dutch translations (from Jan Jansen).
184
185 2010-08-30  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
186
187         * xml/routino-translations.xml:
188         Change German translation to UTF-8, add comments indicating the origin of the
189         two translations.
190
191         * xml/routino-tagging-nomodify.xml:
192         Relation rules are not allowed at all.
193
194         * xml/Makefile, src/Makefile, doc/Makefile, Makefile:
195         Added 'install' to top level (and lower) Makefiles.
196
197         * src/ways.h, src/output.c:
198         Change the names of the functions used to get the highway names.
199
200         * src/filedumper.c:
201         Only print the way name in OSM output when the way has a name.
202         Change the names of the functions used to get the highway names.
203
204         * src/profiles.c: Fix bug with writing out JSON profile information.
205
206 2010-08-30  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
207
208         * src/ways.h, src/output.c:
209         Change the names of the functions used to get the highway names.
210
211         * src/filedumper.c:
212         Only print the way name in OSM output when the way has a name.
213         Change the names of the functions used to get the highway names.
214
215         * src/profiles.c: Fix bug with writing out JSON profile information.
216
217 2010-08-04  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
218
219         * src/output.c, src/segmentsx.c, src/types.h, src/fakes.c, src/functions.h, src/nodesx.c,
220         src/optimiser.c:
221         Change the way that fake nodes and segments are recognised (allows nearly 4G
222         nodes to be stored instead of 2G nodes).
223
224 2010-08-03  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
225
226         * src/filedumper.c, src/nodes.h, src/nodesx.c, src/optimiser.c, src/types.h:
227         Rename the variables that hold the node allowed transports and flags.
228
229 2010-08-02  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
230
231         * xml/routino-tagging-nomodify.xml, xml/routino-tagging.xml, xml/routino-tagging.xsd,
232         src/filedumper.c, src/nodesx.c, src/nodesx.h, src/optimiser.c, src/osmparser.c,
233         src/superx.c, src/tagging.c, src/types.h:
234         Understand node traffic type restrictions.
235
236 2010-07-31  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
237
238         * src/profiles.h, src/types.c, src/types.h, src/ways.h, src/waysx.c:
239         Rename the wayallow_t type to allow_t (since it applies to nodes as well now).
240
241         * src/filedumper.c, src/nodes.h, src/nodesx.c, src/segmentsx.c, src/types.h:
242         Add extra information to a node to store turn restrictions and properties.
243         (Move the super-node bit from the first segment to here.)
244
245         * src/nodesx.c, src/segmentsx.c, src/waysx.c:
246         Assert if the number of nodes, segments or ways exceeds the legal range of the
247         index counters.
248
249         * src/nodes.h, src/nodesx.h, src/segments.h, src/segmentsx.h, src/ways.h, src/waysx.h:
250         Change the data types to index_t where they are counting nodes/segments/ways.
251
252         * src/nodes.h, src/nodesx.h, src/segments.h, src/segmentsx.h, src/ways.h, src/waysx.c,
253         src/waysx.h:
254         Ensure that seeking within a file uses a 64-bit offset.
255
256         * src/nodesx.c, src/segmentsx.c, src/superx.c, src/waysx.c:
257         Remove the assert statements that check the order of calling the functions.
258
259 2010-07-26  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
260
261         * src/filedumper.c, src/nodes.c, src/nodes.h, src/visualiser.c:
262         Final part of slim mode for the router (node offsets).
263
264 2010-07-24  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
265
266         * src/nodesx.c, src/segmentsx.c, src/waysx.c:
267         Some tidying up of the writing of the file headers.
268
269         * src/ways.c, src/ways.h, src/waysx.c, src/filedumper.c, src/nodes.c, src/optimiser.c,
270         src/output.c, src/profiles.c, src/visualiser.c:
271         Finished slim mode for the router by adding ways.
272
273 2010-07-23  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
274
275         * src/filedumper.c, src/nodes.c, src/nodes.h, src/output.c, src/segments.c, src/segments.h,
276         src/segmentsx.c:
277         Added slim mode to the router for segments.
278
279         * src/Makefile: Add the fakes.c file.
280
281         * src/optimiser.c, src/results.c, src/results.h:
282         Change the results structure to hold the index of the segment instead of a
283         pointer to it.
284
285         * src/types.h, src/router.c, src/functions.h:
286         Move the fake nodes and segments to a new file.
287
288         * src/fakes.c: New file.
289
290 2010-07-19  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
291
292         * xml/routino-profiles.xml:
293         Reduce the "multilane" preference for motor vehicles.  Gives too much bias with
294         previous setting.
295
296 2010-07-15  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
297
298         * src/Makefile, src/filedumper.c, src/nodes.c, src/nodes.h, src/nodesx.c, src/visualiser.c:
299         Added a slim mode to the router (just for nodes to start with).
300
301 2010-07-14  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
302
303         * src/segmentsx.h, src/superx.c, src/waysx.c, src/waysx.h, src/Makefile, src/nodesx.c,
304         src/nodesx.h, src/planetsplitter.c, src/segmentsx.c:
305         Replaced the runtime selection of slim mode / non-slim mode with compile time
306         selection that gives no runtime overhead but gives two executables.
307
308 2010-07-13  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
309
310         * src/nodesx.c, src/nodesx.h, src/segmentsx.c, src/segmentsx.h, src/waysx.c, src/waysx.h:
311         Move the functions for slim mode out into the header file and make it inline.
312
313 2010-07-12  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
314
315         * src/files.h: New file.
316
317         * src/segmentsx.h, src/sorting.c, src/superx.c, src/tagging.c, src/tagmodifier.c,
318         src/translations.c, src/ways.c, src/waysx.c, src/waysx.h, src/filedumper.c, src/files.c,
319         src/functions.h, src/nodes.c, src/nodesx.c, src/nodesx.h, src/optimiser.c, src/output.c,
320         src/planetsplitter.c, src/profiles.c, src/router.c, src/segments.c, src/segmentsx.c:
321         Create a files.h header and put some of the most heavily used files.c functions
322         into it and make them inline.
323
324 2010-07-11  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
325
326         * src/segmentsx.c, src/segmentsx.h, src/files.c, src/nodesx.c, src/nodesx.h:
327         Made the planetsplitter slim mode handle the output node and segment data in a
328         slim way as well as in the input data.
329
330         * src/nodesx.c, src/segmentsx.c, src/waysx.c:
331         Change the names of the temporary files.
332
333 2010-07-10  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
334
335         Version 1.4.1 released
336
337 2010-07-10  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
338
339         * doc/NEWS.txt: Update NEWS for release.
340
341         * doc/ALGORITHM.txt:
342         Update documentation for slight modification to algorithm, also add more
343         information about how preferences etc are handled.
344
345 2010-07-09  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
346
347         * src/Makefile:
348         Default compilation flags include optimisation and not debugging symbols.
349
350 2010-07-08  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
351
352         * src/nodes.c:
353         Fix error with finding closest segment to the specified point.
354
355         * src/optimiser.c:
356         Bug fix for not crashing when finding the middle part of the route.
357
358 2010-07-07  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
359
360         * src/results.c, src/optimiser.c:
361         Changed the amount of memory allocated for intermediate results => routes much
362         faster.
363
364         * src/output.c: Remove compilation warning.
365
366         * src/Makefile:
367         Copy files to web directory like done in other Makefiles.
368
369         * doc/Makefile:
370         Change location of HTML files in web directory and clean up web directory on distclean.
371
372         * src/xml/Makefile: Stop message being printed when make runs.
373
374         * xml/Makefile:
375         Fix error from last checkin and clean up web directory on distclean.
376
377 2010-07-06  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
378
379         * src/optimiser.c:
380         Don't crash if the middle part of the route can't be found but exit cleanly.
381
382 2010-07-05  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
383
384         * src/superx.c: Change the algorithm used to determine supernodes.
385
386 2010-07-03  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
387
388         * xml/routino-translations.xml:
389         Added German translation [patch from Christoph Eckert].
390
391         * src/translations.c:
392         Don't crash if more than one language is in translations.xml but --language
393         option is not used.
394
395 2010-06-28  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
396
397         * src/router.c: Don't crash if start and finish are the same point.
398
399 2010-06-27  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
400
401         * doc/DATA.txt: New file.
402
403         * doc/ALGORITHM.txt, doc/CONFIGURATION.txt, doc/INSTALL.txt, doc/OUTPUT.txt, doc/README.txt,
404         doc/TAGGING.txt, doc/USAGE.txt:
405         Updated documentation to match new web site.
406
407         * doc/Makefile: New file.
408
409         * xml/Makefile: Add some new variables.
410
411 2010-06-26  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
412
413         * xml/routino-profiles.xml, xml/routino-tagging-nomodify.xml, xml/routino-tagging.xml,
414         xml/routino-translations.xml, src/translations.c:
415         Changed URLs to http://www.routino.org/
416
417         * doc/README.txt: *** empty log message ***
418
419         * doc/OUTPUT.txt: Changed URLs to http://www.routino.org/
420
421 2010-05-31  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
422
423         Version 1.4 released
424
425 2010-05-31  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
426
427         * doc/INSTALL.txt, doc/NEWS.txt, doc/README.txt:
428         Update for version 1.4.
429
430         * src/xml/Makefile: Make sure that distclean really cleans up.
431
432         * Makefile: Make sure that xml sub-directory is made.
433
434         * src/router.c:
435         Fix the code that should stop routing if no segment is found.
436
437 2010-05-30  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
438
439         * doc/USAGE.txt:
440         Add the planetsplitter tagging rules option (and remove the unnecessary options
441         that it replaces), add the filedumper OSM dump option and add the tagmodifier
442         program.
443
444         * doc/TAGGING.txt: Describe the new tagging rules.
445
446         * doc/OUTPUT.txt: Note that the HTML and GPX outputs are translated.
447
448         * doc/CONFIGURATION.txt: Add the tagging rules configuration file.
449
450         * doc/ALGORITHM.txt: An update to the current size of the UK database.
451
452         * xml/routino-tagging-nomodify.xml: New file.
453
454         * src/tagmodifier.c:
455         A tagging XML file must be read (just like planetsplitter).
456
457         * src/filedumper.c:
458         Add the option to dump a region rather than all and to not output super
459         segments.
460
461         * src/optimiser.c: Fix printing the number of super-segments tried.
462
463 2010-05-29  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
464
465         * xml/routino-translations.xml, xml/routino-translations.xsd, src/ways.h, src/filedumper.c,
466         src/osmparser.c, src/output.c, src/translations.c, src/translations.h:
467         Translate the names given to unnamed roads (the highway type).
468
469         * src/profiles.c, src/profiles.h, src/router.c:
470         Stricter check on specified profile before routing.
471
472         * src/router.c: Ensure that if no segment is found the routing stops.
473
474         * src/nodes.c:
475         When finding a closest segment one of the nodes must be within the search
476         distance.
477
478 2010-05-28  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
479
480         * src/router.c: Make sure that some profiles are loaded.
481
482 2010-05-27  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
483
484         * src/optimiser.c, src/profiles.c:
485         Fix bug with profile preferences (used incorrectly in route optimisation).
486
487         * src/Makefile, src/filedumper.c, src/types.c, src/types.h:
488         Add an option to filedumper to dump an OSM format file.
489
490 2010-05-25  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
491
492         * src/xmlparse.l: Fix bug with encoding XML strings.
493
494 2010-05-23  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
495
496         * xml/Makefile:
497         Make sure that modified files are copied to web directory.
498
499         * src/tagmodifier.c:
500         Fix bug when filename is specified on command line.
501
502         * src/tagging.c, src/tagging.h, src/tagmodifier.c, src/xmlparse.l, src/osmparser.c:
503         Fix some memory leaks.
504
505         * src/tagmodifier.c, xml/osm.xsd, xml/routino-osm.xsd, src/osmparser.c:
506         Add the 'bound' element to the XML parser.
507
508 2010-05-22  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
509
510         * src/functionsx.h, src/osmparser.c, src/planetsplitter.c, src/ways.h, src/waysx.c,
511         src/waysx.h:
512         Remove the --transport=<transport>, --not-highway=<highway> and
513         --not-property=<property> options from planetsplitter because they can be done
514         by the tagging.xml file now.
515
516 2010-05-18  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
517
518         * src/Makefile: Add tagmodifier program.
519
520         * src/xmlparse.l: Handle floating point numbers in scientific notation.
521
522         * src/planetsplitter.c:
523         Read in the tag transformation rules before calling the OSM parser.
524
525         * src/functionsx.h, src/osmparser.c:
526         Almost completely re-written OSM parser using tagging transformations.
527
528         * src/tagmodifier.c, src/tagging.h, src/tagging.c: New file.
529
530         * xml/Makefile: Copy the tagging rules to the web directory.
531
532         * xml/routino-tagging.xml, xml/routino-tagging.xsd, xml/routino-osm.xsd:
533         New file.
534
535         * xml/osm.xsd: Small fix for OSM schema.
536
537 2010-05-14  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
538
539         * src/types.c: Remove highway type aliases from HighwayType() function.
540
541         * src/xmlparse.h, src/xmlparse.l: Allow empty strings to be returned.
542
543 2010-05-10  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
544
545         * src/xmlparse.h, src/xmlparse.l:
546         The line number is now a long integer.
547
548         * src/xml/Makefile: Running 'make test' now compiles everything first.
549
550 2010-04-28  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
551
552         * src/xml/Makefile: Delete zero length file if xsd-to-xmlparser fails.
553
554         * src/nodes.c, src/nodesx.c, src/segments.c, src/segmentsx.c, src/ways.c, src/waysx.c:
555         Change file format to allow 64-bit off_t type with 32 bit void* type.
556
557         * src/Makefile, src/filedumper.c, src/xml/Makefile:
558         Compile with _FILE_OFFSET_BITS=64 to get 64-bit fopen() and stat().
559
560 2010-04-27  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
561
562         * src/output.c: Fix mistake of writing GPX information to wrong file.
563
564         * doc/OUTPUT.txt, doc/CONFIGURATION.txt: New file.
565
566         * doc/TAGGING.txt, doc/USAGE.txt, doc/ALGORITHM.txt, doc/INSTALL.txt, doc/NEWS.txt,
567         doc/README.txt:
568         Interim checkin of updated documentation.
569
570 2010-04-24  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
571
572         * src/router.c:
573         Merged the three functions to output the head/body/tail of the results back into
574         a single function.  Added the '--output-none' option.
575
576         * src/functions.h, src/output.c:
577         Merged the three functions to output the head/body/tail of the results back into
578         a single function.
579
580         * xml/routino-translations.xml, xml/routino-translations.xsd, src/output.c,
581         src/translations.c, src/translations.h:
582         Added translations for the HTML output.
583
584         * src/xmlparse.h, src/xmlparse.l: Changed functions from const.
585
586         * src/output.c:
587         Add the copyright information into the translations.xml file instead of the
588         separate copyright.txt file.  Add the translated copyright strings into the
589         outputs.
590
591         * src/functions.h, src/router.c, src/translations.c, src/translations.h:
592         Add the copyright information into the translations.xml file instead of the
593         separate copyright.txt file.
594
595         * src/xmlparse.h, src/xmlparse.l:
596         Add an option to not convert the XML strings into decoded representations (saves
597         converting them back later for the translated strings).
598
599 2010-04-23  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
600
601         * src/xml/xsd-to-xmlparser.c, src/translations.c, src/xmlparse.h, src/xmlparse.l,
602         src/profiles.c:
603         Pass the tag name to the tag function.
604
605 2010-04-22  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
606
607         * Makefile: Fix bug in makefile.
608
609         * xml/Makefile: Move the translations into the web directory.
610
611         * xml/routino-translations.xml, xml/routino-translations.xsd: New file.
612
613         * src/output.c: Changed HTML output to be useful in web pages.
614
615         * src/xmlparse.l:
616         Restart properly so that a different file can be read.
617
618 2010-04-13  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
619
620         * src/xml/xsd-to-xmlparser.c, src/profiles.c, src/translations.c:
621         Name the tag variables and functions after the XSD data type and not the tag
622         name that uses it.
623
624 2010-04-12  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
625
626         * src/profiles.c, src/translations.c, src/xmlparse.h, src/xmlparse.l,
627         src/xml/xsd-to-xmlparser.c, src/xml/Makefile:
628         Change the last parameter to the ParseXML function to be general options.
629
630         * src/Makefile, src/types.h, src/ways.c, src/ways.h:
631         Move the type checking/printing functions from way.c to type.c.
632
633         * src/types.c: New file.
634
635 2010-04-11  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
636
637         * src/xml/xsd-to-xmlparser.c, src/profiles.c, src/translations.c, src/xmlparse.h,
638         src/xmlparse.l:
639         Added helper functions for parsing strings into numbers.
640         Added macros to perform common error checking.
641         Change XML parser callback functions to return an error status.
642
643 2010-04-10  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
644
645         * src/router.c: Fix usage information.
646
647         * src/translations.h, src/translations.c: New file.
648
649         * src/output.c: Added translations for GPX and turn/heading.
650
651         * src/Makefile, src/router.c:
652         Added file of translations and language selection.
653
654 2010-04-09  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
655
656         * src/functions.h, src/planetsplitter.c, src/sorting.c:
657         Add an option '--sort-ram-size' to specify the RAM to use for sorting - defaults
658         to 256MB if not using slim mode.
659
660 2010-04-08  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
661
662         * src/xml/Makefile: Fix test program generation and running.
663
664         * src/xmlparse.h, src/xmlparse.l:
665         Make the strings const and add the number of attributes to the xmltag structure.
666         Add functions to convert character entities and character references.
667
668         * src/profiles.c, src/xml/xsd-to-xmlparser.c:
669         Make the strings const and add the number of attributes to the xmltag structure.
670
671 2010-04-07  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
672
673         * xml/Makefile: New file.
674
675 2010-04-06  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
676
677         * src/Makefile:
678         Remove special lex/flex flags.  Remove profiles.o from planetsplitter.
679
680         * src/xml/xsd-to-xmlparser.c:
681         Don't print anything for attributes that are not set.
682
683         * src/xmlparse.l:
684         Change error message for bad character in a quoted string.
685         Make sure attribute values are cleared before calling tag function (for
686         end-tags).
687
688 2010-04-04  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
689
690         * src/xml/Makefile: Add some XML parsing test cases.
691
692         * src/xml/xsd-to-xmlparser.c: Rename the XML handling function.
693
694         * src/xmlparse.h, src/xmlparse.l, src/profiles.c: Added error checking.
695
696 2010-04-03  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
697
698         * src/functionsx.h, src/osmparser.c, src/planetsplitter.c:
699         Rename the old ParseXML() function as ParseOSM().
700
701 2010-04-01  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
702
703         * src/output.c: Wrap GPX descriptions in CDATA.
704
705 2010-03-31  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
706
707         * xml/routino-profiles.xml: New file.
708
709         * src/xml/xsd-to-xmlparser.c, src/profiles.c, src/xmlparse.h, src/xmlparse.l:
710         Call the XML tag functions for the end tags as well as the start tags.
711
712 2010-03-30  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
713
714         * src/profiles.c, src/profiles.h:
715         Change the name of the --profile-json and --profile-perl options.
716
717         * src/filedumper.c, src/planetsplitter.c, src/router.c:
718         Improve the program help messages.
719
720 2010-03-29  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
721
722         * src/files.c, src/functions.h, src/profiles.c, src/profiles.h, src/router.c:
723         Added command line option to specify a file containing profiles.
724         Added command line option to select profile by name from loaded set.
725         Use XML parser to read in the profiles.
726
727         * src/Makefile: Better handling of the xml sub-directory.
728
729         * src/xml/xsd-to-xmlparser.c:
730         Add the option to ignore unknown attributes.
731         Print out the skeleton file using static functions and variables.
732
733         * src/xml/Makefile: Keep the intermediate files.
734
735         * src/xmlparse.h, src/xmlparse.l:
736         Add the option to ignore unknown attributes.
737
738 2010-03-28  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
739
740         * src/profiles.h, src/router.c, src/profiles.c:
741         Add an option to print out the profiles as XML format.
742
743         * src/xmlparse.h, xml/xsd.xsd, xml/osm.xsd, src/xml/xsd-to-xmlparser.c:
744         New file.
745
746         * src/Makefile: Added the XML subdirectory and xmlparser.c.
747
748         * src/xmlparse.l, src/xml/Makefile: New file.
749
750 2010-03-20  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
751
752         * src/output.c: Add descriptions to each point in the GPX route file.
753
754         * src/files.c, src/functions.h, src/nodesx.c, src/output.c, src/segmentsx.c, src/waysx.c:
755         Move the stat() calls to find a file size into a helper function in files.c.
756
757         * src/files.c, src/output.c, src/planetsplitter.c:
758         Improve the error messages by adding strerror() to them.
759
760         * src/filedumper.c, src/router.c:
761         Don't check the return value of the functions to load the nodes, segments and
762         ways because those functions will exit in case of an error.
763
764         * src/nodes.c, src/segments.c, src/ways.c:
765         Don't check the return value of MapFile() because it will exit in case of an
766         error.
767
768         * src/planetsplitter.c:
769         Allow filenames on the planetsplitter command line.
770
771 2010-03-19  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
772
773         * src/waysx.h, src/filedumper.c, src/files.c, src/functions.h, src/nodesx.c, src/nodesx.h,
774         src/planetsplitter.c, src/segmentsx.c, src/segmentsx.h, src/superx.c, src/waysx.c:
775         Allow planetsplitter to be run with a --parse-only or --process-only option and
776         append to existing file or read from existing file.
777
778 2010-03-18  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
779
780         * src/router.c: Fix usage message error and shuffle order.
781
782         * src/output.c, src/router.c:
783         Allow selection of which outputs are to be created.
784
785 2010-03-17  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
786
787         * src/output.c: Re-order the code for HTML.
788
789 2010-03-15  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
790
791         * src/output.c: Create a simple HTML output.
792
793 2010-03-06  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
794
795         * src/router.c, src/nodes.c:
796         Speed up start/via/stop point search algorithm.
797
798 2010-03-05  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
799
800         * src/profiles.c:
801         Change the format of the output for the --help-profile-{pl|js} options.
802
803 2010-01-21  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
804
805         Version 1.3 released
806
807 2010-01-21  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
808
809         * doc/NEWS.txt: Update to latest news.
810
811 2010-01-18  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
812
813         * doc/USAGE.txt, doc/TAGGING.txt, doc/INSTALL.txt:
814         Updated documentation.
815
816 2010-01-15  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
817
818         * src/router.c, src/functions.h:
819         Change the test output formats to add turn, node type and bearing information.
820
821 2010-01-13  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
822
823         * src/output.c:
824         Change the test output formats to add turn, node type and bearing information.
825
826 2009-12-16  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
827
828         * src/router.c:
829         Added an option to use only nodes and not interpolate a point into a segment.
830
831 2009-12-15  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
832
833         * src/osmparser.c, src/profiles.c, src/types.h, src/ways.c:
834         Added wheelchair as type of transport.
835
836 2009-12-13  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
837
838         * src/osmparser.c, src/profiles.c, src/types.h, src/ways.c:
839         Add bridge and tunnel to highway properties.
840
841 2009-12-12  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
842
843         * src/Makefile:
844         Ignore the error if executables cannot be copied after compiling.
845
846         * src/functions.h, src/nodesx.c, src/segmentsx.c, src/sorting.c, src/waysx.c:
847         Add some FILESORT_* #defines and use them.
848
849 2009-12-11  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
850
851         * src/functions.h, src/nodesx.c, src/planetsplitter.c, src/segmentsx.c, src/sorting.c,
852         src/waysx.c, src/waysx.h:
853         Added a new function to sort variable length data - simplifies the compacting of
854         ways, reduces memory usage potentially required for it and simplifies the code.
855
856 2009-12-10  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
857
858         * src/waysx.c:
859         Write out the list of ways without memory mapping anything.
860
861 2009-11-27  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
862
863         * src/osmparser.c, src/profiles.c, src/types.h, src/ways.c:
864         Add in "multilane" as a new highway property.
865
866 2009-11-25  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
867
868         * src/filedumper.c, src/optimiser.c, src/osmparser.c, src/planetsplitter.c, src/profiles.h,
869         src/router.c, src/ways.h, src/waysx.c, src/waysx.h:
870         Store the selected options when parsing (planetsplitter) and display them in the
871         statistics (filedumper) and check them when routing (router).
872
873 2009-11-23  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
874
875         * src/osmparser.c, src/output.c, src/profiles.c, src/types.h, src/ways.c:
876         Add in "steps" as a new highway type.
877
878 2009-11-19  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
879
880         * src/optimiser.c, src/router.c:
881         Made the verbose output consistent between different places.
882
883 2009-11-18  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
884
885         * src/router.c: Fix bug with previous segment-splitting routing.
886
887 2009-11-14  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
888
889         * src/optimiser.c, src/output.c, src/router.c, src/segments.h, src/functions.h, src/nodes.c,
890         src/nodes.h:
891         If a selected waypoint is not very close to an existing node then insert a fake
892         node in the segment that comes closest and use that instead.
893
894 2009-11-13  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
895
896         * src/optimiser.c, src/osmparser.c, src/queue.c, src/results.c, src/results.h, src/types.h:
897         Added in some more constants with the value ~0.
898
899 2009-11-06  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
900
901         * src/filedumper.c:
902         Check the values for the --node=, --segment= and --way= options.
903
904 2009-11-03  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
905
906         * src/output.c, src/planetsplitter.c, src/profiles.c, src/profiles.h, src/router.c,
907         src/types.h, src/ways.c:
908         Rename Way_Unknown to Way_Count to make more sense and match the properties.
909
910 2009-11-02  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
911
912         * src/osmparser.c: Allow the tag "paved" as well as "surface=paved".
913
914         * src/filedumper.c, src/optimiser.c, src/osmparser.c, src/planetsplitter.c, src/profiles.c,
915         src/profiles.h, src/router.c, src/types.h, src/ways.c, src/ways.h:
916         Added the ability to set routing preferences using highway properties.
917         Initially the only choice is either paved or unpaved but the code has been
918         updated to allow any number of properties to be added.
919
920 2009-10-27  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
921
922         * src/osmparser.c:
923         Handle the "designation=..." tag for bridleway, byway and footpath.  (Also
924         change to using a macro for testing if access is allowed and now allow
925         "destination").
926
927         * src/osmparser.c, src/profiles.c, src/types.h, src/ways.c, src/ways.h:
928         Added Moped to the list of transports (and incidentally increased the transport
929         data type to 16 bits and re-ordered the Way data-type in response).
930
931 2009-10-26  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
932
933         * src/profiles.c:
934         Ensure that horses and bicycles have a default speed on trunk even though they
935         have a default preference not to use it.
936
937         * src/osmparser.c, src/profiles.c, src/types.h, src/ways.c:
938         Re-ordered the types so that Horse comes before Bicycle.
939
940         * src/osmparser.c, src/output.c, src/profiles.c, src/types.h, src/ways.c:
941         Remove the Bridleway and Footway highway types and use the Path type instead
942         (also re-ordered the types so that Cycleway comes before Path).
943
944         * src/profiles.c: Remove unneeded spaces at the end of the output.
945
946 2009-10-25  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
947
948         * src/output.c:
949         Fix bug in code that determines waypoints for abbreviated output.
950
951 2009-10-24  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
952
953         * src/functions.h, src/optimiser.c, src/router.c:
954         Fix missing segments in output if start and finish points are found by the start
955         search.
956
957 2009-10-22  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
958
959         * src/files.c, src/nodesx.c, src/segmentsx.c, src/sorting.c, src/superx.c, src/waysx.c:
960         Added some missing comments and corrected some existing ones.
961
962 2009-10-21  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
963
964         Version 1.2 released
965
966 2009-10-21  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
967
968         * doc/README.txt, doc/USAGE.txt, doc/NEWS.txt: Updated for version 1.2.
969
970 2009-10-20  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
971
972         * src/Makefile: Add sorting.o to the Makefile.
973
974 2009-10-12  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
975
976         * src/waysx.c: When sorting we cannot have NULL pointers now.
977
978         * src/nodesx.c, src/segmentsx.c, src/waysx.c:
979         Re-order the functions in the file into a more logical order.
980         No functional changes.
981
982         * src/nodesx.c, src/planetsplitter.c, src/segmentsx.c, src/sorting.c, src/waysx.c:
983         Rename the tmpdirname variable.
984
985 2009-10-10  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
986
987         * src/nodesx.c, src/osmparser.c, src/segmentsx.c, src/sorting.c, src/waysx.c:
988         Corrections after running with valgrind.
989
990         * src/planetsplitter.c: Fix early termination test.
991
992         * src/nodesx.c, src/nodesx.h, src/segmentsx.c:
993         Remove the nodesx->gdata index.
994
995 2009-10-09  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
996
997         * src/nodesx.c, src/segmentsx.c, src/typesx.h, src/waysx.c, src/waysx.h:
998         Free the nodesx->super array and the segmentsx->firstnode array when finished
999         with them.  Remove wayx->cid and overwrite wayx->id instead.  Overwrite
1000         nodex[i]->id=i for later geographically sorted use.
1001
1002 2009-10-08  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1003
1004         * src/nodesx.c, src/planetsplitter.c, src/segmentsx.c, src/segmentsx.h, src/superx.c:
1005         Replace node, segment and way indexes with a single index for a set of segments
1006         containing the location of the first segment for each node.
1007
1008         * src/nodesx.h: Fix comment.
1009
1010 2009-10-07  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1011
1012         * src/osmparser.c, src/segmentsx.c, src/superx.c:
1013         AppendSegment adds a single segment and not a pair.
1014
1015         * src/waysx.c: Use heapsort() instead of qsort().
1016
1017         * src/nodesx.c, src/nodesx.h, src/planetsplitter.c, src/segmentsx.c, src/segmentsx.h,
1018         src/superx.c, src/waysx.c:
1019         Go back to the version 1.1 method of having each segment listed twice.  This
1020         simplifies the lookup of first/next segments at no in-RAM index cost and now
1021         that slim mode has sorting of file contents the balance has tipped back.
1022
1023 2009-10-04  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1024
1025         * src/functions.h, src/sorting.c:
1026         Change the sort function to allow the indexing callback to veto the write.
1027
1028         * src/nodesx.c: Remove the duplicates when sorting.
1029
1030         * src/waysx.c:
1031         Sort the ways using the same method as the nodes.  Also remove the duplicates.
1032
1033         * src/nodesx.c:
1034         Use the new sort functions to allow sorting the data in the file without needing
1035         to read (or mmap) the whole file into RAM at the same time.
1036
1037         * src/functions.h: Add some functions to perform sorting.
1038
1039         * src/sorting.c: New file.
1040
1041         * src/queue.c: Fix bug with binary heap sort.
1042
1043 2009-09-25  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1044
1045         * src/queue.c: Add comments describing the algorithm used.
1046
1047 2009-09-23  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1048
1049         * src/nodesx.c, src/waysx.c:
1050         Simplify the de-duplication when sorting and update some comments.
1051
1052 2009-09-22  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1053
1054         * src/nodesx.c, src/nodesx.h:
1055         Remove a leftover from the last change on these files.
1056
1057         * src/segmentsx.c: Improve the super-segment de-duplication.
1058
1059 2009-09-21  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1060
1061         * src/nodesx.c, src/nodesx.h, src/planetsplitter.c:
1062         Remove the non-highway nodes without re-sorting the whole list again.
1063
1064 2009-09-17  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1065
1066         * src/osmparser.c, src/planetsplitter.c, src/segmentsx.c, src/superx.c, src/waysx.c,
1067         src/waysx.h:
1068         Added the slim mode to Ways as well.
1069
1070         * src/ways.h: Add padding to Ways structure to allow it to be zeroed.
1071
1072         * src/nodesx.c: Add some comments when closing and re-opening files.
1073
1074         * src/files.c, src/functions.h:
1075         The WriteFile function now has a const parameter.
1076
1077 2009-09-15  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1078
1079         * src/nodesx.c, src/nodesx.h, src/planetsplitter.c, src/segmentsx.c:
1080         Some bug fixes and some missing unmap function calls.
1081
1082 2009-09-07  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1083
1084         * src/segmentsx.h, src/superx.c, src/nodesx.c, src/nodesx.h, src/segmentsx.c:
1085         Fixed slim mode for segments and nodes (slim now means mapping only one file
1086         into RAM at a time and none when creating the final output).
1087
1088 2009-09-06  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1089
1090         * src/nodesx.h, src/planetsplitter.c, src/segmentsx.c, src/segmentsx.h, src/superx.c,
1091         src/superx.h, src/nodesx.c:
1092         Slim version of segments code (still very slow and only works on simple cases).
1093
1094         * src/files.c, src/functions.h:
1095         Remove the delete option from UnmapFile() and make it return NULL.
1096
1097         * src/filedumper.c: Allow dumping all nodes, segments or ways.
1098
1099 2009-09-05  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1100
1101         * src/nodesx.c: Don't re-sort unnecessarily.
1102
1103         * src/nodesx.c, src/nodesx.h, src/planetsplitter.c, src/segmentsx.c, src/superx.c:
1104         Improve slim mode for nodes so that no data is not loaded into RAM at all.
1105
1106         * src/files.c, src/functions.h: Add some more file functions.
1107
1108 2009-09-03  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1109
1110         * src/nodesx.c, src/files.c, src/functions.h:
1111         Remove extra argument from MapFile function.
1112
1113         * src/nodesx.c, src/nodesx.h, src/planetsplitter.c, src/segmentsx.c, src/superx.c:
1114         Added slim mode (--slim) to planetsplitter for nodes only.
1115
1116         * src/files.c, src/functions.h:
1117         Changes to mapping and unmapping files for slim mode.
1118
1119 2009-08-25  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1120
1121         * src/planetsplitter.c: Revert the order that the functions are called.
1122
1123         * src/nodesx.c: Fix for assert statement.
1124
1125         * src/files.c: Bug fix for mmap().
1126
1127 2009-08-20  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1128
1129         * src/osmparser.c: Fix bug with memory allocation.
1130
1131 2009-08-19  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1132
1133         * src/nodesx.c, src/nodesx.h, src/planetsplitter.c, src/segmentsx.c, src/segmentsx.h,
1134         src/superx.c, src/waysx.c, src/waysx.h:
1135         Remove "sorted" parameter in data structure and change assert statements.
1136
1137 2009-08-17  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1138
1139         * src/router.c:
1140         Increase to 99 the number of waypoints that can be specified.
1141
1142 2009-08-15  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1143
1144         * src/queue.c: Fix comment.
1145
1146         * src/Makefile:
1147         Tidy the compilation options to make it easier to turn them on and off.
1148
1149         * src/router.c:
1150         Remove the --all, --super and --no-output command line options.
1151         Handle the renamed routing functions.
1152
1153         * src/functions.h, src/optimiser.c:
1154         Rename the routing functions and make FindRoute only find routes with no
1155         super-nodes in them.
1156
1157         * src/queue.c:
1158         When popping from queue make sure that place in queue is cleared.
1159
1160         * src/optimiser.c, src/queue.c, src/results.c, src/results.h, src/superx.c:
1161         Optimise the priority queue used for routing.
1162
1163         * src/filedumper.c: Fix dumping nodes when they are super-nodes.
1164
1165 2009-07-23  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1166
1167         * src/Makefile, src/optimiser.c, src/results.c, src/results.h, src/superx.c:
1168         Split off queue functions into a separate file.
1169
1170         * src/queue.c: New file.
1171
1172 2009-07-19  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1173
1174         * src/nodesx.c, src/segments.h, src/segmentsx.c, src/ways.h, src/waysx.c, src/filedumper.c,
1175         src/nodes.h:
1176         Include the number of super-nodes, super-segments etc in the database as useful
1177         information to put in the statistics output.
1178
1179         * src/superx.c: Fix incorrect progress indicator message.
1180
1181         * src/waysx.c: Fix problem with memory reallocation.
1182
1183         * src/nodesx.c, src/osmparser.c, src/planetsplitter.c, src/segmentsx.c, src/segmentsx.h,
1184         src/superx.c:
1185         Store only one copy of each segment but index once for each direction.
1186
1187 2009-07-12  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1188
1189         * src/functionsx.h, src/nodesx.c, src/nodesx.h, src/osmparser.c, src/output.c,
1190         src/planetsplitter.c, src/profiles.c, src/results.c, src/segments.c, src/segmentsx.c,
1191         src/segmentsx.h, src/superx.c, src/superx.h, src/ways.h, src/waysx.c, src/waysx.h:
1192         Tidy up and fix comments and include files.
1193
1194         * src/osmparser.c, src/planetsplitter.c, src/router.c, src/segmentsx.c, src/superx.c,
1195         src/waysx.c, src/filedumper.c, src/nodesx.c, src/optimiser.c:
1196         Check all print statements and made them more consistent and/or accurate.
1197
1198 2009-07-11  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1199
1200         * src/nodesx.c, src/nodesx.h, src/planetsplitter.c, src/segmentsx.c, src/waysx.c,
1201         src/waysx.h:
1202         Free memory at the end of planetsplitter (to aid finding potential leaks
1203         earlier).
1204
1205 2009-07-09  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1206
1207         * src/segmentsx.c: Free memory correctly (really).
1208
1209         * src/planetsplitter.c, src/waysx.c, src/waysx.h:
1210         Separate the sorting of Ways from compacting of Ways.
1211
1212         * src/nodes.h, src/nodesx.c, src/nodesx.h, src/segmentsx.c, src/visualiser.c,
1213         src/filedumper.c, src/nodes.c:
1214         Rename structure members after recent changes.
1215
1216         * src/segmentsx.c: Free memory correctly.
1217
1218         * src/types.h, src/segmentsx.c: Fix duplicate checking.
1219
1220         * src/planetsplitter.c: Ensure that variable is reset before using it.
1221
1222         * src/types.h, src/visualiser.c, src/visualiser.h, src/filedumper.c, src/nodes.c,
1223         src/nodes.h, src/nodesx.c, src/nodesx.h, src/optimiser.c, src/osmparser.c, src/output.c,
1224         src/router.c, src/segments.c, src/segments.h, src/segmentsx.c:
1225         Change from float to double for latitude and longitude.
1226         Store latitude and longitude as an integer type rather than float (higher precision).
1227
1228 2009-07-08  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1229
1230         * src/superx.c: Ensure that variable is reset before using it.
1231
1232 2009-07-06  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1233
1234         * src/visualiser.c:
1235         Print all super-segments within and crossing the border.
1236         Don't display speed limits for tracks and paths unless set.
1237
1238 2009-07-04  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1239
1240         * src/segmentsx.h, src/superx.c, src/waysx.c, src/waysx.h:
1241         Change data structure to avoid calling realloc() each time to allocate more
1242         memory.
1243
1244 2009-07-02  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1245
1246         * src/types.h, src/waysx.c, src/waysx.h:
1247         Handle duplicate ways.
1248
1249         * src/nodes.c, src/nodesx.c, src/planetsplitter.c, src/profiles.c, src/results.c,
1250         src/segments.c, src/segmentsx.c, src/superx.c, src/superx.h, src/types.h, src/ways.c,
1251         src/waysx.c:
1252         Fix some gcc pedantic warnings.
1253
1254         * src/files.c, src/nodesx.c, src/osmparser.c, src/results.c, src/router.c, src/segments.c,
1255         src/segmentsx.c, src/superx.c, src/ways.c, src/waysx.c:
1256         Removed unused header files, change assert statements, tidy some code.
1257
1258 2009-07-01  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1259
1260         * src/nodesx.c, src/nodesx.h, src/planetsplitter.c, src/segmentsx.c, src/segmentsx.h, src/superx.c:
1261         Remove the Node structure from the NodeX structure to save memory.
1262
1263         * src/filedumper.c:
1264         Print latitude and longitude in degrees.
1265
1266 2009-06-30  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1267
1268         * src/segmentsx.h:
1269         Re-order the data in the structure.
1270
1271         * src/nodesx.c, src/nodesx.h, src/osmparser.c, src/planetsplitter.c, src/segmentsx.c,
1272         src/segmentsx.h, src/superx.c, src/waysx.h:
1273         Remove the Segment structure from the SegmentX structure to save memory.
1274
1275 2009-06-29  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1276
1277         * src/filedumper.c, src/nodes.h, src/nodesx.c, src/segments.c, src/segments.h,
1278         src/segmentsx.c, src/superx.c, src/types.h:
1279         Move the super-segment and normal-segment flags from the nodes to the distance.
1280         Remove the NODE() macro and rename SUPER_FLAG to NODE_SUPER.
1281
1282         * src/waysx.c: Replace memmove with structure copy.
1283
1284         * src/nodesx.c, src/segmentsx.c, src/segmentsx.h, src/superx.c:
1285         Rename SegmentsX sdata to ndata.
1286
1287 2009-06-25  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1288
1289         * src/waysx.c, src/waysx.h: Rename part of the structure.
1290
1291         * src/nodesx.c, src/nodesx.h, src/planetsplitter.c, src/segmentsx.c, src/segmentsx.h,
1292         src/superx.c, src/waysx.h:
1293         Undo part of the previous change - only update the Segment way index at the end.
1294
1295         * src/waysx.h, src/nodesx.c, src/osmparser.c, src/planetsplitter.c, src/segmentsx.c,
1296         src/segmentsx.h, src/superx.c, src/superx.h, src/typesx.h, src/waysx.c:
1297         Reduce the number of ways in the output by compacting them (sharing the same
1298         information between identical ways).
1299
1300 2009-06-24  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1301
1302         * src/filedumper.c, src/nodes.h:
1303         Allow dumping out of nodes, segments and ways.
1304
1305 2009-06-15  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1306
1307         * src/segmentsx.c, src/superx.c, src/visualiser.c, src/ways.c, src/ways.h:
1308         Rename WaysSame() with WaysCompare() and reverse the sense of the output.
1309
1310         * src/functionsx.h, src/typesx.h: New file.
1311
1312         * src/functions.h, src/nodesx.h, src/osmparser.c, src/planetsplitter.c, src/segmentsx.h,
1313         src/superx.h, src/types.h, src/waysx.h:
1314         Put some of types.h into typesx.h (for extended data types).
1315         Put some of functions.h into functionsx.h (for OSM parser).
1316         Change included files to match.
1317
1318         * src/filedumper.c, src/osmparser.c, src/output.c, src/router.c, src/types.h, src/visualiser.c:
1319         Add a macro for converting degrees to radians and radians to degrees.
1320
1321         * src/optimiser.c:
1322         Fix weight, height, width, length restriction routing.
1323
1324         * doc/TAGGING.txt, src/osmparser.c:
1325         Recognise tags "vehicle" and "motor_vehicle".
1326
1327 2009-06-13  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1328
1329         Version 1.1 released
1330
1331 2009-06-13  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1332
1333         * src/nodesx.c, src/planetsplitter.c, src/segmentsx.c, src/segmentsx.h:
1334         Handle nodes that are missing from the .osm file (ignore the segment).
1335
1336         * src/nodesx.c:
1337         Revert the last change (Print an error message and exit if a node cannot be found).
1338
1339         * doc/NEWS.txt: New file.
1340
1341         * src/Makefile:
1342         Delete the executables from the web directory for 'distclean'.
1343
1344 2009-06-12  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1345
1346         * doc/USAGE.txt, doc/INSTALL.txt, doc/README.txt:
1347         Update the documentation.
1348
1349         * src/Makefile: Copy the executables into the web directory.
1350
1351 2009-06-08  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1352
1353         * src/filedumper.c: Change help text.
1354
1355         * src/visualiser.c:
1356         Change format of super-node/segment visualiser output.
1357
1358 2009-06-07  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1359
1360         * doc/TAGGING.txt: Updated with imperial to metric conversions.
1361
1362         * src/Makefile: Added visualiser.c.
1363
1364         * src/filedumper.c: Now used for data visualisation and statistics.
1365
1366         * src/visualiser.h, src/visualiser.c: New file.
1367
1368 2009-06-05  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1369
1370         * src/osmparser.c:
1371         Improve parsing of imperial units (mph, feet & inches).
1372
1373 2009-06-03  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1374
1375         * src/nodesx.c:
1376         Print an error message and exit if a node cannot be found.
1377
1378 2009-05-31  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1379
1380         * src/ways.c, src/ways.h, src/waysx.c, src/waysx.h:
1381         Move function from waysx.c to ways.c.
1382
1383 2009-05-29  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1384
1385         * doc/USAGE.txt:
1386         Update usage information with new options and copyright.txt usage.
1387
1388         * src/nodes.c, src/nodes.h, src/router.c:
1389         Make sure that the chosen "nearest point" is a highway that the profile allows.
1390
1391 2009-05-23  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1392
1393         * src/profiles.c:
1394         Change the default profile; horses are slower, bicycles may be allowed on
1395         footways (and similar).
1396
1397 2009-05-15  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1398
1399         * src/files.c, src/output.c:
1400         Error checking on opening files (to read/write data and to write output).
1401
1402 2009-05-14  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1403
1404         * src/output.c, src/results.c, src/router.c, src/segments.c, src/segmentsx.c, src/superx.c,
1405         src/types.h, src/nodes.c, src/nodesx.c, src/optimiser.c:
1406         Replace ~0 or 0 with NO_NODE value for "no node" condition.
1407
1408 2009-05-13  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1409
1410         * src/output.c:
1411         Remove one more NODE macro and fix an output formatting error.
1412
1413         * src/nodes.c, src/nodes.h, src/optimiser.c, src/output.c, src/router.c:
1414         Remove some node macros, change some node function arguments.
1415
1416         * src/optimiser.c, src/profiles.c, src/profiles.h:
1417         Move some common code into the profile.
1418
1419         * src/superx.c: Remove distance and duration from Result structure.
1420
1421         * src/output.c: Better junction detection.
1422
1423         * src/optimiser.c, src/results.c, src/results.h:
1424         Remove distance and duration from Result structure.
1425
1426 2009-05-09  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1427
1428         * src/output.c:
1429         Add better junction detection for deciding on route waypoints.
1430
1431 2009-05-06  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1432
1433         * src/optimiser.c, src/profiles.c, src/profiles.h, src/types.h:
1434         Route using preferences for each highway.
1435
1436         * src/router.c: Print out longitude then latitude.
1437
1438 2009-04-30  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1439
1440         * src/results.h, src/router.c, src/superx.c, src/types.h, src/optimiser.c, src/osmparser.c,
1441         src/planetsplitter.c, src/profiles.c, src/profiles.h, src/results.c:
1442         First attempt at preferences for highways - uses integer arithmetic and doesn't
1443         work well.
1444
1445 2009-04-27  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1446
1447         * src/functions.h, src/optimiser.c, src/output.c, src/results.c, src/results.h, src/router.c:
1448         Allow generating a route with intermediate waypoints.
1449
1450 2009-04-24  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1451
1452         * src/functions.h, src/output.c, src/router.c:
1453         Split the output functions into separate head/body/tail.
1454         Read in an optional copyright.txt file and include contents in output.
1455
1456 2009-04-23  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1457
1458         * src/profiles.c: Improve Javascript and perl print out.
1459
1460         * src/filedumper.c, src/files.c, src/functions.h, src/planetsplitter.c, src/router.c:
1461         Move the filename generation to a new function.
1462
1463 2009-04-22  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1464
1465         * src/Makefile, src/functions.h, src/optimiser.c:
1466         Split the function to print the output into a new file.
1467
1468         * src/output.c: New file.
1469
1470 2009-04-15  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1471
1472         * src/osmparser.c:
1473         Fix for parsing nodes from XML (no effect on results).
1474
1475 2009-04-12  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1476
1477         * doc/USAGE.txt, src/optimiser.c:
1478         Create a GPX route as well as a track.
1479
1480         * src/ways.c: Changed the license to Affero GPLv3.
1481
1482 2009-04-10  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1483
1484         * src/optimiser.c:
1485         Add a waypoint to the GPX file for the start and finish points.
1486
1487         * doc/USAGE.txt:
1488         Include more information about the output file formats.
1489
1490 2009-04-08  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1491
1492         Version 1.0 released
1493
1494 2009-04-08  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1495
1496         * Makefile: New file.
1497
1498         * src/Makefile: Fix dependency file generation.
1499
1500         * doc/USAGE.txt, doc/TAGGING.txt, doc/README.txt, doc/INSTALL.txt, doc/ALGORITHM.txt:
1501         New file.
1502
1503         * src/Makefile, src/filedumper.c, src/files.c, src/functions.h, src/nodes.c, src/nodes.h,
1504         src/nodesx.c, src/nodesx.h, src/optimiser.c, src/osmparser.c, src/planetsplitter.c,
1505         src/profiles.c, src/profiles.h, src/results.c, src/results.h, src/router.c, src/segments.c,
1506         src/segments.h, src/segmentsx.c, src/segmentsx.h, src/superx.c, src/superx.h, src/types.h,
1507         src/ways.h, src/waysx.c, src/waysx.h:
1508         Changed the license to Affero GPLv3.
1509
1510 2009-04-07  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1511
1512         * src/planetsplitter.c: Remove the --help-profile command line option.
1513
1514 2009-03-28  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1515
1516         * src/optimiser.c:
1517         Fix file headers (again) and fix segment distance/duration for abbreviated text
1518         output.
1519
1520 2009-03-24  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1521
1522         * src/osmparser.c, src/profiles.c, src/types.h, src/ways.c:
1523         Added highway=path; defaults to foot=yes but also is defaulted for bicycle and
1524         horse transport.
1525
1526 2009-03-23  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1527
1528         * src/optimiser.c: Fixed the header in the output text files.
1529
1530         * src/osmparser.c:
1531         Add parsing for *=designated allowing passage along a highway.
1532
1533         * src/profiles.h, src/router.c, src/profiles.c:
1534         Add a function to output default profiles as perl data structures.
1535
1536 2009-03-21  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1537
1538         * src/nodesx.c:
1539         Handle duplicated nodes (e.g. from concatenated input files).
1540
1541         * src/optimiser.c: Add a header to the output text files.
1542
1543 2009-03-07  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1544
1545         * src/optimiser.c:
1546         Renamed the *.txt output to *-all.txt and added a new shorted *.txt output.
1547
1548         * src/router.c: Renamed the --no-print option to --no-output.
1549
1550 2009-03-04  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1551
1552         * src/nodes.c: Fix bug with finding nearest node.
1553
1554 2009-03-03  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1555
1556         * src/superx.c: Fix the merging of super-segments.
1557
1558 2009-03-01  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1559
1560         * src/profiles.c, src/profiles.h:
1561         Added more limits (weight, height, width, length).
1562
1563         * src/segments.c: Use the lower speed from the profile and the way.
1564
1565         * src/osmparser.c: Added more limits (weight, height, width, length).
1566         Added highway=living_street and highway=services.
1567
1568         * src/ways.c, src/ways.h, src/optimiser.c, src/router.c, src/segmentsx.c, src/superx.c,
1569         src/types.h:
1570         Added more limits (weight, height, width, length).
1571
1572         * src/waysx.c, src/waysx.h:
1573         Added a function to test if two ways are the same.
1574
1575 2009-02-28  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1576
1577         * src/nodesx.c:
1578         Round the node location to avoid if falling into the wrong bin.
1579
1580         * src/nodesx.c, src/planetsplitter.c, src/segmentsx.c, src/waysx.c:
1581         Move print statements from planetsplitter into individual functions.
1582
1583         * src/Makefile: Compile with optimisation and no profiling.
1584
1585         * src/profiles.c, src/router.c:
1586         Add new command line options to make it more CGI friendly.
1587
1588 2009-02-27  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1589
1590         * src/profiles.c, src/profiles.h, src/router.c:
1591         Print out Javascript code containing the profiles.
1592
1593 2009-02-24  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1594
1595         * src/segmentsx.h, src/superx.c, src/nodesx.c, src/segments.c, src/segments.h,
1596         src/segmentsx.c:
1597         Remove segment->next1 since it always points at the next segment or nowhere.
1598
1599         * src/profiles.c: Remove track from valid types for most transports.
1600
1601 2009-02-15  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1602
1603         * src/functions.h, src/optimiser.c, src/router.c:
1604         Change some function names.
1605
1606         * src/osmparser.c: Add in tests for motorcar=1 etc.
1607
1608         * src/nodes.c, src/nodes.h, src/router.c:
1609         The search to find a node given the lat/long now searches harder.
1610
1611         * src/optimiser.c: Better test for failing to find a route.
1612
1613         * src/router.c: Change --only-super to --super.
1614
1615         * src/nodesx.c, src/optimiser.c, src/osmparser.c, src/router.c, src/segments.c,
1616         src/segmentsx.c, src/types.h, src/nodes.c:
1617         Store radians rather than degrees.
1618
1619         * src/segments.c, src/segmentsx.c:
1620         Change to sinf(), cosf(), sqrtf(), asinf() functions.
1621
1622         * src/optimiser.c:
1623         Set the sortby parameter to the minimum distance/duration consistent with the
1624         travelled distance/duration and the remaining straight line distance with the
1625         fastest possible speed.
1626
1627         * src/filedumper.c, src/nodes.c, src/nodes.h, src/nodesx.c, src/types.h:
1628         Add macros for handling lat/long to bin conversions.
1629
1630         * src/osmparser.c: Handle oneway=1 and oneway=-1.
1631
1632 2009-02-10  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1633
1634         * src/results.c, src/results.h:
1635         Added a new 'sortby' entry to the Result.
1636         Changed node_t to index_t.
1637
1638         * src/router.c: Changed node_t to index_t.
1639
1640         * src/nodes.c, src/segments.c, src/segments.h:
1641         Change the Distance() function to return distance_t.
1642
1643 2009-02-08  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1644
1645         * src/optimiser.c, src/results.c, src/results.h, src/router.c, src/superx.c:
1646         Calculate quickest or shortest, not both.
1647
1648         * src/optimiser.c, src/profiles.c, src/router.c:
1649         Give appropriate error messages if start or end of route are not possible.
1650
1651 2009-02-07  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1652
1653         * src/results.c:
1654         Slight speedup by doing a linear search when looking up results and not storing
1655         in sorted order.
1656
1657         * src/superx.h, src/superx.c, src/waysx.h, src/waysx.c, src/segmentsx.h, src/segmentsx.c,
1658         src/nodesx.h, src/nodesx.c:
1659         New file.
1660
1661         * src/ways.h, src/Makefile, src/filedumper.c, src/functions.h, src/nodes.c, src/nodes.h,
1662         src/optimiser.c, src/osmparser.c, src/planetsplitter.c, src/router.c, src/segments.c,
1663         src/segments.h, src/types.h, src/ways.c:
1664         Split the extended data types from the normal data types.
1665
1666         * src/nodes.c: Return NULL if the node cannot be found.
1667
1668         * src/Makefile, src/filedumper.c, src/optimiser.c, src/router.c:
1669         Add new command line options.
1670
1671         * src/supersegments.c: Fix some status messages.
1672
1673         * src/optimiser.c, src/types.h: Routing works with super-nodes now.
1674
1675 2009-02-06  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1676
1677         * src/ways.c, src/segments.c, src/segments.h, src/supersegments.c, src/types.h, src/nodes.c,
1678         src/nodes.h, src/optimiser.c, src/osmparser.c, src/planetsplitter.c, src/functions.h:
1679         Segments now not duplicated in database.
1680         Routing with all nodes works, not with super-nodes.
1681
1682 2009-02-04  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1683
1684         * src/router.c: Fix usage output.
1685
1686         * src/ways.c, src/ways.h: Only sort once, don't store the index.
1687
1688         * src/planetsplitter.c, src/router.c:
1689         Use '--*' command line arguments, not '-*'.
1690
1691         * src/nodes.c, src/router.c, src/segments.c, src/ways.c:
1692         Make sure that nodes, segments and ways could be loaded.
1693
1694         * src/nodes.h, src/optimiser.c, src/router.c, src/segments.c, src/segments.h,
1695         src/supersegments.c, src/types.h, src/filedumper.c, src/nodes.c:
1696         Sort the nodes geographically and take coordinates as command line arguments.
1697
1698 2009-02-02  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1699
1700         * src/ways.c, src/ways.h, src/nodes.c, src/nodes.h, src/osmparser.c, src/segments.c,
1701         src/segments.h, src/supersegments.c, src/types.h:
1702         More variable and function name changes.
1703
1704 2009-02-01  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1705
1706         * src/profiles.c, src/router.c, src/segments.c, src/segments.h, src/supersegments.c,
1707         src/ways.c, src/ways.h, src/files.c, src/functions.h, src/nodes.c, src/nodes.h,
1708         src/optimiser.c, src/osmparser.c, src/planetsplitter.c, src/filedumper.c:
1709         Rename some variable types.
1710
1711 2009-01-31  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1712
1713         * src/segments.c, src/segments.h, src/supersegments.c, src/types.h, src/ways.c, src/ways.h,
1714         src/functions.h, src/nodes.c, src/nodes.h, src/optimiser.c, src/planetsplitter.c,
1715         src/profiles.h, src/router.c:
1716         Intermediate version during code cleanup.
1717
1718         * src/optimiser.c, src/planetsplitter.c, src/router.c, src/segments.c, src/segments.h,
1719         src/functions.h, src/nodes.h:
1720         Intermediate checkin, routing now working.
1721
1722         * src/Makefile:
1723         Don't print out anything when creating the dependencies directory.
1724
1725         * src/planetsplitter.c, src/router.c:
1726         Add command line options to specify the directory and filename prefix.
1727
1728 2009-01-30  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1729
1730         * src/results.c, src/planetsplitter.c: Remove gcc warning.
1731
1732         * src/Makefile: Move dependencies to subdir.
1733
1734         * src/osmparser.c: Remove gcc warning.
1735
1736 2009-01-29  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1737
1738         * src/functions.h, src/nodes.c, src/nodes.h, src/optimiser.c, src/planetsplitter.c,
1739         src/router.c, src/segments.c, src/segments.h, src/supersegments.c:
1740         Intermediate version while transitioning data format for nodes and segments.
1741
1742 2009-01-28  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1743
1744         * src/Makefile, src/functions.h, src/nodes.c, src/nodes.h, src/optimiser.c, src/osmparser.c,
1745         src/planetsplitter.c, src/segments.c, src/segments.h, src/supersegments.c, src/ways.c,
1746         src/ways.h:
1747         Intermediate version while transitioning data format for nodes and segments.
1748
1749 2009-01-27  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1750
1751         * src/Makefile, src/functions.h, src/nodes.c, src/nodes.h, src/optimiser.c,
1752         src/planetsplitter.c, src/router.c, src/segments.c, src/segments.h, src/supersegments.c,
1753         src/ways.c, src/ways.h:
1754         Intermediate version while transitioning data format for nodes and segments.
1755
1756 2009-01-26  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1757
1758         * src/osmparser.c, src/planetsplitter.c, src/segments.c, src/segments.h,
1759         src/supersegments.c, src/ways.c, src/ways.h, src/filedumper.c, src/files.c, src/functions.h,
1760         src/optimiser.c:
1761         Change Segment to contain index of way not its real ID.
1762         Don't store the real way ID to save space.
1763
1764 2009-01-25  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1765
1766         * src/segments.c, src/segments.h:
1767         Slightly speed up the Duration calculation by changing the macro.
1768
1769         * src/osmparser.c, src/profiles.c, src/ways.c, src/ways.h:
1770         Fix misspelling of Unclassified.
1771
1772         * src/planetsplitter.c, src/segments.c, src/segments.h, src/supersegments.c, src/ways.h,
1773         src/optimiser.c:
1774         Change the segment->way so that it contains the index of the way, not the id.
1775
1776         * src/profiles.c, src/profiles.h: New file.
1777
1778         * src/ways.c, src/ways.h, src/Makefile, src/functions.h, src/optimiser.c, src/osmparser.c,
1779         src/planetsplitter.c, src/router.c, src/segments.c, src/segments.h:
1780         Added profiles to define speed and allowed highways.
1781         Added new options to planetsplitter and router to use the profiles.
1782
1783 2009-01-24  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1784
1785         * src/optimiser.c: Changed some variable names for clarity.
1786
1787         * src/planetsplitter.c: Print more information about progress.
1788         Don't quit until 99.9% unchanged.
1789
1790         * src/optimiser.c, src/results.c, src/results.h, src/supersegments.c:
1791         Change the Results structure so that the real data doesn't need to be realloc().
1792         Add functions to access the first and subsequent elements of the Results structure.
1793
1794 2009-01-23  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1795
1796         * src/osmparser.c, src/planetsplitter.c:
1797         Fix bug with not specifying a method of transport.
1798
1799         * src/optimiser.c, src/router.c: Proper check that it was unroutable.
1800
1801         * src/functions.h, src/optimiser.c, src/planetsplitter.c, src/supersegments.c:
1802         Remove "iteration" as function argument.
1803
1804         * src/functions.h, src/optimiser.c, src/osmparser.c, src/planetsplitter.c, src/router.c,
1805         src/ways.c, src/ways.h:
1806         Add command line options to planetsplitter and router.
1807         Select transport type (must be allowed on way for parsing).
1808         Select highway types (ignore when parsing or routing).
1809
1810         * src/ways.h, src/functions.h, src/optimiser.c, src/osmparser.c, src/router.c,
1811         src/segments.c, src/segments.h, src/ways.c:
1812         Add enumerated type Transport.
1813         Replace variables of AllowType with Transport where more appropriate.
1814         Replace AllowType with Allowed.
1815         Replace WayType with Highway.
1816
1817         * src/osmparser.c: Only include ways that are not Way_Unknown type.
1818
1819         * src/osmparser.c: Include permissive access.
1820
1821         * src/functions.h, src/optimiser.c, src/results.c, src/results.h, src/router.c:
1822         Create a large or small results structure depending on how many nodes are
1823         expected.
1824
1825 2009-01-22  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1826
1827         * src/results.h: Increase the number of bins to 64k.
1828
1829         * src/optimiser.c, src/osmparser.c, src/segments.c, src/segments.h, src/supersegments.c:
1830         Remove INVALID_DISTANCE and INVALID_DURATION.
1831
1832         * src/optimiser.c, src/osmparser.c, src/supersegments.c, src/ways.c, src/ways.h:
1833         Removed the Way_TYPE() macro.
1834
1835         * src/results.c, src/results.h, src/optimiser.c:
1836         Move queue functions into results.c.
1837
1838         * src/filedumper.c, src/nodes.c, src/nodes.h, src/planetsplitter.c, src/router.c:
1839         Nodes, Segments, Ways - Nodes, Segments, Ways.
1840
1841         * src/filedumper.c, src/nodes.c, src/nodes.h, src/segments.c, src/segments.h, src/ways.c,
1842         src/ways.h:
1843         Remove the choice of indexed or non-indexed data structures.
1844
1845 2009-01-21  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1846
1847         * src/optimiser.c:
1848         Various small speed-ups including not-reversing direction.
1849
1850         * src/functions.h, src/optimiser.c, src/osmparser.c, src/router.c, src/segments.c,
1851         src/segments.h, src/supersegments.c, src/ways.c, src/ways.h:
1852         Calculate way speeds at routing time.
1853
1854         * src/supersegments.c:
1855         Add reverse-oneway segments when creating supernodes.
1856         Check incoming oneway streets as well as outgoing ones.
1857
1858         * src/osmparser.c: Don't change speed on roundabouts.
1859
1860 2009-01-20  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1861
1862         * src/planetsplitter.c:
1863         Add command line options for skipping parsing and iteration limit.
1864
1865         * src/optimiser.c, src/osmparser.c, src/segments.c, src/segments.h, src/supersegments.c:
1866         Remove duration from segment, calculate duration depending on speed.
1867
1868 2009-01-19  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1869
1870         * src/functions.h, src/optimiser.c, src/planetsplitter.c, src/supersegments.c:
1871         Iteratively calculate the super-segments.
1872
1873         * src/ways.h: Redefine Way_TYPE() to include one-way status.
1874
1875 2009-01-18  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1876
1877         * src/optimiser.c, src/supersegments.c:
1878         Fix problems with way-type matching and duplicated/missing super-segments.
1879
1880         * src/functions.h, src/optimiser.c, src/router.c: Print out a GPX file.
1881
1882         * src/optimiser.c, src/filedumper.c, src/functions.h, src/planetsplitter.c, src/router.c,
1883         src/segments.c, src/segments.h, src/supersegments.c, src/ways.c, src/ways.h:
1884         Added Super-Ways and allow user to select method of transport.
1885
1886         * src/segments.c: Fix for changes made to ways.
1887
1888         * src/supersegments.c:
1889         Ensure that supernodes are inserted wherever the way type changes.
1890
1891         * src/osmparser.c: Fill in the extra way information.
1892
1893         * src/ways.h:
1894         Store more information about a way (allowed modes of transport).
1895
1896         * src/filedumper.c: Fix output printing.
1897
1898         * src/router.c: Print an error if no route can be found.
1899
1900         * src/optimiser.c:
1901         Fix bugs when start and/or finish nodes are supernodes.
1902
1903 2009-01-17  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1904
1905         * src/Makefile: Add the option to create assembler output files.
1906
1907         * src/optimiser.c, src/results.c, src/results.h, src/supersegments.c:
1908         Change the contents of the results data structure.
1909
1910         * src/router.c: Added an option to not print the result.
1911
1912 2009-01-16  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1913
1914         * src/optimiser.c, src/results.h, src/router.c:
1915         Speed optimisation by changing the contents of the Results structure.
1916
1917         * src/optimiser.c:
1918         Don't bother calculating the distance to go, it takes too long.
1919
1920 2009-01-14  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1921
1922         * src/planetsplitter.c: Remove bad segments and non-way nodes.
1923
1924         * src/nodes.c, src/nodes.h: Remove nodes which are not in highways.
1925         Fix the sorting and create indexes after sorting, not before saving.
1926
1927         * src/segments.c, src/segments.h:
1928         Remove bad segments (repeated consecutive nodes and duplicate segments).
1929         Fix the sorting and create indexes after sorting, not before saving.
1930
1931         * src/supersegments.c: Use invalid distances properly.
1932
1933         * src/ways.c:
1934         Fix the sort algorithm and update the indexes after sorting, not before saving.
1935
1936         * src/optimiser.c: Fix the bug with merging the results.
1937         Fix the bug with not clearing the results structure properly.
1938
1939         * src/osmparser.c:
1940         Add segments that correspond to the wrong way along one-way routes with an
1941         invalid distance.
1942
1943 2009-01-11  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1944
1945         * src/functions.h, src/optimiser.c, src/router.c:
1946         Routes correctly using super-nodes (not Lands End to John O'Groats though).
1947
1948         * src/filedumper.c, src/functions.h, src/optimiser.c, src/planetsplitter.c, src/router.c,
1949         src/segments.h, src/supersegments.c:
1950         Replace Junction with SuperNode.
1951
1952         * src/nodes.c, src/nodes.h, src/segments.h, src/ways.c, src/ways.h:
1953         Some small changes to the nodes, segments and ways functions.
1954
1955         * src/Makefile, src/filedumper.c, src/functions.h, src/optimiser.c, src/planetsplitter.c,
1956         src/results.h, src/router.c, src/segments.c, src/segments.h, src/supersegments.c:
1957         Working version with supersegments and junctions.
1958
1959 2009-01-10  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1960
1961         * src/ways.c, src/ways.h, src/osmparser.c, src/segments.c:
1962         Store more information about ways.
1963
1964         * src/results.h, src/results.c: New file.
1965
1966         * src/Makefile, src/optimiser.c:
1967         Move the results data type into new files.
1968
1969         * src/nodes.h, src/segments.h, src/ways.h:
1970         Increase the increment for the indexed array case.
1971
1972         * src/ways.h, src/Makefile, src/filedumper.c, src/functions.h, src/nodes.c, src/nodes.h,
1973         src/optimiser.c, src/osmparser.c, src/planetsplitter.c, src/router.c, src/segments.c,
1974         src/segments.h, src/supersegments.c, src/ways.c:
1975         About to add the super-segment functionality using Segments data type to hold
1976         them.
1977
1978         * src/functions.h, src/types.h:
1979         Changed after nodes, ways and segment changes.
1980
1981 2009-01-09  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1982
1983         * src/segments.h: New file.
1984
1985         * src/segments.c:
1986         Changed the format of the segments data type to match the nodes.
1987
1988         * src/nodes.h: Enable indexed arrays.
1989
1990         * src/ways.h: New file.
1991
1992         * src/ways.c:
1993         Changed the format of the ways data type to match the nodes.
1994
1995         * src/nodes.c, src/nodes.h:
1996         Changed the format of the nodes data type again.
1997
1998 2009-01-07  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
1999
2000         * src/nodes.h: New file.
2001
2002         * src/nodes.c: Lots of modifications:
2003         Two data structures - in memory (pointers) and in file (array).
2004         Data is hashed into multiple bins.
2005         Each function takes a nodes structure as an argument.
2006
2007 2009-01-06  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
2008
2009         * src/supersegments.c: New file.
2010
2011         * src/Makefile, src/filedumper.c, src/functions.h, src/planetsplitter.c, src/types.h:
2012         Added SuperSegments data type, but it does nothing yet.
2013
2014         * src/optimiser.c:
2015         Tried to optimise the Queue data type.  It was slower than the original.
2016
2017 2009-01-05  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
2018
2019         * src/filedumper.c: Print out the longest segment.
2020
2021         * src/optimiser.c:
2022         Some optimisations.  Increase the number of result bins and change
2023         find_insert_result() into insert_result().
2024
2025 2009-01-04  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
2026
2027         * src/optimiser.c: Introduced some new data types to simplify the code.
2028
2029         * src/filedumper.c: Print more useful information.
2030
2031         * src/segments.c, src/types.h, src/ways.c, src/filedumper.c, src/functions.h, src/nodes.c,
2032         src/optimiser.c, src/osmparser.c, src/planetsplitter.c:
2033         Changed the node, way and segment functions and data types.
2034         Removed 'alloced', shortened the prototype array.
2035         Remove the automatic sorting of the data.
2036         Added assert statements.
2037
2038 2009-01-03  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
2039
2040         * src/ways.c: New file.
2041
2042         * src/router.c, src/types.h, src/Makefile, src/filedumper.c, src/functions.h,
2043         src/optimiser.c, src/osmparser.c, src/planetsplitter.c:
2044         Added the ways to the output.
2045
2046 2009-01-02  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
2047
2048         * src/optimiser.c, src/osmparser.c, src/segments.c, src/types.h:
2049         Added macros to convert between distance/km and duration/hours/minutes.
2050         Shortened the Segment data type with shorter distances and durations.
2051
2052 2009-01-01  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
2053
2054         * src/functions.h, src/nodes.c, src/planetsplitter.c, src/segments.c, src/types.h:
2055         Remove the functions to initialise the node and segment arrays.
2056
2057         * src/optimiser.c, src/router.c, src/Makefile: Print out the results.
2058
2059 2008-12-31  Andrew M. Bishop  <amb@gedanken.demon.co.uk>
2060
2061         * src/types.h, src/segments.c, src/router.c, src/planetsplitter.c, src/osmparser.c,
2062         src/optimiser.c, src/nodes.c, src/functions.h, src/files.c, src/filedumper.c, src/Makefile:
2063         New file.
2064