📄 mklinks
字号:
#!/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=truewhile true; do case $1 in -s | --symlinks ) S=-s ;; -z | --compress ) ZIP=$2 shift ;; *) break ;; esac shiftdoneif test $# != 1; then echo "Usage: mkLinks <options> dir" exit 1fiif test "x$ZIP" != "xtrue"; then touch TeST $ZIP TeST Z=`ls TeST* | sed 's/^[^.]*//'` rm -f TeST*ficd $1echo foo > xyzzyTestingAVeryLongFileName.foox=`echo xyzzyTe*`echo foo > xyzzyTestingaverylongfilename.fooy=`echo xyzzyTestingav*`rm xyzzyTe*if test "$x" != "xyzzyTestingAVeryLongFileName.foo"; then exitfiif test "$y" != "xyzzyTestingaverylongfilename.foo"; then CASEINSENSITIVEFS=1fiif 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 fiif 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 fiif 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 fiif 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 fiif 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 fiif 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 fiif 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 fiif 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 fiif 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 fiif 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 fiif 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 fiif 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 fiif 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 fiif 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 fiif 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 fiif 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 fiif 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 fiif 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 fiif 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 fiif 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 fiif 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 fiif 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 fiif 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 fiif 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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -