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:
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
4
MOVED
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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>
|
|
@ -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
|
|
@ -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版は,より安定して動作することが期
|
||||
待できるかもしれない.
|
|
@ -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)
|
|
@ -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
|
|
@ -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.
|
|
@ -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.
|
|
@ -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
|
|
@ -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"
|
|
@ -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/
|
|
@ -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
|
|
@ -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>
|
|
@ -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
|
|
@ -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の指定を行えるはずである.
|
|
@ -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)
|
|
@ -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
|
|
@ -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}
|
|
@ -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);
|
||||
|
|
@ -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.
|
|
@ -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.
|
|
@ -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
|
|
@ -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>
|
|
@ -1,2 +0,0 @@
|
|||
SHA256 (tkhonyaku-1.8.tar.gz) = 798c73885cb877bf8ab02079a267805b1fac65c0f8bc9858a1dd2943845f290c
|
||||
SIZE (tkhonyaku-1.8.tar.gz) = 55122
|
|
@ -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
|
|
@ -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
|
|
@ -1,3 +0,0 @@
|
|||
bin/tkhonyaku
|
||||
%%PORTDOCS%%%%DOCSDIR%%
|
||||
%%DATADIR%%
|
Loading…
Reference in a new issue