--- cli_xcin.c.dist Fri Dec 25 09:59:36 1998 +++ cli_xcin.c Sat Jul 24 21:59:48 1999 @@ -90,7 +90,12 @@ 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)]; + int res_len; +#endif int ofs; cp=(char *)&res; @@ -105,6 +110,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 +120,14 @@ buf[res.len]=0; return res.status; +#else + res_len = res[0] + (res[1]<<8) + (res[2]<<16) + (res[3]<<24); + memcpy(buf, res+10, res_len); + buf[res_len] = 0; /* null-terminate the string */ + inmdstate.kb_state = res[8]; + inmdstate._CurInMethod = res[9]; + return res[4] + (res[5] << 8) + (res[6] << 16) + (res[7] << 24); +#endif } #include