summaryrefslogtreecommitdiff
path: root/strings/ctype-euc_kr.c
diff options
context:
space:
mode:
Diffstat (limited to 'strings/ctype-euc_kr.c')
-rw-r--r--strings/ctype-euc_kr.c198
1 files changed, 198 insertions, 0 deletions
diff --git a/strings/ctype-euc_kr.c b/strings/ctype-euc_kr.c
new file mode 100644
index 00000000000..13d4513ce2d
--- /dev/null
+++ b/strings/ctype-euc_kr.c
@@ -0,0 +1,198 @@
+/* Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this library; if not, write to the Free
+ Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ MA 02111-1307, USA */
+
+/*
+ * This file is for Korean EUC charset, and created by powerm90@tinc.co.kr.
+ * and updated by mrpark@tinc.co.kr.
+ */
+
+/*
+ * This comment is parsed by configure to create ctype.c,
+ * so don't change it unless you know what you are doing.
+ *
+ * .configure. mbmaxlen_euc_kr=2
+ */
+
+#include <global.h>
+#include "m_string.h"
+
+uchar NEAR ctype_euc_kr[257] =
+{
+ 0, /* For standard library */
+ 0040, 0040, 0040, 0040, 0040, 0040, 0040, 0040, /* NUL ^A - ^G */
+ 0040, 0050, 0050, 0050, 0050, 0050, 0040, 0040, /* ^H - ^O */
+ 0040, 0040, 0040, 0040, 0040, 0040, 0040, 0040, /* ^P - ^W */
+ 0040, 0040, 0040, 0040, 0040, 0040, 0040, 0040, /* ^X - ^Z ^[ ^\ ^] ^^ ^_ */
+ 0110, 0020, 0020, 0020, 0020, 0020, 0020, 0020, /* SPC ! " # $ % ^ ' */
+ 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020, /* ( ) * + , - . / */
+ 0204, 0204, 0204, 0204, 0204, 0204, 0204, 0204, /* 0 1 2 3 4 5 6 7 */
+ 0204, 0204, 0020, 0020, 0020, 0020, 0020, 0020, /* 8 9 : ; < = > ? */
+ 0020, 0201, 0201, 0201, 0201, 0201, 0201, 0001, /* @ A B C D E F G */
+ 0001, 0001, 0001, 0001, 0001, 0001, 0001, 0001, /* H I J K L M N O */
+ 0001, 0001, 0001, 0001, 0001, 0001, 0001, 0001, /* P Q R S T U V W */
+ 0001, 0001, 0001, 0020, 0020, 0020, 0020, 0020, /* X Y Z [ \ ] ^ _ */
+ 0020, 0202, 0202, 0202, 0202, 0202, 0202, 0002, /* ` a b c d e f g */
+ 0002, 0002, 0002, 0002, 0002, 0002, 0002, 0002, /* h i j k l m n o */
+ 0002, 0002, 0002, 0002, 0002, 0002, 0002, 0002, /* p q r s t u v w */
+ 0002, 0002, 0002, 0020, 0020, 0020, 0020, 0040, /* x y z { | } + DEL */
+ 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020,
+ 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020,
+ 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020,
+ 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020,
+ 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020,
+ 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020,
+ 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020,
+ 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020,
+ 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020,
+ 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020,
+ 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020,
+ 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020,
+ 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020,
+ 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020,
+ 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020,
+ 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0000,
+};
+
+uchar NEAR to_lower_euc_kr[]=
+{
+ '\000','\001','\002','\003','\004','\005','\006','\007',
+ '\010','\011','\012','\013','\014','\015','\016','\017',
+ '\020','\021','\022','\023','\024','\025','\026','\027',
+ '\030','\031','\032','\033','\034','\035','\036','\037',
+ ' ', '!', '"', '#', '$', '%', '&', '\'',
+ '(', ')', '*', '+', ',', '-', '.', '/',
+ '0', '1', '2', '3', '4', '5', '6', '7',
+ '8', '9', ':', ';', '<', '=', '>', '?',
+ '@', 'a', 'b', 'c', 'd', 'e', 'f', 'g',
+ 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o',
+ 'p', 'q', 'r', 's', 't', 'u', 'v', 'w',
+ 'x', 'y', 'z', '[', '\\', ']', '^', '_',
+ '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g',
+ 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o',
+ 'p', 'q', 'r', 's', 't', 'u', 'v', 'w',
+ 'x', 'y', 'z', '{', '|', '}', '~', '\177',
+ '\200','\201','\202','\203','\204','\205','\206','\207',
+ '\210','\211','\212','\213','\214','\215','\216','\217',
+ '\220','\221','\222','\223','\224','\225','\226','\227',
+ '\230','\231','\232','\233','\234','\235','\236','\237',
+ '\240','\241','\242','\243','\244','\245','\246','\247',
+ '\250','\251','\252','\253','\254','\255','\256','\257',
+ '\260','\261','\262','\263','\264','\265','\266','\267',
+ '\270','\271','\272','\273','\274','\275','\276','\277',
+ '\300','\301','\302','\303','\304','\305','\306','\307',
+ '\310','\311','\312','\313','\314','\315','\316','\317',
+ '\320','\321','\322','\323','\324','\325','\326','\327',
+ '\330','\331','\332','\333','\334','\335','\336','\337',
+ '\340','\341','\342','\343','\344','\345','\346','\347',
+ '\350','\351','\352','\353','\354','\355','\356','\357',
+ '\360','\361','\362','\363','\364','\365','\366','\367',
+ '\370','\371','\372','\373','\374','\375','\376','\377',
+};
+
+uchar NEAR to_upper_euc_kr[]=
+{
+ '\000','\001','\002','\003','\004','\005','\006','\007',
+ '\010','\011','\012','\013','\014','\015','\016','\017',
+ '\020','\021','\022','\023','\024','\025','\026','\027',
+ '\030','\031','\032','\033','\034','\035','\036','\037',
+ ' ', '!', '"', '#', '$', '%', '&', '\'',
+ '(', ')', '*', '+', ',', '-', '.', '/',
+ '0', '1', '2', '3', '4', '5', '6', '7',
+ '8', '9', ':', ';', '<', '=', '>', '?',
+ '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G',
+ 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
+ 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',
+ 'X', 'Y', 'Z', '[', '\\', ']', '^', '_',
+ '`', 'A', 'B', 'C', 'D', 'E', 'F', 'G',
+ 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
+ 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',
+ 'X', 'Y', 'Z', '{', '|', '}', '~', '\177',
+ '\200','\201','\202','\203','\204','\205','\206','\207',
+ '\210','\211','\212','\213','\214','\215','\216','\217',
+ '\220','\221','\222','\223','\224','\225','\226','\227',
+ '\230','\231','\232','\233','\234','\235','\236','\237',
+ '\240','\241','\242','\243','\244','\245','\246','\247',
+ '\250','\251','\252','\253','\254','\255','\256','\257',
+ '\260','\261','\262','\263','\264','\265','\266','\267',
+ '\270','\271','\272','\273','\274','\275','\276','\277',
+ '\300','\301','\302','\303','\304','\305','\306','\307',
+ '\310','\311','\312','\313','\314','\315','\316','\317',
+ '\320','\321','\322','\323','\324','\325','\326','\327',
+ '\330','\331','\332','\333','\334','\335','\336','\337',
+ '\340','\341','\342','\343','\344','\345','\346','\347',
+ '\350','\351','\352','\353','\354','\355','\356','\357',
+ '\360','\361','\362','\363','\364','\365','\366','\367',
+ '\370','\371','\372','\373','\374','\375','\376','\377',
+};
+
+uchar NEAR sort_order_euc_kr[]=
+{
+ '\000','\001','\002','\003','\004','\005','\006','\007',
+ '\010','\011','\012','\013','\014','\015','\016','\017',
+ '\020','\021','\022','\023','\024','\025','\026','\027',
+ '\030','\031','\032','\033','\034','\035','\036','\037',
+ ' ', '!', '"', '#', '$', '%', '&', '\'',
+ '(', ')', '*', '+', ',', '-', '.', '/',
+ '0', '1', '2', '3', '4', '5', '6', '7',
+ '8', '9', ':', ';', '<', '=', '>', '?',
+ '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G',
+ 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
+ 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',
+ 'X', 'Y', 'Z', '[', '\\', ']', '^', '_',
+ '`', 'A', 'B', 'C', 'D', 'E', 'F', 'G',
+ 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
+ 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',
+ 'X', 'Y', 'Z', '{', '|', '}', '~', '\177',
+ '\200','\201','\202','\203','\204','\205','\206','\207',
+ '\210','\211','\212','\213','\214','\215','\216','\217',
+ '\220','\221','\222','\223','\224','\225','\226','\227',
+ '\230','\231','\232','\233','\234','\235','\236','\237',
+ '\240','\241','\242','\243','\244','\245','\246','\247',
+ '\250','\251','\252','\253','\254','\255','\256','\257',
+ '\260','\261','\262','\263','\264','\265','\266','\267',
+ '\270','\271','\272','\273','\274','\275','\276','\277',
+ '\300','\301','\302','\303','\304','\305','\306','\307',
+ '\310','\311','\312','\313','\314','\315','\316','\317',
+ '\320','\321','\322','\323','\324','\325','\326','\327',
+ '\330','\331','\332','\333','\334','\335','\336','\337',
+ '\340','\341','\342','\343','\344','\345','\346','\347',
+ '\350','\351','\352','\353','\354','\355','\356','\357',
+ '\360','\361','\362','\363','\364','\365','\366','\367',
+ '\370','\371','\372','\373','\374','\375','\376','\377',
+};
+
+/* Support for Korean(EUC_KR) characters, by powerm90@tinc.co.kr and mrpark@tinc.co.kr */
+
+#define iseuc_kr(c) ((0xa1<=(uchar)(c) && (uchar)(c)<=0xfe))
+
+
+int ismbchar_euc_kr(const char* p, const char *e)
+{
+ return ((*(uchar*)(p)<0x80)? 0:\
+ iseuc_kr(*(p)) && (e)-(p)>1 && iseuc_kr(*((p)+1))? 2:\
+ 0);
+}
+
+my_bool ismbhead_euc_kr(uint c)
+{
+ return (iseuc_kr(c));
+}
+
+int mbcharlen_euc_kr(uint c)
+{
+ return (iseuc_kr(c) ? 2 : 0);
+}