General
=======

    Nothing here right now, please refer to the INSTALL guide.
    At some point in the future, I will be up for writing a
    doc on this. :)


Special Thanks
==============
  
    eurijk!     - For having such a big ego he thanked himself :)
    halfy       - Did debugging work for mandrake. :)
    hk_hbk      - Pointed out various problems with off versions of
                  g++. Did a lot (if not all) of the debugging for
                  solaris. :) Thanks
    jerome9     - Lots of help with Darwin changes.
    mAc         - Thanks for all the pre-alpha, alpha, etc testing :)
		Morpheus-   - Did some win32 testing. Thanks. :)
    moonshine-  - Moon's is on of the main Prolix developers. Take a
                  look at the packet guide.
    peatgee     - Sent in a diff so we could have bind support. :)
                  Development help, sent in a native port of pthreads
                  for win32.
    rcombs      - Ross is with the bnetd project and has assisted with
                  a variety of fixes, not to mention the whole bnetd
                  project. :)
    rycee       - Told me how to fix our autoconf/automake problems
                  we have been having. That means we might actually
                  get a win32 ver of prolix working again. Thanks :) #gnu
    sherpya     - Has done a lot of work on bnetd as well. sherpya
                  added the checkrevision packets to bnetd, which
                  made it a good deal easier to test prolix. >;-) 
    skywing     - Lots of advice with the win32 code. We have
                  win32 modules now. :)
    stevejobs   - Let me use his Darwin box to do the core work on
                  the Darwin porting. - thanks :)
    trekkie81   - Lots of help with Darwin changes.
    typhoon     - Typhoon is with the bnetd project and has helped
                  in a bunch of bug fixes. :)

    And all of you that have posted comments in the forum!


Client Types
============

	client w2bn
	client star
	client sexp
  
	Note: Only w2bn works on bnet right now.

Dynamic Modules
===============

	There are several modules in the prolix/modules/ directory.
	You can just type

		% make

	in the directory to compile them. You can add in the config.txt file

		module samplebot

	to load the ./samplebot.so file, or you can type

		/load ./samplebot.so

	to dynamically load it into the bot while it is running.

		/unload


Color Problems
==============

	I've had some color problems in linux if you do not have
  
	% export TERM=linux

	set. This appears to be a problem with ncurses. With TERM
	set to ansi, you can get some really strange results.
	<shrugs>

	With FreeBSD you may want to have

	% export TERM=xterm-color

CommandLine Commands Fallback Handling
======================================

    Each level will get the command, handle it, and then pass it on
    to the next level. As a general rule all commands will be passed
    on to the next level, but of course if an "upper" handler did
    not want to pass a value down it would be able to.

    The special display will call handleCommands, if the value returned
    is non-zero, then the command was handled and does not get enqueued.
    If the value returned is 0, then the command is enqueued. This is
    done by either the SpecialDisp or the Disp.

    SpecialDisp::handleCommands( char *cmd) {
      int ret = 0;
      if (!strcasecmp( cmd, "/bob") {
        ...
        ret++;
      }
      return( Disp::handleCommands( cmd) + ret);
    }

    Disp::handleCommands( char *cmd) {
      int ret = 0;
      if (!strcasecmp( cmd, "/refresh")) {
        ...
        ret++;
      }
  
      // Pass the command to the special bot.
      return( bot->handleCommands( cmd) + ret);
    }

    SpecialBot::handleCommands( char *cmd) {
      if (!strcasecmp( cmd, "/adduser") {
        ...
        ret++;
      }

      // Pass the commands to the default bot handler.
      return( ret + Bot::handleCommands( cmd));
    }

    Bot::handleCommands( char *cmd) {
      if (!strcasecmp( cmd, "/quit")) {
        done++;
        return 1;
      }
      return 0;
    }

