1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-12-25 04:43:33 +00:00

- Remove expired tkstep80 related ports

This commit is contained in:
Pav Lucistnik 2008-04-09 14:19:00 +00:00
parent b1b7f6a46b
commit cf909dbe3d
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=210933
17 changed files with 4 additions and 1666 deletions

3
MOVED
View File

@ -3447,3 +3447,6 @@ x11-toolkits/qwt-devel|x11-toolkits/qwt5|2008-04-02|Renamed for better naming
audio/csound-manual||2008-04-04|Merged with main port
security/acid||2008-04-04|Has expired: development has ceased, use security/base
devel/check|devel/libcheck|2008-04-07|Removed in favour to devel/libcheck
archivers/deepforest||2008-04-09|Has expired: development stalled for years, outdated, unmaintained
graphics/libimg-tkstep80||2008-04-09|Has expired: tkstep80 scheduled for expiration
x11-toolkits/tkstep80||2008-04-09|Has expired: development stalled for years, outdated, unmaintained

View File

@ -15,7 +15,6 @@
SUBDIR += cabextract
SUBDIR += dact
SUBDIR += deb2targz
SUBDIR += deepforest
SUBDIR += deutex
SUBDIR += dpkg
SUBDIR += dynamite

View File

@ -1,42 +0,0 @@
# New ports collection makefile for: JDE's DeepForest
# Date created: 25 March 1999
# Whom: KIRIYAMA Kazuhiko <kiri@pis.toba-cmt.ac.jp>
#
# $FreeBSD$
#
PORTNAME= deepforest
PORTVERSION= 1.0a
PORTREVISION= 3
CATEGORIES= archivers windowmaker tkstep80
MASTER_SITES= ${MASTER_SITE_LOCAL}
MASTER_SITE_SUBDIR= kiri
DISTNAME= DeepForest-${PORTVERSION}
EXTRACT_ONLY= # extracted directly in install target
MAINTAINER= ports@FreeBSD.org
COMMENT= A simple compress utilty using on JDE
RUN_DEPENDS= ${LOCALBASE}/lib/tkstep8.0/tkstep.tcl:${PORTSDIR}/x11-toolkits/tkstep80
LIB_DEPENDS= img.1:${PORTSDIR}/graphics/libimg-tkstep80
DEPRECATED= development stalled for years, outdated, unmaintained
EXPIRATION_DATE= 2007-11-16
NO_WRKSUBDIR= yes
NO_BUILD= yes
REINPLACE_ARGS=
TKSTEPVERSION= 8.0
PIXMAPPATH?= ${PREFIX}/share/WindowMaker/Pixmaps
SCRIPTS_ENV= LANG=C LN=${LN} REINPLACE_CMD="${REINPLACE_CMD}" \
LANGUAGE=${LANGUAGE} VERSION=${TKSTEPVERSION}
PLIST_SUB= PIXMAP_PATH=${PIXMAPPATH:S@^${PREFIX}/@@}
do-install:
${EXTRACT_CMD} ${EXTRACT_BEFORE_ARGS} ${DISTDIR}/${DISTNAME}.tar.gz \
${EXTRACT_AFTER_ARGS} -C ${PREFIX}
${MKDIR} ${PIXMAPPATH}
${INSTALL_DATA} ${PREFIX}/JDE/DeepForest/docs/DeepForest.xpm ${PIXMAPPATH}
${LN} -sf ${PREFIX}/JDE/DeepForest/DeepForest.app ${PREFIX}/bin
.include <bsd.port.mk>

View File

@ -1,3 +0,0 @@
MD5 (DeepForest-1.0a.tar.gz) = bc52fb5b72c2889845e62bd49c1367b9
SHA256 (DeepForest-1.0a.tar.gz) = 008cd562035c989889b6300e80e15c086f949b69551246878aa675cfc743935a
SIZE (DeepForest-1.0a.tar.gz) = 16645

View File

@ -1,4 +0,0 @@
The "Deep Forest" is a simple compression utility.
-KIRIYAMA Kazuhiko
<kiri@FreeBSD.org>

View File

@ -1,19 +0,0 @@
JDE/DeepForest/DeepForest.app
JDE/DeepForest/docs/COPYING
JDE/DeepForest/docs/DeepForest.xpm
JDE/DeepForest/docs/English/INSTALL.tk.en
JDE/DeepForest/docs/English/README.en
JDE/DeepForest/docs/Japanese/INSTALL.tk.ja
JDE/DeepForest/docs/Japanese/INSTALL.tk.sjis
JDE/DeepForest/docs/Japanese/README.ja
JDE/DeepForest/docs/Japanese/README.sjis
JDE/DeepForest/install.sh
bin/DeepForest.app
%%PIXMAP_PATH%%/DeepForest.xpm
@dirrmtry share/WindowMaker/Pixmaps
@dirrmtry share/WindowMaker
@dirrm JDE/DeepForest/docs/English
@dirrm JDE/DeepForest/docs/Japanese
@dirrm JDE/DeepForest/docs
@dirrm JDE/DeepForest
@dirrmtry JDE

View File

@ -384,7 +384,6 @@
SUBDIR += libgphoto2
SUBDIR += libimg
SUBDIR += libimg-tk83
SUBDIR += libimg-tkstep80
SUBDIR += libiptcdata
SUBDIR += libkdcraw
SUBDIR += libkexif

View File

@ -1,19 +0,0 @@
# New ports collection makefile for: libimg-tkstep80
# Date created: 11 March 2007
# Whom: Martin Matuska <martin@matuska.org>
#
# $FreeBSD$
#
PORTNAME= libimg-tkstep80
CATEGORIES= graphics tkstep80
MAINTAINER= martin@matuska.org
USE_TKSTEP80= yes
MASTERDIR= ${.CURDIR}/../libimg
DEPRECATED= tkstep80 scheduled for expiration
EXPIRATION_DATE= 2007-11-18
.include "${MASTERDIR}/Makefile"

View File

@ -20,15 +20,7 @@ LIB_DEPENDS= png:${PORTSDIR}/graphics/png \
jpeg:${PORTSDIR}/graphics/jpeg \
tiff:${PORTSDIR}/graphics/tiff
.if defined(USE_TKSTEP80)
PKGNAMESUFFIX= -tkstep80
MAKEFILE= ${FILESDIR}/Makefile.tkstep80
MAKE_ENV+= TCL_VER=8.0
EXTRA_PATCHES= ${FILESDIR}/pre-tk84-warnings
BUILD_DEPENDS+= ${LOCALBASE}/lib/tkstep8.0/tkstep.tcl:${PORTSDIR}/x11-toolkits/tkstep80
RUN_DEPENDS+= ${BUILD_DEPENDS}
CONFLICTS= libimg-1.* libimg-tk83-1.*
.elif defined(USE_TK) && ${USE_TK} == 83
.if defined(USE_TK) && ${USE_TK} == 83
PKGNAMESUFFIX= -tk83
USE_TK= 83
USE_TK_BUILD= 83

View File

@ -257,7 +257,6 @@
SUBDIR += tk85-thread
SUBDIR += tkdnd
SUBDIR += tkshape
SUBDIR += tkstep80
SUBDIR += tktable
SUBDIR += tktray
SUBDIR += tktreectrl

View File

@ -1,62 +0,0 @@
# New ports collection makefile for: TkStep
# Date created: 06 November 1997
# Whom: Thomas Gellekum <tg@FreeBSD.org>
#
# $FreeBSD$
#
PORTNAME= tkstep
PORTVERSION= 8.0.4
PORTREVISION= 2
CATEGORIES= x11-toolkits tk
MASTER_SITES= ${MASTER_SITE_TCLTK}
MASTER_SITE_SUBDIR= tcl8_0
DISTNAME= tk${PORTVERSION}
PATCH_SITES= ftp://touchwood.ee.uts.edu.au/pub/TkSTEP/
PATCHFILES= tk8.0.4-to-tkstep8.0.4-2.patch.tar.gz
MAINTAINER= ports@FreeBSD.org
COMMENT= The Tk toolkit with a NeXTSTEP look and more
LIB_DEPENDS= jpeg.9:${PORTSDIR}/graphics/jpeg \
tiff.4:${PORTSDIR}/graphics/tiff
DEPRECATED= development stalled, outdated, unmaintained
EXPIRATION_DATE= 2007-11-18
USE_TCL= 80
USE_XORG= xpm
PATCH_DIST_ARGS= -p1 -d ${WRKDIR}/tk8.0.4 -E --quiet
WRKSRC= ${WRKDIR}/tk8.0.4/unix
USE_LDCONFIG= yes
GNU_CONFIGURE= yes
CONFIGURE_ARGS= --enable-shared --enable-xpm --enable-step --enable-dnd \
--enable-tiff --with-optimize="${CFLAGS} -I${PREFIX}/include"
CONFIGURE_ENV= PORTSDIR=${PORTSDIR}
PKGINSTALL= ${PORTSDIR}/x11-toolkits/tk82/pkg-install.wish
PKGDEINSTALL= ${PORTSDIR}/x11-toolkits/tk82/pkg-deinstall.wish
.include <bsd.port.pre.mk>
.if ${ARCH} == "sparc64"
BROKEN= Build fails on sparc64
.endif
post-install:
@${RM} ${PREFIX}/lib/tkstep8.0/demos/*.orig
${STRIP_CMD} ${PREFIX}/bin/wishstep8.0
.if !defined(NOPORTDOCS)
@${MKDIR} ${PREFIX}/share/doc/tkstep
${INSTALL_DATA} ${WRKDIR}/tk8.0.4/README.TkStep \
${PREFIX}/share/doc/tkstep
.endif
${LN} -sf ${PREFIX}/lib/libtkstep80.so.1 ${PREFIX}/lib/libtkstep80.so
.if exists(${PKGINSTALL})
${SETENV} PKG_PREFIX=${PREFIX} ${SH} ${PKGINSTALL}
.endif
test:
cd ${WRKSRC}; make test
.include <bsd.port.post.mk>

View File

@ -1,6 +0,0 @@
MD5 (tk8.0.4.tar.gz) = 8e4c6a20f11cdff76adb5d26423e4ea5
SHA256 (tk8.0.4.tar.gz) = 53092b9769db04a36a979b3508a3de045b6a8795b4aac8c245a045fdb81cf119
SIZE (tk8.0.4.tar.gz) = 2028895
MD5 (tk8.0.4-to-tkstep8.0.4-2.patch.tar.gz) = d7d18874be888d70c9fddcc4bc5dadae
SHA256 (tk8.0.4-to-tkstep8.0.4-2.patch.tar.gz) = 02d9968b35f1fe0708f19d07791fb0f24c3cdb038255aae0ed65c0da956b4fd2
SIZE (tk8.0.4-to-tkstep8.0.4-2.patch.tar.gz) = 118774

View File

@ -1,43 +0,0 @@
--- configure.orig Sat Jan 27 02:05:59 2007
+++ configure Sat Jan 27 02:08:22 2007
@@ -891,14 +891,14 @@
withval="$with_tcl"
TCL_BIN_DIR=$withval
else
- TCL_BIN_DIR=`cd ../../tcl8.0$TK_PATCH_LEVEL/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
#--------------------------------------------------------------------
@@ -936,8 +936,9 @@
DL_LIBS=$TCL_DL_LIBS
LD_FLAGS=$TCL_LD_FLAGS
CFLAGS_DEBUG=$TCL_CFLAGS_DEBUG
-CFLAGS_OPTIMIZE=$TCL_CFLAGS_OPTIMIZE
+CFLAGS_OPTIMIZE=$CFLAGS
EXTRA_CFLAGS=$TCL_EXTRA_CFLAGS
+TCL_SRC_DIR=${prefix}/include/tcl${TCL_VERSION}
LIB_RUNTIME_DIR='${LIB_RUNTIME_DIR}'
@@ -2480,8 +2481,9 @@
if test "$ok" = "yes" -a "${SHLIB_SUFFIX}" != ""; then
TK_SHARED_BUILD=1
TK_SHLIB_CFLAGS="${SHLIB_CFLAGS}"
- eval "TK_LIB_FILE=libtk${STEP}${TCL_SHARED_LIB_SUFFIX}"
- MAKE_LIB="\${SHLIB_LD} -o \${TK_LIB_FILE} \${OBJS} \$(TK_LD_SEARCH_FLAGS) ${SHLIB_LD_LIBS}"
+ eval "TK_LIB_FILE=libtkstep`echo ${VERSION} | tr -d .`.so.1"
+ MAKE_LIB="\${SHLIB_LD} -soname ${TK_LIB_FILE} -o ${TK_LIB_FILE} \${OBJS} \$(TK_LD_SEARCH_FLAGS) ${SHLIB_LD_LIBS}"
+
RANLIB=":"
else
TK_SHARED_BUILD=0

View File

@ -1,258 +0,0 @@
*** Makefile.in.orig Tue Apr 20 22:09:37 1999
--- Makefile.in Tue Apr 20 22:09:38 1999
***************
*** 56,62 ****
BIN_DIR = $(exec_prefix)/bin
# Directory in which to install the include file tk.h:
! INCLUDE_INSTALL_DIR = $(INSTALL_ROOT)$(prefix)/include
# Top-level directory for manual entries:
MAN_INSTALL_DIR = $(INSTALL_ROOT)$(prefix)/man
--- 56,64 ----
BIN_DIR = $(exec_prefix)/bin
# Directory in which to install the include file tk.h:
! INCLUDE_INSTALL_DIR = $(INSTALL_ROOT)$(prefix)/include/tkstep$(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
***************
*** 113,119 ****
# 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@ @EXTRA_LIBS@
# To turn off the security checks that disallow incoming sends when
# the X server appears to be insecure, reverse the comments on the
--- 115,121 ----
# Libraries to use when linking. This definition is determined by the
# configure script.
! LIBS = -L${PREFIX}/lib -ltcl80 @LIBS@ $(X11_LIB_SWITCHES) @DL_LIBS@ @MATH_LIBS@ @EXTRA_LIBS@
# To turn off the security checks that disallow incoming sends when
# the X server appears to be insecure, reverse the comments on the
***************
*** 149,155 ****
# "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_PROGRAM = ${INSTALL}
INSTALL_DATA = ${INSTALL} -m 644
--- 151,157 ----
# "install" around; better to use the install-sh script that comes
# with the distribution, which is slower but guaranteed to work.
! INSTALL = install -c
INSTALL_PROGRAM = ${INSTALL}
INSTALL_DATA = ${INSTALL} -m 644
***************
*** 206,217 ****
CC = @CC@
CC_SWITCHES = ${CFLAGS} ${CFLAGS_WARNING} ${TK_SHLIB_CFLAGS} \
! -I${UNIX_DIR} -I${GENERIC_DIR} \
-I${BMAP_DIR} -I${TCL_GENERIC_DIR} ${X11_INCLUDES} ${AC_FLAGS} ${PROTO_FLAGS} \
${SECURITY_FLAGS} ${MEM_DEBUG_FLAGS} ${KEYSYM_FLAGS}
DEPEND_SWITCHES = ${CFLAGS} -I${UNIX_DIR} -I${GENERIC_DIR} \
! -I${BMAP_DIR} \
-I${TCL_GENERIC_DIR} ${X11_INCLUDES} \
${AC_FLAGS} ${PROTO_FLAGS} ${SECURITY_FLAGS} ${MEM_DEBUG_FLAGS} \
${KEYSYM_FLAGS}
--- 208,219 ----
CC = @CC@
CC_SWITCHES = ${CFLAGS} ${CFLAGS_WARNING} ${TK_SHLIB_CFLAGS} \
! -I${UNIX_DIR} -I${GENERIC_DIR} -I${LOCALBASE}/include \
-I${BMAP_DIR} -I${TCL_GENERIC_DIR} ${X11_INCLUDES} ${AC_FLAGS} ${PROTO_FLAGS} \
${SECURITY_FLAGS} ${MEM_DEBUG_FLAGS} ${KEYSYM_FLAGS}
DEPEND_SWITCHES = ${CFLAGS} -I${UNIX_DIR} -I${GENERIC_DIR} \
! -I${BMAP_DIR} -I${LOCALBASE}/include \
-I${TCL_GENERIC_DIR} ${X11_INCLUDES} \
${AC_FLAGS} ${PROTO_FLAGS} ${SECURITY_FLAGS} ${MEM_DEBUG_FLAGS} \
${KEYSYM_FLAGS}
***************
*** 314,321 ****
--- 316,330 ----
${TK_LIB_FILE}: ${OBJS}
rm -f ${TK_LIB_FILE}
@MAKE_LIB@
+ ln -sf @TK_LIB_FILE@ libtkstep80.so
$(RANLIB) ${TK_LIB_FILE}
+ libtkstep80.a: ${OBJS}
+ rm -f libtkstep80.a
+ ar cr libtkstep80.a ${OBJS}
+ ranlib libtkstep80.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
***************
*** 331,337 ****
$(TK_CC_SEARCH_FLAGS) -o wish@STEP@
tktest: $(TKTEST_OBJS) $(TK_LIB_FILE)
! ${CC} @LD_FLAGS@ $(TKTEST_OBJS) @TK_BUILD_LIB_SPEC@ $(LIBS) \
$(TK_CC_SEARCH_FLAGS) -o tktest
xttest: test.o tkTest.o tkSquare.o $(TK_LIB_FILE)
--- 340,346 ----
$(TK_CC_SEARCH_FLAGS) -o wish@STEP@
tktest: $(TKTEST_OBJS) $(TK_LIB_FILE)
! ${CC} @LD_FLAGS@ $(TKTEST_OBJS) $(TK_LIB_FILE) $(LIBS) \
$(TK_CC_SEARCH_FLAGS) -o tktest
xttest: test.o tkTest.o tkSquare.o $(TK_LIB_FILE)
***************
*** 370,376 ****
# 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@STEP@
@for i in $(LIB_INSTALL_DIR) $(BIN_INSTALL_DIR) ; \
do \
if [ ! -d $$i ] ; then \
--- 379,385 ----
# some ranlibs write to current directory, and this might not always be
# possible (e.g. if installing as root).
! install-binaries: $(TK_LIB_FILE) libtkstep80.a wishstep
@for i in $(LIB_INSTALL_DIR) $(BIN_INSTALL_DIR) ; \
do \
if [ ! -d $$i ] ; then \
***************
*** 384,396 ****
@$(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 wish@STEP@"
@$(INSTALL_PROGRAM) wish@STEP@ $(BIN_INSTALL_DIR)/wish@STEP@$(VERSION)
@echo "Installing tk@STEP@Config.sh"
! @$(INSTALL_DATA) tk@STEP@Config.sh $(LIB_INSTALL_DIR)/tk@STEP@Config.sh
install-libraries:
@for i in $(INSTALL_ROOT)$(prefix)/lib $(INCLUDE_INSTALL_DIR) \
$(SCRIPT_INSTALL_DIR) $(SCRIPT_INSTALL_DIR)/images; \
do \
if [ ! -d $$i ] ; then \
--- 393,411 ----
@$(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 libtkstep80.a"
+ @$(INSTALL_DATA) libtkstep80.a $(LIB_INSTALL_DIR)/libtkstep80.a
+ @(cd $(LIB_INSTALL_DIR); $(RANLIB) libtkstep80.a)
+ @chmod 555 $(LIB_INSTALL_DIR)/libtkstep80.a
@echo "Installing wish@STEP@"
@$(INSTALL_PROGRAM) wish@STEP@ $(BIN_INSTALL_DIR)/wish@STEP@$(VERSION)
@echo "Installing tk@STEP@Config.sh"
! @mkdir -p $(TK_LIBRARY)
! @$(INSTALL_DATA) tk@STEP@Config.sh $(TK_LIBRARY)/tkStepConfig.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 \
***************
*** 400,407 ****
else true; \
fi; \
done;
! @echo "Installing tk@STEP@.h"
! @$(INSTALL_DATA) $(GENERIC_DIR)/tk.h $(INCLUDE_INSTALL_DIR)/tk@STEP@.h
for i in $(SRC_DIR)/library/*.tcl $(SRC_DIR)/library/*.xbm $(SRC_DIR)/library/tclIndex $(SRC_DIR)/library/prolog.ps $(UNIX_DIR)/tkAppInit.c; \
do \
echo "Installing $$i"; \
--- 415,433 ----
else true; \
fi; \
done;
! @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
! @ln -sf $(GENERIC_INCLUDE_INSTALL_DIR)/tk.h $(INCLUDE_INSTALL_DIR)/tkstep.h
for i in $(SRC_DIR)/library/*.tcl $(SRC_DIR)/library/*.xbm $(SRC_DIR)/library/tclIndex $(SRC_DIR)/library/prolog.ps $(UNIX_DIR)/tkAppInit.c; \
do \
echo "Installing $$i"; \
***************
*** 460,487 ****
@cd $(SRC_DIR)/doc; for i in *.1; \
do \
echo "Installing doc/$$i"; \
! rm -f $(MAN1_INSTALL_DIR)/$$i; \
sed -e '/man\.macros/r man.macros' -e '/man\.macros/d' \
! $$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; \
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"; \
! rm -f $(MANN_INSTALL_DIR)/$$i; \
sed -e '/man\.macros/r man.macros' -e '/man\.macros/d' \
! $$i > $(MANN_INSTALL_DIR)/$$i; \
! chmod 444 $(MANN_INSTALL_DIR)/$$i; \
done;
$(UNIX_DIR)/mkLinks $(MANN_INSTALL_DIR)
--- 486,513 ----
@cd $(SRC_DIR)/doc; for i in *.1; \
do \
echo "Installing doc/$$i"; \
! rm -f $(MAN1_INSTALL_DIR)/$$i $(MAN1_INSTALL_DIR)/$$i.gz; \
sed -e '/man\.macros/r man.macros' -e '/man\.macros/d' \
! $$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 $(MAN3_INSTALL_DIR)/$$i.gz; \
sed -e '/man\.macros/r man.macros' -e '/man\.macros/d' \
! $$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 $(MANN_INSTALL_DIR)/$$i.gz; \
sed -e '/man\.macros/r man.macros' -e '/man\.macros/d' \
! $$i | gzip -c > $(MANN_INSTALL_DIR)/$$i.gz; \
! chmod 444 $(MANN_INSTALL_DIR)/$$i.gz; \
done;
$(UNIX_DIR)/mkLinks $(MANN_INSTALL_DIR)

View File

@ -1,918 +0,0 @@
*** 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);
}

View File

@ -1,14 +0,0 @@
This package contains the binary release of Tk version 8.0, a GUI
toolkit for Tcl enhanced by the following features:
- transparent XPM
- transparent TIFF (only full transparency)
- OffiX Drag'n'Drop
- rounded rectangle canvas items
included demos:
- droptest
- dragtest (watch stdout)
- imagedrop
WWW: http://touchwood.ee.uts.edu.au/TkSTEP/TkSTEP.html

View File

@ -1,266 +0,0 @@
bin/wishstep8.0
include/tkstep8.0/generic/default.h
include/tkstep8.0/generic/ks_names.h
include/tkstep8.0/generic/tk.h
include/tkstep8.0/generic/tk3d.h
include/tkstep8.0/generic/tkButton.h
include/tkstep8.0/generic/tkCanvas.h
include/tkstep8.0/generic/tkColor.h
include/tkstep8.0/generic/tkFileFilter.h
include/tkstep8.0/generic/tkFont.h
include/tkstep8.0/generic/tkInitScript.h
include/tkstep8.0/generic/tkInt.h
include/tkstep8.0/generic/tkMenu.h
include/tkstep8.0/generic/tkMenubutton.h
include/tkstep8.0/generic/tkPort.h
include/tkstep8.0/generic/tkScale.h
include/tkstep8.0/generic/tkScrollbar.h
include/tkstep8.0/generic/tkSelect.h
include/tkstep8.0/generic/tkText.h
include/tkstep8.0/tk.h
include/tkstep8.0/tkstep.h
include/tkstep8.0/unix/tkUnixDefault.h
include/tkstep8.0/unix/tkUnixInt.h
include/tkstep8.0/unix/tkUnixPort.h
lib/libtkstep80.a
lib/libtkstep80.so
lib/libtkstep80.so.1
lib/tkstep8.0/FontChooser.tcl
lib/tkstep8.0/bgerror.tcl
lib/tkstep8.0/button.tcl
lib/tkstep8.0/clrpick.tcl
lib/tkstep8.0/comdlg.tcl
lib/tkstep8.0/console.tcl
lib/tkstep8.0/demos/README
lib/tkstep8.0/demos/arrow.tcl
lib/tkstep8.0/demos/bind.tcl
lib/tkstep8.0/demos/bitmap.tcl
lib/tkstep8.0/demos/browse
lib/tkstep8.0/demos/button.tcl
lib/tkstep8.0/demos/check.tcl
lib/tkstep8.0/demos/clrpick.tcl
lib/tkstep8.0/demos/colors.tcl
lib/tkstep8.0/demos/cscroll.tcl
lib/tkstep8.0/demos/ctext.tcl
lib/tkstep8.0/demos/dialog1.tcl
lib/tkstep8.0/demos/dialog2.tcl
lib/tkstep8.0/demos/dragtest
lib/tkstep8.0/demos/droptest
lib/tkstep8.0/demos/entry1.tcl
lib/tkstep8.0/demos/entry2.tcl
lib/tkstep8.0/demos/filebox.tcl
lib/tkstep8.0/demos/floor.tcl
lib/tkstep8.0/demos/form.tcl
lib/tkstep8.0/demos/hello
lib/tkstep8.0/demos/hscale.tcl
lib/tkstep8.0/demos/icon.tcl
lib/tkstep8.0/demos/image1.tcl
lib/tkstep8.0/demos/image2.tcl
lib/tkstep8.0/demos/imagedrop
lib/tkstep8.0/demos/images/earth.gif
lib/tkstep8.0/demos/images/earthris.gif
lib/tkstep8.0/demos/images/face.bmp
lib/tkstep8.0/demos/images/flagdown.bmp
lib/tkstep8.0/demos/images/flagup.bmp
lib/tkstep8.0/demos/images/gray25.bmp
lib/tkstep8.0/demos/images/letters.bmp
lib/tkstep8.0/demos/images/noletter.bmp
lib/tkstep8.0/demos/images/pattern.bmp
lib/tkstep8.0/demos/images/tcllogo.gif
lib/tkstep8.0/demos/images/teapot.ppm
lib/tkstep8.0/demos/items.tcl
lib/tkstep8.0/demos/ixset
lib/tkstep8.0/demos/label.tcl
lib/tkstep8.0/demos/license.terms
lib/tkstep8.0/demos/menu.tcl
lib/tkstep8.0/demos/menubu.tcl
lib/tkstep8.0/demos/msgbox.tcl
lib/tkstep8.0/demos/plot.tcl
lib/tkstep8.0/demos/puzzle.tcl
lib/tkstep8.0/demos/radio.tcl
lib/tkstep8.0/demos/rmt
lib/tkstep8.0/demos/rolodex
lib/tkstep8.0/demos/ruler.tcl
lib/tkstep8.0/demos/sayings.tcl
lib/tkstep8.0/demos/search.tcl
lib/tkstep8.0/demos/square
lib/tkstep8.0/demos/states.tcl
lib/tkstep8.0/demos/style.tcl
lib/tkstep8.0/demos/tclIndex
lib/tkstep8.0/demos/tcolor
lib/tkstep8.0/demos/tcolor2
lib/tkstep8.0/demos/text.tcl
lib/tkstep8.0/demos/tfontsel
lib/tkstep8.0/demos/timer
lib/tkstep8.0/demos/twind.tcl
lib/tkstep8.0/demos/vscale.tcl
lib/tkstep8.0/demos/widget
lib/tkstep8.0/dialog.tcl
lib/tkstep8.0/entry.tcl
lib/tkstep8.0/focus.tcl
lib/tkstep8.0/images/README
lib/tkstep8.0/images/logo100.gif
lib/tkstep8.0/images/logo64.gif
lib/tkstep8.0/images/logoLarge.gif
lib/tkstep8.0/images/logoMed.gif
lib/tkstep8.0/images/pwrdLogo100.gif
lib/tkstep8.0/images/pwrdLogo150.gif
lib/tkstep8.0/images/pwrdLogo175.gif
lib/tkstep8.0/images/pwrdLogo200.gif
lib/tkstep8.0/images/pwrdLogo75.gif
lib/tkstep8.0/listbox.tcl
lib/tkstep8.0/menu.tcl
lib/tkstep8.0/msgbox.tcl
lib/tkstep8.0/obsolete.tcl
lib/tkstep8.0/optMenu.tcl
lib/tkstep8.0/paint.xbm
lib/tkstep8.0/paintm.xbm
lib/tkstep8.0/palette.tcl
lib/tkstep8.0/prolog.ps
lib/tkstep8.0/safetk.tcl
lib/tkstep8.0/scale.tcl
lib/tkstep8.0/scrlbar.tcl
lib/tkstep8.0/tclIndex
lib/tkstep8.0/tearoff.tcl
lib/tkstep8.0/text.tcl
lib/tkstep8.0/tk.tcl
lib/tkstep8.0/tkAppInit.c
lib/tkstep8.0/tkStepConfig.sh
lib/tkstep8.0/tkfbox.tcl
lib/tkstep8.0/tkstep.tcl
lib/tkstep8.0/xmfbox.tcl
man/man1/wish.1.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/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/FontId.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/GetFont.3.gz
man/man3/GetGC.3.gz
man/man3/GetImage.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/MeasureChar.3.gz
man/man3/MoveToplev.3.gz
man/man3/Name.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/TextLayout.3.gz
man/man3/Tk_Init.3.gz
man/man3/Tk_Main.3.gz
man/man3/WindowId.3.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/chooseColor.n.gz
man/mann/clipboard.n.gz
man/mann/destroy.n.gz
man/mann/dialog.n.gz
man/mann/entry.n.gz
man/mann/event.n.gz
man/mann/focus.n.gz
man/mann/focusNext.n.gz
man/mann/font.n.gz
man/mann/frame.n.gz
man/mann/getOpenFile.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/messageBox.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
%%PORTDOCS%%share/doc/tkstep/README.TkStep
%%PORTDOCS%%@dirrm share/doc/tkstep
@dirrm lib/tkstep8.0/demos/images
@dirrm lib/tkstep8.0/demos
@dirrm lib/tkstep8.0/images
@dirrm lib/tkstep8.0
@dirrm include/tkstep8.0/unix
@dirrm include/tkstep8.0/generic
@dirrm include/tkstep8.0