Keyboard fix for emacs on risc/6000
Tom Merrick
merrick at magnus.acs.ohio-state.edu
Sat Apr 27 00:39:26 AEST 1991
This section of code will correct the cursor arrow keys, page up, page
down and backspace keys in emacs 18.57 for risc/6000s. It is a listing
of the KeyPress area in x11term.c and basically includes a splitting of
the #ifndef AIX area so it will process the select code for the risc
boxes also. Additionally the page up, page down, and backspace keys
have been added to the select loop.
=====================================================================
KeyPress:
nbytes = XLookupString (&event.xkey,
mapping_buf, 20, &keysym,
0);
#ifndef AIX
/* Someday this will be unnecessary as we will
be able to use XRebindKeysym so XLookupString
will have already given us the string we want. */
if (IsFunctionKey(keysym) ||
IsMiscFunctionKey(keysym)) {
strcpy(mapping_buf,"[");
strcat(mapping_buf,stringFuncVal(keysym));
#ifdef sun
strcat(mapping_buf,"z");
#else
strcat(mapping_buf,"~");
#endif /* sun */
nbytes = strlen(mapping_buf);
}
else {
#endif /* AIX */
switch (keysym) {
case XK_Left:
strcpy(mapping_buf,"\002");
nbytes = 1;
break;
case XK_Right:
strcpy(mapping_buf,"\006");
nbytes = 1;
break;
case XK_Up:
strcpy(mapping_buf,"\020");
nbytes = 1;
break;
case XK_Down:
strcpy(mapping_buf,"\016");
nbytes = 1;
break;
case XK_Prior:
strcpy(mapping_buf,"\326");
nbytes = 1;
break;
case XK_Next:
strcpy(mapping_buf,"\026");
nbytes = 1;
break;
case XK_BackSpace:
strcpy(mapping_buf,"\177");
nbytes = 1;
break;
}
#ifndef AIX
}
#endif /* not AIX */
if (nbytes) {
if ((nbytes == 1) && (event.xkey.state & Mod1Mask))
*mapping_buf |= METABIT;
if ((nbytes == 1) && (event.xkey.state & ControlMask))
*mapping_buf &= 0x9F; /* mask off bits 1 and 2 */
if (numchars-nbytes > 0) {
bcopy (mapping_buf, bufp, nbytes);
bufp += nbytes;
count += nbytes;
numchars -= nbytes;
}
}
break;
====================================================================
The next problem that I am looking into is that the mouse does not
mark the text properly. Has anybody else noticed this or have a
fix for it?
Tom Merrick
Ohio State University
More information about the Comp.unix.aix
mailing list