~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/charset_info.h

  • Committer: Monty Taylor
  • Date: 2010-12-26 03:15:44 UTC
  • mto: This revision was merged to the branch mainline in revision 2038.
  • Revision ID: mordred@inaugust.com-20101226031544-1cf3raipu53fnmyj
Through page.

Show diffs side-by-side

added added

removed removed

Lines of Context:
23
23
#include <sys/types.h>
24
24
#include <cstddef>
25
25
 
26
 
#include "drizzled/visibility.h"
27
 
 
28
26
namespace drizzled
29
27
{
30
28
 
324
322
#define ILLEGAL_CHARSET_INFO_NUMBER (UINT32_MAX)
325
323
 
326
324
 
327
 
extern DRIZZLED_API CHARSET_INFO my_charset_bin;
328
 
extern DRIZZLED_API CHARSET_INFO my_charset_utf8mb4_bin;
329
 
extern DRIZZLED_API CHARSET_INFO my_charset_utf8mb4_general_ci;
330
 
extern DRIZZLED_API CHARSET_INFO my_charset_utf8mb4_unicode_ci;
 
325
extern CHARSET_INFO my_charset_bin;
 
326
extern CHARSET_INFO my_charset_utf8mb4_bin;
 
327
extern CHARSET_INFO my_charset_utf8mb4_general_ci;
 
328
extern CHARSET_INFO my_charset_utf8mb4_unicode_ci;
331
329
 
332
330
#define MY_UTF8MB4                 "utf8"
333
331
#define my_charset_utf8_general_ci ::drizzled::my_charset_utf8mb4_general_ci
686
684
  return (c | 64);
687
685
}
688
686
 
689
 
inline static char my_toupper(const charset_info_st *s, unsigned char c)
690
 
{
691
 
  return s->to_upper[c];
692
 
}
693
 
 
694
 
inline static char my_tolower(const charset_info_st *s, unsigned char c)
695
 
{
696
 
  return s->to_lower[c];
697
 
}
698
 
 
699
 
inline static bool my_isalpha(const charset_info_st *s, unsigned char c)
700
 
{
701
 
  return (s->ctype+1)[c] & (_MY_U | _MY_L);
702
 
}
703
 
 
704
 
inline static bool my_isupper(const charset_info_st *s, unsigned char c)
705
 
{
706
 
  return (s->ctype+1)[c] & _MY_U;
707
 
}
708
 
 
709
 
inline static bool my_islower(const charset_info_st *s, unsigned char c)
710
 
{
711
 
  return (s->ctype+1)[c] & _MY_L;
712
 
}
713
 
 
714
 
inline static bool my_isdigit(const charset_info_st *s, unsigned char c)
715
 
{
716
 
  return (s->ctype+1)[c] & _MY_NMR;
717
 
}
718
 
 
719
 
inline static bool my_isxdigit(const charset_info_st *s, unsigned char c)
720
 
{
721
 
  return (s->ctype+1)[c] & _MY_X;
722
 
}
723
 
 
724
 
inline static bool my_isalnum(const charset_info_st *s, unsigned char c) 
725
 
{
726
 
  return (s->ctype+1)[c] & (_MY_U | _MY_L | _MY_NMR);
727
 
}
728
 
 
729
 
inline static bool my_isspace(const charset_info_st *s, unsigned char c)
730
 
{
731
 
  return (s->ctype+1)[c] & _MY_SPC;
732
 
}
733
 
 
734
 
inline static bool my_ispunct(const charset_info_st *s, unsigned char c)  
735
 
{
736
 
  return (s->ctype+1)[c] & _MY_PNT;
737
 
}
738
 
 
739
 
inline static bool my_isprint(const charset_info_st *s, unsigned char c)  
740
 
{
741
 
  return (s->ctype+1)[c] & (_MY_PNT | _MY_U | _MY_L | _MY_NMR | _MY_B);
742
 
}
743
 
 
744
 
inline static bool my_isgraph(const charset_info_st *s, unsigned char c)
745
 
{
746
 
  return (s->ctype+1)[c] & (_MY_PNT | _MY_U | _MY_L | _MY_NMR);
747
 
}
748
 
 
749
 
inline static bool my_iscntrl(const charset_info_st *s, unsigned char c)  
750
 
{
751
 
  return (s->ctype+1)[c] & _MY_CTR;
 
687
inline static char my_toupper(const charset_info_st *s, char c)
 
688
{
 
689
  return (char)(s->to_upper[(unsigned char)c]);
 
690
}
 
691
 
 
692
inline static char my_tolower(const charset_info_st *s, char c)
 
693
{
 
694
  return (char)(s->to_lower[(unsigned char)c]);
 
695
}
 
696
 
 
697
inline static bool my_isalpha(const charset_info_st *s, char c)
 
698
{
 
699
  return ((s->ctype+1)[(unsigned char)c] & (_MY_U | _MY_L));
 
700
}
 
701
 
 
702
inline static bool my_isupper(const charset_info_st *s, char c)
 
703
{
 
704
  return ((s->ctype+1)[(unsigned char)c] & _MY_U);
 
705
}
 
706
 
 
707
inline static bool my_islower(const charset_info_st *s, char c)
 
708
{
 
709
  return ((s->ctype+1)[(unsigned char)c] & _MY_L);
 
710
}
 
711
 
 
712
inline static bool my_isdigit(const charset_info_st *s, char c)
 
713
{
 
714
  return ((s->ctype+1)[(unsigned char)c] & _MY_NMR);
 
715
}
 
716
 
 
717
inline static bool my_isxdigit(const charset_info_st *s, char c)
 
718
{
 
719
  return ((s->ctype+1)[(unsigned char)c] & _MY_X);
 
720
}
 
721
 
 
722
inline static bool my_isalnum(const charset_info_st *s, char c) 
 
723
{
 
724
  return ((s->ctype+1)[(unsigned char)c] & (_MY_U | _MY_L | _MY_NMR));
 
725
}
 
726
 
 
727
inline static bool my_isspace(const charset_info_st *s, char c)
 
728
{
 
729
  return ((s->ctype+1)[(unsigned char)c] & _MY_SPC);
 
730
}
 
731
 
 
732
inline static bool my_ispunct(const charset_info_st *s, char c)  
 
733
{
 
734
  return ((s->ctype+1)[(unsigned char)c] & _MY_PNT);
 
735
}
 
736
 
 
737
inline static bool my_isprint(const charset_info_st *s, char c)  
 
738
{
 
739
  return ((s->ctype+1)[(unsigned char)c] & (_MY_PNT | _MY_U | _MY_L | _MY_NMR | _MY_B));
 
740
}
 
741
 
 
742
inline static bool my_isgraph(const charset_info_st *s, char c)
 
743
{
 
744
  return ((s->ctype+1)[(unsigned char)c] & (_MY_PNT | _MY_U | _MY_L | _MY_NMR));
 
745
}
 
746
 
 
747
inline static bool my_iscntrl(const charset_info_st *s, char c)  
 
748
{
 
749
  return ((s->ctype+1)[(unsigned char)c] & _MY_CTR);
752
750
}
753
751
 
754
752
/* Some macros that should be cleaned up a little */
755
753
inline static bool my_isvar(const charset_info_st *s, char c)
756
754
{
757
 
  return my_isalnum(s,c) || (c) == '_';
 
755
  return (my_isalnum(s,c) || (c) == '_');
758
756
}
759
757
 
760
758
inline static bool my_isvar_start(const charset_info_st *s, char c)
761
759
{
762
 
  return my_isalpha(s,c) || (c) == '_';
 
760
  return (my_isalpha(s,c) || (c) == '_');
763
761
}
764
762
 
765
763
inline static bool my_binary_compare(const charset_info_st *s)
766
764
{
767
 
  return s->state  & MY_CS_BINSORT;
 
765
  return (s->state  & MY_CS_BINSORT);
768
766
}
769
767
 
770
768
inline static bool use_strnxfrm(const charset_info_st *s)
771
769
{
772
 
  return s->state & MY_CS_STRNXFRM;
 
770
  return (s->state & MY_CS_STRNXFRM);
773
771
}
774
772
 
775
773
inline static size_t my_strnxfrm(const charset_info_st *cs, 
821
819
inline static size_t my_charpos(const charset_info_st *cs, 
822
820
                                const CHAR_T *b, const CHAR_T* e, size_t num)
823
821
{
824
 
  return cs->cset->charpos(cs, reinterpret_cast<const char*>(b), reinterpret_cast<const char*>(e), num);
 
822
  return (cs->cset->charpos(cs, (const char*) b, (const char *)e, num));
825
823
}
826
824
 
827
825
inline static bool use_mb(const charset_info_st *cs)
828
826
{
829
 
  return cs->cset->ismbchar != NULL;
 
827
  return (cs->cset->ismbchar != NULL);
830
828
}
831
829
 
832
830
inline static unsigned int  my_ismbchar(const charset_info_st *cs, const char *a, const char *b)
833
831
{
834
 
  return cs->cset->ismbchar(cs, a, b);
 
832
  return (cs->cset->ismbchar(cs, a, b));
835
833
}
836
834
 
837
835
inline static unsigned int my_mbcharlen(const charset_info_st *cs, uint32_t c)
838
836
{
839
 
  return cs->cset->mbcharlen(cs, c);
 
837
  return (cs->cset->mbcharlen(cs, c));
840
838
}
841
839
 
842
840
 
843
841
inline static size_t my_caseup_str(const charset_info_st *cs, char *src)
844
842
{
845
 
  return cs->cset->caseup_str(cs, src);
 
843
  return (cs->cset->caseup_str(cs, src));
846
844
}
847
845
 
848
846
inline static size_t my_casedn_str(const charset_info_st *cs, char *src)
849
847
{
850
 
  return cs->cset->casedn_str(cs, src);
 
848
  return (cs->cset->casedn_str(cs, src));
851
849
}
852
850
 
853
851
inline static long my_strntol(const charset_info_st *cs,