Submitted by: Clive Lin <clive@CirX.ORG>

XA+CV is a work around library lets most X applications to show Chinese words
properly. Use LD_PRELOAD to make it work.
This commit is contained in:
Foxfair Hu 1999-09-09 10:11:52 +00:00
parent dd8bf91b4f
commit 13ec0f9b95
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=21486
8 changed files with 337 additions and 0 deletions

49
chinese/xa+cv/Makefile Normal file
View File

@ -0,0 +1,49 @@
# New ports collection makefile for: xa+cv
# Version required: 0.6
# Date created: 29 March 1999
# Whom: Clive Lin <clive@CirX.ORG>
#
# $FreeBSD: /tmp/pcvs/ports/chinese/xa+cv/Attic/Makefile,v 1.1.1.1 1999-09-09 10:11:51 foxfair Exp $
#
DISTNAME= xa+cv-0.6
PKGNAME= zh-xa+cv-0.6
CATEGORIES= chinese
MASTER_SITES= ftp://linux.tmtc.edu.tw/pub/CLE/devel/source/tarball/
MAINTAINER= clive@CirX.ORG
RUN_DEPENDS= ${X11BASE}/bin/xcin:${PORTSDIR}/chinese/xcin \
${X11BASE}/lib/X11/fonts/TrueType/moe_sung.ttf:${PORTSDIR}/chinese/moettf
USE_GMAKE= yes
DOC1= FAQ NEW README.XA README.+CV README.XA+CV-0.5 USE.Big5 USE.GB
EX1= README cnetscape cxcoral cxemacs cxterm dot.fvwm2rc95 et24 \
et24r ns
post-install:
@${ECHO} "========================================================="
@${ECHO} "-=> Install examples to invoke XA+CV"
@${ECHO} " into ${PREFIX}/share/examples/xa+cv"
@${ECHO} " "
@${MKDIR} ${PREFIX}/share/examples/xa+cv
.for i in ${EX1}
@${INSTALL_DATA} ${WRKSRC}/example/${i} ${PREFIX}/share/examples/xa+cv/${i}
.endfor
.if !defined(NOPORTDOCS)
@${ECHO} "-=> Install documents into ${PREFIX}/share/doc/xa+cv"
@${ECHO} " "
@${MKDIR} ${PREFIX}/share/doc/xa+cv
.for i in ${DOC1}
@${INSTALL_DATA} ${WRKSRC}/${i} ${PREFIX}/share/doc/xa+cv/${i}
.endfor
.endif
@${ECHO} "-=> Done."
@${ECHO} " "
@${ECHO} "If you are inpatient, simply set environment varible
@${ECHO} "LD_PRELOAD = ${PREFIX}/lib/wrap.so to make it work."
@${ECHO} " "
@${ECHO} "========================================================="
.include <bsd.port.mk>

1
chinese/xa+cv/distinfo Normal file
View File

@ -0,0 +1 @@
MD5 (xa+cv-0.6.tar.gz) = 489c976d5fba7cd52ceb706d484143ce

View File

@ -0,0 +1,36 @@
--- Makefile.orig Thu May 13 01:28:07 1999
+++ Makefile Wed Aug 11 03:27:24 1999
@@ -8,12 +8,12 @@
CC = gcc
CFLAGS = -fPIC -O2
-SHAREFLAGES = -shared
-SHARELIBS = -ldl
+SHAREFLAGES = -shared -export-dynamic
+SHARELIBS =
INSTALL = /usr/bin/install -c
-DESTDIR = /usr/locale/lib
-CONGDIR = /etc/chinese/xa+cv
+DESTDIR = /usr/local/lib
+CONGDIR = /usr/local/etc/chinese/xa+cv
INCLUDEDIR = -I/usr/include -I/usr/X11R6/include
all: wrap.so
@@ -22,7 +22,7 @@
$(CC) -c $(CFLAGS) $(INCLUDEDIR) $< -o $@
wrap.so: cli_xcin.o wrap.o select_mode.o config.h
- $(CC) $(SHAREFLAGES) $(SHARELIBS) -o wrap.so cli_xcin.o \
+ ld $(SHAREFLAGES) $(SHARELIBS) -o wrap.so cli_xcin.o \
wrap.o select_mode.o
strip wrap.so
@@ -38,6 +38,6 @@
install: all
$(INSTALL) -m 755 wrap.so $(DESTDIR)
- mkdir -p /etc/chinese/xa+cv && \
+ mkdir -p $(CONGDIR) && \
$(INSTALL) -m 644 xa+cv.config $(CONGDIR)/config

View File

@ -0,0 +1,200 @@
--- wrap.c.orig Wed Jul 28 15:19:02 1999
+++ wrap.c Wed Sep 8 17:00:52 1999
@@ -272,168 +272,168 @@
int load_all_syms(void *handle)
{
- char *error;
-
+ char const *error;
+ FILE * nullfp = fopen("/dev/null", "w") ;
real_XOpenDisplay=dlsym(handle,"XOpenDisplay");
p_log(-1, " XOpenDisplay loaded...\n");
if ((error = dlerror()) != NULL) {
- fputs(error, stderr);
+ fputs(error, nullfp);
exit(1);
}
real_XCloseDisplay=dlsym(handle,"XCloseDisplay");
p_log(-1, " XCloseDisplay loaded...\n");
if ((error = dlerror()) != NULL) {
- fputs(error, stderr);
+ fputs(error, nullfp);
exit(1);
}
real_XGetFontProperty=dlsym(handle,"XGetFontProperty");
p_log(-1, " XGetFontProperty loaded...\n");
if ((error = dlerror()) != NULL) {
- fputs(error, stderr);
+ fputs(error, nullfp);
exit(1);
}
real_XFreeFont=dlsym(handle,"XFreeFont");
p_log(-1, " XFreeFont loaded...\n");
if ((error = dlerror()) != NULL) {
- fputs(error, stderr);
+ fputs(error, nullfp);
exit(1);
}
real_XFreeFontInfo=dlsym(handle,"XFreeFontInfo");
p_log(-1, " XFreeFontInfo loaded...\n");
if ((error = dlerror()) != NULL) {
- fputs(error, stderr);
+ fputs(error, nullfp);
exit(1);
}
real_XQueryFont=dlsym(handle,"XQueryFont");
p_log(-1, " XQueryFont loaded...\n");
if ((error = dlerror()) != NULL) {
- fputs(error, stderr);
+ fputs(error, nullfp);
exit(1);
}
real_XLoadQueryFont=dlsym(handle,"XLoadQueryFont");
p_log(-1, " XLoadQueryFont loaded...\n");
if ((error = dlerror()) != NULL) {
- fputs(error, stderr);
+ fputs(error, nullfp);
exit(1);
}
real_XTextWidth=dlsym(handle,"XTextWidth");
p_log(-1, " XTextWidth loaded...\n");
if ((error = dlerror()) != NULL) {
- fputs(error, stderr);
+ fputs(error, nullfp);
exit(1);
}
real_XTextWidth16=dlsym(handle,"XTextWidth16");
p_log(-1, " XTextWidth16 loaded...\n");
if ((error = dlerror()) != NULL) {
- fputs(error, stderr);
+ fputs(error, nullfp);
exit(1);
}
real_XTextExtents=dlsym(handle,"XTextExtents");
p_log(-1, " XTextExtents loaded...\n");
if ((error = dlerror()) != NULL) {
- fputs(error, stderr);
+ fputs(error, nullfp);
exit(1);
}
real_XTextExtents16=dlsym(handle,"XTextExtents16");
p_log(-1, " XTextExtents16 loaded...\n");
if ((error = dlerror()) != NULL) {
- fputs(error, stderr);
+ fputs(error, nullfp);
exit(1);
}
real_XQueryTextExtents=dlsym(handle,"XQueryTextExtents");
p_log(-1, " XQueryTextExtents loaded...\n");
if ((error = dlerror()) != NULL) {
- fputs(error, stderr);
+ fputs(error, nullfp);
exit(1);
}
real_XQueryTextExtents16=dlsym(handle,"XQueryTextExtents16");
p_log(-1, " XQueryTextExtents16 loaded...\n");
if ((error = dlerror()) != NULL) {
- fputs(error, stderr);
+ fputs(error, nullfp);
exit(1);
}
real_XDrawString=dlsym(handle,"XDrawString");
p_log(-1, " XDrawString loaded...\n");
if ((error = dlerror()) != NULL) {
- fputs(error, stderr);
+ fputs(error, nullfp);
exit(1);
}
real_XDrawString16=dlsym(handle,"XDrawString16");
p_log(-1, " XDrawString16 loaded...\n");
if ((error = dlerror()) != NULL) {
- fputs(error, stderr);
+ fputs(error, nullfp);
exit(1);
}
real_XDrawImageString=dlsym(handle,"XDrawImageString");
p_log(-1, " XDrawImageString loaded...\n");
if ((error = dlerror()) != NULL) {
- fputs(error, stderr);
+ fputs(error, nullfp);
exit(1);
}
real_XDrawImageString16=dlsym(handle,"XDrawImageString16");
p_log(-1, " XDrawImageString16 loaded...\n");
if ((error = dlerror()) != NULL) {
- fputs(error, stderr);
+ fputs(error, nullfp);
exit(1);
}
real_XChangeGC=dlsym(handle,"XChangeGC");
p_log(-1, " XChangeGC loaded...\n");
if ((error = dlerror()) != NULL) {
- fputs(error, stderr);
+ fputs(error, nullfp);
exit(1);
}
real_XGetGCValues=dlsym(handle,"XGetGCValues");
p_log(-1, " XGetGCValues loaded...\n");
if ((error = dlerror()) != NULL) {
- fputs(error, stderr);
+ fputs(error, nullfp);
exit(1);
}
real_XChangeProperty=dlsym(handle,"XChangeProperty");
p_log(-1, " XChangeProperty loaded...\n");
if ((error = dlerror()) != NULL) {
- fputs(error, stderr);
+ fputs(error, nullfp);
exit(1);
}
real_XNextEvent=dlsym(handle,"XNextEvent");
p_log(-1, " XNextEvent loaded...\n");
if ((error = dlerror()) != NULL) {
- fputs(error, stderr);
+ fputs(error, nullfp);
exit(1);
}
real_XPeekEvent=dlsym(handle,"XPeekEvent");
p_log(-1, " XPeekEvent loaded...\n");
if ((error = dlerror()) != NULL) {
- fputs(error, stderr);
+ fputs(error, nullfp);
exit(1);
}
real_XPutBackEvent=dlsym(handle,"XPutBackEvent");
p_log(-1, " XPutBackEvent loaded...\n");
if ((error = dlerror()) != NULL) {
- fputs(error, stderr);
+ fputs(error, nullfp);
exit(1);
}
real_XLookupString=dlsym(handle,"XLookupString");
p_log(-1, " XLookupString loaded...\n");
if ((error = dlerror()) != NULL) {
- fputs(error, stderr);
+ fputs(error, nullfp);
exit(1);
}
real_XSetSelectionOwner=dlsym(handle,"XSetSelectionOwner");
p_log(-1, " XSetSelectionOwner loaded...\n");
if ((error = dlerror()) != NULL) {
- fputs(error, stderr);
+ fputs(error, nullfp);
exit(1);
}
real_XGetSelectionOwner=dlsym(handle,"XGetSelectionOwner");
p_log(-1, " XGetSelectionOwner loaded...\n");
if ((error = dlerror()) != NULL) {
- fputs(error, stderr);
+ fputs(error, nullfp);
exit(1);
}
real_XInternAtom=dlsym(handle,"XInternAtom");
p_log(-1, " XInternAtom loaded...\n");
if ((error = dlerror()) != NULL) {
- fputs(error, stderr);
+ fputs(error, nullfp);
exit(1);
}

View File

@ -0,0 +1,19 @@
--- config.h.orig Wed May 26 10:06:40 1999
+++ config.h Wed Aug 11 02:35:00 1999
@@ -14,14 +14,14 @@
#define XA_LIBX11 "/usr/X11R6/lib/libX11.so.6"
#endif
-#define XA_SMART_DADABASE "/etc/chinese/xa+cv/config"
+#define XA_SMART_DADABASE "/usr/local/etc/chinese/xa+cv/config"
#define DEFAULT_FACE "*"
#define DEFAULT_FAMILY "*"
#define BIG5_FONT_ENCODING "big5-0"
#define GB_FONT_ENCODING "gb2312.1980-0"
#define DEFAULT_BASE_FONT_NAME "-%s-%s-*-r-*-*-%d-*-*-*-*-%d-%s"
-#define DEFAULT_SMALL_BIG5_FONT "taipei16"
+#define DEFAULT_SMALL_BIG5_FONT "sung"
#define DEFAULT_SMALL_GB_FONT "hanzigb16fs"
#define MIN_SMALL_FONT_PIXELS 16
#define CFNTMAX 10

View File

@ -0,0 +1 @@
A loadable library to show Chinese words in most applications

9
chinese/xa+cv/pkg-descr Normal file
View File

@ -0,0 +1,9 @@
XA+CV is a work around library lets most X applications to show Chinese words
properly. Use LD_PRELOAD to make it work.
NOTE: for ELF world after 3.0-RELEASE, ONLY compitable with Linux Netscape.
you HAVE to enable Linux emulation and install Linux version Netscape.
Other information please refer to /usr/local/share/doc/xa+cv/.
- Clive Lin <clive@CirX.ORG>

22
chinese/xa+cv/pkg-plist Normal file
View File

@ -0,0 +1,22 @@
lib/wrap.so
etc/chinese/xa+cv/config
share/doc/xa+cv/FAQ
share/doc/xa+cv/NEW
share/doc/xa+cv/README.+CV
share/doc/xa+cv/README.XA
share/doc/xa+cv/README.XA+CV-0.5
share/doc/xa+cv/USE.Big5
share/doc/xa+cv/USE.GB
share/examples/xa+cv/README
share/examples/xa+cv/cnetscape
share/examples/xa+cv/cxcoral
share/examples/xa+cv/cxemacs
share/examples/xa+cv/cxterm
share/examples/xa+cv/dot.fvwm2rc95
share/examples/xa+cv/et24
share/examples/xa+cv/et24r
share/examples/xa+cv/ns
@dirrm etc/chinese/xa+cv
@dirrm etc/chinese
@dirrm share/doc/xa+cv
@dirrm share/examples/xa+cv