summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--configure.in31
-rw-r--r--include/m_ctype.h21
-rw-r--r--libmysql/Makefile.shared11
-rw-r--r--sql/item_func.cc10
-rw-r--r--sql/item_strfunc.cc32
-rw-r--r--strings/Makefile.am12
-rw-r--r--strings/ctype-big5.c4
-rw-r--r--strings/ctype-czech.c4
-rw-r--r--strings/ctype-euc_kr.c5
-rw-r--r--strings/ctype-gb2312.c4
-rw-r--r--strings/ctype-gbk.c5
-rw-r--r--strings/ctype-latin1_de.c4
-rw-r--r--strings/ctype-mb.c4
-rw-r--r--strings/ctype-sjis.c5
-rw-r--r--strings/ctype-tis620.c4
-rw-r--r--strings/ctype-ujis.c5
16 files changed, 102 insertions, 59 deletions
diff --git a/configure.in b/configure.in
index 2772a2c92ab..796b6621534 100644
--- a/configure.in
+++ b/configure.in
@@ -1869,6 +1869,7 @@ CHARSETS_AVAILABLE="armscii8 big5 cp1251 cp1257
latin1 latin1_de latin2 latin5 sjis swe7 tis620 ujis
usa7 utf8 win1250 win1251ukr"
CHARSETS_DEPRECATED="win1251"
+CHARSETS_COMPLEX="big5 czech euc_kr gb2312 gbk latin1_de sjis tis620 ujis"
DEFAULT_CHARSET=latin1
AC_DIVERT_POP
@@ -1889,15 +1890,11 @@ AC_MSG_CHECKING("character sets")
if test "$extra_charsets" = none; then
CHARSETS=""
elif test "$extra_charsets" = complex; then
- CHARSETS=`/bin/ls -1 $srcdir/strings/ctype-*.c | \
- sed -e 's;^.*/ctype-;;' -e 's;.c$;;'`
- CHARSETS=`echo $CHARSETS` # get rid of line breaks
+ CHARSETS="$CHARSETS_COMPLEX"
+elif test "$extra_charsets" = all; then
+ CHARSETS="$CHARSETS_AVAILABLE $CHARSETS_DEPRECATED"
else
- if test "$extra_charsets" = all; then
- CHARSETS="$CHARSETS_AVAILABLE $CHARSETS_DEPRECATED"
- else
- CHARSETS=`echo $extra_charsets | sed -e 's/,/ /g'`
- fi
+ CHARSETS=`echo $extra_charsets | sed -e 's/,/ /g'`
fi
use_mb="no"
@@ -2018,19 +2015,6 @@ do
esac
done
-CHARSET_SRCS=""
-CHARSETS_NEED_SOURCE=""
-
-for c in $CHARSETS
-do
- cs_file="$srcdir/strings/ctype-$c.c"
- if test -f $cs_file
- then
- CHARSET_SRCS="${CHARSET_SRCS}ctype-$c.c "
- CHARSETS_NEED_SOURCE="$CHARSETS_NEED_SOURCE $c"
- fi
-done
-
if test "$use_mb" = "yes"
then
AC_DEFINE(USE_MB)
@@ -2042,11 +2026,6 @@ AC_DEFINE(USE_STRCOLL)
AC_SUBST(default_charset)
AC_DEFINE_UNQUOTED(DEFAULT_CHARSET_NAME,"$default_charset")
-AC_SUBST(CHARSET_SRCS)
-CHARSET_OBJS="`echo "$CHARSET_SRCS" | sed -e 's/\.c /.o /g'`"
-AC_SUBST(CHARSET_OBJS)
-AC_SUBST(CHARSETS_NEED_SOURCE)
-
AC_MSG_RESULT([default: $default_charset; compiled in: $CHARSETS])
diff --git a/include/m_ctype.h b/include/m_ctype.h
index f46b7ef651f..e63e918f838 100644
--- a/include/m_ctype.h
+++ b/include/m_ctype.h
@@ -90,15 +90,17 @@ extern void my_casedn_8bit(CHARSET_INFO *, char *, uint);
extern int my_strcasecmp_8bit(CHARSET_INFO * cs, const char *, const char *);
extern int my_strncasecmp_8bit(CHARSET_INFO * cs, const char *, const char *, uint);
+#ifdef USE_MB
/* Functions for multibyte charsets */
extern void my_caseup_str_mb(CHARSET_INFO *, char *);
extern void my_casedn_str_mb(CHARSET_INFO *, char *);
extern void my_caseup_mb(CHARSET_INFO *, char *, uint);
extern void my_casedn_mb(CHARSET_INFO *, char *, uint);
-
extern int my_strcasecmp_mb(CHARSET_INFO * cs,const char *, const char *);
extern int my_strncasecmp_mb(CHARSET_INFO * cs,const char *, const char *t, uint);
+#endif
+#ifdef HAVE_CHARSET_big5
/* declarations for the big5 character set */
extern uchar ctype_big5[], to_lower_big5[], to_upper_big5[], sort_order_big5[];
extern int my_strnncoll_big5(CHARSET_INFO *,const uchar *, uint, const uchar *, uint);
@@ -108,7 +110,9 @@ extern my_bool my_like_range_big5(CHARSET_INFO *,const char *, uint, pchar, uint
extern int ismbchar_big5(const char *, const char *);
extern my_bool ismbhead_big5(uint);
extern int mbcharlen_big5(uint);
+#endif
+#ifdef HAVE_CHARSET_czech
/* declarations for the czech character set */
extern uchar ctype_czech[], to_lower_czech[], to_upper_czech[], sort_order_czech[];
extern int my_strnncoll_czech(CHARSET_INFO *, const uchar *, uint, const uchar *, uint);
@@ -116,19 +120,25 @@ extern int my_strnxfrm_czech(CHARSET_INFO *, uchar *, uint, const uchar *, u
extern my_bool my_like_range_czech(CHARSET_INFO *,
const char *, uint, pchar, uint,
char *, char *, uint *, uint *);
+#endif
+#ifdef HAVE_CHARSET_euc_kr
/* declarations for the euc_kr character set */
extern uchar ctype_euc_kr[], to_lower_euc_kr[], to_upper_euc_kr[], sort_order_euc_kr[];
extern int ismbchar_euc_kr(const char *, const char *);
extern my_bool ismbhead_euc_kr(uint);
extern int mbcharlen_euc_kr(uint);
+#endif
+#ifdef HAVE_CHARSET_gb2312
/* declarations for the gb2312 character set */
extern uchar ctype_gb2312[], to_lower_gb2312[], to_upper_gb2312[], sort_order_gb2312[];
extern int ismbchar_gb2312(const char *, const char *);
extern my_bool ismbhead_gb2312(uint);
extern int mbcharlen_gb2312(uint);
+#endif
+#ifdef HAVE_CHARSET_gbk
/* declarations for the gbk character set */
extern uchar ctype_gbk[], to_lower_gbk[], to_upper_gbk[], sort_order_gbk[];
extern int my_strnncoll_gbk(CHARSET_INFO *, const uchar *, uint, const uchar *, uint);
@@ -138,14 +148,18 @@ extern my_bool my_like_range_gbk(CHARSET_INFO *, const char *, uint, pchar, uint
extern int ismbchar_gbk(const char *, const char *);
extern my_bool ismbhead_gbk(uint);
extern int mbcharlen_gbk(uint);
+#endif
+#ifdef HAVE_CHARSET_latin1_de
/* declarations for the latin1_de character set */
extern uchar ctype_latin1_de[], to_lower_latin1_de[], to_upper_latin1_de[], sort_order_latin1_de[];
extern int my_strnncoll_latin1_de(CHARSET_INFO *, const uchar *, uint, const uchar *, uint);
extern int my_strnxfrm_latin1_de(CHARSET_INFO *, uchar *, uint, const uchar *, uint);
extern my_bool my_like_range_latin1_de(CHARSET_INFO *, const char *, uint, pchar, uint,
char *, char *, uint *, uint *);
+#endif
+#ifdef HAVE_CHARSET_sjis
/* declarations for the sjis character set */
extern uchar ctype_sjis[], to_lower_sjis[], to_upper_sjis[], sort_order_sjis[];
extern int my_strnncoll_sjis(CHARSET_INFO *, const uchar *, uint, const uchar *, uint);
@@ -155,19 +169,24 @@ extern my_bool my_like_range_sjis(CHARSET_INFO *, const char *, uint, pchar, uin
extern int ismbchar_sjis(const char *, const char *);
extern my_bool ismbhead_sjis(uint);
extern int mbcharlen_sjis(uint);
+#endif
+#ifdef HAVE_CHARSET_tis620
/* declarations for the tis620 character set */
extern uchar ctype_tis620[], to_lower_tis620[], to_upper_tis620[], sort_order_tis620[];
extern int my_strnncoll_tis620(CHARSET_INFO *, const uchar *, uint, const uchar *, uint);
extern int my_strnxfrm_tis620(CHARSET_INFO *, uchar *, uint, const uchar *, uint);
extern my_bool my_like_range_tis620(CHARSET_INFO *, const char *, uint, pchar, uint,
char *, char *, uint *, uint *);
+#endif
+#ifdef HAVE_CHARSET_ujis
/* declarations for the ujis character set */
extern uchar ctype_ujis[], to_lower_ujis[], to_upper_ujis[], sort_order_ujis[];
extern int ismbchar_ujis(const char *, const char *);
extern my_bool ismbhead_ujis(uint);
extern int mbcharlen_ujis(uint);
+#endif
#define _U 01 /* Upper case */
diff --git a/libmysql/Makefile.shared b/libmysql/Makefile.shared
index f9b69124dbe..1dd176bbe27 100644
--- a/libmysql/Makefile.shared
+++ b/libmysql/Makefile.shared
@@ -27,9 +27,6 @@ pkglib_LTLIBRARIES = $(target)
noinst_PROGRAMS = conf_to_src
-# We need .lo, not .o files for everything.
-CHARSET_OBJS=@CHARSET_OBJS@
-LTCHARSET_OBJS= ${CHARSET_OBJS:.o=.lo}
target_sources = libmysql.c net.c password.c manager.c \
get_password.c errmsg.c
@@ -41,7 +38,11 @@ mystringsobjects = strmov.lo strxmov.lo strxnmov.lo strnmov.lo \
strcend.lo bcmp.lo \
bchange.lo bmove.lo bmove_upp.lo longlong2str.lo \
strtoull.lo strtoll.lo llstr.lo \
- ctype.lo ctype-simple.lo ctype-mb.lo $(LTCHARSET_OBJS)
+ ctype.lo ctype-simple.lo ctype-mb.lo \
+ ctype-big5.lo ctype-czech.lo ctype-euc_kr.lo \
+ ctype-gb2312.lo ctype-gbk.lo ctype-latin1_de.lo \
+ ctype-sjis.lo ctype-tis620.lo ctype-ujis.lo
+
mystringsextra= strto.c
dbugobjects = dbug.lo # IT IS IN SAFEMALLOC.C sanity.lo
mysysheaders = mysys_priv.h my_static.h
@@ -74,7 +75,7 @@ DEFS = -DDEFAULT_CHARSET_HOME="\"$(MYSQLBASEdir)\"" \
-DSHAREDIR="\"$(MYSQLSHAREdir)\"" $(target_defs)
# The automatic dependencies miss this
-bmove_upp.lo: $(LTCHARSET_OBJS)
+#bmove_upp.lo: $(LTCHARSET_OBJS)
clean-local:
rm -f `echo $(mystringsobjects) | sed "s;\.lo;.c;g"` \
diff --git a/sql/item_func.cc b/sql/item_func.cc
index e25f4c6e94a..488fe1314a8 100644
--- a/sql/item_func.cc
+++ b/sql/item_func.cc
@@ -830,7 +830,7 @@ longlong Item_func_locate::val_int()
{
start=(uint) args[2]->val_int()-1;
#ifdef USE_MB
- if (use_mb(a->str_charset))
+ if (use_mb(a->charset()))
{
start0=start;
if (!binary_str)
@@ -843,7 +843,7 @@ longlong Item_func_locate::val_int()
if (!b->length()) // Found empty string at start
return (longlong) (start+1);
#ifdef USE_MB
- if (use_mb(a->str_charset) && !binary_str)
+ if (use_mb(a->charset()) && !binary_str)
{
const char *ptr=a->ptr()+start;
const char *search=b->ptr();
@@ -862,7 +862,7 @@ longlong Item_func_locate::val_int()
return (longlong) start0+1;
}
skipp:
- if ((l=my_ismbchar(a->str_charset,ptr,strend))) ptr+=l;
+ if ((l=my_ismbchar(a->charset(),ptr,strend))) ptr+=l;
else ++ptr;
++start0;
}
@@ -913,10 +913,10 @@ longlong Item_func_ord::val_int()
null_value=0;
if (!res->length()) return 0;
#ifdef USE_MB
- if (use_mb(res->str_charset) && !args[0]->binary)
+ if (use_mb(res->charset()) && !args[0]->binary)
{
register const char *str=res->ptr();
- register uint32 n=0, l=my_ismbchar(res->str_charset,str,str+res->length());
+ register uint32 n=0, l=my_ismbchar(res->charset(),str,str+res->length());
if (!l) return (longlong)((uchar) *str);
while (l--)
n=(n<<8)|(uint32)((uchar) *str++);
diff --git a/sql/item_strfunc.cc b/sql/item_strfunc.cc
index a9ba3526e1c..cfbfda97148 100644
--- a/sql/item_strfunc.cc
+++ b/sql/item_strfunc.cc
@@ -510,7 +510,7 @@ String *Item_func_reverse::val_str(String *str)
ptr = (char *) res->ptr();
end=ptr+res->length();
#ifdef USE_MB
- if (use_mb(res->str_charset) && !binary)
+ if (use_mb(res->charset()) && !binary)
{
String tmpstr;
tmpstr.copy(*res);
@@ -518,7 +518,7 @@ String *Item_func_reverse::val_str(String *str)
register uint32 l;
while (ptr < end)
{
- if ((l=my_ismbchar(res->str_charset, ptr,end)))
+ if ((l=my_ismbchar(res->charset(), ptr,end)))
tmp-=l, memcpy(tmp,ptr,l), ptr+=l;
else
*--tmp=*ptr++;
@@ -573,7 +573,7 @@ String *Item_func_replace::val_str(String *str)
goto null;
#ifdef USE_MB
- binary_str = (args[0]->binary || args[1]->binary || !use_mb(res->str_charset));
+ binary_str = (args[0]->binary || args[1]->binary || !use_mb(res->charset()));
#endif
if (res2->length() == 0)
@@ -621,7 +621,7 @@ redo:
goto redo;
}
skipp:
- if ((l=my_ismbchar(res->str_charset, ptr,strend))) ptr+=l;
+ if ((l=my_ismbchar(res->charset(), ptr,strend))) ptr+=l;
else ++ptr;
}
}
@@ -679,7 +679,7 @@ String *Item_func_insert::val_str(String *str)
args[3]->null_value)
goto null; /* purecov: inspected */
#ifdef USE_MB
- if (use_mb(res->str_charset) && !args[0]->binary)
+ if (use_mb(res->charset()) && !args[0]->binary)
{
start=res->charpos(start);
length=res->charpos(length,start);
@@ -751,7 +751,7 @@ String *Item_func_left::val_str(String *str)
if (length <= 0)
return &empty_string;
#ifdef USE_MB
- if (use_mb(res->str_charset) && !binary)
+ if (use_mb(res->charset()) && !binary)
length = res->charpos(length);
#endif
if (res->length() > (ulong) length)
@@ -799,7 +799,7 @@ String *Item_func_right::val_str(String *str)
if (res->length() <= (uint) length)
return res; /* purecov: inspected */
#ifdef USE_MB
- if (use_mb(res->str_charset) && !binary)
+ if (use_mb(res->charset()) && !binary)
{
uint start=res->numchars()-(uint) length;
if (start<=0) return res;
@@ -832,7 +832,7 @@ String *Item_func_substr::val_str(String *str)
(arg_count == 3 && args[2]->null_value))))
return 0; /* purecov: inspected */
#ifdef USE_MB
- if (use_mb(res->str_charset) && !binary)
+ if (use_mb(res->charset()) && !binary)
{
start=res->charpos(start);
length=res->charpos(length,start);
@@ -892,7 +892,7 @@ String *Item_func_substr_index::val_str(String *str)
return &empty_string; // Wrong parameters
#ifdef USE_MB
- if (use_mb(res->str_charset) && !binary)
+ if (use_mb(res->charset()) && !binary)
{
const char *ptr=res->ptr();
const char *strend = ptr+res->length();
@@ -917,7 +917,7 @@ String *Item_func_substr_index::val_str(String *str)
continue;
}
skipp:
- if ((l=my_ismbchar(res->str_charset, ptr,strend))) ptr+=l;
+ if ((l=my_ismbchar(res->charset(), ptr,strend))) ptr+=l;
else ++ptr;
} /* either not found or got total number when count<0 */
if (pass == 0) /* count<0 */
@@ -1046,11 +1046,11 @@ String *Item_func_rtrim::val_str(String *str)
{
char chr=(*remove_str)[0];
#ifdef USE_MB
- if (use_mb(res->str_charset) && !binary)
+ if (use_mb(res->charset()) && !binary)
{
while (ptr < end)
{
- if ((l=my_ismbchar(res->str_charset, ptr,end))) ptr+=l,p=ptr;
+ if ((l=my_ismbchar(res->charset(), ptr,end))) ptr+=l,p=ptr;
else ++ptr;
}
ptr=p;
@@ -1063,12 +1063,12 @@ String *Item_func_rtrim::val_str(String *str)
{
const char *r_ptr=remove_str->ptr();
#ifdef USE_MB
- if (use_mb(res->str_charset) && !binary)
+ if (use_mb(res->charset()) && !binary)
{
loop:
while (ptr + remove_length < end)
{
- if ((l=my_ismbchar(res->str_charset, ptr,end))) ptr+=l;
+ if ((l=my_ismbchar(res->charset(), ptr,end))) ptr+=l;
else ++ptr;
}
if (ptr + remove_length == end && !memcmp(ptr,r_ptr,remove_length))
@@ -1114,14 +1114,14 @@ String *Item_func_trim::val_str(String *str)
while (ptr+remove_length <= end && !memcmp(ptr,r_ptr,remove_length))
ptr+=remove_length;
#ifdef USE_MB
- if (use_mb(res->str_charset) && !binary)
+ if (use_mb(res->charset()) && !binary)
{
char *p=ptr;
register uint32 l;
loop:
while (ptr + remove_length < end)
{
- if ((l=my_ismbchar(res->str_charset, ptr,end))) ptr+=l;
+ if ((l=my_ismbchar(res->charset(), ptr,end))) ptr+=l;
else ++ptr;
}
if (ptr + remove_length == end && !memcmp(ptr,r_ptr,remove_length))
diff --git a/strings/Makefile.am b/strings/Makefile.am
index 33d048a42d1..15baa8316e5 100644
--- a/strings/Makefile.am
+++ b/strings/Makefile.am
@@ -22,23 +22,23 @@ pkglib_LIBRARIES = libmystrings.a
# Exact one of ASSEMBLER_X
if ASSEMBLER_x86
ASRCS = strings-x86.s longlong2str-x86.s
-CSRCS = bfill.c bmove.c bmove512.c bchange.c strxnmov.c int2str.c str2int.c r_strinstr.c atof.c bcmp.c strtol.c strtoul.c strtoll.c strtoull.c llstr.c ctype.c ctype-simple.c ctype-mb.c strnlen.c
+CSRCS = bfill.c bmove.c bmove512.c bchange.c strxnmov.c int2str.c str2int.c r_strinstr.c atof.c bcmp.c strtol.c strtoul.c strtoll.c strtoull.c llstr.c strnlen.c ctype.c ctype-simple.c ctype-mb.c ctype-big5.c ctype-czech.c ctype-euc_kr.c ctype-gb2312.c ctype-gbk.c ctype-latin1_de.c ctype-sjis.c ctype-tis620.c ctype-ujis.c
else
if ASSEMBLER_sparc
# These file MUST all be on the same line!! Otherwise automake
# generats a very broken makefile
ASRCS = bmove_upp-sparc.s strappend-sparc.s strend-sparc.s strinstr-sparc.s strmake-sparc.s strmov-sparc.s strnmov-sparc.s strstr-sparc.s strxmov-sparc.s
-CSRCS = strcont.c strfill.c strcend.c is_prefix.c longlong2str.c bfill.c bmove.c bmove512.c bchange.c strxnmov.c int2str.c str2int.c r_strinstr.c atof.c bcmp.c strtol.c strtoul.c strtoll.c strtoull.c llstr.c ctype.c ctype-simple.c ctype-mb.c strnlen.c
+CSRCS = strcont.c strfill.c strcend.c is_prefix.c longlong2str.c bfill.c bmove.c bmove512.c bchange.c strxnmov.c int2str.c str2int.c r_strinstr.c atof.c bcmp.c strtol.c strtoul.c strtoll.c strtoull.c llstr.c strnlen.c ctype.c ctype-simple.c ctype-mb.c ctype-big5.c ctype-czech.c ctype-euc_kr.c ctype-gb2312.c ctype-gbk.c ctype-latin1_de.c ctype-sjis.c ctype-tis620.c ctype-ujis.c
else
#no assembler
ASRCS =
# These file MUST all be on the same line!! Otherwise automake
# generats a very broken makefile
-CSRCS = strxmov.c bmove_upp.c strappend.c strcont.c strend.c strfill.c strcend.c is_prefix.c strstr.c strinstr.c strmake.c strnmov.c strmov.c longlong2str.c bfill.c bmove.c bmove512.c bchange.c strxnmov.c int2str.c str2int.c r_strinstr.c atof.c bcmp.c strtol.c strtoul.c strtoll.c strtoull.c llstr.c ctype.c ctype-simple.c ctype-mb.c strnlen.c
+CSRCS = strxmov.c bmove_upp.c strappend.c strcont.c strend.c strfill.c strcend.c is_prefix.c strstr.c strinstr.c strmake.c strnmov.c strmov.c longlong2str.c bfill.c bmove.c bmove512.c bchange.c strxnmov.c int2str.c str2int.c r_strinstr.c atof.c bcmp.c strtol.c strtoul.c strtoll.c strtoull.c llstr.c strnlen.c ctype.c ctype-simple.c ctype-mb.c ctype-big5.c ctype-czech.c ctype-euc_kr.c ctype-gb2312.c ctype-gbk.c ctype-latin1_de.c ctype-sjis.c ctype-tis620.c ctype-ujis.c
endif
endif
-libmystrings_a_SOURCES = @CHARSET_SRCS@ $(ASRCS) $(CSRCS)
+libmystrings_a_SOURCES = $(ASRCS) $(CSRCS)
noinst_PROGRAMS = conf_to_src
# Default charset definitions
EXTRA_DIST = ctype-big5.c ctype-czech.c ctype-euc_kr.c \
@@ -61,7 +61,7 @@ OMIT_DEPENDENCIES = pthread.h stdio.h __stdio.h stdlib.h __stdlib.h math.h\
sleep.h specific.h version.h pwd.h timers.h uio.h \
cdefs.h machdep.h signal.h __signal.h util.h
-libmystrings_a_LIBADD= @CHARSET_OBJS@
+libmystrings_a_LIBADD=
conf_to_src_SOURCES = conf_to_src.c
conf_to_src_LDADD=
#force static linking of conf_to_src - essential when linking against
@@ -69,7 +69,7 @@ conf_to_src_LDADD=
conf_to_src_LDFLAGS= @NOINST_LDFLAGS@
# This is because the dependency tracking misses @FOO@ vars in sources.
-strtoull.o: @CHARSET_OBJS@
+#strtoull.o: @CHARSET_OBJS@
if ASSEMBLER
diff --git a/strings/ctype-big5.c b/strings/ctype-big5.c
index 2155f3e72c9..a8bda0131f7 100644
--- a/strings/ctype-big5.c
+++ b/strings/ctype-big5.c
@@ -31,6 +31,8 @@
#include "m_string.h"
#include "m_ctype.h"
+#ifdef HAVE_CHARSET_big5
+
/* Support for Chinese(BIG5) characters, by jou@nematic.ieo.nctu.edu.tw
modified by Wei He (hewei@mail.ied.ac.cn) */
@@ -390,3 +392,5 @@ int mbcharlen_big5(uint c)
{
return (isbig5head(c)? 2: 0);
}
+
+#endif
diff --git a/strings/ctype-czech.c b/strings/ctype-czech.c
index 7db37c0b5d9..eaf0b1ef38b 100644
--- a/strings/ctype-czech.c
+++ b/strings/ctype-czech.c
@@ -77,6 +77,8 @@
#endif
+#ifdef HAVE_CHARSET_czech
+
/*
These are four tables for four passes of the algorithm. Please see
below for what are the "special values"
@@ -513,3 +515,5 @@ uchar NEAR sort_order_czech[] = {
};
#endif
+
+#endif
diff --git a/strings/ctype-euc_kr.c b/strings/ctype-euc_kr.c
index ed8266bf96f..07cea62414b 100644
--- a/strings/ctype-euc_kr.c
+++ b/strings/ctype-euc_kr.c
@@ -30,6 +30,9 @@
#include "m_string.h"
#include "m_ctype.h"
+#ifdef HAVE_CHARSET_euc_kr
+
+
uchar NEAR ctype_euc_kr[257] =
{
0, /* For standard library */
@@ -196,3 +199,5 @@ int mbcharlen_euc_kr(uint c)
{
return (iseuc_kr(c) ? 2 : 0);
}
+
+#endif
diff --git a/strings/ctype-gb2312.c b/strings/ctype-gb2312.c
index 7b9b22f0227..3139bd81d52 100644
--- a/strings/ctype-gb2312.c
+++ b/strings/ctype-gb2312.c
@@ -28,6 +28,8 @@
#include "m_string.h"
#include "m_ctype.h"
+#ifdef HAVE_CHARSET_gb2312
+
uchar NEAR ctype_gb2312[257] =
{
0, /* For standard library */
@@ -178,3 +180,5 @@ int mbcharlen_gb2312(uint c)
{
return (isgb2312head(c)? 2:0);
}
+
+#endif
diff --git a/strings/ctype-gbk.c b/strings/ctype-gbk.c
index 3ef37d2f6bb..9a7154f566b 100644
--- a/strings/ctype-gbk.c
+++ b/strings/ctype-gbk.c
@@ -31,6 +31,9 @@
#include "m_string.h"
#include "m_ctype.h"
+#ifdef HAVE_CHARSET_gbk
+
+
/* Support for Chinese(GBK) characters, by hewei@mail.ied.ac.cn */
#define isgbkhead(c) (0x81<=(uchar)(c) && (uchar)(c)<=0xfe)
@@ -2715,3 +2718,5 @@ int mbcharlen_gbk(uint c)
{
return (isgbkhead(c)? 2:0);
}
+
+#endif
diff --git a/strings/ctype-latin1_de.c b/strings/ctype-latin1_de.c
index 961112a65b4..e7bbf1438a6 100644
--- a/strings/ctype-latin1_de.c
+++ b/strings/ctype-latin1_de.c
@@ -36,6 +36,8 @@
#include "m_string.h"
#include "m_ctype.h"
+#ifdef HAVE_CHARSET_latin1_de
+
uchar ctype_latin1_de[] = {
0,
32, 32, 32, 32, 32, 32, 32, 32, 32, 40, 40, 40, 40, 40, 32, 32,
@@ -350,3 +352,5 @@ my_bool my_like_range_latin1_de(CHARSET_INFO *cs,
*min_str++ = *max_str++ = ' '; // Because if key compression
return 0;
}
+
+#endif
diff --git a/strings/ctype-mb.c b/strings/ctype-mb.c
index 97de219429c..d328ebb7a36 100644
--- a/strings/ctype-mb.c
+++ b/strings/ctype-mb.c
@@ -17,6 +17,9 @@
#include <my_global.h>
#include "m_ctype.h"
+#ifdef USE_MB
+
+
void my_caseup_str_mb(CHARSET_INFO * cs, char *str)
{
register uint32 l;
@@ -123,3 +126,4 @@ int my_strncasecmp_mb(CHARSET_INFO * cs,
return 0;
}
+#endif
diff --git a/strings/ctype-sjis.c b/strings/ctype-sjis.c
index f3c5d8a2920..79d4e8a94c7 100644
--- a/strings/ctype-sjis.c
+++ b/strings/ctype-sjis.c
@@ -21,6 +21,9 @@
#include "m_string.h"
#include "m_ctype.h"
+#ifdef HAVE_CHARSET_sjis
+
+
/*
* This comment is parsed by configure to create ctype.c,
* so don't change it unless you know what you are doing.
@@ -308,3 +311,5 @@ my_bool my_like_range_sjis(CHARSET_INFO *cs,
*min_str++ = *max_str++ = ' '; /* Because if key compression */
return 0;
}
+
+#endif
diff --git a/strings/ctype-tis620.c b/strings/ctype-tis620.c
index 134ab527ecc..5df8b1d8cc6 100644
--- a/strings/ctype-tis620.c
+++ b/strings/ctype-tis620.c
@@ -49,6 +49,8 @@
#include "m_ctype.h"
#include "t_ctype.h"
+#ifdef HAVE_CHARSET_tis620
+
static uchar* thai2sortable(const uchar *tstr,uint len);
#define BUFFER_MULTIPLY 4
@@ -682,3 +684,5 @@ void ThNormalize(uchar* ptr, uint field_length, const uchar* from, uint length)
}
}
}
+
+#endif
diff --git a/strings/ctype-ujis.c b/strings/ctype-ujis.c
index 568b5a69d9d..80c09eedcff 100644
--- a/strings/ctype-ujis.c
+++ b/strings/ctype-ujis.c
@@ -28,6 +28,9 @@
#include "m_string.h"
#include "m_ctype.h"
+#ifdef HAVE_CHARSET_ujis
+
+
uchar NEAR ctype_ujis[257] =
{
0, /* For standard library */
@@ -198,3 +201,5 @@ int mbcharlen_ujis(uint c)
{
return (isujis(c)? 2: isujis_ss2(c)? 2: isujis_ss3(c)? 3: 0);
}
+
+#endif