Remove unstaged tcl/tk 8.0 and two affected staged ports

The two ports affected by the tcl/tk 8.0 removal, ja/tkhonyaku and
ja/timidity++-tcltk only build on FreeBSD 8.x because the tcl/tk ports
themselves don't build on FreeBSD 9 and later.  The timidity port was
staged but unmaintained, and the tkhonyaku port was staged by its
maintainer who was advised that his port was in danger of being removed
with tcl/tk 8.0 at least 3 weeks ago.
This commit is contained in:
John Marino 2014-09-06 21:49:56 +00:00
parent fe4d5f645c
commit c648e19162
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=367476
28 changed files with 4 additions and 1983 deletions

4
MOVED
View file

@ -7007,3 +7007,7 @@ audio/freeswitch-music||2014-09-06|No purpose after unstaged freeswitch ports re
devel/eieio||2014-09-06|Not staged
devel/semantic||2014-09-06|Not staged
editors/speedbar||2014-09-06|Not staged
japanese/tk80||2014-09-06|Not staged
japanese/tcl80||2014-09-06|Not staged
japanese/tkhonyaku||2014-09-06|Cascade removal (ja-tcl/tk80 dependency)
japanese/timidity++-tcltk||2014-09-06|Cascade removal (ja-tcl/tk80 dependency)

View file

@ -265,7 +265,6 @@
SUBDIR += suicavalue
SUBDIR += suikyo
SUBDIR += t2ps
SUBDIR += tcl80
SUBDIR += tdiary
SUBDIR += tegaki-recognize
SUBDIR += tegaki-zinnia-japanese
@ -274,9 +273,6 @@
SUBDIR += tgif
SUBDIR += tiarra
SUBDIR += timidity++-slang
SUBDIR += timidity++-tcltk
SUBDIR += tk80
SUBDIR += tkhonyaku
SUBDIR += today
SUBDIR += tomoe
SUBDIR += uim-anthy

View file

@ -1,71 +0,0 @@
# Created by: taguchi@tohoku.iij.ad.jp
# $FreeBSD$
PORTNAME= tcl
PORTVERSION= 8.0.5
PORTREVISION= 2
CATEGORIES= japanese lang tcl
MASTER_SITES= ${MASTER_SITE_TCLTK}
MASTER_SITE_SUBDIR=tcl8_0
DISTNAME= ${PORTNAME}${PORTVERSION}
PATCH_SITES= ftp://ftp.sra.co.jp/pub/lang/tcl/jp/
PATCHFILES= ${PORTNAME}${PORTVERSION}jp1.7.patch.gz
MAINTAINER= ports@FreeBSD.org
COMMENT= Japanized Tool Command Language, version 8.0
VERSION= ${PORTVERSION:R}
TOPDIR= ${WRKDIR}/${DISTNAME}
WRKSRC= ${TOPDIR}/unix
.if defined(PATCH_DEBUG)
PATCH_DIST_ARGS=-d ${TOPDIR} -E ${PATCH_DIST_STRIP}
.else
PATCH_DIST_ARGS=-d ${TOPDIR} --forward --quiet -E ${PATCH_DIST_STRIP}
.endif
USE_AUTOTOOLS= autoconf213
CONFIGURE_ARGS= --enable-shared
RANLIB= ranlib
PKGINSTALL= ${PORTSDIR}/lang/tcl82/pkg-install.tclsh
PKGDEINSTALL= ${PORTSDIR}/lang/tcl82/pkg-deinstall.tclsh
USE_LDCONFIG= yes
NO_STAGE= yes
.include <bsd.port.pre.mk>
.if ${ARCH} == "sparc64"
BROKEN= Does not compile on sparc64 (needs -fPIC)
.elif ${OSVERSION} >= 900000
BROKEN= does not build
.endif
.if !defined(NOPORTDOCS)
post-patch:
@${CP} ${FILESDIR}/README.FreeBSD.in ${TOPDIR}/README.FreeBSD.JP.in
@${SED} -e 's%AC_OUTPUT(Makefile tclConfig.sh)%AC_OUTPUT(Makefile tclConfig.sh ../README.FreeBSD.JP)%' \
< ${WRKSRC}/configure.in \
> ${WRKSRC}/configure.in.tmp
@${MV} -f ${WRKSRC}/configure.in.tmp ${WRKSRC}/configure.in
.endif
post-install:
.if !defined(NOPORTDOCS)
@${MKDIR} ${PREFIX}/share/doc/tcl${VERSION}jp
@(cd ${TOPDIR}; \
${INSTALL_DATA} README changes README.FreeBSD.JP README.JP \
changes.JP \
Incompat80jp ${PREFIX}/share/doc/tcl${VERSION}jp; \
)
.endif
.if exists(${PKGINSTALL})
${SETENV} PKG_PREFIX=${PREFIX} ${SH} ${PKGINSTALL}
.endif
@${CAT} ${PKGMESSAGE}
test:
cd ${WRKSRC} && ${MAKE} test
install-man:
cd ${WRKSRC} && ${MAKE} install-man
.include <bsd.port.post.mk>

View file

@ -1,4 +0,0 @@
SHA256 (tcl8.0.5.tar.gz) = 0402be51a928cc1591049b02e32565abcce4f4c06f37b8fed0f2573ee16b479e
SIZE (tcl8.0.5.tar.gz) = 1519970
SHA256 (tcl8.0.5jp1.7.patch.gz) = 1739e3bc84ecd5bbbeb15c402e86760302f388158a20cfb37806575b46447ed0
SIZE (tcl8.0.5jp1.7.patch.gz) = 86912

View file

@ -1,85 +0,0 @@
FreeBSDにおけるTcl の ports/packages について
田口 毅 taguchi@tohoku.iij.ad.jp
本文章ではFreeBSD環境におけるTclの特徴的な部分をまとめる
1. インストールされるファイルについて.
FreeBSD上では数多くのプログラムが標準配布に組み込まれておりそれに
加えて1200を越えるプログラムがports/packages の仕組みを用いて提供さ
れている.
その中にはTcl/Tk自身やそれらの拡張およびそれらを用いたいくつも
のプログラムが含まれる.
ここで問題となるのは,流通している Tcl/Tk には,様々なバージョンが存在
するという事実であるそして前述のプログラム群が用いているTclやTk
のバージョンは1つではないというリリースエンジニアリング的にやっか
いな現実がある.
例えばあるプログラムAはTcl7.6の日本語版を用いプログラムBはオリジナ
ルの Tcl8.0をそしてプログラムCはオリジナルのTcl7.5を用いている,と
いうことが有り得るのだ.
そこでFreeBSD では,さまざまな議論に基づき,ユーザが使用し得るすべて
の版のTcl/Tk が同時にインストールされうるようにしている(一部,完全では
ないかもしれないが,少なくともそれを目指している)
そのために標準のTcl/Tkとは一部のファイルのインストールされるディレ
クトリ階層が異なっている.
だが安心してほしいTcl/Tkを用いるFreeBSD上のports/packagesはその
変更されたインストール場所を前提に動作する従ってports/ packagesを
用いるユーザは,その変更を意識せずに済むだろう.
問題となるのは未だports/packages化されていないアプリケーションをイン
ストールする場合だろう.そこで,以下に,何が標準と異なることになるかを
述べる.
相違があるファイルで重要なものは以下の2個でありそれぞれ以下の場所に
インストールされる.
ファイル名 インストール場所 デフォルトの場所
tclConfig.sh @prefix@/lib/tcl@TCL_VERSION@ @exec_prefix@/lib
tcl.h @prefix@/include/tcl@TCL_VERSION@ @prefix@/include
多くの場合,これらのファイルを正しく見つけられるように,インストールし
ようとするプログラムのconfigureスクリプトやMakefileを書き換えれば
正しくインストールできるだろう.そして,そうした作業を行った場合は,是
非ともports化しFreeBSDにcontribしてほしいまたports化が難しい場合
是非ともpatchを作成してFreeBSDのMLに投稿してほしいそうすること
によって,多くの人々が救われるかもしれないからだ.
なおTclのソースに含まれるヘッダファイル群はすべて
@prefix@/include/tcl@TCL_VERSION@
以下の階層にインストールするようにしているコンパイル時にTclのソース
のパスを指定する必要のある多くのプログラム群は,単にそれらヘッダファイ
ルを見る必要があるだけな場合が多いので,ここからヘッダファイルを
includeするようにするとおしゃれだろう
これは日本語版に限った話であるが日本語版tcl8.0では,オンラインマニュ
アルページ(manファイル群)のインストールを行わないことにした.これは,
そのファイルが非日本語版のそれとまったく同じであり,かつ,同じ場所にイ
ンストールするしかないものだからである従ってmanファイルを参照しよ
うとする場合は非日本語版のtcl8.0もインストールしてほしい.
もっともportsを使ってインストールする場合には
# make install-man
と入力すればmanファイルはインストールされてしまうただしportsの枠
組みを越えた機能であるためpkg_deleteコマンドでja-tcl-8.0 を削除しよ
うとしてもmanファイル群は削除されないので注意が必要である
本質的(かつ,一番幸せ)な解決策はすべてのmanファイルを日本語訳し
れをjmanで読めるディレクトリにインストールすることであろうmanファイ
ルの訳を完成した人は,是非とも私に一報いただきたい.それに対応した形に
portsを作成し直したいと思う
2. その他の相違点
Tcl/Tk はScriptics社によって保守されているがインターネット上でも
comp.lang.tclを中心に保守が行われているそしてそこでは正式なバー
ジョンではまだ修正されていないバグのfixも行われている
こうしたバグ報告は,
http://www.cs.uoregon.edu/research/tcl/patch/
にまとめられているいずれ本家にも反映されることが期待されるfixであ
るがとりあえずja-tcl-8.0 ではこれらのfixも独自に反映させることにし
従ってFreeBSDのports/packages版はより安定して動作することが期
待できるかもしれない.

View file

@ -1,65 +0,0 @@
--- configure.in.orig Fri Jan 26 23:51:23 2007
+++ configure.in Fri Jan 26 23:53:05 2007
@@ -852,14 +852,14 @@
# Not available on all versions: check for include file.
AC_CHECK_HEADER(dlfcn.h, [
SHLIB_CFLAGS="-fpic"
- SHLIB_LD="ld -Bshareable -x"
+ SHLIB_LD='${CC} -shared -Wl,-x'
SHLIB_LD_LIBS=""
SHLIB_SUFFIX=".so"
DL_OBJS="tclLoadDl.o"
DL_LIBS=""
LD_FLAGS=""
LD_SEARCH_FLAGS=""
- TCL_SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.so.1.0'
+ TCL_SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.so.1'
], [
SHLIB_CFLAGS=""
SHLIB_LD="echo tclLdAout $CC \{$SHLIB_CFLAGS\} | `pwd`/tclsh -r"
@@ -1222,6 +1222,7 @@
if test "$TCL_UNSHARED_LIB_SUFFIX" = "" ; then
TCL_UNSHARED_LIB_SUFFIX='${VERSION}\$\{DBGX\}.a'
fi
+TCL_STATIC_LIB_FILE=""
AC_ARG_ENABLE(shared,
[ --enable-shared build libtcl as a shared library],
[tcl_ok=$enableval], [tcl_ok=no])
@@ -1230,10 +1231,11 @@
TCL_SHLIB_CFLAGS="${SHLIB_CFLAGS}"
TCL_LD_SEARCH_FLAGS="${LD_SEARCH_FLAGS}"
eval "TCL_LIB_FILE=libtcl${TCL_SHARED_LIB_SUFFIX}"
+ eval "TCL_STATIC_LIB_FILE=libtcl${TCL_UNSHARED_LIB_SUFFIX}"
if test "x$DL_OBJS" = "xtclLoadAout.o"; then
MAKE_LIB="ar cr \${TCL_LIB_FILE} \${OBJS}"
else
- MAKE_LIB="\${SHLIB_LD} -o \${TCL_LIB_FILE} \${OBJS} ${SHLIB_LD_LIBS}"
+ MAKE_LIB="\${SHLIB_LD} -o \${TCL_LIB_FILE} \${OBJS} -Wl,-S,-soname=${TCL_LIB_FILE} ${SHLIB_LD_LIBS}"
RANLIB=":"
fi
else
@@ -1272,8 +1274,9 @@
# so that the backslashes quoting the DBX braces are dropped.
# Trick to replace DBGX with TCL_DBGX
-DBGX='${TCL_DBGX}'
+DBGX=${TCL_DBGX}
eval "TCL_LIB_FILE=${TCL_LIB_FILE}"
+eval "TCL_STATIC_LIB_FILE=${TCL_STATIC_LIB_FILE}"
VERSION='${VERSION}'
eval "CFG_TCL_SHARED_LIB_SUFFIX=${TCL_SHARED_LIB_SUFFIX}"
@@ -1313,6 +1316,7 @@
AC_SUBST(TCL_BUILD_LIB_SPEC)
AC_SUBST(TCL_LD_SEARCH_FLAGS)
AC_SUBST(TCL_LIB_FILE)
+AC_SUBST(TCL_STATIC_LIB_FILE)
AC_SUBST(TCL_LIB_FLAG)
AC_SUBST(TCL_LIB_SPEC)
AC_SUBST(TCL_LIB_VERSIONS_OK)
@@ -1327,4 +1331,4 @@
AC_SUBST(TCL_UNSHARED_LIB_SUFFIX)
AC_SUBST(TCL_VERSION)
-AC_OUTPUT(Makefile tclConfig.sh)
+AC_OUTPUT(Makefile tclConfig.sh ../README.FreeBSD.JP)

View file

@ -1,169 +0,0 @@
--- Makefile.in.orig Fri Jan 26 23:51:22 2007
+++ Makefile.in Fri Jan 26 23:53:48 2007
@@ -55,11 +55,16 @@
BIN_INSTALL_DIR = $(INSTALL_ROOT)$(exec_prefix)/bin
# Directory in which to install the include file tcl.h:
-INCLUDE_INSTALL_DIR = $(INSTALL_ROOT)$(prefix)/include
+INCLUDE_INSTALL_DIR = $(INSTALL_ROOT)$(prefix)/include/tcl$(VERSION)
+GENERIC_INCLUDE_INSTALL_DIR = $(INSTALL_ROOT)$(prefix)/include/tcl$(VERSION)/generic
+UNIX_INCLUDE_INSTALL_DIR = $(INSTALL_ROOT)$(prefix)/include/tcl$(VERSION)/unix
# Top-level directory in which to install manual entries:
MAN_INSTALL_DIR = $(INSTALL_ROOT)$(prefix)/man
+# Directory in which to install sharedable other documents:
+DOC_INSTALL_DIR = $(INSTALL_ROOT)$(prefix)/share/doc/tcl$(VERSION)
+
# Directory in which to install manual entry for tclsh:
MAN1_INSTALL_DIR = $(MAN_INSTALL_DIR)/man1
@@ -151,7 +156,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
@@ -184,6 +189,7 @@
#BUILD_DLTEST =
TCL_LIB_FILE = @TCL_LIB_FILE@
+TCL_STATIC_LIB_FILE= @TCL_STATIC_LIB_FILE@
#TCL_LIB_FILE = libtcl.a
TCL_LIB_FLAG = @TCL_LIB_FLAG@
@@ -336,7 +342,11 @@
SRCS = $(GENERIC_SRCS) $(UNIX_SRCS) $(KANJI_SRCS)
-all: ${TCL_LIB_FILE} tclsh
+DOCS = $(TOP_DIR)/README $(TOP_DIR)/changes $(TOP_DIR)/README.JP \
+ $(TOP_DIR)/Incompat80jp $(TOP_DIR)/changes.JP \
+ $(UNIX_DIR)/README.FreeBSD
+
+all: ${TCL_LIB_FILE} ${TCL_STATIC_LIB_FILE} tclsh
# The following target is configured by autoconf to generate either
# a shared library or non-shared library for Tcl.
@@ -344,6 +354,12 @@
rm -f ${TCL_LIB_FILE}
@MAKE_LIB@
$(RANLIB) ${TCL_LIB_FILE}
+ ln -sf ${TCL_LIB_FILE} `echo ${TCL_LIB_FILE} | sed 's/\.so.*$$/.so/'`
+
+${TCL_STATIC_LIB_FILE}: ${OBJS}
+ rm -f ${TCL_STATIC_LIB_FILE}
+ ar cr ${TCL_STATIC_LIB_FILE} ${OBJS}
+ $(RANLIB) ${TCL_STATIC_LIB_FILE}
# Make target which outputs the list of the .o contained in the Tcl lib
# usefull to build a single big shared library containing Tcl and other
@@ -432,13 +448,13 @@
cd dltest; if test -f configure; then ./configure; else \
$(DLTEST_DIR)/configure; fi
-install: install-binaries install-libraries install-man
+install: install-binaries install-libraries
# Note: before running ranlib below, must cd to target directory because
# some ranlibs write to current directory, and this might not always be
# possible (e.g. if installing as root).
-install-binaries: $(TCL_LIB_FILE) tclsh
+install-binaries: $(TCL_LIB_FILE) $(TCL_STATIC_LIB_FILE) tclsh
@for i in $(LIB_INSTALL_DIR) $(BIN_INSTALL_DIR) ; \
do \
if [ ! -d $$i ] ; then \
@@ -451,15 +467,21 @@
@echo "Installing $(TCL_LIB_FILE)"
@$(INSTALL_DATA) $(TCL_LIB_FILE) $(LIB_INSTALL_DIR)/$(TCL_LIB_FILE)
@(cd $(LIB_INSTALL_DIR); $(RANLIB) $(TCL_LIB_FILE))
+ @(cd $(LIB_INSTALL_DIR); ln -sf ${TCL_LIB_FILE} `echo ${TCL_LIB_FILE} | sed 's/\.so.*$$/.so/'`)
@chmod 555 $(LIB_INSTALL_DIR)/$(TCL_LIB_FILE)
+ @echo "Installing $(TCL_STATIC_LIB_FILE)"
+ @$(INSTALL_DATA) $(TCL_STATIC_LIB_FILE) $(LIB_INSTALL_DIR)/$(TCL_STATIC_LIB_FILE)
+ @(cd $(LIB_INSTALL_DIR); $(RANLIB) $(TCL_STATIC_LIB_FILE))
+ @chmod 555 $(LIB_INSTALL_DIR)/$(TCL_STATIC_LIB_FILE)
@echo "Installing tclsh"
@$(INSTALL_PROGRAM) tclsh $(BIN_INSTALL_DIR)/tclsh$(VERSION)
@echo "Installing tclConfig.sh"
- @$(INSTALL_DATA) tclConfig.sh $(LIB_INSTALL_DIR)/tclConfig.sh
+ @mkdir -p $(SCRIPT_INSTALL_DIR)
+ @$(INSTALL_DATA) tclConfig.sh $(SCRIPT_INSTALL_DIR)/tclConfig.sh
install-libraries:
- @for i in $(INSTALL_ROOT)$(prefix)/lib $(INCLUDE_INSTALL_DIR) \
- $(SCRIPT_INSTALL_DIR); \
+ @for i in $(INSTALL_ROOT)$(prefix)/lib $(GENERIC_INCLUDE_INSTALL_DIR) \
+ $(UNIX_INCLUDE_INSTALL_DIR) $(SCRIPT_INSTALL_DIR); \
do \
if [ ! -d $$i ] ; then \
echo "Making directory $$i"; \
@@ -477,8 +499,15 @@
else true; \
fi; \
done;
- @echo "Installing tcl.h"
- @$(INSTALL_DATA) $(GENERIC_DIR)/tcl.h $(INCLUDE_INSTALL_DIR)/tcl.h
+ @echo "Installing libraries, tcl.h and other headers"
+ @for i in $(GENERIC_DIR)/*.h ; \
+ do \
+ echo "Installing $$i"; \
+ $(INSTALL_DATA) $$i $(GENERIC_INCLUDE_INSTALL_DIR); \
+ done;
+ @ln -sf $(GENERIC_INCLUDE_INSTALL_DIR)/tcl.h $(INCLUDE_INSTALL_DIR)/tcl.h
+ @echo "Installing $(TOP_DIR)unix/tclUnixPort.h"
+ @$(INSTALL_DATA) $(TOP_DIR)/unix/tclUnixPort.h $(UNIX_INCLUDE_INSTALL_DIR)
@for i in $(TOP_DIR)/library/*.tcl $(TOP_DIR)/library/tclIndex $(UNIX_DIR)/tclAppInit.c $(UNIX_DIR)/ldAix; \
do \
echo "Installing $$i"; \
@@ -506,30 +535,37 @@
@cd $(TOP_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 $(TOP_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 $(TOP_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)
+ @echo "**********"
+ @echo "IMPORTANT:"
+ @echo "**********"
+ @echo "tclConfig.sh in $(SCRIPT_INSTALL_DIR)/tclConfig.sh"
+ @echo "tcl.h in $(INCLUDE_INSTALL_DIR)/tcl.h"
+ @echo "There are NOT default place, but good place to avoid"
+ @echo "conflicting with another version of Tcl/Tks."
Makefile: $(UNIX_DIR)/Makefile.in
$(SHELL) config.status

View file

@ -1,12 +0,0 @@
This package contains the binary release of Japanized Tcl8.0,
an embeddable tool command language.
Many thanks to Mr. Nishinaka and tcl-jp team.
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.
And Japanized version of this document is available.
`` Tcl and Tk Toolkit'', SOFTBANK, ISBN4-89052-819-9.
NOTE: A full set of manual pages is provided by the package "tcl-8.0".
This package does NOT contain it.

View file

@ -1,10 +0,0 @@
**********
INPORTANT:
**********
1. ja-tcl-8.0 does NOT install online manual pages.
if you need them, please install package "tcl-8.0".
Or type "make install-man", if you are using the ports.
2. For more informations, see "/usr/local/share/doc/tcl8.0jp/"
Thanks.

View file

@ -1,43 +0,0 @@
bin/tclsh8.0jp
lib/libtcl80jp.a
lib/libtcl80jp.so.1
lib/libtcl80jp.so
include/tcl8.0jp/tcl.h
include/tcl8.0jp/generic/tcl.h
include/tcl8.0jp/generic/tclCompile.h
include/tcl8.0jp/generic/tclInt.h
include/tcl8.0jp/generic/tclMath.h
include/tcl8.0jp/generic/tclPort.h
include/tcl8.0jp/generic/tclRegexp.h
include/tcl8.0jp/generic/tclInitScript.h
include/tcl8.0jp/unix/tclUnixPort.h
lib/tcl8.0jp/history.tcl
lib/tcl8.0jp/init.tcl
lib/tcl8.0jp/ldAix
lib/tcl8.0jp/ldAout.tcl
lib/tcl8.0jp/parray.tcl
lib/tcl8.0jp/safe.tcl
lib/tcl8.0jp/tclAppInit.c
lib/tcl8.0jp/tclConfig.sh
lib/tcl8.0jp/tclIndex
lib/tcl8.0jp/word.tcl
lib/tcl8.0jp/http1.0/http.tcl
lib/tcl8.0jp/http1.0/pkgIndex.tcl
lib/tcl8.0jp/http2.0/http.tcl
lib/tcl8.0jp/http2.0/pkgIndex.tcl
lib/tcl8.0jp/opt0.1/optparse.tcl
lib/tcl8.0jp/opt0.1/pkgIndex.tcl
%%PORTDOCS%%share/doc/tcl8.0jp/README
%%PORTDOCS%%share/doc/tcl8.0jp/changes
%%PORTDOCS%%share/doc/tcl8.0jp/README.JP
%%PORTDOCS%%share/doc/tcl8.0jp/changes.JP
%%PORTDOCS%%share/doc/tcl8.0jp/Incompat80jp
%%PORTDOCS%%share/doc/tcl8.0jp/README.FreeBSD.JP
@dirrm include/tcl8.0jp/generic
@dirrm include/tcl8.0jp/unix
@dirrm include/tcl8.0jp
@dirrm lib/tcl8.0jp/http2.0
@dirrm lib/tcl8.0jp/http1.0
@dirrm lib/tcl8.0jp/opt0.1
@dirrm lib/tcl8.0jp
%%PORTDOCS%%@dirrm share/doc/tcl8.0jp

View file

@ -1,17 +0,0 @@
# Created by: Yoichi Asai <yatt@msc.biglobe.ne.jp>
# $FreeBSD$
PKGNAMESUFFIX= -tcltk
CATEGORIES= japanese
MAINTAINER= ports@FreeBSD.org
COMMENT= Tcl/Tk interface for TiMidity++ with Japanese support
OPTIONS_DEFINE= DOCS
MASTERDIR= ${.CURDIR}/../../audio/timidity++
JAPANESE= yes
.include "${MASTERDIR}/Makefile"

View file

@ -1,7 +0,0 @@
This port allows you to operate TiMidity++ with Tcl/Tk interface.
Formerly, the original version of this program was written by Tuuka
Toivonen(until version 0.2i).
Now, Masanao Izumo and many hackers are developing "TiMidity++".
WWW: http://timidity.sourceforge.net/

View file

@ -1,30 +0,0 @@
bin/tkmidi
%%TIMID_LIBDIR%%/bitmaps/arrow.xbm
%%TIMID_LIBDIR%%/bitmaps/back.xbm
%%TIMID_LIBDIR%%/bitmaps/check.xbm
%%TIMID_LIBDIR%%/bitmaps/fast.xbm
%%TIMID_LIBDIR%%/bitmaps/fwrd.xbm
%%TIMID_LIBDIR%%/bitmaps/keydown.xbm
%%TIMID_LIBDIR%%/bitmaps/keyup.xbm
%%TIMID_LIBDIR%%/bitmaps/next.xbm
%%TIMID_LIBDIR%%/bitmaps/off.xbm
%%TIMID_LIBDIR%%/bitmaps/on.xbm
%%TIMID_LIBDIR%%/bitmaps/pause.xbm
%%TIMID_LIBDIR%%/bitmaps/play.xbm
%%TIMID_LIBDIR%%/bitmaps/prev.xbm
%%TIMID_LIBDIR%%/bitmaps/quit.xbm
%%TIMID_LIBDIR%%/bitmaps/random.xbm
%%TIMID_LIBDIR%%/bitmaps/repeat.xbm
%%TIMID_LIBDIR%%/bitmaps/slow.xbm
%%TIMID_LIBDIR%%/bitmaps/stop.xbm
%%TIMID_LIBDIR%%/bitmaps/timidity.xbm
%%TIMID_LIBDIR%%/browser.tcl
%%TIMID_LIBDIR%%/if_tcltk.so
%%TIMID_LIBDIR%%/misc.tcl
%%TIMID_LIBDIR%%/tkmidity.tcl
%%TIMID_LIBDIR%%/tkpanel.tcl
%%PORTDOCS%%%%DOCSDIR%%/README.tk
%%PORTDOCS%%share/doc/ja/timidity++/README.tk
%%PORTDOCS%%@dirrmtry share/doc/ja/timidity++
%%PORTDOCS%%@dirrmtry %%DOCSDIR%%
@dirrm %%TIMID_LIBDIR%%/bitmaps

View file

@ -1,70 +0,0 @@
# Created by: taguchi@tohoku.iij.ad.jp
# $FreeBSD$
PORTNAME= tk
PORTVERSION= 8.0.5
PORTREVISION= 5
CATEGORIES= japanese x11-toolkits tk
MASTER_SITES= ${MASTER_SITE_TCLTK}
MASTER_SITE_SUBDIR= tcl8_0
DISTNAME= ${PORTNAME}${PORTVERSION}
PATCH_SITES= ftp://ftp.sra.co.jp/pub/lang/tcl/jp/
PATCHFILES= ${PORTNAME}${PORTVERSION}jp1.7.patch.gz
MAINTAINER= ports@FreeBSD.org
COMMENT= Graphical toolkit for Japanized TCL, version 8.0
LIB_DEPENDS= libtcl80jp.so:${PORTSDIR}/japanese/tcl80
VERSION= ${PORTVERSION:R}
TOPDIR= ${WRKDIR}/${DISTNAME}
WRKSRC= ${TOPDIR}/unix
DOCSDIR= ${PREFIX}/share/doc/tk${VERSION}jp
PORTDOCS= README changes README.FreeBSD.JP README.JP changes.JP \
Incompat80jp
.if defined(PATCH_DEBUG)
PATCH_DIST_ARGS=-d ${TOPDIR} -E ${PATCH_DIST_STRIP}
.else
PATCH_DIST_ARGS=-d ${TOPDIR} --forward --quiet -E ${PATCH_DIST_STRIP}
.endif
USE_AUTOTOOLS= autoconf213
USE_XORG= x11
CONFIGURE_ARGS= --enable-shared --with-tcl=${PREFIX}/lib/tcl${VERSION}jp \
--enable-xlibHack --enable-onTheSpot
CPPFLAGS+= -I${LOCALBASE}/include
LDFLAGS+= -L${LOCALBASE}/lib
RANLIB= ranlib
USE_LDCONFIG= yes
NO_STAGE= yes
.include <bsd.port.pre.mk>
post-patch:
@${REINPLACE_CMD} -e '/xpg4/d' ${WRKSRC}/configure.in
.if !defined(NOPORTDOCS)
@${CP} ${FILESDIR}/README.FreeBSD.in ${TOPDIR}/README.FreeBSD.JP.in
@${SED} -e 's%AC_OUTPUT(Makefile tkConfig.sh)%AC_OUTPUT(Makefile tkConfig.sh ../README.FreeBSD.JP)%' \
< ${WRKSRC}/configure.in \
> ${WRKSRC}/configure.in.tmp
@${MV} -f ${WRKSRC}/configure.in.tmp ${WRKSRC}/configure.in
.endif
post-install:
.if !defined(NOPORTDOCS)
@${MKDIR} ${DOCSDIR}
@(cd ${TOPDIR}; \
${INSTALL_DATA} README changes README.FreeBSD.JP \
README.JP changes.JP \
Incompat80jp ${DOCSDIR}; \
)
.endif
@${CAT} ${PKGMESSAGE}
test:
cd ${WRKSRC} && ${MAKE} test
install-man:
cd ${WRKSRC} && ${MAKE} install-man
.include <bsd.port.post.mk>

View file

@ -1,4 +0,0 @@
SHA256 (tk8.0.5.tar.gz) = 58fac16495c213331998feac44e2f5a21911e6b6f4b00d6fb4bdac0084809d8c
SIZE (tk8.0.5.tar.gz) = 2033223
SHA256 (tk8.0.5jp1.7.patch.gz) = 311028222c46919565d90e572a49b9fef30d7cbd06c644d060d7196a4c8b844c
SIZE (tk8.0.5jp1.7.patch.gz) = 311634

View file

@ -1,48 +0,0 @@
FreeBSDにおけるTk の ports/packages について
田口 毅 taguchi@tohoku.iij.ad.jp
本文章ではFreeBSD環境におけるTkの特徴的な部分をまとめる
1. インストールされるファイルについて.
FreeBSD 上では,数多くのプログラムが標準配布に組み込まれており,それに
加えて1200を越えるプログラムがports/packagesの仕組みを用いて提供され
ている.
そこでのリリースエンジニアリング的問題に付いてはTcl8.0のドキュメント
で述べたので,そちらを参照されたい.ここでは,実際に注意しなければなら
ない事柄を述べるのみとする.
FreeBSDのports/packagesでインストールされるTk8.0においても,標準の
Tcl/Tkとはインストールされるディレクトリ階層が異なるファイルが存在す
る.
相違があるファイルで重要なものは以下の2個でありそれぞれ以下の場所に
インストールされる.
ファイル名 インストール場所 デフォルトの場所
tkConfig.sh @prefix@/lib/tk@TK_VERSION@ @exec_prefix@/lib
tk.h @prefix@/include/tk@TK_VERSION@ @prefix@/include
なおTkのソースに含まれるヘッダファイル群はすべて
@prefix@/include/tk@TK_VERSION@
以下の階層にインストールするようにしているのはTclと同様である
また,これは日本語版に限った話であるが日本語版tk8.0でも,オンラインマ
ニュアルページ(manファイル群)のインストールを行わないことにしている.
その理由はTcl8.0でのそれと同じである.
2. その他の相違点
Tcl/Tk はScriptics社によって保守されているがインターネット上でも
comp.lang.tclを中心に保守が行われているそしてそこでは正式なバー
ジョンではまだ修正されていないバグのfixも行われているこうしたバグ報
告は,
http://www.cs.uoregon.edu/research/tcl/patch/
にまとめられているいずれ本家にも反映されることが期待されるfixであ
るがとりあえずja-tk-8.0 でもこれらのfixも一部独自に反映させること
にした従ってFreeBSDのports/packages版はより安定して動作すること
が期待できるかもしれない.
またオリジナルのTk8.0のports/packagesではTkMan-2.0のためTom
Phelps氏のElide patchが含まれているそのため日本語化Tkに対する
Elide patchをオリジナルのpatchをもとに作成して添付したtextウィジェッ
トのtagのオプションに-elideの指定を行えるはずである.

View file

@ -1,67 +0,0 @@
--- configure.in.orig Sat Jan 27 00:02:17 2007
+++ configure.in Sat Jan 27 00:02:49 2007
@@ -10,6 +10,7 @@
TK_MINOR_VERSION=0
TK_PATCH_LEVEL=".5"
VERSION=${TK_VERSION}
+TCL_L10N=jp
if test "${prefix}" = "NONE"; then
prefix=/usr/local
@@ -68,8 +69,8 @@
if test ! -d $TCL_BIN_DIR; then
AC_MSG_ERROR(Tcl directory $TCL_BIN_DIR doesn't exist)
fi
-if test ! -f $TCL_BIN_DIR/Makefile; then
- AC_MSG_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?)
+if test ! -f $TCL_BIN_DIR/tclConfig.sh; then
+ AC_MSG_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?)
fi
#--------------------------------------------------------------------
@@ -104,6 +105,8 @@
CFLAGS_OPTIMIZE=$TCL_CFLAGS_OPTIMIZE
EXTRA_CFLAGS=$TCL_EXTRA_CFLAGS
+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
@@ -575,7 +574,7 @@
TK_SHARED_BUILD=1
TK_SHLIB_CFLAGS="${SHLIB_CFLAGS}"
TK_LIB_FILE=libtk${TCL_SHARED_LIB_SUFFIX}
- MAKE_LIB="\${SHLIB_LD} -o \${TK_LIB_FILE} \${OBJS} \$(TK_LD_SEARCH_FLAGS) ${SHLIB_LD_LIBS}"
+ MAKE_LIB="\${SHLIB_LD} -o \${TK_LIB_FILE} -Wl,-S,-soname=\${TK_LIB_FILE} \${OBJS} \$(TK_LD_SEARCH_FLAGS) ${SHLIB_LD_LIBS}"
RANLIB=":"
else
TK_SHARED_BUILD=0
@@ -584,7 +583,7 @@
MAKE_LIB="ar cr \${TK_LIB_FILE} \${OBJS}"
fi
-DBGX='${TK_DBGX}'
+DBGX="${TK_DBGX}"
eval "TK_LIB_FILE=${TK_LIB_FILE}"
# Note: in the following variable, it's important to use the absolute
@@ -617,10 +616,12 @@
AC_SUBST(SHLIB_VERSION)
AC_SUBST(TCL_BIN_DIR)
AC_SUBST(TCL_BUILD_LIB_SPEC)
+AC_SUBST(TCL_LIB_SPEC)
AC_SUBST(TCL_DBGX)
AC_SUBST(TCL_LIB_FLAG)
AC_SUBST(TCL_SRC_DIR)
AC_SUBST(TCL_VERSION)
+AC_SUBST(TCL_L10N)
AC_SUBST(TK_BUILD_LIB_SPEC)
AC_SUBST(TK_CC_SEARCH_FLAGS)
AC_SUBST(TK_LD_SEARCH_FLAGS)
@@ -637,4 +638,4 @@
AC_SUBST(XLIBSW)
AC_SUBST(TK_SHARED_BUILD)
AC_SUBST(X11_IMAKE_FLAGS)
-AC_OUTPUT(Makefile tkConfig.sh)
+AC_OUTPUT(Makefile tkConfig.sh ../README.FreeBSD.JP)

View file

@ -1,204 +0,0 @@
--- Makefile.in.orig Tue May 21 09:13:50 2002
+++ Makefile.in Tue May 21 16:02:12 2002
@@ -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
@@ -72,6 +74,9 @@
# Tcl commands implemented by Tk:
MANN_INSTALL_DIR = $(MAN_INSTALL_DIR)/mann
+# Directory in which to install sharedable other documents:
+DOC_INSTALL_DIR = $(INSTALL_ROOT)$(prefix)/share/doc/tk$(VERSION)
+
# The directory containing the Tcl sources and headers appropriate
# for this version of Tk ("srcdir" will be replaced or has already
# been replaced by the configure script):
@@ -112,7 +117,7 @@
# 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 = @TCL_LIB_SPEC@ @LIBS@ $(X11_LIB_SWITCHES) @DL_LIBS@ @MATH_LIBS@ -lc
# To turn off the security checks that disallow incoming sends when
# the X server appears to be insecure, reverse the comments on the
@@ -148,7 +153,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
@@ -161,6 +166,8 @@
TK_SHLIB_CFLAGS = @TK_SHLIB_CFLAGS@
TK_LIB_FILE = @TK_LIB_FILE@
+TCL_L10N = @TCL_L10N@
+TK_STATIC_LIB_FILE = libtk80$(TCL_L10N).a
#TK_LIB_FILE = libtk.a
TK_LIB_FLAG = @TK_LIB_FLAG@
@@ -187,11 +194,11 @@
KANJI_FLAGS = @KANJI_FLAGS@
-CACHEDIR=$(UNIX_DIR)/CacheLib
-CACHEDFONTDEF = -I$(CACHEDIR) @XLIB_HACK_DEF@
-CACHEDFONTSRCS = $(CACHEDIR)/Font.c $(CACHEDIR)/FontNames.c $(CACHEDIR)/omGeneric.c \
- $(CHACHEDIR)/chkImEv.c $(CHACHEDIR)/imTrX.c
-CACHEDFONTOBJS = Font.o FontNames.o omGeneric.o chkImEv.o imTrX.o
+#CACHEDIR=$(UNIX_DIR)/CacheLib
+#CACHEDFONTDEF = -I$(CACHEDIR) @XLIB_HACK_DEF@
+#CACHEDFONTSRCS = $(CACHEDIR)/Font.c $(CACHEDIR)/FontNames.c $(CACHEDIR)/omGeneric.c \
+# $(CHACHEDIR)/chkImEv.c $(CHACHEDIR)/imTrX.c
+#CACHEDFONTOBJS = Font.o FontNames.o omGeneric.o chkImEv.o imTrX.o
#----------------------------------------------------------------
# The information below is modified by the configure script when
@@ -318,6 +325,10 @@
DEMOPROGS = browse hello ixset rmt rolodex square tcolor timer widget
+DOCS = $(TOP_DIR)/README $(TOP_DIR)/changes $(TOP_DIR)/README.JP \
+ $(TOP_DIR)/Incompat80jp $(TOP_DIR)/changes.JP \
+ $(UNIX_DIR)/README.FreeBSD
+
all: wish
# The following target is configured by autoconf to generate either
@@ -326,6 +337,12 @@
rm -f ${TK_LIB_FILE}
@MAKE_LIB@
$(RANLIB) ${TK_LIB_FILE}
+ ln -sf ${TK_LIB_FILE} `echo ${TK_LIB_FILE} | sed 's/\.so.*$$/.so/'`
+
+$(TK_STATIC_LIB_FILE): $(OBJS)
+ rm -f $(TK_STATIC_LIB_FILE)
+ ar cr $(TK_STATIC_LIB_FILE) $(OBJS)
+ $(RANLIB) $(TK_STATIC_LIB_FILE)
# 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
@@ -375,13 +394,13 @@
TK_LIBRARY=$(TOP_DIR)/library; export TK_LIBRARY; \
./tktest
-install: install-binaries install-libraries install-demos install-demosjp install-man
+install: install-binaries install-libraries install-demos install-demosjp
# Note: before running ranlib below, must cd to target directory because
# 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) $(TK_STATIC_LIB_FILE) wish
@for i in $(LIB_INSTALL_DIR) $(BIN_INSTALL_DIR) ; \
do \
if [ ! -d $$i ] ; then \
@@ -395,13 +414,20 @@
@$(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)
+ @(cd $(LIB_INSTALL_DIR); ln -sf ${TK_LIB_FILE} `echo ${TK_LIB_FILE} | sed 's/\.so.*$$/.so/'`)
+ @echo "Installing $(TK_STATIC_LIB_FILE)"
+ @$(INSTALL_DATA) $(TK_STATIC_LIB_FILE) $(LIB_INSTALL_DIR)/$(TK_STATIC_LIB_FILE)
+ @(cd $(LIB_INSTALL_DIR); $(RANLIB) $(TK_STATIC_LIB_FILE))
+ @chmod 555 $(LIB_INSTALL_DIR)/$(TK_STATIC_LIB_FILE)
@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 \
@@ -411,8 +439,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"; \
@@ -482,6 +520,7 @@
chmod 755 $(SCRIPT_INSTALL_DIR)/demos.jp/$$i; \
done;
(cd $(SCRIPT_INSTALL_DIR)/demos.jp; \
+ rm -f *.orig; \
rm -rf images; \
ln -s $(SCRIPT_INSTALL_DIR)/demos/images .)
@@ -498,10 +537,10 @@
@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; \
@@ -509,19 +548,26 @@
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; \
+ $$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)
+ @echo "**********"
+ @echo "IMPORTANT:"
+ @echo "**********"
+ @echo "tkConfig.sh in $(SCRIPT_INSTALL_DIR)/tkConfig.sh"
+ @echo "tk.h in $(INCLUDE_INSTALL_DIR)/tk.h"
+ @echo "There are NOT default place, but good place to avoid"
+ @echo "conflicting with another version of Tcl/Tks."
Makefile: $(UNIX_DIR)/Makefile.in
$(SHELL) config.status

View file

@ -1,784 +0,0 @@
--- ../generic/tkText.c.ORIG Wed Mar 24 11:36:00 1999
+++ ../generic/tkText.c Wed Mar 24 11:38:57 1999
@@ -947,6 +947,7 @@
|| (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;
@@ -1521,7 +1522,7 @@
}
}
}
- if (segPtr->typePtr == &tkTextCharType) {
+ if (segPtr->typePtr == &tkTextCharType && !TkTextIsElided(textPtr, &textPtr->selIndex)) {
#ifdef TK_KANJI_OK
memcpy((VOID *) buffer, (VOID *) (str + offset), (size_t) numBytes);
offset = 0;
@@ -1829,7 +1830,7 @@
int argc; /* Number of arguments. */
char **argv; /* Argument strings. */
{
- int backwards, exact, c, i, argsLeft, noCase, leftToScan;
+ 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;
@@ -1840,6 +1841,7 @@
Tcl_DString line, patDString;
TkTextSegment *segPtr;
TkTextLine *linePtr;
+ TkTextIndex curIndex;
Tcl_RegExp regexp = NULL; /* Initialization needed only to
* prevent compiler warning. */
@@ -1848,6 +1850,8 @@
*/
exact = 1;
+ searchElide = 0;
+ curIndex.tree = textPtr->tree;
backwards = 0;
noCase = 0;
varName = NULL;
@@ -1861,7 +1865,7 @@
badSwitch:
Tcl_AppendResult(interp, "bad switch \"", arg,
"\": must be -forward, -backward, -exact, -regexp, ",
- "-nocase, -count, or --", (char *) NULL);
+ "-nocase, -count, -elide, or --", (char *) NULL);
return TCL_ERROR;
}
c = arg[1];
@@ -1882,6 +1886,8 @@
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;
@@ -1977,13 +1983,14 @@
*/
linePtr = TkBTreeFindLine(textPtr->tree, lineNum);
+ curIndex.linePtr = linePtr; curIndex.charIndex = 0;
for (segPtr = linePtr->segPtr; segPtr != NULL;
- segPtr = segPtr->nextPtr) {
+ curIndex.charIndex += segPtr->size, segPtr = segPtr->nextPtr) {
#ifdef TK_KANJI_OK
int i;
char *str;
#endif /* TK_KANJI_OK */
- if (segPtr->typePtr != &tkTextCharType) {
+ if (segPtr->typePtr != &tkTextCharType || (!searchElide && TkTextIsElided(textPtr, &curIndex))) {
continue;
}
#ifdef TK_KANJI_OK
@@ -2211,7 +2218,7 @@
int argc; /* Number of arguments. */
char **argv; /* Argument strings. */
{
- int backwards, exact, c, i, argsLeft, noCase, leftToScan;
+ 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;
@@ -2231,6 +2238,7 @@
#endif /* TK_KANJI_OK */
TkTextSegment *segPtr;
TkTextLine *linePtr;
+ TkTextIndex curIndex;
#ifndef TK_KANJI_OK
Tcl_RegExp regexp = NULL; /* Initialization needed only to
* prevent compiler warning. */
@@ -2241,6 +2249,8 @@
*/
exact = 1;
+ searchElide = 0;
+ curIndex.tree = textPtr->tree;
backwards = 0;
noCase = 0;
varName = NULL;
@@ -2254,7 +2264,7 @@
badSwitch:
Tcl_AppendResult(interp, "bad switch \"", arg,
"\": must be -forward, -backward, -exact, -regexp, ",
- "-nocase, -count, or --", (char *) NULL);
+ "-nocase, -count, -elide, or --", (char *) NULL);
return TCL_ERROR;
}
c = arg[1];
@@ -2279,6 +2289,8 @@
return TCL_ERROR;
#endif /* TK_KANJI_OK */
exact = 0;
+ } else if ((c == 'e') && (strncmp(argv[i], "-elide", length) == 0)) {
+ searchElide = 1;
} else if ((c == '-') && (strncmp(argv[i], "--", length) == 0)) {
i++;
break;
@@ -2406,9 +2418,10 @@
*/
linePtr = TkBTreeFindLine(textPtr->tree, lineNum);
+ curIndex.linePtr = linePtr; curIndex.charIndex = 0;
for (segPtr = linePtr->segPtr; segPtr != NULL;
- segPtr = segPtr->nextPtr) {
- if (segPtr->typePtr != &tkTextCharType) {
+ curIndex.charIndex += segPtr->size, segPtr = segPtr->nextPtr) {
+ if (segPtr->typePtr != &tkTextCharType || (!searchElide && TkTextIsElided(textPtr, &curIndex))) {
continue;
}
#ifdef TK_KANJI_OK
--- ../generic/tkText.h.ORIG Wed Mar 24 11:36:25 1999
+++ ../generic/tkText.h Wed Mar 24 11:38:58 1999
@@ -378,6 +378,10 @@
* 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). */
@@ -808,6 +812,8 @@
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));
--- ../generic/tkTextBTree.c.ORIG Wed Mar 24 11:36:47 1999
+++ ../generic/tkTextBTree.c Wed Mar 24 11:38:58 1999
@@ -2447,6 +2447,132 @@
}
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;
+}
/*
*----------------------------------------------------------------------
--- ../generic/tkTextDisp.c.ORIG Wed Mar 24 11:37:14 1999
+++ ../generic/tkTextDisp.c Wed Mar 24 11:38:59 1999
@@ -59,6 +59,7 @@
* 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. */
@@ -321,6 +322,21 @@
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,
@@ -495,7 +511,7 @@
int borderPrio, borderWidthPrio, reliefPrio, bgStipplePrio;
int fgPrio, fontPrio, fgStipplePrio;
- int underlinePrio, justifyPrio, offsetPrio;
+ int underlinePrio, elidePrio, justifyPrio, offsetPrio;
int lMargin1Prio, lMargin2Prio, rMarginPrio;
int spacing1Prio, spacing2Prio, spacing3Prio;
int overstrikePrio, tabPrio, wrapPrio;
@@ -510,7 +526,7 @@
tagPtrs = TkBTreeGetTags(indexPtr, &numTags);
borderPrio = borderWidthPrio = reliefPrio = bgStipplePrio = -1;
fgPrio = fontPrio = fgStipplePrio = -1;
- underlinePrio = justifyPrio = offsetPrio = -1;
+ underlinePrio = elidePrio = justifyPrio = offsetPrio = -1;
lMargin1Prio = lMargin2Prio = rMarginPrio = -1;
spacing1Prio = spacing2Prio = spacing3Prio = -1;
overstrikePrio = tabPrio = wrapPrio = -1;
@@ -628,6 +644,11 @@
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;
@@ -784,7 +805,7 @@
* lines with numChars > 0. Used to
* drop 0-sized chunks from the end
* of the line. */
- int offset, ascent, descent, code;
+ int offset, ascent, descent, code, elide, elidesize;
StyleValues *sValuePtr;
/*
@@ -802,6 +823,34 @@
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
@@ -813,6 +862,7 @@
lastChunkPtr = NULL;
chunkPtr = NULL;
noCharsYet = 1;
+ elide = 0;
breakChunkPtr = NULL;
breakCharOffset = 0;
justify = TK_JUSTIFY_LEFT;
@@ -837,6 +887,31 @@
}
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;
@@ -847,6 +922,7 @@
chunkPtr->nextPtr = NULL;
}
chunkPtr->stylePtr = GetStyle(textPtr, &curIndex);
+ elide = chunkPtr->stylePtr->sValuePtr->elide;
/*
* Save style information such as justification and indentation,
@@ -880,7 +956,7 @@
gotTab = 0;
maxChars = segPtr->size - offset;
- if (justify == TK_JUSTIFY_LEFT) {
+ if (!elide && justify == TK_JUSTIFY_LEFT) {
if (segPtr->typePtr == &tkTextCharType) {
#ifdef TK_KANJI_OK
wchar *p;
@@ -896,8 +972,21 @@
}
}
}
-
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);
@@ -969,6 +1058,7 @@
offset = 0;
segPtr = segPtr->nextPtr;
}
+
chunkPtr = NULL;
}
if (noCharsYet) {
@@ -1017,6 +1107,7 @@
wholeLine = 0;
}
+
/*
* Make tab adjustments for the last tab stop, if there is one.
*/
@@ -1340,6 +1431,7 @@
index.linePtr = TkBTreeFindLine(textPtr->tree, lineNum);
index.charIndex = 0;
lowestPtr = NULL;
+
do {
dlPtr = LayoutDLine(textPtr, &index);
dlPtr->nextPtr = lowestPtr;
@@ -1573,6 +1665,8 @@
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.
@@ -1639,12 +1733,16 @@
* 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,
@@ -1733,6 +1831,7 @@
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
@@ -1806,7 +1905,7 @@
rightX = maxX;
}
chunkPtr2 = NULL;
- if (prevPtr != NULL) {
+ if (prevPtr != NULL && prevPtr->chunkPtr != NULL) {
/*
* Find the chunk in the previous line that covers leftX.
*/
@@ -1927,7 +2026,8 @@
rightX = maxX;
}
chunkPtr2 = NULL;
- if (dlPtr->nextPtr != 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.
*/
@@ -2318,6 +2418,7 @@
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];
@@ -2334,6 +2435,7 @@
dlPtr->oldY = dlPtr->y;
dlPtr->flags &= ~NEW_LAYOUT;
}
+ /*prevPtr = dlPtr;*/
}
Tk_FreePixmap(Tk_Display(textPtr->tkwin), pixmap);
}
@@ -3388,6 +3490,7 @@
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)
@@ -3400,7 +3503,7 @@
break;
}
}
-
+
/*
* Discard the display lines, then either return or prepare
* for the next display line to lay out.
@@ -3429,12 +3532,14 @@
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;
}
}
@@ -3968,7 +4073,7 @@
* index of the character nearest to (x,y). */
{
TextDInfo *dInfoPtr = textPtr->dInfoPtr;
- register DLine *dlPtr;
+ register DLine *dlPtr, *validdlPtr;
register TkTextDispChunk *chunkPtr;
/*
@@ -4001,8 +4106,9 @@
* Find the display line containing the desired y-coordinate.
*/
- for (dlPtr = dInfoPtr->dLinePtr; y >= (dlPtr->y + dlPtr->height);
+ 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.
@@ -4013,6 +4119,8 @@
break;
}
}
+ if (dlPtr->chunkPtr == NULL) dlPtr = validdlPtr;
+
/*
* Scan through the line's chunks to find the one that contains
@@ -4024,12 +4132,12 @@
*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) {
+ indexPtr->charIndex += chunkPtr->numChars,
+ chunkPtr = chunkPtr->nextPtr) {
if (chunkPtr->nextPtr == NULL) {
indexPtr->charIndex += chunkPtr->numChars - 1;
return;
- }
+ }
}
/*
@@ -4185,6 +4293,7 @@
{
TextDInfo *dInfoPtr = textPtr->dInfoPtr;
DLine *dlPtr;
+ int dlx;
/*
* Make sure that all of the screen layout information is up to date.
@@ -4203,8 +4312,9 @@
return -1;
}
- *xPtr = dInfoPtr->x - dInfoPtr->curPixelOffset + dlPtr->chunkPtr->x;
- *widthPtr = dlPtr->length - dlPtr->chunkPtr->x;
+ 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;
@@ -4215,6 +4325,41 @@
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*/;
+}
+
/*
*--------------------------------------------------------------
*
@@ -4480,7 +4625,7 @@
* Draw the text, underline, and overstrike for this chunk.
*/
- if (ciPtr->numChars > offsetChars) {
+ if (!sValuePtr->elide && ciPtr->numChars > offsetChars) {
int numChars = ciPtr->numChars - offsetChars;
#ifdef TK_KANJI_OK
wchar *string = ciPtr->chars + offsetChars;
--- ../generic/tkTextTag.c.ORIG Wed Mar 24 11:37:36 1999
+++ ../generic/tkTextTag.c Wed Mar 24 11:38:59 1999
@@ -63,6 +63,9 @@
{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,6 +381,12 @@
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,6 +428,7 @@
|| (tagPtr->spacing3String != NULL)
|| (tagPtr->tabString != NULL)
|| (tagPtr->underlineString != NULL)
+ || (tagPtr->elideString != NULL)
|| (tagPtr->wrapMode != NULL)) {
tagPtr->affectsDisplay = 1;
}
@@ -811,6 +821,8 @@
tagPtr->tabArrayPtr = NULL;
tagPtr->underlineString = NULL;
tagPtr->underline = 0;
+ tagPtr->elideString = NULL;
+ tagPtr->elide = 0;
tagPtr->wrapMode = NULL;
tagPtr->affectsDisplay = 0;
textPtr->numTags++;
@@ -934,6 +946,9 @@
}
if (tagPtr->underlineString != NULL) {
ckfree(tagPtr->underlineString);
+ }
+ if (tagPtr->elideString != NULL) {
+ ckfree(tagPtr->elideString);
}
ckfree((char *) tagPtr);
}
--- ../tests/text.test.ORIG Wed Mar 24 11:37:58 1999
+++ ../tests/text.test Wed Mar 24 11:38:59 1999
@@ -862,7 +862,7 @@
.t insert end "xxyz xyz x. the\nfoo -forward bar xxxxx BaR foo\nxyz xxyzx"
test text-20.1 {TextSearchCmd procedure, argument parsing} {
list [catch {.t search -} msg] $msg
-} {1 {bad switch "-": must be -forward, -backward, -exact, -regexp, -nocase, -count, or --}}
+} {1 {bad switch "-": must be -forward, -backward, -exact, -regexp, -nocase, -count, -elide, or --}}
test text-20.2 {TextSearchCmd procedure, -backwards option} {
.t search -backwards xyz 1.4
} {1.1}

View file

@ -1,22 +0,0 @@
--- tkKinput2.c.orig Mon Dec 18 21:46:48 2006
+++ tkKinput2.c Mon Dec 18 22:14:27 2006
@@ -552,6 +552,8 @@
XEvent *event));
static int stopForwarding _ANSI_ARGS_ ((ClientData clientdata,
XErrorEvent *errEvent));
+static int checkProtocols _ANSI_ARGS_ ((Display *dpy,
+ Window window, ConversionAtoms *cap));
/*
*--------------------------------------------------------------
@@ -585,8 +587,10 @@
ConversionAtoms *cap;
ConversionContext *context;
int anyattr = False;
+ /* for gcc41
static int checkProtocols _ANSI_ARGS_ ((Display *dpy,
Window window, ConversionAtoms *cap));
+ */
cap = getAtoms(tkwin);

View file

@ -1,13 +0,0 @@
This package contains the binary release of Japanized Tk 8.0,
a GUI toolkit for Tcl.
Many thanks to Mr. Nishinaka and tcl-jp team.
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.
And Japanized version of this document is available.
`` Tcl and Tk Toolkit'', SOFTBANK, ISBN4-89052-819-9.
NOTE: A full set of manual pages is provided by the package "tk-8.0".
This package does NOT contain it.
And this kit requires a Japanized Tcl8.0 binary kit.

View file

@ -1,11 +0,0 @@
**********
INPORTANT:
**********
1. ja-tk-8.0 does NOT install online manual pages.
if you need them, please install package "tk-8.0".
Or type "make install-man", if you are using the ports
rather than packages.
2. For more informations, see "/usr/local/share/doc/tk8.0jp/"
Thanks.

View file

@ -1,186 +0,0 @@
bin/wish8.0jp
lib/libtk80jp.a
lib/libtk80jp.so.1
lib/libtk80jp.so
include/tk8.0jp/tk.h
include/tk8.0jp/generic/default.h
include/tk8.0jp/generic/ks_names.h
include/tk8.0jp/generic/tk.h
include/tk8.0jp/generic/tk3d.h
include/tk8.0jp/generic/tkButton.h
include/tk8.0jp/generic/tkCanvas.h
include/tk8.0jp/generic/tkColor.h
include/tk8.0jp/generic/tkFileFilter.h
include/tk8.0jp/generic/tkFont.h
include/tk8.0jp/generic/tkInitScript.h
include/tk8.0jp/generic/tkInt.h
include/tk8.0jp/generic/tkMenu.h
include/tk8.0jp/generic/tkMenubutton.h
include/tk8.0jp/generic/tkPort.h
include/tk8.0jp/generic/tkScale.h
include/tk8.0jp/generic/tkScrollbar.h
include/tk8.0jp/generic/tkSelect.h
include/tk8.0jp/generic/tkText.h
include/tk8.0jp/unix/tkKinput2.h
include/tk8.0jp/unix/tkUnixDefault.h
include/tk8.0jp/unix/tkUnixInt.h
include/tk8.0jp/unix/tkUnixPort.h
lib/tk8.0jp/bgerror.tcl
lib/tk8.0jp/button.tcl
lib/tk8.0jp/clrpick.tcl
lib/tk8.0jp/comdlg.tcl
lib/tk8.0jp/console.tcl
lib/tk8.0jp/dialog.tcl
lib/tk8.0jp/entry.tcl
lib/tk8.0jp/focus.tcl
lib/tk8.0jp/kinput.tcl
lib/tk8.0jp/kinsoku.tcl
lib/tk8.0jp/listbox.tcl
lib/tk8.0jp/menu.tcl
lib/tk8.0jp/msgbox.tcl
lib/tk8.0jp/obsolete.tcl
lib/tk8.0jp/optMenu.tcl
lib/tk8.0jp/palette.tcl
lib/tk8.0jp/safetk.tcl
lib/tk8.0jp/scale.tcl
lib/tk8.0jp/scrlbar.tcl
lib/tk8.0jp/tearoff.tcl
lib/tk8.0jp/text.tcl
lib/tk8.0jp/tk.tcl
lib/tk8.0jp/tkfbox.tcl
lib/tk8.0jp/xim.tcl
lib/tk8.0jp/xmfbox.tcl
lib/tk8.0jp/tclIndex
lib/tk8.0jp/prolog.ps
lib/tk8.0jp/tkAppInit.c
lib/tk8.0jp/tkConfig.sh
lib/tk8.0jp/demos/README
lib/tk8.0jp/demos/arrow.tcl
lib/tk8.0jp/demos/bind.tcl
lib/tk8.0jp/demos/bitmap.tcl
lib/tk8.0jp/demos/browse
lib/tk8.0jp/demos/button.tcl
lib/tk8.0jp/demos/check.tcl
lib/tk8.0jp/demos/clrpick.tcl
lib/tk8.0jp/demos/colors.tcl
lib/tk8.0jp/demos/cscroll.tcl
lib/tk8.0jp/demos/ctext.tcl
lib/tk8.0jp/demos/dialog1.tcl
lib/tk8.0jp/demos/dialog2.tcl
lib/tk8.0jp/demos/entry1.tcl
lib/tk8.0jp/demos/entry2.tcl
lib/tk8.0jp/demos/filebox.tcl
lib/tk8.0jp/demos/floor.tcl
lib/tk8.0jp/demos/form.tcl
lib/tk8.0jp/demos/hello
lib/tk8.0jp/demos/hscale.tcl
lib/tk8.0jp/demos/icon.tcl
lib/tk8.0jp/demos/image1.tcl
lib/tk8.0jp/demos/image2.tcl
lib/tk8.0jp/demos/items.tcl
lib/tk8.0jp/demos/ixset
lib/tk8.0jp/demos/label.tcl
lib/tk8.0jp/demos/license.terms
lib/tk8.0jp/demos/menu.tcl
lib/tk8.0jp/demos/menubu.tcl
lib/tk8.0jp/demos/msgbox.tcl
lib/tk8.0jp/demos/plot.tcl
lib/tk8.0jp/demos/puzzle.tcl
lib/tk8.0jp/demos/radio.tcl
lib/tk8.0jp/demos/rmt
lib/tk8.0jp/demos/rolodex
lib/tk8.0jp/demos/ruler.tcl
lib/tk8.0jp/demos/sayings.tcl
lib/tk8.0jp/demos/search.tcl
lib/tk8.0jp/demos/square
lib/tk8.0jp/demos/states.tcl
lib/tk8.0jp/demos/style.tcl
lib/tk8.0jp/demos/tclIndex
lib/tk8.0jp/demos/tcolor
lib/tk8.0jp/demos/text.tcl
lib/tk8.0jp/demos/timer
lib/tk8.0jp/demos/twind.tcl
lib/tk8.0jp/demos/vscale.tcl
lib/tk8.0jp/demos/widget
lib/tk8.0jp/demos/images/earth.gif
lib/tk8.0jp/demos/images/earthris.gif
lib/tk8.0jp/demos/images/face.bmp
lib/tk8.0jp/demos/images/flagdown.bmp
lib/tk8.0jp/demos/images/flagup.bmp
lib/tk8.0jp/demos/images/gray25.bmp
lib/tk8.0jp/demos/images/letters.bmp
lib/tk8.0jp/demos/images/noletter.bmp
lib/tk8.0jp/demos/images/pattern.bmp
lib/tk8.0jp/demos/images/tcllogo.gif
lib/tk8.0jp/demos/images/teapot.ppm
lib/tk8.0jp/demos.jp/README
lib/tk8.0jp/demos.jp/README.JP
lib/tk8.0jp/demos.jp/arrow.tcl
lib/tk8.0jp/demos.jp/bind.tcl
lib/tk8.0jp/demos.jp/bitmap.tcl
lib/tk8.0jp/demos.jp/browse
lib/tk8.0jp/demos.jp/button.tcl
lib/tk8.0jp/demos.jp/cfont.tcl
lib/tk8.0jp/demos.jp/check.tcl
lib/tk8.0jp/demos.jp/clrpick.tcl
lib/tk8.0jp/demos.jp/colors.tcl
lib/tk8.0jp/demos.jp/cscroll.tcl
lib/tk8.0jp/demos.jp/ctext.tcl
lib/tk8.0jp/demos.jp/dialog1.tcl
lib/tk8.0jp/demos.jp/dialog2.tcl
lib/tk8.0jp/demos.jp/entry1.tcl
lib/tk8.0jp/demos.jp/entry2.tcl
lib/tk8.0jp/demos.jp/filebox.tcl
lib/tk8.0jp/demos.jp/floor.tcl
lib/tk8.0jp/demos.jp/form.tcl
lib/tk8.0jp/demos.jp/hello
lib/tk8.0jp/demos.jp/hscale.tcl
lib/tk8.0jp/demos.jp/icon.tcl
lib/tk8.0jp/demos.jp/image1.tcl
lib/tk8.0jp/demos.jp/image2.tcl
lib/tk8.0jp/demos.jp/items.tcl
lib/tk8.0jp/demos.jp/ixset
lib/tk8.0jp/demos.jp/label.tcl
lib/tk8.0jp/demos.jp/license.terms
lib/tk8.0jp/demos.jp/menu.tcl
lib/tk8.0jp/demos.jp/menubu.tcl
lib/tk8.0jp/demos.jp/msgbox.tcl
lib/tk8.0jp/demos.jp/plot.tcl
lib/tk8.0jp/demos.jp/puzzle.tcl
lib/tk8.0jp/demos.jp/radio.tcl
lib/tk8.0jp/demos.jp/rmt
lib/tk8.0jp/demos.jp/rolodex
lib/tk8.0jp/demos.jp/ruler.tcl
lib/tk8.0jp/demos.jp/sayings.tcl
lib/tk8.0jp/demos.jp/search.tcl
lib/tk8.0jp/demos.jp/square
lib/tk8.0jp/demos.jp/states.tcl
lib/tk8.0jp/demos.jp/style.tcl
lib/tk8.0jp/demos.jp/tclIndex
lib/tk8.0jp/demos.jp/tcolor
lib/tk8.0jp/demos.jp/text.tcl
lib/tk8.0jp/demos.jp/timer
lib/tk8.0jp/demos.jp/twind.tcl
lib/tk8.0jp/demos.jp/vscale.tcl
lib/tk8.0jp/demos.jp/widget
@exec /bin/ln -sf %B/../demos/images %B/images
@unexec /bin/rm -f %B/images
lib/tk8.0jp/images/README
lib/tk8.0jp/images/logo100.gif
lib/tk8.0jp/images/logo64.gif
lib/tk8.0jp/images/logoLarge.gif
lib/tk8.0jp/images/logoMed.gif
lib/tk8.0jp/images/pwrdLogo100.gif
lib/tk8.0jp/images/pwrdLogo150.gif
lib/tk8.0jp/images/pwrdLogo175.gif
lib/tk8.0jp/images/pwrdLogo200.gif
lib/tk8.0jp/images/pwrdLogo75.gif
@dirrm include/tk8.0jp/generic
@dirrm include/tk8.0jp/unix
@dirrm include/tk8.0jp
@dirrm lib/tk8.0jp/demos/images
@dirrm lib/tk8.0jp/demos
@dirrm lib/tk8.0jp/demos.jp
@dirrm lib/tk8.0jp/images
@dirrm lib/tk8.0jp
@dirrm share/doc/tk8.0jp

View file

@ -1,34 +0,0 @@
# Created by: Daichi GOTO
# $FreeBSD$
PORTNAME= tkhonyaku
PORTVERSION= 1.8
PORTREVISION= 2
CATEGORIES= japanese
MASTER_SITES= http://www.yk.rim.or.jp/~kawagisi/
MAINTAINER= daichi@FreeBSD.org
COMMENT= Yet another Honyaku-Damashii client with rich functionality
RUN_DEPENDS= ${LOCALBASE}/bin/wish8.0jp:${PORTSDIR}/japanese/tk80
USES= perl5
USE_PERL5= build
NO_BUILD= yes
WRKSRC= ${WRKDIR}/${PORTNAME}
OPTIONS_DEFINE= DOCS
post-patch:
@${REINPLACE_CMD} -i '' -e 's|/usr/local/tkhonyaku|${PREFIX}/tkhonyaku|g' \
${WRKSRC}/tkhonyaku ${WRKSRC}/tkhonyaku-readme
do-install:
${INSTALL_DATA} ${WRKSRC}/tkhonyaku.gif ${STAGEDIR}${DATADIR}
${INSTALL_DATA} ${WRKSRC}/tkhonyaku.xpm ${STAGEDIR}${DATADIR}
${INSTALL_DATA} ${WRKSRC}/colors.gif ${STAGEDIR}${DATADIR}
${INSTALL_SCRIPT} ${WRKSRC}/tkhonyaku ${STAGEDIR}${PREFIX}/bin/
${INSTALL_DATA} ${WRKSRC}/tkhonyaku-readme ${STAGEDIR}${PORTDOCS}${DOCSDIR}
.include <bsd.port.mk>

View file

@ -1,2 +0,0 @@
SHA256 (tkhonyaku-1.8.tar.gz) = 798c73885cb877bf8ab02079a267805b1fac65c0f8bc9858a1dd2943845f290c
SIZE (tkhonyaku-1.8.tar.gz) = 55122

View file

@ -1,11 +0,0 @@
diff -ru tkhonyaku.orig tkhonyaku
--- tkhonyaku.orig Mon May 14 13:19:36 2001
+++ tkhonyaku Mon May 14 13:20:10 2001
@@ -1,6 +1,6 @@
#!/bin/sh
# the next line restart using wish \
-exec wish "$0" "$@"
+exec wish8.0jp "$0" "$@"
#=============================================================================
# ¡ØTkËÝÌõ¡Ùversion 1.7 for Unix/Windows/Macintosh

View file

@ -1,7 +0,0 @@
TkHonyaku is yet another Honyaku-Damashii client with rich functionality.
If you have Honyaku-Damashii and are using xhonyaku, give this a try
instead of xhonyaku.
(Honyaku-Damashii is a Japanese <-> English translator)
WWW: http://www.yk.rim.or.jp/~kawagisi/tkhonyaku.html

View file

@ -1,3 +0,0 @@
bin/tkhonyaku
%%PORTDOCS%%%%DOCSDIR%%
%%DATADIR%%