1 [1]<- Previous [2]-> Next [3]Contents 2 3Icon Change log 4 5 XTide 2.15.3 (libxtide.so.1.0.3) (2020-06-28) 6 7 (Code rot) Upgraded URLs in messages, man pages, and comments to https. 8 9 (Portability) Applied patch from Iain Hibbert to replace string 10 comparison == with more portable = in configure.ac. 11 12 (Nit) Clarified configure.ac messages about libXaw3dXft. 13 14 Moved build scripts for Android, Windows, and DOS to the separate 15 FunkyBuilds package available from 16 [4]https://flaterco.com/xtide/files.html#FunkyBuilds. Dropped 17 scripts/Fedora, which was obsolete and replaced by scripts/systemd. 18 19 Corresponding changes and minor fixes to documentation. 20 21 XTide 2.15.2 (libxtide.so.1.0.2) (2019-02-24) 22 23 (Bug) Escape ampersands and < characters in text strings in SVG 24 images. Bug report credit: Stephen Woodbridge. 25 26 (Bug) Added AM_DISTCHECK_CONFIGURE_FLAGS to Makefile.am to enable make 27 distcheck to succeed when out-of-path includes and libs are necessary 28 to build. 29 30 (Code rot) Adapted to new toolchain producing xml_y.hh where it used to 31 have xml_y.h. 32 33 (Code rot) Updated URLs for generation of text files from HTML. 34 35 XTide 2.15.1 (libxtide.so.1.0.1) (2016-02-22) 36 37 (Regression) Fixed "bind: Invalid argument" failure of xttpd on FreeBSD 38 and OS X (El Capitan). Linux and Android are not affected. Bug report 39 credit: Manfred Antar. 40 41 XTide 2.15 (libxtide.so.1.0.0) (2016-01-25) 42 43 This release is all about catching up with external changes, with 44 significant additions occurring only to xttpd. Users of the 2.14 45 versions of xtide, tide, and libxtide won't notice a functional 46 difference, but some build script breakage has been fixed. 47 48 Added [5]systemd support to xttpd (with thanks to Mamoru Tasaka): 49 * When configured with --enable-systemd, xttpd links with libsystemd 50 and runs as a "simple" socket-activated service. This removes the 51 need for xttpd to be launched with root privileges but requires 52 [6]additional config files to be installed. 53 * Added scripts/systemd containing xttpd.socket and xttpd.service. 54 * Harmonizing changes to barf messages in libxtide. 55 56 Other xttpd improvements: 57 * Made work with IPv6. 58 * Invoke daemon() if not using systemd. 59 * Log empty requests as such instead of "Bad client command" with no 60 details. 61 * Improved guessing of hostname when webmaster address is not 62 specified. 63 * Added -DXTTPD_NO_DAEMON option for debugging/testing and as a 64 kludge for Android. 65 66 For Xaw3dXft: 67 * Fixed freetype2 detection (was failing on Slackware 14.1). 68 * Updated xxX.cc to the 1.6.2d API. 69 * Updated configure to detect 1.6.2d and not any earlier version. 70 Note: Every update tends to break the build, but there are no 71 version defines to use defensively. 72 73 Updated Android, VS, and DOS build scripts for Android NDK r10e, Visual 74 Studio Community 2015, and DJGPP 2.05 respectively, and the current 75 versions of everything. 76 77 Obscure changes to build scripts for compatibility with new versions of 78 automake/autoconf: 79 * Added AUTOMAKE_OPTIONS = subdir-objects to Makefile.am. 80 * Fixed consequential damage to XML parser recipes. Note: Newer 81 autotools produce scripts such that regeneration of the XML parser 82 will fail. You get xml_y.hh instead of xml_y.h. For now, stick 83 with the working build scripts generated by older autotools. 84 * Added m4_ifdef([AM_PROG_AR], [AM_PROG_AR]) to configure.ac. 85 86 XTide 2.14 (libxtide.so.0.0.0) (2014-11-02) 87 88 Moved all "common" files into a separate library and namespace, 89 libxtide. If libdstr is not provided the Dstr class gets included in 90 libxtide. 91 92 Enabled building libxtide, tide, and xttpd for Android: 93 * Fixed configure.ac nit that blocked cross-compiling. 94 * Added configure option --enable-lm_hard. 95 * Added workaround for Android/Bionic quirk of failing on zoneinfo 96 paths introduced by a colon character. This fixes the time zones 97 problem that affected MX Tides. 98 * Added example script for cross-compiling libpng, libtcd, libxtide, 99 tide, and xttpd for Android on x86 or x86_64 Linux in 100 scripts/Android. 101 102 Other portability and code rot: 103 * Added new build script for Visual Studio. The Cygwin dependency is 104 removed at the cost of using a pre-generated configuration. Zlib 105 and libpng are now built automatically with no mucking about in the 106 Visual Studio IDE. 107 * Updated Makefile.dj2 for DJGPP 2.04 and to build libxtide. 108 * Changed GCC minimum version test to ignore Clang, which 109 fraudulently identifies itself as an old GCC. Bug report credit: 110 Ryan Schmidt. 111 * Changed GCC minimum version failure into a big ugly warning. Since 112 initializer lists have become optional, some pre-4.4 versions work 113 again. 114 * Replaced a preprocessor test for Visual Studio with a more general 115 configure-time check for whether std::vector has an 116 initializer_list constructor. This fixes the SafeVector build 117 error on OS X Mountain Lion. Mavericks was never afflicted. Bug 118 report credit: Dan Hinckley. 119 120 New settings: 121 * XTide*caldayfmt (-cf) controls the format string used to print days 122 in calendars. 123 * XTide*linebreak (-lb) controls whether or not calendar mode inserts 124 a line break before prediction values. This reduces truncation in 125 text format and tweaks line wrapping in HTML and LaTeX formats. 126 * XTide*omitunits (-ou) prints numbers with no ft/m/kt and adds a 127 header line stating the units and datum (where possible). 128 * XTide*pagebreak (-pb) controls whether or not calendar mode inserts 129 a page break and repeats the station header for each month in text, 130 HTML, and LaTeX formats. Text uses form feeds and HTML uses a 131 page-break-before style. 132 133 New, experimental configurable --enable-moon-age replaces the moon 134 phase column of calendar mode with moon age. This number wants to be 135 replaced by graphics showing the moon as it would appear 136 (approximately) on each day of the lunar month as originally suggested 137 by Kelly Bellis, but it's not easy to implement that consistently 138 across all formats. FWIW, Unicode 1F311 through 1F318 provide 139 characters for 8 phases of the moon that could be used in UTF-8 text 140 modes. 141 142 (Tweak) Centered calendar cell contents in HTML and text formats as 143 they already were in LaTeX format. 144 145 (Note) In most modes the approximately zero prediction values 146 associated with slack water events are output, but they are omitted in 147 calendar mode. Noted but not changed. 148 149 Thanks to Kelly Bellis for suggestions to improve calendar mode. 150 151 XTide 2.13.2 (2013-07-21) 152 153 (Bug) Fixed that a UTF-8 locale didn't make any difference to text form 154 graph and clock mode output. 155 156 (Portability) For DOS: 157 * Updated bundled Dstr to version 1.0. 158 * Added CP437 as a possible codeset value (requires Dstr 1.0). 159 * Customized BROKEN_ZONEINFO error message for DJGPP. 160 * If nl_langinfo isn't available, the hardcoded value for codeset can 161 be selected at compile time by defining CODESET. 162 * Added DJGPP makefile and suggested settings in scripts/DOS. 163 164 (Feature) Made the default prediction interval configurable (new 165 setting -pi replaces Global::defaultPredictInterval). 166 167 XTide 2.13.1 (2013-07-10) 168 169 (Code rot) libXaw3dXft 1.6.2b changed the name of the library and 170 include path again. 171 172 (Code rot) Disabled the ancient and obsolete zoneinfo compatibility 173 hack for everything except Visual Studio because it masked time zone 174 breakage in an Android port. 175 176 (Portability) Removed requirement for the C++ compiler to support C++11 177 extended initializer lists and got the Visual Studio build working 178 again. 179 180 (Removed limitation) Incorporated patch from James Ashton to replace 181 the Skycal etcorr function, which was limiting moonrise/moonset 182 predictions to years 1900 through 2099. 183 184 Nit fixes: 185 * Build scripts: only the interactive client needs to link with 186 libgps. Tested with gpsd 3.9. 187 * Per Kelly Bellis suggestion to expose version number through GUI: 188 added "About XTide" to options menu; added version string at the 189 top of the disclaimer text. 190 * Added missing entry for Control Panel in help for options menus. 191 * Documented that datefmt setting is ignored in calendar mode. 192 193 XTide 2.13 (2012-06-03) 194 195 (Misfeature) Mostly eliminated the need to set the resource 196 XTide*beNiceToColormap: False to avoid ugly borders with Xaw3d and 197 Xaw3dXft. Added documented bug for the remaining case, which afflicts 198 xxHorizDialog via libXaw3d's asciiTextWidgetClass and seems unfixable. 199 200 (Nit) Deleted a superfluous configuration change for libXaw3dXft. 201 202 (Nit) Fixed new (GCC 4.7.0) warnings in Date.cc, xxRoot.cc, and xxX.cc. 203 204 XTide 2.13 RC3 (2012-03-04) 205 206 (Code rot) libXaw3dXft took a hard left turn and jumped versions from 207 1.3.3 to 1.6.2. RC3 will correctly detect and use libXaw3dXft 1.6.2, 208 but is no longer compatible with 1.3.3. A tweak that fixes the problem 209 with long menus in the Set Time dialog is enabled. 210 211 Caution: If using Xaw3d or Xaw3dXft, borders will be ugly unless you 212 set the resource XTide*beNiceToColormap: False. 213 214 (Compatibility) Added a workaround so that GCC 4.4 can build the 215 complicated extended initializer list in Global.cc. 216 217 (Tweak) If building with GCC 4.6 or above, use #pragma GCC diagnostic 218 ... to quash nuisance warnings. 219 220 XTide 2.13 RC2 (2012-02-25) 221 222 (Nit) Configure: Add CPPFLAGS for FreeType only when actually needed. 223 224 (Cleanup) Removed unused field from ClientSide::Glyph. 225 226 (Optimization) When creating ClientSide::Font, null out and skip 227 characters 0-31 and 128-159. 228 229 XTide 2.13 RC1 (2012-02-21) 230 231 This release candidate of XTide requires compiler support for C++11 232 extended initializer lists. GCC has supported them since version 4.4. 233 Visual C++ 2010 Express Edition doesn't have them, so the Visual C++ 234 build is on ice until something changes. 235 236 (Feature) For Athena Widgets, configure will now look for Xaw3dXft (>= 237 1.3.3), Xaw3d, or Xaw, in that order. Plain Xaw can be forced using 238 --disable-3d. Thanks to Jean-Pierre Demailly for patches to make XTide 239 work with Xaw3dXft (and vice-versa). 240 * Xaw3d is a fork from an old version of Athena Widgets that offers 241 improved scrollbars and a different look for buttons. Its last 242 release was version 1.5E in 2003. Some issues that were 243 subsequently fixed in Athena Widgets, such as long menus running 244 off the screen, were fixed differently in Xaw3d. (This affects the 245 Set Time dialog, where the list of years to choose from can be 246 quite long.) 247 * Xaw3dXft is a fork from Xaw3d 1.5E that uses FreeType fonts. The 248 primary site is 249 [7]http://sourceforge.net/projects/sf-xpaint/files/libxaw3dxft/. 250 251 (Feature) GUI improvements: 252 * Made location list and disclaimer windows resizable. 253 * Fixed layout in location choosers. 254 * Added keyboard handler to scrollable viewports. 255 * Added -mf setting to select monospace font (interactive client 256 only).* 257 * Added -gf setting to select graph/clock font (interactive client 258 only).* 259 * Fixed text alignment in graphs again. 260 * Changed embedded graph font to LiberationSans. 261 * Set a maximum initial height on the control panel. 262 263 * Important usage note: If XTide is built with Xaw3dXft, font names 264 given to XTide must be in fontconfig format (e.g., "Helvetica-10"), 265 rather than the traditional XLFD (e.g., 266 "-*-helvetica-*-r-*-*-10-*-*-*-*-*-*-*"). Also, Xaw3dXft does not 267 return errors if there are problems with a font name; it just loads a 268 default font instead. 269 270 (Code rot) Added thousands of unholy casts to make the "warning: 271 deprecated conversion from string constant to 'char*'" nagging go away 272 for all the places where I have to call library functions that don't 273 use const. Between that nagging and the new nagging about auto_ptr, 274 the deprecation was getting thick in here. 275 276 (Compatibility) Fixed problem with graph mode no longer working right 277 on a VT100. If TERM is set to vt100 or vt102 and text form is 278 requested, the Special Graphics set will be used to get the middle dot 279 and degree sign characters. However, non-ASCII characters in location 280 names and other data received from the TCD file will still do something 281 weird. Bug report credit: John Andrews. 282 283 (Feature) If TERM is set to vt100 or vt102 and text form is requested, 284 depth lines in graphs will be aligned better using characters from the 285 Special Graphics set. (I don't have a VT100, but it looks right in 286 xterm's emulation.) 287 288 (Misfeature) Made HTML form of about mode less ugly. 289 290 (Bug) Corrected inconsistent quantization of coordinates (inconsistent 291 rounding of half-pixels) in the Graph hierarchy. 292 293 (Compatibility) Added a cast to work around an ambiguous overload of 294 waitpid (used in xttpd.cc) that appeared with GCC 4.5.3 and Cygwin. 295 (Did not occur with GCC 4.6.2 under Linux.) 296 297 (Code rot) Updated backward-compatible time zone mapping for Samoa. 298 The entire hopeless workaround for obsolete zoneinfo should be killed 299 with fire, but it is still invoked when tide is built with Visual C++. 300 301 XTide 2.12.1 (2011-11-27) 302 303 (Bug) Fixed missing encoding (character set) specification in SVG, 304 which caused browser SVG rendering to fail when the station name 305 contained interesting characters. Bug report credit: Keith N. Smith. 306 307 (Portability) Updates to support building tide.exe using Visual C++ 308 2010 Express Edition: 309 * Removed a use of snprintf. 310 * Worked around the absence of a scanf format compatible with 311 uint8_t. The previous default of guessing "hhx" whenever SCNx8 was 312 not properly defined led to memory corruption, as Visual C++ would 313 treat the target variable as something larger than 1 byte. 314 * Updated build procedure in documentation. 315 316 (Nit) Updated CONFIGURE-HELP from autoconf's INSTALL. 317 318 XTide 2.12 (2011-11-03) 319 320 (Bug) Removed incorrect SVGGraph.cc dependency on X11 (thanks Jeff 321 Dairiki). 322 323 XTide 2.12 RC1 (2011-08-28) 324 325 (Feature) Added support for the SVG format. Thanks to Jack Greenbaum. 326 * Command line client supports -fv. 327 * Interactive client supports choice of format when saving clocks and 328 graphs. 329 * xttpd uses JavaScript to decide between SVG via the embed tag or 330 PNG via the img tag. 331 332 (Code rot) The nofill (-nf) setting was deprecated in favor of 333 graphstyle (-gs), and the anti-alias (-aa) setting went away. 334 335 (Feature) Added a fancier style of graph (generalized from Jack 336 Greenbaum's SVG code, example possibly embedded below) as graphstyle s 337 (semitransparent). Set opacity with -to; set line width with -lw. 338 Note that semitransparent style makes no sense in formats that don't 339 support opacity (text and PseudoColor X-windows). 340 341 JGFeatures SVG graph example 342 343 (Speedup) On TrueColor displays, graphs and clocks are now drawn by 344 constructing an RGBGraph and converting it to a Pixmap. xxPixmapGraph 345 (the Graph implementation that uses X11's drawing functions) is now 346 used only on ye olde PseudoColor displays. The excruciatingly bad and 347 slow implementation of opacities in xxPixmapGraph has been deleted 348 along with the crufty caching code that failed to speed it up. 349 350 (Cleanup) Parameters in Graph and subclasses that were misleadingly 351 named "saturation" changed to "opacity." 352 353 (Tweak) Turned off interlacing for PNGs, since it always seemed to do 354 more harm than good. 355 356 (Code rot) Made XTide work with gpsd 3.x. This is an incompatible 357 change; gpsd 2.9x no longer works. 358 359 (Notes) Browser support for SVG is still tricky. 360 * Firefox 5 361 + If an SVG is embedded using img, Firefox 5 uses jaggy scaling 362 at some zoom levels. 363 + Font scaling is inaccurate in the Linux version. 364 * Internet Explorer 9 365 + If <!DOCTYPE html> is not present at the start of a web page, 366 Internet Explorer 9 pretends not to know what SVG is. 367 + Embedding SVG using object is unreliable. It worked in simple 368 tests but failed when used by xttpd. 369 + SVG embedding doesn't work for local files (IE behaves 370 differently for the same HTML retrieved from a web server). 371 * Other browsers were not tested, as there are enough problems 372 already just getting the top two to work. 373 374 XTide 2.11 (2010-08-11) 375 376 Comment changes only. The integration with gpsd 2.95 is still dubious 377 after very limited testing, so it's just as well that XTide won't 378 automatically link with gpsd 3.0 when that comes out. 379 380 XTide 2.11 RC1 (2010-07-02) 381 382 Patches from Trent Piepho: 383 * (Feature) Allow use of -ml on xtide command line. 384 * (Bug) Fixed memory leak (pixmap leak) in xxMap. 385 * (Optimization) Replaced a sqrt with a multiply in xxMap and 386 xxGlobe. 387 388 Code changes inspired by patches from Trent Piepho, but more or less 389 different than what was suggested: 390 * (Feature) Added -tc and -cc settings to set the color of the dots 391 indicating tide and current stations respectively in the location 392 chooser. (Both formerly used the mark color.) This incurred a new 393 bug: The location chooser depends on a station naming convention 394 to determine which stations are currents. If that convention is 395 not followed, dots may be drawn in the wrong color. 396 * (Bug) Fixed WVS dir specified in xtide.conf not working with 397 --enable-local-files. 398 * (Bug) Fixed improper handling of widget internal margins in xxMap 399 that was causing some flat map behaviors to be slightly off. 400 * (Semi-bug) Corrected the overly conservative vertical scaling of 401 graphs for stations that have a large number of constituents. This 402 involved changing the method used to estimate tidal range. As a 403 side-effect, stats mode no longer reports the absolute mathematical 404 bounds; it instead reports the new "estimated" bounds, which are 405 tighter but may occasionally be exceeded. 406 * (Nits) Changed from truncation to rounding of translated 407 coordinates in xxGlobe and xxMap to avoid the pile-up at zero that 408 truncation produces. 409 * (Nits) Added some consts, corrected some comments and help text in 410 xxGlobe and xxMap. 411 412 (Feature) Added -ch setting to specify clock height independently from 413 graph height. 414 415 (Feature) If gpsd 2.92 or a compatible 2.9x version is present and 416 working, start the location chooser zoomed in on the current GPS fix. 417 418 (Usability) Versions of GCC older than 3.4 are now unconditionally 419 rejected by configure. 420 421 (Usability) Reject attempts to regenerate the configure script using 422 autoconf 2.65, which has a regression that causes the INT*_T tests to 423 fail improperly. 424 425 (Code rot) Fixed resize lag in the newer generation of window managers 426 (including Metacity, Compiz, KWin, Xfwm, and Openbox) that deliver a 427 firehose stream of resize events. (The Xlib Programming Manual says 428 the ConfigureNotify event is to be generated when the resize request 429 "actually completes.") 430 431 (Bug) In About mode, X-windows form, implemented line wrapping so that 432 long descriptive text that is not formatted with linebreaks does not 433 result in a ludicrously wide window. 434 435 (Code rot) Compatibility with libpng 1.4: 436 * Direct access to jmpbuf was deprecated. Use the new macro instead. 437 * png_check_sig was replaced by a macro, causing the autoconf test 438 for linking with the library to fail. Use png_sig_cmp instead. 439 440 (Portability) Added workaround for [8]GCC Bug #43905 so that XTide can 441 be compiled with GCC 4.5.0. 442 443 (Cleanup) Purged leftover xOrigin/yOrigin complexity from xxGlobe.cc. 444 445 XTide 2.10 (2008-02-05) 446 447 (Code rot) Updated bundled Dstr to version 20080124. 448 449 (Documentation) Fixed man page nits and related nits in documentation 450 of command-line switches. 451 452 XTide 2.10 RC1 (2008-01-18) 453 454 (Feature) Enabled clock mode output (mode k) in PNG and text forms from 455 the command-line client. This feature was requested to enable the 456 construction of embedded clock widgets. (Suggested by Mark Crossley) 457 458 (Portability) Fixed incorrect resolution of utsname on Suns. Bug 459 report credit: C. Jeffery Small. 460 461 (Code rot) Set the magic environment variable to opt out of the 462 backward-incompatible changes made by the Composite extension to X11. 463 Said changes were causing XTide windows to appear transparent in 464 foo-foo windowing environments. Bug report credit: Alan E. Davis. 465 466 (Documentation) Beefed up the man pages and made minor clarifications 467 to the descriptions of some settings. 468 469 XTide 2.9.5 (2007-12-10) 470 471 (Portability) Renamed CONFIGURE to CONFIGURE-HELP to eliminate conflict 472 on case-insensitive file systems. Bug report credit: Anton Pitts 473 (Mac), Leonid Tochinski (Windows). 474 475 (Portability) With help from Leonid Tochinski, made command-line client 476 portable to Visual C++ Express Edition. 477 * Tolerate missing header files and functions. 478 * Use nonstandard header files if present. 479 * Possibly use #pragma message instead of #warning. 480 * #define _USE_MATH_DEFINES. 481 * Specified binary mode for some files used by tide.exe. 482 * Tolerate MS-DOS line discipline in xtide.conf. 483 * Some Windows-specific code for low-level file operations. 484 * In source files needed for tide.exe, renamed every variable named 485 _timezone to timezoneLocalVar to eliminate conflict with global 486 _timezone variable. 487 * Fixed a yyerror signature mismatch between xml_l.ll and xml_y.yy. 488 * Added --enable-semicolon-pathsep and --enable-local-files. 489 * Possibly use %I strftime format instead of %l. 490 * Only if compiling under Visual C++, set locale to "English_United 491 States.1252". 492 * Added a workaround for a time function bug in Visual C++ 2005 that 493 causes the program to crash. 494 495 XTide 2.9.4 (2007-09-03) 496 497 (Bug) Fixed incorrect encoding of characters in "About This Station" 498 window when ambient locale is UTF-8. 499 500 (Legal) Relicensed under GPLv3. 501 502 (Code rot) configure.ac: Removed -DYY_NO_UNPUT, which flex no longer 503 respects as of version 2.5.33. 504 505 (Cleanup) Build scripts: Removed AM_MAINTAINER_MODE and made 'make 506 dist-bzip2' do the right thing. 507 508 XTide 2.9.3 (2007-04-17) 509 510 (Bug) Fixed dropped lines in flat map drawing (improved version of 511 recent fix to tideEditor). 512 513 (Portability) Moved #define __STDC_FORMAT_MACROS to the top of 514 common.hh to avoid a surprise that occurs when inttypes.h gets included 515 by a previous include file. 516 517 (Cleanup) Removed an unused #define from common.hh. 518 519 XTide 2.9.2 (2007-03-31) 520 521 (Bug) In MLLW estimation, possibly include final LLW value depending on 522 endTime. 523 524 (Usability) Set year limits for time control dialogs based on the 525 actual type of time_t rather than the conservative interval common to 526 all platforms. 527 528 (Usability) Made xttpd report version of XTide; removed obsolete 529 discussion of PNG image format. 530 531 (Usability) Catch missing STL at configure time (reportedly not found 532 without CPPFLAGS under Mac OS X 10.4.9). 533 534 (Portability) Fixed several nonportable casts in xxGlobe.cc (32-bit int 535 assumption); replaced constant 8 with CHAR_BIT in two places. 536 537 (Cleanup) A few more cleanups. 538 * Cleaned up config.hh. Most #defines were changed to typed 539 constants. Definitions not related to settings were moved to more 540 appropriate locations. 541 * Removed a few includes from common.hh. 542 * Cleaned up format strings in Colors.cc. 543 * Moved wvsrtv declaration to xxGlobal.hh. 544 545 XTide 2.9.1 (2007-03-14) 546 547 (Bug) Changed estimation of MLLW in stats mode to use tidal day as 548 specified by [9]Special Publication NOS CO-OPS 1 and 2 instead of solar 549 day as was done in XTide 2.9. It makes about 1 inch of difference. 550 551 (Compliance) GNU attributes are now enabled only if one configures with 552 --enable-gnu-attributes. They are only useful if compiling with extra 553 warnings anyway. 554 555 (Usability) Compilers that cannot build a particular test case 556 correctly (notably GCC 3.3.x) are now rejected by configure with an 557 explanation that it is time to upgrade. 558 559 XTide 2.9 (2007-02-27) 560 561 (Portability) Cygwin doesn't have llround yet. Made do without it. 562 563 (Compliance) Rearranged some callbacks to avoid the need for objects in 564 the X11 interface to delete themselves (considered harmful) or their 565 containers (presumably worse). 566 567 (Cleanup) A few more cleanups. 568 * Quashed default copy constructors and assignment operators on 569 classes that did not want to have them. 570 * Changed an unsigned char to a bool. 571 * Made factories static members of the classes that they produce, 572 thereby eliminating another friend function. 573 * Tagged return values as const. See coding conventions. 574 * Cleaned up the templates. 575 * Got rid of redundant declarations of friend functions. 576 * Replaced a magic number with a constant. 577 578 XTide 2.9 RC3 (2007-02-18) 579 580 (Bug) Stopped time warps on subordinate stations from crashing 581 calendars, AGAIN. The parent class of the class that was junked and 582 rewritten the last time around has been junked and rewritten. Calendar 583 mode has been reimplemented in an entirely different style at great 584 expense and at the last minute. 585 586 (Code rot) Fixed configure to detect and use libdstr if it is present. 587 588 (Optimization) Inlined some functions and methods to make the 589 highfalutin' C++ code in XTide 2.9 run as fast as the crufty C code in 590 XTide 2.8.3. See commentary in ConstituentSet::tideDerivative for 591 details. 592 593 (Usability) Decreased scrolling fraction for flat map from 95% to 25% 594 (consistent with globe). Made station dots bigger in globe (more like 595 map). Made tide graphs scroll by half the width of the graph instead 596 of by 1 day. 597 598 (Docs) Added makefile rule to generate README, ChangeLog, NEWS, 599 AUTHORS, and README-QUICK from the web site. 600 601 XTide 2.9 RC2 (2007-02-11) 602 603 (Feature/Cleanup) Added estimation of MLLW to stats mode; made stats 604 mode text from RC1 more consistent. 605 606 (Usability) Improved error reporting to distinguish absence of an 607 HFILE_PATH from absence of harmonics files. 608 609 (Cleanup) The C++ standard does in fact promise that the elements of a 610 std::vector are stored contiguously--purged MemoryChunk and replaced 611 its uses with vectors. 612 613 (Nits) Fixed a violation of coding conventions; improved commentary in 614 several places. 615 616 XTide 2.9 RC1 (2007-02-01) 617 618 (Cleanup) 100% code review and major cleanup. 619 * Performed numerous major and minor refactorings. 620 * Replaced crufty data structures with standard templates. 621 * Updated obsolescent coding practices. 622 * Corrected improper inheritance relationships. 623 * Purged dead, duplicate, and wasteful code. 624 * Purged gratuitous complexity and excessive generality. 625 * Purged speed hack that was incompatible with the design (hoping 626 that nobody will be impacted by the performance hit). 627 * Improved integrity checking. 628 * Created enums for cryptic parameters. 629 * Used const where applicable. 630 * Defined coding conventions. 631 632 (Code rot) Installed canonical Dstr. Only visible impact should be 633 different sorting of location names containing �, �, �, �, or 634 fractions. 635 636 (Code rot) Caused xttpd to serve /favicon.ico as expected by most 637 browsers nowadays. 638 639 (Code rot) Added support for the newfangled NET_WM protocol to set 640 window titles. This resolves an issue with window titles getting 641 mangled when the ambient locale is UTF-8. Bug report credit: Lutz 642 M�ndle. 643 644 (Code rot) Converted to automake; updated configure.ac per autoconf 645 2.60. 646 647 (Code rot) Removed Cygwin and Irix workarounds for incomplete strftime 648 implementations. Cygwin's was fixed. 649 650 (Optimization) Added a pixel cache to mitigate a performance bottleneck 651 that occurs while anti-aliasing X graphs in xxPixmapGraph. 652 653 (Feature) Added LaTeX format for calendar mode and associated settings 654 pagewidth, pageheight, and pagemargin. 655 656 (Feature) Added eventmask setting, deprecated nosunmoon setting. 657 Eventmask allows moon phase, sunrise, sunset, moonrise, and moonset to 658 be enabled or disabled individually, whereas nosunmoon only allowed 659 them to be enabled or disabled as a group. 660 661 (Feature) Text and HTML form output are now generated in UTF-8 if that 662 is the ambient codeset. Names specified in UTF-8 on the command line 663 are now understood. 664 665 (Feature) Text mode graphs and banners now show darkness (night time) 666 in a manner analogous to PNG or X graphs. 667 668 (Feature) Mouse wheel (mapped as Button4 and Button5) now works to 669 scroll text prediction windows, location lists, the control panel, and 670 the disclaimer. 671 672 (Feature) Added mean of maxima and minima and CPU time to stats mode. 673 674 (Feature) Made raw and medium rare modes accessible from xtide command 675 line. 676 677 (Feature) Added setting to control whether tide graphs are anti-aliased 678 on true color displays. 679 680 (Feature) Added setting to label tenths of units in graphs. 681 682 (Feature) Resolved timestamp collision problem in graphs. (1) Shift 683 location of timestamps to avoid collisions when feasible. (2) Improved 684 logic for deciding when to use short descriptions. 685 686 (Usability) When failing to load a font, report the name of the font 687 that failed to load. When swapping the begin and end times, inform the 688 user. 689 690 (Portability) Used new autoconf feature to obtain integer types with 691 known sizes. Used these types for TIME_WORKAROUND and Interval. 692 693 (Compliance) Spun off libtcd into a separate tarball. 694 695 (Security) Allow configuring user and group for xttpd and make xttpd 696 exit if the uid/gid can't be set thusly. 697 698 (Robustness) Trap and report overflow when adding an Interval to a 699 Timestamp. 700 701 (Robustness) Generalized Timestamp::tm2utc and eliminated the last use 702 of libc's mktime. Bad or out-of-range timestamps provided by the user 703 should now reliably yield a relevant error message. 704 705 (Robustness) Fixed bug in handling (ignoring) of ill-formed x-fields in 706 TCD. 707 708 (Robustness) Modified Graph to be more compatible with variable-width 709 fonts, similar to patch contributed by Lee Ann Rucker. 710 711 (Bug) Fixed assertion failure on changing preferred units of length in 712 control panel while a current station is displayed. 713 714 (Bug) Fixed xttpd neglecting to demangle %XX syntax in exact query 715 URLs. Bug report credit: James K. Lowden. 716 717 (Bug) Fixed window manager closing prediction windows while subordinate 718 dialogs were open, which caused XTide to fail to terminate when the 719 last window was closed. 720 721 (Bug) Fixed failure to apply color settings to control panel scrollbar. 722 723 (Bugs) Fixed identification of day transitions in rare and pathological 724 cases. Prior to the fix, it was possible for calendar to put events in 725 the wrong day around the time of daylight savings time changes in 726 exotic locales having interesting DST rules. 727 728 (Bug) Fixed invalid simplification of current sub stations having slack 729 offsets and level adds that resulted in the slack offsets being ignored 730 for affected stations. 731 732 (Bug) Stopped time warps on subordinate current stations from crashing 733 calendars, again. The offending logic is that responsible for figuring 734 how many columns are needed. Said logic has broken repeatedly. This 735 time I basically gave up on the whole approach and dumbed it down to 736 something that hopefully won't break. 737 738 (Bug) Fixed incorrect rounding of negative coordinates in graphs. You 739 could notice this in text graphs or banners where column zero sometimes 740 collected an hour tick that should already have scrolled off into 741 negativeland. 742 743 (Nit) Remove assertion failure if knots^2 are specified as the units in 744 a sub station record (levelAdd units are always knots anyway). 745 746 (Nits) Minor changes in calendar mode text. 747 748 (Nit) Fixed off-by-one-second bug in end boundary setting for xttpd 749 calendars. 750 751 (Nit) Handle whitespace in HFILE_PATH correctly. 752 753 (Nit) In disclaimer, replaced facetious reference to continental drift 754 with serious references to subsidence and uplift. 755 756 (Nit) Fixed shifting horizontal alignment of text in X11 text modes. 757 758 (Nit) When applying settings in the control panel, preserve marklevels 759 and steps but reset aspect and units to defaults or whatever the new 760 settings specify. 761 762 (Nit) Instead of always barfing when HOME is unset, barf only when the 763 need arises to write something to the home directory, and do without 764 any config files that would normally be there. 765 766 (Nit) Once again changed descriptive text related to the middle-level 767 line to avoid confusion. 768 769 (Nit) Fixed unintended scrolling of X11 text modes triggered in rare 770 circumstances. 771 772 (Nit) Fixed X11 graphs and clocks momentarily flashing to background 773 color when updating. 774 775 (Nit) Minor changes to short descriptions for tide events. 776 777 (Bug) Added documented bug for xttpd logging timezone shift. 778 779 (Bug) Added documented bug for control panel vanishing buttons problem. 780 781 (Cosmetic) Installed new default icon. 782 783 XTide 2.8.3 (2006-03-13) 784 785 (Code rot) Made to compile under gcc 4.1.0. 786 787 XTide 2.8.2 (2005-01-06) 788 789 (Bug) Fixed "oops" in xxMap.cc that caused station dots to be 790 suppressed on part of the flat map. Bug report credit: Jan Depner. 791 792 XTide 2.8.1 (2004-12-28) 793 794 (Portability) Updated configure to look in lib64 for X libs, for 795 compatibility with x86_64. Bug report credit: Fedora / David Kaplan. 796 797 XTide 2.8 (2004-12-10) 798 799 (Nit) More intelligent selection of WVS resolutions in globe. The 800 wvs3.dat file now gets use. 801 802 (Nit) Don't suppress single-point islands on globe. 803 804 XTide 2.8 BETA 2 (2004-11-17) 805 806 (Bug) Tried to fix crash on startup on multi-head displays (no feedback 807 on whether it worked). 808 809 (Oversight) Omitted slack offsets are now handled by interpolating from 810 known tide events rather than defaulting to reasonable values. This 811 should have been done as part of the changes in Beta 1. 812 813 XTide 2.8 BETA 1 (2004-10-26) 814 815 (Bug) The subordinate station interpolation algorithm derived from work 816 by Jean-Pierre LaPointe started misbehaving when it met the new NOS 817 data imported 2004-09. See Exhibit A. 818 819 Exhibit A: discontinuous tide graph for Hana, Maui 820 821 That algorithm was designed around architectural problems that were 822 eliminated in the refactorings of XTide 2.7. Replaced it with a 823 simpler and better algorithm that solves the above problem and three 824 others (appearing below). 825 826 The old algorithm had the interesting property that, as a side effect 827 of fudging around pathological cases that broke the algorithm, the 828 graph would often be a more likely model of reality than unquestioning 829 loyalty to the corrections would give. No such luck with the new 830 algorithm, unless I deliberately break it in the same way. See Exhibit 831 B, where an application of offsets to the insignificant higher low and 832 lower high tides at Kahului has produced a significant (and probably 833 mythical) tide cycle at Hana on the evening of 2004-09-08. 834 835 Exhibit B: Kahului 836 Exhibit B: Hana ho 837 838 (Bug) Fixed this longstanding documented bug: 839 840 Tide graphs and raw output for subordinate current stations won't 841 mesh with the predicted times of slack water, Min Flood or Min Ebb. 842 Cause of bug: The interpolation algorithm used to produce tide 843 graphs for subordinate stations doesn't do slack water. Workaround: 844 none. 845 846 (Bug) Removed this longstanding documented limitation: 847 848 The raw tide levels for subordinate current locations whose 849 reference stations are hydraulic will do bogus things for a few 850 minutes around the time of slack water. Hydraulic currents 851 exacerbate a minor inaccuracy that exists for all subordinate 852 stations, producing a major inaccuracy. 853 854 (Feature) Removed this longstanding documented limitation: 855 856 For most subordinate stations, you can't set a mark level. 857 858 (Bug?) Changed application of offsets for Min Flood and Min Ebb on 859 subordinate current stations to match what I think is NOS' intent. For 860 details, see [10]https://flaterco.com/xtide/mincurrents.html. 861 862 (Bug) Fixed an IMPOSSIBLE_CONVERSION failure (oddly enough, from some 863 units to the same units) triggered by opening a station, converting 864 units, setting a mark level, and then opening a new window from the 865 Options menu. Kudos to August Hahn for discovering the steps to 866 reproduce this "interesting" bug. Added a new warning, NO_CONVERSION, 867 to flag any other occurrences of the same thing. 868 869 (Code rot) Added :America/Juneau, :America/Nome, :America/Yakutat and 870 :Pacific/Johnston to the compatibility table for platforms with 871 obsolete zoneinfo. (Deliver me from Solaris 8!) 872 873 (Bugs & Features) Upgraded to libtcd 2.0. 874 875 (Feature) Added about mode. (As in "About this station") 876 877 (Cleanup) Cleaned up strange coding in StationRef, HarmonicsFile, and 878 Offsets left over from the days of XML sub stations. 879 880 (Cleanup) Deleted some dead pretty-printing code in Speed, Constituent, 881 etc.; got rid of static buffers in some other pretty-printing code; got 882 rid of the Constituent class (merged into TabulatedConstituent); synced 883 Angle::normalize with fp roundoff fix and assertion from Congen; added 884 an assertion that node factors should be greater than 0 (this will 885 detect TCD files with overflow problems). 886 887 (Cleanup) Removed CFLAGS from the build process; just use CXXFLAGS. 888 Removed -DNVSUNOS from configure.in since it has no effect on libtcd. 889 890 (Cleanup) Moved libtcd accesses out of TabulatedConstituent. Moved 891 libtcd dependencies out of HarmonicsFile.hh and changed build 892 dependencies so that only HarmonicsFile gets rebuilt when libtcd is 893 changed. 894 895 (Bug) Changed "Mean Tide Level" verbiage (formerly "Mean Sea Level") to 896 say "Mean Astronomical Tide." The National Ocean Service (NOS) defines 897 both Mean Sea Level (MSL) and Mean Tide Level (MTL) in terms of 898 averages taken over observations. The line drawn by XTide corresponds 899 to the mathematical mean level of the predictions, which approximates 900 both MSL and MTL, but, strictly speaking, is equivalent to neither. 901 902 (Nits) Fixed nits revealed by g++ -Wall -Wextra -pedantic. 903 904 (Bug) Fixed a logic error that could cause XTide to lock up if you 905 looked at a period of more than 24 hours with no tide events in just a 906 certain way. 907 908 (Feature) Made the globe location chooser able to zoom in closer. 909 910 (Nit) In both location choosers, quit chopping lines that are only 911 partly outside the window. 912 913 XTide 2.7.1 (2004-08-17) 914 915 (Bugs) Incorporated libtcd patch: 916 917 Version 1.13 918 David Flater 919 2004-08-15 920 921 (create_tide_db) Write a valid end_of_file record even if someone 922 creates a database with no tide records. 923 924 (tide_db_default) Removed a superfluous space character in table of 925 default datum types (after Lowest Astronomical Tide). 926 927 (Evil) Disabled the translation of the TCD comments field into a notes 928 field for sub stations. It was a historical oddity that sub stations 929 had notes but not comments and reference stations had comments but not 930 notes, and this was no excuse for overloading the comments field. 931 Harmbase2 now wants to put stuff in the comments field for sub 932 stations, with the result that XTide 2.7 blabbers the comments to every 933 user as a cryptic and strangely verbose note. Notes will come back if 934 and when the TCD format is extended to include a separate notes field. 935 936 XTide 2.7 (2004-08-09) 937 938 (Nit) Fixed xttpd to include the file name as well as the revision date 939 when citing what version of which harmonics file it's using. 940 941 XTide 2.7 BETA 2 (2004-07-01) 942 943 (Portability) Ignore all hidden files (dot files) in a directory 944 indicated by HFILE_PATH, not just "." and "..". (OS X creates hidden 945 files everywhere.) 946 947 (Portability) Run ranlib on libtcd.a; ignore error if ranlib isn't 948 there. (OS X needs ranlib.) 949 950 (Portability) Changed normalcflags and normalcxxflags in configure.in 951 to say -O instead of -O2. (Forte doesn't grok -O2.) 952 953 (Portability) When looking for X11 in configure, recognize libXaw.dll.a 954 (per latest Cygwin) as well as libXaw.so and libXaw.a. 955 956 (Nit) Removed unnecessary escaping and quoting in a warning message in 957 configure.in. 958 959 XTide 2.7 BETA 1 (2004-04-20) 960 961 (Code rot) libtcd 1.12: Deleted #include <malloc.h> from tcd.h. 962 963 (Nit) Replaced inappropriate radiation symbols in error windows with 964 standard international symbols for general panic and impending doom. 965 966 (Feature) Added iCalendar format and option to get iCalendar output 967 from xttpd. 968 969 (Feature) Added cbuttons setting to control whether clock windows 970 appear with buttons by default. 971 972 (Feature) Allowed setting location of lone window with -geometry. 973 974 (Feature) Allowed specifying an IP address for xttpd. 975 976 (Feature) Added CSV format to various modes. 977 978 (Portability) Added test for Fedora RPM build environment in 979 configure. If found, usual and customary compiler and linker switches 980 are suppressed and RPM_OPT_FLAGS are added. 981 982 (Bug) Fixed small memory leak in SubordinateStation.cc. 983 984 (Cleanup) Major refactoring of tide events handling code. 985 * Original design: predictExactTideEvent took an "internal" 986 timestamp, scanned for tide events, returned a tide event with 987 "corrected" timestamp (incorporating subordinate station 988 corrections) and also the "uncorrected" timestamp from where 989 scanning for the next event would continue. Complex caching logic 990 was needed to integrate actual tide-tide events with sun and moon 991 events and still return events in the right order... usually. 992 However, sub station corrections could still cause events to be 993 returned out of order, and there was no way to fix it. 994 * What happened: Eventually every relevant module except xxTextMode 995 grew its own crufty layer of linked list bashing to post-process 996 the predictions, really get them in the right order, and meet other 997 requirements unique to each module. Circa version 2.6 the cruft 998 achieved critical mass and began to obstruct routine maintenance. 999 * The fix: Linked list bashing made redundant by 1000 TideEventsOrganizer, which inherits standard multimap template. 1001 predictExactTideEvent replaced by predictExactTideEvents, which 1002 takes a range of timestamps and populates an organizer with exactly 1003 the events falling within that range (no "internal" timestamps 1004 required). extendRange adds more events at the beginning or end of 1005 an organizer to support scrolling types of behaviors, albeit in 1006 chunks instead of single events. 1007 * Outcome: Cruft greatly reduced. Several previously unfixable bugs 1008 were fixed (see below). -b and -e ranges now mean something. 1009 Scrolling performance in xxTextMode slightly degraded. 1010 1011 (Bug) Fixed this longstanding documented bug: 1012 1013 There are edge effects at the start and end of an interval chosen 1014 for subordinate station predictions. Some events that are inside of 1015 the interval may be excluded, and vice-versa. Cause of bug: While 1016 the interval is faithfully scanned for the reference station, tide 1017 events can jump in or out of the chosen interval after the offsets 1018 are applied. Workaround: Leave a margin around the interval of 1019 interest that is larger than the offsets of the subordinate station 1020 (a few hours should suffice). 1021 1022 (Bug) Fixed this longstanding documented bug: 1023 1024 If two events (e.g., high tide and full moon) happen to coincide 1025 very closely, within 1 minute of each other, and you reverse the 1026 direction of the scrolling in the interactive plain mode window at a 1027 point where only one of the events is visible, you might be able to 1028 make the other one disappear. Cause of bug: accuracy of 1029 predictions, precision of timestamps. Workaround: don't do that. 1030 1031 (Bug) Fixed this longstanding documented bug: 1032 1033 In the interactive plain mode window only, tide events can be listed 1034 out of order for subordinate stations. Cause of bug: design 1035 conflict. Efficient scrolling is incompatible with keeping the list 1036 sorted. Workaround: save the predictions to a file and they will be 1037 sorted. 1038 1039 (Nit) -b and -e ranges now mean specifically "all t such that b <= t < 1040 e." 1041 1042 (Nit) Expunged anachronistic references to "text mode" (it's plain 1043 mode). 1044 1045 (Bug) Fixed an assertion failure "tidecol < numcol" that could occur 1046 generating calendars for pathological subordinate current stations 1047 where applying the offsets causes slack-before-flood to happen after 1048 max flood or analogous for ebb. 1049 1050 (Nits) Added casts and changed data types to get rid of 1051 unsigned-to-signed comparison warnings. 1052 1053 (Cleanup) Major refactoring of settings management code to fix this 1054 longstanding "known design problem:" 1055 1056 Nine source files must be changed to add one new setting 1057 (Settings.hh, Settings.cc in 3 places, config.hh, UserDefaults.cc, 1058 xxApplicationDefaults.cc, ConfigDefaults.cc, CommandLineSettings.cc 1059 in 2 places, xxXTideRoot.cc in 4 places, and xxXTideRoot.hh). 1060 1061 XTide 2.6.4 (2003-11-16) 1062 1063 (Bugs) Incorporated libtcd patch: 1064 1065 Version 1.11 1066 David Flater 1067 2003-11-16 1068 1069 (create_tide_db) Fixed horrible bug: offsets for speeds, 1070 equilibrium args, and node factors were sign-reversed with respect 1071 to their usage in read_tide_db_header and write_tide_db_header, 1072 resulting in possible overflows. 1073 1074 (read_tide_db_header) Added handling for zero tide records, which 1075 happens on new database create. 1076 1077 (open_tide_db) Added check of modified flag to 2003-10-14 code. 1078 1079 (close_tide_db) Deleted repeat free of tindex introduced 1080 2003-10-14. Cleared modified flag on close. 1081 1082 XTide 2.6.3 (2003-10-14) 1083 1084 (Bug) Incorporated libtcd patch: 1085 1086 Version 1.10 1087 David Flater 1088 2003-10-14 1089 1090 Incorporated patch from Phil Thornton that closes a memory leak and 1091 improves performance on repeat calls to open_tide_db. See 1092 [11]https://flaterco.com/xtide/tcd_notes.html 1093 1094 (Nit) Added a precompiler directive to prevent code inside of assert 1095 statements from being disabled by over-ambitious optimization. 1096 1097 XTide 2.6.2 (2003-09-05) 1098 1099 (Bug) Incorporated libtcd patch: 1100 Version 1.09 1101 Jan C. Depner 1102 2003-09-04 1103 1104 Bug fix - modifying last record in file and changing size of record caused 1105 a big problem. 1106 1107 XTide 2.6.1 (2003-07-23) 1108 1109 (Bug) Incorporated libtcd patch: 1110 Version 1.08 1111 Jan C. Depner 1112 2003-07-23 1113 1114 Bug fix - deleting last record in file caused a big problem. 1115 1116 XTide 2.6 (2003-05-28) 1117 1118 No code changes; just promoted to final release status. 1119 1120 XTide 2.6 BETA 4 (2003-03-27) 1121 1122 (Nit) Updated version string in libtcd. 1123 1124 XTide 2.6 BETA 3 (2003-03-27) 1125 1126 (Bug) There was another problem with the encoding of subordinate 1127 stations in TCD files. The only stations materially affected this time 1128 were Gnat Cove, Carroll Inlet, Alaska, and Olga Point, Olga Strait, 1129 Sitka Sound, Alaska. However, the fix required another incompatible 1130 change to the encoding of subordinate stations and updates to affected 1131 code in libtcd and XTide. TCD files produced with tcd-utils dated 1132 earlier than 2003-03-27 and previous development or beta versions of 1133 XTide 2.6 should be replaced to avoid getting incorrect results. 1134 1135 XTide 2.6 BETA 2 (2003-03-18) 1136 1137 (Bugs!) tcd-utils was building some subordinate current stations 1138 incorrectly. The fix required an incompatible change to the encoding 1139 of slack offsets and updates to affected code in libtcd and XTide. TCD 1140 files produced with tcd-utils dated earlier than 2003-03-18 and 1141 previous development or beta versions of XTide 2.6 should be replaced 1142 to avoid getting incorrect results on subordinate current stations. 1143 Except... ironically, it appears that some of the subordinate current 1144 stations presently in the database are broken in precisely the same way 1145 as one of the TCD bugs, with the result that in those cases, you get 1146 the right answer only with the broken code. The issue with those is 1147 the bogus assumption that the right thing to do if you don't get slack 1148 offsets is set them to zero. If you don't get slack offsets 1149 (floodbegins, ebbbegins), OMIT those fields! When slack offsets are 1150 omitted, XTide will interpolate a reasonable value. But if you specify 1151 zero, you get zero -- even if that's unreasonable given the skew of max 1152 and min. (This note has been added to the relevant portion of the 1153 documentation.) 1154 1155 XTide 2.6 BETA 1 (2003-02-20) 1156 1157 (Optimization) Changed from ASCII format harmonics files (harmonics.txt 1158 and offsets.xml) to binary TCD format (harmonics.tcd); retired the 1159 problematic fast loader since all loading now occurs at ludicrous 1160 speed. Thanks again to Jan Depner. 1161 1162 (Feature) Added setting to enable inferred constituents (Jan Depner). 1163 1164 (Code rot) Expunged all uses of deprecated C++ streams from the code 1165 except for the verbose debugging code that hasn't been used in ages. 1166 1167 (Feature) Added support for the following command line syntactic 1168 shortcuts: 1169 * Arguments can be concatenated with their switches. 1170 * A yes/no switch that omits its argument implies "y". 1171 * Using +xx instead of -xx for a yes/no switch inverts the argument 1172 (so if the argument is omitted, "n" is implied). 1173 1174 (Feature) Overhauled usage of time_t to allow timestamps to range 1175 before 1970 and after 2037. Added TIME_WORKAROUND to enable access to 1176 the past and future years on platforms where time_t is 32 bits. 1177 1178 (Portability) Changed default time formats when compiling under Irix to 1179 work around lack of support for %l in SGI's strftime implementation. 1180 C.f., similar Cygwin bug fixed in XTide 2.5 BETA 1 (2002-05-21) and the 1181 "fix" that started it all in XTide 2.4 BETA 1 (2001-03-25). What a 1182 pain. 1183 1184 (Nits) Gave the control panel a scrollbar. Stabilized the layouts of 1185 the control panel, text, raw, and medium rare modes. Merged 1186 xxRareModes into xxTextMode. 1187 1188 (Feature) Replaced the now mostly useless filename field in location 1189 lists with a type field (reference or subordinate). 1190 1191 (Feature) The zone at the bottom of tide graphs previously used to note 1192 slack and mark crossing events is now shared by moon events. The date 1193 was replaced with a description that is abbreviated when things get 1194 crowded. 1195 1196 (Feature) Added moonrise, moonset. 1197 1198 XTide 2.5 (2002-07-14) 1199 1200 (Nit) Tweaked some verbiage in the control panel. 1201 1202 XTide 2.5 BETA 1 (2002-05-21) 1203 1204 (Portability) Tweaked autoconfig files to allow clean compilation under 1205 OS X. Thanks to Martin Hofmann. 1206 1207 (Portability) Changed default time formats when compiling under Cygwin 1208 to work around lack of support for %l and %Z formats by Cygwin's 1209 strftime implementation. 1210 1211 (Feature) Added medium rare mode. 1212 1213 (Feature) Made raw and medium rare modes accessible from the GUI. 1214 1215 (Feature) Incorporated new globe code, which added coastlines and a new 1216 flat map projection, from Jan C. Depner. 1217 1218 (Feature) Allowed switching between Cylindrical Equidistant and 1219 Orthographic Projections. Added setting to specify user's preference 1220 (flatearth). 1221 1222 (Feature) Globe now rotates on two axes, and both globe and map include 1223 latitude and longitude readouts. 1224 1225 (Feature/Portability) Incorporated patch from John Holden to improve 1226 xttpd user interface for requesting tide calendars and to work around 1227 an Alpha-specific bug in timestamp rendering. 1228 1229 (Code rot) Updated :America/Iqaluit, :America/Mexico_City, and 1230 :Mexico/General in time zone compatibility table. 1231 1232 (Bug) "Mean Sea Level" verbiage corrected to say "Mean Tide Level." 1233 Identifiers containing msl were not renamed. 1234 1235 (Nit) Updated disclaimer text. 1236 1237 (Nit) Cleaned up xxTimestamp. N.B., newer versions of Athena Widgets 1238 now show two columns of choices where pull-down buttons used to run off 1239 the screen, so the "tiny font" previously used for some of the choices 1240 is no longer used here. It is still used in the clock icon. 1241 1242 (Nit) Added a line to the 'install' target of Makefile.in to create the 1243 target directories if they do not exist. 1244 1245 XTide 2.4 (2001-05-09) 1246 1247 (Bug) Fixed an OLD memory management bug in Dstr.cc. Thanks to Phil 1248 Thornton. 1249 1250 XTide 2.4 BETA 2 (2001-04-15) 1251 1252 (Bug) xttpd did not supply a robots.txt page. Added robots.txt patch 1253 from John Stanley. 1254 1255 XTide 2.4 BETA 1 (2001-03-25) 1256 1257 (Feature) Enhanced HFILE_PATH to enable searching of directories. 1258 1259 (Bug) Removed, or at least improved, a kludge in Timestamp that was 1260 preventing 24-hour time users from getting leading zeros on hours. A 1261 compensatory change to the default time and hour formats was also made. 1262 1263 (Nit) Updated example in NO_HFILE_PATH error message again. 1264 1265 (Tuning) Reduced fastload limit to 2. 1266 1267 (Feature) Xttpd now shows the versions of the harmonics files that it's 1268 using on its main page. 1269 1270 (Feature) Added a note attribute to subordinate station XML. 1271 1272 (Optimization) Incorporated patch to squeeze out null constituents. 1273 1274 XTide 2.3 (2000-12-08) 1275 1276 No code changes; just promoted to final release status. 1277 1278 XTide 2.3 BETA 2 (2000-10-01) 1279 1280 (Code rot) Added :America/Belem, :America/Fortaleza, and 1281 :America/Maceio and revised abbreviation for :America/Sao_Paulo in time 1282 zone compatibility table. 1283 1284 (Compliance) Smashed case in all (I hope) HTML markup tags for XHTML 1285 compatibility (sugg. Richard Kennedy). 1286 1287 (Nit) Typographical tweaks in xttpd. 1288 1289 XTide 2.3 BETA 1 (2000-09-03) 1290 1291 (Feature) Replaced calendar mode with a clone of the much more popular 1292 one that Dean Pentcheff has been using on his web site. The "old" 1293 calendar mode is still available from tide as -m C. 1294 1295 (Feature) Added setting to suppress sunrise, sunset, moon phases. 1296 1297 (Code rot) Added :America/Goose_Bay to timezone compatibility table. 1298 1299 (Nit) Updated example in NO_HFILE_PATH error message. 1300 1301 XTide 2.2.2 (2000-07-30) 1302 1303 (Compliance) To comply with XML 1.0, the offsets.xml file was changed 1304 to have a single "root" document element. As a result, XTide 2.2.1 and 1305 earlier cannot find the stations in it. This patch enables XTide to 1306 read either old or new offsets.xml files. The prolog of .xtide.xml 1307 written by XTide is also made compliant. 1308 1309 XTide 2.2.1 (2000-07-16) 1310 1311 (Code rot) Added :America/Hermosillo and :America/Iqaluit to the 1312 zoneinfo compatibility table. 1313 1314 XTide 2.2 (2000-01-12) 1315 1316 No code changes; just promoted to final release status. 1317 1318 XTide 2.2 BETA 1 (1999-12-12) 1319 1320 (Compliance) Xttpd now backgrounds itself and logs to the syslog 1321 facility. 1322 1323 (Feature) Added /etc/xtide.conf as alternative to setting HFILE_PATH. 1324 The format of this should probably be XML to guard against future 1325 expansion, but for now it is as contributed from Debian (Peter 1326 Galbraith). 1327 1328 (Feature) Ditched Imake for Autoconf, which simplifies installation. 1329 1330 (Feature) Installed a Unicode-esque collating sequence for Latin1. 1331 1332 (Feature) xttpd: applied location lookup patch from John Holden. This 1333 enables URLs of the form http://whatever/locations/name in addition to 1334 the more reliable http://whatever/locations/nnn.html syntax. The 1335 name-based URLs are not promulgated by xttpd itself. The new syntax is 1336 documented in a new hints & tricks page served by xttpd. 1337 1338 (Feature) If you set the environment variable XTIDE_DEFAULT_LOCATION, 1339 it works like the default location feature of XTide 1. 1340 1341 (Robustness) Improved resolution of reference stations for subordinate 1342 stations to eliminate many SUB_SUBORDINATE errors. Fast loading is 1343 still sensitive to the ordering of HFILE_PATH. 1344 1345 (Code rot) Added an autoconf step to deal with mutually incompatible 1346 requirements of different platforms on the signature of the accept() 1347 function as used in xttpd.cc. 1348 1349 (Code rot) Added Antarctic time zones to the compatibility table in 1350 Timestamp.cc. 1351 1352 (Compliance) Changed packaging from xtide2/* every time to 1353 xtide-X.Y.Z/*. Changed suggested disposition of xttpd from bin to 1354 sbin. Changed xttpd man page section from 1 to 8. Changed suggested 1355 disposition of harmonics files from /etc to /usr/local/share/xtide. 1356 1357 (Compliance) Moved some static functions into externC.cc with 1358 appropriate signature changes to placate the Sun compiler's anachronism 1359 checker. 1360 1361 (Portability) Added workaround for bug in Sun WorkShop Compiler C++ 1362 SPARC Version 5.000. Thanks to Raphael Malyankar. 1363 1364 (Nit) Applied patch from Peter Galbraith to set background color in 1365 xttpd to white. 1366 1367 XTide 2.1.7 (1999-08-14) 1368 1369 (Bug) Fixed drawing of Latin1 characters. This involved increasing the 1370 font height by one row, which will cause minor but noticeable changes 1371 in the placement of text. 1372 1373 (Portability) Changed backlog parameter for socket in xttpd.cc from 0 1374 to 5. Digital Unix would accept no connections if backlog was 0. 1375 Thanks to Giuseppe Cabras. 1376 1377 XTide 2.1.6 (1999-08-09) 1378 1379 (Bug) Fixed xttpd assertion failure when subordinate stations don't 1380 supply time zones. 1381 1382 (Bug) Made RGBGraph stop crashing when it's asked to draw characters 1383 that it doesn't know. To do, teach RGBGraph to draw the entire Latin1 1384 character set. 1385 1386 (Portability) Messed with usage of select() in xttpd.cc to try to make 1387 it more portable. Giuseppe Cabras reported trouble with it under 1388 Digital Unix. 1389 1390 (Portability) Added Imakefile.hp from Christopher Caldwell. 1391 1392 XTide 2.1.5 (1999-07-22) 1393 1394 (Portability) Cleaned up overloading ambiguities and ANSI compliance 1395 problems encountered with HP aC++ B3910B A.01.18 (HP-UX 10.20). Thanks 1396 to Christopher Caldwell. 1397 1398 XTide 2.1.4 (1999-05-17) 1399 1400 (Portability) Got rid of some dubious implicit conversions between 1401 PredictionValue::Unit and its encapsulated enum. Don't know if they 1402 were strictly conforming or not, but they made the latest Sun compiler 1403 use the wrong constructor. This showed up as UNRECOGNIZED_UNITS errors 1404 when trying to load a tide station. 1405 1406 XTide 2.1.3 (1999-05-16) 1407 1408 (Code rot) Stopped including stream.h in common.hh. It was always 1409 redundant with iostream.h, but now stream.h has vanished from Sun's 1410 latest compiler. 1411 1412 XTide 2.1.2 (1999-03-15) 1413 1414 Add support for color specifications having the deprecated #RRGGBB 1415 format, which recently resurfaced on Debian. 1416 1417 Patch from Falk Hueffner for Timestamp::tm2utc. On his Alpha (BSD?), 1418 time_t is 64 bits but gmtime returns NULL if the time_t is out of a 1419 certain range, which was leading to segfaults. 1420 1421 Fixed reporting of MKTIME_FAILED errors caused by bad timestamps on the 1422 -b and -e switches. 1423 1424 XTide 2.1.1 (1999-01-24) 1425 1426 Patch to get rid of all of the references to universe.digex.net that 1427 appeared in the sources and documentation. No functional changes. 1428 1429 XTide 2.1 (1998-12-20) 1430 1431 Implemented something similar to a patch sent by Thomas Dean to enable 1432 the direction of current that he provided in his XML offsets to be 1433 displayed in the boilerplate of text output. Making it work for 1434 reference stations is deferred until whenever reference stations are 1435 migrated to XML and the new attributes can conveniently be added. 1436 1437 Removed $(DEPXPMLIB) from xtide dependencies (DEPLIBS1 in manifest) to 1438 get rid of this needless compilation failure: 1439 1440make: *** No rule to make target `/usr/X11R6/lib/libXpm.a', needed by `xtide'. 1441Stop. 1442 1443 The cause of this was that some Linux distributions only provide a 1444 shared libXpm, while the dependencies generated by Imake check for the 1445 existence of the static library. 1446 1447 Made -o switch append instead of overwrite files per request from AED. 1448 1449 XTide 2.0.1 (1998-10-04) 1450 1451 Fixed a bug reported by Alan Davis which caused access violations and 1452 other problems when a default center longitude was set in the control 1453 panel. 1454 1455 XTide 2.0 (1998-07-28) 1456 1457 No code changes; just promoted to final release status. 1458 1459 XTide 2.0 Beta.3 (1998-06-28) 1460 1461 Reversed order of location list latitude sort so that points north 1462 appear at the top (sug. Dave Davey). 1463 1464 XTide 2.0 Beta.2 (1998-06-02) 1465 1466 SGI portability fix from David Warren: changed declarations of nested 1467 structs in header files to use Classname::structname instead of struct 1468 structname. 1469 1470 XTide 2.0 Beta.1 (1998-06-01) 1471 1472 First versioned release of XTide 2. 1473 __________________________________________________________________ 1474 1475 [12]<- Previous [13]-> Next [14]Contents 1476 1477References 1478 1479 1. https://flaterco.com/xtide/quickinst.html 1480 2. https://flaterco.com/xtide/news.html 1481 3. https://flaterco.com/xtide/xtide.html#contents 1482 4. https://flaterco.com/xtide/files.html#FunkyBuilds 1483 5. http://www.freedesktop.org/wiki/Software/systemd/ 1484 6. https://flaterco.com/xtide/installation.html#systemd 1485 7. http://sourceforge.net/projects/sf-xpaint/files/libxaw3dxft/ 1486 8. http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43905 1487 9. https://flaterco.com/xtide/files.html#pubs 1488 10. https://flaterco.com/xtide/mincurrents.html 1489 11. https://flaterco.com/xtide/tcd_notes.html 1490 12. https://flaterco.com/xtide/quickinst.html 1491 13. https://flaterco.com/xtide/news.html 1492 14. https://flaterco.com/xtide/xtide.html#contents 1493