From 81dc1d2b61fcd5030bbc079f079759fb5a7cc95f Mon Sep 17 00:00:00 2001 From: William McBrine Date: Thu, 1 Dec 2005 16:44:46 +0000 Subject: [PATCH] On 64-bit systems, the X11 port was ignoring every other keystroke. This is because XCursesSendKeyToCurses() was mistakenly pushing an int instead of a long. (If there are any 16-bit X11 systems out there, they'd also be affected.) --- x11/pdcx11.c | 2 +- x11/process/x11curses.c | 2 +- x11/thread/x11curses.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/x11/pdcx11.c b/x11/pdcx11.c index ca87c4b8..583beefb 100644 --- a/x11/pdcx11.c +++ b/x11/pdcx11.c @@ -2699,7 +2699,7 @@ MOUSE_STATUS *ms; if (trace_on) PDC_debug("%s:XCursesSendKeyToCurses() - called: sending %d\n",(XCursesProcess)?" X":"CURSES",key); #endif memcpy(buf,(char *)&key,sizeof(unsigned long)); - if (write_socket(key_sock,buf,sizeof(int)) < 0) + if (write_socket(key_sock,buf,sizeof(unsigned long)) < 0) XCursesExitXCursesProcess(1,SIGKILL,"exiting from XCursesSendKeyToCurses"); if ( ms != NULL ) { diff --git a/x11/process/x11curses.c b/x11/process/x11curses.c index e2fc47e3..290c7f11 100644 --- a/x11/process/x11curses.c +++ b/x11/process/x11curses.c @@ -195,7 +195,7 @@ int delaytenths; if (read_socket(key_sock,buf,sizeof(unsigned long)) < 0) XCursesExitCursesProcess(2,"exiting from XCurses_rawchar"); /* what else ?? */ memcpy((char *)&newkey,buf,sizeof(unsigned long)); - pdc_key_modifier = newkey >> 24; /*(sizeof(unsigned long) - sizeof(unsigned char)); */ + pdc_key_modifier = (newkey >> 24) & 0xFF; /*(sizeof(unsigned long) - sizeof(unsigned char)); */ key = (int)(newkey & 0x00FFFFFF); } #if 0 diff --git a/x11/thread/x11curses.c b/x11/thread/x11curses.c index 3058f4a7..88d103d1 100644 --- a/x11/thread/x11curses.c +++ b/x11/thread/x11curses.c @@ -212,7 +212,7 @@ int delaytenths; if (read_socket(key_sock,buf,sizeof(unsigned long)) < 0) XCursesExitCursesProcess(2,"exiting from XCurses_rawchar"); /* what else ?? */ memcpy((char *)&newkey,buf,sizeof(unsigned long)); - pdc_key_modifier = newkey >> 24; /*(sizeof(unsigned long) - sizeof(unsigned char)); */ + pdc_key_modifier = (newkey >> 24) & 0xFF; /*(sizeof(unsigned long) - sizeof(unsigned char)); */ key = (int)(newkey & 0x00FFFFFF); } #if 0