diff options
author | Andi Gutmans <andi@php.net> | 2000-08-22 17:59:35 +0000 |
---|---|---|
committer | Andi Gutmans <andi@php.net> | 2000-08-22 17:59:35 +0000 |
commit | 0222b7ab416d845abcd3925b3da47fa2d7ed238d (patch) | |
tree | 38cbb73fda38196612fddffda4d803003a86b568 /ext/mysql/libmysql/mf_casecnv.c | |
parent | 60676f19a5f5425c4375d8ba60e8bd07016ba562 (diff) | |
download | php-git-0222b7ab416d845abcd3925b3da47fa2d7ed238d.tar.gz |
- Try and revert libmysql for 4.0.2
Diffstat (limited to 'ext/mysql/libmysql/mf_casecnv.c')
-rw-r--r-- | ext/mysql/libmysql/mf_casecnv.c | 203 |
1 files changed, 73 insertions, 130 deletions
diff --git a/ext/mysql/libmysql/mf_casecnv.c b/ext/mysql/libmysql/mf_casecnv.c index 1d63527eb7..6b24182b9c 100644 --- a/ext/mysql/libmysql/mf_casecnv.c +++ b/ext/mysql/libmysql/mf_casecnv.c @@ -1,19 +1,5 @@ -/* 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 */ +/* Copyright Abandoned 1996 TCX DataKonsult AB & Monty Program KB & Detron HB + This file is public domain and comes with NO WARRANTY of any kind */ /* Functions to convert to lover_case and to upper_case in scandinavia. @@ -32,17 +18,16 @@ 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)) - while (*str) - { - if ((l=my_ismbchar(default_charset_info, str,end))) str+=l; - else *str=toupper(*str),++str; - } - else + register char *end=str+strlen(str); + while (*str) + { + if ((l=ismbchar(str,end))) str+=l; + else *str=toupper(*str),++str; + } +#else + while ((*str = toupper(*str)) != 0) + str++; #endif - while ((*str = toupper(*str)) != 0) - str++; } /* caseup_str */ /* string to lowercase */ @@ -51,17 +36,16 @@ 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)) - while (*str) - { - if ((l=my_ismbchar(default_charset_info, str,end))) str+=l; - else *str=tolower(*str),++str; - } - else + register char *end=str+strlen(str); + while (*str) + { + if ((l=ismbchar(str,end))) str+=l; + else *str=tolower(*str),++str; + } +#else + while ((*str= tolower(*str)) != 0) + str++; #endif - while ((*str= tolower(*str)) != 0) - str++; } /* casedn_str */ @@ -72,16 +56,15 @@ void caseup(my_string str, uint length) #ifdef USE_MB register uint32 l; register char *end=str+length; - if (use_mb(default_charset_info)) - while (str<end) - { - if ((l=my_ismbchar(default_charset_info, str,end))) str+=l; - else *str=toupper(*str),++str; - } - else + while (str<end) + { + if ((l=ismbchar(str,end))) str+=l; + else *str=toupper(*str),++str; + } +#else + for ( ; length>0 ; length--, str++) + *str= toupper(*str); #endif - for ( ; length>0 ; length--, str++) - *str= toupper(*str); } /* caseup */ /* to lowercase */ @@ -91,16 +74,15 @@ void casedn(my_string str, uint length) #ifdef USE_MB register uint32 l; register char *end=str+length; - if (use_mb(default_charset_info)) - while (str<end) - { - if ((l=my_ismbchar(default_charset_info, str,end))) str+=l; - else *str=tolower(*str),++str; - } - else + while (str<end) + { + if ((l=ismbchar(str,end))) str+=l; + else *str=tolower(*str),++str; + } +#else + for ( ; length>0 ; length--, str++) + *str= tolower(*str); #endif - for ( ; length>0 ; length--, str++) - *str= tolower(*str); } /* casedn */ /* to sort-string that can be compared to get text in order */ @@ -118,7 +100,7 @@ void case_sort(my_string str, uint length) Wei He (hewei@mail.ied.ac.cn) */ -my_string my_strcasestr(const char *str, const char *search) +my_string strcasestr(const char *str, const char *search) { uchar *i,*j,*pos; @@ -126,8 +108,7 @@ my_string my_strcasestr(const char *str, const char *search) skipp: while (*pos != '\0') { - if (toupper((uchar) *pos++) == toupper((uchar) *search)) - { + if (toupper((uchar) *pos++) == toupper((uchar) *search)) { i=(uchar*) pos; j=(uchar*) search+1; while (*j) if (toupper(*i++) != toupper(*j++)) goto skipp; @@ -144,28 +125,23 @@ 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 const char *end=s+strlen(s); + while (s<end) { - while (s<end) + if ((l=ismbchar(s,end))) { - if ((l=my_ismbchar(default_charset_info, s,end))) - { - while (l--) - if (*s++ != *t++) return 1; - } - else if (my_ismbhead(default_charset_info, *t)) return 1; - else if (toupper((uchar) *s++) != toupper((uchar) *t++)) return 1; + while (l--) + if (*s++ != *t++) return 1; } - return *t; + else if (ismbhead(*t)) return 1; + else if (toupper((uchar) *s++) != toupper((uchar) *t++)) return 1; } - else + return *t; +#else + while (toupper((uchar) *s) == toupper((uchar) *t++)) + if (!*s++) return 0; + return ((int) toupper((uchar) s[0]) - (int) toupper((uchar) t[-1])); #endif - { - while (toupper((uchar) *s) == toupper((uchar) *t++)) - if (!*s++) return 0; - return ((int) toupper((uchar) s[0]) - (int) toupper((uchar) t[-1])); - } } @@ -174,79 +150,46 @@ 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)) + while (s<end) { - while (s<end) + if ((l=ismbchar(s,end))) { - if ((l=my_ismbchar(default_charset_info, s,end))) - { - while (l--) - if (*s++ != *t++) return 1; - } - else if (my_ismbhead(default_charset_info, *t)) return 1; - else if (toupper((uchar) *s++) != toupper((uchar) *t++)) return 1; + while (l--) + if (*s++ != *t++) return 1; } - return 0; + else if (ismbhead(*t)) return 1; + else if (toupper((uchar) *s++) != toupper((uchar) *t++)) return 1; } - else + return 0; +#else + while (len-- != 0 && toupper(*s++) == toupper(*t++)) ; + return (int) len+1; #endif - { - while (len-- != 0 && toupper(*s++) == toupper(*t++)) ; - return (int) len+1; - } } int my_strsortcmp(const char *s, const char *t) { #ifdef USE_STRCOLL - if (use_strcoll(default_charset_info)) - return my_strcoll(default_charset_info, (uchar *)s, (uchar *)t); - else + return my_strcoll((uchar *)s, (uchar *)t); +#else + while (my_sort_order[(uchar) *s] == my_sort_order[(uchar) *t++]) + if (!*s++) return 0; + return ((int) my_sort_order[(uchar) s[0]] - (int) my_sort_order[(uchar) t[-1]]); #endif - { - while (my_sort_order[(uchar) *s] == my_sort_order[(uchar) *t++]) - if (!*s++) return 0; - return ((int) my_sort_order[(uchar) s[0]] - - (int) my_sort_order[(uchar) t[-1]]); - } } int my_sortcmp(const char *s, const char *t, uint len) { -#ifdef USE_STRCOLL - if (use_strcoll(default_charset_info)) - return my_strnncoll(default_charset_info, - (uchar *)s, len, (uchar *)t, len); - else -#endif +#ifndef USE_STRCOLL + while (len--) { - while (len--) - { - if (my_sort_order[(uchar) *s++] != my_sort_order[(uchar) *t++]) - return ((int) my_sort_order[(uchar) s[-1]] - - (int) my_sort_order[(uchar) t[-1]]); - } - return 0; + if (my_sort_order[(uchar) *s++] != my_sort_order[(uchar) *t++]) + return ((int) my_sort_order[(uchar) s[-1]] - + (int) my_sort_order[(uchar) t[-1]]); } -} - -int my_sortncmp(const char *s, uint s_len, const char *t, uint t_len) -{ -#ifdef USE_STRCOLL - if (use_strcoll(default_charset_info)) - return my_strnncoll(default_charset_info, - (uchar *)s, s_len, (uchar *)t, t_len); - else + return 0; +#else + return my_strnncoll((uchar *)s, len, (uchar *)t, len); #endif - { - uint len= min(s_len,t_len); - while (len--) - { - if (my_sort_order[(uchar) *s++] != my_sort_order[(uchar) *t++]) - return ((int) my_sort_order[(uchar) s[-1]] - - (int) my_sort_order[(uchar) t[-1]]); - } - return (int) (s_len - t_len); - } } |