1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-11-23 00:43:28 +00:00

Chineselized Tk ver. 8.3.0. This version is i18n improvement.

This changes the behavior of Tk on X where X Input Methods (XIM) were
recognized and used without question.
With 8.3, they will be recognized and initialized, but not used unless
XIM is turned on (tk useinputmethods 1).  This should only affect users
users with special input methods, and the new default behavior should
be more beneficial to the average user.

Please repo copy, thanks.
This commit is contained in:
Kevin Lo 2001-02-22 04:09:59 +00:00
parent 38a6e47643
commit 2c54b710d9
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=38580
23 changed files with 3351 additions and 0 deletions

View File

@ -59,6 +59,7 @@
SUBDIR += telnet
SUBDIR += tin
SUBDIR += tintin++
SUBDIR += tk83
SUBDIR += tocps
SUBDIR += ttfm
SUBDIR += ve

316
chinese/tk83/Makefile Normal file
View File

@ -0,0 +1,316 @@
# New ports collection makefile for: tk
# Date created: 22 February 2001
# Whom: Kevin Lo <kevlo@FreeBSD.org>
#
# $FreeBSD$
#
PORTNAME= tk
PORTVERSION= 8.3.0
CATEGORIES= chinese x11-toolkits tk83
MASTER_SITES= ${MASTER_SITE_TCLTK}
MASTER_SITE_SUBDIR= tcl8_3
DISTNAME= ${PORTNAME}${PORTVERSION}
MAINTAINER= kevlo@FreeBSD.org
LIB_DEPENDS= tcl83.1:${PORTSDIR}/chinese/tcl83
USE_XLIB= yes
WRKSRC= ${WRKDIR}/${DISTNAME}/unix
GNU_CONFIGURE= yes
CONFIGURE_ENV= PORTSDIR=${PORTSDIR} TK_LIB_FILE=libtk83.so.1
CONFIGURE_ARGS= --enable-shared --with-tcl=${PREFIX}/lib/tcl8.3 \
--enable-i18nImprove
INSTALLS_SHLIB= yes
MAKE_ENV= SHORT_TK_VER=83
PKGINSTALL= ${PKGDIR}/INSTALL.wish
PLIST_SUB= TK_VER=8.3 SHORT_TK_VER=83
MANCOMPRESSED= no
MAN1= wish.1
MAN3= 3DBorder.3 BindTable.3 CanvPsY.3 CanvTkwin.3 CanvTxtInfo.3 \
Clipboard.3 ClrSelect.3 ConfigWidg.3 ConfigWind.3 CoordToWin.3 \
CrtErrHdlr.3 CrtGenHdlr.3 CrtImgType.3 CrtItemType.3 CrtPhImgFmt.3 \
CrtSelHdlr.3 CrtWindow.3 DeleteImg.3 DrawFocHlt.3 EventHndlr.3 \
FindPhoto.3 FontId.3 FreeXId.3 GeomReq.3 GetAnchor.3 GetBitmap.3 \
GetCapStyl.3 GetClrmap.3 GetColor.3 GetCursor.3 GetDash.3 GetFont.3 \
GetGC.3 GetImage.3 GetJoinStl.3 GetJustify.3 GetOption.3 GetPixels.3 \
GetPixmap.3 GetRelief.3 GetRootCrd.3 GetScroll.3 GetSelect.3 GetUid.3 \
GetVRoot.3 GetVisual.3 HandleEvent.3 IdToWindow.3 ImgChanged.3 \
InternAtom.3 MainLoop.3 MainWin.3 MaintGeom.3 ManageGeom.3 \
MapWindow.3 MeasureChar.3 MoveToplev.3 Name.3 NameOfImg.3 OwnSelect.3 \
ParseArgv.3 QWinEvent.3 Restack.3 RestrictEv.3 SetAppName.3 \
SetClass.3 SetGrid.3 SetOptions.3 SetVisual.3 StrictMotif.3 \
TextLayout.3 Tk_Init.3 Tk_Main.3 TkInitStubs.3 WindowId.3
MANN= bell.n bind.n bindtags.n bitmap.n button.n canvas.n checkbutton.n \
chooseColor.n chooseDirectory.n clipboard.n destroy.n dialog.n entry.n\
event.n focus.n focusNext.n font.n frame.n getOpenFile.n grab.n grid.n\
image.n label.n listbox.n loadTk.n lower.n menu.n menubar.n \
menubutton.n message.n messageBox.n option.n optionMenu.n options.n \
pack-old.n pack.n palette.n photo.n place.n popup.n radiobutton.n \
raise.n scale.n scrollbar.n selection.n send.n text.n tk.n tkerror.n \
tkvars.n tkwait.n toplevel.n winfo.n wm.n
# MLINKS generated via awk '/ln/ {print "\t" $2,$3,"\\"}' unix/mkLinks
MLINKS= 3DBorder.3 Tk_Alloc3DBorderFromObj.3 \
3DBorder.3 Tk_Get3DBorder.3 \
3DBorder.3 Tk_Get3DBorderFromObj.3 \
3DBorder.3 Tk_Draw3DRectangle.3 \
3DBorder.3 Tk_Fill3DRectangle.3 \
3DBorder.3 Tk_Draw3DPolygon.3 \
3DBorder.3 Tk_Fill3DPolygon.3 \
3DBorder.3 Tk_3DVerticalBevel.3 \
3DBorder.3 Tk_3DHorizontalBevel.3 \
3DBorder.3 Tk_SetBackgroundFromBorder.3 \
3DBorder.3 Tk_NameOf3DBorder.3 \
3DBorder.3 Tk_3DBorderColor.3 \
3DBorder.3 Tk_3DBorderGC.3 \
3DBorder.3 Tk_Free3DBorderFromObj.3 \
3DBorder.3 Tk_Free3DBorder.3 \
BindTable.3 Tk_CreateBindingTable.3 \
BindTable.3 Tk_DeleteBindingTable.3 \
BindTable.3 Tk_CreateBinding.3 \
BindTable.3 Tk_DeleteBinding.3 \
BindTable.3 Tk_GetBinding.3 \
BindTable.3 Tk_GetAllBindings.3 \
BindTable.3 Tk_DeleteAllBindings.3 \
BindTable.3 Tk_BindEvent.3 \
CanvPsY.3 Tk_CanvasPsY.3 \
CanvPsY.3 Tk_CanvasPsBitmap.3 \
CanvPsY.3 Tk_CanvasPsColor.3 \
CanvPsY.3 Tk_CanvasPsFont.3 \
CanvPsY.3 Tk_CanvasPsPath.3 \
CanvPsY.3 Tk_CanvasPsStipple.3 \
CanvTkwin.3 Tk_CanvasTkwin.3 \
CanvTkwin.3 Tk_CanvasGetCoord.3 \
CanvTkwin.3 Tk_CanvasDrawableCoords.3 \
CanvTkwin.3 Tk_CanvasSetStippleOrigin.3 \
CanvTkwin.3 Tk_CanvasWindowCoords.3 \
CanvTkwin.3 Tk_CanvasEventuallyRedraw.3 \
CanvTkwin.3 Tk_CanvasTagsOption.3 \
CanvTxtInfo.3 Tk_CanvasTextInfo.3 \
Clipboard.3 Tk_ClipboardClear.3 \
Clipboard.3 Tk_ClipboardAppend.3 \
ClrSelect.3 Tk_ClearSelection.3 \
ConfigWidg.3 Tk_ConfigureWidget.3 \
ConfigWidg.3 Tk_Offset.3 \
ConfigWidg.3 Tk_ConfigureInfo.3 \
ConfigWidg.3 Tk_ConfigureValue.3 \
ConfigWidg.3 Tk_FreeOptions.3 \
ConfigWind.3 Tk_ConfigureWindow.3 \
ConfigWind.3 Tk_MoveWindow.3 \
ConfigWind.3 Tk_ResizeWindow.3 \
ConfigWind.3 Tk_MoveResizeWindow.3 \
ConfigWind.3 Tk_SetWindowBorderWidth.3 \
ConfigWind.3 Tk_ChangeWindowAttributes.3 \
ConfigWind.3 Tk_SetWindowBackground.3 \
ConfigWind.3 Tk_SetWindowBackgroundPixmap.3 \
ConfigWind.3 Tk_SetWindowBorder.3 \
ConfigWind.3 Tk_SetWindowBorderPixmap.3 \
ConfigWind.3 Tk_SetWindowColormap.3 \
ConfigWind.3 Tk_DefineCursor.3 \
ConfigWind.3 Tk_UndefineCursor.3 \
CoordToWin.3 Tk_CoordsToWindow.3 \
CrtErrHdlr.3 Tk_CreateErrorHandler.3 \
CrtErrHdlr.3 Tk_DeleteErrorHandler.3 \
CrtGenHdlr.3 Tk_CreateGenericHandler.3 \
CrtGenHdlr.3 Tk_DeleteGenericHandler.3 \
CrtImgType.3 Tk_CreateImageType.3 \
CrtImgType.3 Tk_GetImageMasterData.3 \
CrtImgType.3 Tk_InitImageArgs.3 \
CrtItemType.3 Tk_CreateItemType.3 \
CrtItemType.3 Tk_GetItemTypes.3 \
CrtPhImgFmt.3 Tk_CreatePhotoImageFormat.3 \
CrtSelHdlr.3 Tk_CreateSelHandler.3 \
CrtSelHdlr.3 Tk_DeleteSelHandler.3 \
CrtWindow.3 Tk_CreateWindow.3 \
CrtWindow.3 Tk_CreateWindowFromPath.3 \
CrtWindow.3 Tk_DestroyWindow.3 \
CrtWindow.3 Tk_MakeWindowExist.3 \
DeleteImg.3 Tk_DeleteImage.3 \
DrawFocHlt.3 Tk_DrawFocusHighlight.3 \
EventHndlr.3 Tk_CreateEventHandler.3 \
EventHndlr.3 Tk_DeleteEventHandler.3 \
FindPhoto.3 Tk_FindPhoto.3 \
FindPhoto.3 Tk_PhotoPutBlock.3 \
FindPhoto.3 Tk_PhotoPutZoomedBlock.3 \
FindPhoto.3 Tk_PhotoGetImage.3 \
FindPhoto.3 Tk_PhotoBlank.3 \
FindPhoto.3 Tk_PhotoExpand.3 \
FindPhoto.3 Tk_PhotoGetSize.3 \
FindPhoto.3 Tk_PhotoSetSize.3 \
FontId.3 Tk_FontId.3 \
FontId.3 Tk_FontMetrics.3 \
FontId.3 Tk_PostscriptFontName.3 \
FreeXId.3 Tk_FreeXId.3 \
GeomReq.3 Tk_GeometryRequest.3 \
GeomReq.3 Tk_SetInternalBorder.3 \
GetAnchor.3 Tk_GetAnchorFromObj.3 \
GetAnchor.3 Tk_GetAnchor.3 \
GetAnchor.3 Tk_NameOfAnchor.3 \
GetBitmap.3 Tk_AllocBitmapFromObj.3 \
GetBitmap.3 Tk_GetBitmap.3 \
GetBitmap.3 Tk_GetBitmapFromObj.3 \
GetBitmap.3 Tk_DefineBitmap.3 \
GetBitmap.3 Tk_NameOfBitmap.3 \
GetBitmap.3 Tk_SizeOfBitmap.3 \
GetBitmap.3 Tk_FreeBitmapFromObj.3 \
GetBitmap.3 Tk_FreeBitmap.3 \
GetBitmap.3 Tk_GetBitmapFromData.3 \
GetCapStyl.3 Tk_GetCapStyle.3 \
GetCapStyl.3 Tk_NameOfCapStyle.3 \
GetClrmap.3 Tk_GetColormap.3 \
GetClrmap.3 Tk_FreeColormap.3 \
GetColor.3 Tk_AllocColorFromObj.3 \
GetColor.3 Tk_GetColor.3 \
GetColor.3 Tk_GetColorFromObj.3 \
GetColor.3 Tk_GetColorByValue.3 \
GetColor.3 Tk_NameOfColor.3 \
GetColor.3 Tk_FreeColorFromObj.3 \
GetColor.3 Tk_FreeColor.3 \
GetCursor.3 Tk_AllocCursorFromObj.3 \
GetCursor.3 Tk_GetCursor.3 \
GetCursor.3 Tk_GetCursorFromObj.3 \
GetCursor.3 Tk_GetCursorFromData.3 \
GetCursor.3 Tk_NameOfCursor.3 \
GetCursor.3 Tk_FreeCursorFromObj.3 \
GetCursor.3 Tk_FreeCursor.3 \
GetDash.3 Tk_GetDash.3 \
GetFont.3 Tk_AllocFontFromObj.3 \
GetFont.3 Tk_GetFont.3 \
GetFont.3 Tk_GetFontFromObj.3 \
GetFont.3 Tk_NameOfFont.3 \
GetFont.3 Tk_FreeFontFromObj.3 \
GetFont.3 Tk_FreeFont.3 \
GetGC.3 Tk_GetGC.3 \
GetGC.3 Tk_FreeGC.3 \
GetImage.3 Tk_GetImage.3 \
GetImage.3 Tk_RedrawImage.3 \
GetImage.3 Tk_SizeOfImage.3 \
GetImage.3 Tk_FreeImage.3 \
GetJoinStl.3 Tk_GetJoinStyle.3 \
GetJoinStl.3 Tk_NameOfJoinStyle.3 \
GetJustify.3 Tk_GetJustifyFromObj.3 \
GetJustify.3 Tk_GetJustify.3 \
GetJustify.3 Tk_NameOfJustify.3 \
GetOption.3 Tk_GetOption.3 \
GetPixels.3 Tk_GetPixelsFromObj.3 \
GetPixels.3 Tk_GetPixels.3 \
GetPixels.3 Tk_GetMMFromObj.3 \
GetPixels.3 Tk_GetScreenMM.3 \
GetPixmap.3 Tk_GetPixmap.3 \
GetPixmap.3 Tk_FreePixmap.3 \
GetRelief.3 Tk_GetReliefFromObj.3 \
GetRelief.3 Tk_GetRelief.3 \
GetRelief.3 Tk_NameOfRelief.3 \
GetRootCrd.3 Tk_GetRootCoords.3 \
GetScroll.3 Tk_GetScrollInfo.3 \
GetSelect.3 Tk_GetSelection.3 \
GetUid.3 Tk_GetUid.3 \
GetUid.3 Tk_Uid.3 \
GetVRoot.3 Tk_GetVRootGeometry.3 \
GetVisual.3 Tk_GetVisual.3 \
HandleEvent.3 Tk_HandleEvent.3 \
IdToWindow.3 Tk_IdToWindow.3 \
ImgChanged.3 Tk_ImageChanged.3 \
InternAtom.3 Tk_InternAtom.3 \
InternAtom.3 Tk_GetAtomName.3 \
MainLoop.3 Tk_MainLoop.3 \
MainWin.3 Tk_MainWindow.3 \
MaintGeom.3 Tk_MaintainGeometry.3 \
MaintGeom.3 Tk_UnmaintainGeometry.3 \
ManageGeom.3 Tk_ManageGeometry.3 \
MapWindow.3 Tk_MapWindow.3 \
MapWindow.3 Tk_UnmapWindow.3 \
MeasureChar.3 Tk_MeasureChars.3 \
MeasureChar.3 Tk_TextWidth.3 \
MeasureChar.3 Tk_DrawChars.3 \
MeasureChar.3 Tk_UnderlineChars.3 \
MoveToplev.3 Tk_MoveToplevelWindow.3 \
Name.3 Tk_Name.3 \
Name.3 Tk_PathName.3 \
Name.3 Tk_NameToWindow.3 \
NameOfImg.3 Tk_NameOfImage.3 \
OwnSelect.3 Tk_OwnSelection.3 \
ParseArgv.3 Tk_ParseArgv.3 \
QWinEvent.3 Tk_QueueWindowEvent.3 \
Restack.3 Tk_RestackWindow.3 \
RestrictEv.3 Tk_RestrictEvents.3 \
SetAppName.3 Tk_SetAppName.3 \
SetClass.3 Tk_SetClass.3 \
SetClass.3 Tk_Class.3 \
SetGrid.3 Tk_SetGrid.3 \
SetGrid.3 Tk_UnsetGrid.3 \
SetOptions.3 Tk_CreateOptionTable.3 \
SetOptions.3 Tk_DeleteOptionTable.3 \
SetOptions.3 Tk_InitOptions.3 \
SetOptions.3 Tk_SetOptions.3 \
SetOptions.3 Tk_FreeSavedOptions.3 \
SetOptions.3 Tk_RestoreSavedOptions.3 \
SetOptions.3 Tk_GetOptionValue.3 \
SetOptions.3 Tk_GetOptionInfo.3 \
SetOptions.3 Tk_FreeConfigOptions.3 \
SetVisual.3 Tk_SetWindowVisual.3 \
StrictMotif.3 Tk_StrictMotif.3 \
TextLayout.3 Tk_ComputeTextLayout.3 \
TextLayout.3 Tk_FreeTextLayout.3 \
TextLayout.3 Tk_DrawTextLayout.3 \
TextLayout.3 Tk_UnderlineTextLayout.3 \
TextLayout.3 Tk_PointToChar.3 \
TextLayout.3 Tk_CharBbox.3 \
TextLayout.3 Tk_DistanceToTextLayout.3 \
TextLayout.3 Tk_IntersectTextLayout.3 \
TextLayout.3 Tk_TextLayoutToPostscript.3 \
TkInitStubs.3 Tk_InitStubs.3 \
WindowId.3 Tk_WindowId.3 \
WindowId.3 Tk_Parent.3 \
WindowId.3 Tk_Display.3 \
WindowId.3 Tk_DisplayName.3 \
WindowId.3 Tk_ScreenNumber.3 \
WindowId.3 Tk_Screen.3 \
WindowId.3 Tk_X.3 \
WindowId.3 Tk_Y.3 \
WindowId.3 Tk_Width.3 \
WindowId.3 Tk_Height.3 \
WindowId.3 Tk_Changes.3 \
WindowId.3 Tk_Attributes.3 \
WindowId.3 Tk_IsContainer.3 \
WindowId.3 Tk_IsEmbedded.3 \
WindowId.3 Tk_IsMapped.3 \
WindowId.3 Tk_IsTopLevel.3 \
WindowId.3 Tk_ReqWidth.3 \
WindowId.3 Tk_ReqHeight.3 \
WindowId.3 Tk_InternalBorderWidth.3 \
WindowId.3 Tk_Visual.3 \
WindowId.3 Tk_Depth.3 \
WindowId.3 Tk_Colormap.3 \
chooseColor.n tk_chooseColor.n \
chooseDirectory.n tk_chooseDirectory.n \
dialog.n tk_dialog.n \
focusNext.n tk_focusNext.n \
focusNext.n tk_focusPrev.n \
focusNext.n tk_focusFollowsMouse.n \
getOpenFile.n tk_getOpenFile.n \
getOpenFile.n tk_getSaveFile.n \
menubar.n tk_menuBar.n \
menubar.n tk_bindForTraversal.n \
messageBox.n tk_messageBox.n \
optionMenu.n tk_optionMenu.n \
palette.n tk_setPalette.n \
palette.n tk_bisque.n \
popup.n tk_popup.n
.include <bsd.port.pre.mk>
post-install:
.if exists(${PKGINSTALL})
${SETENV} PKG_PREFIX=${PREFIX} ${SH} ${PKGINSTALL}
.endif
test:
cd ${WRKSRC}; make test
.include <bsd.port.post.mk>

1
chinese/tk83/distinfo Normal file
View File

@ -0,0 +1 @@
MD5 (tk8.3.0.tar.gz) = b98369476607536e8384940036890d5c

1606
chinese/tk83/files/patch-aa Normal file

File diff suppressed because it is too large Load Diff

174
chinese/tk83/files/patch-ab Normal file
View File

@ -0,0 +1,174 @@
--- Makefile.in.orig Thu Feb 10 11:11:01 2000
+++ Makefile.in Wed Feb 21 23:12:17 2001
@@ -56,7 +56,9 @@
BIN_DIR = $(exec_prefix)/bin
# Directory in which to install the include file tk.h:
-INCLUDE_INSTALL_DIR = $(INSTALL_ROOT)$(prefix)/include
+INCLUDE_INSTALL_DIR = $(INSTALL_ROOT)$(prefix)/include/tk$(VERSION)
+GENERIC_INCLUDE_INSTALL_DIR = $(INCLUDE_INSTALL_DIR)/generic
+UNIX_INCLUDE_INSTALL_DIR = $(INCLUDE_INSTALL_DIR)/unix
# Top-level directory for manual entries:
MAN_INSTALL_DIR = $(INSTALL_ROOT)$(prefix)/man
@@ -94,6 +96,9 @@
CFLAGS_DEBUG = @CFLAGS_DEBUG@
CFLAGS_OPTIMIZE = @CFLAGS_OPTIMIZE@
+# I18n improvement flags
+I18N_FLAGS = @I18N_FLAGS@
+
# To change the compiler switches, for example to change from optimization to
# debugging symbols, change the following line:
#CFLAGS = $(CFLAGS_DEBUG)
@@ -153,7 +158,7 @@
# "install" around; better to use the install-sh script that comes
# with the distribution, which is slower but guaranteed to work.
-INSTALL = @srcdir@/install-sh -c
+INSTALL = install -c
INSTALL_PROGRAM = ${INSTALL}
INSTALL_DATA = ${INSTALL} -m 644
@@ -190,7 +195,7 @@
# Libraries to use when linking. This definition is determined by the
# configure script.
LIBS = @LIBS@ $(X11_LIB_SWITCHES) @DL_LIBS@ @MATH_LIBS@ -lc
-WISH_LIBS = $(TCL_LIB_SPEC) @LIBS@ $(X11_LIB_SWITCHES) @DL_LIBS@ @MATH_LIBS@ -lc
+WISH_LIBS = -L${PREFIX}/lib -ltcl${SHORT_TK_VER} @LIBS@ $(X11_LIB_SWITCHES) @DL_LIBS@ @MATH_LIBS@ -lc
# The symbol below provides support for dynamic loading and shared
# libraries. See configure.in for a description of what it means.
@@ -211,7 +216,8 @@
# modify any of this stuff by hand.
#----------------------------------------------------------------
-AC_FLAGS = @EXTRA_CFLAGS@ @DEFS@
+AC_FLAGS = @EXTRA_CFLAGS@ @DEFS@ @CPPFLAGS@ \
+ @X11_IMAKE_FLAGS@ @I18N_FLAGS@
RANLIB = @RANLIB@
SRC_DIR = @srcdir@/..
TOP_DIR = @srcdir@/..
@@ -268,7 +274,8 @@
tkUnixCursor.o tkUnixDraw.o tkUnixEmbed.o tkUnixEvent.o \
tkUnixFocus.o tkUnixFont.o tkUnixInit.o tkUnixKey.o tkUnixMenu.o \
tkUnixMenubu.o tkUnixScale.o tkUnixScrlbr.o tkUnixSelect.o \
- tkUnixSend.o tkUnixWm.o tkUnixXId.o tkStubInit.o tkStubLib.o
+ tkUnixSend.o tkUnixWm.o tkUnixXId.o tkStubInit.o tkStubLib.o \
+ tkUnixIm.o
STUB_LIB_OBJS = tkStubLib.o tkStubImg.o
@@ -330,6 +337,7 @@
$(UNIX_DIR)/tkUnixEmbed.c $(UNIX_DIR)/tkUnixEvent.c \
$(UNIX_DIR)/tkUnixFocus.c \
$(UNIX_DIR)/tkUnixFont.c $(UNIX_DIR)/tkUnixInit.c \
+ $(UNIX_DIR)/tkUnixIm.c \
$(UNIX_DIR)/tkUnixKey.c \
$(UNIX_DIR)/tkUnixMenu.c $(UNIX_DIR)/tkUnixMenubu.c \
$(UNIX_DIR)/tkUnixScale.c $(UNIX_DIR)/tkUnixScrlbr.c \
@@ -361,8 +369,14 @@
${TK_LIB_FILE}: ${OBJS}
rm -f ${TK_LIB_FILE}
@MAKE_LIB@
+ ln -sf @TK_LIB_FILE@ libtk${SHORT_TK_VER}.so
$(RANLIB) ${TK_LIB_FILE}
+libtk${SHORT_TK_VER}.a: ${OBJS}
+ rm -f libtk${SHORT_TK_VER}.a
+ ar cr libtk${SHORT_TK_VER}.a ${OBJS}
+ $(RANLIB) libtk${SHORT_TK_VER}.a
+
${STUB_LIB_FILE}: ${STUB_LIB_OBJS}
rm -f ${STUB_LIB_FILE}
@MAKE_STUB_LIB@
@@ -424,7 +438,7 @@
# some ranlibs write to current directory, and this might not always be
# possible (e.g. if installing as root).
-install-binaries: $(TK_LIB_FILE) $(TK_STUB_LIB_FILE) $(TK_BUILD_EXP_FILE) wish
+install-binaries: $(TK_LIB_FILE) $(TK_STUB_LIB_FILE) $(TK_BUILD_EXP_FILE) libtk${SHORT_TK_VER}.a wish
@for i in $(LIB_INSTALL_DIR) $(BIN_INSTALL_DIR) ; \
do \
if [ ! -d $$i ] ; then \
@@ -442,12 +456,18 @@
fi
@echo "Installing $(TK_LIB_FILE) to $(LIB_INSTALL_DIR)/"
@$(INSTALL_DATA) $(TK_LIB_FILE) $(LIB_INSTALL_DIR)/$(TK_LIB_FILE)
+ @ln -sf $(LIB_INSTALL_DIR)/$(TK_LIB_FILE) $(LIB_INSTALL_DIR)/libtk${SHORT_TK_VER}.so
@(cd $(LIB_INSTALL_DIR); $(RANLIB) $(TK_LIB_FILE))
@chmod 555 $(LIB_INSTALL_DIR)/$(TK_LIB_FILE)
+ @echo "Installing libtk${SHORT_TK_VER}.a"
+ @$(INSTALL_DATA) libtk${SHORT_TK_VER}.a $(LIB_INSTALL_DIR)/libtk${SHORT_TK_VER}.a
+ @(cd $(LIB_INSTALL_DIR); $(RANLIB) libtk${SHORT_TK_VER}.a)
+ @chmod 555 $(LIB_INSTALL_DIR)/libtk${SHORT_TK_VER}.a
@echo "Installing wish as $(BIN_INSTALL_DIR)/wish$(VERSION)"
@$(INSTALL_PROGRAM) wish $(BIN_INSTALL_DIR)/wish$(VERSION)
@echo "Installing tkConfig.sh to $(LIB_INSTALL_DIR)/"
- @$(INSTALL_DATA) tkConfig.sh $(LIB_INSTALL_DIR)/tkConfig.sh
+ @mkdir -p $(LIB_INSTALL_DIR)/tk$(VERSION)
+ @$(INSTALL_DATA) tkConfig.sh $(LIB_INSTALL_DIR)/tk$(VERSION)/tkConfig.sh
@if test "$(TK_BUILD_EXP_FILE)" != ""; then \
echo "Installing $(TK_EXP_FILE) to $(LIB_INSTALL_DIR)/"; \
$(INSTALL_DATA) $(TK_BUILD_EXP_FILE) \
@@ -461,6 +481,7 @@
install-libraries:
@for i in $(INSTALL_ROOT)$(prefix)/lib $(INCLUDE_INSTALL_DIR) \
+ $(GENERIC_INCLUDE_INSTALL_DIR) $(UNIX_INCLUDE_INSTALL_DIR) \
$(SCRIPT_INSTALL_DIR) $(SCRIPT_INSTALL_DIR)/images; \
do \
if [ ! -d $$i ] ; then \
@@ -474,10 +495,16 @@
chmod +x $(UNIX_DIR)/install-sh; \
fi
@echo "Installing header files";
- @for i in $(GENERIC_DIR)/tk.h $(GENERIC_DIR)/tkDecls.h ; \
+ @for i in $(GENERIC_DIR)/*.h ; \
do \
- $(INSTALL_DATA) $$i $(INCLUDE_INSTALL_DIR); \
+ $(INSTALL_DATA) $$i $(GENERIC_INCLUDE_INSTALL_DIR); \
done;
+ @for i in $(UNIX_DIR)/*.h ; \
+ do \
+ $(INSTALL_DATA) $$i $(UNIX_INCLUDE_INSTALL_DIR); \
+ done;
+ @ln -sf $(GENERIC_INCLUDE_INSTALL_DIR)/tk.h $(INCLUDE_INSTALL_DIR)/tk.h
+ @ln -sf $(GENERIC_INCLUDE_INSTALL_DIR)/tkDecls.h $(INCLUDE_INSTALL_DIR)/tkDecls.h
@echo "Installing library files to $(SCRIPT_INSTALL_DIR)";
@for i in $(SRC_DIR)/library/*.tcl $(GENERIC_DIR)/prolog.ps \
$(SRC_DIR)/library/tclIndex $(UNIX_DIR)/tkAppInit.c; \
@@ -543,7 +570,6 @@
chmod 444 $(MAN1_INSTALL_DIR)/$$i; \
done;
@echo "Cross-linking top-level (.1) docs";
- @$(UNIX_DIR)/mkLinks $(MAN1_INSTALL_DIR)
@echo "Installing C API (.3) docs";
@cd $(SRC_DIR)/doc; for i in *.3; \
do \
@@ -553,7 +579,6 @@
chmod 444 $(MAN3_INSTALL_DIR)/$$i; \
done;
@echo "Cross-linking top-level (.3) docs";
- @$(UNIX_DIR)/mkLinks $(MAN3_INSTALL_DIR)
@echo "Installing command (.n) docs";
@cd $(SRC_DIR)/doc; for i in *.n; \
do \
@@ -563,7 +588,6 @@
chmod 444 $(MANN_INSTALL_DIR)/$$i; \
done;
@echo "Cross-linking command (.n) docs";
- @$(UNIX_DIR)/mkLinks $(MANN_INSTALL_DIR)
Makefile: $(UNIX_DIR)/Makefile.in
$(SHELL) config.status
@@ -843,6 +867,9 @@
tkUnixFont.o: $(UNIX_DIR)/tkUnixFont.c
$(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnixFont.c
+
+tkUnixIm.o: $(UNIX_DIR)/tkUnixIm.c
+ $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnixIm.c
tkUnixInit.o: $(UNIX_DIR)/tkUnixInit.c $(GENERIC_DIR)/tkInitScript.h tkConfig.sh
$(CC) -c $(CC_SWITCHES) -DTK_LIBRARY=\"${TK_LIBRARY}\" \

View File

@ -0,0 +1,20 @@
--- tkConfig.sh.in.orig Thu Feb 10 11:11:02 2000
+++ tkConfig.sh.in Wed Feb 21 21:27:46 2001
@@ -20,13 +20,16 @@
TK_PATCH_LEVEL='@TK_PATCH_LEVEL@'
# -D flags for use with the C compiler.
-TK_DEFS='@DEFS@'
+TK_DEFS='@DEFS@ @X11_IMAKE_FLAGS@ @I18N_FLAGS@'
# Flag, 1: we built a shared lib, 0 we didn't
TK_SHARED_BUILD=@TK_SHARED_BUILD@
# This indicates if Tk was build with debugging symbols
TK_DBGX=@TK_DBGX@
+
+# I18n improvement flags
+TK_I18N_IMPROVE_FLAGS='@I18N_FLAGS@'
# The name of the Tk library (may be either a .a file or a shared library):
TK_LIB_FILE='@TK_LIB_FILE@'

View File

@ -0,0 +1,34 @@
--- tkUnixEvent.c.orig Fri Apr 16 01:51:46 1999
+++ tkUnixEvent.c Wed Feb 21 22:51:52 2001
@@ -161,7 +161,12 @@
(void) XSync(dispPtr->display, False);
(void) XCloseDisplay(dispPtr->display);
}
-
+#ifdef I18N_IMPROVE
+ if (displayPtr->imEncoding != NULL) {
+ Tcl_FreeEncoding(displayPtr->imEncoding);
+ }
+#endif /* I18N_IMPROVE */
+
ckfree((char *) dispPtr);
}
@@ -246,6 +251,17 @@
while (numFound > 0) {
XNextEvent(display, &event);
+#ifdef I18N_IMPROVE
+ /*
+ * To avoid Tk freezing by IM server's protocol bugs,
+ * Re-check queued event after an event is filterd.
+ *
+ */
+ if (XFilterEvent(&event, None) == True) {
+ numFound = XEventsQueued(display, QueuedAlready);
+ continue;
+ }
+#endif /* I18N_IMPROVE */
Tk_QueueWindowEvent(&event, TCL_QUEUE_TAIL);
numFound--;
}

261
chinese/tk83/files/patch-ae Normal file
View File

@ -0,0 +1,261 @@
--- tkUnixIm.c.orig Thu Feb 22 12:00:09 2001
+++ tkUnixIm.c Thu Feb 22 12:01:30 2001
@@ -0,0 +1,258 @@
+/*
+ * tkUnixIm.c --
+ *
+ * This file contains modules to implement the XIM protocol session.
+ * This is the shrinked version of tkXIM.c, worte for tk8.0jp.
+ *
+ *
+ * Copyright 1999, 2000 Software Research Associates, Inc.
+ *
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation for any purpose and without fee is hereby granted, provided
+ * that the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation, and that the name of Software Research Associates not be
+ * used in advertising or publicity pertaining to distribution of the
+ * software without specific, written prior permission. Software Research
+ * Associates makes no representations about the suitability of this software
+ * for any purpose. It is provided "as is" without express or implied
+ * warranty.
+ */
+
+#include "tkPort.h"
+#include "tkInt.h"
+
+#ifdef TK_USE_INPUT_METHODS
+#ifdef I18N_IMPROVE
+
+static void TkpIMGenericHandler _ANSI_ARGS_((ClientData clientData, XEvent *eventPtr));
+static TkWindow * GetToplevel _ANSI_ARGS_((TkWindow *winPtr));
+static void TkpCreateIMGenericHandler _ANSI_ARGS_((Tk_Window tkwin));
+static void TkpDeleteIMGenericHandler _ANSI_ARGS_((Tk_Window tkwin));
+
+static TkWindow *
+GetToplevel(winPtr)
+ TkWindow *winPtr;
+{
+ while (!(winPtr->flags & TK_TOP_LEVEL)) {
+ winPtr = winPtr->parentPtr;
+ if (winPtr == NULL) {
+ return NULL;
+ }
+ }
+ return winPtr;
+}
+
+
+static void
+TkpIMGenericHandler(clientData, eventPtr)
+ ClientData clientData;
+ XEvent *eventPtr;
+{
+ Tk_Window tkwin = (Tk_Window)clientData;
+ TkWindow *winPtr = (TkWindow *)clientData;
+
+ if (eventPtr->xany.window != Tk_WindowId(tkwin) ||
+ winPtr->inputContext == NULL ||
+ !(winPtr->flags & TK_CHECKED_IC)) {
+ /*
+ * Why ME ???
+ */
+ return;
+ }
+
+ /*
+ * Well, should I care about Enter/Leave ?
+ */
+
+ switch (eventPtr->type) {
+ case KeyPress:
+ case FocusIn: {
+ Window root, child;
+ int rootX, rootY;
+ int wX, wY;
+ unsigned int mask;
+
+ /*
+ * Care about case mouse pointer is not on winPtr->window.
+ * In such a case, IM server can't fetch any events from Tk.
+ */
+
+ if (XQueryPointer(winPtr->display,
+ RootWindow(winPtr->display, winPtr->screenNum),
+ &root, &child, &rootX, &rootY, &wX, &wY, &mask) == True) {
+ TkWindow *pWin = (TkWindow *)Tk_CoordsToWindow(rootX, rootY,
+ (Tk_Window)winPtr);
+ if (pWin != NULL && (pWin->window != winPtr->window)) {
+#if 0
+ /*
+ * Code belows are what I REALLY want to do. But,
+ * in XIMPreeditPosition mode, IM server use the
+ * focus window as key event source window and as
+ * PreeditArea window by X11 specification. I want
+ * IM server to use this focus window ONLY as key
+ * event source. Means:
+ *
+ * o PreeditArea and PreeditPosition take place
+ * within client window (winPtr->window).
+ * o KeyPress event source is the window in which
+ * mouse pointer is (pWin->window).
+ */
+
+ if (XSetICValues(winPtr->inputContext, XNFocusWindow,
+ pWin->window, NULL) != NULL) {
+ fprintf(stderr, "debugIC: can't set IC focus to pointer window 0x%08x\n",
+ pWin->window);
+ } else {
+ fprintf(stderr, "debugIC: set IC focus to pointer window 0x%08x\n",
+ pWin->window);
+ }
+#endif
+ /*
+ * Check pWin and winPtr are in same toplevel.
+ * If they are NOT, don't change focus.
+ */
+ TkWindow *pTop = GetToplevel(pWin);
+ TkWindow *wTop = GetToplevel(winPtr);
+ if (pTop == wTop) {
+ TkpChangeFocus(winPtr, 1);
+ }
+ }
+ }
+ /*
+ * Get current focused window.
+ */
+ if (winPtr->dispPtr->lastFocusedIC != winPtr->inputContext) {
+ winPtr->dispPtr->lastFocusedIC = winPtr->inputContext;
+ XSetICFocus(winPtr->inputContext);
+ }
+ break;
+ }
+
+ case FocusOut: {
+ winPtr->dispPtr->lastFocusedIC = None;
+ XUnsetICFocus(winPtr->inputContext);
+ break;
+ }
+
+ case DestroyNotify: {
+ winPtr->dispPtr->lastFocusedIC = NULL;
+ XUnsetICFocus(winPtr->inputContext);
+ TkpDeleteIMGenericHandler(tkwin);
+ break;
+ }
+ }
+}
+
+
+static void
+TkpCreateIMGenericHandler(tkwin)
+ Tk_Window tkwin;
+{
+ Tk_CreateEventHandler(tkwin, FocusChangeMask|StructureNotifyMask|KeyPressMask
+#if 0
+ EnterWindowMask|LeaveWindowMask,
+#else
+ ,
+#endif
+ (Tk_EventProc *)TkpIMGenericHandler,
+ (ClientData)tkwin);
+}
+
+
+static void
+TkpDeleteIMGenericHandler(tkwin)
+ Tk_Window tkwin;
+{
+ Tk_DeleteEventHandler(tkwin, FocusChangeMask|StructureNotifyMask|KeyPressMask
+#if 0
+ EnterWindowMask|LeaveWindowMask,
+#else
+ ,
+#endif
+ (Tk_EventProc *)TkpIMGenericHandler,
+ (ClientData)tkwin);
+}
+
+
+XIC
+TkpCreateIC(winPtr)
+ TkWindow *winPtr;
+{
+ if (winPtr->dispPtr->inputMethod != NULL &&
+ !(winPtr->flags & TK_CHECKED_IC)) {
+ winPtr->inputContext =
+ XCreateIC(winPtr->dispPtr->inputMethod,
+ XNInputStyle, XIMPreeditNothing|XIMStatusNothing,
+ XNClientWindow, winPtr->window,
+ XNFocusWindow, winPtr->window,
+ NULL);
+ if (winPtr->inputContext != NULL) {
+ TkpCreateIMGenericHandler((Tk_Window)winPtr);
+ }
+ }
+ winPtr->flags |= TK_CHECKED_IC;
+ return winPtr->inputContext;
+}
+
+
+void
+TkpDestroyIC(winPtr, needDestroy)
+ TkWindow *winPtr;
+ int needDestroy;
+{
+ TkpDeleteIMGenericHandler((Tk_Window)winPtr);
+ if (winPtr->inputContext == winPtr->dispPtr->lastFocusedIC) {
+ winPtr->dispPtr->lastFocusedIC = None;
+ }
+ if (needDestroy == 1 &&
+ winPtr->inputContext != NULL) {
+ XDestroyIC(winPtr->inputContext);
+ }
+ winPtr->flags &= ~(TK_CHECKED_IC);
+ winPtr->inputContext = NULL;
+}
+
+
+int
+Tk_ImconfigureObjCmd(clientData, interp, objc, objv)
+ ClientData clientData; /* Main window associated with
+ * interpreter. */
+ Tcl_Interp *interp; /* Current interpreter. */
+ int objc; /* Number of arguments. */
+ Tcl_Obj *CONST objv[]; /* Argument objects. */
+{
+ Tk_Window tkwin = (Tk_Window)clientData;
+ Tcl_Obj *resultPtr = Tcl_GetObjResult(interp);
+
+ if (objc < 2) {
+ Tcl_WrongNumArgs(interp, 1, objv, "path ?option? ?arg? ...");
+ return TCL_ERROR;
+ }
+
+ tkwin = Tk_NameToWindow(interp, Tcl_GetStringFromObj(objv[1], NULL), tkwin);
+ if (tkwin == NULL) {
+ return TCL_ERROR;
+ }
+
+ if (((TkWindow *)tkwin)->dispPtr->useInputMethods == 0) {
+ /*
+ * Destroy XIC and leave.
+ */
+ TkpDestroyIC((TkWindow *)tkwin, 1);
+ return TCL_OK;
+ }
+
+ if (((TkWindow *)tkwin)->dispPtr->inputMethod == NULL) {
+ Tcl_AppendStringsToObj(resultPtr, "No IM server is available.", NULL);
+ return TCL_ERROR;
+ }
+
+ Tcl_AppendStringsToObj(resultPtr,
+ (TkpCreateIC((TkWindow *)tkwin) != NULL) ? "1" : "0",
+ NULL);
+ return TCL_OK;
+}
+
+#endif /* I18N_IMPROVE */
+#endif /* TK_USE_INPUT_METHODS */

View File

@ -0,0 +1,91 @@
--- tkUnixKey.c.orig Wed Feb 9 02:13:54 2000
+++ tkUnixKey.c Wed Feb 21 21:27:46 2001
@@ -50,6 +50,10 @@
int len;
Tcl_DString buf;
Status status;
+#if defined(I18N_IMPROVE) && defined(TK_USE_INPUT_METHODS)
+ Bool validString = False;
+ Bool usePreviousComposed = False;
+#endif /* I18N_IMPROVE && TK_USE_INPUT_METHODS */
/*
* Overallocate the dstring to the maximum stack amount.
@@ -59,8 +63,18 @@
Tcl_DStringSetLength(&buf, TCL_DSTRING_STATIC_SIZE-1);
#ifdef TK_USE_INPUT_METHODS
+#ifdef I18N_IMPROVE
+ /*
+ * If there is a valid XIC, must fetch strings here since some
+ * garbages still remain. After the fetching, if
+ * dispPtr->useInputMethods == 0, just trash the strings.
+ * m-hirano
+ */
+ if ((winPtr->inputContext != NULL)
+#else
if (winPtr->dispPtr->useInputMethods
&& (winPtr->inputContext != NULL)
+#endif /* I18N_IMPROVE */
&& (eventPtr->type == KeyPress)) {
len = XmbLookupString(winPtr->inputContext, &eventPtr->xkey,
Tcl_DStringValue(&buf), Tcl_DStringLength(&buf),
@@ -75,12 +89,27 @@
Tcl_DStringValue(&buf), len, (KeySym *) NULL, &status);
}
if ((status != XLookupChars) && (status != XLookupBoth)) {
+#ifdef I18N_IMPROVE
+ if (winPtr->dispPtr->isComposed == 1 &&
+ Tcl_DStringLength(&(winPtr->composedDStr)) > 0 &&
+ winPtr->dispPtr->useInputMethods == 1) {
+ usePreviousComposed = True;
+ }
+#endif /* I18N_IMPROVE */
len = 0;
}
+#ifdef I18N_IMPROVE
+ if (winPtr->dispPtr->useInputMethods == 1) {
+ validString = True;
+ }
+#endif /* I18N_IMPROVE */
} else {
len = XLookupString(&eventPtr->xkey, Tcl_DStringValue(&buf),
Tcl_DStringLength(&buf), (KeySym *) NULL,
(XComposeStatus *) NULL);
+#ifdef I18N_IMPROVE
+ validString = True;
+#endif /* I18N_IMPROVE */
}
#else /* TK_USE_INPUT_METHODS */
len = XLookupString(&eventPtr->xkey, Tcl_DStringValue(&buf),
@@ -89,7 +118,30 @@
#endif /* TK_USE_INPUT_METHODS */
Tcl_DStringSetLength(&buf, len);
+#if defined(I18N_IMPROVE) && defined(TK_USE_INPUT_METHODS)
+ if (validString == True) {
+ if (usePreviousComposed == False) {
+ Tcl_ExternalToUtfDString(winPtr->dispPtr->imEncoding,
+ Tcl_DStringValue(&buf), len, dsPtr);
+ Tcl_DStringFree(&(winPtr->composedDStr));
+ Tcl_DStringInit(&(winPtr->composedDStr));
+ Tcl_DStringAppend(&(winPtr->composedDStr),
+ Tcl_DStringValue(dsPtr),
+ Tcl_DStringLength(dsPtr));
+ } else {
+ Tcl_DStringFree(dsPtr);
+ Tcl_DStringInit(dsPtr);
+ Tcl_DStringAppend(dsPtr,
+ Tcl_DStringValue(&(winPtr->composedDStr)),
+ Tcl_DStringLength(&(winPtr->composedDStr)));
+ }
+ } else {
+ Tcl_DStringFree(dsPtr);
+ Tcl_DStringInit(dsPtr);
+ }
+#else
Tcl_ExternalToUtfDString(NULL, Tcl_DStringValue(&buf), len, dsPtr);
+#endif /* I18N_IMPROVE && TK_USE_INPUT_METHODS */
Tcl_DStringFree(&buf);
return Tcl_DStringValue(dsPtr);

View File

@ -0,0 +1,13 @@
--- tkUnixPort.h.orig Fri Apr 16 01:51:47 1999
+++ tkUnixPort.h Wed Feb 21 21:27:46 2001
@@ -82,6 +82,10 @@
#include <X11/Xresource.h>
#include <X11/Xutil.h>
+#ifdef I18N_IMPROVE
+#include <X11/Xlocale.h>
+#endif /* I18N_IMPROVE */
+
/*
* The following macro defines the type of the mask arguments to
* select:

136
chinese/tk83/files/patch-ah Normal file
View File

@ -0,0 +1,136 @@
--- configure.in.orig Thu Feb 10 11:11:02 2000
+++ configure.in Wed Feb 21 21:27:45 2001
@@ -60,6 +60,12 @@
SC_LOAD_TCLCONFIG
#--------------------------------------------------------------------
+# i18n improvement (also check it is specified in Tcl)
+#--------------------------------------------------------------------
+
+SC_ENABLE_I18N_IMPROVE
+
+#--------------------------------------------------------------------
# Recompute the necessary flags to run the compiler
#--------------------------------------------------------------------
@@ -372,6 +378,113 @@
TK_SHARED_BUILD=${SHARED_BUILD}
#--------------------------------------------------------------------
+# Checking X lib for i18n related things.
+#--------------------------------------------------------------------
+
+X11_IMAKE_FLAGS=""
+tk_oldCflags=$CFLAGS
+tk_oldLibs=$LIBS
+CFLAGS="$CFLAGS $XINCLUDES"
+LIBS="$XLIBSW $LIBS"
+
+AC_MSG_CHECKING([XRegisterIMInstantiateCallback])
+AC_TRY_LINK([
+#include <X11/Xlib.h>
+], [
+XRegisterIMInstantiateCallback(0, 0, 0, 0, 0, 0);
+], [
+AC_MSG_RESULT(yes)
+X11_IMAKE_FLAGS="-DHAVE_XIMREGINSTCB"
+], [
+AC_MSG_RESULT(no)
+])
+
+AC_MSG_CHECKING([XIDProc])
+AC_TRY_COMPILE([
+#include <X11/Xlib.h>
+], [
+XIDProc *a;
+], [
+AC_MSG_RESULT(yes)
+], [
+AC_MSG_RESULT(no)
+X11_IMAKE_FLAGS="$X11_IMAKE_FLAGS -DNO_XIDPROC"
+])
+
+HAVE_XMKMF=""
+AC_PATH_PROG(HAVE_XMKMF, xmkmf, "", ${PATH}:/usr/X11R6/bin:/usr/X11R5/bin:/usr/local/X11R6/bin:/usr/local/X11R5/bin:/usr/openwin/bin:/usr/X11/bin:/usr/X386/bin:/usr/sww/bin:/usr/unsupported/bin)
+if test "X$HAVE_XMKMF" != "X"; then
+ IMAKE_FLAGS=""
+ if test -d ImakeCheck; then
+ rm -rf ImakeCheck
+ fi
+ mkdir ImakeCheck
+ cat << EOF > ImakeCheck/Imakefile
+SRCS = dummy.c
+OBJS = dummy.o
+
+ComplexProgramTarget(dummy)
+EOF
+ cat << EOF > ImakeCheck/dummy.c
+static int justAnInt = 0;
+EOF
+ (cd ./ImakeCheck; rm -f Makefile Makefile.*; eval $HAVE_XMKMF) > /dev/null 2>&1
+ for i in `(cd ./ImakeCheck; make -n dummy.o)`
+ do
+ case $i in -D*) IMAKE_FLAGS="$IMAKE_FLAGS $i";; esac
+ done
+ if test "X$IMAKE_FLAGS" != "X"; then
+ AC_MSG_RESULT(Add these flags for proper compile: $IMAKE_FLAGS)
+ X11_IMAKE_FLAGS="$X11_IMAKE_FLAGS $IMAKE_FLAGS"
+ fi
+ rm -rf ImakeCheck
+fi
+
+# At last check FreeBSD and have -lxpg4.
+AC_MSG_CHECKING([system version (for additional locale library)])
+if test -f /usr/lib/NextStep/software_version; then
+ system=NEXTSTEP-`awk '/3/,/3/' /usr/lib/NextStep/software_version`
+else
+ system=`uname -s`-`uname -r`
+ if test "$?" -ne 0 ; then
+ system=unknown
+ else
+ # Special check for weird MP-RAS system (uname returns weird
+ # results, and the version is kept in special file).
+
+ if test -r /etc/.relid -a "X`uname -n`" = "X`uname -s`" ; then
+ system=MP-RAS-`awk '{print $3}' /etc/.relid'`
+ fi
+ if test "`uname -s`" = "AIX" ; then
+ system=AIX-`uname -v`.`uname -r`
+ fi
+ fi
+fi
+
+case $system in
+ FreeBSD-*)
+ LIBS="$XLIBSW -lxpg4 $tk_oldLibs"
+ CFLAGS="$CFLAGS $X11_IMAKE_FLAGS"
+ AC_TRY_COMPILE([
+#include <locale.h>
+], [
+(void)setlocale(LC_ALL, "");
+], [
+AC_MSG_RESULT(use xpg4 library.)
+XLIBSW="$XLIBSW -lxpg4"
+], [
+AC_MSG_RESULT(no need other libraries.)
+])
+ ;;
+ *)
+ AC_MSG_RESULT(No additional library is needed.)
+ ;;
+esac
+
+CFLAGS=$tk_oldCflags
+LIBS=$tk_oldLibs
+
+#--------------------------------------------------------------------
# The statements below define various symbols relating to creating
# the stub'd version of the Tk library
#
@@ -453,5 +566,5 @@
AC_SUBST(XINCLUDES)
AC_SUBST(XLIBSW)
AC_SUBST(TK_SHARED_BUILD)
-
+AC_SUBST(X11_IMAKE_FLAGS)
AC_OUTPUT(Makefile tkConfig.sh)

View File

@ -0,0 +1,14 @@
--- ../generic/tk.h.orig Tue Feb 8 11:31:32 2000
+++ ../generic/tk.h Wed Feb 21 21:27:44 2001
@@ -688,6 +688,11 @@
char *dummy17;
ClientData dummy18;
char *dummy19;
+#ifdef TK_USE_INPUT_METHODS
+#ifdef I18N_IMPROVE
+ Tcl_DString dummy20DStr;
+#endif /* I18N_IMPROVE */
+#endif /* TK_USE_INPUT_METHODS */
} Tk_FakeWin;
/*

View File

@ -0,0 +1,26 @@
--- ../generic/tkBind.c.orig Wed Feb 9 02:13:50 2000
+++ ../generic/tkBind.c Wed Feb 21 21:27:44 2001
@@ -1443,6 +1443,11 @@
*/
if (winPtr->pathName == NULL) {
+#ifdef TK_USE_INPUT_METHODS
+#ifdef I18N_IMPROVE
+ winPtr->dispPtr->isComposed = 0;
+#endif /* I18N_IMPROVE */
+#endif /* TK_USE_INPUT_METHODS */
return;
}
@@ -1678,6 +1683,11 @@
Tcl_DStringAppend(&scripts, "", 1);
}
}
+#ifdef TK_USE_INPUT_METHODS
+#ifdef I18N_IMPROVE
+ winPtr->dispPtr->isComposed = 0;
+#endif /* I18N_IMPROVE */
+#endif /* TK_USE_INPUT_METHODS */
if (Tcl_DStringLength(&scripts) == 0) {
return;
}

View File

@ -0,0 +1,47 @@
--- ../generic/tkEvent.c.orig Thu Dec 16 21:57:36 1999
+++ ../generic/tkEvent.c Wed Feb 21 23:18:43 2001
@@ -663,6 +663,17 @@
}
#ifdef TK_USE_INPUT_METHODS
+#ifdef I18N_IMPROVE
+ /*
+ * No need to create an input context for each and every window.
+ *
+ * Futhermore, XFilterEvent() should be called just after the
+ * event is fetched, since some IM server have protocol bugs that
+ * causes Tk freezing, so events EXCEPT THE INPUT METHODS THINGS
+ * should only be queued into Tcl event queue.
+ *
+ */
+#else
/*
* Pass the event to the input method(s), if there are any, and
* discard the event if the input method(s) insist. Create the
@@ -684,6 +695,7 @@
goto done;
}
}
+#endif /* I18N_IMPROVE */
#endif /* TK_USE_INPUT_METHODS */
/*
@@ -936,6 +948,18 @@
break;
}
}
+
+#if defined(TK_USE_INPUT_METHODS) && defined(I18N_IMPROVE)
+ if (eventPtr->type == KeyPress && eventPtr->xkey.keycode == 0) {
+ /*
+ * No doubt this is a composed message from IM server.
+ * Tk can handle KeyPress event with zero keycode value
+ * if state of the event is zero.
+ */
+ eventPtr->xkey.state = 0;
+ dispPtr->isComposed = 1;
+ }
+#endif /* TK_USE_INPUT_METHODS && I18N_IMPROVE */
if ((dispPtr->delayedMotionPtr != NULL) && (position == TCL_QUEUE_TAIL)) {
if ((eventPtr->type == MotionNotify) && (eventPtr->xmotion.window

View File

@ -0,0 +1,73 @@
--- ../generic/tkInt.h.orig Fri Jan 21 03:54:41 2000
+++ ../generic/tkInt.h Wed Feb 21 21:27:44 2001
@@ -499,6 +499,24 @@
int warpX;
int warpY;
int useInputMethods; /* Whether to use input methods */
+#ifdef TK_USE_INPUT_METHODS
+#ifdef I18N_IMPROVE
+ Tcl_Encoding imEncoding; /* Tcl encoding when the first Tcl
+ * interp was created.
+ * For encoding conversion from
+ * XmbLookupString() to UTF.
+ */
+ XIC lastFocusedIC; /* The last focused input context on
+ * the display.
+ */
+ int isComposed; /* 1 if the latest KeyPress event is a
+ * "Compose message" from IM server,
+ * otherwise 0. */
+#ifdef XNDestroyCallback
+ XIMCallback destroyCallback;
+#endif /* XNDestroyCallback */
+#endif /* I18N_IMPROVE */
+#endif /* TK_USE_INPUT_METHODS */
} TkDisplay;
/*
@@ -790,6 +808,13 @@
*/
struct TkWindowPrivate *privatePtr;
+#ifdef TK_USE_INPUT_METHODS
+#ifdef I18N_IMPROVE
+ Tcl_DString composedDStr; /* To prepare successive "%A" in bind
+ * script, save a string from IM
+ * server. */
+#endif /* I18N_IMPROVE */
+#endif /* TK_USE_INPUT_METHODS */
} TkWindow;
/*
@@ -999,9 +1024,6 @@
EXTERN int Tk_WmCmd _ANSI_ARGS_((ClientData clientData,
Tcl_Interp *interp, int argc, char **argv));
-void TkConsolePrint _ANSI_ARGS_((Tcl_Interp *interp,
- int devId, char *buffer, long size));
-
EXTERN void TkEventInit _ANSI_ARGS_((void));
EXTERN int TkCreateMenuCmd _ANSI_ARGS_((Tcl_Interp *interp));
@@ -1080,6 +1102,21 @@
*/
EXTERN int TkUnsupported1Cmd _ANSI_ARGS_((ClientData clientData,
Tcl_Interp *interp, int argc, char **argv));
+
+#if defined(TK_USE_INPUT_METHODS) && defined(I18N_IMPROVE)
+EXTERN XIC TkpCreateIC _ANSI_ARGS_((TkWindow *winPtr));
+EXTERN void TkpDestroyIC _ANSI_ARGS_((TkWindow *winPtr, int needDestroy));
+EXTERN int Tk_ImconfigureObjCmd _ANSI_ARGS_((ClientData clientData,
+ Tcl_Interp *interp, int objc,
+ Tcl_Obj *CONST objv[]));
+#endif /* TK_USE_INPUT_METHODS && I18N_IMPROVE */
+
+# undef TCL_STORAGE_CLASS
+# define TCL_STORAGE_CLASS
+
+EXTERN int TkConsoleInit _ANSI_ARGS_((Tcl_Interp *interp));
+EXTERN void TkConsolePrint _ANSI_ARGS_((Tcl_Interp *interp,
+ int devId, char *buffer, long size));
# undef TCL_STORAGE_CLASS
# define TCL_STORAGE_CLASS DLLIMPORT

306
chinese/tk83/files/patch-am Normal file
View File

@ -0,0 +1,306 @@
--- ../generic/tkWindow.c.orig Thu Dec 16 21:57:36 1999
+++ ../generic/tkWindow.c Wed Feb 21 23:20:48 2001
@@ -155,6 +155,9 @@
#ifdef MAC_TCL
{"unsupported1", TkUnsupported1Cmd, NULL, 1, 1},
#endif
+#if defined(TK_USE_INPUT_METHODS) && defined(I18N_IMPROVE)
+ {"imconfigure", NULL, Tk_ImconfigureObjCmd, 1, 1},
+#endif /* TK_USE_INPUT_METHODS && I18N_IMPROVE */
{(char *) NULL, (int (*) _ANSI_ARGS_((ClientData, Tcl_Interp *, int, char **))) NULL, NULL, 0}
};
@@ -209,6 +212,15 @@
char *name));
static void OpenIM _ANSI_ARGS_((TkDisplay *dispPtr));
static void UnlinkWindow _ANSI_ARGS_((TkWindow *winPtr));
+#ifdef TK_USE_INPUT_METHODS
+#ifdef I18N_IMPROVE
+static int CanInitiateIm _ANSI_ARGS_((void));
+static void IMInstantiateCallback _ANSI_ARGS_ ((Display *display,
+ XPointer clientData, XPointer callData));
+static void IMDestroyCallback _ANSI_ARGS_ ((XIM im, XPointer clientData,
+ XPointer callData));
+#endif /* I18N_IMPROVE */
+#endif /* TK_USE_INPUT_METHODS */
/*
*----------------------------------------------------------------------
@@ -631,6 +643,9 @@
winPtr->handlerList = NULL;
#ifdef TK_USE_INPUT_METHODS
winPtr->inputContext = NULL;
+#ifdef I18N_IMPROVE
+ Tcl_DStringInit(&(winPtr->composedDStr));
+#endif /* I18N_IMPROVE */
#endif /* TK_USE_INPUT_METHODS */
winPtr->tagPtr = NULL;
winPtr->numTags = 0;
@@ -1275,8 +1290,16 @@
TkBindDeadWindow(winPtr);
#ifdef TK_USE_INPUT_METHODS
if (winPtr->inputContext != NULL) {
- XDestroyIC(winPtr->inputContext);
+#ifdef I18N_IMPROVE
+ TkpDestroyIC(winPtr, 1);
+#else
+ XDestroyIC(winPtr->inputContext);
+#endif /* I18N_IMPROVE */
}
+#ifdef I18N_IMPROVE
+ Tcl_DStringFree(&(winPtr->composedDStr));
+ Tcl_DStringInit(&(winPtr->composedDStr));
+#endif /* I18N_IMPROVE */
#endif /* TK_USE_INPUT_METHODS */
if (winPtr->tagPtr != NULL) {
TkFreeBindingTags(winPtr);
@@ -2427,6 +2450,180 @@
{
return ((TkWindow *) tkwin)->mainPtr->strictMotif;
}
+#ifdef TK_USE_INPUT_METHODS
+#ifdef I18N_IMPROVE
+
+static int
+CanInitiateIm()
+{
+ static int inited = 0;
+ static int ret = 0;
+ char *locale;
+
+ /*
+ * Determine the current encoding from the LC_* or LANG environment
+ * variables. We previously used setlocale() to determine the locale,
+ * but this does not work on some systems (e.g. Linux/i386 RH 5.0).
+ */
+
+ locale = getenv("LC_ALL");
+
+ if (locale == NULL || locale[0] == '\0') {
+ locale = getenv("LC_CTYPE");
+ }
+ if (locale == NULL || locale[0] == '\0') {
+ locale = getenv("LANG");
+ }
+ if (locale == NULL || locale[0] == '\0') {
+ return False;
+ }
+
+ if (inited == 0) {
+ char *curSpec = setlocale(LC_ALL, NULL);
+
+ inited = 1;
+
+ if (strcmp(locale, "C") == 0 ||
+ strcmp(locale, "POSIX") == 0) {
+ goto Checked;
+ }
+
+ /*
+ * setlocale(3)/_Xsetlocale() VERY HERE. This is what the X
+ * input method wants.
+ * Note that X11's i18n implementation should be ONLY governed
+ * by LC_CTYPE. This is clearly/explicitly specified in X11
+ * documente Chapter 13. Thus, If there are some X11
+ * implementation that need using LC_ALL to initialize i18n
+ * subsystem, I won't care about such a X library.
+ * But, we are still on edge of darkside. ctype(3) routines
+ * are governed by LC_CTYPE.... Need to create "Locale
+ * independent ctype libraries" for Tcl/Tk...
+ *
+ */
+
+ /*
+ * OK, First of all, setting WHOLE locale to "C".
+ */
+ (void)setlocale(LC_ALL, "C");
+ if (setlocale(LC_CTYPE, locale) == NULL) {
+ /*
+ * Reset to old locale.
+ */
+ if (setlocale(LC_ALL, curSpec) == NULL) {
+ (void)setlocale(LC_ALL, "C");
+ }
+ goto Checked;
+ } else {
+ /*
+ * For insurance, reset LC_NUMERIC to "C" for Tcl numeric parsing.
+ */
+ (void)setlocale(LC_NUMERIC, "C");
+ }
+ if (XSupportsLocale() != True) {
+ goto Checked;
+ }
+
+ ret = True;
+ /*
+ * At last, Setting the locale modifiers.
+ */
+ (void)XSetLocaleModifiers("");
+ }
+
+ Checked:
+ return ret;
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * IMInstantiateCallback
+ *
+ * Whenever IM server become available, this function will be called.
+ *
+ * Results:
+ * OpenIM() is called.
+ *
+ * Side effects:
+ * None.
+ *
+ *----------------------------------------------------------------------
+ */
+
+void
+IMInstantiateCallback(display, clientData, callData)
+ Display *display;
+ XPointer clientData;
+ XPointer callData;
+{
+ TkDisplay *dispPtr = (TkDisplay *)clientData;
+
+ if (display == dispPtr->display &&
+ dispPtr->inputMethod == NULL) {
+ OpenIM(dispPtr);
+ }
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * IMDestroyCallback
+ *
+ * Whenever IM server stops the service, this function will be called.
+ *
+ * Results:
+ * the XIM opened before is marked as unusable.
+ *
+ * Side effects:
+ * XIC using this XIM will be useless.
+ *
+ *----------------------------------------------------------------------
+ */
+void
+IMDestroyCallback(im, clientData, callData)
+ XIM im;
+ XPointer clientData;
+ XPointer callData;
+{
+ TkDisplay *dispPtr = (TkDisplay *)clientData;
+ if (im == dispPtr->inputMethod) {
+ Tcl_HashTable winTable = dispPtr->winTable;
+ Tcl_HashEntry *entry = NULL;
+ Tcl_HashSearch search;
+ TkWindow *winPtr;
+
+ /*
+ * We must not call XCloseIM() or XDestroyIC().
+ * because the XIM and XIC are destroyed by Xlib
+ * automatically.
+ */
+ for (entry = Tcl_FirstHashEntry(&winTable, &search); entry != NULL;
+ entry = Tcl_NextHashEntry(&search)) {
+ winPtr = (TkWindow *)Tcl_GetHashValue(entry);
+ if (winPtr->dispPtr->display == dispPtr->display &&
+ winPtr->dispPtr->inputMethod == im &&
+ winPtr->inputContext != NULL) {
+ TkpDestroyIC(winPtr, 0);
+ }
+ Tcl_DStringFree(&(winPtr->composedDStr));
+ Tcl_DStringInit(&(winPtr->composedDStr));
+ }
+ dispPtr->inputMethod = NULL;
+ dispPtr->lastFocusedIC = NULL;
+#ifdef HAVE_XIMREGINSTCB
+#ifdef NO_XIDPROC
+ XRegisterIMInstantiateCallback(dispPtr->display, NULL, NULL, NULL,
+ (XIMProc)IMInstantiateCallback, (XPointer *)dispPtr);
+#else
+ XRegisterIMInstantiateCallback(dispPtr->display, NULL, NULL, NULL,
+ (XIDProc)IMInstantiateCallback, (XPointer)dispPtr);
+#endif /* NO_XIDPROC */
+#endif /* HAVE_XIMREGINSTCB */
+ }
+}
+#endif /* I18N_IMPROVE */
+#endif /* TK_USE_INPUT_METHODS */
/*
*--------------------------------------------------------------
@@ -2457,8 +2654,35 @@
unsigned short i;
XIMStyles *stylePtr;
+#ifdef I18N_IMPROVE
+ int styleFound = 0;
+
+ dispPtr->inputMethod = NULL;
+ dispPtr->imEncoding = NULL;
+ dispPtr->lastFocusedIC = NULL;
+ dispPtr->isComposed = 0;
+
+ if (CanInitiateIm() == False) {
+ return;
+ }
+#endif /* I18N_IMPROVE */
dispPtr->inputMethod = XOpenIM(dispPtr->display, NULL, NULL, NULL);
if (dispPtr->inputMethod == NULL) {
+#ifdef I18N_IMPROVE
+#ifdef HAVE_XIMREGINSTCB
+ /*
+ * Maybe no IM server is available right now.
+ * Try to register instantiate callback.
+ */
+#ifdef NO_XIDPROC
+ XRegisterIMInstantiateCallback(dispPtr->display, NULL, NULL, NULL,
+ (XIMProc)IMInstantiateCallback, (XPointer *)dispPtr);
+#else
+ XRegisterIMInstantiateCallback(dispPtr->display, NULL, NULL, NULL,
+ (XIDProc)IMInstantiateCallback, (XPointer)dispPtr);
+#endif /* NO_XIDPROC */
+#endif /* HAVE_XIMREGINSTCB */
+#endif /* I18N_IMPROVE */
return;
}
@@ -2469,11 +2693,30 @@
for (i = 0; i < stylePtr->count_styles; i++) {
if (stylePtr->supported_styles[i]
== (XIMPreeditNothing|XIMStatusNothing)) {
- XFree(stylePtr);
- return;
+#ifdef I18N_IMPROVE
+ styleFound = 1;
+#else
+ XFree(stylePtr);
+ return;
+#endif /* I18N_IMPROVE */
}
}
XFree(stylePtr);
+#ifdef I18N_IMPROVE
+ if (styleFound == 1) {
+ /*
+ * Create a Tcl_Encoding for XmbLookupString() conversion.
+ */
+ dispPtr->imEncoding = Tcl_GetEncoding(NULL, Tcl_GetEncodingName(NULL));
+#ifdef XNDestroyCallback
+ dispPtr->destroyCallback.client_data = (XPointer)dispPtr;
+ dispPtr->destroyCallback.callback = (XIMProc)IMDestroyCallback;
+ (void)XSetIMValues(dispPtr->inputMethod,
+ XNDestroyCallback, &(dispPtr->destroyCallback), NULL);
+#endif /* XNDestroyCallback */
+ return;
+ }
+#endif /* I18N_IMPROVE */
error:

View File

@ -0,0 +1,16 @@
--- ../library/entry.tcl.orig Thu Jan 6 02:22:24 2000
+++ ../library/entry.tcl Wed Feb 21 21:27:44 2001
@@ -214,6 +214,13 @@
}
}
+# input method configuration binding (unix only)
+if {![string compare $tcl_platform(platform) "unix"]} {
+ if {[string compare [info commands imconfigure] {}]} {
+ bind Entry <FocusIn> {catch {imconfigure %W}}
+ }
+}
+
# Additional emacs-like bindings:
bind Entry <Control-a> {

View File

@ -0,0 +1,16 @@
--- ../library/text.tcl.orig Thu Feb 10 08:52:50 2000
+++ ../library/text.tcl Wed Feb 21 21:27:44 2001
@@ -378,6 +378,13 @@
}
}
+# UNIX only bindings:
+
+if {[string equal $tcl_platform(platform) "unix"] &&
+ [string compare [info commands imconfigure] {}]} {
+ bind Text <FocusIn> {catch {imconfigure %W}}
+}
+
# Macintosh only bindings:
# if text black & highlight black -> text white, other text the same

1
chinese/tk83/pkg-comment Normal file
View File

@ -0,0 +1 @@
Graphical toolkit for TCL

View File

@ -0,0 +1,22 @@
#! /bin/sh
#
# Remove the ${PREFIX}/bin/wish script that gets installed by INSTALL.wish
# if we are the last wish installation to be pkg_delete'd.
#
# $FreeBSD: /tmp/pcvs/ports/chinese/tk83/Attic/pkg-deinstall.wish,v 1.1 2001-02-22 04:09:52 kevlo Exp $
#
#
# Explicitly listing /usr/X11R6/bin here is debatable.
#
BINDIR="${PKG_PREFIX}/bin /usr/X11R6/bin"
WISH=${PKG_PREFIX}/bin/wish
wishes=$(/bin/ls ${BINDIR} 2> /dev/null | \
egrep '^o?wish(step)?(x|([0-9]+\.[0-9]+))([a-z][a-z])?$')
if [ "$wishes" = "" -a -f ${WISH} ] && \
(head -3 ${WISH} | grep awieYJFnsuILOnfsYEW) > /dev/null 2>&1
then
rm -f ${PKG_PREFIX}/bin/wish
fi

6
chinese/tk83/pkg-descr Normal file
View File

@ -0,0 +1,6 @@
This is Tk version 8.3, a GUI toolkit for Tcl.
The best way to get started with Tcl is to read ``Tcl and the Tk
Toolkit'' by John K. Ousterhout, Addison-Wesley, ISBN 0-201-63337-X.
WWW: http://dev.scriptics.com/software/tcltk/8.3.html

View File

@ -0,0 +1,32 @@
#!/bin/sh
# The user may have a wish they want to preserve
ver=`grep -a awieYJFnsuILOnfsYEW ${PKG_PREFIX}/bin/wish 2> /dev/null \
| sed -e 's/.*\*\*//'`
if [ ! -e ${PKG_PREFIX}/bin/wish ] || [ "$ver" != "" -a "$ver" -lt 001 ]
then
[ -f ${PKG_PREFIX}/bin/wish ] && chmod u+w ${PKG_PREFIX}/bin/wish
mkdir -p ${PKG_PREFIX}/bin
cat > ${PKG_PREFIX}/bin/wish <<'EOF'
#!/bin/sh
# Installed by ports system. id: awieYJFnsuILOnfsYEW**001
(
echo "In FreeBSD, wish is named with a version number. This is because"
echo "different versions of wish are not compatible with each other and"
echo "they can not all be called \"wish\"! You may need multiple versions"
echo "installed because a given port may depend on a specific version."
echo
echo "On your system, wish is installed under at least the following names:"
echo
for name in $(/bin/ls $(echo $PATH | sed 's/:/ /g') 2> /dev/null | egrep '^wish(step)?(x|([0-9]+\.[0-9]+))([a-z][a-z])?$')
do
echo $name
done
[ "$name" = "" ] && echo "No wish installations found, sorry."
) 1>&2
exit 1
EOF
chmod a+rx ${PKG_PREFIX}/bin/wish
fi

139
chinese/tk83/pkg-plist Normal file
View File

@ -0,0 +1,139 @@
bin/wish%%TK_VER%%
include/tk%%TK_VER%%/generic/default.h
include/tk%%TK_VER%%/generic/ks_names.h
include/tk%%TK_VER%%/generic/tk.h
include/tk%%TK_VER%%/generic/tk3d.h
include/tk%%TK_VER%%/generic/tkButton.h
include/tk%%TK_VER%%/generic/tkCanvas.h
include/tk%%TK_VER%%/generic/tkColor.h
include/tk%%TK_VER%%/generic/tkDecls.h
include/tk%%TK_VER%%/generic/tkFileFilter.h
include/tk%%TK_VER%%/generic/tkFont.h
include/tk%%TK_VER%%/generic/tkInitScript.h
include/tk%%TK_VER%%/generic/tkInt.h
include/tk%%TK_VER%%/generic/tkIntDecls.h
include/tk%%TK_VER%%/generic/tkIntPlatDecls.h
include/tk%%TK_VER%%/generic/tkIntXlibDecls.h
include/tk%%TK_VER%%/generic/tkMenu.h
include/tk%%TK_VER%%/generic/tkMenubutton.h
include/tk%%TK_VER%%/generic/tkPlatDecls.h
include/tk%%TK_VER%%/generic/tkPort.h
include/tk%%TK_VER%%/generic/tkScale.h
include/tk%%TK_VER%%/generic/tkScrollbar.h
include/tk%%TK_VER%%/generic/tkSelect.h
include/tk%%TK_VER%%/generic/tkText.h
include/tk%%TK_VER%%/tk.h
include/tk%%TK_VER%%/tkDecls.h
include/tk%%TK_VER%%/unix/tkUnixDefault.h
include/tk%%TK_VER%%/unix/tkUnixInt.h
include/tk%%TK_VER%%/unix/tkUnixPort.h
lib/libtk%%SHORT_TK_VER%%.a
lib/libtk%%SHORT_TK_VER%%.so
lib/libtk%%SHORT_TK_VER%%.so.1
lib/libtkstub%%SHORT_TK_VER%%.a
lib/tk%%TK_VER%%/bgerror.tcl
lib/tk%%TK_VER%%/button.tcl
lib/tk%%TK_VER%%/choosedir.tcl
lib/tk%%TK_VER%%/clrpick.tcl
lib/tk%%TK_VER%%/comdlg.tcl
lib/tk%%TK_VER%%/console.tcl
lib/tk%%TK_VER%%/demos/README
lib/tk%%TK_VER%%/demos/arrow.tcl
lib/tk%%TK_VER%%/demos/bind.tcl
lib/tk%%TK_VER%%/demos/bitmap.tcl
lib/tk%%TK_VER%%/demos/browse
lib/tk%%TK_VER%%/demos/button.tcl
lib/tk%%TK_VER%%/demos/check.tcl
lib/tk%%TK_VER%%/demos/clrpick.tcl
lib/tk%%TK_VER%%/demos/colors.tcl
lib/tk%%TK_VER%%/demos/cscroll.tcl
lib/tk%%TK_VER%%/demos/ctext.tcl
lib/tk%%TK_VER%%/demos/dialog1.tcl
lib/tk%%TK_VER%%/demos/dialog2.tcl
lib/tk%%TK_VER%%/demos/entry1.tcl
lib/tk%%TK_VER%%/demos/entry2.tcl
lib/tk%%TK_VER%%/demos/filebox.tcl
lib/tk%%TK_VER%%/demos/floor.tcl
lib/tk%%TK_VER%%/demos/form.tcl
lib/tk%%TK_VER%%/demos/hello
lib/tk%%TK_VER%%/demos/hscale.tcl
lib/tk%%TK_VER%%/demos/icon.tcl
lib/tk%%TK_VER%%/demos/image1.tcl
lib/tk%%TK_VER%%/demos/image2.tcl
lib/tk%%TK_VER%%/demos/images/earth.gif
lib/tk%%TK_VER%%/demos/images/earthris.gif
lib/tk%%TK_VER%%/demos/images/face.bmp
lib/tk%%TK_VER%%/demos/images/flagdown.bmp
lib/tk%%TK_VER%%/demos/images/flagup.bmp
lib/tk%%TK_VER%%/demos/images/gray25.bmp
lib/tk%%TK_VER%%/demos/images/letters.bmp
lib/tk%%TK_VER%%/demos/images/noletter.bmp
lib/tk%%TK_VER%%/demos/images/pattern.bmp
lib/tk%%TK_VER%%/demos/images/tcllogo.gif
lib/tk%%TK_VER%%/demos/images/teapot.ppm
lib/tk%%TK_VER%%/demos/items.tcl
lib/tk%%TK_VER%%/demos/ixset
lib/tk%%TK_VER%%/demos/label.tcl
lib/tk%%TK_VER%%/demos/license.terms
lib/tk%%TK_VER%%/demos/menu.tcl
lib/tk%%TK_VER%%/demos/menubu.tcl
lib/tk%%TK_VER%%/demos/msgbox.tcl
lib/tk%%TK_VER%%/demos/plot.tcl
lib/tk%%TK_VER%%/demos/puzzle.tcl
lib/tk%%TK_VER%%/demos/radio.tcl
lib/tk%%TK_VER%%/demos/rmt
lib/tk%%TK_VER%%/demos/rolodex
lib/tk%%TK_VER%%/demos/ruler.tcl
lib/tk%%TK_VER%%/demos/sayings.tcl
lib/tk%%TK_VER%%/demos/search.tcl
lib/tk%%TK_VER%%/demos/square
lib/tk%%TK_VER%%/demos/states.tcl
lib/tk%%TK_VER%%/demos/style.tcl
lib/tk%%TK_VER%%/demos/tclIndex
lib/tk%%TK_VER%%/demos/tcolor
lib/tk%%TK_VER%%/demos/text.tcl
lib/tk%%TK_VER%%/demos/timer
lib/tk%%TK_VER%%/demos/twind.tcl
lib/tk%%TK_VER%%/demos/vscale.tcl
lib/tk%%TK_VER%%/demos/widget
lib/tk%%TK_VER%%/dialog.tcl
lib/tk%%TK_VER%%/entry.tcl
lib/tk%%TK_VER%%/focus.tcl
lib/tk%%TK_VER%%/images/README
lib/tk%%TK_VER%%/images/logo.eps
lib/tk%%TK_VER%%/images/logo100.gif
lib/tk%%TK_VER%%/images/logo64.gif
lib/tk%%TK_VER%%/images/logoLarge.gif
lib/tk%%TK_VER%%/images/logoMed.gif
lib/tk%%TK_VER%%/images/pwrdLogo.eps
lib/tk%%TK_VER%%/images/pwrdLogo100.gif
lib/tk%%TK_VER%%/images/pwrdLogo150.gif
lib/tk%%TK_VER%%/images/pwrdLogo175.gif
lib/tk%%TK_VER%%/images/pwrdLogo200.gif
lib/tk%%TK_VER%%/images/pwrdLogo75.gif
lib/tk%%TK_VER%%/images/tai-ku.gif
lib/tk%%TK_VER%%/listbox.tcl
lib/tk%%TK_VER%%/menu.tcl
lib/tk%%TK_VER%%/msgbox.tcl
lib/tk%%TK_VER%%/obsolete.tcl
lib/tk%%TK_VER%%/optMenu.tcl
lib/tk%%TK_VER%%/palette.tcl
lib/tk%%TK_VER%%/prolog.ps
lib/tk%%TK_VER%%/safetk.tcl
lib/tk%%TK_VER%%/scale.tcl
lib/tk%%TK_VER%%/scrlbar.tcl
lib/tk%%TK_VER%%/tclIndex
lib/tk%%TK_VER%%/tearoff.tcl
lib/tk%%TK_VER%%/text.tcl
lib/tk%%TK_VER%%/tk.tcl
lib/tk%%TK_VER%%/tkAppInit.c
lib/tk%%TK_VER%%/tkConfig.sh
lib/tk%%TK_VER%%/tkfbox.tcl
lib/tk%%TK_VER%%/xmfbox.tcl
@dirrm lib/tk%%TK_VER%%/demos/images
@dirrm lib/tk%%TK_VER%%/demos
@dirrm lib/tk%%TK_VER%%/images
@dirrm lib/tk%%TK_VER%%
@dirrm include/tk%%TK_VER%%/unix
@dirrm include/tk%%TK_VER%%/generic
@dirrm include/tk%%TK_VER%%