$Id: client.changes,v 1.5 1993/01/14 22:02:18 lindner Rel lindner $

Changes from 1.11b to 1.12
--------------------------

* Fixes for tempname memory leak and fixes for tempname on VMS.

* Added ^R to redisplay keys for those VMS types.

* Fixed window-memory leak in CURChoice();

* Fixed problem with pagers that don't leave the cursor at the beginning of
  the line.

* Now compiles cleanly under UCX.

* Save_file now generates "pretty" VMS default file names.

* Fixed bug with one item directories not showing up correctly.

Changes from 1.11 to 1.11b
--------------------------

* Save_file now filters for directories and searches.

* Removed \n from system() calls for VMS.

* Reverted to old behavior in readfield() This is especially important
  for sites that stuff \n's in their titles/paths.

* Bugs!!!  Fixed problem with 's' for saving at a menu.  Also fixed
  function calling to Save_file.

* Secure mode now actually lets people view documents.

* VMS users can now see the bytes per second on their transfers.


Changes from 1.1 to 1.11
------------------------

* Added file downloading command 'D'.  Right now it's hard coded for
  kermit, sz, sb, and sx download commands.  This can be customized
  easily by editing download.c.

* Client no longer trys to display images when in secure mode.  An
  error message is displayed instead.

* Added command line option -T to set the initial type of object being
  displayed.

* Improved behaviour when executing an item by typing it's number
  The arrow and screen are updated to reflect the item being
  retrieved.

* Fixed display problems with directory title searching.

* Client now compiles underneath VMS.  See README.VMS in the top level
  for more information. (Thanks Earl and JQ!)

* Should compile on UNICOS now.  (Hal Peterson, hrp@cray.com)

* CSO searches now gather fields that have the "Lookup" attribute
  instead of the "Indexed" attribute.

* Name of the CSO popup is now the name of the gopher item being
  searched.

* CSO dialog cancels automatically if no search data is entered.

* Saving a file after a search doesn't save the highlighting codes
  now at the expense of retransferring the file.

* Fixed initial display message to "Press RETURN to continue".
  Initial gopherrc file now has sane file permissions.


Changes from 1.03 to 1.1
------------------------

* Processing of overly long titles is now better dealt with.

* By popular demand, typing a number "enter's" the item, instead of
  just moving you there.

* Copyright notice is displayed when you enter gopher for the first time.

* Added support for GIF files.

* Fixed bug where you can't change the Mail command.

* Now can save direct from the menu, press 's', doesn't put icky
  bolding characters into your data...

* You can now save into pipes, i.e. "| uncompress| xloadimage -" will
  do the right thing... Can't do it in securemode though..

* Can now save in ~/ and ~username.

* Removed dead code, blew away error.c.

* Fixed error processing for cso queries. (JQ Johnson)
  jqj@ns.uoregon.edu

* Changed prompt for mailing a document to "Mail current document to:"
  Mod from dhgo@midway.uchicago.edu (donald goldhamer)

* Some of the error messages are more descriptive (unknown host etc.)

* Client distinguishes between 3270 and Telnet types. Marie-Christine
  <gophadmi@gopher.yale.edu>

* Fixed problem with line positioning when a failure to connect occurs.
 <snewton@oac.hsc.uth.tmc.edu>

* Fixed bug when deleting last bookmark in a directory.  Also fixed
  screen updating problem when deleting last bookmark in a list.

* Added additional input processing, ^u now kills the entire line.
  Cursor keys can move within any entry dialog.

* Fixed problem with backspace key on certain system V systems.

* Cursor keys now wrap around the main gopher menu.

* Added snazzy dialog boxes everywhere.  Experimented with Character
  graphics.  Should be much easier to use.

* File/socket I/O is greatly improved.  read() system calls reduced 1000
  times or more.

* Fixed problems with leftover files in /tmp.

* The client now allows you to specify more than one server on the
  command line.  Do it like this:

     gopher gopher 70 gopher2 70

  It will randomly choose either server, this is useful for duplicated
  servers.



Changes from v1.02 to v1.03
---------------------------

The client can now interrupt searches using Control-c.  However this
can be buggy.  The current position on the screen isn't quite updated
properly, and things will probably break if you're reading a long
directory....

Gopher now looks in the "Name" instead of the "path" to find a default
name to save in..  Works for WAIS docid things.

Client can now view images.  There is a new environment variable
GOPHER_IMAGE.  It's a little different than the patch that's already
out there.

Searches in a menu (the / command) are now case insensitive.

PagerCommand is now saved.  PAGER still takes precedence, though.

Fixed bogus out of memory error when mailing a file.

Added casts to each and every malloc();

Changed name of PC binary files to PCBIN instead of HQX, confusing at
best...

Changes from v1.01 to v1.02
---------------------------

Fixed problems with input handling and core dumps on Ultrix machines.

Added a new option -b, it starts the client on the bookmark page.

Fixed problem with 'm' key.  It didn't update the current cursor line.
Caused core dumps too.

Fixed problem with getting moved to the first item of a directory when
choosing not to search a search type.

Fixed problem with cbreak redefinition on some Sequent systems. (Sellens)

Changed o to O in the gopher help file.

Fixed problems with input handling in Ultrix.  keypad() was the culprit.

Client now deals with MIME stuff correctly. (Mark Whidby)

Client now deals with window size change signals and suspend signals
better.  Client now also doesn't update screen size if it receives a
window size change signal and the screen size hasn't actually changed.
(which can happen in a Sun cmdtool window) (jqj@duff.uoregon.edu)

Added searching functionality in menus, press '/' to search for a string,
'n' afterwards will search for more items of that name.  (David Datta)


Changes from v1.0 to v1.01
--------------------------

Fixed problem with compilation on NeXTs.

Fixed problem with telnet and port 0 error messages.


Changes from v0.9 to v1.0
-------------------------

Experimental MIME type is now supported. (Type 'M').

TN3270 type is now supported (Type 'T').

User can now escape from the Telnet/TN3270 connection screen.

Ctrl-g will abort you out of all prompts, ala emacs.

Added bookmark support and gopherrc file support.  Bookmarks can be
defined with the 'a' or 'A' key.  The first marks the item under the
cursor, the other marks the current directory.  Bookmarks are stored
in ~/.gopherrc, along with other configuration parameters.

Client now does nifty twirl output to let you know it's up to
something.  It currently does this for directorys (one twirl per
entry) and textfiles/cso searches (one twirl per 25 lines)  This
stuff is adapted from the panda code.

Added more information on connections.  It displays "connecting..."
before it displays "retrieving directory..."

Client beeps at you if you press the wrong keys now.

The client doesn't redisplay the menu when an invalid key is pressed.
Nice for people dialing in on 2400 bps lines.

Now linking in the new swanky gopher library.  I got tired of having
many different versions of the same code lying around.

Added fix from John Sellens that allows the user to escape from a CSO
query.

Fixed problem with titles not being updated when moving back a level.

The client checks for environment variables for its configuration
information.  The following variables can be used:
    GOPHER_MAIL    The program to send mail with (must understad -s option)
    GOPHER_TELNET  The program to contact telnet services with.
    GOPHER_PLAY    The program to play sound from a pipe.
    GOPHER_PRINTER The program to print from a pipe.
This was all suggested and coded by Timothy M. Sigmon.

Fixed typos in error.c relating to vprintf and err_init, patch from
Jim Meyering.

Cleaned up the SYSVCURSES stuff.  You no longer need to specify
whether or not you're using System V curses.  Also fixed a problem
relating to Newline and KEY_ENTER confusion.  All in all the curses
code is cleaned up quite a bit.

Made the interface more consistent.  Pressing 'l' will let you enter
into and item (just like return and the right arrow..)  (Glenn F.
Leavell)


Changes from v0.8 to v0.9
-------------------------

Gopher the Cache!!  This version of the client caches the previous
directories indefinitely....  Perhaps should add timeouts.

Reduced memory usage ~4 times.  Implemented data structures in pseudo
C++ fashion.  All memory for character strings is dynamically
allocated.  No more hard limits!  Directories can be as large as your
available memory!  Cool!

Removed bogus calls to strstr in gopher.c relating to bolding of
output words. (Pointed out by Tim Perala)

Fixed conf.h so that it doesn't bogusly set IS_BSD for an Encore
Multimax. (Pointed out by Tim Perala)

Bug: The prompt when viewing a file allows for mailing in secure mode.
The actual code however doesn't let you do this.  Fixed it.  (Pointed
out by Ed Symanzik)

Fixed security hole.  Don't allow people to change options using the O
command when secure mode is active. (Fix from Rickard Schoultz) Also
disabled saving hqxs and binaries..

Fixed annoyance.  If you selected a directory and it couldn't connect,
the cursor would jump to the first item.  (Fix from Edward Symanzik)

Fixed -t option parsing.  Pointed out by Andreas Haug & John Sellens. 

Added Binhex and PChex compatibility. (Tweaks from John Sellens)

Fixed problem with page up, it didn't go up all the way.  It was 12
lines off.  (Fix from Edward Symanzik)


Changes from v0.7 to v0.8
-------------------------

Added fix from John Sellens:  The client was opening a connection at
the beginning of every session and not doing anything with it.  A
simple fix was all that was needed.

Added enhancement from John Sellens: client now supports "Type 9"
binary files.

Fixed typo in help file, thanks to Nelson Beebe.

The client can now send files using mail, in addition to printing and
saving.  (This was originally suggested by Julio Perez)

Added the -p option (for "path").  This will let you point the gopher
Client at a specific selector string on the server.  Suggested by
Prentiss Riddle.  Also added -t option to override the "Root
Directory" title that's normally displayed.  (These flags will mostly
be used for special purpose uses of gopher).

Added key bindings for left and right arrow keys.  The Left arrow key
moves you "up" a directory (just like 'u'), the right arrow key moves
you "into" an item (just like <return>). (from William Roberts).

Fixed problem with char definitions/SYSVCURSES in manager.c. (from
William Roberts.)

Allowed ESC 0 [abcd] as well as ESC [ [abcd] when VTKEYS are defined.
(Also from William Roberts).

Changed default pager from more to more -d.  (Suggested by Julio Perez) 

Upped the sizes of the structures for the selector string, title, etc.
Should work better with those nasty WAIS docids...

Changed almost all of the code to the GS{set,get}Type calls.  Look in
gopherstruct.[hc] if you plan on modifying the client...


Changes from v0.6 to v0.7
-------------------------

Fixed problem with mysterious 2s appearing when bolding words.  I did
things the correct way with tputs() instead of the hackish method.

Fixed problems with phonebook database searches that return more than
ten hits.  Dash insertion will now work correctly in this case.

Fixed problems with large directories causing core dumps.

Added fixes from John Sellens <jmsellen@watmath.waterloo.edu>

  Fix for race condition when trying to retrieve a non-existant item.

Added fixes from Craig Rice <cdr@stolaf.edu>

  Client checks to see if the root server is up before starting.  If
  it's down it exits and prints an error message.

  Fixed improper prompting when saving files.

Added fix from Mic ...

  Removed the EOF that gets written out to files when you save them.


Changes from v0.5 to v0.6
-------------------------

Fixes for the undocumented + next_page command.  I changed the
keystrokes to ">" for page down and "<" for pageup.  Thanks go to
Pekka Kytolaakso <Pekka.Kytolaakso@convex.csc.fi> for the patch.

Client now cleans up files in /tmp when control-c is typed, patch
courtesy of Craig Rice <cdr@stolaf.edu>.

A whole slew of changes from Mic Kaczmarczik:

   Some versions of make have a predefined macro called ``MACHINE'',
   changed it to ``MACHDEFS'' to avoid conflicts.

   Provide a way to override the default host in the Makefile.

   Make clean deletes the executable program as well as object files.

   Allow definitions of DEFAULT_HOST & GOPHER_PORT in the Makefile.

   Try to guess the IS_A_ Machine type automatically.

   Added the '=' command to show information about the current item
   in the .Link format.

   Fixed #include file ordering problem in gopher.h.

   Don't include <stlib.h> if on a NeXT system.

   Disabled the keypad call for Ultrix machines. (Fails under Ultrix 4.0)


Changes from v0.4 to v0.5
-------------------------

The client now remembers the path you took through the menus.  It
sticks the pointer of the directory you were in when you move up a
level or when you view a file.

Fixed problem with the getopt variables in being in the wrong place.
This caused problems with strict C compilers.

Fixed type problem with getopt() (c should have been an int) Thanks go
to BugStomper Russell Fulton <rj_fulton@aukuni.ac.nz>.

Spiffed up the makefile.  Typing "make install" now installs the
helpfile in the right place.

Added changes from Craig Rice <cdr@stolaf.edu>

  The key 'm' or 'M' now takes you back to the root level.

  A lowercase 'q' now quits the program too.

  A "Searching Text..." Message is displayed when searching text.

  I modified his idea of stripping off long titles.  Instead of
  removing all directory information I strip off just enough
  directories to fit the tile the screen.  (This really isn't very
  portable though, not all long titles will have slashes
  necessarily...)



Changes from v0.32 to v0.4
--------------------------

Client now handles control-c gracefully (no more raw terminals.)

Added signal handler for window size changes.  (Thanks to Rick Watson 
r.watson@utexas.edu for the hints and tips)

Option setup no longer uses full paths for commands.  conf.h is now
much simpler

VT100 cursor keys now work on all platforms, not just System V curses
machines. (Thanks go to Pekka Kytolaakso <Pekka.Kytolaakso@venus.csc.fi>)

Now compiles on Convex OS 9.1 using -DIS_BSD (Pekka again...)

Now compiles using System V curses on Ultrix machines. (Thanks go to
Earl Fogel <fogel@sask.usask.ca>)

Now using getopt() command line parsing.

Added option -s that disables saving and printing, very useful for
public access terminals.


Changes from v0.31 to v0.32
---------------------------

Fixed stupid refrest() typo.  (That'll teach me to do hack and burn jobs!)


Changes from v0.3 to v0.31
--------------------------
Added more messages that tell you when the client is doing stuff.
(receiving directory, receiving sound, etc...)

Fixed definition problem of SIGCLD/SIGCHLD.

Changes from v0.2 to v0.3
-------------------------

Fixed undefined PLAY_COMMAND on machines that don't have a sound player.

Added an option for compiling gopher for people that are using ANET
from a VM/CMS system (STUPID_TERM).

Niggly Makefile changes.

Fixed problems with long lines.  The client shows the end part of the
title (which is probably the most interesting) instead of the first
part.  The titles are also lined up properly now.


Changes from v0.1 (original unversioned release) to v0.2
--------------------------------------------------------------

Added highlighting of text in index retrievals.

Fixed strange memory allocation problems.

Added support for sounds on Sun Sparcstations and Nexts.

Fixed problem with really long lines.

Client prompts the user with an error message if an empty directory is
found.

Screen title is now intact when the user scrolls up a page.

