summaryrefslogtreecommitdiff
path: root/ext/mysql/libmysql/mf_casecnv.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/mysql/libmysql/mf_casecnv.c')
-rw-r--r--ext/mysql/libmysql/mf_casecnv.c33
1 files changed, 21 insertions, 12 deletions
diff --git a/ext/mysql/libmysql/mf_casecnv.c b/ext/mysql/libmysql/mf_casecnv.c
index 3b8e6c6a75..3abc6ae0f0 100644
--- a/ext/mysql/libmysql/mf_casecnv.c
+++ b/ext/mysql/libmysql/mf_casecnv.c
@@ -11,20 +11,23 @@ This file is public domain and comes with NO WARRANTY of any kind */
#include "mysys_priv.h"
#include <m_ctype.h>
+#include <m_string.h>
/* string to uppercase */
void caseup_str(my_string str)
{
#ifdef USE_MB
- register uint32 l;
- register char *end=str+(uint) strlen(str);
if (use_mb(default_charset_info))
+ {
+ register uint32 l;
+ register char *end=str+(uint) strlen(str);
while (*str)
{
if ((l=my_ismbchar(default_charset_info, str,end))) str+=l;
else *str=toupper(*str),++str;
}
+ }
else
#endif
while ((*str = toupper(*str)) != 0)
@@ -36,14 +39,16 @@ void caseup_str(my_string str)
void casedn_str(my_string str)
{
#ifdef USE_MB
- register uint32 l;
- register char *end=str+(uint) strlen(str);
if (use_mb(default_charset_info))
+ {
+ register uint32 l;
+ register char *end=str+(uint) strlen(str);
while (*str)
{
if ((l=my_ismbchar(default_charset_info, str,end))) str+=l;
else *str=tolower(*str),++str;
}
+ }
else
#endif
while ((*str= tolower(*str)) != 0)
@@ -56,14 +61,16 @@ void casedn_str(my_string str)
void caseup(my_string str, uint length)
{
#ifdef USE_MB
- register uint32 l;
- register char *end=str+length;
if (use_mb(default_charset_info))
+ {
+ register uint32 l;
+ register char *end=str+length;
while (str<end)
{
if ((l=my_ismbchar(default_charset_info, str,end))) str+=l;
else *str=toupper(*str),++str;
}
+ }
else
#endif
for ( ; length>0 ; length--, str++)
@@ -75,14 +82,16 @@ void caseup(my_string str, uint length)
void casedn(my_string str, uint length)
{
#ifdef USE_MB
- register uint32 l;
- register char *end=str+length;
if (use_mb(default_charset_info))
+ {
+ register uint32 l;
+ register char *end=str+length;
while (str<end)
{
if ((l=my_ismbchar(default_charset_info, str,end))) str+=l;
else *str=tolower(*str),++str;
}
+ }
else
#endif
for ( ; length>0 ; length--, str++)
@@ -129,10 +138,10 @@ skipp:
int my_strcasecmp(const char *s, const char *t)
{
#ifdef USE_MB
- register uint32 l;
- register const char *end=s+(uint) strlen(s);
if (use_mb(default_charset_info))
{
+ register uint32 l;
+ register const char *end=s+(uint) strlen(s);
while (s<end)
{
if ((l=my_ismbchar(default_charset_info, s,end)))
@@ -158,10 +167,10 @@ int my_strcasecmp(const char *s, const char *t)
int my_casecmp(const char *s, const char *t, uint len)
{
#ifdef USE_MB
- register uint32 l;
- register const char *end=s+len;
if (use_mb(default_charset_info))
{
+ register uint32 l;
+ register const char *end=s+len;
while (s<end)
{
if ((l=my_ismbchar(default_charset_info, s,end)))