[KoCo-CVS] [Commit] cjkcodecs/src _euc_jisx0213.c codeccommon.h codecentry.h
Brought to you by:
perky
From: Hye-Shik C. <pe...@us...> - 2003-07-07 08:37:12
|
perky 03/07/07 01:37:10 Modified: src _euc_jisx0213.c codeccommon.h codecentry.h Log: Move pair search routine to common header. Revision Changes Path 1.2 +2 -27 cjkcodecs/src/_euc_jisx0213.c Index: _euc_jisx0213.c =================================================================== RCS file: /cvsroot/koco/cjkcodecs/src/_euc_jisx0213.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- _euc_jisx0213.c 7 Jul 2003 08:17:36 -0000 1.1 +++ _euc_jisx0213.c 7 Jul 2003 08:37:10 -0000 1.2 @@ -26,7 +26,7 @@ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * - * $Id: _euc_jisx0213.c,v 1.1 2003/07/07 08:17:36 perky Exp $ + * $Id: _euc_jisx0213.c,v 1.2 2003/07/07 08:37:10 perky Exp $ */ #include "codeccommon.h" @@ -44,32 +44,6 @@ #define EMPBASE 0x20000 -static DBCHAR -find_pairencmap(ucs2_t body, ucs2_t modifier, - struct pair_encodemap *haystack, int haystacksize) -{ - int pos, min, max; - ucs4_t value = body << 16 | modifier; - - min = 0; - max = haystacksize; - - for (pos = haystacksize >> 1; min != max; pos = (min + max) >> 1) - if (value < haystack[pos].uniseq) { - if (max == pos) break; - else max = pos; - } else if (value > haystack[pos].uniseq) { - if (min == pos) break; - else min = pos; - } else - break; - - if (value == haystack[pos].uniseq) - return haystack[pos].code; - else - return DBCINV; -} - ENCODER(euc_jisx0213) { while (inleft > 0) { @@ -221,6 +195,7 @@ return 0; } +#define USING_BINARY_PAIR_SEARCH #include "codecentry.h" BEGIN_CODEC_REGISTRY(euc_jisx0213) MAPOPEN(ja_JP) 1.18 +3 -1 cjkcodecs/src/codeccommon.h Index: codeccommon.h =================================================================== RCS file: /cvsroot/koco/cjkcodecs/src/codeccommon.h,v retrieving revision 1.17 retrieving revision 1.18 diff -u -r1.17 -r1.18 --- codeccommon.h 7 Jul 2003 08:17:36 -0000 1.17 +++ codeccommon.h 7 Jul 2003 08:37:10 -0000 1.18 @@ -26,7 +26,7 @@ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * - * $Id: codeccommon.h,v 1.17 2003/07/07 08:17:36 perky Exp $ + * $Id: codeccommon.h,v 1.18 2003/07/07 08:37:10 perky Exp $ */ #include "Python.h" @@ -132,6 +132,8 @@ (m)->bottom]) != UNIINV) #define TRYMAP_DEC(charset, assi, c1, c2) \ _TRYMAP_DEC(&charset##decmap[c1], assi, c2) + +extern DBCHAR find_pairencmap(ucs2_t, ucs2_t, struct pair_encodemap *, int); /* * ex: ts=8 sts=4 et 1.3 +29 -1 cjkcodecs/src/codecentry.h Index: codecentry.h =================================================================== RCS file: /cvsroot/koco/cjkcodecs/src/codecentry.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- codecentry.h 6 Jun 2003 05:52:03 -0000 1.2 +++ codecentry.h 7 Jul 2003 08:37:10 -0000 1.3 @@ -26,7 +26,7 @@ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * - * $Id: codecentry.h,v 1.2 2003/06/06 05:52:03 perky Exp $ + * $Id: codecentry.h,v 1.3 2003/07/07 08:37:10 perky Exp $ */ #ifdef HAVE_ENCODER_INIT @@ -117,6 +117,34 @@ Py_XDECREF(mod); \ Py_XDECREF(o); \ } + +#ifdef USING_BINARY_PAIR_SEARCH +static DBCHAR +find_pairencmap(ucs2_t body, ucs2_t modifier, + struct pair_encodemap *haystack, int haystacksize) +{ + int pos, min, max; + ucs4_t value = body << 16 | modifier; + + min = 0; + max = haystacksize; + + for (pos = haystacksize >> 1; min != max; pos = (min + max) >> 1) + if (value < haystack[pos].uniseq) { + if (max == pos) break; + else max = pos; + } else if (value > haystack[pos].uniseq) { + if (min == pos) break; + else min = pos; + } else + break; + + if (value == haystack[pos].uniseq) + return haystack[pos].code; + else + return DBCINV; +} +#endif #ifndef CODEC_WITHOUT_MAPS static int |