File: ChangeLog

package info (click to toggle)
xtide 2.9.5-3
  • links: PTS
  • area: main
  • in suites: lenny
  • size: 2,996 kB
  • ctags: 2,141
  • sloc: cpp: 20,379; sh: 1,044; makefile: 224; yacc: 114; lex: 58
file content (1023 lines) | stat: -rw-r--r-- 41,059 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
   [1]<- Previous [2]-> Next [3]Contents

Icon Change log

  XTide 2.9.5 (2007-12-10)

   (Portability) Renamed CONFIGURE to CONFIGURE-HELP to eliminate conflict
   on case-insensitive file systems.  Bug report credit:  Anton Pitts
   (Mac), Leonid Tochinski (Windows).

   (Portability) With help from Leonid Tochinski, made command-line client
   portable to Visual C++ Express Edition.
     * Tolerate missing header files and functions.
     * Use nonstandard header files if present.
     * Possibly use #pragma message instead of #warning.
     * #define _USE_MATH_DEFINES.
     * Specified binary mode for some files used by tide.exe.
     * Tolerate MS-DOS line discipline in xtide.conf.
     * Some Windows-specific code for low-level file operations.
     * In source files needed for tide.exe, renamed every variable named
       _timezone to timezoneLocalVar to eliminate conflict with global
       _timezone variable.
     * Fixed a yyerror signature mismatch between xml_l.ll and xml_y.yy.
     * Added --enable-semicolon-pathsep and --enable-local-files.
     * Possibly use %I strftime format instead of %l.
     * Only if compiling under Visual C++, set locale to "English_United
       States.1252".
     * Added a workaround for a time function bug in Visual C++ 2005 that
       causes the program to crash.

  XTide 2.9.4 (2007-09-03)

   (Bug) Fixed incorrect encoding of characters in "About This Station"
   window when ambient locale is UTF-8.

   (Legal) Relicensed under GPLv3.

   (Code rot) configure.ac:  Removed -DYY_NO_UNPUT, which flex no longer
   respects as of version 2.5.33.

   (Cleanup) Build scripts:  Removed AM_MAINTAINER_MODE and made 'make
   dist-bzip2' do the right thing.

  XTide 2.9.3 (2007-04-17)

   (Bug) Fixed dropped lines in flat map drawing (improved version of
   recent fix to tideEditor).

   (Portability) Moved #define __STDC_FORMAT_MACROS to the top of
   common.hh to avoid a surprise that occurs when inttypes.h gets included
   by a previous include file.

   (Cleanup) Removed an unused #define from common.hh.

  XTide 2.9.2 (2007-03-31)

   (Bug) In MLLW estimation, possibly include final LLW value depending on
   endTime.

   (Usability) Set year limits for time control dialogs based on the
   actual type of time_t rather than the conservative interval common to
   all platforms.

   (Usability) Made xttpd report version of XTide; removed obsolete
   discussion of PNG image format.

   (Usability) Catch missing STL at configure time (reportedly not found
   without CPPFLAGS under Mac OS X 10.4.9).

   (Portability) Fixed several nonportable casts in xxGlobe.cc (32-bit int
   assumption); replaced constant 8 with CHAR_BIT in two places.

   (Cleanup) A few more cleanups.
     * Cleaned up config.hh.  Most #defines were changed to typed
       constants.  Definitions not related to settings were moved to more
       appropriate locations.
     * Removed a few includes from common.hh.
     * Cleaned up format strings in Colors.cc.
     * Moved wvsrtv declaration to xxGlobal.hh.

  XTide 2.9.1 (2007-03-14)

   (Bug) Changed estimation of MLLW in stats mode to use tidal day as
   specified by [4]Special Publication NOS CO-OPS 1 and 2 instead of solar
   day as was done in XTide 2.9.  It makes about 1 inch of difference.

   (Compliance) GNU attributes are now enabled only if one configures with
   --enable-gnu-attributes.  They are only useful if compiling with extra
   warnings anyway.

   (Usability) Compilers that cannot build a particular test case
   correctly (notably GCC 3.3.x) are now rejected by configure with an
   explanation that it is time to upgrade.

  XTide 2.9 (2007-02-27)

   (Portability) Cygwin doesn't have llround yet.  Made do without it.

   (Compliance) Rearranged some callbacks to avoid the need for objects in
   the X11 interface to delete themselves (considered harmful) or their
   containers (presumably worse).

   (Cleanup) A few more cleanups.
     * Quashed default copy constructors and assignment operators on
       classes that did not want to have them.
     * Changed an unsigned char to a bool.
     * Made factories static members of the classes that they produce,
       thereby eliminating another friend function.
     * Tagged return values as const.  See coding conventions.
     * Cleaned up the templates.
     * Got rid of redundant declarations of friend functions.
     * Replaced a magic number with a constant.

  XTide 2.9 RC3 (2007-02-18)

   (Bug) Stopped time warps on subordinate stations from crashing
   calendars, AGAIN.  The parent class of the class that was junked and
   rewritten the last time around has been junked and rewritten.  Calendar
   mode has been reimplemented in an entirely different style at great
   expense and at the last minute.

   (Code rot) Fixed configure to detect and use libdstr if it is present.

   (Optimization) Inlined some functions and methods to make the
   highfalutin' C++ code in XTide 2.9 run as fast as the crufty C code in
   XTide 2.8.3.  See commentary in ConstituentSet::tideDerivative for
   details.

   (Usability) Decreased scrolling fraction for flat map from 95% to 25%
   (consistent with globe).  Made station dots bigger in globe (more like
   map).  Made tide graphs scroll by half the width of the graph instead
   of by 1 day.

   (Docs) Added makefile rule to generate README, ChangeLog, NEWS,
   AUTHORS, and README-QUICK from the web site.

  XTide 2.9 RC2 (2007-02-11)

   (Feature/Cleanup) Added estimation of MLLW to stats mode; made stats
   mode text from RC1 more consistent.

   (Usability) Improved error reporting to distinguish absence of an
   HFILE_PATH from absence of harmonics files.

   (Cleanup) The C++ standard does in fact promise that the elements of a
   std::vector are stored contiguously--purged MemoryChunk and replaced
   its uses with vectors.

   (Nits) Fixed a violation of coding conventions; improved commentary in
   several places.

  XTide 2.9 RC1 (2007-02-01)

   (Cleanup) 100% code review and major cleanup.
     * Performed numerous major and minor refactorings.
     * Replaced crufty data structures with standard templates.
     * Updated obsolescent coding practices.
     * Corrected improper inheritance relationships.
     * Purged dead, duplicate, and wasteful code.
     * Purged gratuitous complexity and excessive generality.
     * Purged speed hack that was incompatible with the design (hoping
       that nobody will be impacted by the performance hit).
     * Improved integrity checking.
     * Created enums for cryptic parameters.
     * Used const where applicable.
     * Defined coding conventions.

   (Code rot) Installed canonical Dstr.  Only visible impact should be
   different sorting of location names containing , , , , or
   fractions.

   (Code rot) Caused xttpd to serve /favicon.ico as expected by most
   browsers nowadays.

   (Code rot) Added support for the newfangled NET_WM protocol to set
   window titles.  This resolves an issue with window titles getting
   mangled when the ambient locale is UTF-8.  Bug report credit:  Lutz
   Mndle.

   (Code rot) Converted to automake; updated configure.ac per autoconf
   2.60.

   (Code rot) Removed Cygwin and Irix workarounds for incomplete strftime
   implementations.  Cygwin's was fixed.

   (Optimization) Added a pixel cache to mitigate a performance bottleneck
   that occurs while anti-aliasing X graphs in xxPixmapGraph.

   (Feature) Added LaTeX format for calendar mode and associated settings
   pagewidth, pageheight, and pagemargin.

   (Feature) Added eventmask setting, deprecated nosunmoon setting.
   Eventmask allows moon phase, sunrise, sunset, moonrise, and moonset to
   be enabled or disabled individually, whereas nosunmoon only allowed
   them to be enabled or disabled as a group.

   (Feature) Text and HTML form output are now generated in UTF-8 if that
   is the ambient codeset.  Names specified in UTF-8 on the command line
   are now understood.

   (Feature) Text mode graphs and banners now show darkness (night time)
   in a manner analogous to PNG or X graphs.

   (Feature) Mouse wheel (mapped as Button4 and Button5) now works to
   scroll text prediction windows, location lists, the control panel, and
   the disclaimer.

   (Feature) Added mean of maxima and minima and CPU time to stats mode.

   (Feature) Made raw and medium rare modes accessible from xtide command
   line.

   (Feature) Added setting to control whether tide graphs are anti-aliased
   on true color displays.

   (Feature) Added setting to label tenths of units in graphs.

   (Feature) Resolved timestamp collision problem in graphs.  (1) Shift
   location of timestamps to avoid collisions when feasible.  (2) Improved
   logic for deciding when to use short descriptions.

   (Usability) When failing to load a font, report the name of the font
   that failed to load.  When swapping the begin and end times, inform the
   user.

   (Portability) Used new autoconf feature to obtain integer types with
   known sizes.  Used these types for TIME_WORKAROUND and Interval.

   (Compliance) Spun off libtcd into a separate tarball.

   (Security) Allow configuring user and group for xttpd and make xttpd
   exit if the uid/gid can't be set thusly.

   (Robustness) Trap and report overflow when adding an Interval to a
   Timestamp.

   (Robustness) Generalized Timestamp::tm2utc and eliminated the last use
   of libc's mktime.  Bad or out-of-range timestamps provided by the user
   should now reliably yield a relevant error message.

   (Robustness) Fixed bug in handling (ignoring) of ill-formed x-fields in
   TCD.

   (Robustness) Modified Graph to be more compatible with variable-width
   fonts, similar to patch contributed by Lee Ann Rucker.

   (Bug) Fixed assertion failure on changing preferred units of length in
   control panel while a current station is displayed.

   (Bug) Fixed xttpd neglecting to demangle %XX syntax in exact query
   URLs.  Bug report credit:  James K. Lowden.

   (Bug) Fixed window manager closing prediction windows while subordinate
   dialogs were open, which caused XTide to fail to terminate when the
   last window was closed.

   (Bug) Fixed failure to apply color settings to control panel scrollbar.

   (Bugs) Fixed identification of day transitions in rare and pathological
   cases.  Prior to the fix, it was possible for calendar to put events in
   the wrong day around the time of daylight savings time changes in
   exotic locales having interesting DST rules.

   (Bug) Fixed invalid simplification of current sub stations having slack
   offsets and level adds that resulted in the slack offsets being ignored
   for affected stations.

   (Bug) Stopped time warps on subordinate current stations from crashing
   calendars, again.  The offending logic is that responsible for figuring
   how many columns are needed.  Said logic has broken repeatedly.  This
   time I basically gave up on the whole approach and dumbed it down to
   something that hopefully won't break.

   (Bug) Fixed incorrect rounding of negative coordinates in graphs.  You
   could notice this in text graphs or banners where column zero sometimes
   collected an hour tick that should already have scrolled off into
   negativeland.

   (Nit) Remove assertion failure if knots^2 are specified as the units in
   a sub station record (levelAdd units are always knots anyway).

   (Nits) Minor changes in calendar mode text.

   (Nit) Fixed off-by-one-second bug in end boundary setting for xttpd
   calendars.

   (Nit) Handle whitespace in HFILE_PATH correctly.

   (Nit) In disclaimer, replaced facetious reference to continental drift
   with serious references to subsidence and uplift.

   (Nit) Fixed shifting horizontal alignment of text in X11 text modes.

   (Nit) When applying settings in the control panel, preserve marklevels
   and steps but reset aspect and units to defaults or whatever the new
   settings specify.

   (Nit) Instead of always barfing when HOME is unset, barf only when the
   need arises to write something to the home directory, and do without
   any config files that would normally be there.

   (Nit) Once again changed descriptive text related to the middle-level
   line to avoid confusion.

   (Nit) Fixed unintended scrolling of X11 text modes triggered in rare
   circumstances.

   (Nit) Fixed X11 graphs and clocks momentarily flashing to background
   color when updating.

   (Nit) Minor changes to short descriptions for tide events.

   (Bug) Added documented bug for xttpd logging timezone shift.

   (Bug) Added documented bug for control panel vanishing buttons problem.

   (Cosmetic) Installed new default icon.

  XTide 2.8.3 (2006-03-13)

   (Code rot) Made to compile under gcc 4.1.0.

  XTide 2.8.2 (2005-01-06)

   (Bug) Fixed "oops" in xxMap.cc that caused station dots to be
   suppressed on part of the flat map.  Bug report credit:  Jan Depner.

  XTide 2.8.1 (2004-12-28)

   (Portability) Updated configure to look in lib64 for X libs, for
   compatibility with x86_64.  Bug report credit:  Fedora / David Kaplan.

  XTide 2.8 (2004-12-10)

   (Nit) More intelligent selection of WVS resolutions in globe.  The
   wvs3.dat file now gets use.

   (Nit) Don't suppress single-point islands on globe.

  XTide 2.8 BETA 2 (2004-11-17)

   (Bug) Tried to fix crash on startup on multi-head displays (no feedback
   on whether it worked).

   (Oversight) Omitted slack offsets are now handled by interpolating from
   known tide events rather than defaulting to reasonable values.  This
   should have been done as part of the changes in Beta 1.

  XTide 2.8 BETA 1 (2004-10-26)

   (Bug) The subordinate station interpolation algorithm derived from work
   by Jean-Pierre LaPointe started misbehaving when it met the new NOS
   data imported 2004-09.  See Exhibit A.

   Exhibit A: discontinuous tide graph for Hana, Maui

   That algorithm was designed around architectural problems that were
   eliminated in the refactorings of XTide 2.7.  Replaced it with a
   simpler and better algorithm that solves the above problem and three
   others (appearing below).

   The old algorithm had the interesting property that, as a side effect
   of fudging around pathological cases that broke the algorithm, the
   graph would often be a more likely model of reality than unquestioning
   loyalty to the corrections would give.  No such luck with the new
   algorithm, unless I deliberately break it in the same way.  See Exhibit
   B, where an application of offsets to the insignificant higher low and
   lower high tides at Kahului has produced a significant (and probably
   mythical) tide cycle at Hana on the evening of 2004-09-08.

   Exhibit B: Kahului
   Exhibit B: Hana ho

   (Bug) Fixed this longstanding documented bug:

     Tide graphs and raw output for subordinate current stations won't
     mesh with the predicted times of slack water, Min Flood or Min Ebb.
     Cause of bug: The interpolation algorithm used to produce tide
     graphs for subordinate stations doesn't do slack water.  Workaround:
     none.

   (Bug) Removed this longstanding documented limitation:

     The raw tide levels for subordinate current locations whose
     reference stations are hydraulic will do bogus things for a few
     minutes around the time of slack water.  Hydraulic currents
     exacerbate a minor inaccuracy that exists for all subordinate
     stations, producing a major inaccuracy.

   (Feature) Removed this longstanding documented limitation:

     For most subordinate stations, you can't set a mark level.

   (Bug?) Changed application of offsets for Min Flood and Min Ebb on
   subordinate current stations to match what I think is NOS' intent.  For
   details, see [5]http://www.flaterco.com/xtide/mincurrents.html.

   (Bug) Fixed an IMPOSSIBLE_CONVERSION failure (oddly enough, from some
   units to the same units) triggered by opening a station, converting
   units, setting a mark level, and then opening a new window from the
   Options menu.  Kudos to August Hahn for discovering the steps to
   reproduce this "interesting" bug.  Added a new warning, NO_CONVERSION,
   to flag any other occurrences of the same thing.

   (Code rot) Added :America/Juneau, :America/Nome, :America/Yakutat and
   :Pacific/Johnston to the compatibility table for platforms with
   obsolete zoneinfo.  (Deliver me from Solaris 8!)

   (Bugs & Features) Upgraded to libtcd 2.0.

   (Feature) Added about mode.  (As in "About this station")

   (Cleanup) Cleaned up strange coding in StationRef, HarmonicsFile, and
   Offsets left over from the days of XML sub stations.

   (Cleanup) Deleted some dead pretty-printing code in Speed, Constituent,
   etc.; got rid of static buffers in some other pretty-printing code; got
   rid of the Constituent class (merged into TabulatedConstituent); synced
   Angle::normalize with fp roundoff fix and assertion from Congen; added
   an assertion that node factors should be greater than 0 (this will
   detect TCD files with overflow problems).

   (Cleanup) Removed CFLAGS from the build process; just use CXXFLAGS.
   Removed -DNVSUNOS from configure.in since it has no effect on libtcd.

   (Cleanup) Moved libtcd accesses out of TabulatedConstituent.  Moved
   libtcd dependencies out of HarmonicsFile.hh and changed build
   dependencies so that only HarmonicsFile gets rebuilt when libtcd is
   changed.

   (Bug) Changed "Mean Tide Level" verbiage (formerly "Mean Sea Level") to
   say "Mean Astronomical Tide."  The National Ocean Service (NOS) defines
   both Mean Sea Level (MSL) and Mean Tide Level (MTL) in terms of
   averages taken over observations.  The line drawn by XTide corresponds
   to the mathematical mean level of the predictions, which approximates
   both MSL and MTL, but, strictly speaking, is equivalent to neither.

   (Nits) Fixed nits revealed by g++ -Wall -Wextra -pedantic.

   (Bug) Fixed a logic error that could cause XTide to lock up if you
   looked at a period of more than 24 hours with no tide events in just a
   certain way.

   (Feature) Made the globe location chooser able to zoom in closer.

   (Nit) In both location choosers, quit chopping lines that are only
   partly outside the window.

  XTide 2.7.1 (2004-08-17)

   (Bugs) Incorporated libtcd patch:

     Version 1.13
     David Flater
     2004-08-15

     (create_tide_db)  Write a valid end_of_file record even if someone
     creates a database with no tide records.

     (tide_db_default)  Removed a superfluous space character in table of
     default datum types (after Lowest Astronomical Tide).

   (Evil) Disabled the translation of the TCD comments field into a notes
   field for sub stations.  It was a historical oddity that sub stations
   had notes but not comments and reference stations had comments but not
   notes, and this was no excuse for overloading the comments field.
   Harmbase2 now wants to put stuff in the comments field for sub
   stations, with the result that XTide 2.7 blabbers the comments to every
   user as a cryptic and strangely verbose note.  Notes will come back if
   and when the TCD format is extended to include a separate notes field.

  XTide 2.7 (2004-08-09)

   (Nit) Fixed xttpd to include the file name as well as the revision date
   when citing what version of which harmonics file it's using.

  XTide 2.7 BETA 2 (2004-07-01)

   (Portability) Ignore all hidden files (dot files) in a directory
   indicated by HFILE_PATH, not just "." and "..".  (OS X creates hidden
   files everywhere.)

   (Portability) Run ranlib on libtcd.a; ignore error if ranlib isn't
   there.  (OS X needs ranlib.)

   (Portability) Changed normalcflags and normalcxxflags in configure.in
   to say -O instead of -O2.  (Forte doesn't grok -O2.)

   (Portability) When looking for X11 in configure, recognize libXaw.dll.a
   (per latest Cygwin) as well as libXaw.so and libXaw.a.

   (Nit) Removed unnecessary escaping and quoting in a warning message in
   configure.in.

  XTide 2.7 BETA 1 (2004-04-20)

   (Code rot) libtcd 1.12:  Deleted #include <malloc.h> from tcd.h.

   (Nit) Replaced inappropriate radiation symbols in error windows with
   standard international symbols for general panic and impending doom.

   (Feature) Added iCalendar format and option to get iCalendar output
   from xttpd.

   (Feature) Added cbuttons setting to control whether clock windows
   appear with buttons by default.

   (Feature) Allowed setting location of lone window with -geometry.

   (Feature) Allowed specifying an IP address for xttpd.

   (Feature) Added CSV format to various modes.

   (Portability) Added test for Fedora RPM build environment in
   configure.  If found, usual and customary compiler and linker switches
   are suppressed and RPM_OPT_FLAGS are added.

   (Bug) Fixed small memory leak in SubordinateStation.cc.

   (Cleanup) Major refactoring of tide events handling code.
     * Original design:  predictExactTideEvent took an "internal"
       timestamp, scanned for tide events, returned a tide event with
       "corrected" timestamp (incorporating subordinate station
       corrections) and also the "uncorrected" timestamp from where
       scanning for the next event would continue.  Complex caching logic
       was needed to integrate actual tide-tide events with sun and moon
       events and still return events in the right order... usually.
       However, sub station corrections could still cause events to be
       returned out of order, and there was no way to fix it.
     * What happened:  Eventually every relevant module except xxTextMode
       grew its own crufty layer of linked list bashing to post-process
       the predictions, really get them in the right order, and meet other
       requirements unique to each module.  Circa version 2.6 the cruft
       achieved critical mass and began to obstruct routine maintenance.
     * The fix:  Linked list bashing made redundant by
       TideEventsOrganizer, which inherits standard multimap template.
       predictExactTideEvent replaced by predictExactTideEvents, which
       takes a range of timestamps and populates an organizer with exactly
       the events falling within that range (no "internal" timestamps
       required).  extendRange adds more events at the beginning or end of
       an organizer to support scrolling types of behaviors, albeit in
       chunks instead of single events.
     * Outcome:  Cruft greatly reduced.  Several previously unfixable bugs
       were fixed (see below).  -b and -e ranges now mean something.
       Scrolling performance in xxTextMode slightly degraded.

   (Bug) Fixed this longstanding documented bug:

     There are edge effects at the start and end of an interval chosen
     for subordinate station predictions.  Some events that are inside of
     the interval may be excluded, and vice-versa.  Cause of bug: While
     the interval is faithfully scanned for the reference station, tide
     events can jump in or out of the chosen interval after the offsets
     are applied.  Workaround: Leave a margin around the interval of
     interest that is larger than the offsets of the subordinate station
     (a few hours should suffice).

   (Bug) Fixed this longstanding documented bug:

     If two events (e.g., high tide and full moon) happen to coincide
     very closely, within 1 minute of each other, and you reverse the
     direction of the scrolling in the interactive plain mode window at a
     point where only one of the events is visible, you might be able to
     make the other one disappear.  Cause of bug: accuracy of
     predictions, precision of timestamps.  Workaround: don't do that.

   (Bug) Fixed this longstanding documented bug:

     In the interactive plain mode window only, tide events can be listed
     out of order for subordinate stations.  Cause of bug: design
     conflict.  Efficient scrolling is incompatible with keeping the list
     sorted.  Workaround: save the predictions to a file and they will be
     sorted.

   (Nit) -b and -e ranges now mean specifically "all t such that b <= t <
   e."

   (Nit) Expunged anachronistic references to "text mode" (it's plain
   mode).

   (Bug) Fixed an assertion failure "tidecol < numcol" that could occur
   generating calendars for pathological subordinate current stations
   where applying the offsets causes slack-before-flood to happen after
   max flood or analogous for ebb.

   (Nits) Added casts and changed data types to get rid of
   unsigned-to-signed comparison warnings.

   (Cleanup) Major refactoring of settings management code to fix this
   longstanding "known design problem:"

     Nine source files must be changed to add one new setting
     (Settings.hh, Settings.cc in 3 places, config.hh, UserDefaults.cc,
     xxApplicationDefaults.cc, ConfigDefaults.cc, CommandLineSettings.cc
     in 2 places, xxXTideRoot.cc in 4 places, and xxXTideRoot.hh).

  XTide 2.6.4 (2003-11-16)

   (Bugs) Incorporated libtcd patch:

     Version 1.11
     David Flater
     2003-11-16

     (create_tide_db)  Fixed horrible bug:  offsets for speeds,
     equilibrium args, and node factors were sign-reversed with respect
     to their usage in read_tide_db_header and write_tide_db_header,
     resulting in possible overflows.

     (read_tide_db_header)  Added handling for zero tide records, which
     happens on new database create.

     (open_tide_db)  Added check of modified flag to 2003-10-14 code.

     (close_tide_db)  Deleted repeat free of tindex introduced
     2003-10-14.  Cleared modified flag on close.

  XTide 2.6.3 (2003-10-14)

   (Bug) Incorporated libtcd patch:

     Version 1.10
     David Flater
     2003-10-14

     Incorporated patch from Phil Thornton that closes a memory leak and
     improves performance on repeat calls to open_tide_db.  See
     [6]http://www.flaterco.com/xtide/tcd_notes.html

   (Nit) Added a precompiler directive to prevent code inside of assert
   statements from being disabled by over-ambitious optimization.

  XTide 2.6.2 (2003-09-05)

   (Bug) Incorporated libtcd patch:
    Version 1.09
    Jan C. Depner
    2003-09-04

    Bug fix - modifying last record in file and changing size of record caused
    a big problem.

  XTide 2.6.1 (2003-07-23)

   (Bug) Incorporated libtcd patch:
    Version 1.08
    Jan C. Depner
    2003-07-23

    Bug fix - deleting last record in file caused a big problem.

  XTide 2.6 (2003-05-28)

   No code changes; just promoted to final release status.

  XTide 2.6 BETA 4 (2003-03-27)

   (Nit) Updated version string in libtcd.

  XTide 2.6 BETA 3 (2003-03-27)

   (Bug) There was another problem with the encoding of subordinate
   stations in TCD files.  The only stations materially affected this time
   were Gnat Cove, Carroll Inlet, Alaska, and Olga Point, Olga Strait,
   Sitka Sound, Alaska.  However, the fix required another incompatible
   change to the encoding of subordinate stations and updates to affected
   code in libtcd and XTide.  TCD files produced with tcd-utils dated
   earlier than 2003-03-27 and previous development or beta versions of
   XTide 2.6 should be replaced to avoid getting incorrect results.

  XTide 2.6 BETA 2 (2003-03-18)

   (Bugs!) tcd-utils was building some subordinate current stations
   incorrectly.  The fix required an incompatible change to the encoding
   of slack offsets and updates to affected code in libtcd and XTide.  TCD
   files produced with tcd-utils dated earlier than 2003-03-18 and
   previous development or beta versions of XTide 2.6 should be replaced
   to avoid getting incorrect results on subordinate current stations.
   Except... ironically, it appears that some of the subordinate current
   stations presently in the database are broken in precisely the same way
   as one of the TCD bugs, with the result that in those cases, you get
   the right answer only with the broken code.  The issue with those is
   the bogus assumption that the right thing to do if you don't get slack
   offsets is set them to zero.  If you don't get slack offsets
   (floodbegins, ebbbegins), OMIT those fields!  When slack offsets are
   omitted, XTide will interpolate a reasonable value.  But if you specify
   zero, you get zero -- even if that's unreasonable given the skew of max
   and min.  (This note has been added to the relevant portion of the
   documentation.)

  XTide 2.6 BETA 1 (2003-02-20)

   (Optimization) Changed from ASCII format harmonics files (harmonics.txt
   and offsets.xml) to binary TCD format (harmonics.tcd); retired the
   problematic fast loader since all loading now occurs at ludicrous
   speed.  Thanks again to Jan Depner.

   (Feature) Added setting to enable inferred constituents (Jan Depner).

   (Code rot) Expunged all uses of deprecated C++ streams from the code
   except for the verbose debugging code that hasn't been used in ages.

   (Feature) Added support for the following command line syntactic
   shortcuts:
     * Arguments can be concatenated with their switches.
     * A yes/no switch that omits its argument implies "y".
     * Using +xx instead of -xx for a yes/no switch inverts the argument
       (so if the argument is omitted, "n" is implied).

   (Feature) Overhauled usage of time_t to allow timestamps to range
   before 1970 and after 2037.  Added TIME_WORKAROUND to enable access to
   the past and future years on platforms where time_t is 32 bits.

   (Portability) Changed default time formats when compiling under Irix to
   work around lack of support for %l in SGI's strftime implementation.
   C.f., similar Cygwin bug fixed in XTide 2.5 BETA 1 (2002-05-21) and the
   "fix" that started it all in XTide 2.4 BETA 1 (2001-03-25).  What a
   pain.

   (Nits) Gave the control panel a scrollbar.  Stabilized the layouts of
   the control panel, text, raw, and medium rare modes.  Merged
   xxRareModes into xxTextMode.

   (Feature) Replaced the now mostly useless filename field in location
   lists with a type field (reference or subordinate).

   (Feature) The zone at the bottom of tide graphs previously used to note
   slack and mark crossing events is now shared by moon events.  The date
   was replaced with a description that is abbreviated when things get
   crowded.

   (Feature) Added moonrise, moonset.

  XTide 2.5 (2002-07-14)

   (Nit) Tweaked some verbiage in the control panel.

  XTide 2.5 BETA 1 (2002-05-21)

   (Portability) Tweaked autoconfig files to allow clean compilation under
   OS X.  Thanks to Martin Hofmann.

   (Portability) Changed default time formats when compiling under Cygwin
   to work around lack of support for %l and %Z formats by Cygwin's
   strftime implementation.

   (Feature) Added medium rare mode.

   (Feature) Made raw and medium rare modes accessible from the GUI.

   (Feature) Incorporated new globe code, which added coastlines and a new
   flat map projection, from Jan C. Depner.

   (Feature) Allowed switching between Cylindrical Equidistant and
   Orthographic Projections.  Added setting to specify user's preference
   (flatearth).

   (Feature) Globe now rotates on two axes, and both globe and map include
   latitude and longitude readouts.

   (Feature/Portability) Incorporated patch from John Holden to improve
   xttpd user interface for requesting tide calendars and to work around
   an Alpha-specific bug in timestamp rendering.

   (Code rot) Updated :America/Iqaluit, :America/Mexico_City, and
   :Mexico/General in time zone compatibility table.

   (Bug) "Mean Sea Level" verbiage corrected to say "Mean Tide Level."
   Identifiers containing msl were not renamed.

   (Nit) Updated disclaimer text.

   (Nit) Cleaned up xxTimestamp.  N.B., newer versions of Athena Widgets
   now show two columns of choices where pull-down buttons used to run off
   the screen, so the "tiny font" previously used for some of the choices
   is no longer used here.  It is still used in the clock icon.

   (Nit) Added a line to the 'install' target of Makefile.in to create the
   target directories if they do not exist.

  XTide 2.4 (2001-05-09)

   (Bug) Fixed an OLD memory management bug in Dstr.cc.  Thanks to Phil
   Thornton.

  XTide 2.4 BETA 2 (2001-04-15)

   (Bug) xttpd did not supply a robots.txt page.  Added robots.txt patch
   from John Stanley.

  XTide 2.4 BETA 1 (2001-03-25)

   (Feature) Enhanced HFILE_PATH to enable searching of directories.

   (Bug) Removed, or at least improved, a kludge in Timestamp that was
   preventing 24-hour time users from getting leading zeros on hours.  A
   compensatory change to the default time and hour formats was also made.

   (Nit) Updated example in NO_HFILE_PATH error message again.

   (Tuning) Reduced fastload limit to 2.

   (Feature) Xttpd now shows the versions of the harmonics files that it's
   using on its main page.

   (Feature) Added a note attribute to subordinate station XML.

   (Optimization) Incorporated patch to squeeze out null constituents.

  XTide 2.3 (2000-12-08)

   No code changes; just promoted to final release status.

  XTide 2.3 BETA 2 (2000-10-01)

   (Code rot) Added :America/Belem, :America/Fortaleza, and
   :America/Maceio and revised abbreviation for :America/Sao_Paulo in time
   zone compatibility table.

   (Compliance) Smashed case in all (I hope) HTML markup tags for XHTML
   compatibility (sugg. Richard Kennedy).

   (Nit) Typographical tweaks in xttpd.

  XTide 2.3 BETA 1 (2000-09-03)

   (Feature) Replaced calendar mode with a clone of the much more popular
   one that Dean Pentcheff has been using on his web site.  The "old"
   calendar mode is still available from tide as -m C.

   (Feature) Added setting to suppress sunrise, sunset, moon phases.

   (Code rot) Added :America/Goose_Bay to timezone compatibility table.

   (Nit) Updated example in NO_HFILE_PATH error message.

  XTide 2.2.2 (2000-07-30)

   (Compliance) To comply with XML 1.0, the offsets.xml file was changed
   to have a single "root" document element.  As a result, XTide 2.2.1 and
   earlier cannot find the stations in it.  This patch enables XTide to
   read either old or new offsets.xml files.  The prolog of .xtide.xml
   written by XTide is also made compliant.

  XTide 2.2.1 (2000-07-16)

   (Code rot) Added :America/Hermosillo and :America/Iqaluit to the
   zoneinfo compatibility table.

  XTide 2.2 (2000-01-12)

   No code changes; just promoted to final release status.

  XTide 2.2 BETA 1 (1999-12-12)

   (Compliance) Xttpd now backgrounds itself and logs to the syslog
   facility.

   (Feature) Added /etc/xtide.conf as alternative to setting HFILE_PATH.
   The format of this should probably be XML to guard against future
   expansion, but for now it is as contributed from Debian (Peter
   Galbraith).

   (Feature) Ditched Imake for Autoconf, which simplifies installation.

   (Feature) Installed a Unicode-esque collating sequence for Latin1.

   (Feature) xttpd: applied location lookup patch from John Holden.  This
   enables URLs of the form http://whatever/locations/name in addition to
   the more reliable http://whatever/locations/nnn.html syntax.  The
   name-based URLs are not promulgated by xttpd itself.  The new syntax is
   documented in a new hints & tricks page served by xttpd.

   (Feature) If you set the environment variable XTIDE_DEFAULT_LOCATION,
   it works like the default location feature of XTide 1.

   (Robustness) Improved resolution of reference stations for subordinate
   stations to eliminate many SUB_SUBORDINATE errors.  Fast loading is
   still sensitive to the ordering of HFILE_PATH.

   (Code rot) Added an autoconf step to deal with mutually incompatible
   requirements of different platforms on the signature of the accept()
   function as used in xttpd.cc.

   (Code rot) Added Antarctic time zones to the compatibility table in
   Timestamp.cc.

   (Compliance) Changed packaging from xtide2/* every time to
   xtide-X.Y.Z/*.  Changed suggested disposition of xttpd from bin to
   sbin.  Changed xttpd man page section from 1 to 8.  Changed suggested
   disposition of harmonics files from /etc to /usr/local/share/xtide.

   (Compliance) Moved some static functions into externC.cc with
   appropriate signature changes to placate the Sun compiler's anachronism
   checker.

   (Portability) Added workaround for bug in Sun WorkShop Compiler C++
   SPARC Version 5.000.  Thanks to Raphael Malyankar.

   (Nit) Applied patch from Peter Galbraith to set background color in
   xttpd to white.

  XTide 2.1.7 (1999-08-14)

   (Bug) Fixed drawing of Latin1 characters.  This involved increasing the
   font height by one row, which will cause minor but noticeable changes
   in the placement of text.

   (Portability) Changed backlog parameter for socket in xttpd.cc from 0
   to 5.  Digital Unix would accept no connections if backlog was 0.
   Thanks to Giuseppe Cabras.

  XTide 2.1.6 (1999-08-09)

   (Bug) Fixed xttpd assertion failure when subordinate stations don't
   supply time zones.

   (Bug) Made RGBGraph stop crashing when it's asked to draw characters
   that it doesn't know.  To do, teach RGBGraph to draw the entire Latin1
   character set.

   (Portability) Messed with usage of select() in xttpd.cc to try to make
   it more portable.  Giuseppe Cabras reported trouble with it under
   Digital Unix.

   (Portability) Added Imakefile.hp from Christopher Caldwell.

  XTide 2.1.5 (1999-07-22)

   (Portability) Cleaned up overloading ambiguities and ANSI compliance
   problems encountered with HP aC++ B3910B A.01.18 (HP-UX 10.20).  Thanks
   to Christopher Caldwell.

  XTide 2.1.4 (1999-05-17)

   (Portability) Got rid of some dubious implicit conversions between
   PredictionValue::Unit and its encapsulated enum.  Don't know if they
   were strictly conforming or not, but they made the latest Sun compiler
   use the wrong constructor.  This showed up as UNRECOGNIZED_UNITS errors
   when trying to load a tide station.

  XTide 2.1.3 (1999-05-16)

   (Code rot) Stopped including stream.h in common.hh.  It was always
   redundant with iostream.h, but now stream.h has vanished from Sun's
   latest compiler.

  XTide 2.1.2 (1999-03-15)

   Add support for color specifications having the deprecated #RRGGBB
   format, which recently resurfaced on Debian.

   Patch from Falk Hueffner for Timestamp::tm2utc.  On his Alpha (BSD?),
   time_t is 64 bits but gmtime returns NULL if the time_t is out of a
   certain range, which was leading to segfaults.

   Fixed reporting of MKTIME_FAILED errors caused by bad timestamps on the
   -b and -e switches.

  XTide 2.1.1 (1999-01-24)

   Patch to get rid of all of the references to universe.digex.net that
   appeared in the sources and documentation.  No functional changes.

  XTide 2.1 (1998-12-20)

   Implemented something similar to a patch sent by Thomas Dean to enable
   the direction of current that he provided in his XML offsets to be
   displayed in the boilerplate of text output.  Making it work for
   reference stations is deferred until whenever reference stations are
   migrated to XML and the new attributes can conveniently be added.

   Removed $(DEPXPMLIB) from xtide dependencies (DEPLIBS1 in manifest) to
   get rid of this needless compilation failure:

make: *** No rule to make target `/usr/X11R6/lib/libXpm.a', needed by `xtide'.
Stop.

   The cause of this was that some Linux distributions only provide a
   shared libXpm, while the dependencies generated by Imake check for the
   existence of the static library.

   Made -o switch append instead of overwrite files per request from AED.

  XTide 2.0.1 (1998-10-04)

   Fixed a bug reported by Alan Davis which caused access violations and
   other problems when a default center longitude was set in the control
   panel.

  XTide 2.0 (1998-07-28)

   No code changes; just promoted to final release status.

  XTide 2.0 Beta.3 (1998-06-28)

   Reversed order of location list latitude sort so that points north
   appear at the top (sug. Dave Davey).

  XTide 2.0 Beta.2 (1998-06-02)

   SGI portability fix from David Warren:  changed declarations of nested
   structs in header files to use Classname::structname instead of struct
   structname.

  XTide 2.0 Beta.1 (1998-06-01)

   First versioned release of XTide 2.
     __________________________________________________________________

   [7]<- Previous [8]-> Next [9]Contents

References

   1. http://www.flaterco.com/xtide/quickinst.html
   2. http://www.flaterco.com/xtide/news.html
   3. http://www.flaterco.com/xtide/xtide.html#contents
   4. http://www.flaterco.com/xtide/files.html#pubs
   5. http://www.flaterco.com/xtide/mincurrents.html
   6. http://www.flaterco.com/xtide/tcd_notes.html
   7. http://www.flaterco.com/xtide/quickinst.html
   8. http://www.flaterco.com/xtide/news.html
   9. http://www.flaterco.com/xtide/xtide.html#contents