head 1.3; access; symbols pkgsrc-2013Q2:1.3.0.54 pkgsrc-2013Q2-base:1.3 pkgsrc-2012Q4:1.3.0.52 pkgsrc-2012Q4-base:1.3 pkgsrc-2011Q4:1.3.0.50 pkgsrc-2011Q4-base:1.3 pkgsrc-2011Q2:1.3.0.48 pkgsrc-2011Q2-base:1.3 pkgsrc-2009Q4:1.3.0.46 pkgsrc-2009Q4-base:1.3 pkgsrc-2008Q4:1.3.0.44 pkgsrc-2008Q4-base:1.3 pkgsrc-2008Q3:1.3.0.42 pkgsrc-2008Q3-base:1.3 cube-native-xorg:1.3.0.40 cube-native-xorg-base:1.3 pkgsrc-2008Q2:1.3.0.38 pkgsrc-2008Q2-base:1.3 pkgsrc-2008Q1:1.3.0.36 pkgsrc-2008Q1-base:1.3 pkgsrc-2007Q4:1.3.0.34 pkgsrc-2007Q4-base:1.3 pkgsrc-2007Q3:1.3.0.32 pkgsrc-2007Q3-base:1.3 pkgsrc-2007Q2:1.3.0.30 pkgsrc-2007Q2-base:1.3 pkgsrc-2007Q1:1.3.0.28 pkgsrc-2007Q1-base:1.3 pkgsrc-2006Q4:1.3.0.26 pkgsrc-2006Q4-base:1.3 pkgsrc-2006Q3:1.3.0.24 pkgsrc-2006Q3-base:1.3 pkgsrc-2006Q2:1.3.0.22 pkgsrc-2006Q2-base:1.3 pkgsrc-2006Q1:1.3.0.20 pkgsrc-2006Q1-base:1.3 pkgsrc-2005Q4:1.3.0.18 pkgsrc-2005Q4-base:1.3 pkgsrc-2005Q3:1.3.0.16 pkgsrc-2005Q3-base:1.3 pkgsrc-2005Q2:1.3.0.14 pkgsrc-2005Q2-base:1.3 pkgsrc-2005Q1:1.3.0.12 pkgsrc-2005Q1-base:1.3 pkgsrc-2004Q4:1.3.0.10 pkgsrc-2004Q4-base:1.3 pkgsrc-2004Q3:1.3.0.8 pkgsrc-2004Q3-base:1.3 pkgsrc-2004Q2:1.3.0.6 pkgsrc-2004Q2-base:1.3 pkgsrc-2004Q1:1.3.0.4 pkgsrc-2004Q1-base:1.3 pkgsrc-2003Q4:1.3.0.2 pkgsrc-2003Q4-base:1.3 buildlink2:1.2.0.2 buildlink2-base:1.3 netbsd-1-5-PATCH003:1.2 netbsd-1-5-PATCH001:1.2 netbsd-1-5-RELEASE:1.1.1.1 netbsd-1-4-PATCH003:1.1.1.1 netbsd-1-4-PATCH002:1.1.1.1 pkgsrc-base:1.1.1.1 TNF:1.1.1; locks; strict; comment @# @; 1.3 date 2002.05.31.15.37.05; author seb; state dead; branches; next 1.2; 1.2 date 2000.11.09.03.52.51; author itohy; state Exp; branches 1.2.2.1; next 1.1; 1.1 date 99.12.24.03.19.23; author itohy; state Exp; branches 1.1.1.1; next ; 1.2.2.1 date 2002.06.23.18.49.51; author jlam; state dead; branches; next ; 1.1.1.1 date 99.12.24.03.19.23; author itohy; state Exp; branches; next ; desc @@ 1.3 log @Remove all package and category files from the japanese category. This effectively retire the japanese category. @ text @$NetBSD: patch-bsearch,v 1.2 2000/11/09 03:52:51 itohy Exp $ Binary search patch. Originally from skk-users mailing list (Masahiro Doteguchi, Mailinglist-Id: 1779). --- skkserv/skkserv.c.patch1 Mon Nov 6 00:12:57 2000 +++ skkserv/skkserv.c Mon Nov 6 00:15:00 2000 @@@@ -109,7 +109,7 @@@@ * Global Variables */ -char pgmver[] = "3.9.4nb1 "; /* version number */ +char pgmver[] = "3.9.4nb1 (binary search) "; /* version number */ char *pgmnm; /* program name */ char *jname; /* name of shared dictionary */ @@@@ -622,7 +622,7 @@@@ } /* - * reply to client: linear search + * reply to client: binary search */ search(commsock) @@@@ -635,6 +635,7 @@@@ int n; /* number of characters from client */ int sttpnt; /* start point of searching */ int endpnt; /* end point of searching */ + int curpnt; /* current point of searching */ int errcod = 0; /* error flag */ int sstyle; /* search style */ @@@@ -743,18 +744,36 @@@@ endpnt = jtab1[KANA_END - code + 1]; } } - fseek(jisho, sttpnt, 0); if (debug) - fprintf(stderr, "from %d to %d\n", sttpnt, endpnt); + fprintf(errout, "from %d to %d\n", sttpnt, endpnt); - while ((c = fgetc(jisho)) != EOF) { + for (;;) { + if ((sstyle & 0x4) == 0) { /* binary search? */ + curpnt = (sttpnt + endpnt) / 2; + fseek(jisho, curpnt, 0); + while ((c = fgetc(jisho)) != EOF) { + curpnt++; + if (c == EOL) break; + } + if (c == EOF) break; + if (curpnt >= endpnt) { + fseek(jisho, sttpnt, 0); + sstyle |= 0x4; /* linear search */ + } + } + + if (debug) {fprintf(errout, "%d:%d\t%d\t%d\t", sstyle, sttpnt, curpnt, endpnt);} + c = fgetc(jisho); pbuf = &combuf[1]; /* ' ' is end-symbol */ while (c == *pbuf && c != ' ' && c != EOL) { - if (debug) {fprintf(errout, "1:%d:%d:%d:%d:\n", c, *pbuf, ' ', EOL);} +/* if (debug) {fprintf(errout, "1:%d:%d:%d:%d:", c, *pbuf, ' ', EOL);}*/ + if (debug) {fprintf(errout, "%c", c);} c = fgetc(jisho); pbuf++; - } - if (debug) {fprintf(errout, "1:%d:%d:%d:%d:\n", c, *pbuf, ' ', EOL);} + } +/* if (debug) {fprintf(errout, "1:%d:%d:%d:%d:", c, *pbuf, ' ', EOL);}*/ + if (debug) {fprintf(errout, "%c", c);} if (c == ' ' && (*pbuf == ' ' || *pbuf == '\n')) { /* found */ + if (debug) {fprintf(errout, "found\n");} if ((errcod = write(commsock, SERVER_FOUND, 1)) >= 0) while ((c = fgetc(jisho)) != EOF) { *pbuf = c; @@@@ -770,18 +789,35 @@@@ } return(0); } - if (comp(*pbuf, c, sstyle)) { - if (debug) { - fprintf(stderr, "comp break %d \n", ftell(jisho)); - } - break; + if (debug) { + int ch; + + if (c != ' ') + do { + ch = fgetc(jisho); + fprintf(errout, "%c", ch); + } while (ch != ' ' && ch != EOL); + fprintf(errout, "unmatched\n"); } - /* fix 1992/3/6 under suggestion */ - /* of guchi@@pfu.fujitsu.co.jp */ - while ((c = fgetc(jisho)) != EOF) { - if (c == EOL) break; + if (sstyle & 0x4) { + if (comp(*pbuf, c, sstyle&~0x4)) { + if (debug) { + fprintf(stderr, "comp break %d \n", ftell(jisho)); + } + break; + } + /* fix 1992/3/6 under suggestion */ + /* of guchi@@pfu.fujitsu.co.jp */ + while ((c = fgetc(jisho)) != EOF) { + if (c == EOL) break; + } + if (ftell(jisho) >= endpnt) break; + } else { + if (comp(*pbuf, c, sstyle&~0x4)) + endpnt = curpnt; + else + sttpnt = curpnt; } - if (ftell(jisho) >= endpnt) break; } if ((errcod = write(commsock, SERVER_NOT_FOUND, 1)) >= 0) { @ 1.2 log @skkserv: IPv6 support. More reliable dictionary re-reading. Avoid copying fd_set. getuid() -> geteuid() Update version to 3.9.4nb1. skkdic-expr: Safer temporary file handling against symlink attack (O_EXCL). @ text @d1 1 a1 1 $NetBSD: patch-bsearch,v 1.1.1.1 1999/12/24 03:19:23 itohy Exp $ @ 1.2.2.1 log @Merge from pkgsrc-current to buildlink2 branch. @ text @d1 1 a1 1 $NetBSD: patch-bsearch,v 1.2 2000/11/09 03:52:51 itohy Exp $ @ 1.1 log @Initial revision @ text @d1 1 a1 1 $NetBSD$ d7 3 a9 3 --- skkserv/skkserv.c.patch1 Tue Dec 21 15:50:59 1999 +++ skkserv/skkserv.c Tue Dec 21 16:01:06 1999 @@@@ -107,7 +107,7 @@@@ d13 2 a14 2 -char pgmver[] = "3.9.4 "; /* version number */ +char pgmver[] = "3.9.4 (binary search) "; /* version number */ d18 1 a18 1 @@@@ -538,7 +538,7 @@@@ d27 1 a27 1 @@@@ -551,6 +551,7 @@@@ d35 1 a35 1 @@@@ -659,18 +660,36 @@@@ d78 1 a78 1 @@@@ -686,18 +705,35 @@@@ @ 1.1.1.1 log @Dictionary server for Simple Kana-Kanji conversion programs. This pkg is composed of: - skkserv-3.9.4 (from SKK-9.6), - SKK dictionary, and - dictionary manipulation tools. @ text @@