NOT FOUNDのときに、'\0'のあとに'\n'を入れて返すが、 これをうまく処理できないクライアントがあるかもしれないので、 '\0'が入らないように変更。 --- skkipserv.c,orig Thu Aug 3 15:23:16 1995 +++ skkipserv.c Sat Dec 19 09:44:25 1998 @@ -192,8 +192,10 @@ return 1; break; case CLIENT_REQUEST: - if ((entries = strchr(buf, ' ')) != NULL) + if ((entries = strchr(buf, ' ')) != NULL) { *entries = '\0'; + len = entries - buf; + } entries = dic_search_term(dicid, buf+1); if (entries != NULL) { rv = SERVER_FOUND; @@ -205,8 +207,8 @@ rv = SERVER_NOT_FOUND; if (write(sd, &rv, 1) < 0) goto REQUEST_ERR; - buf[len-1] = '\n'; - if (write(sd, buf+1, len-1) < 0) + buf[len] = '\n'; /* replace '\0' by '\n' */ + if (write(sd, buf+1, len) < 0) /* len (not len-1): write '\n' */ goto REQUEST_ERR; } break;