summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <bar@bar.mysql.r18.ru>2003-05-26 20:22:23 +0500
committerunknown <bar@bar.mysql.r18.ru>2003-05-26 20:22:23 +0500
commit720584b0c6eb435fa87b5da42578f214d83735d1 (patch)
tree44e581c5024f3bc227c59de0debb99b118fac076
parent12604089b6acd8242a506d021449bdc515b72e14 (diff)
downloadmariadb-git-720584b0c6eb435fa87b5da42578f214d83735d1.tar.gz
--with-charset was not up to date
ctype_ucs2 and ctype_ujis were skipped in mistake
-rw-r--r--acconfig.h29
-rw-r--r--configure.in164
-rw-r--r--mysql-test/r/ctype_ujis.result2
-rw-r--r--mysql-test/r/have_ucs2.require2
-rw-r--r--mysql-test/r/have_ujis.require2
-rw-r--r--mysys/charset.c12
-rw-r--r--strings/ctype-czech.c2
-rw-r--r--strings/ctype-euc_kr.c2
-rw-r--r--strings/ctype-win1250ch.c5
9 files changed, 108 insertions, 112 deletions
diff --git a/acconfig.h b/acconfig.h
index 5f47365709c..6bd017bbbce 100644
--- a/acconfig.h
+++ b/acconfig.h
@@ -68,40 +68,37 @@
/* Define charsets you want */
#undef HAVE_CHARSET_armscii8
+#undef HAVE_CHARSET_ascii
#undef HAVE_CHARSET_big5
+#undef HAVE_CHARSET_cp1250
#undef HAVE_CHARSET_cp1251
+#undef HAVE_CHARSET_cp1256
#undef HAVE_CHARSET_cp1257
-#undef HAVE_CHARSET_croat
-#undef HAVE_CHARSET_czech
-#undef HAVE_CHARSET_danish
+#undef HAVE_CHARSET_cp850
+#undef HAVE_CHARSET_cp852
+#undef HAVE_CHARSET_cp866
#undef HAVE_CHARSET_dec8
-#undef HAVE_CHARSET_dos
-#undef HAVE_CHARSET_estonia
-#undef HAVE_CHARSET_euc_kr
+#undef HAVE_CHARSET_euckr
#undef HAVE_CHARSET_gb2312
#undef HAVE_CHARSET_gbk
-#undef HAVE_CHARSET_german1
#undef HAVE_CHARSET_greek
#undef HAVE_CHARSET_hebrew
#undef HAVE_CHARSET_hp8
-#undef HAVE_CHARSET_hungarian
-#undef HAVE_CHARSET_koi8_ru
-#undef HAVE_CHARSET_koi8_ukr
+#undef HAVE_CHARSET_keybcs2
+#undef HAVE_CHARSET_koi8r
+#undef HAVE_CHARSET_koi8u
#undef HAVE_CHARSET_latin1
-#undef HAVE_CHARSET_latin1_de
#undef HAVE_CHARSET_latin2
#undef HAVE_CHARSET_latin5
+#undef HAVE_CHARSET_latin7
+#undef HAVE_CHARSET_macce
+#undef HAVE_CHARSET_macroman
#undef HAVE_CHARSET_sjis
#undef HAVE_CHARSET_swe7
#undef HAVE_CHARSET_tis620
#undef HAVE_CHARSET_ucs2
#undef HAVE_CHARSET_ujis
-#undef HAVE_CHARSET_usa7
#undef HAVE_CHARSET_utf8
-#undef HAVE_CHARSET_win1250
-#undef HAVE_CHARSET_win1250ch
-#undef HAVE_CHARSET_win1251ukr
-#undef HAVE_CHARSET_win1251
/* ZLIB and compress: */
#undef HAVE_COMPRESS
diff --git a/configure.in b/configure.in
index c0ce5221832..63286db74c5 100644
--- a/configure.in
+++ b/configure.in
@@ -2226,28 +2226,35 @@ AC_SUBST(readline_h_ln_cmd)
dnl In order to add new charset, you must add charset name to
-dnl this CHARSETS_AVAILABLE list and sql/share/charsets/Index.
+dnl this CHARSETS_AVAILABLE list and sql/share/charsets/Index.xml.
dnl If the character set uses strcoll or other special handling,
dnl you must also create strings/ctype-$charset_name.c
AC_DIVERT_PUSH(0)
-CHARSETS_AVAILABLE="armscii8 big5 cp1251 cp1257
- croat czech danish dec8 dos estonia euc_kr gb2312 gbk
- german1 greek hebrew hp8 hungarian koi8_ru koi8_ukr
- latin1 latin1_de latin2 latin5 sjis swe7 tis620 ucs2 ujis
- usa7 utf8 win1250 win1250ch win1251ukr"
-CHARSETS_DEPRECATED="win1251"
-CHARSETS_COMPLEX="big5 czech euc_kr gb2312 gbk latin1_de sjis tis620 ucs2 ujis utf8 win1250ch"
+
+define(CHARSETS_AVAILABLE1,ascii armscii8 ascii big5 cp1250 cp1251 cp1256 cp1257)
+define(CHARSETS_AVAILABLE2,cp850 cp852 cp866 dec8 euckr gb2312 gbk)
+define(CHARSETS_AVAILABLE3,greek hebrew hp8 keybcs2 koi8r koi8u)
+define(CHARSETS_AVAILABLE4,latin1 latin2 latin5 latin7 macce macroman)
+define(CHARSETS_AVAILABLE5,sjis swe7 tis620 ucs2 ujis utf8)
+
DEFAULT_CHARSET=latin1
-AC_DIVERT_POP
+CHARSETS_AVAILABLE="CHARSETS_AVAILABLE1 CHARSETS_AVAILABLE2 CHARSETS_AVAILABLE3 CHARSETS_AVAILABLE4 CHARSETS_AVAILABLE5"
+CHARSETS_COMPLEX="big5 cp1250 euckr gb2312 gbk latin1 latin2 sjis tis620 ucs2 ujis utf8"
-dnl fix this later..
-dnl [ --with-charset=CHARSET Use CHARSET by default (one of: $CHARSETS_AVAILABLE; Default is $DEFAULT_CHARSET)],
+AC_DIVERT_POP
AC_ARG_WITH(charset,
- [ --with-charset=CHARSET Use CHARSET by default (Default is latin1)],
- [default_charset="$withval"],
- [default_charset="$DEFAULT_CHARSET"])
+ [ --with-charset=CHARSET
+ Default character set, use one of:
+ CHARSETS_AVAILABLE1
+ CHARSETS_AVAILABLE2
+ CHARSETS_AVAILABLE3
+ CHARSETS_AVAILABLE4
+ CHARSETS_AVAILABLE5],
+ [default_charset="$withval"],
+ [default_charset="$DEFAULT_CHARSET"])
+
AC_ARG_WITH(extra-charsets,
[ --with-extra-charsets=CHARSET[,CHARSET,...]
@@ -2256,73 +2263,77 @@ AC_ARG_WITH(extra-charsets,
[extra_charsets="$withval"],
[extra_charsets="none"])
+
AC_MSG_CHECKING("character sets")
+CHARSETS="$default_charset latin1 utf8"
+
if test "$extra_charsets" = no; then
- CHARSETS=""
+ CHARSETS="$CHARSETS"
elif test "$extra_charsets" = none; then
- CHARSETS=""
+ CHARSETS="$CHARSETS"
elif test "$extra_charsets" = complex; then
- CHARSETS="$CHARSETS_COMPLEX"
+ CHARSETS="$CHARSETS $CHARSETS_COMPLEX"
elif test "$extra_charsets" = all; then
- CHARSETS="$CHARSETS_AVAILABLE $CHARSETS_DEPRECATED"
+ CHARSETS="$CHARSETS $CHARSETS_AVAILABLE"
else
- CHARSETS=`echo $extra_charsets | sed -e 's/,/ /g'`
+ EXTRA_CHARSETS=`echo $extra_charsets | sed -e 's/,/ /g'`
+ CHARSETS="$CHARSETS $EXTRA_CHARSETS"
fi
-CHARSETS="$default_charset $CHARSETS"
-
-use_mb="no"
for cs in $CHARSETS
do
case $cs in
armscii8)
AC_DEFINE(HAVE_CHARSET_armscii8)
- use_mb="yes"
+ ;;
+ ascii)
+ AC_DEFINE(HAVE_CHARSET_ascii)
;;
big5)
AC_DEFINE(HAVE_CHARSET_big5)
- use_mb="yes"
+ AC_DEFINE(USE_MB)
+ AC_DEFINE(USE_MB_IDENT)
+ ;;
+ cp1250)
+ AC_DEFINE(HAVE_CHARSET_cp1250)
;;
cp1251)
AC_DEFINE(HAVE_CHARSET_cp1251)
;;
+ cp1256)
+ AC_DEFINE(HAVE_CHARSET_cp1256)
+ ;;
cp1257)
AC_DEFINE(HAVE_CHARSET_cp1257)
;;
- croat)
- AC_DEFINE(HAVE_CHARSET_croat)
+ cp850)
+ AC_DEFINE(HAVE_CHARSET_cp850)
;;
- czech)
- AC_DEFINE(HAVE_CHARSET_czech)
+ cp852)
+ AC_DEFINE(HAVE_CHARSET_cp852)
;;
- danish)
- AC_DEFINE(HAVE_CHARSET_danish)
+ cp866)
+ AC_DEFINE(HAVE_CHARSET_cp866)
;;
dec8)
AC_DEFINE(HAVE_CHARSET_dec8)
;;
- dos)
- AC_DEFINE(HAVE_CHARSET_dos)
- ;;
- estonia)
- AC_DEFINE(HAVE_CHARSET_estonia)
- ;;
- euc_kr)
- AC_DEFINE(HAVE_CHARSET_euc_kr)
- use_mb="yes"
+ euckr)
+ AC_DEFINE(HAVE_CHARSET_euckr)
+ AC_DEFINE(USE_MB)
+ AC_DEFINE(USE_MB_IDENT)
;;
gb2312)
AC_DEFINE(HAVE_CHARSET_gb2312)
- use_mb="yes"
+ AC_DEFINE(USE_MB)
+ AC_DEFINE(USE_MB_IDENT)
;;
gbk)
AC_DEFINE(HAVE_CHARSET_gbk)
- use_mb="yes"
- ;;
- german1)
- AC_DEFINE(HAVE_CHARSET_german1)
+ AC_DEFINE(USE_MB)
+ AC_DEFINE(USE_MB_IDENT)
;;
greek)
AC_DEFINE(HAVE_CHARSET_greek)
@@ -2333,30 +2344,37 @@ do
hp8)
AC_DEFINE(HAVE_CHARSET_hp8)
;;
- hungarian)
- AC_DEFINE(HAVE_CHARSET_hungarian)
+ keybcs2)
+ AC_DEFINE(HAVE_CHARSET_keybcs2)
;;
- koi8_ru)
- AC_DEFINE(HAVE_CHARSET_koi8_ru)
+ koi8r)
+ AC_DEFINE(HAVE_CHARSET_koi8r)
;;
- koi8_ukr)
- AC_DEFINE(HAVE_CHARSET_koi8_ukr)
+ koi8u)
+ AC_DEFINE(HAVE_CHARSET_koi8u)
;;
latin1)
AC_DEFINE(HAVE_CHARSET_latin1)
;;
- latin1_de)
- AC_DEFINE(HAVE_CHARSET_latin1_de)
- ;;
latin2)
AC_DEFINE(HAVE_CHARSET_latin2)
;;
latin5)
AC_DEFINE(HAVE_CHARSET_latin5)
;;
+ latin7)
+ AC_DEFINE(HAVE_CHARSET_latin7)
+ ;;
+ macce)
+ AC_DEFINE(HAVE_CHARSET_macce)
+ ;;
+ macroman)
+ AC_DEFINE(HAVE_CHARSET_macroman)
+ ;;
sjis)
AC_DEFINE(HAVE_CHARSET_sjis)
- use_mb="yes"
+ AC_DEFINE(USE_MB)
+ AC_DEFINE(USE_MB_IDENT)
;;
swe7)
AC_DEFINE(HAVE_CHARSET_swe7)
@@ -2366,49 +2384,25 @@ do
;;
ucs2)
AC_DEFINE(HAVE_CHARSET_ucs2)
- use_mb="yes"
+ AC_DEFINE(USE_MB)
+ AC_DEFINE(USE_MB_IDENT)
;;
ujis)
AC_DEFINE(HAVE_CHARSET_ujis)
- use_mb="yes"
- ;;
- usa7)
- AC_DEFINE(HAVE_CHARSET_usa7)
+ AC_DEFINE(USE_MB)
+ AC_DEFINE(USE_MB_IDENT)
;;
utf8)
AC_DEFINE(HAVE_CHARSET_utf8)
- use_mb="yes"
- ;;
- win1250)
- AC_DEFINE(HAVE_CHARSET_win1250)
- ;;
- win1250ch)
- AC_DEFINE(HAVE_CHARSET_win1250ch)
- ;;
- win1251)
- AC_DEFINE(HAVE_CHARSET_win1251)
- ;;
- win1251ukr)
- AC_DEFINE(HAVE_CHARSET_win1251ukr)
+ AC_DEFINE(USE_MB)
+ AC_DEFINE(USE_MB_IDENT)
;;
*)
- AC_MSG_ERROR([Charset $cs not available. (Available $CHARSETS_AVAILABLE).
+ AC_MSG_ERROR([Charset $cs not available. (Available are: $CHARSETS_AVAILABLE).
See the Installation chapter in the Reference Manual.]);
esac
done
-dnl Always compile latin1
-AC_DEFINE(HAVE_CHARSET_latin1)
-
-dnl Always compile utf8
-AC_DEFINE(HAVE_CHARSET_utf8)
-use_mb=yes
-
-if test "$use_mb" = "yes"
-then
- AC_DEFINE(USE_MB)
- AC_DEFINE(USE_MB_IDENT)
-fi
AC_SUBST(default_charset)
AC_DEFINE_UNQUOTED(DEFAULT_CHARSET_NAME,"$default_charset")
diff --git a/mysql-test/r/ctype_ujis.result b/mysql-test/r/ctype_ujis.result
index 223a18f19e9..ffb305a81cf 100644
--- a/mysql-test/r/ctype_ujis.result
+++ b/mysql-test/r/ctype_ujis.result
@@ -1,5 +1,5 @@
drop table if exists t1;
-create table t1 (c text);
+create table t1 (c text character set ujis);
insert into t1 values (0xa4a2),(0xa4a3);
select hex(left(c,1)) from t1 group by c;
hex(left(c,1))
diff --git a/mysql-test/r/have_ucs2.require b/mysql-test/r/have_ucs2.require
index 9d7079740ad..4f2ef7e83e4 100644
--- a/mysql-test/r/have_ucs2.require
+++ b/mysql-test/r/have_ucs2.require
@@ -1,2 +1,2 @@
Collation Charset Id D C Sortlen
-ucs2_general_ci ucs2 35 Y 0
+ucs2_general_ci ucs2 35 Y Y 1
diff --git a/mysql-test/r/have_ujis.require b/mysql-test/r/have_ujis.require
index 5f7ce2a50c7..b4b0a4d256c 100644
--- a/mysql-test/r/have_ujis.require
+++ b/mysql-test/r/have_ujis.require
@@ -1,2 +1,2 @@
Collation Charset Id D C Sortlen
-ujis_japanese_ci ujis 12 Y 0
+ujis_japanese_ci ujis 12 Y Y 0
diff --git a/mysys/charset.c b/mysys/charset.c
index 82bace7fb2c..ad0468a5087 100644
--- a/mysys/charset.c
+++ b/mysys/charset.c
@@ -407,11 +407,15 @@ static my_bool init_compiled_charsets(myf flags __attribute__((unused)))
MY_ADD_CHARSET(&my_charset_big5_bin);
#endif
-#ifdef HAVE_CHARSET_czech
+#ifdef HAVE_CHARSET_cp1250
+ MY_ADD_CHARSET(&my_charset_cp1250_czech_ci);
+#endif
+
+#ifdef HAVE_CHARSET_latin2
MY_ADD_CHARSET(&my_charset_latin2_czech_ci);
#endif
-#ifdef HAVE_CHARSET_euc_kr
+#ifdef HAVE_CHARSET_euckr
MY_ADD_CHARSET(&my_charset_euckr_korean_ci);
MY_ADD_CHARSET(&my_charset_euckr_bin);
#endif
@@ -451,10 +455,6 @@ static my_bool init_compiled_charsets(myf flags __attribute__((unused)))
MY_ADD_CHARSET(&my_charset_utf8_bin);
#endif
-#ifdef HAVE_CHARSET_win1250ch
- MY_ADD_CHARSET(&my_charset_cp1250_czech_ci);
-#endif
-
/* Copy compiled charsets */
for (cs=compiled_charsets; cs->name; cs++)
{
diff --git a/strings/ctype-czech.c b/strings/ctype-czech.c
index fc3ff137778..2398bc33d45 100644
--- a/strings/ctype-czech.c
+++ b/strings/ctype-czech.c
@@ -77,7 +77,7 @@
#endif
-#ifdef HAVE_CHARSET_czech
+#ifdef HAVE_CHARSET_latin2
/*
These are four tables for four passes of the algorithm. Please see
diff --git a/strings/ctype-euc_kr.c b/strings/ctype-euc_kr.c
index 4a5757bf5c4..8e288ee8e55 100644
--- a/strings/ctype-euc_kr.c
+++ b/strings/ctype-euc_kr.c
@@ -30,7 +30,7 @@
#include "m_string.h"
#include "m_ctype.h"
-#ifdef HAVE_CHARSET_euc_kr
+#ifdef HAVE_CHARSET_euckr
static uchar NEAR ctype_euc_kr[257] =
diff --git a/strings/ctype-win1250ch.c b/strings/ctype-win1250ch.c
index af4faca46e1..0b75a782b17 100644
--- a/strings/ctype-win1250ch.c
+++ b/strings/ctype-win1250ch.c
@@ -45,6 +45,9 @@
#include "m_string.h"
#include "m_ctype.h"
+#ifdef HAVE_CHARSET_cp1250
+
+
static uint16 tab_cp1250_uni[256]={
0,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
@@ -674,3 +677,5 @@ CHARSET_INFO my_charset_cp1250_czech_ci =
#endif
+
+#endif