openbsd-ports/x11/aterm/patches/patch-src_command_c

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 )