
=================
Changes in 3.0.16
=================

TkGnats 3.0.16 requires at least gnats-3.113-beta.

23JAN2000

o  *** INCOMPABILITY WARNING ***

   The value of GNATS_ADDR in the gnats server's gnats-adm/config file
   now overrides the GNATS_ADDR field of the servers file. Therefore,
   in order for your database passwords to still be found in the
   TkGnats(ServerPasswords) variable you must ensure that the
   gnats-adm/config GNATS_ADDR is fully qualified (eg bugs@foo.com,
   not just bugs) and that the password entry keys match.

   Alternatively, it's better to switch to the new password variable
   and format in TkGnats(DatabasePasswords) which uses the database
   alias and hostname instead of GNATS_ADDR email address.

o  *** INCOMPABILITY WARNING ***

   Set the minimum version of GNATS required to 3.113.

o  A new file, "UserDir"/servers, is loaded if it exists. Use this to
   override or append to the global servers file. All variables
   matching TkGnats(Servers*) are sorted and then concatenated. Thus,
   TkGnats(Servers2) would append server entries to the TkGnats main
   menu (TkGnats(Servers)).  Specifying TkGnats(Servers) in
   "UserDir"/servers would completely override the global server list.

o  You can now save a startup default query that is executed when the
   Query window is first opened. This makes the Query, Sort and Fields
   menus consistant: all have SaveCurrent/AsStartupDefault options, and
   all three have menu items to reset to the start default (if startup
   defaults have been saved).

o  New configuration variable TkGnats(${field}IsMandatory) allows
   users to specify additional mandatory fields for themselves but not
   override server-set mandatory fields. This is handy in help desk
   and other shared-account situations. For example:

       set TkGnats(X-GNATS-NotifyIsMandatory) 1

20JAN2000

o  Fields in the Query listbox are now truncated if too long in order
   required to keep the listbox columns lined up. New variables
   (TkGnats(Query${field}_width)) allow some control. See
   tkgnats.config for details. The current defaults lean towards
   squishing up the fields to allow more of the Synopsis to be
   visible.

o  Query listbox heading abbreviations may now be specified for all
   fields except Number, which has the hard-wired abbreviation "Id".
   TkGnats(Query${field}Abbreviation)

o  You can now specify abbreviations for all non-text and non-date
   fields to help squish up the Query listbox width. Before, just
   Class and State allowed abbreviations. Priority and Severity now
   have new default abbreviations.  Note that this variable name has
   changed from TkGnats(${field}Abbreviations) to
   TkGnats(Query${field}Abbreviations).

08JAN2000

o  Reworked the initialization and password handling for the new
   feature that gets all the aliases from a server and builds the
   main TkGnats menu automatically.

o  Changed the recommended "ServerDir" to use database alias and 
   server name instead of GNATS_ADDR components.

           *** WARNING *** 
           
           If you switch to the special "*" feature of the main menu
           title, you will have to manually rename your global and
           personal ServerDirs to match this default naming
           convention. Otherwise, it will appear that you've lost your
           saved queries and other information.

o  Changed the TkGnats(ServerPasswords) variable (now depricated) to
   TkGnats(DatabasePasswords), which uses database alias and server
   name instead of GNATS_ADDR components. See README.config for
   details.

05JAN2000

o  Fixed line wrapping in the Description Summary.

04JAN2000

o  All available cusomizable variables are now listed in the 
   tkgnats.config file.

03JAN2000

o  Improved error message if a PR that appears in the Query listbox 
   can't be accessed (send follow-up email, printed, viewed or
   editted) because it's missing or has bad directory or file
   permissions.

o  The (g)troff macro "yr" returns "100" instead of "00" (in the year
   2000) so the footer at the bottom of the various Print reports has
   been changed from "100 / 1 / 3" to "Mon Jan 3 12:13 2000" (for
   example).

02JAN2000

o  Fixed normalize_date function to return null if input date string is
   blank or null. This caused "today's date" to be filled into Date-Required
   every time a PR with a blank Date-Required was editted. Yikes!

02DEC1999

o  Better error checking for batch sendmail errors.

30NOV1999

o  A Server entry of "* server port" will cause the TkGnats main menu
   to query the gnats server for all available databases and automatically
   create a button for each one.

           *** WARNING *** 
           
           If you switch to the special "*" feature of the main menu
           title, you will have to manually rename your global and
           personal ServerDirs to match this default naming
           convention. Otherwise, it will appear that you've lost your
           saved queries and other information.

27NOV1999

o  Two new variables set the number of States and Classes in each
   row of radio and checkbuttons in the SendPr, EditPr and Query
   windows: TkGnats(ClassPerRow) and TkGnats(StatePerRow).
   The default is to put all in one row or buttons.

=================
Changes in 3.0.14
=================

TkGnats 3.0.14 requires at least gnats-3.112-beta.

TkGnats requires TclTk 8.0 or newer on UNIX and Windows 95/98/NT. A
few Windows users have reported socket communication problems with
Windows version 8.0p2 which were fixed in Tcl/Tk 8.0.3.

20OCT1999

o  Set the minimum version of GNATS required to 3.112.

o  Fixed broken query for Submitter-Id when TkGnats is configured for
   batch mode ([n]query-pr, etc, instead of gnatsd).

20SEP1999

o  Changed index separator in "DELETE PERMANENTLY" from ":" to "|".

03SEP1999

o  People were entering "now" for Date-Required. This is valid, but
   when check-db is run, "now" evaluates to a different time so the
   gnats index appears to be in error. TkGnats now converts Date-Required
   to the YY-MM-DD format to ensure that this doesn't happen. now, today,
   yesterday and tomorrow are all valid dates where this could occur.

=================
Changes in 3.0.13
=================

TkGnats 3.0.13 requires at least gnats-3.111-beta.

TkGnats requires TclTk 8.0 or newer on UNIX and Windows 95/98/NT. It
no longer runs with Tcl/Tk 7.6/4.2. A few Windows users have reported
socket communication problems with Windows version 8.0p2 which are
fixed in Tcl/Tk 8.0.3.

29AUG1999

o  Set the minimum version of GNATS required to 3.111. This should have
   also been set in TkGnats-3.0.12 but I forgot to do it.  :-(

o  Improved error handling when filing edited PRs. Email isn't sent until
   after the PR has been successfully filed.

o  Added Cancel buttons to a few text entry dialogs (Edit Reasons, Saved
   Query commands, etc).

o  Removed two files that shouldn't be included in the distribution:
   NEWCONFIGOPTS and TKGNATSPATCH2.

=================
Changes in 3.0.12
=================

TkGnats 3.0.12 requires at least gnats-3.111-beta.

TkGnats requires TclTk 8.0 or newer on UNIX and Windows 95/98/NT. It
no longer runs with Tcl/Tk 7.6/4.2. A few Windows users have reported
socket communication problems with Windows version 8.0p2 which are
fixed in Tcl/Tk 8.0.3.

06AUG1999

o  Added bindings for Cut/Copy/Paste operations and the Query listbox for
   upper case characters so these functions all work when the CapsLock is on.

o  Changed the default of SUPPRESSED_EDIT_FIELDS to "none" instead of 
   "Audit-Trail(admin)".

24JUL1999

o  Fixed handling email address of the form "Rick Macdonald" <rickm@vsl.com>.

o  MS email sometimes has addresses (in Reply-To, IE the Originator) with
   commas. eg: "Macdonald, Rick" <rickm@vsl.com>. TkGnats internally
   parses and changes this to "Rick Macdonald" <rickm@vsl.com> because
   TkGnats can't handle the comma. This change is _not_ saved in the 
   PR even when the PR is editted and saved.

06JUL1999

o  New config variable TkGnats(QueryDefaultAction) defaults to "view"
   but can be set to "edit" to control the action for double-clicking
   and pressing Enter in the Query listbox.

02JUL1999

o  Added FIELD_ALIASES to the client hints. You can now "rename" any
   field in the PR!

o  Reinstated the TkGnats(Quarter) config variable for Paul Triana.

o  Fixed some background colours under Windows.

o  Added Delete to the Cut/Copy/Paste popup menu, and disabled functions
   when inappropriate such as Cut/Copy when there is no selection.

o  Fixed SendPr when Responsible is blank but not mandatory.

o  Fixed missing domain name in Send Email.

30JUN99

o  Query listbox now takes input focus and has these bindings:

   - PageUp, PageDown, UpArrow, DownArrow, LeftArrow, RightArrow
   - e: Edit Pr (if authorized)
   - d: Delete Pr (if authorized)
   - v,Enter: View Pr
   - r: View Raw Data
   - h: Hide from List
   - m: Send Email
   
o  Improved busy stopwatch cursor setting and clearing.

o  New configuration variable TkGnats(DefaultDomainName). If specified,
   this will be added to all email addresses without a domain name.

o  New configuration variables for the default setting of fields in
   SendPr. Any field can be set with: 

        set TkGnats(CreateDefault${field}) value

   where $field is any field such as Release. For example:

        set TkGnats(CreateDefaultRelease) "1.00 99"


24JUN99

o  Added pop-up right mouse menu for Clipboard Cut/Copy/Paste operations
   in all text and entry widgets. Cut/Copy/Paste operations are also
   bound to the ^x, ^c and ^v keys respectively. Details are in the new
   Help/Cut,Copy,Paste menu item.

21JUN99

o  Added support for multiple databases when UNIX platforms have direct
   disk access. See README.config and README.unix. The "ServerDir" is
   was a poor name choice and should have been called the DatabaseDir, but 
   I'm leaving it as ServerDir in the README and CONFIG files for now.

18JUN99

o  The File/EditReport menu item of the ViewPr dialog wasn't being
   disabled if the user didn't have edit permission.
   (Thanks to Richard McGowen <rmcgowen@fc.hp.com>)

31MAY99

o  TkGnats now searches the GNATS config file (--list-config|LCFG) for these
   "client hint" parameters. See README.config for details and defaults.

   REQUIRE_AUDIT_TRAIL_ENTRY 
   REQUIRE_AUDIT_TRAIL_REASON
   REQUIRE_AUDIT_TRAIL_EMAIL 
   SUPPRESSED_FIELDS         
   SUPPRESSED_SEND_FIELDS    
   SUPPRESSED_EDIT_FIELDS    
   MANDATORY_FIELDS   
   FIELD_ALIASES

o  TkGnats now searches the GNATS config file (--list-config|LCFG)
   for TKGNATS_MIN_VERSION, in which case it will abort if you are running
   a version of TkGnats older than that specified. The numbers are compared
   as strings, so 3.0.2 is greater than 3.0.19. I'll have to make sure that
   all future TkGnats versions are compatable with this check. This is
   documented in README.config.

o  Changed Reply-To to Notify-List, which now internally uses the email 
   header X-GNATS-Notify instead of Reply-To. When parsing a PR, the 
   following occurs:

   - if X-GNATS-Notify doesn't exist but Reply-To does, Reply-To is
     copied to X-GNATS-Notify and Reply-To is set to From.

o  Changed references to "ServerKey" to GNATSDatabaseAlias in the
   various README and CONFIG files.

o  Added sample server (gnatsd) passwords to CONFIG-user.ini and
   CONFIG-single-user.ini.

=================
Changes in 3.0.11
=================

TkGnats 3.0.11 requires at least gnats-3.108-beta. 
This release was never used outside of my office.

It runs with Tcl/Tk 7.6/4.2 on UNIX, and TclTk 8.0 on UNIX and
Win95/NT. Version 8.0 or newer is recommended for performance and font
handling. A few Windows users have reported socket communication
problems with Windows version 8.0p2 which are fixed in Tcl/Tk 8.0.3.

29MAY99

o  Fixed bug where the continuation lines of long Reply-To headers were 
   not being parsed, and therefore lost.

28APR99

o  Fixed Help menus when using local disk access to GNATS. It was failing
   with the error: can't read "TkGnats(UserAccess)": no such element in array.
   (thanks to "Kitchener, Steve" <SKitchener@Broner.co.uk>)

o  The Query window no longer resizes with the Query listbox xscroll.
   (thanks to "Kitchener, Steve" <SKitchener@Broner.co.uk>)

21APR99

o  The Create New PR dialog now removes "pending" from the category list.

o  Added an example TkGnats(CreateDefaultCategory) to tkgnats.config.

19APR99

o  Added support for NIS+ to get the user's full name from the password
   file. (thanks to morgan.boklund@dynamics.saab.se)

25MAR99

o  Positioned EditPr "reason for change" dialogs closer to the  center 
   of the EditPr window. Same with the entry dialog called when saving
   and renaming saved sorts and queries.

22MAR99

o  If you pressed return or clicked OK without entering a reason after editing
   a PR, the entry dialog wasn't being raised again after a message dialog
   informed you that you must enter something. Now it is raised.
   (thanks to Matthew.Rice@ftlsol.com)

16MAR99

o  Added the "Changes" file to all Help menus. The Makefile now installs
   the CHANGES file to TKGNATSLIB.

07MAR99

o  Added validity check for release-based "Date-Required" field in
   tksend-pr and tkeditpr.

=================
Changes in 3.0.10
=================

TkGnats 3.0.10 requires at least gnats-3.108-beta.

It runs with Tcl/Tk 7.6/4.2 on UNIX, and TclTk 8.0 on UNIX and
Win95/NT. Version 8.0 or newer is recommended for performance and font
handling. A few Windows users have reported socket communication
problems with Windows version 8.0p2 which are fixed in Tcl/Tk 8.0.3.

25FEB99

o  The column headings of the main Query listbox now scroll (sideways)
   with the listbox contents.

21DEC98

o  Removed a restriction from the Environment field that disallowed the "|"
   character (in tksendpr).

15DEC98

o  Added the GNATS "Organization" field to the send, view and edit windows.

================
Changes in 3.0.9
================

TkGnats 3.0.9 requires at least gnats-3.108-beta.

It runs with Tcl/Tk 7.6/4.2 on UNIX, and TclTk 8.0 on UNIX and
Win95/NT. Version 8.0 or newer is recommended for performance and font
handling. A few Windows users have reported socket communication
problems with Windows version 8.0p2 which are fixed in Tcl/Tk 8.0.3.

20NOV98

o  Makefile now uses "cp -p" to retain dates of all files when installing.

19NOV98

o  Print preview and print-to-file of "ascii" and "latin1" formats
   now have overstrikes removed by passing the "-b" flag to the groff
   post-processor (grotty).

09NOV98

o  Changes to support fixes in GNATS-3.108: gnatsd no longer unlocks
   PRs under any circumstances, like pr-edit, so we have to. pr-edit
   now returns the full text of a PR when locking, like npr-edit does,
   so we don't need a separate call to get the full text. pr-edit no
   longer locks the entire GNATS database when locking an individual
   PR (gnatsd never did) so we don't have to check for the error
   condition of gnats being locked when we lock a PR. gnatsd LOCK now
   properly terminates with \r\n.\r\n so this had to be handled.
   gnatsd and npr-edit now properly escape single dots on send and
   un-escape on receive so this had to be handled.

================
Changes in 3.0.8
================

TkGnats 3.0.8 requires at least gnats-3.107-beta.

It runs with Tcl/Tk 7.6/4.2 on UNIX, and TclTk 8.0 on UNIX and
Win95/NT. Version 8.0 or newer is recommended for performance and font
handling. A few Windows users have reported socket communication
problems with Windows version 8.0p2 which are fixed in Tcl/Tk 8.0.3.

26OCT98

o  TkGnats was including the entire GECOS field from NIS or the 
   /etc/passwd entry for fullname. It now only reads up to the first 
   comma. (Thanks to Paul Traina <pst@juniper.net>)

o  Added still more support for release-based keywords.

o  Added configuration variable TkGnats(Quarter) that defines an
   alternate name for the release-based Quarter field.

25OCT98

o  Added configuration variable TkGnats(AutoUpdateCheck). If set non-zero,
   this causes TkGnats to check if TkGnats has been recently updated
   when certain buttons are pressed (query, view, edit, etc). The
   method is to store and check the file modification time of the file
   $TkGnats(lib)/VERSION. When an update is detected, TkGnats refuses
   most operations and asks the user to quit and restart. You can use
   this to force users to quit and restart to get updated local
   configuration changes by simply "touch"ing this file.

24OCT98

o  Added configuration variable TkGnats(MainMenu) which is code
   executed in the main menu just prior to adding the buttons to
   the window. This can be used to add custom buttons to, for example,
   provide a shortcut to a SendPr window. The following adds such
   a button for the first server in your server list:

	set TkGnats(MainMenu) {
	set s [lindex [lsort [array names TkGnats server,*]] 0]
	set l [list $TkGnats($s)]
	set b s_[lindex [split $s ,] 1]
	button .top.n$b -relief raised -text "Send New Bug Report" \
		-command "TkGnats_exec {$TkGnats(WISHPATH)} $TkGnats(lib)/tksendpr.tcl \
		-server $l &; schedule_reap"
	pack .top.n$b -side top -fill x
	}

23OCT98

o  Added configuration variables TkGnats(ClassAbbreviations) and 
   TkGnats(StateAbbreviations) that are lists of values and their
   abbreviations for the Query listbox. These override any default
   abbreviations provided by TkGnats. 

   Currently, Class and State names are given 5 and 9 characters in
   the listbox respectively. If your custom Classes or States are
   longer, use these variables to supply abbreviations.

   For example, if you have custom Classes called "installation" and
   "management", place this is a tkgnatsrc file:

     set TkGnats(ClassAbbreviations) "installation ins management mgmt"

o  Added example Class and State abbreviations to tkgnats.config.

17OCT98

o  UNIX commands such as "groups" and "id" are no longer executed under
   Windows.

o  Multiple database support.

o  UserID and password supported for network access. See new configuration
   variable TkGnats(ServerPasswords) in the README.config file.

o  Variables TkGnats(edit_autorized_groups) and TkGnats(edit_authorized_users)
   are now used only when accessing gnats by local disk. Otherwise, GNATS 
   database access is controlled by gnatsd directly.

16OCT98

o  Added configuration variable TkGnats(FocusStyle). The default is
   "mouse" for focus-follows-mouse. Set to "click" for click to focus.

================
Changes in 3.0.7
================

TkGnats 3.0.7 requires at least gnats-3.106-beta. That's not a misprint;
I really do mean gnats-3.106. It's just coincidence that the version
numbers of TkGnats and GNATS have been similar for awhile.

It runs with Tcl/Tk 7.6/4.2 on UNIX, and TclTk 8.0 on UNIX and
Win95/NT. Version 8.0 or newer is recommended for performance and font
handling. A few Windows users have reported socket communication
problems with Windows version 8.0p2 which are fixed in Tcl/Tk 8.0.3.

05OCT98

o  Corrected the order of "Group A" config files in README.config. It's:
      Group A:
               user-specified "INI" file   (command line or env variable)
               "TKGNATSLIB"/tkgnatsini
               "TKGNATSLIB"/servers

01OCT98

o  Added yet another optional configuration file, 
   TkGnats(TKGNATSLIB)/tkgnatsini. It's read if it's there. 
   See README.config.

o  Added the ViewConfigurationVariables menu item to the Help menu of the
   View Raw Data and Send Email dialogs.

30SEP98

o  Somewhere between gnats-3.105 and gnats-3.107 a bug was fixed in gnatsd
   where it used to not precede the final "dot" terminator with \r\n.
   Now that it does, the get_pr_full_text_socket procedure in tkpr_library.tcl
   needed changing. I had originally prgrammed around this bug and fixing
   the bug broke TkGnats. The problem only showed up in the Print/Full and 
   Print/DescriptionSummary functions in the Query dialog, and then only when
   there was more than one PR being printed.

29SEP98

o  Added to some of the Help text that searching on Text-Fields can be 
   slow (all other fields are in the GNATS index as of GNATS-3.107).

24SEP98

o  TkGnats now checks the GNATS version and refuses to run if it is not
   compatable.

o  Removed a restriction from the Environment field that disallowed the "|"
   character (in tkeditpr).

o  The configuration variable TkGnats(QueryMode) is now obsolete. The Days-Idle
   query-field now gets the Last-Modified date from the SQLF/SQL2 format and no
   longer needs to do the slower "medium" query (which isn't so slow as of GNATS
   3.106 anyway).

o  The Help for State and Class is now dynamic: it comes from the description
   fields of the states and classes files.

20SEP98

o  Added Query options for all date fields, including a pop-up date selector.

o  Added full support for the release-based fields Quarter and Date-Required
   (send, query, view and edit). Previously, only Keywords was supported.

o  tkeditpr - improved handling of missing PR fields.

o  Added a "Save to file" button to the Help windows. This is mainly for
   Windows users where you can't copy/paste the Help/ConfigurationVariables
   text into another window such as a mail program.

17SEP98

o  In the Query listbox, the right mouse button now pops up the "Actions"
   menu for the PR under the mouse.

08SEP98

o  Changed from gnatsd command SQLF to SQL2, which has the blanks squished
   out to reduce the data transfer size.

03SEP98

o  Fixed bug in tksendpr when the CreateDefaultClass wasn't set. The
   error message was: 

        Error in startup script: invalid command name
        ".eflds.lb.bars.class._$TkGnats(ClassesList)"

================
Changes in 3.0.6
================

TkGnats 3.0.6 requires at least gnats-3.106-beta. This is an interim
release in that new feature support is not totally complete (see
below).

It runs with Tcl/Tk 7.6/4.2 on UNIX, and TclTk 8.0 on UNIX and
Win95/NT.  Version 8.0p2 has also been tested.  Version 8.0 or newer
is recommended for performance and font handling.

Customizable classes and states is not quite complete. See the TO-DO
file for details of any remaining issues.

24AUG98

o  Added the new Release-Note field to help, view and edit.

27JUL98

o  The status area of the Query window now shows the number of PRs
   found in the query.

o  Fixed double spacing in the Audit-Trail when more than one change
   was made at once.

================
Changes in 3.0.5
================

TkGnats 3.0.5 was a development version that was never released.

27JUL98

o  Added the Closed-Date field to the View and Edit dialogs (read-only).
   New queries for Closed-Date are not done yet.

o  Customizable classes and states is not quite complete. See the TO-DO
   file for details of any remaining issues.

o  Priority and Severity Audit-Trail change notices are now separate and
   they both prompt for comments.

07JUL98

o  * INCOMPATIBILITY ISSUE *

   Audit-Trail logs use "->" to separate change notices instead of just "-".
   GNATS was inconsistant (and TkGnats too), using "->" for Responsible
   changes but "-" for state changes. 
   EG: Responsible-Changed-From-To: rickm->atoyota

   GNATS 3.105 and newer have this same change. A conversion script
   for existing PRs was provided in GNATS 3.106 and newer.

================
Changes in 3.0.4
================

TkGnats 3.0.4 requires at least gnats-3.104-beta.  It runs with Tcl/Tk
7.6/4.2 on UNIX, and TclTk 8.0 on UNIX and Win95/NT.  Version 8.0p2
has also been tested.  Version 8.0 or newer is recommended for
performance and font handling.

26JUN98

o  Unlike GNATS edit-pr, TkGnats now sends email notification and makes
   an entry into the Audit-Trail when the Priority and/or Severity are
   changed. I've added this fact to the tkgnats.doc file.

23JUN98

o  Added GNATS_ADDR to the title bar of the New Problem Report window
   (tksendpr.tcl).

06JUN98

o  Fixed TkGnats_sendmail_smtp (tcl_library.tcl) to work with newer
   versions of sendmail (8.x). It seems sendmail is more strict than
   it used to be. The SMTP commands MAIL FROM: and RCPT TO: no longer
   accept email addresses in the form:
         Rick Macdonald <rickm@vsl.com>
   (this used to work in v5.x). Since the full email addresses are in
   the email headers (To:, From:, etc), there is no visible change to
   any email sent by TkGnats.

27MAY98

o  Made colour settings variable. These variables defaults have been 
   added to tkgnats.config:

   set TkGnats(ReadOnlyBackground)  green
   set TkGnats(EditFieldBackground) grey95

   This is temporary. Someday I'll add a colour configuration dialog.

o  Fixed spelling of variable in tkviewpr: TkGnats(mtextbackground).

11MAY98

o  Fixed Query from Selection. It was broken.

o  Fixed hang when the Number field or Selection contained a non-existent PR.

07MAY98

o  Fixed a problem in Summary print when a PR had no Synopsis or
   some other blank field or blanks within a field (such as Release or
   Originator). The error was "m0: no such variable", or, field data
   would be in the wrong cells of the generated report.

o  Made the Query listbox selection stickier. As you do new queries, the
   selection will warp to the last PR selected, if possible.

29APR98

o  Improved error handling in lock_pr.

20APR98

o  Renamed README.first to README.

o  Fixed the backspace and Ctrl-h keys in the quickfill entry widgets
   (send and edit dialogs).

18APR98

o  Fixed a problem with category names ending with "++", such as "ospic++".

27FEB98

o  Changed exec wish "$0" "$@" to be exec wish "$0" ${1+"$@"}. The old
   form (recommended in the wish man page!) apparently caused
   problems for DEC UNIX users. This apparently still doesn't work for
   DEC UNIX, but it seems it's the proper syntax anyway.

o  Added instructions to README.unix for executing TkGnats programs
   directly (bypassing the TkGnats Main Menu).
   (requested by "Wolfgang S. Kechel" <wolfgang@prs.de>).

o  Added experimental user authentification with gnatsd. This is for
   a test version of gnatsd that a TkGnats user built. Perhaps a similar
   method can be defined universally and added to the mainstream gnatsd.

================
Changes in 3.0.3
================

TkGnats 3.0.3 requires at least gnats-3.104-beta.  It runs with Tcl/Tk
7.6/4.2 on UNIX, and TclTk 8.0 on UNIX and Win95/NT.  Version 8.0p2
has also been tested.  Version 8.0 or newer is recommended for
performance and font handling.

09JAN98

o  TkGnats(GroupName) under UNIX is now set to the list of groups
   from the 'groups' command. The edit_authorized and delete_authorized
   groups are now searched for in this list. The list can still be a single
   group. (Thanks to Martin Schwenke <Martin.Schwenke@cs.anu.edu.au>)

o  New variable TkGnats(GNATS_BINDIR) can be set if the GNATS programs
   query-pr and nquery-pr aren't in your path.
   (Thanks to Martin Schwenke <Martin.Schwenke@cs.anu.edu.au>)

06JAN98

o  A new variable TkGnats(ENVIRONMENT) may be set as the initial value
   of the Environment text when creating new problem reports.
   (Thanks to Dan Wilder <dan@gasboy.com>)

05JAN98

o  Fixed bug in TkGnats_sendmail_smtp where a trailing comma in the
   address list (unusual) would cause a null string to be sent as
   SMPT RCPT TO: and cause the connection to the SMTP daemon to hang
   until it timed out.

o  Pressing Return in any entry field of the Query window executes
   the "Do Query" command. 

o  The cursor in the Query entry fields now changes to a stopwatch when
   the Query window is busy (previously all widgets _but_ the entry 
   fields got the cursor change).

23DEC97

o  Reworked the Makefile somewhat. A new variable helps control installation
   for local or network GNATS access. Set GNATS=local or GNATS=network. The 
   default is local. Variables can be set on the make command line:

           make GNATS=network

   In the case of GNATS=local, the Makefile looks at the file
   $(GNATS_ROOT)/gnats-adm/config for the following variables:

        GNATS_ADDR, GNATS_USER, SUBMITTER

   In the case of GNATS=network, GNATS_USER isn't required, GNATS_ADDR
   is in the "servers" file, and SUBMITTER is typically in the 
   server-specific tkgnatsrc file.

o  Modified README.unix to reflect the Makefile changes above.

o  Re-worded parts of README.windows.

o  Added mention of the GNATS mailing list to the README.first file.

o  Changed the subject of the email sent when editing the State or
   Responsible fields to be recognizable by GNATS as follow-up mail.
   Before, a reply to such mail copied to "bugs" (a rare non-sensible 
   thing to do!) would be misinterpreted as a new report.

22DEC97

o  Put the server title (the one that goes on the TkGnats main menu)
   into the iconname for the main Query window.

o  By default, the Query listbox now shows as many characters of the
   Originator's name as will fit into the space allotted. If you want the
   first name only, set TkGnats(QueryOriginatorFormat) to "short".

================
Changes in 3.0.2
================

TkGnats 3.0.2 requires at least gnats-3.104-beta.  It runs with Tcl/Tk
7.6/4.2 on UNIX, and TclTk 8.0 on UNIX and Win95/NT.  Version 8.0p2
has also been tested.  Version 8.0 or newer is recommended for
performance and font handling.

16DEC97

o  Fixed bug where GNATS_ADDR was hardwired to "bugs" in the UNIX case
   where the GNATS daemon was _not_ being used.

o  Various improvements to the README files.

================
Changes in 3.0.1
================

TkGnats 3.0.1 requires at least gnats-3.104-beta.  It runs with Tcl/Tk
7.6/4.2 on UNIX, and TclTk 8.0 on UNIX and Win95/NT.  Version 8.0p2
has also been tested.  Version 8.0 or newer is recommended for
performance and font handling.

15DEC97

o  Fixed bug in tkeditpr. When not using gnatsd, it would not
   unlock the PR after it was updated.

o  Improved comments in the Makefile.

o  Added $(MAKEPATH) $(MANDIR)/man1 to makefile.

o  Got rid of the `which $(WISHPROG)` in the Makefile. It just
   caused too many problems. WISHPROG is still a variable, and
   can be given to make on the command line:  make WISHPROG=wish8.0.
   Note that the tkgnats executable now has the following, directly
   from the wish man page:

	#!/bin/sh
	# the next line restarts using wish \
	exec wish "$0" "$@"

   This means that WISHPROG may be set to the executable only, such
   as "wish8.0" or to a full path such as /usr/local/bin/wish8.0.
   The Makefile replaces "exec wish" with "exec $WISHPROG".

================
Changes in 3.0.0
================

TkGnats 3.0.0 requires at least gnats-3.104-beta.  It runs with Tcl/Tk
7.6/4.2 on UNIX, and TclTk 8.0 on UNIX and Win95/NT.  Version 8.0p2
has also been tested.  Version 8.0 or newer is recommended for
performance and font handling.

08DEC97

o  Consolidated the man files into one, tkgnats.1.

o  Finished rewriting the README and CONFIG files.

o  Removed the shell script execution line (first line) from
   tkeditpr, tkquerypr, tksendpr and tkviewpr and renamed with
   .tcl extensions.

o  Renamed to version 3.0.0 and released.

================
Changes in 2.0b8
================

TkGnats 2.0b8 requires at least gnats-3.104-beta.  It runs with Tcl/Tk
7.6/4.2 on UNIX, and TclTk 8.0 on UNIX and Win95/NT.  Version 8.0p2
has also been tested.  Version 8.0 or newer is recommended for
performance and font handling.

03DEC97

o  Improved email error handling when using smtp sockets. On error, the
   socket is closed and the email dialog is not destoyed.

o  Added the wish path and patchlevel to the Help windows.

o  The "Send Email..." dialog now disallows a blank message body (GNATS
   won't process mail if the body is blank).

02DEC97

o  Fixed bug in font selector where resetting to the previous font didn't
   load the corresponding font sizes into the size listbox.

o  Made the TkGnats(HOME) variable optional, but either TkGnats(HOME) or
   TkGnats(UserDir) must be specified.

o  Removed the TkGnats(HOME) variable from CONFIG-user.ini and 
   CONFIG-single-user.ini. TkGnats(UserDir), TkGnats(UserSubdir) and env(HOME)
   are now set automatically in WIN-tkgnats.tcl from the path name of the
   tkgnats.tcl script (this applies only to Windows).

10NOV97

o  In TkGnats(TKGNATSLIB) the contents of the print/query/sort directories 
   are merged with the contents of the TkGnats(TKGNATSLIB)/'ServerDir'/
   print/query/sort directories when building the print/query/sort menus
   of the Query dialog. All directories and files are optional. 

o  In TkGnats(UserDir) the contents of the print/query/sort directories 
   are merged with the contents of the TkGnats(UserDir)/'ServerDir'/
   print/query/sort directories when building the print/query/sort menus
   of the Query dialog. All directories and files are optional. 

08NOV97

o  Saving of the Query startup (default) sort order and fields is now
   explicit in the Sort and Fields menus rather than hidden side effects.

o  Saved queries now include the sort order and selected fields.

o  Cascaded parts of the Query, Sort and Fields menus.

07NOV97

o  The regexp in saved queries are now enclosed in braces instead of quotes
   to preserve escaped characters.

o  The UserDir still defaults to ".tkgnats" for unix, but non-unix defaults
   to "tkgnats".

06NOV97

o  Various tweaks to configurations issues.

o  Updated TECHNOTES, FILES, README, etc.

o  Audit-trail messages changed from:

           Responsible-Changed-By:      rickm
   to:
           Responsible-Changed-By:      Rick Macdonald <rickm@vsl.com>

   IE: from $TkGnats(LogName) to $TkGnats(FullName) <$TkGnats(EmailAddr)>

o  Fixed error message when trying to edit a PR that is locked.

02NOV97

o  Lots of minor changes but I couldn't keep up with this changelog.

o  Added a font editor.

o  Moved buttons and menus around to be a bit more standard.

27OCT97

o  The category in the TkSendpr dialog may be pre-set with the variable
   TkGnats(CreateDefaultCategory). This used to be TkGnats(TksendprCategory).

16OCT97

o  Added font control variables: TkGnats(DialogFont), TkGnats(TextFont) and
   TkGnats(HelpFont).

07OCT97

o  Added a new item to the Print menu, "Dump Listbox Data...". This saves the
   SQL-formatted data for the PRs in the Query listbox to a file. This might
   be useful to feed external scripts until TkGnats gets some report-generating
   options. Even then, I doubt that TkGnats could ever support _all_ of the
   reports that one might want to glean from the GNATS database.

06OCT97

o  More portability improvements, such as using [info hostname] and $tcl_platform
   instead of external unix programs like hostname and uname.

o  The Days-Idle query requires the Last-Modified field, which isn't part of the 
   -i (--sql or SQLF) query. I've coded around this by doing a "medium" query (QURY)
   and parsing this to build data similar to the SQLF output. This runs a bit slower
   when the query has lots of hits but I only do it when a value is given for the
   Days-Idle field. It should run better on Tcl/Tk 8.0 due to the byte compiler.

   You can force this behaviour for all queries by setting TkGnats(QueryMode) to medium.
   The default is sql, except when a value is given for the Days-Idle field as explained
   above.

   Previously, TkGnats looked at the time-stamp of the PR file itself, but of course 
   this wouldn't work in the network case, or from Windows95/NT.

   I'll ask Brendan for a new query option that adds this field to the sql output.
   It probably should be a new option or flag so existing scripts don't break.

04OCT97

o  Added internal sorting of the Query listbox. This elimates the use of the
   external sort program (necessary for Win95/NT port).

o  Sort and Field menu items now operate on the current listbox contents,
   rather than running the query again. This improves performance.

02OCT97

o  proc Tkgnats_config sets new variable TkGnats(HOSTNAME) which checks 
   [info hostname] to get the hostname. This is still overridden by 
   the environment variable HOSTNAME. lock_pr now uses this variable.

o  Cleaned up proc TkGnats_config somewhat.

29SEP97

o  Removed temporary file use when updating PRs in favour of writing directly
   to the program (or socket) through a pipe.

o  Removed use of the UNIX "cat" command from perform_print_cmd.

26SEP97

o  Gathered up all the TkGnats configuration code into proc TkGnats_config.

o  Added direct SMTP mail sending, controlled by new variables 
   TkGnats(MailMethod) (mailer or smtp) and TkGnats(SMTP_SERVER) and 
   TkGnats(SMTP_PORT).

o  Added direct gnatsd socket communication, controlled by new variables 
   TkGnats(GNATS_SERVER) and TkGnats(GNATS_PORT). Network access to gnatsd
   can be batch (nquery-pr/npr-edit) or direct socket connections and is 
   controlled by the variable TkGnats(GNATS_ACCESS_METHOD) (batch or socket).
   "socket" is recommended. Don't bother with the batch method.

o  Changed internal variable Tksendpr(Organization) to TkGnats(ORGANIZATION).

o  Added lots of configuration info to the Help/About menu item.


================
Changes in 2.0b7
================

TkGnats 2.0b7 requires at least gnats-3.104-beta. 
This release was never used outside of my office.

25SEP97

o  In preparation for direct communication with SMTP, the mail sending code
   has been rearranged. Mail is built into a string instead of written to
   a temporaty file and piped directly to TkGnats(Mailer).

o  Made the determination of ReleaseBased automatic, and removed the variable 
   from tkgnats.config (which would now be overridden).

o  Changed the GNATS config variable of GNATS_SITE to SUBMITTER in the TkGnats
   Makefile as the value that needs to be set. GNATS_SITE is no longer used by 
   TkGnats.

o  Changed the grep in the Makefile of the GNATS config file to be anchored
   at the beginning of lines so it finds SUBMITTER, not DEFAULT_SUBMITTER.

o  The internal variable TkGnats(Submitter-Id) is now TkGnats(SUBMITTER).
   This is the value of SUBMITTER from the GNATS config file.

22SEP97

o  The category in the TkSendpr dialog may be pre-set with the variable
   TkGnats(TksendprCategory).

o  The pr mail header field "X-send-pr-version" is now set to the TkGnats
   version rather than the send-pr version, since we don't use send-pr.
   example:  X-send-pr-version: tkgnats-2.0b7
   I don't know that anybody uses this for anything other than debugging.

o  The "About" item in the "Help" menu now shows if you're accessing a local
   or network GNATS database. The GNATS server hostname is given, if known.

o  The variables GNATS_ROOT and LIBEXECDIR are now passed around TkGnats as
   TkGnats(GNATS_ROOT) and TkGnats(GNATS_LIBEXECDIR) respectively.

o  Added the variable CHECK_CFG to the Makefile. You can make TkGnats even
   if GNATS isn't installed with:  make CHECK_CFG=no

o  The run-time configuration, which checks for certain environment variables,
   now happens after $TKGNATSLIB/tkgnats.config and any and all of the optional
   "tkgnatsrc" files have been read.

13SEP97

o  Network support for the GNATS gnatsd daemon!

o  Added variables TkGnats(GNATS_ACCESS) and TkGnats(GNATS_SERVER) to 
   tkgnats.config to set "local" GNATS database or "network" daemon access.

o  The Query action "Delete PERMANENTLY" is limited to local GNATS databases.

o  The command line arguments to the various executables in TkGnats
   (tksendpr, tkquerypr, tkeditpr and tkviewpr) have changed to improve
   performance (especially for network access) by passing along more 
   information.

o  Fixed a bug where the Save Query option would fail if GNATS was _not_ 
   configured --with-release-based.

o  TkGnats now uses query-pr to get the GNATS categories, submitters and 
   responsible lists. Therefore, the following variables have been removed 
   from tkgnats.config:

        TkGnats(CategoriesFile), TkGnats(SubmittersFile), 
        TkGnats(ResponsibleFile), GNATS_BASE

   TkGnats(ResponsibleFile) is a variable used for a different purpose now.

o  Removed the TkGnats(pr_editor) variable from tkgnats.config. This is
   hardwired and shouldn't have been a variable.

o  Removed the TkGnats(pr-addr) variable from tkgnats.config. This simple
   function is now implemented internally in TkGnats.

o  The format of the Saved Queries has changed greatly (much simpler and not so 
   dependent on TkGnats internal code) but the old format can still be read.

o  Fixed highlighting around active entry and text widgets.

o  Generally removed various bits of dead code.

o  Improved the quick-fill entry fields slightly. It's now impossible to erase
   the value in the field once it contains a value from the listbox.


================
Changes in 2.0b6
================

TkGnats 2.0b6 requires at least gnats-3.104-beta.

20AUG97

o  No visible changes or fixes. Only the installation configuration
   has changed to match and be consistent with the latest GNATS beta 3.104.

o  The Makefile now matches the new GNATS "LIBEXECDIR". The default
   is /usr/local/libexec to match GNATS beta 3.104.

o  The TkGnats files that go into TKGNATSLIB are platform-independent
   and have been moved from /usr/local/lib/tkgnats to 
   /usr/local/share/tkgnats. This matches the default location for
   the GNATS platform-independent files, which is /usr/local/share/gnats. 

   If you have been using the old location you should move or copy all
   the files and subdirectories to the new location _before_
   installing TkGnats 2.0b6. This will preserve your old settings and
   any global queries, sorts and print functions. If you installed the
   new release first, then simply copy the old files then run 
   "make install" again.

   Please make sure that you do _not_ have any set statements for
   TkGnats(lib) in tkgnats.config or any of the optional "tkgnatsrc" files.
   The setting of this variable now only occurs in the main executables
   (such as tkgnats, tksendpr, etc) and is configured by the Makefile.

o  Changed tksendpr to get the send-pr version dynamically by executing
   "send-pr --version".

o  This change was made in 2.0b5 but I forgot to add it to the Changes:

   Several values in $TKGNATSLIB/tkgnats.config can be overridden at
   runtime.

   At runtime, TkGnats checks for the environment variable "GNATS_ROOT".
   If it exists, the GNATS config file $GNATS_ROOT/gnats-adm/config is 
   scanned for the following values:

        GNATS_ADDR, GNATS_USER, GNATS_SITE, Submitter-Id

   which reset the following TkGnats variables:

        TkGnats(GNATS_ADDR), TkGnats(GNATS_USER), GNATS_ROOT, GNATS_BASE,
        TkGnats(GNATS_SITE), TkGnats(Submitter-Id)
   
   GNATS_ROOT also gives TkGnats the locations of the following GNATS files:

        categories, submitters, responsible

   by resetting the following TkGnats variables:

        TkGnats(CategoriesFile), TkGnats(SubmittersFile), 
        TkGnats(ResponsibleFile)
   
   This happens _after_ $TKGNATSLIB/tkgnats.config is read but _before_
   any of the following optional files are read:
                $TKGNATSLIB/tkgnatsrc
                $TKGNATSLIB/tkgnatsrc.<operating_system_name>
                ~/.tkgnats/tkgnatsrc
                ~/.tkgnats/tkgnatsrc.<operating_system_name>
   The <operating_system_name> is the result from the command "uname -s".
   For example, tkgnatsrc.SunOS, or tkgnatsrc.Linux.
   

================
Changes in 2.0b5
================

TkGnats 2.0b5 is compatable only with gnats-3.102-beta. It was in the
contrib directory of gnats-3.103, but gnats-3.103 was short-lived due
to errors in its Makefile. It was also in the contrib directory of 
gnats-3.103, but it's Makefile was not compatable with GNATS's Makefile.

31JUL97

o  Fixed tkeditpr to handle categories longer than 16 characters.

30JUL97

   All of the following fixes were provided by Jonathan I. Kamens:

o  Don't delete the VERSION file in the "clean" rule, since it's part
   of the distribution and therefore shouldn't be deleted when the
   user just wants to remove derived objects.

o  Support the "Keywords" PR field with the new configuration option
   TkGnats(ReleaseBased) is true.

o  Rename default_sort to default_sort.old when renaming ~/TkGnats to
   ~/.tkgnats, since the old format of default_sort isn't compatible
   with the new one.

o  Put back the functionality for doing a query from the current X
   selection, using a "Query Selection" item on the "Query" menu, and
   augment it by allowing the selection to contain multiple PR numbers
   rather than just one.

o  Don't truncate search patterns when doing queries.

o  When doing queries, don't fail if a field we're querying doesn't
   actually exist in the queried PR.  This is necessary because not
   all fields are present in all PRs.

o  Added TkGnats(MsMacroSet) to tkgnats.config. This sets the
   name of the macros for groff, typically "-ms" or "-mgs".

29JUL97

o  Added Category to subject line of email sent from tkeditpr.

14JUL97

o  Fixed bug in tkeditpr where it would incorrectly form
   the subject line when clicking "Send Email...". It
   used "Re: nnn:" instead of "Re: category/nnn:".

o  Added an "About" item to all of the Help menus to show
   the TkGnats version number.

11JUL97

o  Improved TkGnats(LogName) determination throughout.

08JUL97

o  Replaced several physical temporary files with internal
   Tcl variables in tkeditpr.

06JUL97

o  Replaced internal Tcl code with calls to query-pr for the
   new gnats-3.102 options --synopsis and --release. REGEXP
   searches are now always done by query-pr and work properly.
   The regexp's are passed directly to query-pr and do not
   require quoting. For example, this is OK in the Synopsis
   field: this error|that error

04JUL97

o  Added synopsys to the Subject line of created bug reports.
   Nobody usually sees this anyway, since GNATS does this too.
o  Changed the default for TkGnats(TextWrap) in tkgnats.config
   from "none" to "word".
o  Added TkGnats(delete_authorized_groups), TkGnats(GNATS_USER) and 
   TkGnats(delete_authorized_users) to tkgnats.config. These turn
   on a new "Delete PERMANENTLY" option in the Actions menu of the
   Query dialog.  Since GNATS_ROOT/gnats-adm/index and the PR files
   are usually writable only by the GNATS_USER, GNATS_USER is the 
   default for TkGnats(delete_authorized_users).


================
Changes in 2.0b4
================

TkGnats 2.0b4 is compatable with gnats beta releases up to
gnats-3.102-beta.

06MAY97

o  Tweaked Makefile again to work on Solaris, IRIX64 and Linux.
o  Fixed chmod in Makefile.
o  Added missing help for Last-Modified.
o  Removed call to old workingMsg (busy symbol) in synopsis_summary.
o  Removed "exec date" in synopsis_summary.
o  Renamed tkgnats.cf.t to tkgnats.config.


04MAY97

o  Updated manpages and added them to Makefile install/uninstall.
o  Renamed sortDialog.tcl to tkprsort.tcl.
o  Renamed reports.tcl to tkprprint.tcl.
o  Fixed valid filename checking when saving and renaming queries
   and sorts.
o  Added TO-DO list.


03MAY97

o  Makefile improvements.
o  Added the GNU COPYING file for copyright.
o  Removed "exec date" in favour of built-in Tcl "clock" command.
o  Removed "exec rm/mv/cp" in favour of built-in Tcl "file" commands.
o  Removed "exec cat" in favour of built-in open/read/close commnads.
o  Removed "exec grep" and "exec sed" in favour of built-in commnads.


01MAY97

o  Makefile improvements.
o  Removed all old files that were no longer used.
o  Updated README and FILES.
o  Converted tkeditpr from sh script to tcl.
o  Combined tkeditpr and tkeditpr.tcl. Deleted tkeditpr.tcl.
o  Got rid of msgDialog. Use tk_dialog instead.
o  Got rid of the "busy" symbol on the status line in tkquerypr.


================
Changes in 2.0b3
================

24APR97

o  Reworked email handling to support these email address formats:

    # 01: "Rick Macdonald" <rickm@vsl.com> and Rick Macdonald <rickm@vsl.com>
    # 02: rickm@vsl.com (Rick Macdonald)
    # 03: rickm@vsl.com

o  Added TkGnats Documentation button to the TkGnats main menu.
   It currently only describes the flow of email.


23APR97

o  Originator field changed back to be just the real name of the actual
   submitter. It's no longer used as an email address.
o  Added Reply-To field to Create, View and Edit windows. This is a
   comma-separated list of email addresses and should include the
   Originator's email address. This was to maintain compatibility with
   other gnats front-ends (emacs, www).
o  Send Email can toggle off individuals fom the Reply-To field.
o  Send Email can now toggle off GNATS_ADDR (eg bugs) if desired.


================
Changes in 2.0b2
================

15MAY97

o  User rc dir changed from ~/TkGnats to ~/.tkgnatsrc. 
   Previous dir, if any, will get renamed.

o  Other changes, but I wasn't keeping track yet.

==============
Changes in 2.0
==============

o  Complete overhaul of TkGnats interface.
o  This was the first TkGnats that I sent out. It got onto the 
   Debian 1.3 release. It should have been numbered 2.0b1.
