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
|