update to big5con-0.92h

PR:		ports/45821
Submitted by:	Statue <statue@freebsd.sinica.edu.tw>
This commit is contained in:
Yen-Ming Lee 2003-01-20 17:23:59 +00:00
parent 5260a5064f
commit 671d1c1f20
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=73671
16 changed files with 18 additions and 522 deletions

View File

@ -6,43 +6,16 @@
#
PORTNAME= big5con
PORTVERSION= 0.92e
PORTREVISION= 1
PORTVERSION= 0.92h
CATEGORIES= chinese
MASTER_SITES= ftp://freebsd.csie.nctu.edu.tw/pub/taiwan/NTU/woju/source/ \
ftp://freebsd.csie.nctu.edu.tw/pub/taiwan/NTU/woju/binary/
DISTFILES= big5con-0.92e.tgz b5cbin-pa.tgz
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE}
MASTER_SITE_SUBDIR= ${PORTNAME}
MAINTAINER= ports@FreeBSD.org
MAINTAINER= statue@freebsd.sinica.edu.tw
ONLY_FOR_ARCHS= i386
EXTRACT_ONLY= ${DISTNAME}.tgz
USE_REINPLACE= yes
REINPLACE_ARGS= # empty
# With the help from pa@freebsd.ee.ntu.edu.tw
# +0.92d use kc-fonts, whcih can be included in cdrom, instead of taipei-fonts.
# Note: 0.92c is restricted due to the taipei-fonts-copyright.
#
# 1999/02/12: 0.92d -> 0.92e
# Fix some bugs
# ftp://bsd.sinica.edu.tw/pub/FreeBSD/taiwan/users/woju/source/b5c-d2e.patch
.include <bsd.port.pre.mk>
post-patch:
.if ${OSVERSION} > 500012
.for i in include/ksymdef.h src/term.c src/vc.c src/vga.c
@${REINPLACE_CMD} 's,machine/console.h>,sys/consio.h>@#include <sys/kbio.h>@,' ${WRKSRC}/${i} | tr '@' '\n' > ${WRKSRC}/${i}.bak && \
${MV} ${WRKSRC}/${i}.bak ${WRKSRC}/${i}
.endfor
.endif
pre-install:
@if [ ! -f ${PREFIX}/lib/fonts/kc16.smf ]; then \
tar xvfzp ${DISTDIR}/b5cbin-pa.tgz -C ${PREFIX}; \
fi
post-install:
@${CAT} ${PKGMESSAGE}
.include <bsd.port.post.mk>
.include <bsd.port.mk>

View File

@ -1,2 +1 @@
MD5 (big5con-0.92e.tgz) = 3ba7febf594c464d7953d8a588c1fafb
MD5 (b5cbin-pa.tgz) = 3e0d4fce0822a5e3cc6f310c513507d5
MD5 (big5con-0.92h.tar.gz) = e17f7d0af1b99c72589948c9b596ba25

View File

@ -1,11 +0,0 @@
--- big5con.cfg.orig Thu Oct 8 13:07:27 1998
+++ big5con.cfg Tue Nov 26 11:45:51 2002
@@ -157,7 +157,7 @@
1200
# Mouse device file name
MouseDev:
- /dev/mouse
+ /dev/sysmouse
# Use hard scroll
HardScroll:

View File

@ -1,11 +0,0 @@
--- big5con.mk.orig Thu Oct 8 13:09:50 1998
+++ big5con.mk Tue Nov 26 11:45:51 2002
@@ -29,7 +29,7 @@
-DXCIN_DIR=\"$(XCIN_DIR)\" $(ALT_META) $(EXTRA_OPTS)
CC = gcc
#CFLAGS = -O2 -m486 $(OPTS)
-CFLAGS += -O2 $(OPTS)
+CFLAGS += $(OPTS)
LD = gcc $(CFLAGS)
RM = rm -f
INSTALL = install -c

View File

@ -1,38 +0,0 @@
--- fld/fld.c.orig Wed May 20 17:49:32 1998
+++ fld/fld.c Tue Nov 26 11:45:51 2002
@@ -55,7 +55,7 @@
int shmid;
struct shmid_ds shmseg;
- shmkey = ftok(CONFIG_NAME, fnum);
+ shmkey = 5000 + (fnum & 0x7F);
if ((shmid = shmget(shmkey, sizeof(struct fontInfo), 0444)) < 0)
return;
shmctl(shmid, IPC_STAT, &shmseg);
@@ -70,7 +70,7 @@
extern int forceLoad;
if (forceLoad) return(EOF);
- shmkey = ftok(SHMEM_NAME, fnum);
+ shmkey = 5000 + (fnum & 0x7F);
if (shmget(shmkey, 1, 0444) == EOF) return(EOF);
return(0);
}
@@ -82,7 +82,7 @@
int shmid;
u_char *shmbuff;
- shmkey = ftok(SHMEM_NAME, fi->type);
+ shmkey = 5000 + (fi->type & 0x0000007F);
shmid = shmget(shmkey, fi->size+sizeof(struct fontInfo),
IPC_CREAT|0666);
fprintf( stderr,"%ld\n",fi->size+sizeof(struct fontInfo) );
@@ -120,7 +120,7 @@
int shmid;
struct fontInfo *fi;
- shmkey = ftok(CONFIG_NAME, fnum);
+ shmkey = 5000 + (fnum & 0x7F);
if ((shmid = shmget(shmkey, sizeof(struct fontInfo), 0444)) < 0)
return(0);
fi = (struct fontInfo*)shmat(shmid, 0, SHM_RDONLY);

View File

@ -1,34 +0,0 @@
--- include/mem.h.old Tue Jan 25 20:16:57 2000
+++ include/mem.h Tue Jan 25 20:30:48 2000
@@ -46,6 +46,7 @@
"d" ((u_short) port));
}
+#if 0
static inline
void lzero(void *head, int n)
{
@@ -93,11 +94,23 @@
"D" ((long)head)
:"cx","di");
}
+#endif
extern u_char PortInb(u_short);
+#if 1
+#define bzero(b, len) bzero(b, len)
+#define bzero2(b, len) bzero(b, len)
+#define lzero(b, len) bzero(b, len)
+#define wzero(b, len) bzero(b, len)
+#define bmove(dst, src, len) bcopy(src, dst, len)
+#define brmove(dst, src, len) bcopy(src, dst, len)
+#define wmove(dst, src, len) bcopy(src, dst, len)
+#define lmove(dst, src, len) bcopy(src, dst, len)
+#else
extern void wzero(void *, int);
extern void wmove(void *, void *, int);
extern void lmove(void *, void *, int);
+#endif
extern void SafeFree(void **);
#endif

View File

@ -1,15 +0,0 @@
--- include/vga.h.orig Fri Jan 24 16:08:01 1997
+++ include/vga.h Mon Jan 31 14:13:08 2000
@@ -59,7 +59,11 @@
#if defined(linux)
#define GRAPH_BASE 0xA0000
#elif defined(__FreeBSD__)
-#define GRAPH_BASE 0x0
+# if (__FreeBSD__ <= 3)
+# define GRAPH_BASE 0x0
+# else
+# define GRAPH_BASE 0xA0000
+# endif
#endif
#define FONT_SIZE 0x2000

View File

@ -1,18 +0,0 @@
--- lib/font.c.orig Sun Apr 14 16:40:36 1996
+++ lib/font.c Tue Nov 26 11:45:51 2002
@@ -35,6 +35,7 @@
struct shmid_ds shmseg;
shmkey = ftok(CONFIG_NAME, fnum);
+ shmkey = 5000 + (fnum & 0x7F);
if ((shmid = shmget(shmkey, sizeof(struct fontInfo), 0444)) < 0)
return;
shmctl(shmid, IPC_STAT, &shmseg);
@@ -50,6 +51,7 @@
int shmid;
shmkey = ftok(CONFIG_NAME, fnum);
+ shmkey = 5000 + (fnum & 0x7F);
if ((shmid = shmget(shmkey, sizeof(struct fontInfo), 0444)) < 0) return(0);
return((u_char*)shmat(shmid, 0, SHM_RDONLY));
}

View File

@ -1,18 +0,0 @@
--- lib/mem.c.old Tue Jan 25 20:16:57 2000
+++ lib/mem.c Tue Jan 25 20:28:18 2000
@@ -44,6 +44,7 @@
return(_rval);
}
+#if 0
void wzero(void *head, int n)
{
__asm__ ("cld\n\t"
@@ -76,6 +77,7 @@
"S" ((long)src)
:"cx","di","si");
}
+#endif
void SafeFree(void **p)
{

View File

@ -1,42 +0,0 @@
--- src/child.c.orig Mon Apr 15 09:47:23 1996
+++ src/child.c Tue Nov 26 11:29:49 2002
@@ -22,6 +22,7 @@
#include <unistd.h>
#ifdef __FreeBSD__
#include <errno.h>
+#include <sys/ioctl.h>
#endif
#include <getcap.h>
@@ -77,6 +78,9 @@
{
char *shell, *tail, *tcap;
char buff[80];
+#if defined(__FreeBSD__)
+ struct winsize win;
+#endif
setgid(getgid());
setuid(getuid());
@@ -87,7 +91,11 @@
sprintf(buff, "TERMCAP=:co#%d:li#%d:tc=console:",
dInfo.txmax + 1, dInfo.tymax + 1);
#elif defined(__FreeBSD__)
- sprintf(buff,"TERM=vt100");
+ win.ws_row = dInfo.tymax + 1;
+ win.ws_col = dInfo.txmax + 1;
+ win.ws_xpixel = win.ws_ypixel = 0;
+ ioctl(STDIN_FILENO, TIOCSWINSZ, &win);
+ sprintf(buff,"TERM=vt100");
#endif
tcap = strdup(buff);
putenv(tcap);
@@ -106,7 +114,7 @@
#if defined(linux)
*(ttyname(fileno(errfp))+8));
#elif defined(__FreeBSD__)
- *(ttyname(fileno(errfp))+9));
+ ttyname(fileno(errfp)) ? *(ttyname(fileno(errfp))+9) : '?');
#endif
fflush(stdout);

View File

@ -1,11 +0,0 @@
--- src/main.c.old Tue Jan 25 20:16:57 2000
+++ src/main.c Tue Jan 25 20:32:52 2000
@@ -34,7 +34,7 @@
#include <version.h>
#include <term.h>
-void main(int argc, const char *argv[])
+int main(int argc, const char *argv[])
{
char *p;

View File

@ -1,12 +0,0 @@
--- src/mouse.c.orig Sun Apr 14 16:40:40 1996
+++ src/mouse.c Tue Nov 26 11:41:05 2002
@@ -167,7 +167,8 @@
mouseType = MOUSE_NONE;
mInfo.has_mouse = FALSE;
- sscanf(config, "%s", name);
+ strncpy(name, config, MAX_COLS - 1);
+ name[MAX_COLS - 1] = '\0';
for (p = mice; p->name != NULL; p++) {
if (strcasecmp(name, p->name) == 0) {
mouseType = p->type;

View File

@ -1,11 +0,0 @@
--- src/term.c.orig Mon Apr 15 09:46:48 1996
+++ src/term.c Tue Nov 26 11:45:26 2002
@@ -205,7 +205,7 @@
PollCursor(TRUE);
}
if (FD_ISSET(sockFd, &readFds)) SocketInterface(sockFd);
- if (mInfo.has_mouse) {
+ if (mInfo.has_mouse && mouseFd > 0) {
if (FD_ISSET(mouseFd, &readFds) && con.active) {
i = read(mouseFd, buff, BUFSIZ);
if (i > 0) MouseGetPacket(buff, i);

View File

@ -1,175 +0,0 @@
--- src/vc.c.orig Mon Apr 15 09:46:27 1996
+++ src/vc.c Tue Nov 26 12:02:07 2002
@@ -1,8 +1,10 @@
/*
KON - Kanji ON Linux Console -
Copyright (C) 1992, 1993
- MAEDA Atusi (mad@math.keio.ac.jp)
- Takashi MANABE (manabe@tut.ac.jp)
+ MAEDA Atusi (mad
+math.keio.ac.jp)
+ Takashi MANABE (manabe
+tut.ac.jp)
KON is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
@@ -19,7 +21,8 @@
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/*
- modified for Big5Con by Hung-Chi Chu <hcchu@r350.ee.ntu.edu.tw>
+ modified for Big5Con by Hung-Chi Chu <hcchu
+r350.ee.ntu.edu.tw>
*/
#include <stdio.h>
@@ -35,7 +38,16 @@
#include <termio.h>
#elif defined(__FreeBSD__)
#include <termios.h>
-#include <machine/console.h>
+#include <osreldate.h>
+#if __FreeBSD_version >= 410000
+#include <sys/consio.h>
+#include <sys/kbio.h>
+#else
+#include <sys/consio.h>
+#include <sys/kbio.h>
+
+#endif
+
#endif
#include <sys/ioctl.h>
#ifdef linux
@@ -92,28 +104,26 @@
inline void blatch(void *head, int n)
{
- __asm__("\t clc\n"
+ __asm__ volatile("\t clc\n"
"1:\n"
"\t andb %%bl, (%%eax)\n"
"\t incl %%eax\n"
"\t loop 1b\n"
- :
- : "eax" ((long)head), "bl" (0x7F), "c" (n)
- : "bl", "cx" );
+ : "=bl" (head), "=c" (n)
+ : "eax" ((long)head), "0" (0x7F), "1" (n));
}
static
inline void llatch(void *head, int n)
{
- __asm__("\t clc\n"
+ __asm__ volatile ("\t clc\n"
"1:\n"
"\t andl %%ebx, (%%eax)\n"
"\t addl $4, %%eax\n"
"\t loop 1b\n"
- :
- : "eax" ((long)head), "ebx" (0x7F7F7F7F), "c" (n>>2)
- : "ebx", "cx" );
+ : "=ebx" (head), "=c" (n)
+ : "eax" ((long)head), "0" (0x7F7F7F7F), "1" (n>>2));
}
static inline u_int TextAddress(u_int x, u_int y)
@@ -254,13 +264,23 @@
struct vt_mode vtm;
ioctl(0,KDSKBMODE,K_XLATE);
+#if defined(__FreeBSD__)
+ signal(SIGUSR1, SIG_IGN);
+ signal(SIGUSR2, SIG_IGN);
+#else /* linux */
signal(SIGUSR1, SIG_DFL);
signal(SIGUSR2, SIG_DFL);
+#endif
vtm.mode = VT_AUTO;
vtm.waitv = 0;
+#if defined(__FreeBSD__)
+ vtm.relsig = SIGUSR1;
+ vtm.acqsig = SIGUSR2;
+ vtm.frsig = SIGUSR1;
+#else /* linux */
vtm.relsig = 0;
vtm.acqsig = 0;
- vtm.frsig = 0;
+#endif
ioctl(0, VT_SETMODE, &vtm);
#if defined(__FreeBSD__)
ioctl(0, VT_RELDISP, 1);
@@ -287,13 +307,15 @@
vtm.waitv = 0;
vtm.relsig = SIGUSR1;
vtm.acqsig = SIGUSR2;
- vtm.frsig = SIGUSR1; /* not implemented, just a hack */
+#if defined(__FreeBSD__)
+ vtm.frsig = SIGUSR1;
+#endif
ioctl(0, VT_SETMODE, &vtm);
vInfo.graph_mode();
if (useHardScroll)
vInfo.set_start_address();
- win.ws_row = dInfo.tymax; /* Note: con.ymax may be changed by application */
+ win.ws_row = dInfo.tymax + 1; /* Note: con.ymax may be changed by application */
win.ws_col = dInfo.txmax + 1;
win.ws_xpixel = win.ws_ypixel = 0;
ioctl(masterPty, TIOCSWINSZ, &win);
@@ -821,44 +843,30 @@
static int ConfigBeep(const char *confstr)
{
- beepCount = atoi(confstr) * 10000;
#if defined(linux)
+ beepCount = atoi(confstr) * 10000;
ioperm(COUNTER_ADDR, 1, TRUE);
#endif
+#if defined(__FreeBSD__)
+ beepCount = atoi(confstr) * 10;
+#endif
return SUCCESS;
}
-/*
- * Sound() added by woju.bbs@freebsd.ee.ntu.edu.tw
- */
-static void Sound(int freq, int ms)
-{
- PortOutb(182, 0x43);
- PortOutb((100000 / freq) & 0xff, 0x42);
- PortOutb((100000 / freq) >> 8, 0x42);
- PortOutb(PortInb(0x61) | 3, 0x61);
- usleep(ms * 1000);
- PortOutb(PortInb(0x61) &0xfc, 0x61);
-}
-
-static void Bell()
-{
- int i;
-
- for (i = 1; i <= 5; i++)
- Sound(i * 100, 10);
-}
+#define BELL_PITCH 800
void Beep(void)
{
- if (!con.active) return;
#ifdef linux
+ if (!con.active) return;
PortOutb(PortInb(COUNTER_ADDR)|3, COUNTER_ADDR);
usleep(beepCount);
PortOutb(PortInb(COUNTER_ADDR)&0xFC, COUNTER_ADDR);
#endif
#ifdef __FreeBSD__
- Bell();
+ if(beepCount <= 0) return;
+ ioctl(fileno(stdout), KDMKTONE, (BELL_PITCH & 0xffff) |
+ ((beepCount & 0xffff) << 16));
#endif
}

View File

@ -1,76 +0,0 @@
--- src/vga.c.orig Sun Apr 14 16:40:40 1996
+++ src/vga.c Tue Nov 26 11:38:34 2002
@@ -1,6 +1,7 @@
/*
KON - Kanji ON Linux Console -
- Copyright (C) 1992, 1993, 1994 Takashi MANABE (manabe@tut.ac.jp)
+ Copyright (C) 1992, 1993, 1994 Takashi MANABE (manabe
+tut.ac.jp)
KON is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
@@ -20,7 +21,8 @@
/*
This code is based on vgalib.
- Thanks to frandsen@diku.dk (Tommy Frandsen).
+ Thanks to frandsen
+diku.dk (Tommy Frandsen).
*/
#include <stdio.h>
@@ -35,7 +37,14 @@
#elif defined(__FreeBSD__)
#include <vm/vm_param.h>
#include <sys/ioctl.h>
+#include <osreldate.h>
+#if __FreeBSD_version > 410000
+#include <sys/consio.h>
+#include <sys/kbio.h>
+#else
#include <machine/console.h>
+#endif
+
vm_size_t page_size;
#endif
#undef free
@@ -205,7 +214,8 @@
regText.seq[i] = PortInb(VGASEQ_DATA);
}
regText.mis = PortInb(VGAMISC_IN);
-
+
+ PortOutb(PortInb(VGAMISC_IN)|0x01, VGAMISC_OUT);
VgaSetRegisters(&regGraph);
/* save font data in plane 2 */
@@ -369,7 +379,7 @@
/* if (!code) return;*/
VgaSetColor(fc);
if (bc & 0x8) *(vcls - dInfo.glineByte) = 0;
- for (x = 0;x < sbFReg->high;x ++, code ++, fm >>= 1) {
+ if (code) for (x = 0;x < sbFReg->high;x ++, code ++, fm >>= 1) {
if (*code) {
VgaOutByte(*code);
*gram = *gram;
@@ -437,7 +447,7 @@
void VgaCursor(struct cursorInfo *ci)
{
- char *gram;
+ volatile char *gram;
u_char x;
int bottom = cursorBtm + 1 <= dInfo.glineChar ?
cursorBtm + 1 : dInfo.glineChar;
@@ -607,7 +617,11 @@
Perror("ioctl CONSOLE_IO_ENABLE");
return FAILURE;
}
+#if (__FreeBSD__ <= 3)
if ((devMem = open("/dev/vga", O_RDWR|O_NDELAY) ) < 0) {
+#else
+ if ((devMem = open("/dev/mem", O_RDWR|O_NDELAY) ) < 0) {
+#endif
Perror("/dev/mem");
return FAILURE;
}

View File

@ -1,33 +1,29 @@
bin/b5c
bin/b5cfld
bin/et
etc/big5con.cfg
etc/big5con.cfg.default
lib/fonts/kc16.smf
lib/fonts/kc8x16.smf
lib/xcin/Boshiamy.cin
lib/xcin/Boshiamy.tab
lib/xcin/Boshiamy.tab.rev
lib/xcin/ar30.tab
lib/xcin/ar30.tab.quick
lib/xcin/ar30.tab.rev
lib/xcin/array30.tab
lib/xcin/changjei.tab
lib/xcin/array30.tab.rev
lib/xcin/cj.tab
lib/xcin/cj.tab.rev
lib/xcin/dayi3.tab
lib/xcin/dayi3.tab.rev
lib/xcin/et.kbm
lib/xcin/et26.kbm
lib/xcin/hsu.kbm
lib/xcin/liu.tab
lib/xcin/liu.tab.rev
lib/xcin/pho.sel1st
lib/xcin/pho.tab
lib/xcin/pho1st
lib/xcin/phonetic.tab
lib/xcin/sample.phs.out
lib/xcin/phone.tab
lib/xcin/phone.tab.rev
lib/xcin/sample.phs.b5c
lib/xcin/simplex.tab
lib/xcin/simplex.tab.rev
lib/xcin/tsin
lib/xcin/tsin.idx
lib/xcin/tsin.src
lib/xcin/xcin.help
lib/xcin/xusrar30.tbl
lib/xcin/zo.kbm
lib/xcin/sample.phs.b5c
@dirrm lib/fonts
@dirrm lib/xcin
@dirrm lib/fonts