source: git/NEWS @ 111de75

main
Last change on this file since 111de75 was dce842e, checked in by Olly Betts <olly@…>, 42 hours ago

NEWS: Update draft entry

  • Property mode set to 100644
File size: 204.8 KB
Line 
1up to: 7a331acfc9cd1242d28e6ccaa8fb528badf5d7fb
2
3Changes in 1.4.21 (2026-05-??):
4
5* cavern:
6
7  + Fix missing reports of unconnected survey stations.  We aim to report at
8    least one station in every unconnected piece of survey.  1.4.10 added code
9    to handle when a piece had been simplified to only anonymous stations, but
10    this was buggy and was only checking the first entry in the removed
11    traverse list.  We now check the full list, and if we somehow fail to find
12    a neighbouring named station, we now report the anonymous station (we give
13    the filename and line number which is enough context by itself).  Reported
14    by Paweł Gogolak.
15
16  + `*entrance` now also suppresses unused fixed point warnings when it appears
17    before the `*fix` (previously this only worked for `*entrance` after
18    `*fix`).
19
20  + `*fix` with SDs now sets the "fixed" flag on the station in the .3d file.
21
22  + Pick better 3d file separator for Walls data (previously cavern would pick
23    `.` for the separator in a pure Walls dataset, even if it was used in
24    station names).  Walls uses `:` as a prefix separator, so now cavern takes
25    into account which characters are allowed in Walls station names when
26    picking the separator to use in the .3d file.  For a pure Walls dataset, it
27    will pick `:`, so Walls station names in the .3d file should match the
28    names as shown in Walls.  If a dataset mixes data in Walls format with
29    Survex and/or Compass data, then it's possible `:` is used in a Survex or
30    Compass station name - if so a different separator will be chosen.
31
32  + The Walls manual says to represent underwater data using the combination of
33    `TAPE=SS` with `ORDER=DA` or `ORDER=AD`, so we now map this to Survex's
34    diving style.  Issue highlighted by a dataset from Darek Lubomski.
35
36  + In Walls data, downgrade the "Unknown command" error to a warning for some
37    invalid directives which Walls quietly accepts.  Issue highlighted by a
38    dataset from Darek Lubomski.
39
40  + In Walls data, `#note` and `#flags` are meant to suppress unused fixed
41    point warnings, but only did if they came after the `#fix`.  Also `#flags`
42    without any flags didn't suppress the warning but now does.
43
44  + In Walls data, the word `fix` in `#flags` no longer sets the "fixed" flag
45    in the .3d file - we now only set it for stations used in `#fix`.  This
46    seems a more logical approach, since `#flags` is just free-form text which
47    Walls itself doesn't ascribe particular semantics to.  (The word `entrance`
48    in `#flags` still sets the "entrance" flag since Walls lacks a way to
49    explicitly mark entrances.)
50
51  + Check value after `TAPE=` in Walls data and give an error if it's not
52    valid.
53
54  + In Walls data, we now reject multi-component readings with a decimal point
55    in anything but the final component.  Some examples of invalid readings
56    which now give an error with cavern are `12.5i3`. `12.5:29`, `12.5:29:30`
57    and `12:29.5:30`.
58
59* aven/survexport:
60
61  + Allow exporting/not exporting anonymous stations.  The default is chosen as
62    most appropriate for each export format.
63
64  + Fix memory leak in PLT export.
65
66  + Fix memory leak and speed up SVG export.
67
68* (Microsoft Windows version): Try to ensure output files are fully written to
69  disk before we close them.  Should fix #147, reported by Philip Schuchardt.
70
71* Documentation:
72
73  + Clarify purpose of `*infer exports`.  Highlighted by Philip Sargent.
74
75  + Clarify `*infer plumbs` works for any angle units, not just degrees.
76
77  + Say "directive" instead of "command" in Walls docs since this is the
78    terminology Walls uses.
79
80  + Document Walls filename case mismatch issue.  Issue highlighted by a
81    dataset from Darek Lubomski.
82
83  + Document that the last official release of Walls uses an old IGRF version.
84
85  + Improve section on submitting documentation changes.
86
87  + Minor improvements to wording.
88
89  + HACKING.htm: autoconf 2.59 is the current minimum.
90
91* Test suite: Add test coverage for Walls compass/clino in mils.
92
93* Minor improvements to French translation.
94
95* Merge updates to Polish translation from Paweł Gogolak.
96
97* Merge updates to Russian translation from Vasily Vl. Suhachev.
98
99* (Linux version): survex.spec: We no longer provide this.  It doesn't work
100  with current Fedora because some dependencies have been renamed, which
101  suggests nobody is regularly using it, which isn't a surprise as there's
102  now a Fedora package of Survex.  Reported by Bill Gee.
103
104* Fix warnings about old-style parameter lists in the imported getopt code.
105
106Changes in 1.4.20 (2026-03-04):
107
108* aven: The viewing volume now includes the vertical extent of terrain which
109  fixes problems with the terrain being clipped when there's an extreme
110  vertical difference between the terrain and the cave.  Hopefully fixes #148,
111  reported by Chris Curry.
112
113* aven: Improve handling of the scale when reloading an updated version of the
114  .3d file already being viewed.
115
116* aven: Add missing shortcuts to Orientation menu and "Reverse Direction" menu
117  item.  Reported by echarlie's friend.
118
119* aven: Where possible use L for "Elevation" menu accelerator, which matches
120  the shortcut key.
121
122* cavern: Improve handling of Walls percentage gradient.  Support explicit
123  percentage override ('p' suffix) and fix handling of overriding percentage
124  gradient to specify a plumb.  Reported by echarlie on #survex.
125
126* cavern: Support d:m:s for Walls bearings and gradients.  Reported by echarlie
127  on #survex.
128
129* cavern: Add `gps` as alias for `position` team role.  See:
130  https://github.com/therion/therion/issues/709
131
132* cavern: Warn for no blank after token in *cartesian (another case related to
133  #135).
134
135* manual: Document N, S, E and W shortcut keys for aven.
136
137* manual: Mark up codes and tokens in tables which avoids them getting
138  word-wrapped and hyphenated.  It also means they now get rendered in the
139  tables the same way they are referred to in the text.
140
141* manual: Separate each block of *instrument examples.
142
143* manual: Consistently document versions where features were deprecated.
144
145* Eliminate out-of-date postal address from licensing information.  Direct
146  people who somehow didn't receive the licence text to a copy on the FSF
147  website instead.
148
149Changes in 1.4.19 (2025-12-17):
150
151* aven/survexport: Rework PLT export to use 2 character escapes for spaces
152  and other characters which aren't valid in Compass station names.  We were
153  using 3 character escapes, but that's unhelpful since Compass has a 12
154  character station name limit.
155
156* cavern: The syntax of *instrument commands is now checked and a warning
157  issued for problems.  The information in the command is still not yet used.
158
159* cavern: Improve description of --quiet option.  Reported by Wookey.
160
161* (Microsoft Windows version): The installer now always updates DLLs it
162  installs rather than skipping DLLs which declare the same version number.
163  This avoids problems when DLLs change in an upwardly but not downwardly
164  compatible way but keep the same version number.  It also means downgrading
165  now gives an install more like installing the older version from scratch
166  would.  Our DLLs are all private and installed into our own install directory
167  so there are no concerns with breaking other installed software.  Fixes #145.
168  Reported by Footleg and Juan Corrin.
169
170* Fill in some missing Czech translations.
171
172* Update unofficial Inno Setup translations for the installer.
173
174* We now require at least FFmpeg >= 3.2 to build Survex.  This version was
175  released in 2016 so should be easily available everywhere now.
176
177* (Microsoft Windows version): Drop workaround for wx-config --rescomp not
178  working as this has now been fixed in the mingw package of wxWidgets.
179
180* Test suite:
181
182  + Add test coverage for `*data normal` without `clino`.
183
184Changes in 1.4.18 (2025-11-04):
185
186* aven: Fix "Enter" in search control to zoom to results.  This was broken
187  by the switch to wxSearchCtrl in 1.4.17.
188
189* aven: Fix "Find stations" search box width with wxWidgets >= 3.2.7.  Patch
190  https://github.com/ojwb/survex/pull/15 from Thomas Holder.
191
192* aven: (Microsoft Windows version): Fix sizing of indicators (scalebar,
193  compass, clino, colour key) on HiDPI monitors.  Fixes #144, reported by Juan
194  Corrin.
195
196* aven/survexport: Set UTM zone and datum in exported Compass PLT.
197
198* cavern: Avoid duplicate errors/warnings with unconnected data.  Since 1.4.10,
199  unconnected data is only a warning but that resulted in us running some
200  checks on the survey tree twice, which could result in duplicate
201  errors/warnings.
202
203* cavern: Fix parsing of hex digits in *set.  Hex digits a-f were incorrectly
204  being handled as 0-5, so 0x0a was byte 0 not byte 10.
205
206* cavern: We now track the column as well as file:line where a station or
207  survey name was used, so diagnostics which use these locations now report
208  a column number too.
209
210* cavern: Show context if proj can't convert coords.  We only do this for .svx
211  files currently as it is more complex for Compass and Walls data.
212
213* cavern: Fix reported column for error for `-` for Walls tape field.
214  In this context, Walls requires 2 or more `-` to indicate an omitted field.
215
216* cavern: Compass MAK file parsing improvements:
217
218  + Comments are now skipped.  Previously a commented-out MAK file command
219    would still be interpreted by cavern, which was incorrect.
220
221  + Whitespace handling has been adjusted to more closely match Compass.
222
223  + Unknown commands are now warned about.  Compass seems to quietly ignore
224    unknown commands, but it seems helpful for cavern to report them as it
225    will help identify any bugs in Survex's parsing of MAK files, and any
226    new or undocumented MAK file commands which we don't support.  It can also
227    help detect typos in data entry.
228
229  + We now skip to the closing `;` for unknown commands and commands we
230    ignore as not relevant to us, whereas previously we'd just skip the
231    initial character which gives the type of command and then look for
232    another command.  This doesn't seem to make any difference in practice as
233    none of these commands appear to be able to contain text which could be
234    interpreted as a different valid Compass MAK file command.
235
236* (Microsoft Windows version): The toolchain we use to build this version
237  seems to have changed in an unhelpful way.  We've got the build working
238  again, but when aven is launched a black window opens first, then the
239  aven window opens over the top.  The black window stays around until
240  aven is closed.  This extra window doesn't really get in the way of using
241  aven, but it's not supposed to be there.  It doesn't seem to be due to a
242  change in the Survex code as the 1.2.17 build doesn't do this, but a
243  rebuild of 1.2.17 with just the minimum of build system changes does.
244  If you have suitable skills help fixing this would be much appreciated.
245
246* (Microsoft Windows version): Use unlocked file I/O if available, like we
247  already do for Unix.  Unlocked file I/O can be much faster in some cases (we
248  don't need the locking as we don't do multithreaded file I/O).
249
250* (Microsoft Windows version): Fix compiler warning in wrapaven.c.
251
252* (Microsoft Windows version): Work around wx-config --rescomp no longer
253  working.  The mingw package of wxWidgets has started to return an empty
254  string here.  We don't support building with MSVC, so hardcoding `windres`
255  here isn't really a problem in practice.
256
257* Manual: Document that *set eol default includes x1A (Ctrl-Z) to provide
258  compatibility with old DOS text files (it always has done but was missing
259  from the documentation).
260
261* Merge updates to Russian translation.
262
263* Add the start of a Czech translation.
264
265* Update unofficial Inno Setup translations for the installer.
266
267* Drop support for wxWidgets < 3.2.  It is starting to become hard to keep
268  everything working with 3.0.0 and the time and effort seems better directed
269  to other things.  The last 3.0.x release was 3.0.5.1, released 2020-05-02.
270  3.2.0 was released 2022-07-06 and it seems everywhere with wxWidgets packages
271  upgraded to 3.2.x some time ago.
272
273* Test suite:
274
275  + cavern.tst: Test more mixed line ending cases.
276
277  + Turn off tests involving aven and survexport on mingw, as we can no longer
278    seem to run these programs during the build.  Rebuilding the last commit
279    that worked now fails, so this is not due to a change in the Survex code.
280    There is no error message, but bash shows exit code 127 which means it
281    failed to run the command.
282
283  + Improve handling of VERBOSE in tests.  Previously VERBOSE showed output
284    from all testcases, even ones which passed.  Now we only show output from
285    testcases which fail for VERBOSE=1.  Other non-empty values of VERBOSE
286    continue to show all output for cavern.tst and smoke.tst, but have the same
287    effect as VERBOSE=1 for other tests.
288
289  + compare.tst: Fix to actually work, support --help, and allow comparing
290    cavern runs which fail.  This script is not run as part of the automated
291    tests but assists manually comparing two versions of cavern on the same
292    data which can be helpful for debugging and during development.
293
294Changes in 1.4.17 (2025-03-20):
295
296* aven: Add support for exaggerating Z.  You can now set a Z scale factor
297  from 0.1 to 10.0 via a new widget on the toolbar.  Fixes #49.
298
299* aven: The cavern log window now chooses foreground and background colours
300  based on the desktop's light mode/dark mode setting.  Previously it
301  used the default window background colour but always used black text, which
302  made it hard to read with a dark desktop theme.  (The wxWidgets API to detect
303  dark mode is new in 3.2, so if built with wxWidgets 3.0 then we assume
304  light mode.)
305
306* aven: The station search feature now uses the standard search
307  widget on GTK 3.6 or later and on macOS.  There's now a placeholder
308  text shown when there's no search to make it clearer what this
309  widget is for.
310
311* aven: There's currently a cavern bug where it can fail to identify all
312  traverses which are not involved in loop closure, which results in the .3d
313  file contains error information for them (unfortunately this seems tricky to
314  fully fix).  This error information is always zero, so as a workaround aven
315  attempts to detect these so that "colour by error" shows them as "not in
316  loop".  This workaround previously only checked for E being zero, but now
317  H and V are both also required to be zero.  This should help avoid some very
318  low error traverses being incorrectly treated as "not in loop", although in
319  practice I've not yet found a real world case where this actually makes a
320  difference.
321
322* aven: Fix the output encoding of `aven --help`, `--version`, etc.
323  Previously these were always encoded as UTF-8 which is usually right
324  on a modern system, but the terminal could be using a different
325  encoding.
326
327* aven: Reduce startup overhead a little when the terminal has a UTF-8
328  locale (which is now the default on most Linux distros).
329
330* cavern: Fix an "assertion failed" error in some situations when
331  equating to a fixed point.  This bug was introduced by changes
332  in 1.4.13.  Fixes #143, reported by Juan Corrin.
333
334* cavern: The syntax of *copyright commands is now checked and a warning
335  issued for problems.  The information in the command is still not yet used.
336
337* cavern: The syntax of *team commands is now checked and a warning
338  issued for problems.  The information in the command is still not yet used.
339
340* cavern: Stop reporting node stats.  These are kind of interesting, but
341  with the widespread use of Disto-X and similar devices which can easily
342  shoot multiple splay legs from each station means the number of larger order
343  nodes has increased and this information is now quite verbose and any utility
344  it had has substantially declined.  If these statistics are still wanted then
345  they could make a reappearance in the future in aven, with splays excluded
346  when counting the number of legs at each station.  Fixes #86, reported by
347  Wookey.
348
349* cavern: Fix wrong "unused fixed point" warning with *solve.
350
351* cavern: Fix double counting of stations which are referenced both before and
352  after *solve.
353
354* cavern: Suppress loop and component counts if *solve is used.  Our component
355  count was often wrong in this case but this looks very hard to fix.  These
356  counts are not vital so better to omit than report wrong values.
357
358* cavern: The "Equating two equal fixed points" warning now lists the
359  stations on the same order as they are in the `.svx` file which
360  seems clearer.
361
362* Speed up reading and writing of .3d files.  The time to read a large .3d file
363  and just count the stations and legs was more than halved by this change.
364
365* Simplify handling of errors loading the messages file.  The error
366  messages for this case are now stored as separate ASCII strings in
367  the executables which reduces the startup overhead a little as we
368  no longer need to scan them and potentially reencode them.
369
370* img library: The img struct's filename_opened member was always NULL when
371  used outside of Survex (and set but never actually used inside of Survex)
372  so it has been removed.  If you are referencing it in your code then instead
373  use the filename you passed to img_open_survey() when opening the file.
374
375* Documentation: Add details of warning about future dates in *date.
376
377* Documentation: Added new manual chapter on the img library.
378
379* Documentation: Improve comments document API in img.h.
380
381* Testsuite: Add proper test coverage for `*ref`.
382
383* Merge updates to Russian translation from Vasily Vl. Suhachev.
384
385* Portability: Eliminate unintended use of a C++17 feature (static_assert
386  with only one argument).
387
388* Portability: Avoid compiler warnings/errors in getopt code by properly
389  declaring getenv().
390
391Changes in 1.4.16 (2025-02-21):
392
393* aven: Improve "Colour by Survey".  Surveys whose names only differ in the
394  final character tended to get visually similar colours (often
395  indistinguishable), but now should get very different colours.  Reported by
396  Eric C. Landgraf and Patrick Warren.
397
398* aven: Add "Find" item to right-click menu on survey tree which triggers a
399  search for the survey or station that was right-clicked on which highlights
400  with a yellow blob on each station, like double-clicking used to before
401  1.2.36.  Requested by Patrick Warren.
402
403* cavern: Fix calculation of convergence which could incorrectly give zero
404  with some PROJ versions < 9.3.0.  Unclear exactly which versions are
405  affected, but seen with PROJ 8.2 and can't affect PROJ >= 9.3.0.  Reported by
406  Eric C. Landgraf.
407
408* cavern: Report approximate true grid convergence range which provides a way
409  to assess if the representative location(s) specified by `*declination auto`
410  are suitable.  Fixes #141, reported by Eric C. Landgraf
411
412* cavern: Support Compass 'C' shot flag.  In Compass this causes flagged legs
413  to not be subject to loop closure.  Survex now sets the SDs of such legs to
414  1mm, so flagged legs can still move slightly during loop closure.  Previously
415  Survex ignore this flag entirely.
416
417* Document Microsoft Windows version requirements.
418
419* Enable SSE2 by default on 32-bit x86.  Intel CPUs without SSE2 were
420  discontinued ~18 years ago so it seems very unlikely anyone is actually still
421  using one for Survex.  We keep hitting testcase failures due to excess
422  precision from 387 FP instructions, and the time spent adjusting testcases to
423  avoid these would be better spent on new features, etc.
424
425* Tighten up charset name parsing a little.
426
427* Merge updates to Russian translation from Vasily Vl. Suhachev.
428
429* Various minor improvements to documentation.
430
431* Various minor improvements to test coverage.
432
433Changes in 1.4.15 (2024-12-24):
434
435* aven: Avoid infinite redraw loop if GDAL gives an error loading geodata to
436  overlay.
437
438* aven: Turn off full-screen mode bodges when running on macOS 10.7 or later.
439  Fixes #110
440
441* aven/survexport: (Microsoft Windows version): Enable GDAL support so you
442  can now overlay geodata (in aven) and export shapefiles.
443
444* cavern: Remove now-bogus assertion which can fire when there's a survey not
445  connected to any fixed points (since 1.4.10 made unconnected data a warning
446  instead of an error).  Reported by Philip Balister.
447
448* (Microsoft Windows version): Strip debug data from .exe and .dll files which
449  reduces the installer size by around 5%.
450
451* Testsuite: Normalise -0.00 in DXF bounds too to avoid possible test failures
452  on x86.
453
454Changes in 1.4.14 (2024-12-11):
455
456* aven/survexport: Add support for exporting shapefiles.  This requires GDAL so
457  currently isn't enabled in the Microsoft Windows build.  Thanks to Eric C.
458  Landgraf for testing.  Fixes #87.
459
460* cavern: If *date with just year is followed by a blank, cavern expects a date
461  range and gives an error if another date doesn't follow.  Bug was introduced
462  in 1.4.13.
463
464* aven/cavern: Use ′ and ″ for feet and inches.
465
466* Documentation: Add some details on how to handle Toporobot "serie" station
467  naming.
468
469* Updates to Bulgarian, Hungarian, Russian and Slovak translations.
470
471* Testsuite: Adjust lollipop testcase to pass on i386 where excess precision
472  was changing which station was reported as the southernmost of multiple
473  candidate stations).
474
475Changes in 1.4.13 (2024-12-01):
476
477* aven:
478
479  + Don't show crosses on anonymous stations since they just clutter up the
480    display (especially for anonymous splays).  Suggested by Andrew Atkinson.
481
482  + Fix 1.4.10 regression in plotting of station names.  Each anonymous station
483    was blocking out a small rectangle which no actual station name could
484    overlap.  Reported by Špela Borko.
485
486  + Reduced start-up time by only initialising GDAL if we have overlays to
487    show.
488
489  + (Microsoft Windows version): Avoid recurring "GDAL support not enabled in
490    this build" message box.  This message is now only shown once if you try to
491    add an overlay.  Reported by Špela Borko.
492
493* cavern:
494
495  + Update to use v14 of the IGRF model for calculating declinations.
496    This was issued in November 2024 and should give slightly more accurate
497    declinations for surveys made since 2015.  Fixes #137.
498
499  + The component count was wrong in some cases, and we calculate the number
500    of loops using this component count, so the loop count would also be wrong
501    by the same amount in these cases.
502
503  + The component count and loop count are now reported when there are
504    unconnected survey stations.
505
506  + *date now supports ISO format dates.  Fixes #96, reported by Milosch.
507
508  + *date now supports date types "surveyed" and "explored" (existing usage
509    without an explicit type is interpreted as "surveyed").
510
511  + If the output directory isn't writable or doesn't exist we would complain
512    that we can't create the .err file - now we try to create the .3d file
513    first so complain about that instead which seems more helpful.  Reported by
514    Eric C. Landgraf.
515
516  + When inventing a fixed point we now avoid picking a fixed point which is
517    only attached to nosurvey legs if there's another option.  The code was
518    already meant to do this but it was buggy and we lacked a testcase for this
519    situation.
520
521  + Survey network reduction now finds some delta-star opportunities which were
522    being overlooked.  This allows more complicated networks to be reduced
523    further so fewer and/or smaller matrices need solving, which is faster.
524
525  + Survey network reduction now handles a "lollipop" with a fixed stick end
526    specially which is a little bit faster.  A more visible consequence is
527    fewer "Solving one equation..." messages when solving a complex survey
528    network.
529
530  + Survey network reduction now makes use of articulating legs to split up the
531    problem a little more, so we will often now solve more but smaller matrices
532    which should be faster.
533
534  + Assigning matrix row numbers now identifies equated stations in a slightly
535    more efficient way.
536
537* dump3d: Provide a way to get ISO format dates output.
538
539* Documentation:
540
541  + Improve documentation of *date in the manual.  When a partial date is
542    specified (just a year, or a year and month only) the documentation claimed
543    the centre of that year or month is used but actually this case is treated
544    as a date range covering the whole year or month (respectively).  The end
545    result is effectively the same as what was previously documented though
546    since the centre of a date range is used as the date for calculating
547    automatic declinations and is the date used by aven.
548
549* Test suite:
550
551  + Adjust hpglexport testcase to avoid i386 excess precision causing one of
552    the HPGL coordinates to differ by one from its value calculated without
553    excess precision.
554
555* Assorted translation updates.
556
557Changes in 1.4.12 (2024-10-23):
558
559* aven:
560
561  + (Microsoft Windows version): Geodata overlays are (hopefully temporarily)
562    no longer available in the pre-built version of Survex installed by the
563    Microsoft Windows installer.  We use the GDAL library to load them and
564    there's a hard to debug problem during DLL initialisation somewhere in its
565    dependency tree.  If you really need geodata overlays, the 1.4.9 installer
566    still works.  Thanks to Wookey for extensive testing to investigate the
567    problem, and to everyone else who reported this.
568
569* cavern:
570
571  + A leg with the same station as from and to is now only a warning in
572    Compass data.  Compass itself seems to quietly ignore such legs, but
573    they seem worth warning about.  In native Survex data this is still
574    an error.
575
576  + Short survey and station names are now stored without an extra memory
577    allocation.  On a 64-bit platform (most modern computers) we can store
578    name components up to 7 characters in this way; on a 32-bit platform
579    up to 3 characters.  On a large dataset which needs large matrices
580    solving this reduces cavern's memory usage by 3.5MB (~4.5%).  It's
581    also fractionally faster (but only ~0.05% which is not normally even
582    measurable).
583
584  + Assigning matrix row numbers to stations is now faster and allocates
585    less memory.
586
587* (Microsoft Windows version): The Microsoft Windows installer is now
588  named `survex-microsoft-windows-1.4.12.exe`.  The old name was
589  `survex-win32-1.4.11.exe` but the "win32" is now misleading as it's been a
590  64-bit build since 1.4.9.  Reported by Wookey.
591
592* Testsuite:
593
594  + dump3d.tst: Add tests of img library's survey filtering.
595
596  + cavern.tst: Normalise `-0.00` to `0.00` in JSON test output before
597    comparing with expected output.  We can get -0.00 on x86 due to excess
598    precision.
599
600* img library:
601
602  + Survey filtering now works correctly for files which use a survey level
603    separator other than `.`.  Patch https://github.com/ojwb/survex/pull/14
604    from Thomas Holder.
605
606  + Reading a v7 or earlier .3d format extended elevation with survey filtering
607    was failing to set is_extended_elevation.
608
609Changes in 1.4.11 (2024-08-14):
610
611* aven:
612
613  + Add imperial scales for export and printing.  Fixes #132, reported by Eric
614    C. Landgraf.
615
616* aven/survexport:
617
618  + HPGL export now uses pen 2 for splays and pen 3 for surface legs.  Partly
619    addresses #60.
620
621  + HPGL export now supports scaling (previous the scale was always
622    1:40000).
623
624  + KML export now distinguishes surface legs and splays using different
625    line styles.  Partly addresses #60.
626
627  + Remove Skencil export support.  The last release of Skencil was in 2005.
628    There was an attempt to revive the project in 2010, but that didn't lead to
629    another release and seems to have petered out.  No current Linux distro (or
630    other package system) seems to have Skencil packages, and the current git
631    version still appears to require Python 2 which is being phased out.
632
633* cavern:
634
635  + Support `*data ignore` to allow ignoring a block of survey data lines.
636    Closes #114, reported by Alastair Gott.
637
638  + Report error for bad final reading in `*data` command (previously such a
639    bad reading was quietly ignored).
640
641  + If the survey in `*end` doesn't match that in `*begin` the location of
642    that `*begin` is now reported as well - the second message here is new
643    for example:
644
645     badbegin.svx:6:8: error: Survey name doesn't match BEGIN
646      *end   bar
647             ^~~
648     badbegin.svx:4:13: info: Corresponding BEGIN was here
649      *begin      foo
650                  ^~~
651
652  + Now shows a context line for a reading which was on the previous line,
653    which can happen for interleaved data styles.
654
655  + Warn when a token is not followed by a blank, comment or end of line.
656    This is an unintentional tokenisation oddity which has been present
657    for a really long time.  We don't want to break files that rely on this
658    (even if they likely only do accidentally) so emit a warning rather than
659    an error.
660
661    This warning can easily be eliminated by adding a space where indicated,
662    which will work with old and new Survex versions.  Fixes #135.
663
664  + Errors and warnings which report an unexpected token now report a
665    contiguous span of letters and numbers rather than just letters in cases
666    where a number can't follow (which is the majority of cases).
667
668  + If `*require` isn't satisfied, the `*require` line is now shown for
669    context (especially helpful if there's a comment after the command noting
670    the reason for the requirement, as we now suggest in the manual).
671
672  + `*require` version parsing improved - spaces are no longer tolerated in
673    a version number and trailing junk after the version number is now
674    handled more consistently.
675
676  + Fixed several situations in which the highlighting of the context for a
677    diagnostic was off by a small number of columns.
678
679  + Optimise building of matrix during network solving.
680
681  + Enhancements and fixes to reading Walls WPJ and SRV files:
682
683    - After reporting an error for an unsupported datum, we now set the datum
684      to WGS84 to prevent triggering further errors from code which tries to
685      use the datum.
686
687    - Parse Walls WPJ commands as alphanumeric rather than alphabetic tokens,
688      which better matches how Walls parses them.  This only makes a difference
689      in the error message when we don't recognise a WPJ command.
690
691* Documentation:
692
693  + Note `feet` are international feet and how to select a different
694    definition in `*units` docs.
695
696  + Document `grads` are also known as "neugrads" and "gons" in `*units` docs.
697
698* Assorted translation updates.
699
700* testsuite:
701
702  + Fix bug in normalisation of `-0.00` to `0.00` in DXF output before
703    comparing with expected output.
704
705* Update and improve vim syntax highlighting:
706
707  + `*cartesian` added
708
709  + `*data ignore` added
710
711  + `mils` units now highlighted as deprecated
712
713  + `UP` and `DOWN` are no longer highlighted anywhere in a command
714
715  + `U`, `D`, `LEVEL`, `-V`, `+V`, `.`, `..` and `...` now highlighted in data
716    lines
717
718  + Repeated `NOT` in `*flags` is now highlighted as an error
719
720  + Fix error highlighting for unquoted `*include` to not flag an error just
721    because there's a comment after the filename
722
723  + Fix error highlighting for unquoted `*include` to work when there's
724    whitespace between `*` and `include`
725
726Changes in 1.4.10 (2024-08-05):
727
728* aven:
729
730  + Use a fixed rotation rate for rotating the view to North, South, East or
731    West (shortcut keys `N`, `S`, `E` and `W`).  We were using the same
732    variable rate which auto-rotation does for this case, but really these are
733    just animations to help the user see the change that's happening, so a
734    fixed rate makes more sense (and is what tilting to plan or elevation
735    does).  The new fixed rotation rate for this is double what the default
736    variable rate was, which means the longest rotation (e.g. from S to N)
737    takes 3 seconds rather than 6.
738
739* aven/survexport:
740
741  + Fix syntax of shot flags in PLT export (incorrect since introduced in
742    1.4.6).
743
744  + Map Survex duplicate flag to `L` shot flag in PLT export.
745
746  + Invent shorter names for anonymous stations in PLT export.  The PLT file
747    format documentation says station names can be up to 12 characters, but the
748    ones we generated were longer than this which is liable to trip up
749    consumers of this format that only allow for the specified length.
750    We now generate names using a sequential counter with a two character
751    prefix so they should fit in the 12 character limit for any cave
752    survey.
753
754  + 3D export now includes all leg and station flags.
755
756* cavern:
757
758  + Unconnected survey stations are now handled as a warning, whereas
759    previously this was an error.  This is necessary when processing Walls data
760    where it seems having hanging surveys is the norm, and Walls itself only
761    warns about them.
762
763    The support is also enabled for native Survex data since it allows viewing
764    the connected parts of a survey with missing connections without having to
765    comment out the unconnected parts (and then remember to fully uncomment
766    once connections are surveyed).  Fixes #16, reported by Duncan Collis.
767
768    Currently the component count and loop count are not shown in this case.
769
770  + Avoid multiple reports of an unconnected survey station.  This could happen
771    in some cases where a group of equated stations had more than four legs
772    connected to it.
773
774  + Fix missing report of unconnected survey station.  We aim to report at
775    least one station in every unconnected piece of survey, but if a piece had
776    been simplified to a single station which was anonymous (e.g. a disto splay
777    shot) then we wouldn't report anything for that piece.  Now we find the
778    traverse that was attached to it and report the next station along that
779    traverse.
780
781  + Report file and line location each unconnected survey station.
782
783  + This warning now says either `*entrance` or `*export` depending on which
784    it actually was:
785
786      Station "bar.1" referred to by *entrance or *export but never used
787
788  + Fix several cases of mishandling comments without blanks before them:
789
790    - After an anonymous station.
791
792    - After an ignored reading.  The `ignore` would incorrectly also skip the
793      comment character and any characters which followed up to the next blank
794      or end of line.
795
796    - In a `*alias` command.
797
798    - Diagnostic highlighting could continue into a comment.
799
800  + New `*cartesian` command which supports different orientations of
801    `cartesian` style data.
802
803  + Anonymous stations are now supported in `cartesian` style data.
804
805  + `*fix a reference` (without any coordinates) is now an error.  The
806    `reference` token provides a way to have a list of known fixed points which
807    are not expected to all be currently used, while omitting the coordinates
808    provides a way to specify a point to arbitrarily fix rather than rely on
809    cavern picking one.  Allowing both together doesn't really make sense.
810
811  + Improve check for 180° backclino to suppress the warning about a compass
812    reading on a plumbed leg (introduced in 1.4.8) to allow a small tolerance
813    on the value.  Previously the check wasn't working on x86 Linux for
814    example.
815
816  + When showing a line as the location of a diagnostic we now render any
817    tab character as a single space which means the `^~~~~` highlight length
818    is now correct even when the highlighted part contains tabs.  This only
819    affects use from a terminal as the highlight was already correctly handled
820    when viewing the log in aven.
821
822  + Enhancements and fixes to reading Walls WPJ and SRV files (thanks to Eric
823    C. Landgraf and Joe for a lot of great feedback from testing with large
824    datasets):
825
826    - The `RECT=` option is now fully supported.
827
828    - Fix `#DATE` with an active `.REF` to act like `DECL=`.  This matches what
829      the documentation says and what Walls seems to actually do.
830
831    - Allow completely omitting the clino on a wall shot (with `ORDER=DAV` or
832      `ORDER=ADV`).
833
834    - Resolve WPJ `.PATH` relative to innermost containing book.
835
836    - Handle an empty Walls station name.  Walls allows a station with an
837      explicit prefix to have an empty name, e.g. `PEP:`.  The Walls
838      documentation doesn't mention this, though it also doesn't explicitly say
839      the name can't be empty.  This quirk seems unlikely to be intentionally
840      used and Survex doesn't allow an empty station name, so we issue a
841      warning and use the name `empty name` (which has a space in, so can't
842      collide with a real Walls station name which can't contain a space) - so
843      `PEP:` in Walls becomes `PEP.empty name` in Survex.
844
845    - Flag stations with explicit Walls prefix as exported.
846
847    - Fix setting empty Walls macro with a comment right after it.
848
849    - Walls quietly ignores junk after the numeric argument in `TYPEAB=`,
850      `TYPEVB=`, `UV=`, `UVH=`, and `UVV=`.  This seems to be an undocumented
851      feature/bug so Survex emits a warning and skips the junk.
852
853    - After an unknown Walls option we now process the rest of the line.
854      Previously we were skipping the rest of the line.
855
856    - We no longer skip the rest of the line after a bad Walls `ORDER=` option.
857
858    - Correct the reported column for some Walls option diagnostics.
859
860    - Support explicit units on Walls clino readings.
861
862    - Allow `#` in Walls station names.  This is explicitly documented as not
863      allowed, but the documentation doesn't match the implementation and `#`
864      is present in some real-world data.
865
866    - Improve handling of Walls `RESTORE` error.  Highlight the position in the
867      line and don't skip the rest of the line.
868
869    - Don't warn about `INCH=` with a zero argument since that's the one case
870      of it we do handle!
871
872    - Fix not to skip the rest of the line after Walls `INCH=` option.
873      We currently don't support `INCH=` so we warn about it, but we were
874      skipping the rest of the line, then trying to read and discard the
875      argument to `INCH=` which gave an error.
876
877    - Relax handling of Walls `CASE=`.  It's not documented, but Walls32.exe
878      quietly treats unknown values as "Mixed".
879
880    - Support DM and DMS format for latitude and longitude in Walls `#FIX`,
881      e.g. `W97:43.875` and `W97:43:52.5` .
882
883    - Treat a zero length leg with finite variance like a Survex `*equate`.
884
885    - Apply Walls variance overrides to survey legs.
886
887    - The optional instrument and target heights are now parsed, but their
888      values are currently ignored.
889
890    - The delimiters around LRUD data are now parsed, but the LRUD data between
891      them is currently ignored.
892
893    - If a `#SEGMENT` value looks like a set of Compass shot flags (i.e.
894      consists only of upper case characters from `CLPSX`, optionally prefixed
895      with a `/` or `\`) then we interpret them as Compass shot flags (except
896      that `X` is mapped the same way as `L`).  This is apparently a common way
897      to use `#SEGMENT`, and unlikely to be triggered accidentally.
898
899    - Avoid a doubled directory separator when building Walls path names.
900
901* documentation:
902
903  + The manual has been converted from DocBook to reStructured Text.  The
904    plain-text format is much easier for making changes, and for users the
905    output from sphinx looks nicer and has extra features (like built-in
906    "Quick search" in the HTML output).
907
908    The plain text version of the manual is no longer generated.  Sphinx can
909    produce one but the .rst sources actually seem more readable for anyone
910    wanting to read the manual in plain text.
911
912    The extra targets to generate the manual in RTF and PostScript
913    have been dropped as I doubt they are still used (we stopped
914    providing them on the website years ago).  They could probably be
915    reinstated if there's a demand for them.
916
917    The conversion was partly automated followed by a full pass over the
918    result fixing issues with the automated conversion.  We took the
919    opportunity to also review the content and update or remove out of
920    date and other incorrect information, and to reorder some of the content.
921
922  + Document all the statistics in the `.err` file
923
924  + Document PLT export.
925
926  + Minor improvements to --help output
927
928  + The HTML version of the 1.4.9 manual was missing the Walls chapter
929    and had messed up paging links around it (due to the new CMAP chapter
930    accidentally also being given the filename `walls.htm`).  Reported by Eric
931    C. Landgraf.
932
933  + Document we don't enforce Walls' station or prefix length limits.
934
935  + Document handling of Walls `#NOTE`.
936
937  + Fix documentation of Walls `FLAG=` which is correctly handled, not skipped.
938
939  + Document how to compare Walls and Survex output via Shapefile.
940
941  + Document how to suppress unused fixed point warning in Walls SRV.
942
943* testsuite:
944
945  + Add testcase for Walls `#units order=da`.
946
947  + Add expected output for more testcases
948
949  + Add testcase for exporting .3d files.
950
951  + Normalise `-0.00` to `0.00` in DXF output before comparing to avoid bogus
952    test failures due to excess precision on x86 when using 387 FP
953    instructions.
954
955  + Add test of DXF export with full coordinates.
956
957* translations:
958
959  + Diagnostics can now use positional arguments which sometimes allows a
960    more natural word order in a translated message.
961
962Changes in 1.4.9 (2024-07-04):
963
964* aven:
965
966  + Support showing geodata overlays in Aven.  We use the GDAL library to load
967    the data, so this should work for any format which GDAL supports so long as
968    it can be read from the filing system and is geo-referenced vector data -
969    see https://gdal.org/drivers/vector/index.html for a list.  Currently the
970    dialog to select a file defaults to showing GPX, KML, GeoJSON and shape
971    files - set the filter to "All Files" to choose other formats.
972
973  + Reimplement display of cavern output.  The old version turned the log into
974    HTML and displayed it using wxHtmlWindow, but that adds a lot of overhead
975    and is especially inefficient if there are many diagnostics - cavern could
976    finish almost instantly yet aven could take many seconds to process the
977    output.  The new version renders directly from the log data.  It should
978    have most of the features from before - the only missing feature I'm
979    currently aware of is that you can't now select and copy text from the log
980    window, which wxHtmlWindow provided for free.  If people miss this feature,
981    we could add it to the new implementation.
982
983  + (Microsoft Windows version): Clicks in the cavern log window which load
984    files into an editor now protect the filename if it starts with a dash
985    to prevent it being interpreted as a command line option.  We already
986    do this for other platforms, but weren't on Microsoft Windows on the
987    assumption that it isn't needed because the filenames will be fully
988    qualified, but that may not be the case if aven if run by hand from the
989    command line or from some other launcher.
990
991* cavern:
992
993  + Add support for processing Walls format survey data (.SRV and .WPJ files).
994    This support is somewhat experimental but at a point where it seems useful
995    to make it easier for people to try out.  See the manual for a list of
996    known shortcomings.  Thanks to Eric C. Landgraf for a lot of testing and
997    encouragement.
998
999  + Fix bug with Compass DAT diving data.  If a survey uses the depth gauge
1000    then since 1.4.6 we set its style to "diving", but we weren't clearing that
1001    so all surveys after that in the same DAT file were also set as "diving".
1002
1003  + When parsing of Compass DAT files we report errors in more cases if the
1004    input doesn't conform to the format we expect, rather than potentially
1005    quietly misinterpreting the data.
1006
1007  + *entrance now suppresses "Unused fixed point" warning.  This warning is
1008    intended to catch typos, which is much less likely for a station named
1009    twice.  It's also reasonable to use only *fix and *entrance on a station at
1010    the entrance of an unsurveyed cave.
1011
1012  + Highlight plumbed clino readings fully in diagnostics.  Now the full reading
1013    is highlighted instead of just the first character.
1014
1015  + Report location of previous fix after "already fixed" error/warning.
1016
1017  + Use "info" diagnostic category for "Originally entered here" message.  This
1018    is more logical as the original *begin isn't something to be warned about,
1019    only the reentering is.  This was only a warning before because we didn't
1020    used to have "info" diagnostics.
1021
1022  + Use "info" diagnostic category for message about not reporting further
1023    uses of a deprecated feature.  Previously this was a warning, but the newer
1024    "info" category is more appropriate here.
1025
1026  + The message about inventing a fixed point is now an "info" diagnostic which
1027    allows us to report a location which is where that station is defined,
1028    which may be useful to the user.
1029
1030  + Make highlighting position in error reporting more robust.  We no longer
1031    try to highIight if we calculate a negative column offset, when previously
1032    we would print billions of spaces.  As far as I know this has never
1033    happened in a released version.
1034
1035  + Error messages which report the program name now remove any ".exe" suffix.
1036    This helps the testsuite by making the expected output the same
1037    cross-platform, but also seems slightly nicer for users.
1038
1039* dump3d:
1040
1041  + The timestamp reported by DATE_NUMERIC is now printed portably.  Previously
1042    we were assuming that a time_t is the same size as a long int, which is not
1043    true on all platforms.
1044
1045* manual:
1046
1047  + (Microsoft Windows version): Update information about installation
1048    with/without admin rights.
1049
1050  + Summarise support for reading CMAP data and its assumptions and
1051    limitations.
1052
1053  + Mention Compass, Walls and CMAP support in the importing data howto
1054    section.
1055
1056  + Drop mention of Rosetta Stal from the manual.  The referred to link from
1057    our website was removed in 2015 because Rosetta Stal hadn't been updated
1058    for 13.5 years at that point.  Now the domain it was available from has
1059    lapsed and is a domain squatter "for sale" page.
1060
1061* img library:
1062
1063  + The coordinates in CMAP data are in feet but we were dividing rather
1064    than multiplying by the conversion factor to get metres so all
1065    coordinates were about 10.76 times too large.
1066
1067  + Stations in CMAP "station" variant XYZ files are now flagged as
1068    underground (as they always have been for "shot" variant XYZ files).
1069
1070  + When reading CMAP XYZ files, we no longer emit duplicate img_LABEL for
1071    stations in loops.
1072
1073  + A CMAP XYZ file without a survey title is now handled correctly (this was
1074    reporting a bogus "Out of memory" error).
1075
1076  + The img.h header now defines constants IMG_VERSION_SURVEX_POS, etc for the
1077    values reported in the version field for non-.3d formats.
1078
1079  + (Microsoft Windows version): Workaround limitation of Microsoft's C
1080    library so we handle dates before 1970 in Compass PLT files, CMAP XYZ
1081    files, and older format .3d files.  Previously these were reported
1082    as "unknown date".
1083
1084* We now support overriding the location of support files by setting the
1085  SURVEXLIB environment variable.  We no longer look at the srcdir
1086  environment variable for this.
1087
1088* (Microsoft Windows version): The installer is now created automatically
1089  on Github actions, which has required a few changes.  It now packages a
1090  64-bit build, and is created with Innosetup 6.3.2 which no longer supports
1091  Vista.  The installer is also now significantly larger, which is mostly
1092  because we now need to include a large number of DLLs, most of which are
1093  dependencies of the mingw64 FFmpeg and GDAL packages.
1094
1095* (Microsoft Windows version): If the directory where we expect the PROJ
1096  support files to be does not exist for some reason we now avoid triggering
1097  a segmentation fault in PROJ.
1098
1099* Build system:
1100
1101  + The GDAL library is now required to build Survex.
1102
1103  + (Microsoft Windows version): The probe for GL and GLU libraries now also
1104    checks for Microsoft's non-standard library names.
1105
1106  + Correct configure --help output for --enable-werror for which the default
1107    is actually "no" rather than "maintainer-mode".
1108
1109* testsuite:
1110
1111  + aven.tst: Skip a testcase when running on mingw as it seems to hang there.
1112    We already skip this testcase on macos for what appears to be the same
1113    problem.
1114
1115  + Fix comparison of output to work on platforms using DOS line endings.
1116
1117Changes in 1.4.8 (2024-04-23):
1118
1119* cavern:
1120
1121  + The warning for a compass reading on a plumbed leg was already suppressed
1122    for a compass or backcompass reading of 0, but is now also suppressed for a
1123    backcompass of 180° (or equivalent) which seems to be common in some Compass
1124    datasets, but also seems sensible generally.  Thanks to Simeon Warner for
1125    sharing some data which triggered such warnings.
1126
1127  + The error for when a survey and station use the same name is now also
1128    emitted in the case where a name was used first for a station, and then as
1129    a survey on an explicitly prefixed name.  Closes
1130    https://github.com/ojwb/survex/pull/4, reported by Thomas Holder.
1131
1132  + The error for when a survey and station use the same name now highlights
1133    the problematic name within the line shown for context.
1134
1135  + Fix the reported token string reported by some errors with readings.  This
1136    happened to work on at least x86-64 Linux, but the code was invalid and
1137    failed on some architectures.
1138
1139* Fix to build with newer FFmpeg versions.
1140
1141* (Microsoft Windows version): The installer now offers the choice to install
1142  for just the current user, which allows installing Survex without admin
1143  rights.
1144
1145* (Microsoft Windows version): Fix problems with valid coordinate systems being
1146  rejected and aven's cavern log window not showing output.  Reported by
1147  Peter Mašič, Špela Borko, Răzvan Dumbravă and detrito.  Thanks especially to
1148  Špela Borko for a lot of testing to help track down the cause.
1149
1150Changes in 1.4.7 (2024-04-07):
1151
1152* cavern:
1153
1154  + When using *declination auto we report the range of calculated declinations
1155    for each location specified.  After doing this we now reset the range
1156    information we're tracking.  Previously we'd misreport the range for
1157    the second and subsequent locations.
1158
1159  + Avoid undefined behaviour on handling filename fallback for filenames
1160    containing non-ASCII characters.
1161
1162  + Show context line with relevant item highlighted for more errors and
1163    warnings.
1164
1165  + The dynamic string handling routines are now more efficient.
1166
1167  + Fix memory leak if a Compass MAK file opens folders it doesn't close.
1168
1169  + Fix handling of clino-less legs in Compass DAT.  These would cause cavern
1170    to fail with a lot of "NaN" messages.  Now they're treated as having a zero
1171    clino with a standard deviation based on the leg length, just like in .svx
1172    files.
1173
1174* img library:
1175
1176  + Compass PLT: Treat LRUD readings > 900 as omitted readings, which matches
1177    what Compass does.  Thanks to Larry Fish for clarifying this.
1178
1179  + Avoid undefined behaviour after realloc().  We were adjusting a pointer
1180    within the reallocated block by subtracting the old block address and
1181    adding on the new one.  Technically this is undefined behaviour, although
1182    in practice it seems likely it'll work and we've not seen misbehaviour due
1183    to it.  However it's easy to avoid by calculating the offset before the
1184    realloc().
1185
1186* Portability:
1187
1188  + Provide prototype for getopt() to avoid warnings with very recent compiler
1189    versions.
1190
1191  + Avoid using sprintf(), which now triggers warnings on some platforms.
1192
1193* Build system:
1194
1195  + Add configure --enable-werror option to turn compiler warnings into errors.
1196
1197* Manual:
1198
1199  + Expand details of Compass MAK CRS support.
1200
1201  + Replace very out of date information about binary RPM packages.
1202
1203* Minor translation updates.
1204
1205* (Microsoft Windows version): Now uses PROJ 9.3.0 and ships all of the
1206  ancillary files that PROJ comes with.  Hoping this fixes use of coordinate
1207  system EPSG:3912 failing, which was reported by Peter Mašič but I've not
1208  managed to reproduce.
1209
1210Changes in 1.4.6 (2024-03-07):
1211
1212* cavern:
1213
1214  + Workaround bug in PROJ < 9.3.0 with projected coordinate systems with
1215    northing/easting axis order (such as EPSG:3042) which results in the grid
1216    convergence being wrong by about 90°.  Reported by Patrick Warren on the
1217    mailing list.
1218
1219  + If *declination auto was used before *cs out we would incorrectly calculate
1220    the grid convergence as 0.  We now handle this case correctly by
1221    calculating lazily when we first read a compass reading, and report an
1222    error if the output coordinate system hasn't been set by then.
1223
1224  + When opening a file, cavern has fallback handling if the file isn't found
1225    to help people processing datasets from platforms with case-insensitive
1226    file systems.  Previously cavern would fold the filename to lowercase and
1227    retry.  Now if this fails, it will also try the lower case version but
1228    with the initial character of the leaf in upper case, and finally folding
1229    the whole specified filename to upper case.
1230
1231  + Dynamically pick a suitable level separator character and store it in .3d
1232    file, instead of it being hard-coded to '.' (we still use '.' unless it
1233    has been *set as a "name" character, or for Compass DAT/MAK files unless it
1234    has been used in a station name).  This is a step towards addressing the
1235    situations raised by Thomas Holder in https://github.com/ojwb/survex/pull/4
1236    and https://github.com/ojwb/survex/pull/5 .
1237
1238  + Compass DAT files:
1239
1240    - The shot flag S is now understood to indicate a splay.
1241
1242    - The shot flag P is now interpreted as marking surface data.  This flag
1243      is described as "Exclude this shot from plotting", but the use suggested
1244      in the Compass docs is for surface data, and legs flagged with it "[do]
1245      not support passage modeling".  Even if it's actually being used for a
1246      different purpose, Survex programs don't show surface legs by default so
1247      the end effect is at least to not plot as intended.
1248
1249    - Surveys which indicate a depth gauge was used for azimuth readings are
1250      now marked as STYLE_DIVING in the 3d file.
1251
1252    - Compass and clino corrections are now implemented for backsights.
1253
1254    - The tape correction in Compass DAT files is now handled correctly.  The
1255      specified value is in feet, but cavern was incorrectly treating it as
1256      being in metres.
1257
1258    - We now handle the newer 15 character "FORMAT:" encoding.  Previously
1259      cavern wouldn't detect when there were backsights in this case.
1260
1261    - We now treat survey date January 1st 1901 as "no date specified" since
1262      this is the date Compass stores in this situation, and it seems very
1263      unlikely to occur in real data.
1264
1265    - In Compass DAT files a dummy zero-length leg from a station to itself is
1266      used to provide a place to specify LRUD for the start or end of a
1267      traverse (depending if dimensions are measured at the from or to
1268      station), and so we no longer issue a warning about equating a station to
1269      itself for DAT files.
1270
1271  + Compass MAK files:
1272
1273    - The base location command is now understood.  This is how Compass
1274      specifies a location to calculate magnetic declination at, and we
1275      now handle this like Survex's native "*declination auto X Y Z".
1276
1277    - Survex uses the specified UTM zone and datum provided the combination can
1278      be expressed as an EPSG code (lack of any EPSG codes for a datum suggests
1279      it's obsolete; lack of a code for a particular datum+zone combination
1280      suggests the zone is outside of the defined area of use of the datum).
1281      Example Compass files we've seen use "North American 1927" outside of
1282      where it's defined for use, presumably because some users fail to change
1283      the datum from Compass' default.  To enable reading such files we return
1284      a PROJ4 string of the form "+proj=utm ..." for "North American 1927" and
1285      "North American 1983" for UTM zones which don't have an EPSG code.
1286      Please let us know if support for additional cases which aren't currently
1287      supported would be useful to you.
1288
1289    - Folder commands are now understood.
1290
1291    - Flag fixed stations as entrances.  Experimentation with Compass shows
1292      this is how it treats them ("distance from entrance" in a .DAT file
1293      counts from 0 at these points).
1294
1295  + We now support reading Compass CLP files.  These are very like DAT files,
1296    except they contain loop-closed data.  You might find this useful if you
1297    want to keep existing stations at the same adjusted positions Compass gave
1298    (for example to be able to draw extensions on an existing drawn-up survey),
1299    or if the original DAT file has been lost but you still have the CLP file.
1300
1301* aven:
1302
1303  + Fix OpenGL scaling on high DPI displays with wxWidgets 3.0. Reported by
1304    Philip Balister.
1305
1306  + Split the filters for DAT and MAK files in the File->Open drop down list.
1307    It seems more likely you'd want to see one type or the other, not both
1308    together.
1309
1310* aven/survexport:
1311
1312  + Fix survey filtering when reading Compass PLT files.
1313
1314  + .json,.kml: Enable export of surface legs.  Currently surface and
1315    underground legs aren't differentiated in these export formats when both
1316    are enabled.
1317
1318  + .3d: The coordinate system is now set.
1319
1320  + .svg: Equated stations now get their correct names in the id attribute
1321    of <circle> tags.  Previously one of the names would be repeated for
1322    all of a set of equated stations.
1323
1324  + .plt:
1325
1326    - Anonymous stations previously resulted in an empty name in the PLT
1327      file.  This isn't explicitly disallowed by the PLT format description,
1328      but Compass' viewer gives an error for such lines.  Now we invent names
1329      by encoding the station coordinates which should be unique.
1330
1331    - The S shot flag is now set for splays, and the P shot flag (hide from
1332      plotting) is set for surface legs (which matches the use suggested in the
1333      Compass docs).
1334
1335* img library:
1336
1337  + Fix bug handling timestamps before 1970.  In C signed integer division
1338    rounds towards zero, which previously resulted in timestamps before 1970
1339    getting rounded to the end of the day instead of the start when converting
1340    them to a count of days so they'd be off by one day unless the time was
1341    midnight.  This affected reading v3-v7 format 3d files with IMG_API_VERSION
1342    set to 1 and writing v8 format 3d files with IMG_API_VERSION set to 0 (the
1343    default).
1344
1345  + Improve Compass PLT support (many of these are Compass features added
1346    since Survex's support for Compass was originally added):
1347
1348    - Survey dates are now handled fully.  We treat survey date January 1st
1349      1901 as "no date specified" since this is the date Compass stores in this
1350      situation, and it seems very unlikely to occur in real data.
1351
1352    - LRUD data is now translated to img_XSECT and img_XSECT_END.
1353
1354    - We now infer img_SFLAG_ENTRANCE for stations where the "Distance From
1355      Entrance" field is present and zero.
1356
1357    - The shot flag L is now translated to img_FLAG_DUPLICATE.
1358
1359    - The shot flag S is now translated to img_FLAG_SPLAY.  A station at the
1360      far end of a shot flagged S gets img_SFLAG_WALL set since the Compass PLT
1361      format specification says:
1362
1363          The shot is a "splay" shot, which is a shot from a station to the
1364          wall to define the passage shape.
1365
1366    - The shot flag P is now interpreted as marking surface data.  This flag
1367      is described as "Exclude this shot from plotting", but the use suggested
1368      in the Compass docs is for surface data, and legs flagged with it "[do]
1369      not support passage modeling".  Even if it's actually being used for a
1370      different purpose, Survex programs don't show surface legs by default so
1371      the end effect is at least to not plot as intended.
1372
1373    - The d plot command is now supported (previously img failed to parse
1374      PLT files using this command) - it's like D but implies the P shot flag.
1375
1376    - If a PLT file only uses one datum and it is "WGS 1984" then the UTM zone
1377      is converted to the appropriate EPSG code and this is reported as the
1378      coordinate system.  Other datums could be handled, but the mapping to
1379      EPSG code is less simple.  Also it seems Compass supports at least
1380      24 datums but it doesn't document all the strings it uses for them.
1381      Files with multiple datums could be handled too, but we'd need to convert
1382      coordinates to a common coordinate system in the img library, which would
1383      need it to depend on PROJ.  Please let us know if support for more and/or
1384      mixed datums would be useful to you.
1385
1386    - Duplicate img_LABEL items are no longer returned - this used to happen
1387      for stations where more than two shots met within a single survey.
1388
1389    - We now infer img_SFLAG_EXPORTED for any station that appears in more
1390      than one survey in the PLT file.
1391
1392    - We now set flag img_SFLAG_FIXED for any station which is listed as
1393      a fixed point in the PLT file.
1394
1395    - If there's only one non-empty section name in a PLT file and we aren't
1396      filtering by survey, we now report that section name as the title.  If
1397      there are multiple different non-empty section names, we still report the
1398      basename of the file as before.  If we're filtering by survey, we report
1399      the comment for that survey as before.
1400
1401    - Fix bug handling PLT with omitted LRUD.  The format specification
1402      documents that LRUD may be omitted, though it seems Compass never
1403      actually omits it and at least some versions of Compass failed to handle
1404      it being omitted too.
1405
1406* (Microsoft Windows version): Now using wxWidgets 3.2.4 (was 3.1.6).
1407
1408* manual:
1409
1410  + Document Compass support in detail.
1411
1412  + Improve NATO mils example.
1413
1414* INSTALL:
1415
1416  + Add a link to the instructions for building from git.  Reported by Andrew
1417    Northall in https://github.com/ojwb/survex/pull/13
1418
1419  + Document the requirement for a C99 compiler for building from source.
1420    We made this a requirement in 1.4.2, but only noted it in NEWS.
1421
1422* doc/TODO.htm: Update.
1423
1424* Replace references to "libav" with "FFmpeg" since the libav project seems to
1425  now be defunct, and we've always supported using either.
1426
1427* Update build system to eliminate use of obsolete autotools macros and drop
1428  probes for features that we can safely assume now we require a C99 compiler
1429  and workarounds for obsolete platforms.
1430
1431* Fix compilation warnings from newer compiler versions.
1432
1433Changes in 1.4.5 (2023-06-29):
1434
1435* aven: Fix rendering of crosses when drawn as sprites.  Reported by echarlie.
1436
1437* (macOS version): aven: Fix crash in export dialog.  Fixes #133, reported by
1438  rixyane.  Thanks to Wookey for testing.
1439
1440* manual: Expand docs on connecting to Compass data.
1441
1442* Minor translation updates.
1443
1444Changes in 1.4.4 (2023-02-03):
1445
1446* aven: Fix red line in clino background to be grey (this was introduced in
1447  1.4.3 and was a debugging change accidentally left in).
1448
1449* aven: Accept weird .3d files from Therion which have empty components in
1450  station names.  That's not really valid by Survex's definition of station
1451  names, but it's not very helpful to reject such files, so just disable the
1452  checks that were rejecting this.
1453
1454  The result is empty entries in the survey tree, but I don't see what we can
1455  really do that's better than that.
1456
1457  Reported by Vasily Vl. Suhachev.
1458
1459* aven: Make it more obvious you can enter a custom scale by adding a "..."
1460  entry to the scale combobox - selecting this clears the value and gives focus
1461  to the combo box text entry. This control has always supported clicking to
1462  enter a custom scale, but there wasn't really any indication that this was
1463  possible before.  Partly addresses #132, reported by Eric C. Landgraf.
1464
1465* aven: Force export window to resize when the export format is changed as
1466  different controls are shown depending on the export format.
1467
1468* aven: Right-align tilt spin control value in print/export dialog to match the
1469  bearing spin control.
1470
1471* aven,survexport: Add ability to export as Survex 3d which is useful as you
1472  can filter to a subset of surveys, filter out splays, convert from other
1473  formats the img library can read, etc.  This feature is a bit rough and ready
1474  currently but please report issues.
1475
1476* dump3d: Add --legs option which converts MOVE and LINE to a single LEG line
1477  per leg with the from and to coordinates.  Tools which parse dump3d output
1478  should find this easier to process as it avoids having to track a "current
1479  position".
1480
1481* Update manual to have a complete list of quantities which *calibrate accepts.
1482  Reported by echarlie
1483
1484* cavern.tst: Fix testsuite to work with SOURCE_DATE_EPOCH set.
1485
1486Changes in 1.4.3 (2022-05-17):
1487
1488* aven: Much improved support for HiDPI monitors on all platforms.
1489
1490* aven: When started without a file make sure the window has focus so menu
1491  accelerators and shortcuts work without clicking on the window.
1492
1493* aven,survexport: DXF export now puts splays in a separate layer and uses a
1494  dotted linetype for them.  Patch from echarlie, see #60.
1495
1496* Improved survexport man page to include command line options and a short
1497  note about DXF export.  Patch from echarlie.
1498
1499* Minor translation updates.
1500
1501* (Unix version): aven: Fix handling of EGL-based wxGLCanvas (which wxGTK 3.1.5
1502  has).  Fix a build failure and don't force X11 (as the EGL-based wxGLCanvas
1503  works on Wayland).
1504
1505* (MacOS version): aven: Fix hang on startup without a file.  Fixes #120,
1506  reported by Enrico Fratnik.
1507
1508* (Microsoft Windows version): Now using wxWidgets 3.1.6 (was 3.0.5).
1509
1510* img library: Support reproducible builds which create .3d files by not
1511  embedding a timestamp if environment variable SOURCE_DATE_EPOCH is set.
1512  Requested by Martin Budaj.
1513
1514Changes in 1.4.2 (2022-02-25):
1515
1516* aven: Fix to be compatible with FFmpeg 5.0.
1517
1518* Improve docs for *cs and *declination.
1519
1520* cavern: Fix "*declination auto" not to crash when built with PROJ < 8.1.0.
1521  Bug introduced in 1.4.0.
1522
1523* cavern: For each `*declination auto` command cavern now reports an "info"
1524  message showing the range of calculated declination values and the dates at
1525  which the ends of the range were obtained, and also the grid convergence
1526  (which doesn't vary with time).  Fixes #92, reported by Rob Eavis.
1527
1528* cavern: If any of the N-S, E-W or U-D ranges includes an anonymous station
1529  then also report the range in that direction excluding anonymous stations.
1530  Patch from Thomas Holder.
1531
1532* cavern: The error from a bad `*cs custom` command now highlights the quoted
1533  string properly.
1534
1535* cavern: "FIX command with no coordinates - fixing at (0,0,0)" is now an
1536  "info" rather than a "warning".  It's not really reporting a problem and the
1537  ability to omit the coordinates is a deliberate feature.  It is useful for
1538  the user to know where the "*fix" without coordinates is if they want to
1539  change the survey to be in real coordinates, so an "info" diagnostic is a
1540  good fit.  This also means aven will no longer stay on the log view after
1541  processing a dataset which fixes without coordinates.
1542
1543* cavern: If "*fix" is used twice with no coordinates we no longer say
1544  "FIX command with no coordinates - fixing at (0,0,0)" right before:
1545
1546  error: Already had FIX command with no coordinates for station "x"
1547
1548* cavern: Include errors in Compass .mak files now report the error in the line
1549  where the included filename is actually specified.
1550
1551* cavern.tst: Add test coverage for warnings for *entrance and *export with
1552  a station which doesn't exist otherwise.
1553
1554* aven/survexport: Change JSON export to be valid JSON.  This means the output
1555  has changed incompatibly, but it wasn't valid JSON before which suggests
1556  nobody was actually successfully using it. Fixes #128, reported by Pawczak.
1557
1558* aven.tst: Skip one testcase on macos as it seems to hang, at least when
1559  running on the Continuous Integration system.
1560
1561* (Microsoft Windows version): The installer is now generated with a much
1562  newer version of Innosetup.  This means Microsoft Windows Vista is now the
1563  minimum supported version but 2000 and XP are both many years out of support
1564  anyway.
1565
1566* (Microsoft Windows version): The coordinate system database for PROJ is
1567  now included so "*cs" now works (broken since 1.4.0).
1568
1569* Chinese translation updates from Qingqing Li.
1570
1571* Building from source now requires a compiler with support for C99.  C99
1572  seems to be universally supported by compilers now so we don't expect this to
1573  inconvenience anyone.
1574
1575Changes in 1.4.1 (2021-11-08):
1576
1577* This release should work with any PROJ version >= 6.2.0.
1578
1579* cavern.tst: Fix to actually run tests when building outside the source
1580  tree.  Previously files for testcases weren't found, and tests were skipped
1581  with a warning, which lead to 1.4.0 being released with two failing testcase.
1582  Fix to find the files, and make not finding them an error.
1583
1584* cavern.tst: Fix testcases gpxexport and require_fail which were failing
1585  in 1.4.0.
1586
1587* 3dformat.htm: Document that coordinate system can be ESRI:<number>.
1588
1589Changes in 1.4.0 (2021-11-06):
1590
1591* New release series to mark that Survex now uses the new PROJ API, and
1592  requires PROJ >= 7.2.0.  Survex 1.2.x will continue to support PROJ < 8
1593  (and won't support newer PROJ versions).  Fixes #102, reported by Bas
1594  Couwenberg.
1595
1596  Due to these changes, PROJ will now convert directly between coordinate
1597  systems where it knows how to, instead of always converting via WGS84.
1598  This means conversions may now be more accurate in some cases, and you may
1599  notice station coordinates changing - these should be for the better.
1600
1601  Also, the vertical datum is now taken into account automatically, and
1602  terrain data now aligns much better vertically with surveys.  Fixes #56.
1603
1604* aven: Clicking and holding the left mouse button on the compass or clino,
1605  then (while still holding) clicking the right button no longer causes a
1606  wxWidgets assertion to fail.  Reported by echarlie.
1607
1608* img library: Rewrite certain proj strings when reading 3d files for
1609  better compatibility with newer PROJ versions, where use of proj
1610  strings is strongly discouraged.
1611
1612  `+init=epsg:` followed by a code number is rewritten to `EPSG:`.
1613
1614  `+init=esri:` followed by a code number is rewritten to `ESRI:`.
1615
1616  The proj strings which cavern used to put in 3d files for UTM zones and
1617  S-MERC are rewritten to `EPSG:` follow by the appropriate code number.
1618
1619* Also install survex.lang for gtksourceview 4. Fixes #125, reported by Martin
1620  Green.
1621
1622* Fix missing data style in interleaved example in manual.  Reported by
1623  echarlie.
1624
1625* Use jw from docbook-utils instead of sgmltools-lite to process the manual.
1626  The sgmltools-lite homepage says it's no longer being developed, and suggests
1627  docbook-tools (which Debian packages as docbook-utils) as a replacement.
1628
1629* doc/HACKING.htm: Update Debian packages to install
1630
1631* doc/HACKING.htm: Update details of setting up mingw cross-build environment.
1632
1633* Add simple tests for GPX and KML export.
1634
1635* Expand cavern testcase csbad.
1636
1637* cavern.tst: Parse warning/error counts more robustly.  Previously we'd get
1638  confused if the final line just contained an integer, e.g. if we end listing
1639  stations not attached to a fixed point.
1640
1641Changes in 1.2.45 (2021-03-09):
1642
1643* Avoid undefined signed shifts in 3d file handling.  Survex itself is only
1644  affected on big-endian platforms (so most Linux machine, Microsoft Windows,
1645  and current Macs are all OK), but this also affects the img library on all
1646  platforms when used in standalone mode as it is in other programs.  Fixes
1647  #119, reported by Matěj Plch.
1648
1649* aven:
1650
1651  + When reading cavern output for the log window, we need special handling
1652    for the case when a chunk of output ends mid-way through a UTF-8
1653    sequence.  Previously we lost the first byte of the sequence in this
1654    case (and would then show it as an invalid character), but now it is
1655    handled correctly.  In practice, most of the cavern log output is ASCII so
1656    it's quite possible nobody's ever actually hit this.
1657
1658* testsuite:
1659
1660  + Suppress reports of leaks on exit from the LeakSanitiser debugging tool.
1661    We know we don't release all memory explicitly on exit since doing so would
1662    mean extra work for no reason as the OS reclaims all memory when the
1663    process exits.
1664
1665* Convert OLDNEWS encoding from ISO-8859-1 to UTF-8.
1666
1667Changes in 1.2.44 (2021-02-10):
1668
1669* aven:
1670
1671  + (Microsoft Windows version): Now using wxWidgets 3.0.5 (was 3.0.4).
1672
1673* cavern:
1674
1675  * Add support for quadrant bearings (e.g. N30E).  Patch from echarlie.
1676
1677  * Report error if angle units are specified for passage dimension.
1678    Previously "*units left degrees" and similar were incorrectly quietly
1679    accepted.  Spotted by echarlie.
1680
1681  * Fix *data with no parameters to keep the current style and reset any state
1682    as documented.  Previously it actually instead ignored any survey data
1683    until the next *data command with parameters.
1684
1685  * Fix minor memory leak in *data.  We leaked a single memory allocation on
1686    "*data default" or an invalid *data command.
1687
1688  * Improve test coverage.
1689
1690* survexport:
1691
1692  * The check for whether a format supported --elevation, --plan, --bearing and
1693    --tilt was inverted.  Reported by echarlie.
1694
1695  * Fix reporting of export errors on Microsoft Windows.  Reported by Matic Di
1696    Batista.
1697
1698* img library: Fix img_open() when used in other programs.  Patch from Thomas
1699  Holder.
1700
1701* configure: Add wx-config-gtk3 to WX_CONFIG search for Arch Linux.  Patch
1702  from Thomas Holder.
1703
1704* Improve documentation of interleaved data.  Most notably, we now document
1705  that a blank line breaks the current traverse.
1706
1707* Fix typo in manual ('cypolar' -> 'cylpolar').  Patch from Wookey, fixes #117.
1708
1709* Chinese translation updates from Qingqing Li.
1710
1711* Russian translation updates from Vasily Vl. Suhachev.
1712
1713* French translation updates from Jean-Marc and from Wassil Janssen.
1714
1715* Bulgarian translation updates from Wassil Janssen
1716
1717Changes in 1.2.43 (2020-02-28):
1718
1719* cavern: Update to use v13 of the IGRF model for calculating declinations.
1720  This was issued in December 2019 and should give slightly more accurate
1721  declinations for surveys made since 2010.
1722
1723* aven:
1724
1725  + Fix colouring of "not in loop" when colouring by error.  1.2.42 introduced
1726    a bug where surveys not in a loop were coloured as if they had zero error.
1727    Fixes #111, reported by Bruce Mutton.
1728
1729  + Fix handling of grid in export.  The grid was always getting enabled
1730    (probably since 1.2.8) even for formats which don't support exporting with
1731    a grid.  This resulted in the bounding box being set wrongly for some
1732    formats such as SVG, as reported by Richard Knapp on the mailing list.
1733
1734  + When showing errors processing the survey data we'd previously crash if
1735    cavern incorrectly reported an error as being in a column off the end of
1736    the line - now we just ignore the error column in this case.
1737
1738  + Support colouring by survey style ("normal", "diving", "nosurvey", etc).
1739
1740Changes in 1.2.42 (2019-09-04):
1741
1742* aven:
1743
1744  + Allow colouring by horizontal or vertical error.
1745
1746  + (Unix version): Disable scaling for HiDPI displays with GTK3.  The OpenGL
1747    code needs work before this will work usefully, so just disable for now
1748    (which simulates how things are when using GTK2).
1749
1750  + (Unix version): Fix orientation of notebook tabs when build with wxWidgets
1751    3.1 development versions.  We want horizontal tab orientation, but were
1752    passing a weird flag combination which now results in vertical tab
1753    orientation.
1754
1755* When exporting to a format where we support rotation in the horizontal
1756  plane (such as SVG), the rotation was incorrectly applied to cross section
1757  data (except for the default rotation of zero).  Fixes #108, reported by
1758  Richard Knapp.
1759
1760* Add a section to the manual covering the command line tools, and what you
1761  might still need to use them for.
1762
1763* Fix compiler warning when building from source with GCC 9.
1764
1765* Consistently refer to macOS not OS X - Apple have renamed it yet again.
1766
1767* (macOS version): Revert the workaround for the crash on macOS 10.14.  The
1768  bug we were working around is fixed in git ready for wxWidgets 3.0.5 and
1769  there's a backported fix in the homebrew wxmac 3.0.4-2 package, which is how
1770  we now recommend people install on a Mac.  Closes #101, reported by floho.
1771
1772* (macOS version): Remove buildmacosx.sh script since installing from homebrew
1773  is now the recommended approach.
1774
1775Changes in 1.2.41 (2019-07-10):
1776
1777* aven:
1778
1779  + (Microsoft Windows version): Fix error on startup in the pre-built version
1780    of 1.2.39 and 1.2.40.  This is a recurrence of the same issue as affected
1781    1.2.33 - this time I've patched out the unnecessary check in wxWidgets
1782    which causes this problem so it shouldn't recur again.  Reported by
1783    Brian Clipstone.
1784
1785  + (macOS version): Add work around for crash on macOS 10.14 (not fully tested
1786    as I don't have access to a Mac).  Hopefully fixed #101, reported by floho.
1787
1788Changes in 1.2.40 (2019-07-04):
1789
1790* aven: Draw the measuring line ring with an even shape.  Previously the exact
1791  shape of the ring varied slightly depending on the exact coordinates, which
1792  could be visually distracting once you noticed it.
1793
1794* We were casting a function pointer with a bool return type to the same type
1795  but with a void return type.  In practice this probably works fine on most
1796  platforms, but it's undefined behaviour and also gives a compiler warning
1797  with some compilers.
1798
1799* Fix bug introduce in 1.2.39 with where the "esri" data file for PROJ is
1800  installed.
1801
1802Changes in 1.2.39 (2019-06-29):
1803
1804* Support versions 5.x and 6.x of the PROJ library we use for handling
1805  conversions between coordinate systems.  Reported by Bas Couwenberg
1806  in #102, by Richard Knapp in #103 and by Martin Sluka in email.
1807
1808* (Unix and Mac OS versions): When checking if something is a file or if it is
1809  a directory, we no longer treat a symlink as being neither, but instead
1810  return an answer based on what the symlink points to.
1811
1812* aven:
1813
1814  + Improve handling of hidden splay ends.  Previously, hidden splay ends still
1815    served as "targets" for snapping the mouse pointer to, and still got
1816    crosses when crosses were enabled.  We don't have a handy flag for "this is
1817    the outer end of a splay" and computing that on demand isn't so easy to do,
1818    so for now we use the "anonymous station" flag so at least these cases now
1819    behave properly for splays to anonymous stations (which is likely to be
1820    what people with huge numbers of splays from disto-x, etc are using).  This
1821    does mean that anonymous stations on continuation passages will incorrectly
1822    also be off when splays are hidden, but that seems an OK trade-off for now
1823    and a definite improvement over the previous situation.  The snapping of
1824    the mouse pointer was reported by Frank Tully in #105.
1825
1826  + Fix typo in export UI (CVS should be CSV).
1827
1828* Documentation:
1829
1830  + Add CSV to documented list of survexport output formats.
1831
1832  + Fix *declination syntax synopsis - "auto" is a literal string, not a
1833    placeholder.
1834
1835  + Update PROJ project name and website - the name is now "PROJ" (all caps and
1836    no ".4" suffix) and the website is now: https://proj.org/
1837
1838* Install gtksourceview-3.0 language file so .svx files now get syntax
1839  highlighting in gedit and other GtkSourceView-based editors.  Patch
1840  from Philip Withnall.  Fixes #98.
1841
1842* (Microsoft Windows version): The Survex installer doesn't uninstall the old
1843  version when you upgrade, but just overwrites it with the new version.  In
1844  1.2.35 cad3d.exe was replaced with survexport.exe, but a user upgrading from
1845  an older version would still have cad3d.exe from that old version.  We now
1846  remove any old cad3d.exe left over from a previous install in the same
1847  location to avoid confusion.
1848
1849* Add a few more message translations.
1850
1851* Fix warnings when built with a C++11 compiler.
1852
1853Changes in 1.2.38 (2019-03-02):
1854
1855* cavern:
1856
1857  + Deprecate MILS as angular units.  Survex has long support MILS as an alias
1858    for GRADS.  However, this seems to be a bogus definition of a "mil" which
1859    is unique to Survex (except that Therion has since copied it) - there are
1860    several different definitions of a "mil" but they vary from 6000 to 6400 in
1861    a full circle, not 400.  Reported by Andy Edwards.
1862
1863  + Fix segfault for *include "".  This isn't useful, but shouldn't crash.  It
1864    now reports "file not found" instead.
1865
1866  + Use isnan() to check for not-a-number.  This is cleaner, more robust and
1867    more efficient than formatting the number as a string and checking for
1868    "NaN" or "nan" in the result.
1869
1870* Avoid unused variable warning when compiling from source with modern ffmpeg.
1871
1872* Drop support for wxWidgets < 3.0.  3.0.0 was released over 5 years ago and
1873  should be easily available everywhere by now.  I'm no longer easily able to
1874  test with wxWidgets 2.8, and this allows a significant amount of cruft to be
1875  removed.
1876
1877* (Linux version): survex.spec: Fedora have removed gcc from the default build
1878  environment so need to explicitly list it in the BuildRequires tag.  See
1879  https://fedoraproject.org/wiki/Changes/Remove_GCC_from_BuildRoot for more
1880  information.  Patch from James Begley.
1881
1882Changes in 1.2.37 (2018-11-18):
1883
1884* aven:
1885
1886  + Add basic "Colour by Survey" feature.  The colours used aren't currently
1887    controllable.
1888
1889  + Fix export of splays.  Patch from Thomas Holder.
1890
1891  + Fix KML export to avoid invalid geometry when a tube intersects itself.
1892    Patch from Robert Jones.
1893
1894  + (Unix version): Fix to work under Wayland by forcing the x11 GDK backend
1895    for now.  This is a workaround until wxWidgets OpenGL support is updated
1896    to work under Wayland.  Reported by Philip Balister.
1897
1898  + Fix warnings about using deprecated functions when building movie export
1899    code using FFmpeg 4.0.
1900
1901* cavern:
1902
1903  + Compass MAK files: Handle fixed point coordinates in feet - previously the
1904    units were ignored and the coordinates assumed to be in metres.
1905
1906  + Previously the first byte in a MAK file was ignored.  Typically MAK files
1907    start with a comment, and since cavern currently ignores lines that start
1908    with characters it doesn't understand the meaning of, this bug would often
1909    go unnoticed.
1910
1911* survexport:
1912
1913  + Fix exporting of passages, walls and cross-sections by running the code
1914    aven uses to decide how much to rotate each cross-section.  Previously all
1915    cross-sections were aligned West-East.  Reported by Robert Jones.
1916
1917  + Default to .pos output if the program name is 3dtopos, and install a second
1918    copy (or hardlink under Unix) as 3dtopos.  This provides compatibility with
1919    current releases of Tunnel.  Reported by Becka Lawson, Wookey and
1920    Stephen Crabtree.
1921
1922* Fix some German translations.  Patch from Thomas Holder.
1923
1924* (MacOS X version): Fix aven-create-app to not delete converted icons.
1925  Typo spotted by Robert Jones.
1926
1927* Improve documentation for *team.  Document the requirement to quote names
1928  unless a person is identified by just one name.  Document that the roles are
1929  optional, as that information may not have been recorded, and to align with
1930  therion's team command.
1931
1932Changes in 1.2.36 (2018-07-18):
1933
1934* aven:
1935
1936  + Add support for exporting as a CSV (Comma-Separated Values) file.
1937
1938  + Support exporting KML with altitude mode "clamp to ground".  In this mode,
1939    the altitude in the data is ignored and it's rendered on the surface of the
1940    terrain.  This is useful if your KML viewer renders the terrain as opaque
1941    so underground data isn't visible.  Rendering cave passages on the surface
1942    isn't great, but is better than not being able to see them at all.  This
1943    option may also be helpful if you want to see where to look on the surface
1944    for new entrances.
1945
1946  + Highlight surveys with a white loop as the mouse is moved over them in
1947    the survey tree.  This is akin to how we highlight a station with a
1948    white ring, and allows restoring "double-click survey in tree to zoom"
1949    which temporarily required a quadruple-click in 1.2.35.
1950
1951  + Only show checkboxes in the survey tree for surveys not stations.
1952
1953  + Fix wxWidgets assertion if the user tried to select additional surveys
1954    to show via the right-click menu.
1955
1956  + Fix multiple survey filtering when both a parent and child survey are
1957    selected.  In this case it makes most sense to show all child surveys of
1958    the parent, but we actually showed a slightly arbitrary subset of the
1959    child surveys of the parent.
1960
1961  + The checkbox area in the survey tree is now included in the area which
1962    is considered by mouse-over updates such as highlighting the station or
1963    survey.
1964
1965  + Fix display of double quotes in cavern log window (they were being replaced
1966    with control character 0x16 due to a typo in the code).
1967
1968  + Add shortcuts to buttons in cavern log window.
1969
1970  + Eliminate use of gluErrorString() function which eliminates some
1971    deprecation warnings when building on macOS.
1972
1973  + Reject multiple --survey command line options for now (only the last has
1974    been used for a long time, but now we actually support multiple survey
1975    filtering this matters more).
1976
1977* survexport:
1978
1979  + Report a useful error when trying to convert a .3d file without coordinate
1980    system information to GPS.  Reported by Mark Shinwell.
1981
1982  + Handle multiple redundant --survey command line options correctly.
1983
1984* dump3d: Report station flag "WALL", which was added in 1.2.7.
1985
1986* Minor translation updates.
1987
1988* Update manual for Microsoft Windows changes.
1989
1990* tests/: Add test coverage for warnings about suspect readings
1991
1992* Fix warning when compiling with clang.
1993
1994Changes in 1.2.35 (2018-07-03):
1995
1996* aven:
1997
1998  + Viewing can now be restricted to multiple surveys.  Use the right-button
1999    menu on a survey in the survey tree and select "Show" to enable checkboxes
2000    for that survey and all its siblings.  Only the selected surveys are shown
2001    on screen, printed and exported.
2002
2003  + Don't open a survey when its name is double clicked.  This was happening
2004    due to code added to "allow double-clicking to work on wxMSW >= 2.8.11".
2005    However, reverting that change still seems to allow double-clicking to work
2006    on both wxMSW and wxGTK, but fixes the unwanted additional opening of the
2007    survey.
2008
2009  + Pick initial survey scaling based on whichever of the window width or
2010    height gives the smaller scale.  Previously we always used the window
2011    width, which can result in parts of the cave being outside the initial
2012    view.  Reported by Wookey.
2013
2014  + Drop ability to specify a PROJ string in the export dialog.  This was added
2015    to allow exporting to formats such as GPX before we added support for
2016    specifying the projection in .svx files, and that support is now mature.
2017
2018  + DXF export now uses 2 decimal places (was 6) for the bounding box, for
2019    consistency with the precision used for coordinates.
2020
2021  + Fix handling of surface flag during export.  In formats which discriminate,
2022    legs could previously have got assigned the wrong status.
2023
2024  + Fix bug which probably prevented aven starting when OpenGL double buffering
2025    is unavailable.  This is unlikely to affect any common configurations.
2026
2027  + (Microsoft Windows version): Fix loading of 3d files with non-ASCII
2028    filenames.  Issue reported by Matic.
2029
2030  + (Microsoft Windows version): Fix incorrect display of some toolbar icons.
2031    Probably broken since 1.2.17.
2032
2033* survexport: New command-line export program which uses aven's export code.
2034  Replaces 3dtopos, cad3d and findentrances, since it can do all that these
2035  tools could do, plus much more.
2036
2037* Merge more Spanish i18n updates from Evaristo Quiroga.
2038
2039* Minor updates to various other translations.
2040
2041* img library:
2042
2043  + Now supports reading from and writing to an existing FILE*.
2044
2045  + Improve API documentation.
2046
2047* (Microsoft Windows version): Fix packaging to include wxWidgets translation
2048  files like it was supposed to, which fixes a few missing translations.  This
2049  was probably broken by changes in 1.2.8.  Reported by Evaristo Quiroga.
2050
2051* (Microsoft Windows version): Drop two options from explorer bindings.
2052  "Convert to DXF" and "Convert for hand plotting" have both been supported via
2053  aven for a while, and that's a more useful way to access them as you can
2054  control what gets exported.
2055
2056Changes in 1.2.34 (2018-03-24):
2057
2058* aven:
2059
2060  + (Microsoft Windows version): Fix error on startup in the pre-built version
2061    of 1.2.33.
2062
2063  + (Microsoft Windows version): Now using wxWidgets 3.0.4 (was 3.0.2).
2064
2065Changes in 1.2.33 (2018-03-22):
2066
2067* aven:
2068
2069  + Reliably disable scale bar in perspective view.  This is supposed to happen
2070    (because the scale across the screen varies in perspective view) but
2071    actually the scale bar stayed around until an update was forced for another
2072    reason.  Spotted thanks to Pedro Silva Pinto.
2073
2074  + Make "no date"/"not in loop" colour grey.  The white was a bit bright and
2075    made it harder to see the legs that had colours.  The grey now used is
2076    within the brightness range of the other colours.  Fixes #94, reported by
2077    Erin Lynch.
2078
2079  + Fix KML export - exporting both survey legs and station names resulted in a
2080    malformed KML file.  This bug was introduced in 1.2.30 when support for
2081    exporting passages and walls was added.  Reported by Erin Lynch in #90.
2082
2083  + Consistently use 2 decimal places for altitude in KML output.  Some places
2084    used 8 decimal places which is appropriate for lat and long, but clearly
2085    overkill for an altitude in metres and increases the file size
2086    unnecessarily.
2087
2088  + Right-align bearing widget in print/export dialog.  The change to allow the
2089    value to wrap round from 360 to 0 in 1.2.27 inadvertently made this control
2090    left-aligned (due to incorrect wxWidgets documentation of the default style
2091    for this control).
2092
2093  + (Unix version): Work around wxWidgets bug so that custom cursors work
2094    under GTK3.
2095
2096  + (Unix version): Update GTK version reporting - report GTK3, and don't
2097    bother to report subversions of GTK2 (it seems to be fairly arbitrary
2098    which subversions wxWidgets defines constants for).
2099
2100  + Update code to work without warnings when using wxWidgets 3.1.0 (the
2101    current development version).
2102
2103  + Make movie export code compatible with upcoming FFmpeg 3.5 release.
2104    It should still work with the older versions that worked before this
2105    change.  Reported by James Cowgill in https://bugs.debian.org/888334
2106
2107* cavern:
2108
2109  + Warn about 2 digit years.  We can't change the assumption that these are
2110    19xx without risking breaking existing datasets, but the further we get
2111    into this century, the more likely such an assumption is to catch someone
2112    out.  The warning can easily be quashed by explicitly adding the assumed
2113    "19".
2114
2115* The Spanish translation is now up to date once more, thanks to updates from
2116  Evaristo Quiroga.
2117
2118* Merge French translation updates from Jean-Marc.
2119
2120* Fix transposed German Northing and Easting labels.  Fixes #95, reported by
2121  milosch.
2122
2123* Fill in missing translations of "Easting", "Northing", "E" and "N" for
2124  Bulgarian, Greek, Hungarian, Polish and Russian based on other existing
2125  translated messages.
2126
2127* Align .pos file headings better with columns of coordinates below for
2128  Indonesian and Polish.
2129
2130* Fix handling of the message string "error" before messages loaded.  If
2131  there's an error loading messages, we need this message to report it.
2132  Reported by Martin Sluka.
2133
2134* Fix a few compiler warnings.
2135
2136* img library: Fix extracting leaf survey name for survey title.  When there
2137  are three or more levels of survey, we were taking everything after the first
2138  dot rather than everything after the last dot.
2139
2140* Fix problems with testsuite on macOS:
2141
2142  + cavern.tst: Skip "ONELEG" testcase on case-insensitive filing systems
2143    - this test isn't meaningful unless the filing system is case-sensitive,
2144    but happens to fail if it isn't.
2145
2146  + cavern.tst: Workaround limitations of Apple's sed.
2147
2148  + aven.tst: Fix not to hang on macOS.
2149
2150  + smoke.tst: Remove aven testcases which duplicate those in aven.tst.
2151
2152* Clean up handling of support files in relocatable installs - this is now
2153  detected at run time on macOS.
2154
2155* Split out macOS Aven.app creation into a make rule so it can be easily used
2156  by the homebrew formula.
2157
2158* buildmacosx.sh:
2159
2160  + Fix when WX_CONFIG not specified - this was giving a confusing error like:
2161    ./buildmacosx.sh: line 163: --cc: command not found
2162
2163  + Use wxWidgets 3.0.4.
2164
2165* Stop checking wx-config --ldflags as this option was removed in wxWidgets 2.6
2166  and we currently require 2.8 or newer.
2167
2168Changes in 1.2.32 (2017-07-08):
2169
2170* aven:
2171
2172  + Make splays on printouts a darker shade of grey.  Reported by Erin Lynch
2173    and Anthony Day.
2174
2175  + In export formats which include 3 dimensions (DXF, PLT, GPX, KML, JSON,
2176    POS), the value in the Z dimension was negated.  Bug introduced by fixes
2177    for export of rotated plans and tilted elevations in 1.2.27.  Reported by
2178    Erin Lynch in #89.
2179
2180  + Ignore viewing angles for export formats which work in 3D.  When the
2181    rotation and tilt controls are hidden in the export dialog we were still
2182    using their values to transform the data, so if you set them with for one
2183    export format which support them, then switched to an export format which
2184    doesn't, you'd get bogus coordinates in the exported file.  Bug probably
2185    introduced in 1.2.27 by fixes for exports of rotated plans and tilted
2186    elevations.
2187
2188  + Fix exporting to skencil and Survex .pos formats.  When aven's export to
2189    .pos was added in 1.2.19, the ordering didn't match up and since then .pos
2190    export has produced skencil files and vice versa.
2191
2192  + Don't leave terrain on if loading terrain data fails.  Previously if you
2193    clicked the terrain icon (or via the menu) with no terrain loaded, but no
2194    terrain got loaded (e.g. because the survey data lacks an explicit
2195    coordinate system, or because the file failed to load, or because you
2196    cancelled the dialog) then the terrain icon/menu item was still changed to
2197    "on".
2198
2199  + Disable texturing while drawing terrain.  Previously the terrain got a bit
2200    darker when "Textured Walls" were enabled.
2201
2202  + Force a refresh when "Textured Walls" are enabled or disabled.  Previously
2203    the display wouldn't update right away.
2204
2205* Manual:
2206
2207  + Document how to specify fixed point altitude in feet.
2208
2209  + Explain why *fix warns about unused fixed points
2210
2211* Building from source now requires a compiler with decent support for C++11.
2212  If you're using GCC, then GCC 4.7 should suffice.  This should not be an
2213  onerous requirement - e.g. Debian wheezy and Ubuntu trusty both have a recent
2214  enough GCC.  If special options are needed, these should get probed for and
2215  automatically.  Fixes building 1.2.31 with GCC < 6, reported by Wookey.
2216
2217Changes in 1.2.31 (2017-07-01):
2218
2219* aven:
2220
2221  + Use superscript 'g' symbol instead of word 'grads' in status bar.  This
2222    conserves the limited space available, and we already do this in the
2223    compass and clino indicators so it's more consistent too.
2224
2225  + Show one decimal place on measure line bearing.  Pointed out by Benedikt
2226    Hallinger on the therion list, though I'm sure this has been asked for
2227    before by others.
2228
2229  + Show gradient of the measuring line when both ends are stations.
2230
2231  + Allow selection of text in cavern log window.  Selection was disabled in
2232    1.2.28 because it seemed you couldn't actually copy selected text to the
2233    clipboard, but retesting this now actually works fine for me, both with
2234    current git master with the change reverted, and with code just before the
2235    original change.
2236
2237  + More robust parsing of cavern output (cleanly handle context highlighting
2238    which extends beyond the end of the line).
2239
2240  + Allow showing duplicate legs as dashed lines or hiding them entirely,
2241    with dashed now being the default.  Implemented by Patrick Warren.
2242
2243  + Also allow "Dashed" for splays and "Faded" for duplicate legs.
2244
2245  + Splay legs in surface data are also shown faded.
2246
2247  + Check environment variables VISUAL and EDITOR when looking for editor to
2248    use when a warning or error is clicked on in the cavern log window.  The
2249    specified editor may have a GUI or need to run in a terminal, so we have to
2250    special-case each editor supported, and that means we can pass extra
2251    options needed to position the cursor on the appropriate line/column.
2252    Currently these editors are supported: gvim, nvim, vim, gedit, pluma,
2253    emacs, nano, jed, kate.  Suggested by Wookey.
2254
2255  + Fix handling of non-square terrain data files - the X and Y dimensions were
2256    swapped.  Reported by detrito.
2257
2258  + Improve parsing of DEM data with .hdr file.  Use documented defaults for
2259    more values, and where we only support a subset of values (or a particular
2260    value) check for unsupported values in more cases.
2261
2262  + When colouring by depth, fix colouring and texturing of polygons which
2263    cross depth bands.  The previous problems were most obvious with high
2264    chambers and long legs down deep pitches, especially in for surveys without
2265    much vertical range.
2266
2267  + Support for drawing blobs using point sprites was added in 1.2.28,
2268    but caching that this worked wasn't hooked up properly so the test to
2269    see if this worked would happen at the start of each run.  This is now
2270    cached as intended which should reduce start up time a little when blobs
2271    are drawn in this way.
2272
2273  + Fix drawing of crosses with lines.  This is a fall-back case which is
2274    rarely used as most OpenGL setups will handle a better method, but it was
2275    resulting in crosses with a four-pixel square in the centre - now the
2276    centre should be a single pixel.
2277
2278* cavern:
2279
2280  + Allow *data with no arguments to reset the current style - useful for
2281    entering passage data where there are side passages.
2282
2283  + Fix hang processing file without newline at end.  This bug was introduced
2284    by changes in 1.2.28.  Reported by Mark Brown.
2285
2286  + (Mac OS X and Microsoft Windows versions): Build with newer version of
2287    PROJ library which fixes buggy handling of *fix with lat-long coordinates.
2288    Also add a testcase to the testsuite to alert users building for themselves
2289    with an affected PROJ version on any platform.  Reported by Ross Davidson.
2290
2291  + Fix cavern to handle Compass .DAT with no survey team.  Previously this
2292    resulted in the bogus error: Expecting numeric field, found "FROM"
2293    Reported by Erin Lynch.
2294
2295  + Handle UTF-8 "BOM" at start of .svx files.  Unicode doesn't recommend its
2296    use, but Microsoft stuff seems to like to create files with it in, and the
2297    error cavern currently reports for such files is very confusing, so it
2298    seems best to just handle it.  Reported by Rob Eavis.
2299
2300  + Change a couple of messages to use double quotes for consistency with all
2301    other messages.
2302
2303* extend:
2304
2305  + Now runs a bit faster.
2306
2307  + Splays are now carried over the extended survey.  The current handling
2308    is simplistic, but should do a good enough job to be more useful than
2309    discarding splays.  The splays at each station are all rotated together
2310    based on the bearing between the stations either side of the current one
2311    along the first path extended through that station.  This nicely handles
2312    dead ends and the situation at the top or bottom of a pitch, and should
2313    tend to pick an angle close to the passage orientation along a traverse.
2314    It's weakest at junctions.  Feedback (especially examples which could
2315    be handled better) most welcome.
2316
2317* French translation is now up to date again, thanks to Jean-Marc.
2318
2319* Remove erroneous menu shortcut markers from Polish translations.
2320
2321* Fill in some missing translations in several languages by using message
2322  translations from therion.
2323
2324* Add note to *fix documentation to clarify the coordinate order with *cs
2325  long-lat.  Issue raised by Ross Davidson.
2326
2327* Fix errors in documentation of *units: "DEG" should be "DEGS", and
2328  "MINUTES" has been supported for ages but wasn't documented.  Reported by
2329  Footleg.
2330
2331* Fix a few typos in the documentation.
2332
2333* Fix compilation warning with recent GCC.
2334
2335Changes in 1.2.30 (2016-10-03):
2336
2337* aven:
2338
2339  + (Microsoft Windows version): Fix crash when trying to print or export
2340    (probably introduced in 1.2.28).  Reported by Brian Clipstone.
2341
2342  + Report error if terrain file contains no terrain data in area of survey.
2343    Suggested by detrito.
2344
2345  + Errors when writing an export file were reported with the wrong filename
2346    - the .3d file, not the filename we were trying to write to.
2347
2348  + Export to KML now supports exporting passages, walls and cross-sections.
2349    Addresses the remainder of ticket #4.
2350
2351* Add man page for dump3d.
2352
2353Changes in 1.2.29 (2016-09-27):
2354
2355* aven:
2356
2357  + Fix SVG output with non-ASCII characters (the charset in the SVG file
2358    is now set to UTF-8 not ISO-8859-1).
2359
2360  + (Microsoft Windows version): Fix error dialog on startup in pre-built
2361    version.  Reported by Brian Clipstone.
2362
2363* Manual: Add link to TerrainData wiki page.  Omission highlighted by Erin
2364  Lynch and "detrito".
2365
2366* Fix to build without FFmpeg/libav and with older versions, broken by changes
2367  in 1.2.28.  Reported by James Begley.
2368
2369Changes in 1.2.28 (2016-09-24):
2370
2371* cavern:
2372
2373  + Show the contents of the line after error and warning messages while
2374    processing survey data, and indicate the region of the line in many cases
2375    in the same style that compilers such as GCC and clang use (using the
2376    column number we already have, plus new width information).  Based on a
2377    patch from Mateusz Golicz.
2378
2379  + Add column and width information for many more error and warning messages.
2380
2381  + Fix column for "Separator in survey name" warning.
2382
2383  + Improve warnings when using a backclino with range 0-180 degrees (reusing
2384    the same machinery we already have for a forward clino with range 0-180
2385    degrees).
2386
2387* aven:
2388
2389  + Include LRUD in printout/export of extended elevations, broken by
2390    improvements to export of tilted elevations in 1.2.27.  Reported by Anthony
2391    Day.
2392
2393  + Name <trk> tags in GPX output, so Garmin GPS units name the imported track
2394    usefully.  Reported by Anthony Day.
2395
2396  + Remember scale from previous print or export operation in the same run of
2397    aven.  Suggested by Stuart Bennett.
2398
2399  + Convert range indication below shown line to a highlight on that region
2400    of the line in cavern log window.
2401
2402  + Fix colouring of error/warning without column in cavern log window.
2403
2404  + Fix click on error/warning without column in cavern log window.
2405
2406  + Fix highlight of translations of "error" or "warning" containing non-ASCII
2407    characters.  This fix for this only works with a Unicode build of
2408    wxWidgets, but as of wxWidgets 3.0, all builds are Unicode, so this
2409    shouldn't be much of a problem as wxWidgets 2.x is close to obsolete now.
2410    Reported by Mateusz Golicz.
2411
2412  + Disable selection of text in cavern log window - you can't currently copy
2413    it to the clipboard, so until that's implemented it seems better to disable
2414    the ability to select it.  Reported by Wookey.
2415
2416  + Avoid special "1000" scale entry when exporting.
2417
2418  + Show 1 page when "One Page" selected.
2419
2420  + Reload processed data when restricting view.  Fixes failure when
2421    restricting view on data just processed via aven.  Spotted by Andrew
2422    Atkinson and myself.
2423
2424  + Don't hide blobs and crosses behind terrain.  Reported by Jenny Black.
2425
2426  + Fix rendering of crosses using point sprites.  The texture being used was
2427    misaligned relative to the image used for the visual fidelity check, so the
2428    check always failed and point sprites would never be used.  Where point
2429    sprites are supported, they're probably the fastest option - on my netbook
2430    this change improves FPS by ~6 fold when displaying crosses for a large
2431    survey.
2432
2433  + Support drawing blobs using point sprites.  About 5 times faster than using
2434    lines on my netbook.
2435
2436  + Recheck how best to draw crosses and blobs on the first run after Survex
2437    is upgraded (or downgraded) as the rendering code may have changed (we
2438    already recheck when the OpenGL hardware or driver changes).
2439
2440  + Change "MPEG" export to be MPEG4 (.mp4) rather than MPEG1 (.mpg).
2441    MPEG4 produces smaller output of higher quality, and should be widely
2442    supported these days.  And I can't get the MPEG1 output to work without
2443    buffer underflows, resulting in a file which doesn't play without
2444    glitches.
2445
2446  + Add OGG video to the list of formats - it's more compact than the others
2447    we currently list, though slower to write.
2448
2449  + Fix export to movie formats for which libav/FFmpeg needs to seek the file
2450    being written.  This was broken by changes in 1.2.27.
2451
2452  + Overhaul movie export for the current FFmpeg API, fixing deprecation
2453    warnings when building against a recent version.
2454
2455  + (Microsoft Windows version): Fix corrupted exported movie files.  1.2.27
2456    changed the movie export code to allow writing to files with non-ASCII
2457    characters in the names, but the new code failed to open the file in binary
2458    mode, leading to corrupt output.  Fixes #81, reported by Erin Lynch.
2459
2460  * (Microsoft Windows version): Pre-built version now uses FFmpeg 3.1.3 for
2461    movie export.
2462
2463  * (Mac OS X version): Pre-built version now uses FFmpeg 3.1.3 for movie
2464    export.
2465
2466* Fix to build without FFmpeg/libav, broken by changes in 1.2.27.  Reported by
2467  James Begley.
2468
2469* The Polish translation is now very close to being complete, thanks to a
2470  substantial update from Mateusz Golicz.
2471
2472* Merge catalan translation updates from Adolfo Jayme.
2473
2474* (Microsoft Windows version): Map LANG_CHINESE to zh_CN not zh so Chinese
2475  messages get used automatically.
2476
2477* cavern.tst: Remove random : from after ] - dash ignores the extra character,
2478  but it causes this test to fail if /bin/sh is a different shell (e.g. bash).
2479
2480* cavern.tst: Add expected output for more testcases.
2481
2482* Remove unwanted execute bit from some testcase data.
2483
2484* Use https for more URLs which support it.
2485
2486Changes in 1.2.27 (2016-06-06):
2487
2488* aven:
2489
2490  + Right click on a survey in the survey tree now gives a pop-up menu
2491    with "Hide others", which restricts the view to just that survey
2492    and any subsurveys.  Right click on the root of the survey tree
2493    gives a menu with "Show all" to undo any restriction in effect.
2494    (Currently these are implemented by reloading the file and using
2495    the same machinery as the --survey= command line option, but that will
2496    probably change in the future).
2497
2498  + If there's a sub-survey restriction (from the --survey= command line
2499    option or the new UI described above) it is now shown in brackets after
2500    the survey tree root.
2501
2502  + When reloading a survey, preserve the current view position (previously
2503    the view was recentred).
2504
2505  + When reloading a survey, actually preserve the current scale factor
2506    (this was meant to happen, but the adjustment was applied in the
2507    wrong direction).
2508
2509  + New "File->Extended Elevation..." menu item provides a way to generate
2510    extended elevations for simple cases without having to use the command
2511    line.  Suggested by Fleur Loveridge.
2512
2513  + Don't process key presses if accompanied by an unexpected modifier key.
2514    In particular, this means that aven no longer interferes with Alt+<function
2515    key> (which is typically handled by the desktop) and Alt+<letter> (which is
2516    typically a menu short cut).  Reported by Владимир Георгиев.
2517
2518  + Reduce file loading time by ~5%.  The station name compare function was
2519    something of a hot spot, and optimising it yielded a nice improvement.
2520
2521  + Allow splay legs to be disabled in when printing and exporting.  Mostly
2522    addresses #60.
2523
2524  + SVG export now shows splay legs thinner and in grey.  See #60.
2525
2526  + Fix export of rotated plans and tilted elevations - previously plans were
2527    always aligned with North up, and elevations which weren't exactly side on
2528    were exported as plans.  Reported by Stuart Bennett.
2529
2530  + Fix offset bounding box for exported elevations.
2531
2532  + In print/export dialog the bearing value now wraps if you scroll up past
2533    360 or down past 0.
2534
2535  + Fix greying out of LRUD-based controls in the print/export dialog when the
2536    view is tilted (i.e. not plan or elevation).  This stopped working in
2537    1.2.18 when the pan and tilt spin controls were changed from integer- to
2538    real-valued ones.
2539
2540  + Printouts now show LRUD as pale grey arrows from the station they are
2541    measured from.  Based on patch from Michael Sargent.  Closes #65.
2542
2543  + Take LRUD into account for printout size.  Fixes #72, reported by Erin
2544    Lynch.
2545
2546  + Update movie export code to work with latest version of FFmpeg.
2547
2548  + Make "Show Log" a toggle, so you can click on the button to take a look at
2549    the log, and a second click returns you to the survey view.
2550
2551  + (Microsoft Windows version): Open the font file in binary mode - it looks
2552    like we were lucky and the font file (or at least its current version)
2553    would have loaded OK in text mode despite being binary data.
2554
2555  + (Microsoft Windows version): Exporting to files with non-ASCII filenames
2556    should now work.
2557
2558* cavern:
2559
2560  + Allow tape or backtape to be omitted.  Reported by Erin Lynch.
2561
2562  + Grid convergence is now corrected for when using automatically
2563    calculated declinations (*declination auto <X> <Y> <Z>).  Requested
2564    by Mateusz Golicz on the mailing list.
2565
2566  + Clear any cached calculated declination upon another *declination auto
2567    with different coordinates.  Previously if the date stayed the same,
2568    a previously cached declination for the old coordinates was used.
2569
2570  + Fix check for end of version number array in *require.  We would check up
2571    to 12 version components, the last 9 being bogus.  In practice, *require is
2572    only likely to be used with up to three components, so this wouldn't be an
2573    issue.
2574
2575  + *begin with an invalid prefix could cause a crash in some cases.  Fixed
2576    by patch from Colin Watson.
2577
2578  + Report column locations for errors to do with readings.
2579
2580* Merge translation updates from Jean-Marc.
2581
2582* img library: Better document which members can be set when writing.
2583  Highlighted by email query about use of img API from Владимир Георгиев.
2584
2585* Document how *declination interacts with *calibrate declination if both are
2586  used in the same dataset.
2587
2588* doc/3dformat.htm: Update details of how changes to the current label buffer
2589  are encoded to reflect changes in v8.  Reported by Angus Sawyer.
2590
2591* Use docbook2man instead of docbook-to-man to generated Unix man pages
2592  from SGML source.  The latter seems to be no longer actively maintained, and
2593  docbook2man now does a similarly good job.
2594
2595* Use https for survex.com links, and for other sites which support it.
2596
2597Changes in 1.2.26 (2016-01-07):
2598
2599* aven:
2600
2601  + (Microsoft Windows version): Fix to be able to process .svx files with
2602    cavern again.
2603
2604* (Microsoft Windows version): Simplify upgrading process with innosetup
2605  installer - if Survex is already installed, we now just install to the same
2606  location and use the same start menu folder.
2607
2608* (Linux version): survex.spec: Update for filetype metadata change in 1.2.25.
2609  Fixes #79, reported by James Begley.
2610
2611* (Linux version): survex.spec: Fix to work with RPM 4.13.  Fixes #79, reported
2612  by James Begley.
2613
2614Changes in 1.2.25 (2016-01-05):
2615
2616* aven:
2617
2618  + Drop broken code which attempts to fix 2D pitches.  Fixes #73, reported by
2619    Erin Lynch.  #76 tracks the issue the removed code was trying (but failing)
2620    to address.
2621
2622  + When animating, don't try to update station info based on mouse movement
2623    over the survey tree.
2624
2625  + Further improve code to handle cavern subprocess in aven.
2626
2627  + Fix jump to error for filenames containing colons when the error location
2628    doesn't have a column number.  Bug noted by Jenny Black.
2629
2630  + If we encounter bad UTF-8 in cavern output, replace it with a red and white
2631    ? in a diamond (previously we gave up showing output at the first bad
2632    sequence).  This can happen if you process a .svx file which isn't UTF-8
2633    encoded.
2634
2635  + (Unix version): Don't try to set the terminal window title when opening an
2636    editor from the cavern log window - gnome-terminal no longer supports this,
2637    and there doesn't seem to be a portable option for specifying the title for
2638    terminals which do still support this.
2639
2640  + (Microsoft Windows version): Also quote for cmd.exe so that paths with
2641    spaces in work reliably.  Reported by Marco Cotto.
2642
2643* cavern:
2644
2645  + Improve error for mismatched fore/back-sight plumbs, reported by Andy
2646    Edwards (see #78).
2647
2648  + Fix to use correct sd for backcompass.  We were using zero instead, the
2649    most obvious effect of which was that the threshold for warning about
2650    differing COMPASS and BACKCOMPASS was about 71% of what it should have
2651    been, so we were warning in more cases than we should have been.
2652
2653  + Implement support for specifying a length on backsights - if you're using
2654    something like a disto-x, you'll get a distance reading for the backsight
2655    too.  Fixes #71, reported by Erin Lynch.
2656
2657  + Make line counting more robust to mixed line ends.  Noticed in example file
2658    from Pete Smart (see #69).
2659
2660* extend: New --show-breaks option which adds a leg flagged as surface survey
2661  between each points at which a loop has been broken.  Suggested by Jenny
2662  Black.
2663
2664* (Unix version): Update filetype metadata to work with modern desktops.
2665
2666* Fix incorrect reporting of errors reading and writing processed survey data.
2667  Since 1.2.8, the error strings corresponding to IMG_CANTOPENOUT,
2668  IMG_BADFORMAT and IMG_DIRECTORY have been mixed up (this doesn't affect
2669  external programs using the img library, only Survex).  Reported by Jenny
2670  Black.
2671
2672* Add missing options to extend man page and --help output.  Noted by Jenny
2673  Black.
2674
2675* Document Document Ctrl+cursor keys for rotating and tilting in aven man page.
2676
2677* Fix broken SGML markup in manual.
2678
2679* Fix typo in manual reported by Jenny Black.
2680
2681* Update vim syntax file for newer commands, etc.
2682
2683* Minor translation updates.  Thanks to Piotr Strębski and Jean-Marc.
2684
2685* Fix to compile with FFmpeg 2.9.  Reported by Andreas Cadhalpun in
2686  https://bugs.debian.org/803863
2687
2688* Stop maintaining ChangeLog files.  They make merging patches harder, and stop
2689  'git cherry-pick' from working as it should.  The git repo history should be
2690  sufficient for complying with GPLv2 2(a).
2691
2692* (Microsoft Windows version): The installer requires admin privileges on Vista
2693  and later and OS versions older than Vista are past end of life, so drop code
2694  which tries to set up the registry differently depending if we have admin
2695  privileges or not.
2696
2697Changes in 1.2.24 (2015-09-23):
2698
2699* aven:
2700
2701  + (Microsoft Windows version): Fix the cavern log window.  Reported by Brian
2702    Clipstone.
2703
2704  + (Microsoft Windows version): Add workaround to avoid breakage in Therion.
2705    Reported by Jenny Black.
2706
2707  + If wx was built with thread support, aven now runs cavern from a separate
2708    thread, which works much better under wxMSW (where we can't use select),
2709    and also seems a bit smoother on Linux.
2710
2711  + Fix handling of encoding of filenames when the operating system has no
2712    locale installed corresponding to the language selected for Survex's
2713    messages.
2714
2715  + Undo accidentally committed debugging code which was sending message to
2716    the terminal in 1.2.23.
2717
2718* (Linux version): configure now looks first for wx-config-3.0, which Fedora's
2719  wx3 packages have.  Reported by James Begley.
2720
2721* Indonesian translation fully up to date again.
2722
2723* Manual: Document anonymous stations, based on the text from NEWS.  Reported
2724  by Wookey.
2725
2726Changes in 1.2.23 (2015-09-06):
2727
2728* aven:
2729
2730  + Updating the cavern log window is now much smoother, especially on slower
2731    machines.
2732
2733  + Show "busy" mouse cursor while processing survey data.
2734
2735  + Fix an assertion if you try to start processing a survex file while one is
2736    already being processed.
2737
2738  + Processing a .svx file with an error now still adds it to the file history.
2739    Reported by Martin Green.
2740
2741  + Fix the orientation of the starting end of tubes.
2742
2743* cavern:
2744
2745  + New *ref command to allow specifying an external reference (e.g. where to
2746    find the original survey notes).
2747
2748  + Drop support for showing percentage progress in cavern.  It's confusing in
2749    a multiple-file dataset as it shows progress in the current file so jumps
2750    around.  It also slows down processing, and on a slow machine you'd don't
2751    want that, while on a fast machine processing isn't slow enough for the
2752    progress display to be useful.
2753
2754* French translation is now completely up to date, thanks to Michel Bovey.
2755
2756* Bundle proj's EPSG and ESRI code lists in the installers for MS Windows and
2757  OS X so that things like "*cs EPSG:29903" work.  Reported by Graham Mullan.
2758
2759* (Microsoft Windows version): Process survey data with aven rather than
2760  running cavern.
2761
2762* (Microsoft Windows version): Installer built with InnoSetup 5.5.6 (recent
2763  releases have been built with 5.5.3) to see if that solves Ray Duffy's
2764  reported issue with not having file associations for .svx files created.
2765
2766Changes in 1.2.22 (2015-08-17):
2767
2768* aven:
2769
2770  + Ensure that the window has a depth buffer.  Whether it does by default
2771    seems to vary depending on OS and maybe graphics card.  Fixes #55 (terrain
2772    is no longer visible through itself), and also the rendering of passage
2773    tubes.  Thanks to Martin Green for pointing me in the right direction for
2774    finding this fix.
2775
2776* cavern:
2777
2778  + Fix *declination with an angle to actually work.
2779
2780  + Fix assertion if we try to identify a hanging survey by an anonymous
2781    station.
2782
2783  + Improve errors for invalid survey names in *begin, *end, *equate and
2784    *export.
2785
2786Changes in 1.2.21 (2015-07-28):
2787
2788* aven:
2789
2790  + Fix exporting to KML and other text-based formats to always use "." for the
2791    decimal separator - previously "," would be used when the user's locale
2792    specified this for the decimal separator.  Reported by Jan Schorn.
2793
2794  + Implement exporting of survey legs in KML format.
2795
2796  + Put "paddle" placemarker icons on stations in exported KML files, using the
2797    same colour coding for entrances, fixed points and exported points as aven
2798    does.
2799
2800  + Remove the "Coordinate projection" field from the print dialog, as it isn't
2801    relevant there.  Reported by Wookey.
2802
2803  + Fix the initial scale for small caves (since 1.2.18 the initial scale has
2804    been too small).  Reported by Wookey.
2805
2806  + Don't rescale if the same file is reloaded, but adjust the volume diameter
2807    as appropriate.
2808
2809  + Use wxGetenv() to read the SURVEXEDITOR variable, so we can accept Unicode
2810    values on Windows.
2811
2812* cavern:
2813
2814  + Fix coordinate systems using latitude and longitude - PROJ.4 wants these in
2815    radians, but we were passing degrees, which would generally cause the
2816    conversion to the output coordinate system to fail.  Reported by Wookey.
2817
2818  + Fix *fix with standard deviations when *cs is in use, give an error for use
2819    of *fix with standard deviations before *cs.
2820
2821  + Add new *declination command with support for setting the declination
2822    automatically from the IGRF model based on the survey date.  Thanks to the
2823    Therion developers for the IGRF support code, which we're reusing.
2824    Fixes #54, reported by Wookey.
2825
2826  + Allow the units for the zero error to be specified, making it easier to
2827    specify calibration with a scale if you measure the zero error externally
2828    (rather than using the instrument itself).  Fixes #61, reported by Andrew
2829    Atkinson.
2830
2831  + Report the error from PROJ when coordinate conversion fails as part of the
2832    actual error rather than on a separate line.
2833
2834  + Fix use after free after *solve.  This only occurs if a leg between the two
2835    exact same stations appears right before and right after the *solve, which
2836    is unlikely in real data, but the testsuite has an instance of this.  This
2837    was introduced by the repeat leg averaging added in 1.2.17.
2838
2839  + Fix small memory leak when solving network.  This doesn't really matter
2840    when solving at the end of processing as cavern will exit after that, but
2841    if *solve is used we continue processing after solving.
2842
2843* Remove compatibility handling for specifying a country variant of a language
2844  in SURVEXLANG using "-" with a lower case country code (e.g. "en-us") - we
2845  changed to the standard "en_US" way back in 2001.  This code was mangling
2846  character sets with a "-" in, and is no longer useful.
2847
2848* Ignore any "@<something>" modifier in the language code.
2849
2850* Improve documentation of magnetic declination handling, and cover the new
2851  "*DECLINATION" command.
2852
2853* Document aven's command line options in the manual and its man page.
2854  Reported by Jenny Black.
2855
2856* Point to '*case' and '*truncate' from the 'SEE ALSO' sections of each other's
2857  documentation.
2858
2859* Remove references to SpeleoGen from the documentation - it hasn't been
2860  updated for many years, and can't read recent versions of the .3d format.
2861
2862* Strip documentation references to obsolete versions of MS Windows.
2863
2864* doc/HACKING.htm: Update list of debian packages to install to build from git.
2865
2866Changes in 1.2.20 (2015-06-26):
2867
2868* aven:
2869
2870  + When printing, use the top margin rather than the right margin to calculate
2871    the height of the printable area.  In practice, the two values seem to be
2872    the same or very similar by default.
2873
2874  + Avoid assertion if the about dialog image fails to load.  Reported by Phil
2875    Maynard.
2876
2877  + Optimise the size of the about dialog images.
2878
2879  + Add support for reading terrain data which isn't in a .zip file.
2880
2881  + Force a refresh after loading terrain data so that it gets displayed right
2882    away.
2883
2884  + Make checks for terrain data extensions in zip files case insensitive.
2885
2886  + If reading terrain data fails, always report an error and never try to
2887    display it.
2888
2889* cavern: Allow clino readings in diving style data, suggested by Andrew
2890  Atkinson.  Currently these readings are ignored, but a future version will
2891  check that they're consistent with the angle given by the depth gauge and
2892  tape, and perform suitable averaging.
2893
2894* Remove lingering traces of svxedit.
2895
2896* configure: Fix to allow compiling without libav/ffmpeg, as was possible
2897  before 1.2.19.
2898
2899* (Unix version): Install the filetype and aven application icons under
2900  /usr/share/icons/hicolor, which is where they're expected to be these days.
2901
2902* (Unix version): Add %f to Exec in survex-aven.desktop.
2903
2904* (Mac OS X version): Remove useless extra copy of about box images from OS X
2905  disk image.
2906
2907* (Mac OS X version): Only ship one copy of each of the translations.
2908
2909* (Mac OS X version): Reduce the size of the aven binary by disabling a load of
2910  libav features we don't use.
2911
2912* (Microsoft Windows version): Reduce the size of the aven binary by disabling
2913  a load of libav features we don't use.
2914
2915* (Microsoft Windows version): Update message files to fix a missing Chinese
2916  message in the installer.
2917
2918Changes in 1.2.19 (2015-06-18):
2919
2920* aven:
2921
2922  + Fix exporting to GPX, KML and HPGL, which all failed to write the header to
2923    the exported file in 1.2.18.
2924
2925  + Add exporting to Survex .pos format.
2926
2927  + If the measuring line isn't currently active, pressing "Escape" will now
2928    exit full screen mode.
2929
2930  + (Mac OS X version): Change the shortcut for full screen mode to be the
2931    standard Ctrl+Command+F (rather than Shift+Command+F which we have been
2932    using since 1.2.7).
2933
2934  + (Mac OS X version): When we centre the view on the station this can
2935    generate a mouse move event, so clear the variable which says we are
2936    dragging before we process a left click on a station.  This avoids random
2937    rotations of the survey when clicking on a station, reported in #47 by Hugh
2938    St. Lawrence.
2939
2940  + (Mac OS X version): Force use of a non-native toolbar to stop the toolbar
2941    icons from being rescaled and looking fuzzy.
2942
2943  + (Mac OS X version): Remove code added in 1.2.18 which tries to set stop the
2944    toolbar icons from being rescaled, but which requires an unreleased version
2945    of wxWidgets, had a typo in, and doesn't actually seem to work anyway.
2946
2947  + (Mac OS X version): Drop out of full screen mode if the mouse is mode to
2948    the top of the screen, since we can't seem to display the menu bar in this
2949    case like we do on other platforms.
2950
2951  + (Mac OS X version): Enable aven's movie export feature.
2952
2953  + (Mac OS X version): Enable wxDisplay when building wxWidgets to better
2954    support multi-monitor setups.
2955
2956  + (Mac OS X version): Silence warning visible when aven is run from a
2957    terminal about a missing CFBundleTypeRole.
2958
2959  + When reading terrain data from a .zip file, report an error if the .zip
2960    file is bad, or if it doesn't contain any terrain data we recognise.
2961
2962  + Tweak error message in terrain reading code to distinguish two failure
2963    cases.
2964
2965  + Add viewing angles and scale to footer, and shorten some of the other items
2966    to make room for this extra information.  (Fixes ticket #52, reported by
2967    Erin Lynch)
2968
2969  + If the footer is wider than the printout width, scale down the font used
2970    so that it exactly fits; if the footer is narrower, than space out the
2971    items in in so it uses the full width.
2972
2973  + If the saved size for aven's window exceeds the current display size
2974    (mostly likely because we're now plugged into a smaller monitor), then
2975    reduce the size of the window to fit the display.  If the saved size is <
2976    (480x320), increase it to at least that, as aven isn't usable in a smaller
2977    window.
2978
2979  + Remove crude bodge which tries to pick a nicer initial window size when
2980    using wxWidgets without wxDisplay on a multi-monitor setup - aven now opens
2981    with the same size window it had when it was closed, so the initial size is
2982    only relevant on the first ever run.
2983
2984* Assorted translation updates.  Notably Indonesian is at 100% again.
2985
2986* Stop trying to catch and report signals.  The only real reason to do it is so
2987  we can say "Bug in program detected! Please report this to the authors"
2988  before we exit, but when the program crashes that's pretty obvious.  In aven
2989  we try to pop up a message box for this message, which may fail due to
2990  whatever caused the signal, while with the command line tools there's no
2991  great benefit over just letting the shell report the signal.
2992
2993* Use pkg-config to probe for libav and proj, which sorts out the correct flags
2994  for building on OS X against a static install of libav.
2995
2996Changes in 1.2.18 (2015-06-03):
2997
2998* aven:
2999
3000  + Add support for reading terrain data (from a zip file containing either an
3001    SRTM .hgt file, or an ESRI .bil file and associated metadata files), and
3002    rendering it as a transparent surface.
3003
3004  + Remove actions from 'Orientation' and 'Rotation' menus which you wouldn't
3005    sanely want to perform from the menu.
3006
3007  + Create a "Colour by" submenu of the "View" menu to house the various
3008    colouring options.
3009
3010  + Add "Colour by Gradient" and "Colour by Length".
3011
3012  + Make the button to dismiss the "About" dialog "OK" rather than "Close",
3013    which seems more logical, and also allows the dialog to be closed by
3014    pressing "Escape".
3015
3016  + Destroy any existing clipping region before we write the page footer.
3017    Hopefully solves ticket #52, reported by Erin Lynch.
3018
3019  + Don't round bearing and tilt angles to integers when printing and
3020    exporting.
3021
3022  + Add passage export for EPS format.  (Partly addresses ticket #4)
3023
3024  + Add JSON export.  This should be regarded as experimental, and the format
3025    is quite likely to change.
3026
3027  + Pressing F6 now toggles the display of rendering stats, currently FPS
3028    (Frames Per Second) and the number of triangles in the terrain mesh.
3029
3030  + Add a menu item and toolbar button to show the cavern log window if the
3031    currently shown survey data was processed by aven.  Reported by Hugh St
3032    Lawrence in #47, and by Dave Clucas and others previously on the list.
3033
3034  + Add "Save Log" button to Aven's cavern log window.
3035
3036  + In cavern log window, highlight "error" markers in red and "warning"
3037    markers in orange.
3038
3039  + Rework code to read cavern's output.  In particular, we no longer mix
3040    buffered and non-buffered system calls.
3041
3042  + Aven's support for reading colours and font sizes for printouts from
3043    print.ini has never worked - the contents of the ini files are ignored due
3044    to a bug which has been there since the code was added in 2005 - but nobody
3045    has ever complained.  So just strip out that code entirely - we should
3046    support setting the colours and font sizes, but a GUI interface for setting
3047    them would be better.
3048
3049  + Fix to compile with a Unicode build of wxWidgets 2.8.  Reported by Bill
3050    Gee.
3051
3052  + Take the width of the messages used above the compass and clino into
3053    account when calculating how much space to allow for them - now the labels
3054    won't overlap or be cut off in translations where they are long.
3055
3056  + (Mac OS X version): Attempt to address the size of the toolbar icons.
3057
3058* cavern:
3059
3060  + Reject *fix with SDs which aren't all positive.  (fixes#2, reported by
3061    susscorfa).
3062
3063  + Use the currently set units when outputting measurements in warnings,
3064    errors, and the stats at the end of the run.  Requested by Bill Gee.
3065
3066  + Include column number when a *include file isn't found.
3067
3068  + Show 'error' in front of error messages, like we show 'warning' in front of
3069    warnings.  Fixes #48, reported by Wookey.
3070
3071  + Increase the threshold for warning that fore and back measurements differ
3072    from 2 SDs to 3 SDs.
3073
3074* findentrances: If the 3d file specifies the coordinate system, use it.
3075
3076* svxedit: Remove svxedit - while an editor with built-in knowledge of survex
3077  would be nice to have, svxedit doesn't really offer that, and it looks ugly
3078  in a modern desktop.
3079
3080* If we run out of memory while reading a processed survey data file, include
3081  the filename in the error message.
3082
3083* Many translation updates - notably Indonesian and Russian are now the two
3084  most complete translations.
3085
3086* (Microsoft Windows version): Add code page 1252 mappings for fancy quotes.
3087
3088* Transliterate gradient and infinity symbols if the current character set
3089  lacks them.
3090
3091* Add SVG version of .plt icon.
3092
3093* Manual:
3094
3095  + Add complete list of quantities you can set SDs for.  Thanks for Wookey for
3096    highlighting that the previous list was incomplete.
3097
3098  + Document averaging of a group of repeated readings.
3099
3100  + Add a link to the sample data from the manual.
3101
3102  + Remove references to contact addresses which are no longer there.  Remove
3103    offer to post people floppies, and references to a CD image which isn't
3104    available for download.
3105
3106* Remove non-breaking spaces from the diffpos and extend manual pages, as they
3107  actually make the output formatting worse (presumably these used to work
3108  around a since-fixed bug in one of the docbook processing tools).
3109
3110* doc/TODO.htm: Update.
3111
3112* Fix to compile without warnings with 'g++ --std=gnu++11'.
3113
3114Changes in 1.2.17 (2015-02-24):
3115
3116* MacOS X version:
3117
3118  + Update INSTALL file with current status.
3119
3120  + Aven.app now has a custom icon.
3121
3122  + Add icons for all the filetypes supported.
3123
3124  + Add Finder actions for .svx, .3d, .plt and .pos files.
3125
3126  + aven: Hide the status bar and tool bar in Full Screen mode, as wx doesn't
3127    currently do this for us.
3128
3129  + aven: Fix short-cut for toggling Full Screen mode.
3130
3131  + aven: Make "About" menu item appear.
3132
3133  + aven: Fix "Close" button in about dialog.
3134
3135  + aven: Make custom cursors black with a white outline to match the standard
3136    OS X cursor.
3137
3138  + svxedit: Now wrapped up in an application bundle as svxedit.app.  It
3139    still doesn't really work like a standard app though - e.g. you can't load
3140    files from Finder (instead run svxedit.app and use File->Open), the font
3141    size of most menu items is wrong, the icon for the app is the wish icon
3142    rather than the svxedit icon, shortcuts use Ctrl not the Cmd key, and
3143    probably more.  I'd probably recommend using another editor (OS X comes
3144    with TextEdit.app for example).
3145
3146  + The documentation is now in a "Docs" directory alongside the apps, rather
3147    than in the rather less obvious "share/doc/survex" directory.
3148
3149  + Default to building for x86_64, since all modern Macs are 64 bit.
3150
3151  + Disable use of liblzma when building wxWidgets for OS X, which was
3152    preventing the build from working on OS X 10.6.8.
3153
3154  + Download wx sources from SF via redirecting link.  Thanks to David A.
3155    Riggs.
3156
3157  + buildmacosx.sh: Handle the mount point for the disk image containing a
3158    space.
3159
3160  + Link with a static build of PROJ for doing coordinate system conversions.
3161
3162  + Build wx with --disable-webview to avoid a compilation failure on OS X
3163    10.10.1.
3164
3165  + Use wx-config --cc and --cxx to get the compilers to use for building
3166    everything else, as wx adds options to them which otherwise cause linking
3167    errors.
3168
3169  + The diskimage (.dmg) file is now compressed with bzip2, which gives a
3170    smaller download.  This means OS X 10.4 is required, but we probably
3171    already need at least 10.5 because that's the minimum version which the
3172    wxWidgets build supports by default.
3173
3174  + Remove unused files and copies of files from the diskimage.
3175
3176* cavern: If the same leg is repeated consecutively, average the readings and
3177  treat as a single leg.
3178
3179* dump3d: Report SEPARATOR used by the file being read.
3180
3181* aven.svg: Fix visual glitch in SVG icon for aven.  Noted by David A. Riggs.
3182
3183* aven:
3184
3185  + Greatly reduce flicker when mouse is moved to the top of the screen in full
3186    screen mode and the menu bar reappears.
3187
3188  + For export formats where scaling is supporting, aven now actually uses the
3189    scale specified in the export dialog (previously it ignored this and used
3190    1:500).
3191
3192  + Reimplement animation so that it's based on angular change per unit of
3193    elapsed time, rather than averaging the time take for the last two scene
3194    redraws.  This gives smoother animation in the face of variable load and
3195    scene redraw time, and should be more consistent between platforms.
3196
3197  + Switching to a point of the compass during auto-rotation now jumps straight
3198    there rather than the two animations fighting.
3199
3200  + Reduce the maximum auto-rotation speed, as the previous limit was uselessly
3201    fast.
3202
3203  + Disable stepping the rotation angle when animating (previously we only did
3204    when rotating).
3205
3206  + Speed up start-up a bit - rather than loading icons from individual PNG
3207    files on disk, compile them into the aven binary.
3208
3209* (Unix version): Add "MimeType" field to desktop files so that file
3210  associations work out of the box with modern desktop environments.
3211
3212* Add start of Hungarian translation from Imre Balogh.
3213
3214* Merge in many updates to the Russian translation from "vsuhachev".
3215
3216* Assorted minor updates to other translations.
3217
3218* Create scalable (SVG) versions of file type icons.
3219
3220* doc/manual.sgml: Remove $Id and $Date markers, as they don't get expanded now
3221  we're using git.
3222
3223* tests/: Improve test coverage in a few places:
3224
3225  + Extend tests of fore and back sights to test calibration of the back
3226    compass.
3227
3228  + Test "Can't calibrate angular and length quantities together" error.
3229
3230  + Check that "*set names ." works when "." is also the decimal point.
3231
3232Changes in 1.2.16 (2014-10-17):
3233
3234* aven: Add KML export (stations only currently).
3235
3236* aven: Allow measuring line to measure from anonymous stations.  (Fixes #44)
3237
3238* aven: Fix corrupted names in exported files.
3239
3240* aven: Fix error log window under wxWidgets >= 2.9 to include the system
3241  information before the first log message like it does under wxWidgets 2.8.
3242
3243* cavern: Add support for "*cs JTSK" and "*cs JTSK03".
3244
3245* tests/: Improve test coverage.
3246
3247* Translation updates for many languages, plus the start of translations to
3248  Greek and Polish.
3249
3250* Fix to build against wxWidgets 3.0 built with assertions disabled.  Reported
3251  by Martin Sluka.
3252
3253* Fix warnings when compiling with clang (which is the default compiler on
3254  Mac OS X).  Reported by Martin Sluka.
3255
3256Changes in 1.2.15 (2014-08-14):
3257
3258* cavern: The *cs command now also supports "long-lat", "s-merc" (for "Web
3259  Mercator"), EPSG and ESRI codes, "eur79z30", "ijtsk" and "ijtsk03".  This
3260  means that we now support all the coordinates systems which Therion does,
3261  except for a few which don't have X=East and Y=North.  The documentation
3262  for *cs has also been improved.
3263
3264* aven: We no longer persist full screen mode between runs - it's not a
3265  standard behaviour of desktop programs, and it's too easy to go into full
3266  screen mode from the menu and then not be able to get out again because you
3267  don't know the required key shortcut. (ticket#39)
3268
3269* aven: When in full screen mode, moving the mouse to the top of the screen now
3270  makes the menu bar appear.  This provides a non-shortcut way out of full
3271  screen mode, as well as making it easier to perform other operations while in
3272  full screen mode.  The current implementation gives an annoyingly flickery
3273  transition, but hopefully we can improve this in future. (ticket#39)
3274
3275* (MacOS X version): If built with wxWidgets >= 3.1.0 (which is still in
3276  development), we now call EnableFullScreenView() which improves the full
3277  screen mode experience on OS X 10.7 and later.
3278
3279* img library: Improve documentation for img_ERROR_INFO.
3280
3281* tests/: Ship some missing .out files and compare.tst.
3282
3283* tests/: cavern.tst testcase back2 is now actually used.  Fix a bug in this
3284  testcase, and extend it to cover a variant of the situation reported as a bug
3285  in therion by Bill Gee to the therion list.
3286
3287* (Linux version) survex.spec: Add run-time requirement on proj and proj-epsg
3288  for the survex package and on tk for the svxedit package.
3289
3290Changes in 1.2.14 (2014-07-05):
3291
3292* img library: Add ability to store a PROJ4 string describing the coordinate
3293  system in use in 3d v8 files.
3294
3295* aven: If the 3d file specifies a coordinate system, then use it for exporting
3296  to formats which need to know (currently GPX).  If the input file doesn't
3297  specify the coordinate system, allow the user to enter a PROJ4 string in the
3298  export dialog.
3299
3300* aven: You can now quickly zoom to a particular area by holding down the
3301  "Shift" key and dragging with the left mouse button to create a rectangular
3302  "rubber band box" around the area you wish to zoom to.  If you release the
3303  "Shift" key while still dragging, the box is centred on the start point
3304  rather than having one corner there.
3305
3306* aven: Fix exporting of passage tubes in elevations and extended elevations
3307  - previously up and down were getting drawn across the page!
3308
3309* aven: Fix "Cancel" to work on the print/export dialog, broken by changes in
3310  1.2.13.  (Reported by Brian Clipstone)
3311
3312* aven: Fix the conditions on which the menu item "Cancel measuring line" is
3313  enabled - previously it was hard to actually cancel it via the menu.
3314  Reported by Hugh St Lawrence.
3315
3316* aven: Fix wx assertion failures when showing hit test debug view on platforms
3317  such as 64-bit Linux.
3318
3319* aven: When viewing from above, show "Plan" above the "clino" which indicates
3320  the tilt angle (instead of "Elevation -90°").
3321
3322* aven: The extended font data now loads faster, and also uses less memory on
3323  64-bit platforms.
3324
3325* aven: Dragging the vertical divider between the side panel and the 3D view
3326  now only updates when you finish the drag, as redrawing continuously just
3327  looks clunky except on an ultra-fast machine.
3328
3329* aven: (German translation) Abbreviate "Blickrichtung" so it doesn't overfill
3330  the space available in the aven UI.
3331
3332* cavern: Add a *cs command to allow setting the coordinate system for *fix
3333  commands, and the coordinate system used for processed survey data.  The
3334  latter is now stored in 3d v8 format files.
3335
3336* cavern: Add support for 'L' flag (exclude from length) in Compass .dat files
3337  and handle it in the same way as the "DUPLICATE" flag in .svx files.
3338
3339* cavern: If there's more than one *fix command with coordinates, still
3340  actually fix the second and subsequent ones, to avoid triggering bogus errors
3341  about unconnected surveys.
3342
3343* cavern: If there's more than one *fix command with coordinates, report the
3344  station name of the previous one, plus the file and line number where it was.
3345
3346* cavern: Fix handling of the rather contrived case of *fix with no coordinates
3347  followed by *solve and then another *fix with no coordinates not to access
3348  freed memory.
3349
3350* dump3d: Report any specified coordinate system.
3351
3352* doc/3dformat.htm: Update to document how the coordinate system is stored.
3353
3354* (Microsoft Windows version): Include dump3d in the installer.
3355
3356* Fix a compiler warning.
3357
3358* Improve test coverage.
3359
3360Changes in 1.2.13 (2014-05-15):
3361
3362* aven: Fix --print option to wait for printing to happen before exiting
3363  (previously it would exit right after opening the print dialog, so you
3364  couldn't actually print anything out using it).
3365
3366* aven: Increase the threshold for how close the pointer needs to be to a
3367  station from 5 pixels to 7 to try to help touchscreen users.  Reported by
3368  Hugh St Lawrence.
3369
3370* aven: Add "fat finger" mode, toggled by pressing F2, to allow investigating
3371  if increasing the minimum pointer to station threshold helps Hugh's problems
3372  with using aven on a touch screen device.
3373
3374* aven: The measuring line was unable to see stations which had just been
3375  revealed by toggling surface or underground legs on - this is now fixed.
3376
3377* aven: Add "hit test grid debug" mode, which shows the hit test grid and how
3378  many entries are in each box (toggled by F3).
3379
3380* aven: Pressing F4 now allows the user to toggle wxWidgets assertion messages
3381  off and back on.
3382
3383* aven: Create the empty hit-test grid data structure lazily, to reduce start
3384  up time a little.
3385
3386* cavern: Improve messages which talk about "tags" and/or "prefixes" in *begin
3387  and *end commands to instead talk about "survey names".
3388
3389* cavern: For ages cavern has warned if you reentered a survey, but this
3390  warning was suppressed if it occurred at the same line of the same file as
3391  the survey was first entered, but this can only happen if you include the
3392  same survey file more than once, which isn't a sensible thing to do for a
3393  file with actual survey data in (you might reasonably do it to set up survey
3394  grade details or something like that).  The warning is now given in this
3395  situation too.
3396
3397* cavern: After 5 warnings about reentering a survey we give up warning about
3398  it, but we used to keep reporting where the survey was originally entered -
3399  this secondary diagnostic message is now silenced when the main message is.
3400
3401* (Microsoft Windows version): Compile C code with optimisation on.
3402
3403* Add the start of a Russian translation, with messages take from therion.
3404
3405* Minor translation updates to French.
3406
3407* Fix compiler warning from GCC.
3408
3409* Testsuite improvements:
3410
3411  + Test that "..." anon station works.
3412
3413  + cavern.tst: Check number of errors returned by all testcases which should
3414    fail and give an error count.
3415
3416  + cavern.tst: Fix to actually fully test everything when builddir != srcdir.
3417
3418Changes in 1.2.12 (2014-04-14):
3419
3420* aven: Fix measuring line to show change in altitude rather than altitude
3421  itself (accidentally broken by changes in 1.2.11).  Reported by Brian
3422  Clipstone.
3423
3424* aven: Fix printing when built with wxWidgets 3.0.
3425
3426* aven: Several visual improvements to printouts:
3427
3428  + Move the numbers below the scale bar down a little so that they don't
3429    overlap the scale bar ticks.
3430
3431  + Set the clipping region after we draw the page border and info box to avoid
3432    clipping the border in print preview.
3433
3434  + Tidy up the appearance of the compass and elevation arrow.
3435
3436* aven: Fix to build with libav 10.  Reported by Moritz Muehlenhoff in
3437  <http://bugs.debian.org/739332>.
3438
3439* aven: Fix to build with older libav where avcodec_free_frame() isn't
3440  available.
3441
3442* (Linux version) survex.spec: Update spec file used for building RPM packages.
3443
3444* (Unix version): Add "Keywords:" entry to .desktop files.
3445
3446* (Unix version): Enable large file support, mostly to support filing systems
3447  which return 64 bit inode values, such as CIFS mounts.
3448
3449* (Microsoft Windows version): Only allow "A-Z" or "a-z" for driver letters,
3450  rather than any character which is a letter in the current locale.
3451
3452* Various translation updates.
3453
3454Changes in 1.2.11 (2014-01-28):
3455
3456* aven: Fix wxWidgets assertion when double clicking on an anonymous station.
3457  Reported by Kevin Dixon.
3458
3459* aven: Embed the font data for the first 256 Unicode characters for use in the
3460  survey pane into the compiled aven binary to reduce start up overhead.  Any
3461  additional characters needed are loaded from a data file only if/when a
3462  character >= U+100 is actually needed (as before).
3463
3464* aven: Fix display of Unicode characters above 256 when there's a character
3465  <= 256 earlier in the same string.
3466
3467* aven: Use the actual width of Unicode characters above 256 rather than
3468  assuming they are 16 pixels wide.
3469
3470* aven: If full screen, don't show the side panel when a new file is opened
3471  (e.g. via Ctrl+O).
3472
3473* aven: Don't give an assertion failure when showing passages for a cave with
3474  no vertical extent.  Reported by Jonny Prouty.
3475
3476* aven: Change terminology in print dialog - say "legend" instead of "info
3477  box".
3478
3479* aven: Add option to show the tilt angle as a percentage gradient.
3480
3481* aven: Show the units (degrees, grads, or percent) for the tilt and bearing
3482  indicators.
3483
3484* aven: All length units are now translatable.
3485
3486* aven: Split log_fl_error helper function out of CHECK_GL_ERROR macro, which
3487  will reduce code size and also the number of deprecation warnings about
3488  gluErrorString on Mac OS X 10.9.
3489
3490* (Microsoft Windows version): aven: Try to work around redraw issues related
3491  to the measuring line by redrawing the whole window, which doesn't seem to be
3492  measurably slower.
3493
3494* cavern: If *units is used to try to set units for LEVEL, PLUMB, or POSITION,
3495  give an error rather than quietly ignoring the attempt.
3496
3497* cad3d: Make cad3d remap control characters and spaces in station names when
3498  generating PLT output in the same way aven does.
3499
3500* Various translation updates (particular thanks to Eric Madelaine and Dennis
3501  Baudys), including the start of a Bulgarian translation, with messages taken
3502  from Therion and elsewhere.
3503
3504* (Microsoft Windows version): On Microsoft Windows 2000 and newer, use
3505  GetUserDefaultUILanguage() to get the UI language to use.  For older
3506  versions, continue to use GetUserDefaultLCID().
3507
3508* (Microsoft Windows version): The Indonesian translation will now be used
3509  automatically when the system language is set to Indonesian.
3510
3511* (Mac OS X version): Fix to build with wx 3.0.0 on OS X 10.9.  Thanks to David
3512  A. Riggs for his work on this.
3513
3514* (Mac OS X version): Update buildmacosx.sh script to use wx 3.0.0, and add a
3515  checksum check for the downloaded wx sources.
3516
3517* Fix a lot of the compiler warnings when building with clang.
3518
3519* doc/manual.sgml: Add missing quantities to the list documented as accepted by
3520  *units: LEFT, RIGHT, UP/CEILING, DOWN/FLOOR (missing entirely);
3521  BACKCOMPASS/BACKBEARING, BACKCLINO/BACKGRADIENT (missing from the main list,
3522  mentioned in list of the units that can be set for them); COUNT (missing
3523  alternative name for COUNTER); DX/EASTING, DY/NORTHING, DZ/ALTITUDE
3524  (incorrectly listed as X, Y, Z).  Reported by Jonny Prouty.
3525
3526* Test suite: Improve test coverage for cavern.
3527
3528Changes in 1.2.10 (2014-01-15):
3529
3530* aven: Fix assertion if two mouse buttons are held down at the same time.
3531  If dragging with more than one mouse button held down, releasing one causes
3532  another which is still held down to take effect.  Reported by Brian
3533  Clipstone.
3534
3535* aven: If we fail to start the external editor when the user clicks on an
3536  error or warning from cavern, show an error box.
3537
3538* aven: If the survey has a title, add it as a top-level <title> element to
3539  exported SVG files.
3540
3541* aven: Escape '<', '>', and '&' in labels in exported SVG files.
3542
3543* aven: In GPX export, set the <time> element to the datestamp from the 3d
3544  file.
3545
3546* aven: Don't try to write the title if it isn't set or is empty when exporting
3547  GPX files.
3548
3549* aven: Don't bother looking up the printer page setup info when exporting.
3550
3551* (Microsoft Windows version): aven: Fix crash on "File->Print" or
3552  "File->Export" under Windows XP, reported by Brian Clipstone.
3553
3554* (Microsoft Windows version): aven: Fix error dialog about an incorrectly
3555  encoded filename which could occur if run without being asked to load a file
3556  on startup.
3557
3558* (Microsoft Windows version): aven: Compile with optimisation on.
3559
3560* img library, aven: Although processed CMAP data files are often referred to
3561  as "CMAP .XYZ files", it seems that actually, the extension .XYZ isn't used,
3562  rather .SHT (shot variant, produced by CMAP v16 and later), .UNA (unadjusted)
3563  and .ADJ (adjusted) extensions are.  Since we've long checked for .XYZ, we
3564  continue to do so in case anyone is relying on it, but also check for the
3565  other extensions.
3566
3567* img library: Add new "datestamp_numeric" field to struct img giving the
3568  datestamp as a time_t in UTC (or (time_t)-1 if there's no datestamp or we
3569  failed to convert it).  For .3d >= v8, this field is reliable.  We attempt to
3570  convert date strings in .3d <= v7 and CMAP XYZ files, but may get the
3571  timezone wrong.
3572
3573* img library: Fix my_strcasecmp() to handle top-bit set characters better.
3574
3575* cavern: Fix NULL pointer dereference when processing Compass DAT file without
3576  'SURVEY DATE:'.
3577
3578* doc/manual.sgml: Update references to Survex 1.1 which should be to 1.2.
3579
3580* doc/manual.sgml: Note the station length limit Smaps used.
3581
3582* Fix some compiler warnings if built with glibc's fortify source feature
3583  enabled.
3584
3585Changes in 1.2.9 (2014-01-08):
3586
3587* Document --3d-version in cavern man page and the manual.
3588
3589* aven: Fix compilation error in movie export code with recent libavi.
3590
3591* aven: Fix warning on stderr when export a movie as MPEG.
3592
3593* img library: In non-hosted mode, don't define GETC and PUTC if they're
3594  already defined, to allow easy overriding with getc_unlocked() and
3595  putc_unlocked() (which are significantly faster on Linux).
3596
3597* img library: In non-hosted mode, check that int is at least 32 bits,
3598  and if not, use long.  In practice, platforms with 16 bit int are mostly
3599  obsolete, but it's not hard to be portable here.
3600
3601* img library: Add test that img.c and img.h compile in non-hosted mode
3602  (regression test for issue fixed in 1.2.8).
3603
3604* (Microsoft Windows version): aven is now built with wxWidgets 3.0.0.
3605
3606* Update translations from launchpad and from existing similar messages.
3607
3608* Fix some compiler warnings.
3609
3610Changes in 1.2.8 (2013-10-29):
3611
3612* cavern: Fix handling of anonymous wall stations ('..' by default) to
3613  implicitly set the SPLAY leg flag, as was intended.  Reported by Thomas
3614  Holder.
3615
3616* cavern: Tweak .err file output not to lose the space in front of certain
3617  statistics when the value gets large.
3618
3619* cavern: Eliminate redundant progress message when solving simultaneous
3620  equations.
3621
3622* aven: Add a format drop down to the export dialog, and only show fields which
3623  are meaningful and supported for the currently selected export format.  The
3624  format defaults to that used most recently.  The "Elements" and "View" boxes
3625  have been swapped in the print and export dialogs as that layout works much
3626  better when the "View" box is hidden.
3627
3628* aven: Changing checkboxes in the print or export dialog didn't work in 1.2.7
3629  - now works again.  Reported by Anthony Day.
3630
3631* aven: Add GPX export (based on findentrances patch from Olaf Kähler).  In
3632  this release the projection which the survey coordinates are in defaults
3633  to the BMN M31 grid used in the Totes Gebirge in Austria.  On Unix, you
3634  can edit ~/.aven and add a new line setting 'input_projection' to a PROJ
3635  projection string.  The ability to specify this projection in a better
3636  way is coming soon.
3637
3638* aven: New export options "Origin in centre" and "Full coordinates" - the
3639  latter fixes #10.  GPX and PLT output implicitly force "full coordinates".
3640
3641* aven: The "Sketch" vector drawing program got renamed to "Skencil" some
3642  time ago, so update references.
3643
3644* aven: Make the Presentation->Play menu item a checkbox, to avoid a warning
3645  with wxMSW 2.9.5.  Reported by Brian Clipstone.
3646
3647* aven: Make right click in an empty presentation mark the current position and
3648  open it to edit, instead of crashing.
3649
3650* aven: Update movie export code to work with latest libav API.  Reported by
3651  Sebastian Ramacher.
3652
3653* aven: Improve reporting of errors during the process of exporting a movie.
3654
3655* aven: Don't try to close the movie if we aren't producing one.
3656
3657* aven: Fix assertion failure when double-clicking on the survey with wx2.9.
3658
3659* aven: Fix to build with wxMSW 2.9.5.
3660
3661* aven: Fix to build with wx 2.9.5 with wx2.8 compatibility disabled.
3662
3663* cad3d: The "Sketch" vector drawing program got renamed to "Skencil" some time
3664  ago, so add a new --skencil option to specify this output format.  The old
3665  name (--sketch) is still recognised for compatibility.
3666
3667* cad3d: Make --marker-size work for Skencil and SVG output.
3668
3669* dump3d: Make --show-dates option show dates for XSECT.
3670
3671* img library:
3672
3673  + Fix to work once more when used outside of Survex (missing definition of
3674    max() macro and a bad call to free() in img_close() for a file opened for
3675    reading).
3676
3677  + Use lround() instead of round(), and make the tests around whether we use
3678    the library function or the our fallback implementation saner.
3679
3680  + Fix // comments in C code for portability to pre-C99 compilers which don't
3681    support these as an extension.
3682
3683  + Can now be compiled as C++ as well as as C.
3684
3685* (Microsoft Windows version): The installer is now built with a newer version
3686  of Innosetup, and includes translations for all the languages which Survex
3687  itself has any translations for.
3688
3689* (Microsoft Windows version): aven is now built with wxWidgets 2.9.5.
3690
3691* Minor translation updates.
3692
3693* tests/Makefile.am: Distribute files for "normal_bad" testcase.
3694
3695Changes in 1.2.7 (2013-07-27):
3696
3697* Add support for anonymous stations, which are indicated by one, two or three
3698  separator characters - with the default separator of '.', that means '.',
3699  '..', and '...' are anonymous stations.  Single separator ('.' by default)
3700  is an anonymous non-wall point, double separator ('..' by default)
3701  is an anonymous wall point at the end of an implicit splay), and triple
3702  separator ('...' by default) is an anonymous point (with nothing special about
3703  the leg).  A new *alias command allows '-' to be mapped to '..' for
3704  compatibility with pocket topo: *alias station - ..
3705
3706* New version 8 of the 3d format:
3707
3708  + Supports new flags img_SFLAG_ANON and img_SFLAG_WALL.
3709
3710  + New explicit file-wide flag for 'this is an extended elevation', rather
3711    than modifying the survey title to indicate this.
3712
3713  + The survey prefix is often unchanged from one leg to the next, so use a
3714    spare flag to compactly indicate when there's no label change.
3715
3716  + The data style of each leg is now stored.
3717
3718  + The "processed at" time is stored as seconds since 1970 rather than a
3719    human-readable string.
3720
3721  + Since 3d v8 features significant changes to the format, the format
3722    documentation for v7 and earlier has been split off into 3dformat-old.htm.
3723
3724* img library:
3725
3726  + New station flags img_SFLAG_ANON and img_SFLAG_WALL.
3727
3728  + Handle .pos files containing unnamed stations - don't suck the next line in
3729    as the station name, and set img_SFLAG_ANON for them.
3730
3731  + Repurpose the long unused fBinary parameter to img_open_write() as a flags
3732    parameter, and add img_FFLAG_EXTENDED to specify that this is an extended
3733    elevation, in place of appending " (extended)" to the title.  Internally we
3734    still append this to the title (and remove it upon reading) when writing
3735    3d v7 or earlier, but for the new 3d v8 format, this flag is stored
3736    explicitly in the file.
3737
3738  + img.h: Add comments for the lists of "Leg flags" and "Station flags".
3739
3740* aven:
3741
3742  + We now require at least wxWidgets 2.8.0 - it was released over 6 years ago
3743    now, and the wx developers consider even 2.8 to be rather long in the
3744    tooth.  We stopped testing building with wxWidgets 2.6 some time ago, and
3745    formally dropping support for older versions allows a number of workarounds
3746    to be removed from the aven source code.  Also, features deprecated in
3747    wxWidgets 2.9 are no longer used in our code.
3748
3749  + Don't run incremental search on every key-press, as on a slow machine the
3750    short initial search(es) will take a while but not be useful.  Instead only
3751    actually run the search when we're told there are no more key-presses
3752    queued up.
3753
3754  + Implement support for including cross-section information in exported SVG
3755    and DXF files (ticket#4).  The DXF export is untested currently.
3756
3757  + Show splay legs faded by default, with menu options to hide them or show
3758    them like other legs.
3759
3760  + Speed up loading a .3d file with cross-sections by using a map to convert
3761    station names to positions.
3762
3763  + In the cavern log window, don't highlight a file:linenumber if there's no
3764    message after it, which avoids highlighting the "Included from" lines
3765    wrongly.
3766
3767  + Fix not to crash when trying to report an error while starting up.
3768
3769  + (MacOS X version): Change the menu shortcut for "Full Screen Mode" to be
3770    the OS X standard shortcut Shift-Command-F (previously we used F11, but
3771    that's used by the desktop).
3772
3773  + Add checks for errors when reading the font file.
3774
3775  + Remove useless extra quoting when invoking vim to show the location of an
3776    error from cavern.
3777
3778  + Include GL/gl.h before GL/glext.h (needed on Debian wheezy).
3779
3780  + Use wxValidator to simplify keeping svxPrintDlg member variables and fields
3781    in the dialog in sync.
3782
3783* cavern:
3784
3785  + Demote errors about invalid dates to warnings, since we've accepted *date
3786    for ages without any checks on the value, and so existing datasets
3787    probably contain invalid dates and dates in other formats.  (ticket#19)
3788
3789  + New *alias command allows '-' to be mapped to '..' for compatibility with
3790    pocket topo: *alias station - ..
3791
3792  + We want to warn if there's a clino reading which it would be impossible to
3793    have read from the instrument (e.g. on a -90 to 90 degree scale you can't
3794    read "93" (it's probably a typo e.g. for "39").  However, the gradient
3795    reading from a topofil is typically in the range 0 to 180, with 90 being
3796    horizontal.  Really we should allow the valid range to be explicitly
3797    specified, but for now we infer it from the zero error - if this is within
3798    45 degrees of 90 then we assume the instrument can read between 0 and 180
3799    degrees.
3800
3801  + If the survey isn't all connected, still run survey tree checks and report
3802    errors and/or warnings which might suggest typo locations.  Thanks to Kevin
3803    Dixon for the report which highlighted this issue.
3804
3805  + Report a warning if *begin SURVEY has a separator character in SURVEY.
3806
3807  + Report column numbers as well as line numbers for some cavern errors and
3808    warnings.
3809
3810  + Adjust width of node stats table to fit longest count when there are more
3811    than 9999 of a particular order of node.
3812
3813  + If the argument to *include has an opening double quote but the closing
3814    double quote is missing, then skip trying to open the file.
3815
3816  + Move "Station X referred to just once" warning after non-existent survey
3817    check - if both fire, the non-existent survey error is likely to be more
3818    relevant.
3819
3820  + We no longer follow an error for a bad reading in passage data with a bogus
3821    "End of line not blank" error, but instead check the remaining readings on
3822    the same line.
3823
3824  + We no longer follow an error about OMIT for a required reading with a bogus
3825    "End of line not blank" error.
3826
3827  + Report an error if the scale factor in *calibrate is zero - it doesn't make
3828    sense and probably means someone reversed the arguments to *calibrate.
3829
3830  + Report the parent include files starting from the outermost, as that's more
3831    logical when there are multiple levels involved.
3832
3833  + If we were expecting a numeric field and instead get something which starts
3834    with '+', '-', or '.' but which isn't a number, then fix the error to
3835    include that character in the token reported.
3836
3837  + Simplify handling of quantity lists to only recognise 'DEFAULT' as the
3838    first item.
3839
3840* cad3d: Check for errors from img_rewind() and report them.
3841
3842* dump3d:
3843
3844  + Build, install and package dump3d as standard - it's useful for grabbing
3845    info from 3d files in scripts.
3846
3847  + Add --show-dates option.
3848
3849  + Show only 2 decimal places on coordinates and passage dimensions.
3850
3851  + Report the data style of legs.
3852
3853  + Report if the file is an extended elevation.
3854
3855  + Report img_STOP as STOP rather than CODE_0xffffffff.
3856
3857* Test suite:
3858
3859  + cavern.tst: Fix equatenosuchstn testcase (added in 1.2.6) to normalise the
3860    expected output so it passes reliably.
3861
3862  + cavern.tst: Run diffpos <expected> <actual> so the reports of 'Added' and
3863    'Deleted' stations upon failure are the more natural way round.
3864
3865  + Add more testcases, expand some existing testcases, and add expected output
3866    for more.
3867
3868* (Microsoft Windows version): Use wx-config's --cc and --cxx flags to find the
3869  appropriate C and C++ compilers to use, and link mingw build statically to
3870  avoid needing the libgcc DLL (which newer GCC seems to have by default).
3871
3872* (Unix version): When determining the character set for command-line tools,
3873  check environmental variable LANG after LC_ALL and LC_CTYPE.
3874
3875* When determining the language, check environmental variable LC_ALL before
3876  LC_MESSAGES and LANG (but after SURVEXLANG).
3877
3878* If we don't find the message file, only give an error if it was specified
3879  with SURVEXLANG, since that is an explicit instruction to Survex, whereas
3880  LANG, LC_ALL and LC_MESSAGES are essentially system "preferred locale"
3881  settings.
3882
3883* There are a handful of hard-coded English message strings for reporting
3884  errors trying loading message files, etc.  These are all now ASCII, as if we
3885  fail trying to open a message file, it's more likely the encoding isn't
3886  set correctly.
3887
3888* Prune strings we are no longer using and are probably unlikely to use again
3889  into a new file po_codes_dead, so that translators don't get presented with
3890  them to translate.
3891
3892* Merge lots of translation updates.  Most translations are now complete or
3893  close to complete.
3894
3895* Add start of Indonesian translation from Arief Setiadi Wibowo.
3896
3897* Fix various compiler warnings when building from source.
3898
3899* Include scripts gdtconvert and gen_img2aven in the source distribution.
3900
3901Changes in 1.2.6 (2012-02-23):
3902
3903* (Mac OS X version): Fix so that cavern finds its messages when run by aven.
3904
3905* (Microsoft Windows version): Include JPEG images for aven in the installer
3906  package (ticket#35).
3907
3908* cavern: If we have a reference to a station in a non-existent survey, give a
3909  helpful error rather than saying the station hasn't been exported from the
3910  survey.  (Bug reported by Martin Green via email)
3911
3912* aven: Fix to build with a non-Unicode wxWidgets library.  Patch from Olaf
3913  Kahler.
3914
3915* findentrances: Add findentrances utility from Olaf Kahler which produces a
3916  .gpx file with waypoints for entrances.  This needs libproj so is disabled
3917  by default for this release - to enable it install the development stuff for
3918  libproj and build survex with:
3919
3920      make FINDENTRANCES=findentrances
3921      make install FINDENTRANCES=findentrances
3922
3923* dump3d: Add support for showing img_ERROR_INFO items.
3924
3925* doc/3dformat.htm: Merge in some improvements from Mike McCombe.
3926
3927* Incorporate a French translation from launchpad I'd previously copied the
3928  English version of by mistake.  Attempt to correct mistranslation of "survey
3929  file".
3930
3931Changes in 1.2.5 (2012-01-03):
3932
3933* aven:
3934
3935  + The survey tree in the left panel is now in sorted order once more.
3936
3937  + No longer fails with an assertion if used for a long time (we were leaking
3938    an OpenGL list each time one had to be regenerated).
3939
3940  + Now builds with newer FFmpeg library.
3941
3942  + Draw measuring line in front of the indicators rather than behind them.
3943
3944  + Loading a new file (or reloading the current one) no longer invalidates
3945    the OpenGL lists for the compass and clino, so will be a fraction faster.
3946
3947* Improve handling of attempts to look up translated messages before the
3948  message subsystem is fully initialised (which only happens if there's an
3949  error early on).
3950
3951* Improve the survex(7) man page text, and fix it to be marked as section 7 in
3952  the man page source as well as in the filename.
3953
3954Changes in 1.2.4 (2012-01-01):
3955
3956* aven:
3957
3958  + A change in 1.2.3 meant that aven tried to use OpenGL before it was
3959    initialised, which doesn't cause problems in some machines, but causes aven
3960    to abort on others.  This is now fixed, and there's a check in place to
3961    help avoid similar issues in future. (ticket#34)
3962
3963  + Always use metres or feet for the depth colour key, and choose a consistent
3964    precision by looking at the depth range. (ticket#30)
3965
3966  + Show the depth units below the colour bar rather than after every value.
3967
3968  + When zooming way in, stay in metres rather than switching to cm.
3969
3970  + On the scale bar, say “1 mile” rather than “1 miles”.
3971
3972* Translation updates for Catalan, French and Slovak.
3973
3974Changes in 1.2.3 (2011-12-31):
3975
3976* Fix to build with wxWidgets 2.9.2.
3977
3978* (Mac OS X version):
3979
3980  + Processing .svx files from aven now works.
3981
3982  + Remove spurious blank lines from the licence text in "Get Info".
3983
3984  + Don't create the help menu at all, as it is empty (because the "About"
3985    entry goes elsewhere) and sometimes seems to appear in the UI.
3986
3987  + INSTALL.OSX: Update to reflect current status.
3988
3989* aven:
3990
3991  + Fix Y coordinates of surface surveys on printouts.  (Closes #32)
3992
3993  + Improvements to text plotted on the survey pane:
3994
3995    - Support plotting Unicode character points > 256 by lazily loading the
3996      data for them from the font file and plotting them with a direct call to
3997      glBitmap(), which is slower but doesn't require a display list per
3998      character.
3999
4000    - Adjust the spacing from fixed width to putting a one pixel gap either
4001      side of each one character (so two between adjacent glyphs).  Mostly this
4002      reduces the horizontal width, but it adds a pixel for characters like "m"
4003      and two in a few cases.
4004
4005    - Fix .pixelfont file generation to correctly handle characters wider than
4006      8 pixels.
4007
4008  + Fix expected cross shape so don't always reject using texture mapping to
4009    draw crosses.
4010
4011  + As we read a survey file, eliminate tubes consisting of zero XSECTs as well
4012    as those consisting of just one.  Previously we would trip over the empty
4013    tube later.  Such tubes can for example be created by extend if a splay shot
4014    is the start or end of a tube.
4015
4016  + Make the green colour used for entrances in the survey tree the same
4017    (slightly darker than before) green used for the entrance blobs.
4018
4019  + Report the version of the library we're actually running with if built
4020    against wx >= 2.9.2.  Make it clear that the version reported is the
4021    version *built* with for wx < 2.9.2.
4022
4023* extend:
4024
4025  + Copy the end markers for passage tubes.
4026
4027  + Preserve left and right data for tubes (previously they were set to -1.0
4028    which means "no info").
4029
4030* img library: Fix incorrect comment in img.h which claimed that img_XFLAG_END
4031  was no longer used - it certainly is!
4032
4033* Use curly double quotes instead of "`" and "'" to quote filenames, etc in
4034  messages, and curly single right quote instead of straight ASCII apostrophe.
4035  Fall back to using straight ASCII versions if we can't represent them in the
4036  current character set.
4037
4038* Translation updates for Catalan, French, Slovak and Spanish.
4039
4040* Test suite:
4041
4042  + Add test coverage for interleaved diving data.
4043
4044  + Add testcase for diving data with topofil-style distance.
4045
4046Changes in 1.2.2 (2011-10-06):
4047
4048* aven:
4049
4050  + Replace the textured-mapped font drawing with an approach based on
4051    glBitmap.  This doesn't suffer from the character alignment issues which
4052    the textured-mapped fonts had, and is actually significantly faster on some
4053    machines.  The current font used is (mostly) fixed-width, but this isn't an
4054    inherent limitation - it was just the easiest font data to convert to a
4055    usable format.
4056
4057  + Fix assertion failure due to rounding differences on loading certain .3d
4058    files.  (ticket#26)
4059
4060  + Fix assertion failure when turning on 3D passages if they stick out higher
4061    or lower than any station.  (ticket#29)
4062
4063  + Fix grid not to disappear when blobs are turned on and blobs are drawn
4064    using lines.
4065
4066  + If a degree sign isn't available in the character set in use, transliterate
4067    it to 'dg' rather than skipping it.
4068
4069  + Fix message which should have been a degree sign but got lost in the format
4070    change for 1.2.0 and then got reassigned in 1.2.1.  Externally, this means
4071    that bearings in the status bar now have a degree sign after them if they
4072    are in degrees rather than nothing (1.2.0) or "&Hide Compass" (1.2.1).
4073
4074  + Fix print dialog to calculate the scale required for "One page" right
4075    before it calculates how many pages are required, so we don't end up
4076    something other than 1x1 being shown when the user changes settings.
4077
4078  + Update the calculations for picking a scale and for deciding how many
4079    pages are needed to take into account the change in info box height made
4080    in 1.2.1.
4081
4082Changes in 1.2.1 (2011-10-04):
4083
4084* Translation updates for US English.
4085
4086* aven:
4087
4088  + Rename the "depth bar" to "colour key" in documentation, menus, etc since
4089    it now shows colours for dates and errors as well as depths.
4090
4091  + In the colour key for "colour by date", change "No info" to "Undated".
4092
4093  + Remove the dark grey background from the colour key and just put a single
4094    pixel black border around the colours.  This is more in keeping with the
4095    other controls, and means the colours are now on a black background so more
4096    visually similar to the survey legs.
4097
4098  + Move the colour key's "Undated"/"Not in loop" entry down a little to
4099    improve the appearance.  Make each section a pixel taller.
4100
4101  + Allow "Colour by X" to be selected even if there's no data for X or only a
4102    single value of X used (the colour key is much smaller in these cases, and
4103    does still provide some useful information).
4104
4105  + Fix incorrect calculation of depth colouring for survey legs which straddle
4106    a depth band boundary.
4107
4108  + The scale bar, compass, clino, and colour key now all have right click
4109    menus which allow related actions to be performed (especially handy in
4110    full-screen mode).
4111
4112  + Improve the font used on the survey pane - it now contains the '-'
4113    character (so the clino now shows negative angles as negative, and dates
4114    in the colour key are now hyphenated).  Also the spacing and alignment
4115    are a little better, though still not perfect.
4116
4117  + PLT file export now handles spaces and control characters in station names
4118    by escaping them with '%' as in URLs.
4119
4120  + Pressing "Enter" on a station in the tree control now centres the view on
4121    that station.
4122
4123  + The scale bar is now cached in an OpenGL display list since it often gets
4124    redrawn exactly the same - for example, when rotating, panning, etc.
4125
4126  + Pressing "F5" forces all cached OpenGL drawing lists to be invalidated and
4127    then forces a refresh of the survey pane.  This is intended as a debugging
4128    aid - if pressing F5 changes the display at all then there's a missing case
4129    where a list should have been invalidated (please report if you find such
4130    a case as it is a bug).
4131
4132  + We now automatically track which OpenGL display lists need to be
4133    invalidated on window width or height changes.
4134
4135  + Increase scale bar maximum width from 65% of the window width to 75% as it
4136    was in 1.0.x (except that if that would overlap the clino we now reduce
4137    that proportion down until it reaches 50%).  Make the limit of zooming in
4138    the same as in 1.0.x.  (ticket#23)
4139
4140  + (Linux version): Previously wxGTK didn't really handle showing a dialog if
4141    the application was fullscreen (the dialog got opened under the main
4142    window!)  To work around this, aven would switch out of full screen mode
4143    temporarily while showing a dialog.  This case works properly with recent
4144    wxGTK, so disable our workaround with versions we know work.  Also, apply
4145    the workaround only for wxGTK, not everywhere except on Microsoft Windows
4146    as there's no reason to think we need it for other platforms.
4147
4148  + Grey out the "View North" action when we're already viewing North, and
4149    similarly for other compass points.
4150
4151  + (Mac OS X and Microsoft Windows versions): Fix missing newline to OpenGL
4152    info in the "About" dialog.
4153
4154  + Fix to set the correct filename on the root of the survey tree - previously
4155    the filename of the previous file loaded was used!
4156
4157  + The movie export code now works with newer versions of the FFmpeg libraries
4158    as well as still working with older versions.
4159
4160  + Fix mixed up messages - the print dialog now says "View" on the left
4161    subgroup of controls rather than some unrelated message.
4162
4163  + On printouts, combine the "Plan View"/"Elevation" info box field with the
4164    field which gives the bearing and reduce the height on the info box by the
4165    removed field, so it's now 3cm for plans and elevations, as for extended
4166    elevations.  Report the tilt angle for tilted elevations which it seems has
4167    been missing for ages (it's not in recent 1.0.x either).
4168
4169  + Tweak the exact positioning of informational text on printouts to look
4170    nicer and make better use of the available space.
4171
4172  + Add keyboard mnemonics to the "Plan" and "Elevation" buttons in the print
4173    dialog.
4174
4175  + Make the sign of the tilt angle for printouts consistent with the sign
4176    shown by the "clino" in the survey pane.
4177
4178  + In the "Print" dialog, when in plan view disable the "Plan view" button,
4179    and similarly for the "Elevation" button.
4180
4181  + (Microsoft Windows version): Sort out appearance of custom cursors.
4182
4183  + If a label isn't valid UTF-8 or CP1252, fall back to ISO8859-1.
4184
4185  + (Mac OS X version): F11 puts aven into full screen mode, but apparently
4186    you can't get out again easily, so add code to explicitly check for F11
4187    being pressed and toggle full screen.
4188
4189* (Linux version): Fix the RPM .spec file for where man pages now get installed
4190  and package aven.svg and the vim support files.  (Fixes from James Begley)
4191
4192* "make check" now performs several checks on the translation files.
4193
4194* More messages are now available to be translated.
4195
4196* cavern: Fix reporting of ranges of survey coordinates, which was broken by
4197  the message handling changes in 1.2.0.
4198
4199* Fix warning when compiling with GCC.
4200
4201* INSTALL: Mention building wxWidgets with --enable-unicode.  Mention using
4202  sudo for installing on Unix.
4203
4204* In the manual, replace the instructions for building from source with a
4205  pointer to the clearer instructions in INSTALL.
4206
4207* In the manual, make it clear that installing with administrator rights
4208  also applies to newer platforms than XP.
4209
4210* doc/TODO.htm: Update.
4211
4212Changes in 1.2.0 (2011-09-20):
4213
4214* Translation updates for Catalan, French, Romanian, Spanish, Slovak, and US
4215  English.
4216
4217* tests/smoke.tst: aven no longer requires an X display for --help or
4218  --version, so replace skip of this check with a check that this remains the
4219  case.
4220
4221* We now use the standard .po and .pot file formats for storing translations
4222  (rather than the Survex-specific messages.txt format), and then translate
4223  these into Survex's .msg format.
4224
4225* (Unix version): Move survex man page to section 7 (since it isn't documenting
4226  an actual command).
4227
4228* (Unix version): Write each generated man page to a temporary file, then
4229  atomically rename, to avoid leaving an empty or partial man page behind if
4230  docbook-to-man dies (1.1.16 had an empty cad3d.1, and we want to avoid a
4231  recurrence of that).
4232
4233* (Unix version): Default to installing docs into /usr/share/doc/survex rather
4234  than /usr/doc/survex.
4235
4236* aven:
4237
4238  + Fix handling of accented characters in the survey pane.
4239
4240  + Aven icon redrawn in SVG format - it's now a vector image which looks
4241    nicer at larger sizes.
4242
4243  + Explicitly request double-buffering, which seems to be needed for systems
4244    with GLX >= 1.3.
4245
4246  + Fix crash while trying to load certain .3d files.
4247
4248  + Movie export code updated to work with more recent versions of FFmpeg.
4249    Currently this is disabled in Microsoft Windows builds, pending getting the
4250    required libraries set up for building releases.
4251
4252  + Reporting of errors during movie export improved.
4253
4254  + Force playback speed to "x1" during movie export.
4255
4256  + Use stock IDs for buttons where appropriate - such buttons may now be
4257    rendered with icons on some platforms.
4258
4259  + If a label isn't valid UTF-8, treat it as CP1252 (the Microsoft superset of
4260    ISO8859-1).
4261
4262  + (Unix version): Remove special handling for toggling "full screen" on wxGTK
4263    as it's no longer required with modern versions.
4264
4265  + Don't redraw the survey on every mouse movement in the survey pane unless
4266    the measuring line is (or just was) active.  (ticket #17)
4267
4268* cavern:
4269
4270  + Drop "non-fatal" from the report of how many errors there were at the end
4271    of the run - it just confuses users - we won't even get here if there's a
4272    fatal error!
4273
4274  + Add --3d-version option to allow the user to specify the version of the 3d
4275    format to output.  (ticket#21)
4276
4277* img library:
4278
4279  + Make the highest and lowest valid values for img_output_version available
4280    in img.h as IMG_VERSION_MIN and IMG_VERSION_MAX.
4281
4282* (Mac OS X version): Fix buildmacosx.sh script to check where the temporary
4283  volume actually gets mounted.  Fix URL for downloading wxWidgets.
4284
4285Changes in 1.1.16 (2011-05-16):
4286
4287* Translation updates for German, Spanish, Italian, Portuguese, Brazilian
4288  Portuguese, and US English.
4289
4290* Use horizontal ellipses character rather than '...' and right arrow character
4291  rather than '->' where these characters are available.
4292
4293* (Unix version): Link with -lGL, if it exists, to support linking with gold or
4294  GNU ld --as-needed (Debian bug #615781).
4295
4296* img.c:
4297
4298  + Fix code typo for IMG_API_VERSION == 0 case.
4299
4300  + Fix code typo in code used when IMG_HOSTED isn't defined.
4301
4302* doc/TODO.htm: Remove entries which have now been done.
4303
4304* (Microsoft Windows version): aven: We now include all the available
4305  translations for messages from wxWidgets, which means that standard widgets
4306  will appear translated where available even if Survex messages aren't
4307  translated.
4308
4309Changes in 1.1.15 (2010-10-15):
4310
4311* aven:
4312
4313  + In the cavern log window, change the "Rerun" button to "Reprocess" to
4314    follow terminology in manual and elsewhere.  Fixes ticket#15.
4315
4316  + When displaying output from cavern, don't update the window after every
4317    line, but only when we don't have data from cavern pending.  Hopefully
4318    addresses ticket#12.
4319
4320  + If we aren't using GL_POINTS for blobs, draw them using a series of
4321    abutting lines rather than with gluDisk which is faster and gives a
4322    consistent shape.
4323
4324  + Check whether blobs and crosses actually render correctly as points/point
4325    sprites, and if they don't, fall back to drawing them with lines.  The
4326    best method is cached on disk, and rechecked automatically if the graphics
4327    hardware is changed or the drivers upgraded.
4328
4329  + Fix non-USE_FNT case to work again (it's limited to ISO-8859-1 characters
4330    though, so we still enable USE_FNT by default).
4331
4332  + Don't offer "All files" wildcard in presentation save dialog.
4333
4334  + (Microsoft Windows): Handle filenames with non-Latin1 characters in in
4335    more places.
4336
4337  + (Microsoft Windows): Quote filenames with spaces and metacharacters in
4338    when running cavern from aven.  Fixes ticket#11.
4339
4340* editwrap: (Microsoft Windows): Handle filenames with non-Latin1 characters.
4341
4342* diffpos: Handle files with duplicate labels in better - extend generates
4343  duplicate labels when it breaks a loop.
4344
4345* Enable eswap-break testcase now that diffpos handles duplicate station names.
4346
4347* New v7 of .3d format which stores survey dates as number of days since
4348  January 1st 1900, so we now support dates from 1900-2078 (rather than
4349  1970-2037) with a smaller file size.  The img API is now versioned - you
4350  can select the new "version 1" by compiling with -DIMG_API_VERSION=1, which
4351  gives the survey dates in days in days1 and days2 instead of as time_t
4352  values in date1 and date2.  Fixes ticket#14.
4353
4354* Consistently use http://survex.com/ rather than http://www.survex.com/ - the
4355  former has been the canonical name for some time, with www.survex.com just
4356  redirecting to it.
4357
4358* (Unix version): Use unlocked file I/O if available, which can be much faster
4359  in some cases (we don't need the locking as we don't do multithreaded file
4360  I/O).
4361
4362* (Mac version): Fix compilation failure due to clash with Point in Mac OS X
4363  headers.
4364
4365* (Mac version): buildmacosx.sh now works again.
4366
4367* Most tests weren't actually running any testcases (looks like a sh
4368  portability issue).  This is now fixed, and fortunately all tests still pass.
4369
4370* Include the extra .isl translation files for Innosetup in the source archive.
4371
4372Changes in 1.1.14 (2010-07-26):
4373
4374* Restore compatibility with wxWidgets 2.6 (1.1.13 required wxWidgets 2.8).
4375
4376* aven:
4377
4378  + After processing survey data, if there were warnings or errors, add a
4379    "Rerun" button to allow easy reprocessing after fixing problems.  If there
4380    were only warnings, also add an "OK" button to allow moving on to viewing
4381    the processed survey data (fixes ticket#13).
4382
4383  + Optimise updating of the cavern log window (hopefully fixes ticket#12).
4384
4385  + Fix links in cavern log window to link from exactly '<file>:<line>' (and
4386    not the ': ' after), and to make the title for the terminal the
4387    warning/error message.  Avoid false positives by checking that '<line>' is
4388    a number.
4389
4390  + Don't double escape the contents of href and target in links in the cavern
4391    log window.
4392
4393  + Improve handling of the splitter window, fixing behavioural glitches in
4394    various cases.
4395
4396  + Highlight stations matching any current search when a file is loaded.
4397    (ticket#9)
4398
4399  + (Mac version): Fix build issue due to Mac OS X polluting the global
4400    namespace with its own "Point" class.
4401
4402  + (Unix version): The Gnome print dialog has its own preview window so
4403    suppress ours if using the Gnome one.
4404
4405  + (Unix version): Link aven with -lGLU which SuSE Linux needs.
4406
4407  + (Microsoft Windows version): Fix handling of a double-click on the survey
4408    tree when built with wxWidgets >= 2.8.11.
4409
4410* cavern: Report relevant file and line number for three warnings which didn't
4411  give them before.
4412
4413* (Unix and Mac versions): configure: Update the wx-config probing code -
4414  wxmac-config etc aren't present with newer wxWidgets versions so there's no
4415  point looking for them now.
4416
4417* (Mac version): buildmacosx.sh: This script builds a diskimage with Survex in
4418  for easy installation.  Update it to work with the latest Survex versions
4419  (use WX_CONFIG not WXCONFIG; use a Unicode build of wxWidgets; if building a
4420  private wxWidgets, use 2.8.11 not 2.7.0-1).
4421
4422* manual:
4423
4424  + Correctly capitalise "GTK".
4425
4426  + Note that on Linux we only regularly test builds with the GTK+ version
4427    (change taken from 1.0).
4428
4429* Fixed the cad3d man page, which was an empty file in 1.1.13.
4430
4431Changes in 1.1.13 (2010-06-16):
4432
4433* Say "wxWidgets" instead of "wxWindows" consistently.
4434
4435* img.c: Fix small memory leak (filename_opened member).
4436
4437* cad3d, aven: Fix export to SVG when a label contains a '%' character.
4438
4439* aven:
4440
4441  + wxWidgets 2.6.0 or newer is now required.
4442
4443  + A "Unicode" build of wxWidgets is now supported.  An "ANSI" build may still
4444    work but hasn't been tested recently (all packaged versions of wxWidgets
4445    seem to be Unicode now).
4446
4447  + Fix potential uses of uninitialised variables which may have been causing
4448    occasional glitches when loading a file on start-up.
4449
4450  + Improvements to the handling of the font used for plotting labels and other
4451    text on the survey pane:
4452
4453    - Loading the font file is more efficient.
4454
4455    - Character spacing is improved.
4456
4457    - Default font is now anti-aliased.
4458
4459  + "About" dialog:
4460
4461    - Add "Copy" button to copy the system info to the clipboard for easier
4462      bug reporting.
4463
4464    - List OpenGL extensions last, since there are usually lots of them with a
4465      modern gfx card.
4466
4467    - Fix 100% CPU usage while the "About" dialog is open.
4468
4469  + Processing .svx files:
4470
4471    - Passing a .svx file on the command line now works better.
4472
4473    - Put the survey data log window in a splitter in the usual frame rather
4474      than opening a separate frame for it.
4475
4476    - Auto-scroll the log window until we've reported a warning or error.
4477
4478    - Fix small memory leak.
4479
4480  + The presentation filename now defaults to using the basename of the
4481    currently loaded dataset, but we always prompt before we first save with
4482    such a name.
4483
4484  + Reduce memory usage when saving a screenshot.
4485
4486  + Allow "Toggle Fullscreen" to work even if no survey is loaded now that we
4487    persist the window size (and maximised or fullscreen state) between
4488    invocations.
4489
4490  + Fix reporting of OpenGL errors.
4491
4492  + Fix glitches when tilting while looking East.
4493
4494  + Added Portuguese and Slovak translations of wxWidgets messages.
4495
4496* Documentation:
4497
4498  + Rationalise manual formats - replace PostScript with PDF and drop RTF.
4499
4500  + Drop the "alternative manual formats" self-extracting zip file - people
4501    will generally just want one of the formats, so downloading several
4502    together isn't very useful.
4503
4504  + 3dformat.htm: Update for v6 format (thanks to Mike McCombe).
4505
4506  + GPL.htm: Replace HTML version of licence with a link to the version on
4507    the FSF website.
4508
4509  + ChngeLog.htm: Stop generating an HTML version of the ChangeLog - it's too
4510    low level to be of interest to non-developers, and developers can look at
4511    the source code.
4512
4513* (Unix version): configure: New preferred name for specifying wx-config script
4514  is WX_CONFIG.  WXCONFIG still supported for compatibility.
4515
4516* (Linux version): Source RPM package dropped as you can just build an RPM
4517  package from the source tarball.
4518
4519* (Microsoft Windows version): The installer is now created with a newer
4520  version of InnoSetup, which gives a 10% smaller download.
4521
4522Changes in 1.1.12 (2007-02-07):
4523
4524* aven:
4525
4526  + Remember the window size or maximised/fullscreen state between invocations.
4527
4528  + Add options dialog to "Export" similar to the one for "Print".
4529
4530  + The "number of pages required" in the print dialog now updates when you
4531    change what is to be shown (underground legs/surface legs/station
4532    names/crosses).
4533
4534Changes in 1.1.11 (2006-11-25):
4535
4536* Updated Czech, Spanish, and Slovak translations.
4537
4538* (MacOS X version): Assorted OS X specific tweaks and fixes.
4539
4540* aven:
4541
4542  + Pick a smaller and clearer font for labels.
4543
4544  + Fix character spacing.
4545
4546  + Tweak display of bearing and elevation angles to look nicer with
4547    proportional fonts.
4548
4549  + Use the title from the 3d (or plt, etc) file for the window title
4550    rather than the filename.
4551
4552  + Show distances to 2 decimal places rather than the nearest integer.
4553
4554  + Only consider underground legs when calculating the depth bands and
4555    depth colouring.
4556
4557  + Add "Colour by Error".
4558
4559  + Add entry for "white" in date and error keys.
4560
4561  + When setting the view to a single point, don't change the scale.
4562
4563  + If reloading the same file, don't change the view
4564
4565  + Fix filetypes selector in open dialog.
4566
4567  + Fix the charset we use for aven in certain cases.
4568
4569  + Call msg_init before using msg_lang or it won't ever be set!
4570
4571  + Pass wx the full language code to initialise the C library locale.
4572
4573  + Fix bug in generating prefix tree view which could lead to a bogus
4574    leading dot on some survey names (bug probably introduced in 1.1.10).
4575
4576  + "New Presentation" now ensures that the side panel is open
4577
4578  + Fix updating of cached opengl lists when the view is reset to the
4579    default.
4580
4581* Ignore LANG if it starts with a digit to avoid problems with bogus value for
4582  LANG which AutoCAD installation seems to set on MS Windows.
4583
4584* (Unix version): configure: Allow SGMLTOOLS and DOCBOOK_TO_MAN to be
4585  specified.  Either/both can be set to ":".
4586
4587* dump3d: Report unknown (to dump3d) codes returned by img.
4588
4589* img library: Flag all stations as underground in the old "ASCII" .3d format.
4590
4591Changes in 1.1.10 (2006-07-14):
4592
4593* aven: Clicking on a survey name in the survey tree now highlights it in
4594  the map view.  Double-clicking zooms the view to show the clicked survey
4595  highlighted.  Clicking the root clears the highlighting and double-clicking
4596  the root restores the default view.  To expand/collapse a branch, click
4597  on the "[+]" or "[-]" icon to the left of the survey name.
4598
4599* aven: The measuring line can now measure to anywhere in plan or elevation
4600  view (not just to a station!)  In plan view the horizontal distance and
4601  bearing are shown, while in elevation view the vertical distance is shown.
4602
4603* aven: Moving the mouse over a station in the survey view now highlights
4604  that station in the survey tree (though it may not be visible if the
4605  survey(s) it is in aren't expanded).
4606
4607* aven: Clicking on a station to centre the view now moves the mouse pointer
4608  to the new location of the station (except on Mac OS X where this isn't
4609  allowed).
4610
4611* aven: Fix which presentation toolbar buttons are shown as depressed.
4612
4613* Fix infinite loop reading 3d files with LRUD data (bug introduced in 1.1.9).
4614
4615* vim files are now installed with the correct paths (bug introduced in 1.1.9).
4616
4617Changes in 1.1.9 (2006-07-04):
4618
4619* (Unix version): Install desktop files for aven and svxedit contributed to the
4620  Ubuntu package by Phil Bull, and corresponding pixmaps.
4621
4622* Fix img to filter out cross-sections which don't match the subsurvey (if
4623  specified).  The API now returns img_XSECT_END to mark the end of a
4624  passage rather than setting a flag on the last img_XSECT of the passage.
4625
4626* Enhance integration with the vim editor - this can now colour .err files, run
4627  cavern from vim and parse error output, and run aven from vim.  Tweak the
4628  existing vim mode for .svx files to fix a few minor bugs and add support for
4629  the new "*data passage" style.
4630
4631* aven: fix drawing of the "blob" end of the measuring line on graphics cards
4632  which can't draw large enough blobs for us.
4633
4634* aven: sort out confusion about what encoding everything is in which means
4635  that the distance measured by the measuring line actually gets displayed
4636  and also fixes problems with empty menu items in non-English locales in
4637  some cases.
4638
4639* aven: redraw grey background after a menu is closed over the aven window
4640  with no survey loaded.
4641
4642* aven: fix bug which caused printing to crash (introduced in 1.1.8).
4643
4644* aven: avoid crash on some machines when opening "About" dialog before having
4645  loaded a survey.
4646
4647* aven: Translate "Plan" and "Elevation" buttons in print view dialog.
4648
4649* (Unix version): aven: Fix character set handling of cavern output.
4650
4651* cavern: Report an error if a cross-section is specified for a station which
4652  doesn't exist.
4653
4654* Updated French and Italian translations.
4655
4656* (Unix version): aven: Fix "Can't open message file `en_US' using path
4657  `${prefix}/share/survex'" error.
4658
4659* Fix bug in 3d file reading on 64 bit platforms when used in STANDALONE mode
4660  (doesn't affect Survex itself, but other applications which use img.c should
4661  update their copy).
4662
4663* (Unix version): Add checks that wxWidgets is a non-unicode version (wx 2.6
4664  and later are caught by configure, whereas older wx versions are caught when
4665  trying to compile).
4666
4667Changes in 1.1.8 (2006.06.30):
4668
4669* Drop support for building with wxWidgets versions prior to 2.4.0
4670  (which was released on 2003-01-07).
4671
4672* aven: Printing through aven now uses settings from the "[aven]" section
4673  of print.ini, and support for hierarchical sections (using "like=")
4674  has been disabled.
4675
4676* aven: Change mouse actions to be compatible with those in Survex 1.0.
4677  The mousewheel now zooms in/out (it doesn't do anything in 1.0) and
4678  left drag is now smart about not rotating and zooming at the same
4679  time.
4680
4681* aven: Highlighting stations now happens as you type, and pressing
4682  "Enter" or clicking the "Find" button now pans and zooms to show the
4683  highlighted stations.
4684
4685* aven: Left-clicking away from a station now cancels measuring line.
4686
4687* aven: Setting view to North, South, East, or West is now animated like
4688  the tilt from plan to elevation.
4689
4690* aven: Fix presentation saving to also write "." for decimal points and
4691  presentation loading to accept either "." or ",".
4692
4693* (Unix version): aven: Add text for all toolbar items so that aven
4694  will work with the Gnome desktop preference for displaying toolbars as
4695  icons with text or just text (wxWidgets needs fixing first though).
4696
4697* (Unix version): aven: Remove the ability to detach the menu bar (yell
4698  if you actually used it and I'll restore it!)
4699
4700* aven: Add "all survey files" option to the "open file" dialog.
4701
4702* (MS Windows version): aven: Fix cursor keys to pan survey.
4703
4704* (MS Windows version): Built with wxWidgets 2.6.3 instead of 2.6.2.
4705
4706* (MS Windows version): Fix installer to work on Windows 2000 or XP if
4707  run by an unprivileged user.
4708
4709* (MS Windows version): Upgrade to the latest version of InnoSetup (the
4710  installer builder we use) and include new installer translations for
4711  UK English, Spanish, Brazilian Portuguese, Italian, Romanian, and Slovak.
4712
4713* (MS Windows version): aven: Include Catalan and Brazilian Portuguese
4714  translations of messages for wxWidgets (the GUI library we use).
4715
4716* aven: Disable "Highlight exported points" if there aren't any.
4717
4718* Updates to French translation from Michel Bovey.  Also updates to German,
4719  Italian, Catalan, Spanish, and Romanian translations.
4720
4721* (Unix version): test suite: fix smoke test to pass even without X running
4722  (it was meant to but the code had a bug).
4723
4724* aven: Check if OpenGL is available and exit cleanly with a helpful error
4725  if it isn't.
4726
4727* (Unix version): aven: Fix --help and --version to work without a working
4728  X display (provided it's built with wxWidgets 2.5.1 or newer).
4729
4730* aven: Automatically select the presentation tab of the notebook when the user
4731  selects "New Presentation" or "Open Presentation".
4732
4733* aven: Fix "Delete" in the presentation list to not get passed on (and so not
4734  reset to default view as well).
4735
4736* aven: Fix Ctrl+Insert in the presentation list not to segfault if the list is
4737  empty.
4738
4739* aven: Fix Cursor Up and Down in the presentation list to move the highlight
4740  up and down instead of being passed on and moving the survey.
4741
4742* aven: Improve SVG output compatibility.  Tested with Mozilla Firefox 1.5,
4743  Adobe's SVG browser plugin, Gimp 2.2.8, Gqview 2.0.0, Opera 8.5,
4744  Safari 2.0.3, and InkScape 0.42.
4745
4746* aven: Put a 5mm border around exported SVG files to allow for station markers
4747  and non-zero width lines.
4748
4749* aven: Fix crash when exporting as SVG or Sketch if labels or surface data
4750  was turned on.
4751
4752* aven: Actually close the file we're exporting which fixes problems with it
4753  not always being fully written.
4754
4755Changes in 1.1.7 (2005.10.18):
4756
4757* cavern: Add validity checking for dates in *date commands (with feature
4758  test in testsuite).  A date entered as just "year" or "year.month" now
4759  becomes a date range for the relevant period (previously it became a single
4760  date near the middle of that period).
4761
4762* extend: Fixed 2 uninitialised flags (should fix erratic behaviour on
4763  with MS Windows).
4764
4765* extend: Default output name for a file called input.3d is now input_extend.3d
4766  rather than just extend.3d (which was annoying if you wanted to extend
4767  several surveys in the same directory).
4768
4769* aven: OpenGL 2.0 always includes support for point sprites so rework
4770  our check for them to include that knowledge.
4771
4772* aven: Regenerate depth bar if user switches to/from metric units.
4773
4774* aven: Don't clear the "there" mark just because the mouse pointer has
4775  moved off a station.
4776
4777* aven: When processing a .svx file, put the resultant .3d file in the
4778  same directory (since that's where we then try to load it from).
4779
4780* aven: Fix labelling of date colouring on 32 bit platforms.
4781
4782* aven: If "colour by date" is on and we load a survey with no date info
4783  (or all surveyed on the same date) then set "colour by none".
4784
4785* aven: Make the error dialog modal and remove a signal handler once it
4786  has fired to prevent endless (or seemingly endless) cascades of error
4787  dialogs.
4788
4789* aven: Enforce a minimum object volume diameter of 1m to avoid problems
4790  if a survey file with only one station in is loaded.
4791
4792* aven: Fix problems with indicators disappearing when we're drawing
4793  blobs and/or crosses the slow (but always supported) way.  (Problem
4794  introduced in 1.1.6).
4795
4796* (Unix version): aven: Really stop setting extra toolbar margin when using
4797  GTK2.0.  The attempt to fix this in 1.1.3 failed because __WXGTK12__ is
4798  set for GTK+ 1.2 or *any later release* so is true for GTK+ 2.0 too!
4799
4800* (Unix version): aven: Add details of which of wxGTK, wxMotif, and wxX11
4801  we've been compiled with, and which GTK+/Motif version where appropriate.
4802
4803* (Unix version): Fixed build on Fedora Core 3.
4804
4805* documentation: Updates to 3d file format specification from Mike McCombe.
4806
4807Changes in 1.1.6 (2005.10.10):
4808
4809* (MS Windows version): Distribution is about a third smaller than 1.1.5
4810  (mostly because mingwm10.dll is no longer required).
4811
4812* aven: If aven is asked to load a .svx, .dat, or .mak file, run cavern on
4813  it, showing cavern's output in a window (with errors and warnings clickable
4814  to load the offending file into an editor), and then loading the resulting
4815  3d file.
4816
4817* aven: Added "Colour by Date" option.
4818
4819* aven: Disable "Colour by Depth" option if there's no elevation variation.
4820
4821* aven: Don't crash if trying to load a survey with no elevation variation.
4822  Instead turn off depth colouring.
4823
4824* aven: Export as HPGL added.
4825
4826* aven: Improved update of mouse coordinates and measuring line (thanks to
4827  Martin Green).
4828
4829* aven: Show the coordinates of either the mouse pointer or the nearest
4830  survey station to it (if there is one near enough).  Showing both was
4831  confusing and meant the status bar overflowed on smaller displays.
4832
4833* aven: When printing an extended elevation, don't show bearing and elevation.
4834
4835* aven: Don't lock "flat" surveys which aren't extended elevations - a
4836  flat survey with LRUD data isn't flat any more!
4837
4838* aven: When we have to draw blobs and crosses the slow way (because the
4839  graphics hardware doesn't support the fast way), draw them so that they
4840  should appear at the correct depth into the 3D scene instead of on top
4841  of everything else.
4842
4843* aven: Make "play presentation backwards" icon green to match the other
4844  presentation icons.
4845
4846* (MS Windows version): aven: Mouse clicks on the survey view now set the
4847  keyboard focus there.
4848
4849* (MS Windows version): aven: Fix first redraw of a newly loaded survey.
4850
4851* (MS Windows version): aven: Fix redrawing of measuring line.
4852
4853* cavern: Store dates for img_XSECT.
4854
4855* cavern: Fixed small one-off memory leak if you specify -o more than once.
4856
4857* (Unix version): Check environmental variable LC_MESSAGES when deciding what
4858  language to use for messages.
4859
4860* (MS Windows version): "Print" on a 3d file now prints through aven rather
4861  than the separate printer driver (Unix has done this for some time).
4862
4863* Removed old printer drivers.
4864
4865* img library: When creating a 3d file, ignore img_XSECT if we've been asked
4866  to write a file format version which doesn't support it.
4867
4868Changes in 1.1.5 (2005.09.20):
4869
4870* (MS Windows version): aven: Fixed crash on start-up (introduced in 1.1.4).
4871
4872* aven: Make blobs round like they are in Survex 1.0.
4873
4874* aven: If the graphics drivers don't support drawing blobs using OpenGL
4875  point markers, fall back to drawing filled circles.
4876
4877* aven: If the graphics drivers support it, draw crosses as texture mapped
4878  OpenGL point markers which is much faster.
4879
4880* aven: Cross size increased to match Survex 1.0.
4881
4882* aven: We must update which blobs are displayed if display of surface or
4883  underground legs is toggled.
4884
4885* cavern: Fix handling of a *solve followed by survey data, none of which is
4886  attached to the previous data.
4887
4888* cavern: Fixed "No survey data" error when a *solve is followed by another
4889  *solve (or the implicit solve at the end of processing) with no data between
4890  them.
4891
4892Changes in 1.1.4 (2005.09.19):
4893
4894* aven: Added Aven's icon to the "About" dialog.
4895
4896* aven: Use localised character for the decimal point (e.g. "," in most
4897  continental European countries).
4898
4899* aven: Previously the survey tree would get focus and then take keypresses
4900  (e.g. "P", "L", "Delete").  Now we pass most keypresses across so they
4901  operate on the cave, and transfer the input focus across when we do.
4902
4903* aven: Make pressing "Return" in the tree control expand/collapse a subtree.
4904
4905* aven: Speed up intialisation by delaying creation of OpenGL lists until
4906  they're needed.
4907
4908* aven: Added Mark Shinwell's bounding box with shadow of the survey.
4909
4910* aven: Disable the "Tubes" button/menu item when there's no LRUD data.
4911
4912* aven: Reworded "Restore Default Settings" as "Restore Default View".
4913
4914* (Unix version): aven: Set sensible default margins for printing and preserve
4915  any margin values the user specifies between runs (previously margins
4916  defaulted to 0 each time aven was run).
4917
4918* Documentation: Document *DATA PASSAGE in the manual.
4919
4920Changes in 1.1.3 (2005.09.07):
4921
4922* (Microsoft Windows version): Fixed build problems.
4923
4924* cavern: Allow OMIT character (-) for left/right/up/down.
4925
4926* aven: Remove an unnecessary menu separator.
4927
4928* aven: Fix "Find" and "Hide" toolbar buttons to work with GTK2.0.
4929
4930* aven: Make the tooltip for "Hide" show the number of found stations.
4931
4932* aven: If * or ? is used in a glob-style pattern, force a non-substring match.
4933
4934* aven: Enable "New Presentation" when there's a 3d file loaded, rather than
4935  when there's a presentation loaded.
4936
4937* aven: Make entrances green in side panel tree list to match green blobs used
4938  in cave view.
4939
4940* aven: Don't show surface labels if we're not showing surface data, etc.
4941
4942* aven: Merge "Start Rotation" and "Stop Rotation" into "Toggle Rotation" and
4943  make "Space" the key for this.  Keep Return working "Stop Rotation" so
4944  existing users are happy, but don't advertise it.
4945
4946* aven: Normalise filename by adding any extension used, and use the normalised
4947  filename for file history and window title.
4948
4949* (Unix version): aven: Stop setting extra toolbar margin when using GTK2.0
4950  as the toolbar buttons already have a sensible margin - the extra margin is
4951  only needed with GTK1.2.
4952
4953* aven: Fix handling of plumb legs in tube model.
4954
4955* aven: Fixed swapped L and R in tube model.
4956
4957* extend: Preserve UD cross-section information in extended elevation.
4958
4959* extend: Add new messages for John Pybus' enhancements.
4960
4961Changes in 1.1.2 (never formally released):
4962
4963* Added support for LRUD data in .svx files, in .3d files, and aven can
4964  now load and display it on screen and on printouts.  The ability to "fake"
4965  LRUD data in aven is gone for now but will reappear in some form later.
4966
4967* cavern: Removed support for writing Chasm's 3dx format.  We're going to
4968  fold any desirable missing chasm functionality into aven.
4969
4970* aven: Rearranged mouse actions as discussed on the mailing list.  Added
4971  cursors for each different mouse action to help the user learn what each
4972  does.  Also added cursors for the "compass" and "clino" as well as the
4973  scalebar to suggest to the user that they can be dragged to change the view.
4974
4975* (Unix version): aven: Don't segfault if LANG isn't a known language.
4976
4977* tests/smoketest.tst: If X windows is running, check that we can run aven
4978  with --help and --version.
4979
4980* tests/cavern.tst: Fixed cavern.tst to warn if it is skipping a test because
4981  no results are listed for it.  This revealed that there was a "newline" test
4982  which should have been called "badnewline", and was a broken testcase too!
4983  Fixed all these problems.
4984
4985* cavern: Applied Simeon Warner's patch for handling backcompass, backclino,
4986  and omitted forward compass/clino readings in Compass DAT files.  Added
4987  a feature test for this to the testsuite.
4988
4989* It no longer makes sense to have an option not to build aven or to build aven
4990  without OpenGL so remove old machinery for this from configure and the
4991  sources.
4992
4993* (Unix version): configure: Check if "-lXxf86vm" is needed.
4994
4995* configure: Better output for strcasecmp test.
4996
4997* aven: Fix crosses to work much better.  Not a total fix - their position
4998  in the Z buffer isn't correct and they're rather slow to plot.
4999
5000* aven: Don't regenerate the hittest grid every time the mouse moves while
5001  animating, which solves the mysterious pausing effect (thanks go to Martin
5002  Green for spotting this!)  Also clear all the status bar coordinates when
5003  animating.
5004
5005* aven: Sort out clashing menu shortcuts in some languages.
5006
5007* aven: Fixed compilation problem on x86_64
5008
5009* SPUD: Pruned out stuff which has been done or which is not actually relevant
5010  to this branch.
5011
5012* Merge various changes from 1.0 branch:
5013
5014  + aven: Port over "printing from aven" functionality.
5015
5016  + aven: Port over "export as" functionality,
5017
5018  + Add David Loeffler's vim mode for .svx files.
5019
5020* aven: Fix check for whether a label is behind us in perspective view.
5021
5022* aven: Don't use an opengl list for drawing the indicators - we typically make
5023  a new list each time we plot them anyway.
5024
5025* Remove lingering traces of support for RISC OS and pre-386 MSDOS
5026
5027* aven: Set icon on non-Windows platforms too.  This means that with
5028  WindowMaker on Unix you get an icon on the AppIcon by default.
5029
5030* configure: Update wxWindows checks to handle newer wx versions.
5031
5032* Make all maintainer perl scripts "use bytes;" to avoid utf-8 double encoding
5033  problems.  They also all require Perl 5.8 now (hopefully this isn't an issue
5034  for anyone building from CVS).
5035
5036* acinclude.m4: Quote macro name for fix autotools warning.
5037
5038* Documentation: "tilt up" is "'" not ",".
5039
5040* aven: Add support for mousewheels (to tilt the cave).
5041
5042* aven: Fixed twisted transitions to and from pitches in certain cases.
5043
5044* aven: Pick a sensible initial window size when the user's desktop is spread
5045  over more than one monitor (works best with wx2.5 or newer, but try to do
5046  better with wx2.4 or earlier as well).
5047
5048* aven: Initialise GfxCore slightly later to avoid visual glitch from notebook
5049  contents being visible before any survey is loaded.
5050
5051* aven: Allow a coloured texture to be used
5052
5053* aven: Don't initialise until we have data (to the user, this means the window
5054  is default colour (grey for most systems) not black until a survey is
5055  loaded).
5056
5057* aven: Fixed weird "shadowed" icons.
5058
5059Changes in 1.1.1 (2004-10-06):
5060
5061* (Microsoft Windows version): aven: Hopefully fix loading a survey file at
5062  startup.
5063
5064* aven: Delay loading the bitmap for the "About" dialog until it is first
5065  needed.  We want start up to be as quick as possible.
5066
5067Changes between 1.0.32 and 1.1.0 (never formally released):
5068
5069* NOTE: Survex 1.1.X releases are development snapshots made available for
5070  the purposes of allowing wider testing and getting more user feedback.  Once
5071  the code has stabilised the version number will be raised to 1.2.0.
5072
5073* aven: Now uses OpenGL for 3d rendering - you may need to install drivers if
5074  you're using Windows 95 - these can be obtained from:
5075  http://download.microsoft.com/download/win95upg/info/1/W95/EN-US/Opengl95.exe
5076
5077* aven: Solid passages - passage dimensions are currently inferred from
5078  the leg length (pretty effective as you can measure longer legs in
5079  larger passages).  Use of real LRUD data coming soon...
5080
5081* aven: Depth colouring is now continuously varying.
5082
5083* aven: Colour by depth can now be turned off (and there's the start of a
5084  framework for properly implementing colour by date, error, etc).
5085
5086* aven: Find stations moved onto the toolbar and now uses a simple wildcarded
5087  match (? matches any character, * matches any number of characters).
5088
5089* aven: We now use the status bar for coordinates, distances, etc to make
5090  better use of screen space.
5091
5092* aven: Full screen mode (F11).
5093
5094* aven: Perspective view.
5095
5096* aven: Context sensitive cursor shape - needs more work.
5097
5098* aven: Mouse actions changed (hopefully they're now more natural, but
5099  you may find the change disorientating - feedback wanted on this).
5100
5101* aven: Added "presentations" which allow you to set up fly-through paths
5102  and load/save/run them.
5103
5104* aven: A presentation can be exported as a movie file.
5105
5106* aven: Added Save screenshot facility.
5107
5108* aven: Depth fogging option.
5109
5110* aven: Added Smooth Lines option.
5111
5112* aven: Added Textured Walls option.
5113
5114* aven: If a survey has surface legs but no underground legs, default to
5115  showing the surface legs.
5116
5117* cavern: Dates given to *date are now stored in the 3d file.
Note: See TracBrowser for help on using the repository browser.