- Update han to work in 4.x. Use patches from kon2-16dot.
(it still has a bug: cursor doesn't displayed) - distfile location moved.
This commit is contained in:
parent
398ecef161
commit
f38f930b0b
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=30683
15 changed files with 586 additions and 9 deletions
|
@ -1,6 +1,6 @@
|
|||
# New ports collection makefile for: han
|
||||
# Date created: 12 Apr 1997
|
||||
# Whom: Choi Jun Ho <junker@jazz.snu.ac.kr>
|
||||
# Whom: CHOI Junho <cjh@FreeBSD.org>
|
||||
#
|
||||
# $FreeBSD$
|
||||
#
|
||||
|
@ -8,11 +8,12 @@
|
|||
PORTNAME= han
|
||||
PORTVERSION= 1.0fb
|
||||
CATEGORIES= korean
|
||||
MASTER_SITES= ftp://jazz.snu.ac.kr/pub/unix/FreeBSD-kr/source/han/
|
||||
MASTER_SITES= ftp://ftp.kr.freebsd.org/pub/FreeBSD-kr/distfiles/ \
|
||||
ftp://jazz.snu.ac.kr/pub/unix/FreeBSD-kr/source/han/
|
||||
|
||||
ONLY_FOR_ARCHS= i386
|
||||
|
||||
USE_GMAKE= yes
|
||||
USE_GMAKE= YES
|
||||
|
||||
post-configure:
|
||||
${SED} -e 's%%WRKSRC%%${WRKSRC}' \
|
||||
|
|
71
korean/han/files/patch-aa
Normal file
71
korean/han/files/patch-aa
Normal file
|
@ -0,0 +1,71 @@
|
|||
--- src/vc.c.orig Sat Mar 29 04:35:50 1997
|
||||
+++ src/vc.c Sun Jul 16 12:44:05 2000
|
||||
@@ -310,12 +310,23 @@
|
||||
{
|
||||
struct vt_mode vtm;
|
||||
|
||||
+#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;
|
||||
+#endif
|
||||
ioctl(0, VT_SETMODE, &vtm);
|
||||
#if defined(__FreeBSD__)
|
||||
ioctl(0, VT_RELDISP, 1);
|
||||
@@ -341,6 +352,9 @@
|
||||
vtm.waitv = 0;
|
||||
vtm.relsig = SIGUSR1;
|
||||
vtm.acqsig = SIGUSR2;
|
||||
+#if defined(__FreeBSD__)
|
||||
+ vtm.frsig = SIGUSR1;
|
||||
+#endif
|
||||
ioctl(0, VT_SETMODE, &vtm);
|
||||
vInfo.graph_mode();
|
||||
if (useHardScroll)
|
||||
@@ -859,20 +873,31 @@
|
||||
|
||||
static int ConfigBeep(const char *confstr)
|
||||
{
|
||||
- beepCount = atoi(confstr) * 10000;
|
||||
#if defined(linux)
|
||||
- ioperm(COUNTER_ADDR, 1, TRUE);
|
||||
+ beepCount = atoi(confstr) * 10000;
|
||||
+ if (beepCount > 0)
|
||||
+ ioperm(COUNTER_ADDR, 1, TRUE);
|
||||
+#endif
|
||||
+#if defined(__FreeBSD__)
|
||||
+ beepCount = atoi(confstr) * 10;
|
||||
#endif
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
+#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
|
||||
+#if defined(__FreeBSD__)
|
||||
+ if(beepCount <= 0) return;
|
||||
+ ioctl(fileno(stdout), KDMKTONE, (BELL_PITCH & 0xffff) |
|
||||
+ ((beepCount & 0xffff) << 16));
|
||||
#endif
|
||||
}
|
||||
|
44
korean/han/files/patch-ab
Normal file
44
korean/han/files/patch-ab
Normal file
|
@ -0,0 +1,44 @@
|
|||
--- src/child.c.orig Sat Mar 29 05:29:53 1997
|
||||
+++ src/child.c Sun Jul 16 12:48:02 2000
|
||||
@@ -26,6 +26,7 @@
|
||||
|
||||
#ifdef __FreeBSD__
|
||||
#include <errno.h>
|
||||
+#include <sys/ioctl.h>
|
||||
#endif
|
||||
|
||||
#include <getcap.h>
|
||||
@@ -98,6 +99,9 @@
|
||||
{
|
||||
char *shell, *tail, *tcap;
|
||||
char buff[80];
|
||||
+#if defined(__FreeBSD__)
|
||||
+ struct winsize win;
|
||||
+#endif
|
||||
|
||||
setgid(getgid());
|
||||
setuid(getuid());
|
||||
@@ -107,6 +111,10 @@
|
||||
sprintf(buff, "TERMCAP=:co#%d:li#%d:tc=console:",
|
||||
dInfo.txmax + 1, dInfo.tymax + 1);
|
||||
#elif defined(__FreeBSD__)
|
||||
+ 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);
|
||||
@@ -120,10 +128,10 @@
|
||||
"HAN is free software, and you are welcome to redistribute it\r\n"
|
||||
"HAN under certain conditions; show COPYING for details.\r\n");
|
||||
#if defined(__FreeBSD__)
|
||||
- printf("\rHAN for FreeBSD-2.x\r\n");
|
||||
+ printf("\rHAN for FreeBSD\r\n");
|
||||
#endif
|
||||
}
|
||||
- printf("HAN using VT number %c.\n\n",
|
||||
+ printf("HAN using VT number %c.\r\n",
|
||||
#if defined(linux)
|
||||
*(ttyname(fileno(errfp))+8));
|
||||
#elif defined(__FreeBSD__)
|
21
korean/han/files/patch-af
Normal file
21
korean/han/files/patch-af
Normal file
|
@ -0,0 +1,21 @@
|
|||
--- src/term.c.orig Sat Mar 29 04:36:54 1997
|
||||
+++ src/term.c Sun Jul 16 12:50:34 2000
|
||||
@@ -209,6 +209,9 @@
|
||||
}
|
||||
if (FD_ISSET(0, &readFds)) {
|
||||
i = read(0, buff, BUFSIZ);
|
||||
+#if defined(__FreeBSD__)
|
||||
+ i = cons25tovt100(buff, i, BUFSIZ);
|
||||
+#endif
|
||||
#if 1
|
||||
{
|
||||
int k, l;
|
||||
@@ -239,7 +242,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);
|
103
korean/han/files/patch-ag
Normal file
103
korean/han/files/patch-ag
Normal file
|
@ -0,0 +1,103 @@
|
|||
--- src/utmp.c.orig Fri Jan 24 09:37:28 1997
|
||||
+++ src/utmp.c Sat Apr 26 21:50:30 1997
|
||||
@@ -41,20 +41,32 @@
|
||||
#include <utmp.h>
|
||||
#include <grp.h>
|
||||
#include <sys/stat.h>
|
||||
+#if defined(__FreeBSD__)
|
||||
+#include <ttyent.h>
|
||||
+#endif
|
||||
|
||||
+#if !defined(__FreeBSD__)
|
||||
static int ttyGid;
|
||||
+#else
|
||||
+static gid_t ttyGid;
|
||||
+static int ts;
|
||||
+#endif
|
||||
|
||||
void SetUtmp(char *tty)
|
||||
{
|
||||
-#ifdef linux
|
||||
struct utmp utmp;
|
||||
struct passwd *pw;
|
||||
struct group *ttygrp;
|
||||
char *tn;
|
||||
+#if defined(__FreeBSD__)
|
||||
+ struct ttyent *ttyp;
|
||||
+ int fd, i;
|
||||
+#endif
|
||||
|
||||
pw = getpwuid(getuid());
|
||||
tn = rindex(tty, '/') + 1;
|
||||
memset((char *)&utmp, 0, sizeof(utmp));
|
||||
+#if !defined(__FreeBSD__)
|
||||
strncpy(utmp.ut_id, tn + 3, sizeof(utmp.ut_id));
|
||||
utmp.ut_type = DEAD_PROCESS;
|
||||
setutent();
|
||||
@@ -66,21 +78,43 @@
|
||||
time(&(utmp.ut_time));
|
||||
pututline(&utmp);
|
||||
endutent();
|
||||
+#else
|
||||
+ time(&(utmp.ut_time));
|
||||
+ strncpy(utmp.ut_name, pw->pw_name, sizeof(utmp.ut_name));
|
||||
+ strncpy(utmp.ut_line, tn, sizeof(utmp.ut_line));
|
||||
+ setttyent();
|
||||
+ ts = 0;
|
||||
+ for (i = 1; (ttyp = getttyent()); ++i)
|
||||
+ if (!strcmp(ttyp->ty_name,tn)) {
|
||||
+ ts = i;
|
||||
+ break;
|
||||
+ }
|
||||
+ endttyent();
|
||||
+ if (ts > 0 && (fd = open(_PATH_UTMP, O_WRONLY|O_CREAT, 0644)) >= 0) {
|
||||
+ lseek(fd, (ts*sizeof(struct utmp)), L_SET);
|
||||
+ write(fd, &utmp, sizeof(struct utmp));
|
||||
+ close(fd);
|
||||
+ }
|
||||
+#endif
|
||||
if ((ttygrp = getgrnam("tty")) != NULL)
|
||||
ttyGid = ttygrp->gr_gid;
|
||||
else
|
||||
ttyGid = -1;
|
||||
chmod(tty, 0622);
|
||||
chown(tty, getuid(), ttyGid);
|
||||
-#endif
|
||||
}
|
||||
|
||||
void ResetUtmp(char *tty)
|
||||
{
|
||||
-#ifdef linux
|
||||
+#if !defined(__FreeBSD__)
|
||||
struct utmp utmp, *utp;
|
||||
char *tn;
|
||||
+#else
|
||||
+ struct utmp utmp;
|
||||
+ int fd;
|
||||
+#endif
|
||||
|
||||
+#if !defined(__FreeBSD__)
|
||||
tn = rindex(tty, '/') + 4;
|
||||
memset((char *)&utmp, 0, sizeof(utmp));
|
||||
strncpy(utmp.ut_id, tn, sizeof(utmp.ut_id));
|
||||
@@ -93,7 +127,19 @@
|
||||
time(&(utp->ut_time));
|
||||
pututline(utp);
|
||||
endutent();
|
||||
+#else
|
||||
+ if (ts > 0 && (fd = open(_PATH_UTMP, O_RDWR, 0)) >= 0) {
|
||||
+ lseek(fd, (ts*sizeof(struct utmp)), L_SET);
|
||||
+ if (read(fd, &utmp, sizeof(struct utmp)) == sizeof(struct utmp)) {
|
||||
+ bzero(utmp.ut_name, sizeof(utmp.ut_name));
|
||||
+ bzero(utmp.ut_host, sizeof(utmp.ut_host));
|
||||
+ time(&utmp.ut_time);
|
||||
+ lseek(fd, (ts*sizeof(struct utmp)), L_SET);
|
||||
+ write(fd, &utmp, sizeof(struct utmp));
|
||||
+ }
|
||||
+ close(fd);
|
||||
+ }
|
||||
+#endif
|
||||
chmod(tty, 0600);
|
||||
chown(tty, 0, ttyGid);
|
||||
-#endif
|
||||
}
|
23
korean/han/files/patch-ah
Normal file
23
korean/han/files/patch-ah
Normal file
|
@ -0,0 +1,23 @@
|
|||
--- src/display/vga.c.orig Wed Apr 9 21:34:02 1997
|
||||
+++ src/display/vga.c Sun Jul 16 12:52:41 2000
|
||||
@@ -379,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;
|
||||
@@ -617,7 +617,11 @@
|
||||
Perror("ioctl CONSOLE_IO_ENABLE/KDSETMODE");
|
||||
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;
|
||||
}
|
25
korean/han/files/patch-ak
Normal file
25
korean/han/files/patch-ak
Normal file
|
@ -0,0 +1,25 @@
|
|||
--- include/vt.h.orig Fri Jan 24 16:08:13 1997
|
||||
+++ include/vt.h Sat Aug 7 05:06:49 1999
|
||||
@@ -59,7 +59,12 @@
|
||||
ins,
|
||||
active,
|
||||
wrap,
|
||||
+#if defined(__FreeBSD__)
|
||||
+ text_mode,
|
||||
+ cursor_key_mode;
|
||||
+#else
|
||||
text_mode;
|
||||
+#endif
|
||||
};
|
||||
|
||||
extern struct _con_info con;
|
||||
@@ -75,6 +80,9 @@
|
||||
extern void VtStart(void);
|
||||
extern void VtEmu(const char*, int nchars);
|
||||
extern void VtCleanup(void);
|
||||
+#if defined(__FreeBSD__)
|
||||
+extern int cons25tovt100(u_char *buff, int len, const int max);
|
||||
+#endif
|
||||
|
||||
#define sjistojis(ch, cl)\
|
||||
{\
|
159
korean/han/files/patch-al
Normal file
159
korean/han/files/patch-al
Normal file
|
@ -0,0 +1,159 @@
|
|||
--- src/vt.c.orig Sat Jan 25 17:55:02 1997
|
||||
+++ src/vt.c Sat Aug 7 05:09:15 1999
|
||||
@@ -185,6 +185,11 @@
|
||||
static void VtSetMode(u_char mode, bool sw)
|
||||
{
|
||||
switch(mode) {
|
||||
+#if defined(__FreeBSD__)
|
||||
+ case 1:
|
||||
+ con.cursor_key_mode = sw;
|
||||
+ break;
|
||||
+#endif
|
||||
case 4:
|
||||
con.ins = sw;
|
||||
break;
|
||||
@@ -654,4 +659,144 @@
|
||||
con.sb = lInfo.sb;
|
||||
con.db = lInfo.db|LATCH_1;
|
||||
con.active = cInfo.sw = TRUE;
|
||||
+#if defined(__FreeBSD__)
|
||||
+ con.cursor_key_mode = FALSE;
|
||||
+#endif
|
||||
}
|
||||
+
|
||||
+#if defined(__FreeBSD__)
|
||||
+
|
||||
+static int ReplaceString(char *sp, const int len, const int maxlen,
|
||||
+ const int oldlen, const char *newstr)
|
||||
+{
|
||||
+ int newlen, copylen, diff;
|
||||
+
|
||||
+ newlen = strlen(newstr);
|
||||
+ diff = newlen - oldlen;
|
||||
+ copylen = len - oldlen;
|
||||
+
|
||||
+ if(len + diff > maxlen){
|
||||
+ diff -= (len + diff - maxlen);
|
||||
+ copylen = maxlen - newlen;
|
||||
+ }
|
||||
+ if(copylen > 0)
|
||||
+ memcpy(sp + newlen, sp + oldlen, copylen);
|
||||
+
|
||||
+ copylen = newlen;
|
||||
+ if(newlen > maxlen){
|
||||
+ copylen = maxlen;
|
||||
+ diff = maxlen - len;
|
||||
+ }
|
||||
+ if(copylen > 0)
|
||||
+ memcpy(sp, newstr, copylen);
|
||||
+
|
||||
+ return(diff);
|
||||
+}
|
||||
+
|
||||
+int cons25tovt100(u_char *buff, int len, const int max)
|
||||
+{
|
||||
+ u_char *p;
|
||||
+ int i;
|
||||
+ int newlen = len;
|
||||
+
|
||||
+ p = buff;
|
||||
+
|
||||
+ for(i=0; i<newlen; i++, p++){
|
||||
+ switch(*p){
|
||||
+ case '\177':
|
||||
+ newlen += ReplaceString(p, len-i, max-i, 1, "\x1b[3~");
|
||||
+ i += 3; p += 3;
|
||||
+ break;
|
||||
+ case '\033': /* ESC */
|
||||
+ if(i + 2 <= newlen && *(p+1) == '['){
|
||||
+ switch(*(p+2)){
|
||||
+ case 'A': /* up arrow */
|
||||
+ if(con.cursor_key_mode)
|
||||
+ newlen += ReplaceString(p, len-i, max-i, 3, "\x1bOA");
|
||||
+ break;
|
||||
+ case 'B': /* down arrow */
|
||||
+ if(con.cursor_key_mode)
|
||||
+ newlen += ReplaceString(p, len-i, max-i, 3, "\x1bOB");
|
||||
+ break;
|
||||
+ case 'C': /* right arrow */
|
||||
+ if(con.cursor_key_mode)
|
||||
+ newlen += ReplaceString(p, len-i, max-i, 3, "\x1bOC");
|
||||
+ break;
|
||||
+ case 'D': /* left arrow */
|
||||
+ if(con.cursor_key_mode)
|
||||
+ newlen += ReplaceString(p, len-i, max-i, 3, "\x1bOD");
|
||||
+ break;
|
||||
+ case 'L': /* insert */
|
||||
+ newlen += ReplaceString(p, len-i, max-i, 3, "\x1b[2~");
|
||||
+ i++; p++;
|
||||
+ break;
|
||||
+ case 'H': /* home key */
|
||||
+ newlen += ReplaceString(p, len-i, max-i, 3, "\x1b[4~");
|
||||
+ i++; p++;
|
||||
+ break;
|
||||
+ case 'I': /* prev page */
|
||||
+ newlen += ReplaceString(p, len-i, max-i, 3, "\x1b[5~");
|
||||
+ i++; p++;
|
||||
+ break;
|
||||
+ case 'G': /* next page */
|
||||
+ newlen += ReplaceString(p, len-i, max-i, 3, "\x1b[6~");
|
||||
+ i++; p++;
|
||||
+ break;
|
||||
+ case 'M': /* F1 */
|
||||
+ newlen += ReplaceString(p, len-i, max-i, 3, "\x1b[11~");
|
||||
+ i += 2; p += 2;
|
||||
+ break;
|
||||
+ case 'N': /* F2 */
|
||||
+ newlen += ReplaceString(p, len-i, max-i, 3, "\x1b[12~");
|
||||
+ i += 2; p += 2;
|
||||
+ break;
|
||||
+ case 'O': /* F3 */
|
||||
+ newlen += ReplaceString(p, len-i, max-i, 3, "\x1b[13~");
|
||||
+ i += 2; p += 2;
|
||||
+ break;
|
||||
+ case 'P': /* F4 */
|
||||
+ newlen += ReplaceString(p, len-i, max-i, 3, "\x1b[14~");
|
||||
+ i += 2; p += 2;
|
||||
+ break;
|
||||
+ case 'Q': /* F5 */
|
||||
+ newlen += ReplaceString(p, len-i, max-i, 3, "\x1b[15~");
|
||||
+ i += 2; p += 2;
|
||||
+ break;
|
||||
+ case 'R': /* F6 */
|
||||
+ newlen += ReplaceString(p, len-i, max-i, 3, "\x1b[17~");
|
||||
+ i += 2; p += 2;
|
||||
+ break;
|
||||
+ case 'S': /* F7 */
|
||||
+ newlen += ReplaceString(p, len-i, max-i, 3, "\x1b[18~");
|
||||
+ i += 2; p += 2;
|
||||
+ break;
|
||||
+ case 'T': /* F8 */
|
||||
+ newlen += ReplaceString(p, len-i, max-i, 3, "\x1b[19~");
|
||||
+ i += 2; p += 2;
|
||||
+ break;
|
||||
+ case 'U': /* F9 */
|
||||
+ newlen += ReplaceString(p, len-i, max-i, 3, "\x1b[20~");
|
||||
+ i += 2; p += 2;
|
||||
+ break;
|
||||
+ case 'V': /* F10 */
|
||||
+ newlen += ReplaceString(p, len-i, max-i, 3, "\x1b[21~");
|
||||
+ i += 2; p += 2;
|
||||
+ break;
|
||||
+ case 'W': /* F11 */
|
||||
+ newlen += ReplaceString(p, len-i, max-i, 3, "\x1b[23~");
|
||||
+ i += 2; p += 2;
|
||||
+ break;
|
||||
+ case 'X': /* F12 */
|
||||
+ newlen += ReplaceString(p, len-i, max-i, 3, "\x1b[24~");
|
||||
+ i += 2; p += 2;
|
||||
+ break;
|
||||
+ }
|
||||
+ i += 2; p += 2;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ return(newlen);
|
||||
+}
|
||||
+
|
||||
+#endif
|
15
korean/han/files/patch-am
Normal file
15
korean/han/files/patch-am
Normal file
|
@ -0,0 +1,15 @@
|
|||
--- 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
|
||||
|
35
korean/han/files/patch-ba
Normal file
35
korean/han/files/patch-ba
Normal file
|
@ -0,0 +1,35 @@
|
|||
diff -ur include/mem.h.old include/mem.h
|
||||
--- 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
|
19
korean/han/files/patch-bb
Normal file
19
korean/han/files/patch-bb
Normal file
|
@ -0,0 +1,19 @@
|
|||
diff -ur lib/mem.c.old lib/mem.c
|
||||
--- 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)
|
||||
{
|
12
korean/han/files/patch-bc
Normal file
12
korean/han/files/patch-bc
Normal file
|
@ -0,0 +1,12 @@
|
|||
diff -ur src/main.c.old src/main.c
|
||||
--- 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;
|
||||
|
37
korean/han/files/patch-bd
Normal file
37
korean/han/files/patch-bd
Normal file
|
@ -0,0 +1,37 @@
|
|||
--- src/vc.c.orig Fri Jun 9 04:14:43 2000
|
||||
+++ src/vc.c Fri Jun 9 04:27:53 2000
|
||||
@@ -95,28 +95,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)
|
12
korean/han/files/patch-be
Normal file
12
korean/han/files/patch-be
Normal file
|
@ -0,0 +1,12 @@
|
|||
--- src/mouse.c.orig Mon Jan 27 20:40:27 1997
|
||||
+++ src/mouse.c Tue May 9 18:08:44 2000
|
||||
@@ -176,7 +176,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;
|
|
@ -1,17 +1,17 @@
|
|||
Han-1.0fb
|
||||
---------
|
||||
HAN
|
||||
---
|
||||
|
||||
HAN is a hangul console. This is an alpha version. Supported video card is
|
||||
VGA only, and, supported font are Minix/V and BDF. This program requires
|
||||
shared memory.
|
||||
shared memory. HAN is derived from KON, a Kanji COnsole for Linux/FreeBSD.
|
||||
|
||||
This version supports ko_KR.euc.
|
||||
|
||||
Orignal kon written by manabe@papilio.tutics.tut.ac.jp.
|
||||
FreeBSD port of kon is done by ogura@st.rim.or.jp.
|
||||
|
||||
Han written by nsroh@juno.kaist.ac.kr, hanmaum@baram.kaist.ac.kr.
|
||||
FreeBSD port of han is done by yujeny@pandora.snu.ac.kr.
|
||||
HAN written by nsroh@juno.kaist.ac.kr, hanmaum@baram.kaist.ac.kr.
|
||||
FreeBSD port of HAN is done by yujeny@pandora.snu.ac.kr & cjh@FreeBSD.org.
|
||||
|
||||
--
|
||||
Port by Choi Jun Ho <junker@jazz.snu.ac.kr>
|
||||
CHOI Junho <cjh@FreeBSD.org>
|
||||
|
|
Loading…
Reference in a new issue