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