head 1.3; access; symbols pkgsrc-2013Q2:1.3.0.2 pkgsrc-2013Q2-base:1.3 pkgsrc-2012Q4:1.2.0.20 pkgsrc-2012Q4-base:1.2 pkgsrc-2012Q3:1.2.0.18 pkgsrc-2012Q3-base:1.2 pkgsrc-2012Q2:1.2.0.16 pkgsrc-2012Q2-base:1.2 pkgsrc-2012Q1:1.2.0.14 pkgsrc-2012Q1-base:1.2 pkgsrc-2011Q4:1.2.0.12 pkgsrc-2011Q4-base:1.2 pkgsrc-2011Q3:1.2.0.10 pkgsrc-2011Q3-base:1.2 pkgsrc-2011Q2:1.2.0.8 pkgsrc-2011Q2-base:1.2 pkgsrc-2011Q1:1.2.0.6 pkgsrc-2011Q1-base:1.2 pkgsrc-2010Q4:1.2.0.4 pkgsrc-2010Q4-base:1.2 pkgsrc-2010Q3:1.2.0.2 pkgsrc-2010Q3-base:1.2 pkgsrc-2010Q2:1.1.1.1.0.58 pkgsrc-2010Q2-base:1.1 pkgsrc-2010Q1:1.1.1.1.0.60 pkgsrc-2010Q1-base:1.1 pkgsrc-2009Q4:1.1.1.1.0.4 pkgsrc-2009Q4-base:1.1 pkgsrc-2009Q3:1.1.1.1.0.62 pkgsrc-2009Q3-base:1.1 pkgsrc-2009Q2:1.1.1.1.0.64 pkgsrc-2009Q2-base:1.1 pkgsrc-2009Q1:1.1.1.1.0.66 pkgsrc-2009Q1-base:1.1 pkgsrc-2008Q4:1.1.1.1.0.6 pkgsrc-2008Q4-base:1.1 pkgsrc-2008Q3:1.1.1.1.0.8 pkgsrc-2008Q3-base:1.1 cube-native-xorg:1.1.1.1.0.10 cube-native-xorg-base:1.1 pkgsrc-2008Q2:1.1.1.1.0.12 pkgsrc-2008Q2-base:1.1 cwrapper:1.1.1.1.0.2 pkgsrc-2008Q1:1.1.1.1.0.14 pkgsrc-2008Q1-base:1.1 pkgsrc-2007Q4:1.1.1.1.0.16 pkgsrc-2007Q4-base:1.1 pkgsrc-2007Q3:1.1.1.1.0.18 pkgsrc-2007Q3-base:1.1 pkgsrc-2007Q2:1.1.1.1.0.20 pkgsrc-2007Q2-base:1.1 pkgsrc-2007Q1:1.1.1.1.0.22 pkgsrc-2007Q1-base:1.1 pkgsrc-2006Q4:1.1.1.1.0.24 pkgsrc-2006Q4-base:1.1 pkgsrc-2006Q3:1.1.1.1.0.26 pkgsrc-2006Q3-base:1.1 pkgsrc-2006Q2:1.1.1.1.0.28 pkgsrc-2006Q2-base:1.1 pkgsrc-2006Q1:1.1.1.1.0.30 pkgsrc-2006Q1-base:1.1 pkgsrc-2005Q4:1.1.1.1.0.32 pkgsrc-2005Q4-base:1.1 pkgsrc-2005Q3:1.1.1.1.0.34 pkgsrc-2005Q3-base:1.1 pkgsrc-2005Q2:1.1.1.1.0.36 pkgsrc-2005Q2-base:1.1 pkgsrc-2005Q1:1.1.1.1.0.38 pkgsrc-2005Q1-base:1.1 pkgsrc-2004Q4:1.1.1.1.0.40 pkgsrc-2004Q4-base:1.1 pkgsrc-2004Q3:1.1.1.1.0.42 pkgsrc-2004Q3-base:1.1 pkgsrc-2004Q2:1.1.1.1.0.44 pkgsrc-2004Q2-base:1.1 pkgsrc-2004Q1:1.1.1.1.0.46 pkgsrc-2004Q1-base:1.1 pkgsrc-2003Q4:1.1.1.1.0.48 pkgsrc-2003Q4-base:1.1 netbsd-1-6-1:1.1.1.1.0.52 netbsd-1-6-1-base:1.1 netbsd-1-6:1.1.1.1.0.54 netbsd-1-6-RELEASE-base:1.1 pkgviews:1.1.1.1.0.56 pkgviews-base:1.1 buildlink2-base:1.1.1.1 buildlink2:1.1.1.1.0.50 pkgsrc-base:1.1.1.1 TNF:1.1.1; locks; strict; comment @# @; 1.3 date 2013.03.10.18.53.32; author hiramatsu; state dead; branches; next 1.2; 1.2 date 2010.07.17.08.57.18; author obache; state Exp; branches; next 1.1; 1.1 date 2002.05.31.12.59.59; author seb; state Exp; branches 1.1.1.1; next ; 1.1.1.1 date 2002.05.31.12.59.59; author seb; state Exp; branches 1.1.1.1.50.1 1.1.1.1.58.1; next ; 1.1.1.1.50.1 date 2002.05.31.12.59.59; author jlam; state dead; branches; next 1.1.1.1.50.2; 1.1.1.1.50.2 date 2002.06.23.18.48.27; author jlam; state Exp; branches; next ; 1.1.1.1.58.1 date 2010.07.04.07.18.44; author agc; state Exp; branches; next ; desc @@ 1.3 log @- Ignore dictionary entries which cause skkserv not to start. Diff is taken from FreeBSD ports. - Combine patch-af and patch-bsearch into single file, because those are diff files for the same file. - Add LICENSE. @ text @$NetBSD: patch-bsearch,v 1.2 2010/07/17 08:57:18 obache Exp $ --- skkserv/skkserv.c.orig 2010-07-16 09:36:31.000000000 +0000 +++ skkserv/skkserv.c @@@@ -622,7 +622,7 @@@@ fd_set *rfds; } /* - * reply to client: linear search + * reply to client: binary search */ search(commsock) @@@@ -635,6 +635,7 @@@@ int commsock; 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 @@@@ int commsock; 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 @@@@ int commsock; } 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 @Now, newer SKK-JISYO is installed as skk-jisyo and jisyo-tools are skktools. So let to only install skkserv by this package. Based on Ryo ONODERA's pkgsrc-wip/skkserv. Bump PKGREVISION. @ text @d1 1 a1 1 $NetBSD$ @ 1.1 log @Initial revision @ text @d3 3 a5 16 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 @@@@ d14 1 a14 1 @@@@ -635,6 +635,7 @@@@ d22 1 a22 1 @@@@ -743,18 +744,36 @@@@ d65 1 a65 1 @@@@ -770,18 +789,35 @@@@ @ 1.1.1.1 log @Reimport of package skkserv from japanese/skkserv into inputmethod/skkserv. This is part of the japanese category retirement. CATEGORIES adjusted. @ text @@ 1.1.1.1.50.1 log @file patch-bsearch was added on branch buildlink2 on 2002-06-23 18:48:27 +0000 @ text @d1 123 @ 1.1.1.1.50.2 log @Merge from pkgsrc-current to buildlink2 branch. @ text @a0 123 $NetBSD: patch-bsearch,v 1.1.1.1.50.1 2002/06/23 18:48:27 jlam 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.1.1.1.58.1 log @Pullup previous changes on HEAD to pkgsrc-2010Q2 branch to fix branching error, and to sync with reality. @ text @d1 1 a1 1 $NetBSD: patch-bsearch,v 1.1.1.1 2002/05/31 12:59:59 seb Exp $ @