# Help On Mosaic v2.0

If you have accessed this document from the Help On Version menu selection in NCSA Mosaic, you are using a prerelease of version 2.0.

Changes in version 2.1.

## Things Slated for 2.0 Maintenance Release

- Dictionary mode!
- Fix trackFullURLs.
- Ugly handling of errors in middle of gopher menus (e.g. gopher://gopher.internet.com:2100/11/collected/new_yorker).
- Problem with plus's in existing FTP filenames (apparently).
- Problem with magic characters in WAIS headlines.
- Problem with spaces in telnet usernames (Prentiss's report).
- See if transparent uncompression should be carried over to other converters (probably WSRC).
- Fix URL describing stuff (handle Gopher types; say "unknown" for unrecognized HTTP types; handle WAIS types).
- Do default filename heuristic for dialog box on binary transfers.
- Relevance feedback in WAIS code.
- Images that haven't been loaded because of an interrupt should be represented as deferred, not missing -- consult with Eric.
- FTP login stuff (popup dialog for password).
- Apply -geometry argument to initial window.
- Make error feedback more specific.
- Fix simple interface when regular interface stabilizes.
- Handle < and > in Gopher menus (testcase gopher://info.rutgers.edu/).
- Possible infinite loop in window positioning code -- yup, see Göran Öberg's note.
- Problem with annotation title containing leading HTML tags.
- Fix reload to handle mosaic-access-override properly.
- Look into having better WAIS server interface page (hardcoded).
- FTP client-side problems with Wollongong (Whelan).
- External viewers that receive data from stdin should have it piped to them directly rather than saved to a local file & cat'd.
- Wrap all the stuff at the top of the document view window in a form, to help weird X servers with weird fonts not look like they're completely screwing things up.
- Performance/cleanliness things:
  - Do more detailed performance analysis on interface games during downloading (notify_progress probably getting called too often).
  - See if we can axe HTAnchor stuff altogether.
  - See if we can axe more of the HTML parsing code.
  - Consider converting all HTML start_element stuff in libwww to just straight insertion of HTML -- probably help performance, among other things.
  - Local files shouldn't be copied into /usr/tmp for external viewer access.
  - Consider gating HTProgress in HTCopy similar to how twirling is gated.
- Widget things:
  - Add VALUE attribute to OPTION (?).
  - If I have multiple windows open with an image in one window that has since lost its colors, and I open a new window containing the same image, the pixmap containing the lost (bad) colors is used. Similarly, if you middle-button open a new window containing an image that is also on the first window, and the program needs to snarf colors, it will snarf colors from the image in both windows rather than considering the image to be in the newly opened window as it should.
  - Rubber-band box and arbitrary polygon support for IMG and/or FIG.
  - If I have multiple windows open, have a document with an inlined image in one window, and use the other window to view enough inlined images to cause the image in the first window to be purged from the cache, it can happen that during a redisplay (e.g. in response to a resize) of the first window, the image resolve callback isn't getting called and the "missing" bitmap is displayed instead. An explicit refresh or reload does the right thing, though.
  - Try to reproduce Martijn's forms weirdness (Oct 27).
  - Sliders (range input type).
  - Fix formatted selections for things like the `B` tag (underlining goes whacko).
  - Jot & audio (and eventually video :-) input elements.
  - FIG.
  - Scrolled lists should scroll to SELECTED option (or first one) if it's out of view.
  - BOX directive (two HRs plus connecting notch).
  - Long words (and now fill-out form elements) that fall off the right side of the window don't result in horizontal scrollbar.
  - Some variant on PRE that doesn't force line breaks before & after is necessary to do intermediate FTP interface (CODE isn't good enough, since spaces are collapsed).
  - ALT tag support.
  - XUndefineCursor on hw when setting new text -- for some reason, I can't do it from the main program, and the cursor is remaining hand-shaped even after back or forward, when it shouldn't.

## Changes from 2.0 prerelease 8 to THE REAL 2.0

- Fixed intermittent bug in loading files to disk (would inaccurately complain about insufficient temporary disk space).
- Extension map files can now have tabs as whitespace.
- Fixed more minor glitches in image caching, multiple windows, fun things like that.
- Never retry HTTP/1.0 POST operation as HTTP0 operation (makes no sense to do so).
- Removed really horrible compatibility hack for broken HTTP0 servers introduced in pre7 -- no longer useful, since ANU Bioinformatics has upgraded to HTTP/1.0.
- Tweaked remote control a little (fixed redisplay bugs on some servers).
- Tweaked HTTP/1.0 status messages.
- Tweaked bcopy/bzero macros for System V/Solaris.
- Fixed ugly form option menu bug.
- Assorted portability fixes.

## Changes from 2.0 prerelease 7 to 2.0 prerelease 8

- Renamed executable 'Mosaic' and application class name 'Mosaic'. User X resources and system app defaults files should be updated as necessary.
- Implemented `FORM METHOD="POST"` with optional `ENCTYPE="application/x-www-form-urlencoded"`.
- Implemented `TEXTAREA` as described in the current (11/2) HTML+ spec.
- Fixed bugs with image caching (particularly with very small image cache sizes) and multiple open windows.
- Scrolled lists with nothing selected now return nothing.
- Fixed coredump opportunity in GUI part of authentication code (Marc's fault, not Ari's).
- Fixed glitch with spinning icon and deferred image loading.
- Quotes (") in `OPTION`s now work.
- Radio buttons no longer allowed to be "none of many" (document writers should make one of the buttons checked by default -- if you think you want to allow "none of many" behavior, just throw in a "none of the above" radio button).
- Image input elements whose images are deferred no longer have a hyperlink available in the deferred image icon.
- Fixed glitch with exploding Gopher/FTP icons in some cases.
- Force allowShellResize to false on Mosaic shell windows to avoid some stupid window manager bugs.
- "I have noticed that Mosaic 2.0pre6 does not properly scroll horizontally when a preformatted <PRE> declared document is wider than the window." Also gopher://gopher.ora.com/00/ordering/online.ordering. Fixed!
- Fixed coredump opportunity when temporary directory (`TMPDIR`) is unusable.
- Fixed coredump opportunities when interrupting NNTP connects and reads and when including inlined images in news articles (yikes).
- Fixed bad PostScript output of documents with titles with embedded newlines.
- Fixed problems in PostScript code on DEC Alphas (hopefully).
- Fixed another coredump opportunity in GIF reading code.
- Fixed glitch in simplying URLs like 'http://blargh.blah.:8001/'.
- Password entry fields in forms now obey the `MAXLENGTH` attribute.
- Changed default DEC Ultrix and Alpha audio player to "aplay" (c.f. AudioFile).
- Tried to make handling of HTTP network writes more elegant, in case some HTTP0 server really confuses things.
- Additional performance optimizations in HTML widget.
- New colorful spinning globe icon.
- Final interface tweaks, according to the advice of our user interface and visual design expert.
- Fixed compilation glitches on a couple different platforms.
- A few miscellaneous minor cleanups.

## Changes from 2.0 prerelease 6 to 2.0 prerelease 7

- Smart inlined image caching. Resource `imageCacheSize` can be set to the maximum image cache size of your choice (in kbytes; default 2048) -- command line option `-ics` also does this.
  - All of the images in a given document will be (temporarily) cached while on that page regardless of the value of `imageCacheSize`. (This is a feature :-).
  - Cache flushes "least recently viewed".
- Added TYPE="image" to forms support (see testcase).
- Added interruptible reads. All data loads should now be completely interruptible (from end of DNS lookup to beginning of in-widget document formatting), except for certain stages of a direct WAIS query.
- Added "mosaic-internal-present" magic viewer to cause arbitrary MIME types to be presented to the user using Mosaic's normal plaintext display mechanism. Added many default mappings for things like troff and TeX documents to this magic viewer.
- Made additional fixes to HTTP code for very small inlined images -- testcases here and here.
- Transparent uncompression is back (but not recommended, for cross-platform compatibility).
  - X resources `uncompressCommand` and `gunzipCommand` still control uncompression commands.
  - You should upgrade to gzip version 1.2.4 if you're not already there, as the new default for X resource `gunzipCommand` is "gunzip -n -f", which requires a recent version of gzip.
  - Mosaic will not transparently uncompress anything coming across a HTTP/1.0 connection, under any circumstances, yet.
  - Mosaic will not transparently uncompress anything transferred in binary transfer mode, but will transparently uncompress files typed such that they get saved directly to disk (e.g. `application/octet-stream`, and any MIME type mapped to magic viewer "mosaic-internal-dump").
- Partially removed smart FTP interface -- will be restored at some point in the future when I have more time to work on it. In the meantime, it caused too many problems with too many servers.
- Added "Reload Images" menu option to explicitly flush images on current page and reload the entire thing.
- Added horrible hack to allow (slow, but working) transactions with way-old HTTP0 servers.
- Made handling of screwed-up HTTP/1.0 MIME header sets more robust.
- Proper password entry dialog for authentication support.
- Added last resolved host info caching to help performance with slow, confused, or misconfigured DNS servers.
- Most temporary files weren't going into specified `TMPDIR` -- fixed.
- Fixed bug in handling of Gopher titles with 8-bit characters (testcase here)..
- Fixed bugs in issuing Gopher queries -- punctuation in queries, etc. should work now.
- Better handling if temporary disk space runs out (still not a good thing to allow to happen, though).
- Better socket handling (sockets should always be closed by the time an external viewer is started now, so they don't leak until the viewer exits).
- Fixed bug in handling HTTP/1.0 redirection for inlined images and reloading.
- Fixed bug in following symlinks to absolutely specified files on FTP servers.
- Fixed minor and intermittent scrollbar management bug.
- Fixed another coredump opportunity in GIF reading code.
- Fixed another coredump opportunity in FTP icon code (testcase file://ftp.uwp.edu/pub/music/lyrics/b/beatles -- can't read it because the FTP server is highly nonstandard, but at least now it doesn't dump core).
- Fixed coredump opportunity in mailcap-parsing code.
- Fixed handling of some Gopher directories (e.g. gopher://calypso.oit.unc.edu/11/sunsite.d).
- Fixed coredump when using `HREF` instead of `SRC` with `IMG`.
- Color stuff -- start at http://nearnet.gnn.com/mkt/mkt.intro.html with correct colors and middle-button the resource directory, close new window, repeat as necessary, occasionally pressing 'R' (refresh) in the original window -- you'll see the colors in the newly opened window look incorrect (in 1.2 also). Fixed!
- Fixed interruptible I/O weirdness on some System V systems.
- Cleaned up generation of Gopher titles.
- Changed default player for all audio files from showaudio to sfplay for SGIs to avoid various problems.
- Problem in SELECT's coming over Gopher -- %0D's at end of lines don't get clipped out -- testcase gopher://gopher.saintjoe.edu/0/search/archieplex.html -- fixed.
- Fixed glitch with PostScript code.
- Made small change to FTP code to cooperate with various FTP servers better (testcase here).
- Fixed coredump when pressing Reset button in form with password entry field.
- Fixed socket leaking problems in FTP, WAIS, and beyond -- sockets should never again be leaked by Mosaic; if you can confirm this is happening, please let us know (and provide evidence, testcase sequences, and netstat readouts).
- Added recognition of Gopher+ image, sound, and movie types -- still no guarantee they'll be handled properly, as Gopher+ does typing a little differently and we don't provide full support for Gopher+ anyway.
- Fixed problem if temporary local copy of HDF file goes away unexpectedly. Also better handling of temporary local files -- however, beware that if you use Mosaic's HDF viewing support, you should clean up your temporary directory space on a fairly regular basis, as Mosaic does not always know when to clean it up for you (for various reasons -- Mosaic should always clean up local copies of other types of data files though).
- Fixed longstanding security glitch in Gopher support (Marc VH will recognize this).
- News support tweaked.
- More performance enhancements -- go Quantify!
- Added some portability fixes.
- Lots of little cleanups and fixes.

## Changes from 2.0 prerelease 5 to 2.0 prerelease 6

- Added CERN authentication code with GUI support (see CERN docs and testcases).
- Added/revised scrolled lists, option menus, multiline text areas support in fill-out forms; see docs.
- Added local directory icons and enhanced FTP icons (thanks to Charles Henrich).
- New toggle button for selecting delayed image loading on the fly.
- New "Load Images In Current" menu option to load all (delayed) images in current document.
- Improved handling of wide range of HTTP/1.0 response codes (see BSDI testcases).
- Fixed really stupid problem with networking -- numeric addresses were being handled incorrectly.
- Fixed coredump when reloading initial document that had been interrupted first time it was being loaded; also added internal fixes to make doing things with no document loaded at least not crash the program.
- Fixed bug when retrieving ftp://mailbase.ac.uk/pub/lists-k-o/nir (it's not accessible but a spurious bug report was getting dumped to stderr).
- Made FTP directory handling more flexible/accurate (testcase here -- should see "lists" directory).
- Handle HTTP0/HTTP1 socket-level protocol clash a little better (e.g. http://sunsite.unc.edu:8988/expo/nobeamup_map.html?49,51 -- might not be a valid testcase anymore).
- Binary transfer bug fixed -- it works right now.
- Transparent uncompression still doesn't work (sorry), but the mutant compressed filename munging code that was alive in pre5 is disabled now, and compressed files are treated as binary.
- Worked around strange Motif bug causing crashes on some platforms with message about accelerators.
- Now properly recognize comments ('#' first character in line) in extension maps.
- Fixed problem with encoding of 8-bit characters in fill-out forms and elsewhere.
- Made MIME type handling case insensitive in HTTP and WAIS code.
- Enhanced URL canonicalization (safe handling of trailing period in fully qualified hostnames, plus lowercasing of all hostnames, plus elimination of bogus "+" in port specification resulting from interaction with some Gopher+ servers).
- Cleaned up some big direct WAIS and other memory leaks.
- Improved handling of Gopher errors.
- Improved handling of binary transfer mode (now "Load To Local Disk") -- local tmp file properly removed when cancel button is hit, and dialog box is now modal to prevent problems.
- Fixed bug in delayed inlined image icon handling with multiple delayed inlined images on the same line.
- Gopher/FTP icons are now part of anchors, so they can be clicked on (even though they're normal color -- trust us on this one).
- Fixed memory corruption problem with remote control `newwin` directive.
- Changed FTP client code to always pass fully qualified machine name in anonymous password whenever possible (actual username is already being passed).
- Cleaned up menubar.
- Lots of little cleanups, performance tweaks, and portability fixes.

## Changes from 2.0 prerelease 4 to 2.0 prerelease 5

- Added `INPUT` elements of type `RADIO` for fill-out forms as per HTML+ spec.
- Added `INPUT` elements of type `PASSWORD` for fill-out forms as per HTML+ spec.
- Added `INPUT` elements of type `OPTION` for option menus in fill-out forms (not in HTML+ spec yet).
- Added resource twirlingTransferIcon, default true, can be set to false to turn off twirling NCSA logo on transfers (interruption is still possible).
- Added resource twirlIncrement, default 4096, to indicate how many bytes (minimum) are transferred between icon twirls in interface for normal (FTP, Gopher, HTTP) transfers, if twirlingTransferIcon is on.
- FTP interface now has icons, byte counts (courtesy Charles Henrich).
- Gopher icons are back.
- Gopher type handling is back up to par, including support for tweakGopherTypes.
- Brought default mailcap and extension mapping stuff up to speed; enumerated previously wildcarded types (`image/*`, `audio/*`) for debatably broken CERN server.
- External viewers need not have "%s" as part of their names anymore; if they don't, then the data will be piped through stdin when they are executed.
- Added "Reload Config Files" menubar entry, to cause mailcaps and extension maps to be reloaded on the fly.
- Multiformat WAIS support is now working; testcase here; sample query.
- MIME types returned from WAIS servers are now handled correctly.
- Telnet/rlogin/tn3270 works again.
- Upon startup, now writes own pid into `~/.mosaicpid`.
- Clip anchor ("#...") off of current URL, if present, before doing search, for both forms and isindex.
- Widget creation now deferred as long as possible, to eliminate ugliness of index field, etc. showing up too early.
- It should now be impossible to do anything interface-wise during a transfer except click on the interrupt button for the current window.
- Fixed memory problem introduced in pre4 triggered when opening a new window with middle mouse click.
- Fixed HTML widget crash condition that hit HP-UX.
- Fixed problem jumping to anchors in the same document (jump to "#a" in a document, the "#b", then go back and you were still at "#b" instead of "#a"). Also nailed down jumping back and forth between anchors in general. Performance maybe could be better.
- Handle 403 return codes better ("Forbidden").
- Fixed problem with icon not righting itself after reloading inlined images (testcase).
- Fixed problem with invalid content-type returned as part of HTTP/1.0 reply (was causing bad memory corruption; now unrecognized content-types default to HTML). Testcase -- click on "Help".
- Fixed problem introduced in pre4 with confused history mechanism and internal anchors.
- Fixed minor problem with news formatting.
- Ignore SIGPIPE; error EPIPE is also considered to be a sign of the HTTP1/0 protocol incompatibility problem.
- Fixed problem with -dil and images that aren't accessible at all.
- Merged in useful fixes from 2.11, including ignoring of ":80" for HTTP URLs and ":70" for Gopher URLs in URL parsing for improved history tracking.
- Killed use of const structs in HTML-PSformat.c to make compilation under Ultrix easier.
- Added patches for Esix 4.0.4 and Solaris x86 2.1.
- Reported bug: "Found a bug with the maxlength parm, if you set a size to something other than the specified maxlength, it will allow data of any length to be entered" fixed.
- Cleaned up communication notification mechanisms.

## Changes from 2.0 prerelease 3 to 2.0 prerelease 4

- Prerelease startup page is now hardwired to a warning page about the hazards of prereleases, to keep users from having the slightest thought that a prerelease is the same thing as a stable release and should be given to small children, normal users, or people without senses of humor.
- Basic interruptible I/O.
  - You can interrupt in the middle of a connect or between reads of chunks of data during HTTP, Gopher, direct WAIS, and FTP connections. (Interrupt by clicking on the spinning NCSA logo in the upper right corner of the window.)
  - Existing problems: can't interrupt DNS (hostname) lookups, can't interrupt in the middle of reads.
- Added support for NCSA httpd 1.0 style extension/content-type config files (extension maps).
  - Resource `useDefaultExtensionMap`, default true, can be set to false to keep Mosaic from having any default extension mappings. We strongly recommend that this resource be left true; simply override as necessary. See information on extensions recognized by 2.0pre4 by default.
  - Resource `globalExtensionMap`, default "/usr/local/lib/mosaic/mime.types", can be set to the location of the system-wide extension map config file of your choice.
  - Resource `personalExtensionMap`, default ".mime.types", can be set to the location of the personal extension map config file of your choice -- the value of the environment variable `HOME` is prepended to this.
  - Extension matching is now case insensitive (e.g., `.txt` and `.TXT` are always treated the same).
- Added support for RFC 1524-style mailcap files to map MIME types to external viewers. Together with the extension map support (above), this provides complete customizability of viewers, supported types, and extensions in a manner smoothly compatible with multimedia mail.
  - Resource `useDefaultTypeMap`, default true, can be set to false to keep Mosaic from having any default type mappings. We strongly recommend that this resource be left true; simply override as necessary. See information on MIME types recognized by 2.0pre4 by default.
  - Resource `globalTypeMap`, default "/usr/local/lib/mosaic/mailcap", can be set to the location of the system-wide mailcap (type map config) file of your choice.
  - Resource `personalTypeMap`, default ".mailcap", can be set to the location of the personal mailcap file of your choice -- the value of the environment variable `HOME` is prepended to this.
  - In this prerelease, we are not RFC 1524-compliant in a couple respects: a "%s" must be included in the viewer specification; if it is not, Mosaic will not currently feed the data to the viewer via stdin. Also, "%t" and "%{" are not recognized. Also, things like `copiousoutput`, `test`, and `needsterminal` aren't recognized either. We don't know if these things are important or not (`needsterminal` probably is but the others probably aren't).
  - There are two "magic viewers" that can be associated with particular MIME types:
    - `mosaic-internal-dump` is used to tell Mosaic to dump files of the corresponding type to disk (providing the user with a dialog box to specify a filename). Normally this "magic viewer" applies to all unrecognized types (including, by default, `application/octet-stream`).
    - `mosaic-internal-reference` is used to tell Mosaic that it has native handling capabilities for this datatype. This should only be used for HDF and netCDF data files, and only with versions of Mosaic that have native HDF support compiled in. By default this "magic viewer" applies to types `application/x-hdf`, `application/x-netcdf`, `application/hdf`, and `application/netcdf` (the latter two aren't valid MIME types at the moment, but should be someday).
  - See here to learn about how Mosaic can be made to execute shell scripts via clicking on hyperlinks using this customization capability, and for an overview of some of the security issues involved.
- Added better WAIS type support. In particular, given an arbitrary WAIS type (e.g. "TEXT", "WSRC", "GIF"), the following occurs:
  1. If a MIME type of the same name is found, then that is the type. (This is looking forward to the days when WAIS servers will return MIME types -- "image/gif" instead of "GIF", etc.)
  2. Otherwise, a dummy filename "foo.type" is constructed (e.g. "foo.GIF") and run through the normal extension mapping code to try to do a MIME type match. This means that you can expand the WAIS types Mosaic handles simply by adding entries to your extension map (and, if necessary, your mailcap).
  3. If this fails, we assume plaintext.
- Fixed "bad docid" problem with direct WAIS queries to some WAIS servers (including White House Papers). (I'm still not sure this is bulletproof -- please send bug reports regarding bad or missing docids or documents, inconsistent results, etc.)
- Added support for 300-level HTTP/1.0 replies (301 and 302 -- redirection or forwarding of URLs).

  In conjunction with NCSA httpd 1.0a2 and later, this means graphical overviews of distributed information spaces are now easily doable (a single image map can essentially point to lots of URLs scattered all across the Web). An example is here.

- Added support for `<BASE HREF="whatever">` to allow specification of a "real" URL inside an HTML document. (This is a convenient way to have WAIS server access not screw up URLs of documents that normally exist in a hypermedia hierarchy, or in any other instance where the same document, especially when containing relative links, is served off of more than one server.)

  An example is here -- the document is physically located at "http://wintermute.ncsa.uiuc.edu:8080/foobar.html" but the "real" URL is specified in the document source. Inlined links specified with relative URLs, and relative hyperlinks, work.

- Deferred inline image loading -- resource `delayImageLoads` can be set to true (or command-line flag `-dil`) to cause inlined images to not be loaded by default.
  - Instead, a little icon is inlined that can be clicked on to have the image loaded and expanded in place.
  - Images serving as anchors get a little arrow icon on top of the little image icon that can be clicked on to follow the anchor.
  - Only problem remaining: how to handle `ISMAP` images reasonably in this context.
- Reworked HTML widget layout to support consistent baselines -- typography is much improved. This also means:
  - `<IMG ALIGN=MIDDLE>` is now supported.
  - Input elements in fill-out forms are now better aligned with their surroundings -- baseline of text in text widget is aligned with baseline of surrounding text line; toggle buttons are placed correctly.
- Papered over basic incompatibility between HTTP0 and HTTP/1.0 protocols -- sockets can get confused when sending a HTTP/1.0 request to a HTTP0 server; we now detect when this happens and reissue the request as HTTP0. This is not a really good fix, as there is a performance hit if it must be done frequently and it's ugly besides, but it does mean that data should never be lost when talking to a HTTP0 server.
- Fixed compatibility problem with X11R5/Motif 1.2 (the binaries we distribute are still linked with X11R4/Motif 1.1 but you should be able to compile and run with X11R5/Motif 1.2 now).
- New and improved inlined XPM3 support.
- Fixed fairly large memory problem dealing with external data elements in HTFWriter.c, which often instantiated itself in coredumps in the GIF reading/decompressing code.
- Fixed really stupid problem interpreting binary data over HTTP/1.0 connections.
- Fixed coredump on File->Mail To with no specified subject.
- Fixed coredump on "Save As" under some circumstances with new HTML widget.
- Fixed coredump on getting back NULL text on first connection or on reload.
- Fixed stupid bug-like feature in HDF code regarding display of only value of a single-value vdata.
- Now sends DTM disconnect message when closing application, if DTM connection is active.
- Took out extra space after periods bug-like feature.
- Fixed bug with new widget: document sometimes getting shoved off top of window and no scrollbar appearing.
- Binary transfer mode is back, and unknown types are handled as with binary transfer mode.
- Fixed problem with trailing slash on FTP directory (old problem, once fixed, reintroduced in 2.0).
- Fixed lots of memory leaks (thanks to Purify).
- Changed default documentsMenuSpecfile to /usr/local/lib/mosaic/documents.menu.

## Changes from 2.0 prerelease 2 to 2.0 prerelease 3

- Libwww2 merged in (based on libwww-2.09a; heavily modified).
  - Basic HTTP/1.0 support, including MIME format comprehension. (See libwww-2.09/HTInit.c; no run-time customization is in place yet.)
  - Direct WAIS support.
    - Link to freeWAIS 0.1 client libraries.
    - Handle plaintext, html, binary formats (!) cleanly.
    - Even access HDF/netCDF files out of a WAIS database and have them be handled properly by Mosaic (parsed and displayed with inlined images, hyperlinks, and the works as usual).
    - New resource maxWaisResponses controls maximum number of matches you get from a WAIS server; default is 200.
  - FTP and file interfaces now alphabetize filenames.
  - Local file interface inlines README file in directory listing, if one exists.
  - "ftp" URL always forces FTP link -- never tries local directory. "file" URL still first tries local directory then tries FTP link.
  - Search suffix now cropped from URL before determining file type by extension.
  - Lots of new bugs, and lots of previously fixed bugs from Mosaic 1.x reincarnated as new bugs.
- New and improved HTML widget.
  - No more document pages or large virtual windows -- everything is managed by the widget itself (including scrollbars).
  - Preformatted text sections wider than window do not force all text to be formatted to full width of window; text will be formatted to width of visible window and horizontal scrollbar will allow viewing remainder of the pre sections.
  - Jumping to anchor in document in new window (e.g. using middle button) now works.
  - Performance performance performance! (Really!)
  - Scrolling up or down by pages now gives you a leftover line from the previous page.
  - Added <br> and <hr> tags (linebreak and horizontal rule, respectively); also now support <strike> for strikeout effect.
  - Initial fill-out form support. This is a partial implementation of HTML+'s fill-out form spec, with a few minor changes.
    - For information on what's supported, how it works, and examples, see here.
    - A partially or fully filled out form will retain its state if you move to another document and then back.
    - ISINDEX is now handled via an inlined fill-out form (which means searchIndexInDialog resource is no longer useful).
- New directives and features for remote control:
  - "pagedown", "pageup", "scrolldown", and "scrollup" directives for remote control of scrollbar.
  - Audio, video, and other external datatypes can now be accessed without the window going out to lunch.
- Status area of document view window now gives byte count during network transfer, etc. (This isn't complete yet.)
- New resource trackFullURLs, if set to False, enables prototypical smart display of "where you're going" during mouse tracking, including format divination. This is still in progress...
- Unflagged command-line arg specifies startup document, which is now different from home document.
- Normal ISINDEX queries are now escaped properly.
- ACTION attribute now accepted for ISINDEX tag; allows specification of alternate search engine.
- New File->Refresh menu entry (to cause image colors to be restored, etc. without requiring network transfer) -- keyboard hotkey capital-R.
- Capital-H is now hotkey for calling up hotlist window.
- Fixed bug -- http://386bsd.cc.purdue.edu:8001/ was getting the machine name interpreted as numeric address.
- Nuked future list in history window.
- Nuked SIGINT interrupt hack.
- Nuked prototype group annotation support.

## Changes from 2.0 prerelease 1 to 2.0 prerelease 2

- Added searchIndexInDialog resource. If false (default), Search Index field (from 1.2) pops up on searchable pages and pops down on non-searchable pages. If true, Search Index button (from 2.0 prerelease 0/1) allows user to call up dialog box.
- The "Reload" option now clears out cached image data for the current document before reloading the document, thus causing the images to be reloaded also, if resource reloadReloadsImages is set to true (default is false).
- The "Clear Image Cache" menu option wipes out all cached images (reclaiming memory).
- "Clear Global History" also clears the image cache now.
- Fixed bug with internal bitmaps used in Gopher menus failing on non-8-bit displays.
- Ripped out Window Per Document option (middle button still causes new window to be opened on anchor activation).
- Toplevel Makefile (configure one file, type 'make', and you're done), as well as Makefile.sun, Makefile.ibm, Makefile.dec, Makefile.alpha for common configurations.
- Configurable Documents menu. By default there isn't one. Places to look in order of preference at program startup are the value of the resource documentsMenuSpecfile (by default /usr/local/mosaic/documents.menu), the value of the environment variable MOSAIC_DOCUMENTS_MENU_SPECFILE, and the value of the compile-time #define DOCUMENTS_MENU_SPECFILE (by default /usr/local/mosaic/documents.menu).

  The specfile itself consists of alternating lines of title and URL; a single line starting with two dashes ("--") between any two title/URL pairs counts as a separator. By default up to 80 things (title/URL pairs + separators) can be in a specfile; this can be increased in src/gui-menubar.c if you're crazy. An example specfile is distributed with the source code (but is not intended to be a default).

  The developer who implemented this feature disagrees with its presence in the program; the contents of such a customizable menubar ought to be in a hypermedia page (so you can actually format, lay out, and explain the various hyperlinks) that in turn ought to be served to the network (so others can benefit from your organization of information).

- Added simpleInterface resource to allow menubar and bottom button configuration to be considerably pared down (default is false). Comments on what should and shouldn't be in the simple user interface should be sent to cbushell@ncsa.uiuc.edu.
- Added "Network Starting Points" document pointer in Navigate menu (to make up for disappearance of Documents & Manuals menu); the URL is customizable at compile time (see src/mosaic.h).
- trackPointerMotion can now be set to false to inhibit pointer/URL tracking.
- Fixed yet another libwww bug -- coredump on malformed URL `gopher//mother.cs.bham.ac.uk:2070/`.

## Changes from 2.0 prerelease 0 to 2.0 prerelease 1

- Fixes for PostScript printing on non-SGI's and in general.
- Moved "Search Index" button to left side of window.
- Fixed problems keeping img.c from compiling without HDF support.
- Ripped out Documents, Manuals.
- Better Gopher icons (thanks, Kevin Hughes).
- Removed hardcoding of location of help documents. Here's how things work now: By default, the www.ncsa.uiuc.edu location is used. This can be overridden in src/Makefile by setting the DOCS_DIRECTORY_DEFAULT define. This can in turn be overridden by the environment variable MOSAIC_DOCS_DIRECTORY environment variable, which can in turn be overridden by the XMosaic*DocsDirectory X resource (which by default is NULL). How's that?
- Home page is now customizable at compile time by setting -DHOME_PAGE_DEFAULT to any URL.
- Other things that are customizable at compile time (see src/mosaic.h):
  - WHATSNEW_PAGE_DEFAULT
  - DEMO_PAGE_DEFAULT
  - HTMLPRIMER_PAGE_DEFAULT
  - URLPRIMER_PAGE_DEFAULT
- Removed native DMF support.
- Reading a .HDF file that's not an HDF/netCDF file no longer exits on "ncopen: Not a netcdf file".

## Changes from 1.2 to 2.0pre0

- Native HDF browsing support, and resources to support it.
- Search keyword is now in a dialog box.
- Mouse tracking, including display of target URL.
- Bitmaps in Gopher interface.
- History list now tracks jumps to internal anchors.
- New and improved PostScript printing (courtesy Ameet Raval and frans van hoesel); see below.
- Usenet news reading problems and other bugs fixed.
- DTM support updated to Collage 1.2-alpha equivalent.

## PostScript Support

New features in the PostScript printing support, according to its authors, are:

- inlined images (b & w, grayscale and color)
- better vertical placement
- different font sizes
- automatic scaling down of whole page when window is too wide, or when it shows a horizontal scrollbar
- works both for A4 and letter size (the page size used is simply a compromise, that is why you will have a too large top margin on A4 paper and a small left margin)
- supports listing font
- handles multi page documents better (although there is still a page break at the point Mosaic breaks the page)
- ISO encoding of fonts
- works on level 1 postscript printers
- structured documents comments
- better placements of bullets
- indication of links (underlined text, outlined images)

Notes on the PostScript support from its authors:

> It seems to work best with not too wide windows (otherwise the page get scaled down, and so the fonts will get smaller too) and it is best to use times font (you may prefer to select the small times font from the option menu before printing/saving in Postscript format).

> Documents that show up badly in Mosaic, will do so in the postscript. The output uses the placement calculated by the browser. It does not reformat the document. This implies amongs other things that no word wrapping is done.

## Other Information

Information on other versions of NCSA Mosaic is here.

General information on NCSA Mosaic is available here.