diff options
author | agc <agc@pkgsrc.org> | 1997-10-09 11:37:03 +0000 |
---|---|---|
committer | agc <agc@pkgsrc.org> | 1997-10-09 11:37:03 +0000 |
commit | 23d39ca1632344c5d7deb9632538e26c51e03a81 (patch) | |
tree | f15284c94efc2a98db6ffdc419322e5f7c02e3bc /x11 | |
parent | b4d904085832d2c09fde4193da5ee521e6e68095 (diff) | |
download | pkgsrc-23d39ca1632344c5d7deb9632538e26c51e03a81.tar.gz |
Initial import of FreeBSD's x11 ports category into NetBSD packages
system.
Diffstat (limited to 'x11')
44 files changed, 2295 insertions, 0 deletions
diff --git a/x11/Makefile b/x11/Makefile new file mode 100644 index 00000000000..b6a56f35858 --- /dev/null +++ b/x11/Makefile @@ -0,0 +1,98 @@ +# FreeBSD Id: Makefile,v 1.156 1997/09/30 07:54:42 asami Exp +# + + SUBDIR += FWF + SUBDIR += XFree86 + SUBDIR += XFree86-contrib + SUBDIR += Xaw3d + SUBDIR += afterstep + SUBDIR += auis + SUBDIR += bclock + SUBDIR += blast + SUBDIR += blt + SUBDIR += bricons + SUBDIR += camltk41 + SUBDIR += ctwm + SUBDIR += dclock + SUBDIR += emiclock + SUBDIR += emu + SUBDIR += enlightenment + SUBDIR += etlfonts + SUBDIR += explorer + SUBDIR += fbsd-icons + SUBDIR += filerunner + SUBDIR += freefonts + SUBDIR += fvwm + SUBDIR += fvwm2 + SUBDIR += fvwm2-english + SUBDIR += fvwm95 + SUBDIR += getbdf + SUBDIR += gwm + SUBDIR += iv + SUBDIR += lesstif + SUBDIR += libdnd + SUBDIR += libsx + SUBDIR += lupe + SUBDIR += mlvwm + SUBDIR += mouseclock + SUBDIR += neXtaw + SUBDIR += olvwm + SUBDIR += p5-Tcl-Tk + SUBDIR += p5-Tk + SUBDIR += piewm + SUBDIR += pythonqt + SUBDIR += qt + SUBDIR += qvwm + SUBDIR += rclock + SUBDIR += rxvt + SUBDIR += sliderule + SUBDIR += slingshot + SUBDIR += swisswatch + SUBDIR += sxpc + SUBDIR += tix + SUBDIR += tk41 + SUBDIR += tk42 + SUBDIR += tk80 + SUBDIR += tkdesk + SUBDIR += tkgoodstuff + SUBDIR += tvtwm + SUBDIR += viewfax + SUBDIR += wm2 + SUBDIR += x3270 + SUBDIR += xalarm + SUBDIR += xantfarm + SUBDIR += xautolock + SUBDIR += xbuffy + SUBDIR += xcb + SUBDIR += xco + SUBDIR += xcoloredit + SUBDIR += xcolors + SUBDIR += xdaliclock + SUBDIR += xdtm + SUBDIR += xfce + SUBDIR += xfed + SUBDIR += xfedor + SUBDIR += xfishtank + SUBDIR += xfm + SUBDIR += xforms + SUBDIR += xgrab + SUBDIR += xkeycaps + SUBDIR += xloadimage + SUBDIR += xlockmore + SUBDIR += xmascot + SUBDIR += xmbdfed + SUBDIR += xmold + SUBDIR += xpostit + SUBDIR += xpostitPlus + SUBDIR += xprompt + SUBDIR += xscreensaver + SUBDIR += xsnow + SUBDIR += xtacy + SUBDIR += xtestpicture + SUBDIR += xtoolwait + SUBDIR += xview-clients + SUBDIR += xview-config + SUBDIR += xview-lib + SUBDIR += xzoom + +.include <bsd.port.subdir.mk> diff --git a/x11/rclock/Makefile b/x11/rclock/Makefile new file mode 100644 index 00000000000..b9d886715f7 --- /dev/null +++ b/x11/rclock/Makefile @@ -0,0 +1,27 @@ +# ex:ts=8 +# Ports collection Makefile for: rclock +# Version required: 2.19 +# Date created: 24th Feburary 1997 +# Whom: obrien@NUXI.com +# +# FreeBSD Id: Makefile,v 1.1.1.1 1997/03/03 16:27:10 obrien Exp +# + +PKGNAME= rclock-2.20 +DISTNAME= rxvt-2.20 +CATEGORIES= x11 +MASTER_SITES= ${MASTER_SITE_SUNSITE} \ + ftp://ftp.nuclecu.unam.mx/linux/local/rxvt/ \ + ftp://tsx-11.mit.edu/pub/linux/sources/usr.bin.X11/ +MASTER_SITE_SUBDIR= utils/file/managers/mc/rxvt +#MASTER_SITE_SUBDIR= X11/xutils/terms + +MAINTAINER= obrien@FreeBSD.org + +CFLAGS+= '-DMAIL_SPOOL=\"/var/mail/\"' +USE_X11= yes +GNU_CONFIGURE= yes +ALL_TARGET= clock +MAN1= rclock.1 + +.include <bsd.port.mk> diff --git a/x11/rclock/files/md5 b/x11/rclock/files/md5 new file mode 100644 index 00000000000..5b1c00e929a --- /dev/null +++ b/x11/rclock/files/md5 @@ -0,0 +1 @@ +MD5 (rxvt-2.20.tar.gz) = 860432f0d146d0cdf4630967f6c94ae3 diff --git a/x11/rclock/patches/patch-aa b/x11/rclock/patches/patch-aa new file mode 100644 index 00000000000..861a5c1eb6a --- /dev/null +++ b/x11/rclock/patches/patch-aa @@ -0,0 +1,11 @@ +--- Makefile.in.orig Fri Sep 27 10:48:20 1996 ++++ Makefile.in Mon Feb 24 01:09:28 1997 +@@ -7,7 +7,7 @@ + first_rule: all + dummy: + +-subdirs = src doc rclock src/graphics ++subdirs = rclock # src doc rclock src/graphics + + DIST_ETC = etc/XTerm.ad etc/color etc/termcap etc/terminfo etc/xmkdir + diff --git a/x11/rclock/pkg/COMMENT b/x11/rclock/pkg/COMMENT new file mode 100644 index 00000000000..bf5a3a3b596 --- /dev/null +++ b/x11/rclock/pkg/COMMENT @@ -0,0 +1 @@ +analog clock for X w/appointment reminder and mail notification diff --git a/x11/rclock/pkg/DESCR b/x11/rclock/pkg/DESCR new file mode 100644 index 00000000000..a9480179e51 --- /dev/null +++ b/x11/rclock/pkg/DESCR @@ -0,0 +1,7 @@ +Rclock is an analog clock for X intended as an xclock(1) replacement that +conserves memory and has extra features: rclock enters reverse video if +there is mail waiting; an appointment reminder is also builtin. + +The ~/.rclock file lists the messages to display and/or the programs +to run at specified times and dates. + diff --git a/x11/rclock/pkg/PLIST b/x11/rclock/pkg/PLIST new file mode 100644 index 00000000000..d63593c2deb --- /dev/null +++ b/x11/rclock/pkg/PLIST @@ -0,0 +1,2 @@ +bin/rclock +man/man1/rclock.1.gz diff --git a/x11/rxvt/Makefile b/x11/rxvt/Makefile new file mode 100644 index 00000000000..65a2139ad7d --- /dev/null +++ b/x11/rxvt/Makefile @@ -0,0 +1,23 @@ +# New ports collection Makefile for: rxvt +# Version required: 2.20 +# Date created: 5th December 1994 +# Whom: gpalmer@FreeBSD.org +# +# FreeBSD Id: Makefile,v 1.13 1997/03/07 12:29:49 obrien Exp +# + +DISTNAME= rxvt-2.20 +CATEGORIES= x11 +MASTER_SITES= ${MASTER_SITE_SUNSITE} \ + ftp://ftp.nuclecu.unam.mx/linux/local/rxvt/ \ + ftp://tsx-11.mit.edu/pub/linux/sources/usr.bin.X11/ +MASTER_SITE_SUBDIR= utils/file/managers/mc/rxvt +#MASTER_SITE_SUBDIR= X11/xutils/terms + +MAINTAINER= winter@jurai.net + +USE_X11= yes +GNU_CONFIGURE= yes +MAN1= rxvt.1 + +.include <bsd.port.mk> diff --git a/x11/rxvt/files/md5 b/x11/rxvt/files/md5 new file mode 100644 index 00000000000..5b1c00e929a --- /dev/null +++ b/x11/rxvt/files/md5 @@ -0,0 +1 @@ +MD5 (rxvt-2.20.tar.gz) = 860432f0d146d0cdf4630967f6c94ae3 diff --git a/x11/rxvt/patches/patch-aa b/x11/rxvt/patches/patch-aa new file mode 100644 index 00000000000..023eb0f45ff --- /dev/null +++ b/x11/rxvt/patches/patch-aa @@ -0,0 +1,11 @@ +--- Makefile.in.orig Fri Sep 27 10:48:20 1996 ++++ Makefile.in Mon Feb 24 01:09:28 1997 +@@ -7,7 +7,7 @@ + first_rule: all + dummy: + +-subdirs = src doc rclock src/graphics ++subdirs = src doc #rclock src/graphics + + DIST_ETC = etc/XTerm.ad etc/color etc/termcap etc/terminfo etc/xmkdir + diff --git a/x11/rxvt/patches/patch-ab b/x11/rxvt/patches/patch-ab new file mode 100644 index 00000000000..4b6d96b4720 --- /dev/null +++ b/x11/rxvt/patches/patch-ab @@ -0,0 +1,19 @@ +--- ./src/utmp.c.org Thu Jan 23 10:46:02 1997 ++++ ./src/utmp.c Thu Apr 24 15:20:49 1997 +@@ -80,6 +80,8 @@ + #include <stdio.h> + #include <string.h> + ++#include <sys/types.h> ++ + #ifdef HAVE_UTMPX_H + # include <utmpx.h> + # define USE_SYSV_UTMP +@@ -90,7 +92,6 @@ + # endif + #endif + +-#include <sys/types.h> + #include <sys/stat.h> + + #ifdef TIME_WITH_SYS_TIME diff --git a/x11/rxvt/patches/patch-ad b/x11/rxvt/patches/patch-ad new file mode 100644 index 00000000000..467184b4b4f --- /dev/null +++ b/x11/rxvt/patches/patch-ad @@ -0,0 +1,11 @@ +--- doc/Makefile.in.orig Fri Sep 27 10:48:24 1996 ++++ doc/Makefile.in Mon Feb 24 01:14:02 1997 +@@ -25,7 +25,7 @@ + + tags allbin: + +-alldoc: rxvt.1 LSM ++alldoc: rxvt.1 # LSM + + clean: + $(RMF) LSM rxvt.1 *~ diff --git a/x11/rxvt/patches/patch-ae b/x11/rxvt/patches/patch-ae new file mode 100644 index 00000000000..719a8370408 --- /dev/null +++ b/x11/rxvt/patches/patch-ae @@ -0,0 +1,42 @@ +--- src/feature.h.orig Thu Jan 23 10:46:02 1997 ++++ src/feature.h Mon Feb 24 03:56:40 1997 +@@ -136,8 +136,8 @@ + * default rendition rather than the current rendition + * NB: this make break some applications and should used with caution + *----------------------------------------------------------------------*/ +-#define XPM_BACKGROUND +-#define XPM_SCALING ++/* #define XPM_BACKGROUND */ ++/* #define XPM_SCALING */ + #define PATH_ENV "RXVTPATH" + /* #define XPM_BUFFERING */ + /* #define NO_CURSORCOLOR */ +@@ -272,8 +272,9 @@ + * for XTERM_SCROLLBAR it is *always* 14. + *----------------------------------------------------------------------*/ + /* #define XTERM_SCROLLBAR */ +-#define SCROLLBAR_RIGHT ++/* #define SCROLLBAR_RIGHT */ + /* #define SB_WIDTH 10 */ ++#define SB_WIDTH 8 + /*}}}*/ + + /*{{{ menuBar: */ +@@ -367,14 +368,15 @@ + * for BSD-type systems, to define where the tty table is located + * if it isn't /etc/ttytab + *----------------------------------------------------------------------*/ +-/* #define UTMP_SUPPORT */ ++#define UTMP_SUPPORT + #ifdef UTMP_SUPPORT + # ifndef UTMP_FILENAME + /* # define UTMP_FILENAME "/var/adm/utmp" */ + /* # define UTMP_FILENAME "/var/adm/utmp" */ ++# define UTMP_FILENAME "/var/run/utmp" + # endif + # ifndef TTYTAB_FILENAME +-/* # define TTYTAB_FILENAME "/etc/ttys" */ ++# define TTYTAB_FILENAME "/etc/ttys" + # endif + #endif + /*}}}*/ diff --git a/x11/rxvt/patches/patch-ah b/x11/rxvt/patches/patch-ah new file mode 100644 index 00000000000..c12ed63e56c --- /dev/null +++ b/x11/rxvt/patches/patch-ah @@ -0,0 +1,11 @@ +--- src/command.c.orig Fri Sep 27 10:48:22 1996 ++++ src/command.c Mon Feb 24 01:25:51 1997 +@@ -509,7 +509,7 @@ + ttydev = tty_name; + + # define PTYCHAR1 "pqrstuvwxyz" +-# define PTYCHAR2 "0123456789abcdef" ++# define PTYCHAR2 "0123456789abcdefghijklmnopqrstuv" + for (c1 = PTYCHAR1; *c1; c1++) + { + ptydev [len-2] = ttydev [len-2] = *c1; diff --git a/x11/rxvt/pkg/COMMENT b/x11/rxvt/pkg/COMMENT new file mode 100644 index 00000000000..fbd15b64aca --- /dev/null +++ b/x11/rxvt/pkg/COMMENT @@ -0,0 +1 @@ +rxvt - a low memory usage xterm replacement that supports color diff --git a/x11/rxvt/pkg/DESCR b/x11/rxvt/pkg/DESCR new file mode 100644 index 00000000000..ebf227ea910 --- /dev/null +++ b/x11/rxvt/pkg/DESCR @@ -0,0 +1,6 @@ +Rxvt is an xterm replacement which uses a little less memory, and is +suitable for use on machines with small memories. Tek4010 support +is removed. + +Modifications were made by Rob Nation (nation@rocket.sanders.lockheed.com) +to make it a little more compact, and to add and remove certain features. diff --git a/x11/rxvt/pkg/PLIST b/x11/rxvt/pkg/PLIST new file mode 100644 index 00000000000..a8c98f6304e --- /dev/null +++ b/x11/rxvt/pkg/PLIST @@ -0,0 +1,2 @@ +bin/rxvt +man/man1/rxvt.1.gz diff --git a/x11/swisswatch/Makefile b/x11/swisswatch/Makefile new file mode 100644 index 00000000000..d15dd2dc0d5 --- /dev/null +++ b/x11/swisswatch/Makefile @@ -0,0 +1,18 @@ +# New ports collection makefile for: swisswatch +# Version required: 0.0.6 +# Date created: 16 December 1995 +# Whom: Yoshiro MIHIRA <sanpei@yy.cs.keio.ac.jp> +# +# FreeBSD Id: Makefile,v 1.3 1996/11/18 11:43:40 asami Exp +# + +DISTNAME= swisswatch-0.06 +CATEGORIES= x11 +MASTER_SITES= ftp://ftp.iij.ad.jp/pub/X/R5contrib/ +EXTRACT_SUFX= .tar.Z + +MAINTAINER= sanpei@yy.cs.keio.ac.jp + +USE_IMAKE= yes + +.include <bsd.port.mk> diff --git a/x11/swisswatch/files/md5 b/x11/swisswatch/files/md5 new file mode 100644 index 00000000000..58ae911db5a --- /dev/null +++ b/x11/swisswatch/files/md5 @@ -0,0 +1 @@ +MD5 (swisswatch-0.06.tar.Z) = 003c4829d7fc9d93ff1d1fdf3c148395 diff --git a/x11/swisswatch/patches/patch-aa b/x11/swisswatch/patches/patch-aa new file mode 100644 index 00000000000..add8b9947a2 --- /dev/null +++ b/x11/swisswatch/patches/patch-aa @@ -0,0 +1,11 @@ +--- Imakefile.org Sat Dec 16 19:10:12 1995 ++++ Imakefile Sat Dec 16 18:59:27 1995 +@@ -1,7 +1,7 @@ + #ifdef ContribRules + ContribRules + #endif +-DEFINES = ExtensionDefines ++DEFINES = ExtensionDefines -DSHAPE + SRCS = swisswatch.c SwissWatch.c Hand.c Mark.c HandOrMark.c TableConvert.c + OBJS = swisswatch.o SwissWatch.o Hand.o Mark.o HandOrMark.o TableConvert.o + DEPLIBS = $(DEPXTOOLLIB) $(DEPXMULIB) $(DEPEXTENSIONLIB) $(DEPXLIB) diff --git a/x11/swisswatch/pkg/COMMENT b/x11/swisswatch/pkg/COMMENT new file mode 100644 index 00000000000..6eb7733aa0d --- /dev/null +++ b/x11/swisswatch/pkg/COMMENT @@ -0,0 +1 @@ +A Swiss railway clock emulation, and a fancy default appearance. diff --git a/x11/swisswatch/pkg/DESCR b/x11/swisswatch/pkg/DESCR new file mode 100644 index 00000000000..9cab4ac8528 --- /dev/null +++ b/x11/swisswatch/pkg/DESCR @@ -0,0 +1,12 @@ +Swisswatch is a fancy Swiss railway clock emulator. + +This program support color display, you must add belong lines to ~/.Xdefaults. + +#if COLOR +swisswatch*customization: -color +#endif + +and exec `xrdb $HOME/.Xdefaults'. + +- Yoshiro MIHIRA +(sanpei@yy.cs.keio.ac.jp) diff --git a/x11/swisswatch/pkg/PLIST b/x11/swisswatch/pkg/PLIST new file mode 100644 index 00000000000..f551a91becf --- /dev/null +++ b/x11/swisswatch/pkg/PLIST @@ -0,0 +1,4 @@ +bin/swisswatch +lib/X11/app-defaults/SwissWatch +lib/X11/app-defaults/SwissWatch-color +man/man1/swisswatch.1.gz diff --git a/x11/tk80/Makefile b/x11/tk80/Makefile new file mode 100644 index 00000000000..54e45372998 --- /dev/null +++ b/x11/tk80/Makefile @@ -0,0 +1,29 @@ +# New ports collection makefile for: tk8.0 +# Version required: tk8.0 +# Date created: 19 August 1997 +# Whom: jkh +# +# FreeBSD Id: Makefile,v 1.4 1997/10/01 09:20:31 tg Exp +# + +DISTNAME= tk8.0 +PKGNAME= tk-8.0 +CATEGORIES= x11 +MASTER_SITES= ftp://ftp.sunlabs.com/pub/tcl/ + +MAINTAINER= jkh@Freebsd.ORG + +LIB_DEPENDS= tcl80\\.1\\.:${PORTSDIR}/lang/tcl80 + +WRKSRC= ${WRKDIR}/${DISTNAME}/unix +GNU_CONFIGURE= yes +CONFIGURE_ARGS= --enable-shared +CONFIGURE_ENV= PORTSDIR=${PORTSDIR} + +post-install: + ${LDCONFIG} -m ${PREFIX}/lib + +test: + cd ${WRKSRC}; make test + +.include <bsd.port.mk> diff --git a/x11/tk80/files/md5 b/x11/tk80/files/md5 new file mode 100644 index 00000000000..347bde24eae --- /dev/null +++ b/x11/tk80/files/md5 @@ -0,0 +1 @@ +MD5 (tk8.0.tar.gz) = 489cdb76937d05aaec4ee506ba15d7dc diff --git a/x11/tk80/patches/patch-aa b/x11/tk80/patches/patch-aa new file mode 100644 index 00000000000..c39f29c64f7 --- /dev/null +++ b/x11/tk80/patches/patch-aa @@ -0,0 +1,37 @@ +--- configure.orig Fri Aug 15 22:17:52 1997 ++++ configure Wed Oct 1 10:50:54 1997 +@@ -662,14 +662,14 @@ + if test -n "$withval"; then + TCL_BIN_DIR=$withval + else +- TCL_BIN_DIR=`cd ../../tcl8.0/unix; pwd` ++ TCL_BIN_DIR=${prefix}/lib/tcl8.0 + fi + + if test ! -d $TCL_BIN_DIR; then + { echo "configure: error: Tcl directory $TCL_BIN_DIR doesn't exist" 1>&2; exit 1; } + fi +-if test ! -f $TCL_BIN_DIR/Makefile; then +- { echo "configure: error: There's no Makefile in $TCL_BIN_DIR; perhaps you didn't specify the Tcl *build* directory (not the toplevel Tcl directory) or you forgot to configure Tcl?" 1>&2; exit 1; } ++if test ! -f $TCL_BIN_DIR/tclConfig.sh; then ++ { echo "configure: error: There's no tclConfig.sh in $TCL_BIN_DIR; perhaps you didn't specify the Tcl *build* directory (not the toplevel Tcl directory) or you forgot to configure Tcl?" 1>&2; exit 1; } + fi + + #-------------------------------------------------------------------- +@@ -688,6 +688,8 @@ + DL_LIBS=$TCL_DL_LIBS + LD_FLAGS=$TCL_LD_FLAGS + ++TCL_SRC_DIR=${prefix}/include/tcl${TCL_VERSION} ++ + LIB_RUNTIME_DIR='${LIB_RUNTIME_DIR}' + + # If Tcl and Tk are installed in different places, adjust the library +@@ -2271,6 +2273,7 @@ + s%@SHLIB_VERSION@%$SHLIB_VERSION%g + s%@TCL_BIN_DIR@%$TCL_BIN_DIR%g + s%@TCL_BUILD_LIB_SPEC@%$TCL_BUILD_LIB_SPEC%g ++s%@TCL_LIB_SPEC@%$TCL_LIB_SPEC%g + s%@TCL_SRC_DIR@%$TCL_SRC_DIR%g + s%@TCL_VERSION@%$TCL_VERSION%g + s%@TK_BUILD_LIB_SPEC@%$TK_BUILD_LIB_SPEC%g diff --git a/x11/tk80/patches/patch-ab b/x11/tk80/patches/patch-ab new file mode 100644 index 00000000000..feae30fefeb --- /dev/null +++ b/x11/tk80/patches/patch-ab @@ -0,0 +1,137 @@ +--- Makefile.in.orig Fri Aug 15 22:17:51 1997 ++++ Makefile.in Wed Oct 1 10:07:16 1997 +@@ -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,11 +96,11 @@ + + # Libraries to use when linking. This definition is determined by the + # configure script. +-LIBS = @TCL_BUILD_LIB_SPEC@ @LIBS@ $(X11_LIB_SWITCHES) @DL_LIBS@ @MATH_LIBS@ -lc ++LIBS = -L${PREFIX}/lib -ltcl80 @LIBS@ $(X11_LIB_SWITCHES) @DL_LIBS@ @MATH_LIBS@ -lc + + # To change the compiler switches, for example to change from -O + # to -g, change the following line: +-CFLAGS = -O ++CFLAGS = @CFLAGS@ + + # To turn off the security checks that disallow incoming sends when + # the X server appears to be insecure, reverse the comments on the +@@ -134,7 +136,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 + +@@ -290,6 +292,11 @@ + @MAKE_LIB@ + $(RANLIB) @TK_LIB_FILE@ + ++libtk80.a: ${OBJS} ++ rm -f libtk80.a ++ ar cr libtk80.a ${OBJS} ++ $(RANLIB) libtk80.a ++ + # Make target which outputs the list of the .o contained in the Tk lib + # usefull to build a single big shared library containing Tcl/Tk and other + # extensions. used for the Tcl Plugin. -- dl +@@ -340,7 +347,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) wish ++install-binaries: $(TK_LIB_FILE) libtk80.a wish + @for i in $(LIB_INSTALL_DIR) $(BIN_INSTALL_DIR) ; \ + do \ + if [ ! -d $$i ] ; then \ +@@ -354,13 +361,19 @@ + @$(INSTALL_DATA) $(TK_LIB_FILE) $(LIB_INSTALL_DIR)/$(TK_LIB_FILE) + @(cd $(LIB_INSTALL_DIR); $(RANLIB) $(TK_LIB_FILE)) + @chmod 555 $(LIB_INSTALL_DIR)/$(TK_LIB_FILE) ++ @echo "Installing libtk80.a" ++ @$(INSTALL_DATA) libtk80.a $(LIB_INSTALL_DIR)/libtk80.a ++ @(cd $(LIB_INSTALL_DIR); $(RANLIB) libtk80.a) ++ @chmod 555 $(LIB_INSTALL_DIR)/libtk80.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 + + 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 \ +@@ -370,8 +383,18 @@ + else true; \ + fi; \ + done; +- @echo "Installing tk.h" +- @$(INSTALL_DATA) $(GENERIC_DIR)/tk.h $(INCLUDE_INSTALL_DIR)/tk.h ++ @echo "Installing headers" ++ @for i in $(GENERIC_DIR)/*.h ; \ ++ do \ ++ echo "Installing $$i"; \ ++ $(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 + for i in $(SRC_DIR)/library/*.tcl $(SRC_DIR)/library/tclIndex $(SRC_DIR)/library/prolog.ps $(UNIX_DIR)/tkAppInit.c; \ + do \ + echo "Installing $$i"; \ +@@ -430,28 +453,28 @@ + @cd $(SRC_DIR)/doc; for i in *.1; \ + do \ + echo "Installing doc/$$i"; \ +- rm -f $(MAN1_INSTALL_DIR)/$$i; \ ++ rm -f $(MAN1_INSTALL_DIR)/$$i $(MAN1_INSTALL_DIR)/$$i.gz; \ + sed -e '/man\.macros/r man.macros' -e '/man\.macros/d' \ +- $$i > $(MAN1_INSTALL_DIR)/$$i; \ +- chmod 444 $(MAN1_INSTALL_DIR)/$$i; \ ++ $$i | gzip -c > $(MAN1_INSTALL_DIR)/$$i.gz; \ ++ chmod 444 $(MAN1_INSTALL_DIR)/$$i.gz; \ + 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 $(MAN3_INSTALL_DIR)/$$i.gz; \ + sed -e '/man\.macros/r man.macros' -e '/man\.macros/d' \ +- $$i > $(MAN3_INSTALL_DIR)/$$i; \ +- chmod 444 $(MAN3_INSTALL_DIR)/$$i; \ ++ $$i | gzip -c > $(MAN3_INSTALL_DIR)/$$i.gz; \ ++ chmod 444 $(MAN3_INSTALL_DIR)/$$i.gz; \ + done; + $(UNIX_DIR)/mkLinks $(MAN3_INSTALL_DIR) + @cd $(SRC_DIR)/doc; for i in *.n; \ + do \ + echo "Installing doc/$$i"; \ +- rm -f $(MANN_INSTALL_DIR)/$$i; \ ++ rm -f $(MANN_INSTALL_DIR)/$$i $(MANN_INSTALL_DIR)/$$i.gz; \ + sed -e '/man\.macros/r man.macros' -e '/man\.macros/d' \ +- $$i > $(MANN_INSTALL_DIR)/$$i; \ +- chmod 444 $(MANN_INSTALL_DIR)/$$i; \ ++ $$i | gzip -c > $(MANN_INSTALL_DIR)/$$i.gz; \ ++ chmod 444 $(MANN_INSTALL_DIR)/$$i.gz; \ + done; + $(UNIX_DIR)/mkLinks $(MANN_INSTALL_DIR) + diff --git a/x11/tk80/patches/patch-ac b/x11/tk80/patches/patch-ac new file mode 100644 index 00000000000..0709c610025 --- /dev/null +++ b/x11/tk80/patches/patch-ac @@ -0,0 +1,918 @@ +*** tkText.c 1997/07/04 22:39:41 2.0 +--- ../generic/tkText.c 1997/08/15 22:25:21 +*************** +*** 866,871 **** +--- 866,872 ---- + || (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; +*************** +*** 1414,1420 **** + } + } + } +! if (segPtr->typePtr == &tkTextCharType) { + memcpy((VOID *) buffer, (VOID *) (segPtr->body.chars + + offsetInSeg), (size_t) chunkSize); + buffer += chunkSize; +--- 1415,1421 ---- + } + } + } +! if (segPtr->typePtr == &tkTextCharType && !TkTextIsElided(textPtr, &textPtr->selIndex)) { + memcpy((VOID *) buffer, (VOID *) (segPtr->body.chars + + offsetInSeg), (size_t) chunkSize); + buffer += chunkSize; +*************** +*** 1555,1561 **** + int argc; /* Number of arguments. */ + char **argv; /* Argument strings. */ + { +! int backwards, exact, c, i, argsLeft, noCase, leftToScan; + size_t length; + int numLines, startingLine, startingChar, lineNum, firstChar, lastChar; + int code, matchLength, matchChar, passes, stopLine, searchWholeText; +--- 1556,1562 ---- + int argc; /* Number of arguments. */ + char **argv; /* Argument strings. */ + { +! int backwards, exact, searchElide, c, i, argsLeft, noCase, leftToScan; + size_t length; + int numLines, startingLine, startingChar, lineNum, firstChar, lastChar; + int code, matchLength, matchChar, passes, stopLine, searchWholeText; +*************** +*** 1566,1571 **** +--- 1567,1573 ---- + Tcl_DString line, patDString; + TkTextSegment *segPtr; + TkTextLine *linePtr; ++ TkTextIndex curIndex; + Tcl_RegExp regexp = NULL; /* Initialization needed only to + * prevent compiler warning. */ + +*************** +*** 1574,1579 **** +--- 1576,1583 ---- + */ + + exact = 1; ++ searchElide = 0; ++ curIndex.tree = textPtr->tree; + backwards = 0; + noCase = 0; + varName = NULL; +*************** +*** 1587,1593 **** + badSwitch: + Tcl_AppendResult(interp, "bad switch \"", arg, + "\": must be -forward, -backward, -exact, -regexp, ", +! "-nocase, -count, or --", (char *) NULL); + return TCL_ERROR; + } + c = arg[1]; +--- 1591,1597 ---- + 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]; +*************** +*** 1608,1613 **** +--- 1612,1619 ---- + 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; +*************** +*** 1703,1711 **** + */ + + 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); +--- 1709,1718 ---- + */ + + linePtr = TkBTreeFindLine(textPtr->tree, lineNum); ++ curIndex.linePtr = linePtr; curIndex.charIndex = 0; + for (segPtr = linePtr->segPtr; segPtr != NULL; +! curIndex.charIndex += segPtr->size, segPtr = segPtr->nextPtr) { +! if (segPtr->typePtr != &tkTextCharType || (!searchElide && TkTextIsElided(textPtr, &curIndex))) { + continue; + } + Tcl_DStringAppend(&line, segPtr->body.chars, segPtr->size); +*** tkText.h 1997/07/04 22:39:41 2.0 +--- ../generic/tkText.h 1997/08/15 22:18:56 +*************** +*** 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). */ +*************** +*** 800,805 **** +--- 804,811 ---- + ClientData clientData)); + extern TkTextIndex * TkTextMakeIndex _ANSI_ARGS_((TkTextBTree tree, + int lineIndex, int charIndex, ++ TkTextIndex *indexPtr)); ++ extern int TkTextIsElided _ANSI_ARGS_((TkText *textPtr, + TkTextIndex *indexPtr)); + extern int TkTextMarkCmd _ANSI_ARGS_((TkText *textPtr, + Tcl_Interp *interp, int argc, char **argv)); +*** tkTextBTree.c 1997/07/04 22:39:41 2.0 +--- ../generic/tkTextBTree.c 1997/08/15 22:20:16 +*************** +*** 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->charIndex; ++ 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 1997/07/04 22:39:41 2.0 +--- ../generic/tkTextDisp.c 1997/08/16 01:20:18 +*************** +*** 55,60 **** +--- 55,61 ---- + * 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 tkTextCharUid, tkTextNoneUid, + * or tkTextWordUid. */ +*************** +*** 311,316 **** +--- 312,332 ---- + 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, +*************** +*** 479,485 **** + + 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; +--- 495,501 ---- + + 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; +*************** +*** 494,500 **** + 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; +--- 510,516 ---- + 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; +*************** +*** 612,617 **** +--- 628,638 ---- + 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; +*************** +*** 768,774 **** + * lines with numChars > 0. Used to + * drop 0-sized chunks from the end + * of the line. */ +! int offset, ascent, descent, code; + StyleValues *sValuePtr; + + /* +--- 789,795 ---- + * lines with numChars > 0. Used to + * drop 0-sized chunks from the end + * of the line. */ +! int offset, ascent, descent, code, elide, elidesize; + StyleValues *sValuePtr; + + /* +*************** +*** 786,791 **** +--- 807,840 ---- + 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->charIndex==0) { ++ maxChars = 0; ++ for (segPtr = indexPtr->linePtr->segPtr; elide && segPtr!=NULL; segPtr = segPtr->nextPtr) { ++ if ((elidesize = segPtr->size) > 0) { ++ maxChars += 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->count = maxChars; ++ 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 +*************** +*** 797,802 **** +--- 846,852 ---- + lastChunkPtr = NULL; + chunkPtr = NULL; + noCharsYet = 1; ++ elide = 0; + breakChunkPtr = NULL; + breakCharOffset = 0; + justify = TK_JUSTIFY_LEFT; +*************** +*** 821,826 **** +--- 871,901 ---- + } + + 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 - offset) > 0) { ++ curIndex.charIndex += elidesize; ++ lastChunkPtr->numChars += elidesize; ++ breakCharOffset = lastChunkPtr->breakIndex = lastChunkPtr->numChars; ++ ++ /* 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); ++ } ++ } ++ ++ offset = 0; ++ segPtr = segPtr->nextPtr; ++ if (segPtr == NULL && chunkPtr != NULL) ckfree((char *) chunkPtr); ++ ++ continue; ++ } ++ ++ + if (segPtr->typePtr->layoutProc == NULL) { + segPtr = segPtr->nextPtr; + offset = 0; +*************** +*** 831,836 **** +--- 906,912 ---- + chunkPtr->nextPtr = NULL; + } + chunkPtr->stylePtr = GetStyle(textPtr, &curIndex); ++ elide = chunkPtr->stylePtr->sValuePtr->elide; + + /* + * Save style information such as justification and indentation, +*************** +*** 864,870 **** + + gotTab = 0; + maxChars = segPtr->size - offset; +! if (justify == TK_JUSTIFY_LEFT) { + if (segPtr->typePtr == &tkTextCharType) { + char *p; + +--- 940,946 ---- + + gotTab = 0; + maxChars = segPtr->size - offset; +! if (!elide && justify == TK_JUSTIFY_LEFT) { + if (segPtr->typePtr == &tkTextCharType) { + char *p; + +*************** +*** 877,884 **** + } + } + } +- + chunkPtr->x = x; + code = (*segPtr->typePtr->layoutProc)(textPtr, &curIndex, segPtr, + offset, maxX-tabSize, maxChars, noCharsYet, wrapMode, + chunkPtr); +--- 953,973 ---- + } + } + } + chunkPtr->x = x; ++ if (elide && maxChars) { ++ /* don't free style here, as other code expects to be able to do that */ ++ /*breakCharOffset =*/ chunkPtr->breakIndex = chunkPtr->numChars = maxChars; ++ 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, + offset, maxX-tabSize, maxChars, noCharsYet, wrapMode, + chunkPtr); +*************** +*** 950,955 **** +--- 1039,1045 ---- + offset = 0; + segPtr = segPtr->nextPtr; + } ++ + chunkPtr = NULL; + } + if (noCharsYet) { +*************** +*** 998,1003 **** +--- 1088,1094 ---- + wholeLine = 0; + } + ++ + /* + * Make tab adjustments for the last tab stop, if there is one. + */ +*************** +*** 1321,1326 **** +--- 1412,1418 ---- + index.linePtr = TkBTreeFindLine(textPtr->tree, lineNum); + index.charIndex = 0; + lowestPtr = NULL; ++ + do { + dlPtr = LayoutDLine(textPtr, &index); + dlPtr->nextPtr = lowestPtr; +*************** +*** 1554,1559 **** +--- 1646,1653 ---- + 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. +*************** +*** 1620,1631 **** +--- 1714,1729 ---- + * 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, +*************** +*** 1714,1719 **** +--- 1812,1818 ---- + 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 +*************** +*** 1787,1793 **** + rightX = maxX; + } + chunkPtr2 = NULL; +! if (prevPtr != NULL) { + /* + * Find the chunk in the previous line that covers leftX. + */ +--- 1886,1892 ---- + rightX = maxX; + } + chunkPtr2 = NULL; +! if (prevPtr != NULL && prevPtr->chunkPtr != NULL) { + /* + * Find the chunk in the previous line that covers leftX. + */ +*************** +*** 1908,1914 **** + rightX = maxX; + } + chunkPtr2 = NULL; +! if (dlPtr->nextPtr != NULL) { + /* + * Find the chunk in the previous line that covers leftX. + */ +--- 2007,2014 ---- + 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. + */ +*************** +*** 2299,2304 **** +--- 2399,2405 ---- + 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]; +*************** +*** 2315,2320 **** +--- 2416,2422 ---- + dlPtr->oldY = dlPtr->y; + dlPtr->flags &= ~NEW_LAYOUT; + } ++ /*prevPtr = dlPtr;*/ + } + Tk_FreePixmap(Tk_Display(textPtr->tkwin), pixmap); + } +*************** +*** 3369,3374 **** +--- 3471,3477 ---- + dlPtr = LayoutDLine(textPtr, &index); + dlPtr->nextPtr = lowestPtr; + lowestPtr = dlPtr; ++ if (dlPtr->length == 0 && dlPtr->height == 0) { offset--; break; } /* elide */ + TkTextIndexForwChars(&index, dlPtr->count, &index); + charsToCount -= dlPtr->count; + } while ((charsToCount > 0) +*************** +*** 3381,3387 **** + break; + } + } +! + /* + * Discard the display lines, then either return or prepare + * for the next display line to lay out. +--- 3484,3490 ---- + break; + } + } +! + /* + * Discard the display lines, then either return or prepare + * for the next display line to lay out. +*************** +*** 3410,3421 **** +--- 3513,3526 ---- + 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; + TkTextIndexForwChars(&textPtr->topIndex, dlPtr->count, &new); + FreeDLines(textPtr, dlPtr, (DLine *) NULL, 0); + if (new.linePtr == lastLinePtr) { + break; + } ++ + textPtr->topIndex = new; + } + } +*************** +*** 3949,3955 **** + * index of the character nearest to (x,y). */ + { + TextDInfo *dInfoPtr = textPtr->dInfoPtr; +! register DLine *dlPtr; + register TkTextDispChunk *chunkPtr; + + /* +--- 4054,4060 ---- + * index of the character nearest to (x,y). */ + { + TextDInfo *dInfoPtr = textPtr->dInfoPtr; +! register DLine *dlPtr, *validdlPtr; + register TkTextDispChunk *chunkPtr; + + /* +*************** +*** 3982,3989 **** + * 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. +--- 4087,4095 ---- + * 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. +*************** +*** 3994,3999 **** +--- 4100,4107 ---- + break; + } + } ++ if (dlPtr->chunkPtr == NULL) dlPtr = validdlPtr; ++ + + /* + * Scan through the line's chunks to find the one that contains +*************** +*** 4005,4016 **** + *indexPtr = dlPtr->index; + x = x - dInfoPtr->x + dInfoPtr->curPixelOffset; + for (chunkPtr = dlPtr->chunkPtr; x >= (chunkPtr->x + chunkPtr->width); +! indexPtr->charIndex += chunkPtr->numChars, +! chunkPtr = chunkPtr->nextPtr) { + if (chunkPtr->nextPtr == NULL) { + indexPtr->charIndex += chunkPtr->numChars - 1; + return; +! } + } + + /* +--- 4113,4124 ---- + *indexPtr = dlPtr->index; + x = x - dInfoPtr->x + dInfoPtr->curPixelOffset; + for (chunkPtr = dlPtr->chunkPtr; x >= (chunkPtr->x + chunkPtr->width); +! indexPtr->charIndex += chunkPtr->numChars, +! chunkPtr = chunkPtr->nextPtr) { + if (chunkPtr->nextPtr == NULL) { + indexPtr->charIndex += chunkPtr->numChars - 1; + return; +! } + } + + /* +*************** +*** 4166,4171 **** +--- 4274,4280 ---- + { + TextDInfo *dInfoPtr = textPtr->dInfoPtr; + DLine *dlPtr; ++ int dlx; + + /* + * Make sure that all of the screen layout information is up to date. +*************** +*** 4184,4191 **** + 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; +--- 4293,4301 ---- + 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; +*************** +*** 4196,4201 **** +--- 4306,4346 ---- + 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->numChars - 1*/; ++ } ++ + /* + *-------------------------------------------------------------- + * +*************** +*** 4421,4427 **** + * Draw the text, underline, and overstrike for this chunk. + */ + +! if (ciPtr->numChars > offsetChars) { + int numChars = ciPtr->numChars - offsetChars; + char *string = ciPtr->chars + offsetChars; + +--- 4566,4572 ---- + * Draw the text, underline, and overstrike for this chunk. + */ + +! if (!sValuePtr->elide && ciPtr->numChars > offsetChars) { + int numChars = ciPtr->numChars - offsetChars; + char *string = ciPtr->chars + offsetChars; + +*** tkTextTag.c 1997/07/04 22:39:41 2.0 +--- ../generic/tkTextTag.c 1997/08/15 22:20:32 +*************** +*** 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}, +*************** +*** 378,383 **** +--- 381,392 ---- + 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 != tkTextCharUid) + && (tagPtr->wrapMode != tkTextNoneUid) +*************** +*** 419,424 **** +--- 428,434 ---- + || (tagPtr->spacing3String != NULL) + || (tagPtr->tabString != NULL) + || (tagPtr->underlineString != NULL) ++ || (tagPtr->elideString != NULL) + || (tagPtr->wrapMode != NULL)) { + tagPtr->affectsDisplay = 1; + } +*************** +*** 811,816 **** +--- 821,828 ---- + tagPtr->tabArrayPtr = NULL; + tagPtr->underlineString = NULL; + tagPtr->underline = 0; ++ tagPtr->elideString = NULL; ++ tagPtr->elide = 0; + tagPtr->wrapMode = NULL; + tagPtr->affectsDisplay = 0; + textPtr->numTags++; +*************** +*** 934,939 **** +--- 946,954 ---- + } + if (tagPtr->underlineString != NULL) { + ckfree(tagPtr->underlineString); ++ } ++ if (tagPtr->elideString != NULL) { ++ ckfree(tagPtr->elideString); + } + ckfree((char *) tagPtr); + } diff --git a/x11/tk80/patches/patch-ad b/x11/tk80/patches/patch-ad new file mode 100644 index 00000000000..a3137a6aaa5 --- /dev/null +++ b/x11/tk80/patches/patch-ad @@ -0,0 +1,78 @@ +--- menu.tcl Wed Aug 13 11:19:53 1997 ++++ ../library/menu.tcl Wed Sep 3 12:24:24 1997 +@@ -4,7 +4,7 @@ + # It also implements keyboard traversal of menus and implements a few + # other utility procedures related to menus. + # +-# SCCS: @(#) menu.tcl 1.97 97/08/13 10:58:34 ++# SCCS: @(#) menu.tcl 1.100 97/08/26 14:29:47 + # + # Copyright (c) 1992-1994 The Regents of the University of California. + # Copyright (c) 1994-1997 Sun Microsystems, Inc. +@@ -53,19 +53,19 @@ + + #------------------------------------------------------------------------- + # Overall note: +-# This file is tricky because there are four different ways that menus ++# This file is tricky because there are five different ways that menus + # can be used: + # +-# 1. As a pulldown from a menubutton. This is the most common usage. +-# In this style, the variable tkPriv(postedMb) identifies the posted +-# menubutton. ++# 1. As a pulldown from a menubutton. In this style, the variable ++# tkPriv(postedMb) identifies the posted menubutton. + # 2. As a torn-off menu copied from some other menu. In this style +-# tkPriv(postedMb) is empty, and the top-level menu is no +-# override-redirect. +-# 3. As an option menu, triggered from an option menubutton. In thi ++# tkPriv(postedMb) is empty, and menu's type is "tearoff". ++# 3. As an option menu, triggered from an option menubutton. In this + # style tkPriv(postedMb) identifies the posted menubutton. + # 4. As a popup menu. In this style tkPriv(postedMb) is empty and +-# the top-level menu is override-redirect. ++# the top-level menu's type is "normal". ++# 5. As a pulldown from a menubar. The variable tkPriv(menubar) has ++# the owning menubar, and the menu itself is of type "normal". + # + # The various binding procedures use the state described above to + # distinguish the various cases and take different actions in each +@@ -391,8 +391,7 @@ + $tkPriv(popup) unpost + set tkPriv(popup) {} + } elseif {(!([$menu cget -type] == "menubar") +- && !([$menu cget -type] == "tearoff")) +- || [wm overrideredirect $menu]} { ++ && !([$menu cget -type] == "tearoff"))} { + # We're in a cascaded sub-menu from a torn-off menu or popup. + # Unpost all the menus up to the toplevel one (but not + # including the top-level torn-off one) and deactivate the +@@ -407,8 +406,8 @@ + $parent activate none + $parent postcascade none + event generate $parent <<MenuSelect>> +- if {([$parent cget -type] == "menubar") +- || ![wm overrideredirect $parent]} { ++ set type [$parent cget -type] ++ if {([$parent cget -type] == "menubar")} { + break + } + set menu $parent +@@ -551,8 +550,7 @@ + if {$tkPriv(postedMb) != ""} { + grab -global $tkPriv(postedMb) + } else { +- while {(([$menu cget -type] != "menubar") +- && [wm overrideredirect $menu]) ++ while {([$menu cget -type] == "normal") + && ([winfo class [winfo parent $menu]] == "Menu") + && [winfo ismapped [winfo parent $menu]]} { + set menu [winfo parent $menu] +@@ -1187,6 +1185,6 @@ + tkSaveGrabInfo $menu + grab -global $menu + set tkPriv(popup) $menu +- tk_menuSetFocus($menu); ++ tk_menuSetFocus $menu + } + } diff --git a/x11/tk80/pkg/COMMENT b/x11/tk80/pkg/COMMENT new file mode 100644 index 00000000000..ec2552801eb --- /dev/null +++ b/x11/tk80/pkg/COMMENT @@ -0,0 +1 @@ +Graphical toolkit for TCL. diff --git a/x11/tk80/pkg/DESCR b/x11/tk80/pkg/DESCR new file mode 100644 index 00000000000..afdf6fe9e2f --- /dev/null +++ b/x11/tk80/pkg/DESCR @@ -0,0 +1,9 @@ +This package contains the binary release of Tk version 8.0, 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. + +A full set of manual pages is also provided with this package. + +NOTE: This kit requires a Tcl8.0 binary kit. diff --git a/x11/tk80/pkg/PLIST b/x11/tk80/pkg/PLIST new file mode 100644 index 00000000000..2379f5c37e0 --- /dev/null +++ b/x11/tk80/pkg/PLIST @@ -0,0 +1,254 @@ +bin/wish8.0 +include/tk8.0/tk.h +include/tk8.0/unix/tkUnixDefault.h +include/tk8.0/unix/tkUnixInt.h +include/tk8.0/unix/tkUnixPort.h +include/tk8.0/generic/default.h +include/tk8.0/generic/ks_names.h +include/tk8.0/generic/tk.h +include/tk8.0/generic/tk3d.h +include/tk8.0/generic/tkButton.h +include/tk8.0/generic/tkCanvas.h +include/tk8.0/generic/tkColor.h +include/tk8.0/generic/tkFileFilter.h +include/tk8.0/generic/tkFont.h +include/tk8.0/generic/tkInitScript.h +include/tk8.0/generic/tkInt.h +include/tk8.0/generic/tkMenu.h +include/tk8.0/generic/tkMenubutton.h +include/tk8.0/generic/tkPort.h +include/tk8.0/generic/tkScale.h +include/tk8.0/generic/tkScrollbar.h +include/tk8.0/generic/tkSelect.h +include/tk8.0/generic/tkText.h +man/man1/wish.1.gz +man/man3/FontId.3.gz +man/man3/GetFont.3.gz +man/man3/MeasureChar.3.gz +man/man3/GetGC.3.gz +man/man3/TextLayout.3.gz +man/man3/Name.3.gz +man/man3/3DBorder.3.gz +man/man3/BindTable.3.gz +man/man3/CanvPsY.3.gz +man/man3/CanvTkwin.3.gz +man/man3/CanvTxtInfo.3.gz +man/man3/Clipboard.3.gz +man/man3/ClrSelect.3.gz +man/man3/GetImage.3.gz +man/man3/ConfigWidg.3.gz +man/man3/ConfigWind.3.gz +man/man3/CoordToWin.3.gz +man/man3/CrtErrHdlr.3.gz +man/man3/CrtGenHdlr.3.gz +man/man3/CrtImgType.3.gz +man/man3/CrtItemType.3.gz +man/man3/CrtPhImgFmt.3.gz +man/man3/CrtSelHdlr.3.gz +man/man3/CrtWindow.3.gz +man/man3/DeleteImg.3.gz +man/man3/DrawFocHlt.3.gz +man/man3/EventHndlr.3.gz +man/man3/FindPhoto.3.gz +man/man3/FreeXId.3.gz +man/man3/GeomReq.3.gz +man/man3/GetAnchor.3.gz +man/man3/GetBitmap.3.gz +man/man3/GetCapStyl.3.gz +man/man3/GetClrmap.3.gz +man/man3/GetColor.3.gz +man/man3/GetCursor.3.gz +man/man3/GetJoinStl.3.gz +man/man3/GetJustify.3.gz +man/man3/GetOption.3.gz +man/man3/GetPixels.3.gz +man/man3/GetPixmap.3.gz +man/man3/GetRelief.3.gz +man/man3/GetRootCrd.3.gz +man/man3/GetScroll.3.gz +man/man3/GetSelect.3.gz +man/man3/GetUid.3.gz +man/man3/GetVRoot.3.gz +man/man3/GetVisual.3.gz +man/man3/HandleEvent.3.gz +man/man3/IdToWindow.3.gz +man/man3/ImgChanged.3.gz +man/man3/InternAtom.3.gz +man/man3/MainLoop.3.gz +man/man3/MainWin.3.gz +man/man3/MaintGeom.3.gz +man/man3/ManageGeom.3.gz +man/man3/MapWindow.3.gz +man/man3/MoveToplev.3.gz +man/man3/NameOfImg.3.gz +man/man3/OwnSelect.3.gz +man/man3/ParseArgv.3.gz +man/man3/QWinEvent.3.gz +man/man3/Restack.3.gz +man/man3/RestrictEv.3.gz +man/man3/SetAppName.3.gz +man/man3/SetClass.3.gz +man/man3/SetGrid.3.gz +man/man3/SetVisual.3.gz +man/man3/StrictMotif.3.gz +man/man3/Tk_Init.3.gz +man/man3/Tk_Main.3.gz +man/man3/WindowId.3.gz +man/mann/chooseColor.n.gz +man/mann/getOpenFile.n.gz +man/mann/event.n.gz +man/mann/font.n.gz +man/mann/messageBox.n.gz +man/mann/bell.n.gz +man/mann/bind.n.gz +man/mann/bindtags.n.gz +man/mann/bitmap.n.gz +man/mann/button.n.gz +man/mann/canvas.n.gz +man/mann/checkbutton.n.gz +man/mann/clipboard.n.gz +man/mann/destroy.n.gz +man/mann/dialog.n.gz +man/mann/entry.n.gz +man/mann/focus.n.gz +man/mann/focusNext.n.gz +man/mann/frame.n.gz +man/mann/grab.n.gz +man/mann/grid.n.gz +man/mann/image.n.gz +man/mann/label.n.gz +man/mann/listbox.n.gz +man/mann/loadTk.n.gz +man/mann/lower.n.gz +man/mann/menu.n.gz +man/mann/menubar.n.gz +man/mann/menubutton.n.gz +man/mann/message.n.gz +man/mann/option.n.gz +man/mann/optionMenu.n.gz +man/mann/options.n.gz +man/mann/pack-old.n.gz +man/mann/pack.n.gz +man/mann/palette.n.gz +man/mann/photo.n.gz +man/mann/place.n.gz +man/mann/popup.n.gz +man/mann/radiobutton.n.gz +man/mann/raise.n.gz +man/mann/scale.n.gz +man/mann/scrollbar.n.gz +man/mann/selection.n.gz +man/mann/send.n.gz +man/mann/text.n.gz +man/mann/tk.n.gz +man/mann/tkerror.n.gz +man/mann/tkvars.n.gz +man/mann/tkwait.n.gz +man/mann/toplevel.n.gz +man/mann/winfo.n.gz +man/mann/wm.n.gz +lib/tk8.0/demos/images/earth.gif +lib/tk8.0/demos/images/earthris.gif +lib/tk8.0/demos/images/face.bmp +lib/tk8.0/demos/images/flagdown.bmp +lib/tk8.0/demos/images/flagup.bmp +lib/tk8.0/demos/images/gray25.bmp +lib/tk8.0/demos/images/letters.bmp +lib/tk8.0/demos/images/noletter.bmp +lib/tk8.0/demos/images/pattern.bmp +lib/tk8.0/demos/images/tcllogo.gif +lib/tk8.0/demos/images/teapot.ppm +lib/tk8.0/demos/README +lib/tk8.0/demos/arrow.tcl +lib/tk8.0/demos/bind.tcl +lib/tk8.0/demos/bitmap.tcl +lib/tk8.0/demos/browse +lib/tk8.0/demos/button.tcl +lib/tk8.0/demos/check.tcl +lib/tk8.0/demos/clrpick.tcl +lib/tk8.0/demos/colors.tcl +lib/tk8.0/demos/cscroll.tcl +lib/tk8.0/demos/ctext.tcl +lib/tk8.0/demos/dialog1.tcl +lib/tk8.0/demos/dialog2.tcl +lib/tk8.0/demos/entry1.tcl +lib/tk8.0/demos/entry2.tcl +lib/tk8.0/demos/filebox.tcl +lib/tk8.0/demos/floor.tcl +lib/tk8.0/demos/form.tcl +lib/tk8.0/demos/hello +lib/tk8.0/demos/hscale.tcl +lib/tk8.0/demos/icon.tcl +lib/tk8.0/demos/image1.tcl +lib/tk8.0/demos/image2.tcl +lib/tk8.0/demos/items.tcl +lib/tk8.0/demos/ixset +lib/tk8.0/demos/label.tcl +lib/tk8.0/demos/license.terms +lib/tk8.0/demos/menu.tcl +lib/tk8.0/demos/msgbox.tcl +lib/tk8.0/demos/plot.tcl +lib/tk8.0/demos/puzzle.tcl +lib/tk8.0/demos/radio.tcl +lib/tk8.0/demos/rmt +lib/tk8.0/demos/rolodex +lib/tk8.0/demos/ruler.tcl +lib/tk8.0/demos/sayings.tcl +lib/tk8.0/demos/search.tcl +lib/tk8.0/demos/square +lib/tk8.0/demos/states.tcl +lib/tk8.0/demos/style.tcl +lib/tk8.0/demos/tclIndex +lib/tk8.0/demos/tcolor +lib/tk8.0/demos/text.tcl +lib/tk8.0/demos/timer +lib/tk8.0/demos/twind.tcl +lib/tk8.0/demos/vscale.tcl +lib/tk8.0/demos/widget +lib/tk8.0/demos/menubu.tcl +lib/tk8.0/bgerror.tcl +lib/tk8.0/button.tcl +lib/tk8.0/clrpick.tcl +lib/tk8.0/comdlg.tcl +lib/tk8.0/console.tcl +lib/tk8.0/dialog.tcl +lib/tk8.0/entry.tcl +lib/tk8.0/focus.tcl +lib/tk8.0/listbox.tcl +lib/tk8.0/menu.tcl +lib/tk8.0/msgbox.tcl +lib/tk8.0/obsolete.tcl +lib/tk8.0/optMenu.tcl +lib/tk8.0/palette.tcl +lib/tk8.0/scale.tcl +lib/tk8.0/scrlbar.tcl +lib/tk8.0/tearoff.tcl +lib/tk8.0/text.tcl +lib/tk8.0/tk.tcl +lib/tk8.0/tkfbox.tcl +lib/tk8.0/xmfbox.tcl +lib/tk8.0/tclIndex +lib/tk8.0/prolog.ps +lib/tk8.0/tkAppInit.c +lib/tk8.0/images/README +lib/tk8.0/images/logo100.gif +lib/tk8.0/images/logo64.gif +lib/tk8.0/images/logoLarge.gif +lib/tk8.0/images/logoMed.gif +lib/tk8.0/images/pwrdLogo100.gif +lib/tk8.0/images/pwrdLogo150.gif +lib/tk8.0/images/pwrdLogo175.gif +lib/tk8.0/images/pwrdLogo200.gif +lib/tk8.0/images/pwrdLogo75.gif +lib/tk8.0/safetk.tcl +lib/tk8.0/tkConfig.sh +lib/libtk80.a +lib/libtk80.so.1.0 +@exec /sbin/ldconfig -m %B +@dirrm lib/tk8.0/demos/images +@dirrm lib/tk8.0/demos +@dirrm lib/tk8.0/images +@dirrm lib/tk8.0 +@dirrm include/tk8.0/unix +@dirrm include/tk8.0/generic +@dirrm include/tk8.0 diff --git a/x11/xfishtank/Makefile b/x11/xfishtank/Makefile new file mode 100644 index 00000000000..70fe425d5a9 --- /dev/null +++ b/x11/xfishtank/Makefile @@ -0,0 +1,22 @@ +# New ports collection makefile for: xfishtank +# Version required: 2.2 +# Date created: 24th April 1997 +# Whom: jacs +# +# FreeBSD Id: Makefile,v 1.2 1997/06/17 07:45:12 asami Exp +# + +DISTNAME= xfishtank-2.2 +CATEGORIES= x11 +MASTER_SITES= ftp://ftp.uni-koeln.de/windows/xcontrib/ + +MAINTAINER= jacs@gnome.co.uk + +USE_IMAKE= yes +WRKSRC= ${WRKDIR}/xfishtank2.0 +NO_INSTALL_MANPAGES=yes + +post-patch: + cd ${WRKDIR}/xfishtank2.0; make clean + +.include <bsd.port.mk> diff --git a/x11/xfishtank/files/md5 b/x11/xfishtank/files/md5 new file mode 100644 index 00000000000..d34dba2a128 --- /dev/null +++ b/x11/xfishtank/files/md5 @@ -0,0 +1 @@ +MD5 (xfishtank-2.2.tar.gz) = 9d2d1a004992295d7c9d49f535bae42e diff --git a/x11/xfishtank/patches/patch-aa b/x11/xfishtank/patches/patch-aa new file mode 100644 index 00000000000..6dfc69d767f --- /dev/null +++ b/x11/xfishtank/patches/patch-aa @@ -0,0 +1,395 @@ +*** xfish.c.orig Thu Dec 17 21:26:17 1992 +--- xfish.c Mon Aug 11 20:57:05 1997 +*************** +*** 11,16 **** +--- 11,18 ---- + + * Ported to monocrome by Jonathan Greenblatt (jonnyg@rover.umd.edu) + ++ * 05/02/1996 Added TrueColor support by TJ Phan (phan@aur.alcatel.com) ++ + TODO: + + Parameter parsing needs to be redone. +*************** +*** 46,58 **** + + /* constants are based on rand(3C) returning an integer between 0 and 32767 */ + +! #if defined(ultrix) || defined(sun) || defined(linux) + #define RAND_I_1_16 134217728 + #define RAND_F_1_8 268435455.875 + #define RAND_I_1_4 536870911 + #define RAND_I_1_2 1073741823 + #define RAND_I_3_4 1610612735 + #define RAND_F_MAX 2147483647.0 + #else + #define RAND_I_1_16 2048 + #define RAND_F_1_8 4096.0 +--- 48,71 ---- + + /* constants are based on rand(3C) returning an integer between 0 and 32767 */ + +! #if defined(ultrix) || defined(sun) + #define RAND_I_1_16 134217728 + #define RAND_F_1_8 268435455.875 + #define RAND_I_1_4 536870911 + #define RAND_I_1_2 1073741823 + #define RAND_I_3_4 1610612735 + #define RAND_F_MAX 2147483647.0 ++ #else ++ #if defined(__FreeBSD__) || defined(__OpenBSD__) ++ #include <stdlib.h> ++ #include <unistd.h> ++ ++ #define RAND_I_1_16 (RAND_MAX>>4) ++ #define RAND_F_1_8 ((float)(RAND_MAX>>3)) ++ #define RAND_I_1_4 (RAND_MAX>>2) ++ #define RAND_I_1_2 (RAND_MAX>>1) ++ #define RAND_I_3_4 ((RAND_MAX>>2)*3) ++ #define RAND_F_MAX ((float)RAND_MAX) + #else + #define RAND_I_1_16 2048 + #define RAND_F_1_8 4096.0 +*************** +*** 61,67 **** + #define RAND_I_3_4 24575 + #define RAND_F_MAX 32767.0 + #endif +! + + extern unsigned char *ReadBitmap(); + +--- 74,80 ---- + #define RAND_I_3_4 24575 + #define RAND_F_MAX 32767.0 + #endif +! #endif + + extern unsigned char *ReadBitmap(); + +*************** +*** 850,855 **** +--- 863,872 ---- + * Find the closest color by allocating it, or picking an already allocated + * color + */ ++ Visual (*visual_info) = NULL; ++ int r_mask, g_mask, b_mask; ++ int r_shift=0, g_shift=0, b_shift=0; ++ int r_bits=0, g_bits=0, b_bits=0; + void + FindColor(Dpy, colormap, colr) + Display *Dpy; +*************** +*** 862,867 **** +--- 879,936 ---- + XColor def_colrs[256]; + int NumCells; + ++ if( visual_info == NULL && DefaultDepth(Dpy, DefaultScreen(Dpy)) >= 16 ) ++ { ++ visual_info = DefaultVisual(Dpy, DefaultScreen(Dpy)); ++ r_mask = visual_info->red_mask; ++ while( !(r_mask & 1) ) ++ { ++ r_mask >>= 1; ++ r_shift++; ++ } ++ while( r_mask & 1 ) ++ { ++ r_mask >>= 1; ++ r_bits++; ++ } ++ ++ g_mask = visual_info->green_mask; ++ while( !(g_mask & 1) ) ++ { ++ g_mask >>= 1; ++ g_shift++; ++ } ++ while( g_mask & 1 ) ++ { ++ g_mask >>= 1; ++ g_bits++; ++ } ++ ++ b_mask = visual_info->blue_mask; ++ while( !(b_mask &1) ) ++ { ++ b_mask >>= 1; ++ b_shift++; ++ } ++ while( b_mask & 1 ) ++ { ++ b_mask >>= 1; ++ b_bits++; ++ } ++ } ++ ++ if( DefaultDepth(Dpy, DefaultScreen(Dpy)) > 8 ) ++ { ++ colr->red >>= 16 - r_bits; ++ colr->green >>= 16 - g_bits; ++ colr->blue >>= 16 - b_bits; ++ ++ colr->pixel = ((colr->red << r_shift) & visual_info->red_mask) | ++ ((colr->green << g_shift) & visual_info->green_mask) | ++ ((colr->blue << b_shift) & visual_info->blue_mask); ++ return; ++ } ++ + if (AllocCnt < climit) + { + match = XAllocColor(Dpy, colormap, colr); +*************** +*** 982,988 **** + XColor hdef, edef; + struct colr_data *cdp; + struct colr_data colrs[256]; +- extern char *malloc(); + + colormap = XDefaultColormap(Dpy, screen); + +--- 1051,1056 ---- +*************** +*** 1151,1156 **** +--- 1219,1225 ---- + fprintf(stderr, "Don't know how to format image for display of depth %d\n", depth); + exit(1); + } ++ + if (BitmapBitOrder(Dpy) == LSBFirst) + { + shiftstart = 0; +*************** +*** 1194,1200 **** + } + } + } +! bytesperline = (width + linepad) * depth / 8; + newimage = XCreateImage(Dpy, DefaultVisual(Dpy, screen), depth, + ZPixmap, 0, (char *)bit_data, + (width + linepad), height, 8, bytesperline); +--- 1263,1270 ---- + } + } + } +! +! bytesperline = (width * depth / 8 + linepad); + newimage = XCreateImage(Dpy, DefaultVisual(Dpy, screen), depth, + ZPixmap, 0, (char *)bit_data, + (width + linepad), height, 8, bytesperline); +*************** +*** 1218,1224 **** + unsigned char *data; + register int i, j, k; + int cnt, wcnt; +- extern char *malloc(); + + cnt = 1; + cnt += Pcnt; +--- 1288,1293 ---- +*************** +*** 1341,1349 **** +--- 1410,1423 ---- + free((char *)data); + } + ++ if( DisplayPlanes(Dpy, screen) < 8 ) ++ { ++ + j = rwidth[k] * rheight[k]; + x1A = (caddrt) malloc(rwidth[k] * rheight[k]); + p = (caddrt) xfishRasterA[k]; ++ ++ + q = x1A; + for (i = 0; i < j; i++) + { +*************** +*** 1389,1394 **** +--- 1463,1529 ---- + xfishB[k][2] = MakeImage(x1B, rwidth[k], rheight[k]); + xfishB[k][1] = MakeImage(x2B, rwidth[k], rheight[k]); + ++ free((char *)x1A); ++ free((char *)x2A); ++ free((char *)x1B); ++ free((char *)x2B); ++ ++ } ++ else ++ { ++ i = DisplayPlanes(Dpy, screen); ++ ++ xfishA[k][2] = XGetImage(Dpy, DefaultRootWindow(Dpy), 0, 0, rwidth[k], rheight[k], 0, ZPixmap); ++ ++ p = (caddrt) xfishRasterA[k]; ++ ++ for (j = 0; j < rheight[k]; j++) ++ { ++ for( i = 0; i < rwidth[k]; i++ ) ++ { ++ XPutPixel(xfishA[k][2], i, j, cmap[cnt + (int)(*p)]); ++ p++; ++ } ++ } ++ ++ xfishB[k][2] = XGetImage(Dpy, DefaultRootWindow(Dpy), 0, 0, rwidth[k], rheight[k], 0, ZPixmap); ++ ++ p = (caddrt) xfishRasterB[k]; ++ ++ for (j = 0; j < rheight[k]; j++) ++ { ++ for( i = 0; i < rwidth[k]; i++ ) ++ { ++ XPutPixel(xfishB[k][2], i, j, cmap[cnt + (int)(*p)]); ++ p++; ++ } ++ } ++ ++ xfishA[k][1] = XGetImage(Dpy, DefaultRootWindow(Dpy), 0, 0, rwidth[k], rheight[k], 0, ZPixmap); ++ ++ for (j = 0; j < rheight[k]; j++) ++ { ++ for( i = 0; i < rwidth[k]; i++ ) ++ { ++ XPutPixel(xfishA[k][1], i, j, ++ XGetPixel(xfishA[k][2], rwidth[k] - i -1, j)); ++ } ++ } ++ ++ xfishB[k][1] = XGetImage(Dpy, DefaultRootWindow(Dpy), 0, 0, rwidth[k], rheight[k], 0, ZPixmap); ++ ++ for (j = 0; j < rheight[k]; j++) ++ { ++ for( i = 0; i < rwidth[k]; i++ ) ++ { ++ XPutPixel(xfishB[k][1], i, j, ++ XGetPixel(xfishB[k][2], rwidth[k] - i - 1, j)); ++ } ++ } ++ ++ } ++ ++ + i = DisplayPlanes(Dpy, screen); + + pfishA[k][1] = XCreatePixmap(Dpy, wid, +*************** +*** 1400,1410 **** + pfishB[k][2] = XCreatePixmap(Dpy, wid, + rwidth[k], rheight[k], i); + +- free((char *)x1A); +- free((char *)x2A); +- free((char *)x1B); +- free((char *)x2B); +- + if (pfishA[k][1]) + { + XPutImage(Dpy, pfishA[k][1], gc, xfishA[k][1], 0, 0, +--- 1535,1540 ---- +*************** +*** 1465,1498 **** + void + init_signals() + { +- int ret; +- #ifdef linux +- signal(SIGUSR1, toggle_secure); +- #else +- #if defined(MOTOROLA) || defined(SCO) +- sigset(SIGUSR1, toggle_secure); +- #else +- struct sigvec vec; +- +- vec.sv_handler = toggle_secure; +- vec.sv_mask = 0; +- vec.sv_onstack = 0; +- +- #ifndef hpux +- ret = sigvec(SIGUSR1, &vec, &vec); +- if (ret != 0) +- { +- fprintf(stderr, "sigvec call failed\n"); +- } +- else +- { +- fprintf(stderr, "sigvec call OK\n"); +- } +- #else +- sigvector(SIGUSR1, &vec, &vec); +- #endif +- #endif /* MOTOROLA */ +- #endif /* LINUX */ + } + + +--- 1595,1600 ---- +*************** +*** 1505,1511 **** + XWindowAttributes winfo; + XSetWindowAttributes attr; + XGCValues vals; +- extern char *malloc(); + XSizeHints xsh; + XImage *pimage; + int i, size, cnt; +--- 1607,1612 ---- +*************** +*** 1613,1625 **** + xsh.height = height; + XSetNormalHints(Dpy, wid, &xsh); + + if (picname[0] != '\0') + { + XPutImage(Dpy, PicMap, gc, pimage, 0, 0, 0, 0, Pwidth, Pheight); + XSetWindowBackgroundPixmap(Dpy, wid, PicMap); + } +- +- XMapWindow(Dpy, wid); + } + + binfo = (bubble *) malloc(blimit * sizeof(bubble)); +--- 1714,1725 ---- + xsh.height = height; + XSetNormalHints(Dpy, wid, &xsh); + ++ XMapWindow(Dpy, wid); + if (picname[0] != '\0') + { + XPutImage(Dpy, PicMap, gc, pimage, 0, 0, 0, 0, Pwidth, Pheight); + XSetWindowBackgroundPixmap(Dpy, wid, PicMap); + } + } + + binfo = (bubble *) malloc(blimit * sizeof(bubble)); +*************** +*** 1965,1973 **** + high_res_sleep(seconds) + double seconds; + { + int fds = 0; + struct timeval timeout; +! + timeout.tv_sec = seconds; + timeout.tv_usec = (seconds - timeout.tv_sec) * 1000000.0; + select(0, &fds, &fds, &fds, &timeout); +--- 2065,2079 ---- + high_res_sleep(seconds) + double seconds; + { ++ #ifndef __FreeBSD__ + int fds = 0; ++ #endif + struct timeval timeout; +! #ifdef __FreeBSD__ +! fd_set fds; +! FD_ZERO(&fds); +! #endif +! + timeout.tv_sec = seconds; + timeout.tv_usec = (seconds - timeout.tv_sec) * 1000000.0; + select(0, &fds, &fds, &fds, &timeout); diff --git a/x11/xfishtank/patches/patch-ab b/x11/xfishtank/patches/patch-ab new file mode 100644 index 00000000000..87ccd1e5b1e --- /dev/null +++ b/x11/xfishtank/patches/patch-ab @@ -0,0 +1,11 @@ +--- Imakefile.orig Wed Dec 16 01:04:35 1992 ++++ Imakefile Tue Jun 17 08:36:51 1997 +@@ -2,7 +2,7 @@ + LOCAL_LIBRARIES = $(XLIB) + DEPLIBS = $(DEPXLIB) + SYS_LIBRARIES = -lm +- CDEBUGFLAGS = -g ++XCOMM CDEBUGFLAGS = -g + + SRCS = xfish.c medcut.c read.c gifread.c + OBJS = xfish.o medcut.o read.o gifread.o diff --git a/x11/xfishtank/pkg/COMMENT b/x11/xfishtank/pkg/COMMENT new file mode 100644 index 00000000000..63a4acabb6b --- /dev/null +++ b/x11/xfishtank/pkg/COMMENT @@ -0,0 +1 @@ +Make fish swim in the background of your screen. diff --git a/x11/xfishtank/pkg/DESCR b/x11/xfishtank/pkg/DESCR new file mode 100644 index 00000000000..f253cb44c07 --- /dev/null +++ b/x11/xfishtank/pkg/DESCR @@ -0,0 +1,8 @@ +There are lots of programs for lots of platforms to make fish swim in the +background of your screen. This is a modification of an old one called +xfish (also called Xaquarium), that I have added more features to. + +This version now works on true colour displays. + +--Chris +jacs@gnome.co.uk diff --git a/x11/xfishtank/pkg/PLIST b/x11/xfishtank/pkg/PLIST new file mode 100644 index 00000000000..793cc679f5f --- /dev/null +++ b/x11/xfishtank/pkg/PLIST @@ -0,0 +1 @@ +bin/xfishtank diff --git a/x11/xmascot/Makefile b/x11/xmascot/Makefile new file mode 100644 index 00000000000..c3c1b86c3f6 --- /dev/null +++ b/x11/xmascot/Makefile @@ -0,0 +1,21 @@ +# New ports collection makefile for: xmascot +# Version required: 2.5p2 +# Date created: 20 November 1996 +# Whom: Yukihiro Nakai <Nakai@Mlab.t.u-tokyo.ac.jp> +# +# FreeBSD Id: Makefile,v 1.2 1997/06/07 19:47:09 max Exp +# + +DISTNAME= xmascot2.5p2 +PKGNAME= xmascot-2.5p2 +CATEGORIES= x11 +MASTER_SITES= ftp://cclub.tutcc.tut.ac.jp/pub/xmascot/ + +MAINTAINER= Nakai@Mlab.t.u-tokyo.ac.jp + +USE_GMAKE= yes +USE_IMAKE= yes +MAN1= xmascot.1 +MANCOMPRESSED= yes + +.include <bsd.port.mk> diff --git a/x11/xmascot/files/md5 b/x11/xmascot/files/md5 new file mode 100644 index 00000000000..60d80cef703 --- /dev/null +++ b/x11/xmascot/files/md5 @@ -0,0 +1 @@ +MD5 (xmascot2.5p2.tar.gz) = 4e953fbbc347086a12a894bfe8ca440b diff --git a/x11/xmascot/pkg/COMMENT b/x11/xmascot/pkg/COMMENT new file mode 100644 index 00000000000..9cf9011f5f0 --- /dev/null +++ b/x11/xmascot/pkg/COMMENT @@ -0,0 +1 @@ +moving mascot on your X-Window screen. diff --git a/x11/xmascot/pkg/DESCR b/x11/xmascot/pkg/DESCR new file mode 100644 index 00000000000..e8cca048323 --- /dev/null +++ b/x11/xmascot/pkg/DESCR @@ -0,0 +1,25 @@ +XMascot, moving mascot on your X-Window screen. + +XMascot have these features. + + -Moving pretty mascot moving + -Strectch stretch as you like + -Talking mascot talks with extract command and data + -Alarm mascot may make some actions at time you define + -BIFF mascot may let you know arriving a mail. + +XMascot supports these image formats: + +MAG *.mag 16 colors and 256 colors +TIFF *.tif 16 colors and 256 colors, in raw or lzw +PPM *.ppm 256 level color , in raw +PGM *.pgm 256 level gray scale, in raw +PBM *.pbm 2 level monocrome, in raw +PNM *.pnm PPM, PGM, or PBM + +XMascot distinguish images from their suffix and can load other image formats +when {suffix}topnm, *topgm, or *topbm commands are found in your system. + +See more infomation for newest xmascot: + http://cclub.tutcc.tut.ac.jp:1080/xmascot/ + ftp://cclub.tutcc.tut.ac.jp/pub/xmascot/ diff --git a/x11/xmascot/pkg/PLIST b/x11/xmascot/pkg/PLIST new file mode 100644 index 00000000000..6bc6725164c --- /dev/null +++ b/x11/xmascot/pkg/PLIST @@ -0,0 +1,23 @@ +bin/xmascot +lib/X11/xmascot/pin.mag +lib/X11/xmascot/chain.mag +lib/X11/xmascot/mail_r.mag +lib/X11/xmascot/kuma.mag +lib/X11/xmascot/inu.mag +lib/X11/xmascot/neko.mag +lib/X11/xmascot/neko2.mag +lib/X11/xmascot/teru.mag +lib/X11/xmascot/pen.mag +lib/X11/xmascot/saru.mag +lib/X11/xmascot/rabi.mag +lib/X11/xmascot/fish.mag +lib/X11/xmascot/monohosi.mag +lib/X11/xmascot/logo.mag +lib/X11/xmascot/pipipipi.au +lib/X11/xmascot/mi.au +lib/X11/xmascot/mi.raw +lib/X11/xmascot/mi2.au +lib/X11/xmascot/mi2.raw +lib/X11/xmascot/mitime.au +lib/X11/xmascot/mitime.raw +man/man1/xmascot.1.gz |