RCS: @(#) $Id: changes.txt,v 1.5 1999/06/30 09:04:55 DaveG Exp $

-------- Resent changes --------

 for 1.9 6/29/99
  - Added a call to Tcl_Finalize in the DLL_PROCESS_DETACH of DllMain.  I didn't
    know it was Xtcl.dll's responsibility to shutdown Tcl.  Thanks to
    "Spawn" <spawn@leetcode.com> for pointing it out to me.

 for 1.8 6/12/99
  - Added a check for a threaded core (aka one compiled with -DTCL_THREADS).
    If the check passes, I initialize it and turn on the 'thread' command.

 for 1.7 5/28/99
  - I had decoding set to use the system value, but cp1252 had some dead spots.
    I Changed decoding to use iso8859-1.  This is hard coded and not changable
    with 'encoding system <enc>'.

 for 1.6 5/24/99
  - Realized I needed to wrap all of XiRCON's commands with decode and encode
    to mate with Tcl's internal use of UTF-8, So I did.  Kano should rename
    his script to kano.test and place it in the Tcl test suite :)

 for 1.5 5/22/99
  - Added a call to Tcl_PkgProvide for each interp created.  This puts
    XiRCON in the package database.  You can check for the presense of
    XiRCON in your scripts with this:

    if {[catch {package present XiRCON} msg]} {
      #not in XiRCON
    } else {
      ::IRC::echo "XiRCON version is: $msg" status
    }

  - Just to be explicit, I made sure the ::IRC namespace is created when
    an interp is created.  A namespace is implied when the XiRCON commands
    are created, but we all know what "assume" breaks down to.
    
 for 1.4 5/17/99
  - added a wrapper for the echo command to do some automatic decoding
    from internal UTF-8 to "system" default.

 for 1.3 5/16/99
  - Fixed the unknown routine problem by adding a new one in xircrc.tcl
    and added a package require for Tk.

  - Added namespaces to the XiRCON commands.  All XiRCON commands reside
    in the ::IRC namespace (except XiRCON's unknown command; it sits in 
    ::XiRC because I consider it a kludge).

  - XiRCON hooks (on,menu,alias,hotkey) now execute like procs and from 
    within the ::IRC namespace, too.

  - Removed all experimentations of threading Tcl.  Tcl can't be threaded
    in XiRCON without access to the source code.  It just CAN'T be done!
    Pushing XiRCON hooks, with their info procs (args,raw_args,nick,user,
    host,channel...) into the Tcl event system loses context to XiRCON's
    default handler.  When a hook does not call 'complete', there could be
    NO WAY to call XiRCON's default handler from the thread context of Tcl.
    Therefore, threading Tcl seperate from XiRCON is imposible at this time.
    The only efficient way to do threading is the assembly-line approach, and
    blocking XiRCON's thread waiting for the event to come around in Tcl's 
    event system is a wasted effort as it has NO benifits.

    Possible fix might be to create a whole new default handler, but without
    deep access into XiRCON, this is still an awful hack with no real solution.
    Except for fixing it with the source.  We all know how likely that is :/

 for 1.2 5/5/99
  - XiRCON was defining an "unknown" command.  This was over-writing the
    one from init.tcl and messing up the package loader.  XiRC's unknown
    command is now being called "xirc_unknown".  Changing this got the
    package loader working, but at the price of now making aliases, within
    scripts, error.  Stuff like:

    proc quote {string} {
      /raw $string
    }

    now won't work.

    *** ERROR in script ... : invalid command name "/raw"
    The good news is:

    /tcl echo [package require registry 1.0]
    1.0
    /tcl echo [package require dde 1.0]
    1.0

    Tk isn't loading yet... be patient...  almost there.

  - Added the ability to source "xircrc.tcl" into each new interp created
    by XiRCON.  This will be the way init.tcl's and XiRCON's unknown routines
    can co-habitate once the fix is scripted into it.  Any volunteers?

 for 1.1 5/4/99
  - got init.tcl sourcing from the library path during Tcl_Init()

