Index: LICENSE
==================================================================
--- LICENSE
+++ LICENSE
@@ -3,10 +3,11 @@
 	kitsh/buildsrc/kitsh-0.0/kitInit.c
 	kitsh/buildsrc/kitsh-0.0/license.terms
 	kitsh/buildsrc/kitsh-0.0/pwb.c
 	kitsh/buildsrc/kitsh-0.0/rechan.c
 	kitsh/buildsrc/kitsh-0.0/zlib.c
+	kitsh/buildsrc/kitsh-0.0/winMain.c
 
 Please see "kitsh/buildsrc/kitsh-0.0/license.terms" for licensing information
 regarding these files.
 
 All others are licensed under the terms of the MIT License, below:

Index: README
==================================================================
--- README
+++ README
@@ -65,10 +65,14 @@
 	3. TCLKIT
 		Specify the path to a Tclkit that is runnable on the current
 		system.  The default is "tclkit".  A working tclkit is required
 		for cross-compiling Tclkits.
 
+	4. STATICTK
+		Specify this as "1" to statically link to Tk.  The default
+		action on most platforms is to dynamically link to Tk.
+
 
 
 -------------------
 Method of Operation
 -------------------

Index: build/make-kit-win32
==================================================================
--- build/make-kit-win32
+++ build/make-kit-win32
@@ -1,10 +1,10 @@
 #! /bin/sh
 
 AR=i586-mingw32msvc-ar
-CC='i586-mingw32msvc-gcc -I/home/rkeene/root/windows-i386/include -L/home/rkeene/root/windows-i386/lib'
-CXX='i586-mingw32msvc-g++ -I/home/rkeene/root/windows-i386/include -L/home/rkeene/root/windows-i386/lib'
+CC=i586-mingw32msvc-gcc
+CXX=i586-mingw32msvc-g++
 RANLIB=i586-mingw32msvc-ranlib
 RC=i586-mingw32msvc-windres
 export AR CC CXX RANLIB RC
 
-./kitcreator --host=i586-mingw32msvc
+./kitcreator "$@" --host=i586-mingw32msvc --with-zlib=/home/rkeene/root/windows-i386

Index: kitsh/buildsrc/kitsh-0.0/Makefile.in
==================================================================
--- kitsh/buildsrc/kitsh-0.0/Makefile.in
+++ kitsh/buildsrc/kitsh-0.0/Makefile.in
@@ -1,12 +1,12 @@
 CC = @CC@
-CFLAGS = @CFLAGS@ @DEFS@ -DSTDC_HEADERS=1
-CPPFLAGS = @CPPFLAGS@ @DEFS@ -DSTDC_HEADERS=1
+CFLAGS = @CFLAGS@ @DEFS@ -DSTDC_HEADERS=1 -DTK_LOCAL_APPINIT=TclKit_AppInit
+CPPFLAGS = @CPPFLAGS@ @DEFS@ -DSTDC_HEADERS=1 -DTK_LOCAL_APPINIT=TclKit_AppInit
 LDFLAGS = @LDFLAGS@
 LIBS = @LIBS@
 ARCHS = @ARCHS@
-OBJS = kitInit.o main.o pwb.o rechan.o zlib.o
+OBJS = kitInit.o main.o pwb.o rechan.o zlib.o winMain.o
 
 all: kit
 
 kit: $(OBJS) $(ARCHS)
 	$(CC) $(CPPFLAGS) $(CFLAGS) -o kit $(OBJS) $(ARCHS) $(LDFLAGS) $(LIBS)

Index: kitsh/buildsrc/kitsh-0.0/aclocal.m4
==================================================================
--- kitsh/buildsrc/kitsh-0.0/aclocal.m4
+++ kitsh/buildsrc/kitsh-0.0/aclocal.m4
@@ -4,32 +4,40 @@
 		with_tcl="auto"
 	])
 
 	if test "${with_tcl}" = "auto"; then
 		for dir in `echo "${PATH}" | sed 's@:@ @g'`; do
+			if test -f "${dir}/tclConfig.sh"; then
+				tclconfigshdir="${dir}"
+				tclconfigsh="${tclconfigshdir}/tclConfig.sh"
+				break
+			fi
 			if test -f "${dir}/../lib/tclConfig.sh"; then
-				tclconfigsh="${dir}/../lib/tclConfig.sh"
+				tclconfigshdir="${dir}/../lib"
+				tclconfigsh="${tclconfigshdir}/tclConfig.sh"
 				break
 			fi
 			if test -f "${dir}/../lib64/tclConfig.sh"; then
-				tclconfigsh="${dir}/../lib64/tclConfig.sh"
+				tclconfigshdir="${dir}/../lib64"
+				tclconfigsh="${tclconfigshdir}/tclConfig.sh"
 				break
 			fi
 		done
 
 		if test -z "${tclconfigsh}"; then
 			AC_MSG_ERROR([Unable to find tclConfig.sh])
 		fi
 	else
-		tclconfigsh="${with_tcl}/tclConfig.sh"
+		tclconfigshdir="${with_tcl}"
+		tclconfigsh="${tclconfigshdir}/tclConfig.sh"
 	fi
 
 	if test -f "${tclconfigsh}"; then
 		source "${tclconfigsh}"
 
-		CFLAGS="${CFLAGS} ${TCL_INCLUDE_SPEC} -I${TCL_SRC_DIR}/generic -I${TCL_SRC_DIR}/unix"
-		CPPFLAGS="${CPPFLAGS} ${TCL_INCLUDE_SPEC} -I${TCL_SRC_DIR}/generic -I${TCL_SRC_DIR}/unix"
+		CFLAGS="${CFLAGS} ${TCL_INCLUDE_SPEC} -I${TCL_SRC_DIR}/generic -I${tclconfigshdir}"
+		CPPFLAGS="${CPPFLAGS} ${TCL_INCLUDE_SPEC} -I${TCL_SRC_DIR}/generic -I${tclconfigshdir}"
 		LDFLAGS="${LDFLAGS}"
 		LIBS="${LIBS} ${TCL_LIBS}"
 	fi
 
 	AC_SUBST(CFLAGS)
@@ -37,10 +45,60 @@
 	AC_SUBST(LDFLAGS)
 	AC_SUBST(LIBS)
 
 	AC_MSG_RESULT([$tclconfigsh])
 ])
+
+AC_DEFUN(DC_DO_TK, [
+	AC_MSG_CHECKING([path to tk])
+	AC_ARG_WITH(tk, AC_HELP_STRING([--with-tk], [directory containing tk configuration (tkConfig.sh)]), [], [
+		with_tk="auto"
+	])
+
+	if test "${with_tk}" = "auto"; then
+		for dir in ../../../tk/build/tk*/*/ `echo "${PATH}" | sed 's@:@ @g'`; do
+			if test -f "${dir}/tkConfig.sh"; then
+				tkconfigshdir="${dir}"
+				tkconfigsh="${tkconfigshdir}/tkConfig.sh"
+				break
+			fi
+			if test -f "${dir}/../lib/tkConfig.sh"; then
+				tkconfigshdir="${dir}/../lib"
+				tkconfigsh="${tkconfigshdir}/tkConfig.sh"
+				break
+			fi
+			if test -f "${dir}/../lib64/tkConfig.sh"; then
+				tkconfigshdir="${dir}/../lib64"
+				tkconfigsh="${tkconfigshdir}/tkConfig.sh"
+				break
+			fi
+		done
+
+		if test -z "${tkconfigsh}"; then
+			AC_MSG_ERROR([Unable to find tkConfig.sh])
+		fi
+	else
+		tkconfigshdir="${with_tk}"
+		tkconfigsh="${tkconfigshdir}/tkConfig.sh"
+	fi
+
+	if test -f "${tkconfigsh}"; then
+		source "${tkconfigsh}"
+
+		CFLAGS="${CFLAGS} ${TK_INCLUDE_SPEC} -I${TK_SRC_DIR}/generic -I${tkconfigshdir}"
+		CPPFLAGS="${CPPFLAGS} ${TK_INCLUDE_SPEC} -I${TK_SRC_DIR}/generic -I${tkconfigshdir}"
+		LDFLAGS="${LDFLAGS}"
+		LIBS="${LIBS} ${TK_LIBS}"
+	fi
+
+	AC_SUBST(CFLAGS)
+	AC_SUBST(CPPFLAGS)
+	AC_SUBST(LDFLAGS)
+	AC_SUBST(LIBS)
+
+	AC_MSG_RESULT([$tkconfigsh])
+])
 
 AC_DEFUN(DC_DO_STATIC_LINK_LIBCXX, [
 	AC_MSG_CHECKING([for how to statically link to libstdc++])
 
 	SAVELIBS="${LIBS}"
@@ -60,25 +118,35 @@
 
 	AC_SUBST(LIBS)
 ])
 
 AC_DEFUN(DC_FIND_TCLKIT_LIBS, [
+	DC_SETUP_TCL_PLAT_DEFS
 
-	for proj in mk4tcl tcl tclvfs; do
+	for proj in mk4tcl tcl tclvfs tk; do
 		AC_MSG_CHECKING([for libraries required for ${proj}])
 
 		libdir="../../../${proj}/inst"
-		libfiles="`find "${libdir}" -name '*.a' | tr "\n" ' '`"
+		libfiles="`find "${libdir}" -name '*.a' | grep -v 'stub' | tr "\n" ' '`"
 
 		ARCHS="${ARCHS} ${libfiles}"
 
 		AC_MSG_RESULT([${libfiles}])
 
 		if test "${libfiles}" != ""; then
 			if test "${proj}" = "mk4tcl"; then
 				AC_DEFINE(KIT_INCLUDES_MK4TCL, [1], [Specify this if you link against mkt4tcl])
 				DC_DO_STATIC_LINK_LIBCXX
+			fi
+			if test "${proj}" = "tk"; then
+				DC_DO_TK
+				AC_DEFINE(KIT_INCLUDES_TK, [1], [Specify this if we link statically to Tk])
+
+				if test "$host_os" = "mingw32msvc"; then
+					AC_DEFINE(KITSH_NEED_WINMAIN, [1], [Define if you need WinMain (Windows)])
+					CFLAGS="${CFLAGS} -mwindows"
+				fi
 			fi
 		fi
 	done
 
 	AC_SUBST(ARCHS)
@@ -96,11 +164,12 @@
 
 			dnl If we are building for Win32, we need to define "BUILD_tcl" so that
 			dnl TCL_STORAGE_CLASS gets defined as DLLEXPORT, to make static linking
 			dnl work
 			AC_DEFINE(BUILD_tcl, [1], [Define if you need to pretend to be building Tcl (Windows)])
+			AC_DEFINE(BUILD_tk, [1], [Define if you need to pretend to be building Tk (Windows)])
 			;;
 		cygwin*)
 			CFLAGS="${CFLAGS} -mms-bitfields"
 			;;
 	esac
-])          
+])

Index: kitsh/buildsrc/kitsh-0.0/configure.ac
==================================================================
--- kitsh/buildsrc/kitsh-0.0/configure.ac
+++ kitsh/buildsrc/kitsh-0.0/configure.ac
@@ -7,26 +7,29 @@
 AC_PROG_INSTALL
 AC_AIX
 AC_GNU_SOURCE
 
 dnl Find the appropriate libraries to link to
-AC_SEARCH_LIBS(inflate, z zlib,, [ AC_MSG_WARN([Couldn't find inflate (normally in zlib)!]) ])
 AC_SEARCH_LIBS(acos, m,, [ AC_MSG_WARN([Couldn't find acos (normally in libm)!]) ])
 AC_SEARCH_LIBS(dlsym, dl,, [ AC_MSG_WARN([Couldn't find dlsym (normally in libdl)!]) ])
 
 dnl Find the appropriate Tcl headers and libraries
 DC_DO_TCL
 
 dnl Find archives we need to link to
 DC_FIND_TCLKIT_LIBS
 
-dnl Find any platform specific defines that we need to make
-DC_SETUP_TCL_PLAT_DEFS
-
 dnl Determine if we have "Tcl_SetStartupScript" (8.6.x) or "TclSetStartupScriptPath" (8.4.x)
 SAVE_LIBS="${LIBS}"
 LIBS="${ARCHS} ${LIBS}"
 AC_CHECK_FUNCS(Tcl_SetStartupScript TclSetStartupScriptPath)
 LIBS="${SAVE_LIBS}"
 
+dnl Find zlib
+AC_ARG_WITH(zlib, AC_HELP_STRING([--with-zlib], [directory containing zlib]), [
+	CFLAGS="${CFLAGS} -I${with_zlib}/include -I${with_zlib}"
+	LDFLAGS="${CFLAGS} -L${with_zlib}/lib -L${with_zlib}"
+])
+AC_SEARCH_LIBS(inflate, z zlib,, [ AC_MSG_WARN([Couldn't find inflate (normally in zlib)!]) ])
+
 dnl Produce output
 AC_OUTPUT(Makefile)

Index: kitsh/buildsrc/kitsh-0.0/main.c
==================================================================
--- kitsh/buildsrc/kitsh-0.0/main.c
+++ kitsh/buildsrc/kitsh-0.0/main.c
@@ -1,5 +1,6 @@
+#ifndef KITSH_NEED_WINMAIN
 #include <tcl.h>
 
 int TclKit_AppInit(Tcl_Interp *interp);
 
 int main(int argc, char **argv) {
@@ -9,5 +10,6 @@
 
 	Tcl_Main(argc, argv, TclKit_AppInit);
 
 	return(0);
 }
+#endif

ADDED   kitsh/buildsrc/kitsh-0.0/winMain.c
Index: kitsh/buildsrc/kitsh-0.0/winMain.c
==================================================================
--- /dev/null
+++ kitsh/buildsrc/kitsh-0.0/winMain.c
@@ -0,0 +1,430 @@
+#ifdef KITSH_NEED_WINMAIN
+/* 
+ * winMain.c --
+ *
+ *	Main entry point for wish and other Tk-based applications.
+ *
+ * Copyright (c) 1995-1997 Sun Microsystems, Inc.
+ * 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: winMain.c 1629 2007-06-09 13:59:31Z jcw $
+ */
+
+#include <tk.h>
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+#undef WIN32_LEAN_AND_MEAN
+#include <malloc.h>
+
+#ifndef UNDER_CE
+#include <locale.h>
+#endif
+
+/*
+ * The following declarations refer to internal Tk routines.  These
+ * interfaces are available for use, but are not supported.
+ */
+
+
+/*
+ * Forward declarations for procedures defined later in this file:
+ */
+
+static void		setargv _ANSI_ARGS_((int *argcPtr, char ***argvPtr));
+static Tcl_PanicProc	WishPanic;
+
+#ifdef TK_TEST
+extern int		Tktest_Init(Tcl_Interp *interp);
+#endif /* TK_TEST */
+
+static BOOL consoleRequired = TRUE;
+
+/*
+ * The following #if block allows you to change the AppInit
+ * function by using a #define of TCL_LOCAL_APPINIT instead
+ * of rewriting this entire file.  The #if checks for that
+ * #define and uses Tcl_AppInit if it doesn't exist.
+ */
+    
+#ifndef TK_LOCAL_APPINIT
+#define TK_LOCAL_APPINIT Tcl_AppInit    
+#endif
+extern int TK_LOCAL_APPINIT _ANSI_ARGS_((Tcl_Interp *interp));
+    
+/*
+ * The following #if block allows you to change how Tcl finds the startup
+ * script, prime the library or encoding paths, fiddle with the argv,
+ * etc., without needing to rewrite Tk_Main()
+ */
+
+#ifdef TK_LOCAL_MAIN_HOOK
+extern int TK_LOCAL_MAIN_HOOK _ANSI_ARGS_((int *argc, char ***argv));
+#endif
+
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * WinMain --
+ *
+ *	Main entry point from Windows.
+ *
+ * Results:
+ *	Returns false if initialization fails, otherwise it never
+ *	returns. 
+ *
+ * Side effects:
+ *	Just about anything, since from here we call arbitrary Tcl code.
+ *
+ *----------------------------------------------------------------------
+ */
+
+int APIENTRY
+#ifdef UNDER_CE
+wWinMain(hInstance, hPrevInstance, lpszCmdLine, nCmdShow)
+#else
+WinMain(hInstance, hPrevInstance, lpszCmdLine, nCmdShow)
+#endif
+    HINSTANCE hInstance;
+    HINSTANCE hPrevInstance;
+    LPSTR lpszCmdLine;
+    int nCmdShow;
+{
+    char **argv;
+    int argc;
+#ifndef UNDER_CE
+    char buffer[MAX_PATH+1];
+    char *p;
+#endif
+
+#ifdef UNDER_CE
+    nCmdShow = SW_SHOWNORMAL;
+
+    XCEShowWaitCursor();
+
+    xceinit(lpszCmdLine);
+    argc = __xceargc;
+    argv = __xceargv;
+#endif
+
+    Tcl_SetPanicProc(WishPanic);
+
+    /*
+     * Create the console channels and install them as the standard
+     * channels.  All I/O will be discarded until Tk_CreateConsoleWindow is
+     * called to attach the console to a text widget.
+     */
+
+    consoleRequired = TRUE;
+
+    /*
+     * Set up the default locale to be standard "C" locale so parsing
+     * is performed correctly.
+     */
+
+#ifndef UNDER_CE
+    setlocale(LC_ALL, "C");
+    setargv(&argc, &argv);
+
+    /*
+     * Replace argv[0] with full pathname of executable, and forward
+     * slashes substituted for backslashes.
+     */
+
+    GetModuleFileName(NULL, buffer, sizeof(buffer));
+    argv[0] = buffer;
+    for (p = buffer; *p != '\0'; p++) {
+	if (*p == '\\') {
+	    *p = '/';
+	}
+    }
+#endif
+
+#ifdef TK_LOCAL_MAIN_HOOK
+    TK_LOCAL_MAIN_HOOK(&argc, &argv);
+#endif
+
+    Tk_Main(argc, argv, TK_LOCAL_APPINIT);
+    return 1;
+}
+
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * Tcl_AppInit --
+ *
+ *	This procedure performs application-specific initialization.
+ *	Most applications, especially those that incorporate additional
+ *	packages, will have their own version of this procedure.
+ *
+ * Results:
+ *	Returns a standard Tcl completion code, and leaves an error
+ *	message in the interp's result if an error occurs.
+ *
+ * Side effects:
+ *	Depends on the startup script.
+ *
+ *----------------------------------------------------------------------
+ */
+
+int
+Tcl_AppInit(interp)
+    Tcl_Interp *interp;		/* Interpreter for application. */
+{
+    if (Tcl_Init(interp) == TCL_ERROR) {
+	goto error;
+    }
+    if (Tk_Init(interp) == TCL_ERROR) {
+	goto error;
+    }
+    Tcl_StaticPackage(interp, "Tk", Tk_Init, Tk_SafeInit);
+
+    /*
+     * Initialize the console only if we are running as an interactive
+     * application.
+     */
+
+#ifdef UNDER_CE
+    consoleRequired = FALSE;
+#endif
+
+    if (consoleRequired) {
+	if (Tk_CreateConsoleWindow(interp) == TCL_ERROR) {
+	    goto error;
+	}
+    }
+#if defined(STATIC_BUILD) && defined(TCL_USE_STATIC_PACKAGES)
+    {
+	extern Tcl_PackageInitProc Registry_Init;
+	extern Tcl_PackageInitProc Dde_Init;
+
+	if (Registry_Init(interp) == TCL_ERROR) {
+	    return TCL_ERROR;
+	}
+	Tcl_StaticPackage(interp, "registry", Registry_Init, NULL);
+
+	if (Dde_Init(interp) == TCL_ERROR) {
+	    return TCL_ERROR;
+	}
+	Tcl_StaticPackage(interp, "dde", Dde_Init, NULL);
+   }
+#endif
+
+#ifdef TK_TEST
+    if (Tktest_Init(interp) == TCL_ERROR) {
+	goto error;
+    }
+    Tcl_StaticPackage(interp, "Tktest", Tktest_Init,
+            (Tcl_PackageInitProc *) NULL);
+#endif /* TK_TEST */
+
+    Tcl_SetVar(interp, "tcl_rcFileName", "~/wishrc.tcl", TCL_GLOBAL_ONLY);
+    return TCL_OK;
+
+error:
+    MessageBeep(MB_ICONEXCLAMATION);
+    MessageBox(NULL, Tcl_GetStringResult(interp), "Error in Wish",
+	    MB_ICONSTOP | MB_OK | MB_TASKMODAL | MB_SETFOREGROUND);
+    ExitProcess(1);
+    /* we won't reach this, but we need the return */
+    return TCL_ERROR;
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * WishPanic --
+ *
+ *	Display a message and exit.
+ *
+ * Results:
+ *	None.
+ *
+ * Side effects:
+ *	Exits the program.
+ *
+ *----------------------------------------------------------------------
+ */
+
+void
+WishPanic TCL_VARARGS_DEF(CONST char *,arg1)
+{
+    va_list argList;
+    char buf[1024];
+    CONST char *format;
+    
+    format = TCL_VARARGS_START(CONST char *,arg1,argList);
+    vsprintf(buf, format, argList);
+
+    MessageBeep(MB_ICONEXCLAMATION);
+    MessageBox(NULL, buf, "Fatal Error in Wish",
+	    MB_ICONSTOP | MB_OK | MB_TASKMODAL | MB_SETFOREGROUND);
+#ifdef _MSC_VER
+    DebugBreak();
+#endif
+    ExitProcess(1);
+}
+/*
+ *-------------------------------------------------------------------------
+ *
+ * setargv --
+ *
+ *	Parse the Windows command line string into argc/argv.  Done here
+ *	because we don't trust the builtin argument parser in crt0.  
+ *	Windows applications are responsible for breaking their command
+ *	line into arguments.
+ *
+ *	2N backslashes + quote -> N backslashes + begin quoted string
+ *	2N + 1 backslashes + quote -> literal
+ *	N backslashes + non-quote -> literal
+ *	quote + quote in a quoted string -> single quote
+ *	quote + quote not in quoted string -> empty string
+ *	quote -> begin quoted string
+ *
+ * Results:
+ *	Fills argcPtr with the number of arguments and argvPtr with the
+ *	array of arguments.
+ *
+ * Side effects:
+ *	Memory allocated.
+ *
+ *--------------------------------------------------------------------------
+ */
+
+static void
+setargv(argcPtr, argvPtr)
+    int *argcPtr;		/* Filled with number of argument strings. */
+    char ***argvPtr;		/* Filled with argument strings (malloc'd). */
+{
+    char *cmdLine, *p, *arg, *argSpace;
+    char **argv;
+    int argc, size, inquote, copy, slashes;
+    
+    cmdLine = GetCommandLine();	/* INTL: BUG */
+
+    /*
+     * Precompute an overly pessimistic guess at the number of arguments
+     * in the command line by counting non-space spans.
+     */
+
+    size = 2;
+    for (p = cmdLine; *p != '\0'; p++) {
+	if ((*p == ' ') || (*p == '\t')) {	/* INTL: ISO space. */
+	    size++;
+	    while ((*p == ' ') || (*p == '\t')) { /* INTL: ISO space. */
+		p++;
+	    }
+	    if (*p == '\0') {
+		break;
+	    }
+	}
+    }
+    argSpace = (char *) Tcl_Alloc(
+	    (unsigned) (size * sizeof(char *) + strlen(cmdLine) + 1));
+    argv = (char **) argSpace;
+    argSpace += size * sizeof(char *);
+    size--;
+
+    p = cmdLine;
+    for (argc = 0; argc < size; argc++) {
+	argv[argc] = arg = argSpace;
+	while ((*p == ' ') || (*p == '\t')) {	/* INTL: ISO space. */
+	    p++;
+	}
+	if (*p == '\0') {
+	    break;
+	}
+
+	inquote = 0;
+	slashes = 0;
+	while (1) {
+	    copy = 1;
+	    while (*p == '\\') {
+		slashes++;
+		p++;
+	    }
+	    if (*p == '"') {
+		if ((slashes & 1) == 0) {
+		    copy = 0;
+		    if ((inquote) && (p[1] == '"')) {
+			p++;
+			copy = 1;
+		    } else {
+			inquote = !inquote;
+		    }
+                }
+                slashes >>= 1;
+            }
+
+            while (slashes) {
+		*arg = '\\';
+		arg++;
+		slashes--;
+	    }
+
+	    if ((*p == '\0')
+		    || (!inquote && ((*p == ' ') || (*p == '\t')))) { /* INTL: ISO space. */
+		break;
+	    }
+	    if (copy != 0) {
+		*arg = *p;
+		arg++;
+	    }
+	    p++;
+        }
+	*arg = '\0';
+	argSpace = arg + 1;
+    }
+    argv[argc] = NULL;
+
+    *argcPtr = argc;
+    *argvPtr = argv;
+}
+
+#if !defined(__GNUC__) || defined(TK_TEST)
+/*
+ *----------------------------------------------------------------------
+ *
+ * main --
+ *
+ *	Main entry point from the console.
+ *
+ * Results:
+ *	None: Tk_Main never returns here, so this procedure never
+ *      returns either.
+ *
+ * Side effects:
+ *	Whatever the applications does.
+ *
+ *----------------------------------------------------------------------
+ */
+
+int main(int argc, char **argv)
+{
+    Tcl_SetPanicProc(WishPanic);
+
+    /*
+     * Set up the default locale to be standard "C" locale so parsing
+     * is performed correctly.
+     */
+#ifndef UNDER_CE
+    setlocale(LC_ALL, "C");
+#endif
+
+    /*
+     * Create the console channels and install them as the standard
+     * channels.  All I/O will be discarded until Tk_CreateConsoleWindow is
+     * called to attach the console to a text widget.
+     */
+
+    consoleRequired = FALSE;
+
+    Tk_Main(argc, argv, Tcl_AppInit);
+    return 0;
+}
+#endif /* !__GNUC__ || TK_TEST */
+#endif