dsI/bin/
dsI/extra/creremote/
dsI/extra/mingw/
dsI/extra/wolfpaw/
dsI/fluffos-2.7-ds2.018/
dsI/fluffos-2.7-ds2.018/ChangeLog.old/
dsI/fluffos-2.7-ds2.018/Win32/
dsI/fluffos-2.7-ds2.018/compat/
dsI/fluffos-2.7-ds2.018/compat/simuls/
dsI/fluffos-2.7-ds2.018/testsuite/
dsI/fluffos-2.7-ds2.018/testsuite/clone/
dsI/fluffos-2.7-ds2.018/testsuite/command/
dsI/fluffos-2.7-ds2.018/testsuite/data/
dsI/fluffos-2.7-ds2.018/testsuite/etc/
dsI/fluffos-2.7-ds2.018/testsuite/include/
dsI/fluffos-2.7-ds2.018/testsuite/inherit/
dsI/fluffos-2.7-ds2.018/testsuite/inherit/master/
dsI/fluffos-2.7-ds2.018/testsuite/log/
dsI/fluffos-2.7-ds2.018/testsuite/single/
dsI/fluffos-2.7-ds2.018/testsuite/single/tests/compiler/
dsI/fluffos-2.7-ds2.018/testsuite/single/tests/efuns/
dsI/fluffos-2.7-ds2.018/testsuite/single/tests/operators/
dsI/fluffos-2.7-ds2.018/testsuite/u/
dsI/fluffos-2.7-ds2.018/tmp/
dsI/lib/cfg/
dsI/lib/cmds/common/
dsI/lib/cmds/creators/include/
dsI/lib/cmds/creators/include/SCCS/
dsI/lib/daemon/services/
dsI/lib/doc/
dsI/lib/domains/Ylsrim/
dsI/lib/domains/Ylsrim/adm/
dsI/lib/domains/Ylsrim/armour/
dsI/lib/domains/Ylsrim/broken/
dsI/lib/domains/Ylsrim/fish/
dsI/lib/domains/Ylsrim/meal/
dsI/lib/domains/Ylsrim/npc/
dsI/lib/domains/Ylsrim/virtual/
dsI/lib/domains/Ylsrim/weapon/
dsI/lib/domains/default/creator/
dsI/lib/domains/default/etc/
dsI/lib/domains/default/room/
dsI/lib/lib/comp/
dsI/lib/lib/lvs/
dsI/lib/lib/user/
dsI/lib/lib/virtual/
dsI/lib/obj/
dsI/lib/obj/include/
dsI/lib/realms/
dsI/lib/save/kills/a/
dsI/lib/save/kills/b/
dsI/lib/save/kills/f/
dsI/lib/save/kills/m/
dsI/lib/save/kills/q/
dsI/lib/save/kills/r/
dsI/lib/secure/cfg/
dsI/lib/secure/cfg/classes/
dsI/lib/secure/cfg/races/SCCS/
dsI/lib/secure/cmds/creators/include/
dsI/lib/secure/cmds/players/
dsI/lib/secure/cmds/players/include/
dsI/lib/secure/daemon/include/
dsI/lib/secure/lib/
dsI/lib/secure/lib/include/
dsI/lib/secure/lib/net/
dsI/lib/secure/lib/net/include/
dsI/lib/secure/lib/std/
dsI/lib/secure/obj/
dsI/lib/secure/obj/include/
dsI/lib/secure/save/
dsI/lib/spells/
dsI/lib/verbs/admins/include/
dsI/lib/verbs/common/
dsI/lib/verbs/common/include/
dsI/lib/verbs/creators/
dsI/lib/verbs/creators/include/
dsI/lib/verbs/players/include/SCCS/
dsI/lib/verbs/rooms/
dsI/lib/verbs/rooms/include/
dsI/lib/www/
dsI/v22.2b14/
dsI/win32/
diff -c -r --new-file v22.2b14/GNUmakefile ../mudos_v22.2b14_mingw/GNUmakefile
*** v22.2b14/GNUmakefile	Fri Dec 12 12:08:00 2003
--- ../mudos_v22.2b14_mingw/GNUmakefile	Tue Jun  6 19:23:08 2006
***************
*** 3,15 ****
  OBJDIR=obj
  DRIVER_BIN=driver
  PROOF=
! STRFUNCS=
  INSTALL=install -c
  INSTALL_DIR=../bin
! OPTIMIZE=
! CPP=gcc -E
! CFLAGS=-D__USE_FIXED_PROTOTYPES__ -g -DDEBUG
! CC=gcc
  YACC=bison -d -y
  RANLIB=ranlib
  A=a
--- 3,17 ----
  OBJDIR=obj
  DRIVER_BIN=driver
  PROOF=
! STRFUNCS=strfuncs.o
  INSTALL=install -c
  INSTALL_DIR=../bin
! OPTIMIZE=-Wall -Wundef -DPEDANTIC -pedantic -Wmissing-declarations
! CPP=gcc -E -mno-cygwin -static
! CFLAGS=-D__CRYPT_IMPORT__ -D__USE_FIXED_PROTOTYPES__ -g -DDEBUG -DDEBUG_MACRO
! #EXTRALIBS=-L/cygdrive/c/MinGW/lib -lwsock32 -lws2_32 
! EXTRALIBS=-L/cygdrive/c/MinGW/lib -lwsock32 -lws2_32 
! CC=gcc -static -mno-cygwin -B static 
  YACC=bison -d -y
  RANLIB=ranlib
  A=a
***************
*** 81,87 ****
  
  all: $(OBJDIR) cc.h files main_build
  
! main_build: $(DRIVER_BIN) addr_server portbind
  
  parallel:
  	$(MAKE) -k -l -j 6 cc.h files
--- 83,89 ----
  
  all: $(OBJDIR) cc.h files main_build
  
! main_build: $(DRIVER_BIN) 
  
  parallel:
  	$(MAKE) -k -l -j 6 cc.h files
diff -c -r --new-file v22.2b14/GNUmakefile.in ../mudos_v22.2b14_mingw/GNUmakefile.in
*** v22.2b14/GNUmakefile.in	Fri Dec 12 12:08:00 2003
--- ../mudos_v22.2b14_mingw/GNUmakefile.in	Sun Jun  4 20:04:32 2006
***************
*** 65,71 ****
  
  all: $(OBJDIR) cc.h files main_build
  
! main_build: $(DRIVER_BIN) addr_server portbind
  
  parallel:
  	$(MAKE) -k -l -j 6 cc.h files
--- 65,71 ----
  
  all: $(OBJDIR) cc.h files main_build
  
! main_build: $(DRIVER_BIN) addr_server
  
  parallel:
  	$(MAKE) -k -l -j 6 cc.h files
diff -c -r --new-file v22.2b14/add_action.c ../mudos_v22.2b14_mingw/add_action.c
*** v22.2b14/add_action.c	Fri Dec 12 12:08:00 2003
--- ../mudos_v22.2b14_mingw/add_action.c	Sun Jun  4 19:58:18 2006
***************
*** 2,7 ****
--- 2,8 ----
  #include "comm.h"
  #include "backend.h"
  #include "add_action.h"
+ #include "efun_protos.h"
  
  #ifndef NO_ADD_ACTION
  
diff -c -r --new-file v22.2b14/build.MudOS ../mudos_v22.2b14_mingw/build.MudOS
*** v22.2b14/build.MudOS	Fri Dec 12 12:08:00 2003
--- ../mudos_v22.2b14_mingw/build.MudOS	Sun Jun  4 20:08:14 2006
***************
*** 1,5 ****
--- 1,9 ----
  #!/bin/sh
  
+ echo "This mudos distribution is preconfigured for mingw."
+ echo "Running this script will clobber that config."
+ exit 1
+ 
  if test $# -ne 0; then
      case $1 in
          develop)
***************
*** 21,26 ****
--- 25,34 ----
      echo Preparing to build standard MudOS driver ...
  fi
  
+ \cp -f ../bin/mudos.cfg.orig ../lib/secure/cfg/mudos.cfg
+ \rm -f ../bin/mudos.cfg
+ ln -s ../lib/secure/cfg/mudos.cfg ../bin/mudos.cfg
+ 
  # If this is uncommented, the specified 'make' is used instead of looking for
  # one 
  #MAKE=make
diff -c -r --new-file v22.2b14/buildMudOS.bat ../mudos_v22.2b14_mingw/buildMudOS.bat
*** v22.2b14/buildMudOS.bat	Fri Dec 12 12:08:00 2003
--- ../mudos_v22.2b14_mingw/buildMudOS.bat	Wed Dec 31 19:00:00 1969
***************
*** 1,74 ****
- @echo off
- 
- if "%1" == "develop" echo Preparing to build developmental version of MudOS driver ...
- if "%1" == "develop" set OPTIMIZE=-Od
- if "%1" == "develop" set DEBUG=-Zi -DDEBUG -W4
- if "%1" == "debug" echo Preparing to build debugging version of MudOS driver ...
- if "%1" == "debug" set OPTIMIZE=-Od
- if "%1" == "debug" set DEBUG=-Zi -DDEBUG -W2
- if "%1x" == "x" echo Preparing to build standard MudOS driver ...
- if "%1x" == "x" set OPTIMIZE=-Ox
- 
- rem  define this to be where you want the temporary compiled files to go
- rem  (use only backslashes here)
- set OBJDIR=.\obj
- 
- rem  change this if you wish the driver binary to be named something else
- set DRIVER_BIN=driver
- 
- rem Set INSTALL_DIR to the directory where you want to install the executables.
- rem (use only backslashes here)
- set INSTALL_DIR=..\bin
- 
- rem Some of these are probably unnecessary
- set CFLAGS=-nologo -MT %DEBUG%
- 
- rem Determine system type
- set ARCH=Windows 95
- if "%OS%" == "Windows_NT" set ARCH=Windows NT
- if "%OS%" == "Windows_NT" set CFLAGS=%CFLAGS% -DWINNT
- if "%OS%" == "" set CFLAGS=%CFLAGS% -DWIN95
- 
- mkdir %OBJDIR%
- 
- echo MAKE=NMake >Makefile.tmp
- echo SHELL=command.com >>Makefile.tmp
- echo OBJDIR=%OBJDIR% >>Makefile.tmp
- echo DRIVER_BIN=%DRIVER_BIN% >>Makefile.tmp
- echo INSTALL=copy >>Makefile.tmp
- echo INSTALL_DIR=%INSTALL_DIR% >>Makefile.tmp
- echo OPTIMIZE=%OPTIMIZE% >>Makefile.tmp
- echo CPP=cl -E >>Makefile.tmp
- echo CFLAGS=%CFLAGS% >>Makefile.tmp
- echo CC=cl >>Makefile.tmp
- echo YACC=bison -d -y >>Makefile.tmp
- echo RANLIB=echo >>Makefile.tmp
- echo O=obj >>Makefile.tmp
- echo A=lib >>Makefile.tmp
- echo EDIT_SOURCE=.\edit_source >>Makefile.tmp
- echo EXE=.exe >>Makefile.tmp
- echo TAB_EXT=_tab >> Makefile.tmp
- 
- echo ***************** Configuration completed **************
- echo Installing MudOS on %ARCH%
- echo.
- echo Using copy to install binaries in %INSTALL_DIR%.
- echo Using cl -E for preprocessing.
- echo Using cl %CFLAGS% %OPTIMIZE% to compile.
- echo Using bison -d -y to make the compiler.
- echo Edit Makefile if this is not what you want
- echo.
- echo Otherwise, type 'nmake' to build MudOS, then 'nmake install'.
- 
- type Makefile.tmp > Makefile
- type NMakefile.in >> Makefile
- del Makefile.tmp
- echo wsock32.lib > system_libs
- 
- set CFLAGS=
- set OBJDIR=
- set DRIVER_BIN=
- set INSTALL_DIR=
- set OPTIMIZE=
- set DEBUG=
- set ARCH=
--- 0 ----
diff -c -r --new-file v22.2b14/comm.c ../mudos_v22.2b14_mingw/comm.c
*** v22.2b14/comm.c	Fri Dec 12 12:08:00 2003
--- ../mudos_v22.2b14_mingw/comm.c	Tue Jun  6 16:03:58 2006
***************
*** 14,19 ****
--- 14,21 ----
  #include "master.h"
  #include "add_action.h"
  
+ #define  WIN // included as way of only compiling if set, you may want to change this to suit your makefiles/project etc
+ 
  static char telnet_break_response[] = {  28, IAC, WILL, TELOPT_TM };
  static char telnet_ip_response[]    = { 127, IAC, WILL, TELOPT_TM };
  static char telnet_abort_response[] = { IAC, DM };
***************
*** 36,42 ****
  				    SLC_NOSUPPORT, SLC_NOSUPPORT, SLC_NOSUPPORT, SLC_NOSUPPORT, SLC_NOSUPPORT, SLC_NOSUPPORT };
  static char slc_default_chars[] = { 0x00, BREAK, IP, AO, AYT, 0x00, 0x00, 0x00, SUSP, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
  #ifdef DEBUG
! static char *slc_names[] = { SLC_NAMELIST };
  #endif
  
  /*
--- 38,46 ----
  				    SLC_NOSUPPORT, SLC_NOSUPPORT, SLC_NOSUPPORT, SLC_NOSUPPORT, SLC_NOSUPPORT, SLC_NOSUPPORT };
  static char slc_default_chars[] = { 0x00, BREAK, IP, AO, AYT, 0x00, 0x00, 0x00, SUSP, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
  #ifdef DEBUG
! #  ifndef sgi
! char *slc_names[] = { SLC_NAMELIST };
! #endif
  #endif
  
  /*
***************
*** 255,261 ****
      /*
       * register signal handler for SIGPIPE.
       */
! #if !defined(LATTICE) && defined(SIGPIPE)
      if (signal(SIGPIPE, sigpipe_handler) == SIGNAL_ERROR) {
  	debug_perror("init_user_conn: signal SIGPIPE",0);
  	exit(5);
--- 259,265 ----
      /*
       * register signal handler for SIGPIPE.
       */
! #if !defined(LATTICE) && defined(SIGPIPE) && !defined(WIN)
      if (signal(SIGPIPE, sigpipe_handler) == SIGNAL_ERROR) {
  	debug_perror("init_user_conn: signal SIGPIPE",0);
  	exit(5);
***************
*** 282,287 ****
--- 286,298 ----
  
  void init_addr_server P2(char *, hostname, int, addr_server_port)
  {
+ // This is what starts Winsock functions	
+ #ifdef WIN
+ 	WORD wVersionRequested = MAKEWORD(1,1);       
+ 	WSADATA wsaData;                              
+ 	WSAStartup(wVersionRequested, &wsaData);
+ #endif
+ 	
      struct sockaddr_in server;
      struct hostent *hp;
      int server_fd;
***************
*** 291,296 ****
--- 302,309 ----
      if (addr_server_fd >= 0)
  	return;
  
+ printf ("Hostname = %s ",hostname );
+     
      if (!hostname) return;
  
      /*
***************
*** 353,358 ****
--- 366,377 ----
  	socket_perror("init_addr_server: set_socket_nonblocking 1", 0);
  	return;
      }
+ //Close Winsock Functions
+ #ifdef WIN
+ 	WSACleanup();
+ #endif
+ 
+ 
  }
  
  /*
diff -c -r --new-file v22.2b14/comm.h ../mudos_v22.2b14_mingw/comm.h
*** v22.2b14/comm.h	Fri Dec 12 12:08:00 2003
--- ../mudos_v22.2b14_mingw/comm.h	Sat Jun  3 22:21:56 2006
***************
*** 9,14 ****
--- 9,15 ----
  #include "lpc_incl.h"
  #include "network_incl.h"
  
+ #define SIGPIPE 3
  #define MAX_TEXT                   2048
  #define MAX_SOCKET_PACKET_SIZE     1024
  #define DESIRED_SOCKET_PACKET_SIZE 800
diff -c -r --new-file v22.2b14/configuration ../mudos_v22.2b14_mingw/configuration
*** v22.2b14/configuration	Wed Dec 31 19:00:00 1969
--- ../mudos_v22.2b14_mingw/configuration	Sat Jun  3 21:48:04 2006
***************
*** 0 ****
--- 1 ----
+ Machine CYGWIN_NT-5.0 ARIZONA 1.5.18(0.132/4/2) 2005-07-02 20:30 i686 unknown unknown Cygwin Configure version 5
diff -c -r --new-file v22.2b14/configure ../mudos_v22.2b14_mingw/configure
*** v22.2b14/configure	Wed Dec 31 19:00:00 1969
--- ../mudos_v22.2b14_mingw/configure	Mon May 15 11:30:44 2006
***************
*** 0 ****
--- 1,2 ----
+ #!/bin/sh
+ ./build.MudOS develop
diff -c -r --new-file v22.2b14/configure.h ../mudos_v22.2b14_mingw/configure.h
*** v22.2b14/configure.h	Wed Dec 31 19:00:00 1969
--- ../mudos_v22.2b14_mingw/configure.h	Tue Jun  6 19:27:52 2006
***************
*** 0 ****
--- 1,28 ----
+ #define INCL_STDLIB_H
+ #define INCL_TIME_H
+ #define INCL_FCNTL_H
+ #define INCL_DOS_H
+ #define INCL_SYS_STAT_H
+ #define INCL_LIMITS_H
+ #define USE_STRUCT_DIRENT
+ #define INCL_STDARG_H
+ #define HAS_MEMMOVE
+ #define RAND
+ #define HAS_STRERROR
+ #define HAS_GETCWD
+ 
+ #define SIG_ERR -1
+ #define SIGNAL_ERROR -1
+ /* #define WIN32 */
+ 
+ #define SIZEOF_INT 4
+ #define SIZEOF_PTR 4
+ #define SIZEOF_SHORT 2
+ #define SIZEOF_FLOAT 4
+ #define SIZEOF_INT 4
+ #define SIZEOF_PTR 4
+ #define SIZEOF_SHORT 2
+ #define SIZEOF_FLOAT 4
+ /* #define UINT32 unsigned long  */
+ #define CONFIGURE_VERSION	5
+ 
diff -c -r --new-file v22.2b14/crc32.c ../mudos_v22.2b14_mingw/crc32.c
*** v22.2b14/crc32.c	Fri Dec 12 12:08:00 2003
--- ../mudos_v22.2b14_mingw/crc32.c	Sun Jun  4 19:58:18 2006
***************
*** 10,19 ****
     by others.  See the comments in the file (crctab.h) for the credits.
  */
  
- UINT32
  compute_crc32 P2(unsigned char *, buf, int, len)
  {
!     register UINT32 crc = 0xFFFFFFFFL;
      register int j;
  
      j = len;
--- 10,18 ----
     by others.  See the comments in the file (crctab.h) for the credits.
  */
  
  compute_crc32 P2(unsigned char *, buf, int, len)
  {
!     register unsigned int crc = 0xFFFFFFFFL;
      register int j;
  
      j = len;
diff -c -r --new-file v22.2b14/crc32.h ../mudos_v22.2b14_mingw/crc32.h
*** v22.2b14/crc32.h	Fri Dec 12 12:08:00 2003
--- ../mudos_v22.2b14_mingw/crc32.h	Sat Jun  3 22:41:28 2006
***************
*** 4,9 ****
  /*
   * crc32.c
   */
! UINT32 compute_crc32 PROT((unsigned char *, int));
! 
  #endif
--- 4,9 ----
  /*
   * crc32.c
   */
! /* UINT32 compute_crc32 PROT((unsigned char *, int)); */
! int compute_crc32 PROT((unsigned char *, int));
  #endif
diff -c -r --new-file v22.2b14/crypt.c ../mudos_v22.2b14_mingw/crypt.c
*** v22.2b14/crypt.c	Fri Dec 12 12:08:00 2003
--- ../mudos_v22.2b14_mingw/crypt.c	Tue Jun  6 20:26:22 2006
***************
*** 82,88 ****
  /* Table T constructed from a sine function, mentioned in RFC, section 3.4.
   * Table T[i], 1 <= i <= 64,    = trunc (4294967296 * |sin i|).
   */
! UINT32 T[64] = {
          0xd76aa478,0xe8c7b756,0x242070db,0xc1bdceee,0xf57c0faf,0x4787c62a,
          0xa8304613,0xfd469501,0x698098d8,0x8b44f7af,0xffff5bb1,0x895cd7be,
          0x6b901122,0xfd987193,0xa679438e,0x49b40821,0xf61e2562,0xc040b340,
--- 82,88 ----
  /* Table T constructed from a sine function, mentioned in RFC, section 3.4.
   * Table T[i], 1 <= i <= 64,    = trunc (4294967296 * |sin i|).
   */
! unsigned long T[64] = {
          0xd76aa478,0xe8c7b756,0x242070db,0xc1bdceee,0xf57c0faf,0x4787c62a,
          0xa8304613,0xfd469501,0x698098d8,0x8b44f7af,0xffff5bb1,0x895cd7be,
          0x6b901122,0xfd987193,0xa679438e,0x49b40821,0xf61e2562,0xc040b340,
***************
*** 97,105 ****
  };
  
  /* This function returns success, i.e. 0 on error. */
! int MD5Digest(  CONST byte *buf, /* Buffer to be digested.               */
!                 UINT32  buflen,    /* Length of the buffer in bytes.       */
!                 byte *Digest     /* Output area: 16 raw bytes.           */
               )
  {
  
--- 97,105 ----
  };
  
  /* This function returns success, i.e. 0 on error. */
! int MD5Digest(  BytE *buf, /* Buffer to be digested.               */
!                 unsigned long  buflen,    /* Length of the buffer in bytes.       */
!                 BytE *Digest     /* Output area: 16 raw bytes.           */
               )
  {
  
***************
*** 108,115 ****
  #define OC 0x98badcfe
  #define OD 0x10325476
  
!         UINT32 A = OA, B = OB, C = OC, D = OD;
!         static UINT32 Block[16];  /* One block: 512 bits. */
  
          if(buflen > MD5_MAXLEN) return 0;       /* Too large. */
  
--- 108,115 ----
  #define OC 0x98badcfe
  #define OD 0x10325476
  
!         unsigned long A = OA, B = OB, C = OC, D = OD;
!         static unsigned long Block[16];  /* One block: 512 bits. */
  
          if(buflen > MD5_MAXLEN) return 0;       /* Too large. */
  
***************
*** 174,180 ****
   *
   * Hell, perhaps sprintf (printing in hex) should be used..
   */
! int encode(byte *where, CONST byte *data, int inputbytes)
  {
          int i, w = 0;
  
--- 174,180 ----
   *
   * Hell, perhaps sprintf (printing in hex) should be used..
   */
! int encode( unsigned char *whEre, BytE *data, int inputbytes )
  {
          int i, w = 0;
  
***************
*** 182,189 ****
  #define ENCODER_OFFSET  96
  
          for(i = 0; i < inputbytes; i++) {
!                 where[i*2]      = ENCODER_OFFSET + ( data[i]       & 0x0f);
!                 where[1+(i*2)]  = ENCODER_OFFSET + ((data[i] >> 4) & 0x0f);
                  w += 2;
          }
  
--- 182,189 ----
  #define ENCODER_OFFSET  96
  
          for(i = 0; i < inputbytes; i++) {
!                 whEre[i*2]      = ENCODER_OFFSET + ( data[i]       & 0x0f);
!                 whEre[1+(i*2)]  = ENCODER_OFFSET + ((data[i] >> 4) & 0x0f);
                  w += 2;
          }
  
***************
*** 191,208 ****
  }
  
  /* Gets raw data from printable string; opposite of encode().  */
! void decode(byte *where, CONST byte *string, int stringbytes)
  {
          int i;
  
          for(i = 0; i < stringbytes; i+=2)
!             where[i/2] = (string[i] & 0x0f) | ((string[i+1] & 0x0f) << 4);
  }
  
  /* If there is a valid salt in the input, copy it. Otherwise,
   * generate a new one.
   */
! void getsalt(byte *to, CONST byte *from)
  {
          int i;
  
--- 191,208 ----
  }
  
  /* Gets raw data from printable string; opposite of encode().  */
! void decode( unsigned char *whEre, BytE *string, int stringbytes)
  {
          int i;
  
          for(i = 0; i < stringbytes; i+=2)
!             whEre[i/2] = (string[i] & 0x0f) | ((string[i+1] & 0x0f) << 4);
  }
  
  /* If there is a valid salt in the input, copy it. Otherwise,
   * generate a new one.
   */
! void getsalt(BytE *to, BytE *from)
  {
          int i;
  
***************
*** 212,218 ****
  #define MAGIC_SALTSEP   '!'
  
          if(from) {
!             byte Digest[16];
  
              if(strlen((char *)from) > MD5_SALTLEN * 2) {
                  if(from[2 * MD5_SALTLEN] == MAGIC_SALTSEP) {
--- 212,218 ----
  #define MAGIC_SALTSEP   '!'
  
          if(from) {
!             BytE Digest[16];
  
              if(strlen((char *)from) > MD5_SALTLEN * 2) {
                  if(from[2 * MD5_SALTLEN] == MAGIC_SALTSEP) {
***************
*** 256,262 ****
          return;
  }
  
! void crunchbuffer(byte *buf,            /* Buffer to be crunched.       */
                    SIGNED int *len,      /* Length now used in buf.      */
                    char *addition,       /* What to add to buf.          */
                    SIGNED int addlen,    /* Length of addition.          */
--- 256,262 ----
          return;
  }
  
! void crunchbuffer(BytE *buf,            /* Buffer to be crunched.       */
                    SIGNED int *len,      /* Length now used in buf.      */
                    char *addition,       /* What to add to buf.          */
                    SIGNED int addlen,    /* Length of addition.          */
***************
*** 268,274 ****
          used = *len;
          
          while(addlen > 0) {
!                 byte Digest[16];
                  int crunched;
  
                  /* Reduce `buf' by digesting it. */
--- 268,274 ----
          used = *len;
          
          while(addlen > 0) {
!                 BytE Digest[16];
                  int crunched;
  
                  /* Reduce `buf' by digesting it. */
***************
*** 307,320 ****
   * At this point, custom_crypt() should never return NULL.
   *
   */
! char *custom_crypt(CONST char *key, CONST char *salt, byte *rawout)
  {
!         byte Digest[16];
!         static byte buffer[MD5_MAXLEN],
                      abuffer[MD5_MAXLEN],
                      thesalt[MD5_SALTLEN];
          SIGNED int used = 0, len, i;
!         static byte /* encode()d salt, encode()d digest, salt seperator
                       * and null terminating byte:
                       */
                      ret[(MD5_SALTLEN*2) + 1 + (sizeof(Digest)*2) + 1];
--- 307,321 ----
   * At this point, custom_crypt() should never return NULL.
   *
   */
! 
! char *custom_crypt(char *key, char *salt, unsigned char *rawout)
  {
!         BytE Digest[16];
!         static BytE buffer[MD5_MAXLEN],
                      abuffer[MD5_MAXLEN],
                      thesalt[MD5_SALTLEN];
          SIGNED int used = 0, len, i;
!         static BytE /* encode()d salt, encode()d digest, salt seperator
                       * and null terminating byte:
                       */
                      ret[(MD5_SALTLEN*2) + 1 + (sizeof(Digest)*2) + 1];
***************
*** 322,328 ****
          /* Obtain the salt we have to use (either given in salt
           * arg or randomly generated one).
           */
!         getsalt(thesalt, (byte *)salt);
  
  #define ADDBUFFER(b, l) if(used + (l) > sizeof(buffer)) \
  	                     crunchbuffer(buffer, &used, (char *)(b), (l), sizeof(buffer)); \
--- 323,329 ----
          /* Obtain the salt we have to use (either given in salt
           * arg or randomly generated one).
           */
!         getsalt(thesalt, (BytE *)salt);
  
  #define ADDBUFFER(b, l) if(used + (l) > sizeof(buffer)) \
  	                     crunchbuffer(buffer, &used, (char *)(b), (l), sizeof(buffer)); \
diff -c -r --new-file v22.2b14/crypt.h ../mudos_v22.2b14_mingw/crypt.h
*** v22.2b14/crypt.h	Fri Dec 12 12:08:00 2003
--- ../mudos_v22.2b14_mingw/crypt.h	Tue Jun  6 20:25:48 2006
***************
*** 21,30 ****
   * a salt from an unrecognized string. Any value returned
   * from md5crypt("anything", NULL, NULL) is valid here.
   */
! #define MD5_VALID_SALT "anhlklck!ggddl`l`lg`bjblodlfcljdcnhffib`c"
  
! typedef unsigned char byte;
  
! char *custom_crypt(CONST char *key, CONST char *salt, byte *rawout);
  
  #endif
--- 21,41 ----
   * a salt from an unrecognized string. Any value returned
   * from md5crypt("anything", NULL, NULL) is valid here.
   */
! #define MD5_VALID_SALT "anhlklck!ggddl`l`lg`bjblodlfcljdcnhffib`c" 
! /* #define MD5_VALID_SALT "anhlklckggddlllgbjblodlfcljdcnhffibc" */
  
! typedef unsigned char BytE;
  
! /* char *custom_crypt(CONST char *key, CONST char *salt, unsigned char *rawout); */
! 
! char *custom_crypt(char *key, char *salt, unsigned char *rawout); 
! 
! /* int MD5Digest(  CONST BytE *buf, unsigned long  buflen, BytE *Digest); */
! 
! int MD5Digest PROT((  BytE *, unsigned long  buflen, BytE *));
! int encode PROT(( unsigned char *, BytE *, int ));
! void decode PROT(( unsigned char *, BytE *, int ));
! void getsalt PROT((BytE *, BytE * ));
! void crunchbuffer PROT((BytE *buf, SIGNED int *, char *, SIGNED int, int ));
  
  #endif
diff -c -r --new-file v22.2b14/efuns_port.c ../mudos_v22.2b14_mingw/efuns_port.c
*** v22.2b14/efuns_port.c	Fri Dec 12 12:08:00 2003
--- ../mudos_v22.2b14_mingw/efuns_port.c	Tue Jun  6 20:36:04 2006
***************
*** 14,19 ****
--- 14,21 ----
  #include "include/localtime.h"
  #include "port.h"
  #include "crypt.h"
+ #include "crypt.h"
+ /* #include "include/wincrypt.h" */
  #include "efun_protos.h"
  
  /* get a value for CLK_TCK for use by times() */
***************
*** 55,79 ****
  #ifdef F_OLDCRYPT
  void
  f_oldcrypt PROT((void)) {
!     char *res, salt[3];
!     char *choice =
!     "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ./";
! 
!     if (sp->type == T_STRING && SVALUE_STRLEN(sp) >= 2) {
!         salt[0] = sp->u.string[0];
!         salt[1] = sp->u.string[1];
!         free_string_svalue(sp--);
!     } else {
!         salt[0] = choice[random_number(strlen(choice))];
!         salt[1] = choice[random_number(strlen(choice))];
!         pop_stack();
!     }
!     salt[2] = 0;
!     res = string_copy(OLDCRYPT(sp->u.string, salt), "f_crypt");
!     free_string_svalue(sp);
!     sp->subtype = STRING_MALLOC;
!     sp->u.string = res;
! }
  #endif
  
  #ifdef F_LOCALTIME
--- 57,82 ----
  #ifdef F_OLDCRYPT
  void
  f_oldcrypt PROT((void)) {
! /*     char *res, salt[3];
! *     char *choice =
! *     "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ./";
! * 
! *     if (sp->type == T_STRING && SVALUE_STRLEN(sp) >= 2) {
! *         salt[0] = sp->u.string[0];
! *         salt[1] = sp->u.string[1];
! *         free_string_svalue(sp--);
! *     } else {
! *         salt[0] = choice[random_number(strlen(choice))];
! *         salt[1] = choice[random_number(strlen(choice))];
! *         pop_stack();
! *     }
! *     salt[2] = 0;
! *     res = string_copy(OLDCRYPT(sp->u.string, salt), "f_crypt");
! *     free_string_svalue(sp);
! *     sp->subtype = STRING_MALLOC;
! *     sp->u.string = res;
! */
!  }
  #endif
  
  #ifdef F_LOCALTIME
diff -c -r --new-file v22.2b14/lex.c ../mudos_v22.2b14_mingw/lex.c
*** v22.2b14/lex.c	Fri Dec 12 12:08:00 2003
--- ../mudos_v22.2b14_mingw/lex.c	Sun Jun  4 19:58:18 2006
***************
*** 18,24 ****
  #include "file_incl.h"
  #include "lpc_incl.h"
  #include "compiler.h"
! #ifdef WIN32
  #  include "grammar_tab.h"
  #else
  #  include "grammar.tab.h"
--- 18,24 ----
  #include "file_incl.h"
  #include "lpc_incl.h"
  #include "compiler.h"
! #ifndef WIN32
  #  include "grammar_tab.h"
  #else
  #  include "grammar.tab.h"
diff -c -r --new-file v22.2b14/lint.h ../mudos_v22.2b14_mingw/lint.h
*** v22.2b14/lint.h	Fri Dec 12 12:08:00 2003
--- ../mudos_v22.2b14_mingw/lint.h	Wed May 24 10:32:46 2006
***************
*** 75,81 ****
  /* SGI is missing some prototypes in the .h files */
  #ifdef PEDANTIC
  #  ifdef sgi
!      void ualarm PROT((int, int));
  #  endif
  #endif
  
--- 75,82 ----
  /* SGI is missing some prototypes in the .h files */
  #ifdef PEDANTIC
  #  ifdef sgi
! /* If using some old-ass IRIX and it won't compile, uncomment the next line */
! /*     void ualarm PROT((int, int)); */
  #  endif
  #endif
  
diff -c -r --new-file v22.2b14/local_options ../mudos_v22.2b14_mingw/local_options
*** v22.2b14/local_options	Wed Dec 31 19:00:00 1969
--- ../mudos_v22.2b14_mingw/local_options	Tue Jun  6 19:22:30 2006
***************
*** 0 ****
--- 1,99 ----
+ #undef SYSMALLOC
+ #define SMALLOC
+ #undef BSDMALLOC
+ #undef WRAPPEDMALLOC
+ #define DEBUGMALLOC
+ #undef SBRK_OK
+ #define DO_MSTATS
+ #define DEBUGMALLOC_EXTENSIONS
+ #define CHECK_MEMORY
+ #undef HAS_STATUS_TYPE
+ #undef COMPRESS_FUNCTION_TABLES
+ #define SANE_EXPLODE_STRING
+ #undef REVERSIBLE_EXPLODE_STRING
+ #undef CAST_CALL_OTHERS
+ #define NONINTERACTIVE_STDERR_WRITE
+ #define NO_LIGHT
+ #undef NO_ADD_ACTION
+ #undef NO_SNOOP
+ #undef NO_ENVIRONMENT
+ #define NO_WIZARDS
+ #undef OLD_TYPE_BEHAVIOR
+ #undef OLD_RANGE_BEHAVIOR
+ #undef OLD_ED
+ #undef SENSIBLE_MODIFIERS
+ #define CUSTOM_CRYPT
+ #undef COMPAT_32
+ #define STRING_STATS
+ #define ARRAY_STATS
+ #define LOG_CATCHES
+ #undef ARGUMENTS_IN_TRACEBACK
+ #undef LOCALS_IN_TRACEBACK
+ #define MUDLIB_ERROR_HANDLER
+ #define CONFIG_FILE_DIR "./"
+ #define DEFAULT_PRAGMAS PRAGMA_STRICT_TYPES
+ #define SUPPRESS_ARGUMENT_WARNINGS
+ #undef NO_RESETS
+ #define LAZY_RESETS
+ #define SAVE_EXTENSION ".o"
+ #define NO_ANSI
+ #define STRIP_BEFORE_PROCESS_INPUT
+ #define OPCPROF
+ #undef OPCPROF_2D
+ #define TRAP_CRASHES
+ #define THIS_PLAYER_IN_CALL_OUT
+ #define CALLOUT_HANDLES
+ #undef FLUSH_OUTPUT_IMMEDIATELY
+ #define PRIVS
+ #define INTERACTIVE_CATCH_TELL
+ #define RESTRICTED_ED
+ #undef NO_SHADOWS
+ #undef SNOOP_SHADOWED
+ #define RECEIVE_SNOOP
+ #undef PROFILE_FUNCTIONS
+ #undef NO_BUFFER_TYPE
+ #undef BINARIES
+ #define ARRAY_RESERVED_WORD
+ #undef REF_RESERVED_WORD
+ #define PACKAGE_CONTRIB
+ #define PACKAGE_DEVELOP
+ #define PACKAGE_MATH
+ #define PACKAGE_MATRIX
+ #define PACKAGE_MUDLIB_STATS
+ #define PACKAGE_SOCKETS
+ #define PACKAGE_PARSER
+ #undef PACKAGE_EXTERNAL
+ #ifdef PACKAGE_EXTERNAL
+ #define NUM_EXTERNAL_CMDS 5
+ #endif
+ #undef PACKAGE_DB
+ #ifdef PACKAGE_DB
+ #undef USE_MSQL 1		/* MiniSQL, it's small; it's free */
+ #define USE_MYSQL 2		/* MySQL, bigger; it's free */
+ #define DEFAULT_DB USE_MYSQL	/* default database */
+ #endif
+ #undef PACKAGE_UIDS
+ #undef AUTO_SETEUID
+ #undef AUTO_TRUST_BACKBONE
+ #undef USE_32BIT_ADDRESSES
+ #define HEARTBEAT_INTERVAL 1000000
+ #define CALLOUT_CYCLE_SIZE 32
+ #define LARGEST_PRINTABLE_STRING 8192
+ #define MESSAGE_BUFFER_SIZE 4096
+ #define APPLY_CACHE_BITS 11
+ #define CACHE_STATS
+ #undef TRACE
+ #undef LPC_TO_C
+ #undef RUNTIME_LOADING
+ #undef TRACE_CODE
+ #define HEART_BEAT_CHUNK      32
+ #undef GET_CHAR_IS_BUFFERED
+ #define SMALL_STRING_SIZE     100
+ #define LARGE_STRING_SIZE     1000
+ #define MAX_SAVE_SVALUE_DEPTH 25
+ #define CFG_MAX_LOCAL_VARIABLES		25
+ #define CFG_EVALUATOR_STACK_SIZE 	1000
+ #define CFG_MAX_CALL_DEPTH		75
+ #define CFG_LIVING_HASH_SIZE		256
+ #define NEXT_MALLOC_DEBUG
+ 
diff -c -r --new-file v22.2b14/mudlib/GNUmakefile ../mudos_v22.2b14_mingw/mudlib/GNUmakefile
*** v22.2b14/mudlib/GNUmakefile	Fri Dec 12 12:07:58 2003
--- ../mudos_v22.2b14_mingw/mudlib/GNUmakefile	Tue Jun  6 20:32:18 2006
***************
*** 1,17 ****
! 
! OBJ=interface.$(O)
! SRC=interface.c
! 
! OBJ=$(addprefix $(OBJDIR)/,$(subst .c,.o,$(SRC)))
! 
! $(OBJDIR)/%.o: %.c
! 	$(CC) -I$(OBJDIR) -I.. $(CFLAGS) -o $@ -c $<
! 
! all: $(OBJ)
! 	ar rcu mudlib.$(A) $(OBJ)
! 	$(RANLIB) mudlib.$(A)
! 
! clean:
! 	-rm -f *.$(O)
! 	-rm -f mudlib.$(A)
! 
--- 1,17 ----
! 
! OBJ=interface.$(O)
! SRC=interface.c
! 
! OBJ=$(addprefix $(OBJDIR)/,$(subst .c,.o,$(SRC)))
! 
! $(OBJDIR)/%.o: %.c
! 	$(CC) -I$(OBJDIR) -I.. $(CFLAGS) -o $@ -c $<
! 
! all: $(OBJ)
! 	ar rcu mudlib.$(A) $(OBJ)
! 	$(RANLIB) mudlib.$(A)
! 
! clean:
! 	-rm -f *.$(O)
! 	-rm -f mudlib.$(A)
! 
diff -c -r --new-file v22.2b14/mudlib/Makefile ../mudos_v22.2b14_mingw/mudlib/Makefile
*** v22.2b14/mudlib/Makefile	Fri Dec 12 12:07:58 2003
--- ../mudos_v22.2b14_mingw/mudlib/Makefile	Tue Jun  6 20:32:18 2006
***************
*** 1,15 ****
! 
! OBJ=interface.$(O)
! SRC=interface.c
! 
! .c.$(O):
! 	$(CC) $(CFLAGS) -I.. -c $*.c
! 
! all: $(OBJ)
! 	ar rcu mudlib.$(A) $(OBJ)
! 	$(RANLIB) mudlib.$(A)
! 
! clean:
! 	-rm -f *.$(O)
! 	-rm -f mudlib.$(A)
! 
--- 1,15 ----
! 
! OBJ=interface.$(O)
! SRC=interface.c
! 
! .c.$(O):
! 	$(CC) $(CFLAGS) -I.. -c $*.c
! 
! all: $(OBJ)
! 	ar rcu mudlib.$(A) $(OBJ)
! 	$(RANLIB) mudlib.$(A)
! 
! clean:
! 	-rm -f *.$(O)
! 	-rm -f mudlib.$(A)
! 
diff -c -r --new-file v22.2b14/network_incl.h ../mudos_v22.2b14_mingw/network_incl.h
*** v22.2b14/network_incl.h	Fri Dec 12 12:08:00 2003
--- ../mudos_v22.2b14_mingw/network_incl.h	Sun Jun  4 14:10:02 2006
***************
*** 5,11 ****
  #  include <sys/types.h>
  #endif
  #ifdef INCL_SYS_IOCTL_H
! #  include <sys/ioctl.h>
  #endif
  #ifdef INCL_SYS_SOCKET_H
  #  include <sys/socket.h>
--- 5,11 ----
  #  include <sys/types.h>
  #endif
  #ifdef INCL_SYS_IOCTL_H
! #  include "/usr/include/sys/ioctl.h"
  #endif
  #ifdef INCL_SYS_SOCKET_H
  #  include <sys/socket.h>
diff -c -r --new-file v22.2b14/options_incl.h ../mudos_v22.2b14_mingw/options_incl.h
*** v22.2b14/options_incl.h	Wed Dec 31 19:00:00 1969
--- ../mudos_v22.2b14_mingw/options_incl.h	Tue Jun  6 20:32:14 2006
***************
*** 0 ****
--- 1 ----
+ #include "local_options"
diff -c -r --new-file v22.2b14/packages/contrib.c ../mudos_v22.2b14_mingw/packages/contrib.c
*** v22.2b14/packages/contrib.c	Fri Dec 12 12:07:58 2003
--- ../mudos_v22.2b14_mingw/packages/contrib.c	Tue Oct 25 21:55:10 2005
***************
*** 1050,1058 ****
          break;
      case 'R':
      case 'r':
!         if (!strcasecmp(rel + 1, "oof"))
              found = PLURAL_SUFFIX;
          break;
      case 'S':
      case 's':
          if (!strcasecmp(rel + 1, "niff")) {
--- 1050,1063 ----
          break;
      case 'R':
      case 'r':
!         if (!strcasecmp(rel + 1, "oof")) {
              found = PLURAL_SUFFIX;
          break;
+ 	}
+ 	if (!strcasecmp(rel + 1, "emains")) {
+ 		found = PLURAL_SAME;
+ 		break;
+ 	}
      case 'S':
      case 's':
          if (!strcasecmp(rel + 1, "niff")) {
diff -c -r --new-file v22.2b14/socket_ctrl.c ../mudos_v22.2b14_mingw/socket_ctrl.c
*** v22.2b14/socket_ctrl.c	Fri Dec 12 12:08:00 2003
--- ../mudos_v22.2b14_mingw/socket_ctrl.c	Sun Jun  4 20:02:24 2006
***************
*** 1,3 ****
--- 1,5 ----
+ #define SIOCSPGRP 0x8902 
+ #define ioctl ioctlsocket
  #include "std.h"
  #include "socket_ctrl.h"
  #include "network_incl.h"
***************
*** 5,10 ****
--- 7,17 ----
  #include "file_incl.h"
  #include "file.h"
  
+ /* int ioctl(int x, int y, int z){
+ * return 1;
+ * }
+ */
+ 
  /*
    ioctl.c: part of the MudOS release -- Truilkan@TMI
  
***************
*** 18,32 ****
  
  INLINE int set_socket_owner P2(int, fd, int, which)
  {
! #ifdef OLD_ULTRIX
!     return fcntl(fd, F_SETOWN, which);
! #else
! #ifdef WINSOCK
!     return 1; /* FIXME */
! #else
!     return ioctl(fd, SIOCSPGRP, &which);
! #endif
! #endif
  }
  
  /*
--- 25,33 ----
  
  INLINE int set_socket_owner P2(int, fd, int, which)
  {
! 
!     /* return ioctl(fd, SIOCSPGRP, &which); */
!     return ioctl(fd, SIOCSPGRP, &which); 
  }
  
  /*
diff -c -r --new-file v22.2b14/socket_ctrl.h ../mudos_v22.2b14_mingw/socket_ctrl.h
*** v22.2b14/socket_ctrl.h	Fri Dec 12 12:08:00 2003
--- ../mudos_v22.2b14_mingw/socket_ctrl.h	Sun Jun  4 19:50:58 2006
***************
*** 7,16 ****
  int set_socket_nonblocking PROT((int, int));
  int set_socket_owner PROT((int, int));
  int set_socket_async PROT((int, int));
  
! #ifdef WIN32
  void SocketPerror PROT((char *, char *));
  void CDECL cleanup_sockets PROT((void));
! #endif
  
  #endif
--- 7,19 ----
  int set_socket_nonblocking PROT((int, int));
  int set_socket_owner PROT((int, int));
  int set_socket_async PROT((int, int));
+ /* int ioctl PROT((int, int)); */
+ /* unsigned int ioctl(int fd, int SIOCSPGRP, int which); */
+ /* int ioctl (int __fd, int __cmd, ...); */
  
! /* #ifdef WIN32 */
  void SocketPerror PROT((char *, char *));
  void CDECL cleanup_sockets PROT((void));
! /* #endif */
  
  #endif
diff -c -r --new-file v22.2b14/socket_efuns.c ../mudos_v22.2b14_mingw/socket_efuns.c
*** v22.2b14/socket_efuns.c	Fri Dec 12 12:08:00 2003
--- ../mudos_v22.2b14_mingw/socket_efuns.c	Sun Jun  4 19:58:18 2006
***************
*** 1188,1203 ****
   */
  int get_socket_address P4(int, fd, char *, addr, int *, port, int, local)
  {
!     struct sockaddr_in *addr_in;
  
      if (fd < 0 || fd >= max_lpc_socks) {
  	addr[0] = '\0';
  	*port = 0;
  	return EEFDRANGE;
      }
!     addr_in = &(local ? lpc_socks[fd].l_addr : lpc_socks[fd].r_addr);
!     *port = (int) ntohs(addr_in->sin_port);
!     strcpy(addr, inet_ntoa(addr_in->sin_addr));
      return EESUCCESS;
  }
  
--- 1188,1205 ----
   */
  int get_socket_address P4(int, fd, char *, addr, int *, port, int, local)
  {
!     struct sockaddr_in *addy_in;
  
      if (fd < 0 || fd >= max_lpc_socks) {
  	addr[0] = '\0';
  	*port = 0;
  	return EEFDRANGE;
      }
!     /* addy_in =  &(local ? lpc_socks[fd].l_addr : lpc_socks[fd].r_addr); */
! local ? lpc_socks[fd].l_addr : lpc_socks[fd].r_addr;
! addy_in =  &local;
!     *port = (int) ntohs(addy_in->sin_port);
!     strcpy(addr, inet_ntoa(addy_in->sin_addr));
      return EESUCCESS;
  }
  
diff -c -r --new-file v22.2b14/strfuncs.c ../mudos_v22.2b14_mingw/strfuncs.c
*** v22.2b14/strfuncs.c	Fri Dec 12 12:08:00 2003
--- ../mudos_v22.2b14_mingw/strfuncs.c	Sun Jun  4 19:58:18 2006
***************
*** 9,90 ****
  			islower(x) ? (x) + 10 - 'a' : (x) + 10 - 'A')
  #define MBASE	('z' - 'a' + 1 + 10)
  
- long strtol P3(register char *, str, char **, ptr, register int, base)
- {
-     register long val;
-     register int c;
-     int xx, neg = 0;
- 
-     if (ptr != (char **) 0)
- 	*ptr = str;		/* in case no number is formed */
-     if (base < 0 || base > MBASE)
- 	return (0);		/* base is invalid -- should be a fatal error */
-     if (!isalnum(c = *str)) {
- 	while (isspace(c))
- 	    c = *++str;
- 	switch (c) {
- 	case '-':
- 	    neg++;
- 	case '+':		/* fall-through */
- 	    c = *++str;
- 	}
-     }
-     if (base == 0)
- 	if (c != '0')
- 	    base = 10;
- 	else if (str[1] == 'x' || str[1] == 'X')
- 	    base = 16;
- 	else
- 	    base = 8;
-     /*
-      * for any base > 10, the digits incrementally following 9 are assumed to
-      * be "abc...z" or "ABC...Z"
-      */
-     if (!isalnum(c) || (xx = DIGIT(c)) >= base)
- 	return (0);		/* no number formed */
-     if (base == 16 && c == '0' && isxdigit(str[2]) &&
- 	(str[1] == 'x' || str[1] == 'X'))
- 	c = *(str += 2);	/* skip over leading "0x" or "0X" */
-     for (val = -DIGIT(c); isalnum(c = *++str) && (xx = DIGIT(c)) < base;)
- 	/* accumulate neg avoids surprises near MAXLONG */
- 	val = base * val - xx;
-     if (ptr != (char **) 0)
- 	*ptr = str;
-     return (neg ? val : -val);
- }
- 
- strcspn P2(register char *, s, char *, set)
- {
-     register char *t;
-     register int count = 0;
- 
-     while (*s) {
- 	t = set;
- 	while (*t && (*s != *t))
- 	    t++;
- 	if (!*t) {
- 	    s++;
- 	    count++;
- 	} else
- 	    break;
-     }
- 
-     return (count);
- }
- 
- 
- INLINE char *memset P3(char *, s, int, c, int, n)
- {
-     if (c == 0)
- 	bzero(s, n);
-     else {
- 	debug_message("Failed in memset\n");
- 	exit(1);
-     }
- }
- 
- INLINE char *memcpy P3(char *, b, char *, a, int, s)
- {
-     bcopy(a, b, s);
-     return b;
- }
--- 9,11 ----
diff -c -r --new-file v22.2b14/system_libs ../mudos_v22.2b14_mingw/system_libs
*** v22.2b14/system_libs	Wed Dec 31 19:00:00 1969
--- ../mudos_v22.2b14_mingw/system_libs	Tue Jun  6 19:23:18 2006
***************
*** 0 ****
--- 1 ----
+  -lwsock32 -lws2_32
diff -c -r --new-file v22.2b14/ualarm.c ../mudos_v22.2b14_mingw/ualarm.c
*** v22.2b14/ualarm.c	Fri Dec 12 12:08:00 2003
--- ../mudos_v22.2b14_mingw/ualarm.c	Sun Jun  4 19:58:18 2006
***************
*** 1,4 ****
--- 1,5 ----
  #include "std.h"
+ #define ITIMER_REAL 0
  #ifndef HAS_UALARM
  /*
   * Copyright (c) 1985 Regents of the University of California.
***************
*** 33,63 ****
   * SUCH DAMAGE.
   */
  
  #if defined(LIBC_SCCS) && !defined(lint)
  static char sccsid[] = "@(#)ualarm.c	5.5 (Berkeley) 2/23/91";
  #endif				/* LIBC_SCCS and not lint */
  
  #define	USPS	1000000		/* # of microseconds in a second */
  
! unsigned ualarm PROT((register unsigned, register unsigned));
  
  /*
   * Generate a SIGALRM signal in ``usecs'' microseconds.
   * If ``reload'' is non-zero, keep generating SIGALRM
   * every ``reload'' microseconds after the first signal.
   */
! unsigned ualarm P2(register unsigned, usecs, register unsigned, reload) {
!     struct itimerval new, old;
! 
!     new.it_interval.tv_usec = reload % USPS;
!     new.it_interval.tv_sec = reload / USPS;
  
!     new.it_value.tv_usec = usecs % USPS;
!     new.it_value.tv_sec = usecs / USPS;
! 
!     if (setitimer(ITIMER_REAL, &new, &old) == 0)
! 	return old.it_value.tv_sec * USPS + old.it_value.tv_usec;
      /* else */
!     return -1;
  }
  #endif
--- 34,79 ----
   * SUCH DAMAGE.
   */
  
+ /*
+ * struct timeval {
+ * long int tv_sec;
+ * long int tv_usec;
+ * }
+ * 
+ * struct itimerval {
+ * struct timeval it_interval, it_value;
+ * }
+ */
  #if defined(LIBC_SCCS) && !defined(lint)
  static char sccsid[] = "@(#)ualarm.c	5.5 (Berkeley) 2/23/91";
  #endif				/* LIBC_SCCS and not lint */
  
  #define	USPS	1000000		/* # of microseconds in a second */
  
! /* unsigned int ualarm PROT((register unsigned, register unsigned)); */
  
  /*
   * Generate a SIGALRM signal in ``usecs'' microseconds.
   * If ``reload'' is non-zero, keep generating SIGALRM
   * every ``reload'' microseconds after the first signal.
   */
! /* unsigned int ualarm P2(register unsigned, usecs, register unsigned, reload) {*/
! /* unsigned int ualarm (unsigned int usex, unsigned int reloady) { */
  
! /*int ualarm (int usex, int reloady) {
!     struct itimerval new, old;
! *
! *    new.it_interval.tv_usec = reloady % USPS;
! *    new.it_interval.tv_sec = reloady / USPS;
! *
! *    new.it_value.tv_usec = usex % USPS;
! *    new.it_value.tv_sec = usex / USPS;
! *
! *    if (setitimer(ITIMER_REAL, &new, &old) == 0)
! *	return old.it_value.tv_sec * USPS + old.it_value.tv_usec; 
! */
      /* else */
! /*    return -1; 
  }
+ */
  #endif