mirror of
https://git.FreeBSD.org/ports.git
synced 2024-12-25 04:43:33 +00:00
Add ja-epic4, the (E)nhanced (P)rogrammable (I)RC-II (C)lient with
Japanese support.
This commit is contained in:
parent
35c1beba1d
commit
61d92038e2
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=35674
@ -49,6 +49,7 @@
|
||||
SUBDIR += emacs-manual
|
||||
SUBDIR += emacs20-dl-canna
|
||||
SUBDIR += emacs20-dl-wnn6
|
||||
SUBDIR += epic4
|
||||
SUBDIR += epwutil
|
||||
SUBDIR += escpf
|
||||
SUBDIR += esecanna
|
||||
|
19
japanese/epic4/Makefile
Normal file
19
japanese/epic4/Makefile
Normal file
@ -0,0 +1,19 @@
|
||||
# New ports collection makefile for: epic4-ja
|
||||
# Date created: 4 Dec 2000
|
||||
# Whom: Akinori MUSHA aka knu <knu@idaemons.org>
|
||||
#
|
||||
# $FreeBSD$
|
||||
#
|
||||
|
||||
CATEGORIES= japanese irc
|
||||
|
||||
MAINTAINER= knu@FreeBSD.org
|
||||
|
||||
MASTERDIR= ${.CURDIR}/../../irc/epic4
|
||||
|
||||
COMMENT= ${.CURDIR}/pkg-comment
|
||||
DESCR= ${.CURDIR}/pkg-descr
|
||||
EXTRA_PATCHES= ${.CURDIR}/files/patch-*
|
||||
PATCH_STRIP= -p1
|
||||
|
||||
.include "${MASTERDIR}/Makefile"
|
37
japanese/epic4/files/patch-Makefile.in
Normal file
37
japanese/epic4/files/patch-Makefile.in
Normal file
@ -0,0 +1,37 @@
|
||||
--- epic4-0.9.9/source/Makefile.in.orig Thu Aug 24 04:29:55 2000
|
||||
+++ epic4-0.9.9/source/Makefile.in Mon Dec 4 03:45:30 2000
|
||||
@@ -17,7 +17,7 @@
|
||||
ircsig.o keys.o lastlog.o list.o log.o mail.o names.o network.o \
|
||||
newio.o notice.o notify.o numbers.o output.o parse.o queue.o reg.o \
|
||||
screen.o server.o status.o term.o timer.o vars.o who.o window.o \
|
||||
- words.o @ALLOCA@
|
||||
+ words.o kanji.o @ALLOCA@
|
||||
|
||||
INCLUDES = -I@srcdir@/../include -I../include
|
||||
|
||||
@@ -96,7 +96,7 @@
|
||||
../include/history.h ../include/hook.h ../include/input.h \
|
||||
../include/output.h ../include/screen.h ../include/window.h \
|
||||
../include/lastlog.h ../include/status.h ../include/stack.h \
|
||||
- ../include/vars.h ../include/keys.h expr2.c expr.c
|
||||
+ ../include/vars.h ../include/keys.h ../include/kanji.h expr2.c expr.c
|
||||
alist.o: alist.c ../include/irc.h ../include/defs.h \
|
||||
../include/config.h ../include/irc_std.h ../include/debug.h \
|
||||
../include/alist.h ../include/ircaux.h ../include/output.h
|
||||
@@ -342,7 +342,7 @@
|
||||
../include/irc_std.h ../include/debug.h ../include/ircaux.h \
|
||||
../include/vars.h ../include/term.h ../include/screen.h \
|
||||
../include/window.h ../include/lastlog.h ../include/status.h \
|
||||
- ../include/output.h
|
||||
+ ../include/output.h ../include/kanji.h
|
||||
timer.o: timer.c ../include/irc.h ../include/defs.h \
|
||||
../include/config.h ../include/irc_std.h ../include/debug.h \
|
||||
../include/ircaux.h ../include/window.h ../include/lastlog.h \
|
||||
@@ -379,6 +379,7 @@
|
||||
../include/irc.h ../include/irc_std.h ../include/debug.h \
|
||||
../include/term.h ../include/screen.h ../include/window.h \
|
||||
../include/lastlog.h ../include/status.h ../include/ircaux.h
|
||||
+kanji.o: kanji.c ../include/kanji.h
|
||||
wterm.o: wterm.c ../include/irc.h ../include/defs.h \
|
||||
../include/config.h ../include/irc_std.h ../include/debug.h \
|
||||
../include/ircaux.h ../include/vars.h ../include/term.h \
|
11
japanese/epic4/files/patch-config.h
Normal file
11
japanese/epic4/files/patch-config.h
Normal file
@ -0,0 +1,11 @@
|
||||
--- epic4-0.9.9/include/config.h.orig Sat Sep 23 00:59:49 2000
|
||||
+++ epic4-0.9.9/include/config.h Mon Dec 4 03:44:17 2000
|
||||
@@ -370,7 +370,7 @@
|
||||
#define DEFAULT_HELP_PROMPT 1
|
||||
#define DEFAULT_HELP_WINDOW 0
|
||||
#define DEFAULT_HIDE_PRIVATE_CHANNELS 0
|
||||
-#define DEFAULT_HIGH_BIT_ESCAPE 2
|
||||
+#define DEFAULT_HIGH_BIT_ESCAPE 0
|
||||
#define DEFAULT_HIGHLIGHT_CHAR "BOLD"
|
||||
#define DEFAULT_HISTORY 150
|
||||
#define DEFAULT_HISTORY_CIRCLEQ 1
|
264
japanese/epic4/files/patch-defs.h
Normal file
264
japanese/epic4/files/patch-defs.h
Normal file
@ -0,0 +1,264 @@
|
||||
--- epic4-0.9.9/include/defs.h.orig Mon Dec 4 03:44:17 2000
|
||||
+++ epic4-0.9.9/include/defs.h Mon Dec 4 03:44:17 2000
|
||||
@@ -0,0 +1,261 @@
|
||||
+/* include/defs.h. Generated automatically by configure. */
|
||||
+/* include/defs.h.in. Generated automatically from configure.in by autoheader. */
|
||||
+
|
||||
+/* Define if on AIX 3.
|
||||
+ System headers sometimes define this.
|
||||
+ We just want to avoid a redefinition error message. */
|
||||
+#ifndef _ALL_SOURCE
|
||||
+/* #undef _ALL_SOURCE */
|
||||
+#endif
|
||||
+
|
||||
+/* Define if using alloca.c. */
|
||||
+/* #undef C_ALLOCA */
|
||||
+
|
||||
+/* Define to one of _getb67, GETB67, getb67 for Cray-2 and Cray-YMP systems.
|
||||
+ This function is required for alloca.c support on those systems. */
|
||||
+/* #undef CRAY_STACKSEG_END */
|
||||
+
|
||||
+/* Define if the `getpgrp' function takes no argument. */
|
||||
+#define GETPGRP_VOID 1
|
||||
+
|
||||
+/* Define to `int' if <sys/types.h> doesn't define. */
|
||||
+/* #undef gid_t */
|
||||
+
|
||||
+/* Define if you have alloca, as a function or macro. */
|
||||
+#define HAVE_ALLOCA 1
|
||||
+
|
||||
+/* Define if you have <alloca.h> and it should be used (not on Ultrix). */
|
||||
+#define HAVE_ALLOCA_H 1
|
||||
+
|
||||
+/* Define to `int' if <sys/types.h> doesn't define. */
|
||||
+/* #undef mode_t */
|
||||
+
|
||||
+/* Define if your C compiler doesn't accept -c and -o together. */
|
||||
+/* #undef NO_MINUS_C_MINUS_O */
|
||||
+
|
||||
+/* Define if your Fortran 77 compiler doesn't accept -c and -o together. */
|
||||
+/* #undef F77_NO_MINUS_C_MINUS_O */
|
||||
+
|
||||
+/* Define to `int' if <sys/types.h> doesn't define. */
|
||||
+/* #undef pid_t */
|
||||
+
|
||||
+/* Define if you need to in order for stat and other things to work. */
|
||||
+/* #undef _POSIX_SOURCE */
|
||||
+
|
||||
+/* Define as the return type of signal handlers (int or void). */
|
||||
+#define RETSIGTYPE void
|
||||
+
|
||||
+/* Define to the type of arg1 for select(). */
|
||||
+/* #undef SELECT_TYPE_ARG1 */
|
||||
+
|
||||
+/* Define to the type of args 2, 3 and 4 for select(). */
|
||||
+/* #undef SELECT_TYPE_ARG234 */
|
||||
+
|
||||
+/* Define to the type of arg5 for select(). */
|
||||
+/* #undef SELECT_TYPE_ARG5 */
|
||||
+
|
||||
+/* Define to `unsigned' if <sys/types.h> doesn't define. */
|
||||
+/* #undef size_t */
|
||||
+
|
||||
+/* If using the C implementation of alloca, define if you know the
|
||||
+ direction of stack growth for your system; otherwise it will be
|
||||
+ automatically deduced at run-time.
|
||||
+ STACK_DIRECTION > 0 => grows toward higher addresses
|
||||
+ STACK_DIRECTION < 0 => grows toward lower addresses
|
||||
+ STACK_DIRECTION = 0 => direction of growth unknown
|
||||
+ */
|
||||
+/* #undef STACK_DIRECTION */
|
||||
+
|
||||
+/* Define if you have the ANSI C header files. */
|
||||
+#define STDC_HEADERS 1
|
||||
+
|
||||
+/* Define if `sys_siglist' is declared by <signal.h>. */
|
||||
+#define SYS_SIGLIST_DECLARED 1
|
||||
+
|
||||
+/* Define if you can safely include both <sys/time.h> and <time.h>. */
|
||||
+#define TIME_WITH_SYS_TIME 1
|
||||
+
|
||||
+/* Define to `int' if <sys/types.h> doesn't define. */
|
||||
+/* #undef uid_t */
|
||||
+
|
||||
+/* Define this if you have fpathconf(2) */
|
||||
+#define HAVE_FPATHCONF 1
|
||||
+
|
||||
+/* define this if you have getpass(3) */
|
||||
+#define HAVE_GETPASS 1
|
||||
+
|
||||
+/* define this if you have getpgid(2) */
|
||||
+#define HAVE_GETPGID 1
|
||||
+
|
||||
+/* define this if you have gettimeofday(2) */
|
||||
+#define HAVE_GETTIMEOFDAY 1
|
||||
+
|
||||
+/* Define this if you have killpg(2) */
|
||||
+#define HAVE_KILLPG 1
|
||||
+
|
||||
+/* define this if you have memmove(3) */
|
||||
+#define HAVE_MEMMOVE 1
|
||||
+
|
||||
+/* define this if you have scandir(3) */
|
||||
+#define HAVE_SCANDIR 1
|
||||
+
|
||||
+/* define this if you have setenv(3) */
|
||||
+#define HAVE_SETENV 1
|
||||
+
|
||||
+/* define this if you have setsid(2) */
|
||||
+#define HAVE_SETSID 1
|
||||
+
|
||||
+/* define this if you have snprintf(3) */
|
||||
+#define HAVE_SNPRINTF 1
|
||||
+
|
||||
+/* define this if you have strerror(3) */
|
||||
+#define HAVE_STRERROR 1
|
||||
+
|
||||
+/* define if you have strtoul(3) */
|
||||
+#define HAVE_STRTOUL 1
|
||||
+
|
||||
+/* define this if you have sysconf(3) */
|
||||
+#define HAVE_SYSCONF 1
|
||||
+
|
||||
+/* define this if you have uname(2) */
|
||||
+#define HAVE_UNAME 1
|
||||
+
|
||||
+/* define this if you have vsnprintf(3) */
|
||||
+#define HAVE_VSNPRINTF 1
|
||||
+
|
||||
+/* Define this if you have SUN_LEN in <sys/un.h> */
|
||||
+/* #undef HAVE_SUN_LEN */
|
||||
+
|
||||
+/* define this if you don't have struct linger */
|
||||
+/* #undef NO_STRUCT_LINGER */
|
||||
+
|
||||
+/* define if allow sys/time.h with time.h */
|
||||
+#define TIME_WITH_SYS_TIME 1
|
||||
+
|
||||
+/* Define this if your getpgrp is broken posix */
|
||||
+#define GETPGRP_VOID 1
|
||||
+
|
||||
+/* define this if an unsigned long is 32 bits */
|
||||
+/* #undef UNSIGNED_LONG32 */
|
||||
+
|
||||
+/* define this if an unsigned int is 32 bits */
|
||||
+#define UNSIGNED_INT32 1
|
||||
+
|
||||
+/* define this if you are unsure what is is 32 bits */
|
||||
+/* #undef UNKNOWN_32INT */
|
||||
+
|
||||
+/* Define this if you have inet_aton(). */
|
||||
+#define HAVE_INET_ATON 1
|
||||
+
|
||||
+/* Define this if you need to include sys/select.h */
|
||||
+/* #undef NEED_SYS_SELECT_H */
|
||||
+
|
||||
+/*
|
||||
+ * SOCKS 4 && 5 support.
|
||||
+ */
|
||||
+/* #undef SOCKS */
|
||||
+/* #undef USE_SOCKS */
|
||||
+/* #undef USE_SOCKS5 */
|
||||
+/* #undef connect */
|
||||
+/* #undef getsockname */
|
||||
+/* #undef bind */
|
||||
+/* #undef accept */
|
||||
+/* #undef listen */
|
||||
+/* #undef select */
|
||||
+/* #undef dup */
|
||||
+/* #undef dup2 */
|
||||
+/* #undef fclose */
|
||||
+/* #undef gethostbyname */
|
||||
+/* #undef read */
|
||||
+/* #undef recv */
|
||||
+/* #undef recvfrom */
|
||||
+/* #undef rresvport */
|
||||
+/* #undef send */
|
||||
+/* #undef sendto */
|
||||
+/* #undef shutdown */
|
||||
+/* #undef write */
|
||||
+/* #undef Rconnect */
|
||||
+/* #undef Rgetsockname */
|
||||
+/* #undef Rgetpeername */
|
||||
+/* #undef Rbind */
|
||||
+/* #undef Raccept */
|
||||
+/* #undef Rlisten */
|
||||
+/* #undef Rselect */
|
||||
+
|
||||
+/* Define this if you have setsid() */
|
||||
+#define HAVE_SETSID 1
|
||||
+
|
||||
+/* Define this if you have tparm(2) */
|
||||
+#define HAVE_TPARM 1
|
||||
+
|
||||
+/* Define this if you have getlogin(3) */
|
||||
+#define HAVE_GETLOGIN 1
|
||||
+
|
||||
+/* Define this if you have terminfo support */
|
||||
+#define HAVE_TERMINFO 1
|
||||
+
|
||||
+/* Define this if you have fchdir() */
|
||||
+#define HAVE_FCHDIR 1
|
||||
+
|
||||
+/* Define this if you have realpath() */
|
||||
+#define HAVE_REALPATH 1
|
||||
+
|
||||
+/* Define this if you have strlcpy() */
|
||||
+/* #undef HAVE_STRLCPY */
|
||||
+
|
||||
+/* Define this if you have strlcat() */
|
||||
+/* #undef HAVE_STRLCAT */
|
||||
+
|
||||
+/* Define this if you have stpcpy() */
|
||||
+#define HAVE_STPCPY 1
|
||||
+
|
||||
+/* The number of bytes in a unsigned int. */
|
||||
+#define SIZEOF_UNSIGNED_INT 4
|
||||
+
|
||||
+/* The number of bytes in a unsigned long. */
|
||||
+/* #undef SIZEOF_UNSIGNED_LONG */
|
||||
+
|
||||
+/* Define if you have the <dirent.h> header file. */
|
||||
+#define HAVE_DIRENT_H 1
|
||||
+
|
||||
+/* Define if you have the <fcntl.h> header file. */
|
||||
+#define HAVE_FCNTL_H 1
|
||||
+
|
||||
+/* Define if you have the <ndir.h> header file. */
|
||||
+/* #undef HAVE_NDIR_H */
|
||||
+
|
||||
+/* Define if you have the <netdb.h> header file. */
|
||||
+#define HAVE_NETDB_H 1
|
||||
+
|
||||
+/* Define if you have the <regex.h> header file. */
|
||||
+#define HAVE_REGEX_H 1
|
||||
+
|
||||
+/* Define if you have the <sys/dir.h> header file. */
|
||||
+/* #undef HAVE_SYS_DIR_H */
|
||||
+
|
||||
+/* Define if you have the <sys/fcntl.h> header file. */
|
||||
+#define HAVE_SYS_FCNTL_H 1
|
||||
+
|
||||
+/* Define if you have the <sys/file.h> header file. */
|
||||
+#define HAVE_SYS_FILE_H 1
|
||||
+
|
||||
+/* Define if you have the <sys/filio.h> header file. */
|
||||
+/* #undef HAVE_SYS_FILIO_H */
|
||||
+
|
||||
+/* Define if you have the <sys/ndir.h> header file. */
|
||||
+/* #undef HAVE_SYS_NDIR_H */
|
||||
+
|
||||
+/* Define if you have the <sys/select.h> header file. */
|
||||
+#define HAVE_SYS_SELECT_H 1
|
||||
+
|
||||
+/* Define if you have the <sys/syslimits.h> header file. */
|
||||
+/* #undef HAVE_SYS_SYSLIMITS_H */
|
||||
+
|
||||
+/* Define if you have the <sys/time.h> header file. */
|
||||
+#define HAVE_SYS_TIME_H 1
|
||||
+
|
||||
+/* Define if you have the <sys/un.h> header file. */
|
||||
+#define HAVE_SYS_UN_H 1
|
||||
+
|
||||
+/* Define if you have the <termcap.h> header file. */
|
||||
+#define HAVE_TERMCAP_H 1
|
356
japanese/epic4/files/patch-input.c
Normal file
356
japanese/epic4/files/patch-input.c
Normal file
@ -0,0 +1,356 @@
|
||||
--- epic4-0.9.9/source/input.c.orig Sat Sep 23 01:07:16 2000
|
||||
+++ epic4-0.9.9/source/input.c Mon Dec 4 03:49:56 2000
|
||||
@@ -31,6 +31,7 @@
|
||||
#include "vars.h"
|
||||
#include "window.h"
|
||||
#include "output.h"
|
||||
+#include "kanji.h"
|
||||
#include <sys/ioctl.h> /* XXX ugh */
|
||||
|
||||
/*
|
||||
@@ -70,7 +71,6 @@
|
||||
#define INPUT_LINE current_screen->input_line
|
||||
#define CUT_BUFFER cut_buffer
|
||||
#define SET_CUT_BUFFER(x) malloc_strcpy(&CUT_BUFFER, x);
|
||||
-
|
||||
#define BUILT_IN_KEYBINDING(x) void x (char key, char *string)
|
||||
|
||||
|
||||
@@ -81,9 +81,19 @@
|
||||
|
||||
while (*str && i < len)
|
||||
{
|
||||
- term_putchar(*str);
|
||||
- str++, i++;
|
||||
+ if (ISKANJI(*str) && ISKANJI(*(str+1))) {
|
||||
+ if (i < len - 1) {
|
||||
+ term_putchar(*str, *(str+1));
|
||||
+ str += 2; i += 2;
|
||||
+ } else {
|
||||
+ break; /* goto END */
|
||||
+ }
|
||||
+ } else {
|
||||
+ term_putchar(*str, '\0');
|
||||
+ str++, i++;
|
||||
+ }
|
||||
}
|
||||
+ /* END: */
|
||||
return i;
|
||||
}
|
||||
|
||||
@@ -321,9 +331,16 @@
|
||||
*/
|
||||
if (START_ZONE == WIDTH)
|
||||
INPUT_ONSCREEN = 0;
|
||||
- else
|
||||
+ else {
|
||||
+ int pos = THIS_POS;
|
||||
INPUT_ONSCREEN = START_ZONE - WIDTH - INPUT_PROMPT_LEN;
|
||||
-
|
||||
+ /* adjust kanji */
|
||||
+ while (pos > INPUT_ONSCREEN) {
|
||||
+ ISKANJI(INPUT_BUFFER[pos - 1]) ? pos -= 2 : pos--;
|
||||
+ }
|
||||
+ INPUT_ONSCREEN = pos;
|
||||
+ }
|
||||
+
|
||||
/*
|
||||
* And the cursor is simply how many characters away THIS_POS is
|
||||
* from the first column on the screen.
|
||||
@@ -468,16 +485,28 @@
|
||||
{
|
||||
if (THIS_CHAR)
|
||||
{
|
||||
- THIS_POS++;
|
||||
- term_cursor_right();
|
||||
+ if (ISKANJI (THIS_CHAR)) {
|
||||
+ THIS_POS+=2;
|
||||
+ term_right(2);
|
||||
+ }else{
|
||||
+ THIS_POS++;
|
||||
+ term_cursor_right();
|
||||
+ }
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (THIS_POS > MIN_POS)
|
||||
{
|
||||
- THIS_POS--;
|
||||
- term_cursor_left();
|
||||
+ if (THIS_POS > MIN_POS - 1
|
||||
+ && ISKANJI(PREV_CHAR)
|
||||
+ && ISKANJI(INPUT_BUFFER[THIS_POS-2])) {
|
||||
+ THIS_POS -= 2;
|
||||
+ term_left(2);
|
||||
+ }else{
|
||||
+ THIS_POS--;
|
||||
+ term_cursor_left();
|
||||
+ }
|
||||
}
|
||||
}
|
||||
update_input(NO_UPDATE);
|
||||
@@ -590,7 +619,7 @@
|
||||
update_input(UPDATE_JUST_CURSOR);
|
||||
}
|
||||
|
||||
-static void input_delete_char_from_screen (void)
|
||||
+static void input_delete_char_from_screen (int count)
|
||||
{
|
||||
/*
|
||||
* Remove the current character from the screen's display.
|
||||
@@ -607,7 +636,7 @@
|
||||
/*
|
||||
* Delete the character. This is the simple part.
|
||||
*/
|
||||
- term_delete(1);
|
||||
+ term_delete(count);
|
||||
|
||||
/*
|
||||
* So right now we have a blank space at the right of the
|
||||
@@ -615,14 +644,14 @@
|
||||
* is out in that position, we need to find it and display it.
|
||||
*/
|
||||
if (INPUT_ONSCREEN == 0) /* UGH! */
|
||||
- pos = last_input_screen->co - INPUT_PROMPT_LEN - 1;
|
||||
+ pos = last_input_screen->co - INPUT_PROMPT_LEN - count;
|
||||
else
|
||||
- pos = INPUT_ONSCREEN + last_input_screen->co - 1;
|
||||
+ pos = INPUT_ONSCREEN + last_input_screen->co - count;
|
||||
|
||||
if (pos < strlen(INPUT_BUFFER))
|
||||
{
|
||||
- term_move_cursor(last_input_screen->co - 1, INPUT_LINE);
|
||||
- term_putchar(INPUT_BUFFER[pos]);
|
||||
+ term_move_cursor(last_input_screen->co - count, INPUT_LINE);
|
||||
+ term_putchar(INPUT_BUFFER[pos], '\0');
|
||||
term_move_cursor(INPUT_CURSOR, INPUT_LINE);
|
||||
}
|
||||
|
||||
@@ -637,6 +666,7 @@
|
||||
*/
|
||||
BUILT_IN_KEYBINDING(input_delete_character)
|
||||
{
|
||||
+ int count;
|
||||
cursor_to_input();
|
||||
|
||||
/*
|
||||
@@ -646,12 +676,14 @@
|
||||
if (!THIS_CHAR)
|
||||
return;
|
||||
|
||||
+ count = ISKANJI(THIS_CHAR) ? 2 : 1;
|
||||
+
|
||||
/*
|
||||
* Remove the current character from the logical buffer
|
||||
* and also from the screen.
|
||||
*/
|
||||
- ov_strcpy(&THIS_CHAR, &NEXT_CHAR);
|
||||
- input_delete_char_from_screen();
|
||||
+ ov_strcpy(&THIS_CHAR, &INPUT_BUFFER[THIS_POS+count]);
|
||||
+ input_delete_char_from_screen(count);
|
||||
}
|
||||
|
||||
|
||||
@@ -804,7 +836,24 @@
|
||||
*/
|
||||
BUILT_IN_KEYBINDING(input_add_character)
|
||||
{
|
||||
+ static u_char c1 = '\0', c2;
|
||||
int display_flag = NO_UPDATE;
|
||||
+ int length;
|
||||
+
|
||||
+ /* add by atsushi */
|
||||
+ if (ISKANJI(key)) {
|
||||
+ if (c1 == '\0') { /* kanji 1st char */
|
||||
+ c1 = key;
|
||||
+ return;
|
||||
+ }else{ /* kanji 2nd char */
|
||||
+ c2 = key;
|
||||
+ length = 2;
|
||||
+ }
|
||||
+ }else{
|
||||
+ c1 = key;
|
||||
+ length = 1;
|
||||
+ }
|
||||
+ /* end add */
|
||||
|
||||
cursor_to_input();
|
||||
|
||||
@@ -812,7 +861,7 @@
|
||||
term_echo(last_input_screen->promptlist->echo);
|
||||
|
||||
/* Don't permit the input buffer to get too big. */
|
||||
- if (THIS_POS >= INPUT_BUFFER_SIZE)
|
||||
+ if (THIS_POS + length > INPUT_BUFFER_SIZE) /* change */
|
||||
{
|
||||
term_echo(1);
|
||||
return;
|
||||
@@ -832,7 +881,12 @@
|
||||
* Add to logical buffer
|
||||
*/
|
||||
ptr = LOCAL_COPY(&(THIS_CHAR));
|
||||
- THIS_CHAR = key;
|
||||
+ /* add */
|
||||
+ THIS_CHAR = c1;
|
||||
+ if (length > 1) {
|
||||
+ THIS_POS++;
|
||||
+ THIS_CHAR = c2;
|
||||
+ } /* end add */
|
||||
NEXT_CHAR = 0;
|
||||
ADD_TO_INPUT(ptr);
|
||||
|
||||
@@ -843,7 +897,7 @@
|
||||
term_insert(key);
|
||||
else
|
||||
{
|
||||
- term_putchar(key);
|
||||
+ term_putchar(c1, c2);
|
||||
if (NEXT_CHAR)
|
||||
display_flag = UPDATE_FROM_CURSOR;
|
||||
else
|
||||
@@ -855,26 +909,41 @@
|
||||
/*
|
||||
* Add to logical buffer
|
||||
*/
|
||||
- THIS_CHAR = key;
|
||||
+ /* add */
|
||||
+ THIS_CHAR = c1;
|
||||
+ if (length > 1) {
|
||||
+ THIS_POS++;
|
||||
+ THIS_CHAR = c2;
|
||||
+ } /* end add */
|
||||
NEXT_CHAR = 0;
|
||||
|
||||
/* Add to display screen */
|
||||
- term_putchar(key);
|
||||
+ term_putchar(c1, c2);
|
||||
}
|
||||
}
|
||||
|
||||
/* Overstrike mode. Much simpler. */
|
||||
+ /* Maybe we must change here (atsushi) */
|
||||
else
|
||||
{
|
||||
- if (THIS_CHAR == 0)
|
||||
+ if (THIS_CHAR == 0)
|
||||
NEXT_CHAR = 0;
|
||||
- THIS_CHAR = key;
|
||||
- term_putchar(key);
|
||||
+ THIS_CHAR = c1;
|
||||
+ /* add */
|
||||
+ if (length > 1) {
|
||||
+ THIS_POS++;
|
||||
+ if (THIS_CHAR == 0)
|
||||
+ NEXT_CHAR = 0;
|
||||
+ THIS_CHAR = c2;
|
||||
+ } /* end add */
|
||||
+
|
||||
+ term_putchar(c1, c2);
|
||||
}
|
||||
|
||||
THIS_POS++;
|
||||
update_input(display_flag);
|
||||
term_echo(1);
|
||||
+ c1 = '\0';
|
||||
}
|
||||
|
||||
/* input_clear_to_eol: erases from the cursor to the end of the input buffer */
|
||||
@@ -935,8 +1004,8 @@
|
||||
cursor_to_input();
|
||||
if (last_input_screen->buffer_pos > MIN_POS)
|
||||
{
|
||||
- u_char c1, c2;
|
||||
- int pos, end_of_line = 0;
|
||||
+ u_char c1[2], c2[2];
|
||||
+ int pos, ptr, end_of_line = 0;
|
||||
|
||||
/*
|
||||
* If we're in the middle of the input buffer,
|
||||
@@ -956,6 +1025,9 @@
|
||||
{
|
||||
pos = THIS_POS - 1;
|
||||
end_of_line = 1;
|
||||
+ if (ISKANJI(INPUT_BUFFER[pos])) {
|
||||
+ pos--;
|
||||
+ }
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -968,25 +1040,49 @@
|
||||
/*
|
||||
* Swap the two characters
|
||||
*/
|
||||
- c1 = INPUT_BUFFER[pos];
|
||||
- c2 = INPUT_BUFFER[pos] = INPUT_BUFFER[pos - 1];
|
||||
- INPUT_BUFFER[pos - 1] = c1;
|
||||
+ if (pos > 1 &&
|
||||
+ ISKANJI(INPUT_BUFFER[pos - 1]) &&
|
||||
+ ISKANJI(INPUT_BUFFER[pos - 2])) {
|
||||
+ c2[0] = INPUT_BUFFER[pos - 2];
|
||||
+ c2[1] = INPUT_BUFFER[pos - 1];
|
||||
+ ptr = pos - 2;
|
||||
+ } else {
|
||||
+ c2[0] = INPUT_BUFFER[pos - 1];
|
||||
+ c2[1] = '\0';
|
||||
+ ptr = pos - 1;
|
||||
+ }
|
||||
|
||||
+ if (ISKANJI(INPUT_BUFFER[pos])) {
|
||||
+ c1[0] = INPUT_BUFFER[ptr++] = INPUT_BUFFER[pos];
|
||||
+ c1[1] = INPUT_BUFFER[ptr++] = INPUT_BUFFER[pos + 1];
|
||||
+ } else {
|
||||
+ c1[0] = INPUT_BUFFER[ptr++] = INPUT_BUFFER[pos];
|
||||
+ c1[1] = '\0';
|
||||
+ }
|
||||
+ /* adjust THIS_POS */
|
||||
+ if (!end_of_line)
|
||||
+ THIS_POS = ptr;
|
||||
+
|
||||
+ INPUT_BUFFER[ptr++] = c2[0];
|
||||
+ if (c2[1]) {
|
||||
+ INPUT_BUFFER[ptr] = c2[1];
|
||||
+ }
|
||||
+
|
||||
/*
|
||||
* Adjust the cursor and output the new chars.
|
||||
*/
|
||||
- term_cursor_left();
|
||||
if (end_of_line)
|
||||
- term_cursor_left();
|
||||
- term_putchar(c1);
|
||||
- term_putchar(c2);
|
||||
+ c1[1] ? term_left(2) : term_cursor_left();
|
||||
+ c2[1] ? term_left(2) : term_cursor_left();
|
||||
+ term_putchar(c1[0], c1[1]);
|
||||
+ term_putchar(c2[0], c2[1]);
|
||||
|
||||
/*
|
||||
* Move the cursor back onto 'c2', if we're not at
|
||||
* the end of the input line.
|
||||
*/
|
||||
if (!end_of_line)
|
||||
- term_cursor_left();
|
||||
+ c2[1] ? term_left(2) : term_cursor_left();
|
||||
|
||||
/*
|
||||
* Reset the internal cursor.
|
||||
@@ -1232,7 +1328,6 @@
|
||||
|
||||
if (xxx_return)
|
||||
return;
|
||||
-
|
||||
/* If the high bit is set, mangle it as neccesary. */
|
||||
if (key & 0x80)
|
||||
{
|
||||
@@ -1242,9 +1337,8 @@
|
||||
key &= ~0x80;
|
||||
}
|
||||
else if (!term_eight_bit())
|
||||
- key &= ~0x80;
|
||||
+ key &= ~0x80;
|
||||
}
|
||||
-
|
||||
extended_key = key;
|
||||
|
||||
/* If we just hit the quote character, add this character literally */
|
136
japanese/epic4/files/patch-kanji.c
Normal file
136
japanese/epic4/files/patch-kanji.c
Normal file
@ -0,0 +1,136 @@
|
||||
--- epic4-0.9.9/source/kanji.c.orig Mon Dec 4 03:44:17 2000
|
||||
+++ epic4-0.9.9/source/kanji.c Mon Dec 4 03:44:17 2000
|
||||
@@ -0,0 +1,133 @@
|
||||
+/* kanji.c */
|
||||
+#include "kanji.h"
|
||||
+
|
||||
+#ifndef TRUE
|
||||
+#define TRUE 1
|
||||
+#endif
|
||||
+
|
||||
+#ifndef FALSE
|
||||
+#define FALSE 0
|
||||
+#endif
|
||||
+
|
||||
+#define ESC '\033'
|
||||
+#define KI1 '$'
|
||||
+#define KI21 'B'
|
||||
+#define KI22 '@'
|
||||
+#define KO1 '('
|
||||
+#define KO21 'B'
|
||||
+#define KO22 'J'
|
||||
+#define KO23 'H'
|
||||
+
|
||||
+#define EUC2JIS(c) (unsigned char)((c) & 0x7f)
|
||||
+#define JIS2EUC(c) (char)((c) | 0x80)
|
||||
+
|
||||
+/* proto types */
|
||||
+static int ParseESC(char **jisstr);
|
||||
+
|
||||
+/* Euc2Jis : convert euc to jis. */
|
||||
+/* eucstr : input string (euc) */
|
||||
+/* jisstr : output string (jis) */
|
||||
+/* limit : output string limit length */
|
||||
+int Euc2Jis(unsigned char *eucstr, char *jisstr, int limit)
|
||||
+{
|
||||
+ int length, shifted;
|
||||
+
|
||||
+ shifted = FALSE;
|
||||
+
|
||||
+ while (*eucstr) {
|
||||
+ length = 0;
|
||||
+ if(ISKANJI(*eucstr)){
|
||||
+ if(!shifted){
|
||||
+ *jisstr++ = ESC;
|
||||
+ *jisstr++ = KI1;
|
||||
+ *jisstr++ = KI21;
|
||||
+ shifted = TRUE;
|
||||
+ length += 3;
|
||||
+ }
|
||||
+ *jisstr++ = EUC2JIS(*eucstr++);
|
||||
+ *jisstr++ = EUC2JIS(*eucstr++);
|
||||
+ length += 2;
|
||||
+ }else{
|
||||
+ if(shifted){
|
||||
+ *jisstr++ = ESC;
|
||||
+ *jisstr++ = KO1;
|
||||
+ *jisstr++ = KO21;
|
||||
+ length += 3;
|
||||
+ shifted = FALSE;
|
||||
+ }
|
||||
+ *jisstr++ = *eucstr++;
|
||||
+ length += 1;
|
||||
+ }
|
||||
+
|
||||
+ limit -= length;
|
||||
+ if(limit < 4){
|
||||
+ jisstr -= length;
|
||||
+ break; /* goto _break_1; */
|
||||
+ }
|
||||
+ }
|
||||
+ _break_1:
|
||||
+ if (shifted) {
|
||||
+ *jisstr++ = ESC;
|
||||
+ *jisstr++ = KO1;
|
||||
+ *jisstr++ = KO21;
|
||||
+ }
|
||||
+ *jisstr = '\0';
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+
|
||||
+/* Jis2Euc : convert jis to euc. */
|
||||
+/* jisstr : input string (jis) */
|
||||
+/* eucstr : output string (euc) */
|
||||
+void Jis2Euc(char *jisstr, unsigned char *eucstr)
|
||||
+{
|
||||
+ int shifted;
|
||||
+ char c;
|
||||
+ char* bg = eucstr;
|
||||
+
|
||||
+ shifted = FALSE;
|
||||
+
|
||||
+ while ((c = *jisstr++) != '\0') {
|
||||
+ if (c == ESC) {
|
||||
+ shifted = ParseESC(&jisstr);
|
||||
+ }else{
|
||||
+ if (shifted) {
|
||||
+ if (*jisstr) {
|
||||
+ *eucstr++ = JIS2EUC(c);
|
||||
+ *eucstr++ = JIS2EUC(*jisstr);
|
||||
+ jisstr++;
|
||||
+ }
|
||||
+ }else{
|
||||
+ *eucstr++ = c;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ *eucstr = '\0';
|
||||
+}
|
||||
+
|
||||
+
|
||||
+/* ParseESC : parse escape code */
|
||||
+/* input : esc code */
|
||||
+/* output : ESC $ B / ESC $ @ / ESC $ @ : shifted and skip esc code */
|
||||
+/* ESC ( B / ESC ( J / ESC ( H : unshifted and skip esc code */
|
||||
+int ParseESC(char **jisstr)
|
||||
+{
|
||||
+ char c1, c2;
|
||||
+ int shifted;
|
||||
+ char* pos = *jisstr;
|
||||
+
|
||||
+ shifted = FALSE;
|
||||
+ c1 = *pos++; c2 = c1 ? *pos++ : '\0';
|
||||
+
|
||||
+ if (c1 == KO1) {
|
||||
+ if (c2 == KO21 || c2 == KO22 || c2 == KO23) {
|
||||
+ *jisstr = pos;
|
||||
+ }
|
||||
+ } else if (c1 == KI1) {
|
||||
+ if (c2 == KI21 || c2 == KI22) {
|
||||
+ *jisstr = pos;
|
||||
+ shifted = TRUE;
|
||||
+ }
|
||||
+ }
|
||||
+ return shifted;
|
||||
+}
|
12
japanese/epic4/files/patch-kanji.h
Normal file
12
japanese/epic4/files/patch-kanji.h
Normal file
@ -0,0 +1,12 @@
|
||||
--- epic4-0.9.9/include/kanji.h.orig Mon Dec 4 03:44:17 2000
|
||||
+++ epic4-0.9.9/include/kanji.h Mon Dec 4 03:44:17 2000
|
||||
@@ -0,0 +1,9 @@
|
||||
+/* kanji.h */
|
||||
+#ifndef __kanji_h__
|
||||
+#define __kanji_h__
|
||||
+
|
||||
+#define ISKANJI(c) (0x80 & (unsigned char)(c))
|
||||
+extern int Euc2Jis(unsigned char *eucstr, char *jisstr, int limit);
|
||||
+extern void Jis2Euc(char *jisstr, unsigned char *eucstr);
|
||||
+
|
||||
+#endif
|
29
japanese/epic4/files/patch-parse.c
Normal file
29
japanese/epic4/files/patch-parse.c
Normal file
@ -0,0 +1,29 @@
|
||||
--- epic4-0.9.9/source/parse.c.orig Wed Aug 16 02:25:44 2000
|
||||
+++ epic4-0.9.9/source/parse.c Mon Dec 4 03:44:17 2000
|
||||
@@ -30,6 +30,7 @@
|
||||
#include "notify.h"
|
||||
#include "notice.h"
|
||||
#include "timer.h"
|
||||
+#include "kanji.h"
|
||||
|
||||
#define STRING_CHANNEL '+'
|
||||
#define MULTI_CHANNEL '#'
|
||||
@@ -1131,7 +1132,7 @@
|
||||
* parse_server: parses messages from the server, doing what should be done
|
||||
* with them
|
||||
*/
|
||||
-void parse_server (char *orig_line)
|
||||
+void parse_server (char *raw_line)
|
||||
{
|
||||
char *from,
|
||||
*comm;
|
||||
@@ -1143,6 +1144,9 @@
|
||||
int cnt;
|
||||
char *line = NULL;
|
||||
size_t size;
|
||||
+ char orig_line[BIG_BUFFER_SIZE];
|
||||
+
|
||||
+ Jis2Euc(raw_line, orig_line);
|
||||
|
||||
if (num_protocol_cmds == -1)
|
||||
num_protocol_cmds = NUMBER_OF_COMMANDS;
|
114
japanese/epic4/files/patch-screen.c
Normal file
114
japanese/epic4/files/patch-screen.c
Normal file
@ -0,0 +1,114 @@
|
||||
--- epic4-0.9.9/source/screen.c.orig Thu Aug 10 09:28:50 2000
|
||||
+++ epic4-0.9.9/source/screen.c Mon Dec 4 03:44:17 2000
|
||||
@@ -11,6 +11,7 @@
|
||||
*/
|
||||
|
||||
#define __need_putchar_x__
|
||||
+#define __need_putchars_x__
|
||||
#define __need_term_flush__
|
||||
#include "irc.h"
|
||||
#include "alias.h"
|
||||
@@ -33,6 +34,7 @@
|
||||
#include "commands.h"
|
||||
#include "parse.h"
|
||||
#include "newio.h"
|
||||
+#include "kanji.h"
|
||||
|
||||
/*
|
||||
* When some code wants to override the default lastlog level, and needs
|
||||
@@ -496,6 +498,7 @@
|
||||
*words,
|
||||
*str,
|
||||
*pos_copy;
|
||||
+ u_char c1 = '\0';
|
||||
|
||||
if (recursion)
|
||||
panic("prepare_display() called recursively");
|
||||
@@ -673,7 +676,8 @@
|
||||
|
||||
default:
|
||||
{
|
||||
- if (*ptr == ' ' || strchr(words, *ptr))
|
||||
+ if (*ptr == ' ' || strchr(words, *ptr)
|
||||
+ || (ISKANJI(*ptr) && c1 != '\0'))
|
||||
{
|
||||
if (indent == 0)
|
||||
{
|
||||
@@ -681,16 +685,30 @@
|
||||
firstwb = pos;
|
||||
}
|
||||
word_break = pos;
|
||||
- if (*ptr != ' ' && ptr[1] &&
|
||||
+ if((ISKANJI(*ptr) && c1 != '\0')) {
|
||||
+ if (col < max_cols) {
|
||||
+ word_break += 2;
|
||||
+ buffer[pos++] = c1;
|
||||
+ }else{
|
||||
+ word_break--;
|
||||
+ }
|
||||
+ c1 = '\0';
|
||||
+ } else if (*ptr != ' ' && ptr[1] &&
|
||||
(col + 1 < max_cols))
|
||||
word_break++;
|
||||
+
|
||||
buffer[pos++] = *ptr;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (indent == -1)
|
||||
- indent = col;
|
||||
- buffer[pos++] = *ptr;
|
||||
+ indent = col;
|
||||
+ if (ISKANJI(*ptr)) {
|
||||
+ c1 = *ptr;
|
||||
+ } else {
|
||||
+ buffer[pos++] = *ptr;
|
||||
+ }
|
||||
+
|
||||
}
|
||||
col++;
|
||||
break;
|
||||
@@ -1494,9 +1512,19 @@
|
||||
* a LOT faster, as we have already done the processing once
|
||||
* to make output "terminal friendly".
|
||||
*/
|
||||
- if (output)
|
||||
- putchar_x(*ptr);
|
||||
- out++;
|
||||
+ if (ISKANJI(*ptr) && *(ptr + 1)) {
|
||||
+ if (output) {
|
||||
+ unsigned char k[3];
|
||||
+ k[0] = *ptr++; k[1] = *ptr; k[2] = '\0';
|
||||
+ putchars_x(k);
|
||||
+ }
|
||||
+ out += 2;
|
||||
+ } else {
|
||||
+ if (output) {
|
||||
+ putchar_x(*ptr);
|
||||
+ }
|
||||
+ out++;
|
||||
+ }
|
||||
}
|
||||
}
|
||||
ptr++;
|
||||
@@ -2562,6 +2590,10 @@
|
||||
case 1:
|
||||
case 6:
|
||||
{
|
||||
+ if(ISKANJI(chr) && ISKANJI(this_char())) {
|
||||
+ output[pos++] = chr;
|
||||
+ output[pos++] = next_char();
|
||||
+ } else {
|
||||
int my_gcmode = gcmode;
|
||||
|
||||
/*
|
||||
@@ -2654,7 +2686,8 @@
|
||||
case 0:
|
||||
break;
|
||||
}
|
||||
- break;
|
||||
+ }
|
||||
+ break;
|
||||
}
|
||||
|
||||
|
32
japanese/epic4/files/patch-server.c
Normal file
32
japanese/epic4/files/patch-server.c
Normal file
@ -0,0 +1,32 @@
|
||||
--- epic4-0.9.9/source/server.c.orig Fri Sep 29 03:16:55 2000
|
||||
+++ epic4-0.9.9/source/server.c Mon Dec 4 03:44:17 2000
|
||||
@@ -826,6 +826,7 @@
|
||||
char buffer[BIG_BUFFER_SIZE * 3 + 1]; /* make this buffer *much*
|
||||
* bigger than needed */
|
||||
size_t size = BIG_BUFFER_SIZE * 3;
|
||||
+ char jis_buffer[BIG_BUFFER_SIZE + 1];
|
||||
int len,
|
||||
des;
|
||||
int server;
|
||||
@@ -845,16 +846,18 @@
|
||||
yell("mangle_line truncated results! Ick.");
|
||||
}
|
||||
|
||||
+ Euc2Jis(buffer, jis_buffer, IRCD_BUFFER_SIZE -2);
|
||||
+ len = strlen(jis_buffer);
|
||||
server_list[server].sent = 1;
|
||||
if (len > (IRCD_BUFFER_SIZE - 2) || len == -1)
|
||||
buffer[IRCD_BUFFER_SIZE - 2] = 0;
|
||||
if (x_debug & DEBUG_OUTBOUND)
|
||||
yell("[%d] -> [%s]", des, buffer);
|
||||
- strmcat(buffer, "\r\n", IRCD_BUFFER_SIZE);
|
||||
+ strmcat(jis_buffer, "\r\n", IRCD_BUFFER_SIZE);
|
||||
if (do_hook(SEND_TO_SERVER_LIST, "%d %d %s",
|
||||
- server, des, buffer))
|
||||
+ server, des, jis_buffer))
|
||||
{
|
||||
- if (write(des, buffer, strlen(buffer)) == -1 &&
|
||||
+ if (write(des, jis_buffer, strlen(jis_buffer)) == -1 &&
|
||||
(!get_int_var(NO_FAIL_DISCONNECT_VAR)))
|
||||
{
|
||||
server_list[server].save_channels = 1;
|
63
japanese/epic4/files/patch-term.c
Normal file
63
japanese/epic4/files/patch-term.c
Normal file
@ -0,0 +1,63 @@
|
||||
--- epic4-0.9.9/source/term.c.orig Tue Aug 22 02:48:46 2000
|
||||
+++ epic4-0.9.9/source/term.c Mon Dec 4 03:44:17 2000
|
||||
@@ -9,6 +9,7 @@
|
||||
*/
|
||||
|
||||
#define __need_putchar_x__
|
||||
+#define __need_putchars_x__
|
||||
#define __need_term_flush__
|
||||
#include "irc.h"
|
||||
#include "ircaux.h"
|
||||
@@ -17,6 +18,7 @@
|
||||
#include "window.h"
|
||||
#include "screen.h"
|
||||
#include "output.h"
|
||||
+#include "kanji.h"
|
||||
|
||||
/*
|
||||
* If "HAVE_TERMINFO" is #define'd then we will use terminfo type function
|
||||
@@ -618,8 +620,10 @@
|
||||
* we need to worry about here is making sure nothing suspcious, like an
|
||||
* escape, makes its way to the output stream.
|
||||
*/
|
||||
-void term_putchar (unsigned char c)
|
||||
+void term_putchar (unsigned char c1, unsigned char c2)
|
||||
{
|
||||
+ unsigned char c = c1;
|
||||
+
|
||||
if (!term_echo_flag)
|
||||
{
|
||||
putchar_x(' ');
|
||||
@@ -656,12 +660,20 @@
|
||||
putchar_x('?');
|
||||
term_standout_off();
|
||||
}
|
||||
-
|
||||
+
|
||||
+ /* add */
|
||||
+ else if (ISKANJI(c1) && ISKANJI(c2)) {
|
||||
+ unsigned char k[3];
|
||||
+ /* unsigned char tmp[10]; */
|
||||
+
|
||||
+ k[0] = c1; k[1] = c2; k[2] = '\0';
|
||||
+ putchars_x(k);
|
||||
+ }
|
||||
/*
|
||||
* Everything else is passed through.
|
||||
*/
|
||||
- else
|
||||
- putchar_x(c);
|
||||
+ else
|
||||
+ putchar_x(c);
|
||||
}
|
||||
|
||||
|
||||
@@ -1303,7 +1315,7 @@
|
||||
else if (current_term->TI_ich)
|
||||
tputs_x (tparm(current_term->TI_ich, 1));
|
||||
|
||||
- term_putchar (c);
|
||||
+ term_putchar (c, '\0');
|
||||
|
||||
if (current_term->TI_rmir)
|
||||
tputs_x(current_term->TI_rmir);
|
23
japanese/epic4/files/patch-term.h
Normal file
23
japanese/epic4/files/patch-term.h
Normal file
@ -0,0 +1,23 @@
|
||||
--- epic4-0.9.9/include/term.h.orig Thu Feb 10 05:07:39 2000
|
||||
+++ epic4-0.9.9/include/term.h Mon Dec 4 03:44:17 2000
|
||||
@@ -30,6 +30,11 @@
|
||||
static int putchar_x (int c) { return fputc((int) c, current_ftarget ); }
|
||||
#endif
|
||||
|
||||
+#ifdef __need_putchars_x__
|
||||
+__inline__
|
||||
+static int putchars_x (char* c) { return fputs( c, current_ftarget ); }
|
||||
+#endif
|
||||
+
|
||||
#ifdef __need_term_flush__
|
||||
__inline__
|
||||
static void term_flush (void) { fflush( current_ftarget ); }
|
||||
@@ -632,7 +637,7 @@
|
||||
int term_init (void);
|
||||
int term_resize (void);
|
||||
void term_pause (char, char *);
|
||||
- void term_putchar (unsigned char);
|
||||
+ void term_putchar (unsigned char, unsigned char);
|
||||
void term_scroll (int, int, int);
|
||||
void term_insert (unsigned char);
|
||||
void term_delete (int);
|
1
japanese/epic4/pkg-comment
Normal file
1
japanese/epic4/pkg-comment
Normal file
@ -0,0 +1 @@
|
||||
The (E)nhanced (P)rogrammable (I)RC-II (C)lient with Japanese support
|
15
japanese/epic4/pkg-descr
Normal file
15
japanese/epic4/pkg-descr
Normal file
@ -0,0 +1,15 @@
|
||||
EPIC4 is a new direction in ircII development. No longer is EPIC 100%
|
||||
backwards compatable with ircII, but instead those things where
|
||||
compatability is undesirable have been found and fixed. No gratuitous
|
||||
incompatabilities have been added, but lots of new code has been added to
|
||||
make EPIC the best ircII client available.
|
||||
|
||||
EPIC no longer shares any file names with ircII, so they should happily
|
||||
co-exist.
|
||||
|
||||
WWW: http://www.epicsol.org/
|
||||
|
||||
Japanese support patch was originally done by Atsushi Tagami
|
||||
<tagami@pp.iij4u.or.jp> and made available at the following website.
|
||||
|
||||
http://www2.freeweb.ne.jp/~atsu/epic/index.html
|
Loading…
Reference in New Issue
Block a user