--- cli_xcin.c.dist Wed Feb 24 03:30:33 1999 +++ cli_xcin.c Tue Jul 13 01:53:20 1999 @@ -90,7 +90,11 @@ int actual_format/*,i*/; u_long nitems,bytes_after; char *ttt, *cp; +#ifdef STRUCT_MEMBERS_ARE_BYTE_ALIGNED XCIN_RES res; +#else + u_char res[sizeof(XCIN_RES)]; +#endif int ofs; cp=(char *)&res; @@ -105,6 +109,7 @@ XFree(ttt); ofs=(ofs & ~0x3) + nitems; } while ((!nitems && !ofs) || bytes_after>0); +#ifdef STRUCT_MEMBERS_ARE_BYTE_ALIGNED if (my_endian) { big_little((char *)&res.len); big_little((char *)&res.status); @@ -114,6 +119,12 @@ buf[res.len]=0; return res.status; +#else + memcpy(buf, res+10, res[0] + (res[1]<<8) + (res[2]<<16) + (res[3]<<24)); + inmdstate.kb_state = res[8]; + inmdstate._CurInMethod = res[9]; + return res[4] + (res[5] << 8) + (res[6] << 16) + (res[7] << 24); +#endif } #include