BLT_PATCHES -   04/29/2000

This patch file fixes stub support in Blt 2.4q. It should be
applied by running the "patch" program in the top-level
directory of a clean Blt2.4q release, using the command
"patch -p0 <BLT_PATCHES".

	Written by:	Jan Nijtmans
			CMG (Computer Management Group) Arnhem B.V.
			email: j.nijtmans@chello.nl (private)
			       jan.nijtmans@cmg.nl (work)
			url:   http://purl.oclc.org/net/nijtmans/

*** blt.spec.orig	Sat Apr 29 21:01:56 2000
--- blt.spec	Sat Apr 29 21:01:56 2000
***************
*** 0 ****
--- 1,80 ----
+ # $Id: blt.spec,v 1.14 2000/04/09 20:34:40 jfontain Exp $
+ 
+ %define	version	2.4q
+ %define	directory /opt/tcltk
+ 
+ Summary: BLT widget extension to Tcl/Tk scripting language development
+ Name: blt
+ Version: %{version}
+ Release: 4
+ Copyright: MIT
+ Group: Development/Tools
+ Source: ftp://ftp.tcltk.com/pub/blt/BLT%{version}.tar.gz
+ Patch: http://jfontain.free.fr/BLT%{version}.patch.gz
+ URL: http://www.tcltk.com/
+ Packager: Jean-Luc Fontaine <jfontain@free.fr>
+ BuildRequires: XFree86-libs >= 3.3.3, XFree86-devel >= 3.3.3, tcl >= 8.3.0, tk >= 8.3.0
+ AutoReqProv: no
+ Requires: tcl >= 8.1.0, tk >= 8.1.0
+ Buildroot: /var/tmp/%{name}%{version}
+ 
+ 
+ %description
+ BLT is a very powerful extension to Tk. It adds plotting widgets
+ (graph, barchart and stripchart), hierarchy tree and table, tab
+ notebook, table geometry manager, vector, background program
+ execution, busy utility, eps canvas item, drag and drop facility,
+ bitmap command and miscellaneous commands.
+ Note: this version is stubs enabled and therefore should be compatible
+ with Tcl/Tk versions after and including 8.1.0.
+ 
+ %prep
+ 
+ %setup -q -c
+ cd %{name}%{version}
+ %patch -p 0
+ 
+ %build
+ cd %{name}%{version}
+ ./configure --with-tcl=%{directory} --with-tk=%{directory} --enable-stubs
+ cd src/shared
+ make CFLAGS=-O2
+ 
+ %install
+ cd %{name}%{version}
+ DIRECTORY=$RPM_BUILD_ROOT%{directory}/lib/%{name}%{version}
+ install -d $DIRECTORY
+ install -m 755 src/shared/libBLT24.so $DIRECTORY
+ install -m 755 src/shared/libBLTlite24.so $DIRECTORY
+ install -m 644 src/shared/libBLTstub24.a $DIRECTORY
+ install -d $RPM_BUILD_ROOT%{directory}/include
+ install -m 644 src/blt.h $RPM_BUILD_ROOT%{directory}/include
+ install -m 644 library/blt* library/tclIndex $DIRECTORY
+ echo 'package ifneeded BLT 2.4 "load [file join $dir libBLTlite24.so]; if {[llength [info commands tk]]>0} {load [file join $dir libBLT24.so]}"' > $DIRECTORY/pkgIndex.tcl
+ cp -r library/dd_protocols $DIRECTORY
+ install -d $DIRECTORY/demos/images $DIRECTORY/demos/bitmaps/fish
+ install -d $DIRECTORY/demos/images $DIRECTORY/demos/bitmaps/hand
+ install -d $DIRECTORY/demos/images $DIRECTORY/demos/scripts
+ for file in `find demos/ -type f \! -name Makefile\*`; do
+     if [ -x $file ]; then
+         sed -e 's,\.\./src/bltwish,/opt/tcltk/bin/wish8.3,;' $file > $DIRECTORY/$file
+         chmod 755 $DIRECTORY/$file
+     else
+         install -m 644 $file $DIRECTORY/$file
+     fi
+ done
+ install -m 644 README INSTALL PROBLEMS ..
+ install -d ../html
+ install -m 644 html/*.html ../html
+ # link blt2.4? with blt2.4 so that tclIndex is taken into account
+ cd $DIRECTORY/..
+ ln -fs %{name}%{version} %{name}2.4
+ 
+ %clean
+ rm -rf $RPM_BUILD_ROOT
+ 
+ %files
+ %defattr(-,root,root)
+ %doc README INSTALL PROBLEMS html/
+ %{directory}/lib/%{name}%{version}
+ %{directory}/lib/%{name}2.4
*** bltpatch.orig	Sat Apr 29 21:21:53 2000
--- bltpatch	Sat Apr 29 21:01:56 2000
***************
*** 0 ****
--- 1,53 ----
+ #!/bin/sh
+ # The next line restarts using tclsh8.3 \
+ exec tclsh8.3 $0 ${1+"$@"}
+ 
+ set dirs ". ./win ./src ./cf ./src/shared ./library"
+ set date [clock format [clock seconds] -format "%m/%d/%Y"]
+ 
+ #
+ # This is a tcl-script that will search a list of directories
+ # for ".orig"-files. For all of these it will make a "diff",
+ # and create a patch-file.
+ #
+ #	Written by:	Jan Nijtmans
+ #			CMG (Computer Management Group) Arnhem B.V.
+ #			email: j.nijtmans@chello.nl (private)
+ #			       jan.nijtmans@cmg.nl (work)
+ #			url:   http://purl.oclc.org/net/nijtmans/
+ 
+ set file [open bltpatch.orig w]
+ close $file
+ 
+ puts stdout "creating BLT_PATCHES"
+ set file [open BLT_PATCHES w]
+ puts $file "BLT_PATCHES -   $date
+ 
+ This patch file fixes stub support in Blt 2.4q. It should be
+ applied by running the \"patch\" program in the top-level
+ directory of a clean Blt2.4q release, using the command
+ \"patch -p0 <BLT_PATCHES\".
+ 
+ 	Written by:	Jan Nijtmans
+ 			CMG (Computer Management Group) Arnhem B.V.
+ 			email: j.nijtmans@chello.nl (private)
+ 			       jan.nijtmans@cmg.nl (work)
+ 			url:   http://purl.oclc.org/net/nijtmans/
+ "
+ 
+ close $file
+ set filelist {}
+ foreach dir $dirs {
+     set files [eval exec ls $dir]
+     foreach file $files {
+ 	if {[regexp ".*\.orig" $file]} {
+ 	    set file [file join $dir [file rootname $file]]
+ 	    set file [string range $file 2 [string length $file]]
+ 	    lappend filelist $file
+ 	    puts stdout "diff -c $file.orig and $file"
+ 	    catch [list exec diff -c $file.orig $file >>BLT_PATCHES]
+ 	}
+     }
+ }
+ 
+ file delete bltpatch.orig
*** configure.in.orig	Fri Mar 10 21:23:32 2000
--- configure.in	Sat Apr 29 21:01:56 2000
***************
*** 49,54 ****
--- 49,56 ----
    unset ac_cv_header_jpeglib_h
    unset ac_cv_lib_jpeg ac_cv_lib_jpeg_jpeg_read_header
    blt_enable_jpeg=$enableval ])
+ AC_ARG_ENABLE(stubs,    [  --enable-stubs          use stubs], [
+   blt_enable_stubs=$enableval ])
  AC_ARG_WITH(cc,		[  --with-cc=CC            Set C compiler to CC], [
    blt_with_cc=$with_cc 
    unset ac_cv_prog_CC
***************
*** 732,739 ****
    INC_SPECS="${INC_SPECS} -I${TK_INC_DIR}"
  fi
  if test "${TK_LIB_DIR}" = "/usr/lib" ; then
    LIB_SPECS="${LIB_SPECS} ${TK_LIB_SPEC}"
! else
    LIB_SPECS="${LIB_SPECS} -L${TK_LIB_DIR} ${TK_LIB_SPEC}"
    if test "x${LD_RUN_PATH}" = "x" ; then
      LD_RUN_PATH="${TK_LIB_DIR}"
--- 734,743 ----
    INC_SPECS="${INC_SPECS} -I${TK_INC_DIR}"
  fi
  if test "${TK_LIB_DIR}" = "/usr/lib" ; then
+   STUB_LIB_SPECS="${LIB_SPECS} ${TK_STUB_LIB_SPEC} \$(lib_stub)"
    LIB_SPECS="${LIB_SPECS} ${TK_LIB_SPEC}"
!  else
!   STUB_LIB_SPECS="${LIB_SPECS} -L${TK_LIB_DIR} ${TK_STUB_LIB_SPEC} \${lib_stub}"
    LIB_SPECS="${LIB_SPECS} -L${TK_LIB_DIR} ${TK_LIB_SPEC}"
    if test "x${LD_RUN_PATH}" = "x" ; then
      LD_RUN_PATH="${TK_LIB_DIR}"
***************
*** 758,765 ****
--- 762,771 ----
  
  if test "${TCL_LIB_DIR}" = "/usr/lib" -o \
  	"${TCL_LIB_DIR}" = "${TK_LIB_DIR}" ; then
+   STUB_LIB_SPECS="${STUB_LIB_SPECS} ${TCL_STUB_LIB_SPEC}"
    LIB_SPECS="${LIB_SPECS} ${TCL_LIB_SPEC}"
  else
+   STUB_LIB_SPECS="${STUB_LIB_SPECS} -L${TCL_LIB_DIR} ${TCL_STUB_LIB_SPEC}"
    LIB_SPECS="${LIB_SPECS} -L${TCL_LIB_DIR} ${TCL_LIB_SPEC}"
    if test "x${LD_RUN_PATH}" = "x" ; then
      LD_RUN_PATH="${TCL_LIB_DIR}"
***************
*** 775,780 ****
--- 781,791 ----
  fi
  
  
+ if test "${blt_enable_stubs}" = "no" ; then
+   STUB_LIB_SPECS="${LIB_SPECS}"
+ fi
+ AC_SUBST(STUB_LIB_SPECS)
+ 
  # -----------------------------------------------------------------------
  # 
  # -lX11
***************
*** 984,990 ****
    *-bsdi4*)
      SHLIB_CFLAGS="-export-dynamic -fPIC"
      SHLIB_LD="${CC}"
!     SHLIB_LD_FLAGS="-shared -Wl,-E -Wl,-soname,${libName}.so"
      ;;
  
    *-dgux*)
--- 995,1001 ----
    *-bsdi4*)
      SHLIB_CFLAGS="-export-dynamic -fPIC"
      SHLIB_LD="${CC}"
!     SHLIB_LD_FLAGS="-shared -Wl,-E"
      ;;
  
    *-dgux*)
***************
*** 1036,1042 ****
    *-linux*)
      SHLIB_CFLAGS="-fPIC"
      SHLIB_LD="${CC}"
!     SHLIB_LD_FLAGS="-rdynamic -shared -Wl,-E -Wl,-soname,${libName}.so -Wl,-rpath,${LD_RUN_PATH}"
      
      LDFLAGS="-Wl,-rpath,${LD_RUN_PATH}"
      EXTRA_LIB_SPECS="-ldl"
--- 1047,1053 ----
    *-linux*)
      SHLIB_CFLAGS="-fPIC"
      SHLIB_LD="${CC}"
!     SHLIB_LD_FLAGS="-rdynamic -shared -Wl,-E -Wl,-rpath,${LD_RUN_PATH}"
      
      LDFLAGS="-Wl,-rpath,${LD_RUN_PATH}"
      EXTRA_LIB_SPECS="-ldl"
***************
*** 1149,1155 ****
      SHLIB_LD_LIBS="${LIB_SPECS}"
      if test "${blt_with_gnu_ld}" = "yes" -a "$BLT_HAVE_GCC" = "yes" ; then
        SHLIB_LD="gcc"
!       SHLIB_LD_FLAGS="-rdynamic -shared -Wl,-E -Wl,-soname,${libName}.so -Wl,-rpath,${LD_RUN_PATH}"
        LDFLAGS="-Wl,-rpath,${LD_RUN_PATH}"
      else
        SHLIB_LD="/usr/ccs/bin/ld"
--- 1160,1166 ----
      SHLIB_LD_LIBS="${LIB_SPECS}"
      if test "${blt_with_gnu_ld}" = "yes" -a "$BLT_HAVE_GCC" = "yes" ; then
        SHLIB_LD="gcc"
!       SHLIB_LD_FLAGS="-rdynamic -shared -Wl,-E -Wl,-rpath,${LD_RUN_PATH}"
        LDFLAGS="-Wl,-rpath,${LD_RUN_PATH}"
      else
        SHLIB_LD="/usr/ccs/bin/ld"
***************
*** 1197,1202 ****
--- 1208,1217 ----
    SHLIB_LD_LIBS=""
  fi
  
+ if test "${blt_enable_stubs}" != "no" ; then
+   SHLIB_CFLAGS="${SHLIB_CFLAGS} -DUSE_TCL_STUBS -DUSE_TK_STUBS -DUSE_BLT_STUBS"
+ fi
+ 
  if test "${buildShared}" = "yes" ; then
    SHLIB_TARGET="build_shared"
    AC_SUBST(SHLIB_CFLAGS)
***************
*** 1222,1227 ****
--- 1237,1247 ----
  AC_SUBST(BLT_MINOR_VERSION)
  AC_SUBST(BLT_VERSION)
  AC_SUBST(AUX_LIBS)
+ AC_SUBST(TCL_VERSION)
+ AC_SUBST(TCL_PATCH_LEVEL)
+ AC_SUBST(TK_VERSION)
+ AC_SUBST(TK_PATCH_LEVEL)
+ AC_SUBST(TCL_DEFS)
  
  #--------------------------------------------------------------------
  #	Propagate prefix argument as installation directory.
*** configure.orig	Fri Mar 10 21:23:32 2000
--- configure	Sat Apr 29 21:01:56 2000
***************
*** 26,31 ****
--- 26,33 ----
  ac_help="$ac_help
    --enable-jpeg=DIR       Find JPEG headers and libraries in DIR"
  ac_help="$ac_help
+   --enable-stubs          use stubs"
+ ac_help="$ac_help
    --with-cc=CC            Set C compiler to CC"
  ac_help="$ac_help
    --with-cflags=FLAGS     Set compiler flags to FLAGS"
***************
*** 640,645 ****
--- 642,654 ----
    blt_enable_jpeg=$enableval 
  fi
  
+ # Check whether --enable-stubs or --disable-stubs was given.
+ if test "${enable_stubs+set}" = set; then
+   enableval="$enable_stubs"
+   
+   blt_enable_stubs=$enableval 
+ fi
+ 
  # Check whether --with-cc or --without-cc was given.
  if test "${with_cc+set}" = set; then
    withval="$with_cc"
***************
*** 2870,2877 ****
--- 2879,2888 ----
    INC_SPECS="${INC_SPECS} -I${TK_INC_DIR}"
  fi
  if test "${TK_LIB_DIR}" = "/usr/lib" ; then
+   STUB_LIB_SPECS="${LIB_SPECS} ${TK_STUB_LIB_SPEC} \$(lib_stub)"
    LIB_SPECS="${LIB_SPECS} ${TK_LIB_SPEC}"
  else
+   STUB_LIB_SPECS="${LIB_SPECS} -L${TK_LIB_DIR} ${TK_STUB_LIB_SPEC} \${lib_stub}"
    LIB_SPECS="${LIB_SPECS} -L${TK_LIB_DIR} ${TK_LIB_SPEC}"
    if test "x${LD_RUN_PATH}" = "x" ; then
      LD_RUN_PATH="${TK_LIB_DIR}"
***************
*** 2896,2903 ****
--- 2907,2916 ----
  
  if test "${TCL_LIB_DIR}" = "/usr/lib" -o \
  	"${TCL_LIB_DIR}" = "${TK_LIB_DIR}" ; then
+   STUB_LIB_SPECS="${STUB_LIB_SPECS} ${TCL_STUB_LIB_SPEC}"
    LIB_SPECS="${LIB_SPECS} ${TCL_LIB_SPEC}"
  else
+   STUB_LIB_SPECS="${STUB_LIB_SPECS} -L${TCL_LIB_DIR} ${TCL_STUB_LIB_SPEC}"
    LIB_SPECS="${LIB_SPECS} -L${TCL_LIB_DIR} ${TCL_LIB_SPEC}"
    if test "x${LD_RUN_PATH}" = "x" ; then
      LD_RUN_PATH="${TCL_LIB_DIR}"
***************
*** 2913,2918 ****
--- 2926,2935 ----
  fi
  
  
+ if test "${blt_enable_stubs}" = "no" ; then
+   STUB_LIB_SPECS="${LIB_SPECS}"
+ fi
+ 
  # -----------------------------------------------------------------------
  # 
  # -lX11
***************
*** 3393,3399 ****
    *-bsdi4*)
      SHLIB_CFLAGS="-export-dynamic -fPIC"
      SHLIB_LD="${CC}"
!     SHLIB_LD_FLAGS="-shared -Wl,-E -Wl,-soname,${libName}.so"
      ;;
  
    *-dgux*)
--- 3410,3416 ----
    *-bsdi4*)
      SHLIB_CFLAGS="-export-dynamic -fPIC"
      SHLIB_LD="${CC}"
!     SHLIB_LD_FLAGS="-shared -Wl,-E"
      ;;
  
    *-dgux*)
***************
*** 3485,3491 ****
    *-linux*)
      SHLIB_CFLAGS="-fPIC"
      SHLIB_LD="${CC}"
!     SHLIB_LD_FLAGS="-rdynamic -shared -Wl,-E -Wl,-soname,${libName}.so -Wl,-rpath,${LD_RUN_PATH}"
      
      LDFLAGS="-Wl,-rpath,${LD_RUN_PATH}"
      EXTRA_LIB_SPECS="-ldl"
--- 3502,3508 ----
    *-linux*)
      SHLIB_CFLAGS="-fPIC"
      SHLIB_LD="${CC}"
!     SHLIB_LD_FLAGS="-rdynamic -shared -Wl,-E -Wl,-rpath,${LD_RUN_PATH}"
      
      LDFLAGS="-Wl,-rpath,${LD_RUN_PATH}"
      EXTRA_LIB_SPECS="-ldl"
***************
*** 3631,3637 ****
      SHLIB_LD_LIBS="${LIB_SPECS}"
      if test "${blt_with_gnu_ld}" = "yes" -a "$BLT_HAVE_GCC" = "yes" ; then
        SHLIB_LD="gcc"
!       SHLIB_LD_FLAGS="-rdynamic -shared -Wl,-E -Wl,-soname,${libName}.so -Wl,-rpath,${LD_RUN_PATH}"
        LDFLAGS="-Wl,-rpath,${LD_RUN_PATH}"
      else
        SHLIB_LD="/usr/ccs/bin/ld"
--- 3648,3654 ----
      SHLIB_LD_LIBS="${LIB_SPECS}"
      if test "${blt_with_gnu_ld}" = "yes" -a "$BLT_HAVE_GCC" = "yes" ; then
        SHLIB_LD="gcc"
!       SHLIB_LD_FLAGS="-rdynamic -shared -Wl,-E -Wl,-rpath,${LD_RUN_PATH}"
        LDFLAGS="-Wl,-rpath,${LD_RUN_PATH}"
      else
        SHLIB_LD="/usr/ccs/bin/ld"
***************
*** 3679,3684 ****
--- 3696,3705 ----
    SHLIB_LD_LIBS=""
  fi
  
+ if test "${blt_enable_stubs}" != "no" ; then
+   SHLIB_CFLAGS="${SHLIB_CFLAGS} -DUSE_TCL_STUBS -DUSE_TK_STUBS -DUSE_BLT_STUBS"
+ fi
+ 
  if test "${buildShared}" = "yes" ; then
    SHLIB_TARGET="build_shared"
    
***************
*** 3904,3909 ****
--- 3925,3931 ----
  s%@INSTALL_DATA@%$INSTALL_DATA%g
  s%@RANLIB@%$RANLIB%g
  s%@LN_S@%$LN_S%g
+ s%@STUB_LIB_SPECS@%$STUB_LIB_SPECS%g
  s%@AWK@%$AWK%g
  s%@SHLIB_CFLAGS@%$SHLIB_CFLAGS%g
  s%@SHLIB_TARGET@%$SHLIB_TARGET%g
***************
*** 3921,3926 ****
--- 3943,3953 ----
  s%@BLT_MINOR_VERSION@%$BLT_MINOR_VERSION%g
  s%@BLT_VERSION@%$BLT_VERSION%g
  s%@AUX_LIBS@%$AUX_LIBS%g
+ s%@TCL_VERSION@%$TCL_VERSION%g
+ s%@TCL_PATCH_LEVEL@%$TCL_PATCH_LEVEL%g
+ s%@TK_VERSION@%$TK_VERSION%g
+ s%@TK_PATCH_LEVEL@%$TK_PATCH_LEVEL%g
+ s%@TCL_DEFS@%$TCL_DEFS%g
  s%@BLT_LIBRARY@%$BLT_LIBRARY%g
  
  CEOF
*** win/makedefs.orig	Sat Apr 29 21:02:47 2000
--- win/makedefs	Sat Apr 29 21:11:51 2000
***************
*** 1,6 ****
  v1 = 8.3
  v2 = 83
! v3 = 8.3.0
  
  #v1 = 8.2
  #v2 = 82
--- 1,6 ----
  v1 = 8.3
  v2 = 83
! v3 = 8.3.1
  
  #v1 = 8.2
  #v2 = 82
***************
*** 45,48 ****
--- 45,49 ----
  
  DEBUG=0
  SHARED=1
+ STUBS=1
  
*** src/Makefile.gnu.orig	Thu Mar 16 08:27:00 2000
--- src/Makefile.gnu	Sat Apr 29 21:21:12 2000
***************
*** 13,24 ****
  # 	C Compiler options 
  # ------------------------------------------------------------------------
  
! DEFINES       =	-D_X86_=1 -DWIN32 -D_DLL -D_MT -DHAVE_JPEGLIB_H=1
  DEBUG_FLAGS   =	-g
! CFLAGS        =	-O2
  EXTRA_CFLAGS  = 
  CC            =	$(TARGET)gcc.exe 
  
  # ------------------------------------------------------------------------
  # 	Linker flags and options 
  # ------------------------------------------------------------------------
--- 13,41 ----
  # 	C Compiler options 
  # ------------------------------------------------------------------------
  
! DEFINES       =	-D_X86_=1 -DWIN32 -D_DLL -D_MT -DHAVE_JPEGLIB_H=1 -DBUILD_blt
  DEBUG_FLAGS   =	-g
! CFLAGS        =	-O -DUSE_BLT_STUBS
  EXTRA_CFLAGS  = 
  CC            =	$(TARGET)gcc.exe 
  
+ ifeq ($(STUBS),1)
+ STUB_CFLAGS =  -DUSE_TCL_STUBS -DUSE_TK_STUBS
+ STUB_FIX = stub
+ else
+ STUB_CFLAGS =
+ STUB_FIX =
+ endif
+ 
+ ifeq ($(SHARED),1)
+ SHLIB_DEFINES =	-D_DLL -DBUILD_blt
+ SHLIB_TARGET  =	build-dll
+ LIBS          =	$(COMMON_LIBS) 
+ else
+ SHLIB_DEFINES =	-D_CTYPE_DISABLE_MACROS -DSTATIC_BUILD
+ LIBS          =	$(COMMON_LIBS) $(EXTRA_LIBS)
+ endif
+ 
  # ------------------------------------------------------------------------
  # 	Linker flags and options 
  # ------------------------------------------------------------------------
***************
*** 29,35 ****
  #LDFLAGS      = -mwindows -no-cygwin --target=i386-mingw21
  LDFLAGS       =	-mwindows
  
! NORMAL_LIBS   =	-ltk$(v2) -ltcl$(v2) \
  		$(JPEGDIR)/libjpeg.a \
  		-lwinspool
  
--- 46,52 ----
  #LDFLAGS      = -mwindows -no-cygwin --target=i386-mingw21
  LDFLAGS       =	-mwindows
  
! NORMAL_LIBS   =	-L/progra~1/tcl/lib -ltk$(v2) -ltcl$(v2) \
  		$(JPEGDIR)/libjpeg.a \
  		-lwinspool
  
***************
*** 46,57 ****
  # 	Directories containing Tcl and Tk include files and libraries
  # ------------------------------------------------------------------------
  
! JPEGDIR       =	$(srcdir)/../../jpeg-6b
! TCLDIR        =	$(srcdir)/../../tcl$(v3)
! TKDIR         =	$(srcdir)/../../tk$(v3)
  
  INCLUDES      =	-I. -I$(srcdir) \
! 		-I$(JPEGDIR) 
  
  SHLIB_LD_LIBS =	$(NORMAL_LIBS)
  LIBRARIES     =	$(libname).a $(NORMAL_LIBS) 
--- 63,74 ----
  # 	Directories containing Tcl and Tk include files and libraries
  # ------------------------------------------------------------------------
  
! JPEGDIR       =	c:/progra~1/tcl/lib
! TCLDIR        =	c:/progra~1/tcl/lib
! TKDIR         =	c:/progra~1/tcl/lib
  
  INCLUDES      =	-I. -I$(srcdir) \
! 		-I$(JPEGDIR)/../include
  
  SHLIB_LD_LIBS =	$(NORMAL_LIBS)
  LIBRARIES     =	$(libname).a $(NORMAL_LIBS) 
***************
*** 63,71 ****
  # 	You don't need to edit anything beyond this point
  # ------------------------------------------------------------------------
  
! #N_OBJS       =	bltTed.o
  V3_OBJS       =	bltTri.o bltGrMt.o 
! TREE_OBJS     = bltTree.o bltHiertable.o bltHtCmd.o bltHtColumn.o bltHtText.o
  
  DEMO_OBJS     =	tkConsole.o bltWinMain.o
  TK_OBJS       =	tkButton.o tkFrame.o tkScrollbar.o 
--- 80,95 ----
  # 	You don't need to edit anything beyond this point
  # ------------------------------------------------------------------------
  
! N_OBJS       =	bltTed.o
  V3_OBJS       =	bltTri.o bltGrMt.o 
! TREE_OBJS     = bltHiertable.o bltHtCmd.o bltHtColumn.o bltHtText.o
! 
! TCL_ONLY_OBJS =	bltBgexec.o bltDebug.o bltSpline.o \
! 		bltVector.o bltWatch.o \
! 		bltList.o bltChain.o \
! 		bltNsUtil.o bltParse.o bltWinPipe.o \
! 		bltUtil.o bltTree.o  bltWinUtil.o bltInit.o \
! 		bltStubInit.o
  
  DEMO_OBJS     =	tkConsole.o bltWinMain.o
  TK_OBJS       =	tkButton.o tkFrame.o tkScrollbar.o 
***************
*** 73,98 ****
  OBJS          =	bltGraph.o bltGrAxis.o bltGrBar.o bltGrElem.o \
  		bltGrGrid.o bltGrHairs.o bltGrLegd.o bltGrLine.o \
  		bltGrMarker.o bltGrMisc.o bltGrPen.o bltGrPs.o \
! 		bltBeep.o bltBgexec.o bltBitmap.o bltBusy.o \
! 		bltContainer.o bltCutbuffer.o bltDebug.o bltDnd.o \
! 		bltHierbox.o bltHtext.o bltSpline.o bltTable.o \
! 		bltTabset.o bltVector.o bltWatch.o bltWinop.o \
! 		bltCanvEps.o bltInit.o bltBind.o bltColor.o \
! 		bltConfig.o bltImage.o bltList.o bltChain.o \
! 		bltNsUtil.o bltParse.o bltPs.o bltText.o bltTile.o \
! 		bltWinPipe.o bltWinDraw.o bltWinUtil.o bltWinPrnt.o \
! 		bltUtil.o bltWindow.o \
! 		$(TREE_OBJS) $(TK_OBJS) $(N_OBJS) pure_api.o
  
  NOT_YET       =	bltContainer.o bltCutBuffer.o bltColor.o
  
  # GNU Make-specific macro
! HEADERS       =	blt.h
  SRCS          =	$(patsubst %.o,$(srcdir)/%.c,$(OBJS)) 
  exec_name     = bltwish
  demo          =	$(exec_name).exe
  demo2         =	$(exec_name)$(version).exe
  libname       =	BLT$(version)
  version       =	$(BLT_MAJOR_VERSION)$(BLT_MINOR_VERSION)
  
  CC_SWITCHES   =	$(CFLAGS) $(EXTRA_CFLAGS) $(DEFINES) $(INCLUDES)
--- 97,122 ----
  OBJS          =	bltGraph.o bltGrAxis.o bltGrBar.o bltGrElem.o \
  		bltGrGrid.o bltGrHairs.o bltGrLegd.o bltGrLine.o \
  		bltGrMarker.o bltGrMisc.o bltGrPen.o bltGrPs.o \
! 		bltBeep.o bltBitmap.o bltBusy.o \
! 		bltContainer.o bltCutbuffer.o bltDnd.o \
! 		bltHierbox.o bltHtext.o bltTable.o \
! 		bltTabset.o bltWinop.o bltCanvEps.o bltBind.o \
! 		bltColor.o bltConfig.o bltImage.o \
! 		bltParse.o bltPs.o bltText.o bltTile.o \
! 		bltWinDraw.o bltWinPrnt.o bltWindow.o \
! 		$(TREE_OBJS) $(TK_OBJS) $(N_OBJS) bltPkgInit.o tkbltStubInit.o
  
  NOT_YET       =	bltContainer.o bltCutBuffer.o bltColor.o
  
  # GNU Make-specific macro
! HEADERS       =	blt.h bltChain.h bltVector.h bltTree.h bltList.h bltDecls.h
  SRCS          =	$(patsubst %.o,$(srcdir)/%.c,$(OBJS)) 
  exec_name     = bltwish
  demo          =	$(exec_name).exe
  demo2         =	$(exec_name)$(version).exe
+ litename      = BLTlite$(version)
  libname       =	BLT$(version)
+ stublib       =	libBLTstub$(version).a
  version       =	$(BLT_MAJOR_VERSION)$(BLT_MINOR_VERSION)
  
  CC_SWITCHES   =	$(CFLAGS) $(EXTRA_CFLAGS) $(DEFINES) $(INCLUDES)
***************
*** 109,115 ****
  LINTFLAGS     =	-axhbns
  VPATH         =	$(srcdir)
  
! all: build-library build-dll build-demo
  
  build-demo: build-library $(demo)
  
--- 133,139 ----
  LINTFLAGS     =	-axhbns
  VPATH         =	$(srcdir)
  
! all: build-library $(SHLIB_TARGET) build-demo
  
  build-demo: build-library $(demo)
  
***************
*** 126,142 ****
  	$(AR) $(ARFLAGS) $@ $(OBJS)
  	$(RANLIB) $@
  
! $(libname).def: $(OBJS)
! 	$(DLLTOOL) $(DLLTOOL_FLAGS) --export-all --output-def $@ $(OBJS)
  
! $(libname).a: $(libname).def
! 	$(DLLTOOL) $(DLLTOOL_FLAGS) --dllname $(libname).dll \
! 		--def $(libname).def --output-lib $@
! 
! $(libname).dll: $(libname).a
! 	$(RM) $(libname).dll
! 	$(DLLWRAP) $(DLLWRAP_FLAGS) -o $@ --def $(libname).def \
! 		$(OBJS) $(SHLIB_LD_FLAGS) $(SHLIB_LD_LIBS)
  
  install: install-dirs install-lib install-headers install-demo
  
--- 150,168 ----
  	$(AR) $(ARFLAGS) $@ $(OBJS)
  	$(RANLIB) $@
  
! $(stublib): bltStubLib.o
! 	$(AR) $(ARFLAGS) $@ bltStubLib.o
! 	$(RANLIB) $@
! 
! $(litename).dll: $(TCL_ONLY_OBJS)
! 	$(RM) $@
! 	$(DLLWRAP) $(DLLWRAP_FLAGS) -o $@  --output-lib $(patsubst %.dll,lib%.a,$@) \
! 		$(TCL_ONLY_OBJS) $(SHLIB_LD_FLAGS) -L/progra~1/tcl/lib -ltcl$(STUB_FIX)$(v2)
  
! $(libname).dll: $(OBJS) $(stublib)
! 	$(RM) $@
! 	$(DLLWRAP) $(DLLWRAP_FLAGS) -o $@  --output-lib $(patsubst %.dll,lib%.a,$@) \
! 		$(OBJS) $(SHLIB_LD_FLAGS) -L/progra~1/tcl/lib -ljpeg -ltk$(STUB_FIX)$(v2) -ltclstub$(STUB_FIX)$(v2) $(stublib) -lwinspool
  
  install: install-dirs install-lib install-headers install-demo
  
*** src/Makefile.in.orig	Thu Mar 16 08:27:00 2000
--- src/Makefile.in	Sat Apr 29 21:01:56 2000
***************
*** 9,15 ****
  BLT_LIBRARY =	@BLT_LIBRARY@
  CC =		@CC@
  CFLAGS =	@CFLAGS@ 
! DEFINES =	@DEFINES@
  EXTRA_CFLAGS =	@GCCFLAGS@
  LDFLAGS =	@LDFLAGS@
  version =	@BLT_MAJOR_VERSION@@BLT_MINOR_VERSION@
--- 9,15 ----
  BLT_LIBRARY =	@BLT_LIBRARY@
  CC =		@CC@
  CFLAGS =	@CFLAGS@ 
! DEFINES =	@DEFINES@ @TCL_DEFS@
  EXTRA_CFLAGS =	@GCCFLAGS@
  LDFLAGS =	@LDFLAGS@
  version =	@BLT_MAJOR_VERSION@@BLT_MINOR_VERSION@
***************
*** 47,53 ****
  N_OBJS =	bltTed.o
  V3_OBJS =	bltTri.o bltGrMt.o 
  
! TREE_OBJS =     bltTree.o bltHiertable.o bltHtCmd.o bltHtColumn.o bltHtText.o
  
  TK_OBJS =	tkButton.o tkFrame.o tkScrollbar.o 
  
--- 47,53 ----
  N_OBJS =	bltTed.o
  V3_OBJS =	bltTri.o bltGrMt.o 
  
! TREE_OBJS =     bltHiertable.o bltHtCmd.o bltHtColumn.o bltHtText.o
  
  TK_OBJS =	tkButton.o tkFrame.o tkScrollbar.o 
  
***************
*** 55,74 ****
  		bltVector.o bltWatch.o \
  		bltList.o bltChain.o \
  		bltNsUtil.o bltParse.o bltUnixPipe.o \
! 		bltUtil.o bltTree.o 
  
  OBJS =		bltGraph.o bltGrAxis.o bltGrBar.o bltGrElem.o \
  		bltGrGrid.o bltGrHairs.o bltGrLegd.o bltGrLine.o \
  		bltGrMarker.o bltGrMisc.o bltGrPen.o bltGrPs.o \
! 	       	bltBeep.o bltBgexec.o bltBitmap.o bltBusy.o \
! 		bltContainer.o bltCutbuffer.o bltDebug.o \
                  bltDnd.o bltUnixDnd.o \
! 		bltHierbox.o bltHtext.o bltSpline.o bltTable.o bltTabset.o \
! 		bltVector.o bltWatch.o bltWinop.o \
  		bltCanvEps.o bltBind.o bltColor.o \
! 		bltConfig.o bltImage.o bltList.o bltChain.o \
! 		bltNsUtil.o bltParse.o bltPs.o bltText.o bltTile.o \
! 		bltUnixPipe.o bltUtil.o bltWindow.o \
  		$(TREE_OBJS) $(TK_OBJS) $(N_OBJS) 
  
  # GNU Make-specific macro
--- 55,74 ----
  		bltVector.o bltWatch.o \
  		bltList.o bltChain.o \
  		bltNsUtil.o bltParse.o bltUnixPipe.o \
! 		bltUtil.o bltTree.o bltInit.o bltStubInit.o bltStubLib.o
  
  OBJS =		bltGraph.o bltGrAxis.o bltGrBar.o bltGrElem.o \
  		bltGrGrid.o bltGrHairs.o bltGrLegd.o bltGrLine.o \
  		bltGrMarker.o bltGrMisc.o bltGrPen.o bltGrPs.o \
! 	       	bltBeep.o bltBitmap.o bltBusy.o \
! 		bltContainer.o bltCutbuffer.o \
                  bltDnd.o bltUnixDnd.o \
! 		bltHierbox.o bltHtext.o bltTable.o bltTabset.o \
! 		bltWinop.o \
  		bltCanvEps.o bltBind.o bltColor.o \
! 		bltConfig.o bltImage.o \
! 		bltPs.o bltText.o bltTile.o \
! 		bltWindow.o bltPkgInit.o tkbltStubInit.o\
  		$(TREE_OBJS) $(TK_OBJS) $(N_OBJS) 
  
  # GNU Make-specific macro
***************
*** 76,82 ****
  
  bltwish =	bltwish
  bltsh =		bltsh
! headers =	blt.h bltChain.h bltVector.h bltTree.h
  lib_a =		libBLT.a
  libvers_a =	libBLT$(version).a
  tcl_only_lib_a =  libBLTlite.a
--- 76,83 ----
  
  bltwish =	bltwish
  bltsh =		bltsh
! headers =	blt.h bltChain.h bltVector.h bltTree.h bltList.h bltDecls.h \
! 		bltPlatDecls.h tkbltDecls.h
  lib_a =		libBLT.a
  libvers_a =	libBLT$(version).a
  tcl_only_lib_a =  libBLTlite.a
***************
*** 99,126 ****
  build_shared:
  	(cd shared; $(MAKE) CFLAGS="$(CFLAGS)" all) 
  
! $(bltwish): $(lib_a)
  	$(RM) $(bltwish)
  	$(CC) $(CC_SWITCHES) $(LDFLAGS) -o $(bltwish) \
  		$(srcdir)/bltUnixMain.c $(lib_a) $(LIBS) 
  
! $(bltsh): $(tcl_only_lib_a)
  	$(RM) $(bltsh)
  	$(CC) $(CC_SWITCHES) $(LDFLAGS) -DTCL_ONLY -o $(bltsh) \
  		$(srcdir)/bltUnixMain.c $(tcl_only_lib_a) $(TCL_ONLY_LIBS) 
  
! $(lib_a): $(OBJS) 
! 	$(CC) -c $(CC_SWITCHES) -DBLT_LIBRARY=\"$(BLT_LIBRARY)\" \
! 		$(srcdir)/bltInit.c
  	$(RM) $@
! 	$(AR) $@ $(OBJS) bltInit.o
  	$(RANLIB) $@
  
  $(tcl_only_lib_a):  $(TCL_ONLY_OBJS) 
- 	$(CC) -c $(CC_SWITCHES) -DTCL_ONLY -DBLT_LIBRARY=\"$(BLT_LIBRARY)\" \
- 		$(srcdir)/bltInit.c
  	$(RM) $@
! 	$(AR) $@ $(TCL_ONLY_OBJS) bltInit.o
  	$(RANLIB) $@
  
  install: install_dirs install_lib install_demo install_headers
--- 100,123 ----
  build_shared:
  	(cd shared; $(MAKE) CFLAGS="$(CFLAGS)" all) 
  
! $(bltwish): $(lib_a) $(srcdir)/bltUnixMain.c
  	$(RM) $(bltwish)
  	$(CC) $(CC_SWITCHES) $(LDFLAGS) -o $(bltwish) \
  		$(srcdir)/bltUnixMain.c $(lib_a) $(LIBS) 
  
! $(bltsh): $(tcl_only_lib_a) $(srcdir)/bltUnixMain.c
  	$(RM) $(bltsh)
  	$(CC) $(CC_SWITCHES) $(LDFLAGS) -DTCL_ONLY -o $(bltsh) \
  		$(srcdir)/bltUnixMain.c $(tcl_only_lib_a) $(TCL_ONLY_LIBS) 
  
! $(lib_a): $(OBJS) $(TCL_ONLY_OBJS)
  	$(RM) $@
! 	$(AR) $@ $(OBJS) $(TCL_ONLY_OBJS)
  	$(RANLIB) $@
  
  $(tcl_only_lib_a):  $(TCL_ONLY_OBJS) 
  	$(RM) $@
! 	$(AR) $@ $(TCL_ONLY_OBJS)
  	$(RANLIB) $@
  
  install: install_dirs install_lib install_demo install_headers
***************
*** 167,172 ****
--- 164,178 ----
  
  .c.o:
  	$(CC) -c $(CC_SWITCHES) $<
+ #
+ # Target to regenerate header files and stub files from the *.decls tables.
+ #
+ 
+ genstubs:
+ 	tclsh ../cf/genStubs.tcl . blt.decls
+ 	tclsh ../cf/genStubs.tcl . tkblt.decls
+ 	tclsh ../cf/genStubs.tcl . tcl.decls
+ 	tclsh ../cf/genStubs.tcl . tk.decls
  
  PUREFLAGS=
  pure: $(lib_a)
*** src/Makefile.vc.orig	Thu Mar 16 08:27:00 2000
--- src/Makefile.vc	Sat Apr 29 21:13:35 2000
***************
*** 5,45 ****
  
  include ../win/makedefs
  
! TOOLS32       =	c:/Program\ Files/Microsoft\ Visual\ Studio/Vc98
! AR            =	lib.exe
! LD            =	link.exe
! CC            =	cl.exe
! rc32          =	rc.exe
  
  # ------------------------------------------------------------------------
  # 	C Compiler options 
  # ------------------------------------------------------------------------
  
! DEFINES       =	-D_X86_=1 -D__STDC__ -DWIN32 -DCONSOLE -D_MT \
  			$(DEBUG_DEFINES) $(SHLIB_DEFINES) $(EXTRA_DEFINES)
  EXTRA_CFLAGS  =	-nologo -W3 
  
  ifeq ($(SHARED),1)
! SHLIB_DEFINES =	-D_DLL
  SHLIB_TARGET  =	build-dll
  LIBS          =	$(COMMON_LIBS) 
  else
! SHLIB_DEFINES =	-D_CTYPE_DISABLE_MACROS
  LIBS          =	$(COMMON_LIBS) $(EXTRA_LIBS)
  endif
  
  ifeq ($(DEBUG),1)
  CFLAGS        =	-Z7 -Od
  DEBUG_LDFLAGS =	-debug:full -debugtype:cv  
! TK_LIB        =	$(TKDIR)/win/Debug/tk$(v2)d.lib  
! TCL_LIB       =	$(TCLDIR)/win/Debug/tcl$(v2)d.lib 
! MSVCRT        =	msvcrtd.lib
  else
  CFLAGS        =	-Ox -GB -GD 
  DEBUG_LDFLAGS =	-debug:full -debugtype:cv  
! TK_LIB        =	$(TKDIR)/win/Release/tk$(v2).lib  
! TCL_LIB       =	$(TCLDIR)/win/Release/tcl$(v2).lib 
! MSVCRT        =	msvcrt.lib
  endif
  
  # ------------------------------------------------------------------------
--- 5,62 ----
  
  include ../win/makedefs
  
! #TOOLS32      = c:/msdev
! #TOOLS32_rc   = c:/msdev
! TOOLS32       = c:/progra~1/devstudio/vc
! TOOLS32_rc    = c:/progra~1/devstudio/sharedide
! #TOOLS32      = c:/progra~1/microsoft\ visual\ studio/vc98
! #TOOLS32_rc   = c:/progra~1/microsoft\ visual\ studio/common/msdev98
! AR            =	$(TOOLS32)/bin/lib.exe
! LD            =	$(TOOLS32)/bin/link.exe
! CC            =	$(TOOLS32)/bin/cl.exe
! rc32          =	$(TOOLS32_rc)/bin/rc.exe
  
  # ------------------------------------------------------------------------
  # 	C Compiler options 
  # ------------------------------------------------------------------------
  
! DEFINES       =	-D_X86_=1 -D__STDC__ -DWIN32 -DCONSOLE -D_MT -DUSE_BLT_STUBS \
  			$(DEBUG_DEFINES) $(SHLIB_DEFINES) $(EXTRA_DEFINES)
  EXTRA_CFLAGS  =	-nologo -W3 
  
+ ifeq ($(STUBS),1)
+ STUB_CFLAGS =  -DUSE_TCL_STUBS -DUSE_TK_STUBS
+ STUB_FIX = stub
+ else
+ STUB_CFLAGS =
+ STUB_FIX =
+ endif
+ 
  ifeq ($(SHARED),1)
! SHLIB_DEFINES =	-D_DLL -DBUILD_blt
  SHLIB_TARGET  =	build-dll
  LIBS          =	$(COMMON_LIBS) 
  else
! SHLIB_DEFINES =	-D_CTYPE_DISABLE_MACROS -DSTATIC_BUILD
  LIBS          =	$(COMMON_LIBS) $(EXTRA_LIBS)
  endif
  
  ifeq ($(DEBUG),1)
  CFLAGS        =	-Z7 -Od
  DEBUG_LDFLAGS =	-debug:full -debugtype:cv  
! TK_LIB        =	c:/progra~1/tcl/lib/tk$(v2)d.lib  
! TCL_LIB       =	c:/progra~1/tcl/lib/tcl$(v2)d.lib 
! TK_STUB_LIB   =	c:/progra~1/tcl/lib/tk$(STUB_FIX)$(v2)d.lib  
! TCL_STUB_LIB  =	c:/progra~1/tcl/lib/tcl$(STUB_FIX)$(v2)d.lib 
! MSVCRT        =	$(TOOLS32)/lib/msvcrtd.lib
  else
  CFLAGS        =	-Ox -GB -GD 
  DEBUG_LDFLAGS =	-debug:full -debugtype:cv  
! TK_LIB        =	c:/progra~1/tcl/lib/tk$(v2).lib  
! TCL_LIB       =	c:/progra~1/tcl/lib/tcl$(v2).lib 
! TK_STUB_LIB   =	c:/progra~1/tcl/lib/tk$(STUB_FIX)$(v2).lib  
! TCL_STUB_LIB  =	c:/progra~1/tcl/lib/tcl$(STUB_FIX)$(v2).lib 
! MSVCRT        =	$(TOOLS32)/lib/msvcrt.lib
  endif
  
  # ------------------------------------------------------------------------
***************
*** 61,76 ****
  
  COMMON_LIBS   =	$(TK_LIB) $(TCL_LIB) \
  		$(MSVCRT) \
! 		kernel32.lib user32.lib 
  
  EXTRA_LIBS    =	$(OLELIB) \
  		$(JPEGLIB) \
! 		gdi32.lib \
! 		oldnames.lib \
! 		advapi32.lib \
! 		winspool.lib 
! 
! TCL_ONLY_LIBS = $(TCL_LIB) $(MSVCRT)  kernel32.lib user32.lib advapi32.lib 
  
  # ------------------------------------------------------------------------
  # 	Source and target installation directories 
--- 78,109 ----
  
  COMMON_LIBS   =	$(TK_LIB) $(TCL_LIB) \
  		$(MSVCRT) \
! 		$(TOOLS32)/lib/kernel32.lib \
! 		$(TOOLS32)/lib/user32.lib 
! 
! COMMON_STUB_LIBS   =	$(TK_STUB_LIB) $(TCL_STUB_LIB) \
! 		$(MSVCRT) \
! 		$(TOOLS32)/lib/kernel32.lib \
! 		$(TOOLS32)/lib/user32.lib 
  
  EXTRA_LIBS    =	$(OLELIB) \
  		$(JPEGLIB) \
! 		$(TOOLS32)/lib/gdi32.lib \
! 		$(TOOLS32)/lib/oldnames.lib \
! 		$(TOOLS32)/lib/advapi32.lib \
! 		$(TOOLS32)/lib/winspool.lib 
! 
! TCL_ONLY_LIBS = $(TCL_LIB) $(MSVCRT) \
! 		$(TOOLS32)/lib/kernel32.lib \
! 		$(TOOLS32)/lib/user32.lib \
! 		$(TOOLS32)/lib/advapi32.lib \
! 		$(TOOLS32)/lib/oldnames.lib
! 
! TCL_ONLY_STUB_LIBS = $(TCL_STUB_LIB) $(MSVCRT) \
! 		$(TOOLS32)/lib/kernel32.lib \
! 		$(TOOLS32)/lib/user32.lib \
! 		$(TOOLS32)/lib/advapi32.lib \
! 		$(TOOLS32)/lib/oldnames.lib
  
  # ------------------------------------------------------------------------
  # 	Source and target installation directories 
***************
*** 85,91 ****
  # 	Directories containing Tcl and Tk include files and libraries
  # ------------------------------------------------------------------------
  
! JPEGDIR       =	$(srcdir)/../../jpeg-6b
  TCLDIR        =	$(srcdir)/../../tcl$(v3)
  TKDIR         =	$(srcdir)/../../tk$(v3)
  INCLUDES      =	-I. -I$(srcdir) \
--- 118,124 ----
  # 	Directories containing Tcl and Tk include files and libraries
  # ------------------------------------------------------------------------
  
! JPEGDIR       =	c:/progra~1/tcl/lib
  TCLDIR        =	$(srcdir)/../../tcl$(v3)
  TKDIR         =	$(srcdir)/../../tk$(v3)
  INCLUDES      =	-I. -I$(srcdir) \
***************
*** 103,115 ****
  N_OBJS       =	bltTed.o
  V3_OBJS       =	bltTri.o bltGrMt.o 
  
! TREE_OBJS     = bltTree.o bltHiertable.o bltHtCmd.o bltHtColumn.o bltHtText.o
  
  TCL_ONLY_OBJS =	bltBgexec.o bltDebug.o bltSpline.o \
  		bltVector.o bltWatch.o \
  		bltList.o bltChain.o \
  		bltNsUtil.o bltParse.o bltWinPipe.o \
! 		bltUtil.o bltTree.o  bltWinUtil.o
  
  DEMO_OBJS     =	tkConsole.o bltWinMain.o
  TK_OBJS       =	tkButton.o tkFrame.o tkScrollbar.o 
--- 136,149 ----
  N_OBJS       =	bltTed.o
  V3_OBJS       =	bltTri.o bltGrMt.o 
  
! TREE_OBJS     = bltHiertable.o bltHtCmd.o bltHtColumn.o bltHtText.o
  
  TCL_ONLY_OBJS =	bltBgexec.o bltDebug.o bltSpline.o \
  		bltVector.o bltWatch.o \
  		bltList.o bltChain.o \
  		bltNsUtil.o bltParse.o bltWinPipe.o \
! 		bltUtil.o bltTree.o  bltWinUtil.o bltInit.o \
! 		bltStubInit.o
  
  DEMO_OBJS     =	tkConsole.o bltWinMain.o
  TK_OBJS       =	tkButton.o tkFrame.o tkScrollbar.o 
***************
*** 117,136 ****
  OBJS          =	bltGraph.o bltGrAxis.o bltGrBar.o bltGrElem.o \
  		bltGrGrid.o bltGrHairs.o bltGrLegd.o bltGrLine.o \
  		bltGrMarker.o bltGrMisc.o bltGrPen.o bltGrPs.o \
! 		bltBeep.o bltBgexec.o bltBitmap.o bltBusy.o \
! 		bltContainer.o bltCutbuffer.o bltDebug.o bltDnd.o \
! 		bltHierbox.o bltHtext.o bltSpline.o bltTable.o \
! 		bltTabset.o bltVector.o bltWatch.o bltWinop.o \
! 		bltCanvEps.o bltBind.o bltColor.o \
! 		bltConfig.o bltImage.o bltList.o bltChain.o \
! 		bltNsUtil.o bltParse.o bltPs.o bltText.o bltTile.o \
! 		bltWinPipe.o bltWinDraw.o bltWinUtil.o bltWinPrnt.o \
! 		bltUtil.o bltWindow.o \
! 		$(TREE_OBJS) $(TK_OBJS) $(N_OBJS) pure_api.o
  
  NOT_YET       =	bltContainer.o bltCutBuffer.o bltColor.o
  
! HEADERS       =	blt.h bltChain.h bltVector.h bltTree.h
  # GNU Make-specific macro
  SRCS          =	$(patsubst %.o,$(srcdir)/%.c,$(OBJS)) 
  
--- 151,168 ----
  OBJS          =	bltGraph.o bltGrAxis.o bltGrBar.o bltGrElem.o \
  		bltGrGrid.o bltGrHairs.o bltGrLegd.o bltGrLine.o \
  		bltGrMarker.o bltGrMisc.o bltGrPen.o bltGrPs.o \
! 		bltBeep.o bltBitmap.o bltBusy.o \
! 		bltContainer.o bltCutbuffer.o bltDnd.o \
! 		bltHierbox.o bltHtext.o bltTable.o \
! 		bltTabset.o bltWinop.o bltCanvEps.o bltBind.o \
! 		bltColor.o bltConfig.o bltImage.o \
! 		bltParse.o bltPs.o bltText.o bltTile.o \
! 		bltWinDraw.o bltWinPrnt.o bltWindow.o \
! 		$(TREE_OBJS) $(TK_OBJS) $(N_OBJS) bltPkgInit.o tkbltStubInit.o
  
  NOT_YET       =	bltContainer.o bltCutBuffer.o bltColor.o
  
! HEADERS       =	blt.h bltChain.h bltVector.h bltTree.h bltList.h bltDecls.h
  # GNU Make-specific macro
  SRCS          =	$(patsubst %.o,$(srcdir)/%.c,$(OBJS)) 
  
***************
*** 144,153 ****
  lib_name =	BLT$(version)
  lib_a =		BLT$(version).lib
  lib_so =	BLT$(version).dll		
  tcl_only_lib_a = BLTlite$(version).lib
  tcl_only_lib_so = BLTlite$(version).dll		
  
! CC_SWITCHES   =	$(CFLAGS) $(EXTRA_CFLAGS) $(DEFINES) $(INCLUDES)
  VPATH         =	$(srcdir)
  
  all: build-library $(SHLIB_TARGET) build-demos
--- 176,186 ----
  lib_name =	BLT$(version)
  lib_a =		BLT$(version).lib
  lib_so =	BLT$(version).dll		
+ lib_stub =	BLTstub$(version).lib		
  tcl_only_lib_a = BLTlite$(version).lib
  tcl_only_lib_so = BLTlite$(version).dll		
  
! CC_SWITCHES   =	$(CFLAGS) $(EXTRA_CFLAGS) $(STUB_CFLAGS) $(DEFINES) $(INCLUDES)
  VPATH         =	$(srcdir)
  
  all: build-library $(SHLIB_TARGET) build-demos
***************
*** 160,171 ****
  
  build-dll: build-library $(lib_so) $(tcl_only_lib_so)
  
! $(bltwish): $(lib_a) tkConsole.o 
  	$(RM) $(bltwish) 
  	$(CC) -c $(CC_SWITCHES) -FobltWinMain.o $(srcdir)/bltWinMain.c
  	LIB=$(TOOLS32)/lib \
  	$(LD) $(LDFLAGS) tkConsole.o bltWinMain.o -out:$(bltwish) \
! 		$(lib_a) $(LIBS) 
  
  $(bltsh): $(tcl_only_lib_a) 
  	$(RM) $(bltsh) 
--- 193,204 ----
  
  build-dll: build-library $(lib_so) $(tcl_only_lib_so)
  
! $(bltwish): $(tcl_only_lib_a) $(lib_a) tkConsole.o 
  	$(RM) $(bltwish) 
  	$(CC) -c $(CC_SWITCHES) -FobltWinMain.o $(srcdir)/bltWinMain.c
  	LIB=$(TOOLS32)/lib \
  	$(LD) $(LDFLAGS) tkConsole.o bltWinMain.o -out:$(bltwish) \
! 		$(tcl_only_lib_a) $(lib_a) $(LIBS) 
  
  $(bltsh): $(tcl_only_lib_a) 
  	$(RM) $(bltsh) 
***************
*** 176,206 ****
  		$(tcl_only_lib_a) $(TCL_ONLY_LIBS) 
  
  $(lib_a):  $(OBJS)
- 	$(RM) bltInit.o
- 	$(CC) -c $(CC_SWITCHES) -FobltInit.o $(srcdir)/bltInit.c
  	$(RM) $@
! 	$(AR) -out:$@ bltInit.o $(OBJS)
  
! $(lib_so): $(lib_a) $(OBJS)
! 	$(RM) bltInit.o
! 	$(CC) -c $(CC_SWITCHES) -FobltInit.o $(srcdir)/bltInit.c
  	$(RM) $@
  	LIB=$(TOOLS32)/lib \
! 	$(LD) $(SHLIB_LDFLAGS) -out:$@ bltInit.o $(OBJS) $(SHLIB_LD_LIBS)
  
  $(tcl_only_lib_a):  $(TCL_ONLY_OBJS)
- 	$(RM) bltInit.o
- 	$(CC) -c $(CC_SWITCHES) -DTCL_ONLY -FobltInit.o $(srcdir)/bltInit.c
  	$(RM) $@
! 	$(AR) -out:$@ bltInit.o $(TCL_ONLY_OBJS) 
  
  $(tcl_only_lib_so): $(tcl_only_lib_a) $(TCL_ONLY_OBJS)
- 	$(RM) bltInit.o
- 	$(CC) -c $(CC_SWITCHES) -DTCL_ONLY -FobltInit.o $(srcdir)/bltInit.c
  	$(RM) $@
  	LIB=$(TOOLS32)/lib \
! 	$(LD) $(SHLIB_LDFLAGS) -out:$@ bltInit.o $(TCL_ONLY_OBJS) \
! 		$(TCL_ONLY_LIBS) 
  
  install-dirs:
  	@for i in $(instdirs) ; do \
--- 209,235 ----
  		$(tcl_only_lib_a) $(TCL_ONLY_LIBS) 
  
  $(lib_a):  $(OBJS)
  	$(RM) $@
! 	$(AR) -out:$@ $(OBJS)
  
! $(lib_so): $(lib_a) $(OBJS) $(lib_stub)
  	$(RM) $@
  	LIB=$(TOOLS32)/lib \
! 	$(LD) $(SHLIB_LDFLAGS) -out:$@ $(OBJS) $(lib_stub) $(COMMON_STUB_LIBS) $(EXTRA_LIBS)
! 
! $(lib_stub):	bltStubLib.o
! 	$(RM) $@
! 	$(AR) -out:$@ bltStubLib.o
  
  $(tcl_only_lib_a):  $(TCL_ONLY_OBJS)
  	$(RM) $@
! 	$(AR) -out:$@ $(TCL_ONLY_OBJS) 
  
  $(tcl_only_lib_so): $(tcl_only_lib_a) $(TCL_ONLY_OBJS)
  	$(RM) $@
  	LIB=$(TOOLS32)/lib \
! 	$(LD) $(SHLIB_LDFLAGS) -out:$@ $(TCL_ONLY_OBJS) \
! 		$(TCL_ONLY_STUB_LIBS) 
  
  install-dirs:
  	@for i in $(instdirs) ; do \
*** src/blt.decls.orig	Sat Apr 29 21:01:56 2000
--- src/blt.decls	Sat Apr 29 21:01:56 2000
***************
*** 0 ****
--- 1,256 ----
+ # blt.decls --
+ #
+ #	This file contains the declarations for all supported public
+ #	functions that are exported by the BLT library via the stubs table.
+ #	This file is used to generate the bltDecls.h file.
+ #	
+ 
+ library blt
+ 
+ # Define the BLT interface:
+ 
+ interface blt
+ hooks {bltPlat tkblt}
+ 
+ # Declare each of the functions in the public BLT interface.  Note that
+ # the an index should never be reused for a different function in order
+ # to preserve backwards compatibility.
+ 
+ declare 0 generic {
+     Blt_VectorId Blt_AllocVectorId(Tcl_Interp *interp, char *name)
+ }
+ declare 1 generic {
+     void Blt_Assert(char *testExpr, char *fileName, int lineNumber)
+ }
+ declare 2 generic {
+     Blt_ChainLink * Blt_ChainAppend(Blt_Chain *chainPtr, ClientData clientData)
+ }
+ declare 3 generic {
+     Blt_Chain * Blt_ChainCreate(void)
+ }
+ declare 4 generic {
+     void Blt_ChainDeleteLink(Blt_Chain *chainPtr, Blt_ChainLink *linkPtr)
+ }
+ declare 5 generic {
+     void Blt_ChainDestroy(Blt_Chain *chainPtr)
+ }
+ declare 6 generic {
+     Blt_ChainLink * Blt_ChainGetNthLink(Blt_Chain *chainPtr, int position)
+ }
+ declare 7 generic {
+     void Blt_ChainInit(Blt_Chain *chainPtr)
+ }
+ declare 8 generic {
+     void Blt_ChainLinkAfter(Blt_Chain *chainPtr, \
+ 	    Blt_ChainLink *linkPtr, Blt_ChainLink *afterPtr)
+ }
+ declare 9 generic {
+     void Blt_ChainLinkBefore(Blt_Chain *chainPtr, \
+ 	    Blt_ChainLink *linkPtr, Blt_ChainLink *afterPtr)
+ }
+ declare 10 generic {
+     Blt_ChainLink * Blt_ChainNewLink(void)
+ }
+ declare 11 generic {
+     Blt_ChainLink * Blt_ChainPrepend(Blt_Chain *chainPtr, ClientData clientData)
+ }
+ declare 12 generic {
+     void Blt_ChainReset(Blt_Chain *chainPtr)
+ }
+ declare 13 generic {
+     void Blt_ChainSort(Blt_Chain *chainPtr, Blt_ChainCompareProc *proc)
+ }
+ declare 14 generic {
+     void Blt_ChainUnlinkLink(Blt_Chain *chainPtr,
+ 	    Blt_ChainLink *linkPtr)
+ }
+ declare 15 generic {
+     void Blt_DStringAppendElements(Tcl_DString *dstring, ...)
+ }
+ declare 16 generic {
+     char * Blt_Dtoa(Tcl_Interp *interp, double value)
+ }
+ declare 17 generic {
+     Tk_Uid Blt_FindUid(char *string)
+ }
+ declare 18 generic {
+     void Blt_FreeUid(Tk_Uid uid)
+ }
+ declare 19 generic {
+     void Blt_FreeVectorId(Blt_VectorId clientId)
+ }
+ declare 20 generic {
+     Blt_OpProc Blt_GetOperation(Tcl_Interp *interp, int nSpecs, \
+ 	    Blt_OpSpec specArr[], Blt_OpIndex iname, int nArgs, \
+ 	    char *argArr[])
+ }
+ declare 21 generic {
+     Tk_Uid Blt_GetUid(char *string)
+ }
+ declare 22 generic {
+     int Blt_GetVectorById(Tcl_Interp *interp, \
+ 	    Blt_VectorId clientId, Blt_Vector **vecPtrPtr)
+ }
+ declare 23 generic {
+     Tcl_Command Blt_InitCmd(Tcl_Interp *interp, char *nameSpace, \
+ 	    Blt_CmdSpec *specPtr)
+ }
+ declare 24 generic {
+     int Blt_InitCmds(Tcl_Interp *interp, char *nameSpace,
+ 	    Blt_CmdSpec *specPtr, int nCmds)
+ }
+ declare 25 generic {
+     void Blt_InitHexTable(char hexTable[])
+ }
+ declare 26 generic {
+     void Blt_InitList(Blt_List *listPtr, int type)
+ }
+ declare 27 generic {
+     char * Blt_Itoa(int value)
+ }
+ declare 28 generic {
+     Blt_ListEntry Blt_ListAppend(Blt_List *listPtr, char *key, \
+ 	    ClientData clientData)
+ }
+ declare 29 generic {
+     Blt_List * Blt_ListCreate(int type)
+ }
+ declare 30 generic {
+     void Blt_ListDestroy(Blt_List *listPtr)
+ }
+ declare 31 generic {
+     Blt_ListEntry Blt_ListFind(Blt_List *listPtr, char *key)
+ }
+ declare 32 generic {
+     void Blt_ListLinkBefore(Blt_List *listPtr, Blt_ListEntry entryPtr, \
+ 	    Blt_ListEntry beforePtr)
+ }
+ declare 33 generic {
+     Blt_ListEntry Blt_ListNewEntry(Blt_List *listPtr, char *key)
+ }
+ declare 34 generic {
+     void Blt_ListReset(Blt_List *listPtr)
+ }
+ declare 35 generic {
+     char * Blt_NameOfVectorId(Blt_VectorId clientId)
+ }
+ declare 36 generic {
+     int Blt_NaturalSpline(double x[], double y[], int length, \
+ 	    double splX[], double splY[], int splLen)
+ }
+ declare 37 generic {
+     void Blt_Panic(char *format, ...)
+ }
+ declare 38 generic {
+     int Blt_QuadraticSpline(double x[], double y[], int length, \
+ 	    double splX[], double splY[], int splLen, double epsilon)
+ }
+ declare 39 generic {
+     void Blt_SetVectorChangedProc(Blt_VectorId clientId, \
+ 	    Blt_VectorChangedProc *proc, ClientData clientData)
+ }
+ declare 40 generic {
+     int Blt_TreeApply(Blt_TreeNode node, Blt_TreeApplyProc *proc, \
+ 	    ClientData clientData)
+ }
+ declare 41 generic {
+     int Blt_TreeCreate(Tcl_Interp *interp, char *pathName)
+ }
+ declare 42 generic {
+     FILE * Blt_OpenUtfFile(char *fileName, char *mode)
+ }
+ declare 43 generic {
+     Blt_TreeNode Blt_TreeCreateNode(Blt_Tree tree, \
+ 	    Blt_TreeNode parent, char *name, int position)
+ }
+ declare 44 generic {
+     int Blt_TreeDeleteNode(Blt_Tree tree, Blt_TreeNode node)
+ }
+ declare 45 generic {
+     Blt_TreeNode Blt_TreeFindChild(Blt_TreeNode parent, char *name)
+ }
+ declare 46 generic {
+     Blt_TreeNode Blt_TreeFirstChild(Blt_TreeNode parent)
+ }
+ declare 47 generic {
+     void Blt_TreeFreeAtom(Blt_Tree tree, Blt_TreeAtom atom)
+ }
+ declare 48 generic {
+     Blt_TreeAtom Blt_TreeGetAtom(Blt_Tree tree, char *string)
+ }
+ declare 49 generic {
+     Blt_TreeNode Blt_TreeGetNode(Blt_Tree tree, unsigned int inode)
+ }
+ declare 50 generic {
+     Blt_Tree Blt_TreeGetToken(Tcl_Interp *interp, char *name, \
+ 	    Blt_TreeNotifyProcs *procsPtr, ClientData clientData)
+ }
+ declare 51 generic {
+     int Blt_TreeGetValue(Blt_TreeNode node, Blt_TreeAtom fieldAtom, \
+ 	    Tcl_Obj **valuePtr)
+ }
+ declare 52 generic {
+     int Blt_TreeIsAncestor(Blt_TreeNode root, \
+ 	    Blt_TreeNode node)
+ }
+ declare 53 generic {
+     int Blt_TreeIsBefore(Blt_TreeNode node1, Blt_TreeNode node2)
+ }
+ declare 54 generic {
+     Blt_TreeNode Blt_TreeLastChild(Blt_TreeNode parent)
+ }
+ declare 55 generic {
+     int Blt_TreeMoveNode(Blt_Tree tree, Blt_TreeNode node, \
+ 	    Blt_TreeNode parent, Blt_TreeNode before)
+ }
+ declare 56 generic {
+     Blt_TreeNode Blt_TreeNextSibling(Blt_TreeNode node)
+ }
+ declare 57 generic {
+     Blt_TreeNode Blt_TreePrevSibling(Blt_TreeNode node)
+ }
+ declare 58 generic {
+     void Blt_TreeReleaseToken(Blt_Tree tree)
+ }
+ declare 59 generic {
+     void Blt_TreeSetNotifyFlags(Blt_Tree tree, unsigned int mask)
+ }
+ declare 60 generic {
+     int Blt_TreeSetValue(Blt_Tree tree, Blt_TreeNode node, \
+ 	    Blt_TreeAtom fieldAtom, Tcl_Obj *valuePtr)
+ }
+ declare 61 generic {
+     int Blt_TreeSize(Blt_TreeNode node)
+ }
+ declare 62 generic {
+     int Blt_TreeSortNode(Blt_TreeNode node, \
+ 	Blt_TreeCompareNodesProc *proc)
+ }
+ declare 63 generic {
+     int Blt_TreeUnsetValue(Blt_Tree tree, Blt_TreeNode node, \
+ 	    Blt_TreeAtom fieldAtom)
+ }
+ declare 64 generic {
+     int Blt_VectorExists(Tcl_Interp *interp, char *vecName)
+ }
+ declare 65 generic {
+     int Blt_VectorNotifyPending(Blt_VectorId clientId)
+ }
+ declare 66 generic {
+     void Blt_ListDeleteEntry (Blt_ListEntry entry)
+ }
+ 
+ interface bltPlat
+ 
+ declare 0 win {
+     char *Blt_EmulateStrdup(CONST char *string)
+ }
+ declare 1 win {
+     int Blt_GetPlatformId(void)
+ }
+ declare 2 win {
+     void *Blt_EmulateCalloc(unsigned int size, unsigned int nElems)
+ }
+ declare 3 win {
+     char *Blt_LastError(void)
+ }
*** src/blt.h.orig	Tue Mar 21 01:26:57 2000
--- src/blt.h	Sat Apr 29 21:01:57 2000
***************
*** 35,57 ****
  #include <tcl.h>
  #include <tk.h>
  
! #ifndef EXPORT
! #define EXPORT
  #endif
  
! #undef EXTERN
  
  #ifdef __cplusplus
! #   define EXTERN extern "C" EXPORT
  #else
! #   define EXTERN extern EXPORT
  #endif
  
  #ifndef _ANSI_ARGS_
  #   define _ANSI_ARGS_(x)       ()
  #endif
  
! #include "bltVector.h"
  
  EXTERN int Blt_GetOpenPrinter _ANSI_ARGS_((Tcl_Interp *interp, const char *id,
  	Drawable *drawablePtr));
--- 35,137 ----
  #include <tcl.h>
  #include <tk.h>
  
! #undef DLLIMPORT
! #undef DLLEXPORT
! 
! #ifdef STATIC_BUILD
! # define DLLIMPORT
! # define DLLEXPORT
! #else
! # if defined(__WIN32__) && (defined(_MSC_VER) || (defined(__GNUC__) && defined(__declspec)))
! #   define DLLIMPORT __declspec(dllimport)
! #   define DLLEXPORT __declspec(dllexport)
! # else
! #  define DLLIMPORT
! #  define DLLEXPORT
! # endif
  #endif
  
! #undef TCL_STORAGE_CLASS
! #ifdef BUILD_blt
! # define TCL_STORAGE_CLASS DLLEXPORT
! #else
! # ifdef USE_TCL_STUBS
! #  define TCL_STORAGE_CLASS
! # else
! #  define TCL_STORAGE_CLASS DLLIMPORT
! # endif
! #endif
  
+ #undef EXTERN
  #ifdef __cplusplus
! #   define EXTERN extern "C" TCL_STORAGE_CLASS
  #else
! #   define EXTERN extern TCL_STORAGE_CLASS
  #endif
  
  #ifndef _ANSI_ARGS_
  #   define _ANSI_ARGS_(x)       ()
  #endif
  
! #ifdef __cplusplus
! #define ANYARGS (...)
! #else
! #define ANYARGS ()
! #endif
! 
! /*
!  * ----------------------------------------------------------------------
!  *
!  * Blt_CmdSpec --
!  *
!  * ----------------------------------------------------------------------
!  */
! typedef struct {
!     char *name;			/* Name of command */
!     Tcl_CmdProc *cmdProc;
!     Tcl_CmdDeleteProc *cmdDeleteProc;
!     ClientData clientData;
! } Blt_CmdSpec;
! 
! /*
!  * ----------------------------------------------------------------------
!  *
!  * Blt_OpProc --
!  *
!  * 	Generic function prototype of CmdOptions.
!  *
!  * ----------------------------------------------------------------------
!  */
! typedef int (*Blt_OpProc) _ANSI_ARGS_(ANYARGS);
! 
! /*
!  * ----------------------------------------------------------------------
!  *
!  * Blt_OpSpec --
!  *
!  * 	Structure to specify a set of operations for a Tcl command.
!  *      This is passed to the Blt_GetOperation procedure to look
!  *      for a function pointer associated with the operation name.
!  *
!  * ----------------------------------------------------------------------
!  */
! typedef struct {
!     char *name;			/* Name of operation */
!     int minChars;		/* Minimum # characters to disambiguate */
!     Blt_OpProc proc;
!     int minArgs;		/* Minimum # args required */
!     int maxArgs;		/* Maximum # args required */
!     char *usage;		/* Usage message */
! 
! } Blt_OpSpec;
! 
! typedef enum {
!     BLT_OPER_ARG0,		/* Operation is the first argument. */
!     BLT_OPER_ARG1,		/* Operation is the second argument. */
!     BLT_OPER_ARG2,		/* Operation is the third argument. */
!     BLT_OPER_ARG3,		/* Operation is the fourth argument. */
!     BLT_OPER_ARG4		/* Operation is the fifth argument. */
! } Blt_OpIndex;
  
  EXTERN int Blt_GetOpenPrinter _ANSI_ARGS_((Tcl_Interp *interp, const char *id,
  	Drawable *drawablePtr));
***************
*** 59,63 ****
--- 139,167 ----
  EXTERN int Blt_StartPrintJob _ANSI_ARGS_((Tcl_Interp *interp, const char *id));
  
  EXTERN int Blt_EndPrintJob _ANSI_ARGS_((Tcl_Interp *interp, const char *id));
+ 
+ EXTERN int Bltlite_Init(Tcl_Interp *interp);
+ EXTERN int Bltlite_SafeInit(Tcl_Interp *interp);
+ EXTERN int Blt_Init(Tcl_Interp *interp);
+ EXTERN int Blt_SafeInit(Tcl_Interp *interp);
+ 
+ #include "bltVector.h"
+ 
+ #include "bltChain.h"
+ 
+ #include "bltList.h"
+ 
+ #include "bltTree.h"
+ 
+ #include "bltDecls.h"
+ 
+ #undef TCL_STORAGE_CLASS
+ #define TCL_STORAGE_CLASS
+ 
+ char *Bltlite_InitStubs _ANSI_ARGS_((Tcl_Interp *interp, char *version, int exact));
+ char *Blt_InitStubs _ANSI_ARGS_((Tcl_Interp *interp, char *version, int exact));
+ 
+ #undef TCL_STORAGE_CLASS
+ #define TCL_STORAGE_CLASS DLLIMPORT
  
  #endif /*_BLT_H*/
*** src/bltBgexec.c.orig	Fri Mar 17 22:52:29 2000
--- src/bltBgexec.c	Sat Apr 29 21:01:57 2000
***************
*** 32,37 ****
--- 32,50 ----
  
  #ifndef NO_BGEXEC
  
+ /*
+  *   This definition of bltliteStubPtr is a
+  *   workaround for the fact that the source code for BLTlite
+  *   and BLT are in the same directory. If they were separated,
+  *   then BLTlite could be compiled without -DUSE_BLT_STUBS.
+  *   Then this trick wouldn't be necessary.
+  */
+ 
+ extern BltStubs bltStubs;
+ #define bltStubsPtr (&bltStubs)
+ extern BltPlatStubs bltPlatStubs;
+ #define bltPlatStubsPtr (&bltPlatStubs)
+ 
  #include <fcntl.h>
  #include <signal.h>
  #ifdef HAVE_SYS_PARAM_H
*** src/bltCanvEps.c.orig	Tue Oct 26 06:29:46 1999
--- src/bltCanvEps.c	Sat Apr 29 21:01:57 2000
***************
*** 1737,1746 ****
  {
      "eps",			/* name */
      sizeof(EpsItem),		/* itemSize */
!     CreateEps,			/* createProc */
      configSpecs,		/* configSpecs */
!     ConfigureEps,		/* configureProc */
!     EpsCoords,			/* coordProc */
      DeleteEps,			/* deleteProc */
      DisplayEps,			/* displayProc */
      0,				/* alwaysRedraw */
--- 1737,1746 ----
  {
      "eps",			/* name */
      sizeof(EpsItem),		/* itemSize */
!     (Tk_ItemCreateProc *) CreateEps, /* createProc */
      configSpecs,		/* configSpecs */
!     (Tk_ItemConfigureProc *) ConfigureEps, /* configureProc */
!     (Tk_ItemCoordProc *) EpsCoords, /* coordProc */
      DeleteEps,			/* deleteProc */
      DisplayEps,			/* displayProc */
      0,				/* alwaysRedraw */
*** src/bltChain.c.orig	Fri Oct  8 08:40:46 1999
--- src/bltChain.c	Sat Apr 29 21:01:57 2000
***************
*** 25,31 ****
   */
  
  #include "bltInt.h"
! #include "bltChain.h"
  /*
   *----------------------------------------------------------------------
   *
--- 25,56 ----
   */
  
  #include "bltInt.h"
! 
! /*
!  *   This list of undef's and the definition of bltStubPtr are
!  *   workarounds for the fact that the source code for BLTlite
!  *   and BLT are in the same directory. If they were separated,
!  *   then BLTlite could be compiled without -DUSE_BLT_STUBS.
!  *   Then this trick wouldn't be necessary.
!  */
! 
! #undef Blt_ChainAppend
! #undef Blt_ChainCreate
! #undef Blt_ChainDeleteLink
! #undef Blt_ChainDestroy
! #undef Blt_ChainGetNthLink
! #undef Blt_ChainInit
! #undef Blt_ChainLinkAfter
! #undef Blt_ChainLinkBefore
! #undef Blt_ChainNewLink
! #undef Blt_ChainPrepend
! #undef Blt_ChainReset
! #undef Blt_ChainSort
! #undef Blt_ChainUnlinkLink
! 
! extern BltStubs bltStubs;
! #define bltStubsPtr (&bltStubs)
! 
  /*
   *----------------------------------------------------------------------
   *
*** src/bltChain.h.orig	Thu Mar 16 08:27:00 2000
--- src/bltChain.h	Sat Apr 29 21:01:57 2000
***************
*** 47,71 ****
      int nLinks;			/* Number of elements in chain */
  };
  
! extern void Blt_ChainInit _ANSI_ARGS_((Blt_Chain * chainPtr));
! extern Blt_Chain *Blt_ChainCreate _ANSI_ARGS_(());
! extern void Blt_ChainDestroy _ANSI_ARGS_((Blt_Chain * chainPtr));
! extern Blt_ChainLink *Blt_ChainNewLink _ANSI_ARGS_((void));
! extern Blt_ChainLink *Blt_ChainAppend _ANSI_ARGS_((Blt_Chain * chainPtr,
  	ClientData clientData));
! extern Blt_ChainLink *Blt_ChainPrepend _ANSI_ARGS_((Blt_Chain * chainPtr,
  	ClientData clientData));
! extern void Blt_ChainReset _ANSI_ARGS_((Blt_Chain * chainPtr));
! extern void Blt_ChainLinkAfter _ANSI_ARGS_((Blt_Chain * chainPtr,
  	Blt_ChainLink * linkPtr, Blt_ChainLink * afterLinkPtr));
! extern void Blt_ChainLinkBefore _ANSI_ARGS_((Blt_Chain * chainPtr,
  	Blt_ChainLink * linkPtr, Blt_ChainLink * beforeLinkPtr));
! extern void Blt_ChainUnlinkLink _ANSI_ARGS_((Blt_Chain * chainPtr,
  	Blt_ChainLink * linkPtr));
! extern void Blt_ChainDeleteLink _ANSI_ARGS_((Blt_Chain * chainPtr,
  	Blt_ChainLink * linkPtr));
! extern Blt_ChainLink *Blt_ChainGetNthLink _ANSI_ARGS_((Blt_Chain * chainPtr, int n));
! extern void Blt_ChainSort _ANSI_ARGS_((Blt_Chain * chainPtr,
  	Blt_ChainCompareProc * proc));
  
  #define Blt_ChainGetLength(c)	(((c) == NULL) ? 0 : (c)->nLinks)
--- 47,71 ----
      int nLinks;			/* Number of elements in chain */
  };
  
! EXTERN void Blt_ChainInit _ANSI_ARGS_((Blt_Chain * chainPtr));
! EXTERN Blt_Chain *Blt_ChainCreate _ANSI_ARGS_(());
! EXTERN void Blt_ChainDestroy _ANSI_ARGS_((Blt_Chain * chainPtr));
! EXTERN Blt_ChainLink *Blt_ChainNewLink _ANSI_ARGS_((void));
! EXTERN Blt_ChainLink *Blt_ChainAppend _ANSI_ARGS_((Blt_Chain * chainPtr,
  	ClientData clientData));
! EXTERN Blt_ChainLink *Blt_ChainPrepend _ANSI_ARGS_((Blt_Chain * chainPtr,
  	ClientData clientData));
! EXTERN void Blt_ChainReset _ANSI_ARGS_((Blt_Chain * chainPtr));
! EXTERN void Blt_ChainLinkAfter _ANSI_ARGS_((Blt_Chain * chainPtr,
  	Blt_ChainLink * linkPtr, Blt_ChainLink * afterLinkPtr));
! EXTERN void Blt_ChainLinkBefore _ANSI_ARGS_((Blt_Chain * chainPtr,
  	Blt_ChainLink * linkPtr, Blt_ChainLink * beforeLinkPtr));
! EXTERN void Blt_ChainUnlinkLink _ANSI_ARGS_((Blt_Chain * chainPtr,
  	Blt_ChainLink * linkPtr));
! EXTERN void Blt_ChainDeleteLink _ANSI_ARGS_((Blt_Chain * chainPtr,
  	Blt_ChainLink * linkPtr));
! EXTERN Blt_ChainLink *Blt_ChainGetNthLink _ANSI_ARGS_((Blt_Chain * chainPtr, int n));
! EXTERN void Blt_ChainSort _ANSI_ARGS_((Blt_Chain * chainPtr,
  	Blt_ChainCompareProc * proc));
  
  #define Blt_ChainGetLength(c)	(((c) == NULL) ? 0 : (c)->nLinks)
*** src/bltColor.c.orig	Thu Dec 16 22:51:30 1999
--- src/bltColor.c	Sat Apr 29 21:01:57 2000
***************
*** 432,438 ****
   *----------------------------------------------------------------------
   */
  static float
! Var(cubePtr, statsPtr)
      struct box *cubePtr;
      ColorStats *statsPtr;
  {
--- 432,438 ----
   *----------------------------------------------------------------------
   */
  static float
! Variance(cubePtr, statsPtr)
      struct box *cubePtr;
      ColorStats *statsPtr;
  {
***************
*** 897,905 ****
  		 * Volume test ensures we won't try to cut one-cell box
  		 */
  		vv[next] = (cubeArr[next].vol > 1) ?
! 		    Var(cubeArr + next, statsPtr) : 0.0;
  		vv[i] = (cubeArr[i].vol > 1) ?
! 		    Var(cubeArr + i, statsPtr) : 0.0;
  	    } else {
  		vv[next] = 0.0;	/* don't try to split this box again */
  		i--;		/* didn't create box i */
--- 897,905 ----
  		 * Volume test ensures we won't try to cut one-cell box
  		 */
  		vv[next] = (cubeArr[next].vol > 1) ?
! 		    Variance(cubeArr + next, statsPtr) : 0.0;
  		vv[i] = (cubeArr[i].vol > 1) ?
! 		    Variance(cubeArr + i, statsPtr) : 0.0;
  	    } else {
  		vv[next] = 0.0;	/* don't try to split this box again */
  		i--;		/* didn't create box i */
***************
*** 1092,1100 ****
  	     * Volume test ensures we won't try to cut one-cell box
  	     */
  	    vv[next] = (cubeArr[next].vol > 1) ?
! 		Var(cubeArr + next, statsPtr) : 0.0;
  	    vv[i] = (cubeArr[i].vol > 1) ?
! 		Var(cubeArr + i, statsPtr) : 0.0;
  	} else {
  	    vv[next] = 0.0;	/* don't try to split this box again */
  	    i--;		/* didn't create box i */
--- 1092,1100 ----
  	     * Volume test ensures we won't try to cut one-cell box
  	     */
  	    vv[next] = (cubeArr[next].vol > 1) ?
! 		Variance(cubeArr + next, statsPtr) : 0.0;
  	    vv[i] = (cubeArr[i].vol > 1) ?
! 		Variance(cubeArr + i, statsPtr) : 0.0;
  	} else {
  	    vv[next] = 0.0;	/* don't try to split this box again */
  	    i--;		/* didn't create box i */
*** src/bltDebug.c.orig	Thu Mar 16 08:27:00 2000
--- src/bltDebug.c	Sat Apr 29 21:01:57 2000
***************
*** 24,32 ****
   */
  
  #include "bltInt.h"
- #include "bltChain.h"
  
  #ifndef NO_BLTDEBUG
  
  static Blt_Chain watchChain;
  
--- 24,44 ----
   */
  
  #include "bltInt.h"
  
  #ifndef NO_BLTDEBUG
+ 
+ /*
+  *   This definition of bltStubPtr is a
+  *   workarounds for the fact that the source code for BLTlite
+  *   and BLT are in the same directory. If they were separated,
+  *   then BLTlite could be compiled without -DUSE_BLT_STUBS.
+  *   Then this trick wouldn't be necessary.
+  */
+ 
+ extern BltStubs bltStubs;
+ #define bltStubsPtr (&bltStubs)
+ extern BltPlatStubs bltPlatStubs;
+ #define bltPlatStubsPtr (&bltPlatStubs)
  
  static Blt_Chain watchChain;
  
*** src/bltDecls.h.orig	Sat Apr 29 21:01:57 2000
--- src/bltDecls.h	Sat Apr 29 21:01:57 2000
***************
*** 0 ****
--- 1,587 ----
+ /*
+  * bltDecls.h --
+  *
+  *	Declarations of functions in the platform independent public BLT API.
+  *
+  */
+ 
+ #ifndef _BLTLITEDECLS
+ #define _BLTLITEDECLS
+ 
+ /*
+  * WARNING: This file is automatically generated by the cf/genStubs.tcl
+  * script.  Any modifications to the function declarations below should be made
+  * in the src/blt.decls script.
+  */
+ 
+ /* !BEGIN!: Do not edit below this line. */
+ 
+ /*
+  * Exported function declarations:
+  */
+ 
+ /* 0 */
+ EXTERN Blt_VectorId	Blt_AllocVectorId _ANSI_ARGS_((Tcl_Interp * interp, 
+ 				char * name));
+ /* 1 */
+ EXTERN void		Blt_Assert _ANSI_ARGS_((char * testExpr, 
+ 				char * fileName, int lineNumber));
+ /* 2 */
+ EXTERN Blt_ChainLink *	Blt_ChainAppend _ANSI_ARGS_((Blt_Chain * chainPtr, 
+ 				ClientData clientData));
+ /* 3 */
+ EXTERN Blt_Chain *	Blt_ChainCreate _ANSI_ARGS_((void));
+ /* 4 */
+ EXTERN void		Blt_ChainDeleteLink _ANSI_ARGS_((
+ 				Blt_Chain * chainPtr, 
+ 				Blt_ChainLink * linkPtr));
+ /* 5 */
+ EXTERN void		Blt_ChainDestroy _ANSI_ARGS_((Blt_Chain * chainPtr));
+ /* 6 */
+ EXTERN Blt_ChainLink *	Blt_ChainGetNthLink _ANSI_ARGS_((
+ 				Blt_Chain * chainPtr, int position));
+ /* 7 */
+ EXTERN void		Blt_ChainInit _ANSI_ARGS_((Blt_Chain * chainPtr));
+ /* 8 */
+ EXTERN void		Blt_ChainLinkAfter _ANSI_ARGS_((Blt_Chain * chainPtr, 
+ 				Blt_ChainLink * linkPtr, 
+ 				Blt_ChainLink * afterPtr));
+ /* 9 */
+ EXTERN void		Blt_ChainLinkBefore _ANSI_ARGS_((
+ 				Blt_Chain * chainPtr, 
+ 				Blt_ChainLink * linkPtr, 
+ 				Blt_ChainLink * afterPtr));
+ /* 10 */
+ EXTERN Blt_ChainLink *	Blt_ChainNewLink _ANSI_ARGS_((void));
+ /* 11 */
+ EXTERN Blt_ChainLink *	Blt_ChainPrepend _ANSI_ARGS_((Blt_Chain * chainPtr, 
+ 				ClientData clientData));
+ /* 12 */
+ EXTERN void		Blt_ChainReset _ANSI_ARGS_((Blt_Chain * chainPtr));
+ /* 13 */
+ EXTERN void		Blt_ChainSort _ANSI_ARGS_((Blt_Chain * chainPtr, 
+ 				Blt_ChainCompareProc * proc));
+ /* 14 */
+ EXTERN void		Blt_ChainUnlinkLink _ANSI_ARGS_((
+ 				Blt_Chain * chainPtr, 
+ 				Blt_ChainLink * linkPtr));
+ /* 15 */
+ EXTERN void		Blt_DStringAppendElements _ANSI_ARGS_(TCL_VARARGS(Tcl_DString *,dstring));
+ /* 16 */
+ EXTERN char *		Blt_Dtoa _ANSI_ARGS_((Tcl_Interp * interp, 
+ 				double value));
+ /* 17 */
+ EXTERN Tk_Uid		Blt_FindUid _ANSI_ARGS_((char * string));
+ /* 18 */
+ EXTERN void		Blt_FreeUid _ANSI_ARGS_((Tk_Uid uid));
+ /* 19 */
+ EXTERN void		Blt_FreeVectorId _ANSI_ARGS_((Blt_VectorId clientId));
+ /* 20 */
+ EXTERN Blt_OpProc	Blt_GetOperation _ANSI_ARGS_((Tcl_Interp * interp, 
+ 				int nSpecs, Blt_OpSpec specArr[], 
+ 				Blt_OpIndex iname, int nArgs, 
+ 				char * argArr[]));
+ /* 21 */
+ EXTERN Tk_Uid		Blt_GetUid _ANSI_ARGS_((char * string));
+ /* 22 */
+ EXTERN int		Blt_GetVectorById _ANSI_ARGS_((Tcl_Interp * interp, 
+ 				Blt_VectorId clientId, 
+ 				Blt_Vector ** vecPtrPtr));
+ /* 23 */
+ EXTERN Tcl_Command	Blt_InitCmd _ANSI_ARGS_((Tcl_Interp * interp, 
+ 				char * nameSpace, Blt_CmdSpec * specPtr));
+ /* 24 */
+ EXTERN int		Blt_InitCmds _ANSI_ARGS_((Tcl_Interp * interp, 
+ 				char * nameSpace, Blt_CmdSpec * specPtr, 
+ 				int nCmds));
+ /* 25 */
+ EXTERN void		Blt_InitHexTable _ANSI_ARGS_((char hexTable[]));
+ /* 26 */
+ EXTERN void		Blt_InitList _ANSI_ARGS_((Blt_List * listPtr, 
+ 				int type));
+ /* 27 */
+ EXTERN char *		Blt_Itoa _ANSI_ARGS_((int value));
+ /* 28 */
+ EXTERN Blt_ListEntry	Blt_ListAppend _ANSI_ARGS_((Blt_List * listPtr, 
+ 				char * key, ClientData clientData));
+ /* 29 */
+ EXTERN Blt_List *	Blt_ListCreate _ANSI_ARGS_((int type));
+ /* 30 */
+ EXTERN void		Blt_ListDestroy _ANSI_ARGS_((Blt_List * listPtr));
+ /* 31 */
+ EXTERN Blt_ListEntry	Blt_ListFind _ANSI_ARGS_((Blt_List * listPtr, 
+ 				char * key));
+ /* 32 */
+ EXTERN void		Blt_ListLinkBefore _ANSI_ARGS_((Blt_List * listPtr, 
+ 				Blt_ListEntry entryPtr, 
+ 				Blt_ListEntry beforePtr));
+ /* 33 */
+ EXTERN Blt_ListEntry	Blt_ListNewEntry _ANSI_ARGS_((Blt_List * listPtr, 
+ 				char * key));
+ /* 34 */
+ EXTERN void		Blt_ListReset _ANSI_ARGS_((Blt_List * listPtr));
+ /* 35 */
+ EXTERN char *		Blt_NameOfVectorId _ANSI_ARGS_((
+ 				Blt_VectorId clientId));
+ /* 36 */
+ EXTERN int		Blt_NaturalSpline _ANSI_ARGS_((double x[], 
+ 				double y[], int length, double splX[], 
+ 				double splY[], int splLen));
+ /* 37 */
+ EXTERN void		Blt_Panic _ANSI_ARGS_(TCL_VARARGS(char *,format));
+ /* 38 */
+ EXTERN int		Blt_QuadraticSpline _ANSI_ARGS_((double x[], 
+ 				double y[], int length, double splX[], 
+ 				double splY[], int splLen, double epsilon));
+ /* 39 */
+ EXTERN void		Blt_SetVectorChangedProc _ANSI_ARGS_((
+ 				Blt_VectorId clientId, 
+ 				Blt_VectorChangedProc * proc, 
+ 				ClientData clientData));
+ /* 40 */
+ EXTERN int		Blt_TreeApply _ANSI_ARGS_((Blt_TreeNode node, 
+ 				Blt_TreeApplyProc * proc, 
+ 				ClientData clientData));
+ /* 41 */
+ EXTERN int		Blt_TreeCreate _ANSI_ARGS_((Tcl_Interp * interp, 
+ 				char * pathName));
+ /* 42 */
+ EXTERN FILE *		Blt_OpenUtfFile _ANSI_ARGS_((char * fileName, 
+ 				char * mode));
+ /* 43 */
+ EXTERN Blt_TreeNode	Blt_TreeCreateNode _ANSI_ARGS_((Blt_Tree tree, 
+ 				Blt_TreeNode parent, char * name, 
+ 				int position));
+ /* 44 */
+ EXTERN int		Blt_TreeDeleteNode _ANSI_ARGS_((Blt_Tree tree, 
+ 				Blt_TreeNode node));
+ /* 45 */
+ EXTERN Blt_TreeNode	Blt_TreeFindChild _ANSI_ARGS_((Blt_TreeNode parent, 
+ 				char * name));
+ /* 46 */
+ EXTERN Blt_TreeNode	Blt_TreeFirstChild _ANSI_ARGS_((Blt_TreeNode parent));
+ /* 47 */
+ EXTERN void		Blt_TreeFreeAtom _ANSI_ARGS_((Blt_Tree tree, 
+ 				Blt_TreeAtom atom));
+ /* 48 */
+ EXTERN Blt_TreeAtom	Blt_TreeGetAtom _ANSI_ARGS_((Blt_Tree tree, 
+ 				char * string));
+ /* 49 */
+ EXTERN Blt_TreeNode	Blt_TreeGetNode _ANSI_ARGS_((Blt_Tree tree, 
+ 				unsigned int inode));
+ /* 50 */
+ EXTERN Blt_Tree		Blt_TreeGetToken _ANSI_ARGS_((Tcl_Interp * interp, 
+ 				char * name, Blt_TreeNotifyProcs * procsPtr, 
+ 				ClientData clientData));
+ /* 51 */
+ EXTERN int		Blt_TreeGetValue _ANSI_ARGS_((Blt_TreeNode node, 
+ 				Blt_TreeAtom fieldAtom, Tcl_Obj ** valuePtr));
+ /* 52 */
+ EXTERN int		Blt_TreeIsAncestor _ANSI_ARGS_((Blt_TreeNode root, 
+ 				Blt_TreeNode node));
+ /* 53 */
+ EXTERN int		Blt_TreeIsBefore _ANSI_ARGS_((Blt_TreeNode node1, 
+ 				Blt_TreeNode node2));
+ /* 54 */
+ EXTERN Blt_TreeNode	Blt_TreeLastChild _ANSI_ARGS_((Blt_TreeNode parent));
+ /* 55 */
+ EXTERN int		Blt_TreeMoveNode _ANSI_ARGS_((Blt_Tree tree, 
+ 				Blt_TreeNode node, Blt_TreeNode parent, 
+ 				Blt_TreeNode before));
+ /* 56 */
+ EXTERN Blt_TreeNode	Blt_TreeNextSibling _ANSI_ARGS_((Blt_TreeNode node));
+ /* 57 */
+ EXTERN Blt_TreeNode	Blt_TreePrevSibling _ANSI_ARGS_((Blt_TreeNode node));
+ /* 58 */
+ EXTERN void		Blt_TreeReleaseToken _ANSI_ARGS_((Blt_Tree tree));
+ /* 59 */
+ EXTERN void		Blt_TreeSetNotifyFlags _ANSI_ARGS_((Blt_Tree tree, 
+ 				unsigned int mask));
+ /* 60 */
+ EXTERN int		Blt_TreeSetValue _ANSI_ARGS_((Blt_Tree tree, 
+ 				Blt_TreeNode node, Blt_TreeAtom fieldAtom, 
+ 				Tcl_Obj * valuePtr));
+ /* 61 */
+ EXTERN int		Blt_TreeSize _ANSI_ARGS_((Blt_TreeNode node));
+ /* 62 */
+ EXTERN int		Blt_TreeSortNode _ANSI_ARGS_((Blt_TreeNode node, 
+ 				Blt_TreeCompareNodesProc * proc));
+ /* 63 */
+ EXTERN int		Blt_TreeUnsetValue _ANSI_ARGS_((Blt_Tree tree, 
+ 				Blt_TreeNode node, Blt_TreeAtom fieldAtom));
+ /* 64 */
+ EXTERN int		Blt_VectorExists _ANSI_ARGS_((Tcl_Interp * interp, 
+ 				char * vecName));
+ /* 65 */
+ EXTERN int		Blt_VectorNotifyPending _ANSI_ARGS_((
+ 				Blt_VectorId clientId));
+ /* 66 */
+ EXTERN void		Blt_ListDeleteEntry _ANSI_ARGS_((Blt_ListEntry entry));
+ 
+ typedef struct BltStubHooks {
+     struct BltPlatStubs *bltPlatStubs;
+     struct TkbltStubs *tkbltStubs;
+ } BltStubHooks;
+ 
+ typedef struct BltStubs {
+     int magic;
+     struct BltStubHooks *hooks;
+ 
+     Blt_VectorId (*blt_AllocVectorId) _ANSI_ARGS_((Tcl_Interp * interp, char * name)); /* 0 */
+     void (*blt_Assert) _ANSI_ARGS_((char * testExpr, char * fileName, int lineNumber)); /* 1 */
+     Blt_ChainLink * (*blt_ChainAppend) _ANSI_ARGS_((Blt_Chain * chainPtr, ClientData clientData)); /* 2 */
+     Blt_Chain * (*blt_ChainCreate) _ANSI_ARGS_((void)); /* 3 */
+     void (*blt_ChainDeleteLink) _ANSI_ARGS_((Blt_Chain * chainPtr, Blt_ChainLink * linkPtr)); /* 4 */
+     void (*blt_ChainDestroy) _ANSI_ARGS_((Blt_Chain * chainPtr)); /* 5 */
+     Blt_ChainLink * (*blt_ChainGetNthLink) _ANSI_ARGS_((Blt_Chain * chainPtr, int position)); /* 6 */
+     void (*blt_ChainInit) _ANSI_ARGS_((Blt_Chain * chainPtr)); /* 7 */
+     void (*blt_ChainLinkAfter) _ANSI_ARGS_((Blt_Chain * chainPtr, Blt_ChainLink * linkPtr, Blt_ChainLink * afterPtr)); /* 8 */
+     void (*blt_ChainLinkBefore) _ANSI_ARGS_((Blt_Chain * chainPtr, Blt_ChainLink * linkPtr, Blt_ChainLink * afterPtr)); /* 9 */
+     Blt_ChainLink * (*blt_ChainNewLink) _ANSI_ARGS_((void)); /* 10 */
+     Blt_ChainLink * (*blt_ChainPrepend) _ANSI_ARGS_((Blt_Chain * chainPtr, ClientData clientData)); /* 11 */
+     void (*blt_ChainReset) _ANSI_ARGS_((Blt_Chain * chainPtr)); /* 12 */
+     void (*blt_ChainSort) _ANSI_ARGS_((Blt_Chain * chainPtr, Blt_ChainCompareProc * proc)); /* 13 */
+     void (*blt_ChainUnlinkLink) _ANSI_ARGS_((Blt_Chain * chainPtr, Blt_ChainLink * linkPtr)); /* 14 */
+     void (*blt_DStringAppendElements) _ANSI_ARGS_(TCL_VARARGS(Tcl_DString *,dstring)); /* 15 */
+     char * (*blt_Dtoa) _ANSI_ARGS_((Tcl_Interp * interp, double value)); /* 16 */
+     Tk_Uid (*blt_FindUid) _ANSI_ARGS_((char * string)); /* 17 */
+     void (*blt_FreeUid) _ANSI_ARGS_((Tk_Uid uid)); /* 18 */
+     void (*blt_FreeVectorId) _ANSI_ARGS_((Blt_VectorId clientId)); /* 19 */
+     Blt_OpProc (*blt_GetOperation) _ANSI_ARGS_((Tcl_Interp * interp, int nSpecs, Blt_OpSpec specArr[], Blt_OpIndex iname, int nArgs, char * argArr[])); /* 20 */
+     Tk_Uid (*blt_GetUid) _ANSI_ARGS_((char * string)); /* 21 */
+     int (*blt_GetVectorById) _ANSI_ARGS_((Tcl_Interp * interp, Blt_VectorId clientId, Blt_Vector ** vecPtrPtr)); /* 22 */
+     Tcl_Command (*blt_InitCmd) _ANSI_ARGS_((Tcl_Interp * interp, char * nameSpace, Blt_CmdSpec * specPtr)); /* 23 */
+     int (*blt_InitCmds) _ANSI_ARGS_((Tcl_Interp * interp, char * nameSpace, Blt_CmdSpec * specPtr, int nCmds)); /* 24 */
+     void (*blt_InitHexTable) _ANSI_ARGS_((char hexTable[])); /* 25 */
+     void (*blt_InitList) _ANSI_ARGS_((Blt_List * listPtr, int type)); /* 26 */
+     char * (*blt_Itoa) _ANSI_ARGS_((int value)); /* 27 */
+     Blt_ListEntry (*blt_ListAppend) _ANSI_ARGS_((Blt_List * listPtr, char * key, ClientData clientData)); /* 28 */
+     Blt_List * (*blt_ListCreate) _ANSI_ARGS_((int type)); /* 29 */
+     void (*blt_ListDestroy) _ANSI_ARGS_((Blt_List * listPtr)); /* 30 */
+     Blt_ListEntry (*blt_ListFind) _ANSI_ARGS_((Blt_List * listPtr, char * key)); /* 31 */
+     void (*blt_ListLinkBefore) _ANSI_ARGS_((Blt_List * listPtr, Blt_ListEntry entryPtr, Blt_ListEntry beforePtr)); /* 32 */
+     Blt_ListEntry (*blt_ListNewEntry) _ANSI_ARGS_((Blt_List * listPtr, char * key)); /* 33 */
+     void (*blt_ListReset) _ANSI_ARGS_((Blt_List * listPtr)); /* 34 */
+     char * (*blt_NameOfVectorId) _ANSI_ARGS_((Blt_VectorId clientId)); /* 35 */
+     int (*blt_NaturalSpline) _ANSI_ARGS_((double x[], double y[], int length, double splX[], double splY[], int splLen)); /* 36 */
+     void (*blt_Panic) _ANSI_ARGS_(TCL_VARARGS(char *,format)); /* 37 */
+     int (*blt_QuadraticSpline) _ANSI_ARGS_((double x[], double y[], int length, double splX[], double splY[], int splLen, double epsilon)); /* 38 */
+     void (*blt_SetVectorChangedProc) _ANSI_ARGS_((Blt_VectorId clientId, Blt_VectorChangedProc * proc, ClientData clientData)); /* 39 */
+     int (*blt_TreeApply) _ANSI_ARGS_((Blt_TreeNode node, Blt_TreeApplyProc * proc, ClientData clientData)); /* 40 */
+     int (*blt_TreeCreate) _ANSI_ARGS_((Tcl_Interp * interp, char * pathName)); /* 41 */
+     FILE * (*blt_OpenUtfFile) _ANSI_ARGS_((char * fileName, char * mode)); /* 42 */
+     Blt_TreeNode (*blt_TreeCreateNode) _ANSI_ARGS_((Blt_Tree tree, Blt_TreeNode parent, char * name, int position)); /* 43 */
+     int (*blt_TreeDeleteNode) _ANSI_ARGS_((Blt_Tree tree, Blt_TreeNode node)); /* 44 */
+     Blt_TreeNode (*blt_TreeFindChild) _ANSI_ARGS_((Blt_TreeNode parent, char * name)); /* 45 */
+     Blt_TreeNode (*blt_TreeFirstChild) _ANSI_ARGS_((Blt_TreeNode parent)); /* 46 */
+     void (*blt_TreeFreeAtom) _ANSI_ARGS_((Blt_Tree tree, Blt_TreeAtom atom)); /* 47 */
+     Blt_TreeAtom (*blt_TreeGetAtom) _ANSI_ARGS_((Blt_Tree tree, char * string)); /* 48 */
+     Blt_TreeNode (*blt_TreeGetNode) _ANSI_ARGS_((Blt_Tree tree, unsigned int inode)); /* 49 */
+     Blt_Tree (*blt_TreeGetToken) _ANSI_ARGS_((Tcl_Interp * interp, char * name, Blt_TreeNotifyProcs * procsPtr, ClientData clientData)); /* 50 */
+     int (*blt_TreeGetValue) _ANSI_ARGS_((Blt_TreeNode node, Blt_TreeAtom fieldAtom, Tcl_Obj ** valuePtr)); /* 51 */
+     int (*blt_TreeIsAncestor) _ANSI_ARGS_((Blt_TreeNode root, Blt_TreeNode node)); /* 52 */
+     int (*blt_TreeIsBefore) _ANSI_ARGS_((Blt_TreeNode node1, Blt_TreeNode node2)); /* 53 */
+     Blt_TreeNode (*blt_TreeLastChild) _ANSI_ARGS_((Blt_TreeNode parent)); /* 54 */
+     int (*blt_TreeMoveNode) _ANSI_ARGS_((Blt_Tree tree, Blt_TreeNode node, Blt_TreeNode parent, Blt_TreeNode before)); /* 55 */
+     Blt_TreeNode (*blt_TreeNextSibling) _ANSI_ARGS_((Blt_TreeNode node)); /* 56 */
+     Blt_TreeNode (*blt_TreePrevSibling) _ANSI_ARGS_((Blt_TreeNode node)); /* 57 */
+     void (*blt_TreeReleaseToken) _ANSI_ARGS_((Blt_Tree tree)); /* 58 */
+     void (*blt_TreeSetNotifyFlags) _ANSI_ARGS_((Blt_Tree tree, unsigned int mask)); /* 59 */
+     int (*blt_TreeSetValue) _ANSI_ARGS_((Blt_Tree tree, Blt_TreeNode node, Blt_TreeAtom fieldAtom, Tcl_Obj * valuePtr)); /* 60 */
+     int (*blt_TreeSize) _ANSI_ARGS_((Blt_TreeNode node)); /* 61 */
+     int (*blt_TreeSortNode) _ANSI_ARGS_((Blt_TreeNode node, Blt_TreeCompareNodesProc * proc)); /* 62 */
+     int (*blt_TreeUnsetValue) _ANSI_ARGS_((Blt_Tree tree, Blt_TreeNode node, Blt_TreeAtom fieldAtom)); /* 63 */
+     int (*blt_VectorExists) _ANSI_ARGS_((Tcl_Interp * interp, char * vecName)); /* 64 */
+     int (*blt_VectorNotifyPending) _ANSI_ARGS_((Blt_VectorId clientId)); /* 65 */
+     void (*blt_ListDeleteEntry) _ANSI_ARGS_((Blt_ListEntry entry)); /* 66 */
+ } BltStubs;
+ 
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+ extern BltStubs *bltStubsPtr;
+ #ifdef __cplusplus
+ }
+ #endif
+ 
+ #if defined(USE_BLT_STUBS) && !defined(USE_BLT_STUB_PROCS)
+ 
+ /*
+  * Inline function declarations:
+  */
+ 
+ #ifndef Blt_AllocVectorId
+ #define Blt_AllocVectorId \
+ 	(bltStubsPtr->blt_AllocVectorId) /* 0 */
+ #endif
+ #ifndef Blt_Assert
+ #define Blt_Assert \
+ 	(bltStubsPtr->blt_Assert) /* 1 */
+ #endif
+ #ifndef Blt_ChainAppend
+ #define Blt_ChainAppend \
+ 	(bltStubsPtr->blt_ChainAppend) /* 2 */
+ #endif
+ #ifndef Blt_ChainCreate
+ #define Blt_ChainCreate \
+ 	(bltStubsPtr->blt_ChainCreate) /* 3 */
+ #endif
+ #ifndef Blt_ChainDeleteLink
+ #define Blt_ChainDeleteLink \
+ 	(bltStubsPtr->blt_ChainDeleteLink) /* 4 */
+ #endif
+ #ifndef Blt_ChainDestroy
+ #define Blt_ChainDestroy \
+ 	(bltStubsPtr->blt_ChainDestroy) /* 5 */
+ #endif
+ #ifndef Blt_ChainGetNthLink
+ #define Blt_ChainGetNthLink \
+ 	(bltStubsPtr->blt_ChainGetNthLink) /* 6 */
+ #endif
+ #ifndef Blt_ChainInit
+ #define Blt_ChainInit \
+ 	(bltStubsPtr->blt_ChainInit) /* 7 */
+ #endif
+ #ifndef Blt_ChainLinkAfter
+ #define Blt_ChainLinkAfter \
+ 	(bltStubsPtr->blt_ChainLinkAfter) /* 8 */
+ #endif
+ #ifndef Blt_ChainLinkBefore
+ #define Blt_ChainLinkBefore \
+ 	(bltStubsPtr->blt_ChainLinkBefore) /* 9 */
+ #endif
+ #ifndef Blt_ChainNewLink
+ #define Blt_ChainNewLink \
+ 	(bltStubsPtr->blt_ChainNewLink) /* 10 */
+ #endif
+ #ifndef Blt_ChainPrepend
+ #define Blt_ChainPrepend \
+ 	(bltStubsPtr->blt_ChainPrepend) /* 11 */
+ #endif
+ #ifndef Blt_ChainReset
+ #define Blt_ChainReset \
+ 	(bltStubsPtr->blt_ChainReset) /* 12 */
+ #endif
+ #ifndef Blt_ChainSort
+ #define Blt_ChainSort \
+ 	(bltStubsPtr->blt_ChainSort) /* 13 */
+ #endif
+ #ifndef Blt_ChainUnlinkLink
+ #define Blt_ChainUnlinkLink \
+ 	(bltStubsPtr->blt_ChainUnlinkLink) /* 14 */
+ #endif
+ #ifndef Blt_DStringAppendElements
+ #define Blt_DStringAppendElements \
+ 	(bltStubsPtr->blt_DStringAppendElements) /* 15 */
+ #endif
+ #ifndef Blt_Dtoa
+ #define Blt_Dtoa \
+ 	(bltStubsPtr->blt_Dtoa) /* 16 */
+ #endif
+ #ifndef Blt_FindUid
+ #define Blt_FindUid \
+ 	(bltStubsPtr->blt_FindUid) /* 17 */
+ #endif
+ #ifndef Blt_FreeUid
+ #define Blt_FreeUid \
+ 	(bltStubsPtr->blt_FreeUid) /* 18 */
+ #endif
+ #ifndef Blt_FreeVectorId
+ #define Blt_FreeVectorId \
+ 	(bltStubsPtr->blt_FreeVectorId) /* 19 */
+ #endif
+ #ifndef Blt_GetOperation
+ #define Blt_GetOperation \
+ 	(bltStubsPtr->blt_GetOperation) /* 20 */
+ #endif
+ #ifndef Blt_GetUid
+ #define Blt_GetUid \
+ 	(bltStubsPtr->blt_GetUid) /* 21 */
+ #endif
+ #ifndef Blt_GetVectorById
+ #define Blt_GetVectorById \
+ 	(bltStubsPtr->blt_GetVectorById) /* 22 */
+ #endif
+ #ifndef Blt_InitCmd
+ #define Blt_InitCmd \
+ 	(bltStubsPtr->blt_InitCmd) /* 23 */
+ #endif
+ #ifndef Blt_InitCmds
+ #define Blt_InitCmds \
+ 	(bltStubsPtr->blt_InitCmds) /* 24 */
+ #endif
+ #ifndef Blt_InitHexTable
+ #define Blt_InitHexTable \
+ 	(bltStubsPtr->blt_InitHexTable) /* 25 */
+ #endif
+ #ifndef Blt_InitList
+ #define Blt_InitList \
+ 	(bltStubsPtr->blt_InitList) /* 26 */
+ #endif
+ #ifndef Blt_Itoa
+ #define Blt_Itoa \
+ 	(bltStubsPtr->blt_Itoa) /* 27 */
+ #endif
+ #ifndef Blt_ListAppend
+ #define Blt_ListAppend \
+ 	(bltStubsPtr->blt_ListAppend) /* 28 */
+ #endif
+ #ifndef Blt_ListCreate
+ #define Blt_ListCreate \
+ 	(bltStubsPtr->blt_ListCreate) /* 29 */
+ #endif
+ #ifndef Blt_ListDestroy
+ #define Blt_ListDestroy \
+ 	(bltStubsPtr->blt_ListDestroy) /* 30 */
+ #endif
+ #ifndef Blt_ListFind
+ #define Blt_ListFind \
+ 	(bltStubsPtr->blt_ListFind) /* 31 */
+ #endif
+ #ifndef Blt_ListLinkBefore
+ #define Blt_ListLinkBefore \
+ 	(bltStubsPtr->blt_ListLinkBefore) /* 32 */
+ #endif
+ #ifndef Blt_ListNewEntry
+ #define Blt_ListNewEntry \
+ 	(bltStubsPtr->blt_ListNewEntry) /* 33 */
+ #endif
+ #ifndef Blt_ListReset
+ #define Blt_ListReset \
+ 	(bltStubsPtr->blt_ListReset) /* 34 */
+ #endif
+ #ifndef Blt_NameOfVectorId
+ #define Blt_NameOfVectorId \
+ 	(bltStubsPtr->blt_NameOfVectorId) /* 35 */
+ #endif
+ #ifndef Blt_NaturalSpline
+ #define Blt_NaturalSpline \
+ 	(bltStubsPtr->blt_NaturalSpline) /* 36 */
+ #endif
+ #ifndef Blt_Panic
+ #define Blt_Panic \
+ 	(bltStubsPtr->blt_Panic) /* 37 */
+ #endif
+ #ifndef Blt_QuadraticSpline
+ #define Blt_QuadraticSpline \
+ 	(bltStubsPtr->blt_QuadraticSpline) /* 38 */
+ #endif
+ #ifndef Blt_SetVectorChangedProc
+ #define Blt_SetVectorChangedProc \
+ 	(bltStubsPtr->blt_SetVectorChangedProc) /* 39 */
+ #endif
+ #ifndef Blt_TreeApply
+ #define Blt_TreeApply \
+ 	(bltStubsPtr->blt_TreeApply) /* 40 */
+ #endif
+ #ifndef Blt_TreeCreate
+ #define Blt_TreeCreate \
+ 	(bltStubsPtr->blt_TreeCreate) /* 41 */
+ #endif
+ #ifndef Blt_OpenUtfFile
+ #define Blt_OpenUtfFile \
+ 	(bltStubsPtr->blt_OpenUtfFile) /* 42 */
+ #endif
+ #ifndef Blt_TreeCreateNode
+ #define Blt_TreeCreateNode \
+ 	(bltStubsPtr->blt_TreeCreateNode) /* 43 */
+ #endif
+ #ifndef Blt_TreeDeleteNode
+ #define Blt_TreeDeleteNode \
+ 	(bltStubsPtr->blt_TreeDeleteNode) /* 44 */
+ #endif
+ #ifndef Blt_TreeFindChild
+ #define Blt_TreeFindChild \
+ 	(bltStubsPtr->blt_TreeFindChild) /* 45 */
+ #endif
+ #ifndef Blt_TreeFirstChild
+ #define Blt_TreeFirstChild \
+ 	(bltStubsPtr->blt_TreeFirstChild) /* 46 */
+ #endif
+ #ifndef Blt_TreeFreeAtom
+ #define Blt_TreeFreeAtom \
+ 	(bltStubsPtr->blt_TreeFreeAtom) /* 47 */
+ #endif
+ #ifndef Blt_TreeGetAtom
+ #define Blt_TreeGetAtom \
+ 	(bltStubsPtr->blt_TreeGetAtom) /* 48 */
+ #endif
+ #ifndef Blt_TreeGetNode
+ #define Blt_TreeGetNode \
+ 	(bltStubsPtr->blt_TreeGetNode) /* 49 */
+ #endif
+ #ifndef Blt_TreeGetToken
+ #define Blt_TreeGetToken \
+ 	(bltStubsPtr->blt_TreeGetToken) /* 50 */
+ #endif
+ #ifndef Blt_TreeGetValue
+ #define Blt_TreeGetValue \
+ 	(bltStubsPtr->blt_TreeGetValue) /* 51 */
+ #endif
+ #ifndef Blt_TreeIsAncestor
+ #define Blt_TreeIsAncestor \
+ 	(bltStubsPtr->blt_TreeIsAncestor) /* 52 */
+ #endif
+ #ifndef Blt_TreeIsBefore
+ #define Blt_TreeIsBefore \
+ 	(bltStubsPtr->blt_TreeIsBefore) /* 53 */
+ #endif
+ #ifndef Blt_TreeLastChild
+ #define Blt_TreeLastChild \
+ 	(bltStubsPtr->blt_TreeLastChild) /* 54 */
+ #endif
+ #ifndef Blt_TreeMoveNode
+ #define Blt_TreeMoveNode \
+ 	(bltStubsPtr->blt_TreeMoveNode) /* 55 */
+ #endif
+ #ifndef Blt_TreeNextSibling
+ #define Blt_TreeNextSibling \
+ 	(bltStubsPtr->blt_TreeNextSibling) /* 56 */
+ #endif
+ #ifndef Blt_TreePrevSibling
+ #define Blt_TreePrevSibling \
+ 	(bltStubsPtr->blt_TreePrevSibling) /* 57 */
+ #endif
+ #ifndef Blt_TreeReleaseToken
+ #define Blt_TreeReleaseToken \
+ 	(bltStubsPtr->blt_TreeReleaseToken) /* 58 */
+ #endif
+ #ifndef Blt_TreeSetNotifyFlags
+ #define Blt_TreeSetNotifyFlags \
+ 	(bltStubsPtr->blt_TreeSetNotifyFlags) /* 59 */
+ #endif
+ #ifndef Blt_TreeSetValue
+ #define Blt_TreeSetValue \
+ 	(bltStubsPtr->blt_TreeSetValue) /* 60 */
+ #endif
+ #ifndef Blt_TreeSize
+ #define Blt_TreeSize \
+ 	(bltStubsPtr->blt_TreeSize) /* 61 */
+ #endif
+ #ifndef Blt_TreeSortNode
+ #define Blt_TreeSortNode \
+ 	(bltStubsPtr->blt_TreeSortNode) /* 62 */
+ #endif
+ #ifndef Blt_TreeUnsetValue
+ #define Blt_TreeUnsetValue \
+ 	(bltStubsPtr->blt_TreeUnsetValue) /* 63 */
+ #endif
+ #ifndef Blt_VectorExists
+ #define Blt_VectorExists \
+ 	(bltStubsPtr->blt_VectorExists) /* 64 */
+ #endif
+ #ifndef Blt_VectorNotifyPending
+ #define Blt_VectorNotifyPending \
+ 	(bltStubsPtr->blt_VectorNotifyPending) /* 65 */
+ #endif
+ #ifndef Blt_ListDeleteEntry
+ #define Blt_ListDeleteEntry \
+ 	(bltStubsPtr->blt_ListDeleteEntry) /* 66 */
+ #endif
+ 
+ #endif /* defined(USE_BLT_STUBS) && !defined(USE_BLT_STUB_PROCS) */
+ 
+ /* !END!: Do not edit above this line. */
+ 
+ #endif /* _TCLLITEDECLS */
+ 
*** src/bltGrElem.h.orig	Fri Oct  8 08:40:46 1999
--- src/bltGrElem.h	Sat Apr 29 21:01:57 2000
***************
*** 170,184 ****
  
  } PenStyle;
  
! extern double Blt_FindElemVectorMinimum _ANSI_ARGS_((ElemVector *vecPtr,
  	double minLimit));
! extern void Blt_ResizeStatusArray _ANSI_ARGS_((Element *elemPtr, int nPoints));
! extern Point2D Blt_GetProjection _ANSI_ARGS_((int x, int y, int px, int py,
  	int qx, int qy));
! extern int Blt_GetPenStyle _ANSI_ARGS_((Graph *graphPtr, char *name,
  	ObjectType type, PenStyle *stylePtr));
! extern int Blt_NameToElement _ANSI_ARGS_((Graph *graphPtr, char *name,
  	Element **elemPtrPtr));
  
  #define NumberOfPoints(e)	MIN((e)->x.nValues, (e)->y.nValues)
  
--- 170,198 ----
  
  } PenStyle;
  
! #undef TCL_STORAGE_CLASS
! #ifdef BUILD_blt
! # define TCL_STORAGE_CLASS DLLEXPORT
! #else
! # ifdef USE_BLT_STUBS
! #  define TCL_STORAGE_CLASS
! # else
! #  define TCL_STORAGE_CLASS DLLIMPORT
! # endif
! #endif
! 
! EXTERN double Blt_FindElemVectorMinimum _ANSI_ARGS_((ElemVector *vecPtr,
  	double minLimit));
! EXTERN void Blt_ResizeStatusArray _ANSI_ARGS_((Element *elemPtr, int nPoints));
! EXTERN Point2D Blt_GetProjection _ANSI_ARGS_((int x, int y, int px, int py,
  	int qx, int qy));
! EXTERN int Blt_GetPenStyle _ANSI_ARGS_((Graph *graphPtr, char *name,
  	ObjectType type, PenStyle *stylePtr));
! EXTERN int Blt_NameToElement _ANSI_ARGS_((Graph *graphPtr, char *name,
  	Element **elemPtrPtr));
+ 
+ #undef TCL_STORAGE_CLASS
+ #define TCL_STORAGE_CLASS DLLIMPORT
  
  #define NumberOfPoints(e)	MIN((e)->x.nValues, (e)->y.nValues)
  
*** src/bltGraph.c.orig	Tue Mar 21 01:26:21 2000
--- src/bltGraph.c	Sat Apr 29 21:01:57 2000
***************
*** 40,45 ****
--- 40,46 ----
   *
   */
  
+ #include "blt.h"
  #include "bltGraph.h"
  #include "bltGrElem.h"
  #include <X11/Xutil.h>
***************
*** 1510,1515 ****
--- 1511,1538 ----
   *
   * --------------------------------------------------------------------------
   */
+ 
+ extern int Blt_VirtualAxisOp _ANSI_ARGS_((Graph *graphPtr, Tcl_Interp *interp,
+ 	int argc, char **argv));
+ extern int Blt_AxisOp _ANSI_ARGS_((Graph *graphPtr, int margin, int argc, 
+ 	char **argv));
+ extern int Blt_ElementOp _ANSI_ARGS_((Graph *graphPtr, Tcl_Interp *interp,
+ 	int argc, char **argv, ObjectType type));
+ extern int Blt_GridOp _ANSI_ARGS_((Graph *graphPtr, Tcl_Interp *interp,
+ 	int argc, char **argv));
+ extern int Blt_CrosshairsOp _ANSI_ARGS_((Graph *graphPtr, Tcl_Interp *interp,
+ 	int argc, char **argv));
+ extern int Blt_LegendOp _ANSI_ARGS_((Graph *graphPtr, Tcl_Interp *interp,
+ 	int argc, char **argv));
+ extern int Blt_MarkerOp _ANSI_ARGS_((Graph *graphPtr, Tcl_Interp *interp,
+ 	int argc, char **argv));
+ extern int Blt_PenOp _ANSI_ARGS_((Graph *graphPtr, Tcl_Interp *interp,
+ 	int argc, char **argv));
+ extern int Blt_PointInPolygon _ANSI_ARGS_((int x, int y, XPoint *pointArr,
+ 	int nPoints));
+ extern int Blt_PostScriptOp _ANSI_ARGS_((Graph *graphPtr, Tcl_Interp *interp,
+ 	int argc, char **argv));
+ 
  static Blt_OpSpec graphOps[] =
  {
      {"axis", 1, (Blt_OpProc)Blt_VirtualAxisOp, 2, 0, "oper ?args?",},
*** src/bltGraph.h.orig	Thu Dec 16 22:51:30 1999
--- src/bltGraph.h	Sat Apr 29 21:01:57 2000
***************
*** 618,726 ****
   * ---------------------- Forward declarations ------------------------
   */
  
! extern int Blt_CreateLegend _ANSI_ARGS_((Graph *graphPtr));
! extern int Blt_CreatePostScript _ANSI_ARGS_((Graph *graphPtr));
! extern int Blt_CreateCrosshairs _ANSI_ARGS_((Graph *graphPtr));
! extern int Blt_CreateGrid _ANSI_ARGS_((Graph *graphPtr));
! extern Point2D Blt_InvMap2D _ANSI_ARGS_((Graph *graphPtr, double x,
  	double y, Axis2D *pairPtr));
! extern Point2D Blt_Map2D _ANSI_ARGS_((Graph *graphPtr, double x,
  	double y, Axis2D *pairPtr));
! extern Graph *Blt_GetGraphFromWindowData _ANSI_ARGS_((Tk_Window tkwin));
! extern void Blt_AdjustAxisPointers _ANSI_ARGS_((Graph *graphPtr));
! extern int Blt_ClipSegment _ANSI_ARGS_((Extents2D *extentsPtr, Point2D *p1Ptr,
  	Point2D *p2Ptr, XSegment *segPtr));
  
! extern void Blt_ComputeStacks _ANSI_ARGS_((Graph *graphPtr));
! extern void Blt_ConfigureCrosshairs _ANSI_ARGS_((Graph *graphPtr));
! extern void Blt_DestroyAxes _ANSI_ARGS_((Graph *graphPtr));
! extern void Blt_DestroyCrosshairs _ANSI_ARGS_((Graph *graphPtr));
! extern void Blt_DestroyGrid _ANSI_ARGS_((Graph *graphPtr));
! extern void Blt_DestroyElements _ANSI_ARGS_((Graph *graphPtr));
! extern void Blt_DestroyLegend _ANSI_ARGS_((Graph *graphPtr));
! extern void Blt_DestroyMarkers _ANSI_ARGS_((Graph *graphPtr));
! extern void Blt_DestroyPostScript _ANSI_ARGS_((Graph *graphPtr));
! extern void Blt_DrawAxes _ANSI_ARGS_((Graph *graphPtr, Drawable drawable));
! extern void Blt_DrawAxisLimits _ANSI_ARGS_((Graph *graphPtr,
  	Drawable drawable));
! extern void Blt_DrawElements _ANSI_ARGS_((Graph *graphPtr, Drawable drawable));
! extern void Blt_DrawActiveElements _ANSI_ARGS_((Graph *graphPtr,
  	Drawable drawable));
! extern void Blt_DrawGraph _ANSI_ARGS_((Graph *graphPtr, Drawable drawable,
  	int backingStore));
! extern void Blt_DrawGrid _ANSI_ARGS_((Graph *graphPtr, Drawable drawable));
! extern void Blt_DrawLegend _ANSI_ARGS_((Graph *graphPtr, Drawable drawable));
! extern void Blt_DrawMarkers _ANSI_ARGS_((Graph *graphPtr, Drawable drawable,
  	int under));
! extern int Blt_GetCoordinate _ANSI_ARGS_((Tcl_Interp *interp,
  	char *expr, double *valuePtr));
! extern void Blt_InitFreqTable _ANSI_ARGS_((Graph *graphPtr));
! extern void Blt_LayoutGraph _ANSI_ARGS_((Graph *graphPtr));
! extern void Blt_LayoutMargins _ANSI_ARGS_((Graph *graphPtr));
! extern void Blt_LayoutLegend _ANSI_ARGS_((Graph *graphPtr, int width,
  	int height));
! extern void Blt_EventuallyRedrawGraph _ANSI_ARGS_((Graph *graphPtr));
! extern void Blt_ResetAxes _ANSI_ARGS_((Graph *graphPtr));
! extern void Blt_ResetStacks _ANSI_ARGS_((Graph *graphPtr));
! extern void Blt_SetClipRegion _ANSI_ARGS_((Graph *graphPtr, Extents2D *extentsPtr));
! extern void Blt_DisableCrosshairs _ANSI_ARGS_((Graph *graphPtr));
! extern void Blt_EnableCrosshairs _ANSI_ARGS_((Graph *graphPtr));
! extern void Blt_MapAxes _ANSI_ARGS_((Graph *graphPtr));
! extern void Blt_MapElements _ANSI_ARGS_((Graph *graphPtr));
! extern void Blt_MapGraph _ANSI_ARGS_((Graph *graphPtr));
! extern void Blt_MapMarkers _ANSI_ARGS_((Graph *graphPtr));
! extern void Blt_MapGrid _ANSI_ARGS_((Graph *graphPtr));
! extern void Blt_UpdateCrosshairs _ANSI_ARGS_((Graph *graphPtr));
! extern void Blt_DestroyPens _ANSI_ARGS_((Graph *graphPtr));
! extern int Blt_GetPen _ANSI_ARGS_((Graph *graphPtr, char *name, ObjectType type,
  	Pen **penPtrPtr));
! extern Pen *Blt_BarPen _ANSI_ARGS_((char *penName));
! extern Pen *Blt_LinePen _ANSI_ARGS_((char *penName));
! extern Pen *Blt_CreatePen _ANSI_ARGS_((Graph *graphPtr, char *penName,
  	ObjectType type, int nOpts, char **options));
! extern int Blt_InitLinePens _ANSI_ARGS_((Graph *graphPtr));
! extern int Blt_InitBarPens _ANSI_ARGS_((Graph *graphPtr));
! extern void Blt_FreePen _ANSI_ARGS_((Graph *graphPtr, Pen *penPtr));
  
! extern int Blt_VirtualAxisOp _ANSI_ARGS_((Graph *graphPtr, Tcl_Interp *interp,
  	int argc, char **argv));
! extern int Blt_AxisOp _ANSI_ARGS_((Graph *graphPtr, int margin, int argc, 
  	char **argv));
! extern int Blt_ElementOp _ANSI_ARGS_((Graph *graphPtr, Tcl_Interp *interp,
  	int argc, char **argv, ObjectType type));
! extern int Blt_GridOp _ANSI_ARGS_((Graph *graphPtr, Tcl_Interp *interp,
  	int argc, char **argv));
! extern int Blt_CrosshairsOp _ANSI_ARGS_((Graph *graphPtr, Tcl_Interp *interp,
  	int argc, char **argv));
! extern int Blt_LegendOp _ANSI_ARGS_((Graph *graphPtr, Tcl_Interp *interp,
  	int argc, char **argv));
! extern int Blt_MarkerOp _ANSI_ARGS_((Graph *graphPtr, Tcl_Interp *interp,
  	int argc, char **argv));
! extern int Blt_PenOp _ANSI_ARGS_((Graph *graphPtr, Tcl_Interp *interp,
  	int argc, char **argv));
! extern int Blt_PointInPolygon _ANSI_ARGS_((int x, int y, XPoint *pointArr,
  	int nPoints));
! extern int Blt_PostScriptOp _ANSI_ARGS_((Graph *graphPtr, Tcl_Interp *interp,
  	int argc, char **argv));
! extern int Blt_GraphUpdateNeeded _ANSI_ARGS_((Graph *graphPtr));
! extern int Blt_DefaultAxes _ANSI_ARGS_((Graph *graphPtr));
! extern Axis *Blt_GetFirstAxis _ANSI_ARGS_((Blt_Chain *chainPtr));
! extern void Blt_UpdateAxisBackgrounds _ANSI_ARGS_((Graph *graphPtr));
! extern int Blt_GetAxisSegments _ANSI_ARGS_((Graph *graphPtr, Axis *axisPtr,
  	XSegment **segPtrPtr));
! extern ObjectType Blt_GetElementType _ANSI_ARGS_((char *string));
! extern char *Blt_NameOfElementType _ANSI_ARGS_((ObjectType type));
! extern Marker *Blt_NearestMarker _ANSI_ARGS_((Graph *graphPtr, int x, int y,
  	int under));
! extern int Blt_NameToMarker _ANSI_ARGS_((Graph *graphPtr, char *name,
  	Marker **markerPtrPtr));
  
  typedef ClientData (MakeTagProc) _ANSI_ARGS_((Graph *graphPtr, char *tagName));
! extern ClientData Blt_MakeElementTag _ANSI_ARGS_((Graph *graphPtr,
  	char *tagName));
! extern ClientData Blt_MakeMarkerTag _ANSI_ARGS_((Graph *graphPtr,
  	char *tagName));
! extern void Blt_GraphTags _ANSI_ARGS_((BindTable table, ClientData object,
  	ClientData *tagArr, int *nTagsPtr));
  
  
--- 618,726 ----
   * ---------------------- Forward declarations ------------------------
   */
  
! EXTERN int Blt_CreateLegend _ANSI_ARGS_((Graph *graphPtr));
! EXTERN int Blt_CreatePostScript _ANSI_ARGS_((Graph *graphPtr));
! EXTERN int Blt_CreateCrosshairs _ANSI_ARGS_((Graph *graphPtr));
! EXTERN int Blt_CreateGrid _ANSI_ARGS_((Graph *graphPtr));
! EXTERN Point2D Blt_InvMap2D _ANSI_ARGS_((Graph *graphPtr, double x,
  	double y, Axis2D *pairPtr));
! EXTERN Point2D Blt_Map2D _ANSI_ARGS_((Graph *graphPtr, double x,
  	double y, Axis2D *pairPtr));
! EXTERN Graph *Blt_GetGraphFromWindowData _ANSI_ARGS_((Tk_Window tkwin));
! EXTERN void Blt_AdjustAxisPointers _ANSI_ARGS_((Graph *graphPtr));
! EXTERN int Blt_ClipSegment _ANSI_ARGS_((Extents2D *extentsPtr, Point2D *p1Ptr,
  	Point2D *p2Ptr, XSegment *segPtr));
  
! EXTERN void Blt_ComputeStacks _ANSI_ARGS_((Graph *graphPtr));
! EXTERN void Blt_ConfigureCrosshairs _ANSI_ARGS_((Graph *graphPtr));
! EXTERN void Blt_DestroyAxes _ANSI_ARGS_((Graph *graphPtr));
! EXTERN void Blt_DestroyCrosshairs _ANSI_ARGS_((Graph *graphPtr));
! EXTERN void Blt_DestroyGrid _ANSI_ARGS_((Graph *graphPtr));
! EXTERN void Blt_DestroyElements _ANSI_ARGS_((Graph *graphPtr));
! EXTERN void Blt_DestroyLegend _ANSI_ARGS_((Graph *graphPtr));
! EXTERN void Blt_DestroyMarkers _ANSI_ARGS_((Graph *graphPtr));
! EXTERN void Blt_DestroyPostScript _ANSI_ARGS_((Graph *graphPtr));
! EXTERN void Blt_DrawAxes _ANSI_ARGS_((Graph *graphPtr, Drawable drawable));
! EXTERN void Blt_DrawAxisLimits _ANSI_ARGS_((Graph *graphPtr,
  	Drawable drawable));
! EXTERN void Blt_DrawElements _ANSI_ARGS_((Graph *graphPtr, Drawable drawable));
! EXTERN void Blt_DrawActiveElements _ANSI_ARGS_((Graph *graphPtr,
  	Drawable drawable));
! EXTERN void Blt_DrawGraph _ANSI_ARGS_((Graph *graphPtr, Drawable drawable,
  	int backingStore));
! EXTERN void Blt_DrawGrid _ANSI_ARGS_((Graph *graphPtr, Drawable drawable));
! EXTERN void Blt_DrawLegend _ANSI_ARGS_((Graph *graphPtr, Drawable drawable));
! EXTERN void Blt_DrawMarkers _ANSI_ARGS_((Graph *graphPtr, Drawable drawable,
  	int under));
! EXTERN int Blt_GetCoordinate _ANSI_ARGS_((Tcl_Interp *interp,
  	char *expr, double *valuePtr));
! EXTERN void Blt_InitFreqTable _ANSI_ARGS_((Graph *graphPtr));
! EXTERN void Blt_LayoutGraph _ANSI_ARGS_((Graph *graphPtr));
! EXTERN void Blt_LayoutMargins _ANSI_ARGS_((Graph *graphPtr));
! EXTERN void Blt_LayoutLegend _ANSI_ARGS_((Graph *graphPtr, int width,
  	int height));
! EXTERN void Blt_EventuallyRedrawGraph _ANSI_ARGS_((Graph *graphPtr));
! EXTERN void Blt_ResetAxes _ANSI_ARGS_((Graph *graphPtr));
! EXTERN void Blt_ResetStacks _ANSI_ARGS_((Graph *graphPtr));
! EXTERN void Blt_SetClipRegion _ANSI_ARGS_((Graph *graphPtr, Extents2D *extentsPtr));
! EXTERN void Blt_DisableCrosshairs _ANSI_ARGS_((Graph *graphPtr));
! EXTERN void Blt_EnableCrosshairs _ANSI_ARGS_((Graph *graphPtr));
! EXTERN void Blt_MapAxes _ANSI_ARGS_((Graph *graphPtr));
! EXTERN void Blt_MapElements _ANSI_ARGS_((Graph *graphPtr));
! EXTERN void Blt_MapGraph _ANSI_ARGS_((Graph *graphPtr));
! EXTERN void Blt_MapMarkers _ANSI_ARGS_((Graph *graphPtr));
! EXTERN void Blt_MapGrid _ANSI_ARGS_((Graph *graphPtr));
! EXTERN void Blt_UpdateCrosshairs _ANSI_ARGS_((Graph *graphPtr));
! EXTERN void Blt_DestroyPens _ANSI_ARGS_((Graph *graphPtr));
! EXTERN int Blt_GetPen _ANSI_ARGS_((Graph *graphPtr, char *name, ObjectType type,
  	Pen **penPtrPtr));
! EXTERN Pen *Blt_BarPen _ANSI_ARGS_((char *penName));
! EXTERN Pen *Blt_LinePen _ANSI_ARGS_((char *penName));
! EXTERN Pen *Blt_CreatePen _ANSI_ARGS_((Graph *graphPtr, char *penName,
  	ObjectType type, int nOpts, char **options));
! EXTERN int Blt_InitLinePens _ANSI_ARGS_((Graph *graphPtr));
! EXTERN int Blt_InitBarPens _ANSI_ARGS_((Graph *graphPtr));
! EXTERN void Blt_FreePen _ANSI_ARGS_((Graph *graphPtr, Pen *penPtr));
  
! EXTERN int Blt_VirtualAxisOp _ANSI_ARGS_((Graph *graphPtr, Tcl_Interp *interp,
  	int argc, char **argv));
! EXTERN int Blt_AxisOp _ANSI_ARGS_((Graph *graphPtr, int margin, int argc, 
  	char **argv));
! EXTERN int Blt_ElementOp _ANSI_ARGS_((Graph *graphPtr, Tcl_Interp *interp,
  	int argc, char **argv, ObjectType type));
! EXTERN int Blt_GridOp _ANSI_ARGS_((Graph *graphPtr, Tcl_Interp *interp,
  	int argc, char **argv));
! EXTERN int Blt_CrosshairsOp _ANSI_ARGS_((Graph *graphPtr, Tcl_Interp *interp,
  	int argc, char **argv));
! EXTERN int Blt_LegendOp _ANSI_ARGS_((Graph *graphPtr, Tcl_Interp *interp,
  	int argc, char **argv));
! EXTERN int Blt_MarkerOp _ANSI_ARGS_((Graph *graphPtr, Tcl_Interp *interp,
  	int argc, char **argv));
! EXTERN int Blt_PenOp _ANSI_ARGS_((Graph *graphPtr, Tcl_Interp *interp,
  	int argc, char **argv));
! EXTERN int Blt_PointInPolygon _ANSI_ARGS_((int x, int y, XPoint *pointArr,
  	int nPoints));
! EXTERN int Blt_PostScriptOp _ANSI_ARGS_((Graph *graphPtr, Tcl_Interp *interp,
  	int argc, char **argv));
! EXTERN int Blt_GraphUpdateNeeded _ANSI_ARGS_((Graph *graphPtr));
! EXTERN int Blt_DefaultAxes _ANSI_ARGS_((Graph *graphPtr));
! EXTERN Axis *Blt_GetFirstAxis _ANSI_ARGS_((Blt_Chain *chainPtr));
! EXTERN void Blt_UpdateAxisBackgrounds _ANSI_ARGS_((Graph *graphPtr));
! EXTERN int Blt_GetAxisSegments _ANSI_ARGS_((Graph *graphPtr, Axis *axisPtr,
  	XSegment **segPtrPtr));
! EXTERN ObjectType Blt_GetElementType _ANSI_ARGS_((char *string));
! EXTERN char *Blt_NameOfElementType _ANSI_ARGS_((ObjectType type));
! EXTERN Marker *Blt_NearestMarker _ANSI_ARGS_((Graph *graphPtr, int x, int y,
  	int under));
! EXTERN int Blt_NameToMarker _ANSI_ARGS_((Graph *graphPtr, char *name,
  	Marker **markerPtrPtr));
  
  typedef ClientData (MakeTagProc) _ANSI_ARGS_((Graph *graphPtr, char *tagName));
! EXTERN ClientData Blt_MakeElementTag _ANSI_ARGS_((Graph *graphPtr,
  	char *tagName));
! EXTERN ClientData Blt_MakeMarkerTag _ANSI_ARGS_((Graph *graphPtr,
  	char *tagName));
! EXTERN void Blt_GraphTags _ANSI_ARGS_((BindTable table, ClientData object,
  	ClientData *tagArr, int *nTagsPtr));
  
  
*** src/bltHiertable.c.orig	Tue Mar 21 01:26:21 2000
--- src/bltHiertable.c	Sat Apr 29 21:01:57 2000
***************
*** 79,86 ****
--- 79,88 ----
  				 * from an object's string representation. */
  };
  
+ #if 0
  static void UpdateNotifyProc _ANSI_ARGS_((Blt_Tree tree, ClientData clientData,
         unsigned int flags));
+ #endif
  static int CreateNotifyProc _ANSI_ARGS_((Blt_Tree tree, Blt_TreeNode node, 
  	ClientData clientData));
  static int DeleteNotifyProc _ANSI_ARGS_((Blt_Tree tree, Blt_TreeNode node, 
***************
*** 1925,1930 ****
--- 1927,1933 ----
      return TCL_OK;
  }
  
+ #if 0
  /*
   *----------------------------------------------------------------------
   *
***************
*** 1944,1949 ****
--- 1947,1953 ----
  {
  
  }
+ #endif
  
  /*
   *----------------------------------------------------------------------
*** src/bltHiertable.h.orig	Tue Mar 21 01:26:21 2000
--- src/bltHiertable.h	Sat Apr 29 21:01:58 2000
***************
*** 723,813 ****
      int ruleOffset;
  };
  
  
! extern UID Blt_HtGetUid _ANSI_ARGS_((Hiertable *htabPtr, char *string));
! extern void Blt_HtFreeUid _ANSI_ARGS_((Hiertable *htabPtr, UID uid));
  
! extern void Blt_HtEventuallyRedraw _ANSI_ARGS_((Hiertable *htabPtr));
! extern int Blt_HtWidgetInstCmd _ANSI_ARGS_((ClientData clientdata,
  	Tcl_Interp *interp, int argc, char **argv));
! extern Entry *Blt_HtNearestEntry _ANSI_ARGS_((Hiertable *htabPtr,
  	int x, int y, int flags));
! extern char *Blt_HtGetFullName _ANSI_ARGS_((Hiertable *htabPtr, 
  	Blt_TreeNode node));
! extern void Blt_HtSelectCmdProc _ANSI_ARGS_((ClientData clientData));
! extern void Blt_HtInsertText _ANSI_ARGS_((Hiertable *htabPtr, 
  	Entry *entryPtr, char *string, int extra, int insertPos));
! extern void Blt_HtComputeLayout _ANSI_ARGS_((Hiertable *htabPtr));
! extern void Blt_HtPercentSubst _ANSI_ARGS_((Hiertable *htabPtr, 
  	Blt_TreeNode node, char *command, Tcl_DString *dStrPtr));
! extern void Blt_HtDrawButton _ANSI_ARGS_((Hiertable *htabPtr, Entry *entryPtr, 
  	Drawable drawable));
! extern void Blt_HtDrawOuterBorders _ANSI_ARGS_((Hiertable *htabPtr, 
  	Drawable drawable));
! extern int Blt_HtDrawIcon _ANSI_ARGS_((Hiertable *htabPtr, Entry *entryPtr, 
  	int x, int y, Drawable drawable));
! extern void Blt_HtDrawTitle _ANSI_ARGS_((Hiertable *htabPtr, Column *columnPtr,
  	Drawable drawable, int x));
  
! extern void Blt_HtConfigureButtons _ANSI_ARGS_((Hiertable *htabPtr));
! extern int Blt_HtConfigureHiertable _ANSI_ARGS_((Tcl_Interp *interp, 
  	Hiertable *htabPtr, int argc, char **argv, int flags));
! extern int Blt_HtScreenToIndex _ANSI_ARGS_((Hiertable *htabPtr, 
  	int x, int y));
  
! extern void Blt_HtFreeImage _ANSI_ARGS_((HashedImage hImage));
! extern HashedImage Blt_HtGetImage _ANSI_ARGS_((Hiertable *htabPtr,
      char *imageName));
! extern void Blt_HtAddField _ANSI_ARGS_((Entry *entryPtr, 
  	Column *columnPtr));
! extern Column *Blt_HtCreateColumn _ANSI_ARGS_((Hiertable *htabPtr,
  	char *name, char *defaultLabel, int nOptions, char **options));
! extern void Blt_HtDestroyField _ANSI_ARGS_((Field *fieldPtr));
! extern void Blt_HtDestroyColumns _ANSI_ARGS_((Hiertable *htabPtr));
! extern void Blt_HtAllocateColumnAtoms _ANSI_ARGS_((Hiertable *htabPtr));
! extern void Blt_HtFreeColumnAtoms _ANSI_ARGS_((Hiertable *htabPtr));
! extern Column *Blt_HtNearestColumn _ANSI_ARGS_((Hiertable *htabPtr,
  	int x, int y, int flags));
! extern void Blt_HtDrawRule _ANSI_ARGS_((Hiertable *htabPtr, Column *columnPtr, 
  	Drawable drawable));
! extern int Blt_HtTextOp _ANSI_ARGS_((Hiertable *htabPtr, Tcl_Interp *interp,
        int argc, char **argv));
! extern Editor *Blt_HtCreateEditor _ANSI_ARGS_((Hiertable *htabPtr));
! extern char *Blt_HtGetData _ANSI_ARGS_((Entry *entryPtr, Blt_TreeAtom atom));
  
! extern int Blt_HtCreateEntry _ANSI_ARGS_((Hiertable *htabPtr, 
      Blt_TreeNode node, int nOptions, char **options));
! extern void Blt_HtConfigureEntry _ANSI_ARGS_((Hiertable *htabPtr, 
  	Entry *entryPtr));
! extern int Blt_HtOpenEntry _ANSI_ARGS_((Hiertable *htabPtr, Entry *entryPtr));
! extern int Blt_HtCloseEntry _ANSI_ARGS_((Hiertable *htabPtr, 
  	Entry *entryPtr));
! extern Entry *Blt_HtNextEntry _ANSI_ARGS_((Hiertable *htabPtr, Entry *entryPtr,
  	unsigned int mask));
! extern Entry *Blt_HtPrevEntry _ANSI_ARGS_((Hiertable *htabPtr, Entry *entryPtr,
  	unsigned int mask));
! extern Entry *Blt_HtParentEntry _ANSI_ARGS_((Hiertable *htabPtr, 
  	Entry *entryPtr));
! extern int Blt_HtGetEntry _ANSI_ARGS_((Hiertable *htabPtr, char *string, 
  	Entry **entryPtrPtr));
! extern int Blt_HtEntryIsMapped _ANSI_ARGS_((Hiertable *htabPtr, 
  	Entry *entryPtr));
! 
  extern Hiertable *bltHiertableLastInstance;
  
  typedef int (ApplyProc) _ANSI_ARGS_((Hiertable *htabPtr, Entry *entryPtr));
  
! extern int Blt_HtTreeApply _ANSI_ARGS_((Hiertable *htabPtr, Entry *entryPtr,
  	ApplyProc *proc, unsigned int mask));
  
! extern int Blt_HtColumnOp _ANSI_ARGS_((Hiertable *htabPtr, Tcl_Interp *interp,
  	int argc, char **argv));
! extern int Blt_HtSortOp _ANSI_ARGS_((Hiertable *htabPtr, Tcl_Interp *interp,
  	int argc, char **argv));
  
! extern void Blt_HtSortFlatView _ANSI_ARGS_((Hiertable *htabPtr));
! extern void Blt_HtSortTreeView _ANSI_ARGS_((Hiertable *htabPtr));
  
  
  #define GETFONT(glob, spec)	(((spec) == NULL) ? (glob) : (spec))
  #define GETCOLOR(glob, spec)	(((spec) == NULL) ? (glob) : (spec))
--- 723,831 ----
      int ruleOffset;
  };
  
+ #undef TCL_STORAGE_CLASS
+ #ifdef BUILD_blt
+ # define TCL_STORAGE_CLASS DLLEXPORT
+ #else
+ # ifdef USE_BLT_STUBS
+ #  define TCL_STORAGE_CLASS
+ # else
+ #  define TCL_STORAGE_CLASS DLLIMPORT
+ # endif
+ #endif
  
! EXTERN UID Blt_HtGetUid _ANSI_ARGS_((Hiertable *htabPtr, char *string));
! EXTERN void Blt_HtFreeUid _ANSI_ARGS_((Hiertable *htabPtr, UID uid));
  
! EXTERN void Blt_HtEventuallyRedraw _ANSI_ARGS_((Hiertable *htabPtr));
! EXTERN int Blt_HtWidgetInstCmd _ANSI_ARGS_((ClientData clientdata,
  	Tcl_Interp *interp, int argc, char **argv));
! EXTERN Entry *Blt_HtNearestEntry _ANSI_ARGS_((Hiertable *htabPtr,
  	int x, int y, int flags));
! EXTERN char *Blt_HtGetFullName _ANSI_ARGS_((Hiertable *htabPtr, 
  	Blt_TreeNode node));
! EXTERN void Blt_HtSelectCmdProc _ANSI_ARGS_((ClientData clientData));
! EXTERN void Blt_HtInsertText _ANSI_ARGS_((Hiertable *htabPtr, 
  	Entry *entryPtr, char *string, int extra, int insertPos));
! EXTERN void Blt_HtComputeLayout _ANSI_ARGS_((Hiertable *htabPtr));
! EXTERN void Blt_HtPercentSubst _ANSI_ARGS_((Hiertable *htabPtr, 
  	Blt_TreeNode node, char *command, Tcl_DString *dStrPtr));
! EXTERN void Blt_HtDrawButton _ANSI_ARGS_((Hiertable *htabPtr, Entry *entryPtr, 
  	Drawable drawable));
! EXTERN void Blt_HtDrawOuterBorders _ANSI_ARGS_((Hiertable *htabPtr, 
  	Drawable drawable));
! EXTERN int Blt_HtDrawIcon _ANSI_ARGS_((Hiertable *htabPtr, Entry *entryPtr, 
  	int x, int y, Drawable drawable));
! EXTERN void Blt_HtDrawTitle _ANSI_ARGS_((Hiertable *htabPtr, Column *columnPtr,
  	Drawable drawable, int x));
  
! EXTERN void Blt_HtConfigureButtons _ANSI_ARGS_((Hiertable *htabPtr));
! EXTERN int Blt_HtConfigureHiertable _ANSI_ARGS_((Tcl_Interp *interp, 
  	Hiertable *htabPtr, int argc, char **argv, int flags));
! EXTERN int Blt_HtScreenToIndex _ANSI_ARGS_((Hiertable *htabPtr, 
  	int x, int y));
  
! EXTERN void Blt_HtFreeImage _ANSI_ARGS_((HashedImage hImage));
! EXTERN HashedImage Blt_HtGetImage _ANSI_ARGS_((Hiertable *htabPtr,
      char *imageName));
! EXTERN void Blt_HtAddField _ANSI_ARGS_((Entry *entryPtr, 
  	Column *columnPtr));
! EXTERN Column *Blt_HtCreateColumn _ANSI_ARGS_((Hiertable *htabPtr,
  	char *name, char *defaultLabel, int nOptions, char **options));
! EXTERN void Blt_HtDestroyField _ANSI_ARGS_((Field *fieldPtr));
! EXTERN void Blt_HtDestroyColumns _ANSI_ARGS_((Hiertable *htabPtr));
! EXTERN void Blt_HtAllocateColumnAtoms _ANSI_ARGS_((Hiertable *htabPtr));
! EXTERN void Blt_HtFreeColumnAtoms _ANSI_ARGS_((Hiertable *htabPtr));
! EXTERN Column *Blt_HtNearestColumn _ANSI_ARGS_((Hiertable *htabPtr,
  	int x, int y, int flags));
! EXTERN void Blt_HtDrawRule _ANSI_ARGS_((Hiertable *htabPtr, Column *columnPtr, 
  	Drawable drawable));
! EXTERN int Blt_HtTextOp _ANSI_ARGS_((Hiertable *htabPtr, Tcl_Interp *interp,
        int argc, char **argv));
! EXTERN Editor *Blt_HtCreateEditor _ANSI_ARGS_((Hiertable *htabPtr));
! EXTERN char *Blt_HtGetData _ANSI_ARGS_((Entry *entryPtr, Blt_TreeAtom atom));
  
! EXTERN int Blt_HtCreateEntry _ANSI_ARGS_((Hiertable *htabPtr, 
      Blt_TreeNode node, int nOptions, char **options));
! EXTERN void Blt_HtConfigureEntry _ANSI_ARGS_((Hiertable *htabPtr, 
  	Entry *entryPtr));
! EXTERN int Blt_HtOpenEntry _ANSI_ARGS_((Hiertable *htabPtr, Entry *entryPtr));
! EXTERN int Blt_HtCloseEntry _ANSI_ARGS_((Hiertable *htabPtr, 
  	Entry *entryPtr));
! EXTERN Entry *Blt_HtNextEntry _ANSI_ARGS_((Hiertable *htabPtr, Entry *entryPtr,
  	unsigned int mask));
! EXTERN Entry *Blt_HtPrevEntry _ANSI_ARGS_((Hiertable *htabPtr, Entry *entryPtr,
  	unsigned int mask));
! EXTERN Entry *Blt_HtParentEntry _ANSI_ARGS_((Hiertable *htabPtr, 
  	Entry *entryPtr));
! EXTERN int Blt_HtGetEntry _ANSI_ARGS_((Hiertable *htabPtr, char *string, 
  	Entry **entryPtrPtr));
! EXTERN int Blt_HtEntryIsMapped _ANSI_ARGS_((Hiertable *htabPtr, 
  	Entry *entryPtr));
! EXTERN void Blt_HtSelectEntry _ANSI_ARGS_((Hiertable *htabPtr,
! 	Entry *entryPtr));
! EXTERN void Blt_HtDeselectEntry _ANSI_ARGS_((Hiertable *htabPtr,
! 	Entry *entryPtr));
! EXTERN int Blt_HtEntryIsSelected _ANSI_ARGS_((Hiertable *htabPtr,
! 	Entry *entryPtr));
! EXTERN void Blt_HtClearSelection _ANSI_ARGS_((Hiertable *htabPtr));
  extern Hiertable *bltHiertableLastInstance;
  
  typedef int (ApplyProc) _ANSI_ARGS_((Hiertable *htabPtr, Entry *entryPtr));
  
! EXTERN int Blt_HtTreeApply _ANSI_ARGS_((Hiertable *htabPtr, Entry *entryPtr,
  	ApplyProc *proc, unsigned int mask));
  
! EXTERN int Blt_HtColumnOp _ANSI_ARGS_((Hiertable *htabPtr, Tcl_Interp *interp,
  	int argc, char **argv));
! EXTERN int Blt_HtSortOp _ANSI_ARGS_((Hiertable *htabPtr, Tcl_Interp *interp,
  	int argc, char **argv));
  
! EXTERN void Blt_HtSortFlatView _ANSI_ARGS_((Hiertable *htabPtr));
! EXTERN void Blt_HtSortTreeView _ANSI_ARGS_((Hiertable *htabPtr));
  
+ #undef TCL_STORAGE_CLASS
+ #define TCL_STORAGE_CLASS DLLIMPORT
  
  #define GETFONT(glob, spec)	(((spec) == NULL) ? (glob) : (spec))
  #define GETCOLOR(glob, spec)	(((spec) == NULL) ? (glob) : (spec))
*** src/bltHtCmd.c.orig	Tue Mar 21 01:26:21 2000
--- src/bltHtCmd.c	Sat Apr 29 21:01:58 2000
***************
*** 3861,3866 ****
--- 3861,3874 ----
   *
   * --------------------------------------------------------------
   */
+ 
+ EXTERN int Blt_HtColumnOp _ANSI_ARGS_((Hiertable *htabPtr, Tcl_Interp *interp,
+ 	int argc, char **argv));
+ EXTERN int Blt_HtSortOp _ANSI_ARGS_((Hiertable *htabPtr, Tcl_Interp *interp,
+ 	int argc, char **argv));
+ EXTERN int Blt_HtTextOp _ANSI_ARGS_((Hiertable *htabPtr, Tcl_Interp *interp,
+ 	int argc, char **argv));
+ 
  static Blt_OpSpec operSpecs[] =
  {
      {"bbox", 2, (Blt_OpProc)BboxOp, 3, 0, "index...",},
*** src/bltImage.c.orig	Thu Mar 16 08:27:01 2000
--- src/bltImage.c	Sat Apr 29 21:01:58 2000
***************
*** 278,283 ****
--- 278,286 ----
      height = ColorimageHeight(image);
  
      Tk_PhotoGetImage(photo, &dest);
+     if (dest.pixelSize > 3) {
+ 	dest.offset[3] = 0;
+     }
      dest.pixelSize = sizeof(Pix32);
      dest.pitch = sizeof(Pix32) * width;
      dest.width = width;
***************
*** 315,320 ****
--- 318,326 ----
      register int x, y;
  
      Tk_PhotoGetImage(photo, &src);
+     if (src.pixelSize > 3) {
+ 	src.offset[3] = 0;
+     }
      if (regionPtr->width < 1) {
  	regionPtr->width = src.width;
      }
***************
*** 1380,1385 ****
--- 1386,1397 ----
  
      Tk_PhotoGetImage(srcPhoto, &src);
      Tk_PhotoGetImage(destPhoto, &dest);
+     if (src.pixelSize > 3) {
+ 	src.offset[3] = 0;
+     }
+     if (dest.pixelSize > 3) {
+ 	dest.offset[3] = 0;
+     }
  
      if (srcRegionPtr->width < 1) {
  	srcRegionPtr->width = src.width;
***************
*** 1441,1446 ****
--- 1453,1464 ----
  
      Tk_PhotoGetImage(srcPhoto, &src);
      Tk_PhotoGetImage(destPhoto, &dest);
+     if (src.pixelSize > 3) {
+ 	src.offset[3] = 0;
+     }
+     if (dest.pixelSize > 3) {
+ 	dest.offset[3] = 0;
+     }
  
      if (srcRegionPtr->width < 1) {
  	srcRegionPtr->width = src.width;
*** src/bltImage.h.orig	Thu Dec 16 22:51:30 1999
--- src/bltImage.h	Sat Apr 29 21:01:58 2000
***************
*** 193,255 ****
  
  /* Prototypes of image routines */
  
! extern void Blt_ColorimageToPhoto _ANSI_ARGS_((Colorimage image,
  	Tk_PhotoHandle photo));
  
! extern Pixmap Blt_ColorimageToPixmap _ANSI_ARGS_((Tcl_Interp *interp,
  	Tk_Window tkwin, Colorimage image, ColorTable *colorTablePtr));
  
! extern Colorimage Blt_ConvolveColorimage _ANSI_ARGS_((Colorimage srcImage,
  	Image2DFilter *filter));
  
! extern Colorimage Blt_CreateColorimage _ANSI_ARGS_((int width, int height));
  
! extern Colorimage Blt_DrawableToColorimage _ANSI_ARGS_((Tk_Window tkwin,
  	Drawable drawable, int width, int height, ImageRegion *regionPtr));
  
! extern int Blt_FindImage1DFilter _ANSI_ARGS_((Tcl_Interp *interp,
  	char *filterName, Image1DFilter *filterPtr));
  
! extern void Blt_FreeColorimage _ANSI_ARGS_((Colorimage image));
  
! extern Colorimage Blt_PhotoToColorimage _ANSI_ARGS_((Tk_PhotoHandle photo,
  	ImageRegion *regionPtr));
  
! extern Colorimage Blt_ResampleColorimage _ANSI_ARGS_((Colorimage image,
  	ImageRegion *srcRegionPtr, ImageRegion *destRegionPtr,
  	Image1DFilter horzFilter, Image1DFilter vertFilter));
  
! extern void Blt_ResamplePhoto _ANSI_ARGS_((Tk_PhotoHandle srcPhoto,
  	Tk_PhotoHandle destPhoto, ImageRegion *srcRegionPtr,
  	Image1DFilter horzFilter, Image1DFilter vertFilter));
  
! extern Colorimage Blt_ResizeColorimage _ANSI_ARGS_((Colorimage image,
  	ImageRegion *srcRegionPtr, ImageRegion *destRegionPtr));
  
! extern Colorimage Blt_RotateColorimage _ANSI_ARGS_((Colorimage image,
  	double theta));
  
! extern void Blt_ResizePhoto _ANSI_ARGS_((Tk_PhotoHandle srcPhoto,
  	Tk_PhotoHandle destPhoto, ImageRegion *srcRegionPtr));
  
! extern int Blt_SnapPhoto _ANSI_ARGS_((Tcl_Interp *interp, Tk_Window tkwin,
  	Drawable drawable, int width, int height, int destWidth,
  	int destHeight, char *photoName));
  
! extern ColorTable Blt_CreateColorTable _ANSI_ARGS_((Tk_Window tkwin));
  
! extern ColorTable Blt_DirectColorTable _ANSI_ARGS_((Tcl_Interp *interp,
  	Tk_Window tkwin, Colorimage image));
  
! extern ColorTable Blt_PseudoColorTable _ANSI_ARGS_((Tcl_Interp *interp,
  	Tk_Window tkwin, Colorimage image));
  
! extern void Blt_FreeColorTable _ANSI_ARGS_((ColorTable colorTable));
  
  /* Routines missing from the Tk photo C API */
  
! extern int Blt_TkImageDeleted _ANSI_ARGS_((Tk_Image tkImage));
  
! extern Tk_ImageMaster Blt_TkImageMaster _ANSI_ARGS_((Tk_Image tkImage));
  
  #endif /*_BLT_IMAGE_H*/
--- 193,269 ----
  
  /* Prototypes of image routines */
  
! #undef TCL_STORAGE_CLASS
! #ifdef BUILD_blt
! # define TCL_STORAGE_CLASS DLLEXPORT
! #else
! # ifdef USE_BLT_STUBS
! #  define TCL_STORAGE_CLASS
! # else
! #  define TCL_STORAGE_CLASS DLLIMPORT
! # endif
! #endif
! 
! EXTERN void Blt_ColorimageToPhoto _ANSI_ARGS_((Colorimage image,
  	Tk_PhotoHandle photo));
  
! EXTERN Pixmap Blt_ColorimageToPixmap _ANSI_ARGS_((Tcl_Interp *interp,
  	Tk_Window tkwin, Colorimage image, ColorTable *colorTablePtr));
  
! EXTERN Colorimage Blt_ConvolveColorimage _ANSI_ARGS_((Colorimage srcImage,
  	Image2DFilter *filter));
  
! EXTERN Colorimage Blt_CreateColorimage _ANSI_ARGS_((int width, int height));
  
! EXTERN Colorimage Blt_DrawableToColorimage _ANSI_ARGS_((Tk_Window tkwin,
  	Drawable drawable, int width, int height, ImageRegion *regionPtr));
  
! EXTERN int Blt_FindImage1DFilter _ANSI_ARGS_((Tcl_Interp *interp,
  	char *filterName, Image1DFilter *filterPtr));
  
! EXTERN void Blt_FreeColorimage _ANSI_ARGS_((Colorimage image));
  
! EXTERN Colorimage Blt_PhotoToColorimage _ANSI_ARGS_((Tk_PhotoHandle photo,
  	ImageRegion *regionPtr));
  
! EXTERN Colorimage Blt_ResampleColorimage _ANSI_ARGS_((Colorimage image,
  	ImageRegion *srcRegionPtr, ImageRegion *destRegionPtr,
  	Image1DFilter horzFilter, Image1DFilter vertFilter));
  
! EXTERN void Blt_ResamplePhoto _ANSI_ARGS_((Tk_PhotoHandle srcPhoto,
  	Tk_PhotoHandle destPhoto, ImageRegion *srcRegionPtr,
  	Image1DFilter horzFilter, Image1DFilter vertFilter));
  
! EXTERN Colorimage Blt_ResizeColorimage _ANSI_ARGS_((Colorimage image,
  	ImageRegion *srcRegionPtr, ImageRegion *destRegionPtr));
  
! EXTERN Colorimage Blt_RotateColorimage _ANSI_ARGS_((Colorimage image,
  	double theta));
  
! EXTERN void Blt_ResizePhoto _ANSI_ARGS_((Tk_PhotoHandle srcPhoto,
  	Tk_PhotoHandle destPhoto, ImageRegion *srcRegionPtr));
  
! EXTERN int Blt_SnapPhoto _ANSI_ARGS_((Tcl_Interp *interp, Tk_Window tkwin,
  	Drawable drawable, int width, int height, int destWidth,
  	int destHeight, char *photoName));
  
! EXTERN ColorTable Blt_CreateColorTable _ANSI_ARGS_((Tk_Window tkwin));
  
! EXTERN ColorTable Blt_DirectColorTable _ANSI_ARGS_((Tcl_Interp *interp,
  	Tk_Window tkwin, Colorimage image));
  
! EXTERN ColorTable Blt_PseudoColorTable _ANSI_ARGS_((Tcl_Interp *interp,
  	Tk_Window tkwin, Colorimage image));
  
! EXTERN void Blt_FreeColorTable _ANSI_ARGS_((ColorTable colorTable));
  
  /* Routines missing from the Tk photo C API */
  
! EXTERN int Blt_TkImageDeleted _ANSI_ARGS_((Tk_Image tkImage));
! 
! EXTERN Tk_ImageMaster Blt_TkImageMaster _ANSI_ARGS_((Tk_Image tkImage));
  
! #undef TCL_STORAGE_CLASS
! #define TCL_STORAGE_CLASS DLLIMPORT
  
  #endif /*_BLT_IMAGE_H*/
*** src/bltInit.c.orig	Thu Mar 16 08:27:01 2000
--- src/bltInit.c	Sat Apr 29 21:01:58 2000
***************
*** 27,141 ****
  
  #include <bltInt.h>
  
! #ifdef __STDC__
! static Tcl_MathProc MinMathProc, MaxMathProc;
! #endif
  
! double bltPosInfinity = (double)DBL_MAX;
! double bltNegInfinity = (double)-(DBL_MAX);
  
! #ifdef TCL_ONLY
! #define NO_BELL		1
! #define NO_BITMAP	1
! #define NO_BUSY		1
! #define NO_CONTAINER	1
! #define NO_CUTBUFFER	1
! #define NO_DND		1
! #define NO_DRAGDROP	1
! #define NO_GRAPH	1
! #define NO_HIERBOX	1
! #define NO_HIERTABLE	1
! #define NO_HTEXT	1
! #define NO_MOUNTAIN	1
! #define NO_PRINTER	1
! #define NO_TABLE	1
! #define NO_TABSET	1
! #define NO_TED		1
! #define NO_TILEBUTTON	1
! #define NO_TILEFRAME	1
! #define NO_TILESCROLLBAR 1
! #define NO_WINOP	1
  #endif
  
  static Tcl_AppInitProc *initProcArr[] =
  {
- #ifndef NO_GRAPH
-     Blt_GraphInit,
- #endif
- #ifndef NO_TABLE
-     Blt_TableInit,
- #endif
- #ifndef NO_HIERBOX
-     Blt_HierboxInit,
- #endif
- #ifndef NO_HIERTABLE
-     Blt_HiertableInit,
- #endif
- #ifndef NO_TABSET
-     Blt_TabsetInit,
- #endif
- #ifndef NO_HTEXT
-     Blt_HtextInit,
- #endif
- #ifndef NO_BUSY
-     Blt_BusyInit,
- #endif
- #ifndef NO_WINOP
-     Blt_WinopInit,
- #endif
- #ifndef NO_BITMAP
-     Blt_BitmapInit,
- #endif
  #ifndef NO_BGEXEC
      Blt_BgexecInit,
  #endif
- #ifndef NO_DRAGDROP
-     Blt_DragDropInit,
- #endif
- #ifndef NO_DND
-     Blt_DndInit,
- #endif
  #ifndef NO_DEBUG
      Blt_DebugInit,
  #endif
  #ifndef NO_WATCH
      Blt_WatchInit,
  #endif
- #ifndef NO_CONTAINER
-     Blt_ContainerInit,
- #endif
  #ifndef NO_VECTOR
      Blt_VectorInit,
  #endif
  #ifndef NO_SPLINE
      Blt_SplineInit,
  #endif
- #ifndef NO_BELL
-     Blt_BeepInit,
- #endif
- #ifndef NO_CUTBUFFER
-     Blt_CutbufferInit,
- #endif
- #ifndef NO_PRINTER
-     Blt_PrinterInit,
- #endif
- #ifndef NO_TILEFRAME
-     Blt_FrameInit,
- #endif
- #ifndef NO_TILEBUTTON
-     Blt_ButtonInit,
- #endif
- #ifndef NO_TILESCROLLBAR
-     Blt_ScrollbarInit,
- #endif
- #if (BLT_MAJOR_VERSION == 3)
- #ifndef NO_MOUNTAIN
-     Blt_MountainInit,
- #endif
- #endif
- #ifndef NO_TED
-     Blt_TedInit,
- #endif
      (Tcl_AppInitProc *) NULL
  };
  
--- 27,71 ----
  
  #include <bltInt.h>
  
! #undef Blt_InitCmd
! #undef Blt_InitCmds
  
! extern BltStubs bltStubs;
! extern BltPlatStubs bltPlatStubs;
  
! #ifndef USE_TCL_STUBS
! #undef Tcl_InitStubs
! #define Tcl_InitStubs(a,b,c) Tcl_PkgRequire(a,"Tcl",TCL_VERSION,1)
! #endif
! 
! #if (TCL_VERSION_NUMBER < _VERSION(8,1,0))
! #undef Tcl_PkgProvideEx
! #define Tcl_PkgProvideEx(a,b,c,d) \
! 	Tcl_SetAssocData(a,"BLTstub",(Tcl_InterpDeleteProc *) NULL, d), \
! 	Tcl_PkgProvide(a,b,c)
! #endif
! 
! #ifdef __STDC__
! static Tcl_MathProc MinMathProc, MaxMathProc;
  #endif
  
  static Tcl_AppInitProc *initProcArr[] =
  {
  #ifndef NO_BGEXEC
      Blt_BgexecInit,
  #endif
  #ifndef NO_DEBUG
      Blt_DebugInit,
  #endif
  #ifndef NO_WATCH
      Blt_WatchInit,
  #endif
  #ifndef NO_VECTOR
      Blt_VectorInit,
  #endif
  #ifndef NO_SPLINE
      Blt_SplineInit,
  #endif
      (Tcl_AppInitProc *) NULL
  };
  
***************
*** 279,311 ****
  {
      Tcl_DString dString;
      char *value;
- #define EXACT 1
  
!     /*
!      * Check that the versions of Tcl that have been loaded are the 
!      * same ones that BLT was compiled against.
!      */
! #ifdef USE_TCL_STUBS
!      if (Tcl_InitStubs(interp, TCL_VERSION, EXACT) == NULL) {
! 	 return TCL_ERROR;
!      }
! #else 
!     if (Tcl_PkgRequire(interp, "Tcl", TCL_VERSION, EXACT) == NULL) {
  	return TCL_ERROR;
      }
- #endif /* USE_TCL_STUBS */
- 
- #ifndef TCL_ONLY
- #ifdef USE_TK_STUBS
-      if (Tk_InitStubs(interp, TK_VERSION, EXACT) == NULL) {
- 	 return TCL_ERROR;
-      }
- #else
-     if (Tcl_PkgRequire(interp, "Tk", TK_VERSION, EXACT) == NULL) {
- 	return TCL_ERROR;
-     }
- #endif /* USE_TK_STUBS */
- #endif /* TCL_ONLY */
  
      /* Set the version variable. We'll use it in the following script. */
      value = Tcl_SetVar(interp, "blt_version", BLT_VERSION, TCL_GLOBAL_ONLY);
--- 209,218 ----
  {
      Tcl_DString dString;
      char *value;
  
!     if (Tcl_InitStubs(interp, "8.1", 0) == NULL) {
  	return TCL_ERROR;
      }
  
      /* Set the version variable. We'll use it in the following script. */
      value = Tcl_SetVar(interp, "blt_version", BLT_VERSION, TCL_GLOBAL_ONLY);
***************
*** 366,372 ****
  /*LINTLIBRARY*/
  
  #ifdef WIN32
- extern int bltPlatformId;
  
  /*
   *----------------------------------------------------------------------
--- 273,278 ----
***************
*** 395,402 ****
  
  #endif
  
! EXPORT int
! Blt_Init(interp)
      Tcl_Interp *interp;		/* Interpreter to add extra commands */
  {
      register Tcl_AppInitProc **p;
--- 301,308 ----
  
  #endif
  
! int
! Bltlite_Init(interp)
      Tcl_Interp *interp;		/* Interpreter to add extra commands */
  {
      register Tcl_AppInitProc **p;
***************
*** 406,442 ****
      if (GetVersionInfo(interp) != TCL_OK) {
  	return TCL_ERROR;
      }
!     spacePtr = NULL;
! #ifndef TCL_ONLY
!     spacePtr = Tcl_CreateNamespace(interp, "blt::tile", (ClientData)0,
! 	(Tcl_NamespaceDeleteProc *) NULL);
!     if (spacePtr == NULL) {
  	return TCL_ERROR;
      }
! #endif
      for (p = initProcArr; *p != NULL; p++) {
  	if ((**p) (interp) != TCL_OK) {
  	    Tcl_DeleteNamespace(spacePtr);
  	    return TCL_ERROR;
  	}
      }
!     if (Tcl_PkgProvide(interp, "BLT", BLT_VERSION) != TCL_OK) {
! 	return TCL_ERROR;
!     }
      args[0] = args[1] = TCL_EITHER;
      Tcl_CreateMathFunc(interp, "min", 2, args, MinMathProc, (ClientData)0);
      Tcl_CreateMathFunc(interp, "max", 2, args, MaxMathProc, (ClientData)0);
- #ifndef TCL_ONLY
-     Blt_InitEpsCanvasItem(interp);
- #endif
      return TCL_OK;
  }
  
  #else
  
  /*LINTLIBRARY*/
! EXPORT int
! Blt_Init(interp)
      Tcl_Interp *interp;		/* Interpreter to add extra commands */
  {
      register Tcl_AppInitProc **p;
--- 312,340 ----
      if (GetVersionInfo(interp) != TCL_OK) {
  	return TCL_ERROR;
      }
!     if (Tcl_PkgProvideEx(interp, "BLT", BLT_VERSION, (ClientData) &bltStubs) != TCL_OK) {
  	return TCL_ERROR;
      }
! 
!     spacePtr = NULL;
      for (p = initProcArr; *p != NULL; p++) {
  	if ((**p) (interp) != TCL_OK) {
  	    Tcl_DeleteNamespace(spacePtr);
  	    return TCL_ERROR;
  	}
      }
! 
      args[0] = args[1] = TCL_EITHER;
      Tcl_CreateMathFunc(interp, "min", 2, args, MinMathProc, (ClientData)0);
      Tcl_CreateMathFunc(interp, "max", 2, args, MaxMathProc, (ClientData)0);
      return TCL_OK;
  }
  
  #else
  
  /*LINTLIBRARY*/
! int
! Bltlite_Init(interp)
      Tcl_Interp *interp;		/* Interpreter to add extra commands */
  {
      register Tcl_AppInitProc **p;
***************
*** 456,471 ****
  	    (Itcl_DeleteProc *) 0, &spaceId) != TCL_OK) {
  	return TCL_ERROR;
      }
- #ifndef TCL_ONLY
-     if (Itcl_CreateNamesp(interp, "blt::tile", (ClientData)0,
- 	    (Itcl_DeleteProc *) 0, &dummy) != TCL_OK) {
- 	return TCL_ERROR;
-     }
- #endif /* TCL_ONLY */
  #endif /* ITCL_NAMESPACES */
      if (Tcl_PkgProvide(interp, "BLT", BLT_VERSION) != TCL_OK) {
  	return TCL_ERROR;
      }
      for (p = initProcArr; *p != NULL; p++) {
  	if ((**p) (interp) != TCL_OK) {
  #ifdef ITCL_NAMESPACES
--- 354,364 ----
  	    (Itcl_DeleteProc *) 0, &spaceId) != TCL_OK) {
  	return TCL_ERROR;
      }
  #endif /* ITCL_NAMESPACES */
      if (Tcl_PkgProvide(interp, "BLT", BLT_VERSION) != TCL_OK) {
  	return TCL_ERROR;
      }
+ 
      for (p = initProcArr; *p != NULL; p++) {
  	if ((**p) (interp) != TCL_OK) {
  #ifdef ITCL_NAMESPACES
***************
*** 479,498 ****
      args[0] = args[1] = TCL_EITHER;
      Tcl_CreateMathFunc(interp, "min", 2, args, MinMathProc, (ClientData)0);
      Tcl_CreateMathFunc(interp, "max", 2, args, MaxMathProc, (ClientData)0);
- #ifndef TCL_ONLY
-     Blt_InitEpsCanvasItem(interp);
- #endif
      return TCL_OK;
  }
  
  #endif /* TCL_MAJOR_VERION >= 8 */
  
  /*LINTLIBRARY*/
! EXPORT int
! Blt_SafeInit(interp)
      Tcl_Interp *interp;		/* Interpreter to add extra commands */
  {
!     return Blt_Init(interp);
  }
  
  /*
--- 372,388 ----
      args[0] = args[1] = TCL_EITHER;
      Tcl_CreateMathFunc(interp, "min", 2, args, MinMathProc, (ClientData)0);
      Tcl_CreateMathFunc(interp, "max", 2, args, MaxMathProc, (ClientData)0);
      return TCL_OK;
  }
  
  #endif /* TCL_MAJOR_VERION >= 8 */
  
  /*LINTLIBRARY*/
! int
! Bltlite_SafeInit(interp)
      Tcl_Interp *interp;		/* Interpreter to add extra commands */
  {
!     return Bltlite_Init(interp);
  }
  
  /*
*** src/bltInt.h.orig	Tue Mar 21 01:26:22 2000
--- src/bltInt.h	Sat Apr 29 21:01:58 2000
***************
*** 32,60 ****
  #undef STRICT
  #undef WIN32_LEAN_AND_MEAN
  #include <windowsx.h>
! #endif /* WIN32 */
  
! #include <tcl.h>
! #include <tk.h>
  
  #define _VERSION(a,b,c)	    (((a) << 16) + ((b) << 8) + (c))
  #define TCL_VERSION_NUMBER _VERSION(TCL_MAJOR_VERSION, TCL_MINOR_VERSION, TCL_RELEASE_SERIAL)
  #define TK_VERSION_NUMBER _VERSION(TK_MAJOR_VERSION, TK_MINOR_VERSION, TK_RELEASE_SERIAL)
  
  #include "bltTkInt.h"
  
  #include <stdio.h>
  #include <assert.h>
  #include <math.h>
  
! #ifdef WIN32
! #include "bltWinConfig.h"
  #else
! #include "bltConfig.h"
  #endif
  
- #include "blt.h"
- 
  #ifdef HAVE_STDLIB_H
  #include <stdlib.h>
  #endif /* HAVE_STDLIB_H */
--- 32,72 ----
  #undef STRICT
  #undef WIN32_LEAN_AND_MEAN
  #include <windowsx.h>
! #endif
  
! #include "tcl.h"
! #include "tk.h"
! 
! #ifdef WIN32
! #include "bltWinConfig.h"
! #else
! #include "bltConfig.h"
! #endif
  
  #define _VERSION(a,b,c)	    (((a) << 16) + ((b) << 8) + (c))
  #define TCL_VERSION_NUMBER _VERSION(TCL_MAJOR_VERSION, TCL_MINOR_VERSION, TCL_RELEASE_SERIAL)
  #define TK_VERSION_NUMBER _VERSION(TK_MAJOR_VERSION, TK_MINOR_VERSION, TK_RELEASE_SERIAL)
  
+ #include "blt.h"
+ 
+ #include "bltInterp.h"
  #include "bltTkInt.h"
  
  #include <stdio.h>
  #include <assert.h>
  #include <math.h>
  
! #undef TCL_STORAGE_CLASS
! #ifdef BUILD_blt
! # define TCL_STORAGE_CLASS DLLEXPORT
  #else
! # ifdef USE_BLT_STUBS
! #  define TCL_STORAGE_CLASS
! # else
! #  define TCL_STORAGE_CLASS DLLIMPORT
! # endif
  #endif
  
  #ifdef HAVE_STDLIB_H
  #include <stdlib.h>
  #endif /* HAVE_STDLIB_H */
***************
*** 174,181 ****
  #else
  #define INLINE
  #endif
- #undef EXPORT
- #define EXPORT
  
  #undef MIN
  #define MIN(a,b)	(((a)<(b))?(a):(b))
--- 186,191 ----
***************
*** 334,344 ****
  
  #undef VARARGS
  #ifdef __cplusplus
- #define ANYARGS (...)
  #define VARARGS(first)  (first, ...)
  #define VARARGS2(first, second)  (first, second, ...)
  #else
- #define ANYARGS ()
  #define VARARGS(first) ()
  #define VARARGS2(first, second) ()
  #endif /* __cplusplus */
--- 344,352 ----
***************
*** 351,357 ****
  
  #ifdef TCL_UTF_MAX
  #define HAVE_UTF	1
! extern FILE *Blt_OpenUtfFile _ANSI_ARGS_((char *fileName, char *mode));
  #define fopen(f,m)	Blt_OpenUtfFile((f),(m));
  #else
  #define HAVE_UTF	0
--- 359,365 ----
  
  #ifdef TCL_UTF_MAX
  #define HAVE_UTF	1
! 
  #define fopen(f,m)	Blt_OpenUtfFile((f),(m));
  #else
  #define HAVE_UTF	0
***************
*** 444,450 ****
  #ifdef	NDEBUG
  #define	assert(EX) ((void)0)
  #else
! extern void Blt_Assert _ANSI_ARGS_((char *expr, char *file, int line));
  #ifdef __STDC__
  #define	assert(EX) (void)((EX) || (Blt_Assert(#EX, __FILE__, __LINE__), 0))
  #else
--- 452,458 ----
  #ifdef	NDEBUG
  #define	assert(EX) ((void)0)
  #else
! 
  #ifdef __STDC__
  #define	assert(EX) (void)((EX) || (Blt_Assert(#EX, __FILE__, __LINE__), 0))
  #else
***************
*** 457,463 ****
  
  typedef int (QSortCompareProc) _ANSI_ARGS_((const void *, const void *));
  
! 
  /*
   * ----------------------------------------------------------------------
   *
--- 465,471 ----
  
  typedef int (QSortCompareProc) _ANSI_ARGS_((const void *, const void *));
  
! #if 0 /* moved to blt.h */
  /*
   * ----------------------------------------------------------------------
   *
***************
*** 513,523 ****
  
  } Blt_OpIndex;
  
! extern Blt_OpProc Blt_GetOperation _ANSI_ARGS_((Tcl_Interp *interp,
  	int nSpecs, Blt_OpSpec *specArr, Blt_OpIndex argIndex,
  	int nArgs, char **argArr));
  
! extern int Blt_LookupOperation _ANSI_ARGS_((Blt_OpSpec *specArr, int nSpecs,
  	char *string));
  
  /*
--- 521,546 ----
  
  } Blt_OpIndex;
  
! 
! EXTERN Blt_OpProc Blt_GetOperation _ANSI_ARGS_((Tcl_Interp *interp,
  	int nSpecs, Blt_OpSpec *specArr, Blt_OpIndex argIndex,
  	int nArgs, char **argArr));
  
! #endif /* moved to blt.h*/
! 
! 
! #undef TCL_STORAGE_CLASS
! #ifdef BUILD_blt
! # define TCL_STORAGE_CLASS DLLEXPORT
! #else
! # ifdef USE_BLT_STUBS
! #  define TCL_STORAGE_CLASS
! # else
! #  define TCL_STORAGE_CLASS DLLIMPORT
! # endif
! #endif
! 
! EXTERN int Blt_LookupOperation _ANSI_ARGS_((Blt_OpSpec *specArr, int nSpecs,
  	char *string));
  
  /*
***************
*** 600,608 ****
      int offset;
  } Dashes;
  
! extern void Blt_SetDashes _ANSI_ARGS_((Display *display, GC gc,
  	Dashes *dashesPtr));
! extern Dashes *Blt_GetDashes _ANSI_ARGS_((GC gc));
  
  /*
   * -------------------------------------------------------------------
--- 623,631 ----
      int offset;
  } Dashes;
  
! EXTERN void Blt_SetDashes _ANSI_ARGS_((Display *display, GC gc,
  	Dashes *dashesPtr));
! EXTERN Dashes *Blt_GetDashes _ANSI_ARGS_((GC gc));
  
  /*
   * -------------------------------------------------------------------
***************
*** 677,685 ****
  #define COLOR_DEFAULT		(XColor *)1
  #define COLOR_ALLOW_DEFAULTS	1
  
! extern int Blt_GetColorPair _ANSI_ARGS_((Tcl_Interp *interp, Tk_Window tkwin,
  	char *fgColor, char *bgColor, ColorPair *pairPtr, int colorFlag));
! extern void Blt_FreeColorPair _ANSI_ARGS_((ColorPair *pairPtr));
  
  #define STATE_NORMAL	0
  #define STATE_ACTIVE	(1<<0)
--- 700,708 ----
  #define COLOR_DEFAULT		(XColor *)1
  #define COLOR_ALLOW_DEFAULTS	1
  
! EXTERN int Blt_GetColorPair _ANSI_ARGS_((Tcl_Interp *interp, Tk_Window tkwin,
  	char *fgColor, char *bgColor, ColorPair *pairPtr, int colorFlag));
! EXTERN void Blt_FreeColorPair _ANSI_ARGS_((ColorPair *pairPtr));
  
  #define STATE_NORMAL	0
  #define STATE_ACTIVE	(1<<0)
***************
*** 740,757 ****
  
  #include "bltText.h"
  
! extern void Blt_DestroyBindingTable _ANSI_ARGS_((BindTable table));
  
! extern BindTable Blt_CreateBindingTable _ANSI_ARGS_((Tcl_Interp *interp,
  	Tk_Window tkwin, ClientData clientData, BindPickProc * pickProc,
  	BindTagProc * tagProc));
  
! extern int Blt_ConfigureBindings _ANSI_ARGS_((Tcl_Interp *interp,
  	BindTable table, ClientData item, int argc, char **argv));
  
! extern void Blt_PickCurrentItem _ANSI_ARGS_((BindTable table));
  
! extern void Blt_DeleteBindings _ANSI_ARGS_((BindTable table,
  	ClientData object));
  
  #define Blt_SetFocusItem(bindPtr, object) \
--- 763,791 ----
  
  #include "bltText.h"
  
! #undef TCL_STORAGE_CLASS
! #ifdef BUILD_blt
! # define TCL_STORAGE_CLASS DLLEXPORT
! #else
! # ifdef USE_BLT_STUBS
! #  define TCL_STORAGE_CLASS
! # else
! #  define TCL_STORAGE_CLASS DLLIMPORT
! # endif
! #endif
! 
! EXTERN void Blt_DestroyBindingTable _ANSI_ARGS_((BindTable table));
  
! EXTERN BindTable Blt_CreateBindingTable _ANSI_ARGS_((Tcl_Interp *interp,
  	Tk_Window tkwin, ClientData clientData, BindPickProc * pickProc,
  	BindTagProc * tagProc));
  
! EXTERN int Blt_ConfigureBindings _ANSI_ARGS_((Tcl_Interp *interp,
  	BindTable table, ClientData item, int argc, char **argv));
  
! EXTERN void Blt_PickCurrentItem _ANSI_ARGS_((BindTable table));
  
! EXTERN void Blt_DeleteBindings _ANSI_ARGS_((BindTable table,
  	ClientData object));
  
  #define Blt_SetFocusItem(bindPtr, object) \
***************
*** 811,1031 ****
  extern int strcasecmp _ANSI_ARGS_((CONST char *s1, CONST char *s2));
  #endif
  
! extern int Blt_StringToFlag _ANSI_ARGS_((ClientData clientData,
  	Tcl_Interp *interp, Tk_Window tkwin, char *string, char *widgRec,
  	int flags));
! extern char *Blt_FlagToString _ANSI_ARGS_((ClientData clientData,
  	Tk_Window tkwin, char *string, int offset, Tcl_FreeProc **freeProc));
  
! extern Tk_Uid Blt_GetUid _ANSI_ARGS_((char *string));
! extern void Blt_FreeUid _ANSI_ARGS_((Tk_Uid uid));
! extern Tk_Uid Blt_FindUid _ANSI_ARGS_((char *string));
! 
! extern char *Blt_Itoa _ANSI_ARGS_((int value));
! extern char *Blt_Dtoa _ANSI_ARGS_((Tcl_Interp *interp, double value));
! 
! extern void Blt_InitHexTable _ANSI_ARGS_((char *table));
! 
! extern GC Blt_GetPrivateGC _ANSI_ARGS_((Tk_Window tkwin, unsigned long gcMask,
  	XGCValues *valuePtr));
  
! extern GC Blt_GetPrivateGCFromDrawable _ANSI_ARGS_((Tk_Window tkwin,
  	Drawable drawable, unsigned long gcMask, XGCValues *valuePtr));
  
! extern void Blt_FreePrivateGC _ANSI_ARGS_((Display *display, GC gc));
  
! extern Tk_Window Blt_FindChild _ANSI_ARGS_((Tk_Window parent, char *name));
  
! extern Tk_Window Blt_FirstChild _ANSI_ARGS_((Tk_Window parent));
  
! extern Tk_Window Blt_NextChild _ANSI_ARGS_((Tk_Window tkwin));
  
! extern void Blt_RelinkWindow _ANSI_ARGS_((Tk_Window tkwin, Tk_Window newParent,
  	int x, int y));
  
! extern Tk_Window Blt_Toplevel _ANSI_ARGS_((Tk_Window tkwin));
  
! extern int Blt_GetPixels _ANSI_ARGS_((Tcl_Interp *interp, Tk_Window tkwin,
  	char *string, int check, int *valuePtr));
! extern int Blt_GetPosition _ANSI_ARGS_((Tcl_Interp *interp, char *string,
  	int *indexPtr));
! extern int Blt_GetCount _ANSI_ARGS_((Tcl_Interp *interp, char *string,
  	int check, int *valuePtr));
  
! extern char *Blt_NameOfFill _ANSI_ARGS_((Fill fill));
  
! extern int Blt_GetXY _ANSI_ARGS_((Tcl_Interp *interp, Tk_Window tkwin,
  	char *string, int *x, int *y));
  
! extern Tcl_Command Blt_InitCmd _ANSI_ARGS_((Tcl_Interp *interp,
! 	char *nameSpace, Blt_CmdSpec *specPtr));
! 
! extern int Blt_InitCmds _ANSI_ARGS_((Tcl_Interp *interp, char *nameSpace,
! 	Blt_CmdSpec *specPtr, int nCmds));
  
! extern int Blt_ConfigModified _ANSI_ARGS_(TCL_VARARGS(Tk_ConfigSpec *, specs));
! 
! extern void Blt_DStringAppendElements _ANSI_ARGS_(TCL_VARARGS(Tcl_DString *, args));
! 
! extern void Blt_MakeTransparentWindowExist _ANSI_ARGS_((Tk_Window tkwin,
  	Window parent, int isBusy));
  
! extern Window Blt_GetParent _ANSI_ARGS_((Display *display, Window tkwin));
  
! extern void Blt_GetBoundingBox _ANSI_ARGS_((int width, int height,
  	double theta, int *widthPtr, int *heightPtr, XPoint *pointArr));
  
! extern void Blt_InitEpsCanvasItem _ANSI_ARGS_((Tcl_Interp *interp));
  
! extern Pixmap Blt_RotateBitmap _ANSI_ARGS_((Tk_Window tkwin, Pixmap bitmap,
  	int width, int height, double theta, int *widthPtr, int *heightPtr));
  
! extern Pixmap Blt_ScaleBitmap _ANSI_ARGS_((Tk_Window tkwin, Pixmap srcBitmap,
  	int srcWidth, int srcHeight, int scaledWidth, int scaledHeight));
  
! extern Pixmap Blt_ScaleBitmapRegion _ANSI_ARGS_((Tk_Window tkwin,
  	Pixmap srcBitmap, int srcWidth, int srcHeight,
  	int scaledWidth, int scaledHeight, ImageRegion *regionPtr));
  
! extern void Blt_TranslateAnchor _ANSI_ARGS_((int x, int y, int width,
  	int height, Tk_Anchor anchor, int *transXPtr, int *transYPtr));
  
  typedef void (Blt_TileChangedProc) _ANSI_ARGS_((ClientData clientData,
  	Blt_Tile tile));
  
! extern int Blt_GetTile _ANSI_ARGS_((Tcl_Interp *interp, Tk_Window tkwin,
  	char *imageName, Blt_Tile *tilePtr));
  
! extern void Blt_FreeTile _ANSI_ARGS_((Blt_Tile tile));
  
! extern char *Blt_NameOfTile _ANSI_ARGS_((Blt_Tile tile));
  
! extern void Blt_SetTileChangedProc _ANSI_ARGS_((Blt_Tile tile,
  	Blt_TileChangedProc *changeProc, ClientData clientData));
  
! extern void Blt_TileRectangle _ANSI_ARGS_((Display *display, Drawable drawable,
  	Blt_Tile tile, int x, int y, unsigned int width, unsigned int height));
! extern void Blt_TileRectangles _ANSI_ARGS_((Display *display, Drawable drawable,
  	Blt_Tile tile, XRectangle *rectArr, int nRects));
! extern void Blt_TilePolygon _ANSI_ARGS_((Display *display, Drawable drawable, 
  	Blt_Tile tile, XPoint *pointArr, int nPoints, int shape, int mode));
  
! extern Pixmap Blt_PixmapOfTile _ANSI_ARGS_((Blt_Tile tile));
  
! extern void Blt_SizeOfTile _ANSI_ARGS_((Blt_Tile tile, int *widthPtr,
  	int *heightPtr));
  
! extern void Blt_SetTileOrigin _ANSI_ARGS_((Tk_Window tkwin, Blt_Tile tile, 
  	int x, int y));
  
! extern void Blt_SetTSOrigin _ANSI_ARGS_((Tk_Window tkwin, Blt_Tile tile, 
  	int x, int y));
  
! extern int Blt_ConfigureWidgetComponent _ANSI_ARGS_((Tcl_Interp *interp,
  	Tk_Window tkwin, char *name, char *class, Tk_ConfigSpec *specs,
  	int argc, char **argv, char *widgRec, int flags));
  
! extern void Blt_HSV _ANSI_ARGS_((XColor *colorPtr, double *huePtr,
  	double *valPtr, double *satPtr));
  
! extern void Blt_RGB _ANSI_ARGS_((double hue, double sat, double val,
  	XColor *colorPtr));
  
! extern int Blt_NaturalSpline _ANSI_ARGS_((double *xCntl, double *yCtrl,
! 	int nCtrls, double *X, double *Y, int nPoints));
! 
! extern int Blt_QuadraticSpline _ANSI_ARGS_((double *xCntl, double *yCtrl,
! 	int nCtrls, double *X, double *Y, int nPoints, double epsilon));
! 
! extern int Blt_ParseFlag _ANSI_ARGS_((ClientData, Tcl_Interp *, Tk_Window,
  	char *, char *, int));
! extern char *Blt_FlagPrint _ANSI_ARGS_((ClientData, Tk_Window, char *, int,
  	Tcl_FreeProc **));
  
! extern Window Blt_GetRealWindowId _ANSI_ARGS_((Tk_Window tkwin));
! extern int Blt_RootX _ANSI_ARGS_((Tk_Window tkwin));
! extern int Blt_RootY _ANSI_ARGS_((Tk_Window tkwin));
! extern void Blt_MapTopLevelWindow _ANSI_ARGS_((Tk_Window tkwin));
! extern void Blt_UnmapTopLevelWindow _ANSI_ARGS_((Tk_Window tkwin));
! extern void Blt_RaiseTopLevelWindow _ANSI_ARGS_((Tk_Window tkwin));
! extern void Blt_ResizeTopLevelWindow _ANSI_ARGS_((Tk_Window tkwin, 
  	int width, int height));
! extern ClientData Blt_GetWindowInstanceData _ANSI_ARGS_((Tk_Window tkwin));
  
! extern void Blt_SetWindowInstanceData _ANSI_ARGS_((Tk_Window tkwin,
  	ClientData instanceData));
  
! extern void Blt_DeleteWindowInstanceData _ANSI_ARGS_((Tk_Window tkwin));
  
! extern int Blt_AdjustViewport _ANSI_ARGS_((int offset, int worldSize,
  	int windowSize, int scrollUnits, int scrollMode));
  
! extern int Blt_GetScrollInfo _ANSI_ARGS_((Tcl_Interp *interp, int argc,
  	char **argv, int *offsetPtr, int worldSize, int windowSize,
  	int scrollUnits, int scrollMode));
  
! extern void Blt_UpdateScrollbar _ANSI_ARGS_((Tcl_Interp *interp,
  	char *scrollCmd, double firstFract, double lastFract));
  
! extern int Blt_ReparentWindow _ANSI_ARGS_((Display *display, Window window,
  	Window newParent, int x, int y));
  
- EXTERN void Blt_Panic _ANSI_ARGS_(TCL_VARARGS(char *, args));
- 
  #ifndef TCL_NAMESPACE_ONLY
  #define TCL_NAMESPACE_ONLY TCL_GLOBAL_ONLY
  #endif
  
! EXTERN Tcl_Namespace *Tcl_GetCurrentNamespace _ANSI_ARGS_((Tcl_Interp *interp));
! EXTERN Tcl_Namespace *Tcl_GetGlobalNamespace _ANSI_ARGS_((Tcl_Interp *interp));
! EXTERN Tcl_Command Tcl_FindCommand _ANSI_ARGS_((Tcl_Interp *interp,
! 	char *name, Tcl_Namespace *nsPtr, int flags));
! 
! #if (TCL_MAJOR_VERSION >= 8)
! 
! EXTERN Tcl_Namespace *Tcl_CreateNamespace _ANSI_ARGS_((Tcl_Interp *interp,
! 	char *name, ClientData clientData,
! 	Tcl_NamespaceDeleteProc * nsDelProc));
! 
! EXTERN void Tcl_DeleteNamespace _ANSI_ARGS_((Tcl_Namespace *nsPtr));
! 
! EXTERN Tcl_Namespace *Tcl_FindNamespace _ANSI_ARGS_((Tcl_Interp *interp,
! 	char *name, Tcl_Namespace *context, int flags));
! 
! EXTERN int Tcl_Export _ANSI_ARGS_((Tcl_Interp *interp, Tcl_Namespace *nsPtr,
! 	char *name, int resetFlag));
! 
! EXTERN Tcl_Var Tcl_FindNamespaceVar _ANSI_ARGS_((Tcl_Interp *interp, char *name,
! 	Tcl_Namespace *contextNsPtr, int flags));
! 
! EXTERN void Tcl_PopCallFrame _ANSI_ARGS_((Tcl_Interp *interp));
! 
! EXTERN int Tcl_PushCallFrame _ANSI_ARGS_((Tcl_Interp *interp,
! 	Tcl_CallFrame * framePtr, Tcl_Namespace *nsPtr, int isProcCallFrame));
! 
! extern Tcl_HashTable *Blt_GetArrayVariableTable _ANSI_ARGS_((
  	Tcl_Interp *interp, char *varName, int flags));
  
! #endif /* TCL_MAJOR_VERSION >= 8 */
! 
! extern Tcl_Namespace *Blt_NamespaceOfVariable _ANSI_ARGS_((Tcl_Interp *interp,
  	char *varName));
  
! extern Tcl_CallFrame *Blt_EnterNamespace _ANSI_ARGS_((Tcl_Interp *interp,
  	Tcl_Namespace *nsPtr));
  
! extern void Blt_LeaveNamespace _ANSI_ARGS_((Tcl_Interp *interp,
  	Tcl_CallFrame * framePtr));
  
! extern int Blt_ParseQualifiedName _ANSI_ARGS_((Tcl_Interp *interp, char *name,
  	Tcl_Namespace **nsPtrPtr, char **namePtr));
  
! extern Tcl_Command Blt_CreateCommand _ANSI_ARGS_((Tcl_Interp *interp,
  	char *cmdName, Tcl_CmdProc *proc, ClientData clientData,
  	Tcl_CmdDeleteProc *deleteProc));
! 
! #if HAVE_JPEGLIB_H
! extern int Blt_JPEGToPhoto _ANSI_ARGS_((Tcl_Interp *interp, char *fileName,
  	Tk_PhotoHandle photo));
  #endif /* HAVE_JPEGLIB_H */
  
--- 845,1010 ----
  extern int strcasecmp _ANSI_ARGS_((CONST char *s1, CONST char *s2));
  #endif
  
! EXTERN int Blt_StringToFlag _ANSI_ARGS_((ClientData clientData,
  	Tcl_Interp *interp, Tk_Window tkwin, char *string, char *widgRec,
  	int flags));
! EXTERN char *Blt_FlagToString _ANSI_ARGS_((ClientData clientData,
  	Tk_Window tkwin, char *string, int offset, Tcl_FreeProc **freeProc));
  
! EXTERN GC Blt_GetPrivateGC _ANSI_ARGS_((Tk_Window tkwin, unsigned long gcMask,
  	XGCValues *valuePtr));
  
! EXTERN GC Blt_GetPrivateGCFromDrawable _ANSI_ARGS_((Tk_Window tkwin,
  	Drawable drawable, unsigned long gcMask, XGCValues *valuePtr));
  
! EXTERN void Blt_FreePrivateGC _ANSI_ARGS_((Display *display, GC gc));
  
! EXTERN Tk_Window Blt_FindChild _ANSI_ARGS_((Tk_Window parent, char *name));
  
! EXTERN Tk_Window Blt_FirstChild _ANSI_ARGS_((Tk_Window parent));
  
! EXTERN Tk_Window Blt_NextChild _ANSI_ARGS_((Tk_Window tkwin));
  
! EXTERN void Blt_RelinkWindow _ANSI_ARGS_((Tk_Window tkwin, Tk_Window newParent,
  	int x, int y));
  
! EXTERN Tk_Window Blt_Toplevel _ANSI_ARGS_((Tk_Window tkwin));
  
! EXTERN int Blt_GetPixels _ANSI_ARGS_((Tcl_Interp *interp, Tk_Window tkwin,
  	char *string, int check, int *valuePtr));
! EXTERN int Blt_GetPosition _ANSI_ARGS_((Tcl_Interp *interp, char *string,
  	int *indexPtr));
! EXTERN int Blt_GetCount _ANSI_ARGS_((Tcl_Interp *interp, char *string,
  	int check, int *valuePtr));
  
! EXTERN char *Blt_NameOfFill _ANSI_ARGS_((Fill fill));
  
! EXTERN int Blt_GetXY _ANSI_ARGS_((Tcl_Interp *interp, Tk_Window tkwin,
  	char *string, int *x, int *y));
  
! EXTERN int Blt_ConfigModified _ANSI_ARGS_(TCL_VARARGS(Tk_ConfigSpec *, specs));
  
! EXTERN void Blt_MakeTransparentWindowExist _ANSI_ARGS_((Tk_Window tkwin,
  	Window parent, int isBusy));
  
! EXTERN Window Blt_GetParent _ANSI_ARGS_((Display *display, Window tkwin));
  
! EXTERN void Blt_GetBoundingBox _ANSI_ARGS_((int width, int height,
  	double theta, int *widthPtr, int *heightPtr, XPoint *pointArr));
  
! EXTERN void Blt_InitEpsCanvasItem _ANSI_ARGS_((Tcl_Interp *interp));
  
! EXTERN Pixmap Blt_RotateBitmap _ANSI_ARGS_((Tk_Window tkwin, Pixmap bitmap,
  	int width, int height, double theta, int *widthPtr, int *heightPtr));
  
! EXTERN Pixmap Blt_ScaleBitmap _ANSI_ARGS_((Tk_Window tkwin, Pixmap srcBitmap,
  	int srcWidth, int srcHeight, int scaledWidth, int scaledHeight));
  
! EXTERN Pixmap Blt_ScaleBitmapRegion _ANSI_ARGS_((Tk_Window tkwin,
  	Pixmap srcBitmap, int srcWidth, int srcHeight,
  	int scaledWidth, int scaledHeight, ImageRegion *regionPtr));
  
! EXTERN void Blt_TranslateAnchor _ANSI_ARGS_((int x, int y, int width,
  	int height, Tk_Anchor anchor, int *transXPtr, int *transYPtr));
  
  typedef void (Blt_TileChangedProc) _ANSI_ARGS_((ClientData clientData,
  	Blt_Tile tile));
  
! EXTERN int Blt_GetTile _ANSI_ARGS_((Tcl_Interp *interp, Tk_Window tkwin,
  	char *imageName, Blt_Tile *tilePtr));
  
! EXTERN void Blt_FreeTile _ANSI_ARGS_((Blt_Tile tile));
  
! EXTERN char *Blt_NameOfTile _ANSI_ARGS_((Blt_Tile tile));
  
! EXTERN void Blt_SetTileChangedProc _ANSI_ARGS_((Blt_Tile tile,
  	Blt_TileChangedProc *changeProc, ClientData clientData));
  
! EXTERN void Blt_TileRectangle _ANSI_ARGS_((Display *display, Drawable drawable,
  	Blt_Tile tile, int x, int y, unsigned int width, unsigned int height));
! EXTERN void Blt_TileRectangles _ANSI_ARGS_((Display *display, Drawable drawable,
  	Blt_Tile tile, XRectangle *rectArr, int nRects));
! EXTERN void Blt_TilePolygon _ANSI_ARGS_((Display *display, Drawable drawable, 
  	Blt_Tile tile, XPoint *pointArr, int nPoints, int shape, int mode));
  
! EXTERN Pixmap Blt_PixmapOfTile _ANSI_ARGS_((Blt_Tile tile));
  
! EXTERN void Blt_SizeOfTile _ANSI_ARGS_((Blt_Tile tile, int *widthPtr,
  	int *heightPtr));
  
! EXTERN void Blt_SetTileOrigin _ANSI_ARGS_((Tk_Window tkwin, Blt_Tile tile, 
  	int x, int y));
  
! EXTERN void Blt_SetTSOrigin _ANSI_ARGS_((Tk_Window tkwin, Blt_Tile tile, 
  	int x, int y));
  
! EXTERN int Blt_ConfigureWidgetComponent _ANSI_ARGS_((Tcl_Interp *interp,
  	Tk_Window tkwin, char *name, char *class, Tk_ConfigSpec *specs,
  	int argc, char **argv, char *widgRec, int flags));
  
! EXTERN void Blt_HSV _ANSI_ARGS_((XColor *colorPtr, double *huePtr,
  	double *valPtr, double *satPtr));
  
! EXTERN void Blt_RGB _ANSI_ARGS_((double hue, double sat, double val,
  	XColor *colorPtr));
  
! EXTERN int Blt_ParseFlag _ANSI_ARGS_((ClientData, Tcl_Interp *, Tk_Window,
  	char *, char *, int));
! EXTERN char *Blt_FlagPrint _ANSI_ARGS_((ClientData, Tk_Window, char *, int,
  	Tcl_FreeProc **));
  
! EXTERN Window Blt_GetRealWindowId _ANSI_ARGS_((Tk_Window tkwin));
! EXTERN int Blt_RootX _ANSI_ARGS_((Tk_Window tkwin));
! EXTERN int Blt_RootY _ANSI_ARGS_((Tk_Window tkwin));
! EXTERN void Blt_MapTopLevelWindow _ANSI_ARGS_((Tk_Window tkwin));
! EXTERN void Blt_UnmapTopLevelWindow _ANSI_ARGS_((Tk_Window tkwin));
! EXTERN void Blt_RaiseTopLevelWindow _ANSI_ARGS_((Tk_Window tkwin));
! EXTERN void Blt_ResizeTopLevelWindow _ANSI_ARGS_((Tk_Window tkwin, 
  	int width, int height));
! EXTERN ClientData Blt_GetWindowInstanceData _ANSI_ARGS_((Tk_Window tkwin));
  
! EXTERN void Blt_SetWindowInstanceData _ANSI_ARGS_((Tk_Window tkwin,
  	ClientData instanceData));
  
! EXTERN void Blt_DeleteWindowInstanceData _ANSI_ARGS_((Tk_Window tkwin));
  
! EXTERN int Blt_AdjustViewport _ANSI_ARGS_((int offset, int worldSize,
  	int windowSize, int scrollUnits, int scrollMode));
  
! EXTERN int Blt_GetScrollInfo _ANSI_ARGS_((Tcl_Interp *interp, int argc,
  	char **argv, int *offsetPtr, int worldSize, int windowSize,
  	int scrollUnits, int scrollMode));
  
! EXTERN void Blt_UpdateScrollbar _ANSI_ARGS_((Tcl_Interp *interp,
  	char *scrollCmd, double firstFract, double lastFract));
  
! EXTERN int Blt_ReparentWindow _ANSI_ARGS_((Display *display, Window window,
  	Window newParent, int x, int y));
  
  #ifndef TCL_NAMESPACE_ONLY
  #define TCL_NAMESPACE_ONLY TCL_GLOBAL_ONLY
  #endif
  
! EXTERN Tcl_HashTable *Blt_GetArrayVariableTable _ANSI_ARGS_((
  	Tcl_Interp *interp, char *varName, int flags));
  
! EXTERN Tcl_Namespace *Blt_NamespaceOfVariable _ANSI_ARGS_((Tcl_Interp *interp,
  	char *varName));
  
! EXTERN Tcl_CallFrame *Blt_EnterNamespace _ANSI_ARGS_((Tcl_Interp *interp,
  	Tcl_Namespace *nsPtr));
  
! EXTERN void Blt_LeaveNamespace _ANSI_ARGS_((Tcl_Interp *interp,
  	Tcl_CallFrame * framePtr));
  
! EXTERN int Blt_ParseQualifiedName _ANSI_ARGS_((Tcl_Interp *interp, char *name,
  	Tcl_Namespace **nsPtrPtr, char **namePtr));
  
! EXTERN Tcl_Command Blt_CreateCommand _ANSI_ARGS_((Tcl_Interp *interp,
  	char *cmdName, Tcl_CmdProc *proc, ClientData clientData,
  	Tcl_CmdDeleteProc *deleteProc));
! #ifdef HAVE_JPEGLIB_H
! EXTERN int Blt_JPEGToPhoto _ANSI_ARGS_((Tcl_Interp *interp, char *fileName,
  	Tk_PhotoHandle photo));
  #endif /* HAVE_JPEGLIB_H */
  
***************
*** 1142,1169 ****
  
  #endif /* CHECK_UNICODE_CALLS */
  
- extern double hypot(double x, double y);
- extern int Blt_AsyncRead(int fd, char *buffer, unsigned int size);
- extern int Blt_AsyncWrite(int fd, char *buffer, unsigned int size);
- extern void Blt_CreateFileHandler(int fd, int flags, Tcl_FileProc * proc,
-     ClientData clientData);
- extern void Blt_DeleteFileHandler(int fd);
- extern int Blt_GetPlatformId(void);
- extern char *Blt_LastError(void);
- extern int Blt_GetOpenPrinter(Tcl_Interp *interp, const char *id,
-     Drawable *drawablePtr);
- extern int Blt_OpenPrinterDoc(Tcl_Interp *interp, const char *id);
- extern int Blt_ClosePrinterDoc(Tcl_Interp *interp, const char *id);
- extern void Blt_GetPrinterScale(HDC dc, double *xRatio, double *yRatio);
- 
  #ifdef _MSC_VER
! #define strncasecmp(s1,s2,n)	_strnicmp(s1,s2,n)
! #define strcasecmp(s1,s2)	_stricmp(s1,s2)
  #endif
  
- #undef EXPORT
- #define EXPORT __declspec(dllexport)
- 
  #ifndef _MSC_VER
  /*
   * Add missing definitions from windgi.h, windowsx.h, and winspool.h
--- 1121,1147 ----
  
  #endif /* CHECK_UNICODE_CALLS */
  
  #ifdef _MSC_VER
! #    define hypot _hypot
! #endif /* _MSC_VER */
! EXTERN int Blt_AsyncRead _ANSI_ARGS_((int fd, char *buffer, unsigned int size));
! EXTERN int Blt_AsyncWrite _ANSI_ARGS_((int fd, char *buffer, unsigned int size));
! EXTERN void Blt_CreateFileHandler _ANSI_ARGS_((int fd, int flags, Tcl_FileProc * proc,
!     ClientData clientData));
! EXTERN void Blt_DeleteFileHandler _ANSI_ARGS_((int fd));
! EXTERN int Blt_GetOpenPrinter _ANSI_ARGS_((Tcl_Interp *interp, const char *id,
!     Drawable *drawablePtr));
! EXTERN int Blt_OpenPrinterDoc _ANSI_ARGS_((Tcl_Interp *interp, const char *id));
! EXTERN int Blt_ClosePrinterDoc _ANSI_ARGS_((Tcl_Interp *interp, const char *id));
! EXTERN void Blt_GetPrinterScale _ANSI_ARGS_((HDC dc, double *xRatio, double *yRatio));
! 
! #ifndef  __GNUC__
! #undef strncasecmp
! #undef strcasecmp
! #define strncasecmp(s1,s2,n)	strnicmp(s1,s2,n)
! #define strcasecmp(s1,s2)	stricmp(s1,s2)
  #endif
  
  #ifndef _MSC_VER
  /*
   * Add missing definitions from windgi.h, windowsx.h, and winspool.h
***************
*** 1175,1180 ****
--- 1153,1181 ----
  #define realloc(p, s)		Tcl_Realloc((p), (s))
  #define free			Tcl_Free
  
+ #undef XCopyArea
+ #undef XCopyPlane
+ #undef XDrawArcs
+ #undef XDrawLine
+ #undef XDrawLines
+ #undef XDrawPoints
+ #undef XDrawRectangle
+ #undef XDrawRectangles
+ #undef XDrawSegments
+ #undef XDrawString
+ #undef XFillArcs
+ #undef XFillRectangle
+ #undef XFillRectangles
+ #undef XFree
+ #undef XGetWindowAttributes
+ #undef XLowerWindow
+ #undef XMaxRequestSize
+ #undef XRaiseWindow
+ #undef XReparentWindow
+ #undef XSetDashes
+ #undef XUnmapWindow
+ #undef XWarpPointer
+ 
  #define strdup(s)		Blt_EmulateStrdup(s)
  #define calloc(s,n)		Blt_EmulateCalloc((s),(n))
  #define XCopyArea		Blt_EmulateXCopyArea
***************
*** 1200,1268 ****
  #define XUnmapWindow		Blt_EmulateXUnmapWindow
  #define XWarpPointer		Blt_EmulateXWarpPointer
  
! EXTERN char *Blt_EmulateStrdup(const char *string);
! EXTERN void *Blt_EmulateCalloc(unsigned int size, unsigned int nElems);
! EXTERN GC Blt_EmulateXCreateGC(Display *display, Drawable drawable,
!     unsigned long mask, XGCValues *valuesPtr);
! EXTERN void Blt_EmulateXCopyArea(Display *display, Drawable src, Drawable dest,
      GC gc, int src_x, int src_y, unsigned int width, unsigned int height,
!     int dest_x, int dest_y);
! EXTERN void Blt_EmulateXCopyPlane(Display *display, Drawable src,
      Drawable dest, GC gc, int src_x, int src_y, unsigned int width,
!     unsigned int height, int dest_x, int dest_y, unsigned long plane);
! EXTERN void Blt_EmulateXDrawArcs(Display *display, Drawable drawable, GC gc,
!     XArc *arcArr, int nArcs);
! EXTERN void Blt_EmulateXDrawLine(Display *display, Drawable drawable, GC gc,
!     int x1, int y1, int x2, int y2);
! EXTERN void Blt_EmulateXDrawLines(Display *display, Drawable drawable, GC gc,
!     XPoint *pointArr, int nPoints, int mode);
! EXTERN void Blt_EmulateXDrawPoints(Display *display, Drawable drawable, GC gc,
!     XPoint *pointArr, int nPoints, int mode);
! EXTERN void Blt_EmulateXDrawRectangle(Display *display, Drawable drawable,
!     GC gc, int x, int y, unsigned int width, unsigned int height);
! EXTERN void Blt_EmulateXDrawRectangles(Display *display, Drawable drawable,
!     GC gc, XRectangle *rectArr, int nRects);
! EXTERN void Blt_EmulateXDrawSegments(Display *display, Drawable drawable,
!     GC gc, XSegment *segArr, int nSegments);
! EXTERN void Blt_EmulateXDrawSegments(Display *display, Drawable drawable,
!     GC gc, XSegment *segArr, int nSegments);
! EXTERN void Blt_EmulateXDrawString(Display *display, Drawable drawable, GC gc,
!     int x, int y, _Xconst char *string, int length);
! EXTERN void Blt_EmulateXFillArcs(Display *display, Drawable drawable, GC gc,
!     XArc *arcArr, int nArcs);
! EXTERN void Blt_EmulateXFillRectangle(Display *display, Drawable drawable,
!     GC gc, int x, int y, unsigned int width, unsigned int height);
! EXTERN void Blt_EmulateXFillRectangles(Display *display, Drawable drawable,
!     GC gc, XRectangle *rectArr, int nRects);
! EXTERN void Blt_EmulateXFree(void *ptr);
! EXTERN Status Blt_EmulateXGetWindowAttributes(Display *display, Window window,
!     XWindowAttributes * attrsPtr);
! EXTERN void Blt_EmulateXLowerWindow(Display *display, Window window);
! EXTERN void Blt_EmulateXMapWindow(Display *display, Window window);
! EXTERN long Blt_EmulateXMaxRequestSize(Display *display);
! EXTERN void Blt_EmulateXRaiseWindow(Display *display, Window window);
! EXTERN void Blt_EmulateXReparentWindow(Display *display, Window window,
!     Window parent, int x, int y);
! EXTERN void Blt_EmulateXSetDashes(Display *display, GC gc, int dashOffset,
!     _Xconst char *dashList, int n);
! EXTERN void Blt_EmulateXUnmapWindow(Display *display, Window window);
! EXTERN void Blt_EmulateXWarpPointer(Display *display, Window srcWindow,
      Window destWindow, int srcX, int srcY, unsigned int srcWidth,
!     unsigned int srcHeight, int destX, int destY);
  
! EXTERN void Blt_FastDrawLines(Display *display, Drawable drawable, GC gc,
!     XPoint *pointArr, int nPoints, int mode);
  
! extern unsigned char *Blt_GetBitmapData _ANSI_ARGS_((Display *display,
  	Pixmap bitmap, int width, int height, int *pitchPtr));
  
! extern HFONT Blt_CreateRotatedFont _ANSI_ARGS_((Tk_Window tkwin,
  	unsigned long font, double theta));
  
! extern HPALETTE Blt_GetSystemPalette _ANSI_ARGS_((void));
  
! extern HPEN Blt_GCToPen _ANSI_ARGS_((HDC dc, GC gc));
  
  #endif /* WIN32 */
  
  #endif /*_BLT_INT_H*/
--- 1201,1279 ----
  #define XUnmapWindow		Blt_EmulateXUnmapWindow
  #define XWarpPointer		Blt_EmulateXWarpPointer
  
! EXTERN GC Blt_EmulateXCreateGC _ANSI_ARGS_((Display *display, Drawable drawable,
!     unsigned long mask, XGCValues *valuesPtr));
! EXTERN void Blt_EmulateXCopyArea _ANSI_ARGS_((Display *display, Drawable src, Drawable dest,
      GC gc, int src_x, int src_y, unsigned int width, unsigned int height,
!     int dest_x, int dest_y));
! EXTERN void Blt_EmulateXCopyPlane _ANSI_ARGS_((Display *display, Drawable src,
      Drawable dest, GC gc, int src_x, int src_y, unsigned int width,
!     unsigned int height, int dest_x, int dest_y, unsigned long plane));
! EXTERN void Blt_EmulateXDrawArcs _ANSI_ARGS_((Display *display, Drawable drawable, GC gc,
!     XArc *arcArr, int nArcs));
! EXTERN void Blt_EmulateXDrawLine _ANSI_ARGS_((Display *display, Drawable drawable, GC gc,
!     int x1, int y1, int x2, int y2));
! EXTERN void Blt_EmulateXDrawLines _ANSI_ARGS_((Display *display, Drawable drawable, GC gc,
!     XPoint *pointArr, int nPoints, int mode));
! EXTERN void Blt_EmulateXDrawPoints _ANSI_ARGS_((Display *display, Drawable drawable, GC gc,
!     XPoint *pointArr, int nPoints, int mode));
! EXTERN void Blt_EmulateXDrawRectangle _ANSI_ARGS_((Display *display, Drawable drawable,
!     GC gc, int x, int y, unsigned int width, unsigned int height));
! EXTERN void Blt_EmulateXDrawRectangles _ANSI_ARGS_((Display *display, Drawable drawable,
!     GC gc, XRectangle *rectArr, int nRects));
! EXTERN void Blt_EmulateXDrawSegments _ANSI_ARGS_((Display *display, Drawable drawable,
!     GC gc, XSegment *segArr, int nSegments));
! EXTERN void Blt_EmulateXDrawSegments _ANSI_ARGS_((Display *display, Drawable drawable,
!     GC gc, XSegment *segArr, int nSegments));
! EXTERN void Blt_EmulateXDrawString _ANSI_ARGS_((Display *display, Drawable drawable, GC gc,
!     int x, int y, _Xconst char *string, int length));
! EXTERN void Blt_EmulateXFillArcs _ANSI_ARGS_((Display *display, Drawable drawable, GC gc,
!     XArc *arcArr, int nArcs));
! EXTERN void Blt_EmulateXFillRectangle _ANSI_ARGS_((Display *display, Drawable drawable,
!     GC gc, int x, int y, unsigned int width, unsigned int height));
! EXTERN void Blt_EmulateXFillRectangles _ANSI_ARGS_((Display *display, Drawable drawable,
!     GC gc, XRectangle *rectArr, int nRects));
! EXTERN void Blt_EmulateXFree _ANSI_ARGS_((void *ptr));
! EXTERN Status Blt_EmulateXGetWindowAttributes _ANSI_ARGS_((Display *display, Window window,
!     XWindowAttributes * attrsPtr));
! EXTERN void Blt_EmulateXLowerWindow _ANSI_ARGS_((Display *display, Window window));
! EXTERN void Blt_EmulateXMapWindow _ANSI_ARGS_((Display *display, Window window));
! EXTERN long Blt_EmulateXMaxRequestSize _ANSI_ARGS_((Display *display));
! EXTERN void Blt_EmulateXRaiseWindow _ANSI_ARGS_((Display *display, Window window));
! EXTERN void Blt_EmulateXReparentWindow _ANSI_ARGS_((Display *display, Window window,
!     Window parent, int x, int y));
! EXTERN void Blt_EmulateXSetDashes _ANSI_ARGS_((Display *display, GC gc, int dashOffset,
!     _Xconst char *dashList, int n));
! EXTERN void Blt_EmulateXUnmapWindow _ANSI_ARGS_((Display *display, Window window));
! EXTERN void Blt_EmulateXWarpPointer _ANSI_ARGS_((Display *display, Window srcWindow,
      Window destWindow, int srcX, int srcY, unsigned int srcWidth,
!     unsigned int srcHeight, int destX, int destY));
  
! EXTERN void Blt_FastDrawLines _ANSI_ARGS_((Display *display, Drawable drawable, GC gc,
!     XPoint *pointArr, int nPoints, int mode));
  
! EXTERN unsigned char *Blt_GetBitmapData _ANSI_ARGS_((Display *display,
  	Pixmap bitmap, int width, int height, int *pitchPtr));
  
! EXTERN HFONT Blt_CreateRotatedFont _ANSI_ARGS_((Tk_Window tkwin,
  	unsigned long font, double theta));
  
! EXTERN HPALETTE Blt_GetSystemPalette _ANSI_ARGS_((void));
  
! EXTERN HPEN Blt_GCToPen _ANSI_ARGS_((HDC dc, GC gc));
  
  #endif /* WIN32 */
+ 
+ #include "bltPlatDecls.h"
+ 
+ #undef TCL_STORAGE_CLASS
+ #define TCL_STORAGE_CLASS DLLIMPORT
+ 
+ #include "tclIntDecls.h"
+ #include "tclIntPlatDecls.h"
+ #include "tclPlatDecls.h"
+ #include "tkIntDecls.h"
+ #include "tkIntPlatDecls.h"
+ #include "tkPlatDecls.h"
  
  #endif /*_BLT_INT_H*/
*** src/bltInterp.h.orig	Wed Oct 27 02:16:48 1999
--- src/bltInterp.h	Sat Apr 29 21:01:58 2000
***************
*** 152,158 ****
  typedef struct Namespace Namespace;
  typedef struct ActiveVarTrace ActiveVarTrace;
  typedef struct Proc Proc;
! typedef struct Trace Trace;
  
  struct TclRegexp;
  struct ExecEnv;
--- 152,158 ----
  typedef struct Namespace Namespace;
  typedef struct ActiveVarTrace ActiveVarTrace;
  typedef struct Proc Proc;
! struct Trace;
  
  struct TclRegexp;
  struct ExecEnv;
***************
*** 333,339 ****
  				 * to Tcl_EvalFile. */
      int flags;			/* Various flag bits.  See below. */
      long randSeed;		/* Seed used for rand() function. */
!     Trace *tracePtr;		/* List of traces for this interpreter. */
      Tcl_HashTable *assocData;	/* Hash table for associating data with
                                   * this interpreter. Cleaned up when
                                   * this interpreter is deleted. */
--- 333,339 ----
  				 * to Tcl_EvalFile. */
      int flags;			/* Various flag bits.  See below. */
      long randSeed;		/* Seed used for rand() function. */
!     struct Trace *tracePtr;	/* List of traces for this interpreter. */
      Tcl_HashTable *assocData;	/* Hash table for associating data with
                                   * this interpreter. Cleaned up when
                                   * this interpreter is deleted. */
*** src/bltList.c.orig	Fri Oct  8 08:40:46 1999
--- src/bltList.c	Sat Apr 29 21:01:58 2000
***************
*** 25,31 ****
   */
  
  #include "bltInt.h"
! #include "bltList.h"
  
  static struct Blt_ListEntry *
  FindString(listPtr, key)
--- 25,55 ----
   */
  
  #include "bltInt.h"
! 
! /*
!  *   This list of undef's and the definition of bltStubPtr are
!  *   workarounds for the fact that the source code for BLTlite
!  *   and BLT are in the same directory. If they were separated,
!  *   then BLTlite could be compiled without -DUSE_BLT_STUBS.
!  *   Then this trick wouldn't be necessary.
!  */
! 
! #undef Blt_InitList
! #undef Blt_ListAppend
! #undef Blt_ListCreate
! #undef Blt_ListDelete
! #undef Blt_ListDeleteEntry
! #undef Blt_ListDestroy
! #undef Blt_ListFind
! #undef Blt_ListLinkBefore
! #undef Blt_ListNewEntry
! #undef Blt_ListReset
! #undef Blt_ListUnlinkEntry
! 
! extern BltStubs bltStubs;
! #define bltStubsPtr (&bltStubs)
! extern BltPlatStubs bltPlatStubs;
! #define bltPlatStubsPtr (&bltPlatStubs)
  
  static struct Blt_ListEntry *
  FindString(listPtr, key)
*** src/bltList.h.orig	Fri Oct  8 08:40:46 1999
--- src/bltList.h	Sat Apr 29 21:01:58 2000
***************
*** 59,85 ****
      int type;			/* Type of keys in list */
  };
  
! extern void Blt_InitList _ANSI_ARGS_((Blt_List *listPtr, int type));
! extern Blt_List *Blt_ListCreate _ANSI_ARGS_((int type));
! extern void Blt_ListDestroy _ANSI_ARGS_((Blt_List *listPtr));
! extern Blt_ListEntry Blt_ListNewEntry _ANSI_ARGS_((Blt_List *listPtr, 
  	char *key));
! extern Blt_ListEntry Blt_ListAppend _ANSI_ARGS_((Blt_List *listPtr, char *key,
  	ClientData clientData));
! extern Blt_ListEntry Blt_ListPrepend _ANSI_ARGS_((Blt_List *listPtr, char *key,
  	ClientData clientData));
! extern void Blt_ListReset _ANSI_ARGS_((Blt_List *listPtr));
! extern void Blt_ListLinkAfter _ANSI_ARGS_((Blt_List *listPtr, 
  	Blt_ListEntry entry, Blt_ListEntry afterEntry));
! extern void Blt_ListLinkBefore _ANSI_ARGS_((Blt_List *listPtr,
  	Blt_ListEntry entry, Blt_ListEntry beforeEntry));
! extern void Blt_ListUnlinkEntry _ANSI_ARGS_((Blt_ListEntry entry));
! extern Blt_ListEntry Blt_ListFind _ANSI_ARGS_((Blt_List *listPtr, char *name));
! extern void Blt_ListDeleteEntry _ANSI_ARGS_((Blt_ListEntry entry));
! extern void Blt_ListDelete _ANSI_ARGS_((Blt_List *listPtr, char *name));
! extern Blt_ListEntry Blt_ListGetNthEntry _ANSI_ARGS_((Blt_List *listPtr,
  	int position, int direction));
! extern void Blt_ListSort _ANSI_ARGS_((Blt_List *listPtr,
  	Blt_ListCompareProc * proc));
  
  #define Blt_ListGetLength(list) (((list) == NULL) ? 0 : (list)->nEntries)
--- 59,85 ----
      int type;			/* Type of keys in list */
  };
  
! EXTERN void Blt_InitList _ANSI_ARGS_((Blt_List *listPtr, int type));
! EXTERN Blt_List *Blt_ListCreate _ANSI_ARGS_((int type));
! EXTERN void Blt_ListDestroy _ANSI_ARGS_((Blt_List *listPtr));
! EXTERN Blt_ListEntry Blt_ListNewEntry _ANSI_ARGS_((Blt_List *listPtr, 
  	char *key));
! EXTERN Blt_ListEntry Blt_ListAppend _ANSI_ARGS_((Blt_List *listPtr, char *key,
  	ClientData clientData));
! EXTERN Blt_ListEntry Blt_ListPrepend _ANSI_ARGS_((Blt_List *listPtr, char *key,
  	ClientData clientData));
! EXTERN void Blt_ListReset _ANSI_ARGS_((Blt_List *listPtr));
! EXTERN void Blt_ListLinkAfter _ANSI_ARGS_((Blt_List *listPtr, 
  	Blt_ListEntry entry, Blt_ListEntry afterEntry));
! EXTERN void Blt_ListLinkBefore _ANSI_ARGS_((Blt_List *listPtr,
  	Blt_ListEntry entry, Blt_ListEntry beforeEntry));
! EXTERN void Blt_ListUnlinkEntry _ANSI_ARGS_((Blt_ListEntry entry));
! EXTERN Blt_ListEntry Blt_ListFind _ANSI_ARGS_((Blt_List *listPtr, char *name));
! EXTERN void Blt_ListDeleteEntry _ANSI_ARGS_((Blt_ListEntry entry));
! EXTERN void Blt_ListDelete _ANSI_ARGS_((Blt_List *listPtr, char *name));
! EXTERN Blt_ListEntry Blt_ListGetNthEntry _ANSI_ARGS_((Blt_List *listPtr,
  	int position, int direction));
! EXTERN void Blt_ListSort _ANSI_ARGS_((Blt_List *listPtr,
  	Blt_ListCompareProc * proc));
  
  #define Blt_ListGetLength(list) (((list) == NULL) ? 0 : (list)->nEntries)
*** src/bltNsUtil.c.orig	Thu Mar 16 08:27:01 2000
--- src/bltNsUtil.c	Sat Apr 29 21:01:58 2000
***************
*** 26,32 ****
   */
  
  #include "bltInt.h"
! #include "bltList.h"
  
  /* Namespace related routines */
  
--- 26,42 ----
   */
  
  #include "bltInt.h"
! 
! /*
!  *   This definition of bltStubPtr is a
!  *   workarounds for the fact that the source code for BLTlite
!  *   and BLT are in the same directory. If they were separated,
!  *   then BLTlite could be compiled without -DUSE_BLT_STUBS.
!  *   Then this trick wouldn't be necessary.
!  */
! 
! extern BltStubs bltStubs;
! #define bltStubsPtr (&bltStubs)
  
  /* Namespace related routines */
  
***************
*** 230,238 ****
      int flags;
  } Var;
  
- extern Var *TclLookupVar _ANSI_ARGS_((Tcl_Interp *interp, char *part1, char *part2,
- 	int flags, char *mesg, int p1Flags, int p2Flags, Var ** varPtrPtr));
- 
  #define VAR_SCALAR		0x1
  #define VAR_ARRAY		0x2
  #define VAR_LINK		0x4
--- 240,245 ----
***************
*** 275,281 ****
      if (varPtr == NULL) {
  	return NULL;
      }
!     return varPtr->nsPtr;
  }
  
  Tcl_CallFrame *
--- 282,288 ----
      if (varPtr == NULL) {
  	return NULL;
      }
!     return (Tcl_Namespace *) varPtr->nsPtr;
  }
  
  Tcl_CallFrame *
*** src/bltParse.c.orig	Wed Oct 27 02:05:48 1999
--- src/bltParse.c	Sat Apr 29 21:01:58 2000
***************
*** 20,26 ****
  #include <bltInt.h>
  
  #if (TCL_VERSION_NUMBER >= _VERSION(8,1,0))
- #include "bltInterp.h"
  
  /*
   * A table used to classify input characters to assist in parsing
--- 20,25 ----
*** src/bltPkgInit.c.orig	Sat Apr 29 21:01:58 2000
--- src/bltPkgInit.c	Sat Apr 29 21:01:58 2000
***************
*** 0 ****
--- 1,244 ----
+ /*
+  * bltPkgInit.c --
+  *
+  *	This module initials the BLT toolkit, registering its commands
+  *	with the Tcl/Tk interpreter.
+  *
+  * Copyright 1991-1998 Lucent Technologies, Inc.
+  *
+  * Permission to use, copy, modify, and distribute this software and
+  * its documentation for any purpose and without fee is hereby
+  * granted, provided that the above copyright notice appear in all
+  * copies and that both that the copyright notice and warranty
+  * disclaimer appear in supporting documentation, and that the names
+  * of Lucent Technologies any of their entities not be used in
+  * advertising or publicity pertaining to distribution of the software
+  * without specific, written prior permission.
+  *
+  * Lucent Technologies disclaims all warranties with regard to this
+  * software, including all implied warranties of merchantability and
+  * fitness.  In no event shall Lucent Technologies be liable for any
+  * special, indirect or consequential damages or any damages
+  * whatsoever resulting from loss of use, data or profits, whether in
+  * an action of contract, negligence or other tortuous action, arising
+  * out of or in connection with the use or performance of this
+  * software.
+  */
+ 
+ #include <bltInt.h>
+ #include "tkbltDecls.h"
+ 
+ #ifndef USE_TCL_STUBS
+ #undef Tcl_InitStubs
+ #define Tcl_InitStubs(a,b,c) Tcl_PkgRequire(a,"Tcl",TCL_VERSION,1)
+ #endif
+ 
+ #ifndef USE_TK_STUBS
+ #undef Tk_InitStubs
+ #define Tk_InitStubs(a,b,c) Tcl_PkgRequire(a,"Tk",TK_VERSION,1)
+ #endif
+ 
+ #ifndef USE_BLT_STUBS
+ #undef Blt_InitStubs
+ #define Blt_InitStubs(a,b,c) Tcl_PkgRequire(a,"BLT",BLT_VERSION,1)
+ extern BltStubs bltStubs;
+ #define bltStubsPtr (&bltStubs)
+ #endif
+ 
+ double bltPosInfinity = (double)DBL_MAX;
+ double bltNegInfinity = (double)-(DBL_MAX);
+ 
+ extern TkbltStubs tkbltStubs;
+ 
+ static Tcl_AppInitProc *initProcArr[] =
+ {
+ #ifndef NO_GRAPH
+     Blt_GraphInit,
+ #endif
+ #ifndef NO_TABLE
+     Blt_TableInit,
+ #endif
+ #ifndef NO_HIERBOX
+     Blt_HierboxInit,
+ #endif
+ #ifndef NO_HIERTABLE
+     Blt_HiertableInit,
+ #endif
+ #ifndef NO_TABSET
+     Blt_TabsetInit,
+ #endif
+ #ifndef NO_HTEXT
+     Blt_HtextInit,
+ #endif
+ #ifndef NO_BUSY
+     Blt_BusyInit,
+ #endif
+ #ifndef NO_WINOP
+     Blt_WinopInit,
+ #endif
+ #ifndef NO_BITMAP
+     Blt_BitmapInit,
+ #endif
+ #ifndef NO_DRAGDROP
+     Blt_DragDropInit,
+ #endif
+ #ifndef NO_DND
+     Blt_DndInit,
+ #endif
+ #ifndef NO_CONTAINER
+     Blt_ContainerInit,
+ #endif
+ #ifndef NO_BELL
+     Blt_BeepInit,
+ #endif
+ #ifndef NO_CUTBUFFER
+     Blt_CutbufferInit,
+ #endif
+ #ifndef NO_PRINTER
+     Blt_PrinterInit,
+ #endif
+ #ifndef NO_TILEFRAME
+     Blt_FrameInit,
+ #endif
+ #ifndef NO_TILEBUTTON
+     Blt_ButtonInit,
+ #endif
+ #ifndef NO_TILESCROLLBAR
+     Blt_ScrollbarInit,
+ #endif
+ #if (BLT_MAJOR_VERSION == 3)
+ #ifndef NO_MOUNTAIN
+     Blt_MountainInit,
+ #endif
+ #endif
+ #ifndef NO_TED
+     Blt_TedInit,
+ #endif
+     (Tcl_AppInitProc *) NULL
+ };
+ 
+ #if (TCL_MAJOR_VERSION > 7)
+ 
+ /*LINTLIBRARY*/
+ 
+ #ifdef WIN32
+ 
+ /*
+  *----------------------------------------------------------------------
+  *
+  * DllMain --
+  *
+  *	This wrapper function is used by Windows to invoke the
+  *	initialization code for the DLL.
+  *
+  * Results:
+  *	Returns TRUE;
+  *
+  * Side effects:
+  *	None.
+  *
+  *----------------------------------------------------------------------
+  */
+ BOOL APIENTRY
+ DllMain(hInst, reason, reserved)
+     HINSTANCE hInst;		/* Library instance handle. */
+     DWORD reason;		/* Reason this function is being called. */
+     LPVOID reserved;		/* Not used. */
+ {
+     return TRUE;
+ }
+ 
+ #endif
+ 
+ int
+ Blt_Init(interp)
+     Tcl_Interp *interp;		/* Interpreter to add extra commands */
+ {
+     register Tcl_AppInitProc **p;
+     Tcl_Namespace *spacePtr;
+     Tcl_CmdInfo cmdinfo;
+ 
+     if (Tcl_InitStubs(interp, "8.1", 0) == NULL) {
+ 	 return TCL_ERROR;
+     }
+     tkbltStubsPtr = &tkbltStubs;
+     if (Blt_InitStubs(interp, BLT_VERSION, 0) == NULL) {
+ 	 return TCL_ERROR;
+     }
+ 
+     if (!Tcl_GetCommandInfo(interp, "tk", &cmdinfo)) {
+ 
+ 	/* Tk not loaded in this interpreter, so no need to
+ 	 * initialize more.
+ 	 */
+ 	return TCL_OK;
+     }
+     if (Tk_InitStubs(interp, "8.1", 0) == NULL) {
+ 	 return TCL_ERROR;
+     }
+ 
+     spacePtr = Tcl_CreateNamespace(interp, "blt::tile", (ClientData)0,
+ 	(Tcl_NamespaceDeleteProc *) NULL);
+     if (spacePtr == NULL) {
+ 	return TCL_ERROR;
+     }
+     for (p = initProcArr; *p != NULL; p++) {
+ 	if ((**p) (interp) != TCL_OK) {
+ 	    Tcl_DeleteNamespace(spacePtr);
+ 	    return TCL_ERROR;
+ 	}
+     }
+     Blt_InitEpsCanvasItem(interp);
+     return TCL_OK;
+ }
+ 
+ #else
+ 
+ /*LINTLIBRARY*/
+ int
+ Blt_Init(interp)
+     Tcl_Interp *interp;		/* Interpreter to add extra commands */
+ {
+     register Tcl_AppInitProc **p;
+     Tcl_CmdInfo cmdinfo;
+ #ifdef ITCL_NAMESPACES
+     Itcl_Namespace dummy, spaceId;	/* Token for "blt" namespace
+ 					 * created, used to delete the
+ 					 * namespace on errors. */
+     spaceId = NULL;
+ #endif
+     if (!Tcl_GetCommandInfo(interp, "tk", &cmdinfo)) {
+ 	/* Tk not loaded in this interpreter, so no need to
+ 	 * initialize more.
+ 	 */
+ 	return TCL_OK;
+     }
+ #ifdef ITCL_NAMESPACES
+     if (Itcl_CreateNamesp(interp, "blt::tile", (ClientData)0,
+ 	    (Itcl_DeleteProc *) 0, &dummy) != TCL_OK) {
+ 	return TCL_ERROR;
+     }
+ #endif /* ITCL_NAMESPACES */
+     for (p = initProcArr; *p != NULL; p++) {
+ 	if ((**p) (interp) != TCL_OK) {
+ #ifdef ITCL_NAMESPACES
+ 	    if (spaceId != NULL) {
+ 		Itcl_DeleteNamesp(spaceId);
+ 	    }
+ #endif
+ 	    return TCL_ERROR;
+ 	}
+     }
+     Blt_InitEpsCanvasItem(interp);
+     return TCL_OK;
+ }
+ 
+ #endif /* TCL_MAJOR_VERION >= 8 */
+ 
+ /*LINTLIBRARY*/
+ int
+ Blt_SafeInit(interp)
+     Tcl_Interp *interp;		/* Interpreter to add extra commands */
+ {
+     return Blt_Init(interp);
+ }
*** src/bltPlatDecls.h.orig	Sat Apr 29 21:01:58 2000
--- src/bltPlatDecls.h	Sat Apr 29 21:01:58 2000
***************
*** 0 ****
--- 1,85 ----
+ /*
+  * bltPlatDecls.h --
+  *
+  *	Declarations of functions in the platform independent public BLT API.
+  *
+  */
+ 
+ #ifndef _BLTPLATDECLS
+ #define _BLTPLATDECLS
+ 
+ /*
+  * WARNING: This file is automatically generated by the cf/genStubs.tcl
+  * script.  Any modifications to the function declarations below should be made
+  * in the src/blt.decls script.
+  */
+ 
+ /* !BEGIN!: Do not edit below this line. */
+ 
+ /*
+  * Exported function declarations:
+  */
+ 
+ #ifdef __WIN32__
+ /* 0 */
+ EXTERN char *		Blt_EmulateStrdup _ANSI_ARGS_((CONST char * string));
+ /* 1 */
+ EXTERN int		Blt_GetPlatformId _ANSI_ARGS_((void));
+ /* 2 */
+ EXTERN void *		Blt_EmulateCalloc _ANSI_ARGS_((unsigned int size, 
+ 				unsigned int nElems));
+ /* 3 */
+ EXTERN char *		Blt_LastError _ANSI_ARGS_((void));
+ #endif /* __WIN32__ */
+ 
+ typedef struct BltPlatStubs {
+     int magic;
+     struct BltPlatStubHooks *hooks;
+ 
+ #ifdef __WIN32__
+     char * (*blt_EmulateStrdup) _ANSI_ARGS_((CONST char * string)); /* 0 */
+     int (*blt_GetPlatformId) _ANSI_ARGS_((void)); /* 1 */
+     void * (*blt_EmulateCalloc) _ANSI_ARGS_((unsigned int size, unsigned int nElems)); /* 2 */
+     char * (*blt_LastError) _ANSI_ARGS_((void)); /* 3 */
+ #endif /* __WIN32__ */
+ } BltPlatStubs;
+ 
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+ extern BltPlatStubs *bltPlatStubsPtr;
+ #ifdef __cplusplus
+ }
+ #endif
+ 
+ #if defined(USE_BLT_STUBS) && !defined(USE_BLT_STUB_PROCS)
+ 
+ /*
+  * Inline function declarations:
+  */
+ 
+ #ifdef __WIN32__
+ #ifndef Blt_EmulateStrdup
+ #define Blt_EmulateStrdup \
+ 	(bltPlatStubsPtr->blt_EmulateStrdup) /* 0 */
+ #endif
+ #ifndef Blt_GetPlatformId
+ #define Blt_GetPlatformId \
+ 	(bltPlatStubsPtr->blt_GetPlatformId) /* 1 */
+ #endif
+ #ifndef Blt_EmulateCalloc
+ #define Blt_EmulateCalloc \
+ 	(bltPlatStubsPtr->blt_EmulateCalloc) /* 2 */
+ #endif
+ #ifndef Blt_LastError
+ #define Blt_LastError \
+ 	(bltPlatStubsPtr->blt_LastError) /* 3 */
+ #endif
+ #endif /* __WIN32__ */
+ 
+ #endif /* defined(USE_BLT_STUBS) && !defined(USE_BLT_STUB_PROCS) */
+ 
+ /* !END!: Do not edit above this line. */
+ 
+ #endif /* _BLTPLATDECLS */
+ 
*** src/bltPs.h.orig	Thu Dec 16 22:51:30 1999
--- src/bltPs.h	Sat Apr 29 21:01:58 2000
***************
*** 55,141 ****
      char scratchArr[PRINTABLE_SCRATCH_LENGTH];
  } *Printable;
  
! extern Printable Blt_PrintObject _ANSI_ARGS_((Tcl_Interp *interp, 
  	Tk_Window tkwin, Tcl_DString * dStrPtr));
  
! extern void Blt_PrintAppend _ANSI_ARGS_(TCL_VARARGS(Printable, printable));
  
! extern void Blt_PrintFormat _ANSI_ARGS_(TCL_VARARGS(Printable, printable));
  
! extern void Blt_Draw3DRectangleToPostScript _ANSI_ARGS_((Printable printable,
  	Tk_3DBorder border, int x, int y, int width, int height,
  	int borderWidth, int relief));
  
! extern void Blt_Fill3DRectangleToPostScript _ANSI_ARGS_((Printable printable,
  	Tk_3DBorder border, int x, int y, int width, int height,
  	int borderWidth, int relief));
  
! extern void Blt_BackgroundToPostScript _ANSI_ARGS_((Printable printable,
  	XColor *colorPtr));
  
! extern void Blt_BitmapToPostScript _ANSI_ARGS_((Printable printable,
  	Display *display, Pixmap bitmap, int width, int height));
  
! extern void Blt_ClearBackgroundToPostScript _ANSI_ARGS_((Printable printable));
  
! extern int Blt_ColorimageToPsData _ANSI_ARGS_((Colorimage image,
  	int nComponents, Tcl_DString * dStrPtr, char *prefix));
  
! extern int Blt_ColorimageToGreyscale _ANSI_ARGS_((Colorimage srcImage,
  	Colorimage destImage));
  
! extern void Blt_ColorimageToPostScript _ANSI_ARGS_((Printable printable,
  	Colorimage image, int x, int y));
  
! extern void Blt_ForegroundToPostScript _ANSI_ARGS_((Printable printable,
  	XColor *colorPtr));
  
! extern void Blt_FontToPostScript _ANSI_ARGS_((Printable printable, Tk_Font font));
  
! extern void Blt_WindowToPostScript _ANSI_ARGS_((Printable printable,
  	Tk_Window tkwin, int x, int y));
  
! extern void Blt_LineDashesToPostScript _ANSI_ARGS_((Printable printable,
  	Dashes *dashesPtr));
  
! extern void Blt_LineWidthToPostScript _ANSI_ARGS_((Printable printable,
  	int lineWidth));
  
! extern void Blt_LinesToPostScript _ANSI_ARGS_((Printable printable,
  	XPoint *pointArr, int nPoints));
  
! extern void Blt_PhotoToPostScript _ANSI_ARGS_((Printable printable,
  	Tk_PhotoHandle photoToken, int x, int y));
  
! extern void Blt_PolygonToPostScript _ANSI_ARGS_((Printable printable,
  	XPoint *pointArr, int nPoints));
  
! extern void Blt_PrintLine _ANSI_ARGS_((Printable printable, XPoint *pointArr,
  	int nPoints));
  
! extern void Blt_PrintText _ANSI_ARGS_((Printable printable, char *string,
  	TextStyle *attrPtr, int x, int y));
  
! extern void Blt_RectangleToPostScript _ANSI_ARGS_((Printable printable, int x,
  	int y, int width, int height));
  
! extern void Blt_RectanglesToPostScript _ANSI_ARGS_((Printable printable,
  	XRectangle *rectArr, int nRects));
  
! extern void Blt_PrintBitmap _ANSI_ARGS_((Printable printable, Display *display,
  	Pixmap bitmap, double scaleX, double scaleY));
  
! extern void Blt_SegmentsToPostScript _ANSI_ARGS_((Printable printable,
  	XSegment *segArr, int nSegs));
  
! extern void Blt_StippleToPostScript _ANSI_ARGS_((Printable printable,
  	Display *display, Pixmap bitmap, int width, int height));
  
! extern void Blt_LineAttributesToPostScript _ANSI_ARGS_((Printable printable,
  	XColor *colorPtr, int lineWidth, Dashes *dashesPtr, int capStyle,
  	int joinStyle));
  
! extern int Blt_FileToPostScript _ANSI_ARGS_((Printable printable,
  	char *fileName));
  
  #endif /* BLT_PS_H */
--- 55,155 ----
      char scratchArr[PRINTABLE_SCRATCH_LENGTH];
  } *Printable;
  
! #undef TCL_STORAGE_CLASS
! #ifdef BUILD_blt
! # define TCL_STORAGE_CLASS DLLEXPORT
! #else
! # ifdef USE_BLT_STUBS
! #  define TCL_STORAGE_CLASS
! # else
! #  define TCL_STORAGE_CLASS DLLIMPORT
! # endif
! #endif
! 
! EXTERN Printable Blt_PrintObject _ANSI_ARGS_((Tcl_Interp *interp, 
  	Tk_Window tkwin, Tcl_DString * dStrPtr));
  
! EXTERN void Blt_PrintAppend _ANSI_ARGS_(TCL_VARARGS(Printable, printable));
  
! EXTERN void Blt_PrintFormat _ANSI_ARGS_(TCL_VARARGS(Printable, printable));
  
! EXTERN void Blt_Draw3DRectangleToPostScript _ANSI_ARGS_((Printable printable,
  	Tk_3DBorder border, int x, int y, int width, int height,
  	int borderWidth, int relief));
  
! EXTERN void Blt_Fill3DRectangleToPostScript _ANSI_ARGS_((Printable printable,
  	Tk_3DBorder border, int x, int y, int width, int height,
  	int borderWidth, int relief));
  
! EXTERN void Blt_BackgroundToPostScript _ANSI_ARGS_((Printable printable,
  	XColor *colorPtr));
  
! EXTERN void Blt_BitmapToPostScript _ANSI_ARGS_((Printable printable,
  	Display *display, Pixmap bitmap, int width, int height));
  
! EXTERN void Blt_ClearBackgroundToPostScript _ANSI_ARGS_((Printable printable));
  
! EXTERN int Blt_ColorimageToPsData _ANSI_ARGS_((Colorimage image,
  	int nComponents, Tcl_DString * dStrPtr, char *prefix));
  
! EXTERN int Blt_ColorimageToGreyscale _ANSI_ARGS_((Colorimage srcImage,
  	Colorimage destImage));
  
! EXTERN void Blt_ColorimageToPostScript _ANSI_ARGS_((Printable printable,
  	Colorimage image, int x, int y));
  
! EXTERN void Blt_ForegroundToPostScript _ANSI_ARGS_((Printable printable,
  	XColor *colorPtr));
  
! EXTERN void Blt_FontToPostScript _ANSI_ARGS_((Printable printable, Tk_Font font));
  
! EXTERN void Blt_WindowToPostScript _ANSI_ARGS_((Printable printable,
  	Tk_Window tkwin, int x, int y));
  
! EXTERN void Blt_LineDashesToPostScript _ANSI_ARGS_((Printable printable,
  	Dashes *dashesPtr));
  
! EXTERN void Blt_LineWidthToPostScript _ANSI_ARGS_((Printable printable,
  	int lineWidth));
  
! EXTERN void Blt_LinesToPostScript _ANSI_ARGS_((Printable printable,
  	XPoint *pointArr, int nPoints));
  
! EXTERN void Blt_PhotoToPostScript _ANSI_ARGS_((Printable printable,
  	Tk_PhotoHandle photoToken, int x, int y));
  
! EXTERN void Blt_PolygonToPostScript _ANSI_ARGS_((Printable printable,
  	XPoint *pointArr, int nPoints));
  
! EXTERN void Blt_PrintLine _ANSI_ARGS_((Printable printable, XPoint *pointArr,
  	int nPoints));
  
! EXTERN void Blt_PrintText _ANSI_ARGS_((Printable printable, char *string,
  	TextStyle *attrPtr, int x, int y));
  
! EXTERN void Blt_RectangleToPostScript _ANSI_ARGS_((Printable printable, int x,
  	int y, int width, int height));
  
! EXTERN void Blt_RectanglesToPostScript _ANSI_ARGS_((Printable printable,
  	XRectangle *rectArr, int nRects));
  
! EXTERN void Blt_PrintBitmap _ANSI_ARGS_((Printable printable, Display *display,
  	Pixmap bitmap, double scaleX, double scaleY));
  
! EXTERN void Blt_SegmentsToPostScript _ANSI_ARGS_((Printable printable,
  	XSegment *segArr, int nSegs));
  
! EXTERN void Blt_StippleToPostScript _ANSI_ARGS_((Printable printable,
  	Display *display, Pixmap bitmap, int width, int height));
  
! EXTERN void Blt_LineAttributesToPostScript _ANSI_ARGS_((Printable printable,
  	XColor *colorPtr, int lineWidth, Dashes *dashesPtr, int capStyle,
  	int joinStyle));
  
! EXTERN int Blt_FileToPostScript _ANSI_ARGS_((Printable printable,
  	char *fileName));
+ 
+ #undef TCL_STORAGE_CLASS
+ #define TCL_STORAGE_CLASS DLLIMPORT
  
  #endif /* BLT_PS_H */
*** src/bltSpline.c.orig	Tue Feb 29 21:48:00 2000
--- src/bltSpline.c	Sat Apr 29 21:01:59 2000
***************
*** 1,6 ****
--- 1,20 ----
  #include "bltInt.h"
  
  /*
+  *   This list of undef's and the definition of bltStubPtr are
+  *   workarounds for the fact that the source code for BLTlite
+  *   and BLT are in the same directory. If they were separated,
+  *   then BLTlite could be compiled without -DUSE_BLT_STUBS.
+  *   Then this trick wouldn't be necessary.
+  */
+ 
+ #undef Blt_NaturalSpline
+ #undef Blt_QuadraticSpline
+ 
+ extern BltStubs bltStubs;
+ #define bltStubsPtr (&bltStubs)
+ 
+ /*
   * Quadratic spline parameters
   */
  #define E1	param[0]
*** src/bltStubInit.c.orig	Sat Apr 29 21:01:59 2000
--- src/bltStubInit.c	Sat Apr 29 21:01:59 2000
***************
*** 0 ****
--- 1,118 ----
+ /* 
+  * bltStubInit.c --
+  */
+ 
+ #undef USE_BLT_STUBS
+ 
+ #include "bltInt.h"
+ 
+ /*
+  * Remove macros that will interfere with the definitions below.
+  */
+ 
+ #if !HAVE_UTF
+ #undef BLT_OpenUtfFile
+ #define Blt_OpenUtfFile NULL
+ #endif
+ 
+ static struct TkbltStubs {
+     int magic;
+ } tkbltStubs = {0};
+ 
+ /*
+  * WARNING: The contents of this file is automatically generated by the
+  * cf/genStubs.tcl script. Any modifications to the function declarations
+  * below should be made in the src/blt.decls script.
+  */
+ 
+ /* !BEGIN!: Do not edit below this line. */
+ 
+ BltPlatStubs bltPlatStubs = {
+     TCL_STUB_MAGIC,
+     NULL,
+ #ifdef __WIN32__
+     Blt_EmulateStrdup, /* 0 */
+     Blt_GetPlatformId, /* 1 */
+     Blt_EmulateCalloc, /* 2 */
+     Blt_LastError, /* 3 */
+ #endif /* __WIN32__ */
+ };
+ 
+ static BltStubHooks bltStubHooks = {
+     &bltPlatStubs,
+     &tkbltStubs
+ };
+ 
+ BltStubs bltStubs = {
+     TCL_STUB_MAGIC,
+     &bltStubHooks,
+     Blt_AllocVectorId, /* 0 */
+     Blt_Assert, /* 1 */
+     Blt_ChainAppend, /* 2 */
+     Blt_ChainCreate, /* 3 */
+     Blt_ChainDeleteLink, /* 4 */
+     Blt_ChainDestroy, /* 5 */
+     Blt_ChainGetNthLink, /* 6 */
+     Blt_ChainInit, /* 7 */
+     Blt_ChainLinkAfter, /* 8 */
+     Blt_ChainLinkBefore, /* 9 */
+     Blt_ChainNewLink, /* 10 */
+     Blt_ChainPrepend, /* 11 */
+     Blt_ChainReset, /* 12 */
+     Blt_ChainSort, /* 13 */
+     Blt_ChainUnlinkLink, /* 14 */
+     Blt_DStringAppendElements, /* 15 */
+     Blt_Dtoa, /* 16 */
+     Blt_FindUid, /* 17 */
+     Blt_FreeUid, /* 18 */
+     Blt_FreeVectorId, /* 19 */
+     Blt_GetOperation, /* 20 */
+     Blt_GetUid, /* 21 */
+     Blt_GetVectorById, /* 22 */
+     Blt_InitCmd, /* 23 */
+     Blt_InitCmds, /* 24 */
+     Blt_InitHexTable, /* 25 */
+     Blt_InitList, /* 26 */
+     Blt_Itoa, /* 27 */
+     Blt_ListAppend, /* 28 */
+     Blt_ListCreate, /* 29 */
+     Blt_ListDestroy, /* 30 */
+     Blt_ListFind, /* 31 */
+     Blt_ListLinkBefore, /* 32 */
+     Blt_ListNewEntry, /* 33 */
+     Blt_ListReset, /* 34 */
+     Blt_NameOfVectorId, /* 35 */
+     Blt_NaturalSpline, /* 36 */
+     Blt_Panic, /* 37 */
+     Blt_QuadraticSpline, /* 38 */
+     Blt_SetVectorChangedProc, /* 39 */
+     Blt_TreeApply, /* 40 */
+     Blt_TreeCreate, /* 41 */
+     Blt_OpenUtfFile, /* 42 */
+     Blt_TreeCreateNode, /* 43 */
+     Blt_TreeDeleteNode, /* 44 */
+     Blt_TreeFindChild, /* 45 */
+     Blt_TreeFirstChild, /* 46 */
+     Blt_TreeFreeAtom, /* 47 */
+     Blt_TreeGetAtom, /* 48 */
+     Blt_TreeGetNode, /* 49 */
+     Blt_TreeGetToken, /* 50 */
+     Blt_TreeGetValue, /* 51 */
+     Blt_TreeIsAncestor, /* 52 */
+     Blt_TreeIsBefore, /* 53 */
+     Blt_TreeLastChild, /* 54 */
+     Blt_TreeMoveNode, /* 55 */
+     Blt_TreeNextSibling, /* 56 */
+     Blt_TreePrevSibling, /* 57 */
+     Blt_TreeReleaseToken, /* 58 */
+     Blt_TreeSetNotifyFlags, /* 59 */
+     Blt_TreeSetValue, /* 60 */
+     Blt_TreeSize, /* 61 */
+     Blt_TreeSortNode, /* 62 */
+     Blt_TreeUnsetValue, /* 63 */
+     Blt_VectorExists, /* 64 */
+     Blt_VectorNotifyPending, /* 65 */
+     Blt_ListDeleteEntry, /* 66 */
+ };
+ 
+ /* !END!: Do not edit above this line. */
*** src/bltStubLib.c.orig	Sat Apr 29 21:01:59 2000
--- src/bltStubLib.c	Sat Apr 29 21:01:59 2000
***************
*** 0 ****
--- 1,75 ----
+ /* 
+  * bltStubLib.c --
+  *
+  *	Stub object that will be statically linked into extensions that wish
+  *	to access Blt.
+  *
+  * Copyright (c) 1998 Paul Duffin.
+  * Copyright (c) 1998-1999 by Scriptics Corporation.
+  *
+  * See the file "license.terms" for information on usage and redistribution
+  * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+  *
+  * RCS: @(#) $Id: tkStubLib.c,v 1.5 1999/05/25 01:31:06 stanton Exp $
+  */
+ 
+ #include "bltInt.h"
+ 
+ BltStubs *bltStubsPtr;
+ BltPlatStubs *bltPlatStubsPtr;
+ struct TkbltStubs {
+     int magic;
+ } *tkbltStubsPtr;
+ 
+ 
+ /*
+  *----------------------------------------------------------------------
+  *
+  * Blt_InitStubs --
+  *
+  *	Checks that the correct version of Blt is loaded and that it
+  *	supports stubs. It then initialises the stub table pointers.
+  *
+  * Results:
+  *	The actual version of BLT that satisfies the request, or
+  *	NULL to indicate that an error occurred.
+  *
+  * Side effects:
+  *	Sets the stub table pointers.
+  *
+  *----------------------------------------------------------------------
+  */
+ 
+ #if (TCL_VERSION_NUMBER < _VERSION(8,1,0))
+ #undef Tcl_PkgRequireEx
+ #define Tcl_PkgRequireEx(a,b,c,d,e) \
+ 	(*e = Tcl_GetAssocData(a,"BLTstub",(Tcl_InterpDeleteProc **) NULL), \
+ 	Tcl_PkgRequire(a,b,c,d))
+ #endif
+ 
+ #ifdef Blt_InitStubs
+ #undef Blt_InitStubs
+ #endif
+ 
+ char *
+ Blt_InitStubs(interp, version, exact)
+     Tcl_Interp *interp;
+     char *version;
+     int exact;
+ {
+     char *result;
+ 
+     result = Tcl_PkgRequireEx(interp, "BLT", version, exact,
+ 		(ClientData *) &bltStubsPtr);
+     if (!result || !bltStubsPtr) {
+         return (char *) NULL;
+     }
+     bltPlatStubsPtr = bltStubsPtr->hooks->bltPlatStubs;
+ 
+     if (bltStubsPtr->hooks->tkbltStubs->magic == TCL_STUB_MAGIC) {
+ 	tkbltStubsPtr = bltStubsPtr->hooks->tkbltStubs;
+     } else if (tkbltStubsPtr->magic == TCL_STUB_MAGIC) {
+ 	bltStubsPtr->hooks->tkbltStubs = tkbltStubsPtr;
+     }
+     return result;
+ }
*** src/bltTable.h.orig	Tue Feb 29 21:48:00 2000
--- src/bltTable.h	Sat Apr 29 21:01:59 2000
***************
*** 376,382 ****
   * Forward declarations
   */
  
! extern int Blt_GetTable _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp,
  	char *pathName, Table **tablePtrPtr));
  
  #endif /* _BLT_TABLE_H */
--- 376,397 ----
   * Forward declarations
   */
  
! #undef TCL_STORAGE_CLASS
! #ifdef BUILD_blt
! # define TCL_STORAGE_CLASS DLLEXPORT
! #else
! # ifdef USE_BLT_STUBS
! #  define TCL_STORAGE_CLASS
! # else
! #  define TCL_STORAGE_CLASS DLLIMPORT
! # endif
! #endif
! 
! EXTERN int Blt_GetTable _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp,
  	char *pathName, Table **tablePtrPtr));
  
+ #undef TCL_STORAGE_CLASS
+ #define TCL_STORAGE_CLASS DLLIMPORT
+ 
+ #
  #endif /* _BLT_TABLE_H */
*** src/bltTed.c.orig	Fri Mar 17 22:52:30 2000
--- src/bltTed.c	Sat Apr 29 21:01:59 2000
***************
*** 314,320 ****
--- 314,322 ----
  
  #ifdef __STDC__
  static Tcl_CmdProc TedCmd;
+ #if 0
  static Tk_EventProc EntryEventProc;
+ #endif
  static Tk_EventProc TedEventProc;
  #endif
  /*
***************
*** 378,383 ****
--- 380,386 ----
      }
  }
  
+ #if 0
  /*
   * --------------------------------------------------------------
   *
***************
*** 416,421 ****
--- 419,425 ----
  	Tcl_EventuallyFree((ClientData)repPtr, DestroyEntry);
      }
  }
+ #endif
  
  /*
   * --------------------------------------------------------------
***************
*** 549,554 ****
--- 553,559 ----
      return TCL_OK;
  }
  
+ #if 0
  /*
   * ----------------------------------------------------------------------------
   *
***************
*** 596,601 ****
--- 601,607 ----
      Blt_ChainLinkAfter(tedPtr->chainPtr, linkPtr, (Blt_ChainLink *) NULL);
      return TCL_OK;
  }
+ #endif
  
  /*
   * ----------------------------------------------------------------------------
*** src/bltText.h.orig	Mon Jan 24 19:52:31 2000
--- src/bltText.h	Sat Apr 29 21:01:59 2000
***************
*** 165,212 ****
  
  } TextStyle;
  
  
! extern TextLayout *Blt_GetTextLayout _ANSI_ARGS_((char *string,
  	TextStyle *stylePtr));
  
! extern void Blt_GetTextExtents _ANSI_ARGS_((TextStyle *stylePtr,
  	char *text, int *widthPtr, int *heightPtr));
  
! extern void Blt_InitTextStyle _ANSI_ARGS_((TextStyle *stylePtr));
  
! extern void Blt_ResetTextStyle _ANSI_ARGS_((Tk_Window tkwin,
  	TextStyle *stylePtr));
  
! extern void Blt_FreeTextStyle _ANSI_ARGS_((Display *display,
  	TextStyle *stylePtr));
  
! extern void Blt_SetDrawTextStyle _ANSI_ARGS_((TextStyle *stylePtr,
  	Tk_Font font, GC gc, XColor *normalColor, XColor *activeColor,
  	XColor *shadowColor, double theta, Tk_Anchor anchor, Tk_Justify justify,
  	int leader, int shadowOffset));
  
! extern void Blt_SetPrintTextStyle _ANSI_ARGS_((TextStyle *stylePtr,
  	Tk_Font font, XColor *fgColor, XColor *bgColor, XColor *shadowColor,
  	double theta, Tk_Anchor anchor, Tk_Justify justify, int leader,
  	int shadowOffset));
  
! extern void Blt_DrawText _ANSI_ARGS_((Tk_Window tkwin, Drawable drawable,
  	char *string, TextStyle *stylePtr, int x, int y));
  
! extern void Blt_DrawTextLayout _ANSI_ARGS_((Tk_Window tkwin,
  	Drawable drawable, TextLayout *layoutPtr, TextStyle *stylePtr,
  	int x, int y));
  
! extern void Blt_DrawText2 _ANSI_ARGS_((Tk_Window tkwin, Drawable drawable,
  	char *string, TextStyle *stylePtr, int x, int y,
  	Dim2D * dimPtr));
  
! extern Pixmap Blt_CreateTextBitmap _ANSI_ARGS_((Tk_Window tkwin,
  	TextLayout *layoutPtr, TextStyle *stylePtr, int *widthPtr,
  	int *heightPtr));
  
! extern int Blt_DrawRotatedText _ANSI_ARGS_((Display *display,
  	Drawable drawable, int x, int y, double theta,
  	TextStyle *stylePtr, TextLayout *layoutPtr));
  
  #endif /* _BLT_TEXT_H */
--- 165,225 ----
  
  } TextStyle;
  
+ #undef TCL_STORAGE_CLASS
+ #ifdef BUILD_blt
+ # define TCL_STORAGE_CLASS DLLEXPORT
+ #else
+ # ifdef USE_BLT_STUBS
+ #  define TCL_STORAGE_CLASS
+ # else
+ #  define TCL_STORAGE_CLASS DLLIMPORT
+ # endif
+ #endif
  
! EXTERN TextLayout *Blt_GetTextLayout _ANSI_ARGS_((char *string,
  	TextStyle *stylePtr));
  
! EXTERN void Blt_GetTextExtents _ANSI_ARGS_((TextStyle *stylePtr,
  	char *text, int *widthPtr, int *heightPtr));
  
! EXTERN void Blt_InitTextStyle _ANSI_ARGS_((TextStyle *stylePtr));
  
! EXTERN void Blt_ResetTextStyle _ANSI_ARGS_((Tk_Window tkwin,
  	TextStyle *stylePtr));
  
! EXTERN void Blt_FreeTextStyle _ANSI_ARGS_((Display *display,
  	TextStyle *stylePtr));
  
! EXTERN void Blt_SetDrawTextStyle _ANSI_ARGS_((TextStyle *stylePtr,
  	Tk_Font font, GC gc, XColor *normalColor, XColor *activeColor,
  	XColor *shadowColor, double theta, Tk_Anchor anchor, Tk_Justify justify,
  	int leader, int shadowOffset));
  
! EXTERN void Blt_SetPrintTextStyle _ANSI_ARGS_((TextStyle *stylePtr,
  	Tk_Font font, XColor *fgColor, XColor *bgColor, XColor *shadowColor,
  	double theta, Tk_Anchor anchor, Tk_Justify justify, int leader,
  	int shadowOffset));
  
! EXTERN void Blt_DrawText _ANSI_ARGS_((Tk_Window tkwin, Drawable drawable,
  	char *string, TextStyle *stylePtr, int x, int y));
  
! EXTERN void Blt_DrawTextLayout _ANSI_ARGS_((Tk_Window tkwin,
  	Drawable drawable, TextLayout *layoutPtr, TextStyle *stylePtr,
  	int x, int y));
  
! EXTERN void Blt_DrawText2 _ANSI_ARGS_((Tk_Window tkwin, Drawable drawable,
  	char *string, TextStyle *stylePtr, int x, int y,
  	Dim2D * dimPtr));
  
! EXTERN Pixmap Blt_CreateTextBitmap _ANSI_ARGS_((Tk_Window tkwin,
  	TextLayout *layoutPtr, TextStyle *stylePtr, int *widthPtr,
  	int *heightPtr));
  
! EXTERN int Blt_DrawRotatedText _ANSI_ARGS_((Display *display,
  	Drawable drawable, int x, int y, double theta,
  	TextStyle *stylePtr, TextLayout *layoutPtr));
+ 
+ #undef TCL_STORAGE_CLASS
+ #define TCL_STORAGE_CLASS DLLIMPORT
  
  #endif /* _BLT_TEXT_H */
*** src/bltTkInt.h.orig	Fri Oct  8 08:40:46 1999
--- src/bltTkInt.h	Sat Apr 29 21:01:59 2000
***************
*** 171,186 ****
      HPALETTE palette;
  } TkWinDCState;
  
! extern HDC TkWinGetDrawableDC(Display *display, Drawable drawable,
!     TkWinDCState * state);
! extern HDC TkWinReleaseDrawableDC(Drawable drawable, HDC dc,
!     TkWinDCState * state);
  
! extern HWND Tk_GetHWND _ANSI_ARGS_((Window window));
  
! extern HINSTANCE Tk_GetHINSTANCE _ANSI_ARGS_((void));
  
! extern Window Tk_AttachHWND _ANSI_ARGS_((Tk_Window tkwin, HWND hWnd));
  
  #endif /* WIN32 */
  
--- 171,186 ----
      HPALETTE palette;
  } TkWinDCState;
  
! EXTERN HDC TkWinGetDrawableDC _ANSI_ARGS_((Display *display, Drawable drawable,
!     TkWinDCState * state));
! EXTERN void TkWinReleaseDrawableDC _ANSI_ARGS_((Drawable drawable, HDC dc,
!     TkWinDCState * state));
  
! EXTERN HWND Tk_GetHWND _ANSI_ARGS_((Window window));
  
! EXTERN HINSTANCE Tk_GetHINSTANCE _ANSI_ARGS_((void));
  
! EXTERN Window Tk_AttachHWND _ANSI_ARGS_((Tk_Window tkwin, HWND hWnd));
  
  #endif /* WIN32 */
  
*** src/bltTree.c.orig	Fri Mar 17 22:52:30 2000
--- src/bltTree.c	Sat Apr 29 21:01:59 2000
***************
*** 29,36 ****
  
  #ifndef NO_TREE
  
! #include "bltChain.h"
! #include "bltTree.h"
  
  #ifdef __STDC__
  static Tcl_IdleProc NotifyClients;
--- 29,71 ----
  
  #ifndef NO_TREE
  
! /*
!  *   This list of undef's and the definition of bltliteStubPtr are
!  *   workarounds for the fact that the source code for BLTlite
!  *   and BLT are in the same directory. If they were separated,
!  *   then BLTlite could be compiled without -DUSE_BLT_STUBS.
!  *   Then this trick wouldn't be necessary.
!  */
! 
! #undef Blt_TreeApply
! #undef Blt_TreeCreate
! #undef Blt_TreeCreateNode
! #undef Blt_TreeDeleteNode
! #undef Blt_TreeFindChild
! #undef Blt_TreeFirstChild
! #undef Blt_TreeFreeAtom
! #undef Blt_TreeGetAtom
! #undef Blt_TreeGetNode
! #undef Blt_TreeGetNotifyFlags
! #undef Blt_TreeGetToken
! #undef Blt_TreeGetValue
! #undef Blt_TreeIsAncestor
! #undef Blt_TreeIsBefore
! #undef Blt_TreeLastChild
! #undef Blt_TreeMoveNode
! #undef Blt_TreeNextSibling
! #undef Blt_TreePrevSibling
! #undef Blt_TreeReleaseToken
! #undef Blt_TreeSetNotifyFlags
! #undef Blt_TreeSetValue
! #undef Blt_TreeSize
! #undef Blt_TreeSortNode
! #undef Blt_TreeUnsetValue
! 
! extern BltStubs bltStubs;
! #define bltStubsPtr (&bltStubs)
! extern BltPlatStubs bltPlatStubs;
! #define bltPlatStubsPtr (&bltPlatStubs)
  
  #ifdef __STDC__
  static Tcl_IdleProc NotifyClients;
*** src/bltUnixMain.c.orig	Tue Feb 29 21:48:00 2000
--- src/bltUnixMain.c	Sat Apr 29 21:01:59 2000
***************
*** 45,50 ****
--- 45,54 ----
   * software.
   */
  
+ #undef USE_TCL_STUBS
+ #undef USE_BLT_STUBS
+ #undef USE_TK_STUBS
+ 
  #include <tcl.h>
  #ifndef TCL_ONLY
  #include <tk.h>
***************
*** 59,64 ****
--- 63,70 ----
  
  extern int Blt_Init _ANSI_ARGS_((Tcl_Interp *interp));
  extern int Blt_SafeInit _ANSI_ARGS_((Tcl_Interp *interp));
+ extern int Bltlite_Init _ANSI_ARGS_((Tcl_Interp *interp));
+ extern int Bltlite_SafeInit _ANSI_ARGS_((Tcl_Interp *interp));
  
  /*
   * The following variable is a special hack that is needed in order for
***************
*** 128,136 ****
--- 134,146 ----
  	return TCL_ERROR;
      }
  #ifndef TCL_ONLY
+ #if (TK_MAJOR_VERSION < 8)
+ #define Tk_SafeInit (Tcl_PackageInitProc *) NULL
+ #endif
      if (Tk_Init(interp) == TCL_ERROR) {
  	return TCL_ERROR;
      }
+     Tcl_StaticPackage(interp, "Tk", Tk_Init, Tk_SafeInit);
  #endif
      /*
       * Call the init procedures for included packages.  Each call should
***************
*** 142,151 ****
--- 152,168 ----
       *
       * where "Mod" is the name of the module.
       */
+     if (Bltlite_Init(interp) == TCL_ERROR) {
+ 	return TCL_ERROR;
+     }
+ #ifdef TCL_ONLY
+     Tcl_StaticPackage(interp, "BLT", Bltlite_Init, Bltlite_SafeInit);
+ #else
      if (Blt_Init(interp) == TCL_ERROR) {
  	return TCL_ERROR;
      }
      Tcl_StaticPackage(interp, "BLT", Blt_Init, Blt_SafeInit);
+ #endif
      /*
  
       * Call Tcl_CreateCommand for application-specific commands, if
*** src/bltUtil.c.orig	Tue Mar 21 01:26:22 2000
--- src/bltUtil.c	Sat Apr 29 21:01:59 2000
***************
*** 33,38 ****
--- 33,50 ----
  #include <varargs.h>
  #endif
  
+ #undef Blt_Assert
+ #undef Blt_DStringAppendElements
+ #undef Blt_Dtoa
+ #undef Blt_FindUid
+ #undef Blt_FreeUid
+ #undef Blt_GetUid
+ #undef Blt_GetOperation
+ #undef Blt_Itoa
+ #undef Blt_Panic
+ #undef Blt_OpenUtfFile
+ #undef Blt_LookupOperation
+ #undef Blt_InitHexTable
  
  #ifndef HAVE_STRDUP
  /*
***************
*** 199,205 ****
  #endif /* !HAVE_STRNCASECMP */
  
  
- #ifndef NDEBUG
  void
  Blt_Assert(testExpr, fileName, lineNumber)
      char *testExpr;
--- 211,216 ----
***************
*** 214,220 ****
  	lineNumber, fileName, testExpr);
      abort();
  }
- #endif
  
  /*ARGSUSED*/
  void
--- 225,230 ----
*** src/bltVector.c.orig	Fri Mar 17 22:52:30 2000
--- src/bltVector.c	Sat Apr 29 21:01:59 2000
***************
*** 41,47 ****
   */
  
  #include "bltInt.h"
! #include "bltChain.h"
  
  #ifdef TIME_WITH_SYS_TIME
  #include <sys/time.h>
--- 41,67 ----
   */
  
  #include "bltInt.h"
! 
! /*
!  *   This list of undef's and the definition of bltStubPtr are
!  *   workarounds for the fact that the source code for BLTlite
!  *   and BLT are in the same directory. If they were separated,
!  *   then BLTlite could be compiled without -DUSE_BLT_STUBS.
!  *   Then this trick wouldn't be necessary.
!  */
! 
! #undef Blt_AllocVectorId
! #undef Blt_FreeVectorId
! #undef Blt_GetVectorById
! #undef Blt_NameOfVectorId
! #undef Blt_SetVectorChangedProc
! #undef Blt_VectorExists
! #undef Blt_VectorNotifyPending
! 
! extern BltStubs bltStubs;
! #define bltStubsPtr (&bltStubs)
! extern BltPlatStubs bltPlatStubs;
! #define bltPlatStubsPtr (&bltPlatStubs)
  
  #ifdef TIME_WITH_SYS_TIME
  #include <sys/time.h>
***************
*** 54,60 ****
  #endif /* HAVE_SYS_TIME_H */
  #endif /* TIME_WITH_SYS_TIME */
  
! extern double bltNegInfinity, bltPosInfinity;
  
  #ifndef TCL_NAMESPACE_ONLY
  #define TCL_NAMESPACE_ONLY TCL_GLOBAL_ONLY
--- 74,80 ----
  #endif /* HAVE_SYS_TIME_H */
  #endif /* TIME_WITH_SYS_TIME */
  
! static double bltNegInfinity = (double)-(DBL_MAX);
  
  #ifndef TCL_NAMESPACE_ONLY
  #define TCL_NAMESPACE_ONLY TCL_GLOBAL_ONLY
***************
*** 351,356 ****
--- 371,378 ----
   *	space runs out.
   */
  
+ #if 0 /* moved to bltInterp.h */
+ 
  typedef struct ParseValue {
      char *buffer;		/* Address of first character in
  				 * output buffer. */
***************
*** 364,369 ****
--- 386,393 ----
      ClientData clientData;	/* Arbitrary information for use of
  				 * expandProc. */
  } ParseValue;
+ 
+ #endif
  
  typedef struct {
      Vector *vPtr;
*** src/bltWatch.c.orig	Mon Jan 24 19:52:32 2000
--- src/bltWatch.c	Sat Apr 29 21:01:59 2000
***************
*** 29,34 ****
--- 29,47 ----
  
  #include "bltInt.h"
  
+ /*
+  *   This definition of bltStubPtr is a
+  *   workarounds for the fact that the source code for BLTlite
+  *   and BLT are in the same directory. If they were separated,
+  *   then BLTlite could be compiled without -DUSE_BLT_STUBS.
+  *   Then this trick wouldn't be necessary.
+  */
+ 
+ extern BltStubs bltStubs;
+ #define bltStubsPtr (&bltStubs)
+ extern BltPlatStubs bltPlatStubs;
+ #define bltPlatStubsPtr (&bltPlatStubs)
+ 
  #define UNKNOWN_RETURN_CODE	5
  static char *codeNames[] =
  {
*** src/bltWinDraw.c.orig	Thu Mar 16 08:27:01 2000
--- src/bltWinDraw.c	Sat Apr 29 21:02:00 2000
***************
*** 448,456 ****
      }
  }
  
- static Tcl_HashTable gcTable;
- static int gcInitialized = FALSE;
- 
  typedef struct DashInfo {
      HDC dc;
      int count;
--- 448,453 ----
*** src/bltWinMain.c.orig	Thu Mar 16 08:27:01 2000
--- src/bltWinMain.c	Sat Apr 29 21:02:00 2000
***************
*** 12,17 ****
--- 12,21 ----
   * SCCS: @(#) winMain.c 1.37 98/01/20 22:47:06
   */
  
+ #undef USE_TCL_STUBS
+ #undef USE_BLT_STUBS
+ #undef USE_TK_STUBS
+ 
  #include "bltInt.h"
  #include <locale.h>
  
***************
*** 23,30 ****
  
  static BOOL consoleRequired = TRUE;
  
- extern EXPORT int Blt_Init(Tcl_Interp *interp);
- extern EXPORT int Blt_SafeInit(Tcl_Interp *interp);
  static Tcl_AppInitProc AppInit;
  
  
--- 27,32 ----
***************
*** 337,352 ****
      if (Tcl_Init(interp) == TCL_ERROR) {
  	return TCL_ERROR;
      }
!     if (Blt_Init(interp) == TCL_ERROR) {
  	return TCL_ERROR;
      }
!     Tcl_StaticPackage(interp, "Blt", Blt_Init, Blt_SafeInit);
      Tcl_SetVar(interp, "tcl_rcFileName", "~/tclshrc.tcl", TCL_GLOBAL_ONLY);
      return TCL_OK;
  }
  
  #else 
  
  static int
  AppInit(Tcl_Interp *interp)
  {				/* Interpreter for application. */
--- 339,358 ----
      if (Tcl_Init(interp) == TCL_ERROR) {
  	return TCL_ERROR;
      }
!     if (Bltlite_Init(interp) == TCL_ERROR) {
  	return TCL_ERROR;
      }
!     Tcl_StaticPackage(interp, "BLT", Bltlite_Init, Bltlite_SafeInit);
      Tcl_SetVar(interp, "tcl_rcFileName", "~/tclshrc.tcl", TCL_GLOBAL_ONLY);
      return TCL_OK;
  }
  
  #else 
  
+ #if (TK_VERSION_NUMBER < _VERSION(8,0,0))
+ #define Tk_SafeInit (Tcl_PackageInitProc *) NULL
+ #endif
+ 
  static int
  AppInit(Tcl_Interp *interp)
  {				/* Interpreter for application. */
***************
*** 357,366 ****
  	goto error;
      }
      Tcl_StaticPackage(interp, "Tk", Tk_Init, Tk_SafeInit);
      if (Blt_Init(interp) == TCL_ERROR) {
  	goto error;
      }
!     Tcl_StaticPackage(interp, "Blt", Blt_Init, Blt_SafeInit);
  
      /*
       * Initialize the console only if we are running as an interactive
--- 363,375 ----
  	goto error;
      }
      Tcl_StaticPackage(interp, "Tk", Tk_Init, Tk_SafeInit);
+     if (Bltlite_Init(interp) == TCL_ERROR) {
+ 	goto error;
+     }
      if (Blt_Init(interp) == TCL_ERROR) {
  	goto error;
      }
!     Tcl_StaticPackage(interp, "BLT", Blt_Init, Blt_SafeInit);
  
      /*
       * Initialize the console only if we are running as an interactive
*** src/bltWinPipe.c.orig	Fri Oct  8 08:40:46 1999
--- src/bltWinPipe.c	Sat Apr 29 21:02:00 2000
***************
*** 34,40 ****
   */
  
  #include "bltInt.h"
! #include "bltChain.h"
  #include <fcntl.h>
  
  #define PEEK_DEBUG 0
--- 34,53 ----
   */
  
  #include "bltInt.h"
! 
! /*
!  *   This  definition of bltStubPtr is a
!  *   workarounds for the fact that the source code for BLTlite
!  *   and BLT are in the same directory. If they were separated,
!  *   then BLTlite could be compiled without -DUSE_BLT_STUBS.
!  *   Then this trick wouldn't be necessary.
!  */
! 
! extern BltStubs bltStubs;
! #define bltStubsPtr (&bltStubs)
! extern BltPlatStubs bltPlatStubs;
! #define bltPlatStubsPtr (&bltPlatStubs)
! 
  #include <fcntl.h>
  
  #define PEEK_DEBUG 0
***************
*** 115,122 ****
--- 128,138 ----
  static DWORD WINAPI PipeReaderThread(void *clientData);
  
  extern void Blt_MapPid(HANDLE hProcess, DWORD pid);
+ 
+ #ifndef USE_TCL_STUBS
  extern HINSTANCE TclWinGetTclInstance(void);
  extern void TclWinConvertError(DWORD lastError);
+ #endif
  
  /*
   *----------------------------------------------------------------------
***************
*** 1816,1822 ****
      HANDLE hInPipe, hOutPipe, hErrPipe;
      char *p;
      int skip, lastBar, lastArg, i, j, flags;
!     int pid;
      BOOL atOK, errorToOutput;
      Tcl_DString dString;
      HANDLE hPipe;
--- 1832,1838 ----
      HANDLE hInPipe, hOutPipe, hErrPipe;
      char *p;
      int skip, lastBar, lastArg, i, j, flags;
!     DWORD pid;
      BOOL atOK, errorToOutput;
      Tcl_DString dString;
      HANDLE hPipe;
*** src/bltWinPrnt.c.orig	Thu Mar 16 08:27:01 2000
--- src/bltWinPrnt.c	Sat Apr 29 21:02:00 2000
***************
*** 30,38 ****
  #ifndef NO_PRINTER
  #include <X11/Xutil.h>
  #undef Status
! #ifdef _MSC_VER
  #include <winspool.h>
- #endif
  
  /*
    set pid [printer open name]
--- 30,37 ----
  #ifndef NO_PRINTER
  #include <X11/Xutil.h>
  #undef Status
! 
  #include <winspool.h>
  
  /*
    set pid [printer open name]
***************
*** 92,335 ****
  static TokenString sizeTable[] =
  {
   /* Letter 8 1/2 x 11 in */
!     DMPAPER_LETTER, "Letter",
   /* Letter Small 8 1/2 x 11 in */
!     DMPAPER_LETTERSMALL, "Letter Small",
   /* Tabloid 11 x 17 in */
!     DMPAPER_TABLOID, "Tabloid",
   /* Ledger 17 x 11 in */
!     DMPAPER_LEDGER, "Ledger",
   /* Legal 8 1/2 x 14 in */
!     DMPAPER_LEGAL, "Legal",
   /* Statement 5 1/2 x 8 1/2 in */
!     DMPAPER_STATEMENT, "Statement",
   /* Executive 7 1/4 x 10 1/2 in */
!     DMPAPER_EXECUTIVE, "Executive",
   /* A3 297 x 420 mm */
!     DMPAPER_A3, "A3",
   /* A4 210 x 297 mm */
!     DMPAPER_A4, "A4",
   /* A4 Small 210 x 297 mm */
!     DMPAPER_A4SMALL, "A4 Small",
   /* A5 148 x 210 mm */
!     DMPAPER_A5, "A5",
   /* B4 (JIS) 250 x 354 */
!     DMPAPER_B4, "B4 (JIS)",
   /* B5 (JIS) 182 x 257 mm */
!     DMPAPER_B5, "B5 (JIS)",
   /* Folio 8 1/2 x 13 in */
!     DMPAPER_FOLIO, "Folio",
   /* Quarto 215 x 275 mm */
!     DMPAPER_QUARTO, "Quarto",
   /* 10x14 in */
!     DMPAPER_10X14, "10x14",
   /* 11x17 in */
!     DMPAPER_11X17, "11x17",
   /* Note 8 1/2 x 11 in */
!     DMPAPER_NOTE, "Note",
   /* Envelope #9 3 7/8 x 8 7/8 */
!     DMPAPER_ENV_9, "Envelope #9",
   /* Envelope #10 4 1/8 x 9 1/2 */
!     DMPAPER_ENV_10, "Envelope #10",
   /* Envelope #11 4 1/2 x 10 3/8 */
!     DMPAPER_ENV_11, "Envelope #11",
   /* Envelope #12 4 \276 x 11 */
!     DMPAPER_ENV_12, "Envelope #12",
   /* Envelope #14 5 x 11 1/2 */
!     DMPAPER_ENV_14, "Envelope #14",
   /* C size sheet */
!     DMPAPER_CSHEET, "C size sheet",
   /* D size sheet */
!     DMPAPER_DSHEET, "D size sheet",
   /* E size sheet */
!     DMPAPER_ESHEET, "E size sheet",
   /* Envelope DL 110 x 220mm */
!     DMPAPER_ENV_DL, "Envelope DL",
   /* Envelope C5 162 x 229 mm */
!     DMPAPER_ENV_C5, "Envelope C5",
   /* Envelope C3  324 x 458 mm */
!     DMPAPER_ENV_C3, "Envelope C3",
   /* Envelope C4  229 x 324 mm */
!     DMPAPER_ENV_C4, "Envelope C4",
   /* Envelope C6  114 x 162 mm */
!     DMPAPER_ENV_C6, "Envelope C6",
   /* Envelope C65 114 x 229 mm */
!     DMPAPER_ENV_C65, "Envelope C65",
   /* Envelope B4  250 x 353 mm */
!     DMPAPER_ENV_B4, "Envelope B4",
   /* Envelope B5  176 x 250 mm */
!     DMPAPER_ENV_B5, "Envelope B5",
   /* Envelope B6  176 x 125 mm */
!     DMPAPER_ENV_B6, "Envelope B6",
   /* Envelope 110 x 230 mm */
!     DMPAPER_ENV_ITALY, "Envelope Italy",
   /* Env Monarch 3 7/8 x 7 1/2 in */
!     DMPAPER_ENV_MONARCH, "Envelope Monarch",
   /* 6 3/4 Envelope 3 5/8 x 6 1/2 in */
!     DMPAPER_ENV_PERSONAL, "6 3/4 Envelope",
   /* US Std Fanfold 14 7/8 x 11 in */
!     DMPAPER_FANFOLD_US, "US Std Fanfold",
   /* German Std Fanfold 8 1/2 x 12 in */
!     DMPAPER_FANFOLD_STD_GERMAN, "German Std Fanfold",
   /* German Legal Fanfold 8 1/2 x 13 in */
!     DMPAPER_FANFOLD_LGL_GERMAN, "German Legal Fanfold",
   /* B4 (ISO) 250 x 353 mm */
!     DMPAPER_ISO_B4, "ISOB4",
   /* Japanese Postcard 100 x 148 mm */
!     DMPAPER_JAPANESE_POSTCARD, "Postcard (JIS)",
   /* 9 x 11 in */
!     DMPAPER_9X11, "9x11",
   /* 10 x 11 in */
!     DMPAPER_10X11, "10x11",
   /* 15 x 11 in */
!     DMPAPER_15X11, "15x11",
   /* Envelope Invite 220 x 220 mm */
!     DMPAPER_ENV_INVITE, "Envelope Invite",
   /* Letter Extra 9 \275 x 12 in */
!     DMPAPER_LETTER_EXTRA, "Letter Extra",
   /* Legal Extra 9 \275 x 15 in */
!     DMPAPER_LEGAL_EXTRA, "Legal Extra",
   /* Tabloid Extra 11.69 x 18 in */
!     DMPAPER_TABLOID_EXTRA, "Tabloid Extra",
   /* A4 Extra 9.27 x 12.69 in */
!     DMPAPER_A4_EXTRA, "A4 Extra",
   /* Letter Transverse 8 \275 x 11 in */
!     DMPAPER_LETTER_TRANSVERSE, "Letter Transverse",
   /* A4 Transverse 210 x 297 mm */
!     DMPAPER_A4_TRANSVERSE, "A4 Transverse",
   /* Letter Extra Transverse 9\275 x 12 in */
!     DMPAPER_LETTER_EXTRA_TRANSVERSE, "Letter Extra Transverse",
   /* SuperA/SuperA/A4 227 x 356 mm */
!     DMPAPER_A_PLUS, "Super A Plus",
   /* SuperB/SuperB/A3 305 x 487 mm */
!     DMPAPER_B_PLUS, "Super B Plus",
   /* Letter Plus 8.5 x 12.69 in */
!     DMPAPER_LETTER_PLUS, "Letter Plus",
   /* A4 Plus 210 x 330 mm */
!     DMPAPER_A4_PLUS, "A4 Plus",
   /* A5 Transverse 148 x 210 mm */
!     DMPAPER_A5_TRANSVERSE, "A5 Transverse",
   /* B5 (JIS) Transverse 182 x 257 mm */
!     DMPAPER_B5_TRANSVERSE, "B5 Transverse",
   /* A3 Extra 322 x 445 mm */
!     DMPAPER_A3_EXTRA, "A3 Extra",
   /* A5 Extra 174 x 235 mm */
!     DMPAPER_A5_EXTRA, "A5 Extra",
   /* B5 (ISO) Extra 201 x 276 mm */
!     DMPAPER_B5_EXTRA, "B5 Extra",
   /* A2 420 x 594 mm */
!     DMPAPER_A2, "A2",
   /* A3 Transverse 297 x 420 mm */
!     DMPAPER_A3_TRANSVERSE, "A3 Transverse",
   /* A3 Extra Transverse 322 x 445 mm   */
!     DMPAPER_A3_EXTRA_TRANSVERSE, "A3 Extra Transverse",
!     0, NULL
  };
  
  static TokenString statusTable[] =
  {
!     PRINTER_STATUS_BUSY, "Busy",
!     PRINTER_STATUS_DOOR_OPEN, "Door Open",
!     PRINTER_STATUS_ERROR, "Error",
!     PRINTER_STATUS_INITIALIZING, "Initializing",
!     PRINTER_STATUS_IO_ACTIVE, "IO Active",
!     PRINTER_STATUS_MANUAL_FEED, "Manual Feed",
!     PRINTER_STATUS_NOT_AVAILABLE, "Not Available",
!     PRINTER_STATUS_NO_TONER, "No Toner",
!     PRINTER_STATUS_OFFLINE, "Offline",
!     PRINTER_STATUS_OUTPUT_BIN_FULL, "Bin Full",
!     PRINTER_STATUS_OUT_OF_MEMORY, "Out Of Memory",
!     PRINTER_STATUS_PAGE_PUNT, "Page Punt",
!     PRINTER_STATUS_PAPER_JAM, "Paper Jam",
!     PRINTER_STATUS_PAPER_OUT, "Paper Out",
!     PRINTER_STATUS_PAPER_PROBLEM, "Paper Problem",
!     PRINTER_STATUS_PAUSED, "Paused",
!     PRINTER_STATUS_PENDING_DELETION, "Pending Deletion",
!     PRINTER_STATUS_POWER_SAVE, "Power Save",
!     PRINTER_STATUS_PRINTING, "Printing",
!     PRINTER_STATUS_PROCESSING, "Processing",
!     PRINTER_STATUS_SERVER_UNKNOWN, "Server Unknown",
!     PRINTER_STATUS_TONER_LOW, "Toner Low",
!     PRINTER_STATUS_USER_INTERVENTION, "User Intervention",
!     PRINTER_STATUS_WAITING, "Waiting",
!     PRINTER_STATUS_WARMING_UP, "Warming Up",
!     0, NULL
  };
  
  static TokenString attributeTable[] =
  {
!     PRINTER_ATTRIBUTE_DEFAULT, "Default",
!     PRINTER_ATTRIBUTE_DIRECT, "Direct",
!     PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST, "Do Complete First",
!     PRINTER_ATTRIBUTE_ENABLE_BIDI, "Enable BIDI",
!     PRINTER_ATTRIBUTE_ENABLE_DEVQ, "Enable Devq",
!     PRINTER_ATTRIBUTE_HIDDEN, "Hidden",
!     PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS, "Keep Printed Jobs",
!     PRINTER_ATTRIBUTE_LOCAL, "Local",
!     PRINTER_ATTRIBUTE_NETWORK, "Network",
!     PRINTER_ATTRIBUTE_QUEUED, "Queued",
!     PRINTER_ATTRIBUTE_RAW_ONLY, "Raw Only",
!     PRINTER_ATTRIBUTE_SHARED, "Shared",
!     PRINTER_ATTRIBUTE_WORK_OFFLINE, "Offline",
!     0, NULL
  };
  
  static TokenString binTable[] =
  {
!     DMBIN_UPPER, "Upper",
!     DMBIN_LOWER, "Lower",
!     DMBIN_MIDDLE, "Middle",
!     DMBIN_MANUAL, "Manual",
!     DMBIN_ENVELOPE, "Envelope",
!     DMBIN_ENVMANUAL, "Envelope Manual",
!     DMBIN_AUTO, "Automatic",
!     DMBIN_TRACTOR, "Tractor",
!     DMBIN_SMALLFMT, "Small Format",
!     DMBIN_LARGEFMT, "Large Format",
!     DMBIN_LARGECAPACITY, "Large Capacity",
!     DMBIN_CASSETTE, "Cassette",
!     DMBIN_FORMSOURCE, "Form Source",
!     0, NULL
  };
  
  static TokenString orientationTable[] =
  {
!     DMORIENT_PORTRAIT, "Portrait",
!     DMORIENT_LANDSCAPE, "Landscape",
!     0, NULL
  };
  
  static TokenString qualityTable[] =
  {
!     DMRES_HIGH, "High",
!     DMRES_MEDIUM, "Medium",
!     DMRES_LOW, "Low",
!     DMRES_DRAFT, "Draft",
!     0, NULL
  };
  
  static TokenString colorTable[] =
  {
!     DMCOLOR_COLOR, "Color",
!     DMCOLOR_MONOCHROME, "Monochrome",
!     0, NULL
  };
  
  static TokenString duplexTable[] =
  {
!     DMDUP_SIMPLEX, "Simplex",
!     DMDUP_HORIZONTAL, "Horizontal",
!     DMDUP_VERTICAL, "Vertical",
!     0, NULL
  };
  
  static TokenString ttOptionTable[] =
  {
!     DMTT_BITMAP, "Bitmap",
!     DMTT_DOWNLOAD, "Download",
!     DMTT_SUBDEV, "Substitute Device",
!     DMTT_DOWNLOAD_OUTLINE, "Download Outline",
!     0, NULL
  };
  
  #ifdef __STDC__
--- 91,334 ----
  static TokenString sizeTable[] =
  {
   /* Letter 8 1/2 x 11 in */
!     {DMPAPER_LETTER, "Letter"},
   /* Letter Small 8 1/2 x 11 in */
!     {DMPAPER_LETTERSMALL, "Letter Small"},
   /* Tabloid 11 x 17 in */
!     {DMPAPER_TABLOID, "Tabloid"},
   /* Ledger 17 x 11 in */
!     {DMPAPER_LEDGER, "Ledger"},
   /* Legal 8 1/2 x 14 in */
!     {DMPAPER_LEGAL, "Legal"},
   /* Statement 5 1/2 x 8 1/2 in */
!     {DMPAPER_STATEMENT, "Statement"},
   /* Executive 7 1/4 x 10 1/2 in */
!     {DMPAPER_EXECUTIVE, "Executive"},
   /* A3 297 x 420 mm */
!     {DMPAPER_A3, "A3"},
   /* A4 210 x 297 mm */
!     {DMPAPER_A4, "A4"},
   /* A4 Small 210 x 297 mm */
!     {DMPAPER_A4SMALL, "A4 Small"},
   /* A5 148 x 210 mm */
!     {DMPAPER_A5, "A5"},
   /* B4 (JIS) 250 x 354 */
!     {DMPAPER_B4, "B4 (JIS)"},
   /* B5 (JIS) 182 x 257 mm */
!     {DMPAPER_B5, "B5 (JIS)"},
   /* Folio 8 1/2 x 13 in */
!     {DMPAPER_FOLIO, "Folio"},
   /* Quarto 215 x 275 mm */
!     {DMPAPER_QUARTO, "Quarto"},
   /* 10x14 in */
!     {DMPAPER_10X14, "10x14"},
   /* 11x17 in */
!     {DMPAPER_11X17, "11x17"},
   /* Note 8 1/2 x 11 in */
!     {DMPAPER_NOTE, "Note"},
   /* Envelope #9 3 7/8 x 8 7/8 */
!     {DMPAPER_ENV_9, "Envelope #9"},
   /* Envelope #10 4 1/8 x 9 1/2 */
!     {DMPAPER_ENV_10, "Envelope #10"},
   /* Envelope #11 4 1/2 x 10 3/8 */
!     {DMPAPER_ENV_11, "Envelope #11"},
   /* Envelope #12 4 \276 x 11 */
!     {DMPAPER_ENV_12, "Envelope #12"},
   /* Envelope #14 5 x 11 1/2 */
!     {DMPAPER_ENV_14, "Envelope #14"},
   /* C size sheet */
!     {DMPAPER_CSHEET, "C size sheet"},
   /* D size sheet */
!     {DMPAPER_DSHEET, "D size sheet"},
   /* E size sheet */
!     {DMPAPER_ESHEET, "E size sheet"},
   /* Envelope DL 110 x 220mm */
!     {DMPAPER_ENV_DL, "Envelope DL"},
   /* Envelope C5 162 x 229 mm */
!     {DMPAPER_ENV_C5, "Envelope C5"},
   /* Envelope C3  324 x 458 mm */
!     {DMPAPER_ENV_C3, "Envelope C3"},
   /* Envelope C4  229 x 324 mm */
!     {DMPAPER_ENV_C4, "Envelope C4"},
   /* Envelope C6  114 x 162 mm */
!     {DMPAPER_ENV_C6, "Envelope C6"},
   /* Envelope C65 114 x 229 mm */
!     {DMPAPER_ENV_C65, "Envelope C65"},
   /* Envelope B4  250 x 353 mm */
!     {DMPAPER_ENV_B4, "Envelope B4"},
   /* Envelope B5  176 x 250 mm */
!     {DMPAPER_ENV_B5, "Envelope B5"},
   /* Envelope B6  176 x 125 mm */
!     {DMPAPER_ENV_B6, "Envelope B6"},
   /* Envelope 110 x 230 mm */
!     {DMPAPER_ENV_ITALY, "Envelope Italy"},
   /* Env Monarch 3 7/8 x 7 1/2 in */
!     {DMPAPER_ENV_MONARCH, "Envelope Monarch"},
   /* 6 3/4 Envelope 3 5/8 x 6 1/2 in */
!     {DMPAPER_ENV_PERSONAL, "6 3/4 Envelope"},
   /* US Std Fanfold 14 7/8 x 11 in */
!     {DMPAPER_FANFOLD_US, "US Std Fanfold"},
   /* German Std Fanfold 8 1/2 x 12 in */
!     {DMPAPER_FANFOLD_STD_GERMAN, "German Std Fanfold"},
   /* German Legal Fanfold 8 1/2 x 13 in */
!     {DMPAPER_FANFOLD_LGL_GERMAN, "German Legal Fanfold"},
   /* B4 (ISO) 250 x 353 mm */
!     {DMPAPER_ISO_B4, "ISOB4"},
   /* Japanese Postcard 100 x 148 mm */
!     {DMPAPER_JAPANESE_POSTCARD, "Postcard (JIS)"},
   /* 9 x 11 in */
!     {DMPAPER_9X11, "9x11"},
   /* 10 x 11 in */
!     {DMPAPER_10X11, "10x11"},
   /* 15 x 11 in */
!     {DMPAPER_15X11, "15x11"},
   /* Envelope Invite 220 x 220 mm */
!     {DMPAPER_ENV_INVITE, "Envelope Invite"},
   /* Letter Extra 9 \275 x 12 in */
!     {DMPAPER_LETTER_EXTRA, "Letter Extra"},
   /* Legal Extra 9 \275 x 15 in */
!     {DMPAPER_LEGAL_EXTRA, "Legal Extra"},
   /* Tabloid Extra 11.69 x 18 in */
!     {DMPAPER_TABLOID_EXTRA, "Tabloid Extra"},
   /* A4 Extra 9.27 x 12.69 in */
!     {DMPAPER_A4_EXTRA, "A4 Extra"},
   /* Letter Transverse 8 \275 x 11 in */
!     {DMPAPER_LETTER_TRANSVERSE, "Letter Transverse"},
   /* A4 Transverse 210 x 297 mm */
!     {DMPAPER_A4_TRANSVERSE, "A4 Transverse"},
   /* Letter Extra Transverse 9\275 x 12 in */
!     {DMPAPER_LETTER_EXTRA_TRANSVERSE, "Letter Extra Transverse"},
   /* SuperA/SuperA/A4 227 x 356 mm */
!     {DMPAPER_A_PLUS, "Super A Plus"},
   /* SuperB/SuperB/A3 305 x 487 mm */
!     {DMPAPER_B_PLUS, "Super B Plus"},
   /* Letter Plus 8.5 x 12.69 in */
!     {DMPAPER_LETTER_PLUS, "Letter Plus"},
   /* A4 Plus 210 x 330 mm */
!     {DMPAPER_A4_PLUS, "A4 Plus"},
   /* A5 Transverse 148 x 210 mm */
!     {DMPAPER_A5_TRANSVERSE, "A5 Transverse"},
   /* B5 (JIS) Transverse 182 x 257 mm */
!     {DMPAPER_B5_TRANSVERSE, "B5 Transverse"},
   /* A3 Extra 322 x 445 mm */
!     {DMPAPER_A3_EXTRA, "A3 Extra"},
   /* A5 Extra 174 x 235 mm */
!     {DMPAPER_A5_EXTRA, "A5 Extra"},
   /* B5 (ISO) Extra 201 x 276 mm */
!     {DMPAPER_B5_EXTRA, "B5 Extra"},
   /* A2 420 x 594 mm */
!     {DMPAPER_A2, "A2"},
   /* A3 Transverse 297 x 420 mm */
!     {DMPAPER_A3_TRANSVERSE, "A3 Transverse"},
   /* A3 Extra Transverse 322 x 445 mm   */
!     {DMPAPER_A3_EXTRA_TRANSVERSE, "A3 Extra Transverse"},
!     {0, NULL}
  };
  
  static TokenString statusTable[] =
  {
!     {PRINTER_STATUS_BUSY, "Busy"},
!     {PRINTER_STATUS_DOOR_OPEN, "Door Open"},
!     {PRINTER_STATUS_ERROR, "Error"},
!     {PRINTER_STATUS_INITIALIZING, "Initializing"},
!     {PRINTER_STATUS_IO_ACTIVE, "IO Active"},
!     {PRINTER_STATUS_MANUAL_FEED, "Manual Feed"},
!     {PRINTER_STATUS_NOT_AVAILABLE, "Not Available"},
!     {PRINTER_STATUS_NO_TONER, "No Toner"},
!     {PRINTER_STATUS_OFFLINE, "Offline"},
!     {PRINTER_STATUS_OUTPUT_BIN_FULL, "Bin Full"},
!     {PRINTER_STATUS_OUT_OF_MEMORY, "Out Of Memory"},
!     {PRINTER_STATUS_PAGE_PUNT, "Page Punt"},
!     {PRINTER_STATUS_PAPER_JAM, "Paper Jam"},
!     {PRINTER_STATUS_PAPER_OUT, "Paper Out"},
!     {PRINTER_STATUS_PAPER_PROBLEM, "Paper Problem"},
!     {PRINTER_STATUS_PAUSED, "Paused"},
!     {PRINTER_STATUS_PENDING_DELETION, "Pending Deletion"},
!     {PRINTER_STATUS_POWER_SAVE, "Power Save"},
!     {PRINTER_STATUS_PRINTING, "Printing"},
!     {PRINTER_STATUS_PROCESSING, "Processing"},
!     {PRINTER_STATUS_SERVER_UNKNOWN, "Server Unknown"},
!     {PRINTER_STATUS_TONER_LOW, "Toner Low"},
!     {PRINTER_STATUS_USER_INTERVENTION, "User Intervention"},
!     {PRINTER_STATUS_WAITING, "Waiting"},
!     {PRINTER_STATUS_WARMING_UP, "Warming Up"},
!     {0, NULL}
  };
  
  static TokenString attributeTable[] =
  {
!     {PRINTER_ATTRIBUTE_DEFAULT, "Default"},
!     {PRINTER_ATTRIBUTE_DIRECT, "Direct"},
!     {PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST, "Do Complete First"},
!     {PRINTER_ATTRIBUTE_ENABLE_BIDI, "Enable BIDI"},
!     {PRINTER_ATTRIBUTE_ENABLE_DEVQ, "Enable Devq"},
!     {PRINTER_ATTRIBUTE_HIDDEN, "Hidden"},
!     {PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS, "Keep Printed Jobs"},
!     {PRINTER_ATTRIBUTE_LOCAL, "Local"},
!     {PRINTER_ATTRIBUTE_NETWORK, "Network"},
!     {PRINTER_ATTRIBUTE_QUEUED, "Queued"},
!     {PRINTER_ATTRIBUTE_RAW_ONLY, "Raw Only"},
!     {PRINTER_ATTRIBUTE_SHARED, "Shared"},
!     {PRINTER_ATTRIBUTE_WORK_OFFLINE, "Offline"},
!     {0, NULL}
  };
  
  static TokenString binTable[] =
  {
!     {DMBIN_UPPER, "Upper"},
!     {DMBIN_LOWER, "Lower"},
!     {DMBIN_MIDDLE, "Middle"},
!     {DMBIN_MANUAL, "Manual"},
!     {DMBIN_ENVELOPE, "Envelope"},
!     {DMBIN_ENVMANUAL, "Envelope Manual"},
!     {DMBIN_AUTO, "Automatic"},
!     {DMBIN_TRACTOR, "Tractor"},
!     {DMBIN_SMALLFMT, "Small Format"},
!     {DMBIN_LARGEFMT, "Large Format"},
!     {DMBIN_LARGECAPACITY, "Large Capacity"},
!     {DMBIN_CASSETTE, "Cassette"},
!     {DMBIN_FORMSOURCE, "Form Source"},
!     {0, NULL}
  };
  
  static TokenString orientationTable[] =
  {
!     {DMORIENT_PORTRAIT, "Portrait"},
!     {DMORIENT_LANDSCAPE, "Landscape"},
!     {0, NULL}
  };
  
  static TokenString qualityTable[] =
  {
!     {DMRES_HIGH, "High"},
!     {DMRES_MEDIUM, "Medium"},
!     {DMRES_LOW, "Low"},
!     {DMRES_DRAFT, "Draft"},
!     {0, NULL}
  };
  
  static TokenString colorTable[] =
  {
!     {DMCOLOR_COLOR, "Color"},
!     {DMCOLOR_MONOCHROME, "Monochrome"},
!     {0, NULL}
  };
  
  static TokenString duplexTable[] =
  {
!     {DMDUP_SIMPLEX, "Simplex"},
!     {DMDUP_HORIZONTAL, "Horizontal"},
!     {DMDUP_VERTICAL, "Vertical"},
!     {0, NULL}
  };
  
  static TokenString ttOptionTable[] =
  {
!     {DMTT_BITMAP, "Bitmap"},
!     {DMTT_DOWNLOAD, "Download"},
!     {DMTT_SUBDEV, "Substitute Device"},
!     {DMTT_DOWNLOAD_OUTLINE, "Download Outline"},
!     {0, NULL}
  };
  
  #ifdef __STDC__
***************
*** 535,540 ****
--- 534,540 ----
      return 0;
  }
  
+ #if 0
  static void
  GetFormInfo(
      Tcl_Interp *interp,
***************
*** 553,558 ****
--- 553,559 ----
  	TCL_LEAVE_ERR_MSG);
      Tcl_DStringFree(&dString);
  }
+ #endif
  
  
  static int
***************
*** 565,571 ****
      char *string;
      Tcl_DString dString;
      DEVMODE *dmPtr;
!     int bytesNeeded;
      HGLOBAL hMem;
      PRINTER_INFO_2* p2Ptr;
      HANDLE hPrinter;
--- 566,572 ----
      char *string;
      Tcl_DString dString;
      DEVMODE *dmPtr;
!     DWORD bytesNeeded;
      HGLOBAL hMem;
      PRINTER_INFO_2* p2Ptr;
      HANDLE hPrinter;
***************
*** 858,864 ****
      char string[200];
      LPVOID buffer;
      PRINTER_INFO_2* p2Ptr;
!     int bytesNeeded;
      int isNew;
      Tcl_HashEntry *hPtr;
      HANDLE hMem;
--- 859,865 ----
      char string[200];
      LPVOID buffer;
      PRINTER_INFO_2* p2Ptr;
!     DWORD bytesNeeded;
      int isNew;
      Tcl_HashEntry *hPtr;
      HANDLE hMem;
***************
*** 919,927 ****
      int argc,
      char **argv)
  {
!     ThreadData *dataPtr = (ThreadData *)clientData;
      register int i;
!     int nPrinters, bytesNeeded;
      int elemSize, level;
      unsigned char *buffer;
      int result, flags;
--- 920,928 ----
      int argc,
      char **argv)
  {
!     /* ThreadData *dataPtr = (ThreadData *)clientData;*/
      register int i;
!     DWORD nPrinters, bytesNeeded;
      int elemSize, level;
      unsigned char *buffer;
      int result, flags;
***************
*** 1068,1074 ****
      double pageWidth, pageHeight;
      int jobId;
      char *driverName;
!     HANDLE hPrinter;
      DEVMODE *dmPtr;
      HGLOBAL hMem;
  
--- 1069,1075 ----
      double pageWidth, pageHeight;
      int jobId;
      char *driverName;
!     HANDLE hPrinter = (HANDLE) NULL;
      DEVMODE *dmPtr;
      HGLOBAL hMem;
  
*** src/bltWinUtil.c.orig	Thu Mar 16 08:27:01 2000
--- src/bltWinUtil.c	Sat Apr 29 21:02:00 2000
***************
*** 24,30 ****
   *
   */
  
! #include <bltInt.h>
  
  void *
  Blt_EmulateCalloc(
--- 24,46 ----
   *
   */
  
! #include "bltInt.h"
! 
! /*
!  *   This list of undef's and the definition of bltStubPtr are
!  *   workarounds for the fact that the source code for BLTlite
!  *   and BLT are in the same directory. If they were separated,
!  *   then BLTlite could be compiled without -DUSE_BLT_STUBS.
!  *   Then this trick wouldn't be necessary.
!  */
! 
! #undef Blt_EmulateCalloc
! #undef Blt_EmulateStrdup
! #undef Blt_GetPlatformId
! #undef Blt_LastError
! 
! extern BltPlatStubs bltPlatStubs;
! #define bltPlatStubsPtr (&bltPlatStubs)
  
  void *
  Blt_EmulateCalloc(
*** src/bltWinop.c.orig	Mon Jan 24 19:52:32 2000
--- src/bltWinop.c	Sat Apr 29 21:02:00 2000
***************
*** 110,116 ****
      }
      return TCL_OK;
  }
- 
  #endif
  
  static int
--- 110,115 ----
***************
*** 272,277 ****
--- 271,277 ----
      return TCL_OK;
  }
  
+ 
  /* ARGSUSED */
  static int
  QueryOp(clientData, interp, argc, argv)
***************
*** 343,349 ****
      int argc;			/* Not used. */
      char **argv;
  {
! #if HAVE_JPEGLIB_H
      Tk_PhotoHandle photo;	/* The photo image to write into. */
  
      photo = Blt_FindPhoto(interp, argv[3]);
--- 343,349 ----
      int argc;			/* Not used. */
      char **argv;
  {
! #ifdef HAVE_JPEGLIB_H
      Tk_PhotoHandle photo;	/* The photo image to write into. */
  
      photo = Blt_FindPhoto(interp, argv[3]);
***************
*** 406,411 ****
--- 406,412 ----
      return result;
  }
  
+ 
  /*
   * This is a temporary home for these image routines.  They will be
   * moved when a new image type is created for them.
***************
*** 546,551 ****
--- 547,555 ----
  	dest.offset[0] = src.offset[0];
  	dest.offset[1] = src.offset[1];
  	dest.offset[2] = src.offset[2];
+ 	if (src.pixelSize > 3) {
+ 	    dest.offset[3] = src.offset[3];
+ 	}
  	Tk_PhotoPutBlock(destPhoto, &dest, 0, 0, dest.width, dest.height);
  	return TCL_OK;
      }
***************
*** 638,643 ****
--- 642,648 ----
      return TCL_OK;
  }
  
+ #if 0
  static int
  TestOp(clientData, interp, argc, argv)
      ClientData clientData;
***************
*** 667,673 ****
      }
      return TCL_OK;
  }
! 
  
  static Blt_OpSpec winOps[] =
  {
--- 672,678 ----
      }
      return TCL_OK;
  }
! #endif
  
  static Blt_OpSpec winOps[] =
  {
***************
*** 695,700 ****
--- 700,706 ----
      {"unmap", 1, (Blt_OpProc)UnmapOp, 2, 0, "window ?window?...",},
      {"warpto", 1, (Blt_OpProc)WarpToOp, 2, 5, "?window?",},
  };
+ 
  
  static int nWinOps = sizeof(winOps) / sizeof(Blt_OpSpec);
  
*** src/setup.iss.orig	Sat Apr 29 21:02:00 2000
--- src/setup.iss	Sat Apr 29 21:02:00 2000
***************
*** 0 ****
--- 1,29 ----
+ [Setup]
+ Bits=32
+ CompressLevel=9
+ AppName=BLT 2.4 with Stubs support
+ AppVerName=BLT 2.4q
+ AppCopyright= Lucent Technologies (Stubs support added by Jan Nijtmans)
+ DefaultDirName={pf}\Tcl
+ MinVersion=4,3.51
+ DisableDirExistsWarning=1
+ EnableDirDoesntExistWarning=1
+ 
+ [Files]
+ Source: "bin\jpeg62.dll"; DestDir: "{app}\bin"
+ Source: "bin\BLT24.dll"; DestDir: "{app}\bin"
+ Source: "bin\BLTlite24.dll"; DestDir: "{app}\bin"
+ Source: "lib\BLTstub24.lib"; DestDir: "{app}\lib"
+ Source: "lib\libBLTstub24.a"; DestDir: "{app}\lib"
+ Source: "include\blt.h"; DestDir: "{app}\include"
+ Source: "include\bltDecls.h"; DestDir: "{app}\include"
+ Source: "include\bltChain.h"; DestDir: "{app}\include"
+ Source: "include\bltList.h"; DestDir: "{app}\include"
+ Source: "include\bltTree.h"; DestDir: "{app}\include"
+ Source: "include\bltVector.h"; DestDir: "{app}\include"
+ Source: "lib\blt2.4\*"; DestDir: "{app}\lib\blt2.4"
+ Source: "lib\blt2.4\dd_protocols\*"; DestDir: "{app}\lib\blt2.4\dd_protocols"
+ Source: "lib\blt2.4\demos\*"; DestDir: "{app}\lib\blt2.4\demos"
+ Source: "lib\blt2.4\demos\bitmaps\*"; DestDir: "{app}\lib\blt2.4\demos\bitmaps"
+ Source: "lib\blt2.4\demos\images\*"; DestDir: "{app}\lib\blt2.4\demos\images"
+ Source: "lib\blt2.4\demos\scripts\*"; DestDir: "{app}\lib\blt2.4\demos\scripts"
*** src/tcl.decls.orig	Sat Apr 29 21:02:00 2000
--- src/tcl.decls	Sat Apr 29 21:02:00 2000
***************
*** 0 ****
--- 1,631 ----
+ # tcl.decls --
+ #
+ #	This file contains the declarations for all public functions
+ #	that are exported by the Tcl library via the stubs table.
+ #	This file is used to generate the tclDecls.h, tclPlatDecls.h,
+ #	tclIntDecls.h and tclStub.c files.
+ #	
+ #
+ # Copyright (c) 1998-1999 by Scriptics Corporation.
+ # See the file "license.terms" for information on usage and redistribution
+ # of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+ # 
+ 
+ library tcl
+ 
+ ##############################################################################
+ 
+ # Define the platform specific public Tcl interface.  These functions are
+ # only available on the designated platform.
+ 
+ interface tclPlat
+ 
+ ######################
+ # Windows declarations
+ 
+ # Added in Tcl 8.1
+ 
+ declare 0 win {
+     TCHAR * Tcl_WinUtfToTChar(CONST char *str, int len, Tcl_DString *dsPtr)
+ }
+ declare 1 win {
+     char * Tcl_WinTCharToUtf(CONST TCHAR *str, int len, Tcl_DString *dsPtr)
+ }
+ 
+ ##################
+ # Mac declarations
+ 
+ # This is needed by the shells to handle Macintosh events.
+  
+ declare 0 mac {
+     void Tcl_MacSetEventProc(Tcl_MacConvertEventPtr procPtr)
+ }
+ 
+ # These routines are useful for handling using scripts from resources 
+ # in the application shell
+ 
+ declare 1 mac {
+     char * Tcl_MacConvertTextResource(Handle resource)
+ }
+ declare 2 mac {
+     int Tcl_MacEvalResource(Tcl_Interp *interp, char *resourceName, \
+ 	    int resourceNumber, char *fileName)
+ }
+ declare 3 mac {
+     Handle Tcl_MacFindResource(Tcl_Interp *interp, long resourceType, \
+ 	    char *resourceName, int resourceNumber, char *resFileRef, \
+ 	    int * releaseIt)
+ }
+ 
+ # These routines support the new OSType object type (i.e. the packed 4
+ # character type and creator codes).
+ 
+ declare 4 mac {
+     int Tcl_GetOSTypeFromObj(Tcl_Interp *interp, Tcl_Obj *objPtr, \
+ 	    OSType *osTypePtr)
+ }
+ declare 5 mac {
+     void Tcl_SetOSTypeObj(Tcl_Obj *objPtr, OSType osType)
+ }
+ declare 6 mac {
+     Tcl_Obj * Tcl_NewOSTypeObj(OSType osType)
+ }
+ 
+ # These are not in MSL 2.1.2, so we need to export them from the
+ # Tcl shared library.  They are found in the compat directory
+ # except the panic routine which is found in tclMacPanic.h.
+  
+ declare 7 mac {
+     int strncasecmp(CONST char *s1, CONST char *s2, size_t n)
+ }
+ declare 8 mac {
+     int strcasecmp(CONST char *s1, CONST char *s2)
+ }
+ 
+ # Define the unsupported generic interfaces.
+ 
+ interface tclInt
+ 
+ # Declare each of the functions in the unsupported internal Tcl
+ # interface.  These interfaces are allowed to changed between versions.
+ # Use at your own risk.  Note that the position of functions should not
+ # be changed between versions to avoid gratuitous incompatibilities.
+ 
+ declare 0 generic {
+     int TclAccess(CONST char *path, int mode)
+ }
+ declare 3 generic {
+     void TclAllocateFreeObjects(void)
+ }
+ declare 5 {unix win} {
+     int TclCleanupChildren(Tcl_Interp *interp, int numPids, Tcl_Pid *pidPtr, \
+ 	    Tcl_Channel errorChan)
+ }
+ declare 7 generic {
+     int TclCopyAndCollapse(int count, CONST char *src, char *dst)
+ }
+ declare 8 generic {
+     int TclCopyChannel(Tcl_Interp *interp, Tcl_Channel inChan, \
+ 	    Tcl_Channel outChan, int toRead, Tcl_Obj *cmdPtr)
+ }
+ declare 11 generic {
+     void TclDeleteCompiledLocalVars(Interp *iPtr, CallFrame *framePtr)
+ }
+ declare 12 generic {
+     void TclDeleteVars(Interp *iPtr, Tcl_HashTable *tablePtr)
+ }
+ declare 14 generic {
+     void TclDumpMemoryInfo(FILE *outFile)
+ }
+ declare 15 generic {
+     void TclFinalizeCondition(Tcl_Condition *condPtr)
+ }
+ declare 16 generic {
+     void TclExprFloatError(Tcl_Interp *interp, double value)
+ }
+ declare 17 generic {
+     int TclFileAttrsCmd(Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])
+ }
+ declare 18 generic {
+     int TclFileCopyCmd(Tcl_Interp *interp, int argc, char **argv)
+ }
+ declare 19 generic {
+     int TclFileDeleteCmd(Tcl_Interp *interp, int argc, char **argv)
+ }
+ declare 20 generic {
+     int TclFileMakeDirsCmd(Tcl_Interp *interp, int argc, char **argv)
+ }
+ declare 21 generic {
+     int TclFileRenameCmd(Tcl_Interp *interp, int argc, char **argv)
+ }
+ declare 22 generic {
+     int TclFindElement(Tcl_Interp *interp, CONST char *listStr, \
+ 	    int listLength, CONST char **elementPtr, CONST char **nextPtr, \
+ 	    int *sizePtr, int *bracePtr)
+ }
+ declare 23 generic {
+     Proc * TclFindProc(Interp *iPtr, char *procName)
+ }
+ declare 24 generic {
+     int TclFormatInt(char *buffer, long n)
+ }
+ declare 25 generic {
+     void TclFreePackageInfo(Interp *iPtr)
+ }
+ declare 27 generic {
+     int TclGetDate(char *p, unsigned long now, long zone, \
+ 	    unsigned long *timePtr)
+ }
+ declare 28 generic {
+     Tcl_Channel TclpGetDefaultStdChannel(int type)
+ }
+ declare 29 generic {
+     Tcl_Obj * TclGetElementOfIndexedArray(Tcl_Interp *interp, \
+ 	    int localIndex, Tcl_Obj *elemPtr, int leaveErrorMsg)
+ }
+ declare 31 generic {
+     CONST char * TclGetExtension(CONST char *name)
+ }
+ declare 32 generic {
+     int TclGetFrame(Tcl_Interp *interp, CONST char *str, CallFrame **framePtrPtr)
+ }
+ declare 34 generic {
+     int TclGetIntForIndex(Tcl_Interp *interp, Tcl_Obj *objPtr, \
+ 	    int endValue, int *indexPtr)
+ }
+ declare 35 generic {
+     Tcl_Obj * TclGetIndexedScalar(Tcl_Interp *interp, int localIndex, \
+ 	    int leaveErrorMsg)
+ }
+ declare 36 generic {
+     int TclGetLong(Tcl_Interp *interp, CONST char *str, long *longPtr)
+ }
+ declare 37 generic {
+     int TclGetLoadedPackages(Tcl_Interp *interp, CONST char *targetName)
+ }
+ declare 40 generic {
+     int TclGetOpenMode(Tcl_Interp *interp, CONST char *str, int *seekFlagPtr)
+ }
+ declare 41 generic {
+     Tcl_Command TclGetOriginalCommand(Tcl_Command command)
+ }
+ declare 42 generic {
+     char * TclpGetUserHome(CONST char *name, Tcl_DString *bufferPtr)
+ }
+ declare 43 generic {
+     int TclGlobalInvoke(Tcl_Interp *interp, int argc, char **argv, int flags)
+ }
+ declare 44 generic {
+     int TclGuessPackageName(CONST char *fileName, Tcl_DString *bufPtr)
+ }
+ declare 45 generic {
+     int TclHideUnsafeCommands(Tcl_Interp *interp)
+ }
+ declare 46 generic {
+     int TclInExit(void)
+ }
+ declare 47 generic {
+     Tcl_Obj * TclIncrElementOfIndexedArray(Tcl_Interp *interp, \
+ 	    int localIndex, Tcl_Obj *elemPtr, long incrAmount)
+ }
+ declare 48 generic {
+     Tcl_Obj * TclIncrIndexedScalar(Tcl_Interp *interp, int localIndex, \
+ 	    long incrAmount)
+ }
+ declare 49 generic {
+     Tcl_Obj * TclIncrVar2(Tcl_Interp *interp, Tcl_Obj *part1Ptr, \
+ 	    Tcl_Obj *part2Ptr, long incrAmount, int part1NotParsed)
+ }
+ declare 51 generic {
+     int TclInterpInit(Tcl_Interp *interp)
+ }
+ declare 52 generic {
+     int TclInvoke(Tcl_Interp *interp, int argc, char **argv, int flags)
+ }
+ declare 53 generic {
+     int TclInvokeObjectCommand(ClientData clientData, Tcl_Interp *interp, \
+ 	    int argc, char **argv)
+ }
+ declare 54 generic {
+     int TclInvokeStringCommand(ClientData clientData, Tcl_Interp *interp, \
+ 	    int objc, Tcl_Obj *CONST objv[])
+ }
+ declare 58 generic {
+     struct Var * TclLookupVar(Tcl_Interp *interp, char *part1, char *part2, \
+ 	    int flags, CONST char *msg, int createPart1, int createPart2, \
+ 	    struct Var **arrayPtrPtr)
+ }
+ declare 59 generic {
+     int TclpMatchFiles(Tcl_Interp *interp, char *separators, \
+ 	    Tcl_DString *dirPtr, char *pattern, char *tail)
+ }
+ declare 60 generic {
+     int TclNeedSpace(char *start, char *end)
+ }
+ declare 61 generic {
+     Tcl_Obj * TclNewProcBodyObj(Proc *procPtr)
+ }
+ declare 62 generic {
+     int TclObjCommandComplete(Tcl_Obj *cmdPtr)
+ }
+ declare 63 generic {
+     int TclObjInterpProc(ClientData clientData, Tcl_Interp *interp, \
+ 	    int objc, Tcl_Obj *CONST objv[])
+ }
+ declare 64 generic {
+     int TclObjInvoke(Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[], \
+ 	    int flags)
+ }
+ declare 65 generic {
+     int TclObjInvokeGlobal(Tcl_Interp *interp, int objc, \
+ 	    Tcl_Obj *CONST objv[], int flags)
+ }
+ declare 68 generic {
+     int TclpAccess(CONST char *path, int mode)
+ }
+ declare 69 generic {
+     char * TclpAlloc(unsigned int size)
+ }
+ declare 70 generic {
+     int TclpCopyFile(CONST char *source, CONST char *dest)
+ }
+ declare 71 generic {
+     int TclpCopyDirectory(CONST char *source, CONST char *dest, \
+ 	    Tcl_DString *errorPtr)
+ }
+ declare 72 generic {
+     int TclpCreateDirectory(CONST char *path)
+ }
+ declare 73 generic {
+     int TclpDeleteFile(CONST char *path)
+ }
+ declare 74 generic {
+     void TclpFree(char *ptr)
+ }
+ declare 75 generic {
+     unsigned long TclpGetClicks(void)
+ }
+ declare 76 generic {
+     unsigned long TclpGetSeconds(void)
+ }
+ declare 77 generic {
+     void TclpGetTime(Tcl_Time *time)
+ }
+ declare 78 generic {
+     int TclpGetTimeZone(unsigned long time)
+ }
+ declare 79 generic {
+     int TclpListVolumes(Tcl_Interp *interp)
+ }
+ declare 80 generic {
+     Tcl_Channel TclpOpenFileChannel(Tcl_Interp *interp, CONST char *fileName, \
+ 	    CONST char *modeString, int permissions)
+ }
+ declare 81 generic {
+     char * TclpRealloc(char *ptr, unsigned int size)
+ }
+ declare 82 generic {
+     int TclpRemoveDirectory(CONST char *path, int recursive, \
+ 	    Tcl_DString *errorPtr)
+ }
+ declare 83 generic {
+     int TclpRenameFile(CONST char *source, CONST char *dest)
+ }
+ declare 88 generic {
+     char * TclPrecTraceProc(ClientData clientData, Tcl_Interp *interp, \
+ 	    char *name1, char *name2, int flags)
+ }
+ declare 89 generic {
+     int TclPreventAliasLoop(Tcl_Interp *interp, Tcl_Interp *cmdInterp, \
+ 	    Tcl_Command cmd)
+ }
+ declare 91 generic {
+     void TclProcCleanupProc(Proc *procPtr)
+ }
+ declare 93 generic {
+     void TclProcDeleteProc(ClientData clientData)
+ }
+ declare 94 generic {
+     int TclProcInterpProc(ClientData clientData, Tcl_Interp *interp, \
+ 	    int argc, char **argv)
+ }
+ declare 95 generic {
+     int TclpStat(CONST char *path, struct stat *buf)
+ }
+ declare 96 generic {
+     int TclRenameCommand(Tcl_Interp *interp, CONST char *oldName, CONST char *newName)
+ }
+ declare 98 generic {
+     int TclServiceIdle(void)
+ }
+ declare 99 generic {
+     Tcl_Obj * TclSetElementOfIndexedArray(Tcl_Interp *interp, \
+ 	    int localIndex, Tcl_Obj *elemPtr, Tcl_Obj *objPtr, int leaveErrorMsg)
+ }
+ declare 100 generic {
+     Tcl_Obj * TclSetIndexedScalar(Tcl_Interp *interp, int localIndex, \
+ 	    Tcl_Obj *objPtr, int leaveErrorMsg)
+ }
+ declare 101 {unix win} {
+     char * TclSetPreInitScript(char *string)
+ }
+ declare 102 generic {
+     void TclSetupEnv(Tcl_Interp *interp)
+ }
+ declare 103 generic {
+     int TclSockGetPort(Tcl_Interp *interp, char *str, char *proto, \
+ 	    int *portPtr)
+ }
+ declare 104 {unix win} {
+     int TclSockMinimumBuffers(int sock, int size)
+ }
+ declare 105 generic {
+     int TclStat(CONST char *path, struct stat *buf)
+ }
+ declare 112 generic {
+     int Tcl_AppendExportList(Tcl_Interp *interp, Tcl_Namespace *nsPtr, \
+ 	    Tcl_Obj *objPtr)
+ }
+ declare 113 generic {
+     Tcl_Namespace * Tcl_CreateNamespace(Tcl_Interp *interp, CONST char *name, \
+ 	    ClientData clientData, Tcl_NamespaceDeleteProc *deleteProc)
+ }
+ declare 114 generic {
+     void Tcl_DeleteNamespace(Tcl_Namespace *nsPtr)
+ }
+ declare 115 generic {
+     int Tcl_Export(Tcl_Interp *interp, Tcl_Namespace *nsPtr, CONST char *pattern, \
+ 	    int resetListFirst)
+ }
+ declare 116 generic {
+     Tcl_Command Tcl_FindCommand(Tcl_Interp *interp, CONST char *name, \
+ 	    Tcl_Namespace *contextNsPtr, int flags)
+ }
+ declare 117 generic {
+     Tcl_Namespace * Tcl_FindNamespace(Tcl_Interp *interp, CONST char *name, \
+ 	    Tcl_Namespace *contextNsPtr, int flags)
+ }
+ declare 120 generic {
+     Tcl_Var Tcl_FindNamespaceVar(Tcl_Interp *interp, char *name, \
+ 	    Tcl_Namespace *contextNsPtr, int flags)
+ }
+ declare 121 generic {
+     int Tcl_ForgetImport(Tcl_Interp *interp, Tcl_Namespace *nsPtr, \
+ 	    CONST char *pattern)
+ }
+ declare 122 generic {
+     Tcl_Command Tcl_GetCommandFromObj(Tcl_Interp *interp, Tcl_Obj *objPtr)
+ }
+ declare 123 generic {
+     void Tcl_GetCommandFullName(Tcl_Interp *interp, Tcl_Command command, \
+ 	    Tcl_Obj *objPtr)
+ }
+ declare 124 generic {
+     Tcl_Namespace * Tcl_GetCurrentNamespace(Tcl_Interp *interp)
+ }
+ declare 125 generic {
+     Tcl_Namespace * Tcl_GetGlobalNamespace(Tcl_Interp *interp)
+ }
+ declare 126 generic {
+     void Tcl_GetVariableFullName(Tcl_Interp *interp, Tcl_Var variable, \
+ 	    Tcl_Obj *objPtr)
+ }
+ declare 127 generic {
+     int Tcl_Import(Tcl_Interp *interp, Tcl_Namespace *nsPtr, \
+ 	    CONST char *pattern, int allowOverwrite)
+ }
+ declare 128 generic {
+     void Tcl_PopCallFrame(Tcl_Interp* interp)
+ }
+ declare 129 generic {
+     int Tcl_PushCallFrame(Tcl_Interp* interp, Tcl_CallFrame *framePtr, \
+ 	    Tcl_Namespace *nsPtr, int isProcCallFrame)
+ }
+ declare 135 generic {
+     int TclpCheckStackSpace(void)
+ }
+ declare 137 generic {
+    int TclpChdir(CONST char *dirName)
+ }
+ declare 138 generic {
+     char * TclGetEnv(CONST char *name, Tcl_DString *valuePtr)
+ }
+ declare 139 generic {
+     int TclpLoadFile(Tcl_Interp *interp, CONST char *fileName, char *sym1, \
+ 	    char *sym2, Tcl_PackageInitProc **proc1Ptr, \
+ 	    Tcl_PackageInitProc **proc2Ptr, ClientData *clientDataPtr)
+ }
+ declare 140 generic {
+     int TclLooksLikeInt(CONST char *bytes, int length)
+ }
+ declare 141 generic {
+     char *TclpGetCwd(Tcl_Interp *interp, Tcl_DString *cwdPtr)
+ }
+ declare 145 generic {
+     struct AuxDataType *TclGetAuxDataType(char *typeName)
+ }
+ declare 146 generic {
+     TclHandle TclHandleCreate(VOID *ptr)
+ }
+ declare 147 generic {
+     void TclHandleFree(TclHandle handle)
+ }
+ declare 148 generic {
+     TclHandle TclHandlePreserve(TclHandle handle)
+ }
+ declare 149 generic {
+     void TclHandleRelease(TclHandle handle)
+ }
+ declare 150 generic {
+     int TclRegAbout(Tcl_Interp *interp, Tcl_RegExp re)
+ }
+ declare 151 generic {
+     void TclRegExpRangeUniChar(Tcl_RegExp re, int index, int *startPtr, \
+ 	    int *endPtr)
+ }
+ declare 152 generic {
+     void TclSetLibraryPath(Tcl_Obj *pathPtr)
+ }
+ declare 153 generic {
+     Tcl_Obj *TclGetLibraryPath(void)
+ }
+ declare 154 generic {
+     int TclTestChannelCmd(ClientData clientData,
+     Tcl_Interp *interp, int argc, char **argv)
+ }
+ declare 155 generic {
+     int TclTestChannelEventCmd(ClientData clientData, \
+ 	    Tcl_Interp *interp, int argc, char **argv)
+ }
+ declare 156 generic {
+     void TclRegError (Tcl_Interp *interp, char *msg, \
+ 	    int status)
+ }
+ declare 158 generic {
+     void TclSetStartupScriptFileName(char *filename)
+ }
+ declare 159 generic {
+     char *TclGetStartupScriptFileName(void)
+ }
+ 
+ ##############################################################################
+ 
+ # Define the platform specific internal Tcl interface. These functions are
+ # only available on the designated platform.
+ 
+ interface tclIntPlat
+ 
+ ########################
+ # Mac specific internals
+ 
+ declare 0 mac {
+     VOID * TclpSysAlloc(long size, int isBin)
+ }
+ declare 1 mac {
+     void TclpSysFree(VOID *ptr)
+ }
+ declare 2 mac {
+     VOID * TclpSysRealloc(VOID *cp, unsigned int size)
+ }
+ declare 3 mac {
+     void TclpExit(int status)
+ }
+ declare 4 mac {
+     int FSpGetDefaultDir(FSSpecPtr theSpec)
+ }
+ declare 5 mac {
+     int FSpSetDefaultDir(FSSpecPtr theSpec)
+ }
+ declare 6 mac {
+     OSErr FSpFindFolder(short vRefNum, OSType folderType, \
+ 	    Boolean createFolder, FSSpec *spec)
+ }
+ declare 7 mac {
+     void GetGlobalMouse(Point *mouse)
+ }
+ declare 8 mac {
+     pascal OSErr FSpGetDirectoryID(CONST FSSpec *spec, long *theDirID, \
+ 	    Boolean *isDirectory)
+ }
+ declare 9 mac {
+     pascal short FSpOpenResFileCompat(CONST FSSpec *spec, \
+ 	    SignedByte permission)
+ }
+ declare 10 mac {
+     pascal void FSpCreateResFileCompat(CONST FSSpec *spec, OSType creator, \
+ 	    OSType fileType, ScriptCode scriptTag)
+ }
+ declare 11 mac {
+     int FSpLocationFromPath(int length, CONST char *path, FSSpecPtr theSpec)
+ }
+ declare 12 mac {
+     OSErr FSpPathFromLocation(FSSpecPtr theSpec, int *length, \
+ 	    Handle *fullPath)
+ }
+ declare 13 mac {
+     void TclMacExitHandler(void)
+ }
+ declare 14 mac {
+     void TclMacInitExitToShell(int usePatch)
+ }
+ declare 15 mac {
+     OSErr TclMacInstallExitToShellPatch(ExitToShellProcPtr newProc)
+ }
+ declare 16 mac {
+     int TclMacOSErrorToPosixError(int error)
+ }
+ declare 17 mac {
+     void TclMacRemoveTimer(void *timerToken)
+ }
+ declare 18 mac {
+     void * TclMacStartTimer(long ms)
+ }
+ declare 19 mac {
+     int TclMacTimerExpired(void *timerToken)
+ }
+ declare 20 mac {
+     int TclMacRegisterResourceFork(short fileRef, Tcl_Obj *tokenPtr, \
+ 	    int insert)
+ }	
+ declare 21 mac {
+     short TclMacUnRegisterResourceFork(char *tokenPtr, Tcl_Obj *resultPtr)
+ }	
+ declare 22 mac {
+     int TclMacCreateEnv(void)
+ }
+ declare 23 mac {
+     FILE * TclMacFOpenHack(CONST char *path, CONST char *mode)
+ }
+ declare 25 mac {
+     int TclMacChmod(char *path, int mode)
+ }
+ 
+ ############################
+ # Windows specific internals
+ 
+ declare 0 win {
+     void TclWinConvertError(DWORD errCode)
+ }
+ declare 1 win {
+     void TclWinConvertWSAError(DWORD errCode)
+ }
+ declare 2 win {
+     struct servent * TclWinGetServByName(CONST char *nm, \
+ 	    CONST char *proto)
+ }
+ declare 4 win {
+     HINSTANCE TclWinGetTclInstance(void)
+ }
+ declare 8 win {
+     unsigned long TclpGetPid(Tcl_Pid pid)
+ }
+ declare 9 win {
+     int TclWinGetPlatformId(void)
+ }
+ declare 10 win {
+     int TclWinSynchSpawn(void *args, int type, void **trans, Tcl_Pid *pidPtr)
+ }
+ declare 11 win {
+     void TclGetAndDetachPids(Tcl_Interp *interp, Tcl_Channel chan)
+ }
+ declare 23 win {
+     char * TclpGetTZName(int isdst)
+ }
+ declare 24 win {
+     char * TclWinNoBackslash(char *path)
+ }
+ declare 26 win {
+     void TclWinSetInterfaces(int wide)
+ }
+ 
+ #########################
+ # Unix specific internals
+ 
+ # Pipe channel functions
+ 
+ declare 0 unix {
+     void TclGetAndDetachPids(Tcl_Interp *interp, Tcl_Channel chan)
+ }
+ declare 8 unix {
+     int TclUnixWaitForFile(int fd, int mask, int timeout)
+ }
*** src/tclIntDecls.h.orig	Sat Apr 29 21:02:00 2000
--- src/tclIntDecls.h	Sat Apr 29 21:02:00 2000
***************
*** 0 ****
--- 1,1191 ----
+ /*
+  * tclIntDecls.h --
+  *
+  *	This file contains the declarations for all unsupported
+  *	functions that are exported by the Tcl library.  These
+  *	interfaces are not guaranteed to remain the same between
+  *	versions.  Use at your own risk.
+  *
+  * Copyright (c) 1998-1999 by Scriptics Corporation.
+  *
+  * See the file "license.terms" for information on usage and redistribution
+  * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+  *
+  * RCS: @(#) $Id: tclIntDecls.h,v 1.19 1999/12/12 22:46:42 hobbs Exp $
+  */
+ 
+ #ifndef _TCLINTDECLS
+ #define _TCLINTDECLS
+ 
+ struct Var;
+ 
+ /*
+  * WARNING: This file is automatically generated by the tools/genStubs.tcl
+  * script.  Any modifications to the function declarations below should be made
+  * in the generic/tclInt.decls script.
+  */
+ 
+ /* !BEGIN!: Do not edit below this line. */
+ 
+ /*
+  * Exported function declarations:
+  */
+ 
+ /* 0 */
+ EXTERN int		TclAccess _ANSI_ARGS_((CONST char * path, int mode));
+ /* Slot 1 is reserved */
+ /* Slot 2 is reserved */
+ /* 3 */
+ EXTERN void		TclAllocateFreeObjects _ANSI_ARGS_((void));
+ /* Slot 4 is reserved */
+ #if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
+ /* 5 */
+ EXTERN int		TclCleanupChildren _ANSI_ARGS_((Tcl_Interp * interp, 
+ 				int numPids, Tcl_Pid * pidPtr, 
+ 				Tcl_Channel errorChan));
+ #endif /* UNIX */
+ #ifdef __WIN32__
+ /* 5 */
+ EXTERN int		TclCleanupChildren _ANSI_ARGS_((Tcl_Interp * interp, 
+ 				int numPids, Tcl_Pid * pidPtr, 
+ 				Tcl_Channel errorChan));
+ #endif /* __WIN32__ */
+ /* Slot 6 is reserved */
+ /* 7 */
+ EXTERN int		TclCopyAndCollapse _ANSI_ARGS_((int count, 
+ 				CONST char * src, char * dst));
+ /* 8 */
+ EXTERN int		TclCopyChannel _ANSI_ARGS_((Tcl_Interp * interp, 
+ 				Tcl_Channel inChan, Tcl_Channel outChan, 
+ 				int toRead, Tcl_Obj * cmdPtr));
+ /* Slot 9 is reserved */
+ /* Slot 10 is reserved */
+ /* 11 */
+ EXTERN void		TclDeleteCompiledLocalVars _ANSI_ARGS_((
+ 				Interp * iPtr, CallFrame * framePtr));
+ /* 12 */
+ EXTERN void		TclDeleteVars _ANSI_ARGS_((Interp * iPtr, 
+ 				Tcl_HashTable * tablePtr));
+ /* Slot 13 is reserved */
+ /* 14 */
+ EXTERN void		TclDumpMemoryInfo _ANSI_ARGS_((FILE * outFile));
+ /* 15 */
+ EXTERN void		TclFinalizeCondition _ANSI_ARGS_((
+ 				Tcl_Condition * condPtr));
+ /* 16 */
+ EXTERN void		TclExprFloatError _ANSI_ARGS_((Tcl_Interp * interp, 
+ 				double value));
+ /* 17 */
+ EXTERN int		TclFileAttrsCmd _ANSI_ARGS_((Tcl_Interp * interp, 
+ 				int objc, Tcl_Obj *CONST objv[]));
+ /* 18 */
+ EXTERN int		TclFileCopyCmd _ANSI_ARGS_((Tcl_Interp * interp, 
+ 				int argc, char ** argv));
+ /* 19 */
+ EXTERN int		TclFileDeleteCmd _ANSI_ARGS_((Tcl_Interp * interp, 
+ 				int argc, char ** argv));
+ /* 20 */
+ EXTERN int		TclFileMakeDirsCmd _ANSI_ARGS_((Tcl_Interp * interp, 
+ 				int argc, char ** argv));
+ /* 21 */
+ EXTERN int		TclFileRenameCmd _ANSI_ARGS_((Tcl_Interp * interp, 
+ 				int argc, char ** argv));
+ /* 22 */
+ EXTERN int		TclFindElement _ANSI_ARGS_((Tcl_Interp * interp, 
+ 				CONST char * listStr, int listLength, 
+ 				CONST char ** elementPtr, 
+ 				CONST char ** nextPtr, int * sizePtr, 
+ 				int * bracePtr));
+ /* 23 */
+ EXTERN Proc *		TclFindProc _ANSI_ARGS_((Interp * iPtr, 
+ 				char * procName));
+ /* 24 */
+ EXTERN int		TclFormatInt _ANSI_ARGS_((char * buffer, long n));
+ /* 25 */
+ EXTERN void		TclFreePackageInfo _ANSI_ARGS_((Interp * iPtr));
+ /* Slot 26 is reserved */
+ /* 27 */
+ EXTERN int		TclGetDate _ANSI_ARGS_((char * p, unsigned long now, 
+ 				long zone, unsigned long * timePtr));
+ /* 28 */
+ EXTERN Tcl_Channel	TclpGetDefaultStdChannel _ANSI_ARGS_((int type));
+ /* 29 */
+ EXTERN Tcl_Obj *	TclGetElementOfIndexedArray _ANSI_ARGS_((
+ 				Tcl_Interp * interp, int localIndex, 
+ 				Tcl_Obj * elemPtr, int leaveErrorMsg));
+ /* Slot 30 is reserved */
+ /* 31 */
+ EXTERN CONST char *	TclGetExtension _ANSI_ARGS_((CONST char * name));
+ /* 32 */
+ EXTERN int		TclGetFrame _ANSI_ARGS_((Tcl_Interp * interp, 
+ 				CONST char * str, CallFrame ** framePtrPtr));
+ /* Slot 33 is reserved */
+ /* 34 */
+ EXTERN int		TclGetIntForIndex _ANSI_ARGS_((Tcl_Interp * interp, 
+ 				Tcl_Obj * objPtr, int endValue, 
+ 				int * indexPtr));
+ /* 35 */
+ EXTERN Tcl_Obj *	TclGetIndexedScalar _ANSI_ARGS_((Tcl_Interp * interp, 
+ 				int localIndex, int leaveErrorMsg));
+ /* 36 */
+ EXTERN int		TclGetLong _ANSI_ARGS_((Tcl_Interp * interp, 
+ 				CONST char * str, long * longPtr));
+ /* 37 */
+ EXTERN int		TclGetLoadedPackages _ANSI_ARGS_((
+ 				Tcl_Interp * interp, CONST char * targetName));
+ /* Slot 38 is reserved */
+ /* Slot 39 is reserved */
+ /* 40 */
+ EXTERN int		TclGetOpenMode _ANSI_ARGS_((Tcl_Interp * interp, 
+ 				CONST char * str, int * seekFlagPtr));
+ /* 41 */
+ EXTERN Tcl_Command	TclGetOriginalCommand _ANSI_ARGS_((
+ 				Tcl_Command command));
+ /* 42 */
+ EXTERN char *		TclpGetUserHome _ANSI_ARGS_((CONST char * name, 
+ 				Tcl_DString * bufferPtr));
+ /* 43 */
+ EXTERN int		TclGlobalInvoke _ANSI_ARGS_((Tcl_Interp * interp, 
+ 				int argc, char ** argv, int flags));
+ /* 44 */
+ EXTERN int		TclGuessPackageName _ANSI_ARGS_((
+ 				CONST char * fileName, Tcl_DString * bufPtr));
+ /* 45 */
+ EXTERN int		TclHideUnsafeCommands _ANSI_ARGS_((
+ 				Tcl_Interp * interp));
+ /* 46 */
+ EXTERN int		TclInExit _ANSI_ARGS_((void));
+ /* 47 */
+ EXTERN Tcl_Obj *	TclIncrElementOfIndexedArray _ANSI_ARGS_((
+ 				Tcl_Interp * interp, int localIndex, 
+ 				Tcl_Obj * elemPtr, long incrAmount));
+ /* 48 */
+ EXTERN Tcl_Obj *	TclIncrIndexedScalar _ANSI_ARGS_((
+ 				Tcl_Interp * interp, int localIndex, 
+ 				long incrAmount));
+ /* 49 */
+ EXTERN Tcl_Obj *	TclIncrVar2 _ANSI_ARGS_((Tcl_Interp * interp, 
+ 				Tcl_Obj * part1Ptr, Tcl_Obj * part2Ptr, 
+ 				long incrAmount, int part1NotParsed));
+ /* Slot 50 is reserved */
+ /* 51 */
+ EXTERN int		TclInterpInit _ANSI_ARGS_((Tcl_Interp * interp));
+ /* 52 */
+ EXTERN int		TclInvoke _ANSI_ARGS_((Tcl_Interp * interp, int argc, 
+ 				char ** argv, int flags));
+ /* 53 */
+ EXTERN int		TclInvokeObjectCommand _ANSI_ARGS_((
+ 				ClientData clientData, Tcl_Interp * interp, 
+ 				int argc, char ** argv));
+ /* 54 */
+ EXTERN int		TclInvokeStringCommand _ANSI_ARGS_((
+ 				ClientData clientData, Tcl_Interp * interp, 
+ 				int objc, Tcl_Obj *CONST objv[]));
+ /* Slot 55 is reserved */
+ /* Slot 56 is reserved */
+ /* Slot 57 is reserved */
+ /* 58 */
+ EXTERN struct Var *	TclLookupVar _ANSI_ARGS_((Tcl_Interp * interp, 
+ 				char * part1, char * part2, int flags, 
+ 				CONST char * msg, int createPart1, 
+ 				int createPart2, struct Var ** arrayPtrPtr));
+ /* 59 */
+ EXTERN int		TclpMatchFiles _ANSI_ARGS_((Tcl_Interp * interp, 
+ 				char * separators, Tcl_DString * dirPtr, 
+ 				char * pattern, char * tail));
+ /* 60 */
+ EXTERN int		TclNeedSpace _ANSI_ARGS_((char * start, char * end));
+ /* 61 */
+ EXTERN Tcl_Obj *	TclNewProcBodyObj _ANSI_ARGS_((Proc * procPtr));
+ /* 62 */
+ EXTERN int		TclObjCommandComplete _ANSI_ARGS_((Tcl_Obj * cmdPtr));
+ /* 63 */
+ EXTERN int		TclObjInterpProc _ANSI_ARGS_((ClientData clientData, 
+ 				Tcl_Interp * interp, int objc, 
+ 				Tcl_Obj *CONST objv[]));
+ /* 64 */
+ EXTERN int		TclObjInvoke _ANSI_ARGS_((Tcl_Interp * interp, 
+ 				int objc, Tcl_Obj *CONST objv[], int flags));
+ /* 65 */
+ EXTERN int		TclObjInvokeGlobal _ANSI_ARGS_((Tcl_Interp * interp, 
+ 				int objc, Tcl_Obj *CONST objv[], int flags));
+ /* Slot 66 is reserved */
+ /* Slot 67 is reserved */
+ /* 68 */
+ EXTERN int		TclpAccess _ANSI_ARGS_((CONST char * path, int mode));
+ /* 69 */
+ EXTERN char *		TclpAlloc _ANSI_ARGS_((unsigned int size));
+ /* 70 */
+ EXTERN int		TclpCopyFile _ANSI_ARGS_((CONST char * source, 
+ 				CONST char * dest));
+ /* 71 */
+ EXTERN int		TclpCopyDirectory _ANSI_ARGS_((CONST char * source, 
+ 				CONST char * dest, Tcl_DString * errorPtr));
+ /* 72 */
+ EXTERN int		TclpCreateDirectory _ANSI_ARGS_((CONST char * path));
+ /* 73 */
+ EXTERN int		TclpDeleteFile _ANSI_ARGS_((CONST char * path));
+ /* 74 */
+ EXTERN void		TclpFree _ANSI_ARGS_((char * ptr));
+ /* 75 */
+ EXTERN unsigned long	TclpGetClicks _ANSI_ARGS_((void));
+ /* 76 */
+ EXTERN unsigned long	TclpGetSeconds _ANSI_ARGS_((void));
+ /* 77 */
+ EXTERN void		TclpGetTime _ANSI_ARGS_((Tcl_Time * time));
+ /* 78 */
+ EXTERN int		TclpGetTimeZone _ANSI_ARGS_((unsigned long time));
+ /* 79 */
+ EXTERN int		TclpListVolumes _ANSI_ARGS_((Tcl_Interp * interp));
+ /* 80 */
+ EXTERN Tcl_Channel	TclpOpenFileChannel _ANSI_ARGS_((Tcl_Interp * interp, 
+ 				CONST char * fileName, 
+ 				CONST char * modeString, int permissions));
+ /* 81 */
+ EXTERN char *		TclpRealloc _ANSI_ARGS_((char * ptr, 
+ 				unsigned int size));
+ /* 82 */
+ EXTERN int		TclpRemoveDirectory _ANSI_ARGS_((CONST char * path, 
+ 				int recursive, Tcl_DString * errorPtr));
+ /* 83 */
+ EXTERN int		TclpRenameFile _ANSI_ARGS_((CONST char * source, 
+ 				CONST char * dest));
+ /* Slot 84 is reserved */
+ /* Slot 85 is reserved */
+ /* Slot 86 is reserved */
+ /* Slot 87 is reserved */
+ /* 88 */
+ EXTERN char *		TclPrecTraceProc _ANSI_ARGS_((ClientData clientData, 
+ 				Tcl_Interp * interp, char * name1, 
+ 				char * name2, int flags));
+ /* 89 */
+ EXTERN int		TclPreventAliasLoop _ANSI_ARGS_((Tcl_Interp * interp, 
+ 				Tcl_Interp * cmdInterp, Tcl_Command cmd));
+ /* Slot 90 is reserved */
+ /* 91 */
+ EXTERN void		TclProcCleanupProc _ANSI_ARGS_((Proc * procPtr));
+ /* Slot 92 is reserved */
+ /* 93 */
+ EXTERN void		TclProcDeleteProc _ANSI_ARGS_((ClientData clientData));
+ /* 94 */
+ EXTERN int		TclProcInterpProc _ANSI_ARGS_((ClientData clientData, 
+ 				Tcl_Interp * interp, int argc, char ** argv));
+ /* 95 */
+ EXTERN int		TclpStat _ANSI_ARGS_((CONST char * path, 
+ 				struct stat * buf));
+ /* 96 */
+ EXTERN int		TclRenameCommand _ANSI_ARGS_((Tcl_Interp * interp, 
+ 				CONST char * oldName, CONST char * newName));
+ /* Slot 97 is reserved */
+ /* 98 */
+ EXTERN int		TclServiceIdle _ANSI_ARGS_((void));
+ /* 99 */
+ EXTERN Tcl_Obj *	TclSetElementOfIndexedArray _ANSI_ARGS_((
+ 				Tcl_Interp * interp, int localIndex, 
+ 				Tcl_Obj * elemPtr, Tcl_Obj * objPtr, 
+ 				int leaveErrorMsg));
+ /* 100 */
+ EXTERN Tcl_Obj *	TclSetIndexedScalar _ANSI_ARGS_((Tcl_Interp * interp, 
+ 				int localIndex, Tcl_Obj * objPtr, 
+ 				int leaveErrorMsg));
+ #if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
+ /* 101 */
+ EXTERN char *		TclSetPreInitScript _ANSI_ARGS_((char * string));
+ #endif /* UNIX */
+ #ifdef __WIN32__
+ /* 101 */
+ EXTERN char *		TclSetPreInitScript _ANSI_ARGS_((char * string));
+ #endif /* __WIN32__ */
+ /* 102 */
+ EXTERN void		TclSetupEnv _ANSI_ARGS_((Tcl_Interp * interp));
+ /* 103 */
+ EXTERN int		TclSockGetPort _ANSI_ARGS_((Tcl_Interp * interp, 
+ 				char * str, char * proto, int * portPtr));
+ #if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
+ /* 104 */
+ EXTERN int		TclSockMinimumBuffers _ANSI_ARGS_((int sock, 
+ 				int size));
+ #endif /* UNIX */
+ #ifdef __WIN32__
+ /* 104 */
+ EXTERN int		TclSockMinimumBuffers _ANSI_ARGS_((int sock, 
+ 				int size));
+ #endif /* __WIN32__ */
+ /* 105 */
+ EXTERN int		TclStat _ANSI_ARGS_((CONST char * path, 
+ 				struct stat * buf));
+ /* Slot 106 is reserved */
+ /* Slot 107 is reserved */
+ /* Slot 108 is reserved */
+ /* Slot 109 is reserved */
+ /* Slot 110 is reserved */
+ /* Slot 111 is reserved */
+ /* 112 */
+ EXTERN int		Tcl_AppendExportList _ANSI_ARGS_((
+ 				Tcl_Interp * interp, Tcl_Namespace * nsPtr, 
+ 				Tcl_Obj * objPtr));
+ /* 113 */
+ EXTERN Tcl_Namespace *	Tcl_CreateNamespace _ANSI_ARGS_((Tcl_Interp * interp, 
+ 				CONST char * name, ClientData clientData, 
+ 				Tcl_NamespaceDeleteProc * deleteProc));
+ /* 114 */
+ EXTERN void		Tcl_DeleteNamespace _ANSI_ARGS_((
+ 				Tcl_Namespace * nsPtr));
+ /* 115 */
+ EXTERN int		Tcl_Export _ANSI_ARGS_((Tcl_Interp * interp, 
+ 				Tcl_Namespace * nsPtr, CONST char * pattern, 
+ 				int resetListFirst));
+ /* 116 */
+ EXTERN Tcl_Command	Tcl_FindCommand _ANSI_ARGS_((Tcl_Interp * interp, 
+ 				CONST char * name, 
+ 				Tcl_Namespace * contextNsPtr, int flags));
+ /* 117 */
+ EXTERN Tcl_Namespace *	Tcl_FindNamespace _ANSI_ARGS_((Tcl_Interp * interp, 
+ 				CONST char * name, 
+ 				Tcl_Namespace * contextNsPtr, int flags));
+ /* Slot 118 is reserved */
+ /* Slot 119 is reserved */
+ /* 120 */
+ EXTERN Tcl_Var		Tcl_FindNamespaceVar _ANSI_ARGS_((
+ 				Tcl_Interp * interp, char * name, 
+ 				Tcl_Namespace * contextNsPtr, int flags));
+ /* 121 */
+ EXTERN int		Tcl_ForgetImport _ANSI_ARGS_((Tcl_Interp * interp, 
+ 				Tcl_Namespace * nsPtr, CONST char * pattern));
+ /* 122 */
+ EXTERN Tcl_Command	Tcl_GetCommandFromObj _ANSI_ARGS_((
+ 				Tcl_Interp * interp, Tcl_Obj * objPtr));
+ /* 123 */
+ EXTERN void		Tcl_GetCommandFullName _ANSI_ARGS_((
+ 				Tcl_Interp * interp, Tcl_Command command, 
+ 				Tcl_Obj * objPtr));
+ /* 124 */
+ EXTERN Tcl_Namespace *	Tcl_GetCurrentNamespace _ANSI_ARGS_((
+ 				Tcl_Interp * interp));
+ /* 125 */
+ EXTERN Tcl_Namespace *	Tcl_GetGlobalNamespace _ANSI_ARGS_((
+ 				Tcl_Interp * interp));
+ /* 126 */
+ EXTERN void		Tcl_GetVariableFullName _ANSI_ARGS_((
+ 				Tcl_Interp * interp, Tcl_Var variable, 
+ 				Tcl_Obj * objPtr));
+ /* 127 */
+ EXTERN int		Tcl_Import _ANSI_ARGS_((Tcl_Interp * interp, 
+ 				Tcl_Namespace * nsPtr, CONST char * pattern, 
+ 				int allowOverwrite));
+ /* 128 */
+ EXTERN void		Tcl_PopCallFrame _ANSI_ARGS_((Tcl_Interp* interp));
+ /* 129 */
+ EXTERN int		Tcl_PushCallFrame _ANSI_ARGS_((Tcl_Interp* interp, 
+ 				Tcl_CallFrame * framePtr, 
+ 				Tcl_Namespace * nsPtr, int isProcCallFrame));
+ /* Slot 130 is reserved */
+ /* Slot 131 is reserved */
+ /* Slot 132 is reserved */
+ /* Slot 133 is reserved */
+ /* Slot 134 is reserved */
+ /* 135 */
+ EXTERN int		TclpCheckStackSpace _ANSI_ARGS_((void));
+ /* Slot 136 is reserved */
+ /* 137 */
+ EXTERN int		TclpChdir _ANSI_ARGS_((CONST char * dirName));
+ /* 138 */
+ EXTERN char *		TclGetEnv _ANSI_ARGS_((CONST char * name, 
+ 				Tcl_DString * valuePtr));
+ /* 139 */
+ EXTERN int		TclpLoadFile _ANSI_ARGS_((Tcl_Interp * interp, 
+ 				CONST char * fileName, char * sym1, 
+ 				char * sym2, Tcl_PackageInitProc ** proc1Ptr, 
+ 				Tcl_PackageInitProc ** proc2Ptr, 
+ 				ClientData * clientDataPtr));
+ /* 140 */
+ EXTERN int		TclLooksLikeInt _ANSI_ARGS_((CONST char * bytes, 
+ 				int length));
+ /* 141 */
+ EXTERN char *		TclpGetCwd _ANSI_ARGS_((Tcl_Interp * interp, 
+ 				Tcl_DString * cwdPtr));
+ /* Slot 142 is reserved */
+ /* Slot 143 is reserved */
+ /* Slot 144 is reserved */
+ /* 145 */
+ EXTERN struct AuxDataType * TclGetAuxDataType _ANSI_ARGS_((char * typeName));
+ /* 146 */
+ EXTERN TclHandle	TclHandleCreate _ANSI_ARGS_((VOID * ptr));
+ /* 147 */
+ EXTERN void		TclHandleFree _ANSI_ARGS_((TclHandle handle));
+ /* 148 */
+ EXTERN TclHandle	TclHandlePreserve _ANSI_ARGS_((TclHandle handle));
+ /* 149 */
+ EXTERN void		TclHandleRelease _ANSI_ARGS_((TclHandle handle));
+ /* 150 */
+ EXTERN int		TclRegAbout _ANSI_ARGS_((Tcl_Interp * interp, 
+ 				Tcl_RegExp re));
+ /* 151 */
+ EXTERN void		TclRegExpRangeUniChar _ANSI_ARGS_((Tcl_RegExp re, 
+ 				int index, int * startPtr, int * endPtr));
+ /* 152 */
+ EXTERN void		TclSetLibraryPath _ANSI_ARGS_((Tcl_Obj * pathPtr));
+ /* 153 */
+ EXTERN Tcl_Obj *	TclGetLibraryPath _ANSI_ARGS_((void));
+ /* 154 */
+ EXTERN int		TclTestChannelCmd _ANSI_ARGS_((ClientData clientData, 
+ 				Tcl_Interp * interp, int argc, char ** argv));
+ /* 155 */
+ EXTERN int		TclTestChannelEventCmd _ANSI_ARGS_((
+ 				ClientData clientData, Tcl_Interp * interp, 
+ 				int argc, char ** argv));
+ /* 156 */
+ EXTERN void		TclRegError _ANSI_ARGS_((Tcl_Interp * interp, 
+ 				char * msg, int status));
+ /* Slot 157 is reserved */
+ /* 158 */
+ EXTERN void		TclSetStartupScriptFileName _ANSI_ARGS_((
+ 				char * filename));
+ /* 159 */
+ EXTERN char *		TclGetStartupScriptFileName _ANSI_ARGS_((void));
+ 
+ typedef struct TclIntStubs {
+     int magic;
+     struct TclIntStubHooks *hooks;
+ 
+     int (*tclAccess) _ANSI_ARGS_((CONST char * path, int mode)); /* 0 */
+     void *reserved1;
+     void *reserved2;
+     void (*tclAllocateFreeObjects) _ANSI_ARGS_((void)); /* 3 */
+     void *reserved4;
+ #if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
+     int (*tclCleanupChildren) _ANSI_ARGS_((Tcl_Interp * interp, int numPids, Tcl_Pid * pidPtr, Tcl_Channel errorChan)); /* 5 */
+ #endif /* UNIX */
+ #ifdef __WIN32__
+     int (*tclCleanupChildren) _ANSI_ARGS_((Tcl_Interp * interp, int numPids, Tcl_Pid * pidPtr, Tcl_Channel errorChan)); /* 5 */
+ #endif /* __WIN32__ */
+ #ifdef MAC_TCL
+     void *reserved5;
+ #endif /* MAC_TCL */
+     void *reserved6;
+     int (*tclCopyAndCollapse) _ANSI_ARGS_((int count, CONST char * src, char * dst)); /* 7 */
+     int (*tclCopyChannel) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Channel inChan, Tcl_Channel outChan, int toRead, Tcl_Obj * cmdPtr)); /* 8 */
+     void *reserved9;
+     void *reserved10;
+     void (*tclDeleteCompiledLocalVars) _ANSI_ARGS_((Interp * iPtr, CallFrame * framePtr)); /* 11 */
+     void (*tclDeleteVars) _ANSI_ARGS_((Interp * iPtr, Tcl_HashTable * tablePtr)); /* 12 */
+     void *reserved13;
+     void (*tclDumpMemoryInfo) _ANSI_ARGS_((FILE * outFile)); /* 14 */
+     void (*tclFinalizeCondition) _ANSI_ARGS_((Tcl_Condition * condPtr)); /* 15 */
+     void (*tclExprFloatError) _ANSI_ARGS_((Tcl_Interp * interp, double value)); /* 16 */
+     int (*tclFileAttrsCmd) _ANSI_ARGS_((Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 17 */
+     int (*tclFileCopyCmd) _ANSI_ARGS_((Tcl_Interp * interp, int argc, char ** argv)); /* 18 */
+     int (*tclFileDeleteCmd) _ANSI_ARGS_((Tcl_Interp * interp, int argc, char ** argv)); /* 19 */
+     int (*tclFileMakeDirsCmd) _ANSI_ARGS_((Tcl_Interp * interp, int argc, char ** argv)); /* 20 */
+     int (*tclFileRenameCmd) _ANSI_ARGS_((Tcl_Interp * interp, int argc, char ** argv)); /* 21 */
+     int (*tclFindElement) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * listStr, int listLength, CONST char ** elementPtr, CONST char ** nextPtr, int * sizePtr, int * bracePtr)); /* 22 */
+     Proc * (*tclFindProc) _ANSI_ARGS_((Interp * iPtr, char * procName)); /* 23 */
+     int (*tclFormatInt) _ANSI_ARGS_((char * buffer, long n)); /* 24 */
+     void (*tclFreePackageInfo) _ANSI_ARGS_((Interp * iPtr)); /* 25 */
+     void *reserved26;
+     int (*tclGetDate) _ANSI_ARGS_((char * p, unsigned long now, long zone, unsigned long * timePtr)); /* 27 */
+     Tcl_Channel (*tclpGetDefaultStdChannel) _ANSI_ARGS_((int type)); /* 28 */
+     Tcl_Obj * (*tclGetElementOfIndexedArray) _ANSI_ARGS_((Tcl_Interp * interp, int localIndex, Tcl_Obj * elemPtr, int leaveErrorMsg)); /* 29 */
+     void *reserved30;
+     CONST char * (*tclGetExtension) _ANSI_ARGS_((CONST char * name)); /* 31 */
+     int (*tclGetFrame) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * str, CallFrame ** framePtrPtr)); /* 32 */
+     void *reserved33;
+     int (*tclGetIntForIndex) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * objPtr, int endValue, int * indexPtr)); /* 34 */
+     Tcl_Obj * (*tclGetIndexedScalar) _ANSI_ARGS_((Tcl_Interp * interp, int localIndex, int leaveErrorMsg)); /* 35 */
+     int (*tclGetLong) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * str, long * longPtr)); /* 36 */
+     int (*tclGetLoadedPackages) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * targetName)); /* 37 */
+     void *reserved38;
+     void *reserved39;
+     int (*tclGetOpenMode) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * str, int * seekFlagPtr)); /* 40 */
+     Tcl_Command (*tclGetOriginalCommand) _ANSI_ARGS_((Tcl_Command command)); /* 41 */
+     char * (*tclpGetUserHome) _ANSI_ARGS_((CONST char * name, Tcl_DString * bufferPtr)); /* 42 */
+     int (*tclGlobalInvoke) _ANSI_ARGS_((Tcl_Interp * interp, int argc, char ** argv, int flags)); /* 43 */
+     int (*tclGuessPackageName) _ANSI_ARGS_((CONST char * fileName, Tcl_DString * bufPtr)); /* 44 */
+     int (*tclHideUnsafeCommands) _ANSI_ARGS_((Tcl_Interp * interp)); /* 45 */
+     int (*tclInExit) _ANSI_ARGS_((void)); /* 46 */
+     Tcl_Obj * (*tclIncrElementOfIndexedArray) _ANSI_ARGS_((Tcl_Interp * interp, int localIndex, Tcl_Obj * elemPtr, long incrAmount)); /* 47 */
+     Tcl_Obj * (*tclIncrIndexedScalar) _ANSI_ARGS_((Tcl_Interp * interp, int localIndex, long incrAmount)); /* 48 */
+     Tcl_Obj * (*tclIncrVar2) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * part1Ptr, Tcl_Obj * part2Ptr, long incrAmount, int part1NotParsed)); /* 49 */
+     void *reserved50;
+     int (*tclInterpInit) _ANSI_ARGS_((Tcl_Interp * interp)); /* 51 */
+     int (*tclInvoke) _ANSI_ARGS_((Tcl_Interp * interp, int argc, char ** argv, int flags)); /* 52 */
+     int (*tclInvokeObjectCommand) _ANSI_ARGS_((ClientData clientData, Tcl_Interp * interp, int argc, char ** argv)); /* 53 */
+     int (*tclInvokeStringCommand) _ANSI_ARGS_((ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 54 */
+     void *reserved55;
+     void *reserved56;
+     void *reserved57;
+     struct Var * (*tclLookupVar) _ANSI_ARGS_((Tcl_Interp * interp, char * part1, char * part2, int flags, CONST char * msg, int createPart1, int createPart2, struct Var ** arrayPtrPtr)); /* 58 */
+     int (*tclpMatchFiles) _ANSI_ARGS_((Tcl_Interp * interp, char * separators, Tcl_DString * dirPtr, char * pattern, char * tail)); /* 59 */
+     int (*tclNeedSpace) _ANSI_ARGS_((char * start, char * end)); /* 60 */
+     Tcl_Obj * (*tclNewProcBodyObj) _ANSI_ARGS_((Proc * procPtr)); /* 61 */
+     int (*tclObjCommandComplete) _ANSI_ARGS_((Tcl_Obj * cmdPtr)); /* 62 */
+     int (*tclObjInterpProc) _ANSI_ARGS_((ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 63 */
+     int (*tclObjInvoke) _ANSI_ARGS_((Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[], int flags)); /* 64 */
+     int (*tclObjInvokeGlobal) _ANSI_ARGS_((Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[], int flags)); /* 65 */
+     void *reserved66;
+     void *reserved67;
+     int (*tclpAccess) _ANSI_ARGS_((CONST char * path, int mode)); /* 68 */
+     char * (*tclpAlloc) _ANSI_ARGS_((unsigned int size)); /* 69 */
+     int (*tclpCopyFile) _ANSI_ARGS_((CONST char * source, CONST char * dest)); /* 70 */
+     int (*tclpCopyDirectory) _ANSI_ARGS_((CONST char * source, CONST char * dest, Tcl_DString * errorPtr)); /* 71 */
+     int (*tclpCreateDirectory) _ANSI_ARGS_((CONST char * path)); /* 72 */
+     int (*tclpDeleteFile) _ANSI_ARGS_((CONST char * path)); /* 73 */
+     void (*tclpFree) _ANSI_ARGS_((char * ptr)); /* 74 */
+     unsigned long (*tclpGetClicks) _ANSI_ARGS_((void)); /* 75 */
+     unsigned long (*tclpGetSeconds) _ANSI_ARGS_((void)); /* 76 */
+     void (*tclpGetTime) _ANSI_ARGS_((Tcl_Time * time)); /* 77 */
+     int (*tclpGetTimeZone) _ANSI_ARGS_((unsigned long time)); /* 78 */
+     int (*tclpListVolumes) _ANSI_ARGS_((Tcl_Interp * interp)); /* 79 */
+     Tcl_Channel (*tclpOpenFileChannel) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * fileName, CONST char * modeString, int permissions)); /* 80 */
+     char * (*tclpRealloc) _ANSI_ARGS_((char * ptr, unsigned int size)); /* 81 */
+     int (*tclpRemoveDirectory) _ANSI_ARGS_((CONST char * path, int recursive, Tcl_DString * errorPtr)); /* 82 */
+     int (*tclpRenameFile) _ANSI_ARGS_((CONST char * source, CONST char * dest)); /* 83 */
+     void *reserved84;
+     void *reserved85;
+     void *reserved86;
+     void *reserved87;
+     char * (*tclPrecTraceProc) _ANSI_ARGS_((ClientData clientData, Tcl_Interp * interp, char * name1, char * name2, int flags)); /* 88 */
+     int (*tclPreventAliasLoop) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Interp * cmdInterp, Tcl_Command cmd)); /* 89 */
+     void *reserved90;
+     void (*tclProcCleanupProc) _ANSI_ARGS_((Proc * procPtr)); /* 91 */
+     void *reserved92;
+     void (*tclProcDeleteProc) _ANSI_ARGS_((ClientData clientData)); /* 93 */
+     int (*tclProcInterpProc) _ANSI_ARGS_((ClientData clientData, Tcl_Interp * interp, int argc, char ** argv)); /* 94 */
+     int (*tclpStat) _ANSI_ARGS_((CONST char * path, struct stat * buf)); /* 95 */
+     int (*tclRenameCommand) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * oldName, CONST char * newName)); /* 96 */
+     void *reserved97;
+     int (*tclServiceIdle) _ANSI_ARGS_((void)); /* 98 */
+     Tcl_Obj * (*tclSetElementOfIndexedArray) _ANSI_ARGS_((Tcl_Interp * interp, int localIndex, Tcl_Obj * elemPtr, Tcl_Obj * objPtr, int leaveErrorMsg)); /* 99 */
+     Tcl_Obj * (*tclSetIndexedScalar) _ANSI_ARGS_((Tcl_Interp * interp, int localIndex, Tcl_Obj * objPtr, int leaveErrorMsg)); /* 100 */
+ #if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
+     char * (*tclSetPreInitScript) _ANSI_ARGS_((char * string)); /* 101 */
+ #endif /* UNIX */
+ #ifdef __WIN32__
+     char * (*tclSetPreInitScript) _ANSI_ARGS_((char * string)); /* 101 */
+ #endif /* __WIN32__ */
+ #ifdef MAC_TCL
+     void *reserved101;
+ #endif /* MAC_TCL */
+     void (*tclSetupEnv) _ANSI_ARGS_((Tcl_Interp * interp)); /* 102 */
+     int (*tclSockGetPort) _ANSI_ARGS_((Tcl_Interp * interp, char * str, char * proto, int * portPtr)); /* 103 */
+ #if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
+     int (*tclSockMinimumBuffers) _ANSI_ARGS_((int sock, int size)); /* 104 */
+ #endif /* UNIX */
+ #ifdef __WIN32__
+     int (*tclSockMinimumBuffers) _ANSI_ARGS_((int sock, int size)); /* 104 */
+ #endif /* __WIN32__ */
+ #ifdef MAC_TCL
+     void *reserved104;
+ #endif /* MAC_TCL */
+     int (*tclStat) _ANSI_ARGS_((CONST char * path, struct stat * buf)); /* 105 */
+     void *reserved106;
+     void *reserved107;
+     void *reserved108;
+     void *reserved109;
+     void *reserved110;
+     void *reserved111;
+     int (*tcl_AppendExportList) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Namespace * nsPtr, Tcl_Obj * objPtr)); /* 112 */
+     Tcl_Namespace * (*tcl_CreateNamespace) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * name, ClientData clientData, Tcl_NamespaceDeleteProc * deleteProc)); /* 113 */
+     void (*tcl_DeleteNamespace) _ANSI_ARGS_((Tcl_Namespace * nsPtr)); /* 114 */
+     int (*tcl_Export) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Namespace * nsPtr, CONST char * pattern, int resetListFirst)); /* 115 */
+     Tcl_Command (*tcl_FindCommand) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * name, Tcl_Namespace * contextNsPtr, int flags)); /* 116 */
+     Tcl_Namespace * (*tcl_FindNamespace) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * name, Tcl_Namespace * contextNsPtr, int flags)); /* 117 */
+     void *reserved118;
+     void *reserved119;
+     Tcl_Var (*tcl_FindNamespaceVar) _ANSI_ARGS_((Tcl_Interp * interp, char * name, Tcl_Namespace * contextNsPtr, int flags)); /* 120 */
+     int (*tcl_ForgetImport) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Namespace * nsPtr, CONST char * pattern)); /* 121 */
+     Tcl_Command (*tcl_GetCommandFromObj) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * objPtr)); /* 122 */
+     void (*tcl_GetCommandFullName) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Command command, Tcl_Obj * objPtr)); /* 123 */
+     Tcl_Namespace * (*tcl_GetCurrentNamespace) _ANSI_ARGS_((Tcl_Interp * interp)); /* 124 */
+     Tcl_Namespace * (*tcl_GetGlobalNamespace) _ANSI_ARGS_((Tcl_Interp * interp)); /* 125 */
+     void (*tcl_GetVariableFullName) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Var variable, Tcl_Obj * objPtr)); /* 126 */
+     int (*tcl_Import) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Namespace * nsPtr, CONST char * pattern, int allowOverwrite)); /* 127 */
+     void (*tcl_PopCallFrame) _ANSI_ARGS_((Tcl_Interp* interp)); /* 128 */
+     int (*tcl_PushCallFrame) _ANSI_ARGS_((Tcl_Interp* interp, Tcl_CallFrame * framePtr, Tcl_Namespace * nsPtr, int isProcCallFrame)); /* 129 */
+     void *reserved130;
+     void *reserved131;
+     void *reserved132;
+     void *reserved133;
+     void *reserved134;
+     int (*tclpCheckStackSpace) _ANSI_ARGS_((void)); /* 135 */
+     void *reserved136;
+     int (*tclpChdir) _ANSI_ARGS_((CONST char * dirName)); /* 137 */
+     char * (*tclGetEnv) _ANSI_ARGS_((CONST char * name, Tcl_DString * valuePtr)); /* 138 */
+     int (*tclpLoadFile) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * fileName, char * sym1, char * sym2, Tcl_PackageInitProc ** proc1Ptr, Tcl_PackageInitProc ** proc2Ptr, ClientData * clientDataPtr)); /* 139 */
+     int (*tclLooksLikeInt) _ANSI_ARGS_((CONST char * bytes, int length)); /* 140 */
+     char * (*tclpGetCwd) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_DString * cwdPtr)); /* 141 */
+     void *reserved142;
+     void *reserved143;
+     void *reserved144;
+     struct AuxDataType * (*tclGetAuxDataType) _ANSI_ARGS_((char * typeName)); /* 145 */
+     TclHandle (*tclHandleCreate) _ANSI_ARGS_((VOID * ptr)); /* 146 */
+     void (*tclHandleFree) _ANSI_ARGS_((TclHandle handle)); /* 147 */
+     TclHandle (*tclHandlePreserve) _ANSI_ARGS_((TclHandle handle)); /* 148 */
+     void (*tclHandleRelease) _ANSI_ARGS_((TclHandle handle)); /* 149 */
+     int (*tclRegAbout) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_RegExp re)); /* 150 */
+     void (*tclRegExpRangeUniChar) _ANSI_ARGS_((Tcl_RegExp re, int index, int * startPtr, int * endPtr)); /* 151 */
+     void (*tclSetLibraryPath) _ANSI_ARGS_((Tcl_Obj * pathPtr)); /* 152 */
+     Tcl_Obj * (*tclGetLibraryPath) _ANSI_ARGS_((void)); /* 153 */
+     int (*tclTestChannelCmd) _ANSI_ARGS_((ClientData clientData, Tcl_Interp * interp, int argc, char ** argv)); /* 154 */
+     int (*tclTestChannelEventCmd) _ANSI_ARGS_((ClientData clientData, Tcl_Interp * interp, int argc, char ** argv)); /* 155 */
+     void (*tclRegError) _ANSI_ARGS_((Tcl_Interp * interp, char * msg, int status)); /* 156 */
+     void *reserved157;
+     void (*tclSetStartupScriptFileName) _ANSI_ARGS_((char * filename)); /* 158 */
+     char * (*tclGetStartupScriptFileName) _ANSI_ARGS_((void)); /* 159 */
+ } TclIntStubs;
+ 
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+ extern TclIntStubs *tclIntStubsPtr;
+ #ifdef __cplusplus
+ }
+ #endif
+ 
+ #if defined(USE_TCL_STUBS) && !defined(USE_TCL_STUB_PROCS)
+ 
+ /*
+  * Inline function declarations:
+  */
+ 
+ #ifndef TclAccess
+ #define TclAccess \
+ 	(tclIntStubsPtr->tclAccess) /* 0 */
+ #endif
+ /* Slot 1 is reserved */
+ /* Slot 2 is reserved */
+ #ifndef TclAllocateFreeObjects
+ #define TclAllocateFreeObjects \
+ 	(tclIntStubsPtr->tclAllocateFreeObjects) /* 3 */
+ #endif
+ /* Slot 4 is reserved */
+ #if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
+ #ifndef TclCleanupChildren
+ #define TclCleanupChildren \
+ 	(tclIntStubsPtr->tclCleanupChildren) /* 5 */
+ #endif
+ #endif /* UNIX */
+ #ifdef __WIN32__
+ #ifndef TclCleanupChildren
+ #define TclCleanupChildren \
+ 	(tclIntStubsPtr->tclCleanupChildren) /* 5 */
+ #endif
+ #endif /* __WIN32__ */
+ /* Slot 6 is reserved */
+ #ifndef TclCopyAndCollapse
+ #define TclCopyAndCollapse \
+ 	(tclIntStubsPtr->tclCopyAndCollapse) /* 7 */
+ #endif
+ #ifndef TclCopyChannel
+ #define TclCopyChannel \
+ 	(tclIntStubsPtr->tclCopyChannel) /* 8 */
+ #endif
+ /* Slot 9 is reserved */
+ /* Slot 10 is reserved */
+ #ifndef TclDeleteCompiledLocalVars
+ #define TclDeleteCompiledLocalVars \
+ 	(tclIntStubsPtr->tclDeleteCompiledLocalVars) /* 11 */
+ #endif
+ #ifndef TclDeleteVars
+ #define TclDeleteVars \
+ 	(tclIntStubsPtr->tclDeleteVars) /* 12 */
+ #endif
+ /* Slot 13 is reserved */
+ #ifndef TclDumpMemoryInfo
+ #define TclDumpMemoryInfo \
+ 	(tclIntStubsPtr->tclDumpMemoryInfo) /* 14 */
+ #endif
+ #ifndef TclFinalizeCondition
+ #define TclFinalizeCondition \
+ 	(tclIntStubsPtr->tclFinalizeCondition) /* 15 */
+ #endif
+ #ifndef TclExprFloatError
+ #define TclExprFloatError \
+ 	(tclIntStubsPtr->tclExprFloatError) /* 16 */
+ #endif
+ #ifndef TclFileAttrsCmd
+ #define TclFileAttrsCmd \
+ 	(tclIntStubsPtr->tclFileAttrsCmd) /* 17 */
+ #endif
+ #ifndef TclFileCopyCmd
+ #define TclFileCopyCmd \
+ 	(tclIntStubsPtr->tclFileCopyCmd) /* 18 */
+ #endif
+ #ifndef TclFileDeleteCmd
+ #define TclFileDeleteCmd \
+ 	(tclIntStubsPtr->tclFileDeleteCmd) /* 19 */
+ #endif
+ #ifndef TclFileMakeDirsCmd
+ #define TclFileMakeDirsCmd \
+ 	(tclIntStubsPtr->tclFileMakeDirsCmd) /* 20 */
+ #endif
+ #ifndef TclFileRenameCmd
+ #define TclFileRenameCmd \
+ 	(tclIntStubsPtr->tclFileRenameCmd) /* 21 */
+ #endif
+ #ifndef TclFindElement
+ #define TclFindElement \
+ 	(tclIntStubsPtr->tclFindElement) /* 22 */
+ #endif
+ #ifndef TclFindProc
+ #define TclFindProc \
+ 	(tclIntStubsPtr->tclFindProc) /* 23 */
+ #endif
+ #ifndef TclFormatInt
+ #define TclFormatInt \
+ 	(tclIntStubsPtr->tclFormatInt) /* 24 */
+ #endif
+ #ifndef TclFreePackageInfo
+ #define TclFreePackageInfo \
+ 	(tclIntStubsPtr->tclFreePackageInfo) /* 25 */
+ #endif
+ /* Slot 26 is reserved */
+ #ifndef TclGetDate
+ #define TclGetDate \
+ 	(tclIntStubsPtr->tclGetDate) /* 27 */
+ #endif
+ #ifndef TclpGetDefaultStdChannel
+ #define TclpGetDefaultStdChannel \
+ 	(tclIntStubsPtr->tclpGetDefaultStdChannel) /* 28 */
+ #endif
+ #ifndef TclGetElementOfIndexedArray
+ #define TclGetElementOfIndexedArray \
+ 	(tclIntStubsPtr->tclGetElementOfIndexedArray) /* 29 */
+ #endif
+ /* Slot 30 is reserved */
+ #ifndef TclGetExtension
+ #define TclGetExtension \
+ 	(tclIntStubsPtr->tclGetExtension) /* 31 */
+ #endif
+ #ifndef TclGetFrame
+ #define TclGetFrame \
+ 	(tclIntStubsPtr->tclGetFrame) /* 32 */
+ #endif
+ /* Slot 33 is reserved */
+ #ifndef TclGetIntForIndex
+ #define TclGetIntForIndex \
+ 	(tclIntStubsPtr->tclGetIntForIndex) /* 34 */
+ #endif
+ #ifndef TclGetIndexedScalar
+ #define TclGetIndexedScalar \
+ 	(tclIntStubsPtr->tclGetIndexedScalar) /* 35 */
+ #endif
+ #ifndef TclGetLong
+ #define TclGetLong \
+ 	(tclIntStubsPtr->tclGetLong) /* 36 */
+ #endif
+ #ifndef TclGetLoadedPackages
+ #define TclGetLoadedPackages \
+ 	(tclIntStubsPtr->tclGetLoadedPackages) /* 37 */
+ #endif
+ /* Slot 38 is reserved */
+ /* Slot 39 is reserved */
+ #ifndef TclGetOpenMode
+ #define TclGetOpenMode \
+ 	(tclIntStubsPtr->tclGetOpenMode) /* 40 */
+ #endif
+ #ifndef TclGetOriginalCommand
+ #define TclGetOriginalCommand \
+ 	(tclIntStubsPtr->tclGetOriginalCommand) /* 41 */
+ #endif
+ #ifndef TclpGetUserHome
+ #define TclpGetUserHome \
+ 	(tclIntStubsPtr->tclpGetUserHome) /* 42 */
+ #endif
+ #ifndef TclGlobalInvoke
+ #define TclGlobalInvoke \
+ 	(tclIntStubsPtr->tclGlobalInvoke) /* 43 */
+ #endif
+ #ifndef TclGuessPackageName
+ #define TclGuessPackageName \
+ 	(tclIntStubsPtr->tclGuessPackageName) /* 44 */
+ #endif
+ #ifndef TclHideUnsafeCommands
+ #define TclHideUnsafeCommands \
+ 	(tclIntStubsPtr->tclHideUnsafeCommands) /* 45 */
+ #endif
+ #ifndef TclInExit
+ #define TclInExit \
+ 	(tclIntStubsPtr->tclInExit) /* 46 */
+ #endif
+ #ifndef TclIncrElementOfIndexedArray
+ #define TclIncrElementOfIndexedArray \
+ 	(tclIntStubsPtr->tclIncrElementOfIndexedArray) /* 47 */
+ #endif
+ #ifndef TclIncrIndexedScalar
+ #define TclIncrIndexedScalar \
+ 	(tclIntStubsPtr->tclIncrIndexedScalar) /* 48 */
+ #endif
+ #ifndef TclIncrVar2
+ #define TclIncrVar2 \
+ 	(tclIntStubsPtr->tclIncrVar2) /* 49 */
+ #endif
+ /* Slot 50 is reserved */
+ #ifndef TclInterpInit
+ #define TclInterpInit \
+ 	(tclIntStubsPtr->tclInterpInit) /* 51 */
+ #endif
+ #ifndef TclInvoke
+ #define TclInvoke \
+ 	(tclIntStubsPtr->tclInvoke) /* 52 */
+ #endif
+ #ifndef TclInvokeObjectCommand
+ #define TclInvokeObjectCommand \
+ 	(tclIntStubsPtr->tclInvokeObjectCommand) /* 53 */
+ #endif
+ #ifndef TclInvokeStringCommand
+ #define TclInvokeStringCommand \
+ 	(tclIntStubsPtr->tclInvokeStringCommand) /* 54 */
+ #endif
+ /* Slot 55 is reserved */
+ /* Slot 56 is reserved */
+ /* Slot 57 is reserved */
+ #ifndef TclLookupVar
+ #define TclLookupVar \
+ 	(tclIntStubsPtr->tclLookupVar) /* 58 */
+ #endif
+ #ifndef TclpMatchFiles
+ #define TclpMatchFiles \
+ 	(tclIntStubsPtr->tclpMatchFiles) /* 59 */
+ #endif
+ #ifndef TclNeedSpace
+ #define TclNeedSpace \
+ 	(tclIntStubsPtr->tclNeedSpace) /* 60 */
+ #endif
+ #ifndef TclNewProcBodyObj
+ #define TclNewProcBodyObj \
+ 	(tclIntStubsPtr->tclNewProcBodyObj) /* 61 */
+ #endif
+ #ifndef TclObjCommandComplete
+ #define TclObjCommandComplete \
+ 	(tclIntStubsPtr->tclObjCommandComplete) /* 62 */
+ #endif
+ #ifndef TclObjInterpProc
+ #define TclObjInterpProc \
+ 	(tclIntStubsPtr->tclObjInterpProc) /* 63 */
+ #endif
+ #ifndef TclObjInvoke
+ #define TclObjInvoke \
+ 	(tclIntStubsPtr->tclObjInvoke) /* 64 */
+ #endif
+ #ifndef TclObjInvokeGlobal
+ #define TclObjInvokeGlobal \
+ 	(tclIntStubsPtr->tclObjInvokeGlobal) /* 65 */
+ #endif
+ /* Slot 66 is reserved */
+ /* Slot 67 is reserved */
+ #ifndef TclpAccess
+ #define TclpAccess \
+ 	(tclIntStubsPtr->tclpAccess) /* 68 */
+ #endif
+ #ifndef TclpAlloc
+ #define TclpAlloc \
+ 	(tclIntStubsPtr->tclpAlloc) /* 69 */
+ #endif
+ #ifndef TclpCopyFile
+ #define TclpCopyFile \
+ 	(tclIntStubsPtr->tclpCopyFile) /* 70 */
+ #endif
+ #ifndef TclpCopyDirectory
+ #define TclpCopyDirectory \
+ 	(tclIntStubsPtr->tclpCopyDirectory) /* 71 */
+ #endif
+ #ifndef TclpCreateDirectory
+ #define TclpCreateDirectory \
+ 	(tclIntStubsPtr->tclpCreateDirectory) /* 72 */
+ #endif
+ #ifndef TclpDeleteFile
+ #define TclpDeleteFile \
+ 	(tclIntStubsPtr->tclpDeleteFile) /* 73 */
+ #endif
+ #ifndef TclpFree
+ #define TclpFree \
+ 	(tclIntStubsPtr->tclpFree) /* 74 */
+ #endif
+ #ifndef TclpGetClicks
+ #define TclpGetClicks \
+ 	(tclIntStubsPtr->tclpGetClicks) /* 75 */
+ #endif
+ #ifndef TclpGetSeconds
+ #define TclpGetSeconds \
+ 	(tclIntStubsPtr->tclpGetSeconds) /* 76 */
+ #endif
+ #ifndef TclpGetTime
+ #define TclpGetTime \
+ 	(tclIntStubsPtr->tclpGetTime) /* 77 */
+ #endif
+ #ifndef TclpGetTimeZone
+ #define TclpGetTimeZone \
+ 	(tclIntStubsPtr->tclpGetTimeZone) /* 78 */
+ #endif
+ #ifndef TclpListVolumes
+ #define TclpListVolumes \
+ 	(tclIntStubsPtr->tclpListVolumes) /* 79 */
+ #endif
+ #ifndef TclpOpenFileChannel
+ #define TclpOpenFileChannel \
+ 	(tclIntStubsPtr->tclpOpenFileChannel) /* 80 */
+ #endif
+ #ifndef TclpRealloc
+ #define TclpRealloc \
+ 	(tclIntStubsPtr->tclpRealloc) /* 81 */
+ #endif
+ #ifndef TclpRemoveDirectory
+ #define TclpRemoveDirectory \
+ 	(tclIntStubsPtr->tclpRemoveDirectory) /* 82 */
+ #endif
+ #ifndef TclpRenameFile
+ #define TclpRenameFile \
+ 	(tclIntStubsPtr->tclpRenameFile) /* 83 */
+ #endif
+ /* Slot 84 is reserved */
+ /* Slot 85 is reserved */
+ /* Slot 86 is reserved */
+ /* Slot 87 is reserved */
+ #ifndef TclPrecTraceProc
+ #define TclPrecTraceProc \
+ 	(tclIntStubsPtr->tclPrecTraceProc) /* 88 */
+ #endif
+ #ifndef TclPreventAliasLoop
+ #define TclPreventAliasLoop \
+ 	(tclIntStubsPtr->tclPreventAliasLoop) /* 89 */
+ #endif
+ /* Slot 90 is reserved */
+ #ifndef TclProcCleanupProc
+ #define TclProcCleanupProc \
+ 	(tclIntStubsPtr->tclProcCleanupProc) /* 91 */
+ #endif
+ /* Slot 92 is reserved */
+ #ifndef TclProcDeleteProc
+ #define TclProcDeleteProc \
+ 	(tclIntStubsPtr->tclProcDeleteProc) /* 93 */
+ #endif
+ #ifndef TclProcInterpProc
+ #define TclProcInterpProc \
+ 	(tclIntStubsPtr->tclProcInterpProc) /* 94 */
+ #endif
+ #ifndef TclpStat
+ #define TclpStat \
+ 	(tclIntStubsPtr->tclpStat) /* 95 */
+ #endif
+ #ifndef TclRenameCommand
+ #define TclRenameCommand \
+ 	(tclIntStubsPtr->tclRenameCommand) /* 96 */
+ #endif
+ /* Slot 97 is reserved */
+ #ifndef TclServiceIdle
+ #define TclServiceIdle \
+ 	(tclIntStubsPtr->tclServiceIdle) /* 98 */
+ #endif
+ #ifndef TclSetElementOfIndexedArray
+ #define TclSetElementOfIndexedArray \
+ 	(tclIntStubsPtr->tclSetElementOfIndexedArray) /* 99 */
+ #endif
+ #ifndef TclSetIndexedScalar
+ #define TclSetIndexedScalar \
+ 	(tclIntStubsPtr->tclSetIndexedScalar) /* 100 */
+ #endif
+ #if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
+ #ifndef TclSetPreInitScript
+ #define TclSetPreInitScript \
+ 	(tclIntStubsPtr->tclSetPreInitScript) /* 101 */
+ #endif
+ #endif /* UNIX */
+ #ifdef __WIN32__
+ #ifndef TclSetPreInitScript
+ #define TclSetPreInitScript \
+ 	(tclIntStubsPtr->tclSetPreInitScript) /* 101 */
+ #endif
+ #endif /* __WIN32__ */
+ #ifndef TclSetupEnv
+ #define TclSetupEnv \
+ 	(tclIntStubsPtr->tclSetupEnv) /* 102 */
+ #endif
+ #ifndef TclSockGetPort
+ #define TclSockGetPort \
+ 	(tclIntStubsPtr->tclSockGetPort) /* 103 */
+ #endif
+ #if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
+ #ifndef TclSockMinimumBuffers
+ #define TclSockMinimumBuffers \
+ 	(tclIntStubsPtr->tclSockMinimumBuffers) /* 104 */
+ #endif
+ #endif /* UNIX */
+ #ifdef __WIN32__
+ #ifndef TclSockMinimumBuffers
+ #define TclSockMinimumBuffers \
+ 	(tclIntStubsPtr->tclSockMinimumBuffers) /* 104 */
+ #endif
+ #endif /* __WIN32__ */
+ #ifndef TclStat
+ #define TclStat \
+ 	(tclIntStubsPtr->tclStat) /* 105 */
+ #endif
+ /* Slot 106 is reserved */
+ /* Slot 107 is reserved */
+ /* Slot 108 is reserved */
+ /* Slot 109 is reserved */
+ /* Slot 110 is reserved */
+ /* Slot 111 is reserved */
+ #ifndef Tcl_AppendExportList
+ #define Tcl_AppendExportList \
+ 	(tclIntStubsPtr->tcl_AppendExportList) /* 112 */
+ #endif
+ #ifndef Tcl_CreateNamespace
+ #define Tcl_CreateNamespace \
+ 	(tclIntStubsPtr->tcl_CreateNamespace) /* 113 */
+ #endif
+ #ifndef Tcl_DeleteNamespace
+ #define Tcl_DeleteNamespace \
+ 	(tclIntStubsPtr->tcl_DeleteNamespace) /* 114 */
+ #endif
+ #ifndef Tcl_Export
+ #define Tcl_Export \
+ 	(tclIntStubsPtr->tcl_Export) /* 115 */
+ #endif
+ #ifndef Tcl_FindCommand
+ #define Tcl_FindCommand \
+ 	(tclIntStubsPtr->tcl_FindCommand) /* 116 */
+ #endif
+ #ifndef Tcl_FindNamespace
+ #define Tcl_FindNamespace \
+ 	(tclIntStubsPtr->tcl_FindNamespace) /* 117 */
+ #endif
+ /* Slot 118 is reserved */
+ /* Slot 119 is reserved */
+ #ifndef Tcl_FindNamespaceVar
+ #define Tcl_FindNamespaceVar \
+ 	(tclIntStubsPtr->tcl_FindNamespaceVar) /* 120 */
+ #endif
+ #ifndef Tcl_ForgetImport
+ #define Tcl_ForgetImport \
+ 	(tclIntStubsPtr->tcl_ForgetImport) /* 121 */
+ #endif
+ #ifndef Tcl_GetCommandFromObj
+ #define Tcl_GetCommandFromObj \
+ 	(tclIntStubsPtr->tcl_GetCommandFromObj) /* 122 */
+ #endif
+ #ifndef Tcl_GetCommandFullName
+ #define Tcl_GetCommandFullName \
+ 	(tclIntStubsPtr->tcl_GetCommandFullName) /* 123 */
+ #endif
+ #ifndef Tcl_GetCurrentNamespace
+ #define Tcl_GetCurrentNamespace \
+ 	(tclIntStubsPtr->tcl_GetCurrentNamespace) /* 124 */
+ #endif
+ #ifndef Tcl_GetGlobalNamespace
+ #define Tcl_GetGlobalNamespace \
+ 	(tclIntStubsPtr->tcl_GetGlobalNamespace) /* 125 */
+ #endif
+ #ifndef Tcl_GetVariableFullName
+ #define Tcl_GetVariableFullName \
+ 	(tclIntStubsPtr->tcl_GetVariableFullName) /* 126 */
+ #endif
+ #ifndef Tcl_Import
+ #define Tcl_Import \
+ 	(tclIntStubsPtr->tcl_Import) /* 127 */
+ #endif
+ #ifndef Tcl_PopCallFrame
+ #define Tcl_PopCallFrame \
+ 	(tclIntStubsPtr->tcl_PopCallFrame) /* 128 */
+ #endif
+ #ifndef Tcl_PushCallFrame
+ #define Tcl_PushCallFrame \
+ 	(tclIntStubsPtr->tcl_PushCallFrame) /* 129 */
+ #endif
+ /* Slot 130 is reserved */
+ /* Slot 131 is reserved */
+ /* Slot 132 is reserved */
+ /* Slot 133 is reserved */
+ /* Slot 134 is reserved */
+ #ifndef TclpCheckStackSpace
+ #define TclpCheckStackSpace \
+ 	(tclIntStubsPtr->tclpCheckStackSpace) /* 135 */
+ #endif
+ /* Slot 136 is reserved */
+ #ifndef TclpChdir
+ #define TclpChdir \
+ 	(tclIntStubsPtr->tclpChdir) /* 137 */
+ #endif
+ #ifndef TclGetEnv
+ #define TclGetEnv \
+ 	(tclIntStubsPtr->tclGetEnv) /* 138 */
+ #endif
+ #ifndef TclpLoadFile
+ #define TclpLoadFile \
+ 	(tclIntStubsPtr->tclpLoadFile) /* 139 */
+ #endif
+ #ifndef TclLooksLikeInt
+ #define TclLooksLikeInt \
+ 	(tclIntStubsPtr->tclLooksLikeInt) /* 140 */
+ #endif
+ #ifndef TclpGetCwd
+ #define TclpGetCwd \
+ 	(tclIntStubsPtr->tclpGetCwd) /* 141 */
+ #endif
+ /* Slot 142 is reserved */
+ /* Slot 143 is reserved */
+ /* Slot 144 is reserved */
+ #ifndef TclGetAuxDataType
+ #define TclGetAuxDataType \
+ 	(tclIntStubsPtr->tclGetAuxDataType) /* 145 */
+ #endif
+ #ifndef TclHandleCreate
+ #define TclHandleCreate \
+ 	(tclIntStubsPtr->tclHandleCreate) /* 146 */
+ #endif
+ #ifndef TclHandleFree
+ #define TclHandleFree \
+ 	(tclIntStubsPtr->tclHandleFree) /* 147 */
+ #endif
+ #ifndef TclHandlePreserve
+ #define TclHandlePreserve \
+ 	(tclIntStubsPtr->tclHandlePreserve) /* 148 */
+ #endif
+ #ifndef TclHandleRelease
+ #define TclHandleRelease \
+ 	(tclIntStubsPtr->tclHandleRelease) /* 149 */
+ #endif
+ #ifndef TclRegAbout
+ #define TclRegAbout \
+ 	(tclIntStubsPtr->tclRegAbout) /* 150 */
+ #endif
+ #ifndef TclRegExpRangeUniChar
+ #define TclRegExpRangeUniChar \
+ 	(tclIntStubsPtr->tclRegExpRangeUniChar) /* 151 */
+ #endif
+ #ifndef TclSetLibraryPath
+ #define TclSetLibraryPath \
+ 	(tclIntStubsPtr->tclSetLibraryPath) /* 152 */
+ #endif
+ #ifndef TclGetLibraryPath
+ #define TclGetLibraryPath \
+ 	(tclIntStubsPtr->tclGetLibraryPath) /* 153 */
+ #endif
+ #ifndef TclTestChannelCmd
+ #define TclTestChannelCmd \
+ 	(tclIntStubsPtr->tclTestChannelCmd) /* 154 */
+ #endif
+ #ifndef TclTestChannelEventCmd
+ #define TclTestChannelEventCmd \
+ 	(tclIntStubsPtr->tclTestChannelEventCmd) /* 155 */
+ #endif
+ #ifndef TclRegError
+ #define TclRegError \
+ 	(tclIntStubsPtr->tclRegError) /* 156 */
+ #endif
+ /* Slot 157 is reserved */
+ #ifndef TclSetStartupScriptFileName
+ #define TclSetStartupScriptFileName \
+ 	(tclIntStubsPtr->tclSetStartupScriptFileName) /* 158 */
+ #endif
+ #ifndef TclGetStartupScriptFileName
+ #define TclGetStartupScriptFileName \
+ 	(tclIntStubsPtr->tclGetStartupScriptFileName) /* 159 */
+ #endif
+ 
+ #endif /* defined(USE_TCL_STUBS) && !defined(USE_TCL_STUB_PROCS) */
+ 
+ /* !END!: Do not edit above this line. */
+ 
+ #endif /* _TCLINTDECLS */
*** src/tclIntPlatDecls.h.orig	Sat Apr 29 21:02:00 2000
--- src/tclIntPlatDecls.h	Sat Apr 29 21:02:00 2000
***************
*** 0 ****
--- 1,431 ----
+ /*
+  * tclIntPlatDecls.h --
+  *
+  *	This file contains the declarations for all platform dependent
+  *	unsupported functions that are exported by the Tcl library.  These
+  *	interfaces are not guaranteed to remain the same between
+  *	versions.  Use at your own risk.
+  *
+  * Copyright (c) 1998-1999 by Scriptics Corporation.
+  * All rights reserved.
+  *
+  * RCS: @(#) $Id: tclIntPlatDecls.h,v 1.7 1999/08/01 20:44:11 hobbs Exp $
+  */
+ 
+ #ifndef _TCLINTPLATDECLS
+ #define _TCLINTPLATDECLS
+ 
+ /*
+  * WARNING: This file is automatically generated by the tools/genStubs.tcl
+  * script.  Any modifications to the function declarations below should be made
+  * in the generic/tclInt.decls script.
+  */
+ 
+ /* !BEGIN!: Do not edit below this line. */
+ 
+ /*
+  * Exported function declarations:
+  */
+ 
+ #if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
+ /* 0 */
+ EXTERN void		TclGetAndDetachPids _ANSI_ARGS_((Tcl_Interp * interp, 
+ 				Tcl_Channel chan));
+ /* Slot 1 is reserved */
+ /* Slot 2 is reserved */
+ /* Slot 3 is reserved */
+ /* Slot 4 is reserved */
+ /* Slot 5 is reserved */
+ /* Slot 6 is reserved */
+ /* Slot 7 is reserved */
+ /* 8 */
+ EXTERN int		TclUnixWaitForFile _ANSI_ARGS_((int fd, int mask, 
+ 				int timeout));
+ #endif /* UNIX */
+ #ifdef __WIN32__
+ /* 0 */
+ EXTERN void		TclWinConvertError _ANSI_ARGS_((DWORD errCode));
+ /* 1 */
+ EXTERN void		TclWinConvertWSAError _ANSI_ARGS_((DWORD errCode));
+ /* 2 */
+ EXTERN struct servent *	 TclWinGetServByName _ANSI_ARGS_((CONST char * nm, 
+ 				CONST char * proto));
+ /* Slot 3 is reserved */
+ /* 4 */
+ EXTERN HINSTANCE	TclWinGetTclInstance _ANSI_ARGS_((void));
+ /* Slot 5 is reserved */
+ /* Slot 6 is reserved */
+ /* Slot 7 is reserved */
+ /* 8 */
+ EXTERN unsigned long	TclpGetPid _ANSI_ARGS_((Tcl_Pid pid));
+ /* 9 */
+ EXTERN int		TclWinGetPlatformId _ANSI_ARGS_((void));
+ /* 10 */
+ EXTERN int		TclWinSynchSpawn _ANSI_ARGS_((void * args, int type, 
+ 				void ** trans, Tcl_Pid * pidPtr));
+ /* 11 */
+ EXTERN void		TclGetAndDetachPids _ANSI_ARGS_((Tcl_Interp * interp, 
+ 				Tcl_Channel chan));
+ /* Slot 12 is reserved */
+ /* Slot 13 is reserved */
+ /* Slot 14 is reserved */
+ /* Slot 15 is reserved */
+ /* Slot 16 is reserved */
+ /* Slot 17 is reserved */
+ /* Slot 18 is reserved */
+ /* Slot 19 is reserved */
+ /* Slot 20 is reserved */
+ /* Slot 21 is reserved */
+ /* Slot 22 is reserved */
+ /* 23 */
+ EXTERN char *		TclpGetTZName _ANSI_ARGS_((int isdst));
+ /* 24 */
+ EXTERN char *		TclWinNoBackslash _ANSI_ARGS_((char * path));
+ /* Slot 25 is reserved */
+ /* 26 */
+ EXTERN void		TclWinSetInterfaces _ANSI_ARGS_((int wide));
+ #endif /* __WIN32__ */
+ #ifdef MAC_TCL
+ /* 0 */
+ EXTERN VOID *		TclpSysAlloc _ANSI_ARGS_((long size, int isBin));
+ /* 1 */
+ EXTERN void		TclpSysFree _ANSI_ARGS_((VOID * ptr));
+ /* 2 */
+ EXTERN VOID *		TclpSysRealloc _ANSI_ARGS_((VOID * cp, 
+ 				unsigned int size));
+ /* 3 */
+ EXTERN void		TclpExit _ANSI_ARGS_((int status));
+ /* 4 */
+ EXTERN int		FSpGetDefaultDir _ANSI_ARGS_((FSSpecPtr theSpec));
+ /* 5 */
+ EXTERN int		FSpSetDefaultDir _ANSI_ARGS_((FSSpecPtr theSpec));
+ /* 6 */
+ EXTERN OSErr		FSpFindFolder _ANSI_ARGS_((short vRefNum, 
+ 				OSType folderType, Boolean createFolder, 
+ 				FSSpec * spec));
+ /* 7 */
+ EXTERN void		GetGlobalMouse _ANSI_ARGS_((Point * mouse));
+ /* 8 */
+ EXTERN pascal OSErr	FSpGetDirectoryID _ANSI_ARGS_((CONST FSSpec * spec, 
+ 				long * theDirID, Boolean * isDirectory));
+ /* 9 */
+ EXTERN pascal short	FSpOpenResFileCompat _ANSI_ARGS_((
+ 				CONST FSSpec * spec, SignedByte permission));
+ /* 10 */
+ EXTERN pascal void	FSpCreateResFileCompat _ANSI_ARGS_((
+ 				CONST FSSpec * spec, OSType creator, 
+ 				OSType fileType, ScriptCode scriptTag));
+ /* 11 */
+ EXTERN int		FSpLocationFromPath _ANSI_ARGS_((int length, 
+ 				CONST char * path, FSSpecPtr theSpec));
+ /* 12 */
+ EXTERN OSErr		FSpPathFromLocation _ANSI_ARGS_((FSSpecPtr theSpec, 
+ 				int * length, Handle * fullPath));
+ /* 13 */
+ EXTERN void		TclMacExitHandler _ANSI_ARGS_((void));
+ /* 14 */
+ EXTERN void		TclMacInitExitToShell _ANSI_ARGS_((int usePatch));
+ /* 15 */
+ EXTERN OSErr		TclMacInstallExitToShellPatch _ANSI_ARGS_((
+ 				ExitToShellProcPtr newProc));
+ /* 16 */
+ EXTERN int		TclMacOSErrorToPosixError _ANSI_ARGS_((int error));
+ /* 17 */
+ EXTERN void		TclMacRemoveTimer _ANSI_ARGS_((void * timerToken));
+ /* 18 */
+ EXTERN void *		TclMacStartTimer _ANSI_ARGS_((long ms));
+ /* 19 */
+ EXTERN int		TclMacTimerExpired _ANSI_ARGS_((void * timerToken));
+ /* 20 */
+ EXTERN int		TclMacRegisterResourceFork _ANSI_ARGS_((
+ 				short fileRef, Tcl_Obj * tokenPtr, 
+ 				int insert));
+ /* 21 */
+ EXTERN short		TclMacUnRegisterResourceFork _ANSI_ARGS_((
+ 				char * tokenPtr, Tcl_Obj * resultPtr));
+ /* 22 */
+ EXTERN int		TclMacCreateEnv _ANSI_ARGS_((void));
+ /* 23 */
+ EXTERN FILE *		TclMacFOpenHack _ANSI_ARGS_((CONST char * path, 
+ 				CONST char * mode));
+ /* Slot 24 is reserved */
+ /* 25 */
+ EXTERN int		TclMacChmod _ANSI_ARGS_((char * path, int mode));
+ #endif /* MAC_TCL */
+ 
+ typedef struct TclIntPlatStubs {
+     int magic;
+     struct TclIntPlatStubHooks *hooks;
+ 
+ #if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
+     void (*tclGetAndDetachPids) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Channel chan)); /* 0 */
+     void *reserved1;
+     void *reserved2;
+     void *reserved3;
+     void *reserved4;
+     void *reserved5;
+     void *reserved6;
+     void *reserved7;
+     int (*tclUnixWaitForFile) _ANSI_ARGS_((int fd, int mask, int timeout)); /* 8 */
+ #endif /* UNIX */
+ #ifdef __WIN32__
+     void (*tclWinConvertError) _ANSI_ARGS_((DWORD errCode)); /* 0 */
+     void (*tclWinConvertWSAError) _ANSI_ARGS_((DWORD errCode)); /* 1 */
+     struct servent * (*tclWinGetServByName) _ANSI_ARGS_((CONST char * nm, CONST char * proto)); /* 2 */
+     void *reserved3;
+     HINSTANCE (*tclWinGetTclInstance) _ANSI_ARGS_((void)); /* 4 */
+     void *reserved5;
+     void *reserved6;
+     void *reserved7;
+     unsigned long (*tclpGetPid) _ANSI_ARGS_((Tcl_Pid pid)); /* 8 */
+     int (*tclWinGetPlatformId) _ANSI_ARGS_((void)); /* 9 */
+     int (*tclWinSynchSpawn) _ANSI_ARGS_((void * args, int type, void ** trans, Tcl_Pid * pidPtr)); /* 10 */
+     void (*tclGetAndDetachPids) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Channel chan)); /* 11 */
+     void *reserved12;
+     void *reserved13;
+     void *reserved14;
+     void *reserved15;
+     void *reserved16;
+     void *reserved17;
+     void *reserved18;
+     void *reserved19;
+     void *reserved20;
+     void *reserved21;
+     void *reserved22;
+     char * (*tclpGetTZName) _ANSI_ARGS_((int isdst)); /* 23 */
+     char * (*tclWinNoBackslash) _ANSI_ARGS_((char * path)); /* 24 */
+     void *reserved25;
+     void (*tclWinSetInterfaces) _ANSI_ARGS_((int wide)); /* 26 */
+ #endif /* __WIN32__ */
+ #ifdef MAC_TCL
+     VOID * (*tclpSysAlloc) _ANSI_ARGS_((long size, int isBin)); /* 0 */
+     void (*tclpSysFree) _ANSI_ARGS_((VOID * ptr)); /* 1 */
+     VOID * (*tclpSysRealloc) _ANSI_ARGS_((VOID * cp, unsigned int size)); /* 2 */
+     void (*tclpExit) _ANSI_ARGS_((int status)); /* 3 */
+     int (*fSpGetDefaultDir) _ANSI_ARGS_((FSSpecPtr theSpec)); /* 4 */
+     int (*fSpSetDefaultDir) _ANSI_ARGS_((FSSpecPtr theSpec)); /* 5 */
+     OSErr (*fSpFindFolder) _ANSI_ARGS_((short vRefNum, OSType folderType, Boolean createFolder, FSSpec * spec)); /* 6 */
+     void (*getGlobalMouse) _ANSI_ARGS_((Point * mouse)); /* 7 */
+     pascal OSErr (*fSpGetDirectoryID) _ANSI_ARGS_((CONST FSSpec * spec, long * theDirID, Boolean * isDirectory)); /* 8 */
+     pascal short (*fSpOpenResFileCompat) _ANSI_ARGS_((CONST FSSpec * spec, SignedByte permission)); /* 9 */
+     pascal void (*fSpCreateResFileCompat) _ANSI_ARGS_((CONST FSSpec * spec, OSType creator, OSType fileType, ScriptCode scriptTag)); /* 10 */
+     int (*fSpLocationFromPath) _ANSI_ARGS_((int length, CONST char * path, FSSpecPtr theSpec)); /* 11 */
+     OSErr (*fSpPathFromLocation) _ANSI_ARGS_((FSSpecPtr theSpec, int * length, Handle * fullPath)); /* 12 */
+     void (*tclMacExitHandler) _ANSI_ARGS_((void)); /* 13 */
+     void (*tclMacInitExitToShell) _ANSI_ARGS_((int usePatch)); /* 14 */
+     OSErr (*tclMacInstallExitToShellPatch) _ANSI_ARGS_((ExitToShellProcPtr newProc)); /* 15 */
+     int (*tclMacOSErrorToPosixError) _ANSI_ARGS_((int error)); /* 16 */
+     void (*tclMacRemoveTimer) _ANSI_ARGS_((void * timerToken)); /* 17 */
+     void * (*tclMacStartTimer) _ANSI_ARGS_((long ms)); /* 18 */
+     int (*tclMacTimerExpired) _ANSI_ARGS_((void * timerToken)); /* 19 */
+     int (*tclMacRegisterResourceFork) _ANSI_ARGS_((short fileRef, Tcl_Obj * tokenPtr, int insert)); /* 20 */
+     short (*tclMacUnRegisterResourceFork) _ANSI_ARGS_((char * tokenPtr, Tcl_Obj * resultPtr)); /* 21 */
+     int (*tclMacCreateEnv) _ANSI_ARGS_((void)); /* 22 */
+     FILE * (*tclMacFOpenHack) _ANSI_ARGS_((CONST char * path, CONST char * mode)); /* 23 */
+     void *reserved24;
+     int (*tclMacChmod) _ANSI_ARGS_((char * path, int mode)); /* 25 */
+ #endif /* MAC_TCL */
+ } TclIntPlatStubs;
+ 
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+ extern TclIntPlatStubs *tclIntPlatStubsPtr;
+ #ifdef __cplusplus
+ }
+ #endif
+ 
+ #if defined(USE_TCL_STUBS) && !defined(USE_TCL_STUB_PROCS)
+ 
+ /*
+  * Inline function declarations:
+  */
+ 
+ #if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
+ #ifndef TclGetAndDetachPids
+ #define TclGetAndDetachPids \
+ 	(tclIntPlatStubsPtr->tclGetAndDetachPids) /* 0 */
+ #endif
+ /* Slot 1 is reserved */
+ /* Slot 2 is reserved */
+ /* Slot 3 is reserved */
+ /* Slot 4 is reserved */
+ /* Slot 5 is reserved */
+ /* Slot 6 is reserved */
+ /* Slot 7 is reserved */
+ #ifndef TclUnixWaitForFile
+ #define TclUnixWaitForFile \
+ 	(tclIntPlatStubsPtr->tclUnixWaitForFile) /* 8 */
+ #endif
+ #endif /* UNIX */
+ #ifdef __WIN32__
+ #ifndef TclWinConvertError
+ #define TclWinConvertError \
+ 	(tclIntPlatStubsPtr->tclWinConvertError) /* 0 */
+ #endif
+ #ifndef TclWinConvertWSAError
+ #define TclWinConvertWSAError \
+ 	(tclIntPlatStubsPtr->tclWinConvertWSAError) /* 1 */
+ #endif
+ #ifndef TclWinGetServByName
+ #define TclWinGetServByName \
+ 	(tclIntPlatStubsPtr->tclWinGetServByName) /* 2 */
+ #endif
+ /* Slot 3 is reserved */
+ #ifndef TclWinGetTclInstance
+ #define TclWinGetTclInstance \
+ 	(tclIntPlatStubsPtr->tclWinGetTclInstance) /* 4 */
+ #endif
+ /* Slot 5 is reserved */
+ /* Slot 6 is reserved */
+ /* Slot 7 is reserved */
+ #ifndef TclpGetPid
+ #define TclpGetPid \
+ 	(tclIntPlatStubsPtr->tclpGetPid) /* 8 */
+ #endif
+ #ifndef TclWinGetPlatformId
+ #define TclWinGetPlatformId \
+ 	(tclIntPlatStubsPtr->tclWinGetPlatformId) /* 9 */
+ #endif
+ #ifndef TclWinSynchSpawn
+ #define TclWinSynchSpawn \
+ 	(tclIntPlatStubsPtr->tclWinSynchSpawn) /* 10 */
+ #endif
+ #ifndef TclGetAndDetachPids
+ #define TclGetAndDetachPids \
+ 	(tclIntPlatStubsPtr->tclGetAndDetachPids) /* 11 */
+ #endif
+ /* Slot 12 is reserved */
+ /* Slot 13 is reserved */
+ /* Slot 14 is reserved */
+ /* Slot 15 is reserved */
+ /* Slot 16 is reserved */
+ /* Slot 17 is reserved */
+ /* Slot 18 is reserved */
+ /* Slot 19 is reserved */
+ /* Slot 20 is reserved */
+ /* Slot 21 is reserved */
+ /* Slot 22 is reserved */
+ #ifndef TclpGetTZName
+ #define TclpGetTZName \
+ 	(tclIntPlatStubsPtr->tclpGetTZName) /* 23 */
+ #endif
+ #ifndef TclWinNoBackslash
+ #define TclWinNoBackslash \
+ 	(tclIntPlatStubsPtr->tclWinNoBackslash) /* 24 */
+ #endif
+ /* Slot 25 is reserved */
+ #ifndef TclWinSetInterfaces
+ #define TclWinSetInterfaces \
+ 	(tclIntPlatStubsPtr->tclWinSetInterfaces) /* 26 */
+ #endif
+ #endif /* __WIN32__ */
+ #ifdef MAC_TCL
+ #ifndef TclpSysAlloc
+ #define TclpSysAlloc \
+ 	(tclIntPlatStubsPtr->tclpSysAlloc) /* 0 */
+ #endif
+ #ifndef TclpSysFree
+ #define TclpSysFree \
+ 	(tclIntPlatStubsPtr->tclpSysFree) /* 1 */
+ #endif
+ #ifndef TclpSysRealloc
+ #define TclpSysRealloc \
+ 	(tclIntPlatStubsPtr->tclpSysRealloc) /* 2 */
+ #endif
+ #ifndef TclpExit
+ #define TclpExit \
+ 	(tclIntPlatStubsPtr->tclpExit) /* 3 */
+ #endif
+ #ifndef FSpGetDefaultDir
+ #define FSpGetDefaultDir \
+ 	(tclIntPlatStubsPtr->fSpGetDefaultDir) /* 4 */
+ #endif
+ #ifndef FSpSetDefaultDir
+ #define FSpSetDefaultDir \
+ 	(tclIntPlatStubsPtr->fSpSetDefaultDir) /* 5 */
+ #endif
+ #ifndef FSpFindFolder
+ #define FSpFindFolder \
+ 	(tclIntPlatStubsPtr->fSpFindFolder) /* 6 */
+ #endif
+ #ifndef GetGlobalMouse
+ #define GetGlobalMouse \
+ 	(tclIntPlatStubsPtr->getGlobalMouse) /* 7 */
+ #endif
+ #ifndef FSpGetDirectoryID
+ #define FSpGetDirectoryID \
+ 	(tclIntPlatStubsPtr->fSpGetDirectoryID) /* 8 */
+ #endif
+ #ifndef FSpOpenResFileCompat
+ #define FSpOpenResFileCompat \
+ 	(tclIntPlatStubsPtr->fSpOpenResFileCompat) /* 9 */
+ #endif
+ #ifndef FSpCreateResFileCompat
+ #define FSpCreateResFileCompat \
+ 	(tclIntPlatStubsPtr->fSpCreateResFileCompat) /* 10 */
+ #endif
+ #ifndef FSpLocationFromPath
+ #define FSpLocationFromPath \
+ 	(tclIntPlatStubsPtr->fSpLocationFromPath) /* 11 */
+ #endif
+ #ifndef FSpPathFromLocation
+ #define FSpPathFromLocation \
+ 	(tclIntPlatStubsPtr->fSpPathFromLocation) /* 12 */
+ #endif
+ #ifndef TclMacExitHandler
+ #define TclMacExitHandler \
+ 	(tclIntPlatStubsPtr->tclMacExitHandler) /* 13 */
+ #endif
+ #ifndef TclMacInitExitToShell
+ #define TclMacInitExitToShell \
+ 	(tclIntPlatStubsPtr->tclMacInitExitToShell) /* 14 */
+ #endif
+ #ifndef TclMacInstallExitToShellPatch
+ #define TclMacInstallExitToShellPatch \
+ 	(tclIntPlatStubsPtr->tclMacInstallExitToShellPatch) /* 15 */
+ #endif
+ #ifndef TclMacOSErrorToPosixError
+ #define TclMacOSErrorToPosixError \
+ 	(tclIntPlatStubsPtr->tclMacOSErrorToPosixError) /* 16 */
+ #endif
+ #ifndef TclMacRemoveTimer
+ #define TclMacRemoveTimer \
+ 	(tclIntPlatStubsPtr->tclMacRemoveTimer) /* 17 */
+ #endif
+ #ifndef TclMacStartTimer
+ #define TclMacStartTimer \
+ 	(tclIntPlatStubsPtr->tclMacStartTimer) /* 18 */
+ #endif
+ #ifndef TclMacTimerExpired
+ #define TclMacTimerExpired \
+ 	(tclIntPlatStubsPtr->tclMacTimerExpired) /* 19 */
+ #endif
+ #ifndef TclMacRegisterResourceFork
+ #define TclMacRegisterResourceFork \
+ 	(tclIntPlatStubsPtr->tclMacRegisterResourceFork) /* 20 */
+ #endif
+ #ifndef TclMacUnRegisterResourceFork
+ #define TclMacUnRegisterResourceFork \
+ 	(tclIntPlatStubsPtr->tclMacUnRegisterResourceFork) /* 21 */
+ #endif
+ #ifndef TclMacCreateEnv
+ #define TclMacCreateEnv \
+ 	(tclIntPlatStubsPtr->tclMacCreateEnv) /* 22 */
+ #endif
+ #ifndef TclMacFOpenHack
+ #define TclMacFOpenHack \
+ 	(tclIntPlatStubsPtr->tclMacFOpenHack) /* 23 */
+ #endif
+ /* Slot 24 is reserved */
+ #ifndef TclMacChmod
+ #define TclMacChmod \
+ 	(tclIntPlatStubsPtr->tclMacChmod) /* 25 */
+ #endif
+ #endif /* MAC_TCL */
+ 
+ #endif /* defined(USE_TCL_STUBS) && !defined(USE_TCL_STUB_PROCS) */
+ 
+ /* !END!: Do not edit above this line. */
+ 
+ #endif /* _TCLINTPLATDECLS */
*** src/tclPlatDecls.h.orig	Sat Apr 29 21:02:00 2000
--- src/tclPlatDecls.h	Sat Apr 29 21:02:00 2000
***************
*** 0 ****
--- 1,152 ----
+ /*
+  * tclPlatDecls.h --
+  *
+  *	Declarations of platform specific Tcl APIs.
+  *
+  * Copyright (c) 1998-1999 by Scriptics Corporation.
+  * All rights reserved.
+  *
+  * RCS: @(#) $Id: tclPlatDecls.h,v 1.5 1999/04/30 22:45:02 stanton Exp $
+  */
+ 
+ #ifndef _TCLPLATDECLS
+ #define _TCLPLATDECLS
+ 
+ /* !BEGIN!: Do not edit below this line. */
+ 
+ /*
+  * Exported function declarations:
+  */
+ 
+ #ifdef __WIN32__
+ /* 0 */
+ EXTERN TCHAR *		Tcl_WinUtfToTChar _ANSI_ARGS_((CONST char * str, 
+ 				int len, Tcl_DString * dsPtr));
+ /* 1 */
+ EXTERN char *		Tcl_WinTCharToUtf _ANSI_ARGS_((CONST TCHAR * str, 
+ 				int len, Tcl_DString * dsPtr));
+ #endif /* __WIN32__ */
+ #ifdef MAC_TCL
+ /* 0 */
+ EXTERN void		Tcl_MacSetEventProc _ANSI_ARGS_((
+ 				Tcl_MacConvertEventPtr procPtr));
+ /* 1 */
+ EXTERN char *		Tcl_MacConvertTextResource _ANSI_ARGS_((
+ 				Handle resource));
+ /* 2 */
+ EXTERN int		Tcl_MacEvalResource _ANSI_ARGS_((Tcl_Interp * interp, 
+ 				char * resourceName, int resourceNumber, 
+ 				char * fileName));
+ /* 3 */
+ EXTERN Handle		Tcl_MacFindResource _ANSI_ARGS_((Tcl_Interp * interp, 
+ 				long resourceType, char * resourceName, 
+ 				int resourceNumber, char * resFileRef, 
+ 				int * releaseIt));
+ /* 4 */
+ EXTERN int		Tcl_GetOSTypeFromObj _ANSI_ARGS_((
+ 				Tcl_Interp * interp, Tcl_Obj * objPtr, 
+ 				OSType * osTypePtr));
+ /* 5 */
+ EXTERN void		Tcl_SetOSTypeObj _ANSI_ARGS_((Tcl_Obj * objPtr, 
+ 				OSType osType));
+ /* 6 */
+ EXTERN Tcl_Obj *	Tcl_NewOSTypeObj _ANSI_ARGS_((OSType osType));
+ /* 7 */
+ EXTERN int		strncasecmp _ANSI_ARGS_((CONST char * s1, 
+ 				CONST char * s2, size_t n));
+ /* 8 */
+ EXTERN int		strcasecmp _ANSI_ARGS_((CONST char * s1, 
+ 				CONST char * s2));
+ #endif /* MAC_TCL */
+ 
+ typedef struct TclPlatStubs {
+     int magic;
+     struct TclPlatStubHooks *hooks;
+ 
+ #ifdef __WIN32__
+     TCHAR * (*tcl_WinUtfToTChar) _ANSI_ARGS_((CONST char * str, int len, Tcl_DString * dsPtr)); /* 0 */
+     char * (*tcl_WinTCharToUtf) _ANSI_ARGS_((CONST TCHAR * str, int len, Tcl_DString * dsPtr)); /* 1 */
+ #endif /* __WIN32__ */
+ #ifdef MAC_TCL
+     void (*tcl_MacSetEventProc) _ANSI_ARGS_((Tcl_MacConvertEventPtr procPtr)); /* 0 */
+     char * (*tcl_MacConvertTextResource) _ANSI_ARGS_((Handle resource)); /* 1 */
+     int (*tcl_MacEvalResource) _ANSI_ARGS_((Tcl_Interp * interp, char * resourceName, int resourceNumber, char * fileName)); /* 2 */
+     Handle (*tcl_MacFindResource) _ANSI_ARGS_((Tcl_Interp * interp, long resourceType, char * resourceName, int resourceNumber, char * resFileRef, int * releaseIt)); /* 3 */
+     int (*tcl_GetOSTypeFromObj) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * objPtr, OSType * osTypePtr)); /* 4 */
+     void (*tcl_SetOSTypeObj) _ANSI_ARGS_((Tcl_Obj * objPtr, OSType osType)); /* 5 */
+     Tcl_Obj * (*tcl_NewOSTypeObj) _ANSI_ARGS_((OSType osType)); /* 6 */
+     int (*strncasecmp) _ANSI_ARGS_((CONST char * s1, CONST char * s2, size_t n)); /* 7 */
+     int (*strcasecmp) _ANSI_ARGS_((CONST char * s1, CONST char * s2)); /* 8 */
+ #endif /* MAC_TCL */
+ } TclPlatStubs;
+ 
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+ extern TclPlatStubs *tclPlatStubsPtr;
+ #ifdef __cplusplus
+ }
+ #endif
+ 
+ #if defined(USE_TCL_STUBS) && !defined(USE_TCL_STUB_PROCS)
+ 
+ /*
+  * Inline function declarations:
+  */
+ 
+ #ifdef __WIN32__
+ #ifndef Tcl_WinUtfToTChar
+ #define Tcl_WinUtfToTChar \
+ 	(tclPlatStubsPtr->tcl_WinUtfToTChar) /* 0 */
+ #endif
+ #ifndef Tcl_WinTCharToUtf
+ #define Tcl_WinTCharToUtf \
+ 	(tclPlatStubsPtr->tcl_WinTCharToUtf) /* 1 */
+ #endif
+ #endif /* __WIN32__ */
+ #ifdef MAC_TCL
+ #ifndef Tcl_MacSetEventProc
+ #define Tcl_MacSetEventProc \
+ 	(tclPlatStubsPtr->tcl_MacSetEventProc) /* 0 */
+ #endif
+ #ifndef Tcl_MacConvertTextResource
+ #define Tcl_MacConvertTextResource \
+ 	(tclPlatStubsPtr->tcl_MacConvertTextResource) /* 1 */
+ #endif
+ #ifndef Tcl_MacEvalResource
+ #define Tcl_MacEvalResource \
+ 	(tclPlatStubsPtr->tcl_MacEvalResource) /* 2 */
+ #endif
+ #ifndef Tcl_MacFindResource
+ #define Tcl_MacFindResource \
+ 	(tclPlatStubsPtr->tcl_MacFindResource) /* 3 */
+ #endif
+ #ifndef Tcl_GetOSTypeFromObj
+ #define Tcl_GetOSTypeFromObj \
+ 	(tclPlatStubsPtr->tcl_GetOSTypeFromObj) /* 4 */
+ #endif
+ #ifndef Tcl_SetOSTypeObj
+ #define Tcl_SetOSTypeObj \
+ 	(tclPlatStubsPtr->tcl_SetOSTypeObj) /* 5 */
+ #endif
+ #ifndef Tcl_NewOSTypeObj
+ #define Tcl_NewOSTypeObj \
+ 	(tclPlatStubsPtr->tcl_NewOSTypeObj) /* 6 */
+ #endif
+ #ifndef strncasecmp
+ #define strncasecmp \
+ 	(tclPlatStubsPtr->strncasecmp) /* 7 */
+ #endif
+ #ifndef strcasecmp
+ #define strcasecmp \
+ 	(tclPlatStubsPtr->strcasecmp) /* 8 */
+ #endif
+ #endif /* MAC_TCL */
+ 
+ #endif /* defined(USE_TCL_STUBS) && !defined(USE_TCL_STUB_PROCS) */
+ 
+ /* !END!: Do not edit above this line. */
+ 
+ #endif /* _TCLPLATDECLS */
+ 
+ 
*** src/tclStubInit.c.orig	Sat Apr 29 21:02:00 2000
--- src/tclStubInit.c	Sat Apr 29 21:02:01 2000
***************
*** 0 ****
--- 1,331 ----
+ /* 
+  * tclStubInit.c --
+  *
+  *	This file contains the initializers for the Tcl stub vectors.
+  *
+  * Copyright (c) 1998-1999 by Scriptics Corporation.
+  *
+  * See the file "license.terms" for information on usage and redistribution
+  * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+  *
+  * RCS: @(#) $Id: tclStubInit.c,v 1.31 2000/01/24 02:29:58 hobbs Exp $
+  */
+ 
+ #include "tclInt.h"
+ #include "tclPort.h"
+ #include "tclCompile.h"
+ 
+ #ifndef TCL_THREADS
+ #undef TclpThreadCreate
+ #define TclpThreadCreate NULL
+ #endif
+ 
+ /*
+  * Remove macros that will interfere with the definitions below.
+  */
+ 
+ #undef Tcl_Alloc
+ #undef Tcl_Free
+ #undef Tcl_Realloc
+ #undef Tcl_NewBooleanObj
+ #undef Tcl_NewByteArrayObj
+ #undef Tcl_NewDoubleObj
+ #undef Tcl_NewIntObj
+ #undef Tcl_NewListObj
+ #undef Tcl_NewLongObj
+ #undef Tcl_NewObj
+ #undef Tcl_NewStringObj
+ #undef Tcl_DumpActiveMemory
+ #undef Tcl_ValidateAllMemory
+ 
+ /*
+  * WARNING: The contents of this file is automatically generated by the
+  * tools/genStubs.tcl script. Any modifications to the function declarations
+  * below should be made in the generic/tcl.decls script.
+  */
+ 
+ /* !BEGIN!: Do not edit below this line. */
+ 
+ TclIntStubs tclIntStubs = {
+     TCL_STUB_MAGIC,
+     NULL,
+     TclAccess, /* 0 */
+     NULL, /* 1 */
+     NULL, /* 2 */
+     TclAllocateFreeObjects, /* 3 */
+     NULL, /* 4 */
+ #if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
+     TclCleanupChildren, /* 5 */
+ #endif /* UNIX */
+ #ifdef __WIN32__
+     TclCleanupChildren, /* 5 */
+ #endif /* __WIN32__ */
+ #ifdef MAC_TCL
+     NULL, /* 5 */
+ #endif /* MAC_TCL */
+     NULL, /* 6 */
+     TclCopyAndCollapse, /* 7 */
+     TclCopyChannel, /* 8 */
+     NULL, /* 9 */
+     NULL, /* 10 */
+     TclDeleteCompiledLocalVars, /* 11 */
+     TclDeleteVars, /* 12 */
+     NULL, /* 13 */
+     TclDumpMemoryInfo, /* 14 */
+     TclFinalizeCondition, /* 15 */
+     TclExprFloatError, /* 16 */
+     TclFileAttrsCmd, /* 17 */
+     TclFileCopyCmd, /* 18 */
+     TclFileDeleteCmd, /* 19 */
+     TclFileMakeDirsCmd, /* 20 */
+     TclFileRenameCmd, /* 21 */
+     TclFindElement, /* 22 */
+     TclFindProc, /* 23 */
+     TclFormatInt, /* 24 */
+     TclFreePackageInfo, /* 25 */
+     NULL, /* 26 */
+     TclGetDate, /* 27 */
+     TclpGetDefaultStdChannel, /* 28 */
+     TclGetElementOfIndexedArray, /* 29 */
+     NULL, /* 30 */
+     TclGetExtension, /* 31 */
+     TclGetFrame, /* 32 */
+     NULL, /* 33 */
+     TclGetIntForIndex, /* 34 */
+     TclGetIndexedScalar, /* 35 */
+     TclGetLong, /* 36 */
+     TclGetLoadedPackages, /* 37 */
+     NULL, /* 38 */
+     NULL, /* 39 */
+     TclGetOpenMode, /* 40 */
+     TclGetOriginalCommand, /* 41 */
+     TclpGetUserHome, /* 42 */
+     TclGlobalInvoke, /* 43 */
+     TclGuessPackageName, /* 44 */
+     TclHideUnsafeCommands, /* 45 */
+     TclInExit, /* 46 */
+     TclIncrElementOfIndexedArray, /* 47 */
+     TclIncrIndexedScalar, /* 48 */
+     TclIncrVar2, /* 49 */
+     NULL, /* 50 */
+     TclInterpInit, /* 51 */
+     TclInvoke, /* 52 */
+     TclInvokeObjectCommand, /* 53 */
+     TclInvokeStringCommand, /* 54 */
+     NULL, /* 55 */
+     NULL, /* 56 */
+     NULL, /* 57 */
+     TclLookupVar, /* 58 */
+     TclpMatchFiles, /* 59 */
+     TclNeedSpace, /* 60 */
+     TclNewProcBodyObj, /* 61 */
+     TclObjCommandComplete, /* 62 */
+     TclObjInterpProc, /* 63 */
+     TclObjInvoke, /* 64 */
+     TclObjInvokeGlobal, /* 65 */
+     NULL, /* 66 */
+     NULL, /* 67 */
+     TclpAccess, /* 68 */
+     TclpAlloc, /* 69 */
+     TclpCopyFile, /* 70 */
+     TclpCopyDirectory, /* 71 */
+     TclpCreateDirectory, /* 72 */
+     TclpDeleteFile, /* 73 */
+     TclpFree, /* 74 */
+     TclpGetClicks, /* 75 */
+     TclpGetSeconds, /* 76 */
+     TclpGetTime, /* 77 */
+     TclpGetTimeZone, /* 78 */
+     TclpListVolumes, /* 79 */
+     TclpOpenFileChannel, /* 80 */
+     TclpRealloc, /* 81 */
+     TclpRemoveDirectory, /* 82 */
+     TclpRenameFile, /* 83 */
+     NULL, /* 84 */
+     NULL, /* 85 */
+     NULL, /* 86 */
+     NULL, /* 87 */
+     TclPrecTraceProc, /* 88 */
+     TclPreventAliasLoop, /* 89 */
+     NULL, /* 90 */
+     TclProcCleanupProc, /* 91 */
+     NULL, /* 92 */
+     TclProcDeleteProc, /* 93 */
+     TclProcInterpProc, /* 94 */
+     TclpStat, /* 95 */
+     TclRenameCommand, /* 96 */
+     NULL, /* 97 */
+     TclServiceIdle, /* 98 */
+     TclSetElementOfIndexedArray, /* 99 */
+     TclSetIndexedScalar, /* 100 */
+ #if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
+     TclSetPreInitScript, /* 101 */
+ #endif /* UNIX */
+ #ifdef __WIN32__
+     TclSetPreInitScript, /* 101 */
+ #endif /* __WIN32__ */
+ #ifdef MAC_TCL
+     NULL, /* 101 */
+ #endif /* MAC_TCL */
+     TclSetupEnv, /* 102 */
+     TclSockGetPort, /* 103 */
+ #if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
+     TclSockMinimumBuffers, /* 104 */
+ #endif /* UNIX */
+ #ifdef __WIN32__
+     TclSockMinimumBuffers, /* 104 */
+ #endif /* __WIN32__ */
+ #ifdef MAC_TCL
+     NULL, /* 104 */
+ #endif /* MAC_TCL */
+     TclStat, /* 105 */
+     NULL, /* 106 */
+     NULL, /* 107 */
+     NULL, /* 108 */
+     NULL, /* 109 */
+     NULL, /* 110 */
+     NULL, /* 111 */
+     Tcl_AppendExportList, /* 112 */
+     Tcl_CreateNamespace, /* 113 */
+     Tcl_DeleteNamespace, /* 114 */
+     Tcl_Export, /* 115 */
+     Tcl_FindCommand, /* 116 */
+     Tcl_FindNamespace, /* 117 */
+     NULL, /* 118 */
+     NULL, /* 119 */
+     Tcl_FindNamespaceVar, /* 120 */
+     Tcl_ForgetImport, /* 121 */
+     Tcl_GetCommandFromObj, /* 122 */
+     Tcl_GetCommandFullName, /* 123 */
+     Tcl_GetCurrentNamespace, /* 124 */
+     Tcl_GetGlobalNamespace, /* 125 */
+     Tcl_GetVariableFullName, /* 126 */
+     Tcl_Import, /* 127 */
+     Tcl_PopCallFrame, /* 128 */
+     Tcl_PushCallFrame, /* 129 */
+     NULL, /* 130 */
+     NULL, /* 131 */
+     NULL, /* 132 */
+     NULL, /* 133 */
+     NULL, /* 134 */
+     TclpCheckStackSpace, /* 135 */
+     NULL, /* 136 */
+     TclpChdir, /* 137 */
+     TclGetEnv, /* 138 */
+     TclpLoadFile, /* 139 */
+     TclLooksLikeInt, /* 140 */
+     TclpGetCwd, /* 141 */
+     NULL, /* 142 */
+     NULL, /* 143 */
+     NULL, /* 144 */
+     TclGetAuxDataType, /* 145 */
+     TclHandleCreate, /* 146 */
+     TclHandleFree, /* 147 */
+     TclHandlePreserve, /* 148 */
+     TclHandleRelease, /* 149 */
+     TclRegAbout, /* 150 */
+     TclRegExpRangeUniChar, /* 151 */
+     TclSetLibraryPath, /* 152 */
+     TclGetLibraryPath, /* 153 */
+     TclTestChannelCmd, /* 154 */
+     TclTestChannelEventCmd, /* 155 */
+     TclRegError, /* 156 */
+     NULL, /* 157 */
+     TclSetStartupScriptFileName, /* 158 */
+     TclGetStartupScriptFileName, /* 159 */
+ };
+ 
+ TclIntPlatStubs tclIntPlatStubs = {
+     TCL_STUB_MAGIC,
+     NULL,
+ #if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
+     TclGetAndDetachPids, /* 0 */
+     NULL, /* 1 */
+     NULL, /* 2 */
+     NULL, /* 3 */
+     NULL, /* 4 */
+     NULL, /* 5 */
+     NULL, /* 6 */
+     NULL, /* 7 */
+     TclUnixWaitForFile, /* 8 */
+ #endif /* UNIX */
+ #ifdef __WIN32__
+     TclWinConvertError, /* 0 */
+     TclWinConvertWSAError, /* 1 */
+     TclWinGetServByName, /* 2 */
+     NULL, /* 3 */
+     TclWinGetTclInstance, /* 4 */
+     NULL, /* 5 */
+     NULL, /* 6 */
+     NULL, /* 7 */
+     TclpGetPid, /* 8 */
+     TclWinGetPlatformId, /* 9 */
+     TclWinSynchSpawn, /* 10 */
+     TclGetAndDetachPids, /* 11 */
+     NULL, /* 12 */
+     NULL, /* 13 */
+     NULL, /* 14 */
+     NULL, /* 15 */
+     NULL, /* 16 */
+     NULL, /* 17 */
+     NULL, /* 18 */
+     NULL, /* 19 */
+     NULL, /* 20 */
+     NULL, /* 21 */
+     NULL, /* 22 */
+     TclpGetTZName, /* 23 */
+     TclWinNoBackslash, /* 24 */
+     NULL, /* 25 */
+     TclWinSetInterfaces, /* 26 */
+ #endif /* __WIN32__ */
+ #ifdef MAC_TCL
+     TclpSysAlloc, /* 0 */
+     TclpSysFree, /* 1 */
+     TclpSysRealloc, /* 2 */
+     TclpExit, /* 3 */
+     FSpGetDefaultDir, /* 4 */
+     FSpSetDefaultDir, /* 5 */
+     FSpFindFolder, /* 6 */
+     GetGlobalMouse, /* 7 */
+     FSpGetDirectoryID, /* 8 */
+     FSpOpenResFileCompat, /* 9 */
+     FSpCreateResFileCompat, /* 10 */
+     FSpLocationFromPath, /* 11 */
+     FSpPathFromLocation, /* 12 */
+     TclMacExitHandler, /* 13 */
+     TclMacInitExitToShell, /* 14 */
+     TclMacInstallExitToShellPatch, /* 15 */
+     TclMacOSErrorToPosixError, /* 16 */
+     TclMacRemoveTimer, /* 17 */
+     TclMacStartTimer, /* 18 */
+     TclMacTimerExpired, /* 19 */
+     TclMacRegisterResourceFork, /* 20 */
+     TclMacUnRegisterResourceFork, /* 21 */
+     TclMacCreateEnv, /* 22 */
+     TclMacFOpenHack, /* 23 */
+     NULL, /* 24 */
+     TclMacChmod, /* 25 */
+ #endif /* MAC_TCL */
+ };
+ 
+ TclPlatStubs tclPlatStubs = {
+     TCL_STUB_MAGIC,
+     NULL,
+ #ifdef __WIN32__
+     Tcl_WinUtfToTChar, /* 0 */
+     Tcl_WinTCharToUtf, /* 1 */
+ #endif /* __WIN32__ */
+ #ifdef MAC_TCL
+     Tcl_MacSetEventProc, /* 0 */
+     Tcl_MacConvertTextResource, /* 1 */
+     Tcl_MacEvalResource, /* 2 */
+     Tcl_MacFindResource, /* 3 */
+     Tcl_GetOSTypeFromObj, /* 4 */
+     Tcl_SetOSTypeObj, /* 5 */
+     Tcl_NewOSTypeObj, /* 6 */
+     strncasecmp, /* 7 */
+     strcasecmp, /* 8 */
+ #endif /* MAC_TCL */
+ };
+ 
+ /* !END!: Do not edit above this line. */
*** src/tk.decls.orig	Sat Apr 29 21:02:01 2000
--- src/tk.decls	Sat Apr 29 21:02:01 2000
***************
*** 0 ****
--- 1,642 ----
+ # tk.decls --
+ #
+ #	This file contains the declarations for all public functions
+ #	that are exported by the Tk library via the stubs table.
+ #	This file is used to generate the tkDecls.h, tkPlatDecls.h,
+ #	tkIntDecls.h and tkStub.c files.
+ #	
+ #
+ # Copyright (c) 1998-1999 by Scriptics Corporation.
+ # See the file "license.terms" for information on usage and redistribution
+ # of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+ # 
+ # RCS: @(#) $Id: tk.decls,v 1.7 2000/02/09 02:13:50 hobbs Exp $
+ 
+ library tk
+ 
+ # Define the platform specific public Tk interface.  These functions are
+ # only available on the designated platform.
+ 
+ interface tkPlat
+ 
+ # Windows specific functions
+ 
+ declare 0 win {
+     Window Tk_AttachHWND (Tk_Window tkwin, HWND hwnd)
+ }
+ 
+ declare 1 win {
+     HINSTANCE Tk_GetHINSTANCE (void)
+ }
+ 
+ declare 2 win {
+     HWND Tk_GetHWND (Window window)
+ }
+ 
+ declare 3 win {
+     Tk_Window Tk_HWNDToWindow (HWND hwnd)
+ }
+ 
+ declare 4 win {
+     void Tk_PointerEvent (HWND hwnd, int x, int y)
+ }
+ 
+ declare 5 win {
+     int Tk_TranslateWinEvent (HWND hwnd, \
+ 	    UINT message, WPARAM wParam, LPARAM lParam, LRESULT *result)
+ }
+ 
+ # Mac specific functions
+ 
+ declare 0 mac {
+     void Tk_MacSetEmbedHandler ( \
+ 	    Tk_MacEmbedRegisterWinProc *registerWinProcPtr, \
+ 	    Tk_MacEmbedGetGrafPortProc *getPortProcPtr, \
+ 	    Tk_MacEmbedMakeContainerExistProc *containerExistProcPtr, \
+ 	    Tk_MacEmbedGetClipProc *getClipProc, \
+ 	    Tk_MacEmbedGetOffsetInParentProc *getOffsetProc)
+ }
+  
+ declare 1 mac {
+     void Tk_MacTurnOffMenus (void)
+ }
+ 
+ declare 2 mac {
+     void Tk_MacTkOwnsCursor (int tkOwnsIt)
+ }
+ 
+ declare 3 mac {
+     void TkMacInitMenus (Tcl_Interp *interp)
+ }
+ 
+ declare 4 mac {
+     void TkMacInitAppleEvents (Tcl_Interp *interp)
+ }
+ 
+ declare 5 mac {
+     int TkMacConvertEvent (EventRecord *eventPtr)
+ }
+ 
+ declare 6 mac {
+     int TkMacConvertTkEvent (EventRecord *eventPtr, Window window)
+ }
+ 
+ declare 7 mac {
+     void TkGenWMConfigureEvent (Tk_Window tkwin, \
+ 	    int x, int y, int width, int height, int flags)
+ }
+ 
+ declare 9 mac {
+     int TkMacHaveAppearance (void)
+ }
+ 
+ declare 10 mac {
+     GWorldPtr TkMacGetDrawablePort (Drawable drawable)
+ }
+ 
+ # Define the unsupported generic interfaces.
+ 
+ interface tkInt
+ 
+ # Declare each of the functions in the unsupported internal Tcl
+ # interface.  These interfaces are allowed to changed between versions.
+ # Use at your own risk.  Note that the position of functions should not
+ # be changed between versions to avoid gratuitous incompatibilities.
+ 
+ declare 1 generic {
+     void TkBezierPoints (double control[], int numSteps, double *coordPtr)
+ }
+ declare 2 generic {
+     void TkBezierScreenPoints (Tk_Canvas canvas, double control[], \
+ 	    int numSteps, XPoint *xPointPtr)
+ }
+ declare 9 generic {
+     void TkComputeAnchor (Tk_Anchor anchor, Tk_Window tkwin, \
+ 	    int padX, int padY, int innerWidth, int innerHeight, \
+ 	    int *xPtr, int *yPtr)
+ }
+ declare 10 generic {
+     int TkCopyAndGlobalEval (Tcl_Interp *interp, char *script)
+ }
+ declare 13 generic {
+     int TkCreateFrame (ClientData clientData, \
+ 	    Tcl_Interp *interp, int argc, char **argv, \
+ 	    int toplevel, char *appName)
+ }
+ declare 14 generic {
+     Tk_Window TkCreateMainWindow (Tcl_Interp *interp, \
+ 	    char *screenName, char *baseName)
+ }
+ declare 18 generic {
+     void TkDrawInsetFocusHighlight (Tk_Window tkwin, GC gc, int width, \
+ 	    Drawable drawable, int padding)
+ }
+ declare 30 generic {
+     char * TkGetBitmapData (Tcl_Interp *interp, \
+ 	    char *string, char *fileName, int *widthPtr, \
+ 	    int *heightPtr, int *hotXPtr, int *hotYPtr)
+ }
+ declare 31 generic {
+     void TkGetButtPoints (double p1[], double p2[], \
+ 	    double width, int project, double m1[], double m2[])
+ }
+ declare 33 generic {
+     char * TkGetDefaultScreenName (Tcl_Interp *interp, char *screenName)
+ }
+ declare 35 generic {
+     int TkGetDisplayOf (Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[], \
+ 	    Tk_Window *tkwinPtr)
+ }
+ declare 37 generic {
+     int TkGetInterpNames (Tcl_Interp *interp, Tk_Window tkwin)
+ }
+ declare 38 generic {
+     int TkGetMiterPoints (double p1[], double p2[], double p3[], \
+ 	    double width, double m1[],double m2[])
+ }
+ declare 39 generic {
+     void TkGetPointerCoords (Tk_Window tkwin, int *xPtr, int *yPtr)
+ }
+ declare 40 generic {
+     void TkGetServerInfo (Tcl_Interp *interp, Tk_Window tkwin)
+ }
+ declare 43 generic {
+     void TkIncludePoint (Tk_Item *itemPtr, double *pointPtr)
+ }
+ declare 45 generic {
+     void TkInstallFrameMenu (Tk_Window tkwin)
+ }
+ declare 46 generic {
+     char * TkKeysymToString (KeySym keysym)
+ }
+ declare 47 generic {
+     int TkLineToArea (double end1Ptr[], double end2Ptr[], double rectPtr[])
+ }
+ declare 48 generic {
+     double TkLineToPoint (double end1Ptr[], \
+ 	    double end2Ptr[], double pointPtr[])
+ }
+ declare 49 generic {
+     int TkMakeBezierCurve (Tk_Canvas canvas, \
+ 	    double *pointPtr, int numPoints, int numSteps, \
+ 	    XPoint xPoints[], double dblPoints[])
+ }
+ declare 50 generic {
+     void TkMakeBezierPostscript (Tcl_Interp *interp, \
+ 	    Tk_Canvas canvas, double *pointPtr, int numPoints)
+ }
+ declare 53 generic {
+     int TkOvalToArea (double *ovalPtr, double *rectPtr)
+ }
+ declare 54 generic {
+     double TkOvalToPoint (double ovalPtr[], \
+ 	    double width, int filled, double pointPtr[])
+ }
+ declare 58 generic {
+     void TkpDisplayWarning (CONST char *msg, CONST char *title)
+ }
+ declare 59 generic {
+     void TkpGetAppName (Tcl_Interp *interp, Tcl_DString *name)
+ }
+ declare 62 generic {
+     int TkpInit (Tcl_Interp *interp)
+ }
+ declare 63 generic {
+     void TkpInitializeMenuBindings (Tcl_Interp *interp, \
+ 	    Tk_BindingTable bindingTable)
+ }
+ declare 64 generic {
+     void TkpMakeContainer (Tk_Window tkwin)
+ }
+ declare 65 generic {
+     void TkpMakeMenuWindow (Tk_Window tkwin, int transient)
+ }
+ declare 67 generic {
+     void TkpMenuNotifyToplevelCreate (Tcl_Interp *interp1, char *menuName)
+ }
+ declare 70 generic {
+     int TkPolygonToArea (double *polyPtr, int numPoints, double *rectPtr)
+ }
+ declare 71 generic {
+     double TkPolygonToPoint (double *polyPtr, int numPoints, double *pointPtr)
+ }
+ declare 74 generic {
+     void TkpSetMainMenubar (Tcl_Interp *interp, \
+ 	    Tk_Window tkwin, char *menuName)
+ }
+ declare 75 generic {
+     int TkpUseWindow (Tcl_Interp *interp, Tk_Window tkwin, char *string)
+ }
+ declare 78 generic {
+     int TkReadBitmapFile (Display* display, Drawable d, CONST char* filename, \
+ 	    unsigned int* width_return, unsigned int* height_return, \
+ 	    Pixmap* bitmap_return, int* x_hot_return, int* y_hot_return)
+ }
+ declare 79 generic {
+     int TkScrollWindow (Tk_Window tkwin, GC gc, \
+ 	    int x, int y, int width, int height, int dx, \
+ 	    int dy, TkRegion damageRgn)
+ }
+ declare 81 generic {
+     void TkSelEventProc (Tk_Window tkwin, XEvent *eventPtr)
+ }
+ declare 82 generic {
+     void TkSelInit (Tk_Window tkwin)
+ }
+ declare 83 generic {
+     void TkSelPropProc (XEvent *eventPtr)
+ }
+ declare 84 generic {
+     void TkSetClassProcs (Tk_Window tkwin, \
+ 	    VOID *procs, ClientData instanceData)
+ }
+ declare 85 generic {
+     void TkSetWindowMenuBar (Tcl_Interp *interp, \
+ 	    Tk_Window tkwin, char *oldMenuName, char *menuName)
+ }
+ declare 86 generic {
+     KeySym TkStringToKeysym (char *name)
+ }
+ declare 87 generic {
+     int TkThickPolyLineToArea (double *coordPtr, \
+ 	    int numPoints, double width, int capStyle, \
+ 	    int joinStyle, double *rectPtr)
+ }
+ # new for 8.1
+ 
+ declare 98 generic {
+     Tcl_Obj * TkDebugBitmap ( Tk_Window tkwin, char *name)
+ }
+ 
+ declare 99 generic {
+     Tcl_Obj * TkDebugBorder ( Tk_Window tkwin, char *name)
+ }
+ declare 100 generic {
+     Tcl_Obj * TkDebugCursor ( Tk_Window tkwin, char *name)
+ }
+ declare 101 generic {
+     Tcl_Obj * TkDebugColor ( Tk_Window tkwin, char *name)
+ }
+ declare 103 generic {
+     Tcl_Obj * TkDebugFont ( Tk_Window tkwin, char *name)
+ }
+ declare 105 generic {
+     Tcl_HashTable *  TkGetBitmapPredefTable (void)
+ }
+ declare 108 generic {
+     int  TkGetWindowFromObj (Tcl_Interp *interp, \
+ 	    Tk_Window tkwin, Tcl_Obj *objPtr, \
+ 	    Tk_Window *windowPtr)
+ }
+ declare 110 generic {
+     void  TkpGetSubFonts (Tcl_Interp *interp, Tk_Font tkfont)
+ }
+ 
+ declare 111 generic {
+     Tcl_Obj * TkpGetSystemDefault (Tk_Window tkwin, \
+ 	    char *dbName, char *className)
+ }
+ 
+ declare 112 generic {
+     void TkpMenuThreadInit (void)
+ }
+ 
+ declare 113 {mac win}  {
+     void TkClipBox (TkRegion rgn, XRectangle* rect_return)
+ }
+ 
+ declare 114 {mac win}  {
+     TkRegion TkCreateRegion (void)
+ }
+ 
+ declare 115 {mac win} {
+     void TkDestroyRegion (TkRegion rgn)
+ }
+ 
+ declare 116 {mac win} {
+     void TkIntersectRegion (TkRegion sra, TkRegion srcb, TkRegion dr_return)
+ }
+ declare 117 {mac win} {
+     int TkRectInRegion (TkRegion rgn, int x, int y, unsigned int width, \
+ 	    unsigned int height)
+ }
+ declare 118 {mac win} {
+     void TkSetRegion (Display* display, GC gc, TkRegion rgn)
+ }
+ declare 119 {mac win} {
+     void TkUnionRectWithRegion (XRectangle* rect, \
+ 	    TkRegion src, TkRegion dr_return)
+ }
+ declare 121 mac {
+     Pixmap TkpCreateNativeBitmap (Display *display, char * source)
+ }
+ declare 122 mac {
+     void TkpDefineNativeBitmaps (void)
+ }
+ declare 123 mac {
+     unsigned long TkpGetMS (void)
+ }
+ declare 124 mac {
+     Pixmap TkpGetNativeAppBitmap (Display *display, \
+  	    CONST char *name, int *width, int *height)
+ }
+ declare 131 mac {
+     int  TkGenerateButtonEvent (int x, int y, \
+  	    Window window, unsigned int state)
+ }
+ declare 133 mac {
+     void  TkGenWMDestroyEvent (Tk_Window tkwin)
+ }
+ declare 134 mac {
+     void  TkGenWMConfigureEvent (Tk_Window tkwin, int x, int y, \
+  	    int width, int height, int flags)
+ }
+ declare 135 generic {
+     void TkpDrawHighlightBorder (Tk_Window tkwin, GC fgGC, GC bgGC, \
+         int highlightWidth, Drawable drawable)
+ }
+ declare 137 generic {
+     void TkpSetKeycodeAndState (Tk_Window tkwin, KeySym keySym, \
+             XEvent *eventPtr)
+ }
+ declare 139 generic {
+     int  TkTextGetIndex (Tcl_Interp *interp, struct TkText *textPtr, \
+ 	    char *string, struct TkTextIndex *indexPtr)
+ }
+ declare 140 generic {
+     void  TkTextIndexBackBytes (CONST struct TkTextIndex *srcPtr, \
+ 	    int count, struct TkTextIndex *dstPtr)
+ }
+ 
+ declare 141 generic {
+     void  TkTextIndexForwBytes (CONST struct TkTextIndex *srcPtr, \
+ 	    int count, struct TkTextIndex *dstPtr)
+ }
+ 
+ declare 142 generic {
+     struct TkTextIndex * TkTextMakeByteIndex (struct TkTextBTree_ *tree, \
+ 	    int lineIndex, int byteIndex, struct TkTextIndex *indexPtr)
+ }
+ 
+ declare 143 generic {
+     void  TkTextPrintIndex (CONST struct TkTextIndex *indexPtr, char *string)
+ }
+ 
+ declare 144 generic {
+     struct TkTextSegment * TkTextSetMark (struct TkText *textPtr, char *name, \
+ 	    struct TkTextIndex *indexPtr)
+ }
+ declare 145 generic {
+     int TkTextXviewCmd (struct TkText *textPtr, Tcl_Interp *interp, \
+ 	    int argc, char **argv)
+ }
+ declare 146 generic {
+     void TkTextChanged (struct TkText *textPtr, struct TkTextIndex *index1Ptr, \
+ 	    struct TkTextIndex *index2Ptr)
+ }
+ declare 147 generic {
+     int TkBTreeNumLines (struct TkTextBTree_ *tree)
+ }
+ declare 148 generic {
+     void TkTextInsertDisplayProc (struct TkTextDispChunk *chunkPtr, \
+ 	    int x, int y, int height, int baseline, Display *display, \
+ 	    Drawable dst, int screenY)
+ }
+ 
+ ##############################################################################
+ 
+ # Define the platform specific internal Tcl interface. These functions are
+ # only available on the designated platform.
+ 
+ interface tkIntPlat
+ 
+ #########################
+ # Unix specific functions
+ 
+ declare 0 unix {
+     void TkCreateXEventSource (void)
+ }
+ declare 3 unix {
+     int TkpCmapStressed (Tk_Window tkwin, Colormap colormap)
+ }
+ declare 4 unix {
+     void TkpSync (Display *display)
+ }
+ declare 6 unix {
+     int TkUnixDoOneXEvent (Tcl_Time *timePtr)
+ }
+ declare 7 unix {
+     void TkUnixSetMenubar (Tk_Window tkwin, Tk_Window menubar)
+ }
+ 
+ ############################
+ # Windows specific functions
+ 
+ declare 0 win {
+     char * TkAlignImageData (XImage *image, int alignment, int bitOrder)
+ }
+ declare 3 win {
+     unsigned long TkpGetMS (void)
+ }
+ declare 5 win {
+     void TkpPrintWindowId (char *buf, Window window)
+ }
+ declare 6 win {
+     int TkpScanWindowId (Tcl_Interp *interp, char *string, int *idPtr)
+ }
+ declare 10 win {
+     void TkSetPixmapColormap (Pixmap pixmap, Colormap colormap)
+ }
+ declare 11 win {
+     void  TkWinCancelMouseTimer (void)
+ }
+ declare 13 win {
+     LRESULT  TkWinEmbeddedEventProc (HWND hwnd, UINT message, \
+ 	    WPARAM wParam, LPARAM lParam)
+ }
+ declare 14 win {
+     void  TkWinFillRect (HDC dc, int x, int y, int width, int height, \
+ 	    int pixel)
+ }
+ declare 15 win {
+     COLORREF  TkWinGetBorderPixels (Tk_Window tkwin, Tk_3DBorder border, \
+ 	    int which)
+ }
+ declare 16 win {
+     HDC  TkWinGetDrawableDC (Display *display, Drawable d, TkWinDCState* state)
+ }
+ declare 17 win {
+     int  TkWinGetModifierState (void)
+ }
+ declare 18 win {
+     HPALETTE  TkWinGetSystemPalette (void)
+ }
+ declare 19 win {
+     HWND  TkWinGetWrapperWindow (Tk_Window tkwin)
+ }
+ declare 20 win {
+     int  TkWinHandleMenuEvent (HWND *phwnd, \
+ 	    UINT *pMessage, WPARAM *pwParam, LPARAM *plParam, \
+ 	    LRESULT *plResult)
+ }
+ declare 21 win {
+     int  TkWinIndexOfColor (XColor *colorPtr)
+ }
+ declare 22 win {
+     void  TkWinReleaseDrawableDC (Drawable d, HDC hdc, TkWinDCState* state)
+ }
+ declare 23 win {
+     LRESULT  TkWinResendEvent (WNDPROC wndproc, HWND hwnd, XEvent *eventPtr)
+ }
+ declare 24 win {
+     HPALETTE  TkWinSelectPalette (HDC dc, Colormap colormap)
+ }
+ declare 25 win {
+     void  TkWinSetMenu (Tk_Window tkwin, HMENU hMenu)
+ }
+ declare 26 win {
+     void  TkWinSetWindowPos (HWND hwnd, HWND siblingHwnd, int pos)
+ }
+ declare 27 win {
+     void  TkWinWmCleanup (HINSTANCE hInstance)
+ }
+ declare 28 win {
+     void  TkWinXCleanup (HINSTANCE hInstance)
+ }
+ declare 29 win {
+     void   TkWinXInit (HINSTANCE hInstance)
+ }
+ declare 31 win {
+     void TkWinDialogDebug (int debug)
+ }
+ declare 32 win {
+     Tcl_Obj * TkWinGetMenuSystemDefault (Tk_Window tkwin, \
+ 	    char *dbName, char *className)
+ }
+ declare 33 win {
+     int TkWinGetPlatformId(void)
+ }
+ 
+ ########################
+ # Mac specific functions
+ 
+ declare 1 mac {
+     Pixmap TkpCreateNativeBitmap (Display *display, char * source)
+ }
+ declare 2 mac {
+     void TkpDefineNativeBitmaps (void)
+ }
+ declare 3 mac {
+     unsigned long TkpGetMS (void)
+ }
+ declare 10 mac {
+     void   TkAboutDlg (void)
+ }
+ declare 14 mac {
+     int  TkGenerateButtonEvent (int x, int y, \
+ 	    Window window, unsigned int state)
+ }
+ declare 16 mac {
+     void  TkGenWMDestroyEvent (Tk_Window tkwin)
+ }
+ declare 17 mac {
+     void  TkGenWMConfigureEvent (Tk_Window tkwin, int x, int y, \
+ 	    int width, int height, int flags)
+ }
+ declare 18 mac {
+     unsigned int TkMacButtonKeyState (void)
+ }
+ declare 19 mac {
+     void  TkMacClearMenubarActive (void)
+ }
+ declare 20 mac {
+     int  TkMacConvertEvent (EventRecord *eventPtr)
+ }
+ declare 21 mac {
+     int  TkMacDispatchMenuEvent (int menuID, int index)
+ }
+ declare 22 mac {
+     void  TkMacInstallCursor (int resizeOverride)
+ }
+ declare 23 mac {
+     int  TkMacConvertTkEvent (EventRecord *eventPtr, Window window)
+ }
+ declare 24 mac {
+     void  TkMacHandleTearoffMenu (void)
+ }
+ declare 27 mac {
+     void  TkMacDoHLEvent (EventRecord *theEvent)
+ }
+ declare 29 mac {
+     Time  TkMacGenerateTime (void)
+ }
+ declare 30 mac {
+     GWorldPtr  TkMacGetDrawablePort (Drawable drawable)
+ }
+ declare 32 mac {
+     Window   TkMacGetXWindow (WindowRef macWinPtr)
+ }
+ declare 33 mac {
+     int  TkMacGrowToplevel (WindowRef whichWindow, Point start)
+ }
+ declare 34 mac {
+     void   TkMacHandleMenuSelect (long mResult, int optionKeyPressed)
+ }
+ declare 35 mac {
+     int  TkMacHaveAppearance (void)
+ }
+ declare 36 mac {
+     void  TkMacInitAppleEvents (Tcl_Interp *interp)
+ }
+ declare 37 mac {
+     void   TkMacInitMenus (Tcl_Interp  *interp)
+ }
+ declare 38 mac {
+     void  TkMacInvalidateWindow (MacDrawable *macWin, int flag)
+ }
+ declare 39 mac {
+     int  TkMacIsCharacterMissing (Tk_Font tkfont, unsigned int searchChar)
+ }
+ declare 41 mac {
+     BitMapPtr TkMacMakeStippleMap(Drawable d1, Drawable d2)
+ }
+ declare 42 mac {
+     void  TkMacMenuClick (void)
+ }
+ declare 43 mac {
+     void  TkMacRegisterOffScreenWindow (Window window, GWorldPtr portPtr)
+ }
+ declare 46 mac {
+     void  TkMacSetHelpMenuItemCount (void)
+ }
+ declare 48 mac {
+     void  TkMacSetUpClippingRgn (Drawable drawable)
+ }
+ declare 49 mac {
+     void  TkMacSetUpGraphicsPort (GC gc)
+ }
+ declare 51 mac {
+     void  TkMacUnregisterMacWindow (GWorldPtr portPtr)
+ }
+ declare 52 mac {
+     int  TkMacUseMenuID (short macID)
+ }
+ declare 55 mac {
+     void  TkMacWindowOffset (WindowRef wRef, int *xOffset, int *yOffset)
+ }
+ declare 57 mac {
+     int   TkSetMacColor (unsigned long pixel, RGBColor *macColor)
+ }
+ declare 59 mac {
+     void  TkSuspendClipboard (void)
+ }
+ declare 61 mac {
+     int  TkMacZoomToplevel (WindowPtr whichWindow, Point where, short zoomPart)
+ }
+ declare 62 mac {
+     Tk_Window Tk_TopCoordsToWindow (Tk_Window tkwin, \
+ 	    int rootX, int rootY, int *newX, int *newY)
+ }
+ declare 65 mac {
+     void TkMacPreprocessMenu (void)
+ }
*** src/tkButton.c.orig	Tue Mar  7 21:35:38 2000
--- src/tkButton.c	Sat Apr 29 21:02:01 2000
***************
*** 16,21 ****
--- 16,22 ----
   */
  
  #include "bltInt.h"
+ #include "tkbltDecls.h"
  
  #ifndef NO_TILEBUTTON
  
***************
*** 501,512 ****
--- 502,517 ----
  static Tcl_CmdProc ButtonCmd, LabelCmd, CheckbuttonCmd, RadiobuttonCmd;
  #endif
  
+ #ifndef USE_TCL_STUBS
+ 
  EXTERN int TkCopyAndGlobalEval _ANSI_ARGS_((Tcl_Interp *interp, char *script));
  
  #if (TK_MAJOR_VERSION > 4)
  EXTERN void TkComputeAnchor _ANSI_ARGS_((Tk_Anchor anchor, Tk_Window tkwin, 
  	int padX, int padY, int innerWidth, int innerHeight, int *xPtr, 
  	int *yPtr));
+ #endif
+ 
  #endif
  
  #if (TK_MAJOR_VERSION == 4)
*** src/tkConsole.c.orig	Fri Oct  8 08:40:46 1999
--- src/tkConsole.c	Sat Apr 29 21:02:01 2000
***************
*** 13,18 ****
--- 13,21 ----
   * SCCS: @(#) tkConsole.c 1.55 98/01/02 17:40:37
   */
  
+ #undef USE_TCL_STUBS
+ #undef USE_TK_STUBS
+ 
  #include "tk.h"
  #include <string.h>
  
*** src/tkFrame.c.orig	Tue Mar  7 21:35:38 2000
--- src/tkFrame.c	Sat Apr 29 21:02:01 2000
***************
*** 16,21 ****
--- 16,22 ----
   */
  
  #include "bltInt.h"
+ #include "tkbltDecls.h"
  
  #ifndef NO_TILEFRAME
  /*
***************
*** 226,252 ****
  static Tcl_CmdProc FrameCmd, ToplevelCmd;
  #endif
  
  #ifdef TILE_MAINWINDOW
  EXTERN
  #else
  static
  #endif
  int TkCreateFrame _ANSI_ARGS_((ClientData clientData,
  	Tcl_Interp *interp, int argc, char **argv,
  	int toplevel, char *appName));
  
- EXTERN void TkSetWindowMenuBar _ANSI_ARGS_((Tcl_Interp *interp, Tk_Window tkwin,
-         char *oldMenuName, char *menuName));
- 
- EXTERN Tk_Window TkCreateMainWindow _ANSI_ARGS_((Tcl_Interp * interp, 
- 	char * screenName, char * baseName));
- EXTERN void TkSetClassProcs _ANSI_ARGS_((Tk_Window tkwin, void *procs, 
- 	ClientData instanceData));
- EXTERN void TkpSetMainMenubar _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window tkwin,
- 	char * menuName));
- EXTERN int TkpUseWindow _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window tkwin, 
- 	char * string));
- EXTERN void TkpMakeContainer _ANSI_ARGS_((Tk_Window tkwin));
  
  
  /*
--- 227,244 ----
  static Tcl_CmdProc FrameCmd, ToplevelCmd;
  #endif
  
+ #undef TkCreateFrame
+ 
  #ifdef TILE_MAINWINDOW
  EXTERN
  #else
+ #define TkCreateFrame TkCreateFrameEx
  static
  #endif
  int TkCreateFrame _ANSI_ARGS_((ClientData clientData,
  	Tcl_Interp *interp, int argc, char **argv,
  	int toplevel, char *appName));
  
  
  
  /*
*** src/tkIntDecls.h.orig	Sat Apr 29 21:02:01 2000
--- src/tkIntDecls.h	Sat Apr 29 21:02:01 2000
***************
*** 0 ****
--- 1,1183 ----
+ /*
+  * tkIntDecls.h --
+  *
+  *	This file contains the declarations for all unsupported
+  *	functions that are exported by the Tk library.  These
+  *	interfaces are not guaranteed to remain the same between
+  *	versions.  Use at your own risk.
+  *
+  * Copyright (c) 1998-1999 by Scriptics Corporation.
+  *
+  * See the file "license.terms" for information on usage and redistribution
+  * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+  *
+  * RCS: @(#) $Id: tkIntDecls.h,v 1.9 2000/02/09 02:13:51 hobbs Exp $
+  */
+ 
+ #ifndef _TKINTDECLS
+ #define _TKINTDECLS
+ 
+ #ifdef BUILD_tk
+ #undef TCL_STORAGE_CLASS
+ #define TCL_STORAGE_CLASS DLLEXPORT
+ #endif
+ 
+ struct TkText;
+ struct TkTextIndex;
+ struct TkTextBTree_;
+ struct TkTextDispChunk;
+ 
+ /*
+  * WARNING: This file is automatically generated by the tools/genStubs.tcl
+  * script.  Any modifications to the function declarations below should be made
+  * in the generic/tkInt.decls script.
+  */
+ 
+ /* !BEGIN!: Do not edit below this line. */
+ 
+ /*
+  * Exported function declarations:
+  */
+ 
+ /* Slot 0 is reserved */
+ /* 1 */
+ EXTERN void		TkBezierPoints _ANSI_ARGS_((double control[], 
+ 				int numSteps, double * coordPtr));
+ /* 2 */
+ EXTERN void		TkBezierScreenPoints _ANSI_ARGS_((Tk_Canvas canvas, 
+ 				double control[], int numSteps, 
+ 				XPoint * xPointPtr));
+ /* Slot 3 is reserved */
+ /* Slot 4 is reserved */
+ /* Slot 5 is reserved */
+ /* Slot 6 is reserved */
+ /* Slot 7 is reserved */
+ /* Slot 8 is reserved */
+ /* 9 */
+ EXTERN void		TkComputeAnchor _ANSI_ARGS_((Tk_Anchor anchor, 
+ 				Tk_Window tkwin, int padX, int padY, 
+ 				int innerWidth, int innerHeight, int * xPtr, 
+ 				int * yPtr));
+ /* 10 */
+ EXTERN int		TkCopyAndGlobalEval _ANSI_ARGS_((Tcl_Interp * interp, 
+ 				char * script));
+ /* Slot 11 is reserved */
+ /* Slot 12 is reserved */
+ /* 13 */
+ EXTERN int		TkCreateFrame _ANSI_ARGS_((ClientData clientData, 
+ 				Tcl_Interp * interp, int argc, char ** argv, 
+ 				int toplevel, char * appName));
+ /* 14 */
+ EXTERN Tk_Window	TkCreateMainWindow _ANSI_ARGS_((Tcl_Interp * interp, 
+ 				char * screenName, char * baseName));
+ /* Slot 15 is reserved */
+ /* Slot 16 is reserved */
+ /* Slot 17 is reserved */
+ /* 18 */
+ EXTERN void		TkDrawInsetFocusHighlight _ANSI_ARGS_((
+ 				Tk_Window tkwin, GC gc, int width, 
+ 				Drawable drawable, int padding));
+ /* Slot 19 is reserved */
+ /* Slot 20 is reserved */
+ /* Slot 21 is reserved */
+ /* Slot 22 is reserved */
+ /* Slot 23 is reserved */
+ /* Slot 24 is reserved */
+ /* Slot 25 is reserved */
+ /* Slot 26 is reserved */
+ /* Slot 27 is reserved */
+ /* Slot 28 is reserved */
+ /* Slot 29 is reserved */
+ /* 30 */
+ EXTERN char *		TkGetBitmapData _ANSI_ARGS_((Tcl_Interp * interp, 
+ 				char * string, char * fileName, 
+ 				int * widthPtr, int * heightPtr, 
+ 				int * hotXPtr, int * hotYPtr));
+ /* 31 */
+ EXTERN void		TkGetButtPoints _ANSI_ARGS_((double p1[], 
+ 				double p2[], double width, int project, 
+ 				double m1[], double m2[]));
+ /* Slot 32 is reserved */
+ /* 33 */
+ EXTERN char *		TkGetDefaultScreenName _ANSI_ARGS_((
+ 				Tcl_Interp * interp, char * screenName));
+ /* Slot 34 is reserved */
+ /* 35 */
+ EXTERN int		TkGetDisplayOf _ANSI_ARGS_((Tcl_Interp * interp, 
+ 				int objc, Tcl_Obj *CONST objv[], 
+ 				Tk_Window * tkwinPtr));
+ /* Slot 36 is reserved */
+ /* 37 */
+ EXTERN int		TkGetInterpNames _ANSI_ARGS_((Tcl_Interp * interp, 
+ 				Tk_Window tkwin));
+ /* 38 */
+ EXTERN int		TkGetMiterPoints _ANSI_ARGS_((double p1[], 
+ 				double p2[], double p3[], double width, 
+ 				double m1[], double m2[]));
+ /* 39 */
+ EXTERN void		TkGetPointerCoords _ANSI_ARGS_((Tk_Window tkwin, 
+ 				int * xPtr, int * yPtr));
+ /* 40 */
+ EXTERN void		TkGetServerInfo _ANSI_ARGS_((Tcl_Interp * interp, 
+ 				Tk_Window tkwin));
+ /* Slot 41 is reserved */
+ /* Slot 42 is reserved */
+ /* 43 */
+ EXTERN void		TkIncludePoint _ANSI_ARGS_((Tk_Item * itemPtr, 
+ 				double * pointPtr));
+ /* Slot 44 is reserved */
+ /* 45 */
+ EXTERN void		TkInstallFrameMenu _ANSI_ARGS_((Tk_Window tkwin));
+ /* 46 */
+ EXTERN char *		TkKeysymToString _ANSI_ARGS_((KeySym keysym));
+ /* 47 */
+ EXTERN int		TkLineToArea _ANSI_ARGS_((double end1Ptr[], 
+ 				double end2Ptr[], double rectPtr[]));
+ /* 48 */
+ EXTERN double		TkLineToPoint _ANSI_ARGS_((double end1Ptr[], 
+ 				double end2Ptr[], double pointPtr[]));
+ /* 49 */
+ EXTERN int		TkMakeBezierCurve _ANSI_ARGS_((Tk_Canvas canvas, 
+ 				double * pointPtr, int numPoints, 
+ 				int numSteps, XPoint xPoints[], 
+ 				double dblPoints[]));
+ /* 50 */
+ EXTERN void		TkMakeBezierPostscript _ANSI_ARGS_((
+ 				Tcl_Interp * interp, Tk_Canvas canvas, 
+ 				double * pointPtr, int numPoints));
+ /* Slot 51 is reserved */
+ /* Slot 52 is reserved */
+ /* 53 */
+ EXTERN int		TkOvalToArea _ANSI_ARGS_((double * ovalPtr, 
+ 				double * rectPtr));
+ /* 54 */
+ EXTERN double		TkOvalToPoint _ANSI_ARGS_((double ovalPtr[], 
+ 				double width, int filled, double pointPtr[]));
+ /* Slot 55 is reserved */
+ /* Slot 56 is reserved */
+ /* Slot 57 is reserved */
+ /* 58 */
+ EXTERN void		TkpDisplayWarning _ANSI_ARGS_((CONST char * msg, 
+ 				CONST char * title));
+ /* 59 */
+ EXTERN void		TkpGetAppName _ANSI_ARGS_((Tcl_Interp * interp, 
+ 				Tcl_DString * name));
+ /* Slot 60 is reserved */
+ /* Slot 61 is reserved */
+ /* 62 */
+ EXTERN int		TkpInit _ANSI_ARGS_((Tcl_Interp * interp));
+ /* 63 */
+ EXTERN void		TkpInitializeMenuBindings _ANSI_ARGS_((
+ 				Tcl_Interp * interp, 
+ 				Tk_BindingTable bindingTable));
+ /* 64 */
+ EXTERN void		TkpMakeContainer _ANSI_ARGS_((Tk_Window tkwin));
+ /* 65 */
+ EXTERN void		TkpMakeMenuWindow _ANSI_ARGS_((Tk_Window tkwin, 
+ 				int transient));
+ /* Slot 66 is reserved */
+ /* 67 */
+ EXTERN void		TkpMenuNotifyToplevelCreate _ANSI_ARGS_((
+ 				Tcl_Interp * interp1, char * menuName));
+ /* Slot 68 is reserved */
+ /* Slot 69 is reserved */
+ /* 70 */
+ EXTERN int		TkPolygonToArea _ANSI_ARGS_((double * polyPtr, 
+ 				int numPoints, double * rectPtr));
+ /* 71 */
+ EXTERN double		TkPolygonToPoint _ANSI_ARGS_((double * polyPtr, 
+ 				int numPoints, double * pointPtr));
+ /* Slot 72 is reserved */
+ /* Slot 73 is reserved */
+ /* 74 */
+ EXTERN void		TkpSetMainMenubar _ANSI_ARGS_((Tcl_Interp * interp, 
+ 				Tk_Window tkwin, char * menuName));
+ /* 75 */
+ EXTERN int		TkpUseWindow _ANSI_ARGS_((Tcl_Interp * interp, 
+ 				Tk_Window tkwin, char * string));
+ /* Slot 76 is reserved */
+ /* Slot 77 is reserved */
+ /* 78 */
+ EXTERN int		TkReadBitmapFile _ANSI_ARGS_((Display* display, 
+ 				Drawable d, CONST char* filename, 
+ 				unsigned int* width_return, 
+ 				unsigned int* height_return, 
+ 				Pixmap* bitmap_return, int* x_hot_return, 
+ 				int* y_hot_return));
+ /* 79 */
+ EXTERN int		TkScrollWindow _ANSI_ARGS_((Tk_Window tkwin, GC gc, 
+ 				int x, int y, int width, int height, int dx, 
+ 				int dy, TkRegion damageRgn));
+ /* Slot 80 is reserved */
+ /* 81 */
+ EXTERN void		TkSelEventProc _ANSI_ARGS_((Tk_Window tkwin, 
+ 				XEvent * eventPtr));
+ /* 82 */
+ EXTERN void		TkSelInit _ANSI_ARGS_((Tk_Window tkwin));
+ /* 83 */
+ EXTERN void		TkSelPropProc _ANSI_ARGS_((XEvent * eventPtr));
+ /* 84 */
+ EXTERN void		TkSetClassProcs _ANSI_ARGS_((Tk_Window tkwin, 
+ 				VOID * procs, ClientData instanceData));
+ /* 85 */
+ EXTERN void		TkSetWindowMenuBar _ANSI_ARGS_((Tcl_Interp * interp, 
+ 				Tk_Window tkwin, char * oldMenuName, 
+ 				char * menuName));
+ /* 86 */
+ EXTERN KeySym		TkStringToKeysym _ANSI_ARGS_((char * name));
+ /* 87 */
+ EXTERN int		TkThickPolyLineToArea _ANSI_ARGS_((double * coordPtr, 
+ 				int numPoints, double width, int capStyle, 
+ 				int joinStyle, double * rectPtr));
+ /* Slot 88 is reserved */
+ /* Slot 89 is reserved */
+ /* Slot 90 is reserved */
+ /* Slot 91 is reserved */
+ /* Slot 92 is reserved */
+ /* Slot 93 is reserved */
+ /* Slot 94 is reserved */
+ /* Slot 95 is reserved */
+ /* Slot 96 is reserved */
+ /* Slot 97 is reserved */
+ /* 98 */
+ EXTERN Tcl_Obj *	TkDebugBitmap _ANSI_ARGS_((Tk_Window tkwin, 
+ 				char * name));
+ /* 99 */
+ EXTERN Tcl_Obj *	TkDebugBorder _ANSI_ARGS_((Tk_Window tkwin, 
+ 				char * name));
+ /* 100 */
+ EXTERN Tcl_Obj *	TkDebugCursor _ANSI_ARGS_((Tk_Window tkwin, 
+ 				char * name));
+ /* 101 */
+ EXTERN Tcl_Obj *	TkDebugColor _ANSI_ARGS_((Tk_Window tkwin, 
+ 				char * name));
+ /* Slot 102 is reserved */
+ /* 103 */
+ EXTERN Tcl_Obj *	TkDebugFont _ANSI_ARGS_((Tk_Window tkwin, 
+ 				char * name));
+ /* Slot 104 is reserved */
+ /* 105 */
+ EXTERN Tcl_HashTable *	TkGetBitmapPredefTable _ANSI_ARGS_((void));
+ /* Slot 106 is reserved */
+ /* Slot 107 is reserved */
+ /* 108 */
+ EXTERN int		TkGetWindowFromObj _ANSI_ARGS_((Tcl_Interp * interp, 
+ 				Tk_Window tkwin, Tcl_Obj * objPtr, 
+ 				Tk_Window * windowPtr));
+ /* Slot 109 is reserved */
+ /* 110 */
+ EXTERN void		TkpGetSubFonts _ANSI_ARGS_((Tcl_Interp * interp, 
+ 				Tk_Font tkfont));
+ /* 111 */
+ EXTERN Tcl_Obj *	TkpGetSystemDefault _ANSI_ARGS_((Tk_Window tkwin, 
+ 				char * dbName, char * className));
+ /* 112 */
+ EXTERN void		TkpMenuThreadInit _ANSI_ARGS_((void));
+ #ifdef __WIN32__
+ /* 113 */
+ EXTERN void		TkClipBox _ANSI_ARGS_((TkRegion rgn, 
+ 				XRectangle* rect_return));
+ #endif /* __WIN32__ */
+ #ifdef MAC_TCL
+ /* 113 */
+ EXTERN void		TkClipBox _ANSI_ARGS_((TkRegion rgn, 
+ 				XRectangle* rect_return));
+ #endif /* MAC_TCL */
+ #ifdef __WIN32__
+ /* 114 */
+ EXTERN TkRegion		TkCreateRegion _ANSI_ARGS_((void));
+ #endif /* __WIN32__ */
+ #ifdef MAC_TCL
+ /* 114 */
+ EXTERN TkRegion		TkCreateRegion _ANSI_ARGS_((void));
+ #endif /* MAC_TCL */
+ #ifdef __WIN32__
+ /* 115 */
+ EXTERN void		TkDestroyRegion _ANSI_ARGS_((TkRegion rgn));
+ #endif /* __WIN32__ */
+ #ifdef MAC_TCL
+ /* 115 */
+ EXTERN void		TkDestroyRegion _ANSI_ARGS_((TkRegion rgn));
+ #endif /* MAC_TCL */
+ #ifdef __WIN32__
+ /* 116 */
+ EXTERN void		TkIntersectRegion _ANSI_ARGS_((TkRegion sra, 
+ 				TkRegion srcb, TkRegion dr_return));
+ #endif /* __WIN32__ */
+ #ifdef MAC_TCL
+ /* 116 */
+ EXTERN void		TkIntersectRegion _ANSI_ARGS_((TkRegion sra, 
+ 				TkRegion srcb, TkRegion dr_return));
+ #endif /* MAC_TCL */
+ #ifdef __WIN32__
+ /* 117 */
+ EXTERN int		TkRectInRegion _ANSI_ARGS_((TkRegion rgn, int x, 
+ 				int y, unsigned int width, 
+ 				unsigned int height));
+ #endif /* __WIN32__ */
+ #ifdef MAC_TCL
+ /* 117 */
+ EXTERN int		TkRectInRegion _ANSI_ARGS_((TkRegion rgn, int x, 
+ 				int y, unsigned int width, 
+ 				unsigned int height));
+ #endif /* MAC_TCL */
+ #ifdef __WIN32__
+ /* 118 */
+ EXTERN void		TkSetRegion _ANSI_ARGS_((Display* display, GC gc, 
+ 				TkRegion rgn));
+ #endif /* __WIN32__ */
+ #ifdef MAC_TCL
+ /* 118 */
+ EXTERN void		TkSetRegion _ANSI_ARGS_((Display* display, GC gc, 
+ 				TkRegion rgn));
+ #endif /* MAC_TCL */
+ #ifdef __WIN32__
+ /* 119 */
+ EXTERN void		TkUnionRectWithRegion _ANSI_ARGS_((XRectangle* rect, 
+ 				TkRegion src, TkRegion dr_return));
+ #endif /* __WIN32__ */
+ #ifdef MAC_TCL
+ /* 119 */
+ EXTERN void		TkUnionRectWithRegion _ANSI_ARGS_((XRectangle* rect, 
+ 				TkRegion src, TkRegion dr_return));
+ #endif /* MAC_TCL */
+ /* Slot 120 is reserved */
+ #ifdef MAC_TCL
+ /* 121 */
+ EXTERN Pixmap		TkpCreateNativeBitmap _ANSI_ARGS_((Display * display, 
+ 				char * source));
+ #endif /* MAC_TCL */
+ #ifdef MAC_TCL
+ /* 122 */
+ EXTERN void		TkpDefineNativeBitmaps _ANSI_ARGS_((void));
+ #endif /* MAC_TCL */
+ #ifdef MAC_TCL
+ /* 123 */
+ EXTERN unsigned long	TkpGetMS _ANSI_ARGS_((void));
+ #endif /* MAC_TCL */
+ #ifdef MAC_TCL
+ /* 124 */
+ EXTERN Pixmap		TkpGetNativeAppBitmap _ANSI_ARGS_((Display * display, 
+ 				CONST char * name, int * width, int * height));
+ #endif /* MAC_TCL */
+ /* Slot 125 is reserved */
+ /* Slot 126 is reserved */
+ /* Slot 127 is reserved */
+ /* Slot 128 is reserved */
+ /* Slot 129 is reserved */
+ /* Slot 130 is reserved */
+ #ifdef MAC_TCL
+ /* 131 */
+ EXTERN int		TkGenerateButtonEvent _ANSI_ARGS_((int x, int y, 
+ 				Window window, unsigned int state));
+ #endif /* MAC_TCL */
+ /* Slot 132 is reserved */
+ #ifdef MAC_TCL
+ /* 133 */
+ EXTERN void		TkGenWMDestroyEvent _ANSI_ARGS_((Tk_Window tkwin));
+ #endif /* MAC_TCL */
+ #ifdef MAC_TCL
+ /* 134 */
+ EXTERN void		TkGenWMConfigureEvent _ANSI_ARGS_((Tk_Window tkwin, 
+ 				int x, int y, int width, int height, 
+ 				int flags));
+ #endif /* MAC_TCL */
+ /* 135 */
+ EXTERN void		TkpDrawHighlightBorder _ANSI_ARGS_((Tk_Window tkwin, 
+ 				GC fgGC, GC bgGC, int highlightWidth, 
+ 				Drawable drawable));
+ /* Slot 136 is reserved */
+ /* 137 */
+ EXTERN void		TkpSetKeycodeAndState _ANSI_ARGS_((Tk_Window tkwin, 
+ 				KeySym keySym, XEvent * eventPtr));
+ /* Slot 138 is reserved */
+ /* 139 */
+ EXTERN int		TkTextGetIndex _ANSI_ARGS_((Tcl_Interp * interp, 
+ 				struct TkText * textPtr, char * string, 
+ 				struct TkTextIndex * indexPtr));
+ /* 140 */
+ EXTERN void		TkTextIndexBackBytes _ANSI_ARGS_((
+ 				CONST struct TkTextIndex * srcPtr, int count, 
+ 				struct TkTextIndex * dstPtr));
+ /* 141 */
+ EXTERN void		TkTextIndexForwBytes _ANSI_ARGS_((
+ 				CONST struct TkTextIndex * srcPtr, int count, 
+ 				struct TkTextIndex * dstPtr));
+ /* 142 */
+ EXTERN struct TkTextIndex * TkTextMakeByteIndex _ANSI_ARGS_((
+ 				struct TkTextBTree_ * tree, int lineIndex, 
+ 				int byteIndex, struct TkTextIndex * indexPtr));
+ /* 143 */
+ EXTERN void		TkTextPrintIndex _ANSI_ARGS_((
+ 				CONST struct TkTextIndex * indexPtr, 
+ 				char * string));
+ /* 144 */
+ EXTERN struct TkTextSegment * TkTextSetMark _ANSI_ARGS_((
+ 				struct TkText * textPtr, char * name, 
+ 				struct TkTextIndex * indexPtr));
+ /* 145 */
+ EXTERN int		TkTextXviewCmd _ANSI_ARGS_((struct TkText * textPtr, 
+ 				Tcl_Interp * interp, int argc, char ** argv));
+ /* 146 */
+ EXTERN void		TkTextChanged _ANSI_ARGS_((struct TkText * textPtr, 
+ 				struct TkTextIndex * index1Ptr, 
+ 				struct TkTextIndex * index2Ptr));
+ /* 147 */
+ EXTERN int		TkBTreeNumLines _ANSI_ARGS_((
+ 				struct TkTextBTree_ * tree));
+ /* 148 */
+ EXTERN void		TkTextInsertDisplayProc _ANSI_ARGS_((
+ 				struct TkTextDispChunk * chunkPtr, int x, 
+ 				int y, int height, int baseline, 
+ 				Display * display, Drawable dst, int screenY));
+ 
+ typedef struct TkIntStubs {
+     int magic;
+     struct TkIntStubHooks *hooks;
+ 
+     void *reserved0;
+     void (*tkBezierPoints) _ANSI_ARGS_((double control[], int numSteps, double * coordPtr)); /* 1 */
+     void (*tkBezierScreenPoints) _ANSI_ARGS_((Tk_Canvas canvas, double control[], int numSteps, XPoint * xPointPtr)); /* 2 */
+     void *reserved3;
+     void *reserved4;
+     void *reserved5;
+     void *reserved6;
+     void *reserved7;
+     void *reserved8;
+     void (*tkComputeAnchor) _ANSI_ARGS_((Tk_Anchor anchor, Tk_Window tkwin, int padX, int padY, int innerWidth, int innerHeight, int * xPtr, int * yPtr)); /* 9 */
+     int (*tkCopyAndGlobalEval) _ANSI_ARGS_((Tcl_Interp * interp, char * script)); /* 10 */
+     void *reserved11;
+     void *reserved12;
+     int (*tkCreateFrame) _ANSI_ARGS_((ClientData clientData, Tcl_Interp * interp, int argc, char ** argv, int toplevel, char * appName)); /* 13 */
+     Tk_Window (*tkCreateMainWindow) _ANSI_ARGS_((Tcl_Interp * interp, char * screenName, char * baseName)); /* 14 */
+     void *reserved15;
+     void *reserved16;
+     void *reserved17;
+     void (*tkDrawInsetFocusHighlight) _ANSI_ARGS_((Tk_Window tkwin, GC gc, int width, Drawable drawable, int padding)); /* 18 */
+     void *reserved19;
+     void *reserved20;
+     void *reserved21;
+     void *reserved22;
+     void *reserved23;
+     void *reserved24;
+     void *reserved25;
+     void *reserved26;
+     void *reserved27;
+     void *reserved28;
+     void *reserved29;
+     char * (*tkGetBitmapData) _ANSI_ARGS_((Tcl_Interp * interp, char * string, char * fileName, int * widthPtr, int * heightPtr, int * hotXPtr, int * hotYPtr)); /* 30 */
+     void (*tkGetButtPoints) _ANSI_ARGS_((double p1[], double p2[], double width, int project, double m1[], double m2[])); /* 31 */
+     void *reserved32;
+     char * (*tkGetDefaultScreenName) _ANSI_ARGS_((Tcl_Interp * interp, char * screenName)); /* 33 */
+     void *reserved34;
+     int (*tkGetDisplayOf) _ANSI_ARGS_((Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[], Tk_Window * tkwinPtr)); /* 35 */
+     void *reserved36;
+     int (*tkGetInterpNames) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window tkwin)); /* 37 */
+     int (*tkGetMiterPoints) _ANSI_ARGS_((double p1[], double p2[], double p3[], double width, double m1[], double m2[])); /* 38 */
+     void (*tkGetPointerCoords) _ANSI_ARGS_((Tk_Window tkwin, int * xPtr, int * yPtr)); /* 39 */
+     void (*tkGetServerInfo) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window tkwin)); /* 40 */
+     void *reserved41;
+     void *reserved42;
+     void (*tkIncludePoint) _ANSI_ARGS_((Tk_Item * itemPtr, double * pointPtr)); /* 43 */
+     void *reserved44;
+     void (*tkInstallFrameMenu) _ANSI_ARGS_((Tk_Window tkwin)); /* 45 */
+     char * (*tkKeysymToString) _ANSI_ARGS_((KeySym keysym)); /* 46 */
+     int (*tkLineToArea) _ANSI_ARGS_((double end1Ptr[], double end2Ptr[], double rectPtr[])); /* 47 */
+     double (*tkLineToPoint) _ANSI_ARGS_((double end1Ptr[], double end2Ptr[], double pointPtr[])); /* 48 */
+     int (*tkMakeBezierCurve) _ANSI_ARGS_((Tk_Canvas canvas, double * pointPtr, int numPoints, int numSteps, XPoint xPoints[], double dblPoints[])); /* 49 */
+     void (*tkMakeBezierPostscript) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Canvas canvas, double * pointPtr, int numPoints)); /* 50 */
+     void *reserved51;
+     void *reserved52;
+     int (*tkOvalToArea) _ANSI_ARGS_((double * ovalPtr, double * rectPtr)); /* 53 */
+     double (*tkOvalToPoint) _ANSI_ARGS_((double ovalPtr[], double width, int filled, double pointPtr[])); /* 54 */
+     void *reserved55;
+     void *reserved56;
+     void *reserved57;
+     void (*tkpDisplayWarning) _ANSI_ARGS_((CONST char * msg, CONST char * title)); /* 58 */
+     void (*tkpGetAppName) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_DString * name)); /* 59 */
+     void *reserved60;
+     void *reserved61;
+     int (*tkpInit) _ANSI_ARGS_((Tcl_Interp * interp)); /* 62 */
+     void (*tkpInitializeMenuBindings) _ANSI_ARGS_((Tcl_Interp * interp, Tk_BindingTable bindingTable)); /* 63 */
+     void (*tkpMakeContainer) _ANSI_ARGS_((Tk_Window tkwin)); /* 64 */
+     void (*tkpMakeMenuWindow) _ANSI_ARGS_((Tk_Window tkwin, int transient)); /* 65 */
+     void *reserved66;
+     void (*tkpMenuNotifyToplevelCreate) _ANSI_ARGS_((Tcl_Interp * interp1, char * menuName)); /* 67 */
+     void *reserved68;
+     void *reserved69;
+     int (*tkPolygonToArea) _ANSI_ARGS_((double * polyPtr, int numPoints, double * rectPtr)); /* 70 */
+     double (*tkPolygonToPoint) _ANSI_ARGS_((double * polyPtr, int numPoints, double * pointPtr)); /* 71 */
+     void *reserved72;
+     void *reserved73;
+     void (*tkpSetMainMenubar) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window tkwin, char * menuName)); /* 74 */
+     int (*tkpUseWindow) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window tkwin, char * string)); /* 75 */
+     void *reserved76;
+     void *reserved77;
+     int (*tkReadBitmapFile) _ANSI_ARGS_((Display* display, Drawable d, CONST char* filename, unsigned int* width_return, unsigned int* height_return, Pixmap* bitmap_return, int* x_hot_return, int* y_hot_return)); /* 78 */
+     int (*tkScrollWindow) _ANSI_ARGS_((Tk_Window tkwin, GC gc, int x, int y, int width, int height, int dx, int dy, TkRegion damageRgn)); /* 79 */
+     void *reserved80;
+     void (*tkSelEventProc) _ANSI_ARGS_((Tk_Window tkwin, XEvent * eventPtr)); /* 81 */
+     void (*tkSelInit) _ANSI_ARGS_((Tk_Window tkwin)); /* 82 */
+     void (*tkSelPropProc) _ANSI_ARGS_((XEvent * eventPtr)); /* 83 */
+     void (*tkSetClassProcs) _ANSI_ARGS_((Tk_Window tkwin, VOID * procs, ClientData instanceData)); /* 84 */
+     void (*tkSetWindowMenuBar) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window tkwin, char * oldMenuName, char * menuName)); /* 85 */
+     KeySym (*tkStringToKeysym) _ANSI_ARGS_((char * name)); /* 86 */
+     int (*tkThickPolyLineToArea) _ANSI_ARGS_((double * coordPtr, int numPoints, double width, int capStyle, int joinStyle, double * rectPtr)); /* 87 */
+     void *reserved88;
+     void *reserved89;
+     void *reserved90;
+     void *reserved91;
+     void *reserved92;
+     void *reserved93;
+     void *reserved94;
+     void *reserved95;
+     void *reserved96;
+     void *reserved97;
+     Tcl_Obj * (*tkDebugBitmap) _ANSI_ARGS_((Tk_Window tkwin, char * name)); /* 98 */
+     Tcl_Obj * (*tkDebugBorder) _ANSI_ARGS_((Tk_Window tkwin, char * name)); /* 99 */
+     Tcl_Obj * (*tkDebugCursor) _ANSI_ARGS_((Tk_Window tkwin, char * name)); /* 100 */
+     Tcl_Obj * (*tkDebugColor) _ANSI_ARGS_((Tk_Window tkwin, char * name)); /* 101 */
+     void *reserved102;
+     Tcl_Obj * (*tkDebugFont) _ANSI_ARGS_((Tk_Window tkwin, char * name)); /* 103 */
+     void *reserved104;
+     Tcl_HashTable * (*tkGetBitmapPredefTable) _ANSI_ARGS_((void)); /* 105 */
+     void *reserved106;
+     void *reserved107;
+     int (*tkGetWindowFromObj) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window tkwin, Tcl_Obj * objPtr, Tk_Window * windowPtr)); /* 108 */
+     void *reserved109;
+     void (*tkpGetSubFonts) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Font tkfont)); /* 110 */
+     Tcl_Obj * (*tkpGetSystemDefault) _ANSI_ARGS_((Tk_Window tkwin, char * dbName, char * className)); /* 111 */
+     void (*tkpMenuThreadInit) _ANSI_ARGS_((void)); /* 112 */
+ #if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
+     void *reserved113;
+ #endif /* UNIX */
+ #ifdef __WIN32__
+     void (*tkClipBox) _ANSI_ARGS_((TkRegion rgn, XRectangle* rect_return)); /* 113 */
+ #endif /* __WIN32__ */
+ #ifdef MAC_TCL
+     void (*tkClipBox) _ANSI_ARGS_((TkRegion rgn, XRectangle* rect_return)); /* 113 */
+ #endif /* MAC_TCL */
+ #if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
+     void *reserved114;
+ #endif /* UNIX */
+ #ifdef __WIN32__
+     TkRegion (*tkCreateRegion) _ANSI_ARGS_((void)); /* 114 */
+ #endif /* __WIN32__ */
+ #ifdef MAC_TCL
+     TkRegion (*tkCreateRegion) _ANSI_ARGS_((void)); /* 114 */
+ #endif /* MAC_TCL */
+ #if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
+     void *reserved115;
+ #endif /* UNIX */
+ #ifdef __WIN32__
+     void (*tkDestroyRegion) _ANSI_ARGS_((TkRegion rgn)); /* 115 */
+ #endif /* __WIN32__ */
+ #ifdef MAC_TCL
+     void (*tkDestroyRegion) _ANSI_ARGS_((TkRegion rgn)); /* 115 */
+ #endif /* MAC_TCL */
+ #if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
+     void *reserved116;
+ #endif /* UNIX */
+ #ifdef __WIN32__
+     void (*tkIntersectRegion) _ANSI_ARGS_((TkRegion sra, TkRegion srcb, TkRegion dr_return)); /* 116 */
+ #endif /* __WIN32__ */
+ #ifdef MAC_TCL
+     void (*tkIntersectRegion) _ANSI_ARGS_((TkRegion sra, TkRegion srcb, TkRegion dr_return)); /* 116 */
+ #endif /* MAC_TCL */
+ #if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
+     void *reserved117;
+ #endif /* UNIX */
+ #ifdef __WIN32__
+     int (*tkRectInRegion) _ANSI_ARGS_((TkRegion rgn, int x, int y, unsigned int width, unsigned int height)); /* 117 */
+ #endif /* __WIN32__ */
+ #ifdef MAC_TCL
+     int (*tkRectInRegion) _ANSI_ARGS_((TkRegion rgn, int x, int y, unsigned int width, unsigned int height)); /* 117 */
+ #endif /* MAC_TCL */
+ #if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
+     void *reserved118;
+ #endif /* UNIX */
+ #ifdef __WIN32__
+     void (*tkSetRegion) _ANSI_ARGS_((Display* display, GC gc, TkRegion rgn)); /* 118 */
+ #endif /* __WIN32__ */
+ #ifdef MAC_TCL
+     void (*tkSetRegion) _ANSI_ARGS_((Display* display, GC gc, TkRegion rgn)); /* 118 */
+ #endif /* MAC_TCL */
+ #if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
+     void *reserved119;
+ #endif /* UNIX */
+ #ifdef __WIN32__
+     void (*tkUnionRectWithRegion) _ANSI_ARGS_((XRectangle* rect, TkRegion src, TkRegion dr_return)); /* 119 */
+ #endif /* __WIN32__ */
+ #ifdef MAC_TCL
+     void (*tkUnionRectWithRegion) _ANSI_ARGS_((XRectangle* rect, TkRegion src, TkRegion dr_return)); /* 119 */
+ #endif /* MAC_TCL */
+     void *reserved120;
+ #if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
+     void *reserved121;
+ #endif /* UNIX */
+ #ifdef __WIN32__
+     void *reserved121;
+ #endif /* __WIN32__ */
+ #ifdef MAC_TCL
+     Pixmap (*tkpCreateNativeBitmap) _ANSI_ARGS_((Display * display, char * source)); /* 121 */
+ #endif /* MAC_TCL */
+ #if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
+     void *reserved122;
+ #endif /* UNIX */
+ #ifdef __WIN32__
+     void *reserved122;
+ #endif /* __WIN32__ */
+ #ifdef MAC_TCL
+     void (*tkpDefineNativeBitmaps) _ANSI_ARGS_((void)); /* 122 */
+ #endif /* MAC_TCL */
+ #if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
+     void *reserved123;
+ #endif /* UNIX */
+ #ifdef __WIN32__
+     void *reserved123;
+ #endif /* __WIN32__ */
+ #ifdef MAC_TCL
+     unsigned long (*tkpGetMS) _ANSI_ARGS_((void)); /* 123 */
+ #endif /* MAC_TCL */
+ #if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
+     void *reserved124;
+ #endif /* UNIX */
+ #ifdef __WIN32__
+     void *reserved124;
+ #endif /* __WIN32__ */
+ #ifdef MAC_TCL
+     Pixmap (*tkpGetNativeAppBitmap) _ANSI_ARGS_((Display * display, CONST char * name, int * width, int * height)); /* 124 */
+ #endif /* MAC_TCL */
+     void *reserved125;
+     void *reserved126;
+     void *reserved127;
+     void *reserved128;
+     void *reserved129;
+     void *reserved130;
+ #if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
+     void *reserved131;
+ #endif /* UNIX */
+ #ifdef __WIN32__
+     void *reserved131;
+ #endif /* __WIN32__ */
+ #ifdef MAC_TCL
+     int (*tkGenerateButtonEvent) _ANSI_ARGS_((int x, int y, Window window, unsigned int state)); /* 131 */
+ #endif /* MAC_TCL */
+     void *reserved132;
+ #if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
+     void *reserved133;
+ #endif /* UNIX */
+ #ifdef __WIN32__
+     void *reserved133;
+ #endif /* __WIN32__ */
+ #ifdef MAC_TCL
+     void (*tkGenWMDestroyEvent) _ANSI_ARGS_((Tk_Window tkwin)); /* 133 */
+ #endif /* MAC_TCL */
+ #if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
+     void *reserved134;
+ #endif /* UNIX */
+ #ifdef __WIN32__
+     void *reserved134;
+ #endif /* __WIN32__ */
+ #ifdef MAC_TCL
+     void (*tkGenWMConfigureEvent) _ANSI_ARGS_((Tk_Window tkwin, int x, int y, int width, int height, int flags)); /* 134 */
+ #endif /* MAC_TCL */
+     void (*tkpDrawHighlightBorder) _ANSI_ARGS_((Tk_Window tkwin, GC fgGC, GC bgGC, int highlightWidth, Drawable drawable)); /* 135 */
+     void *reserved136;
+     void (*tkpSetKeycodeAndState) _ANSI_ARGS_((Tk_Window tkwin, KeySym keySym, XEvent * eventPtr)); /* 137 */
+     void *reserved138;
+     int (*tkTextGetIndex) _ANSI_ARGS_((Tcl_Interp * interp, struct TkText * textPtr, char * string, struct TkTextIndex * indexPtr)); /* 139 */
+     void (*tkTextIndexBackBytes) _ANSI_ARGS_((CONST struct TkTextIndex * srcPtr, int count, struct TkTextIndex * dstPtr)); /* 140 */
+     void (*tkTextIndexForwBytes) _ANSI_ARGS_((CONST struct TkTextIndex * srcPtr, int count, struct TkTextIndex * dstPtr)); /* 141 */
+     struct TkTextIndex * (*tkTextMakeByteIndex) _ANSI_ARGS_((struct TkTextBTree_ * tree, int lineIndex, int byteIndex, struct TkTextIndex * indexPtr)); /* 142 */
+     void (*tkTextPrintIndex) _ANSI_ARGS_((CONST struct TkTextIndex * indexPtr, char * string)); /* 143 */
+     struct TkTextSegment * (*tkTextSetMark) _ANSI_ARGS_((struct TkText * textPtr, char * name, struct TkTextIndex * indexPtr)); /* 144 */
+     int (*tkTextXviewCmd) _ANSI_ARGS_((struct TkText * textPtr, Tcl_Interp * interp, int argc, char ** argv)); /* 145 */
+     void (*tkTextChanged) _ANSI_ARGS_((struct TkText * textPtr, struct TkTextIndex * index1Ptr, struct TkTextIndex * index2Ptr)); /* 146 */
+     int (*tkBTreeNumLines) _ANSI_ARGS_((struct TkTextBTree_ * tree)); /* 147 */
+     void (*tkTextInsertDisplayProc) _ANSI_ARGS_((struct TkTextDispChunk * chunkPtr, int x, int y, int height, int baseline, Display * display, Drawable dst, int screenY)); /* 148 */
+ } TkIntStubs;
+ 
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+ extern TkIntStubs *tkIntStubsPtr;
+ #ifdef __cplusplus
+ }
+ #endif
+ 
+ #if defined(USE_TK_STUBS) && !defined(USE_TK_STUB_PROCS)
+ 
+ /*
+  * Inline function declarations:
+  */
+ 
+ /* Slot 0 is reserved */
+ #ifndef TkBezierPoints
+ #define TkBezierPoints \
+ 	(tkIntStubsPtr->tkBezierPoints) /* 1 */
+ #endif
+ #ifndef TkBezierScreenPoints
+ #define TkBezierScreenPoints \
+ 	(tkIntStubsPtr->tkBezierScreenPoints) /* 2 */
+ #endif
+ /* Slot 3 is reserved */
+ /* Slot 4 is reserved */
+ /* Slot 5 is reserved */
+ /* Slot 6 is reserved */
+ /* Slot 7 is reserved */
+ /* Slot 8 is reserved */
+ #ifndef TkComputeAnchor
+ #define TkComputeAnchor \
+ 	(tkIntStubsPtr->tkComputeAnchor) /* 9 */
+ #endif
+ #ifndef TkCopyAndGlobalEval
+ #define TkCopyAndGlobalEval \
+ 	(tkIntStubsPtr->tkCopyAndGlobalEval) /* 10 */
+ #endif
+ /* Slot 11 is reserved */
+ /* Slot 12 is reserved */
+ #ifndef TkCreateFrame
+ #define TkCreateFrame \
+ 	(tkIntStubsPtr->tkCreateFrame) /* 13 */
+ #endif
+ #ifndef TkCreateMainWindow
+ #define TkCreateMainWindow \
+ 	(tkIntStubsPtr->tkCreateMainWindow) /* 14 */
+ #endif
+ /* Slot 15 is reserved */
+ /* Slot 16 is reserved */
+ /* Slot 17 is reserved */
+ #ifndef TkDrawInsetFocusHighlight
+ #define TkDrawInsetFocusHighlight \
+ 	(tkIntStubsPtr->tkDrawInsetFocusHighlight) /* 18 */
+ #endif
+ /* Slot 19 is reserved */
+ /* Slot 20 is reserved */
+ /* Slot 21 is reserved */
+ /* Slot 22 is reserved */
+ /* Slot 23 is reserved */
+ /* Slot 24 is reserved */
+ /* Slot 25 is reserved */
+ /* Slot 26 is reserved */
+ /* Slot 27 is reserved */
+ /* Slot 28 is reserved */
+ /* Slot 29 is reserved */
+ #ifndef TkGetBitmapData
+ #define TkGetBitmapData \
+ 	(tkIntStubsPtr->tkGetBitmapData) /* 30 */
+ #endif
+ #ifndef TkGetButtPoints
+ #define TkGetButtPoints \
+ 	(tkIntStubsPtr->tkGetButtPoints) /* 31 */
+ #endif
+ /* Slot 32 is reserved */
+ #ifndef TkGetDefaultScreenName
+ #define TkGetDefaultScreenName \
+ 	(tkIntStubsPtr->tkGetDefaultScreenName) /* 33 */
+ #endif
+ /* Slot 34 is reserved */
+ #ifndef TkGetDisplayOf
+ #define TkGetDisplayOf \
+ 	(tkIntStubsPtr->tkGetDisplayOf) /* 35 */
+ #endif
+ /* Slot 36 is reserved */
+ #ifndef TkGetInterpNames
+ #define TkGetInterpNames \
+ 	(tkIntStubsPtr->tkGetInterpNames) /* 37 */
+ #endif
+ #ifndef TkGetMiterPoints
+ #define TkGetMiterPoints \
+ 	(tkIntStubsPtr->tkGetMiterPoints) /* 38 */
+ #endif
+ #ifndef TkGetPointerCoords
+ #define TkGetPointerCoords \
+ 	(tkIntStubsPtr->tkGetPointerCoords) /* 39 */
+ #endif
+ #ifndef TkGetServerInfo
+ #define TkGetServerInfo \
+ 	(tkIntStubsPtr->tkGetServerInfo) /* 40 */
+ #endif
+ /* Slot 41 is reserved */
+ /* Slot 42 is reserved */
+ #ifndef TkIncludePoint
+ #define TkIncludePoint \
+ 	(tkIntStubsPtr->tkIncludePoint) /* 43 */
+ #endif
+ /* Slot 44 is reserved */
+ #ifndef TkInstallFrameMenu
+ #define TkInstallFrameMenu \
+ 	(tkIntStubsPtr->tkInstallFrameMenu) /* 45 */
+ #endif
+ #ifndef TkKeysymToString
+ #define TkKeysymToString \
+ 	(tkIntStubsPtr->tkKeysymToString) /* 46 */
+ #endif
+ #ifndef TkLineToArea
+ #define TkLineToArea \
+ 	(tkIntStubsPtr->tkLineToArea) /* 47 */
+ #endif
+ #ifndef TkLineToPoint
+ #define TkLineToPoint \
+ 	(tkIntStubsPtr->tkLineToPoint) /* 48 */
+ #endif
+ #ifndef TkMakeBezierCurve
+ #define TkMakeBezierCurve \
+ 	(tkIntStubsPtr->tkMakeBezierCurve) /* 49 */
+ #endif
+ #ifndef TkMakeBezierPostscript
+ #define TkMakeBezierPostscript \
+ 	(tkIntStubsPtr->tkMakeBezierPostscript) /* 50 */
+ #endif
+ /* Slot 51 is reserved */
+ /* Slot 52 is reserved */
+ #ifndef TkOvalToArea
+ #define TkOvalToArea \
+ 	(tkIntStubsPtr->tkOvalToArea) /* 53 */
+ #endif
+ #ifndef TkOvalToPoint
+ #define TkOvalToPoint \
+ 	(tkIntStubsPtr->tkOvalToPoint) /* 54 */
+ #endif
+ /* Slot 55 is reserved */
+ /* Slot 56 is reserved */
+ /* Slot 57 is reserved */
+ #ifndef TkpDisplayWarning
+ #define TkpDisplayWarning \
+ 	(tkIntStubsPtr->tkpDisplayWarning) /* 58 */
+ #endif
+ #ifndef TkpGetAppName
+ #define TkpGetAppName \
+ 	(tkIntStubsPtr->tkpGetAppName) /* 59 */
+ #endif
+ /* Slot 60 is reserved */
+ /* Slot 61 is reserved */
+ #ifndef TkpInit
+ #define TkpInit \
+ 	(tkIntStubsPtr->tkpInit) /* 62 */
+ #endif
+ #ifndef TkpInitializeMenuBindings
+ #define TkpInitializeMenuBindings \
+ 	(tkIntStubsPtr->tkpInitializeMenuBindings) /* 63 */
+ #endif
+ #ifndef TkpMakeContainer
+ #define TkpMakeContainer \
+ 	(tkIntStubsPtr->tkpMakeContainer) /* 64 */
+ #endif
+ #ifndef TkpMakeMenuWindow
+ #define TkpMakeMenuWindow \
+ 	(tkIntStubsPtr->tkpMakeMenuWindow) /* 65 */
+ #endif
+ /* Slot 66 is reserved */
+ #ifndef TkpMenuNotifyToplevelCreate
+ #define TkpMenuNotifyToplevelCreate \
+ 	(tkIntStubsPtr->tkpMenuNotifyToplevelCreate) /* 67 */
+ #endif
+ /* Slot 68 is reserved */
+ /* Slot 69 is reserved */
+ #ifndef TkPolygonToArea
+ #define TkPolygonToArea \
+ 	(tkIntStubsPtr->tkPolygonToArea) /* 70 */
+ #endif
+ #ifndef TkPolygonToPoint
+ #define TkPolygonToPoint \
+ 	(tkIntStubsPtr->tkPolygonToPoint) /* 71 */
+ #endif
+ /* Slot 72 is reserved */
+ /* Slot 73 is reserved */
+ #ifndef TkpSetMainMenubar
+ #define TkpSetMainMenubar \
+ 	(tkIntStubsPtr->tkpSetMainMenubar) /* 74 */
+ #endif
+ #ifndef TkpUseWindow
+ #define TkpUseWindow \
+ 	(tkIntStubsPtr->tkpUseWindow) /* 75 */
+ #endif
+ /* Slot 76 is reserved */
+ /* Slot 77 is reserved */
+ #ifndef TkReadBitmapFile
+ #define TkReadBitmapFile \
+ 	(tkIntStubsPtr->tkReadBitmapFile) /* 78 */
+ #endif
+ #ifndef TkScrollWindow
+ #define TkScrollWindow \
+ 	(tkIntStubsPtr->tkScrollWindow) /* 79 */
+ #endif
+ /* Slot 80 is reserved */
+ #ifndef TkSelEventProc
+ #define TkSelEventProc \
+ 	(tkIntStubsPtr->tkSelEventProc) /* 81 */
+ #endif
+ #ifndef TkSelInit
+ #define TkSelInit \
+ 	(tkIntStubsPtr->tkSelInit) /* 82 */
+ #endif
+ #ifndef TkSelPropProc
+ #define TkSelPropProc \
+ 	(tkIntStubsPtr->tkSelPropProc) /* 83 */
+ #endif
+ #ifndef TkSetClassProcs
+ #define TkSetClassProcs \
+ 	(tkIntStubsPtr->tkSetClassProcs) /* 84 */
+ #endif
+ #ifndef TkSetWindowMenuBar
+ #define TkSetWindowMenuBar \
+ 	(tkIntStubsPtr->tkSetWindowMenuBar) /* 85 */
+ #endif
+ #ifndef TkStringToKeysym
+ #define TkStringToKeysym \
+ 	(tkIntStubsPtr->tkStringToKeysym) /* 86 */
+ #endif
+ #ifndef TkThickPolyLineToArea
+ #define TkThickPolyLineToArea \
+ 	(tkIntStubsPtr->tkThickPolyLineToArea) /* 87 */
+ #endif
+ /* Slot 88 is reserved */
+ /* Slot 89 is reserved */
+ /* Slot 90 is reserved */
+ /* Slot 91 is reserved */
+ /* Slot 92 is reserved */
+ /* Slot 93 is reserved */
+ /* Slot 94 is reserved */
+ /* Slot 95 is reserved */
+ /* Slot 96 is reserved */
+ /* Slot 97 is reserved */
+ #ifndef TkDebugBitmap
+ #define TkDebugBitmap \
+ 	(tkIntStubsPtr->tkDebugBitmap) /* 98 */
+ #endif
+ #ifndef TkDebugBorder
+ #define TkDebugBorder \
+ 	(tkIntStubsPtr->tkDebugBorder) /* 99 */
+ #endif
+ #ifndef TkDebugCursor
+ #define TkDebugCursor \
+ 	(tkIntStubsPtr->tkDebugCursor) /* 100 */
+ #endif
+ #ifndef TkDebugColor
+ #define TkDebugColor \
+ 	(tkIntStubsPtr->tkDebugColor) /* 101 */
+ #endif
+ /* Slot 102 is reserved */
+ #ifndef TkDebugFont
+ #define TkDebugFont \
+ 	(tkIntStubsPtr->tkDebugFont) /* 103 */
+ #endif
+ /* Slot 104 is reserved */
+ #ifndef TkGetBitmapPredefTable
+ #define TkGetBitmapPredefTable \
+ 	(tkIntStubsPtr->tkGetBitmapPredefTable) /* 105 */
+ #endif
+ /* Slot 106 is reserved */
+ /* Slot 107 is reserved */
+ #ifndef TkGetWindowFromObj
+ #define TkGetWindowFromObj \
+ 	(tkIntStubsPtr->tkGetWindowFromObj) /* 108 */
+ #endif
+ /* Slot 109 is reserved */
+ #ifndef TkpGetSubFonts
+ #define TkpGetSubFonts \
+ 	(tkIntStubsPtr->tkpGetSubFonts) /* 110 */
+ #endif
+ #ifndef TkpGetSystemDefault
+ #define TkpGetSystemDefault \
+ 	(tkIntStubsPtr->tkpGetSystemDefault) /* 111 */
+ #endif
+ #ifndef TkpMenuThreadInit
+ #define TkpMenuThreadInit \
+ 	(tkIntStubsPtr->tkpMenuThreadInit) /* 112 */
+ #endif
+ #ifdef __WIN32__
+ #ifndef TkClipBox
+ #define TkClipBox \
+ 	(tkIntStubsPtr->tkClipBox) /* 113 */
+ #endif
+ #endif /* __WIN32__ */
+ #ifdef MAC_TCL
+ #ifndef TkClipBox
+ #define TkClipBox \
+ 	(tkIntStubsPtr->tkClipBox) /* 113 */
+ #endif
+ #endif /* MAC_TCL */
+ #ifdef __WIN32__
+ #ifndef TkCreateRegion
+ #define TkCreateRegion \
+ 	(tkIntStubsPtr->tkCreateRegion) /* 114 */
+ #endif
+ #endif /* __WIN32__ */
+ #ifdef MAC_TCL
+ #ifndef TkCreateRegion
+ #define TkCreateRegion \
+ 	(tkIntStubsPtr->tkCreateRegion) /* 114 */
+ #endif
+ #endif /* MAC_TCL */
+ #ifdef __WIN32__
+ #ifndef TkDestroyRegion
+ #define TkDestroyRegion \
+ 	(tkIntStubsPtr->tkDestroyRegion) /* 115 */
+ #endif
+ #endif /* __WIN32__ */
+ #ifdef MAC_TCL
+ #ifndef TkDestroyRegion
+ #define TkDestroyRegion \
+ 	(tkIntStubsPtr->tkDestroyRegion) /* 115 */
+ #endif
+ #endif /* MAC_TCL */
+ #ifdef __WIN32__
+ #ifndef TkIntersectRegion
+ #define TkIntersectRegion \
+ 	(tkIntStubsPtr->tkIntersectRegion) /* 116 */
+ #endif
+ #endif /* __WIN32__ */
+ #ifdef MAC_TCL
+ #ifndef TkIntersectRegion
+ #define TkIntersectRegion \
+ 	(tkIntStubsPtr->tkIntersectRegion) /* 116 */
+ #endif
+ #endif /* MAC_TCL */
+ #ifdef __WIN32__
+ #ifndef TkRectInRegion
+ #define TkRectInRegion \
+ 	(tkIntStubsPtr->tkRectInRegion) /* 117 */
+ #endif
+ #endif /* __WIN32__ */
+ #ifdef MAC_TCL
+ #ifndef TkRectInRegion
+ #define TkRectInRegion \
+ 	(tkIntStubsPtr->tkRectInRegion) /* 117 */
+ #endif
+ #endif /* MAC_TCL */
+ #ifdef __WIN32__
+ #ifndef TkSetRegion
+ #define TkSetRegion \
+ 	(tkIntStubsPtr->tkSetRegion) /* 118 */
+ #endif
+ #endif /* __WIN32__ */
+ #ifdef MAC_TCL
+ #ifndef TkSetRegion
+ #define TkSetRegion \
+ 	(tkIntStubsPtr->tkSetRegion) /* 118 */
+ #endif
+ #endif /* MAC_TCL */
+ #ifdef __WIN32__
+ #ifndef TkUnionRectWithRegion
+ #define TkUnionRectWithRegion \
+ 	(tkIntStubsPtr->tkUnionRectWithRegion) /* 119 */
+ #endif
+ #endif /* __WIN32__ */
+ #ifdef MAC_TCL
+ #ifndef TkUnionRectWithRegion
+ #define TkUnionRectWithRegion \
+ 	(tkIntStubsPtr->tkUnionRectWithRegion) /* 119 */
+ #endif
+ #endif /* MAC_TCL */
+ /* Slot 120 is reserved */
+ #ifdef MAC_TCL
+ #ifndef TkpCreateNativeBitmap
+ #define TkpCreateNativeBitmap \
+ 	(tkIntStubsPtr->tkpCreateNativeBitmap) /* 121 */
+ #endif
+ #endif /* MAC_TCL */
+ #ifdef MAC_TCL
+ #ifndef TkpDefineNativeBitmaps
+ #define TkpDefineNativeBitmaps \
+ 	(tkIntStubsPtr->tkpDefineNativeBitmaps) /* 122 */
+ #endif
+ #endif /* MAC_TCL */
+ #ifdef MAC_TCL
+ #ifndef TkpGetMS
+ #define TkpGetMS \
+ 	(tkIntStubsPtr->tkpGetMS) /* 123 */
+ #endif
+ #endif /* MAC_TCL */
+ #ifdef MAC_TCL
+ #ifndef TkpGetNativeAppBitmap
+ #define TkpGetNativeAppBitmap \
+ 	(tkIntStubsPtr->tkpGetNativeAppBitmap) /* 124 */
+ #endif
+ #endif /* MAC_TCL */
+ /* Slot 125 is reserved */
+ /* Slot 126 is reserved */
+ /* Slot 127 is reserved */
+ /* Slot 128 is reserved */
+ /* Slot 129 is reserved */
+ /* Slot 130 is reserved */
+ #ifdef MAC_TCL
+ #ifndef TkGenerateButtonEvent
+ #define TkGenerateButtonEvent \
+ 	(tkIntStubsPtr->tkGenerateButtonEvent) /* 131 */
+ #endif
+ #endif /* MAC_TCL */
+ /* Slot 132 is reserved */
+ #ifdef MAC_TCL
+ #ifndef TkGenWMDestroyEvent
+ #define TkGenWMDestroyEvent \
+ 	(tkIntStubsPtr->tkGenWMDestroyEvent) /* 133 */
+ #endif
+ #endif /* MAC_TCL */
+ #ifdef MAC_TCL
+ #ifndef TkGenWMConfigureEvent
+ #define TkGenWMConfigureEvent \
+ 	(tkIntStubsPtr->tkGenWMConfigureEvent) /* 134 */
+ #endif
+ #endif /* MAC_TCL */
+ #ifndef TkpDrawHighlightBorder
+ #define TkpDrawHighlightBorder \
+ 	(tkIntStubsPtr->tkpDrawHighlightBorder) /* 135 */
+ #endif
+ /* Slot 136 is reserved */
+ #ifndef TkpSetKeycodeAndState
+ #define TkpSetKeycodeAndState \
+ 	(tkIntStubsPtr->tkpSetKeycodeAndState) /* 137 */
+ #endif
+ /* Slot 138 is reserved */
+ #ifndef TkTextGetIndex
+ #define TkTextGetIndex \
+ 	(tkIntStubsPtr->tkTextGetIndex) /* 139 */
+ #endif
+ #ifndef TkTextIndexBackBytes
+ #define TkTextIndexBackBytes \
+ 	(tkIntStubsPtr->tkTextIndexBackBytes) /* 140 */
+ #endif
+ #ifndef TkTextIndexForwBytes
+ #define TkTextIndexForwBytes \
+ 	(tkIntStubsPtr->tkTextIndexForwBytes) /* 141 */
+ #endif
+ #ifndef TkTextMakeByteIndex
+ #define TkTextMakeByteIndex \
+ 	(tkIntStubsPtr->tkTextMakeByteIndex) /* 142 */
+ #endif
+ #ifndef TkTextPrintIndex
+ #define TkTextPrintIndex \
+ 	(tkIntStubsPtr->tkTextPrintIndex) /* 143 */
+ #endif
+ #ifndef TkTextSetMark
+ #define TkTextSetMark \
+ 	(tkIntStubsPtr->tkTextSetMark) /* 144 */
+ #endif
+ #ifndef TkTextXviewCmd
+ #define TkTextXviewCmd \
+ 	(tkIntStubsPtr->tkTextXviewCmd) /* 145 */
+ #endif
+ #ifndef TkTextChanged
+ #define TkTextChanged \
+ 	(tkIntStubsPtr->tkTextChanged) /* 146 */
+ #endif
+ #ifndef TkBTreeNumLines
+ #define TkBTreeNumLines \
+ 	(tkIntStubsPtr->tkBTreeNumLines) /* 147 */
+ #endif
+ #ifndef TkTextInsertDisplayProc
+ #define TkTextInsertDisplayProc \
+ 	(tkIntStubsPtr->tkTextInsertDisplayProc) /* 148 */
+ #endif
+ 
+ #endif /* defined(USE_TK_STUBS) && !defined(USE_TK_STUB_PROCS) */
+ 
+ /* !END!: Do not edit above this line. */
+ 
+ #undef TCL_STORAGE_CLASS
+ #define TCL_STORAGE_CLASS DLLIMPORT
+ 
+ #endif /* _TKINTDECLS */
+ 
*** src/tkIntPlatDecls.h.orig	Sat Apr 29 21:02:01 2000
--- src/tkIntPlatDecls.h	Sat Apr 29 21:02:01 2000
***************
*** 0 ****
--- 1,724 ----
+ /*
+  * tkIntPlatDecls.h --
+  *
+  *	This file contains the declarations for all platform dependent
+  *	unsupported functions that are exported by the Tk library.  These
+  *	interfaces are not guaranteed to remain the same between
+  *	versions.  Use at your own risk.
+  *
+  * Copyright (c) 1998-1999 by Scriptics Corporation.
+  * All rights reserved.
+  *
+  * RCS: @(#) $Id: tkIntPlatDecls.h,v 1.7 1999/12/07 03:51:05 hobbs Exp $
+  */
+ 
+ #ifndef _TKINTPLATDECLS
+ #define _TKINTPLATDECLS
+ 
+ #ifdef BUILD_tk
+ #undef TCL_STORAGE_CLASS
+ #define TCL_STORAGE_CLASS DLLEXPORT
+ #endif
+ 
+ /*
+  * WARNING: This file is automatically generated by the tools/genStubs.tcl
+  * script.  Any modifications to the function declarations below should be made
+  * in the generic/tkInt.decls script.
+  */
+ 
+ /* !BEGIN!: Do not edit below this line. */
+ 
+ /*
+  * Exported function declarations:
+  */
+ 
+ #if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
+ /* 0 */
+ EXTERN void		TkCreateXEventSource _ANSI_ARGS_((void));
+ /* Slot 1 is reserved */
+ /* Slot 2 is reserved */
+ /* 3 */
+ EXTERN int		TkpCmapStressed _ANSI_ARGS_((Tk_Window tkwin, 
+ 				Colormap colormap));
+ /* 4 */
+ EXTERN void		TkpSync _ANSI_ARGS_((Display * display));
+ /* Slot 5 is reserved */
+ /* 6 */
+ EXTERN int		TkUnixDoOneXEvent _ANSI_ARGS_((Tcl_Time * timePtr));
+ /* 7 */
+ EXTERN void		TkUnixSetMenubar _ANSI_ARGS_((Tk_Window tkwin, 
+ 				Tk_Window menubar));
+ #endif /* UNIX */
+ #ifdef __WIN32__
+ /* 0 */
+ EXTERN char *		TkAlignImageData _ANSI_ARGS_((XImage * image, 
+ 				int alignment, int bitOrder));
+ /* Slot 1 is reserved */
+ /* Slot 2 is reserved */
+ /* 3 */
+ EXTERN unsigned long	TkpGetMS _ANSI_ARGS_((void));
+ /* Slot 4 is reserved */
+ /* 5 */
+ EXTERN void		TkpPrintWindowId _ANSI_ARGS_((char * buf, 
+ 				Window window));
+ /* 6 */
+ EXTERN int		TkpScanWindowId _ANSI_ARGS_((Tcl_Interp * interp, 
+ 				char * string, int * idPtr));
+ /* Slot 7 is reserved */
+ /* Slot 8 is reserved */
+ /* Slot 9 is reserved */
+ /* 10 */
+ EXTERN void		TkSetPixmapColormap _ANSI_ARGS_((Pixmap pixmap, 
+ 				Colormap colormap));
+ /* 11 */
+ EXTERN void		TkWinCancelMouseTimer _ANSI_ARGS_((void));
+ /* Slot 12 is reserved */
+ /* 13 */
+ EXTERN LRESULT		TkWinEmbeddedEventProc _ANSI_ARGS_((HWND hwnd, 
+ 				UINT message, WPARAM wParam, LPARAM lParam));
+ /* 14 */
+ EXTERN void		TkWinFillRect _ANSI_ARGS_((HDC dc, int x, int y, 
+ 				int width, int height, int pixel));
+ /* 15 */
+ EXTERN COLORREF		TkWinGetBorderPixels _ANSI_ARGS_((Tk_Window tkwin, 
+ 				Tk_3DBorder border, int which));
+ /* 16 */
+ EXTERN HDC		TkWinGetDrawableDC _ANSI_ARGS_((Display * display, 
+ 				Drawable d, TkWinDCState* state));
+ /* 17 */
+ EXTERN int		TkWinGetModifierState _ANSI_ARGS_((void));
+ /* 18 */
+ EXTERN HPALETTE		TkWinGetSystemPalette _ANSI_ARGS_((void));
+ /* 19 */
+ EXTERN HWND		TkWinGetWrapperWindow _ANSI_ARGS_((Tk_Window tkwin));
+ /* 20 */
+ EXTERN int		TkWinHandleMenuEvent _ANSI_ARGS_((HWND * phwnd, 
+ 				UINT * pMessage, WPARAM * pwParam, 
+ 				LPARAM * plParam, LRESULT * plResult));
+ /* 21 */
+ EXTERN int		TkWinIndexOfColor _ANSI_ARGS_((XColor * colorPtr));
+ /* 22 */
+ EXTERN void		TkWinReleaseDrawableDC _ANSI_ARGS_((Drawable d, 
+ 				HDC hdc, TkWinDCState* state));
+ /* 23 */
+ EXTERN LRESULT		TkWinResendEvent _ANSI_ARGS_((WNDPROC wndproc, 
+ 				HWND hwnd, XEvent * eventPtr));
+ /* 24 */
+ EXTERN HPALETTE		TkWinSelectPalette _ANSI_ARGS_((HDC dc, 
+ 				Colormap colormap));
+ /* 25 */
+ EXTERN void		TkWinSetMenu _ANSI_ARGS_((Tk_Window tkwin, 
+ 				HMENU hMenu));
+ /* 26 */
+ EXTERN void		TkWinSetWindowPos _ANSI_ARGS_((HWND hwnd, 
+ 				HWND siblingHwnd, int pos));
+ /* 27 */
+ EXTERN void		TkWinWmCleanup _ANSI_ARGS_((HINSTANCE hInstance));
+ /* 28 */
+ EXTERN void		TkWinXCleanup _ANSI_ARGS_((HINSTANCE hInstance));
+ /* 29 */
+ EXTERN void		TkWinXInit _ANSI_ARGS_((HINSTANCE hInstance));
+ /* Slot 30 is reserved */
+ /* 31 */
+ EXTERN void		TkWinDialogDebug _ANSI_ARGS_((int debug));
+ /* 32 */
+ EXTERN Tcl_Obj *	TkWinGetMenuSystemDefault _ANSI_ARGS_((
+ 				Tk_Window tkwin, char * dbName, 
+ 				char * className));
+ /* 33 */
+ EXTERN int		TkWinGetPlatformId _ANSI_ARGS_((void));
+ #endif /* __WIN32__ */
+ #ifdef MAC_TCL
+ /* Slot 0 is reserved */
+ /* 1 */
+ EXTERN Pixmap		TkpCreateNativeBitmap _ANSI_ARGS_((Display * display, 
+ 				char * source));
+ /* 2 */
+ EXTERN void		TkpDefineNativeBitmaps _ANSI_ARGS_((void));
+ /* 3 */
+ EXTERN unsigned long	TkpGetMS _ANSI_ARGS_((void));
+ /* Slot 4 is reserved */
+ /* Slot 5 is reserved */
+ /* Slot 6 is reserved */
+ /* Slot 7 is reserved */
+ /* Slot 8 is reserved */
+ /* Slot 9 is reserved */
+ /* 10 */
+ EXTERN void		TkAboutDlg _ANSI_ARGS_((void));
+ /* Slot 11 is reserved */
+ /* Slot 12 is reserved */
+ /* Slot 13 is reserved */
+ /* 14 */
+ EXTERN int		TkGenerateButtonEvent _ANSI_ARGS_((int x, int y, 
+ 				Window window, unsigned int state));
+ /* Slot 15 is reserved */
+ /* 16 */
+ EXTERN void		TkGenWMDestroyEvent _ANSI_ARGS_((Tk_Window tkwin));
+ /* 17 */
+ EXTERN void		TkGenWMConfigureEvent _ANSI_ARGS_((Tk_Window tkwin, 
+ 				int x, int y, int width, int height, 
+ 				int flags));
+ /* 18 */
+ EXTERN unsigned int	TkMacButtonKeyState _ANSI_ARGS_((void));
+ /* 19 */
+ EXTERN void		TkMacClearMenubarActive _ANSI_ARGS_((void));
+ /* 20 */
+ EXTERN int		TkMacConvertEvent _ANSI_ARGS_((
+ 				EventRecord * eventPtr));
+ /* 21 */
+ EXTERN int		TkMacDispatchMenuEvent _ANSI_ARGS_((int menuID, 
+ 				int index));
+ /* 22 */
+ EXTERN void		TkMacInstallCursor _ANSI_ARGS_((int resizeOverride));
+ /* 23 */
+ EXTERN int		TkMacConvertTkEvent _ANSI_ARGS_((
+ 				EventRecord * eventPtr, Window window));
+ /* 24 */
+ EXTERN void		TkMacHandleTearoffMenu _ANSI_ARGS_((void));
+ /* Slot 25 is reserved */
+ /* Slot 26 is reserved */
+ /* 27 */
+ EXTERN void		TkMacDoHLEvent _ANSI_ARGS_((EventRecord * theEvent));
+ /* Slot 28 is reserved */
+ /* 29 */
+ EXTERN Time		TkMacGenerateTime _ANSI_ARGS_((void));
+ /* 30 */
+ EXTERN GWorldPtr	TkMacGetDrawablePort _ANSI_ARGS_((Drawable drawable));
+ /* Slot 31 is reserved */
+ /* 32 */
+ EXTERN Window		TkMacGetXWindow _ANSI_ARGS_((WindowRef macWinPtr));
+ /* 33 */
+ EXTERN int		TkMacGrowToplevel _ANSI_ARGS_((WindowRef whichWindow, 
+ 				Point start));
+ /* 34 */
+ EXTERN void		TkMacHandleMenuSelect _ANSI_ARGS_((long mResult, 
+ 				int optionKeyPressed));
+ /* 35 */
+ EXTERN int		TkMacHaveAppearance _ANSI_ARGS_((void));
+ /* 36 */
+ EXTERN void		TkMacInitAppleEvents _ANSI_ARGS_((
+ 				Tcl_Interp * interp));
+ /* 37 */
+ EXTERN void		TkMacInitMenus _ANSI_ARGS_((Tcl_Interp * interp));
+ /* 38 */
+ EXTERN void		TkMacInvalidateWindow _ANSI_ARGS_((
+ 				MacDrawable * macWin, int flag));
+ /* 39 */
+ EXTERN int		TkMacIsCharacterMissing _ANSI_ARGS_((Tk_Font tkfont, 
+ 				unsigned int searchChar));
+ /* Slot 40 is reserved */
+ /* 41 */
+ EXTERN BitMapPtr	TkMacMakeStippleMap _ANSI_ARGS_((Drawable d1, 
+ 				Drawable d2));
+ /* 42 */
+ EXTERN void		TkMacMenuClick _ANSI_ARGS_((void));
+ /* 43 */
+ EXTERN void		TkMacRegisterOffScreenWindow _ANSI_ARGS_((
+ 				Window window, GWorldPtr portPtr));
+ /* Slot 44 is reserved */
+ /* Slot 45 is reserved */
+ /* 46 */
+ EXTERN void		TkMacSetHelpMenuItemCount _ANSI_ARGS_((void));
+ /* Slot 47 is reserved */
+ /* 48 */
+ EXTERN void		TkMacSetUpClippingRgn _ANSI_ARGS_((Drawable drawable));
+ /* 49 */
+ EXTERN void		TkMacSetUpGraphicsPort _ANSI_ARGS_((GC gc));
+ /* Slot 50 is reserved */
+ /* 51 */
+ EXTERN void		TkMacUnregisterMacWindow _ANSI_ARGS_((
+ 				GWorldPtr portPtr));
+ /* 52 */
+ EXTERN int		TkMacUseMenuID _ANSI_ARGS_((short macID));
+ /* Slot 53 is reserved */
+ /* Slot 54 is reserved */
+ /* 55 */
+ EXTERN void		TkMacWindowOffset _ANSI_ARGS_((WindowRef wRef, 
+ 				int * xOffset, int * yOffset));
+ /* Slot 56 is reserved */
+ /* 57 */
+ EXTERN int		TkSetMacColor _ANSI_ARGS_((unsigned long pixel, 
+ 				RGBColor * macColor));
+ /* Slot 58 is reserved */
+ /* 59 */
+ EXTERN void		TkSuspendClipboard _ANSI_ARGS_((void));
+ /* Slot 60 is reserved */
+ /* 61 */
+ EXTERN int		TkMacZoomToplevel _ANSI_ARGS_((WindowPtr whichWindow, 
+ 				Point where, short zoomPart));
+ /* 62 */
+ EXTERN Tk_Window	Tk_TopCoordsToWindow _ANSI_ARGS_((Tk_Window tkwin, 
+ 				int rootX, int rootY, int * newX, int * newY));
+ /* Slot 63 is reserved */
+ /* Slot 64 is reserved */
+ /* 65 */
+ EXTERN void		TkMacPreprocessMenu _ANSI_ARGS_((void));
+ #endif /* MAC_TCL */
+ 
+ typedef struct TkIntPlatStubs {
+     int magic;
+     struct TkIntPlatStubHooks *hooks;
+ 
+ #if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
+     void (*tkCreateXEventSource) _ANSI_ARGS_((void)); /* 0 */
+     void *reserved1;
+     void *reserved2;
+     int (*tkpCmapStressed) _ANSI_ARGS_((Tk_Window tkwin, Colormap colormap)); /* 3 */
+     void (*tkpSync) _ANSI_ARGS_((Display * display)); /* 4 */
+     void *reserved5;
+     int (*tkUnixDoOneXEvent) _ANSI_ARGS_((Tcl_Time * timePtr)); /* 6 */
+     void (*tkUnixSetMenubar) _ANSI_ARGS_((Tk_Window tkwin, Tk_Window menubar)); /* 7 */
+ #endif /* UNIX */
+ #ifdef __WIN32__
+     char * (*tkAlignImageData) _ANSI_ARGS_((XImage * image, int alignment, int bitOrder)); /* 0 */
+     void *reserved1;
+     void *reserved2;
+     unsigned long (*tkpGetMS) _ANSI_ARGS_((void)); /* 3 */
+     void *reserved4;
+     void (*tkpPrintWindowId) _ANSI_ARGS_((char * buf, Window window)); /* 5 */
+     int (*tkpScanWindowId) _ANSI_ARGS_((Tcl_Interp * interp, char * string, int * idPtr)); /* 6 */
+     void *reserved7;
+     void *reserved8;
+     void *reserved9;
+     void (*tkSetPixmapColormap) _ANSI_ARGS_((Pixmap pixmap, Colormap colormap)); /* 10 */
+     void (*tkWinCancelMouseTimer) _ANSI_ARGS_((void)); /* 11 */
+     void *reserved12;
+     LRESULT (*tkWinEmbeddedEventProc) _ANSI_ARGS_((HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)); /* 13 */
+     void (*tkWinFillRect) _ANSI_ARGS_((HDC dc, int x, int y, int width, int height, int pixel)); /* 14 */
+     COLORREF (*tkWinGetBorderPixels) _ANSI_ARGS_((Tk_Window tkwin, Tk_3DBorder border, int which)); /* 15 */
+     HDC (*tkWinGetDrawableDC) _ANSI_ARGS_((Display * display, Drawable d, TkWinDCState* state)); /* 16 */
+     int (*tkWinGetModifierState) _ANSI_ARGS_((void)); /* 17 */
+     HPALETTE (*tkWinGetSystemPalette) _ANSI_ARGS_((void)); /* 18 */
+     HWND (*tkWinGetWrapperWindow) _ANSI_ARGS_((Tk_Window tkwin)); /* 19 */
+     int (*tkWinHandleMenuEvent) _ANSI_ARGS_((HWND * phwnd, UINT * pMessage, WPARAM * pwParam, LPARAM * plParam, LRESULT * plResult)); /* 20 */
+     int (*tkWinIndexOfColor) _ANSI_ARGS_((XColor * colorPtr)); /* 21 */
+     void (*tkWinReleaseDrawableDC) _ANSI_ARGS_((Drawable d, HDC hdc, TkWinDCState* state)); /* 22 */
+     LRESULT (*tkWinResendEvent) _ANSI_ARGS_((WNDPROC wndproc, HWND hwnd, XEvent * eventPtr)); /* 23 */
+     HPALETTE (*tkWinSelectPalette) _ANSI_ARGS_((HDC dc, Colormap colormap)); /* 24 */
+     void (*tkWinSetMenu) _ANSI_ARGS_((Tk_Window tkwin, HMENU hMenu)); /* 25 */
+     void (*tkWinSetWindowPos) _ANSI_ARGS_((HWND hwnd, HWND siblingHwnd, int pos)); /* 26 */
+     void (*tkWinWmCleanup) _ANSI_ARGS_((HINSTANCE hInstance)); /* 27 */
+     void (*tkWinXCleanup) _ANSI_ARGS_((HINSTANCE hInstance)); /* 28 */
+     void (*tkWinXInit) _ANSI_ARGS_((HINSTANCE hInstance)); /* 29 */
+     void *reserved30;
+     void (*tkWinDialogDebug) _ANSI_ARGS_((int debug)); /* 31 */
+     Tcl_Obj * (*tkWinGetMenuSystemDefault) _ANSI_ARGS_((Tk_Window tkwin, char * dbName, char * className)); /* 32 */
+     int (*tkWinGetPlatformId) _ANSI_ARGS_((void)); /* 33 */
+ #endif /* __WIN32__ */
+ #ifdef MAC_TCL
+     void *reserved0;
+     Pixmap (*tkpCreateNativeBitmap) _ANSI_ARGS_((Display * display, char * source)); /* 1 */
+     void (*tkpDefineNativeBitmaps) _ANSI_ARGS_((void)); /* 2 */
+     unsigned long (*tkpGetMS) _ANSI_ARGS_((void)); /* 3 */
+     void *reserved4;
+     void *reserved5;
+     void *reserved6;
+     void *reserved7;
+     void *reserved8;
+     void *reserved9;
+     void (*tkAboutDlg) _ANSI_ARGS_((void)); /* 10 */
+     void *reserved11;
+     void *reserved12;
+     void *reserved13;
+     int (*tkGenerateButtonEvent) _ANSI_ARGS_((int x, int y, Window window, unsigned int state)); /* 14 */
+     void *reserved15;
+     void (*tkGenWMDestroyEvent) _ANSI_ARGS_((Tk_Window tkwin)); /* 16 */
+     void (*tkGenWMConfigureEvent) _ANSI_ARGS_((Tk_Window tkwin, int x, int y, int width, int height, int flags)); /* 17 */
+     unsigned int (*tkMacButtonKeyState) _ANSI_ARGS_((void)); /* 18 */
+     void (*tkMacClearMenubarActive) _ANSI_ARGS_((void)); /* 19 */
+     int (*tkMacConvertEvent) _ANSI_ARGS_((EventRecord * eventPtr)); /* 20 */
+     int (*tkMacDispatchMenuEvent) _ANSI_ARGS_((int menuID, int index)); /* 21 */
+     void (*tkMacInstallCursor) _ANSI_ARGS_((int resizeOverride)); /* 22 */
+     int (*tkMacConvertTkEvent) _ANSI_ARGS_((EventRecord * eventPtr, Window window)); /* 23 */
+     void (*tkMacHandleTearoffMenu) _ANSI_ARGS_((void)); /* 24 */
+     void *reserved25;
+     void *reserved26;
+     void (*tkMacDoHLEvent) _ANSI_ARGS_((EventRecord * theEvent)); /* 27 */
+     void *reserved28;
+     Time (*tkMacGenerateTime) _ANSI_ARGS_((void)); /* 29 */
+     GWorldPtr (*tkMacGetDrawablePort) _ANSI_ARGS_((Drawable drawable)); /* 30 */
+     void *reserved31;
+     Window (*tkMacGetXWindow) _ANSI_ARGS_((WindowRef macWinPtr)); /* 32 */
+     int (*tkMacGrowToplevel) _ANSI_ARGS_((WindowRef whichWindow, Point start)); /* 33 */
+     void (*tkMacHandleMenuSelect) _ANSI_ARGS_((long mResult, int optionKeyPressed)); /* 34 */
+     int (*tkMacHaveAppearance) _ANSI_ARGS_((void)); /* 35 */
+     void (*tkMacInitAppleEvents) _ANSI_ARGS_((Tcl_Interp * interp)); /* 36 */
+     void (*tkMacInitMenus) _ANSI_ARGS_((Tcl_Interp * interp)); /* 37 */
+     void (*tkMacInvalidateWindow) _ANSI_ARGS_((MacDrawable * macWin, int flag)); /* 38 */
+     int (*tkMacIsCharacterMissing) _ANSI_ARGS_((Tk_Font tkfont, unsigned int searchChar)); /* 39 */
+     void *reserved40;
+     BitMapPtr (*tkMacMakeStippleMap) _ANSI_ARGS_((Drawable d1, Drawable d2)); /* 41 */
+     void (*tkMacMenuClick) _ANSI_ARGS_((void)); /* 42 */
+     void (*tkMacRegisterOffScreenWindow) _ANSI_ARGS_((Window window, GWorldPtr portPtr)); /* 43 */
+     void *reserved44;
+     void *reserved45;
+     void (*tkMacSetHelpMenuItemCount) _ANSI_ARGS_((void)); /* 46 */
+     void *reserved47;
+     void (*tkMacSetUpClippingRgn) _ANSI_ARGS_((Drawable drawable)); /* 48 */
+     void (*tkMacSetUpGraphicsPort) _ANSI_ARGS_((GC gc)); /* 49 */
+     void *reserved50;
+     void (*tkMacUnregisterMacWindow) _ANSI_ARGS_((GWorldPtr portPtr)); /* 51 */
+     int (*tkMacUseMenuID) _ANSI_ARGS_((short macID)); /* 52 */
+     void *reserved53;
+     void *reserved54;
+     void (*tkMacWindowOffset) _ANSI_ARGS_((WindowRef wRef, int * xOffset, int * yOffset)); /* 55 */
+     void *reserved56;
+     int (*tkSetMacColor) _ANSI_ARGS_((unsigned long pixel, RGBColor * macColor)); /* 57 */
+     void *reserved58;
+     void (*tkSuspendClipboard) _ANSI_ARGS_((void)); /* 59 */
+     void *reserved60;
+     int (*tkMacZoomToplevel) _ANSI_ARGS_((WindowPtr whichWindow, Point where, short zoomPart)); /* 61 */
+     Tk_Window (*tk_TopCoordsToWindow) _ANSI_ARGS_((Tk_Window tkwin, int rootX, int rootY, int * newX, int * newY)); /* 62 */
+     void *reserved63;
+     void *reserved64;
+     void (*tkMacPreprocessMenu) _ANSI_ARGS_((void)); /* 65 */
+ #endif /* MAC_TCL */
+ } TkIntPlatStubs;
+ 
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+ extern TkIntPlatStubs *tkIntPlatStubsPtr;
+ #ifdef __cplusplus
+ }
+ #endif
+ 
+ #if defined(USE_TK_STUBS) && !defined(USE_TK_STUB_PROCS)
+ 
+ /*
+  * Inline function declarations:
+  */
+ 
+ #if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
+ #ifndef TkCreateXEventSource
+ #define TkCreateXEventSource \
+ 	(tkIntPlatStubsPtr->tkCreateXEventSource) /* 0 */
+ #endif
+ /* Slot 1 is reserved */
+ /* Slot 2 is reserved */
+ #ifndef TkpCmapStressed
+ #define TkpCmapStressed \
+ 	(tkIntPlatStubsPtr->tkpCmapStressed) /* 3 */
+ #endif
+ #ifndef TkpSync
+ #define TkpSync \
+ 	(tkIntPlatStubsPtr->tkpSync) /* 4 */
+ #endif
+ /* Slot 5 is reserved */
+ #ifndef TkUnixDoOneXEvent
+ #define TkUnixDoOneXEvent \
+ 	(tkIntPlatStubsPtr->tkUnixDoOneXEvent) /* 6 */
+ #endif
+ #ifndef TkUnixSetMenubar
+ #define TkUnixSetMenubar \
+ 	(tkIntPlatStubsPtr->tkUnixSetMenubar) /* 7 */
+ #endif
+ #endif /* UNIX */
+ #ifdef __WIN32__
+ #ifndef TkAlignImageData
+ #define TkAlignImageData \
+ 	(tkIntPlatStubsPtr->tkAlignImageData) /* 0 */
+ #endif
+ /* Slot 1 is reserved */
+ /* Slot 2 is reserved */
+ #ifndef TkpGetMS
+ #define TkpGetMS \
+ 	(tkIntPlatStubsPtr->tkpGetMS) /* 3 */
+ #endif
+ /* Slot 4 is reserved */
+ #ifndef TkpPrintWindowId
+ #define TkpPrintWindowId \
+ 	(tkIntPlatStubsPtr->tkpPrintWindowId) /* 5 */
+ #endif
+ #ifndef TkpScanWindowId
+ #define TkpScanWindowId \
+ 	(tkIntPlatStubsPtr->tkpScanWindowId) /* 6 */
+ #endif
+ /* Slot 7 is reserved */
+ /* Slot 8 is reserved */
+ /* Slot 9 is reserved */
+ #ifndef TkSetPixmapColormap
+ #define TkSetPixmapColormap \
+ 	(tkIntPlatStubsPtr->tkSetPixmapColormap) /* 10 */
+ #endif
+ #ifndef TkWinCancelMouseTimer
+ #define TkWinCancelMouseTimer \
+ 	(tkIntPlatStubsPtr->tkWinCancelMouseTimer) /* 11 */
+ #endif
+ /* Slot 12 is reserved */
+ #ifndef TkWinEmbeddedEventProc
+ #define TkWinEmbeddedEventProc \
+ 	(tkIntPlatStubsPtr->tkWinEmbeddedEventProc) /* 13 */
+ #endif
+ #ifndef TkWinFillRect
+ #define TkWinFillRect \
+ 	(tkIntPlatStubsPtr->tkWinFillRect) /* 14 */
+ #endif
+ #ifndef TkWinGetBorderPixels
+ #define TkWinGetBorderPixels \
+ 	(tkIntPlatStubsPtr->tkWinGetBorderPixels) /* 15 */
+ #endif
+ #ifndef TkWinGetDrawableDC
+ #define TkWinGetDrawableDC \
+ 	(tkIntPlatStubsPtr->tkWinGetDrawableDC) /* 16 */
+ #endif
+ #ifndef TkWinGetModifierState
+ #define TkWinGetModifierState \
+ 	(tkIntPlatStubsPtr->tkWinGetModifierState) /* 17 */
+ #endif
+ #ifndef TkWinGetSystemPalette
+ #define TkWinGetSystemPalette \
+ 	(tkIntPlatStubsPtr->tkWinGetSystemPalette) /* 18 */
+ #endif
+ #ifndef TkWinGetWrapperWindow
+ #define TkWinGetWrapperWindow \
+ 	(tkIntPlatStubsPtr->tkWinGetWrapperWindow) /* 19 */
+ #endif
+ #ifndef TkWinHandleMenuEvent
+ #define TkWinHandleMenuEvent \
+ 	(tkIntPlatStubsPtr->tkWinHandleMenuEvent) /* 20 */
+ #endif
+ #ifndef TkWinIndexOfColor
+ #define TkWinIndexOfColor \
+ 	(tkIntPlatStubsPtr->tkWinIndexOfColor) /* 21 */
+ #endif
+ #ifndef TkWinReleaseDrawableDC
+ #define TkWinReleaseDrawableDC \
+ 	(tkIntPlatStubsPtr->tkWinReleaseDrawableDC) /* 22 */
+ #endif
+ #ifndef TkWinResendEvent
+ #define TkWinResendEvent \
+ 	(tkIntPlatStubsPtr->tkWinResendEvent) /* 23 */
+ #endif
+ #ifndef TkWinSelectPalette
+ #define TkWinSelectPalette \
+ 	(tkIntPlatStubsPtr->tkWinSelectPalette) /* 24 */
+ #endif
+ #ifndef TkWinSetMenu
+ #define TkWinSetMenu \
+ 	(tkIntPlatStubsPtr->tkWinSetMenu) /* 25 */
+ #endif
+ #ifndef TkWinSetWindowPos
+ #define TkWinSetWindowPos \
+ 	(tkIntPlatStubsPtr->tkWinSetWindowPos) /* 26 */
+ #endif
+ #ifndef TkWinWmCleanup
+ #define TkWinWmCleanup \
+ 	(tkIntPlatStubsPtr->tkWinWmCleanup) /* 27 */
+ #endif
+ #ifndef TkWinXCleanup
+ #define TkWinXCleanup \
+ 	(tkIntPlatStubsPtr->tkWinXCleanup) /* 28 */
+ #endif
+ #ifndef TkWinXInit
+ #define TkWinXInit \
+ 	(tkIntPlatStubsPtr->tkWinXInit) /* 29 */
+ #endif
+ /* Slot 30 is reserved */
+ #ifndef TkWinDialogDebug
+ #define TkWinDialogDebug \
+ 	(tkIntPlatStubsPtr->tkWinDialogDebug) /* 31 */
+ #endif
+ #ifndef TkWinGetMenuSystemDefault
+ #define TkWinGetMenuSystemDefault \
+ 	(tkIntPlatStubsPtr->tkWinGetMenuSystemDefault) /* 32 */
+ #endif
+ #ifndef TkWinGetPlatformId
+ #define TkWinGetPlatformId \
+ 	(tkIntPlatStubsPtr->tkWinGetPlatformId) /* 33 */
+ #endif
+ #endif /* __WIN32__ */
+ #ifdef MAC_TCL
+ /* Slot 0 is reserved */
+ #ifndef TkpCreateNativeBitmap
+ #define TkpCreateNativeBitmap \
+ 	(tkIntPlatStubsPtr->tkpCreateNativeBitmap) /* 1 */
+ #endif
+ #ifndef TkpDefineNativeBitmaps
+ #define TkpDefineNativeBitmaps \
+ 	(tkIntPlatStubsPtr->tkpDefineNativeBitmaps) /* 2 */
+ #endif
+ #ifndef TkpGetMS
+ #define TkpGetMS \
+ 	(tkIntPlatStubsPtr->tkpGetMS) /* 3 */
+ #endif
+ /* Slot 4 is reserved */
+ /* Slot 5 is reserved */
+ /* Slot 6 is reserved */
+ /* Slot 7 is reserved */
+ /* Slot 8 is reserved */
+ /* Slot 9 is reserved */
+ #ifndef TkAboutDlg
+ #define TkAboutDlg \
+ 	(tkIntPlatStubsPtr->tkAboutDlg) /* 10 */
+ #endif
+ /* Slot 11 is reserved */
+ /* Slot 12 is reserved */
+ /* Slot 13 is reserved */
+ #ifndef TkGenerateButtonEvent
+ #define TkGenerateButtonEvent \
+ 	(tkIntPlatStubsPtr->tkGenerateButtonEvent) /* 14 */
+ #endif
+ /* Slot 15 is reserved */
+ #ifndef TkGenWMDestroyEvent
+ #define TkGenWMDestroyEvent \
+ 	(tkIntPlatStubsPtr->tkGenWMDestroyEvent) /* 16 */
+ #endif
+ #ifndef TkGenWMConfigureEvent
+ #define TkGenWMConfigureEvent \
+ 	(tkIntPlatStubsPtr->tkGenWMConfigureEvent) /* 17 */
+ #endif
+ #ifndef TkMacButtonKeyState
+ #define TkMacButtonKeyState \
+ 	(tkIntPlatStubsPtr->tkMacButtonKeyState) /* 18 */
+ #endif
+ #ifndef TkMacClearMenubarActive
+ #define TkMacClearMenubarActive \
+ 	(tkIntPlatStubsPtr->tkMacClearMenubarActive) /* 19 */
+ #endif
+ #ifndef TkMacConvertEvent
+ #define TkMacConvertEvent \
+ 	(tkIntPlatStubsPtr->tkMacConvertEvent) /* 20 */
+ #endif
+ #ifndef TkMacDispatchMenuEvent
+ #define TkMacDispatchMenuEvent \
+ 	(tkIntPlatStubsPtr->tkMacDispatchMenuEvent) /* 21 */
+ #endif
+ #ifndef TkMacInstallCursor
+ #define TkMacInstallCursor \
+ 	(tkIntPlatStubsPtr->tkMacInstallCursor) /* 22 */
+ #endif
+ #ifndef TkMacConvertTkEvent
+ #define TkMacConvertTkEvent \
+ 	(tkIntPlatStubsPtr->tkMacConvertTkEvent) /* 23 */
+ #endif
+ #ifndef TkMacHandleTearoffMenu
+ #define TkMacHandleTearoffMenu \
+ 	(tkIntPlatStubsPtr->tkMacHandleTearoffMenu) /* 24 */
+ #endif
+ /* Slot 25 is reserved */
+ /* Slot 26 is reserved */
+ #ifndef TkMacDoHLEvent
+ #define TkMacDoHLEvent \
+ 	(tkIntPlatStubsPtr->tkMacDoHLEvent) /* 27 */
+ #endif
+ /* Slot 28 is reserved */
+ #ifndef TkMacGenerateTime
+ #define TkMacGenerateTime \
+ 	(tkIntPlatStubsPtr->tkMacGenerateTime) /* 29 */
+ #endif
+ #ifndef TkMacGetDrawablePort
+ #define TkMacGetDrawablePort \
+ 	(tkIntPlatStubsPtr->tkMacGetDrawablePort) /* 30 */
+ #endif
+ /* Slot 31 is reserved */
+ #ifndef TkMacGetXWindow
+ #define TkMacGetXWindow \
+ 	(tkIntPlatStubsPtr->tkMacGetXWindow) /* 32 */
+ #endif
+ #ifndef TkMacGrowToplevel
+ #define TkMacGrowToplevel \
+ 	(tkIntPlatStubsPtr->tkMacGrowToplevel) /* 33 */
+ #endif
+ #ifndef TkMacHandleMenuSelect
+ #define TkMacHandleMenuSelect \
+ 	(tkIntPlatStubsPtr->tkMacHandleMenuSelect) /* 34 */
+ #endif
+ #ifndef TkMacHaveAppearance
+ #define TkMacHaveAppearance \
+ 	(tkIntPlatStubsPtr->tkMacHaveAppearance) /* 35 */
+ #endif
+ #ifndef TkMacInitAppleEvents
+ #define TkMacInitAppleEvents \
+ 	(tkIntPlatStubsPtr->tkMacInitAppleEvents) /* 36 */
+ #endif
+ #ifndef TkMacInitMenus
+ #define TkMacInitMenus \
+ 	(tkIntPlatStubsPtr->tkMacInitMenus) /* 37 */
+ #endif
+ #ifndef TkMacInvalidateWindow
+ #define TkMacInvalidateWindow \
+ 	(tkIntPlatStubsPtr->tkMacInvalidateWindow) /* 38 */
+ #endif
+ #ifndef TkMacIsCharacterMissing
+ #define TkMacIsCharacterMissing \
+ 	(tkIntPlatStubsPtr->tkMacIsCharacterMissing) /* 39 */
+ #endif
+ /* Slot 40 is reserved */
+ #ifndef TkMacMakeStippleMap
+ #define TkMacMakeStippleMap \
+ 	(tkIntPlatStubsPtr->tkMacMakeStippleMap) /* 41 */
+ #endif
+ #ifndef TkMacMenuClick
+ #define TkMacMenuClick \
+ 	(tkIntPlatStubsPtr->tkMacMenuClick) /* 42 */
+ #endif
+ #ifndef TkMacRegisterOffScreenWindow
+ #define TkMacRegisterOffScreenWindow \
+ 	(tkIntPlatStubsPtr->tkMacRegisterOffScreenWindow) /* 43 */
+ #endif
+ /* Slot 44 is reserved */
+ /* Slot 45 is reserved */
+ #ifndef TkMacSetHelpMenuItemCount
+ #define TkMacSetHelpMenuItemCount \
+ 	(tkIntPlatStubsPtr->tkMacSetHelpMenuItemCount) /* 46 */
+ #endif
+ /* Slot 47 is reserved */
+ #ifndef TkMacSetUpClippingRgn
+ #define TkMacSetUpClippingRgn \
+ 	(tkIntPlatStubsPtr->tkMacSetUpClippingRgn) /* 48 */
+ #endif
+ #ifndef TkMacSetUpGraphicsPort
+ #define TkMacSetUpGraphicsPort \
+ 	(tkIntPlatStubsPtr->tkMacSetUpGraphicsPort) /* 49 */
+ #endif
+ /* Slot 50 is reserved */
+ #ifndef TkMacUnregisterMacWindow
+ #define TkMacUnregisterMacWindow \
+ 	(tkIntPlatStubsPtr->tkMacUnregisterMacWindow) /* 51 */
+ #endif
+ #ifndef TkMacUseMenuID
+ #define TkMacUseMenuID \
+ 	(tkIntPlatStubsPtr->tkMacUseMenuID) /* 52 */
+ #endif
+ /* Slot 53 is reserved */
+ /* Slot 54 is reserved */
+ #ifndef TkMacWindowOffset
+ #define TkMacWindowOffset \
+ 	(tkIntPlatStubsPtr->tkMacWindowOffset) /* 55 */
+ #endif
+ /* Slot 56 is reserved */
+ #ifndef TkSetMacColor
+ #define TkSetMacColor \
+ 	(tkIntPlatStubsPtr->tkSetMacColor) /* 57 */
+ #endif
+ /* Slot 58 is reserved */
+ #ifndef TkSuspendClipboard
+ #define TkSuspendClipboard \
+ 	(tkIntPlatStubsPtr->tkSuspendClipboard) /* 59 */
+ #endif
+ /* Slot 60 is reserved */
+ #ifndef TkMacZoomToplevel
+ #define TkMacZoomToplevel \
+ 	(tkIntPlatStubsPtr->tkMacZoomToplevel) /* 61 */
+ #endif
+ #ifndef Tk_TopCoordsToWindow
+ #define Tk_TopCoordsToWindow \
+ 	(tkIntPlatStubsPtr->tk_TopCoordsToWindow) /* 62 */
+ #endif
+ /* Slot 63 is reserved */
+ /* Slot 64 is reserved */
+ #ifndef TkMacPreprocessMenu
+ #define TkMacPreprocessMenu \
+ 	(tkIntPlatStubsPtr->tkMacPreprocessMenu) /* 65 */
+ #endif
+ #endif /* MAC_TCL */
+ 
+ #endif /* defined(USE_TK_STUBS) && !defined(USE_TK_STUB_PROCS) */
+ 
+ /* !END!: Do not edit above this line. */
+ 
+ #undef TCL_STORAGE_CLASS
+ #define TCL_STORAGE_CLASS DLLIMPORT
+ 
+ #endif /* _TKINTPLATDECLS */
*** src/tkPlatDecls.h.orig	Sat Apr 29 21:02:01 2000
--- src/tkPlatDecls.h	Sat Apr 29 21:02:01 2000
***************
*** 0 ****
--- 1,204 ----
+ /*
+  * tkPlatDecls.h --
+  *
+  *	Declarations of functions in the platform-specific public Tcl API.
+  *
+  * Copyright (c) 1998-1999 by Scriptics Corporation.
+  *
+  * See the file "license.terms" for information on usage and redistribution
+  * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+  *
+  * RCS: @(#) $Id: tkPlatDecls.h,v 1.4 1999/04/30 22:49:55 stanton Exp $
+  */
+ 
+ #ifndef _TKPLATDECLS
+ #define _TKPLATDECLS
+ 
+ #ifdef BUILD_tk
+ #undef TCL_STORAGE_CLASS
+ #define TCL_STORAGE_CLASS DLLEXPORT
+ #endif
+ 
+ /*
+  * WARNING: This file is automatically generated by the tools/genStubs.tcl
+  * script.  Any modifications to the function declarations below should be made
+  * in the generic/tk.decls script.
+  */
+ 
+ 
+ /* !BEGIN!: Do not edit below this line. */
+ 
+ /*
+  * Exported function declarations:
+  */
+ 
+ #ifdef __WIN32__
+ /* 0 */
+ EXTERN Window		Tk_AttachHWND _ANSI_ARGS_((Tk_Window tkwin, 
+ 				HWND hwnd));
+ /* 1 */
+ EXTERN HINSTANCE	Tk_GetHINSTANCE _ANSI_ARGS_((void));
+ /* 2 */
+ EXTERN HWND		Tk_GetHWND _ANSI_ARGS_((Window window));
+ /* 3 */
+ EXTERN Tk_Window	Tk_HWNDToWindow _ANSI_ARGS_((HWND hwnd));
+ /* 4 */
+ EXTERN void		Tk_PointerEvent _ANSI_ARGS_((HWND hwnd, int x, int y));
+ /* 5 */
+ EXTERN int		Tk_TranslateWinEvent _ANSI_ARGS_((HWND hwnd, 
+ 				UINT message, WPARAM wParam, LPARAM lParam, 
+ 				LRESULT * result));
+ #endif /* __WIN32__ */
+ #ifdef MAC_TCL
+ /* 0 */
+ EXTERN void		Tk_MacSetEmbedHandler _ANSI_ARGS_((
+ 				Tk_MacEmbedRegisterWinProc * registerWinProcPtr, 
+ 				Tk_MacEmbedGetGrafPortProc * getPortProcPtr, 
+ 				Tk_MacEmbedMakeContainerExistProc * containerExistProcPtr, 
+ 				Tk_MacEmbedGetClipProc * getClipProc, 
+ 				Tk_MacEmbedGetOffsetInParentProc * getOffsetProc));
+ /* 1 */
+ EXTERN void		Tk_MacTurnOffMenus _ANSI_ARGS_((void));
+ /* 2 */
+ EXTERN void		Tk_MacTkOwnsCursor _ANSI_ARGS_((int tkOwnsIt));
+ /* 3 */
+ EXTERN void		TkMacInitMenus _ANSI_ARGS_((Tcl_Interp * interp));
+ /* 4 */
+ EXTERN void		TkMacInitAppleEvents _ANSI_ARGS_((
+ 				Tcl_Interp * interp));
+ /* 5 */
+ EXTERN int		TkMacConvertEvent _ANSI_ARGS_((
+ 				EventRecord * eventPtr));
+ /* 6 */
+ EXTERN int		TkMacConvertTkEvent _ANSI_ARGS_((
+ 				EventRecord * eventPtr, Window window));
+ /* 7 */
+ EXTERN void		TkGenWMConfigureEvent _ANSI_ARGS_((Tk_Window tkwin, 
+ 				int x, int y, int width, int height, 
+ 				int flags));
+ /* Slot 8 is reserved */
+ /* 9 */
+ EXTERN int		TkMacHaveAppearance _ANSI_ARGS_((void));
+ /* 10 */
+ EXTERN GWorldPtr	TkMacGetDrawablePort _ANSI_ARGS_((Drawable drawable));
+ #endif /* MAC_TCL */
+ 
+ typedef struct TkPlatStubs {
+     int magic;
+     struct TkPlatStubHooks *hooks;
+ 
+ #ifdef __WIN32__
+     Window (*tk_AttachHWND) _ANSI_ARGS_((Tk_Window tkwin, HWND hwnd)); /* 0 */
+     HINSTANCE (*tk_GetHINSTANCE) _ANSI_ARGS_((void)); /* 1 */
+     HWND (*tk_GetHWND) _ANSI_ARGS_((Window window)); /* 2 */
+     Tk_Window (*tk_HWNDToWindow) _ANSI_ARGS_((HWND hwnd)); /* 3 */
+     void (*tk_PointerEvent) _ANSI_ARGS_((HWND hwnd, int x, int y)); /* 4 */
+     int (*tk_TranslateWinEvent) _ANSI_ARGS_((HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam, LRESULT * result)); /* 5 */
+ #endif /* __WIN32__ */
+ #ifdef MAC_TCL
+     void (*tk_MacSetEmbedHandler) _ANSI_ARGS_((Tk_MacEmbedRegisterWinProc * registerWinProcPtr, Tk_MacEmbedGetGrafPortProc * getPortProcPtr, Tk_MacEmbedMakeContainerExistProc * containerExistProcPtr, Tk_MacEmbedGetClipProc * getClipProc, Tk_MacEmbedGetOffsetInParentProc * getOffsetProc)); /* 0 */
+     void (*tk_MacTurnOffMenus) _ANSI_ARGS_((void)); /* 1 */
+     void (*tk_MacTkOwnsCursor) _ANSI_ARGS_((int tkOwnsIt)); /* 2 */
+     void (*tkMacInitMenus) _ANSI_ARGS_((Tcl_Interp * interp)); /* 3 */
+     void (*tkMacInitAppleEvents) _ANSI_ARGS_((Tcl_Interp * interp)); /* 4 */
+     int (*tkMacConvertEvent) _ANSI_ARGS_((EventRecord * eventPtr)); /* 5 */
+     int (*tkMacConvertTkEvent) _ANSI_ARGS_((EventRecord * eventPtr, Window window)); /* 6 */
+     void (*tkGenWMConfigureEvent) _ANSI_ARGS_((Tk_Window tkwin, int x, int y, int width, int height, int flags)); /* 7 */
+     void *reserved8;
+     int (*tkMacHaveAppearance) _ANSI_ARGS_((void)); /* 9 */
+     GWorldPtr (*tkMacGetDrawablePort) _ANSI_ARGS_((Drawable drawable)); /* 10 */
+ #endif /* MAC_TCL */
+ } TkPlatStubs;
+ 
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+ extern TkPlatStubs *tkPlatStubsPtr;
+ #ifdef __cplusplus
+ }
+ #endif
+ 
+ #if defined(USE_TK_STUBS) && !defined(USE_TK_STUB_PROCS)
+ 
+ /*
+  * Inline function declarations:
+  */
+ 
+ #ifdef __WIN32__
+ #ifndef Tk_AttachHWND
+ #define Tk_AttachHWND \
+ 	(tkPlatStubsPtr->tk_AttachHWND) /* 0 */
+ #endif
+ #ifndef Tk_GetHINSTANCE
+ #define Tk_GetHINSTANCE \
+ 	(tkPlatStubsPtr->tk_GetHINSTANCE) /* 1 */
+ #endif
+ #ifndef Tk_GetHWND
+ #define Tk_GetHWND \
+ 	(tkPlatStubsPtr->tk_GetHWND) /* 2 */
+ #endif
+ #ifndef Tk_HWNDToWindow
+ #define Tk_HWNDToWindow \
+ 	(tkPlatStubsPtr->tk_HWNDToWindow) /* 3 */
+ #endif
+ #ifndef Tk_PointerEvent
+ #define Tk_PointerEvent \
+ 	(tkPlatStubsPtr->tk_PointerEvent) /* 4 */
+ #endif
+ #ifndef Tk_TranslateWinEvent
+ #define Tk_TranslateWinEvent \
+ 	(tkPlatStubsPtr->tk_TranslateWinEvent) /* 5 */
+ #endif
+ #endif /* __WIN32__ */
+ #ifdef MAC_TCL
+ #ifndef Tk_MacSetEmbedHandler
+ #define Tk_MacSetEmbedHandler \
+ 	(tkPlatStubsPtr->tk_MacSetEmbedHandler) /* 0 */
+ #endif
+ #ifndef Tk_MacTurnOffMenus
+ #define Tk_MacTurnOffMenus \
+ 	(tkPlatStubsPtr->tk_MacTurnOffMenus) /* 1 */
+ #endif
+ #ifndef Tk_MacTkOwnsCursor
+ #define Tk_MacTkOwnsCursor \
+ 	(tkPlatStubsPtr->tk_MacTkOwnsCursor) /* 2 */
+ #endif
+ #ifndef TkMacInitMenus
+ #define TkMacInitMenus \
+ 	(tkPlatStubsPtr->tkMacInitMenus) /* 3 */
+ #endif
+ #ifndef TkMacInitAppleEvents
+ #define TkMacInitAppleEvents \
+ 	(tkPlatStubsPtr->tkMacInitAppleEvents) /* 4 */
+ #endif
+ #ifndef TkMacConvertEvent
+ #define TkMacConvertEvent \
+ 	(tkPlatStubsPtr->tkMacConvertEvent) /* 5 */
+ #endif
+ #ifndef TkMacConvertTkEvent
+ #define TkMacConvertTkEvent \
+ 	(tkPlatStubsPtr->tkMacConvertTkEvent) /* 6 */
+ #endif
+ #ifndef TkGenWMConfigureEvent
+ #define TkGenWMConfigureEvent \
+ 	(tkPlatStubsPtr->tkGenWMConfigureEvent) /* 7 */
+ #endif
+ /* Slot 8 is reserved */
+ #ifndef TkMacHaveAppearance
+ #define TkMacHaveAppearance \
+ 	(tkPlatStubsPtr->tkMacHaveAppearance) /* 9 */
+ #endif
+ #ifndef TkMacGetDrawablePort
+ #define TkMacGetDrawablePort \
+ 	(tkPlatStubsPtr->tkMacGetDrawablePort) /* 10 */
+ #endif
+ #endif /* MAC_TCL */
+ 
+ #endif /* defined(USE_TK_STUBS) && !defined(USE_TK_STUB_PROCS) */
+ 
+ /* !END!: Do not edit above this line. */
+ 
+ #undef TCL_STORAGE_CLASS
+ #define TCL_STORAGE_CLASS DLLIMPORT
+ 
+ #endif /* _TKPLATDECLS */
*** src/tkStubInit.c.orig	Sat Apr 29 21:02:01 2000
--- src/tkStubInit.c	Sat Apr 29 21:02:01 2000
***************
*** 0 ****
--- 1,458 ----
+ /* 
+  * tkStubInit.c --
+  *
+  *	This file contains the initializers for the Tk stub vectors.
+  *
+  * Copyright (c) 1998-1999 by Scriptics Corporation.
+  *
+  * See the file "license.terms" for information on usage and redistribution
+  * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+  *
+  * RCS: @(#) $Id: tkStubInit.c,v 1.18 2000/02/10 08:52:36 hobbs Exp $
+  */
+ 
+ #include "tkInt.h"
+ #include "tkPort.h"
+ 
+ #ifdef __WIN32__
+ #include "tkWinInt.h"
+ #endif
+ #ifdef MAC_TCL
+ #include "tkMacInt.h"
+ #endif
+ 
+ #include "tkDecls.h"
+ #include "tkPlatDecls.h"
+ #include "tkIntDecls.h"
+ #include "tkIntPlatDecls.h"
+ #include "tkIntXlibDecls.h"
+ 
+ /*
+  * Remove macros that will interfere with the definitions below.
+  */
+ 
+ #define Tk_CreateCanvasVisitor ((void (*) _ANSI_ARGS_((Tcl_Interp * interp, \
+ 			VOID * typePtr))) NULL)
+ #define Tk_GetCanvasVisitor ((VOID * (*) _ANSI_ARGS_((Tcl_Interp * interp, \
+ 			CONST char * name))) NULL)
+ 
+ /*
+  * WARNING: The contents of this file is automatically generated by the
+  * tools/genStubs.tcl script. Any modifications to the function declarations
+  * below should be made in the generic/tk.decls script.
+  */
+ 
+ /* !BEGIN!: Do not edit below this line. */
+ 
+ TkIntStubs tkIntStubs = {
+     TCL_STUB_MAGIC,
+     NULL,
+     NULL, /* 0 */
+     TkBezierPoints, /* 1 */
+     TkBezierScreenPoints, /* 2 */
+     NULL, /* 3 */
+     NULL, /* 4 */
+     NULL, /* 5 */
+     NULL, /* 6 */
+     NULL, /* 7 */
+     NULL, /* 8 */
+     TkComputeAnchor, /* 9 */
+     TkCopyAndGlobalEval, /* 10 */
+     NULL, /* 11 */
+     NULL, /* 12 */
+     TkCreateFrame, /* 13 */
+     TkCreateMainWindow, /* 14 */
+     NULL, /* 15 */
+     NULL, /* 16 */
+     NULL, /* 17 */
+     TkDrawInsetFocusHighlight, /* 18 */
+     NULL, /* 19 */
+     NULL, /* 20 */
+     NULL, /* 21 */
+     NULL, /* 22 */
+     NULL, /* 23 */
+     NULL, /* 24 */
+     NULL, /* 25 */
+     NULL, /* 26 */
+     NULL, /* 27 */
+     NULL, /* 28 */
+     NULL, /* 29 */
+     TkGetBitmapData, /* 30 */
+     TkGetButtPoints, /* 31 */
+     NULL, /* 32 */
+     TkGetDefaultScreenName, /* 33 */
+     NULL, /* 34 */
+     TkGetDisplayOf, /* 35 */
+     NULL, /* 36 */
+     TkGetInterpNames, /* 37 */
+     TkGetMiterPoints, /* 38 */
+     TkGetPointerCoords, /* 39 */
+     TkGetServerInfo, /* 40 */
+     NULL, /* 41 */
+     NULL, /* 42 */
+     TkIncludePoint, /* 43 */
+     NULL, /* 44 */
+     TkInstallFrameMenu, /* 45 */
+     TkKeysymToString, /* 46 */
+     TkLineToArea, /* 47 */
+     TkLineToPoint, /* 48 */
+     TkMakeBezierCurve, /* 49 */
+     TkMakeBezierPostscript, /* 50 */
+     NULL, /* 51 */
+     NULL, /* 52 */
+     TkOvalToArea, /* 53 */
+     TkOvalToPoint, /* 54 */
+     NULL, /* 55 */
+     NULL, /* 56 */
+     NULL, /* 57 */
+     TkpDisplayWarning, /* 58 */
+     TkpGetAppName, /* 59 */
+     NULL, /* 60 */
+     NULL, /* 61 */
+     TkpInit, /* 62 */
+     TkpInitializeMenuBindings, /* 63 */
+     TkpMakeContainer, /* 64 */
+     TkpMakeMenuWindow, /* 65 */
+     NULL, /* 66 */
+     TkpMenuNotifyToplevelCreate, /* 67 */
+     NULL, /* 68 */
+     NULL, /* 69 */
+     TkPolygonToArea, /* 70 */
+     TkPolygonToPoint, /* 71 */
+     NULL, /* 72 */
+     NULL, /* 73 */
+     TkpSetMainMenubar, /* 74 */
+     TkpUseWindow, /* 75 */
+     NULL, /* 76 */
+     NULL, /* 77 */
+     TkReadBitmapFile, /* 78 */
+     TkScrollWindow, /* 79 */
+     NULL, /* 80 */
+     TkSelEventProc, /* 81 */
+     TkSelInit, /* 82 */
+     TkSelPropProc, /* 83 */
+     TkSetClassProcs, /* 84 */
+     TkSetWindowMenuBar, /* 85 */
+     TkStringToKeysym, /* 86 */
+     TkThickPolyLineToArea, /* 87 */
+     NULL, /* 88 */
+     NULL, /* 89 */
+     NULL, /* 90 */
+     NULL, /* 91 */
+     NULL, /* 92 */
+     NULL, /* 93 */
+     NULL, /* 94 */
+     NULL, /* 95 */
+     NULL, /* 96 */
+     NULL, /* 97 */
+     TkDebugBitmap, /* 98 */
+     TkDebugBorder, /* 99 */
+     TkDebugCursor, /* 100 */
+     TkDebugColor, /* 101 */
+     NULL, /* 102 */
+     TkDebugFont, /* 103 */
+     NULL, /* 104 */
+     TkGetBitmapPredefTable, /* 105 */
+     NULL, /* 106 */
+     NULL, /* 107 */
+     TkGetWindowFromObj, /* 108 */
+     NULL, /* 109 */
+     TkpGetSubFonts, /* 110 */
+     TkpGetSystemDefault, /* 111 */
+     TkpMenuThreadInit, /* 112 */
+ #if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
+     NULL, /* 113 */
+ #endif /* UNIX */
+ #ifdef __WIN32__
+     TkClipBox, /* 113 */
+ #endif /* __WIN32__ */
+ #ifdef MAC_TCL
+     TkClipBox, /* 113 */
+ #endif /* MAC_TCL */
+ #if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
+     NULL, /* 114 */
+ #endif /* UNIX */
+ #ifdef __WIN32__
+     TkCreateRegion, /* 114 */
+ #endif /* __WIN32__ */
+ #ifdef MAC_TCL
+     TkCreateRegion, /* 114 */
+ #endif /* MAC_TCL */
+ #if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
+     NULL, /* 115 */
+ #endif /* UNIX */
+ #ifdef __WIN32__
+     TkDestroyRegion, /* 115 */
+ #endif /* __WIN32__ */
+ #ifdef MAC_TCL
+     TkDestroyRegion, /* 115 */
+ #endif /* MAC_TCL */
+ #if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
+     NULL, /* 116 */
+ #endif /* UNIX */
+ #ifdef __WIN32__
+     TkIntersectRegion, /* 116 */
+ #endif /* __WIN32__ */
+ #ifdef MAC_TCL
+     TkIntersectRegion, /* 116 */
+ #endif /* MAC_TCL */
+ #if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
+     NULL, /* 117 */
+ #endif /* UNIX */
+ #ifdef __WIN32__
+     TkRectInRegion, /* 117 */
+ #endif /* __WIN32__ */
+ #ifdef MAC_TCL
+     TkRectInRegion, /* 117 */
+ #endif /* MAC_TCL */
+ #if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
+     NULL, /* 118 */
+ #endif /* UNIX */
+ #ifdef __WIN32__
+     TkSetRegion, /* 118 */
+ #endif /* __WIN32__ */
+ #ifdef MAC_TCL
+     TkSetRegion, /* 118 */
+ #endif /* MAC_TCL */
+ #if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
+     NULL, /* 119 */
+ #endif /* UNIX */
+ #ifdef __WIN32__
+     TkUnionRectWithRegion, /* 119 */
+ #endif /* __WIN32__ */
+ #ifdef MAC_TCL
+     TkUnionRectWithRegion, /* 119 */
+ #endif /* MAC_TCL */
+     NULL, /* 120 */
+ #if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
+     NULL, /* 121 */
+ #endif /* UNIX */
+ #ifdef __WIN32__
+     NULL, /* 121 */
+ #endif /* __WIN32__ */
+ #ifdef MAC_TCL
+     TkpCreateNativeBitmap, /* 121 */
+ #endif /* MAC_TCL */
+ #if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
+     NULL, /* 122 */
+ #endif /* UNIX */
+ #ifdef __WIN32__
+     NULL, /* 122 */
+ #endif /* __WIN32__ */
+ #ifdef MAC_TCL
+     TkpDefineNativeBitmaps, /* 122 */
+ #endif /* MAC_TCL */
+ #if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
+     NULL, /* 123 */
+ #endif /* UNIX */
+ #ifdef __WIN32__
+     NULL, /* 123 */
+ #endif /* __WIN32__ */
+ #ifdef MAC_TCL
+     TkpGetMS, /* 123 */
+ #endif /* MAC_TCL */
+ #if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
+     NULL, /* 124 */
+ #endif /* UNIX */
+ #ifdef __WIN32__
+     NULL, /* 124 */
+ #endif /* __WIN32__ */
+ #ifdef MAC_TCL
+     TkpGetNativeAppBitmap, /* 124 */
+ #endif /* MAC_TCL */
+     NULL, /* 125 */
+     NULL, /* 126 */
+     NULL, /* 127 */
+     NULL, /* 128 */
+     NULL, /* 129 */
+     NULL, /* 130 */
+ #if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
+     NULL, /* 131 */
+ #endif /* UNIX */
+ #ifdef __WIN32__
+     NULL, /* 131 */
+ #endif /* __WIN32__ */
+ #ifdef MAC_TCL
+     TkGenerateButtonEvent, /* 131 */
+ #endif /* MAC_TCL */
+     NULL, /* 132 */
+ #if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
+     NULL, /* 133 */
+ #endif /* UNIX */
+ #ifdef __WIN32__
+     NULL, /* 133 */
+ #endif /* __WIN32__ */
+ #ifdef MAC_TCL
+     TkGenWMDestroyEvent, /* 133 */
+ #endif /* MAC_TCL */
+ #if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
+     NULL, /* 134 */
+ #endif /* UNIX */
+ #ifdef __WIN32__
+     NULL, /* 134 */
+ #endif /* __WIN32__ */
+ #ifdef MAC_TCL
+     TkGenWMConfigureEvent, /* 134 */
+ #endif /* MAC_TCL */
+     TkpDrawHighlightBorder, /* 135 */
+     NULL, /* 136 */
+     TkpSetKeycodeAndState, /* 137 */
+     NULL, /* 138 */
+     TkTextGetIndex, /* 139 */
+     TkTextIndexBackBytes, /* 140 */
+     TkTextIndexForwBytes, /* 141 */
+     TkTextMakeByteIndex, /* 142 */
+     TkTextPrintIndex, /* 143 */
+     TkTextSetMark, /* 144 */
+     TkTextXviewCmd, /* 145 */
+     TkTextChanged, /* 146 */
+     TkBTreeNumLines, /* 147 */
+     TkTextInsertDisplayProc, /* 148 */
+ };
+ 
+ TkIntPlatStubs tkIntPlatStubs = {
+     TCL_STUB_MAGIC,
+     NULL,
+ #if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */
+     TkCreateXEventSource, /* 0 */
+     NULL, /* 1 */
+     NULL, /* 2 */
+     TkpCmapStressed, /* 3 */
+     TkpSync, /* 4 */
+     NULL, /* 5 */
+     TkUnixDoOneXEvent, /* 6 */
+     TkUnixSetMenubar, /* 7 */
+ #endif /* UNIX */
+ #ifdef __WIN32__
+     TkAlignImageData, /* 0 */
+     NULL, /* 1 */
+     NULL, /* 2 */
+     TkpGetMS, /* 3 */
+     NULL, /* 4 */
+     TkpPrintWindowId, /* 5 */
+     TkpScanWindowId, /* 6 */
+     NULL, /* 7 */
+     NULL, /* 8 */
+     NULL, /* 9 */
+     TkSetPixmapColormap, /* 10 */
+     TkWinCancelMouseTimer, /* 11 */
+     NULL, /* 12 */
+     TkWinEmbeddedEventProc, /* 13 */
+     TkWinFillRect, /* 14 */
+     TkWinGetBorderPixels, /* 15 */
+     TkWinGetDrawableDC, /* 16 */
+     TkWinGetModifierState, /* 17 */
+     TkWinGetSystemPalette, /* 18 */
+     TkWinGetWrapperWindow, /* 19 */
+     TkWinHandleMenuEvent, /* 20 */
+     TkWinIndexOfColor, /* 21 */
+     TkWinReleaseDrawableDC, /* 22 */
+     TkWinResendEvent, /* 23 */
+     TkWinSelectPalette, /* 24 */
+     TkWinSetMenu, /* 25 */
+     TkWinSetWindowPos, /* 26 */
+     TkWinWmCleanup, /* 27 */
+     TkWinXCleanup, /* 28 */
+     TkWinXInit, /* 29 */
+     NULL, /* 30 */
+     TkWinDialogDebug, /* 31 */
+     TkWinGetMenuSystemDefault, /* 32 */
+     TkWinGetPlatformId, /* 33 */
+ #endif /* __WIN32__ */
+ #ifdef MAC_TCL
+     NULL, /* 0 */
+     TkpCreateNativeBitmap, /* 1 */
+     TkpDefineNativeBitmaps, /* 2 */
+     TkpGetMS, /* 3 */
+     NULL, /* 4 */
+     NULL, /* 5 */
+     NULL, /* 6 */
+     NULL, /* 7 */
+     NULL, /* 8 */
+     NULL, /* 9 */
+     TkAboutDlg, /* 10 */
+     NULL, /* 11 */
+     NULL, /* 12 */
+     NULL, /* 13 */
+     TkGenerateButtonEvent, /* 14 */
+     NULL, /* 15 */
+     TkGenWMDestroyEvent, /* 16 */
+     TkGenWMConfigureEvent, /* 17 */
+     TkMacButtonKeyState, /* 18 */
+     TkMacClearMenubarActive, /* 19 */
+     TkMacConvertEvent, /* 20 */
+     TkMacDispatchMenuEvent, /* 21 */
+     TkMacInstallCursor, /* 22 */
+     TkMacConvertTkEvent, /* 23 */
+     TkMacHandleTearoffMenu, /* 24 */
+     NULL, /* 25 */
+     NULL, /* 26 */
+     TkMacDoHLEvent, /* 27 */
+     NULL, /* 28 */
+     TkMacGenerateTime, /* 29 */
+     TkMacGetDrawablePort, /* 30 */
+     NULL, /* 31 */
+     TkMacGetXWindow, /* 32 */
+     TkMacGrowToplevel, /* 33 */
+     TkMacHandleMenuSelect, /* 34 */
+     TkMacHaveAppearance, /* 35 */
+     TkMacInitAppleEvents, /* 36 */
+     TkMacInitMenus, /* 37 */
+     TkMacInvalidateWindow, /* 38 */
+     TkMacIsCharacterMissing, /* 39 */
+     NULL, /* 40 */
+     TkMacMakeStippleMap, /* 41 */
+     TkMacMenuClick, /* 42 */
+     TkMacRegisterOffScreenWindow, /* 43 */
+     NULL, /* 44 */
+     NULL, /* 45 */
+     TkMacSetHelpMenuItemCount, /* 46 */
+     NULL, /* 47 */
+     TkMacSetUpClippingRgn, /* 48 */
+     TkMacSetUpGraphicsPort, /* 49 */
+     NULL, /* 50 */
+     TkMacUnregisterMacWindow, /* 51 */
+     TkMacUseMenuID, /* 52 */
+     NULL, /* 53 */
+     NULL, /* 54 */
+     TkMacWindowOffset, /* 55 */
+     NULL, /* 56 */
+     TkSetMacColor, /* 57 */
+     NULL, /* 58 */
+     TkSuspendClipboard, /* 59 */
+     NULL, /* 60 */
+     TkMacZoomToplevel, /* 61 */
+     Tk_TopCoordsToWindow, /* 62 */
+     NULL, /* 63 */
+     NULL, /* 64 */
+     TkMacPreprocessMenu, /* 65 */
+ #endif /* MAC_TCL */
+ };
+ 
+ TkPlatStubs tkPlatStubs = {
+     TCL_STUB_MAGIC,
+     NULL,
+ #ifdef __WIN32__
+     Tk_AttachHWND, /* 0 */
+     Tk_GetHINSTANCE, /* 1 */
+     Tk_GetHWND, /* 2 */
+     Tk_HWNDToWindow, /* 3 */
+     Tk_PointerEvent, /* 4 */
+     Tk_TranslateWinEvent, /* 5 */
+ #endif /* __WIN32__ */
+ #ifdef MAC_TCL
+     Tk_MacSetEmbedHandler, /* 0 */
+     Tk_MacTurnOffMenus, /* 1 */
+     Tk_MacTkOwnsCursor, /* 2 */
+     TkMacInitMenus, /* 3 */
+     TkMacInitAppleEvents, /* 4 */
+     TkMacConvertEvent, /* 5 */
+     TkMacConvertTkEvent, /* 6 */
+     TkGenWMConfigureEvent, /* 7 */
+     NULL, /* 8 */
+     TkMacHaveAppearance, /* 9 */
+     TkMacGetDrawablePort, /* 10 */
+ #endif /* MAC_TCL */
+ };
+ 
+ /* !END!: Do not edit above this line. */
*** src/tkblt.decls.orig	Sat Apr 29 21:02:01 2000
--- src/tkblt.decls	Sat Apr 29 21:02:01 2000
***************
*** 0 ****
--- 1,58 ----
+ # blt.decls --
+ #
+ #	This file contains the declarations for all supported public
+ #	functions that are exported by the BLT library via the stubs table.
+ #	This file is used to generate the tkbltDecls.h file.
+ #	
+ 
+ library tkblt
+ 
+ # Define the BLT interface:
+ 
+ interface tkblt
+ 
+ # Declare each of the functions in the public BLT interface.  Note that
+ # the an index should never be reused for a different function in order
+ # to preserve backwards compatibility.
+ 
+ declare 0 generic {
+     int Blt_GetTile(Tcl_Interp *interp, Tk_Window tkwin, \
+ 	    char *imageName, Blt_Tile *tilePtr)
+ }
+ declare 1 generic {
+     void Blt_FreeTile(Blt_Tile tile)
+ }
+ declare 2 generic {
+     char *Blt_NameOfTile(Blt_Tile tile)
+ }
+ declare 3 generic {
+     void Blt_SetTileChangedProc(Blt_Tile tile, \
+ 	    Blt_TileChangedProc *changeProc, ClientData clientData)
+ }
+ declare 4 generic {
+     void Blt_TileRectangle(Display *display, Drawable drawable, \
+ 	    Blt_Tile tile, int x, int y, unsigned int width, unsigned int height)
+ }
+ declare 5 generic {
+     void Blt_TileRectangles(Display *display, Drawable drawable, \
+ 	    Blt_Tile tile, XRectangle *rectArr, int nRects)
+ }
+ declare 6 generic {
+     void Blt_TilePolygon(Display *display, Drawable drawable, \
+ 	    Blt_Tile tile, XPoint *pointArr, int nPoints, int shape, int mode)
+ }
+ declare 7 generic {
+     Pixmap Blt_PixmapOfTile(Blt_Tile tile)
+ }
+ declare 8 generic {
+     void Blt_SizeOfTile(Blt_Tile tile, int *widthPtr, \
+ 	    int *heightPtr)
+ }
+ declare 9 generic {
+     void Blt_SetTileOrigin(Tk_Window tkwin, Blt_Tile tile, \
+ 	    int x, int y)
+ }
+ declare 10 generic {
+     void Blt_SetTSOrigin(Tk_Window tkwin, Blt_Tile tile, \
+ 	    int x, int y)
+ }
*** src/tkbltDecls.h.orig	Sat Apr 29 21:02:01 2000
--- src/tkbltDecls.h	Sat Apr 29 21:02:01 2000
***************
*** 0 ****
--- 1,142 ----
+ /*
+  * tkbltDecls.h --
+  *
+  *	Declarations of functions in the platform independent public BLT API.
+  *
+  */
+ 
+ #ifndef _TKBLTDECLS
+ #define _TKBLTDECLS
+ 
+ /*
+  * WARNING: This file is automatically generated by the cf/genStubs.tcl
+  * script.  Any modifications to the function declarations below should be made
+  * in the src/tkblt.decls script.
+  */
+ 
+ /* !BEGIN!: Do not edit below this line. */
+ 
+ /*
+  * Exported function declarations:
+  */
+ 
+ /* 0 */
+ EXTERN int		Blt_GetTile _ANSI_ARGS_((Tcl_Interp * interp, 
+ 				Tk_Window tkwin, char * imageName, 
+ 				Blt_Tile * tilePtr));
+ /* 1 */
+ EXTERN void		Blt_FreeTile _ANSI_ARGS_((Blt_Tile tile));
+ /* 2 */
+ EXTERN char *		Blt_NameOfTile _ANSI_ARGS_((Blt_Tile tile));
+ /* 3 */
+ EXTERN void		Blt_SetTileChangedProc _ANSI_ARGS_((Blt_Tile tile, 
+ 				Blt_TileChangedProc * changeProc, 
+ 				ClientData clientData));
+ /* 4 */
+ EXTERN void		Blt_TileRectangle _ANSI_ARGS_((Display * display, 
+ 				Drawable drawable, Blt_Tile tile, int x, 
+ 				int y, unsigned int width, 
+ 				unsigned int height));
+ /* 5 */
+ EXTERN void		Blt_TileRectangles _ANSI_ARGS_((Display * display, 
+ 				Drawable drawable, Blt_Tile tile, 
+ 				XRectangle * rectArr, int nRects));
+ /* 6 */
+ EXTERN void		Blt_TilePolygon _ANSI_ARGS_((Display * display, 
+ 				Drawable drawable, Blt_Tile tile, 
+ 				XPoint * pointArr, int nPoints, int shape, 
+ 				int mode));
+ /* 7 */
+ EXTERN Pixmap		Blt_PixmapOfTile _ANSI_ARGS_((Blt_Tile tile));
+ /* 8 */
+ EXTERN void		Blt_SizeOfTile _ANSI_ARGS_((Blt_Tile tile, 
+ 				int * widthPtr, int * heightPtr));
+ /* 9 */
+ EXTERN void		Blt_SetTileOrigin _ANSI_ARGS_((Tk_Window tkwin, 
+ 				Blt_Tile tile, int x, int y));
+ /* 10 */
+ EXTERN void		Blt_SetTSOrigin _ANSI_ARGS_((Tk_Window tkwin, 
+ 				Blt_Tile tile, int x, int y));
+ 
+ typedef struct TkbltStubs {
+     int magic;
+     struct TkbltStubHooks *hooks;
+ 
+     int (*blt_GetTile) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window tkwin, char * imageName, Blt_Tile * tilePtr)); /* 0 */
+     void (*blt_FreeTile) _ANSI_ARGS_((Blt_Tile tile)); /* 1 */
+     char * (*blt_NameOfTile) _ANSI_ARGS_((Blt_Tile tile)); /* 2 */
+     void (*blt_SetTileChangedProc) _ANSI_ARGS_((Blt_Tile tile, Blt_TileChangedProc * changeProc, ClientData clientData)); /* 3 */
+     void (*blt_TileRectangle) _ANSI_ARGS_((Display * display, Drawable drawable, Blt_Tile tile, int x, int y, unsigned int width, unsigned int height)); /* 4 */
+     void (*blt_TileRectangles) _ANSI_ARGS_((Display * display, Drawable drawable, Blt_Tile tile, XRectangle * rectArr, int nRects)); /* 5 */
+     void (*blt_TilePolygon) _ANSI_ARGS_((Display * display, Drawable drawable, Blt_Tile tile, XPoint * pointArr, int nPoints, int shape, int mode)); /* 6 */
+     Pixmap (*blt_PixmapOfTile) _ANSI_ARGS_((Blt_Tile tile)); /* 7 */
+     void (*blt_SizeOfTile) _ANSI_ARGS_((Blt_Tile tile, int * widthPtr, int * heightPtr)); /* 8 */
+     void (*blt_SetTileOrigin) _ANSI_ARGS_((Tk_Window tkwin, Blt_Tile tile, int x, int y)); /* 9 */
+     void (*blt_SetTSOrigin) _ANSI_ARGS_((Tk_Window tkwin, Blt_Tile tile, int x, int y)); /* 10 */
+ } TkbltStubs;
+ 
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+ extern TkbltStubs *tkbltStubsPtr;
+ #ifdef __cplusplus
+ }
+ #endif
+ 
+ #if defined(USE_TKBLT_STUBS) && !defined(USE_TKBLT_STUB_PROCS)
+ 
+ /*
+  * Inline function declarations:
+  */
+ 
+ #ifndef Blt_GetTile
+ #define Blt_GetTile \
+ 	(tkbltStubsPtr->blt_GetTile) /* 0 */
+ #endif
+ #ifndef Blt_FreeTile
+ #define Blt_FreeTile \
+ 	(tkbltStubsPtr->blt_FreeTile) /* 1 */
+ #endif
+ #ifndef Blt_NameOfTile
+ #define Blt_NameOfTile \
+ 	(tkbltStubsPtr->blt_NameOfTile) /* 2 */
+ #endif
+ #ifndef Blt_SetTileChangedProc
+ #define Blt_SetTileChangedProc \
+ 	(tkbltStubsPtr->blt_SetTileChangedProc) /* 3 */
+ #endif
+ #ifndef Blt_TileRectangle
+ #define Blt_TileRectangle \
+ 	(tkbltStubsPtr->blt_TileRectangle) /* 4 */
+ #endif
+ #ifndef Blt_TileRectangles
+ #define Blt_TileRectangles \
+ 	(tkbltStubsPtr->blt_TileRectangles) /* 5 */
+ #endif
+ #ifndef Blt_TilePolygon
+ #define Blt_TilePolygon \
+ 	(tkbltStubsPtr->blt_TilePolygon) /* 6 */
+ #endif
+ #ifndef Blt_PixmapOfTile
+ #define Blt_PixmapOfTile \
+ 	(tkbltStubsPtr->blt_PixmapOfTile) /* 7 */
+ #endif
+ #ifndef Blt_SizeOfTile
+ #define Blt_SizeOfTile \
+ 	(tkbltStubsPtr->blt_SizeOfTile) /* 8 */
+ #endif
+ #ifndef Blt_SetTileOrigin
+ #define Blt_SetTileOrigin \
+ 	(tkbltStubsPtr->blt_SetTileOrigin) /* 9 */
+ #endif
+ #ifndef Blt_SetTSOrigin
+ #define Blt_SetTSOrigin \
+ 	(tkbltStubsPtr->blt_SetTSOrigin) /* 10 */
+ #endif
+ 
+ #endif /* defined(USE_TKBLT_STUBS) && !defined(USE_TKBLT_STUB_PROCS) */
+ 
+ /* !END!: Do not edit above this line. */
+ 
+ #endif /* _TCLLITEDECLS */
+ 
*** src/tkbltStubInit.c.orig	Sat Apr 29 21:02:01 2000
--- src/tkbltStubInit.c	Sat Apr 29 21:02:01 2000
***************
*** 0 ****
--- 1,38 ----
+ /* 
+  * tkbltStubInit.c --
+  */
+ 
+ #undef USE_TKBLT_STUBS
+ 
+ #include "bltInt.h"
+ #include "tkbltDecls.h"
+ 
+ /*
+  * Remove macros that will interfere with the definitions below.
+  */
+ 
+ /*
+  * WARNING: The contents of this file is automatically generated by the
+  * cf/genStubs.tcl script. Any modifications to the function declarations
+  * below should be made in the src/blt.decls script.
+  */
+ 
+ /* !BEGIN!: Do not edit below this line. */
+ 
+ TkbltStubs tkbltStubs = {
+     TCL_STUB_MAGIC,
+     NULL,
+     Blt_GetTile, /* 0 */
+     Blt_FreeTile, /* 1 */
+     Blt_NameOfTile, /* 2 */
+     Blt_SetTileChangedProc, /* 3 */
+     Blt_TileRectangle, /* 4 */
+     Blt_TileRectangles, /* 5 */
+     Blt_TilePolygon, /* 6 */
+     Blt_PixmapOfTile, /* 7 */
+     Blt_SizeOfTile, /* 8 */
+     Blt_SetTileOrigin, /* 9 */
+     Blt_SetTSOrigin, /* 10 */
+ };
+ 
+ /* !END!: Do not edit above this line. */
*** cf/genStubs.tcl.orig	Sat Apr 29 21:02:02 2000
--- cf/genStubs.tcl	Sat Apr 29 21:06:48 2000
***************
*** 0 ****
--- 1,918 ----
+ # genStubs.tcl --
+ #
+ #	This script generates a set of stub files for a given
+ #	interface.  
+ #	
+ #
+ # Copyright (c) 1998-1999 by Scriptics Corporation.
+ # See the file "license.terms" for information on usage and redistribution
+ # of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+ # 
+ # RCS: @(#) $Id: genStubs.tcl,v 1.7 1999/06/10 04:29:01 stanton Exp $
+ 
+ namespace eval genStubs {
+     # libraryName --
+     #
+     #	The name of the entire library.  This value is used to compute
+     #	the USE_*_STUB_PROCS macro and the name of the init file.
+ 
+     variable libraryName "UNKNOWN"
+ 
+     # interfaces --
+     #
+     #	An array indexed by interface name that is used to maintain
+     #   the set of valid interfaces.  The value is empty.
+ 
+     array set interfaces {}
+ 
+     # curName --
+     #
+     #	The name of the interface currently being defined.
+ 
+     variable curName "UNKNOWN"
+ 
+     # hooks --
+     #
+     #	An array indexed by interface name that contains the set of
+     #	subinterfaces that should be defined for a given interface.
+ 
+     array set hooks {}
+ 
+     # stubs --
+     #
+     #	This three dimensional array is indexed first by interface name,
+     #	second by platform name, and third by a numeric offset or the
+     #	constant "lastNum".  The lastNum entry contains the largest
+     #	numeric offset used for a given interface/platform combo.  Each
+     #	numeric offset contains the C function specification that
+     #	should be used for the given entry in the stub table.  The spec
+     #	consists of a list in the form returned by parseDecl.
+ 
+     array set stubs {}
+ 
+     # outDir --
+     #
+     #	The directory where the generated files should be placed.
+ 
+     variable outDir .
+ }
+ 
+ # genStubs::library --
+ #
+ #	This function is used in the declarations file to set the name
+ #	of the library that the interfaces are associated with (e.g. "tcl").
+ #	This value will be used to define the inline conditional macro.
+ #
+ # Arguments:
+ #	name	The library name.
+ #
+ # Results:
+ #	None.
+ 
+ proc genStubs::library {name} {
+     variable libraryName $name
+ }
+ 
+ # genStubs::interface --
+ #
+ #	This function is used in the declarations file to set the name
+ #	of the interface currently being defined.
+ #
+ # Arguments:
+ #	name	The name of the interface.
+ #
+ # Results:
+ #	None.
+ 
+ proc genStubs::interface {name} {
+     variable curName $name
+     variable interfaces
+ 
+     set interfaces($name) {}
+     return
+ }
+ 
+ # genStubs::hooks --
+ #
+ #	This function defines the subinterface hooks for the current
+ #	interface.
+ #
+ # Arguments:
+ #	names	The ordered list of interfaces that are reachable through the
+ #		hook vector.
+ #
+ # Results:
+ #	None.
+ 
+ proc genStubs::hooks {names} {
+     variable curName
+     variable hooks
+ 
+     set hooks($curName) $names
+     return
+ }
+ 
+ # genStubs::declare --
+ #
+ #	This function is used in the declarations file to declare a new
+ #	interface entry.
+ #
+ # Arguments:
+ #	index		The index number of the interface.
+ #	platform	The platform the interface belongs to.  Should be one
+ #			of generic, win, unix, or mac.
+ #	decl		The C function declaration, or {} for an undefined
+ #			entry.
+ #
+ # Results:
+ #	None.
+ 
+ proc genStubs::declare {args} {
+     variable stubs
+     variable curName
+ 
+     if {[llength $args] != 3} {
+ 	puts stderr "wrong # args: declare $args"
+     }
+     lassign $args index platformList decl
+ 
+     # Check for duplicate declarations, then add the declaration and
+     # bump the lastNum counter if necessary.
+ 
+     foreach platform $platformList {
+ 	if {[info exists stubs($curName,$platform,$index)]} {
+ 	    puts stderr "Duplicate entry: declare $args"
+ 	}
+     }
+     regsub -all "\[ \t\n\]+" [string trim $decl] " " decl
+     set decl [parseDecl $decl]
+ 
+     foreach platform $platformList {
+ 	if {$decl != ""} {
+ 	    set stubs($curName,$platform,$index) $decl
+ 	    if {![info exists stubs($curName,$platform,lastNum)] \
+ 		    || ($index > $stubs($curName,$platform,lastNum))} {
+ 		set stubs($curName,$platform,lastNum) $index
+ 	    }
+ 	}
+     }
+     return
+ }
+ 
+ # genStubs::rewriteFile --
+ #
+ #	This function replaces the machine generated portion of the
+ #	specified file with new contents.  It looks for the !BEGIN! and
+ #	!END! comments to determine where to place the new text.
+ #
+ # Arguments:
+ #	file	The name of the file to modify.
+ #	text	The new text to place in the file.
+ #
+ # Results:
+ #	None.
+ 
+ proc genStubs::rewriteFile {file text} {
+     if {![file exist $file]} {
+ 	puts stderr "Cannot find file: $file"
+ 	return
+     }
+     set in [open ${file} r]
+     set out [open ${file}.new w]
+ 
+     # Always write out the file with LF termination
+     fconfigure $out -translation lf
+ 
+     while {![eof $in]} {
+ 	set line [gets $in]
+ 	if {[regexp {!BEGIN!} $line]} {
+ 	    break
+ 	}
+ 	puts $out $line
+     }
+     puts $out "/* !BEGIN!: Do not edit below this line. */"
+     puts $out $text
+     while {![eof $in]} {
+ 	set line [gets $in]
+ 	if {[regexp {!END!} $line]} {
+ 	    break
+ 	}
+     }
+     puts $out "/* !END!: Do not edit above this line. */"
+     puts -nonewline $out [read $in]
+     close $in
+     close $out
+     file rename -force ${file}.new ${file}
+     return
+ }
+ 
+ # genStubs::addPlatformGuard --
+ #
+ #	Wrap a string inside a platform #ifdef.
+ #
+ # Arguments:
+ #	plat	Platform to test.
+ #
+ # Results:
+ #	Returns the original text inside an appropriate #ifdef.
+ 
+ proc genStubs::addPlatformGuard {plat text} {
+     switch $plat {
+ 	win {
+ 	    return "#ifdef __WIN32__\n${text}#endif /* __WIN32__ */\n"
+ 	}
+ 	unix {
+ 	    return "#if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */\n${text}#endif /* UNIX */\n"
+ 	}		    
+ 	mac {
+ 	    return "#ifdef MAC_TCL\n${text}#endif /* MAC_TCL */\n"
+ 	}
+     }
+     return "$text"
+ }
+ 
+ # genStubs::emitSlots --
+ #
+ #	Generate the stub table slots for the given interface.  If there
+ #	are no generic slots, then one table is generated for each
+ #	platform, otherwise one table is generated for all platforms.
+ #
+ # Arguments:
+ #	name	The name of the interface being emitted.
+ #	textVar	The variable to use for output.
+ #
+ # Results:
+ #	None.
+ 
+ proc genStubs::emitSlots {name textVar} {
+     variable stubs
+     upvar $textVar text
+ 
+     forAllStubs $name makeSlot 1 text {"    void *reserved$i;\n"}
+     return
+ }
+ 
+ # genStubs::parseDecl --
+ #
+ #	Parse a C function declaration into its component parts.
+ #
+ # Arguments:
+ #	decl	The function declaration.
+ #
+ # Results:
+ #	Returns a list of the form {returnType name args}.  The args
+ #	element consists of a list of type/name pairs, or a single
+ #	element "void".  If the function declaration is malformed
+ #	then an error is displayed and the return value is {}.
+ 
+ proc genStubs::parseDecl {decl} {
+     if {![regexp {^(.*)\((.*)\)$} $decl all prefix args]} {
+ 	set prefix $decl
+ 	set args {}
+     }
+     set prefix [string trim $prefix]
+     if {![regexp {^(.+[ ][*]*)([^ *]+)$} $prefix all rtype fname]} {
+ 	puts stderr "Bad return type: $decl"
+ 	return
+     }
+     set rtype [string trim $rtype]
+     if {$args == ""} {
+ 	return [list $rtype $fname {}]
+     }
+     foreach arg [split $args ,] {
+ 	lappend argList [string trim $arg]
+     }
+     if {![string compare [lindex $argList end] "..."]} {
+ 	if {[llength $argList] != 2} {
+ 	    puts stderr "Only one argument is allowed in varargs form: $decl"
+ 	}
+ 	set arg [parseArg [lindex $argList 0]]
+ 	if {$arg == "" || ([llength $arg] != 2)} {
+ 	    puts stderr "Bad argument: '[lindex $argList 0]' in '$decl'"
+ 	    return
+ 	}
+ 	set args [list TCL_VARARGS $arg]
+     } else {
+ 	set args {}
+ 	foreach arg $argList {
+ 	    set argInfo [parseArg $arg]
+ 	    if {![string compare $argInfo "void"]} {
+ 		lappend args "void"
+ 		break
+ 	    } elseif {[llength $argInfo] == 2 || [llength $argInfo] == 3} {
+ 		lappend args $argInfo
+ 	    } else {
+ 		puts stderr "Bad argument: '$arg' in '$decl'"
+ 		return
+ 	    }
+ 	}
+     }
+     return [list $rtype $fname $args]
+ }
+ 
+ # genStubs::parseArg --
+ #
+ #	This function parses a function argument into a type and name.
+ #
+ # Arguments:
+ #	arg	The argument to parse.
+ #
+ # Results:
+ #	Returns a list of type and name with an optional third array
+ #	indicator.  If the argument is malformed, returns "".
+ 
+ proc genStubs::parseArg {arg} {
+     if {![regexp {^(.+[ ][*]*)([^][ *]+)(\[\])?$} $arg all type name array]} {
+ 	if {$arg == "void"} {
+ 	    return $arg
+ 	} else {
+ 	    return
+ 	}
+     }
+     set result [list [string trim $type] $name]
+     if {$array != ""} {
+ 	lappend result $array
+     }
+     return $result
+ }
+ 
+ # genStubs::makeDecl --
+ #
+ #	Generate the prototype for a function.
+ #
+ # Arguments:
+ #	name	The interface name.
+ #	decl	The function declaration.
+ #	index	The slot index for this function.
+ #
+ # Results:
+ #	Returns the formatted declaration string.
+ 
+ proc genStubs::makeDecl {name decl index} {
+     lassign $decl rtype fname args
+ 
+     append text "/* $index */\n"
+     set line "EXTERN $rtype"
+     set count [expr {2 - ([string length $line] / 8)}]
+     append line [string range "\t\t\t" 0 $count]
+     set pad [expr {24 - [string length $line]}]
+     if {$pad <= 0} {
+ 	append line " "
+ 	set pad 0
+     }
+     if {$args == ""} {
+ 	append line $fname
+ 	append text $line
+ 	append text ";\n"
+ 	return $text
+     }
+     append line "$fname _ANSI_ARGS_("
+ 
+     set arg1 [lindex $args 0]
+     switch -exact $arg1 {
+ 	void {
+ 	    append line "(void)"
+ 	}
+ 	TCL_VARARGS {
+ 	    set arg [lindex $args 1]
+ 	    append line "TCL_VARARGS([lindex $arg 0],[lindex $arg 1])"
+ 	}
+ 	default {
+ 	    set sep "("
+ 	    foreach arg $args {
+ 		append line $sep
+ 		set next {}
+ 		append next [lindex $arg 0] " " [lindex $arg 1] \
+ 			[lindex $arg 2]
+ 		if {[string length $line] + [string length $next] \
+ 			+ $pad > 76} {
+ 		    append text $line \n
+ 		    set line "\t\t\t\t"
+ 		    set pad 28
+ 		}
+ 		append line $next
+ 		set sep ", "
+ 	    }
+ 	    append line ")"
+ 	}
+     }
+     append text $line
+     
+     append text ");\n"
+     return $text
+ }
+ 
+ # genStubs::makeMacro --
+ #
+ #	Generate the inline macro for a function.
+ #
+ # Arguments:
+ #	name	The interface name.
+ #	decl	The function declaration.
+ #	index	The slot index for this function.
+ #
+ # Results:
+ #	Returns the formatted macro definition.
+ 
+ proc genStubs::makeMacro {name decl index} {
+     lassign $decl rtype fname args
+ 
+     set lfname [string tolower [string index $fname 0]]
+     append lfname [string range $fname 1 end]
+ 
+     set text "#ifndef $fname\n#define $fname"
+ 
+     if {$args == ""} {
+ 	append text " \\\n\t(*${name}StubsPtr->${lfname}_)"
+ 	append text " /* $index */\n#endif\n"
+ 	return $text
+     }
+     set arg1 [lindex $args 0]
+     set argList ""
+     switch -exact $arg1 {
+ 	void {
+ 	    set argList "()"
+ 	}
+ 	TCL_VARARGS {
+ 	}
+ 	default {
+ 	    set sep "("
+ 	    foreach arg $args {
+ 		append argList $sep [lindex $arg 1]
+ 		set sep ", "
+ 	    }
+ 	    append argList ")"
+ 	}
+     }
+     append text " \\\n\t(${name}StubsPtr->$lfname)"
+     append text " /* $index */\n#endif\n"
+     return $text
+ }
+ 
+ # genStubs::makeStub --
+ #
+ #	Emits a stub function definition.
+ #
+ # Arguments:
+ #	name	The interface name.
+ #	decl	The function declaration.
+ #	index	The slot index for this function.
+ #
+ # Results:
+ #	Returns the formatted stub function definition.
+ 
+ proc genStubs::makeStub {name decl index} {
+     lassign $decl rtype fname args
+ 
+     set lfname [string tolower [string index $fname 0]]
+     append lfname [string range $fname 1 end]
+ 
+     append text "/* Slot $index */\n" $rtype "\n" $fname
+ 
+     set arg1 [lindex $args 0]
+ 
+     if {![string compare $arg1 "TCL_VARARGS"]} {
+ 	lassign [lindex $args 1] type argName 
+ 	append text " TCL_VARARGS_DEF($type,$argName)\n\{\n"
+ 	append text "    " $type " var;\n    va_list argList;\n"
+ 	if {[string compare $rtype "void"]} {
+ 	    append text "    " $rtype " resultValue;\n"
+ 	}
+ 	append text "\n    var = (" $type ") TCL_VARARGS_START(" \
+ 		$type "," $argName ",argList);\n\n    "
+ 	if {[string compare $rtype "void"]} {
+ 	    append text "resultValue = "
+ 	}
+ 	append text "(" $name "StubsPtr->" $lfname "VA)(var, argList);\n"
+ 	append text "    va_end(argList);\n"
+ 	if {[string compare $rtype "void"]} {
+ 	    append text "return resultValue;\n"
+ 	}
+ 	append text "\}\n\n"
+ 	return $text
+     }
+ 
+     if {![string compare $arg1 "void"]} {
+ 	set argList "()"
+ 	set argDecls ""
+     } else {
+ 	set argList ""
+ 	set sep "("
+ 	foreach arg $args {
+ 	    append argList $sep [lindex $arg 1]
+ 	    append argDecls "    " [lindex $arg 0] " " \
+ 		    [lindex $arg 1] [lindex $arg 2] ";\n"
+ 	    set sep ", "
+ 	}
+ 	append argList ")"
+     }
+     append text $argList "\n" $argDecls "{\n    "
+     if {[string compare $rtype "void"]} {
+ 	append text "return "
+     }
+     append text "(" $name "StubsPtr->" $lfname ")" $argList ";\n}\n\n"
+     return $text
+ }
+ 
+ # genStubs::makeSlot --
+ #
+ #	Generate the stub table entry for a function.
+ #
+ # Arguments:
+ #	name	The interface name.
+ #	decl	The function declaration.
+ #	index	The slot index for this function.
+ #
+ # Results:
+ #	Returns the formatted table entry.
+ 
+ proc genStubs::makeSlot {name decl index} {
+     lassign $decl rtype fname args
+ 
+     set lfname [string tolower [string index $fname 0]]
+     append lfname [string range $fname 1 end]
+ 
+     set text "    "
+     if {$args == ""} {
+ 	append lfname _
+ 	append text $rtype " *" $lfname "; /* $index */\n"
+ 	return $text
+     }
+     append text $rtype " (*" $lfname ") _ANSI_ARGS_("
+ 
+     set arg1 [lindex $args 0]
+     switch -exact $arg1 {
+ 	void {
+ 	    append text "(void)"
+ 	}
+ 	TCL_VARARGS {
+ 	    set arg [lindex $args 1]
+ 	    append text "TCL_VARARGS([lindex $arg 0],[lindex $arg 1])"
+ 	}
+ 	default {
+ 	    set sep "("
+ 	    foreach arg $args {
+ 		append text $sep [lindex $arg 0] " " [lindex $arg 1] \
+ 			[lindex $arg 2]
+ 		set sep ", "
+ 	    }
+ 	    append text ")"
+ 	}
+     }
+     
+     append text "); /* $index */\n"
+     return $text
+ }
+ 
+ # genStubs::makeInit --
+ #
+ #	Generate the prototype for a function.
+ #
+ # Arguments:
+ #	name	The interface name.
+ #	decl	The function declaration.
+ #	index	The slot index for this function.
+ #
+ # Results:
+ #	Returns the formatted declaration string.
+ 
+ proc genStubs::makeInit {name decl index} {
+     if {[lindex $decl 2] == ""} {
+ 	append text "    &" [lindex $decl 1] ", /* " $index " */\n"
+     } else {
+ 	append text "    " [lindex $decl 1] ", /* " $index " */\n"
+     }
+     return $text
+ }
+ 
+ # genStubs::forAllStubs --
+ #
+ #	This function iterates over all of the platforms and invokes
+ #	a callback for each slot.  The result of the callback is then
+ #	placed inside appropriate platform guards.
+ #
+ # Arguments:
+ #	name		The interface name.
+ #	slotProc	The proc to invoke to handle the slot.  It will
+ #			have the interface name, the declaration,  and
+ #			the index appended.
+ #	onAll		If 1, emit the skip string even if there are
+ #			definitions for one or more platforms.
+ #	textVar		The variable to use for output.
+ #	skipString	The string to emit if a slot is skipped.  This
+ #			string will be subst'ed in the loop so "$i" can
+ #			be used to substitute the index value.
+ #
+ # Results:
+ #	None.
+ 
+ proc genStubs::forAllStubs {name slotProc onAll textVar \
+ 	{skipString {"/* Slot $i is reserved */\n"}}} {
+     variable stubs
+     upvar $textVar text
+ 
+     set plats [array names stubs $name,*,lastNum]
+     if {[info exists stubs($name,generic,lastNum)]} {
+ 	# Emit integrated stubs block
+ 	set lastNum -1
+ 	foreach plat [array names stubs $name,*,lastNum] {
+ 	    if {$stubs($plat) > $lastNum} {
+ 		set lastNum $stubs($plat)
+ 	    }
+ 	}
+ 	for {set i 0} {$i <= $lastNum} {incr i} {
+ 	    set slots [array names stubs $name,*,$i]
+ 	    set emit 0
+ 	    if {[info exists stubs($name,generic,$i)]} {
+ 		if {[llength $slots] > 1} {
+ 		    puts stderr "platform entry duplicates generic entry: $i"
+ 		}
+ 		append text [$slotProc $name $stubs($name,generic,$i) $i]
+ 		set emit 1
+ 	    } elseif {[llength $slots] > 0} {
+ 		foreach plat {unix win mac} {
+ 		    if {[info exists stubs($name,$plat,$i)]} {
+ 			append text [addPlatformGuard $plat \
+ 				[$slotProc $name $stubs($name,$plat,$i) $i]]
+ 			set emit 1
+ 		    } elseif {$onAll} {
+ 			append text [eval {addPlatformGuard $plat} $skipString]
+ 			set emit 1
+ 		    }
+ 		}
+ 	    }
+ 	    if {$emit == 0} {
+ 		eval {append text} $skipString
+ 	    }
+ 	}
+ 	
+     } else {
+ 	# Emit separate stubs blocks per platform
+ 	foreach plat {unix win mac} {
+ 	    if {[info exists stubs($name,$plat,lastNum)]} {
+ 		set lastNum $stubs($name,$plat,lastNum)
+ 		set temp {}
+ 		for {set i 0} {$i <= $lastNum} {incr i} {
+ 		    if {![info exists stubs($name,$plat,$i)]} {
+ 			eval {append temp} $skipString
+ 		    } else {
+ 			append temp [$slotProc $name $stubs($name,$plat,$i) $i]
+ 		    }
+ 		}
+ 		append text [addPlatformGuard $plat $temp]
+ 	    }
+ 	}
+     }
+ 
+ }
+ 
+ # genStubs::emitDeclarations --
+ #
+ #	This function emits the function declarations for this interface.
+ #
+ # Arguments:
+ #	name	The interface name.
+ #	textVar	The variable to use for output.
+ #
+ # Results:
+ #	None.
+ 
+ proc genStubs::emitDeclarations {name textVar} {
+     variable stubs
+     upvar $textVar text
+ 
+     append text "\n/*\n * Exported function declarations:\n */\n\n"
+     forAllStubs $name makeDecl 0 text
+     return
+ }
+ 
+ # genStubs::emitMacros --
+ #
+ #	This function emits the inline macros for an interface.
+ #
+ # Arguments:
+ #	name	The name of the interface being emitted.
+ #	textVar	The variable to use for output.
+ #
+ # Results:
+ #	None.
+ 
+ proc genStubs::emitMacros {name textVar} {
+     variable stubs
+     variable libraryName
+     upvar $textVar text
+ 
+     set upName [string toupper $libraryName]
+     append text "\n#if defined(USE_${upName}_STUBS) && !defined(USE_${upName}_STUB_PROCS)\n"
+     append text "\n/*\n * Inline function declarations:\n */\n\n"
+     
+     forAllStubs $name makeMacro 0 text
+ 
+     append text "\n#endif /* defined(USE_${upName}_STUBS) && !defined(USE_${upName}_STUB_PROCS) */\n"
+     return
+ }
+ 
+ # genStubs::emitHeader --
+ #
+ #	This function emits the body of the <name>Decls.h file for
+ #	the specified interface.
+ #
+ # Arguments:
+ #	name	The name of the interface being emitted.
+ #
+ # Results:
+ #	None.
+ 
+ proc genStubs::emitHeader {name} {
+     variable outDir
+     variable hooks
+ 
+     set capName [string toupper [string index $name 0]]
+     append capName [string range $name 1 end]
+ 
+     emitDeclarations $name text
+ 
+     if {[info exists hooks($name)]} {
+ 	append text "\ntypedef struct ${capName}StubHooks {\n"
+ 	foreach hook $hooks($name) {
+ 	    set capHook [string toupper [string index $hook 0]]
+ 	    append capHook [string range $hook 1 end]
+ 	    append text "    struct ${capHook}Stubs *${hook}Stubs;\n"
+ 	}
+ 	append text "} ${capName}StubHooks;\n"
+     }
+     append text "\ntypedef struct ${capName}Stubs {\n"
+     append text "    int magic;\n"
+     append text "    struct ${capName}StubHooks *hooks;\n\n"
+ 
+     emitSlots $name text
+ 
+     append text "} ${capName}Stubs;\n"
+ 
+     append text "\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n"
+     append text "extern ${capName}Stubs *${name}StubsPtr;\n"
+     append text "#ifdef __cplusplus\n}\n#endif\n"
+ 
+     emitMacros $name text
+ 
+     rewriteFile [file join $outDir ${name}Decls.h] $text
+     return
+ }
+ 
+ # genStubs::emitStubs --
+ #
+ #	This function emits the body of the <name>Stubs.c file for
+ #	the specified interface.
+ #
+ # Arguments:
+ #	name	The name of the interface being emitted.
+ #
+ # Results:
+ #	None.
+ 
+ proc genStubs::emitStubs {name} {
+     variable outDir
+ 
+     append text "\n/*\n * Exported stub functions:\n */\n\n"
+     forAllStubs $name makeStub 0 text
+ 
+     rewriteFile [file join $outDir ${name}Stubs.c] $text
+     return    
+ }
+ 
+ # genStubs::emitInit --
+ #
+ #	Generate the table initializers for an interface.
+ #
+ # Arguments:
+ #	name		The name of the interface to initialize.
+ #	textVar		The variable to use for output.
+ #
+ # Results:
+ #	Returns the formatted output.
+ 
+ proc genStubs::emitInit {name textVar} {
+     variable stubs
+     variable hooks
+     upvar $textVar text
+ 
+     set capName [string toupper [string index $name 0]]
+     append capName [string range $name 1 end]
+ 
+     if {[info exists hooks($name)]} {
+  	append text "\nstatic ${capName}StubHooks ${name}StubHooks = \{\n"
+ 	set sep "    "
+ 	foreach sub $hooks($name) {
+ 	    append text $sep "&${sub}Stubs"
+ 	    set sep ",\n    "
+ 	}
+ 	append text "\n\};\n"
+     }
+     append text "\n${capName}Stubs ${name}Stubs = \{\n"
+     append text "    TCL_STUB_MAGIC,\n"
+     if {[info exists hooks($name)]} {
+ 	append text "    &${name}StubHooks,\n"
+     } else {
+ 	append text "    NULL,\n"
+     }
+     
+     forAllStubs $name makeInit 1 text {"    NULL, /* $i */\n"}
+ 
+     append text "\};\n"
+     return
+ }
+ 
+ # genStubs::emitInits --
+ #
+ #	This function emits the body of the <name>StubInit.c file for
+ #	the specified interface.
+ #
+ # Arguments:
+ #	name	The name of the interface being emitted.
+ #
+ # Results:
+ #	None.
+ 
+ proc genStubs::emitInits {} {
+     variable hooks
+     variable outDir
+     variable libraryName
+     variable interfaces
+ 
+     # Assuming that dependencies only go one level deep, we need to emit
+     # all of the leaves first to avoid needing forward declarations.
+ 
+     set leaves {}
+     set roots {}
+     foreach name [lsort [array names interfaces]] {
+ 	if {[info exists hooks($name)]} {
+ 	    lappend roots $name
+ 	} else {
+ 	    lappend leaves $name
+ 	}
+     }
+     foreach name $leaves {
+ 	emitInit $name text
+     }
+     foreach name $roots {
+ 	emitInit $name text
+     }
+ 
+     rewriteFile [file join $outDir ${libraryName}StubInit.c] $text
+ }
+ 
+ # genStubs::init --
+ #
+ #	This is the main entry point.
+ #
+ # Arguments:
+ #	None.
+ #
+ # Results:
+ #	None.
+ 
+ proc genStubs::init {} {
+     global argv argv0
+     variable outDir
+     variable interfaces
+ 
+     if {[llength $argv] < 2} {
+ 	puts stderr "usage: $argv0 outDir declFile ?declFile...?"
+ 	exit 1
+     }
+ 
+     set outDir [lindex $argv 0]
+ 
+     foreach file [lrange $argv 1 end] {
+ 	source $file
+     }
+ 
+     foreach name [lsort [array names interfaces]] {
+ 	puts "Emitting $name"
+ 	emitHeader $name
+     }
+ 
+     emitInits
+ }
+ 
+ # lassign --
+ #
+ #	This function emulates the TclX lassign command.
+ #
+ # Arguments:
+ #	valueList	A list containing the values to be assigned.
+ #	args		The list of variables to be assigned.
+ #
+ # Results:
+ #	Returns any values that were not assigned to variables.
+ 
+ proc lassign {valueList args} {
+   if {[llength $args] == 0} {
+       error "wrong # args: lassign list varname ?varname..?"
+   }
+ 
+   uplevel [list foreach $args $valueList {break}]
+   return [lrange $valueList [llength $args] end]
+ }
+ 
+ genStubs::init
*** src/shared/Makefile.in.orig	Fri Mar  3 05:37:50 2000
--- src/shared/Makefile.in	Sat Apr 29 21:02:02 2000
***************
*** 12,21 ****
  CC =		@CC@
  CFLAGS =	@CFLAGS@ 
  EXTRA_CFLAGS =	@GCCFLAGS@ @SHLIB_CFLAGS@
! DEFINES =	@DEFINES@
  DEF_BLTINIT =	-DBLT_LIBRARY=\"$(scriptdir)\"
  SHLIB_LD_FLAGS = @SHLIB_LD_FLAGS@ 
! SHLIB_LD_LIBS = @SHLIB_LD_LIBS@ 
  SHLIB_LD =	@SHLIB_LD@
  LDFLAGS =	@LDFLAGS@ 
  
--- 12,21 ----
  CC =		@CC@
  CFLAGS =	@CFLAGS@ 
  EXTRA_CFLAGS =	@GCCFLAGS@ @SHLIB_CFLAGS@
! DEFINES =	@DEFINES@ @TCL_DEFS@
  DEF_BLTINIT =	-DBLT_LIBRARY=\"$(scriptdir)\"
  SHLIB_LD_FLAGS = @SHLIB_LD_FLAGS@ 
! SHLIB_LD_LIBS = @STUB_LIB_SPECS@ 
  SHLIB_LD =	@SHLIB_LD@
  LDFLAGS =	@LDFLAGS@ 
  
***************
*** 40,107 ****
  		bltVector.o bltWatch.o \
  		bltList.o bltChain.o \
  		bltNsUtil.o bltParse.o bltUnixPipe.o \
! 		bltUtil.o bltTree.o 
  
  N_OBJS =	bltTed.o
  V3_OBJS =	bltTri.o bltGrMt.o 
! TREE_OBJS =	bltTree.o bltHiertable.o bltHtCmd.o bltHtColumn.o bltHtText.o
  TK_OBJS =	tkButton.o tkFrame.o tkScrollbar.o 
  
  OBJS =		bltGraph.o bltGrAxis.o bltGrBar.o bltGrElem.o \
  		bltGrGrid.o bltGrHairs.o bltGrLegd.o bltGrLine.o \
  		bltGrMarker.o bltGrMisc.o bltGrPen.o bltGrPs.o \
! 	       	bltBeep.o bltBgexec.o bltBitmap.o bltBusy.o \
! 		bltContainer.o bltCutbuffer.o bltDebug.o \
  		bltDnd.o bltUnixDnd.o \
! 		bltHierbox.o bltHtext.o bltSpline.o bltTable.o bltTabset.o \
! 		bltVector.o bltWatch.o bltWinop.o \
  		bltCanvEps.o bltBind.o bltColor.o \
! 		bltConfig.o bltImage.o bltList.o bltChain.o \
! 		bltNsUtil.o bltParse.o bltPs.o bltText.o bltTile.o \
! 		bltUnixPipe.o bltUtil.o bltWindow.o \
! 		$(TREE_OBJS) $(TK_OBJS) $(N_OBJS) 
  
  INCLUDES =	-I.. -I$(srcdir) -I$(srcdir)/.. @INCLUDES@
  CC_SWITCHES =	$(EXTRA_CFLAGS) $(CFLAGS) $(DEFINES) $(INCLUDES)
  INSTALL =	@INSTALL@
  INSTALL_DATA =	@INSTALL_DATA@
  SHELL =		/bin/sh
  RM =		rm -f
  LN_S =		@LN_S@
  bltwish =	bltwish$(version)
  bltsh =		bltsh$(version)
  lib_so =	libBLT$(version)$(SHLIB_SUFFIX)
  tcl_only_lib_so = libBLTlite$(version)$(SHLIB_SUFFIX)
  
  all: build_lib build_demo
  
  build_demo: $(bltwish) $(bltsh)
  
! $(bltwish): $(lib_so)
  	$(RM) $(bltwish)
  	$(CC) $(CC_SWITCHES) $(LDFLAGS) -o $(bltwish) \
! 		$(srcdir)/bltUnixMain.c $(lib_so) $(LIBS) 
  
  $(bltsh): $(tcl_only_lib_so)
  	$(RM) $(bltsh)
  	$(CC) $(CC_SWITCHES) $(LDFLAGS) -DTCL_ONLY -o $(bltsh) \
  		 $(srcdir)/bltUnixMain.c $(tcl_only_lib_so) $(TCL_ONLY_LIBS) 
  
! build_lib: $(lib_so) $(tcl_only_lib_so)
  
! $(lib_so): $(OBJS)
! 	$(CC) -c $(CC_SWITCHES) -DBLT_LIBRARY=\"$(BLT_LIBRARY)\" \
! 		$(srcdir)/bltInit.c
  	$(RM) $@
! 	$(SHLIB_LD) $(SHLIB_LD_FLAGS) -o $@ bltInit.o $(OBJS) $(SHLIB_LD_LIBS)
  
  $(tcl_only_lib_so): $(TCL_ONLY_OBJS)
- 	$(CC) -c $(CC_SWITCHES) -DTCL_ONLY -DBLT_LIBRARY=\"$(BLT_LIBRARY)\" \
- 		$(srcdir)/bltInit.c
  	$(RM) $@
! 	$(SHLIB_LD) $(SHLIB_LD_FLAGS) -o $@ bltInit.o $(TCL_ONLY_OBJS) \
  		$(SHLIB_LD_LIBS)
  
  install: install_dirs install_lib install_demo
  
  install_demo: $(bltwish)
--- 40,111 ----
  		bltVector.o bltWatch.o \
  		bltList.o bltChain.o \
  		bltNsUtil.o bltParse.o bltUnixPipe.o \
! 		bltUtil.o bltTree.o bltInit.o bltStubInit.o
  
  N_OBJS =	bltTed.o
  V3_OBJS =	bltTri.o bltGrMt.o 
! TREE_OBJS =	bltHiertable.o bltHtCmd.o bltHtColumn.o bltHtText.o
  TK_OBJS =	tkButton.o tkFrame.o tkScrollbar.o 
  
  OBJS =		bltGraph.o bltGrAxis.o bltGrBar.o bltGrElem.o \
  		bltGrGrid.o bltGrHairs.o bltGrLegd.o bltGrLine.o \
  		bltGrMarker.o bltGrMisc.o bltGrPen.o bltGrPs.o \
! 	       	bltBeep.o bltBitmap.o bltBusy.o \
! 		bltContainer.o bltCutbuffer.o \
  		bltDnd.o bltUnixDnd.o \
! 		bltHierbox.o bltHtext.o bltTable.o bltTabset.o \
! 		bltWinop.o \
  		bltCanvEps.o bltBind.o bltColor.o \
! 		bltConfig.o bltImage.o \
! 		bltPs.o bltText.o bltTile.o \
! 		bltWindow.o bltPkgInit.o tkbltStubInit.o \
! 		$(TREE_OBJS) $(TK_OBJS) $(N_OBJS)
  
  INCLUDES =	-I.. -I$(srcdir) -I$(srcdir)/.. @INCLUDES@
  CC_SWITCHES =	$(EXTRA_CFLAGS) $(CFLAGS) $(DEFINES) $(INCLUDES)
  INSTALL =	@INSTALL@
  INSTALL_DATA =	@INSTALL_DATA@
+ RANLIB =	@RANLIB@
  SHELL =		/bin/sh
+ AR =		ar rc
  RM =		rm -f
  LN_S =		@LN_S@
  bltwish =	bltwish$(version)
  bltsh =		bltsh$(version)
  lib_so =	libBLT$(version)$(SHLIB_SUFFIX)
  tcl_only_lib_so = libBLTlite$(version)$(SHLIB_SUFFIX)
+ lib_stub =	libBLTstub$(version).a
  
  all: build_lib build_demo
  
  build_demo: $(bltwish) $(bltsh)
  
! $(bltwish): $(lib_so) $(tcl_only_lib_so)
  	$(RM) $(bltwish)
  	$(CC) $(CC_SWITCHES) $(LDFLAGS) -o $(bltwish) \
! 		$(srcdir)/bltUnixMain.c $(lib_so) $(tcl_only_lib_so) $(LIBS) 
  
  $(bltsh): $(tcl_only_lib_so)
  	$(RM) $(bltsh)
  	$(CC) $(CC_SWITCHES) $(LDFLAGS) -DTCL_ONLY -o $(bltsh) \
  		 $(srcdir)/bltUnixMain.c $(tcl_only_lib_so) $(TCL_ONLY_LIBS) 
  
! build_lib: $(lib_so) $(lib_stub)
  
! $(lib_so): $(OBJS) $(lib_stub)
  	$(RM) $@
! 	$(SHLIB_LD) $(SHLIB_LD_FLAGS) -o $@ $(OBJS) $(lib_stub) $(SHLIB_LD_LIBS)
  
  $(tcl_only_lib_so): $(TCL_ONLY_OBJS)
  	$(RM) $@
! 	$(SHLIB_LD) $(SHLIB_LD_FLAGS) -o $@ $(TCL_ONLY_OBJS) \
  		$(SHLIB_LD_LIBS)
  
+ $(lib_stub):  bltStubLib.o
+ 	$(RM) $@
+ 	$(AR) $@ bltStubLib.o
+ 	$(RANLIB) $@
+ 
  install: install_dirs install_lib install_demo
  
  install_demo: $(bltwish)
***************
*** 111,116 ****
--- 115,121 ----
  install_lib: $(lib_so)
  	$(INSTALL) -m 0755 $(lib_so) $(libdir)
  	$(INSTALL) -m 0755 $(tcl_only_lib_so) $(libdir)
+ 	$(INSTALL) -m 0755 $(lib_stub) $(libdir)
  
  install_dirs:
  	@for i in $(instdirs) ; do \
***************
*** 198,203 ****
--- 203,212 ----
  	$(CC) -c $(CC_SWITCHES) $?
  bltImage.o: 	$(srcdir)/bltImage.c       
  	$(CC) -c $(CC_SWITCHES) $?
+ bltInit.o: 	$(srcdir)/bltInit.c
+ 	$(CC) -c $(CC_SWITCHES) $?
+ bltPkgInit.o: 	$(srcdir)/bltPkgInit.c
+ 	$(CC) -c $(CC_SWITCHES) $?
  bltList.o: 	$(srcdir)/bltList.c
  	$(CC) -c $(CC_SWITCHES) $?
  bltChain.o: 	$(srcdir)/bltChain.c
***************
*** 209,214 ****
--- 218,229 ----
  bltPs.o: 	$(srcdir)/bltPs.c
  	$(CC) -c $(CC_SWITCHES) $?
  bltSpline.o: 	$(srcdir)/bltSpline.c
+ 	$(CC) -c $(CC_SWITCHES) $?
+ bltStubInit.o: 	$(srcdir)/bltStubInit.c
+ 	$(CC) -c $(CC_SWITCHES) $?
+ bltStubLib.o: 	$(srcdir)/bltStubLib.c
+ 	$(CC) -c $(CC_SWITCHES) $?
+ tkbltStubInit.o: 	$(srcdir)/tkbltStubInit.c
  	$(CC) -c $(CC_SWITCHES) $?
  bltTable.o: 	$(srcdir)/bltTable.c
  	$(CC) -c $(CC_SWITCHES) $?
*** library/pkgIndex.tcl.in.orig	Tue Feb 29 21:48:00 2000
--- library/pkgIndex.tcl.in	Sat Apr 29 21:02:02 2000
***************
*** 1,25 ****
  # Tcl package index file, version 1.0
  
  proc Blt_MakePkgIndex { dir } {
      set suffix [info sharedlibextension]
      set version __VERSION__
      regsub {\.} $version {} version_no_dots
      foreach lib { __AUX_LIBS__ } {
  	catch { load ${lib}${suffix} BLT }
      }
!     # Determine whether to load the normal BLT library or 
!     # the "lite" tcl-only version.
!     if { [info commands tk] == "tk" } {
!         set library BLT${version_no_dots}${suffix}
!     } else {
!         set library BLTlite${version_no_dots}${suffix}
!     }
      global tcl_platform
      if { $tcl_platform(platform) == "unix" } {
  	set library [file join [file dirname $dir] lib${library}]
      } 
!     package ifneeded BLT ${version} [list load $library BLT]
  }
  
  Blt_MakePkgIndex $dir
- rename Blt_MakePkgIndex ""
--- 1,24 ----
  # Tcl package index file, version 1.0
  
  proc Blt_MakePkgIndex { dir } {
+     rename Blt_MakePkgIndex ""
      set suffix [info sharedlibextension]
      set version __VERSION__
      regsub {\.} $version {} version_no_dots
      foreach lib { __AUX_LIBS__ } {
  	catch { load ${lib}${suffix} BLT }
      }
!     set litelibrary BLTlite${version_no_dots}${suffix}
!     set library BLT${version_no_dots}${suffix}
      global tcl_platform
      if { $tcl_platform(platform) == "unix" } {
+ 	set litelibrary [file join [file dirname $dir] lib${litelibrary}]
  	set library [file join [file dirname $dir] lib${library}]
      } 
!     package ifneeded BLT ${version} "[list load $litelibrary BLTlite]
!     if \{ \[info commands tk\] == \"tk\" \} \{
! 	[list load $library BLT]
!     \}"
  }
  
  Blt_MakePkgIndex $dir
