55 lines
1.4 KiB
Plaintext
55 lines
1.4 KiB
Plaintext
--- src/command.c.orig Thu Sep 6 10:38:07 2001
|
|
+++ src/command.c Wed Sep 15 20:38:55 2004
|
|
@@ -477,6 +477,16 @@ get_pty(void)
|
|
ptydev = ttydev = _getpty(&fd, O_RDWR | O_NDELAY, 0622, 0);
|
|
if (ptydev == NULL)
|
|
goto Failed;
|
|
+#elif defined (__OpenBSD__)
|
|
+ int sfd;
|
|
+ static char tty_name[16];
|
|
+
|
|
+ ptydev = ttydev = tty_name;
|
|
+
|
|
+ if (openpty(&fd, &sfd, tty_name, NULL, NULL) < 0)
|
|
+ goto Failed;
|
|
+ close(sfd);
|
|
+
|
|
#elif defined (__svr4__) || defined(__CYGWIN32__) || defined(__lnx21__)
|
|
{
|
|
extern char *ptsname();
|
|
@@ -2148,11 +2158,23 @@ process_x_event(XEvent * ev)
|
|
static int bypass_keystate = 0;
|
|
int reportmode;
|
|
static int csrO = 0; /* Hops - csr offset in thumb/slider */
|
|
+#ifdef ZH
|
|
+ int k_status;
|
|
+ char kbuf[256];
|
|
+#endif
|
|
|
|
/* to give proper Scroll behaviour */
|
|
switch (ev->type) {
|
|
case KeyPress:
|
|
- lookup_key(ev);
|
|
+#ifdef ZH
|
|
+ k_status = send_key(Xdisplay, TermWin.parent, &ev->xkey, kbuf);
|
|
+ if (!k_status)
|
|
+ lookup_key(ev);
|
|
+ else if (kbuf[0])
|
|
+ tt_write(kbuf, strlen(kbuf));
|
|
+#else
|
|
+ lookup_key(ev);
|
|
+#endif
|
|
break;
|
|
|
|
case ClientMessage:
|
|
@@ -2217,6 +2239,9 @@ process_x_event(XEvent * ev)
|
|
|
|
case FocusIn:
|
|
if (!TermWin.focus) {
|
|
+#ifdef ZH
|
|
+ send_FocusIn(Xdisplay, TermWin.parent);
|
|
+#endif
|
|
TermWin.focus = 1;
|
|
#ifdef OFF_FOCUS_FADING
|
|
if( rs_fade != NULL )
|