Tk 8.2, from FreeBSD.

This commit is contained in:
angelos 2000-01-06 00:53:03 +00:00
parent 15ba6b4742
commit fd76a59a64
9 changed files with 1664 additions and 0 deletions

31
x11/tk82/Makefile Normal file
View File

@ -0,0 +1,31 @@
#
# $FreeBSD: ports/x11-toolkits/tk82/Makefile,v 1.32 2000/01/05 07:12:09 jseger Exp $
# $OpenBSD: Makefile,v 1.1.1.1 2000/01/06 00:53:03 angelos Exp $
#
DISTNAME= tk8.2.3
PKGNAME= tk-8.2.3
CATEGORIES= x11-toolkits tk82
MASTER_SITES= ftp://ftp.scriptics.com/pub/tcl/tcl8_2/
MAINTAINER= angelos@openbsd.org
LIB_DEPENDS= tcl82.1:${PORTSDIR}/lang/tcl82
USE_XLIB= yes
WRKSRC= ${WRKDIR}/${DISTNAME}/unix
GNU_CONFIGURE= yes
CONFIGURE_ARGS= --enable-shared --with-tcl=${PREFIX}/lib/tcl8.2
CONFIGURE_ENV= PORTSDIR=${PORTSDIR} TK_LIB_FILE=libtk82.so.1
PKGINSTALL= ${PKGDIR}/INSTALL.wish
post-install:
${SETENV} OBJFORMAT=${PORTOBJFORMAT} ${LDCONFIG} -m ${PREFIX}/lib
.if exists(${PKGINSTALL})
${SETENV} PKG_PREFIX=${PREFIX} ${SH} ${PKGINSTALL}
.endif
test:
cd ${WRKSRC}; make test
.include <bsd.port.mk>

3
x11/tk82/files/md5 Normal file
View File

@ -0,0 +1,3 @@
MD5 (tk8.2.3.tar.gz) = 7ff4bc6ec36dc901e5a2e09029458308
RMD160 (tk8.2.3.tar.gz) = 06f8ae9a244116af0da1a0275b6bd510f29e1916
SHA1 (tk8.2.3.tar.gz) = 66e27779c5ba05712151411716d45e1999987f5b

41
x11/tk82/patches/patch-aa Normal file
View File

@ -0,0 +1,41 @@
--- configure.orig Wed Nov 3 21:38:44 1999
+++ configure Sun Nov 21 15:55:12 1999
@@ -1756,7 +1756,7 @@
LDFLAGS="-Wl,-Bexport"
LD_SEARCH_FLAGS=""
;;
- NetBSD-*|FreeBSD-[1-2].*|OpenBSD-*)
+ NetBSD-*|FreeBSD-*|OpenBSD-*)
# Not available on all versions: check for include file.
ac_safe=`echo "dlfcn.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for dlfcn.h""... $ac_c" 1>&6
@@ -1788,14 +1788,19 @@
echo "$ac_t""yes" 1>&6
SHLIB_CFLAGS="-fpic"
- SHLIB_LD="ld -Bshareable -x"
SHLIB_LD_LIBS=""
SHLIB_SUFFIX=".so"
DL_OBJS="tclLoadDl.o"
DL_LIBS=""
LDFLAGS=""
LD_SEARCH_FLAGS=""
- SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.so.1.0'
+ if eval "test \"`echo ${PORTOBJFORMAT}`\" = elf" ; then
+ SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.so.1'
+ SHLIB_LD="ld -shared -x -soname \$@"
+ else
+ SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.so.1.0'
+ SHLIB_LD="ld -Bshareable -x"
+ fi
else
echo "$ac_t""no" 1>&6
@@ -2266,6 +2271,7 @@
echo "$ac_t""no" 1>&6
fi
+TCL_SRC_DIR=${prefix}/include/tcl${TCL_VERSION}
LIB_RUNTIME_DIR='${LIB_RUNTIME_DIR}'

131
x11/tk82/patches/patch-ab Normal file
View File

@ -0,0 +1,131 @@
--- Makefile.in.orig Fri Aug 13 18:06:14 1999
+++ Makefile.in Sat Sep 4 19:47:43 1999
@@ -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
@@ -153,7 +155,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 +192,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 -ltcl82 @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.
@@ -356,8 +358,14 @@
${TK_LIB_FILE}: ${OBJS}
rm -f ${TK_LIB_FILE}
@MAKE_LIB@
+ ln -sf @TK_LIB_FILE@ libtk82.so
$(RANLIB) ${TK_LIB_FILE}
+libtk82.a: ${OBJS}
+ rm -f libtk82.a
+ ar cr libtk82.a ${OBJS}
+ $(RANLIB) libtk82.a
+
${STUB_LIB_FILE}: ${STUB_LIB_OBJS}
rm -f ${STUB_LIB_FILE}
@MAKE_STUB_LIB@
@@ -418,7 +426,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) libtk82.a wish
@for i in $(LIB_INSTALL_DIR) $(BIN_INSTALL_DIR) ; \
do \
if [ ! -d $$i ] ; then \
@@ -432,12 +440,18 @@
chmod +x $(UNIX_DIR)/install-sh
chmod +x $(UNIX_DIR)/mkLinks
@$(INSTALL_DATA) $(TK_LIB_FILE) $(LIB_INSTALL_DIR)/$(TK_LIB_FILE)
+ @ln -sf $(LIB_INSTALL_DIR)/$(TK_LIB_FILE) $(LIB_INSTALL_DIR)/libtk82.so
@(cd $(LIB_INSTALL_DIR); $(RANLIB) $(TK_LIB_FILE))
@chmod 555 $(LIB_INSTALL_DIR)/$(TK_LIB_FILE)
+ @echo "Installing libtk82.a"
+ @$(INSTALL_DATA) libtk82.a $(LIB_INSTALL_DIR)/libtk82.a
+ @(cd $(LIB_INSTALL_DIR); $(RANLIB) libtk82.a)
+ @chmod 555 $(LIB_INSTALL_DIR)/libtk82.a
@echo "Installing wish"
@$(INSTALL_PROGRAM) wish $(BIN_INSTALL_DIR)/wish$(VERSION)
@echo "Installing tkConfig.sh"
- @$(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)"; \
$(INSTALL_DATA) $(TK_BUILD_EXP_FILE) \
@@ -451,6 +465,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 \
@@ -461,11 +476,19 @@
fi; \
done;
chmod +x $(UNIX_DIR)/install-sh
- @for i in $(GENERIC_DIR)/tk.h $(GENERIC_DIR)/tkDecls.h ; \
+ @echo "Installing headers"
+ @for i in $(GENERIC_DIR)/*.h ; \
do \
echo "Installing $$i"; \
- $(INSTALL_DATA) $$i $(INCLUDE_INSTALL_DIR); \
+ $(INSTALL_DATA) $$i $(GENERIC_INCLUDE_INSTALL_DIR); \
done;
+ @for i in $(UNIX_DIR)/*.h ; \
+ do \
+ echo "Installing $$i"; \
+ $(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
for i in $(SRC_DIR)/library/*.tcl $(GENERIC_DIR)/prolog.ps \
$(SRC_DIR)/library/tclIndex $(UNIX_DIR)/tkAppInit.c; \
do \
@@ -530,16 +553,14 @@
$$i > $(MAN1_INSTALL_DIR)/$$i; \
chmod 444 $(MAN1_INSTALL_DIR)/$$i; \
done;
- $(UNIX_DIR)/mkLinks $(MAN1_INSTALL_DIR)
@cd $(SRC_DIR)/doc; for i in *.3; \
do \
echo "Installing doc/$$i"; \
- rm -f $(MAN3_INSTALL_DIR)/$$i; \
+ rm -f $(MAN3_INSTALL_DIR)/$$i ; \
sed -e '/man\.macros/r man.macros' -e '/man\.macros/d' \
$$i > $(MAN3_INSTALL_DIR)/$$i; \
chmod 444 $(MAN3_INSTALL_DIR)/$$i; \
done;
- $(UNIX_DIR)/mkLinks $(MAN3_INSTALL_DIR)
@cd $(SRC_DIR)/doc; for i in *.n; \
do \
echo "Installing doc/$$i"; \
@@ -548,7 +569,6 @@
$$i > $(MANN_INSTALL_DIR)/$$i; \
chmod 444 $(MANN_INSTALL_DIR)/$$i; \
done;
- $(UNIX_DIR)/mkLinks $(MANN_INSTALL_DIR)
Makefile: $(UNIX_DIR)/Makefile.in
$(SHELL) config.status

911
x11/tk82/patches/patch-ac Normal file
View File

@ -0,0 +1,911 @@
*** tkText.c 1999/04/14 18:05:40 1.1
--- ../generic/tkText.c 1999/04/14 18:06:15
***************
*** 853,858 ****
--- 853,859 ----
|| (textPtr->selTagPtr->spacing2String != NULL)
|| (textPtr->selTagPtr->spacing3String != NULL)
|| (textPtr->selTagPtr->tabString != NULL)
+ || (textPtr->selTagPtr->elideString != NULL)
|| (textPtr->selTagPtr->underlineString != NULL)
|| (textPtr->selTagPtr->wrapMode != NULL)) {
textPtr->selTagPtr->affectsDisplay = 1;
***************
*** 1402,1408 ****
}
}
}
! if (segPtr->typePtr == &tkTextCharType) {
memcpy((VOID *) buffer, (VOID *) (segPtr->body.chars
+ offsetInSeg), (size_t) chunkSize);
buffer += chunkSize;
--- 1403,1409 ----
}
}
}
! if (segPtr->typePtr == &tkTextCharType && !TkTextIsElided(textPtr, &textPtr->selIndex)) {
memcpy((VOID *) buffer, (VOID *) (segPtr->body.chars
+ offsetInSeg), (size_t) chunkSize);
buffer += chunkSize;
***************
*** 1543,1549 ****
int argc; /* Number of arguments. */
char **argv; /* Argument strings. */
{
! int backwards, exact, c, i, argsLeft, noCase, leftToScan;
size_t length;
int numLines, startingLine, startingByte, lineNum, firstByte, lastByte;
int code, matchLength, matchByte, passes, stopLine, searchWholeText;
--- 1544,1550 ----
int argc; /* Number of arguments. */
char **argv; /* Argument strings. */
{
! int backwards, exact, searchElide, c, i, argsLeft, noCase, leftToScan;
size_t length;
int numLines, startingLine, startingByte, lineNum, firstByte, lastByte;
int code, matchLength, matchByte, passes, stopLine, searchWholeText;
***************
*** 1554,1559 ****
--- 1555,1561 ----
Tcl_DString line, patDString;
TkTextSegment *segPtr;
TkTextLine *linePtr;
+ TkTextIndex curIndex;
Tcl_RegExp regexp = NULL; /* Initialization needed only to
* prevent compiler warning. */
***************
*** 1562,1567 ****
--- 1564,1571 ----
*/
exact = 1;
+ searchElide = 0;
+ curIndex.tree = textPtr->tree;
backwards = 0;
noCase = 0;
varName = NULL;
***************
*** 1575,1581 ****
badSwitch:
Tcl_AppendResult(interp, "bad switch \"", arg,
"\": must be -forward, -backward, -exact, -regexp, ",
! "-nocase, -count, or --", (char *) NULL);
return TCL_ERROR;
}
c = arg[1];
--- 1579,1585 ----
badSwitch:
Tcl_AppendResult(interp, "bad switch \"", arg,
"\": must be -forward, -backward, -exact, -regexp, ",
! "-nocase, -count, -elide, or --", (char *) NULL);
return TCL_ERROR;
}
c = arg[1];
***************
*** 1597,1602 ****
--- 1601,1608 ----
noCase = 1;
} else if ((c == 'r') && (strncmp(argv[i], "-regexp", length) == 0)) {
exact = 0;
+ } else if ((c == 'e') && (strncmp(argv[i], "-elide", length) == 0)) {
+ searchElide = 1;
} else if ((c == '-') && (strncmp(argv[i], "--", length) == 0)) {
i++;
break;
***************
*** 1688,1696 ****
*/
linePtr = TkBTreeFindLine(textPtr->tree, lineNum);
for (segPtr = linePtr->segPtr; segPtr != NULL;
! segPtr = segPtr->nextPtr) {
! if (segPtr->typePtr != &tkTextCharType) {
continue;
}
Tcl_DStringAppend(&line, segPtr->body.chars, segPtr->size);
--- 1694,1703 ----
*/
linePtr = TkBTreeFindLine(textPtr->tree, lineNum);
+ curIndex.linePtr = linePtr; curIndex.byteIndex = 0;
for (segPtr = linePtr->segPtr; segPtr != NULL;
! curIndex.byteIndex += segPtr->size, segPtr = segPtr->nextPtr) {
! if (segPtr->typePtr != &tkTextCharType || (!searchElide && TkTextIsElided(textPtr, &curIndex))) {
continue;
}
Tcl_DStringAppend(&line, segPtr->body.chars, segPtr->size);
*** tkText.h 1999/04/14 18:05:40 1.1
--- ../generic/tkText.h 1999/04/14 18:06:15
***************
*** 370,375 ****
--- 370,379 ----
* Must be tkTextCharUid, tkTextNoneUid,
* tkTextWordUid, or NULL to use wrapMode
* for whole widget. */
+ char *elideString; /* -elide option string (malloc-ed).
+ * NULL means option not specified. */
+ int elide; /* Non-zero means text is elided.
+ * Only valid if elideString is non-NULL. */
int affectsDisplay; /* Non-zero means that this tag affects the
* way information is displayed on the screen
* (so need to redisplay if tag changes). */
***************
*** 810,815 ****
--- 814,821 ----
ClientData clientData));
extern TkTextIndex * TkTextMakeCharIndex _ANSI_ARGS_((TkTextBTree tree,
int lineIndex, int charIndex,
+ TkTextIndex *indexPtr));
+ extern int TkTextIsElided _ANSI_ARGS_((TkText *textPtr,
TkTextIndex *indexPtr));
extern TkTextIndex * TkTextMakeByteIndex _ANSI_ARGS_((TkTextBTree tree,
int lineIndex, int byteIndex,
*** tkTextBTree.c 1999/04/14 18:05:40 1.1
--- ../generic/tkTextBTree.c 1999/04/14 18:06:15
***************
*** 2427,2432 ****
--- 2427,2558 ----
}
return tagInfo.tagPtrs;
}
+
+
+ /*
+ special case to just return information about elided attribute
+ specialized from TkBTreeGetTags(indexPtr, numTagsPtr) and GetStyle(textPtr, indexPtr)
+ just need to keep track of invisibility settings for each priority, pick highest one active at end
+ */
+ int
+ TkTextIsElided(textPtr, indexPtr)
+ TkText *textPtr; /* Overall information about text widget. */
+ TkTextIndex *indexPtr; /* The character in the text for which
+ * display information is wanted. */
+ {
+ #define LOTSA_TAGS 1000
+ int elide = 0; /* if nobody says otherwise, it's visible */
+
+ int deftagCnts[LOTSA_TAGS];
+ int *tagCnts = deftagCnts;
+ TkTextTag *deftagPtrs[LOTSA_TAGS];
+ TkTextTag **tagPtrs = deftagPtrs;
+ int numTags = textPtr->numTags;
+ register Node *nodePtr;
+ register TkTextLine *siblingLinePtr;
+ register TkTextSegment *segPtr;
+ register TkTextTag *tagPtr;
+ register int i, index;
+
+ /* almost always avoid malloc, so stay out of system calls */
+ if (LOTSA_TAGS < numTags) {
+ tagCnts = (int *)ckalloc((unsigned)sizeof(int) * numTags);
+ tagPtrs = (TkTextTag **)ckalloc((unsigned)sizeof(TkTextTag *) * numTags);
+ }
+
+ for (i=0; i<numTags; i++) tagCnts[i]=0;
+
+
+ /*
+ * Record tag toggles within the line of indexPtr but preceding
+ * indexPtr.
+ */
+
+ for (index = 0, segPtr = indexPtr->linePtr->segPtr;
+ (index + segPtr->size) <= indexPtr->byteIndex;
+ index += segPtr->size, segPtr = segPtr->nextPtr) {
+ if ((segPtr->typePtr == &tkTextToggleOnType)
+ || (segPtr->typePtr == &tkTextToggleOffType)) {
+ tagPtr = segPtr->body.toggle.tagPtr;
+ if (tagPtr->elideString != NULL) {
+ tagPtrs[tagPtr->priority] = tagPtr;
+ tagCnts[tagPtr->priority]++;
+ }
+ }
+ }
+
+ /*
+ * Record toggles for tags in lines that are predecessors of
+ * indexPtr->linePtr but under the same level-0 node.
+ */
+
+ for (siblingLinePtr = indexPtr->linePtr->parentPtr->children.linePtr;
+ siblingLinePtr != indexPtr->linePtr;
+ siblingLinePtr = siblingLinePtr->nextPtr) {
+ for (segPtr = siblingLinePtr->segPtr; segPtr != NULL;
+ segPtr = segPtr->nextPtr) {
+ if ((segPtr->typePtr == &tkTextToggleOnType)
+ || (segPtr->typePtr == &tkTextToggleOffType)) {
+ tagPtr = segPtr->body.toggle.tagPtr;
+ if (tagPtr->elideString != NULL) {
+ tagPtrs[tagPtr->priority] = tagPtr;
+ tagCnts[tagPtr->priority]++;
+ }
+ }
+ }
+ }
+
+ /*
+ * For each node in the ancestry of this line, record tag toggles
+ * for all siblings that precede that node.
+ */
+
+ for (nodePtr = indexPtr->linePtr->parentPtr; nodePtr->parentPtr != NULL;
+ nodePtr = nodePtr->parentPtr) {
+ register Node *siblingPtr;
+ register Summary *summaryPtr;
+
+ for (siblingPtr = nodePtr->parentPtr->children.nodePtr;
+ siblingPtr != nodePtr; siblingPtr = siblingPtr->nextPtr) {
+ for (summaryPtr = siblingPtr->summaryPtr; summaryPtr != NULL;
+ summaryPtr = summaryPtr->nextPtr) {
+ if (summaryPtr->toggleCount & 1) {
+ tagPtr = summaryPtr->tagPtr;
+ if (tagPtr->elideString != NULL) {
+ tagPtrs[tagPtr->priority] = tagPtr;
+ tagCnts[tagPtr->priority] += summaryPtr->toggleCount;
+ }
+ }
+ }
+ }
+ }
+
+
+ /*
+ * Now traverse from highest priority to lowest,
+ * take elided value from first odd count (= on)
+ */
+
+ for (i = numTags-1; i >=0; i--) {
+ if (tagCnts[i] & 1) {
+ #ifndef ALWAYS_SHOW_SELECTION
+ /* who would make the selection elided? */
+ if ((tagPtr == textPtr->selTagPtr) && !(textPtr->flags & GOT_FOCUS)) {
+ continue;
+ }
+ #endif
+ elide = tagPtrs[i]->elide;
+ break;
+ }
+ }
+
+ if (LOTSA_TAGS < numTags) {
+ ckfree((char *) tagCnts);
+ ckfree((char *) tagPtrs);
+ }
+
+ return elide;
+ }
/*
*----------------------------------------------------------------------
*** tkTextDisp.c 1999/04/14 18:05:40 1.1
--- ../generic/tkTextDisp.c 1999/04/14 18:12:34
***************
*** 59,64 ****
--- 59,65 ----
* be NULL). */
int underline; /* Non-zero means draw underline underneath
* text. */
+ int elide; /* Non-zero means draw text */
Tk_Uid wrapMode; /* How to handle wrap-around for this tag.
* One of char, none, or text. */
} StyleValues;
***************
*** 315,320 ****
--- 316,336 ----
int x));
static void CharUndisplayProc _ANSI_ARGS_((TkText *textPtr,
TkTextDispChunk *chunkPtr));
+
+ /*
+ Definitions of elided procs.
+ Compiler can't inline these since we use pointers to these functions.
+ ElideDisplayProc, ElideUndisplayProc special-cased for speed,
+ as potentially many elided DLine chunks if large, tag toggle-filled
+ elided region.
+ */
+ static void ElideBboxProc _ANSI_ARGS_((TkTextDispChunk *chunkPtr,
+ int index, int y, int lineHeight, int baseline,
+ int *xPtr, int *yPtr, int *widthPtr,
+ int *heightPtr));
+ static int ElideMeasureProc _ANSI_ARGS_((TkTextDispChunk *chunkPtr,
+ int x));
+
static void DisplayDLine _ANSI_ARGS_((TkText *textPtr,
DLine *dlPtr, DLine *prevPtr, Pixmap pixmap));
static void DisplayLineBackground _ANSI_ARGS_((TkText *textPtr,
***************
*** 483,489 ****
int borderPrio, borderWidthPrio, reliefPrio, bgStipplePrio;
int fgPrio, fontPrio, fgStipplePrio;
! int underlinePrio, justifyPrio, offsetPrio;
int lMargin1Prio, lMargin2Prio, rMarginPrio;
int spacing1Prio, spacing2Prio, spacing3Prio;
int overstrikePrio, tabPrio, wrapPrio;
--- 499,505 ----
int borderPrio, borderWidthPrio, reliefPrio, bgStipplePrio;
int fgPrio, fontPrio, fgStipplePrio;
! int underlinePrio, elidePrio, justifyPrio, offsetPrio;
int lMargin1Prio, lMargin2Prio, rMarginPrio;
int spacing1Prio, spacing2Prio, spacing3Prio;
int overstrikePrio, tabPrio, wrapPrio;
***************
*** 498,504 ****
tagPtrs = TkBTreeGetTags(indexPtr, &numTags);
borderPrio = borderWidthPrio = reliefPrio = bgStipplePrio = -1;
fgPrio = fontPrio = fgStipplePrio = -1;
! underlinePrio = justifyPrio = offsetPrio = -1;
lMargin1Prio = lMargin2Prio = rMarginPrio = -1;
spacing1Prio = spacing2Prio = spacing3Prio = -1;
overstrikePrio = tabPrio = wrapPrio = -1;
--- 514,520 ----
tagPtrs = TkBTreeGetTags(indexPtr, &numTags);
borderPrio = borderWidthPrio = reliefPrio = bgStipplePrio = -1;
fgPrio = fontPrio = fgStipplePrio = -1;
! underlinePrio = elidePrio = justifyPrio = offsetPrio = -1;
lMargin1Prio = lMargin2Prio = rMarginPrio = -1;
spacing1Prio = spacing2Prio = spacing3Prio = -1;
overstrikePrio = tabPrio = wrapPrio = -1;
***************
*** 616,621 ****
--- 632,642 ----
styleValues.underline = tagPtr->underline;
underlinePrio = tagPtr->priority;
}
+ if ((tagPtr->elideString != NULL)
+ && (tagPtr->priority > elidePrio)) {
+ styleValues.elide = tagPtr->elide;
+ elidePrio = tagPtr->priority;
+ }
if ((tagPtr->wrapMode != NULL)
&& (tagPtr->priority > wrapPrio)) {
styleValues.wrapMode = tagPtr->wrapMode;
***************
*** 775,781 ****
* lines with numBytes > 0. Used to
* drop 0-sized chunks from the end
* of the line. */
! int byteOffset, ascent, descent, code;
StyleValues *sValuePtr;
/*
--- 796,802 ----
* lines with numBytes > 0. Used to
* drop 0-sized chunks from the end
* of the line. */
! int byteOffset, ascent, descent, code, elide, elidesize;
StyleValues *sValuePtr;
/*
***************
*** 793,798 ****
--- 814,847 ----
dlPtr->nextPtr = NULL;
dlPtr->flags = NEW_LAYOUT;
+
+ /*
+ * special case entirely elide line as there may be 1000s or more
+ */
+ elide = TkTextIsElided(textPtr, indexPtr); /* save a malloc */
+ if (elide && indexPtr->byteIndex==0) {
+ maxBytes = 0;
+ for (segPtr = indexPtr->linePtr->segPtr; elide && segPtr!=NULL; segPtr = segPtr->nextPtr) {
+ if ((elidesize = segPtr->size) > 0) {
+ maxBytes += elidesize;
+
+ /* if have tag toggle, chance that invisibility state changed, so bail out */
+ } else if (segPtr->typePtr == &tkTextToggleOffType || segPtr->typePtr == &tkTextToggleOnType) {
+ if (segPtr->body.toggle.tagPtr->elideString!=NULL) {
+ elide = (segPtr->typePtr == &tkTextToggleOffType) ^ (segPtr->body.toggle.tagPtr->elide==1);
+ }
+ }
+ }
+
+ if (elide) {
+ dlPtr->byteCount = maxBytes;
+ dlPtr->spaceAbove = dlPtr->spaceBelow = dlPtr->length = 0;
+ return dlPtr;
+ }
+ }
+
+
+
/*
* Each iteration of the loop below creates one TkTextDispChunk for
* the new display line. The line will always have at least one
***************
*** 804,809 ****
--- 853,859 ----
lastChunkPtr = NULL;
chunkPtr = NULL;
noCharsYet = 1;
+ elide = 0;
breakChunkPtr = NULL;
breakByteOffset = 0;
justify = TK_JUSTIFY_LEFT;
***************
*** 828,833 ****
--- 878,908 ----
}
while (segPtr != NULL) {
+
+ /* every line still gets at least one chunk due to expectations in rest of code,
+ but able to skip elided portions of line quickly */
+ /* if current chunk elided and last chunk was too, coalese */
+ if (elide && lastChunkPtr!=NULL && lastChunkPtr->displayProc == NULL/*ElideDisplayProc*/) {
+ if ((elidesize = segPtr->size - byteOffset) > 0) {
+ curIndex.byteIndex += elidesize;
+ lastChunkPtr->numBytes += elidesize;
+ breakByteOffset = lastChunkPtr->breakIndex = lastChunkPtr->numBytes;
+
+ /* if have tag toggle, chance that invisibility state changed */
+ } else if (segPtr->typePtr == &tkTextToggleOffType || segPtr->typePtr == &tkTextToggleOnType) {
+ if (segPtr->body.toggle.tagPtr->elideString!=NULL) {
+ elide = (segPtr->typePtr == &tkTextToggleOffType) ^ (segPtr->body.toggle.tagPtr->elide==1);
+ }
+ }
+
+ byteOffset = 0;
+ segPtr = segPtr->nextPtr;
+ if (segPtr == NULL && chunkPtr != NULL) ckfree((char *) chunkPtr);
+
+ continue;
+ }
+
+
if (segPtr->typePtr->layoutProc == NULL) {
segPtr = segPtr->nextPtr;
byteOffset = 0;
***************
*** 838,843 ****
--- 913,919 ----
chunkPtr->nextPtr = NULL;
}
chunkPtr->stylePtr = GetStyle(textPtr, &curIndex);
+ elide = chunkPtr->stylePtr->sValuePtr->elide;
/*
* Save style information such as justification and indentation,
***************
*** 871,877 ****
gotTab = 0;
maxBytes = segPtr->size - byteOffset;
! if (justify == TK_JUSTIFY_LEFT) {
if (segPtr->typePtr == &tkTextCharType) {
char *p;
--- 947,953 ----
gotTab = 0;
maxBytes = segPtr->size - byteOffset;
! if (!elide && justify == TK_JUSTIFY_LEFT) {
if (segPtr->typePtr == &tkTextCharType) {
char *p;
***************
*** 884,891 ****
}
}
}
-
chunkPtr->x = x;
code = (*segPtr->typePtr->layoutProc)(textPtr, &curIndex, segPtr,
byteOffset, maxX-tabSize, maxBytes, noCharsYet, wrapMode,
chunkPtr);
--- 960,980 ----
}
}
}
chunkPtr->x = x;
+ if (elide && maxBytes) {
+ /* don't free style here, as other code expects to be able to do that */
+ /*breakByteOffset =*/ chunkPtr->breakIndex = chunkPtr->numBytes = maxBytes;
+ chunkPtr->width = 0;
+ chunkPtr->minAscent = chunkPtr->minDescent = chunkPtr->minHeight = 0;
+
+ /* would just like to point to canonical empty chunk */
+ chunkPtr->displayProc = (Tk_ChunkDisplayProc *) NULL;
+ chunkPtr->undisplayProc = (Tk_ChunkUndisplayProc *) NULL;
+ chunkPtr->measureProc = ElideMeasureProc;
+ chunkPtr->bboxProc = ElideBboxProc;
+
+ code = 1;
+ } else
code = (*segPtr->typePtr->layoutProc)(textPtr, &curIndex, segPtr,
byteOffset, maxX-tabSize, maxBytes, noCharsYet, wrapMode,
chunkPtr);
***************
*** 957,962 ****
--- 1046,1052 ----
byteOffset = 0;
segPtr = segPtr->nextPtr;
}
+
chunkPtr = NULL;
}
if (noCharsYet) {
***************
*** 1005,1010 ****
--- 1095,1101 ----
wholeLine = 0;
}
+
/*
* Make tab adjustments for the last tab stop, if there is one.
*/
***************
*** 1328,1333 ****
--- 1419,1425 ----
index.linePtr = TkBTreeFindLine(textPtr->tree, lineNum);
index.byteIndex = 0;
lowestPtr = NULL;
+
do {
dlPtr = LayoutDLine(textPtr, &index);
dlPtr->nextPtr = lowestPtr;
***************
*** 1561,1566 ****
--- 1653,1660 ----
Display *display;
int height, x;
+ if (dlPtr->chunkPtr == NULL) return;
+
/*
* First, clear the area of the line to the background color for the
* text widget.
***************
*** 1627,1638 ****
--- 1721,1736 ----
* something is off to the right).
*/
+ if (chunkPtr->displayProc != NULL)
(*chunkPtr->displayProc)(chunkPtr, -chunkPtr->width,
dlPtr->spaceAbove,
dlPtr->height - dlPtr->spaceAbove - dlPtr->spaceBelow,
dlPtr->baseline - dlPtr->spaceAbove, display, pixmap,
dlPtr->y + dlPtr->spaceAbove);
} else {
+ /* don't call if elide. This tax ok since not very many visible DLine's in
+ an area, but potentially many elide ones */
+ if (chunkPtr->displayProc != NULL)
(*chunkPtr->displayProc)(chunkPtr, x, dlPtr->spaceAbove,
dlPtr->height - dlPtr->spaceAbove - dlPtr->spaceBelow,
dlPtr->baseline - dlPtr->spaceAbove, display, pixmap,
***************
*** 1721,1726 ****
--- 1819,1825 ----
StyleValues *sValuePtr;
Display *display;
+
/*
* Pass 1: scan through dlPtr from left to right. For each range of
* chunks with the same style, draw the main background for the style
***************
*** 1794,1800 ****
rightX = maxX;
}
chunkPtr2 = NULL;
! if (prevPtr != NULL) {
/*
* Find the chunk in the previous line that covers leftX.
*/
--- 1893,1899 ----
rightX = maxX;
}
chunkPtr2 = NULL;
! if (prevPtr != NULL && prevPtr->chunkPtr != NULL) {
/*
* Find the chunk in the previous line that covers leftX.
*/
***************
*** 1915,1921 ****
rightX = maxX;
}
chunkPtr2 = NULL;
! if (dlPtr->nextPtr != NULL) {
/*
* Find the chunk in the previous line that covers leftX.
*/
--- 2014,2021 ----
rightX = maxX;
}
chunkPtr2 = NULL;
! /* for (dlPtr2 = dlPtr; dlPtr2->nextPtr != NULL && dlPtr2->nextPtr->chunkPtr == NULL; dlPtr2 = dlPtr2->nextPtr) {}*/
! if (dlPtr->nextPtr != NULL && dlPtr->nextPtr->chunkPtr != NULL) {
/*
* Find the chunk in the previous line that covers leftX.
*/
***************
*** 2306,2311 ****
--- 2406,2412 ----
for (prevPtr = NULL, dlPtr = textPtr->dInfoPtr->dLinePtr;
(dlPtr != NULL) && (dlPtr->y < dInfoPtr->maxY);
prevPtr = dlPtr, dlPtr = dlPtr->nextPtr) {
+ if (dlPtr->chunkPtr == NULL) continue;
if (dlPtr->oldY != dlPtr->y) {
if (tkTextDebug) {
char string[TK_POS_CHARS];
***************
*** 2322,2327 ****
--- 2423,2429 ----
dlPtr->oldY = dlPtr->y;
dlPtr->flags &= ~NEW_LAYOUT;
}
+ /*prevPtr = dlPtr;*/
}
Tk_FreePixmap(Tk_Display(textPtr->tkwin), pixmap);
}
***************
*** 3213,3218 ****
--- 3315,3321 ----
* the character within the chunk.
*/
+ if (chunkPtr!=NULL) { /* chunkPtr==NULL iff trying to see in elided region */
(*chunkPtr->bboxProc)(chunkPtr, byteCount, dlPtr->y + dlPtr->spaceAbove,
dlPtr->height - dlPtr->spaceAbove - dlPtr->spaceBelow,
dlPtr->baseline - dlPtr->spaceAbove, &x, &y, &width,
***************
*** 3238,3244 ****
} else {
return TCL_OK;
}
! }
dInfoPtr->flags |= DINFO_OUT_OF_DATE;
if (!(dInfoPtr->flags & REDRAW_PENDING)) {
dInfoPtr->flags |= REDRAW_PENDING;
--- 3341,3347 ----
} else {
return TCL_OK;
}
! }}
dInfoPtr->flags |= DINFO_OUT_OF_DATE;
if (!(dInfoPtr->flags & REDRAW_PENDING)) {
dInfoPtr->flags |= REDRAW_PENDING;
***************
*** 3376,3381 ****
--- 3479,3485 ----
dlPtr = LayoutDLine(textPtr, &index);
dlPtr->nextPtr = lowestPtr;
lowestPtr = dlPtr;
+ if (dlPtr->length == 0 && dlPtr->height == 0) { offset--; break; } /* elide */
TkTextIndexForwBytes(&index, dlPtr->byteCount, &index);
bytesToCount -= dlPtr->byteCount;
} while ((bytesToCount > 0)
***************
*** 3388,3394 ****
break;
}
}
!
/*
* Discard the display lines, then either return or prepare
* for the next display line to lay out.
--- 3492,3498 ----
break;
}
}
!
/*
* Discard the display lines, then either return or prepare
* for the next display line to lay out.
***************
*** 3417,3422 ****
--- 3521,3527 ----
TkBTreeNumLines(textPtr->tree));
for (i = 0; i < offset; i++) {
dlPtr = LayoutDLine(textPtr, &textPtr->topIndex);
+ if (dlPtr->length == 0 && dlPtr->height == 0) offset++;
dlPtr->nextPtr = NULL;
TkTextIndexForwBytes(&textPtr->topIndex, dlPtr->byteCount, &new);
FreeDLines(textPtr, dlPtr, (DLine *) NULL, 0);
***************
*** 3959,3965 ****
* index of the character nearest to (x,y). */
{
TextDInfo *dInfoPtr = textPtr->dInfoPtr;
! register DLine *dlPtr;
register TkTextDispChunk *chunkPtr;
/*
--- 4064,4070 ----
* index of the character nearest to (x,y). */
{
TextDInfo *dInfoPtr = textPtr->dInfoPtr;
! register DLine *dlPtr, *validdlPtr;
register TkTextDispChunk *chunkPtr;
/*
***************
*** 3992,3999 ****
* Find the display line containing the desired y-coordinate.
*/
! for (dlPtr = dInfoPtr->dLinePtr; y >= (dlPtr->y + dlPtr->height);
dlPtr = dlPtr->nextPtr) {
if (dlPtr->nextPtr == NULL) {
/*
* Y-coordinate is off the bottom of the displayed text.
--- 4097,4105 ----
* Find the display line containing the desired y-coordinate.
*/
! for (dlPtr = validdlPtr = dInfoPtr->dLinePtr; y >= (dlPtr->y + dlPtr->height);
dlPtr = dlPtr->nextPtr) {
+ if (dlPtr->chunkPtr !=NULL) validdlPtr = dlPtr;
if (dlPtr->nextPtr == NULL) {
/*
* Y-coordinate is off the bottom of the displayed text.
***************
*** 4004,4009 ****
--- 4110,4117 ----
break;
}
}
+ if (dlPtr->chunkPtr == NULL) dlPtr = validdlPtr;
+
/*
* Scan through the line's chunks to find the one that contains
***************
*** 4177,4182 ****
--- 4285,4291 ----
{
TextDInfo *dInfoPtr = textPtr->dInfoPtr;
DLine *dlPtr;
+ int dlx;
/*
* Make sure that all of the screen layout information is up to date.
***************
*** 4195,4202 ****
return -1;
}
! *xPtr = dInfoPtr->x - dInfoPtr->curPixelOffset + dlPtr->chunkPtr->x;
! *widthPtr = dlPtr->length - dlPtr->chunkPtr->x;
*yPtr = dlPtr->y;
if ((dlPtr->y + dlPtr->height) > dInfoPtr->maxY) {
*heightPtr = dInfoPtr->maxY - dlPtr->y;
--- 4304,4312 ----
return -1;
}
! dlx = (dlPtr->chunkPtr != NULL? dlPtr->chunkPtr->x: 0);
! *xPtr = dInfoPtr->x - dInfoPtr->curPixelOffset + dlx;
! *widthPtr = dlPtr->length - dlx;
*yPtr = dlPtr->y;
if ((dlPtr->y + dlPtr->height) > dInfoPtr->maxY) {
*heightPtr = dInfoPtr->maxY - dlPtr->y;
***************
*** 4207,4212 ****
--- 4317,4357 ----
return 0;
}
+ static void
+ ElideBboxProc(chunkPtr, index, y, lineHeight, baseline, xPtr, yPtr,
+ widthPtr, heightPtr)
+ TkTextDispChunk *chunkPtr; /* Chunk containing desired char. */
+ int index; /* Index of desired character within
+ * the chunk. */
+ int y; /* Topmost pixel in area allocated
+ * for this line. */
+ int lineHeight; /* Height of line, in pixels. */
+ int baseline; /* Location of line's baseline, in
+ * pixels measured down from y. */
+ int *xPtr, *yPtr; /* Gets filled in with coords of
+ * character's upper-left pixel.
+ * X-coord is in same coordinate
+ * system as chunkPtr->x. */
+ int *widthPtr; /* Gets filled in with width of
+ * character, in pixels. */
+ int *heightPtr; /* Gets filled in with height of
+ * character, in pixels. */
+ {
+ *xPtr = chunkPtr->x;
+ *yPtr = y;
+ *widthPtr = *heightPtr = 0;
+ }
+
+
+ static int
+ ElideMeasureProc(chunkPtr, x)
+ TkTextDispChunk *chunkPtr; /* Chunk containing desired coord. */
+ int x; /* X-coordinate, in same coordinate
+ * system as chunkPtr->x. */
+ {
+ return 0 /*chunkPtr->numBytes - 1*/;
+ }
+
/*
*--------------------------------------------------------------
*
***************
*** 4434,4440 ****
* Draw the text, underline, and overstrike for this chunk.
*/
! if (ciPtr->numBytes > offsetBytes) {
int numBytes = ciPtr->numBytes - offsetBytes;
char *string = ciPtr->chars + offsetBytes;
--- 4579,4585 ----
* Draw the text, underline, and overstrike for this chunk.
*/
! if (!sValuePtr->elide && ciPtr->numBytes > offsetBytes) {
int numBytes = ciPtr->numBytes - offsetBytes;
char *string = ciPtr->chars + offsetBytes;
*** tkTextTag.c 1999/04/14 18:05:40 1.1
--- ../generic/tkTextTag.c 1999/04/14 18:06:20
***************
*** 63,68 ****
--- 63,71 ----
{TK_CONFIG_STRING, "-underline", (char *) NULL, (char *) NULL,
(char *) NULL, Tk_Offset(TkTextTag, underlineString),
TK_CONFIG_NULL_OK},
+ {TK_CONFIG_STRING, "-elide", (char *) NULL, (char *) NULL,
+ (char *) NULL, Tk_Offset(TkTextTag, elideString),
+ TK_CONFIG_NULL_OK},
{TK_CONFIG_UID, "-wrap", (char *) NULL, (char *) NULL,
(char *) NULL, Tk_Offset(TkTextTag, wrapMode),
TK_CONFIG_NULL_OK},
***************
*** 391,396 ****
--- 394,405 ----
return TCL_ERROR;
}
}
+ if (tagPtr->elideString != NULL) {
+ if (Tcl_GetBoolean(interp, tagPtr->elideString,
+ &tagPtr->elide) != TCL_OK) {
+ return TCL_ERROR;
+ }
+ }
if ((tagPtr->wrapMode != NULL)
&& (tagPtr->wrapMode != Tk_GetUid("char"))
&& (tagPtr->wrapMode != Tk_GetUid("none"))
***************
*** 432,437 ****
--- 441,447 ----
|| (tagPtr->spacing3String != NULL)
|| (tagPtr->tabString != NULL)
|| (tagPtr->underlineString != NULL)
+ || (tagPtr->elideString != NULL)
|| (tagPtr->wrapMode != NULL)) {
tagPtr->affectsDisplay = 1;
}
***************
*** 824,829 ****
--- 834,841 ----
tagPtr->tabArrayPtr = NULL;
tagPtr->underlineString = NULL;
tagPtr->underline = 0;
+ tagPtr->elideString = NULL;
+ tagPtr->elide = 0;
tagPtr->wrapMode = NULL;
tagPtr->affectsDisplay = 0;
textPtr->numTags++;
***************
*** 947,952 ****
--- 959,967 ----
}
if (tagPtr->underlineString != NULL) {
ckfree(tagPtr->underlineString);
+ }
+ if (tagPtr->elideString != NULL) {
+ ckfree(tagPtr->elideString);
}
ckfree((char *) tagPtr);
}

1
x11/tk82/pkg/COMMENT Normal file
View File

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

4
x11/tk82/pkg/DESCR Normal file
View File

@ -0,0 +1,4 @@
This is Tk version 8.2, 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.

32
x11/tk82/pkg/INSTALL.wish Normal file
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

510
x11/tk82/pkg/PLIST Normal file
View File

@ -0,0 +1,510 @@
bin/wish8.2
include/tk8.2/generic/default.h
include/tk8.2/generic/ks_names.h
include/tk8.2/generic/tk.h
include/tk8.2/generic/tk3d.h
include/tk8.2/generic/tkButton.h
include/tk8.2/generic/tkCanvas.h
include/tk8.2/generic/tkColor.h
include/tk8.2/generic/tkDecls.h
include/tk8.2/generic/tkFileFilter.h
include/tk8.2/generic/tkFont.h
include/tk8.2/generic/tkInitScript.h
include/tk8.2/generic/tkInt.h
include/tk8.2/generic/tkIntDecls.h
include/tk8.2/generic/tkIntPlatDecls.h
include/tk8.2/generic/tkIntXlibDecls.h
include/tk8.2/generic/tkMenu.h
include/tk8.2/generic/tkMenubutton.h
include/tk8.2/generic/tkPlatDecls.h
include/tk8.2/generic/tkPort.h
include/tk8.2/generic/tkScale.h
include/tk8.2/generic/tkScrollbar.h
include/tk8.2/generic/tkSelect.h
include/tk8.2/generic/tkText.h
include/tk8.2/tk.h
include/tk8.2/tkDecls.h
include/tk8.2/unix/tkUnixDefault.h
include/tk8.2/unix/tkUnixInt.h
include/tk8.2/unix/tkUnixPort.h
lib/libtk82.a
lib/libtk82.so
lib/libtk82.so.1
lib/libtkstub82.a
@exec /sbin/ldconfig -m %B
@unexec /sbin/ldconfig -R
lib/tk8.2/bgerror.tcl
lib/tk8.2/button.tcl
lib/tk8.2/clrpick.tcl
lib/tk8.2/comdlg.tcl
lib/tk8.2/console.tcl
lib/tk8.2/demos/README
lib/tk8.2/demos/arrow.tcl
lib/tk8.2/demos/bind.tcl
lib/tk8.2/demos/bitmap.tcl
lib/tk8.2/demos/browse
lib/tk8.2/demos/button.tcl
lib/tk8.2/demos/check.tcl
lib/tk8.2/demos/clrpick.tcl
lib/tk8.2/demos/colors.tcl
lib/tk8.2/demos/cscroll.tcl
lib/tk8.2/demos/ctext.tcl
lib/tk8.2/demos/dialog1.tcl
lib/tk8.2/demos/dialog2.tcl
lib/tk8.2/demos/entry1.tcl
lib/tk8.2/demos/entry2.tcl
lib/tk8.2/demos/filebox.tcl
lib/tk8.2/demos/floor.tcl
lib/tk8.2/demos/form.tcl
lib/tk8.2/demos/hello
lib/tk8.2/demos/hscale.tcl
lib/tk8.2/demos/icon.tcl
lib/tk8.2/demos/image1.tcl
lib/tk8.2/demos/image2.tcl
lib/tk8.2/demos/images/earth.gif
lib/tk8.2/demos/images/earthris.gif
lib/tk8.2/demos/images/face.bmp
lib/tk8.2/demos/images/flagdown.bmp
lib/tk8.2/demos/images/flagup.bmp
lib/tk8.2/demos/images/gray25.bmp
lib/tk8.2/demos/images/letters.bmp
lib/tk8.2/demos/images/noletter.bmp
lib/tk8.2/demos/images/pattern.bmp
lib/tk8.2/demos/images/tcllogo.gif
lib/tk8.2/demos/images/teapot.ppm
lib/tk8.2/demos/items.tcl
lib/tk8.2/demos/ixset
lib/tk8.2/demos/label.tcl
lib/tk8.2/demos/license.terms
lib/tk8.2/demos/menu.tcl
lib/tk8.2/demos/menubu.tcl
lib/tk8.2/demos/msgbox.tcl
lib/tk8.2/demos/plot.tcl
lib/tk8.2/demos/puzzle.tcl
lib/tk8.2/demos/radio.tcl
lib/tk8.2/demos/rmt
lib/tk8.2/demos/rolodex
lib/tk8.2/demos/ruler.tcl
lib/tk8.2/demos/sayings.tcl
lib/tk8.2/demos/search.tcl
lib/tk8.2/demos/square
lib/tk8.2/demos/states.tcl
lib/tk8.2/demos/style.tcl
lib/tk8.2/demos/tclIndex
lib/tk8.2/demos/tcolor
lib/tk8.2/demos/text.tcl
lib/tk8.2/demos/timer
lib/tk8.2/demos/twind.tcl
lib/tk8.2/demos/vscale.tcl
lib/tk8.2/demos/widget
lib/tk8.2/dialog.tcl
lib/tk8.2/entry.tcl
lib/tk8.2/focus.tcl
lib/tk8.2/images/README
lib/tk8.2/images/logo.eps
lib/tk8.2/images/logo100.gif
lib/tk8.2/images/logo64.gif
lib/tk8.2/images/logoLarge.gif
lib/tk8.2/images/logoMed.gif
lib/tk8.2/images/pwrdLogo.eps
lib/tk8.2/images/pwrdLogo100.gif
lib/tk8.2/images/pwrdLogo150.gif
lib/tk8.2/images/pwrdLogo175.gif
lib/tk8.2/images/pwrdLogo200.gif
lib/tk8.2/images/pwrdLogo75.gif
lib/tk8.2/images/tai-ku.gif
lib/tk8.2/listbox.tcl
lib/tk8.2/menu.tcl
lib/tk8.2/msgbox.tcl
lib/tk8.2/obsolete.tcl
lib/tk8.2/optMenu.tcl
lib/tk8.2/palette.tcl
lib/tk8.2/prolog.ps
lib/tk8.2/safetk.tcl
lib/tk8.2/scale.tcl
lib/tk8.2/scrlbar.tcl
lib/tk8.2/tclIndex
lib/tk8.2/tearoff.tcl
lib/tk8.2/text.tcl
lib/tk8.2/tk.tcl
lib/tk8.2/tkAppInit.c
lib/tk8.2/tkConfig.sh
lib/tk8.2/tkfbox.tcl
lib/tk8.2/xmfbox.tcl
@dirrm lib/tk8.2/demos/images
@dirrm lib/tk8.2/demos
@dirrm lib/tk8.2/images
@dirrm lib/tk8.2
@dirrm include/tk8.2/unix
@dirrm include/tk8.2/generic
@dirrm include/tk8.2
man/man1/wish.1
man/man3/3DBorder.3
man/man3/BindTable.3
man/man3/CanvPsY.3
man/man3/CanvTkwin.3
man/man3/CanvTxtInfo.3
man/man3/Clipboard.3
man/man3/ClrSelect.3
man/man3/ConfigWidg.3
man/man3/ConfigWind.3
man/man3/CoordToWin.3
man/man3/CrtErrHdlr.3
man/man3/CrtGenHdlr.3
man/man3/CrtImgType.3
man/man3/CrtItemType.3
man/man3/CrtPhImgFmt.3
man/man3/CrtSelHdlr.3
man/man3/CrtWindow.3
man/man3/DeleteImg.3
man/man3/DrawFocHlt.3
man/man3/EventHndlr.3
man/man3/FindPhoto.3
man/man3/FontId.3
man/man3/FreeXId.3
man/man3/GeomReq.3
man/man3/GetAnchor.3
man/man3/GetBitmap.3
man/man3/GetCapStyl.3
man/man3/GetClrmap.3
man/man3/GetColor.3
man/man3/GetCursor.3
man/man3/GetFont.3
man/man3/GetGC.3
man/man3/GetImage.3
man/man3/GetJoinStl.3
man/man3/GetJustify.3
man/man3/GetOption.3
man/man3/GetPixels.3
man/man3/GetPixmap.3
man/man3/GetRelief.3
man/man3/GetRootCrd.3
man/man3/GetScroll.3
man/man3/GetSelect.3
man/man3/GetUid.3
man/man3/GetVRoot.3
man/man3/GetVisual.3
man/man3/HandleEvent.3
man/man3/IdToWindow.3
man/man3/ImgChanged.3
man/man3/InternAtom.3
man/man3/MainLoop.3
man/man3/MainWin.3
man/man3/MaintGeom.3
man/man3/ManageGeom.3
man/man3/MapWindow.3
man/man3/MeasureChar.3
man/man3/MoveToplev.3
man/man3/Name.3
man/man3/NameOfImg.3
man/man3/OwnSelect.3
man/man3/ParseArgv.3
man/man3/QWinEvent.3
man/man3/Restack.3
man/man3/RestrictEv.3
man/man3/SetAppName.3
man/man3/SetClass.3
man/man3/SetGrid.3
man/man3/SetOptions.3
man/man3/SetVisual.3
man/man3/StrictMotif.3
man/man3/TextLayout.3
man/man3/Tk_Init.3
man/man3/Tk_Main.3
man/man3/TkInitStubs.3
man/man3/WindowId.3
man/mann/bell.n
man/mann/bind.n
man/mann/bindtags.n
man/mann/bitmap.n
man/mann/button.n
man/mann/canvas.n
man/mann/checkbutton.n
man/mann/chooseColor.n
man/mann/clipboard.n
man/mann/destroy.n
man/mann/dialog.n
man/mann/entry.n
man/mann/event.n
man/mann/focus.n
man/mann/focusNext.n
man/mann/font.n
man/mann/frame.n
man/mann/getOpenFile.n
man/mann/grab.n
man/mann/grid.n
man/mann/image.n
man/mann/label.n
man/mann/listbox.n
man/mann/loadTk.n
man/mann/lower.n
man/mann/menu.n
man/mann/menubar.n
man/mann/menubutton.n
man/mann/message.n
man/mann/messageBox.n
man/mann/option.n
man/mann/optionMenu.n
man/mann/options.n
man/mann/pack-old.n
man/mann/pack.n
man/mann/palette.n
man/mann/photo.n
man/mann/place.n
man/mann/popup.n
man/mann/radiobutton.n
man/mann/raise.n
man/mann/scale.n
man/mann/scrollbar.n
man/mann/selection.n
man/mann/send.n
man/mann/text.n
man/mann/tk.n
man/mann/tkerror.n
man/mann/tkvars.n
man/mann/tkwait.n
man/mann/toplevel.n
man/mann/winfo.n
man/mann/wm.n
@exec ln -sf %D/man/man3/3DBorder.3 $D/man/man4/Tk_Alloc3DBorderFromObj.3
@exec ln -sf %D/man/man3/3DBorder.3 $D/man/man4/Tk_Get3DBorder.3
@exec ln -sf %D/man/man3/3DBorder.3 $D/man/man4/Tk_Get3DBorderFromObj.3
@exec ln -sf %D/man/man3/3DBorder.3 $D/man/man4/Tk_Draw3DRectangle.3
@exec ln -sf %D/man/man3/3DBorder.3 $D/man/man4/Tk_Fill3DRectangle.3
@exec ln -sf %D/man/man3/3DBorder.3 $D/man/man4/Tk_Draw3DPolygon.3
@exec ln -sf %D/man/man3/3DBorder.3 $D/man/man4/Tk_Fill3DPolygon.3
@exec ln -sf %D/man/man3/3DBorder.3 $D/man/man4/Tk_3DVerticalBevel.3
@exec ln -sf %D/man/man3/3DBorder.3 $D/man/man4/Tk_3DHorizontalBevel.3
@exec ln -sf %D/man/man3/3DBorder.3 $D/man/man4/Tk_SetBackgroundFromBorder.3
@exec ln -sf %D/man/man3/3DBorder.3 $D/man/man4/Tk_NameOf3DBorder.3
@exec ln -sf %D/man/man3/3DBorder.3 $D/man/man4/Tk_3DBorderColor.3
@exec ln -sf %D/man/man3/3DBorder.3 $D/man/man4/Tk_3DBorderGC.3
@exec ln -sf %D/man/man3/3DBorder.3 $D/man/man4/Tk_Free3DBorderFromObj.3
@exec ln -sf %D/man/man3/3DBorder.3 $D/man/man4/Tk_Free3DBorder.3
@exec ln -sf %D/man/man3/BindTable.3 $D/man/man4/Tk_CreateBindingTable.3
@exec ln -sf %D/man/man3/BindTable.3 $D/man/man4/Tk_DeleteBindingTable.3
@exec ln -sf %D/man/man3/BindTable.3 $D/man/man4/Tk_CreateBinding.3
@exec ln -sf %D/man/man3/BindTable.3 $D/man/man4/Tk_DeleteBinding.3
@exec ln -sf %D/man/man3/BindTable.3 $D/man/man4/Tk_GetBinding.3
@exec ln -sf %D/man/man3/BindTable.3 $D/man/man4/Tk_GetAllBindings.3
@exec ln -sf %D/man/man3/BindTable.3 $D/man/man4/Tk_DeleteAllBindings.3
@exec ln -sf %D/man/man3/BindTable.3 $D/man/man4/Tk_BindEvent.3
@exec ln -sf %D/man/man3/CanvPsY.3 $D/man/man4/Tk_CanvasPsY.3
@exec ln -sf %D/man/man3/CanvPsY.3 $D/man/man4/Tk_CanvasPsBitmap.3
@exec ln -sf %D/man/man3/CanvPsY.3 $D/man/man4/Tk_CanvasPsColor.3
@exec ln -sf %D/man/man3/CanvPsY.3 $D/man/man4/Tk_CanvasPsFont.3
@exec ln -sf %D/man/man3/CanvPsY.3 $D/man/man4/Tk_CanvasPsPath.3
@exec ln -sf %D/man/man3/CanvPsY.3 $D/man/man4/Tk_CanvasPsStipple.3
@exec ln -sf %D/man/man3/CanvTkwin.3 $D/man/man4/Tk_CanvasTkwin.3
@exec ln -sf %D/man/man3/CanvTkwin.3 $D/man/man4/Tk_CanvasGetCoord.3
@exec ln -sf %D/man/man3/CanvTkwin.3 $D/man/man4/Tk_CanvasDrawableCoords.3
@exec ln -sf %D/man/man3/CanvTkwin.3 $D/man/man4/Tk_CanvasSetStippleOrigin.3
@exec ln -sf %D/man/man3/CanvTkwin.3 $D/man/man4/Tk_CanvasWindowCoords.3
@exec ln -sf %D/man/man3/CanvTkwin.3 $D/man/man4/Tk_CanvasEventuallyRedraw.3
@exec ln -sf %D/man/man3/CanvTkwin.3 $D/man/man4/Tk_CanvasTagsOption.3
@exec ln -sf %D/man/man3/CanvTxtInfo.3 $D/man/man4/Tk_CanvasTextInfo.3
@exec ln -sf %D/man/man3/Clipboard.3 $D/man/man4/Tk_ClipboardClear.3
@exec ln -sf %D/man/man3/Clipboard.3 $D/man/man4/Tk_ClipboardAppend.3
@exec ln -sf %D/man/man3/ClrSelect.3 $D/man/man4/Tk_ClearSelection.3
@exec ln -sf %D/man/man3/ConfigWidg.3 $D/man/man4/Tk_ConfigureWidget.3
@exec ln -sf %D/man/man3/ConfigWidg.3 $D/man/man4/Tk_ConfigureInfo.3
@exec ln -sf %D/man/man3/ConfigWidg.3 $D/man/man4/Tk_ConfigureValue.3
@exec ln -sf %D/man/man3/ConfigWidg.3 $D/man/man4/Tk_FreeOptions.3
@exec ln -sf %D/man/man3/ConfigWind.3 $D/man/man4/Tk_ConfigureWindow.3
@exec ln -sf %D/man/man3/ConfigWind.3 $D/man/man4/Tk_MoveWindow.3
@exec ln -sf %D/man/man3/ConfigWind.3 $D/man/man4/Tk_ResizeWindow.3
@exec ln -sf %D/man/man3/ConfigWind.3 $D/man/man4/Tk_MoveResizeWindow.3
@exec ln -sf %D/man/man3/ConfigWind.3 $D/man/man4/Tk_SetWindowBorderWidth.3
@exec ln -sf %D/man/man3/ConfigWind.3 $D/man/man4/Tk_ChangeWindowAttributes.3
@exec ln -sf %D/man/man3/ConfigWind.3 $D/man/man4/Tk_SetWindowBackground.3
@exec ln -sf %D/man/man3/ConfigWind.3 $D/man/man4/Tk_SetWindowBackgroundPixmap.3
@exec ln -sf %D/man/man3/ConfigWind.3 $D/man/man4/Tk_SetWindowBorder.3
@exec ln -sf %D/man/man3/ConfigWind.3 $D/man/man4/Tk_SetWindowBorderPixmap.3
@exec ln -sf %D/man/man3/ConfigWind.3 $D/man/man4/Tk_SetWindowColormap.3
@exec ln -sf %D/man/man3/ConfigWind.3 $D/man/man4/Tk_DefineCursor.3
@exec ln -sf %D/man/man3/ConfigWind.3 $D/man/man4/Tk_UndefineCursor.3
@exec ln -sf %D/man/man3/CoordToWin.3 $D/man/man4/Tk_CoordsToWindow.3
@exec ln -sf %D/man/man3/CrtErrHdlr.3 $D/man/man4/Tk_CreateErrorHandler.3
@exec ln -sf %D/man/man3/CrtErrHdlr.3 $D/man/man4/Tk_DeleteErrorHandler.3
@exec ln -sf %D/man/man3/CrtGenHdlr.3 $D/man/man4/Tk_CreateGenericHandler.3
@exec ln -sf %D/man/man3/CrtGenHdlr.3 $D/man/man4/Tk_DeleteGenericHandler.3
@exec ln -sf %D/man/man3/CrtImgType.3 $D/man/man4/Tk_CreateImageType.3
@exec ln -sf %D/man/man3/CrtImgType.3 $D/man/man4/Tk_GetImageMasterData.3
@exec ln -sf %D/man/man3/CrtItemType.3 $D/man/man4/Tk_CreateItemType.3
@exec ln -sf %D/man/man3/CrtItemType.3 $D/man/man4/Tk_GetItemTypes.3
@exec ln -sf %D/man/man3/CrtPhImgFmt.3 $D/man/man4/Tk_CreatePhotoImageFormat.3
@exec ln -sf %D/man/man3/CrtSelHdlr.3 $D/man/man4/Tk_CreateSelHandler.3
@exec ln -sf %D/man/man3/CrtSelHdlr.3 $D/man/man4/Tk_DeleteSelHandler.3
@exec ln -sf %D/man/man3/CrtWindow.3 $D/man/man4/Tk_CreateWindow.3
@exec ln -sf %D/man/man3/CrtWindow.3 $D/man/man4/Tk_CreateWindowFromPath.3
@exec ln -sf %D/man/man3/CrtWindow.3 $D/man/man4/Tk_DestroyWindow.3
@exec ln -sf %D/man/man3/CrtWindow.3 $D/man/man4/Tk_MakeWindowExist.3
@exec ln -sf %D/man/man3/DeleteImg.3 $D/man/man4/Tk_DeleteImage.3
@exec ln -sf %D/man/man3/DrawFocHlt.3 $D/man/man4/Tk_DrawFocusHighlight.3
@exec ln -sf %D/man/man3/EventHndlr.3 $D/man/man4/Tk_CreateEventHandler.3
@exec ln -sf %D/man/man3/EventHndlr.3 $D/man/man4/Tk_DeleteEventHandler.3
@exec ln -sf %D/man/man3/FindPhoto.3 $D/man/man4/Tk_FindPhoto.3
@exec ln -sf %D/man/man3/FindPhoto.3 $D/man/man4/Tk_PhotoPutBlock.3
@exec ln -sf %D/man/man3/FindPhoto.3 $D/man/man4/Tk_PhotoPutZoomedBlock.3
@exec ln -sf %D/man/man3/FindPhoto.3 $D/man/man4/Tk_PhotoGetImage.3
@exec ln -sf %D/man/man3/FindPhoto.3 $D/man/man4/Tk_PhotoBlank.3
@exec ln -sf %D/man/man3/FindPhoto.3 $D/man/man4/Tk_PhotoExpand.3
@exec ln -sf %D/man/man3/FindPhoto.3 $D/man/man4/Tk_PhotoGetSize.3
@exec ln -sf %D/man/man3/FindPhoto.3 $D/man/man4/Tk_PhotoSetSize.3
@exec ln -sf %D/man/man3/FontId.3 $D/man/man4/Tk_FontId.3
@exec ln -sf %D/man/man3/FontId.3 $D/man/man4/Tk_FontMetrics.3
@exec ln -sf %D/man/man3/FontId.3 $D/man/man4/Tk_PostscriptFontName.3
@exec ln -sf %D/man/man3/FreeXId.3 $D/man/man4/Tk_FreeXId.3
@exec ln -sf %D/man/man3/GeomReq.3 $D/man/man4/Tk_GeometryRequest.3
@exec ln -sf %D/man/man3/GeomReq.3 $D/man/man4/Tk_SetInternalBorder.3
@exec ln -sf %D/man/man3/GetAnchor.3 $D/man/man4/Tk_GetAnchorFromObj.3
@exec ln -sf %D/man/man3/GetAnchor.3 $D/man/man4/Tk_GetAnchor.3
@exec ln -sf %D/man/man3/GetAnchor.3 $D/man/man4/Tk_NameOfAnchor.3
@exec ln -sf %D/man/man3/GetBitmap.3 $D/man/man4/Tk_AllocBitmapFromObj.3
@exec ln -sf %D/man/man3/GetBitmap.3 $D/man/man4/Tk_GetBitmap.3
@exec ln -sf %D/man/man3/GetBitmap.3 $D/man/man4/Tk_GetBitmapFromObj.3
@exec ln -sf %D/man/man3/GetBitmap.3 $D/man/man4/Tk_DefineBitmap.3
@exec ln -sf %D/man/man3/GetBitmap.3 $D/man/man4/Tk_NameOfBitmap.3
@exec ln -sf %D/man/man3/GetBitmap.3 $D/man/man4/Tk_SizeOfBitmap.3
@exec ln -sf %D/man/man3/GetBitmap.3 $D/man/man4/Tk_FreeBitmapFromObj.3
@exec ln -sf %D/man/man3/GetBitmap.3 $D/man/man4/Tk_FreeBitmap.3
@exec ln -sf %D/man/man3/GetBitmap.3 $D/man/man4/Tk_GetBitmapFromData.3
@exec ln -sf %D/man/man3/GetCapStyl.3 $D/man/man4/Tk_GetCapStyle.3
@exec ln -sf %D/man/man3/GetCapStyl.3 $D/man/man4/Tk_NameOfCapStyle.3
@exec ln -sf %D/man/man3/GetClrmap.3 $D/man/man4/Tk_GetColormap.3
@exec ln -sf %D/man/man3/GetClrmap.3 $D/man/man4/Tk_FreeColormap.3
@exec ln -sf %D/man/man3/GetColor.3 $D/man/man4/Tk_AllocColorFromObj.3
@exec ln -sf %D/man/man3/GetColor.3 $D/man/man4/Tk_GetColor.3
@exec ln -sf %D/man/man3/GetColor.3 $D/man/man4/Tk_GetColorFromObj.3
@exec ln -sf %D/man/man3/GetColor.3 $D/man/man4/Tk_GetColorByValue.3
@exec ln -sf %D/man/man3/GetColor.3 $D/man/man4/Tk_NameOfColor.3
@exec ln -sf %D/man/man3/GetColor.3 $D/man/man4/Tk_FreeColorFromObj.3
@exec ln -sf %D/man/man3/GetColor.3 $D/man/man4/Tk_FreeColor.3
@exec ln -sf %D/man/man3/GetCursor.3 $D/man/man4/Tk_AllocCursorFromObj.3
@exec ln -sf %D/man/man3/GetCursor.3 $D/man/man4/Tk_GetCursor.3
@exec ln -sf %D/man/man3/GetCursor.3 $D/man/man4/Tk_GetCursorFromObj.3
@exec ln -sf %D/man/man3/GetCursor.3 $D/man/man4/Tk_GetCursorFromData.3
@exec ln -sf %D/man/man3/GetCursor.3 $D/man/man4/Tk_NameOfCursor.3
@exec ln -sf %D/man/man3/GetCursor.3 $D/man/man4/Tk_FreeCursorFromObj.3
@exec ln -sf %D/man/man3/GetCursor.3 $D/man/man4/Tk_FreeCursor.3
@exec ln -sf %D/man/man3/GetFont.3 $D/man/man4/Tk_AllocFontFromObj.3
@exec ln -sf %D/man/man3/GetFont.3 $D/man/man4/Tk_GetFont.3
@exec ln -sf %D/man/man3/GetFont.3 $D/man/man4/Tk_GetFontFromObj.3
@exec ln -sf %D/man/man3/GetFont.3 $D/man/man4/Tk_NameOfFont.3
@exec ln -sf %D/man/man3/GetFont.3 $D/man/man4/Tk_FreeFontFromObj.3
@exec ln -sf %D/man/man3/GetFont.3 $D/man/man4/Tk_FreeFont.3
@exec ln -sf %D/man/man3/GetGC.3 $D/man/man4/Tk_GetGC.3
@exec ln -sf %D/man/man3/GetGC.3 $D/man/man4/Tk_FreeGC.3
@exec ln -sf %D/man/man3/GetImage.3 $D/man/man4/Tk_GetImage.3
@exec ln -sf %D/man/man3/GetImage.3 $D/man/man4/Tk_RedrawImage.3
@exec ln -sf %D/man/man3/GetImage.3 $D/man/man4/Tk_SizeOfImage.3
@exec ln -sf %D/man/man3/GetImage.3 $D/man/man4/Tk_FreeImage.3
@exec ln -sf %D/man/man3/GetJoinStl.3 $D/man/man4/Tk_GetJoinStyle.3
@exec ln -sf %D/man/man3/GetJoinStl.3 $D/man/man4/Tk_NameOfJoinStyle.3
@exec ln -sf %D/man/man3/GetJustify.3 $D/man/man4/Tk_GetJustifyFromObj.3
@exec ln -sf %D/man/man3/GetJustify.3 $D/man/man4/Tk_GetJustify.3
@exec ln -sf %D/man/man3/GetJustify.3 $D/man/man4/Tk_NameOfJustify.3
@exec ln -sf %D/man/man3/GetOption.3 $D/man/man4/Tk_GetOption.3
@exec ln -sf %D/man/man3/GetPixels.3 $D/man/man4/Tk_GetPixelsFromObj.3
@exec ln -sf %D/man/man3/GetPixels.3 $D/man/man4/Tk_GetPixels.3
@exec ln -sf %D/man/man3/GetPixels.3 $D/man/man4/Tk_GetMMFromObj.3
@exec ln -sf %D/man/man3/GetPixels.3 $D/man/man4/Tk_GetScreenMM.3
@exec ln -sf %D/man/man3/GetPixmap.3 $D/man/man4/Tk_GetPixmap.3
@exec ln -sf %D/man/man3/GetPixmap.3 $D/man/man4/Tk_FreePixmap.3
@exec ln -sf %D/man/man3/GetRelief.3 $D/man/man4/Tk_GetReliefFromObj.3
@exec ln -sf %D/man/man3/GetRelief.3 $D/man/man4/Tk_GetRelief.3
@exec ln -sf %D/man/man3/GetRelief.3 $D/man/man4/Tk_NameOfRelief.3
@exec ln -sf %D/man/man3/GetRootCrd.3 $D/man/man4/Tk_GetRootCoords.3
@exec ln -sf %D/man/man3/GetScroll.3 $D/man/man4/Tk_GetScrollInfo.3
@exec ln -sf %D/man/man3/GetSelect.3 $D/man/man4/Tk_GetSelection.3
@exec ln -sf %D/man/man3/GetUid.3 $D/man/man4/Tk_GetUid.3
@exec ln -sf %D/man/man3/GetUid.3 $D/man/man4/Tk_Uid.3
@exec ln -sf %D/man/man3/GetVRoot.3 $D/man/man4/Tk_GetVRootGeometry.3
@exec ln -sf %D/man/man3/GetVisual.3 $D/man/man4/Tk_GetVisual.3
@exec ln -sf %D/man/man3/HandleEvent.3 $D/man/man4/Tk_HandleEvent.3
@exec ln -sf %D/man/man3/IdToWindow.3 $D/man/man4/Tk_IdToWindow.3
@exec ln -sf %D/man/man3/ImgChanged.3 $D/man/man4/Tk_ImageChanged.3
@exec ln -sf %D/man/man3/InternAtom.3 $D/man/man4/Tk_InternAtom.3
@exec ln -sf %D/man/man3/InternAtom.3 $D/man/man4/Tk_GetAtomName.3
@exec ln -sf %D/man/man3/MainLoop.3 $D/man/man4/Tk_MainLoop.3
@exec ln -sf %D/man/man3/MainWin.3 $D/man/man4/Tk_MainWindow.3
@exec ln -sf %D/man/man3/MaintGeom.3 $D/man/man4/Tk_MaintainGeometry.3
@exec ln -sf %D/man/man3/MaintGeom.3 $D/man/man4/Tk_UnmaintainGeometry.3
@exec ln -sf %D/man/man3/ManageGeom.3 $D/man/man4/Tk_ManageGeometry.3
@exec ln -sf %D/man/man3/MapWindow.3 $D/man/man4/Tk_MapWindow.3
@exec ln -sf %D/man/man3/MapWindow.3 $D/man/man4/Tk_UnmapWindow.3
@exec ln -sf %D/man/man3/MeasureChar.3 $D/man/man4/Tk_MeasureChars.3
@exec ln -sf %D/man/man3/MeasureChar.3 $D/man/man4/Tk_TextWidth.3
@exec ln -sf %D/man/man3/MeasureChar.3 $D/man/man4/Tk_DrawChars.3
@exec ln -sf %D/man/man3/MeasureChar.3 $D/man/man4/Tk_UnderlineChars.3
@exec ln -sf %D/man/man3/MoveToplev.3 $D/man/man4/Tk_MoveToplevelWindow.3
@exec ln -sf %D/man/man3/Name.3 $D/man/man4/Tk_Name.3
@exec ln -sf %D/man/man3/Name.3 $D/man/man4/Tk_PathName.3
@exec ln -sf %D/man/man3/Name.3 $D/man/man4/Tk_NameToWindow.3
@exec ln -sf %D/man/man3/NameOfImg.3 $D/man/man4/Tk_NameOfImage.3
@exec ln -sf %D/man/man3/OwnSelect.3 $D/man/man4/Tk_OwnSelection.3
@exec ln -sf %D/man/man3/ParseArgv.3 $D/man/man4/Tk_ParseArgv.3
@exec ln -sf %D/man/man3/QWinEvent.3 $D/man/man4/Tk_QueueWindowEvent.3
@exec ln -sf %D/man/man3/Restack.3 $D/man/man4/Tk_RestackWindow.3
@exec ln -sf %D/man/man3/RestrictEv.3 $D/man/man4/Tk_RestrictEvents.3
@exec ln -sf %D/man/man3/SetAppName.3 $D/man/man4/Tk_SetAppName.3
@exec ln -sf %D/man/man3/SetClass.3 $D/man/man4/Tk_SetClass.3
@exec ln -sf %D/man/man3/SetClass.3 $D/man/man4/Tk_Class.3
@exec ln -sf %D/man/man3/SetGrid.3 $D/man/man4/Tk_SetGrid.3
@exec ln -sf %D/man/man3/SetGrid.3 $D/man/man4/Tk_UnsetGrid.3
@exec ln -sf %D/man/man3/SetOptions.3 $D/man/man4/Tk_CreateOptionTable.3
@exec ln -sf %D/man/man3/SetOptions.3 $D/man/man4/Tk_DeleteOptionTable.3
@exec ln -sf %D/man/man3/SetOptions.3 $D/man/man4/Tk_InitOptions.3
@exec ln -sf %D/man/man3/SetOptions.3 $D/man/man4/Tk_SetOptions.3
@exec ln -sf %D/man/man3/SetOptions.3 $D/man/man4/Tk_FreeSavedOptions.3
@exec ln -sf %D/man/man3/SetOptions.3 $D/man/man4/Tk_RestoreSavedOptions.3
@exec ln -sf %D/man/man3/SetOptions.3 $D/man/man4/Tk_GetOptionValue.3
@exec ln -sf %D/man/man3/SetOptions.3 $D/man/man4/Tk_GetOptionInfo.3
@exec ln -sf %D/man/man3/SetOptions.3 $D/man/man4/Tk_FreeConfigOptions.3
@exec ln -sf %D/man/man3/SetOptions.3 $D/man/man4/Tk_Offset.3
@exec ln -sf %D/man/man3/SetVisual.3 $D/man/man4/Tk_SetWindowVisual.3
@exec ln -sf %D/man/man3/StrictMotif.3 $D/man/man4/Tk_StrictMotif.3
@exec ln -sf %D/man/man3/TextLayout.3 $D/man/man4/Tk_ComputeTextLayout.3
@exec ln -sf %D/man/man3/TextLayout.3 $D/man/man4/Tk_FreeTextLayout.3
@exec ln -sf %D/man/man3/TextLayout.3 $D/man/man4/Tk_DrawTextLayout.3
@exec ln -sf %D/man/man3/TextLayout.3 $D/man/man4/Tk_UnderlineTextLayout.3
@exec ln -sf %D/man/man3/TextLayout.3 $D/man/man4/Tk_PointToChar.3
@exec ln -sf %D/man/man3/TextLayout.3 $D/man/man4/Tk_CharBbox.3
@exec ln -sf %D/man/man3/TextLayout.3 $D/man/man4/Tk_DistanceToTextLayout.3
@exec ln -sf %D/man/man3/TextLayout.3 $D/man/man4/Tk_IntersectTextLayout.3
@exec ln -sf %D/man/man3/TextLayout.3 $D/man/man4/Tk_TextLayoutToPostscript.3
@exec ln -sf %D/man/man3/WindowId.3 $D/man/man4/Tk_WindowId.3
@exec ln -sf %D/man/man3/WindowId.3 $D/man/man4/Tk_Parent.3
@exec ln -sf %D/man/man3/WindowId.3 $D/man/man4/Tk_Display.3
@exec ln -sf %D/man/man3/WindowId.3 $D/man/man4/Tk_DisplayName.3
@exec ln -sf %D/man/man3/WindowId.3 $D/man/man4/Tk_ScreenNumber.3
@exec ln -sf %D/man/man3/WindowId.3 $D/man/man4/Tk_Screen.3
@exec ln -sf %D/man/man3/WindowId.3 $D/man/man4/Tk_X.3
@exec ln -sf %D/man/man3/WindowId.3 $D/man/man4/Tk_Y.3
@exec ln -sf %D/man/man3/WindowId.3 $D/man/man4/Tk_Width.3
@exec ln -sf %D/man/man3/WindowId.3 $D/man/man4/Tk_Height.3
@exec ln -sf %D/man/man3/WindowId.3 $D/man/man4/Tk_Changes.3
@exec ln -sf %D/man/man3/WindowId.3 $D/man/man4/Tk_Attributes.3
@exec ln -sf %D/man/man3/WindowId.3 $D/man/man4/Tk_IsMapped.3
@exec ln -sf %D/man/man3/WindowId.3 $D/man/man4/Tk_IsTopLevel.3
@exec ln -sf %D/man/man3/WindowId.3 $D/man/man4/Tk_ReqWidth.3
@exec ln -sf %D/man/man3/WindowId.3 $D/man/man4/Tk_ReqHeight.3
@exec ln -sf %D/man/man3/WindowId.3 $D/man/man4/Tk_InternalBorderWidth.3
@exec ln -sf %D/man/man3/WindowId.3 $D/man/man4/Tk_Visual.3
@exec ln -sf %D/man/man3/WindowId.3 $D/man/man4/Tk_Depth.3
@exec ln -sf %D/man/man3/WindowId.3 $D/man/man4/Tk_Colormap.3
@exec ln -sf %D/man/man3/chooseColor.n $D/man/man4/tk_chooseColor.n
@exec ln -sf %D/man/man3/dialog.n $D/man/man4/tk_dialog.n
@exec ln -sf %D/man/man3/focusNext.n $D/man/man4/tk_focusNext.n
@exec ln -sf %D/man/man3/focusNext.n $D/man/man4/tk_focusPrev.n
@exec ln -sf %D/man/man3/focusNext.n $D/man/man4/tk_focusFollowsMouse.n
@exec ln -sf %D/man/man3/getOpenFile.n $D/man/man4/tk_getOpenFile.n
@exec ln -sf %D/man/man3/getOpenFile.n $D/man/man4/tk_getSaveFile.n
@exec ln -sf %D/man/man3/menubar.n $D/man/man4/tk_menuBar.n
@exec ln -sf %D/man/man3/menubar.n $D/man/man4/tk_bindForTraversal.n
@exec ln -sf %D/man/man3/messageBox.n $D/man/man4/tk_messageBox.n
@exec ln -sf %D/man/man3/optionMenu.n $D/man/man4/tk_optionMenu.n
@exec ln -sf %D/man/man3/palette.n $D/man/man4/tk_setPalette.n
@exec ln -sf %D/man/man3/palette.n $D/man/man4/tk_bisque.n
@exec ln -sf %D/man/man3/popup.n $D/man/man4/tk_popup.n
@unexec rm -f Tk_Alloc3DBorderFromObj.3 Tk_Get3DBorder.3 Tk_Get3DBorderFromObj.3 Tk_Draw3DRectangle.3 Tk_Fill3DRectangle.3 Tk_Draw3DPolygon.3 Tk_Fill3DPolygon.3 Tk_3DVerticalBevel.3 Tk_3DHorizontalBevel.3 Tk_SetBackgroundFromBorder.3 Tk_NameOf3DBorder.3 Tk_3DBorderColor.3 Tk_3DBorderGC.3 Tk_Free3DBorderFromObj.3 Tk_Free3DBorder.3 Tk_CreateBindingTable.3 Tk_DeleteBindingTable.3 Tk_CreateBinding.3 Tk_DeleteBinding.3 Tk_GetBinding.3 Tk_GetAllBindings.3 Tk_DeleteAllBindings.3 Tk_BindEvent.3 Tk_CanvasPsY.3 Tk_CanvasPsBitmap.3 Tk_CanvasPsColor.3 Tk_CanvasPsFont.3 Tk_CanvasPsPath.3 Tk_CanvasPsStipple.3 Tk_CanvasTkwin.3 Tk_CanvasGetCoord.3 Tk_CanvasDrawableCoords.3 Tk_CanvasSetStippleOrigin.3 Tk_CanvasWindowCoords.3 Tk_CanvasEventuallyRedraw.3 Tk_CanvasTagsOption.3 Tk_CanvasTextInfo.3 Tk_ClipboardClear.3 Tk_ClipboardAppend.3 Tk_ClearSelection.3 Tk_ConfigureWidget.3 Tk_ConfigureInfo.3 Tk_ConfigureValue.3 Tk_FreeOptions.3 Tk_ConfigureWindow.3 Tk_MoveWindow.3 Tk_ResizeWindow.3 Tk_MoveResizeWindow.3 Tk_SetWindowBorderWidth.3 Tk_ChangeWindowAttributes.3 Tk_SetWindowBackground.3 Tk_SetWindowBackgroundPixmap.3 Tk_SetWindowBorder.3 Tk_SetWindowBorderPixmap.3 Tk_SetWindowColormap.3 Tk_DefineCursor.3 Tk_UndefineCursor.3 Tk_CoordsToWindow.3 Tk_CreateErrorHandler.3 Tk_DeleteErrorHandler.3 Tk_CreateGenericHandler.3 Tk_DeleteGenericHandler.3 Tk_CreateImageType.3 Tk_GetImageMasterData.3 Tk_CreateItemType.3 Tk_GetItemTypes.3 Tk_CreatePhotoImageFormat.3 Tk_CreateSelHandler.3 Tk_DeleteSelHandler.3 Tk_CreateWindow.3 Tk_CreateWindowFromPath.3 Tk_DestroyWindow.3 Tk_MakeWindowExist.3 Tk_DeleteImage.3 Tk_DrawFocusHighlight.3 Tk_CreateEventHandler.3 Tk_DeleteEventHandler.3 Tk_FindPhoto.3 Tk_PhotoPutBlock.3 Tk_PhotoPutZoomedBlock.3 Tk_PhotoGetImage.3 Tk_PhotoBlank.3 Tk_PhotoExpand.3 Tk_PhotoGetSize.3 Tk_PhotoSetSize.3 Tk_FontId.3 Tk_FontMetrics.3 Tk_PostscriptFontName.3 Tk_FreeXId.3 Tk_GeometryRequest.3 Tk_SetInternalBorder.3 Tk_GetAnchorFromObj.3 Tk_GetAnchor.3 Tk_NameOfAnchor.3 Tk_AllocBitmapFromObj.3 Tk_GetBitmap.3 Tk_GetBitmapFromObj.3 Tk_DefineBitmap.3 Tk_NameOfBitmap.3 Tk_SizeOfBitmap.3 Tk_FreeBitmapFromObj.3 Tk_FreeBitmap.3 Tk_GetBitmapFromData.3 Tk_GetCapStyle.3 Tk_NameOfCapStyle.3 Tk_GetColormap.3 Tk_FreeColormap.3 Tk_AllocColorFromObj.3 Tk_GetColor.3 Tk_GetColorFromObj.3 Tk_GetColorByValue.3 Tk_NameOfColor.3 Tk_FreeColorFromObj.3 Tk_FreeColor.3 Tk_AllocCursorFromObj.3 Tk_GetCursor.3 Tk_GetCursorFromObj.3 Tk_GetCursorFromData.3 Tk_NameOfCursor.3 Tk_FreeCursorFromObj.3 Tk_FreeCursor.3 Tk_AllocFontFromObj.3 Tk_GetFont.3 Tk_GetFontFromObj.3 Tk_NameOfFont.3 Tk_FreeFontFromObj.3 Tk_FreeFont.3 Tk_GetGC.3 Tk_FreeGC.3 Tk_GetImage.3 Tk_RedrawImage.3 Tk_SizeOfImage.3 Tk_FreeImage.3 Tk_GetJoinStyle.3 Tk_NameOfJoinStyle.3 Tk_GetJustifyFromObj.3 Tk_GetJustify.3 Tk_NameOfJustify.3 Tk_GetOption.3 Tk_GetPixelsFromObj.3 Tk_GetPixels.3 Tk_GetMMFromObj.3 Tk_GetScreenMM.3 Tk_GetPixmap.3 Tk_FreePixmap.3 Tk_GetReliefFromObj.3 Tk_GetRelief.3 Tk_NameOfRelief.3 Tk_GetRootCoords.3 Tk_GetScrollInfo.3 Tk_GetSelection.3 Tk_GetUid.3 Tk_Uid.3 Tk_GetVRootGeometry.3 Tk_GetVisual.3 Tk_HandleEvent.3 Tk_IdToWindow.3 Tk_ImageChanged.3 Tk_InternAtom.3 Tk_GetAtomName.3 Tk_MainLoop.3 Tk_MainWindow.3 Tk_MaintainGeometry.3 Tk_UnmaintainGeometry.3 Tk_ManageGeometry.3 Tk_MapWindow.3 Tk_UnmapWindow.3 Tk_MeasureChars.3 Tk_TextWidth.3 Tk_DrawChars.3 Tk_UnderlineChars.3 Tk_MoveToplevelWindow.3 Tk_Name.3 Tk_PathName.3 Tk_NameToWindow.3 Tk_NameOfImage.3 Tk_OwnSelection.3 Tk_ParseArgv.3 Tk_QueueWindowEvent.3 Tk_RestackWindow.3 Tk_RestrictEvents.3 Tk_SetAppName.3 Tk_SetClass.3 Tk_Class.3 Tk_SetGrid.3 Tk_UnsetGrid.3 Tk_CreateOptionTable.3 Tk_DeleteOptionTable.3 Tk_InitOptions.3 Tk_SetOptions.3 Tk_FreeSavedOptions.3 Tk_RestoreSavedOptions.3 Tk_GetOptionValue.3 Tk_GetOptionInfo.3 Tk_FreeConfigOptions.3 Tk_Offset.3 Tk_SetWindowVisual.3 Tk_StrictMotif.3 Tk_ComputeTextLayout.3 Tk_FreeTextLayout.3 Tk_DrawTextLayout.3 Tk_UnderlineTextLayout.3 Tk_PointToChar.3 Tk_CharBbox.3 Tk_DistanceToTextLayout.3 Tk_IntersectTextLayout.3 Tk_TextLayoutToPostscript.3 Tk_WindowId.3 Tk_Parent.3 Tk_Display.3 Tk_DisplayName.3 Tk_ScreenNumber.3 Tk_Screen.3 Tk_X.3 Tk_Y.3 Tk_Width.3 Tk_Height.3 Tk_Changes.3 Tk_Attributes.3 Tk_IsMapped.3 Tk_IsTopLevel.3 Tk_ReqWidth.3 Tk_ReqHeight.3 Tk_InternalBorderWidth.3 Tk_Visual.3 Tk_Depth.3 Tk_Colormap.3 tk_chooseColor.n tk_dialog.n tk_focusNext.n tk_focusPrev.n tk_focusFollowsMouse.n tk_getOpenFile.n tk_getSaveFile.n tk_menuBar.n tk_bindForTraversal.n tk_messageBox.n tk_optionMenu.n tk_setPalette.n tk_bisque.n tk_popup.n