summaryrefslogtreecommitdiffstats
path: root/unix
diff options
context:
space:
mode:
authorcvs2fossil <cvs2fossil>2011-01-25 19:02:56 (GMT)
committercvs2fossil <cvs2fossil>2011-01-25 19:02:56 (GMT)
commit352fce86be9d102b2284de839b7f7ff94ed971f2 (patch)
treee454e0d4460f15029e4ed5ae3f3131a992445426 /unix
parent75f084f6970d2344bb5a82fdff6a73825bc6e64e (diff)
downloadtcl-dgp_refactor_merge.zip
tcl-dgp_refactor_merge.tar.gz
tcl-dgp_refactor_merge.tar.bz2
Created branch dgp-refactor-merge-syntheticdgp_refactor_mergedgp_refactor_merge_synthetic
Diffstat (limited to 'unix')
-rw-r--r--unix/dltest/pkgf.c46
-rw-r--r--unix/mkLinks1937
-rw-r--r--unix/mkLinks.tcl119
-rw-r--r--unix/tclLoadAout.c536
-rw-r--r--unix/tclLoadDld.c209
5 files changed, 2847 insertions, 0 deletions
diff --git a/unix/dltest/pkgf.c b/unix/dltest/pkgf.c
new file mode 100644
index 0000000..c32aaf0
--- /dev/null
+++ b/unix/dltest/pkgf.c
@@ -0,0 +1,46 @@
+/*
+ * pkgf.c --
+ *
+ * This file contains a simple Tcl package "pkgf" that is intended for
+ * testing the Tcl dynamic loading facilities. Its Init procedure returns
+ * an error in order to test how this is handled.
+ *
+ * Copyright (c) 1995 Sun Microsystems, Inc.
+ *
+ * See the file "license.terms" for information on usage and redistribution of
+ * this file, and for a DISCLAIMER OF ALL WARRANTIES.
+ *
+ * RCS: @(#) $Id: pkgf.c,v 1.7 2007/05/29 14:05:53 dgp Exp $
+ */
+
+#include "tcl.h"
+
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * Pkgf_Init --
+ *
+ * This is a package initialization procedure, which is called by Tcl
+ * when this package is to be added to an interpreter.
+ *
+ * Results:
+ * Returns TCL_ERROR and leaves an error message in interp->result.
+ *
+ * Side effects:
+ * None.
+ *
+ *----------------------------------------------------------------------
+ */
+
+int
+Pkgf_Init(
+ Tcl_Interp *interp) /* Interpreter in which the package is to be
+ * made available. */
+{
+ static char script[] = "if 44 {open non_existent}";
+ if (Tcl_InitStubs(interp, TCL_VERSION, 0) == NULL) {
+ return TCL_ERROR;
+ }
+ return Tcl_Eval(interp, script);
+}
diff --git a/unix/mkLinks b/unix/mkLinks
new file mode 100644
index 0000000..edfbeb4
--- /dev/null
+++ b/unix/mkLinks
@@ -0,0 +1,1937 @@
+#!/bin/sh
+# This script is invoked when installing manual entries. It generates
+# additional links to manual entries, corresponding to the procedure
+# and command names described by the manual entry. For example, the
+# Tcl manual entry Hash.3 describes procedures Tcl_InitHashTable,
+# Tcl_CreateHashEntry, and many more. This script will make hard
+# links so that Tcl_InitHashTable.3, Tcl_CreateHashEntry.3, and so
+# on all refer to Hash.3 in the installed directory.
+#
+# Because of the length of command and procedure names, this mechanism
+# only works on machines that support file names longer than 14 characters.
+# This script checks to see if long file names are supported, and it
+# doesn't make any links if they are not.
+#
+# The script takes one argument, which is the name of the directory
+# where the manual entries have been installed.
+
+ZIP=true
+while true; do
+ case $1 in
+ -s | --symlinks )
+ S=-s
+ ;;
+ -z | --compress )
+ ZIP=$2
+ shift
+ ;;
+ *) break
+ ;;
+ esac
+ shift
+done
+
+if test $# != 1; then
+ echo "Usage: mkLinks <options> dir"
+ exit 1
+fi
+
+if test "x$ZIP" != "xtrue"; then
+ touch TeST
+ $ZIP TeST
+ Z=`ls TeST* | sed 's/^[^.]*//'`
+ rm -f TeST*
+fi
+
+cd $1
+echo foo > xyzzyTestingAVeryLongFileName.foo
+x=`echo xyzzyTe*`
+echo foo > xyzzyTestingaverylongfilename.foo
+y=`echo xyzzyTestingav*`
+rm xyzzyTe*
+if test "$x" != "xyzzyTestingAVeryLongFileName.foo"; then
+ exit
+fi
+if test "$y" != "xyzzyTestingaverylongfilename.foo"; then
+ CASEINSENSITIVEFS=1
+fi
+
+if test -r Access.3; then
+ rm -f Access.3.*
+ $ZIP Access.3
+ rm -f Tcl_Access.3 Tcl_Access.3.*
+ rm -f Tcl_Stat.3 Tcl_Stat.3.*
+ ln $S Access.3$Z Tcl_Access.3$Z
+ ln $S Access.3$Z Tcl_Stat.3$Z
+fi
+if test -r AddErrInfo.3; then
+ rm -f AddErrInfo.3.*
+ $ZIP AddErrInfo.3
+ rm -f Tcl_AddObjErrorInfo.3 Tcl_AddObjErrorInfo.3.*
+ rm -f Tcl_AddErrorInfo.3 Tcl_AddErrorInfo.3.*
+ rm -f Tcl_SetObjErrorCode.3 Tcl_SetObjErrorCode.3.*
+ rm -f Tcl_SetErrorCode.3 Tcl_SetErrorCode.3.*
+ rm -f Tcl_SetErrorCodeVA.3 Tcl_SetErrorCodeVA.3.*
+ rm -f Tcl_PosixError.3 Tcl_PosixError.3.*
+ rm -f Tcl_LogCommandInfo.3 Tcl_LogCommandInfo.3.*
+ ln $S AddErrInfo.3$Z Tcl_AddObjErrorInfo.3$Z
+ ln $S AddErrInfo.3$Z Tcl_AddErrorInfo.3$Z
+ ln $S AddErrInfo.3$Z Tcl_SetObjErrorCode.3$Z
+ ln $S AddErrInfo.3$Z Tcl_SetErrorCode.3$Z
+ ln $S AddErrInfo.3$Z Tcl_SetErrorCodeVA.3$Z
+ ln $S AddErrInfo.3$Z Tcl_PosixError.3$Z
+ ln $S AddErrInfo.3$Z Tcl_LogCommandInfo.3$Z
+fi
+if test -r Alloc.3; then
+ rm -f Alloc.3.*
+ $ZIP Alloc.3
+ rm -f Tcl_Alloc.3 Tcl_Alloc.3.*
+ rm -f Tcl_Free.3 Tcl_Free.3.*
+ rm -f Tcl_Realloc.3 Tcl_Realloc.3.*
+ rm -f Tcl_AttemptAlloc.3 Tcl_AttemptAlloc.3.*
+ rm -f Tcl_AttemptRealloc.3 Tcl_AttemptRealloc.3.*
+ rm -f ckalloc.3 ckalloc.3.*
+ rm -f ckfree.3 ckfree.3.*
+ rm -f ckrealloc.3 ckrealloc.3.*
+ rm -f attemptckalloc.3 attemptckalloc.3.*
+ rm -f attemptckrealloc.3 attemptckrealloc.3.*
+ ln $S Alloc.3$Z Tcl_Alloc.3$Z
+ ln $S Alloc.3$Z Tcl_Free.3$Z
+ ln $S Alloc.3$Z Tcl_Realloc.3$Z
+ ln $S Alloc.3$Z Tcl_AttemptAlloc.3$Z
+ ln $S Alloc.3$Z Tcl_AttemptRealloc.3$Z
+ ln $S Alloc.3$Z ckalloc.3$Z
+ ln $S Alloc.3$Z ckfree.3$Z
+ ln $S Alloc.3$Z ckrealloc.3$Z
+ ln $S Alloc.3$Z attemptckalloc.3$Z
+ ln $S Alloc.3$Z attemptckrealloc.3$Z
+fi
+if test -r AllowExc.3; then
+ rm -f AllowExc.3.*
+ $ZIP AllowExc.3
+ rm -f Tcl_AllowExceptions.3 Tcl_AllowExceptions.3.*
+ ln $S AllowExc.3$Z Tcl_AllowExceptions.3$Z
+fi
+if test -r AppInit.3; then
+ rm -f AppInit.3.*
+ $ZIP AppInit.3
+ rm -f Tcl_AppInit.3 Tcl_AppInit.3.*
+ ln $S AppInit.3$Z Tcl_AppInit.3$Z
+fi
+if test -r AssocData.3; then
+ rm -f AssocData.3.*
+ $ZIP AssocData.3
+ rm -f Tcl_GetAssocData.3 Tcl_GetAssocData.3.*
+ rm -f Tcl_SetAssocData.3 Tcl_SetAssocData.3.*
+ rm -f Tcl_DeleteAssocData.3 Tcl_DeleteAssocData.3.*
+ ln $S AssocData.3$Z Tcl_GetAssocData.3$Z
+ ln $S AssocData.3$Z Tcl_SetAssocData.3$Z
+ ln $S AssocData.3$Z Tcl_DeleteAssocData.3$Z
+fi
+if test -r Async.3; then
+ rm -f Async.3.*
+ $ZIP Async.3
+ rm -f Tcl_AsyncCreate.3 Tcl_AsyncCreate.3.*
+ rm -f Tcl_AsyncMark.3 Tcl_AsyncMark.3.*
+ rm -f Tcl_AsyncInvoke.3 Tcl_AsyncInvoke.3.*
+ rm -f Tcl_AsyncDelete.3 Tcl_AsyncDelete.3.*
+ rm -f Tcl_AsyncReady.3 Tcl_AsyncReady.3.*
+ ln $S Async.3$Z Tcl_AsyncCreate.3$Z
+ ln $S Async.3$Z Tcl_AsyncMark.3$Z
+ ln $S Async.3$Z Tcl_AsyncInvoke.3$Z
+ ln $S Async.3$Z Tcl_AsyncDelete.3$Z
+ ln $S Async.3$Z Tcl_AsyncReady.3$Z
+fi
+if test -r BackgdErr.3; then
+ rm -f BackgdErr.3.*
+ $ZIP BackgdErr.3
+ rm -f Tcl_BackgroundError.3 Tcl_BackgroundError.3.*
+ ln $S BackgdErr.3$Z Tcl_BackgroundError.3$Z
+fi
+if test -r Backslash.3; then
+ rm -f Backslash.3.*
+ $ZIP Backslash.3
+ rm -f Tcl_Backslash.3 Tcl_Backslash.3.*
+ ln $S Backslash.3$Z Tcl_Backslash.3$Z
+fi
+if test -r BoolObj.3; then
+ rm -f BoolObj.3.*
+ $ZIP BoolObj.3
+ rm -f Tcl_NewBooleanObj.3 Tcl_NewBooleanObj.3.*
+ rm -f Tcl_SetBooleanObj.3 Tcl_SetBooleanObj.3.*
+ rm -f Tcl_GetBooleanFromObj.3 Tcl_GetBooleanFromObj.3.*
+ ln $S BoolObj.3$Z Tcl_NewBooleanObj.3$Z
+ ln $S BoolObj.3$Z Tcl_SetBooleanObj.3$Z
+ ln $S BoolObj.3$Z Tcl_GetBooleanFromObj.3$Z
+fi
+if test -r ByteArrObj.3; then
+ rm -f ByteArrObj.3.*
+ $ZIP ByteArrObj.3
+ rm -f Tcl_NewByteArrayObj.3 Tcl_NewByteArrayObj.3.*
+ rm -f Tcl_SetByteArrayObj.3 Tcl_SetByteArrayObj.3.*
+ rm -f Tcl_GetByteArrayFromObj.3 Tcl_GetByteArrayFromObj.3.*
+ rm -f Tcl_SetByteArrayLength.3 Tcl_SetByteArrayLength.3.*
+ ln $S ByteArrObj.3$Z Tcl_NewByteArrayObj.3$Z
+ ln $S ByteArrObj.3$Z Tcl_SetByteArrayObj.3$Z
+ ln $S ByteArrObj.3$Z Tcl_GetByteArrayFromObj.3$Z
+ ln $S ByteArrObj.3$Z Tcl_SetByteArrayLength.3$Z
+fi
+if test -r CallDel.3; then
+ rm -f CallDel.3.*
+ $ZIP CallDel.3
+ rm -f Tcl_CallWhenDeleted.3 Tcl_CallWhenDeleted.3.*
+ rm -f Tcl_DontCallWhenDeleted.3 Tcl_DontCallWhenDeleted.3.*
+ ln $S CallDel.3$Z Tcl_CallWhenDeleted.3$Z
+ ln $S CallDel.3$Z Tcl_DontCallWhenDeleted.3$Z
+fi
+if test -r ChnlStack.3; then
+ rm -f ChnlStack.3.*
+ $ZIP ChnlStack.3
+ rm -f Tcl_StackChannel.3 Tcl_StackChannel.3.*
+ rm -f Tcl_UnstackChannel.3 Tcl_UnstackChannel.3.*
+ rm -f Tcl_GetStackedChannel.3 Tcl_GetStackedChannel.3.*
+ rm -f Tcl_GetTopChannel.3 Tcl_GetTopChannel.3.*
+ ln $S ChnlStack.3$Z Tcl_StackChannel.3$Z
+ ln $S ChnlStack.3$Z Tcl_UnstackChannel.3$Z
+ ln $S ChnlStack.3$Z Tcl_GetStackedChannel.3$Z
+ ln $S ChnlStack.3$Z Tcl_GetTopChannel.3$Z
+fi
+if test -r CmdCmplt.3; then
+ rm -f CmdCmplt.3.*
+ $ZIP CmdCmplt.3
+ rm -f Tcl_CommandComplete.3 Tcl_CommandComplete.3.*
+ ln $S CmdCmplt.3$Z Tcl_CommandComplete.3$Z
+fi
+if test -r Concat.3; then
+ rm -f Concat.3.*
+ $ZIP Concat.3
+ rm -f Tcl_Concat.3 Tcl_Concat.3.*
+ ln $S Concat.3$Z Tcl_Concat.3$Z
+fi
+if test -r CrtChannel.3; then
+ rm -f CrtChannel.3.*
+ $ZIP CrtChannel.3
+ rm -f Tcl_CreateChannel.3 Tcl_CreateChannel.3.*
+ rm -f Tcl_GetChannelInstanceData.3 Tcl_GetChannelInstanceData.3.*
+ rm -f Tcl_GetChannelType.3 Tcl_GetChannelType.3.*
+ rm -f Tcl_GetChannelName.3 Tcl_GetChannelName.3.*
+ rm -f Tcl_GetChannelHandle.3 Tcl_GetChannelHandle.3.*
+ rm -f Tcl_GetChannelMode.3 Tcl_GetChannelMode.3.*
+ rm -f Tcl_GetChannelBufferSize.3 Tcl_GetChannelBufferSize.3.*
+ rm -f Tcl_SetChannelBufferSize.3 Tcl_SetChannelBufferSize.3.*
+ rm -f Tcl_NotifyChannel.3 Tcl_NotifyChannel.3.*
+ rm -f Tcl_BadChannelOption.3 Tcl_BadChannelOption.3.*
+ rm -f Tcl_ChannelName.3 Tcl_ChannelName.3.*
+ rm -f Tcl_ChannelVersion.3 Tcl_ChannelVersion.3.*
+ rm -f Tcl_ChannelBlockModeProc.3 Tcl_ChannelBlockModeProc.3.*
+ rm -f Tcl_ChannelCloseProc.3 Tcl_ChannelCloseProc.3.*
+ rm -f Tcl_ChannelClose2Proc.3 Tcl_ChannelClose2Proc.3.*
+ rm -f Tcl_ChannelInputProc.3 Tcl_ChannelInputProc.3.*
+ rm -f Tcl_ChannelOutputProc.3 Tcl_ChannelOutputProc.3.*
+ rm -f Tcl_ChannelSeekProc.3 Tcl_ChannelSeekProc.3.*
+ rm -f Tcl_ChannelWideSeekProc.3 Tcl_ChannelWideSeekProc.3.*
+ rm -f Tcl_ChannelSetOptionProc.3 Tcl_ChannelSetOptionProc.3.*
+ rm -f Tcl_ChannelGetOptionProc.3 Tcl_ChannelGetOptionProc.3.*
+ rm -f Tcl_ChannelWatchProc.3 Tcl_ChannelWatchProc.3.*
+ rm -f Tcl_ChannelGetHandleProc.3 Tcl_ChannelGetHandleProc.3.*
+ rm -f Tcl_ChannelFlushProc.3 Tcl_ChannelFlushProc.3.*
+ rm -f Tcl_ChannelHandlerProc.3 Tcl_ChannelHandlerProc.3.*
+ rm -f Tcl_IsChannelShared.3 Tcl_IsChannelShared.3.*
+ rm -f Tcl_IsChannelRegistered.3 Tcl_IsChannelRegistered.3.*
+ rm -f Tcl_CutChannel.3 Tcl_CutChannel.3.*
+ rm -f Tcl_SpliceChannel.3 Tcl_SpliceChannel.3.*
+ rm -f Tcl_IsChannelExisting.3 Tcl_IsChannelExisting.3.*
+ rm -f Tcl_ClearChannelHandlers.3 Tcl_ClearChannelHandlers.3.*
+ rm -f Tcl_GetChannelThread.3 Tcl_GetChannelThread.3.*
+ rm -f Tcl_ChannelBuffered.3 Tcl_ChannelBuffered.3.*
+ ln $S CrtChannel.3$Z Tcl_CreateChannel.3$Z
+ ln $S CrtChannel.3$Z Tcl_GetChannelInstanceData.3$Z
+ ln $S CrtChannel.3$Z Tcl_GetChannelType.3$Z
+ ln $S CrtChannel.3$Z Tcl_GetChannelName.3$Z
+ ln $S CrtChannel.3$Z Tcl_GetChannelHandle.3$Z
+ ln $S CrtChannel.3$Z Tcl_GetChannelMode.3$Z
+ ln $S CrtChannel.3$Z Tcl_GetChannelBufferSize.3$Z
+ ln $S CrtChannel.3$Z Tcl_SetChannelBufferSize.3$Z
+ ln $S CrtChannel.3$Z Tcl_NotifyChannel.3$Z
+ ln $S CrtChannel.3$Z Tcl_BadChannelOption.3$Z
+ ln $S CrtChannel.3$Z Tcl_ChannelName.3$Z
+ ln $S CrtChannel.3$Z Tcl_ChannelVersion.3$Z
+ ln $S CrtChannel.3$Z Tcl_ChannelBlockModeProc.3$Z
+ ln $S CrtChannel.3$Z Tcl_ChannelCloseProc.3$Z
+ ln $S CrtChannel.3$Z Tcl_ChannelClose2Proc.3$Z
+ ln $S CrtChannel.3$Z Tcl_ChannelInputProc.3$Z
+ ln $S CrtChannel.3$Z Tcl_ChannelOutputProc.3$Z
+ ln $S CrtChannel.3$Z Tcl_ChannelSeekProc.3$Z
+ ln $S CrtChannel.3$Z Tcl_ChannelWideSeekProc.3$Z
+ ln $S CrtChannel.3$Z Tcl_ChannelSetOptionProc.3$Z
+ ln $S CrtChannel.3$Z Tcl_ChannelGetOptionProc.3$Z
+ ln $S CrtChannel.3$Z Tcl_ChannelWatchProc.3$Z
+ ln $S CrtChannel.3$Z Tcl_ChannelGetHandleProc.3$Z
+ ln $S CrtChannel.3$Z Tcl_ChannelFlushProc.3$Z
+ ln $S CrtChannel.3$Z Tcl_ChannelHandlerProc.3$Z
+ ln $S CrtChannel.3$Z Tcl_IsChannelShared.3$Z
+ ln $S CrtChannel.3$Z Tcl_IsChannelRegistered.3$Z
+ ln $S CrtChannel.3$Z Tcl_CutChannel.3$Z
+ ln $S CrtChannel.3$Z Tcl_SpliceChannel.3$Z
+ ln $S CrtChannel.3$Z Tcl_IsChannelExisting.3$Z
+ ln $S CrtChannel.3$Z Tcl_ClearChannelHandlers.3$Z
+ ln $S CrtChannel.3$Z Tcl_GetChannelThread.3$Z
+ ln $S CrtChannel.3$Z Tcl_ChannelBuffered.3$Z
+fi
+if test -r CrtChnlHdlr.3; then
+ rm -f CrtChnlHdlr.3.*
+ $ZIP CrtChnlHdlr.3
+ rm -f Tcl_CreateChannelHandler.3 Tcl_CreateChannelHandler.3.*
+ rm -f Tcl_DeleteChannelHandler.3 Tcl_DeleteChannelHandler.3.*
+ ln $S CrtChnlHdlr.3$Z Tcl_CreateChannelHandler.3$Z
+ ln $S CrtChnlHdlr.3$Z Tcl_DeleteChannelHandler.3$Z
+fi
+if test -r CrtCloseHdlr.3; then
+ rm -f CrtCloseHdlr.3.*
+ $ZIP CrtCloseHdlr.3
+ rm -f Tcl_CreateCloseHandler.3 Tcl_CreateCloseHandler.3.*
+ rm -f Tcl_DeleteCloseHandler.3 Tcl_DeleteCloseHandler.3.*
+ ln $S CrtCloseHdlr.3$Z Tcl_CreateCloseHandler.3$Z
+ ln $S CrtCloseHdlr.3$Z Tcl_DeleteCloseHandler.3$Z
+fi
+if test -r CrtCommand.3; then
+ rm -f CrtCommand.3.*
+ $ZIP CrtCommand.3
+ rm -f Tcl_CreateCommand.3 Tcl_CreateCommand.3.*
+ ln $S CrtCommand.3$Z Tcl_CreateCommand.3$Z
+fi
+if test -r CrtFileHdlr.3; then
+ rm -f CrtFileHdlr.3.*
+ $ZIP CrtFileHdlr.3
+ rm -f Tcl_CreateFileHandler.3 Tcl_CreateFileHandler.3.*
+ rm -f Tcl_DeleteFileHandler.3 Tcl_DeleteFileHandler.3.*
+ ln $S CrtFileHdlr.3$Z Tcl_CreateFileHandler.3$Z
+ ln $S CrtFileHdlr.3$Z Tcl_DeleteFileHandler.3$Z
+fi
+if test -r CrtInterp.3; then
+ rm -f CrtInterp.3.*
+ $ZIP CrtInterp.3
+ rm -f Tcl_CreateInterp.3 Tcl_CreateInterp.3.*
+ rm -f Tcl_DeleteInterp.3 Tcl_DeleteInterp.3.*
+ rm -f Tcl_InterpDeleted.3 Tcl_InterpDeleted.3.*
+ ln $S CrtInterp.3$Z Tcl_CreateInterp.3$Z
+ ln $S CrtInterp.3$Z Tcl_DeleteInterp.3$Z
+ ln $S CrtInterp.3$Z Tcl_InterpDeleted.3$Z
+fi
+if test -r CrtMathFnc.3; then
+ rm -f CrtMathFnc.3.*
+ $ZIP CrtMathFnc.3
+ rm -f Tcl_CreateMathFunc.3 Tcl_CreateMathFunc.3.*
+ rm -f Tcl_GetMathFuncInfo.3 Tcl_GetMathFuncInfo.3.*
+ rm -f Tcl_ListMathFuncs.3 Tcl_ListMathFuncs.3.*
+ ln $S CrtMathFnc.3$Z Tcl_CreateMathFunc.3$Z
+ ln $S CrtMathFnc.3$Z Tcl_GetMathFuncInfo.3$Z
+ ln $S CrtMathFnc.3$Z Tcl_ListMathFuncs.3$Z
+fi
+if test -r CrtObjCmd.3; then
+ rm -f CrtObjCmd.3.*
+ $ZIP CrtObjCmd.3
+ rm -f Tcl_CreateObjCommand.3 Tcl_CreateObjCommand.3.*
+ rm -f Tcl_DeleteCommand.3 Tcl_DeleteCommand.3.*
+ rm -f Tcl_DeleteCommandFromToken.3 Tcl_DeleteCommandFromToken.3.*
+ rm -f Tcl_GetCommandInfo.3 Tcl_GetCommandInfo.3.*
+ rm -f Tcl_GetCommandInfoFromToken.3 Tcl_GetCommandInfoFromToken.3.*
+ rm -f Tcl_SetCommandInfo.3 Tcl_SetCommandInfo.3.*
+ rm -f Tcl_SetCommandInfoFromToken.3 Tcl_SetCommandInfoFromToken.3.*
+ rm -f Tcl_GetCommandName.3 Tcl_GetCommandName.3.*
+ rm -f Tcl_GetCommandFullName.3 Tcl_GetCommandFullName.3.*
+ rm -f Tcl_GetCommandFromObj.3 Tcl_GetCommandFromObj.3.*
+ ln $S CrtObjCmd.3$Z Tcl_CreateObjCommand.3$Z
+ ln $S CrtObjCmd.3$Z Tcl_DeleteCommand.3$Z
+ ln $S CrtObjCmd.3$Z Tcl_DeleteCommandFromToken.3$Z
+ ln $S CrtObjCmd.3$Z Tcl_GetCommandInfo.3$Z
+ ln $S CrtObjCmd.3$Z Tcl_GetCommandInfoFromToken.3$Z
+ ln $S CrtObjCmd.3$Z Tcl_SetCommandInfo.3$Z
+ ln $S CrtObjCmd.3$Z Tcl_SetCommandInfoFromToken.3$Z
+ ln $S CrtObjCmd.3$Z Tcl_GetCommandName.3$Z
+ ln $S CrtObjCmd.3$Z Tcl_GetCommandFullName.3$Z
+ ln $S CrtObjCmd.3$Z Tcl_GetCommandFromObj.3$Z
+fi
+if test -r CrtSlave.3; then
+ rm -f CrtSlave.3.*
+ $ZIP CrtSlave.3
+ rm -f Tcl_IsSafe.3 Tcl_IsSafe.3.*
+ rm -f Tcl_MakeSafe.3 Tcl_MakeSafe.3.*
+ rm -f Tcl_CreateSlave.3 Tcl_CreateSlave.3.*
+ rm -f Tcl_GetSlave.3 Tcl_GetSlave.3.*
+ rm -f Tcl_GetMaster.3 Tcl_GetMaster.3.*
+ rm -f Tcl_GetInterpPath.3 Tcl_GetInterpPath.3.*
+ rm -f Tcl_CreateAlias.3 Tcl_CreateAlias.3.*
+ rm -f Tcl_CreateAliasObj.3 Tcl_CreateAliasObj.3.*
+ rm -f Tcl_GetAlias.3 Tcl_GetAlias.3.*
+ rm -f Tcl_GetAliasObj.3 Tcl_GetAliasObj.3.*
+ rm -f Tcl_ExposeCommand.3 Tcl_ExposeCommand.3.*
+ rm -f Tcl_HideCommand.3 Tcl_HideCommand.3.*
+ ln $S CrtSlave.3$Z Tcl_IsSafe.3$Z
+ ln $S CrtSlave.3$Z Tcl_MakeSafe.3$Z
+ ln $S CrtSlave.3$Z Tcl_CreateSlave.3$Z
+ ln $S CrtSlave.3$Z Tcl_GetSlave.3$Z
+ ln $S CrtSlave.3$Z Tcl_GetMaster.3$Z
+ ln $S CrtSlave.3$Z Tcl_GetInterpPath.3$Z
+ ln $S CrtSlave.3$Z Tcl_CreateAlias.3$Z
+ ln $S CrtSlave.3$Z Tcl_CreateAliasObj.3$Z
+ ln $S CrtSlave.3$Z Tcl_GetAlias.3$Z
+ ln $S CrtSlave.3$Z Tcl_GetAliasObj.3$Z
+ ln $S CrtSlave.3$Z Tcl_ExposeCommand.3$Z
+ ln $S CrtSlave.3$Z Tcl_HideCommand.3$Z
+fi
+if test -r CrtTimerHdlr.3; then
+ rm -f CrtTimerHdlr.3.*
+ $ZIP CrtTimerHdlr.3
+ rm -f Tcl_CreateTimerHandler.3 Tcl_CreateTimerHandler.3.*
+ rm -f Tcl_DeleteTimerHandler.3 Tcl_DeleteTimerHandler.3.*
+ ln $S CrtTimerHdlr.3$Z Tcl_CreateTimerHandler.3$Z
+ ln $S CrtTimerHdlr.3$Z Tcl_DeleteTimerHandler.3$Z
+fi
+if test -r CrtTrace.3; then
+ rm -f CrtTrace.3.*
+ $ZIP CrtTrace.3
+ rm -f Tcl_CreateTrace.3 Tcl_CreateTrace.3.*
+ rm -f Tcl_CreateObjTrace.3 Tcl_CreateObjTrace.3.*
+ rm -f Tcl_DeleteTrace.3 Tcl_DeleteTrace.3.*
+ ln $S CrtTrace.3$Z Tcl_CreateTrace.3$Z
+ ln $S CrtTrace.3$Z Tcl_CreateObjTrace.3$Z
+ ln $S CrtTrace.3$Z Tcl_DeleteTrace.3$Z
+fi
+if test -r DString.3; then
+ rm -f DString.3.*
+ $ZIP DString.3
+ rm -f Tcl_DStringInit.3 Tcl_DStringInit.3.*
+ rm -f Tcl_DStringAppend.3 Tcl_DStringAppend.3.*
+ rm -f Tcl_DStringAppendElement.3 Tcl_DStringAppendElement.3.*
+ rm -f Tcl_DStringStartSublist.3 Tcl_DStringStartSublist.3.*
+ rm -f Tcl_DStringEndSublist.3 Tcl_DStringEndSublist.3.*
+ rm -f Tcl_DStringLength.3 Tcl_DStringLength.3.*
+ rm -f Tcl_DStringValue.3 Tcl_DStringValue.3.*
+ rm -f Tcl_DStringSetLength.3 Tcl_DStringSetLength.3.*
+ rm -f Tcl_DStringTrunc.3 Tcl_DStringTrunc.3.*
+ rm -f Tcl_DStringFree.3 Tcl_DStringFree.3.*
+ rm -f Tcl_DStringResult.3 Tcl_DStringResult.3.*
+ rm -f Tcl_DStringGetResult.3 Tcl_DStringGetResult.3.*
+ ln $S DString.3$Z Tcl_DStringInit.3$Z
+ ln $S DString.3$Z Tcl_DStringAppend.3$Z
+ ln $S DString.3$Z Tcl_DStringAppendElement.3$Z
+ ln $S DString.3$Z Tcl_DStringStartSublist.3$Z
+ ln $S DString.3$Z Tcl_DStringEndSublist.3$Z
+ ln $S DString.3$Z Tcl_DStringLength.3$Z
+ ln $S DString.3$Z Tcl_DStringValue.3$Z
+ ln $S DString.3$Z Tcl_DStringSetLength.3$Z
+ ln $S DString.3$Z Tcl_DStringTrunc.3$Z
+ ln $S DString.3$Z Tcl_DStringFree.3$Z
+ ln $S DString.3$Z Tcl_DStringResult.3$Z
+ ln $S DString.3$Z Tcl_DStringGetResult.3$Z
+fi
+if test -r DetachPids.3; then
+ rm -f DetachPids.3.*
+ $ZIP DetachPids.3
+ rm -f Tcl_DetachPids.3 Tcl_DetachPids.3.*
+ rm -f Tcl_ReapDetachedProcs.3 Tcl_ReapDetachedProcs.3.*
+ rm -f Tcl_WaitPid.3 Tcl_WaitPid.3.*
+ ln $S DetachPids.3$Z Tcl_DetachPids.3$Z
+ ln $S DetachPids.3$Z Tcl_ReapDetachedProcs.3$Z
+ ln $S DetachPids.3$Z Tcl_WaitPid.3$Z
+fi
+if test -r DictObj.3; then
+ rm -f DictObj.3.*
+ $ZIP DictObj.3
+ rm -f Tcl_NewDictObj.3 Tcl_NewDictObj.3.*
+ rm -f Tcl_DictObjPut.3 Tcl_DictObjPut.3.*
+ rm -f Tcl_DictObjGet.3 Tcl_DictObjGet.3.*
+ rm -f Tcl_DictObjRemove.3 Tcl_DictObjRemove.3.*
+ rm -f Tcl_DictObjSize.3 Tcl_DictObjSize.3.*
+ rm -f Tcl_DictObjFirst.3 Tcl_DictObjFirst.3.*
+ rm -f Tcl_DictObjNext.3 Tcl_DictObjNext.3.*
+ rm -f Tcl_DictObjDone.3 Tcl_DictObjDone.3.*
+ rm -f Tcl_DictObjPutKeyList.3 Tcl_DictObjPutKeyList.3.*
+ rm -f Tcl_DictObjRemoveKeyList.3 Tcl_DictObjRemoveKeyList.3.*
+ ln $S DictObj.3$Z Tcl_NewDictObj.3$Z
+ ln $S DictObj.3$Z Tcl_DictObjPut.3$Z
+ ln $S DictObj.3$Z Tcl_DictObjGet.3$Z
+ ln $S DictObj.3$Z Tcl_DictObjRemove.3$Z
+ ln $S DictObj.3$Z Tcl_DictObjSize.3$Z
+ ln $S DictObj.3$Z Tcl_DictObjFirst.3$Z
+ ln $S DictObj.3$Z Tcl_DictObjNext.3$Z
+ ln $S DictObj.3$Z Tcl_DictObjDone.3$Z
+ ln $S DictObj.3$Z Tcl_DictObjPutKeyList.3$Z
+ ln $S DictObj.3$Z Tcl_DictObjRemoveKeyList.3$Z
+fi
+if test -r DoOneEvent.3; then
+ rm -f DoOneEvent.3.*
+ $ZIP DoOneEvent.3
+ rm -f Tcl_DoOneEvent.3 Tcl_DoOneEvent.3.*
+ ln $S DoOneEvent.3$Z Tcl_DoOneEvent.3$Z
+fi
+if test -r DoWhenIdle.3; then
+ rm -f DoWhenIdle.3.*
+ $ZIP DoWhenIdle.3
+ rm -f Tcl_DoWhenIdle.3 Tcl_DoWhenIdle.3.*
+ rm -f Tcl_CancelIdleCall.3 Tcl_CancelIdleCall.3.*
+ ln $S DoWhenIdle.3$Z Tcl_DoWhenIdle.3$Z
+ ln $S DoWhenIdle.3$Z Tcl_CancelIdleCall.3$Z
+fi
+if test -r DoubleObj.3; then
+ rm -f DoubleObj.3.*
+ $ZIP DoubleObj.3
+ rm -f Tcl_NewDoubleObj.3 Tcl_NewDoubleObj.3.*
+ rm -f Tcl_SetDoubleObj.3 Tcl_SetDoubleObj.3.*
+ rm -f Tcl_GetDoubleFromObj.3 Tcl_GetDoubleFromObj.3.*
+ ln $S DoubleObj.3$Z Tcl_NewDoubleObj.3$Z
+ ln $S DoubleObj.3$Z Tcl_SetDoubleObj.3$Z
+ ln $S DoubleObj.3$Z Tcl_GetDoubleFromObj.3$Z
+fi
+if test -r DumpActiveMemory.3; then
+ rm -f DumpActiveMemory.3.*
+ $ZIP DumpActiveMemory.3
+ rm -f Tcl_DumpActiveMemory.3 Tcl_DumpActiveMemory.3.*
+ rm -f Tcl_InitMemory.3 Tcl_InitMemory.3.*
+ rm -f Tcl_ValidateAllMemory.3 Tcl_ValidateAllMemory.3.*
+ ln $S DumpActiveMemory.3$Z Tcl_DumpActiveMemory.3$Z
+ ln $S DumpActiveMemory.3$Z Tcl_InitMemory.3$Z
+ ln $S DumpActiveMemory.3$Z Tcl_ValidateAllMemory.3$Z
+fi
+if test -r Encoding.3; then
+ rm -f Encoding.3.*
+ $ZIP Encoding.3
+ rm -f Tcl_GetEncoding.3 Tcl_GetEncoding.3.*
+ rm -f Tcl_FreeEncoding.3 Tcl_FreeEncoding.3.*
+ rm -f Tcl_ExternalToUtfDString.3 Tcl_ExternalToUtfDString.3.*
+ rm -f Tcl_ExternalToUtf.3 Tcl_ExternalToUtf.3.*
+ rm -f Tcl_UtfToExternalDString.3 Tcl_UtfToExternalDString.3.*
+ rm -f Tcl_UtfToExternal.3 Tcl_UtfToExternal.3.*
+ rm -f Tcl_WinTCharToUtf.3 Tcl_WinTCharToUtf.3.*
+ rm -f Tcl_WinUtfToTChar.3 Tcl_WinUtfToTChar.3.*
+ rm -f Tcl_GetEncodingName.3 Tcl_GetEncodingName.3.*
+ rm -f Tcl_SetSystemEncoding.3 Tcl_SetSystemEncoding.3.*
+ rm -f Tcl_GetEncodingNames.3 Tcl_GetEncodingNames.3.*
+ rm -f Tcl_CreateEncoding.3 Tcl_CreateEncoding.3.*
+ rm -f Tcl_GetDefaultEncodingDir.3 Tcl_GetDefaultEncodingDir.3.*
+ rm -f Tcl_SetDefaultEncodingDir.3 Tcl_SetDefaultEncodingDir.3.*
+ ln $S Encoding.3$Z Tcl_GetEncoding.3$Z
+ ln $S Encoding.3$Z Tcl_FreeEncoding.3$Z
+ ln $S Encoding.3$Z Tcl_ExternalToUtfDString.3$Z
+ ln $S Encoding.3$Z Tcl_ExternalToUtf.3$Z
+ ln $S Encoding.3$Z Tcl_UtfToExternalDString.3$Z
+ ln $S Encoding.3$Z Tcl_UtfToExternal.3$Z
+ ln $S Encoding.3$Z Tcl_WinTCharToUtf.3$Z
+ ln $S Encoding.3$Z Tcl_WinUtfToTChar.3$Z
+ ln $S Encoding.3$Z Tcl_GetEncodingName.3$Z
+ ln $S Encoding.3$Z Tcl_SetSystemEncoding.3$Z
+ ln $S Encoding.3$Z Tcl_GetEncodingNames.3$Z
+ ln $S Encoding.3$Z Tcl_CreateEncoding.3$Z
+ ln $S Encoding.3$Z Tcl_GetDefaultEncodingDir.3$Z
+ ln $S Encoding.3$Z Tcl_SetDefaultEncodingDir.3$Z
+fi
+if test -r Environment.3; then
+ rm -f Environment.3.*
+ $ZIP Environment.3
+ rm -f Tcl_PutEnv.3 Tcl_PutEnv.3.*
+ ln $S Environment.3$Z Tcl_PutEnv.3$Z
+fi
+if test -r Eval.3; then
+ rm -f Eval.3.*
+ $ZIP Eval.3
+ rm -f Tcl_EvalObjEx.3 Tcl_EvalObjEx.3.*
+ rm -f Tcl_EvalFile.3 Tcl_EvalFile.3.*
+ rm -f Tcl_EvalObjv.3 Tcl_EvalObjv.3.*
+ rm -f Tcl_Eval.3 Tcl_Eval.3.*
+ rm -f Tcl_EvalEx.3 Tcl_EvalEx.3.*
+ rm -f Tcl_GlobalEval.3 Tcl_GlobalEval.3.*
+ rm -f Tcl_GlobalEvalObj.3 Tcl_GlobalEvalObj.3.*
+ rm -f Tcl_VarEval.3 Tcl_VarEval.3.*
+ rm -f Tcl_VarEvalVA.3 Tcl_VarEvalVA.3.*
+ ln $S Eval.3$Z Tcl_EvalObjEx.3$Z
+ ln $S Eval.3$Z Tcl_EvalFile.3$Z
+ ln $S Eval.3$Z Tcl_EvalObjv.3$Z
+ ln $S Eval.3$Z Tcl_Eval.3$Z
+ ln $S Eval.3$Z Tcl_EvalEx.3$Z
+ ln $S Eval.3$Z Tcl_GlobalEval.3$Z
+ ln $S Eval.3$Z Tcl_GlobalEvalObj.3$Z
+ ln $S Eval.3$Z Tcl_VarEval.3$Z
+ ln $S Eval.3$Z Tcl_VarEvalVA.3$Z
+fi
+if test -r Exit.3; then
+ rm -f Exit.3.*
+ $ZIP Exit.3
+ rm -f Tcl_Exit.3 Tcl_Exit.3.*
+ rm -f Tcl_Finalize.3 Tcl_Finalize.3.*
+ rm -f Tcl_CreateExitHandler.3 Tcl_CreateExitHandler.3.*
+ rm -f Tcl_DeleteExitHandler.3 Tcl_DeleteExitHandler.3.*
+ rm -f Tcl_ExitThread.3 Tcl_ExitThread.3.*
+ rm -f Tcl_FinalizeThread.3 Tcl_FinalizeThread.3.*
+ rm -f Tcl_CreateThreadExitHandler.3 Tcl_CreateThreadExitHandler.3.*
+ rm -f Tcl_DeleteThreadExitHandler.3 Tcl_DeleteThreadExitHandler.3.*
+ rm -f Tcl_SetExitProc.3 Tcl_SetExitProc.3.*
+ ln $S Exit.3$Z Tcl_Exit.3$Z
+ ln $S Exit.3$Z Tcl_Finalize.3$Z
+ ln $S Exit.3$Z Tcl_CreateExitHandler.3$Z
+ ln $S Exit.3$Z Tcl_DeleteExitHandler.3$Z
+ ln $S Exit.3$Z Tcl_ExitThread.3$Z
+ ln $S Exit.3$Z Tcl_FinalizeThread.3$Z
+ ln $S Exit.3$Z Tcl_CreateThreadExitHandler.3$Z
+ ln $S Exit.3$Z Tcl_DeleteThreadExitHandler.3$Z
+ ln $S Exit.3$Z Tcl_SetExitProc.3$Z
+fi
+if test -r ExprLong.3; then
+ rm -f ExprLong.3.*
+ $ZIP ExprLong.3
+ rm -f Tcl_ExprLong.3 Tcl_ExprLong.3.*
+ rm -f Tcl_ExprDouble.3 Tcl_ExprDouble.3.*
+ rm -f Tcl_ExprBoolean.3 Tcl_ExprBoolean.3.*
+ rm -f Tcl_ExprString.3 Tcl_ExprString.3.*
+ ln $S ExprLong.3$Z Tcl_ExprLong.3$Z
+ ln $S ExprLong.3$Z Tcl_ExprDouble.3$Z
+ ln $S ExprLong.3$Z Tcl_ExprBoolean.3$Z
+ ln $S ExprLong.3$Z Tcl_ExprString.3$Z
+fi
+if test -r ExprLongObj.3; then
+ rm -f ExprLongObj.3.*
+ $ZIP ExprLongObj.3
+ rm -f Tcl_ExprLongObj.3 Tcl_ExprLongObj.3.*
+ rm -f Tcl_ExprDoubleObj.3 Tcl_ExprDoubleObj.3.*
+ rm -f Tcl_ExprBooleanObj.3 Tcl_ExprBooleanObj.3.*
+ rm -f Tcl_ExprObj.3 Tcl_ExprObj.3.*
+ ln $S ExprLongObj.3$Z Tcl_ExprLongObj.3$Z
+ ln $S ExprLongObj.3$Z Tcl_ExprDoubleObj.3$Z
+ ln $S ExprLongObj.3$Z Tcl_ExprBooleanObj.3$Z
+ ln $S ExprLongObj.3$Z Tcl_ExprObj.3$Z
+fi
+if test -r FileSystem.3; then
+ rm -f FileSystem.3.*
+ $ZIP FileSystem.3
+ rm -f Tcl_FSRegister.3 Tcl_FSRegister.3.*
+ rm -f Tcl_FSUnregister.3 Tcl_FSUnregister.3.*
+ rm -f Tcl_FSData.3 Tcl_FSData.3.*
+ rm -f Tcl_FSMountsChanged.3 Tcl_FSMountsChanged.3.*
+ rm -f Tcl_FSGetFileSystemForPath.3 Tcl_FSGetFileSystemForPath.3.*
+ rm -f Tcl_FSGetPathType.3 Tcl_FSGetPathType.3.*
+ rm -f Tcl_FSCopyFile.3 Tcl_FSCopyFile.3.*
+ rm -f Tcl_FSCopyDirectory.3 Tcl_FSCopyDirectory.3.*
+ rm -f Tcl_FSCreateDirectory.3 Tcl_FSCreateDirectory.3.*
+ rm -f Tcl_FSDeleteFile.3 Tcl_FSDeleteFile.3.*
+ rm -f Tcl_FSRemoveDirectory.3 Tcl_FSRemoveDirectory.3.*
+ rm -f Tcl_FSRenameFile.3 Tcl_FSRenameFile.3.*
+ rm -f Tcl_FSListVolumes.3 Tcl_FSListVolumes.3.*
+ rm -f Tcl_FSEvalFile.3 Tcl_FSEvalFile.3.*
+ rm -f Tcl_FSLoadFile.3 Tcl_FSLoadFile.3.*
+ rm -f Tcl_FSMatchInDirectory.3 Tcl_FSMatchInDirectory.3.*
+ rm -f Tcl_FSLink.3 Tcl_FSLink.3.*
+ rm -f Tcl_FSLstat.3 Tcl_FSLstat.3.*
+ rm -f Tcl_FSUtime.3 Tcl_FSUtime.3.*
+ rm -f Tcl_FSFileAttrsGet.3 Tcl_FSFileAttrsGet.3.*
+ rm -f Tcl_FSFileAttrsSet.3 Tcl_FSFileAttrsSet.3.*
+ rm -f Tcl_FSFileAttrStrings.3 Tcl_FSFileAttrStrings.3.*
+ rm -f Tcl_FSStat.3 Tcl_FSStat.3.*
+ rm -f Tcl_FSAccess.3 Tcl_FSAccess.3.*
+ rm -f Tcl_FSOpenFileChannel.3 Tcl_FSOpenFileChannel.3.*
+ rm -f Tcl_FSGetCwd.3 Tcl_FSGetCwd.3.*
+ rm -f Tcl_FSChdir.3 Tcl_FSChdir.3.*
+ rm -f Tcl_FSPathSeparator.3 Tcl_FSPathSeparator.3.*
+ rm -f Tcl_FSJoinPath.3 Tcl_FSJoinPath.3.*
+ rm -f Tcl_FSSplitPath.3 Tcl_FSSplitPath.3.*
+ rm -f Tcl_FSEqualPaths.3 Tcl_FSEqualPaths.3.*
+ rm -f Tcl_FSGetNormalizedPath.3 Tcl_FSGetNormalizedPath.3.*
+ rm -f Tcl_FSJoinToPath.3 Tcl_FSJoinToPath.3.*
+ rm -f Tcl_FSConvertToPathType.3 Tcl_FSConvertToPathType.3.*
+ rm -f Tcl_FSGetInternalRep.3 Tcl_FSGetInternalRep.3.*
+ rm -f Tcl_FSGetTranslatedPath.3 Tcl_FSGetTranslatedPath.3.*
+ rm -f Tcl_FSGetTranslatedStringPath.3 Tcl_FSGetTranslatedStringPath.3.*
+ rm -f Tcl_FSNewNativePath.3 Tcl_FSNewNativePath.3.*
+ rm -f Tcl_FSGetNativePath.3 Tcl_FSGetNativePath.3.*
+ rm -f Tcl_FSFileSystemInfo.3 Tcl_FSFileSystemInfo.3.*
+ rm -f Tcl_AllocStatBuf.3 Tcl_AllocStatBuf.3.*
+ ln $S FileSystem.3$Z Tcl_FSRegister.3$Z
+ ln $S FileSystem.3$Z Tcl_FSUnregister.3$Z
+ ln $S FileSystem.3$Z Tcl_FSData.3$Z
+ ln $S FileSystem.3$Z Tcl_FSMountsChanged.3$Z
+ ln $S FileSystem.3$Z Tcl_FSGetFileSystemForPath.3$Z
+ ln $S FileSystem.3$Z Tcl_FSGetPathType.3$Z
+ ln $S FileSystem.3$Z Tcl_FSCopyFile.3$Z
+ ln $S FileSystem.3$Z Tcl_FSCopyDirectory.3$Z
+ ln $S FileSystem.3$Z Tcl_FSCreateDirectory.3$Z
+ ln $S FileSystem.3$Z Tcl_FSDeleteFile.3$Z
+ ln $S FileSystem.3$Z Tcl_FSRemoveDirectory.3$Z
+ ln $S FileSystem.3$Z Tcl_FSRenameFile.3$Z
+ ln $S FileSystem.3$Z Tcl_FSListVolumes.3$Z
+ ln $S FileSystem.3$Z Tcl_FSEvalFile.3$Z
+ ln $S FileSystem.3$Z Tcl_FSLoadFile.3$Z
+ ln $S FileSystem.3$Z Tcl_FSMatchInDirectory.3$Z
+ ln $S FileSystem.3$Z Tcl_FSLink.3$Z
+ ln $S FileSystem.3$Z Tcl_FSLstat.3$Z
+ ln $S FileSystem.3$Z Tcl_FSUtime.3$Z
+ ln $S FileSystem.3$Z Tcl_FSFileAttrsGet.3$Z
+ ln $S FileSystem.3$Z Tcl_FSFileAttrsSet.3$Z
+ ln $S FileSystem.3$Z Tcl_FSFileAttrStrings.3$Z
+ ln $S FileSystem.3$Z Tcl_FSStat.3$Z
+ ln $S FileSystem.3$Z Tcl_FSAccess.3$Z
+ ln $S FileSystem.3$Z Tcl_FSOpenFileChannel.3$Z
+ ln $S FileSystem.3$Z Tcl_FSGetCwd.3$Z
+ ln $S FileSystem.3$Z Tcl_FSChdir.3$Z
+ ln $S FileSystem.3$Z Tcl_FSPathSeparator.3$Z
+ ln $S FileSystem.3$Z Tcl_FSJoinPath.3$Z
+ ln $S FileSystem.3$Z Tcl_FSSplitPath.3$Z
+ ln $S FileSystem.3$Z Tcl_FSEqualPaths.3$Z
+ ln $S FileSystem.3$Z Tcl_FSGetNormalizedPath.3$Z
+ ln $S FileSystem.3$Z Tcl_FSJoinToPath.3$Z
+ ln $S FileSystem.3$Z Tcl_FSConvertToPathType.3$Z
+ ln $S FileSystem.3$Z Tcl_FSGetInternalRep.3$Z
+ ln $S FileSystem.3$Z Tcl_FSGetTranslatedPath.3$Z
+ ln $S FileSystem.3$Z Tcl_FSGetTranslatedStringPath.3$Z
+ ln $S FileSystem.3$Z Tcl_FSNewNativePath.3$Z
+ ln $S FileSystem.3$Z Tcl_FSGetNativePath.3$Z
+ ln $S FileSystem.3$Z Tcl_FSFileSystemInfo.3$Z
+ ln $S FileSystem.3$Z Tcl_AllocStatBuf.3$Z
+fi
+if test -r FindExec.3; then
+ rm -f FindExec.3.*
+ $ZIP FindExec.3
+ rm -f Tcl_FindExecutable.3 Tcl_FindExecutable.3.*
+ rm -f Tcl_GetNameOfExecutable.3 Tcl_GetNameOfExecutable.3.*
+ ln $S FindExec.3$Z Tcl_FindExecutable.3$Z
+ ln $S FindExec.3$Z Tcl_GetNameOfExecutable.3$Z
+fi
+if test -r GetCwd.3; then
+ rm -f GetCwd.3.*
+ $ZIP GetCwd.3
+ rm -f Tcl_GetCwd.3 Tcl_GetCwd.3.*
+ rm -f Tcl_Chdir.3 Tcl_Chdir.3.*
+ ln $S GetCwd.3$Z Tcl_GetCwd.3$Z
+ ln $S GetCwd.3$Z Tcl_Chdir.3$Z
+fi
+if test -r GetHostName.3; then
+ rm -f GetHostName.3.*
+ $ZIP GetHostName.3
+ rm -f Tcl_GetHostName.3 Tcl_GetHostName.3.*
+ ln $S GetHostName.3$Z Tcl_GetHostName.3$Z
+fi
+if test -r GetIndex.3; then
+ rm -f GetIndex.3.*
+ $ZIP GetIndex.3
+ rm -f Tcl_GetIndexFromObj.3 Tcl_GetIndexFromObj.3.*
+ rm -f Tcl_GetIndexFromObjStruct.3 Tcl_GetIndexFromObjStruct.3.*
+ ln $S GetIndex.3$Z Tcl_GetIndexFromObj.3$Z
+ ln $S GetIndex.3$Z Tcl_GetIndexFromObjStruct.3$Z
+fi
+if test -r GetInt.3; then
+ rm -f GetInt.3.*
+ $ZIP GetInt.3
+ rm -f Tcl_GetInt.3 Tcl_GetInt.3.*
+ rm -f Tcl_GetDouble.3 Tcl_GetDouble.3.*
+ rm -f Tcl_GetBoolean.3 Tcl_GetBoolean.3.*
+ ln $S GetInt.3$Z Tcl_GetInt.3$Z
+ ln $S GetInt.3$Z Tcl_GetDouble.3$Z
+ ln $S GetInt.3$Z Tcl_GetBoolean.3$Z
+fi
+if test -r GetOpnFl.3; then
+ rm -f GetOpnFl.3.*
+ $ZIP GetOpnFl.3
+ rm -f Tcl_GetOpenFile.3 Tcl_GetOpenFile.3.*
+ ln $S GetOpnFl.3$Z Tcl_GetOpenFile.3$Z
+fi
+if test -r GetStdChan.3; then
+ rm -f GetStdChan.3.*
+ $ZIP GetStdChan.3
+ rm -f Tcl_GetStdChannel.3 Tcl_GetStdChannel.3.*
+ rm -f Tcl_SetStdChannel.3 Tcl_SetStdChannel.3.*
+ ln $S GetStdChan.3$Z Tcl_GetStdChannel.3$Z
+ ln $S GetStdChan.3$Z Tcl_SetStdChannel.3$Z
+fi
+if test -r GetTime.3; then
+ rm -f GetTime.3.*
+ $ZIP GetTime.3
+ rm -f Tcl_GetTime.3 Tcl_GetTime.3.*
+ ln $S GetTime.3$Z Tcl_GetTime.3$Z
+fi
+if test -r GetVersion.3; then
+ rm -f GetVersion.3.*
+ $ZIP GetVersion.3
+ rm -f Tcl_GetVersion.3 Tcl_GetVersion.3.*
+ ln $S GetVersion.3$Z Tcl_GetVersion.3$Z
+fi
+if test -r Hash.3; then
+ rm -f Hash.3.*
+ $ZIP Hash.3
+ rm -f Tcl_InitHashTable.3 Tcl_InitHashTable.3.*
+ rm -f Tcl_InitCustomHashTable.3 Tcl_InitCustomHashTable.3.*
+ rm -f Tcl_InitObjHashTable.3 Tcl_InitObjHashTable.3.*
+ rm -f Tcl_DeleteHashTable.3 Tcl_DeleteHashTable.3.*
+ rm -f Tcl_CreateHashEntry.3 Tcl_CreateHashEntry.3.*
+ rm -f Tcl_DeleteHashEntry.3 Tcl_DeleteHashEntry.3.*
+ rm -f Tcl_FindHashEntry.3 Tcl_FindHashEntry.3.*
+ rm -f Tcl_GetHashValue.3 Tcl_GetHashValue.3.*
+ rm -f Tcl_SetHashValue.3 Tcl_SetHashValue.3.*
+ rm -f Tcl_GetHashKey.3 Tcl_GetHashKey.3.*
+ rm -f Tcl_FirstHashEntry.3 Tcl_FirstHashEntry.3.*
+ rm -f Tcl_NextHashEntry.3 Tcl_NextHashEntry.3.*
+ rm -f Tcl_HashStats.3 Tcl_HashStats.3.*
+ ln $S Hash.3$Z Tcl_InitHashTable.3$Z
+ ln $S Hash.3$Z Tcl_InitCustomHashTable.3$Z
+ ln $S Hash.3$Z Tcl_InitObjHashTable.3$Z
+ ln $S Hash.3$Z Tcl_DeleteHashTable.3$Z
+ ln $S Hash.3$Z Tcl_CreateHashEntry.3$Z
+ ln $S Hash.3$Z Tcl_DeleteHashEntry.3$Z
+ ln $S Hash.3$Z Tcl_FindHashEntry.3$Z
+ ln $S Hash.3$Z Tcl_GetHashValue.3$Z
+ ln $S Hash.3$Z Tcl_SetHashValue.3$Z
+ ln $S Hash.3$Z Tcl_GetHashKey.3$Z
+ ln $S Hash.3$Z Tcl_FirstHashEntry.3$Z
+ ln $S Hash.3$Z Tcl_NextHashEntry.3$Z
+ ln $S Hash.3$Z Tcl_HashStats.3$Z
+fi
+if test -r Init.3; then
+ rm -f Init.3.*
+ $ZIP Init.3
+ rm -f Tcl_Init.3 Tcl_Init.3.*
+ ln $S Init.3$Z Tcl_Init.3$Z
+fi
+if test -r InitStubs.3; then
+ rm -f InitStubs.3.*
+ $ZIP InitStubs.3
+ rm -f Tcl_InitStubs.3 Tcl_InitStubs.3.*
+ ln $S InitStubs.3$Z Tcl_InitStubs.3$Z
+fi
+if test -r IntObj.3; then
+ rm -f IntObj.3.*
+ $ZIP IntObj.3
+ rm -f Tcl_NewIntObj.3 Tcl_NewIntObj.3.*
+ rm -f Tcl_NewLongObj.3 Tcl_NewLongObj.3.*
+ rm -f Tcl_NewWideIntObj.3 Tcl_NewWideIntObj.3.*
+ rm -f Tcl_SetIntObj.3 Tcl_SetIntObj.3.*
+ rm -f Tcl_SetLongObj.3 Tcl_SetLongObj.3.*
+ rm -f Tcl_SetWideIntObj.3 Tcl_SetWideIntObj.3.*
+ rm -f Tcl_GetIntFromObj.3 Tcl_GetIntFromObj.3.*
+ rm -f Tcl_GetLongFromObj.3 Tcl_GetLongFromObj.3.*
+ rm -f Tcl_GetWideIntFromObj.3 Tcl_GetWideIntFromObj.3.*
+ ln $S IntObj.3$Z Tcl_NewIntObj.3$Z
+ ln $S IntObj.3$Z Tcl_NewLongObj.3$Z
+ ln $S IntObj.3$Z Tcl_NewWideIntObj.3$Z
+ ln $S IntObj.3$Z Tcl_SetIntObj.3$Z
+ ln $S IntObj.3$Z Tcl_SetLongObj.3$Z
+ ln $S IntObj.3$Z Tcl_SetWideIntObj.3$Z
+ ln $S IntObj.3$Z Tcl_GetIntFromObj.3$Z
+ ln $S IntObj.3$Z Tcl_GetLongFromObj.3$Z
+ ln $S IntObj.3$Z Tcl_GetWideIntFromObj.3$Z
+fi
+if test -r Interp.3; then
+ rm -f Interp.3.*
+ $ZIP Interp.3
+ rm -f Tcl_Interp.3 Tcl_Interp.3.*
+ ln $S Interp.3$Z Tcl_Interp.3$Z
+fi
+if test -r Limit.3; then
+ rm -f Limit.3.*
+ $ZIP Limit.3
+ rm -f Tcl_LimitAddHandler.3 Tcl_LimitAddHandler.3.*
+ rm -f Tcl_LimitCheck.3 Tcl_LimitCheck.3.*
+ rm -f Tcl_LimitExceeded.3 Tcl_LimitExceeded.3.*
+ rm -f Tcl_LimitGetCommands.3 Tcl_LimitGetCommands.3.*
+ rm -f Tcl_LimitGetGranularity.3 Tcl_LimitGetGranularity.3.*
+ rm -f Tcl_LimitGetTime.3 Tcl_LimitGetTime.3.*
+ rm -f Tcl_LimitReady.3 Tcl_LimitReady.3.*
+ rm -f Tcl_LimitRemoveHandler.3 Tcl_LimitRemoveHandler.3.*
+ rm -f Tcl_LimitSetCommands.3 Tcl_LimitSetCommands.3.*
+ rm -f Tcl_LimitSetGranularity.3 Tcl_LimitSetGranularity.3.*
+ rm -f Tcl_LimitSetTime.3 Tcl_LimitSetTime.3.*
+ rm -f Tcl_LimitTypeEnabled.3 Tcl_LimitTypeEnabled.3.*
+ rm -f Tcl_LimitTypeExceeded.3 Tcl_LimitTypeExceeded.3.*
+ rm -f Tcl_LimitTypeReset.3 Tcl_LimitTypeReset.3.*
+ rm -f Tcl_LimitTypeSet.3 Tcl_LimitTypeSet.3.*
+ ln $S Limit.3$Z Tcl_LimitAddHandler.3$Z
+ ln $S Limit.3$Z Tcl_LimitCheck.3$Z
+ ln $S Limit.3$Z Tcl_LimitExceeded.3$Z
+ ln $S Limit.3$Z Tcl_LimitGetCommands.3$Z
+ ln $S Limit.3$Z Tcl_LimitGetGranularity.3$Z
+ ln $S Limit.3$Z Tcl_LimitGetTime.3$Z
+ ln $S Limit.3$Z Tcl_LimitReady.3$Z
+ ln $S Limit.3$Z Tcl_LimitRemoveHandler.3$Z
+ ln $S Limit.3$Z Tcl_LimitSetCommands.3$Z
+ ln $S Limit.3$Z Tcl_LimitSetGranularity.3$Z
+ ln $S Limit.3$Z Tcl_LimitSetTime.3$Z
+ ln $S Limit.3$Z Tcl_LimitTypeEnabled.3$Z
+ ln $S Limit.3$Z Tcl_LimitTypeExceeded.3$Z
+ ln $S Limit.3$Z Tcl_LimitTypeReset.3$Z
+ ln $S Limit.3$Z Tcl_LimitTypeSet.3$Z
+fi
+if test -r LinkVar.3; then
+ rm -f LinkVar.3.*
+ $ZIP LinkVar.3
+ rm -f Tcl_LinkVar.3 Tcl_LinkVar.3.*
+ rm -f Tcl_UnlinkVar.3 Tcl_UnlinkVar.3.*
+ rm -f Tcl_UpdateLinkedVar.3 Tcl_UpdateLinkedVar.3.*
+ ln $S LinkVar.3$Z Tcl_LinkVar.3$Z
+ ln $S LinkVar.3$Z Tcl_UnlinkVar.3$Z
+ ln $S LinkVar.3$Z Tcl_UpdateLinkedVar.3$Z
+fi
+if test -r ListObj.3; then
+ rm -f ListObj.3.*
+ $ZIP ListObj.3
+ rm -f Tcl_ListObjAppendList.3 Tcl_ListObjAppendList.3.*
+ rm -f Tcl_ListObjAppendElement.3 Tcl_ListObjAppendElement.3.*
+ rm -f Tcl_NewListObj.3 Tcl_NewListObj.3.*
+ rm -f Tcl_SetListObj.3 Tcl_SetListObj.3.*
+ rm -f Tcl_ListObjGetElements.3 Tcl_ListObjGetElements.3.*
+ rm -f Tcl_ListObjLength.3 Tcl_ListObjLength.3.*
+ rm -f Tcl_ListObjIndex.3 Tcl_ListObjIndex.3.*
+ rm -f Tcl_ListObjReplace.3 Tcl_ListObjReplace.3.*
+ ln $S ListObj.3$Z Tcl_ListObjAppendList.3$Z
+ ln $S ListObj.3$Z Tcl_ListObjAppendElement.3$Z
+ ln $S ListObj.3$Z Tcl_NewListObj.3$Z
+ ln $S ListObj.3$Z Tcl_SetListObj.3$Z
+ ln $S ListObj.3$Z Tcl_ListObjGetElements.3$Z
+ ln $S ListObj.3$Z Tcl_ListObjLength.3$Z
+ ln $S ListObj.3$Z Tcl_ListObjIndex.3$Z
+ ln $S ListObj.3$Z Tcl_ListObjReplace.3$Z
+fi
+if test -r Namespace.3; then
+ rm -f Namespace.3.*
+ $ZIP Namespace.3
+ rm -f Tcl_AppendExportList.3 Tcl_AppendExportList.3.*
+ rm -f Tcl_CreateNamespace.3 Tcl_CreateNamespace.3.*
+ rm -f Tcl_DeleteNamespace.3 Tcl_DeleteNamespace.3.*
+ rm -f Tcl_Export.3 Tcl_Export.3.*
+ rm -f Tcl_FindCommand.3 Tcl_FindCommand.3.*
+ rm -f Tcl_FindNamespace.3 Tcl_FindNamespace.3.*
+ rm -f Tcl_ForgetImport.3 Tcl_ForgetImport.3.*
+ rm -f Tcl_GetCurrentNamespace.3 Tcl_GetCurrentNamespace.3.*
+ rm -f Tcl_GetGloblaNamespace.3 Tcl_GetGloblaNamespace.3.*
+ rm -f Tcl_Import.3 Tcl_Import.3.*
+ ln $S Namespace.3$Z Tcl_AppendExportList.3$Z
+ ln $S Namespace.3$Z Tcl_CreateNamespace.3$Z
+ ln $S Namespace.3$Z Tcl_DeleteNamespace.3$Z
+ ln $S Namespace.3$Z Tcl_Export.3$Z
+ ln $S Namespace.3$Z Tcl_FindCommand.3$Z
+ ln $S Namespace.3$Z Tcl_FindNamespace.3$Z
+ ln $S Namespace.3$Z Tcl_ForgetImport.3$Z
+ ln $S Namespace.3$Z Tcl_GetCurrentNamespace.3$Z
+ ln $S Namespace.3$Z Tcl_GetGloblaNamespace.3$Z
+ ln $S Namespace.3$Z Tcl_Import.3$Z
+fi
+if test -r Notifier.3; then
+ rm -f Notifier.3.*
+ $ZIP Notifier.3
+ rm -f Tcl_CreateEventSource.3 Tcl_CreateEventSource.3.*
+ rm -f Tcl_DeleteEventSource.3 Tcl_DeleteEventSource.3.*
+ rm -f Tcl_SetMaxBlockTime.3 Tcl_SetMaxBlockTime.3.*
+ rm -f Tcl_QueueEvent.3 Tcl_QueueEvent.3.*
+ rm -f Tcl_ThreadQueueEvent.3 Tcl_ThreadQueueEvent.3.*
+ rm -f Tcl_ThreadAlert.3 Tcl_ThreadAlert.3.*
+ rm -f Tcl_GetCurrentThread.3 Tcl_GetCurrentThread.3.*
+ rm -f Tcl_DeleteEvents.3 Tcl_DeleteEvents.3.*
+ rm -f Tcl_InitNotifier.3 Tcl_InitNotifier.3.*
+ rm -f Tcl_FinalizeNotifier.3 Tcl_FinalizeNotifier.3.*
+ rm -f Tcl_WaitForEvent.3 Tcl_WaitForEvent.3.*
+ rm -f Tcl_AlertNotifier.3 Tcl_AlertNotifier.3.*
+ rm -f Tcl_SetTimer.3 Tcl_SetTimer.3.*
+ rm -f Tcl_ServiceAll.3 Tcl_ServiceAll.3.*
+ rm -f Tcl_ServiceEvent.3 Tcl_ServiceEvent.3.*
+ rm -f Tcl_GetServiceMode.3 Tcl_GetServiceMode.3.*
+ rm -f Tcl_SetServiceMode.3 Tcl_SetServiceMode.3.*
+ ln $S Notifier.3$Z Tcl_CreateEventSource.3$Z
+ ln $S Notifier.3$Z Tcl_DeleteEventSource.3$Z
+ ln $S Notifier.3$Z Tcl_SetMaxBlockTime.3$Z
+ ln $S Notifier.3$Z Tcl_QueueEvent.3$Z
+ ln $S Notifier.3$Z Tcl_ThreadQueueEvent.3$Z
+ ln $S Notifier.3$Z Tcl_ThreadAlert.3$Z
+ ln $S Notifier.3$Z Tcl_GetCurrentThread.3$Z
+ ln $S Notifier.3$Z Tcl_DeleteEvents.3$Z
+ ln $S Notifier.3$Z Tcl_InitNotifier.3$Z
+ ln $S Notifier.3$Z Tcl_FinalizeNotifier.3$Z
+ ln $S Notifier.3$Z Tcl_WaitForEvent.3$Z
+ ln $S Notifier.3$Z Tcl_AlertNotifier.3$Z
+ ln $S Notifier.3$Z Tcl_SetTimer.3$Z
+ ln $S Notifier.3$Z Tcl_ServiceAll.3$Z
+ ln $S Notifier.3$Z Tcl_ServiceEvent.3$Z
+ ln $S Notifier.3$Z Tcl_GetServiceMode.3$Z
+ ln $S Notifier.3$Z Tcl_SetServiceMode.3$Z
+fi
+if test -r Object.3; then
+ rm -f Object.3.*
+ $ZIP Object.3
+ rm -f Tcl_NewObj.3 Tcl_NewObj.3.*
+ rm -f Tcl_DuplicateObj.3 Tcl_DuplicateObj.3.*
+ rm -f Tcl_IncrRefCount.3 Tcl_IncrRefCount.3.*
+ rm -f Tcl_DecrRefCount.3 Tcl_DecrRefCount.3.*
+ rm -f Tcl_IsShared.3 Tcl_IsShared.3.*
+ rm -f Tcl_InvalidateStringRep.3 Tcl_InvalidateStringRep.3.*
+ ln $S Object.3$Z Tcl_NewObj.3$Z
+ ln $S Object.3$Z Tcl_DuplicateObj.3$Z
+ ln $S Object.3$Z Tcl_IncrRefCount.3$Z
+ ln $S Object.3$Z Tcl_DecrRefCount.3$Z
+ ln $S Object.3$Z Tcl_IsShared.3$Z
+ ln $S Object.3$Z Tcl_InvalidateStringRep.3$Z
+fi
+if test -r ObjectType.3; then
+ rm -f ObjectType.3.*
+ $ZIP ObjectType.3
+ rm -f Tcl_RegisterObjType.3 Tcl_RegisterObjType.3.*
+ rm -f Tcl_GetObjType.3 Tcl_GetObjType.3.*
+ rm -f Tcl_AppendAllObjTypes.3 Tcl_AppendAllObjTypes.3.*
+ rm -f Tcl_ConvertToType.3 Tcl_ConvertToType.3.*
+ ln $S ObjectType.3$Z Tcl_RegisterObjType.3$Z
+ ln $S ObjectType.3$Z Tcl_GetObjType.3$Z
+ ln $S ObjectType.3$Z Tcl_AppendAllObjTypes.3$Z
+ ln $S ObjectType.3$Z Tcl_ConvertToType.3$Z
+fi
+if test -r OpenFileChnl.3; then
+ rm -f OpenFileChnl.3.*
+ $ZIP OpenFileChnl.3
+ rm -f Tcl_OpenFileChannel.3 Tcl_OpenFileChannel.3.*
+ rm -f Tcl_OpenCommandChannel.3 Tcl_OpenCommandChannel.3.*
+ rm -f Tcl_MakeFileChannel.3 Tcl_MakeFileChannel.3.*
+ rm -f Tcl_GetChannel.3 Tcl_GetChannel.3.*
+ rm -f Tcl_GetChannelNames.3 Tcl_GetChannelNames.3.*
+ rm -f Tcl_GetChannelNamesEx.3 Tcl_GetChannelNamesEx.3.*
+ rm -f Tcl_RegisterChannel.3 Tcl_RegisterChannel.3.*
+ rm -f Tcl_UnregisterChannel.3 Tcl_UnregisterChannel.3.*
+ rm -f Tcl_DetachChannel.3 Tcl_DetachChannel.3.*
+ rm -f Tcl_IsStandardChannel.3 Tcl_IsStandardChannel.3.*
+ rm -f Tcl_Close.3 Tcl_Close.3.*
+ rm -f Tcl_ReadChars.3 Tcl_ReadChars.3.*
+ rm -f Tcl_Read.3 Tcl_Read.3.*
+ rm -f Tcl_GetsObj.3 Tcl_GetsObj.3.*
+ rm -f Tcl_Gets.3 Tcl_Gets.3.*
+ rm -f Tcl_WriteObj.3 Tcl_WriteObj.3.*
+ rm -f Tcl_WriteChars.3 Tcl_WriteChars.3.*
+ rm -f Tcl_Write.3 Tcl_Write.3.*
+ rm -f Tcl_Flush.3 Tcl_Flush.3.*
+ rm -f Tcl_Seek.3 Tcl_Seek.3.*
+ rm -f Tcl_Tell.3 Tcl_Tell.3.*
+ rm -f Tcl_GetChannelOption.3 Tcl_GetChannelOption.3.*
+ rm -f Tcl_SetChannelOption.3 Tcl_SetChannelOption.3.*
+ rm -f Tcl_Eof.3 Tcl_Eof.3.*
+ rm -f Tcl_InputBlocked.3 Tcl_InputBlocked.3.*
+ rm -f Tcl_InputBuffered.3 Tcl_InputBuffered.3.*
+ rm -f Tcl_OutputBuffered.3 Tcl_OutputBuffered.3.*
+ rm -f Tcl_Ungets.3 Tcl_Ungets.3.*
+ rm -f Tcl_ReadRaw.3 Tcl_ReadRaw.3.*
+ rm -f Tcl_WriteRaw.3 Tcl_WriteRaw.3.*
+ ln $S OpenFileChnl.3$Z Tcl_OpenFileChannel.3$Z
+ ln $S OpenFileChnl.3$Z Tcl_OpenCommandChannel.3$Z
+ ln $S OpenFileChnl.3$Z Tcl_MakeFileChannel.3$Z
+ ln $S OpenFileChnl.3$Z Tcl_GetChannel.3$Z
+ ln $S OpenFileChnl.3$Z Tcl_GetChannelNames.3$Z
+ ln $S OpenFileChnl.3$Z Tcl_GetChannelNamesEx.3$Z
+ ln $S OpenFileChnl.3$Z Tcl_RegisterChannel.3$Z
+ ln $S OpenFileChnl.3$Z Tcl_UnregisterChannel.3$Z
+ ln $S OpenFileChnl.3$Z Tcl_DetachChannel.3$Z
+ ln $S OpenFileChnl.3$Z Tcl_IsStandardChannel.3$Z
+ ln $S OpenFileChnl.3$Z Tcl_Close.3$Z
+ ln $S OpenFileChnl.3$Z Tcl_ReadChars.3$Z
+ ln $S OpenFileChnl.3$Z Tcl_Read.3$Z
+ ln $S OpenFileChnl.3$Z Tcl_GetsObj.3$Z
+ ln $S OpenFileChnl.3$Z Tcl_Gets.3$Z
+ ln $S OpenFileChnl.3$Z Tcl_WriteObj.3$Z
+ ln $S OpenFileChnl.3$Z Tcl_WriteChars.3$Z
+ ln $S OpenFileChnl.3$Z Tcl_Write.3$Z
+ ln $S OpenFileChnl.3$Z Tcl_Flush.3$Z
+ ln $S OpenFileChnl.3$Z Tcl_Seek.3$Z
+ ln $S OpenFileChnl.3$Z Tcl_Tell.3$Z
+ ln $S OpenFileChnl.3$Z Tcl_GetChannelOption.3$Z
+ ln $S OpenFileChnl.3$Z Tcl_SetChannelOption.3$Z
+ ln $S OpenFileChnl.3$Z Tcl_Eof.3$Z
+ ln $S OpenFileChnl.3$Z Tcl_InputBlocked.3$Z
+ ln $S OpenFileChnl.3$Z Tcl_InputBuffered.3$Z
+ ln $S OpenFileChnl.3$Z Tcl_OutputBuffered.3$Z
+ ln $S OpenFileChnl.3$Z Tcl_Ungets.3$Z
+ ln $S OpenFileChnl.3$Z Tcl_ReadRaw.3$Z
+ ln $S OpenFileChnl.3$Z Tcl_WriteRaw.3$Z
+fi
+if test -r OpenTcp.3; then
+ rm -f OpenTcp.3.*
+ $ZIP OpenTcp.3
+ rm -f Tcl_OpenTcpClient.3 Tcl_OpenTcpClient.3.*
+ rm -f Tcl_MakeTcpClientChannel.3 Tcl_MakeTcpClientChannel.3.*
+ rm -f Tcl_OpenTcpServer.3 Tcl_OpenTcpServer.3.*
+ ln $S OpenTcp.3$Z Tcl_OpenTcpClient.3$Z
+ ln $S OpenTcp.3$Z Tcl_MakeTcpClientChannel.3$Z
+ ln $S OpenTcp.3$Z Tcl_OpenTcpServer.3$Z
+fi
+if test -r Panic.3; then
+ rm -f Panic.3.*
+ $ZIP Panic.3
+ rm -f Tcl_Panic.3 Tcl_Panic.3.*
+ rm -f Tcl_PanicVA.3 Tcl_PanicVA.3.*
+ rm -f Tcl_SetPanicProc.3 Tcl_SetPanicProc.3.*
+ ln $S Panic.3$Z Tcl_Panic.3$Z
+ ln $S Panic.3$Z Tcl_PanicVA.3$Z
+ ln $S Panic.3$Z Tcl_SetPanicProc.3$Z
+fi
+if test -r ParseCmd.3; then
+ rm -f ParseCmd.3.*
+ $ZIP ParseCmd.3
+ rm -f Tcl_ParseCommand.3 Tcl_ParseCommand.3.*
+ rm -f Tcl_ParseExpr.3 Tcl_ParseExpr.3.*
+ rm -f Tcl_ParseBraces.3 Tcl_ParseBraces.3.*
+ rm -f Tcl_ParseQuotedString.3 Tcl_ParseQuotedString.3.*
+ rm -f Tcl_ParseVarName.3 Tcl_ParseVarName.3.*
+ rm -f Tcl_ParseVar.3 Tcl_ParseVar.3.*
+ rm -f Tcl_FreeParse.3 Tcl_FreeParse.3.*
+ rm -f Tcl_EvalTokens.3 Tcl_EvalTokens.3.*
+ rm -f Tcl_EvalTokensStandard.3 Tcl_EvalTokensStandard.3.*
+ ln $S ParseCmd.3$Z Tcl_ParseCommand.3$Z
+ ln $S ParseCmd.3$Z Tcl_ParseExpr.3$Z
+ ln $S ParseCmd.3$Z Tcl_ParseBraces.3$Z
+ ln $S ParseCmd.3$Z Tcl_ParseQuotedString.3$Z
+ ln $S ParseCmd.3$Z Tcl_ParseVarName.3$Z
+ ln $S ParseCmd.3$Z Tcl_ParseVar.3$Z
+ ln $S ParseCmd.3$Z Tcl_FreeParse.3$Z
+ ln $S ParseCmd.3$Z Tcl_EvalTokens.3$Z
+ ln $S ParseCmd.3$Z Tcl_EvalTokensStandard.3$Z
+fi
+if test -r PkgRequire.3; then
+ rm -f PkgRequire.3.*
+ $ZIP PkgRequire.3
+ rm -f Tcl_PkgRequire.3 Tcl_PkgRequire.3.*
+ rm -f Tcl_PkgRequireEx.3 Tcl_PkgRequireEx.3.*
+ rm -f Tcl_PkgPresent.3 Tcl_PkgPresent.3.*
+ rm -f Tcl_PkgPresentEx.3 Tcl_PkgPresentEx.3.*
+ rm -f Tcl_PkgProvide.3 Tcl_PkgProvide.3.*
+ rm -f Tcl_PkgProvideEx.3 Tcl_PkgProvideEx.3.*
+ ln $S PkgRequire.3$Z Tcl_PkgRequire.3$Z
+ ln $S PkgRequire.3$Z Tcl_PkgRequireEx.3$Z
+ ln $S PkgRequire.3$Z Tcl_PkgPresent.3$Z
+ ln $S PkgRequire.3$Z Tcl_PkgPresentEx.3$Z
+ ln $S PkgRequire.3$Z Tcl_PkgProvide.3$Z
+ ln $S PkgRequire.3$Z Tcl_PkgProvideEx.3$Z
+fi
+if test -r Preserve.3; then
+ rm -f Preserve.3.*
+ $ZIP Preserve.3
+ rm -f Tcl_Preserve.3 Tcl_Preserve.3.*
+ rm -f Tcl_Release.3 Tcl_Release.3.*
+ rm -f Tcl_EventuallyFree.3 Tcl_EventuallyFree.3.*
+ ln $S Preserve.3$Z Tcl_Preserve.3$Z
+ ln $S Preserve.3$Z Tcl_Release.3$Z
+ ln $S Preserve.3$Z Tcl_EventuallyFree.3$Z
+fi
+if test -r PrintDbl.3; then
+ rm -f PrintDbl.3.*
+ $ZIP PrintDbl.3
+ rm -f Tcl_PrintDouble.3 Tcl_PrintDouble.3.*
+ ln $S PrintDbl.3$Z Tcl_PrintDouble.3$Z
+fi
+if test -r RecEvalObj.3; then
+ rm -f RecEvalObj.3.*
+ $ZIP RecEvalObj.3
+ rm -f Tcl_RecordAndEvalObj.3 Tcl_RecordAndEvalObj.3.*
+ ln $S RecEvalObj.3$Z Tcl_RecordAndEvalObj.3$Z
+fi
+if test -r RecordEval.3; then
+ rm -f RecordEval.3.*
+ $ZIP RecordEval.3
+ rm -f Tcl_RecordAndEval.3 Tcl_RecordAndEval.3.*
+ ln $S RecordEval.3$Z Tcl_RecordAndEval.3$Z
+fi
+if test -r RegConfig.3; then
+ rm -f RegConfig.3.*
+ $ZIP RegConfig.3
+ rm -f Tcl_RegisterConfig.3 Tcl_RegisterConfig.3.*
+ ln $S RegConfig.3$Z Tcl_RegisterConfig.3$Z
+fi
+if test -r RegExp.3; then
+ rm -f RegExp.3.*
+ $ZIP RegExp.3
+ rm -f Tcl_RegExpMatch.3 Tcl_RegExpMatch.3.*
+ rm -f Tcl_RegExpCompile.3 Tcl_RegExpCompile.3.*
+ rm -f Tcl_RegExpExec.3 Tcl_RegExpExec.3.*
+ rm -f Tcl_RegExpRange.3 Tcl_RegExpRange.3.*
+ rm -f Tcl_GetRegExpFromObj.3 Tcl_GetRegExpFromObj.3.*
+ rm -f Tcl_RegExpMatchObj.3 Tcl_RegExpMatchObj.3.*
+ rm -f Tcl_RegExpExecObj.3 Tcl_RegExpExecObj.3.*
+ rm -f Tcl_RegExpGetInfo.3 Tcl_RegExpGetInfo.3.*
+ ln $S RegExp.3$Z Tcl_RegExpMatch.3$Z
+ ln $S RegExp.3$Z Tcl_RegExpCompile.3$Z
+ ln $S RegExp.3$Z Tcl_RegExpExec.3$Z
+ ln $S RegExp.3$Z Tcl_RegExpRange.3$Z
+ ln $S RegExp.3$Z Tcl_GetRegExpFromObj.3$Z
+ ln $S RegExp.3$Z Tcl_RegExpMatchObj.3$Z
+ ln $S RegExp.3$Z Tcl_RegExpExecObj.3$Z
+ ln $S RegExp.3$Z Tcl_RegExpGetInfo.3$Z
+fi
+if test -r SaveResult.3; then
+ rm -f SaveResult.3.*
+ $ZIP SaveResult.3
+ rm -f Tcl_SaveResult.3 Tcl_SaveResult.3.*
+ rm -f Tcl_RestoreResult.3 Tcl_RestoreResult.3.*
+ rm -f Tcl_DiscardResult.3 Tcl_DiscardResult.3.*
+ ln $S SaveResult.3$Z Tcl_SaveResult.3$Z
+ ln $S SaveResult.3$Z Tcl_RestoreResult.3$Z
+ ln $S SaveResult.3$Z Tcl_DiscardResult.3$Z
+fi
+if test -r SetErrno.3; then
+ rm -f SetErrno.3.*
+ $ZIP SetErrno.3
+ rm -f Tcl_SetErrno.3 Tcl_SetErrno.3.*
+ rm -f Tcl_GetErrno.3 Tcl_GetErrno.3.*
+ rm -f Tcl_ErrnoId.3 Tcl_ErrnoId.3.*
+ rm -f Tcl_ErrnoMsg.3 Tcl_ErrnoMsg.3.*
+ ln $S SetErrno.3$Z Tcl_SetErrno.3$Z
+ ln $S SetErrno.3$Z Tcl_GetErrno.3$Z
+ ln $S SetErrno.3$Z Tcl_ErrnoId.3$Z
+ ln $S SetErrno.3$Z Tcl_ErrnoMsg.3$Z
+fi
+if test -r SetRecLmt.3; then
+ rm -f SetRecLmt.3.*
+ $ZIP SetRecLmt.3
+ rm -f Tcl_SetRecursionLimit.3 Tcl_SetRecursionLimit.3.*
+ ln $S SetRecLmt.3$Z Tcl_SetRecursionLimit.3$Z
+fi
+if test -r SetResult.3; then
+ rm -f SetResult.3.*
+ $ZIP SetResult.3
+ rm -f Tcl_SetObjResult.3 Tcl_SetObjResult.3.*
+ rm -f Tcl_GetObjResult.3 Tcl_GetObjResult.3.*
+ rm -f Tcl_SetResult.3 Tcl_SetResult.3.*
+ rm -f Tcl_GetStringResult.3 Tcl_GetStringResult.3.*
+ rm -f Tcl_AppendResult.3 Tcl_AppendResult.3.*
+ rm -f Tcl_AppendResultVA.3 Tcl_AppendResultVA.3.*
+ rm -f Tcl_AppendElement.3 Tcl_AppendElement.3.*
+ rm -f Tcl_ResetResult.3 Tcl_ResetResult.3.*
+ rm -f Tcl_FreeResult.3 Tcl_FreeResult.3.*
+ ln $S SetResult.3$Z Tcl_SetObjResult.3$Z
+ ln $S SetResult.3$Z Tcl_GetObjResult.3$Z
+ ln $S SetResult.3$Z Tcl_SetResult.3$Z
+ ln $S SetResult.3$Z Tcl_GetStringResult.3$Z
+ ln $S SetResult.3$Z Tcl_AppendResult.3$Z
+ ln $S SetResult.3$Z Tcl_AppendResultVA.3$Z
+ ln $S SetResult.3$Z Tcl_AppendElement.3$Z
+ ln $S SetResult.3$Z Tcl_ResetResult.3$Z
+ ln $S SetResult.3$Z Tcl_FreeResult.3$Z
+fi
+if test -r SetVar.3; then
+ rm -f SetVar.3.*
+ $ZIP SetVar.3
+ rm -f Tcl_SetVar2Ex.3 Tcl_SetVar2Ex.3.*
+ rm -f Tcl_SetVar.3 Tcl_SetVar.3.*
+ rm -f Tcl_SetVar2.3 Tcl_SetVar2.3.*
+ rm -f Tcl_ObjSetVar2.3 Tcl_ObjSetVar2.3.*
+ rm -f Tcl_GetVar2Ex.3 Tcl_GetVar2Ex.3.*
+ rm -f Tcl_GetVar.3 Tcl_GetVar.3.*
+ rm -f Tcl_GetVar2.3 Tcl_GetVar2.3.*
+ rm -f Tcl_ObjGetVar2.3 Tcl_ObjGetVar2.3.*
+ rm -f Tcl_UnsetVar.3 Tcl_UnsetVar.3.*
+ rm -f Tcl_UnsetVar2.3 Tcl_UnsetVar2.3.*
+ ln $S SetVar.3$Z Tcl_SetVar2Ex.3$Z
+ ln $S SetVar.3$Z Tcl_SetVar.3$Z
+ ln $S SetVar.3$Z Tcl_SetVar2.3$Z
+ ln $S SetVar.3$Z Tcl_ObjSetVar2.3$Z
+ ln $S SetVar.3$Z Tcl_GetVar2Ex.3$Z
+ ln $S SetVar.3$Z Tcl_GetVar.3$Z
+ ln $S SetVar.3$Z Tcl_GetVar2.3$Z
+ ln $S SetVar.3$Z Tcl_ObjGetVar2.3$Z
+ ln $S SetVar.3$Z Tcl_UnsetVar.3$Z
+ ln $S SetVar.3$Z Tcl_UnsetVar2.3$Z
+fi
+if test -r Signal.3; then
+ rm -f Signal.3.*
+ $ZIP Signal.3
+ rm -f Tcl_SignalId.3 Tcl_SignalId.3.*
+ rm -f Tcl_SignalMsg.3 Tcl_SignalMsg.3.*
+ ln $S Signal.3$Z Tcl_SignalId.3$Z
+ ln $S Signal.3$Z Tcl_SignalMsg.3$Z
+fi
+if test -r Sleep.3; then
+ rm -f Sleep.3.*
+ $ZIP Sleep.3
+ rm -f Tcl_Sleep.3 Tcl_Sleep.3.*
+ ln $S Sleep.3$Z Tcl_Sleep.3$Z
+fi
+if test -r SourceRCFile.3; then
+ rm -f SourceRCFile.3.*
+ $ZIP SourceRCFile.3
+ rm -f Tcl_SourceRCFile.3 Tcl_SourceRCFile.3.*
+ ln $S SourceRCFile.3$Z Tcl_SourceRCFile.3$Z
+fi
+if test -r SplitList.3; then
+ rm -f SplitList.3.*
+ $ZIP SplitList.3
+ rm -f Tcl_SplitList.3 Tcl_SplitList.3.*
+ rm -f Tcl_Merge.3 Tcl_Merge.3.*
+ rm -f Tcl_ScanElement.3 Tcl_ScanElement.3.*
+ rm -f Tcl_ConvertElement.3 Tcl_ConvertElement.3.*
+ rm -f Tcl_ScanCountedElement.3 Tcl_ScanCountedElement.3.*
+ rm -f Tcl_ConvertCountedElement.3 Tcl_ConvertCountedElement.3.*
+ ln $S SplitList.3$Z Tcl_SplitList.3$Z
+ ln $S SplitList.3$Z Tcl_Merge.3$Z
+ ln $S SplitList.3$Z Tcl_ScanElement.3$Z
+ ln $S SplitList.3$Z Tcl_ConvertElement.3$Z
+ ln $S SplitList.3$Z Tcl_ScanCountedElement.3$Z
+ ln $S SplitList.3$Z Tcl_ConvertCountedElement.3$Z
+fi
+if test -r SplitPath.3; then
+ rm -f SplitPath.3.*
+ $ZIP SplitPath.3
+ rm -f Tcl_SplitPath.3 Tcl_SplitPath.3.*
+ rm -f Tcl_JoinPath.3 Tcl_JoinPath.3.*
+ rm -f Tcl_GetPathType.3 Tcl_GetPathType.3.*
+ ln $S SplitPath.3$Z Tcl_SplitPath.3$Z
+ ln $S SplitPath.3$Z Tcl_JoinPath.3$Z
+ ln $S SplitPath.3$Z Tcl_GetPathType.3$Z
+fi
+if test -r StaticPkg.3; then
+ rm -f StaticPkg.3.*
+ $ZIP StaticPkg.3
+ rm -f Tcl_StaticPackage.3 Tcl_StaticPackage.3.*
+ ln $S StaticPkg.3$Z Tcl_StaticPackage.3$Z
+fi
+if test -r StdChannels.3; then
+ rm -f StdChannels.3.*
+ $ZIP StdChannels.3
+ rm -f Tcl_StandardChannels.3 Tcl_StandardChannels.3.*
+ ln $S StdChannels.3$Z Tcl_StandardChannels.3$Z
+fi
+if test -r StrMatch.3; then
+ rm -f StrMatch.3.*
+ $ZIP StrMatch.3
+ rm -f Tcl_StringMatch.3 Tcl_StringMatch.3.*
+ rm -f Tcl_StringCaseMatch.3 Tcl_StringCaseMatch.3.*
+ ln $S StrMatch.3$Z Tcl_StringMatch.3$Z
+ ln $S StrMatch.3$Z Tcl_StringCaseMatch.3$Z
+fi
+if test -r StringObj.3; then
+ rm -f StringObj.3.*
+ $ZIP StringObj.3
+ rm -f Tcl_NewStringObj.3 Tcl_NewStringObj.3.*
+ rm -f Tcl_NewUnicodeObj.3 Tcl_NewUnicodeObj.3.*
+ rm -f Tcl_SetStringObj.3 Tcl_SetStringObj.3.*
+ rm -f Tcl_SetUnicodeObj.3 Tcl_SetUnicodeObj.3.*
+ rm -f Tcl_GetStringFromObj.3 Tcl_GetStringFromObj.3.*
+ rm -f Tcl_GetString.3 Tcl_GetString.3.*
+ rm -f Tcl_GetUnicodeFromObj.3 Tcl_GetUnicodeFromObj.3.*
+ rm -f Tcl_GetUnicode.3 Tcl_GetUnicode.3.*
+ rm -f Tcl_GetUniChar.3 Tcl_GetUniChar.3.*
+ rm -f Tcl_GetCharLength.3 Tcl_GetCharLength.3.*
+ rm -f Tcl_GetRange.3 Tcl_GetRange.3.*
+ rm -f Tcl_AppendToObj.3 Tcl_AppendToObj.3.*
+ rm -f Tcl_AppendUnicodeToObj.3 Tcl_AppendUnicodeToObj.3.*
+ rm -f Tcl_AppendStringsToObj.3 Tcl_AppendStringsToObj.3.*
+ rm -f Tcl_AppendStringsToObjVA.3 Tcl_AppendStringsToObjVA.3.*
+ rm -f Tcl_AppendObjToObj.3 Tcl_AppendObjToObj.3.*
+ rm -f Tcl_SetObjLength.3 Tcl_SetObjLength.3.*
+ rm -f Tcl_ConcatObj.3 Tcl_ConcatObj.3.*
+ rm -f Tcl_AttemptSetObjLength.3 Tcl_AttemptSetObjLength.3.*
+ ln $S StringObj.3$Z Tcl_NewStringObj.3$Z
+ ln $S StringObj.3$Z Tcl_NewUnicodeObj.3$Z
+ ln $S StringObj.3$Z Tcl_SetStringObj.3$Z
+ ln $S StringObj.3$Z Tcl_SetUnicodeObj.3$Z
+ ln $S StringObj.3$Z Tcl_GetStringFromObj.3$Z
+ ln $S StringObj.3$Z Tcl_GetString.3$Z
+ ln $S StringObj.3$Z Tcl_GetUnicodeFromObj.3$Z
+ ln $S StringObj.3$Z Tcl_GetUnicode.3$Z
+ ln $S StringObj.3$Z Tcl_GetUniChar.3$Z
+ ln $S StringObj.3$Z Tcl_GetCharLength.3$Z
+ ln $S StringObj.3$Z Tcl_GetRange.3$Z
+ ln $S StringObj.3$Z Tcl_AppendToObj.3$Z
+ ln $S StringObj.3$Z Tcl_AppendUnicodeToObj.3$Z
+ ln $S StringObj.3$Z Tcl_AppendStringsToObj.3$Z
+ ln $S StringObj.3$Z Tcl_AppendStringsToObjVA.3$Z
+ ln $S StringObj.3$Z Tcl_AppendObjToObj.3$Z
+ ln $S StringObj.3$Z Tcl_SetObjLength.3$Z
+ ln $S StringObj.3$Z Tcl_ConcatObj.3$Z
+ ln $S StringObj.3$Z Tcl_AttemptSetObjLength.3$Z
+fi
+if test -r SubstObj.3; then
+ rm -f SubstObj.3.*
+ $ZIP SubstObj.3
+ rm -f Tcl_SubstObj.3 Tcl_SubstObj.3.*
+ ln $S SubstObj.3$Z Tcl_SubstObj.3$Z
+fi
+if test -r TCL_MEM_DEBUG.3; then
+ rm -f TCL_MEM_DEBUG.3.*
+ $ZIP TCL_MEM_DEBUG.3
+fi
+if test -r Tcl.n; then
+ rm -f Tcl.n.*
+ $ZIP Tcl.n
+fi
+if test -r Tcl_Main.3; then
+ rm -f Tcl_Main.3.*
+ $ZIP Tcl_Main.3
+ rm -f Tcl_SetMainLoop.3 Tcl_SetMainLoop.3.*
+ ln $S Tcl_Main.3$Z Tcl_SetMainLoop.3$Z
+fi
+if test -r Thread.3; then
+ rm -f Thread.3.*
+ $ZIP Thread.3
+ rm -f Tcl_ConditionNotify.3 Tcl_ConditionNotify.3.*
+ rm -f Tcl_ConditionWait.3 Tcl_ConditionWait.3.*
+ rm -f Tcl_ConditionFinalize.3 Tcl_ConditionFinalize.3.*
+ rm -f Tcl_GetThreadData.3 Tcl_GetThreadData.3.*
+ rm -f Tcl_MutexLock.3 Tcl_MutexLock.3.*
+ rm -f Tcl_MutexUnlock.3 Tcl_MutexUnlock.3.*
+ rm -f Tcl_MutexFinalize.3 Tcl_MutexFinalize.3.*
+ rm -f Tcl_CreateThread.3 Tcl_CreateThread.3.*
+ rm -f Tcl_JoinThread.3 Tcl_JoinThread.3.*
+ ln $S Thread.3$Z Tcl_ConditionNotify.3$Z
+ ln $S Thread.3$Z Tcl_ConditionWait.3$Z
+ ln $S Thread.3$Z Tcl_ConditionFinalize.3$Z
+ ln $S Thread.3$Z Tcl_GetThreadData.3$Z
+ ln $S Thread.3$Z Tcl_MutexLock.3$Z
+ ln $S Thread.3$Z Tcl_MutexUnlock.3$Z
+ ln $S Thread.3$Z Tcl_MutexFinalize.3$Z
+ ln $S Thread.3$Z Tcl_CreateThread.3$Z
+ ln $S Thread.3$Z Tcl_JoinThread.3$Z
+fi
+if test -r ToUpper.3; then
+ rm -f ToUpper.3.*
+ $ZIP ToUpper.3
+ rm -f Tcl_UniCharToUpper.3 Tcl_UniCharToUpper.3.*
+ rm -f Tcl_UniCharToLower.3 Tcl_UniCharToLower.3.*
+ rm -f Tcl_UniCharToTitle.3 Tcl_UniCharToTitle.3.*
+ rm -f Tcl_UtfToUpper.3 Tcl_UtfToUpper.3.*
+ rm -f Tcl_UtfToLower.3 Tcl_UtfToLower.3.*
+ rm -f Tcl_UtfToTitle.3 Tcl_UtfToTitle.3.*
+ ln $S ToUpper.3$Z Tcl_UniCharToUpper.3$Z
+ ln $S ToUpper.3$Z Tcl_UniCharToLower.3$Z
+ ln $S ToUpper.3$Z Tcl_UniCharToTitle.3$Z
+ ln $S ToUpper.3$Z Tcl_UtfToUpper.3$Z
+ ln $S ToUpper.3$Z Tcl_UtfToLower.3$Z
+ ln $S ToUpper.3$Z Tcl_UtfToTitle.3$Z
+fi
+if test -r TraceCmd.3; then
+ rm -f TraceCmd.3.*
+ $ZIP TraceCmd.3
+ rm -f Tcl_CommandTraceInfo.3 Tcl_CommandTraceInfo.3.*
+ rm -f Tcl_TraceCommand.3 Tcl_TraceCommand.3.*
+ rm -f Tcl_UntraceCommand.3 Tcl_UntraceCommand.3.*
+ ln $S TraceCmd.3$Z Tcl_CommandTraceInfo.3$Z
+ ln $S TraceCmd.3$Z Tcl_TraceCommand.3$Z
+ ln $S TraceCmd.3$Z Tcl_UntraceCommand.3$Z
+fi
+if test -r TraceVar.3; then
+ rm -f TraceVar.3.*
+ $ZIP TraceVar.3
+ rm -f Tcl_TraceVar.3 Tcl_TraceVar.3.*
+ rm -f Tcl_TraceVar2.3 Tcl_TraceVar2.3.*
+ rm -f Tcl_UntraceVar.3 Tcl_UntraceVar.3.*
+ rm -f Tcl_UntraceVar2.3 Tcl_UntraceVar2.3.*
+ rm -f Tcl_VarTraceInfo.3 Tcl_VarTraceInfo.3.*
+ rm -f Tcl_VarTraceInfo2.3 Tcl_VarTraceInfo2.3.*
+ ln $S TraceVar.3$Z Tcl_TraceVar.3$Z
+ ln $S TraceVar.3$Z Tcl_TraceVar2.3$Z
+ ln $S TraceVar.3$Z Tcl_UntraceVar.3$Z
+ ln $S TraceVar.3$Z Tcl_UntraceVar2.3$Z
+ ln $S TraceVar.3$Z Tcl_VarTraceInfo.3$Z
+ ln $S TraceVar.3$Z Tcl_VarTraceInfo2.3$Z
+fi
+if test -r Translate.3; then
+ rm -f Translate.3.*
+ $ZIP Translate.3
+ rm -f Tcl_TranslateFileName.3 Tcl_TranslateFileName.3.*
+ ln $S Translate.3$Z Tcl_TranslateFileName.3$Z
+fi
+if test -r UniCharIsAlpha.3; then
+ rm -f UniCharIsAlpha.3.*
+ $ZIP UniCharIsAlpha.3
+ rm -f Tcl_UniCharIsAlnum.3 Tcl_UniCharIsAlnum.3.*
+ rm -f Tcl_UniCharIsAlpha.3 Tcl_UniCharIsAlpha.3.*
+ rm -f Tcl_UniCharIsControl.3 Tcl_UniCharIsControl.3.*
+ rm -f Tcl_UniCharIsDigit.3 Tcl_UniCharIsDigit.3.*
+ rm -f Tcl_UniCharIsGraph.3 Tcl_UniCharIsGraph.3.*
+ rm -f Tcl_UniCharIsLower.3 Tcl_UniCharIsLower.3.*
+ rm -f Tcl_UniCharIsPrint.3 Tcl_UniCharIsPrint.3.*
+ rm -f Tcl_UniCharIsPunct.3 Tcl_UniCharIsPunct.3.*
+ rm -f Tcl_UniCharIsSpace.3 Tcl_UniCharIsSpace.3.*
+ rm -f Tcl_UniCharIsUpper.3 Tcl_UniCharIsUpper.3.*
+ rm -f Tcl_UniCharIsWordChar.3 Tcl_UniCharIsWordChar.3.*
+ ln $S UniCharIsAlpha.3$Z Tcl_UniCharIsAlnum.3$Z
+ ln $S UniCharIsAlpha.3$Z Tcl_UniCharIsAlpha.3$Z
+ ln $S UniCharIsAlpha.3$Z Tcl_UniCharIsControl.3$Z
+ ln $S UniCharIsAlpha.3$Z Tcl_UniCharIsDigit.3$Z
+ ln $S UniCharIsAlpha.3$Z Tcl_UniCharIsGraph.3$Z
+ ln $S UniCharIsAlpha.3$Z Tcl_UniCharIsLower.3$Z
+ ln $S UniCharIsAlpha.3$Z Tcl_UniCharIsPrint.3$Z
+ ln $S UniCharIsAlpha.3$Z Tcl_UniCharIsPunct.3$Z
+ ln $S UniCharIsAlpha.3$Z Tcl_UniCharIsSpace.3$Z
+ ln $S UniCharIsAlpha.3$Z Tcl_UniCharIsUpper.3$Z
+ ln $S UniCharIsAlpha.3$Z Tcl_UniCharIsWordChar.3$Z
+fi
+if test -r UpVar.3; then
+ rm -f UpVar.3.*
+ $ZIP UpVar.3
+ rm -f Tcl_UpVar.3 Tcl_UpVar.3.*
+ rm -f Tcl_UpVar2.3 Tcl_UpVar2.3.*
+ ln $S UpVar.3$Z Tcl_UpVar.3$Z
+ ln $S UpVar.3$Z Tcl_UpVar2.3$Z
+fi
+if test -r Utf.3; then
+ rm -f Utf.3.*
+ $ZIP Utf.3
+ rm -f Tcl_UniChar.3 Tcl_UniChar.3.*
+ rm -f Tcl_UniCharCaseMatch.3 Tcl_UniCharCaseMatch.3.*
+ rm -f Tcl_UniCharNcasecmp.3 Tcl_UniCharNcasecmp.3.*
+ rm -f Tcl_UniCharToUtf.3 Tcl_UniCharToUtf.3.*
+ rm -f Tcl_UtfToUniChar.3 Tcl_UtfToUniChar.3.*
+ rm -f Tcl_UniCharToUtfDString.3 Tcl_UniCharToUtfDString.3.*
+ rm -f Tcl_UtfToUniCharDString.3 Tcl_UtfToUniCharDString.3.*
+ rm -f Tcl_UniCharLen.3 Tcl_UniCharLen.3.*
+ rm -f Tcl_UniCharNcmp.3 Tcl_UniCharNcmp.3.*
+ rm -f Tcl_UtfCharComplete.3 Tcl_UtfCharComplete.3.*
+ rm -f Tcl_NumUtfChars.3 Tcl_NumUtfChars.3.*
+ rm -f Tcl_UtfFindFirst.3 Tcl_UtfFindFirst.3.*
+ rm -f Tcl_UtfFindLast.3 Tcl_UtfFindLast.3.*
+ rm -f Tcl_UtfNext.3 Tcl_UtfNext.3.*
+ rm -f Tcl_UtfPrev.3 Tcl_UtfPrev.3.*
+ rm -f Tcl_UniCharAtIndex.3 Tcl_UniCharAtIndex.3.*
+ rm -f Tcl_UtfAtIndex.3 Tcl_UtfAtIndex.3.*
+ rm -f Tcl_UtfBackslash.3 Tcl_UtfBackslash.3.*
+ ln $S Utf.3$Z Tcl_UniChar.3$Z
+ ln $S Utf.3$Z Tcl_UniCharCaseMatch.3$Z
+ ln $S Utf.3$Z Tcl_UniCharNcasecmp.3$Z
+ ln $S Utf.3$Z Tcl_UniCharToUtf.3$Z
+ ln $S Utf.3$Z Tcl_UtfToUniChar.3$Z
+ ln $S Utf.3$Z Tcl_UniCharToUtfDString.3$Z
+ ln $S Utf.3$Z Tcl_UtfToUniCharDString.3$Z
+ ln $S Utf.3$Z Tcl_UniCharLen.3$Z
+ ln $S Utf.3$Z Tcl_UniCharNcmp.3$Z
+ ln $S Utf.3$Z Tcl_UtfCharComplete.3$Z
+ ln $S Utf.3$Z Tcl_NumUtfChars.3$Z
+ ln $S Utf.3$Z Tcl_UtfFindFirst.3$Z
+ ln $S Utf.3$Z Tcl_UtfFindLast.3$Z
+ ln $S Utf.3$Z Tcl_UtfNext.3$Z
+ ln $S Utf.3$Z Tcl_UtfPrev.3$Z
+ ln $S Utf.3$Z Tcl_UniCharAtIndex.3$Z
+ ln $S Utf.3$Z Tcl_UtfAtIndex.3$Z
+ ln $S Utf.3$Z Tcl_UtfBackslash.3$Z
+fi
+if test -r WrongNumArgs.3; then
+ rm -f WrongNumArgs.3.*
+ $ZIP WrongNumArgs.3
+ rm -f Tcl_WrongNumArgs.3 Tcl_WrongNumArgs.3.*
+ ln $S WrongNumArgs.3$Z Tcl_WrongNumArgs.3$Z
+fi
+if test -r after.n; then
+ rm -f after.n.*
+ $ZIP after.n
+fi
+if test -r append.n; then
+ rm -f append.n.*
+ $ZIP append.n
+fi
+if test -r array.n; then
+ rm -f array.n.*
+ $ZIP array.n
+fi
+if test -r bgerror.n; then
+ rm -f bgerror.n.*
+ $ZIP bgerror.n
+fi
+if test -r binary.n; then
+ rm -f binary.n.*
+ $ZIP binary.n
+fi
+if test -r break.n; then
+ rm -f break.n.*
+ $ZIP break.n
+fi
+if test -r case.n; then
+ rm -f case.n.*
+ $ZIP case.n
+fi
+if test -r catch.n; then
+ rm -f catch.n.*
+ $ZIP catch.n
+fi
+if test -r cd.n; then
+ rm -f cd.n.*
+ $ZIP cd.n
+fi
+if test -r close.n; then
+ rm -f close.n.*
+ $ZIP close.n
+fi
+if test -r concat.n; then
+ rm -f concat.n.*
+ $ZIP concat.n
+fi
+if test -r continue.n; then
+ rm -f continue.n.*
+ $ZIP continue.n
+fi
+if test -r dde.n; then
+ rm -f dde.n.*
+ $ZIP dde.n
+fi
+if test -r dict.n; then
+ rm -f dict.n.*
+ $ZIP dict.n
+fi
+if test -r encoding.n; then
+ rm -f encoding.n.*
+ $ZIP encoding.n
+fi
+if test -r eof.n; then
+ rm -f eof.n.*
+ $ZIP eof.n
+fi
+if test -r error.n; then
+ rm -f error.n.*
+ $ZIP error.n
+fi
+if test -r eval.n; then
+ rm -f eval.n.*
+ $ZIP eval.n
+fi
+if test -r exec.n; then
+ rm -f exec.n.*
+ $ZIP exec.n
+fi
+if test -r exit.n; then
+ rm -f exit.n.*
+ $ZIP exit.n
+fi
+if test -r expr.n; then
+ rm -f expr.n.*
+ $ZIP expr.n
+fi
+if test -r fblocked.n; then
+ rm -f fblocked.n.*
+ $ZIP fblocked.n
+fi
+if test -r fconfigure.n; then
+ rm -f fconfigure.n.*
+ $ZIP fconfigure.n
+fi
+if test -r fcopy.n; then
+ rm -f fcopy.n.*
+ $ZIP fcopy.n
+fi
+if test -r file.n; then
+ rm -f file.n.*
+ $ZIP file.n
+fi
+if test -r fileevent.n; then
+ rm -f fileevent.n.*
+ $ZIP fileevent.n
+fi
+if test -r filename.n; then
+ rm -f filename.n.*
+ $ZIP filename.n
+fi
+if test -r flush.n; then
+ rm -f flush.n.*
+ $ZIP flush.n
+fi
+if test -r for.n; then
+ rm -f for.n.*
+ $ZIP for.n
+fi
+if test -r foreach.n; then
+ rm -f foreach.n.*
+ $ZIP foreach.n
+fi
+if test -r format.n; then
+ rm -f format.n.*
+ $ZIP format.n
+fi
+if test -r gets.n; then
+ rm -f gets.n.*
+ $ZIP gets.n
+fi
+if test -r glob.n; then
+ rm -f glob.n.*
+ $ZIP glob.n
+fi
+if test -r global.n; then
+ rm -f global.n.*
+ $ZIP global.n
+fi
+if test -r history.n; then
+ rm -f history.n.*
+ $ZIP history.n
+fi
+if test -r http.n; then
+ rm -f http.n.*
+ $ZIP http.n
+fi
+if test -r if.n; then
+ rm -f if.n.*
+ $ZIP if.n
+fi
+if test -r incr.n; then
+ rm -f incr.n.*
+ $ZIP incr.n
+fi
+if test -r info.n; then
+ rm -f info.n.*
+ $ZIP info.n
+fi
+if test -r interp.n; then
+ rm -f interp.n.*
+ $ZIP interp.n
+fi
+if test -r join.n; then
+ rm -f join.n.*
+ $ZIP join.n
+fi
+if test -r lappend.n; then
+ rm -f lappend.n.*
+ $ZIP lappend.n
+fi
+if test -r lassign.n; then
+ rm -f lassign.n.*
+ $ZIP lassign.n
+fi
+if test -r library.n; then
+ rm -f library.n.*
+ $ZIP library.n
+ rm -f auto_execok.n auto_execok.n.*
+ rm -f auto_import.n auto_import.n.*
+ rm -f auto_load.n auto_load.n.*
+ rm -f auto_mkindex.n auto_mkindex.n.*
+ rm -f auto_mkindex_old.n auto_mkindex_old.n.*
+ rm -f auto_qualify.n auto_qualify.n.*
+ rm -f auto_reset.n auto_reset.n.*
+ rm -f tcl_findLibrary.n tcl_findLibrary.n.*
+ rm -f parray.n parray.n.*
+ rm -f tcl_endOfWord.n tcl_endOfWord.n.*
+ rm -f tcl_startOfNextWord.n tcl_startOfNextWord.n.*
+ rm -f tcl_startOfPreviousWord.n tcl_startOfPreviousWord.n.*
+ rm -f tcl_wordBreakAfter.n tcl_wordBreakAfter.n.*
+ rm -f tcl_wordBreakBefore.n tcl_wordBreakBefore.n.*
+ ln $S library.n$Z auto_execok.n$Z
+ ln $S library.n$Z auto_import.n$Z
+ ln $S library.n$Z auto_load.n$Z
+ ln $S library.n$Z auto_mkindex.n$Z
+ ln $S library.n$Z auto_mkindex_old.n$Z
+ ln $S library.n$Z auto_qualify.n$Z
+ ln $S library.n$Z auto_reset.n$Z
+ ln $S library.n$Z tcl_findLibrary.n$Z
+ ln $S library.n$Z parray.n$Z
+ ln $S library.n$Z tcl_endOfWord.n$Z
+ ln $S library.n$Z tcl_startOfNextWord.n$Z
+ ln $S library.n$Z tcl_startOfPreviousWord.n$Z
+ ln $S library.n$Z tcl_wordBreakAfter.n$Z
+ ln $S library.n$Z tcl_wordBreakBefore.n$Z
+fi
+if test -r lindex.n; then
+ rm -f lindex.n.*
+ $ZIP lindex.n
+fi
+if test -r linsert.n; then
+ rm -f linsert.n.*
+ $ZIP linsert.n
+fi
+if test -r list.n; then
+ rm -f list.n.*
+ $ZIP list.n
+fi
+if test -r llength.n; then
+ rm -f llength.n.*
+ $ZIP llength.n
+fi
+if test -r load.n; then
+ rm -f load.n.*
+ $ZIP load.n
+fi
+if test -r lrange.n; then
+ rm -f lrange.n.*
+ $ZIP lrange.n
+fi
+if test -r lrepeat.n; then
+ rm -f lrepeat.n.*
+ $ZIP lrepeat.n
+fi
+if test -r lreplace.n; then
+ rm -f lreplace.n.*
+ $ZIP lreplace.n
+fi
+if test -r lsearch.n; then
+ rm -f lsearch.n.*
+ $ZIP lsearch.n
+fi
+if test -r lset.n; then
+ rm -f lset.n.*
+ $ZIP lset.n
+fi
+if test -r lsort.n; then
+ rm -f lsort.n.*
+ $ZIP lsort.n
+fi
+if test -r memory.n; then
+ rm -f memory.n.*
+ $ZIP memory.n
+fi
+if test -r msgcat.n; then
+ rm -f msgcat.n.*
+ $ZIP msgcat.n
+fi
+if test -r namespace.n; then
+ rm -f namespace.n.*
+ $ZIP namespace.n
+fi
+if test -r open.n; then
+ rm -f open.n.*
+ $ZIP open.n
+fi
+if test -r package.n; then
+ rm -f package.n.*
+ $ZIP package.n
+fi
+if test -r packagens.n; then
+ rm -f packagens.n.*
+ $ZIP packagens.n
+ rm -f pkg::create.n pkg::create.n.*
+ ln $S packagens.n$Z pkg::create.n$Z
+fi
+if test -r pid.n; then
+ rm -f pid.n.*
+ $ZIP pid.n
+fi
+if test -r pkgMkIndex.n; then
+ rm -f pkgMkIndex.n.*
+ $ZIP pkgMkIndex.n
+ rm -f pkg_mkIndex.n pkg_mkIndex.n.*
+ ln $S pkgMkIndex.n$Z pkg_mkIndex.n$Z
+fi
+if test -r proc.n; then
+ rm -f proc.n.*
+ $ZIP proc.n
+fi
+if test -r puts.n; then
+ rm -f puts.n.*
+ $ZIP puts.n
+fi
+if test -r pwd.n; then
+ rm -f pwd.n.*
+ $ZIP pwd.n
+fi
+if test -r re_syntax.n; then
+ rm -f re_syntax.n.*
+ $ZIP re_syntax.n
+fi
+if test -r read.n; then
+ rm -f read.n.*
+ $ZIP read.n
+fi
+if test -r regexp.n; then
+ rm -f regexp.n.*
+ $ZIP regexp.n
+fi
+if test -r registry.n; then
+ rm -f registry.n.*
+ $ZIP registry.n
+fi
+if test -r regsub.n; then
+ rm -f regsub.n.*
+ $ZIP regsub.n
+fi
+if test -r rename.n; then
+ rm -f rename.n.*
+ $ZIP rename.n
+fi
+if test -r return.n; then
+ rm -f return.n.*
+ $ZIP return.n
+fi
+if test -r safe.n; then
+ rm -f safe.n.*
+ $ZIP safe.n
+ rm -f SafeBase.n SafeBase.n.*
+ ln $S safe.n$Z SafeBase.n$Z
+fi
+if test -r scan.n; then
+ rm -f scan.n.*
+ $ZIP scan.n
+fi
+if test -r seek.n; then
+ rm -f seek.n.*
+ $ZIP seek.n
+fi
+if test -r set.n; then
+ rm -f set.n.*
+ $ZIP set.n
+fi
+if test -r socket.n; then
+ rm -f socket.n.*
+ $ZIP socket.n
+fi
+if test -r source.n; then
+ rm -f source.n.*
+ $ZIP source.n
+fi
+if test -r split.n; then
+ rm -f split.n.*
+ $ZIP split.n
+fi
+if test -r string.n; then
+ rm -f string.n.*
+ $ZIP string.n
+fi
+if test -r subst.n; then
+ rm -f subst.n.*
+ $ZIP subst.n
+fi
+if test -r switch.n; then
+ rm -f switch.n.*
+ $ZIP switch.n
+fi
+if test -r tclsh.1; then
+ rm -f tclsh.1.*
+ $ZIP tclsh.1
+fi
+if test -r tcltest.n; then
+ rm -f tcltest.n.*
+ $ZIP tcltest.n
+fi
+if test -r tclvars.n; then
+ rm -f tclvars.n.*
+ $ZIP tclvars.n
+fi
+if test -r tell.n; then
+ rm -f tell.n.*
+ $ZIP tell.n
+fi
+if test -r time.n; then
+ rm -f time.n.*
+ $ZIP time.n
+fi
+if test -r tm.n; then
+ rm -f tm.n.*
+ $ZIP tm.n
+fi
+if test -r trace.n; then
+ rm -f trace.n.*
+ $ZIP trace.n
+fi
+if test -r unknown.n; then
+ rm -f unknown.n.*
+ $ZIP unknown.n
+fi
+if test -r unload.n; then
+ rm -f unload.n.*
+ $ZIP unload.n
+fi
+if test -r unset.n; then
+ rm -f unset.n.*
+ $ZIP unset.n
+fi
+if test -r update.n; then
+ rm -f update.n.*
+ $ZIP update.n
+fi
+if test -r uplevel.n; then
+ rm -f uplevel.n.*
+ $ZIP uplevel.n
+fi
+if test -r upvar.n; then
+ rm -f upvar.n.*
+ $ZIP upvar.n
+fi
+if test -r variable.n; then
+ rm -f variable.n.*
+ $ZIP variable.n
+fi
+if test -r vwait.n; then
+ rm -f vwait.n.*
+ $ZIP vwait.n
+fi
+if test -r while.n; then
+ rm -f while.n.*
+ $ZIP while.n
+fi
+exit 0
diff --git a/unix/mkLinks.tcl b/unix/mkLinks.tcl
new file mode 100644
index 0000000..85ef575
--- /dev/null
+++ b/unix/mkLinks.tcl
@@ -0,0 +1,119 @@
+#!/bin/sh
+# mkLinks.tcl --
+# This generates the mkLinks script
+# \
+exec tclsh "$0" ${1+"$@"}
+
+puts stdout \
+{#!/bin/sh
+# This script is invoked when installing manual entries. It generates
+# additional links to manual entries, corresponding to the procedure
+# and command names described by the manual entry. For example, the
+# Tcl manual entry Hash.3 describes procedures Tcl_InitHashTable,
+# Tcl_CreateHashEntry, and many more. This script will make hard
+# links so that Tcl_InitHashTable.3, Tcl_CreateHashEntry.3, and so
+# on all refer to Hash.3 in the installed directory.
+#
+# Because of the length of command and procedure names, this mechanism
+# only works on machines that support file names longer than 14 characters.
+# This script checks to see if long file names are supported, and it
+# doesn't make any links if they are not.
+#
+# The script takes one argument, which is the name of the directory
+# where the manual entries have been installed.
+
+ZIP=true
+while true; do
+ case $1 in
+ -s | --symlinks )
+ S=-s
+ ;;
+ -z | --compress )
+ ZIP=$2
+ shift
+ ;;
+ *) break
+ ;;
+ esac
+ shift
+done
+
+if test $# != 1; then
+ echo "Usage: mkLinks <options> dir"
+ exit 1
+fi
+
+if test "x$ZIP" != "xtrue"; then
+ touch TeST
+ $ZIP TeST
+ Z=`ls TeST* | sed 's/^[^.]*//'`
+ rm -f TeST*
+fi
+
+cd $1
+echo foo > xyzzyTestingAVeryLongFileName.foo
+x=`echo xyzzyTe*`
+echo foo > xyzzyTestingaverylongfilename.foo
+y=`echo xyzzyTestingav*`
+rm xyzzyTe*
+if test "$x" != "xyzzyTestingAVeryLongFileName.foo"; then
+ exit
+fi
+if test "$y" != "xyzzyTestingaverylongfilename.foo"; then
+ CASEINSENSITIVEFS=1
+fi
+}
+
+set case_insensitive_test { if test "${CASEINSENSITIVEFS:-}" != "1"; then}
+set case_insensitive_test_fi {; fi}
+
+foreach file $argv {
+ set in [open $file]
+ set tail [file tail $file]
+ set ext [file extension $file]
+ set state begin
+ while {[gets $in line] >= 0} {
+ switch $state {
+ begin {
+ if {[string match ".SH NAME*" $line]} {
+ set state name
+ }
+ }
+ name {
+ regsub {\\-.*} $line {} line
+ set rmOutput ""
+ set lnOutput ""
+ set namelist {}
+ foreach name [split $line ,] {
+ regsub -all {(\\)? } $name "" name
+ if {![string match $name*$ext $tail]} {
+ if {[string match -nocase $name*$ext $tail]} {
+ set tst $case_insensitive_test
+ set tstfi $case_insensitive_test_fi
+ } else {
+ set tst ""
+ set tstfi ""
+ }
+ lappend namelist $name$ext
+ append rmOutput " $tst rm -f $name$ext $name$ext.* $tstfi\n"
+ append lnOutput " $tst ln \$S $tail\$Z $name$ext\$Z $tstfi\n"
+ }
+ }
+ puts "if test -r $tail; then"
+ puts " rm -f $tail.*"
+ puts " \$ZIP $tail"
+ if { [llength $namelist] } {
+ puts -nonewline $rmOutput
+ puts -nonewline $lnOutput
+ }
+ puts "fi"
+ set state end
+ }
+ end {
+ break
+ }
+ }
+ }
+ close $in
+}
+puts "exit 0"
diff --git a/unix/tclLoadAout.c b/unix/tclLoadAout.c
new file mode 100644
index 0000000..d4ef456
--- /dev/null
+++ b/unix/tclLoadAout.c
@@ -0,0 +1,536 @@
+/*
+ * tclLoadAout.c --
+ *
+ * This procedure provides a version of the TclLoadFile that
+ * provides pseudo-static linking using version-7 compatible
+ * a.out files described in either sys/exec.h or sys/a.out.h.
+ *
+ * Copyright (c) 1995, by General Electric Company. All rights reserved.
+ *
+ * See the file "license.terms" for information on usage and redistribution
+ * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+ *
+ * This work was supported in part by the ARPA Manufacturing Automation
+ * and Design Engineering (MADE) Initiative through ARPA contract
+ * F33615-94-C-4400.
+ *
+ * RCS: @(#) $Id: tclLoadAout.c,v 1.14 2002/10/10 12:25:53 vincentdarley Exp $
+ */
+
+#include "tclInt.h"
+#include <fcntl.h>
+#ifdef HAVE_EXEC_AOUT_H
+# include <sys/exec_aout.h>
+#endif
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#else
+# include "../compat/unistd.h"
+#endif
+
+/*
+ * Some systems describe the a.out header in sys/exec.h, and some in
+ * a.out.h.
+ */
+
+#ifdef USE_SYS_EXEC_H
+#include <sys/exec.h>
+#endif
+#ifdef USE_A_OUT_H
+#include <a.out.h>
+#endif
+#ifdef USE_SYS_EXEC_AOUT_H
+#include <sys/exec_aout.h>
+#define a_magic a_midmag
+#endif
+
+/*
+ * TCL_LOADSHIM is the amount by which to shim the break when loading
+ */
+
+#ifndef TCL_LOADSHIM
+#define TCL_LOADSHIM 0x4000L
+#endif
+
+/*
+ * TCL_LOADALIGN must be a power of 2, and is the alignment to which
+ * to force the origin of load modules
+ */
+
+#ifndef TCL_LOADALIGN
+#define TCL_LOADALIGN 0x4000L
+#endif
+
+/*
+ * TCL_LOADMAX is the maximum size of a load module, and is used as
+ * a sanity check when loading
+ */
+
+#ifndef TCL_LOADMAX
+#define TCL_LOADMAX 2000000L
+#endif
+
+/*
+ * Kernel calls that appear to be missing from the system .h files:
+ */
+
+extern char * brk _ANSI_ARGS_((char *));
+extern char * sbrk _ANSI_ARGS_((size_t));
+
+/*
+ * The static variable SymbolTableFile contains the file name where the
+ * result of the last link was stored. The file is kept because doing so
+ * allows one load module to use the symbols defined in another.
+ */
+
+static char * SymbolTableFile = NULL;
+
+/*
+ * Type of the dictionary function that begins each load module.
+ */
+
+typedef Tcl_PackageInitProc * (* DictFn) _ANSI_ARGS_ ((CONST char * symbol));
+
+/*
+ * Prototypes for procedures referenced only in this file:
+ */
+
+static int FindLibraries _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * pathPtr,
+ Tcl_DString * buf));
+static void UnlinkSymbolTable _ANSI_ARGS_((void));
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * TclpDlopen --
+ *
+ * Dynamically loads a binary code file into memory and returns
+ * a handle to the new code.
+ *
+ * Results:
+ * A standard Tcl completion code. If an error occurs, an error
+ * message is left in the interp's result.
+ *
+ * Side effects:
+ * New code suddenly appears in memory.
+ *
+ *
+ * Bugs:
+ * This function does not attempt to handle the case where the
+ * BSS segment is not executable. It will therefore fail on
+ * Encore Multimax, Pyramid 90x, and similar machines. The
+ * reason is that the mprotect() kernel call, which would
+ * otherwise be employed to mark the newly-loaded text segment
+ * executable, results in a system crash on BSD/386.
+ *
+ * In an effort to make it fast, this function eschews the
+ * technique of linking the load module once, reading its header
+ * to determine its size, allocating memory for it, and linking
+ * it again. Instead, it `shims out' memory allocation by
+ * placing the module TCL_LOADSHIM bytes beyond the break,
+ * and assuming that any malloc() calls required to run the
+ * linker will not advance the break beyond that point. If
+ * the break is advanced beyonnd that point, the load will
+ * fail with an `inconsistent memory allocation' error.
+ * It perhaps ought to retry the link, but the failure has
+ * not been observed in two years of daily use of this function.
+ *----------------------------------------------------------------------
+ */
+
+int
+TclpDlopen(interp, pathPtr, loadHandle, unloadProcPtr)
+ Tcl_Interp *interp; /* Used for error reporting. */
+ Tcl_Obj *pathPtr; /* Name of the file containing the desired
+ * code (UTF-8). */
+ Tcl_LoadHandle *loadHandle; /* Filled with token for dynamically loaded
+ * file which will be passed back to
+ * (*unloadProcPtr)() to unload the file. */
+ Tcl_FSUnloadFileProc **unloadProcPtr;
+ /* Filled with address of Tcl_FSUnloadFileProc
+ * function which should be used for
+ * this file. */
+{
+ char * inputSymbolTable; /* Name of the file containing the
+ * symbol table from the last link. */
+ Tcl_DString linkCommandBuf; /* Command to do the run-time relocation
+ * of the module.*/
+ char * linkCommand;
+ char relocatedFileName [L_tmpnam];
+ /* Name of the file holding the relocated */
+ /* text of the module */
+ int relocatedFd; /* File descriptor of the file holding
+ * relocated text */
+ struct exec relocatedHead; /* Header of the relocated text */
+ unsigned long relocatedSize;/* Size of the relocated text */
+ char * startAddress; /* Starting address of the module */
+ int status; /* Status return from Tcl_ calls */
+ char * p;
+
+ /* Find the file that contains the symbols for the run-time link. */
+
+ if (SymbolTableFile != NULL) {
+ inputSymbolTable = SymbolTableFile;
+ } else if (tclExecutableName == NULL) {
+ Tcl_SetResult (interp, "can't find the tclsh executable", TCL_STATIC);
+ return TCL_ERROR;
+ } else {
+ inputSymbolTable = tclExecutableName;
+ }
+
+ /* Construct the `ld' command that builds the relocated module */
+
+ tmpnam (relocatedFileName);
+ Tcl_DStringInit (&linkCommandBuf);
+ Tcl_DStringAppend (&linkCommandBuf, "exec ld -o ", -1);
+ Tcl_DStringAppend (&linkCommandBuf, relocatedFileName, -1);
+#if defined(__mips) || defined(mips)
+ Tcl_DStringAppend (&linkCommandBuf, " -G 0 ", -1);
+#endif
+ Tcl_DStringAppend (&linkCommandBuf, " -u TclLoadDictionary_", -1);
+ TclGuessPackageName(Tcl_GetString(pathPtr), &linkCommandBuf);
+ Tcl_DStringAppend (&linkCommandBuf, " -A ", -1);
+ Tcl_DStringAppend (&linkCommandBuf, inputSymbolTable, -1);
+ Tcl_DStringAppend (&linkCommandBuf, " -N -T XXXXXXXX ", -1);
+ Tcl_DStringAppend (&linkCommandBuf, Tcl_GetString(pathPtr), -1);
+ Tcl_DStringAppend (&linkCommandBuf, " ", -1);
+
+ if (FindLibraries (interp, pathPtr, &linkCommandBuf) != TCL_OK) {
+ Tcl_DStringFree (&linkCommandBuf);
+ return TCL_ERROR;
+ }
+
+ linkCommand = Tcl_DStringValue (&linkCommandBuf);
+
+ /* Determine the starting address, and plug it into the command */
+
+ startAddress = (char *) (((unsigned long) sbrk (0)
+ + TCL_LOADSHIM + TCL_LOADALIGN - 1)
+ & (- TCL_LOADALIGN));
+ p = strstr (linkCommand, "-T") + 3;
+ sprintf (p, "%08lx", (long) startAddress);
+ p [8] = ' ';
+
+ /* Run the linker */
+
+ status = Tcl_Eval (interp, linkCommand);
+ Tcl_DStringFree (&linkCommandBuf);
+ if (status != 0) {
+ return TCL_ERROR;
+ }
+
+ /* Open the linker's result file and read the header */
+
+ relocatedFd = open (relocatedFileName, O_RDONLY);
+ if (relocatedFd < 0) {
+ goto ioError;
+ }
+ status= read (relocatedFd, (char *) & relocatedHead, sizeof relocatedHead);
+ if (status < sizeof relocatedHead) {
+ goto ioError;
+ }
+
+ /* Check the magic number */
+
+ if (relocatedHead.a_magic != OMAGIC) {
+ Tcl_AppendResult (interp, "bad magic number in intermediate file \"",
+ relocatedFileName, "\"", (char *) NULL);
+ goto failure;
+ }
+
+ /* Make sure that memory allocation is still consistent */
+
+ if ((unsigned long) sbrk (0) > (unsigned long) startAddress) {
+ Tcl_SetResult (interp, "can't load, memory allocation is inconsistent.",
+ TCL_STATIC);
+ goto failure;
+ }
+
+ /* Make sure that the relocated module's size is reasonable */
+
+ relocatedSize = relocatedHead.a_text + relocatedHead.a_data
+ + relocatedHead.a_bss;
+ if (relocatedSize > TCL_LOADMAX) {
+ Tcl_SetResult (interp, "module too big to load", TCL_STATIC);
+ goto failure;
+ }
+
+ /* Advance the break to protect the loaded module */
+
+ (void) brk (startAddress + relocatedSize);
+
+ /*
+ * Seek to the start of the module's text.
+ *
+ * Note that this does not really work with large files (i.e. where
+ * lseek64 exists and is different to lseek), but anyone trying to
+ * dynamically load a binary that is larger than what can fit in
+ * addressable memory is in trouble anyway...
+ */
+
+#if defined(__mips) || defined(mips)
+ status = lseek (relocatedFd,
+ (off_t) N_TXTOFF (relocatedHead.ex_f, relocatedHead.ex_o),
+ SEEK_SET);
+#else
+ status = lseek (relocatedFd, (off_t) N_TXTOFF (relocatedHead), SEEK_SET);
+#endif
+ if (status < 0) {
+ goto ioError;
+ }
+
+ /* Read in the module's text and data */
+
+ relocatedSize = relocatedHead.a_text + relocatedHead.a_data;
+ if (read (relocatedFd, startAddress, relocatedSize) < relocatedSize) {
+ brk (startAddress);
+ ioError:
+ Tcl_AppendResult (interp, "error on intermediate file \"",
+ relocatedFileName, "\": ", Tcl_PosixError (interp),
+ (char *) NULL);
+ failure:
+ (void) unlink (relocatedFileName);
+ return TCL_ERROR;
+ }
+
+ /* Close the intermediate file. */
+
+ (void) close (relocatedFd);
+
+ /* Arrange things so that intermediate symbol tables eventually get
+ * deleted. */
+
+ if (SymbolTableFile != NULL) {
+ UnlinkSymbolTable ();
+ } else {
+ atexit (UnlinkSymbolTable);
+ }
+ SymbolTableFile = ckalloc (strlen (relocatedFileName) + 1);
+ strcpy (SymbolTableFile, relocatedFileName);
+
+ *loadHandle = startAddress;
+ return TCL_OK;
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * TclpFindSymbol --
+ *
+ * Looks up a symbol, by name, through a handle associated with
+ * a previously loaded piece of code (shared library).
+ *
+ * Results:
+ * Returns a pointer to the function associated with 'symbol' if
+ * it is found. Otherwise returns NULL and may leave an error
+ * message in the interp's result.
+ *
+ *----------------------------------------------------------------------
+ */
+Tcl_PackageInitProc*
+TclpFindSymbol(interp, loadHandle, symbol)
+ Tcl_Interp *interp;
+ Tcl_LoadHandle loadHandle;
+ CONST char *symbol;
+{
+ /* Look up the entry point in the load module's dictionary. */
+ DictFn dictionary = (DictFn) loadHandle;
+ return (Tcl_PackageInitProc*) dictionary(sym1);
+}
+
+
+/*
+ *------------------------------------------------------------------------
+ *
+ * FindLibraries --
+ *
+ * Find the libraries needed to link a load module at run time.
+ *
+ * Results:
+ * A standard Tcl completion code. If an error occurs,
+ * an error message is left in the interp's result. The -l and -L
+ * flags are concatenated onto the dynamic string `buf'.
+ *
+ *------------------------------------------------------------------------
+ */
+
+static int
+FindLibraries (interp, pathPtr, buf)
+ Tcl_Interp * interp; /* Used for error reporting */
+ Tcl_Obj * pathPtr; /* Name of the load module */
+ Tcl_DString * buf; /* Buffer where the -l an -L flags */
+{
+ FILE * f; /* The load module */
+ int c = 0; /* Byte from the load module */
+ char * p;
+ CONST char *native;
+
+ char *fileName = Tcl_GetString(pathPtr);
+
+ /* Open the load module */
+
+ native = Tcl_FSGetNativePath(pathPtr);
+ f = fopen(native, "rb"); /* INTL: Native. */
+
+ if (f == NULL) {
+ Tcl_AppendResult (interp, "couldn't open \"", fileName, "\": ",
+ Tcl_PosixError (interp), (char *) NULL);
+ return TCL_ERROR;
+ }
+
+ /* Search for the library list in the load module */
+
+ p = "@LIBS: ";
+ while (*p != '\0' && (c = getc (f)) != EOF) {
+ if (c == *p) {
+ ++p;
+ }
+ else {
+ p = "@LIBS: ";
+ if (c == *p) {
+ ++p;
+ }
+ }
+ }
+
+ /* No library list -- this must be an ill-formed module */
+
+ if (c == EOF) {
+ Tcl_AppendResult (interp, "File \"", fileName,
+ "\" is not a Tcl load module.", (char *) NULL);
+ (void) fclose (f);
+ return TCL_ERROR;
+ }
+
+ /* Accumulate the library list */
+
+ while ((c = getc (f)) != '\0' && c != EOF) {
+ char cc = c;
+ Tcl_DStringAppend (buf, &cc, 1);
+ }
+ (void) fclose (f);
+
+ if (c == EOF) {
+ Tcl_AppendResult (interp, "Library directory in \"", fileName,
+ "\" ends prematurely.", (char *) NULL);
+ return TCL_ERROR;
+ }
+
+ return TCL_OK;
+}
+
+/*
+ *------------------------------------------------------------------------
+ *
+ * UnlinkSymbolTable --
+ *
+ * Remove the symbol table file from the last dynamic link.
+ *
+ * Results:
+ * None.
+ *
+ * Side effects:
+ * The symbol table file from the last dynamic link is removed.
+ * This function is called when (a) a new symbol table is present
+ * because another dynamic link is complete, or (b) the process
+ * is exiting.
+ *------------------------------------------------------------------------
+ */
+
+static void
+UnlinkSymbolTable ()
+{
+ (void) unlink (SymbolTableFile);
+ ckfree (SymbolTableFile);
+ SymbolTableFile = NULL;
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * TclpUnloadFile --
+ *
+ * Unloads a dynamically loaded binary code file from memory.
+ * Code pointers in the formerly loaded file are no longer valid
+ * after calling this function.
+ *
+ * Results:
+ * None.
+ *
+ * Side effects:
+ * Does nothing. Can anything be done?
+ *
+ *----------------------------------------------------------------------
+ */
+
+void
+TclpUnloadFile(loadHandle)
+ Tcl_LoadHandle loadHandle; /* loadHandle returned by a previous call
+ * to TclpDlopen(). The loadHandle is
+ * a token that represents the loaded
+ * file. */
+{
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * TclGuessPackageName --
+ *
+ * If the "load" command is invoked without providing a package
+ * name, this procedure is invoked to try to figure it out.
+ *
+ * Results:
+ * Always returns 0 to indicate that we couldn't figure out a
+ * package name; generic code will then try to guess the package
+ * from the file name. A return value of 1 would have meant that
+ * we figured out the package name and put it in bufPtr.
+ *
+ * Side effects:
+ * None.
+ *
+ *----------------------------------------------------------------------
+ */
+
+int
+TclGuessPackageName(fileName, bufPtr)
+ CONST char *fileName; /* Name of file containing package (already
+ * translated to local form if needed). */
+ Tcl_DString *bufPtr; /* Initialized empty dstring. Append
+ * package name to this if possible. */
+{
+ CONST char *p, *q;
+ char *r;
+
+ if ((q = strrchr(fileName,'/'))) {
+ q++;
+ } else {
+ q = fileName;
+ }
+ if (!strncmp(q,"lib",3)) {
+ q+=3;
+ }
+ p = q;
+ while ((*p) && (*p != '.') && ((*p<'0') || (*p>'9'))) {
+ p++;
+ }
+ if ((p>q+2) && !strncmp(p-2,"_G0.",4)) {
+ p-=2;
+ }
+ if (p<q) {
+ return 0;
+ }
+
+ Tcl_DStringAppend(bufPtr,q, p-q);
+
+ r = Tcl_DStringValue(bufPtr);
+ r += strlen(r) - (p-q);
+
+ /*
+ * Capitalize the string and then recompute the length.
+ */
+
+ Tcl_UtfToTitle(r);
+ Tcl_DStringSetLength(bufPtr, strlen(Tcl_DStringValue(bufPtr)));
+
+ return 1;
+}
diff --git a/unix/tclLoadDld.c b/unix/tclLoadDld.c
new file mode 100644
index 0000000..fe2f8fc
--- /dev/null
+++ b/unix/tclLoadDld.c
@@ -0,0 +1,209 @@
+/*
+ * tclLoadDld.c --
+ *
+ * This procedure provides a version of the TclLoadFile that works with
+ * the "dld_link" and "dld_get_func" library procedures for dynamic
+ * loading. It has been tested on Linux 1.1.95 and dld-3.2.7. This file
+ * probably isn't needed anymore, since it makes more sense to use
+ * "dl_open" etc.
+ *
+ * Copyright (c) 1995-1997 Sun Microsystems, Inc.
+ *
+ * See the file "license.terms" for information on usage and redistribution of
+ * this file, and for a DISCLAIMER OF ALL WARRANTIES.
+ *
+ * RCS: @(#) $Id: tclLoadDld.c,v 1.13 2005/07/19 13:37:18 dkf Exp $
+ */
+
+#include "tclInt.h"
+#include "dld.h"
+
+/*
+ * In some systems, like SunOS 4.1.3, the RTLD_NOW flag isn't defined and this
+ * argument to dlopen must always be 1.
+ */
+
+#ifndef RTLD_NOW
+# define RTLD_NOW 1
+#endif
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * TclpDlopen --
+ *
+ * Dynamically loads a binary code file into memory and returns a handle
+ * to the new code.
+ *
+ * Results:
+ * A standard Tcl completion code. If an error occurs, an error message
+ * is left in the interp's result.
+ *
+ * Side effects:
+ * New code suddenly appears in memory.
+ *
+ *----------------------------------------------------------------------
+ */
+
+int
+TclpDlopen(interp, pathPtr, loadHandle, unloadProcPtr)
+ Tcl_Interp *interp; /* Used for error reporting. */
+ Tcl_Obj *pathPtr; /* Name of the file containing the desired
+ * code (UTF-8). */
+ Tcl_LoadHandle *loadHandle; /* Filled with token for dynamically loaded
+ * file which will be passed back to
+ * (*unloadProcPtr)() to unload the file. */
+ Tcl_FSUnloadFileProc **unloadProcPtr;
+ /* Filled with address of Tcl_FSUnloadFileProc
+ * function which should be used for this
+ * file. */
+{
+ static int firstTime = 1;
+ int returnCode;
+ char *fileName;
+ CONST char *native;
+
+ /*
+ * The dld package needs to know the pathname to the tcl binary. If
+ * that's not known, return an error.
+ */
+
+ if (firstTime) {
+ if (tclExecutableName == NULL) {
+ Tcl_SetResult(interp,
+ "don't know name of application binary file, so can't initialize dynamic loader",
+ TCL_STATIC);
+ return TCL_ERROR;
+ }
+ returnCode = dld_init(tclExecutableName);
+ if (returnCode != 0) {
+ Tcl_AppendResult(interp,
+ "initialization failed for dynamic loader: ",
+ dld_strerror(returnCode), (char *) NULL);
+ return TCL_ERROR;
+ }
+ firstTime = 0;
+ }
+
+ fileName = Tcl_GetString(pathPtr);
+
+ /*
+ * First try the full path the user gave us. This is particularly
+ * important if the cwd is inside a vfs, and we are trying to load using a
+ * relative path.
+ */
+
+ native = Tcl_FSGetNativePath(pathPtr);
+ returnCode = dld_link(native);
+
+ if (returnCode != 0) {
+ Tcl_DString ds;
+ native = Tcl_UtfToExternalDString(NULL, fileName, -1, &ds);
+ returnCode = dld_link(native);
+ Tcl_DStringFree(&ds);
+ }
+
+ if (returnCode != 0) {
+ Tcl_AppendResult(interp, "couldn't load file \"", fileName, "\": ",
+ dld_strerror(returnCode), (char *) NULL);
+ return TCL_ERROR;
+ }
+ *loadHandle = (Tcl_LoadHandle) strcpy(
+ (char *) ckalloc((unsigned) (strlen(fileName) + 1)), fileName);
+ *unloadProcPtr = &TclpUnloadFile;
+ return TCL_OK;
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * TclpFindSymbol --
+ *
+ * Looks up a symbol, by name, through a handle associated with a
+ * previously loaded piece of code (shared library).
+ *
+ * Results:
+ * Returns a pointer to the function associated with 'symbol' if it is
+ * found. Otherwise returns NULL and may leave an error message in the
+ * interp's result.
+ *
+ *----------------------------------------------------------------------
+ */
+
+Tcl_PackageInitProc*
+TclpFindSymbol(interp, loadHandle, symbol)
+ Tcl_Interp *interp;
+ Tcl_LoadHandle loadHandle;
+ CONST char *symbol;
+{
+ return (Tcl_PackageInitProc *) dld_get_func(symbol);
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * TclpUnloadFile --
+ *
+ * Unloads a dynamically loaded binary code file from memory. Code
+ * pointers in the formerly loaded file are no longer valid after calling
+ * this function.
+ *
+ * Results:
+ * None.
+ *
+ * Side effects:
+ * Code removed from memory.
+ *
+ *----------------------------------------------------------------------
+ */
+
+void
+TclpUnloadFile(loadHandle)
+ Tcl_LoadHandle loadHandle; /* loadHandle returned by a previous call to
+ * TclpDlopen(). The loadHandle is a token
+ * that represents the loaded file. */
+{
+ char *fileName;
+
+ handle = (char *) loadHandle;
+ dld_unlink_by_file(handle, 0);
+ ckfree(handle);
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * TclGuessPackageName --
+ *
+ * If the "load" command is invoked without providing a package name,
+ * this procedure is invoked to try to figure it out.
+ *
+ * Results:
+ * Always returns 0 to indicate that we couldn't figure out a package
+ * name; generic code will then try to guess the package from the file
+ * name. A return value of 1 would have meant that we figured out the
+ * package name and put it in bufPtr.
+ *
+ * Side effects:
+ * None.
+ *
+ *----------------------------------------------------------------------
+ */
+
+int
+TclGuessPackageName(fileName, bufPtr)
+ CONST char *fileName; /* Name of file containing package (already
+ * translated to local form if needed). */
+ Tcl_DString *bufPtr; /* Initialized empty dstring. Append package
+ * name to this if possible. */
+{
+ return 0;
+}
+
+/*
+ * Local Variables:
+ * mode: c
+ * c-basic-offset: 4
+ * fill-column: 78
+ * End:
+ */