CMGDK r49-rc2
|
00001 / * C o p y r i g h t ( C ) 2 0 0 0 M y S Q L A B 00002 00003 T h i s p r o g r a m i s f r e e s o f t w a r e ; y o u c a n r e d i s t r i b u t e i t a n d / o r m o d i f y 00004 00005 i t u n d e r t h e t e r m s o f t h e G N U G e n e r a l P u b l i c L i c e n s e a s p u b l i s h e d b y 00006 00007 t h e F r e e S o f t w a r e F o u n d a t i o n ; v e r s i o n 2 o f t h e L i c e n s e . 00008 00009 T h i s p r o g r a m i s d i s t r i b u t e d i n t h e h o p e t h a t i t w i l l b e u s e f u l , 00010 00011 b u t W I T H O U T A N Y W A R R A N T Y ; w i t h o u t e v e n t h e i m p l i e d w a r r a n t y o f 00012 00013 M E R C H A N T A B I L I T Y o r F I T N E S S F O R A P A R T I C U L A R P U R P O S E . S e e t h e 00014 00015 G N U G e n e r a l P u b l i c L i c e n s e f o r m o r e d e t a i l s . 00016 00017 Y o u s h o u l d h a v e r e c e i v e d a c o p y o f t h e G N U G e n e r a l P u b l i c L i c e n s e 00018 00019 a l o n g w i t h t h i s p r o g r a m ; i f n o t , w r i t e t o t h e F r e e S o f t w a r e 00020 00021 F o u n d a t i o n , I n c . , 5 9 T e m p l e P l a c e , S u i t e 3 3 0 , B o s t o n , M A 0 2 1 1 1 - 1 3 0 7 U S A * / 00022 00023 / * 00024 00025 A b e t t e r i n p l e m e n t a t i o n o f t h e U N I X c t y p e ( 3 ) l i b r a r y . 00026 00027 N o t e s : m y _ g l o b a l . h s h o u l d b e i n c l u d e d b e f o r e c t y p e . h 00028 00029 * / 00030 00031 # i f n d e f _ m _ c t y p e _ h 00032 00033 # d e f i n e _ m _ c t y p e _ h 00034 00035 # i n c l u d e < m y _ a t t r i b u t e . h > 00036 00037 # i f d e f _ _ c p l u s p l u s 00038 00039 e x t e r n " C " { 00040 00041 # e n d i f 00042 00043 # d e f i n e M Y _ C S _ N A M E _ S I Z E 3 2 00044 00045 # d e f i n e M Y _ C S _ C T Y P E _ T A B L E _ S I Z E 2 5 7 00046 00047 # d e f i n e M Y _ C S _ T O _ L O W E R _ T A B L E _ S I Z E 2 5 6 00048 00049 # d e f i n e M Y _ C S _ T O _ U P P E R _ T A B L E _ S I Z E 2 5 6 00050 00051 # d e f i n e M Y _ C S _ S O R T _ O R D E R _ T A B L E _ S I Z E 2 5 6 00052 00053 # d e f i n e M Y _ C S _ T O _ U N I _ T A B L E _ S I Z E 2 5 6 00054 00055 # d e f i n e C H A R S E T _ D I R " c h a r s e t s / " 00056 00057 # d e f i n e m y _ w c _ t u l o n g 00058 00059 t y p e d e f s t r u c t u n i c a s e _ i n f o _ s t 00060 00061 { 00062 00063 u i n t 1 6 t o u p p e r ; 00064 00065 u i n t 1 6 t o l o w e r ; 00066 00067 u i n t 1 6 s o r t ; 00068 00069 } M Y _ U N I C A S E _ I N F O ; 00070 00071 00072 00073 e x t e r n M Y _ U N I C A S E _ I N F O * m y _ u n i c a s e _ d e f a u l t [ 2 5 6 ] ; 00074 00075 e x t e r n M Y _ U N I C A S E _ I N F O * m y _ u n i c a s e _ t u r k i s h [ 2 5 6 ] ; 00076 00077 t y p e d e f s t r u c t u n i _ c t y p e _ s t 00078 00079 { 00080 00081 u c h a r p c t y p e ; 00082 00083 u c h a r * c t y p e ; 00084 00085 } M Y _ U N I _ C T Y P E ; 00086 00087 e x t e r n M Y _ U N I _ C T Y P E m y _ u n i _ c t y p e [ 2 5 6 ] ; 00088 00089 / * w m _ w c a n d w c _ m b r e t u r n c o d e s * / 00090 00091 # d e f i n e M Y _ C S _ I L S E Q 0 / * W r o n g b y s e q u e n c e : w b _ w c * / 00092 00093 # d e f i n e M Y _ C S _ I L U N I 0 / * C a n n o t e n c o d e U n i c o d e t o c h a r s e t : w c _ m b * / 00094 00095 # d e f i n e M Y _ C S _ T O O S M A L L - 1 0 1 / * N e e d a t l e a s t o n e b y t e : w c _ m b a n d m b _ w c * / 00096 00097 # d e f i n e M Y _ C S _ T O O S M A L L 2 - 1 0 2 / * N e e d a t l e a s t t w o b y t e s : w c _ m b a n d m b _ w c * / 00098 00099 # d e f i n e M Y _ C S _ T O O S M A L L 3 - 1 0 3 / * N e e d a t l e a s t t h r e e b y t e s : w c _ m b a n d m b _ w c * / 00100 00101 / * T h e s e f o l l o w i n g t h r e e a r e c u r r e n t l y n o t r e a l l y u s e d * / 00102 00103 # d e f i n e M Y _ C S _ T O O S M A L L 4 - 1 0 4 / * N e e d a t l e a s t 4 b y t e s : w c _ m b a n d m b _ w c * / 00104 00105 # d e f i n e M Y _ C S _ T O O S M A L L 5 - 1 0 5 / * N e e d a t l e a s t 5 b y t e s : w c _ m b a n d m b _ w c * / 00106 00107 # d e f i n e M Y _ C S _ T O O S M A L L 6 - 1 0 6 / * N e e d a t l e a s t 6 b y t e s : w c _ m b a n d m b _ w c * / 00108 00109 / * A h e l p e r m a c r o s f o r " n e e d a t l e a s t n b y t e s " * / 00110 00111 # d e f i n e M Y _ C S _ T O O S M A L L N ( n ) ( - 1 0 0 - ( n ) ) 00112 00113 # d e f i n e M Y _ S E Q _ I N T T A I L 1 00114 00115 # d e f i n e M Y _ S E Q _ S P A C E S 2 00116 00117 / * M y c h a r s e t s _ l i s t f l a g s * / 00118 00119 # d e f i n e M Y _ C S _ C O M P I L E D 1 / * c o m p i l e d - i n s e t s * / 00120 00121 # d e f i n e M Y _ C S _ C O N F I G 2 / * s e t s t h a t h a v e a * . c o n f f i l e * / 00122 00123 # d e f i n e M Y _ C S _ I N D E X 4 / * s e t s l i s t e d i n t h e I n d e x f i l e * / 00124 00125 # d e f i n e M Y _ C S _ L O A D E D 8 / * s e t s t h a t a r e c u r r e n t l y l o a d e d * / 00126 00127 # d e f i n e M Y _ C S _ B I N S O R T 1 6 / * i f b i n a r y s o r t o r d e r * / 00128 00129 # d e f i n e M Y _ C S _ P R I M A R Y 3 2 / * i f p r i m a r y c o l l a t i o n * / 00130 00131 # d e f i n e M Y _ C S _ S T R N X F R M 6 4 / * i f s t r n x f r m i s u s e d f o r s o r t * / 00132 00133 # d e f i n e M Y _ C S _ U N I C O D E 1 2 8 / * i s a c h a r s e t i s f u l l u n i c o d e * / 00134 00135 # d e f i n e M Y _ C S _ R E A D Y 2 5 6 / * i f a c h a r s e t i s i n i t i a l i z e d * / 00136 00137 # d e f i n e M Y _ C S _ A V A I L A B L E 5 1 2 / * I f e i t h e r c o m p i l e d - i n o r l o a d e d * / 00138 00139 # d e f i n e M Y _ C S _ C S S O R T 1 0 2 4 / * i f c a s e s e n s i t i v e s o r t o r d e r * / 00140 00141 # d e f i n e M Y _ C S _ H I D D E N 2 0 4 8 / * d o n ' t d i s p l a y i n S H O W * / 00142 00143 # d e f i n e M Y _ C S _ P U R E A S C I I 4 0 9 6 / * i f a c h a r s e t i s p u r e a s c i i * / 00144 00145 # d e f i n e M Y _ C S _ N O N A S C I I 8 1 9 2 / * i f n o t A S C I I - c o m p a t i b l e * / 00146 00147 # d e f i n e M Y _ C H A R S E T _ U N D E F I N E D 0 00148 00149 / * C h a r a c t e r r e p e r t o i r e f l a g s * / 00150 00151 # d e f i n e M Y _ R E P E R T O I R E _ A S C I I 1 / * P u r e A S C I I U + 0 0 0 0 . . U + 0 0 7 F * / 00152 00153 # d e f i n e M Y _ R E P E R T O I R E _ E X T E N D E D 2 / * E x t e n d e d c h a r a c t e r s : U + 0 0 8 0 . . U + F F F F * / 00154 00155 # d e f i n e M Y _ R E P E R T O I R E _ U N I C O D E 3 0 3 / * A S C I I | E X T E N D E D : U + 0 0 0 0 . . U + F F F F * / 00156 00157 / * F l a g s f o r s t r x f r m * / 00158 00159 # d e f i n e M Y _ S T R X F R M _ L E V E L 1 0 x 0 0 0 0 0 0 0 1 / * f o r p r i m a r y w e i g h t s * / 00160 00161 # d e f i n e M Y _ S T R X F R M _ L E V E L 2 0 x 0 0 0 0 0 0 0 2 / * f o r s e c o n d a r y w e i g h t s * / 00162 00163 # d e f i n e M Y _ S T R X F R M _ L E V E L 3 0 x 0 0 0 0 0 0 0 4 / * f o r t e r t i a r y w e i g h t s * / 00164 00165 # d e f i n e M Y _ S T R X F R M _ L E V E L 4 0 x 0 0 0 0 0 0 0 8 / * f o u r t h l e v e l w e i g h t s * / 00166 00167 # d e f i n e M Y _ S T R X F R M _ L E V E L 5 0 x 0 0 0 0 0 0 1 0 / * f i f t h l e v e l w e i g h t s * / 00168 00169 # d e f i n e M Y _ S T R X F R M _ L E V E L 6 0 x 0 0 0 0 0 0 2 0 / * s i x t h l e v e l w e i g h t s * / 00170 00171 # d e f i n e M Y _ S T R X F R M _ L E V E L _ A L L 0 x 0 0 0 0 0 0 3 F / * B i t O R f o r t h e a b o v e s i x * / 00172 00173 # d e f i n e M Y _ S T R X F R M _ N L E V E L S 6 / * N u m b e r o f p o s s i b l e l e v e l s * / 00174 00175 # d e f i n e M Y _ S T R X F R M _ P A D _ W I T H _ S P A C E 0 x 0 0 0 0 0 0 4 0 / * i f p a d r e s u l t w i t h s p a c e s * / 00176 00177 # d e f i n e M Y _ S T R X F R M _ P A D _ T O _ M A X L E N 0 x 0 0 0 0 0 0 8 0 / * i f p a d t a i l ( f o r f i l e s o r t ) * / 00178 00179 # d e f i n e M Y _ S T R X F R M _ D E S C _ L E V E L 1 0 x 0 0 0 0 0 1 0 0 / * i f d e s c o r d e r f o r l e v e l 1 * / 00180 00181 # d e f i n e M Y _ S T R X F R M _ D E S C _ L E V E L 2 0 x 0 0 0 0 0 2 0 0 / * i f d e s c o r d e r f o r l e v e l 2 * / 00182 00183 # d e f i n e M Y _ S T R X F R M _ D E S C _ L E V E L 3 0 x 0 0 0 0 0 3 0 0 / * i f d e s c o r d e r f o r l e v e l 3 * / 00184 00185 # d e f i n e M Y _ S T R X F R M _ D E S C _ L E V E L 4 0 x 0 0 0 0 0 8 0 0 / * i f d e s c o r d e r f o r l e v e l 4 * / 00186 00187 # d e f i n e M Y _ S T R X F R M _ D E S C _ L E V E L 5 0 x 0 0 0 0 1 0 0 0 / * i f d e s c o r d e r f o r l e v e l 5 * / 00188 00189 # d e f i n e M Y _ S T R X F R M _ D E S C _ L E V E L 6 0 x 0 0 0 0 2 0 0 0 / * i f d e s c o r d e r f o r l e v e l 6 * / 00190 00191 # d e f i n e M Y _ S T R X F R M _ D E S C _ S H I F T 8 00192 00193 # d e f i n e M Y _ S T R X F R M _ U N U S E D _ 0 0 0 0 4 0 0 0 0 x 0 0 0 0 4 0 0 0 / * f o r f u t u r e e x t e n s i o n s * / 00194 00195 # d e f i n e M Y _ S T R X F R M _ U N U S E D _ 0 0 0 0 8 0 0 0 0 x 0 0 0 0 8 0 0 0 / * f o r f u t u r e e x t e n s i o n s * / 00196 00197 # d e f i n e M Y _ S T R X F R M _ R E V E R S E _ L E V E L 1 0 x 0 0 0 1 0 0 0 0 / * i f r e v e r s e o r d e r f o r l e v e l 1 * / 00198 00199 # d e f i n e M Y _ S T R X F R M _ R E V E R S E _ L E V E L 2 0 x 0 0 0 2 0 0 0 0 / * i f r e v e r s e o r d e r f o r l e v e l 2 * / 00200 00201 # d e f i n e M Y _ S T R X F R M _ R E V E R S E _ L E V E L 3 0 x 0 0 0 4 0 0 0 0 / * i f r e v e r s e o r d e r f o r l e v e l 3 * / 00202 00203 # d e f i n e M Y _ S T R X F R M _ R E V E R S E _ L E V E L 4 0 x 0 0 0 8 0 0 0 0 / * i f r e v e r s e o r d e r f o r l e v e l 4 * / 00204 00205 # d e f i n e M Y _ S T R X F R M _ R E V E R S E _ L E V E L 5 0 x 0 0 1 0 0 0 0 0 / * i f r e v e r s e o r d e r f o r l e v e l 5 * / 00206 00207 # d e f i n e M Y _ S T R X F R M _ R E V E R S E _ L E V E L 6 0 x 0 0 2 0 0 0 0 0 / * i f r e v e r s e o r d e r f o r l e v e l 6 * / 00208 00209 # d e f i n e M Y _ S T R X F R M _ R E V E R S E _ S H I F T 1 6 00210 00211 00212 00213 t y p e d e f s t r u c t m y _ u n i _ i d x _ s t 00214 00215 { 00216 00217 u i n t 1 6 f r o m ; 00218 00219 u i n t 1 6 t o ; 00220 00221 u c h a r * t a b ; 00222 00223 } M Y _ U N I _ I D X ; 00224 00225 t y p e d e f s t r u c t 00226 00227 { 00228 00229 u i n t b e g ; 00230 00231 u i n t e n d ; 00232 00233 u i n t m b _ l e n ; 00234 00235 } m y _ m a t c h _ t ; 00236 00237 e n u m m y _ l e x _ s t a t e s 00238 00239 { 00240 00241 M Y _ L E X _ S T A R T , M Y _ L E X _ C H A R , M Y _ L E X _ I D E N T , 00242 00243 M Y _ L E X _ I D E N T _ S E P , M Y _ L E X _ I D E N T _ S T A R T , 00244 00245 M Y _ L E X _ R E A L , M Y _ L E X _ H E X _ N U M B E R , M Y _ L E X _ B I N _ N U M B E R , 00246 00247 M Y _ L E X _ C M P _ O P , M Y _ L E X _ L O N G _ C M P _ O P , M Y _ L E X _ S T R I N G , M Y _ L E X _ C O M M E N T , M Y _ L E X _ E N D , 00248 00249 M Y _ L E X _ O P E R A T O R _ O R _ I D E N T , M Y _ L E X _ N U M B E R _ I D E N T , M Y _ L E X _ I N T _ O R _ R E A L , 00250 00251 M Y _ L E X _ R E A L _ O R _ P O I N T , M Y _ L E X _ B O O L , M Y _ L E X _ E O L , M Y _ L E X _ E S C A P E , 00252 00253 M Y _ L E X _ L O N G _ C O M M E N T , M Y _ L E X _ E N D _ L O N G _ C O M M E N T , M Y _ L E X _ S E M I C O L O N , 00254 00255 M Y _ L E X _ S E T _ V A R , M Y _ L E X _ U S E R _ E N D , M Y _ L E X _ H O S T N A M E , M Y _ L E X _ S K I P , 00256 00257 M Y _ L E X _ U S E R _ V A R I A B L E _ D E L I M I T E R , M Y _ L E X _ S Y S T E M _ V A R , 00258 00259 M Y _ L E X _ I D E N T _ O R _ K E Y W O R D , 00260 00261 M Y _ L E X _ I D E N T _ O R _ H E X , M Y _ L E X _ I D E N T _ O R _ B I N , M Y _ L E X _ I D E N T _ O R _ N C H A R , 00262 00263 M Y _ L E X _ S T R I N G _ O R _ D E L I M I T E R 00264 00265 } ; 00266 00267 s t r u c t c h a r s e t _ i n f o _ s t ; 00268 00269 00270 00271 / * S e e s t r i n g s / C H A R S E T _ I N F O . t x t f o r i n f o r m a t i o n a b o u t t h i s s t r u c t u r e * / 00272 00273 t y p e d e f s t r u c t m y _ c o l l a t i o n _ h a n d l e r _ s t 00274 00275 { 00276 00277 m y _ b o o l ( * i n i t ) ( s t r u c t c h a r s e t _ i n f o _ s t * , v o i d * ( * a l l o c ) ( s i z e _ t ) ) ; 00278 00279 / * C o l l a t i o n r o u t i n e s * / 00280 00281 i n t ( * s t r n n c o l l ) ( s t r u c t c h a r s e t _ i n f o _ s t * , 00282 00283 c o n s t u c h a r * , s i z e _ t , c o n s t u c h a r * , s i z e _ t , m y _ b o o l ) ; 00284 00285 i n t ( * s t r n n c o l l s p ) ( s t r u c t c h a r s e t _ i n f o _ s t * , 00286 00287 c o n s t u c h a r * , s i z e _ t , c o n s t u c h a r * , s i z e _ t , 00288 00289 m y _ b o o l d i f f _ i f _ o n l y _ e n d s p a c e _ d i f f e r e n c e ) ; 00290 00291 s i z e _ t ( * s t r n x f r m ) ( s t r u c t c h a r s e t _ i n f o _ s t * , 00292 00293 u c h a r * d s t , s i z e _ t d s t l e n , u i n t n w e i g h t s , 00294 00295 c o n s t u c h a r * s r c , s i z e _ t s r c l e n , u i n t f l a g s ) ; 00296 00297 s i z e _ t ( * s t r n x f r m l e n ) ( s t r u c t c h a r s e t _ i n f o _ s t * , s i z e _ t ) ; 00298 00299 m y _ b o o l ( * l i k e _ r a n g e ) ( s t r u c t c h a r s e t _ i n f o _ s t * , 00300 00301 c o n s t c h a r * s , s i z e _ t s _ l e n g t h , 00302 00303 p c h a r w _ p r e f i x , p c h a r w _ o n e , p c h a r w _ m a n y , 00304 00305 s i z e _ t r e s _ l e n g t h , 00306 00307 c h a r * m i n _ s t r , c h a r * m a x _ s t r , 00308 00309 s i z e _ t * m i n _ l e n , s i z e _ t * m a x _ l e n ) ; 00310 00311 i n t ( * w i l d c m p ) ( s t r u c t c h a r s e t _ i n f o _ s t * , 00312 00313 c o n s t c h a r * s t r , c o n s t c h a r * s t r _ e n d , 00314 00315 c o n s t c h a r * w i l d s t r , c o n s t c h a r * w i l d e n d , 00316 00317 i n t e s c a p e , i n t w _ o n e , i n t w _ m a n y ) ; 00318 00319 i n t ( * s t r c a s e c m p ) ( s t r u c t c h a r s e t _ i n f o _ s t * , c o n s t c h a r * , c o n s t c h a r * ) ; 00320 00321 00322 00323 u i n t ( * i n s t r ) ( s t r u c t c h a r s e t _ i n f o _ s t * , 00324 00325 c o n s t c h a r * b , s i z e _ t b _ l e n g t h , 00326 00327 c o n s t c h a r * s , s i z e _ t s _ l e n g t h , 00328 00329 m y _ m a t c h _ t * m a t c h , u i n t n m a t c h ) ; 00330 00331 00332 00333 / * H a s h c a l c u l a t i o n * / 00334 00335 v o i d ( * h a s h _ s o r t ) ( s t r u c t c h a r s e t _ i n f o _ s t * c s , c o n s t u c h a r * k e y , s i z e _ t l e n , 00336 00337 u l o n g * n r 1 , u l o n g * n r 2 ) ; 00338 00339 m y _ b o o l ( * p r o p a g a t e ) ( s t r u c t c h a r s e t _ i n f o _ s t * c s , c o n s t u c h a r * s t r , s i z e _ t l e n ) ; 00340 00341 } M Y _ C O L L A T I O N _ H A N D L E R ; 00342 00343 e x t e r n M Y _ C O L L A T I O N _ H A N D L E R m y _ c o l l a t i o n _ m b _ b i n _ h a n d l e r ; 00344 00345 e x t e r n M Y _ C O L L A T I O N _ H A N D L E R m y _ c o l l a t i o n _ 8 b i t _ b i n _ h a n d l e r ; 00346 00347 e x t e r n M Y _ C O L L A T I O N _ H A N D L E R m y _ c o l l a t i o n _ 8 b i t _ s i m p l e _ c i _ h a n d l e r ; 00348 00349 e x t e r n M Y _ C O L L A T I O N _ H A N D L E R m y _ c o l l a t i o n _ u c s 2 _ u c a _ h a n d l e r ; 00350 00351 / * S o m e t y p e d e f t o m a k e i t e a s y f o r C + + t o m a k e f u n c t i o n p o i n t e r s * / 00352 00353 t y p e d e f i n t ( * m y _ c h a r s e t _ c o n v _ m b _ w c ) ( s t r u c t c h a r s e t _ i n f o _ s t * , m y _ w c _ t * , 00354 00355 c o n s t u c h a r * , c o n s t u c h a r * ) ; 00356 00357 t y p e d e f i n t ( * m y _ c h a r s e t _ c o n v _ w c _ m b ) ( s t r u c t c h a r s e t _ i n f o _ s t * , m y _ w c _ t , 00358 00359 u c h a r * , u c h a r * ) ; 00360 00361 t y p e d e f s i z e _ t ( * m y _ c h a r s e t _ c o n v _ c a s e ) ( s t r u c t c h a r s e t _ i n f o _ s t * , 00362 00363 c h a r * , s i z e _ t , c h a r * , s i z e _ t ) ; 00364 00365 00366 00367 / * S e e s t r i n g s / C H A R S E T _ I N F O . t x t a b o u t i n f o r m a t i o n o n t h i s s t r u c t u r e * / 00368 00369 t y p e d e f s t r u c t m y _ c h a r s e t _ h a n d l e r _ s t 00370 00371 { 00372 00373 m y _ b o o l ( * i n i t ) ( s t r u c t c h a r s e t _ i n f o _ s t * , v o i d * ( * a l l o c ) ( s i z e _ t ) ) ; 00374 00375 / * M u l t i b y t e r o u t i n e s * / 00376 00377 u i n t ( * i s m b c h a r ) ( s t r u c t c h a r s e t _ i n f o _ s t * , c o n s t c h a r * , c o n s t c h a r * ) ; 00378 00379 u i n t ( * m b c h a r l e n ) ( s t r u c t c h a r s e t _ i n f o _ s t * , u i n t c ) ; 00380 00381 s i z e _ t ( * n u m c h a r s ) ( s t r u c t c h a r s e t _ i n f o _ s t * , c o n s t c h a r * b , c o n s t c h a r * e ) ; 00382 00383 s i z e _ t ( * c h a r p o s ) ( s t r u c t c h a r s e t _ i n f o _ s t * , c o n s t c h a r * b , c o n s t c h a r * e , 00384 00385 s i z e _ t p o s ) ; 00386 00387 s i z e _ t ( * w e l l _ f o r m e d _ l e n ) ( s t r u c t c h a r s e t _ i n f o _ s t * , 00388 00389 c o n s t c h a r * b , c o n s t c h a r * e , 00390 00391 s i z e _ t n c h a r s , i n t * e r r o r ) ; 00392 00393 s i z e _ t ( * l e n g t h s p ) ( s t r u c t c h a r s e t _ i n f o _ s t * , c o n s t c h a r * p t r , s i z e _ t l e n g t h ) ; 00394 00395 s i z e _ t ( * n u m c e l l s ) ( s t r u c t c h a r s e t _ i n f o _ s t * , c o n s t c h a r * b , c o n s t c h a r * e ) ; 00396 00397 00398 00399 / * U n i c o d e c o n v e r s i o n * / 00400 00401 m y _ c h a r s e t _ c o n v _ m b _ w c m b _ w c ; 00402 00403 m y _ c h a r s e t _ c o n v _ w c _ m b w c _ m b ; 00404 00405 / * C T Y P E s c a n n e r * / 00406 00407 i n t ( * c t y p e ) ( s t r u c t c h a r s e t _ i n f o _ s t * c s , i n t * c t y p e , 00408 00409 c o n s t u c h a r * s , c o n s t u c h a r * e ) ; 00410 00411 00412 00413 / * F u n c t i o n s f o r c a s e a n d s o r t c o n v e r s i o n * / 00414 00415 s i z e _ t ( * c a s e u p _ s t r ) ( s t r u c t c h a r s e t _ i n f o _ s t * , c h a r * ) ; 00416 00417 s i z e _ t ( * c a s e d n _ s t r ) ( s t r u c t c h a r s e t _ i n f o _ s t * , c h a r * ) ; 00418 00419 m y _ c h a r s e t _ c o n v _ c a s e c a s e u p ; 00420 00421 m y _ c h a r s e t _ c o n v _ c a s e c a s e d n ; 00422 00423 / * C h a r s e t d e p e n d a n t s n p r i n t f ( ) * / 00424 00425 s i z e _ t ( * s n p r i n t f ) ( s t r u c t c h a r s e t _ i n f o _ s t * , c h a r * t o , s i z e _ t n , 00426 00427 c o n s t c h a r * f m t , 00428 00429 . . . ) A T T R I B U T E _ F O R M A T _ F P T R ( p r i n t f , 4 , 5 ) ; 00430 00431 s i z e _ t ( * l o n g 1 0 _ t o _ s t r ) ( s t r u c t c h a r s e t _ i n f o _ s t * , c h a r * t o , s i z e _ t n , 00432 00433 i n t r a d i x , l o n g i n t v a l ) ; 00434 00435 s i z e _ t ( * l o n g l o n g 1 0 _ t o _ s t r ) ( s t r u c t c h a r s e t _ i n f o _ s t * , c h a r * t o , s i z e _ t n , 00436 00437 i n t r a d i x , l o n g l o n g v a l ) ; 00438 00439 00440 00441 v o i d ( * f i l l ) ( s t r u c t c h a r s e t _ i n f o _ s t * , c h a r * t o , s i z e _ t l e n , i n t f i l l ) ; 00442 00443 00444 00445 / * S t r i n g - t o - n u m b e r c o n v e r s i o n r o u t i n e s * / 00446 00447 l o n g ( * s t r n t o l ) ( s t r u c t c h a r s e t _ i n f o _ s t * , c o n s t c h a r * s , s i z e _ t l , 00448 00449 i n t b a s e , c h a r * * e , i n t * e r r ) ; 00450 00451 u l o n g ( * s t r n t o u l ) ( s t r u c t c h a r s e t _ i n f o _ s t * , c o n s t c h a r * s , s i z e _ t l , 00452 00453 i n t b a s e , c h a r * * e , i n t * e r r ) ; 00454 00455 l o n g l o n g ( * s t r n t o l l ) ( s t r u c t c h a r s e t _ i n f o _ s t * , c o n s t c h a r * s , s i z e _ t l , 00456 00457 i n t b a s e , c h a r * * e , i n t * e r r ) ; 00458 00459 u l o n g l o n g ( * s t r n t o u l l ) ( s t r u c t c h a r s e t _ i n f o _ s t * , c o n s t c h a r * s , s i z e _ t l , 00460 00461 i n t b a s e , c h a r * * e , i n t * e r r ) ; 00462 00463 d o u b l e ( * s t r n t o d ) ( s t r u c t c h a r s e t _ i n f o _ s t * , c h a r * s , s i z e _ t l , c h a r * * e , 00464 00465 i n t * e r r ) ; 00466 00467 l o n g l o n g ( * s t r t o l l 1 0 ) ( s t r u c t c h a r s e t _ i n f o _ s t * c s , 00468 00469 c o n s t c h a r * n p t r , c h a r * * e n d p t r , i n t * e r r o r ) ; 00470 00471 u l o n g l o n g ( * s t r n t o u l l 1 0 r n d ) ( s t r u c t c h a r s e t _ i n f o _ s t * c s , 00472 00473 c o n s t c h a r * s t r , s i z e _ t l e n g t h , 00474 00475 i n t u n s i g n e d _ f l , 00476 00477 c h a r * * e n d p t r , i n t * e r r o r ) ; 00478 00479 s i z e _ t ( * s c a n ) ( s t r u c t c h a r s e t _ i n f o _ s t * , c o n s t c h a r * b , c o n s t c h a r * e , 00480 00481 i n t s q ) ; 00482 00483 } M Y _ C H A R S E T _ H A N D L E R ; 00484 00485 e x t e r n M Y _ C H A R S E T _ H A N D L E R m y _ c h a r s e t _ 8 b i t _ h a n d l e r ; 00486 00487 e x t e r n M Y _ C H A R S E T _ H A N D L E R m y _ c h a r s e t _ u c s 2 _ h a n d l e r ; 00488 00489 00490 00491 / * S e e s t r i n g s / C H A R S E T _ I N F O . t x t a b o u t i n f o r m a t i o n o n t h i s s t r u c t u r e * / 00492 00493 t y p e d e f s t r u c t c h a r s e t _ i n f o _ s t 00494 00495 { 00496 00497 u i n t n u m b e r ; 00498 00499 u i n t p r i m a r y _ n u m b e r ; 00500 00501 u i n t b i n a r y _ n u m b e r ; 00502 00503 u i n t s t a t e ; 00504 00505 c o n s t c h a r * c s n a m e ; 00506 00507 c o n s t c h a r * n a m e ; 00508 00509 c o n s t c h a r * c o m m e n t ; 00510 00511 c o n s t c h a r * t a i l o r i n g ; 00512 00513 u c h a r * c t y p e ; 00514 00515 u c h a r * t o _ l o w e r ; 00516 00517 u c h a r * t o _ u p p e r ; 00518 00519 u c h a r * s o r t _ o r d e r ; 00520 00521 u i n t 1 6 * c o n t r a c t i o n s ; 00522 00523 u i n t 1 6 * * s o r t _ o r d e r _ b i g ; 00524 00525 u i n t 1 6 * t a b _ t o _ u n i ; 00526 00527 M Y _ U N I _ I D X * t a b _ f r o m _ u n i ; 00528 00529 M Y _ U N I C A S E _ I N F O * * c a s e i n f o ; 00530 00531 u c h a r * s t a t e _ m a p ; 00532 00533 u c h a r * i d e n t _ m a p ; 00534 00535 u i n t s t r x f r m _ m u l t i p l y ; 00536 00537 u c h a r c a s e u p _ m u l t i p l y ; 00538 00539 u c h a r c a s e d n _ m u l t i p l y ; 00540 00541 u i n t m b m i n l e n ; 00542 00543 u i n t m b m a x l e n ; 00544 00545 u i n t 1 6 m i n _ s o r t _ c h a r ; 00546 00547 u i n t 1 6 m a x _ s o r t _ c h a r ; / * F o r L I K E o p t i m i z a t i o n * / 00548 00549 u c h a r p a d _ c h a r ; 00550 00551 m y _ b o o l e s c a p e _ w i t h _ b a c k s l a s h _ i s _ d a n g e r o u s ; 00552 00553 u c h a r l e v e l s _ f o r _ c o m p a r e ; 00554 00555 u c h a r l e v e l s _ f o r _ o r d e r ; 00556 00557 00558 00559 M Y _ C H A R S E T _ H A N D L E R * c s e t ; 00560 00561 M Y _ C O L L A T I O N _ H A N D L E R * c o l l ; 00562 00563 00564 00565 } C H A R S E T _ I N F O ; 00566 00567 # d e f i n e I L L E G A L _ C H A R S E T _ I N F O _ N U M B E R ( ~ 0 U ) 00568 00569 00570 00571 e x t e r n M Y S Q L _ P L U G I N _ I M P O R T C H A R S E T _ I N F O m y _ c h a r s e t _ b i n ; 00572 00573 e x t e r n C H A R S E T _ I N F O m y _ c h a r s e t _ b i g 5 _ c h i n e s e _ c i ; 00574 00575 e x t e r n C H A R S E T _ I N F O m y _ c h a r s e t _ b i g 5 _ b i n ; 00576 00577 e x t e r n C H A R S E T _ I N F O m y _ c h a r s e t _ c p 9 3 2 _ j a p a n e s e _ c i ; 00578 00579 e x t e r n C H A R S E T _ I N F O m y _ c h a r s e t _ c p 9 3 2 _ b i n ; 00580 00581 e x t e r n C H A R S E T _ I N F O m y _ c h a r s e t _ c p 1 2 5 0 _ c z e c h _ c i ; 00582 00583 e x t e r n C H A R S E T _ I N F O m y _ c h a r s e t _ e u c j p m s _ j a p a n e s e _ c i ; 00584 00585 e x t e r n C H A R S E T _ I N F O m y _ c h a r s e t _ e u c j p m s _ b i n ; 00586 00587 e x t e r n C H A R S E T _ I N F O m y _ c h a r s e t _ e u c k r _ k o r e a n _ c i ; 00588 00589 e x t e r n C H A R S E T _ I N F O m y _ c h a r s e t _ e u c k r _ b i n ; 00590 00591 e x t e r n M Y S Q L _ P L U G I N _ I M P O R T C H A R S E T _ I N F O m y _ c h a r s e t _ f i l e n a m e ; 00592 00593 e x t e r n C H A R S E T _ I N F O m y _ c h a r s e t _ g b 2 3 1 2 _ c h i n e s e _ c i ; 00594 00595 e x t e r n C H A R S E T _ I N F O m y _ c h a r s e t _ g b 2 3 1 2 _ b i n ; 00596 00597 e x t e r n C H A R S E T _ I N F O m y _ c h a r s e t _ g b k _ c h i n e s e _ c i ; 00598 00599 e x t e r n C H A R S E T _ I N F O m y _ c h a r s e t _ g b k _ b i n ; 00600 00601 e x t e r n M Y S Q L _ P L U G I N _ I M P O R T C H A R S E T _ I N F O m y _ c h a r s e t _ l a t i n 1 ; 00602 00603 e x t e r n C H A R S E T _ I N F O m y _ c h a r s e t _ l a t i n 1 _ g e r m a n 2 _ c i ; 00604 00605 e x t e r n C H A R S E T _ I N F O m y _ c h a r s e t _ l a t i n 1 _ b i n ; 00606 00607 e x t e r n C H A R S E T _ I N F O m y _ c h a r s e t _ l a t i n 2 _ c z e c h _ c i ; 00608 00609 e x t e r n C H A R S E T _ I N F O m y _ c h a r s e t _ s j i s _ j a p a n e s e _ c i ; 00610 00611 e x t e r n C H A R S E T _ I N F O m y _ c h a r s e t _ s j i s _ b i n ; 00612 00613 e x t e r n C H A R S E T _ I N F O m y _ c h a r s e t _ t i s 6 2 0 _ t h a i _ c i ; 00614 00615 e x t e r n C H A R S E T _ I N F O m y _ c h a r s e t _ t i s 6 2 0 _ b i n ; 00616 00617 e x t e r n C H A R S E T _ I N F O m y _ c h a r s e t _ u c s 2 _ g e n e r a l _ c i ; 00618 00619 e x t e r n C H A R S E T _ I N F O m y _ c h a r s e t _ u c s 2 _ b i n ; 00620 00621 e x t e r n C H A R S E T _ I N F O m y _ c h a r s e t _ u c s 2 _ u n i c o d e _ c i ; 00622 00623 e x t e r n C H A R S E T _ I N F O m y _ c h a r s e t _ u j i s _ j a p a n e s e _ c i ; 00624 00625 e x t e r n C H A R S E T _ I N F O m y _ c h a r s e t _ u j i s _ b i n ; 00626 00627 e x t e r n C H A R S E T _ I N F O m y _ c h a r s e t _ u t f 1 6 _ b i n ; 00628 00629 e x t e r n C H A R S E T _ I N F O m y _ c h a r s e t _ u t f 1 6 _ g e n e r a l _ c i ; 00630 00631 e x t e r n C H A R S E T _ I N F O m y _ c h a r s e t _ u t f 1 6 _ u n i c o d e _ c i ; 00632 00633 e x t e r n C H A R S E T _ I N F O m y _ c h a r s e t _ u t f 3 2 _ b i n ; 00634 00635 e x t e r n C H A R S E T _ I N F O m y _ c h a r s e t _ u t f 3 2 _ g e n e r a l _ c i ; 00636 00637 e x t e r n C H A R S E T _ I N F O m y _ c h a r s e t _ u t f 3 2 _ u n i c o d e _ c i ; 00638 00639 e x t e r n C H A R S E T _ I N F O m y _ c h a r s e t _ u t f 8 m b 3 _ b i n ; 00640 00641 e x t e r n C H A R S E T _ I N F O m y _ c h a r s e t _ u t f 8 m b 3 _ g e n e r a l _ c i ; 00642 00643 e x t e r n C H A R S E T _ I N F O m y _ c h a r s e t _ u t f 8 m b 3 _ u n i c o d e _ c i ; 00644 00645 e x t e r n C H A R S E T _ I N F O m y _ c h a r s e t _ u t f 8 m b 4 _ b i n ; 00646 00647 e x t e r n M Y S Q L _ P L U G I N _ I M P O R T C H A R S E T _ I N F O m y _ c h a r s e t _ u t f 8 m b 4 _ g e n e r a l _ c i ; 00648 00649 e x t e r n C H A R S E T _ I N F O m y _ c h a r s e t _ u t f 8 m b 4 _ u n i c o d e _ c i ; 00650 00651 # d e f i n e M Y _ U T F 8 M B 3 " u t f 8 m b 3 " 00652 00653 # d e f i n e M Y _ U T F 8 M B 4 " u t f 8 " 00654 00655 # d e f i n e m y _ c h a r s e t _ u t f 8 _ g e n e r a l _ c i m y _ c h a r s e t _ u t f 8 m b 4 _ g e n e r a l _ c i 00656 00657 # d e f i n e m y _ c h a r s e t _ u t f 8 _ b i n m y _ c h a r s e t _ u t f 8 m b 4 _ b i n 00658 00659 00660 00661 / * d e c l a r a t i o n s f o r s i m p l e c h a r s e t s * / 00662 00663 e x t e r n s i z e _ t m y _ s t r n x f r m _ s i m p l e ( C H A R S E T _ I N F O * , 00664 00665 u c h a r * d s t , s i z e _ t d s t l e n , u i n t n w e i g h t s , 00666 00667 c o n s t u c h a r * s r c , s i z e _ t s r c l e n , u i n t f l a g s ) ; 00668 00669 s i z e _ t m y _ s t r n x f r m l e n _ s i m p l e ( C H A R S E T _ I N F O * , s i z e _ t ) ; 00670 00671 e x t e r n i n t m y _ s t r n n c o l l _ s i m p l e ( C H A R S E T _ I N F O * , c o n s t u c h a r * , s i z e _ t , 00672 00673 c o n s t u c h a r * , s i z e _ t , m y _ b o o l ) ; 00674 00675 e x t e r n i n t m y _ s t r n n c o l l s p _ s i m p l e ( C H A R S E T _ I N F O * , c o n s t u c h a r * , s i z e _ t , 00676 00677 c o n s t u c h a r * , s i z e _ t , 00678 00679 m y _ b o o l d i f f _ i f _ o n l y _ e n d s p a c e _ d i f f e r e n c e ) ; 00680 00681 e x t e r n v o i d m y _ h a s h _ s o r t _ s i m p l e ( C H A R S E T _ I N F O * c s , 00682 00683 c o n s t u c h a r * k e y , s i z e _ t l e n , 00684 00685 u l o n g * n r 1 , u l o n g * n r 2 ) ; 00686 00687 e x t e r n s i z e _ t m y _ l e n g t h s p _ 8 b i t ( C H A R S E T _ I N F O * c s , c o n s t c h a r * p t r , s i z e _ t l e n g t h ) ; 00688 00689 e x t e r n u i n t m y _ i n s t r _ s i m p l e ( s t r u c t c h a r s e t _ i n f o _ s t * , 00690 00691 c o n s t c h a r * b , s i z e _ t b _ l e n g t h , 00692 00693 c o n s t c h a r * s , s i z e _ t s _ l e n g t h , 00694 00695 m y _ m a t c h _ t * m a t c h , u i n t n m a t c h ) ; 00696 00697 00698 00699 / * F u n c t i o n s f o r 8 b i t * / 00700 00701 e x t e r n s i z e _ t m y _ c a s e u p _ s t r _ 8 b i t ( C H A R S E T _ I N F O * , c h a r * ) ; 00702 00703 e x t e r n s i z e _ t m y _ c a s e d n _ s t r _ 8 b i t ( C H A R S E T _ I N F O * , c h a r * ) ; 00704 00705 e x t e r n s i z e _ t m y _ c a s e u p _ 8 b i t ( C H A R S E T _ I N F O * , c h a r * s r c , s i z e _ t s r c l e n , 00706 00707 c h a r * d s t , s i z e _ t d s t l e n ) ; 00708 00709 e x t e r n s i z e _ t m y _ c a s e d n _ 8 b i t ( C H A R S E T _ I N F O * , c h a r * s r c , s i z e _ t s r c l e n , 00710 00711 c h a r * d s t , s i z e _ t d s t l e n ) ; 00712 00713 e x t e r n i n t m y _ s t r c a s e c m p _ 8 b i t ( C H A R S E T _ I N F O * c s , c o n s t c h a r * , c o n s t c h a r * ) ; 00714 00715 i n t m y _ m b _ w c _ 8 b i t ( C H A R S E T _ I N F O * c s , m y _ w c _ t * w c , c o n s t u c h a r * s , c o n s t u c h a r * e ) ; 00716 00717 i n t m y _ w c _ m b _ 8 b i t ( C H A R S E T _ I N F O * c s , m y _ w c _ t w c , u c h a r * s , u c h a r * e ) ; 00718 00719 i n t m y _ m b _ c t y p e _ 8 b i t ( C H A R S E T _ I N F O * , i n t * , c o n s t u c h a r * , c o n s t u c h a r * ) ; 00720 00721 i n t m y _ m b _ c t y p e _ m b ( C H A R S E T _ I N F O * , i n t * , c o n s t u c h a r * , c o n s t u c h a r * ) ; 00722 00723 s i z e _ t m y _ s c a n _ 8 b i t ( C H A R S E T _ I N F O * c s , c o n s t c h a r * b , c o n s t c h a r * e , i n t s q ) ; 00724 00725 s i z e _ t m y _ s n p r i n t f _ 8 b i t ( s t r u c t c h a r s e t _ i n f o _ s t * , c h a r * t o , s i z e _ t n , 00726 00727 c o n s t c h a r * f m t , . . . ) 00728 00729 A T T R I B U T E _ F O R M A T ( p r i n t f , 4 , 5 ) ; 00730 00731 l o n g m y _ s t r n t o l _ 8 b i t ( C H A R S E T _ I N F O * , c o n s t c h a r * s , s i z e _ t l , i n t b a s e , 00732 00733 c h a r * * e , i n t * e r r ) ; 00734 00735 u l o n g m y _ s t r n t o u l _ 8 b i t ( C H A R S E T _ I N F O * , c o n s t c h a r * s , s i z e _ t l , i n t b a s e , 00736 00737 c h a r * * e , i n t * e r r ) ; 00738 00739 l o n g l o n g m y _ s t r n t o l l _ 8 b i t ( C H A R S E T _ I N F O * , c o n s t c h a r * s , s i z e _ t l , i n t b a s e , 00740 00741 c h a r * * e , i n t * e r r ) ; 00742 00743 u l o n g l o n g m y _ s t r n t o u l l _ 8 b i t ( C H A R S E T _ I N F O * , c o n s t c h a r * s , s i z e _ t l , i n t b a s e , 00744 00745 c h a r * * e , i n t * e r r ) ; 00746 00747 d o u b l e m y _ s t r n t o d _ 8 b i t ( C H A R S E T _ I N F O * , c h a r * s , s i z e _ t l , c h a r * * e , 00748 00749 i n t * e r r ) ; 00750 00751 s i z e _ t m y _ l o n g 1 0 _ t o _ s t r _ 8 b i t ( C H A R S E T _ I N F O * , c h a r * t o , s i z e _ t l , i n t r a d i x , 00752 00753 l o n g i n t v a l ) ; 00754 00755 s i z e _ t m y _ l o n g l o n g 1 0 _ t o _ s t r _ 8 b i t ( C H A R S E T _ I N F O * , c h a r * t o , s i z e _ t l , i n t r a d i x , 00756 00757 l o n g l o n g v a l ) ; 00758 00759 l o n g l o n g m y _ s t r t o l l 1 0 _ 8 b i t ( C H A R S E T _ I N F O * c s , 00760 00761 c o n s t c h a r * n p t r , c h a r * * e n d p t r , i n t * e r r o r ) ; 00762 00763 l o n g l o n g m y _ s t r t o l l 1 0 _ u c s 2 ( C H A R S E T _ I N F O * c s , 00764 00765 c o n s t c h a r * n p t r , c h a r * * e n d p t r , i n t * e r r o r ) ; 00766 00767 u l o n g l o n g m y _ s t r n t o u l l 1 0 r n d _ 8 b i t ( C H A R S E T _ I N F O * c s , 00768 00769 c o n s t c h a r * s t r , s i z e _ t l e n g t h , i n t 00770 00771 u n s i g n e d _ f l , c h a r * * e n d p t r , i n t * e r r o r ) ; 00772 00773 u l o n g l o n g m y _ s t r n t o u l l 1 0 r n d _ u c s 2 ( C H A R S E T _ I N F O * c s , 00774 00775 c o n s t c h a r * s t r , s i z e _ t l e n g t h , 00776 00777 i n t u n s i g n e d _ f l , c h a r * * e n d p t r , i n t * e r r o r ) ; 00778 00779 v o i d m y _ f i l l _ 8 b i t ( C H A R S E T _ I N F O * c s , c h a r * t o , s i z e _ t l , i n t f i l l ) ; 00780 00781 m y _ b o o l m y _ l i k e _ r a n g e _ s i m p l e ( C H A R S E T _ I N F O * c s , 00782 00783 c o n s t c h a r * p t r , s i z e _ t p t r _ l e n g t h , 00784 00785 p b o o l e s c a p e , p b o o l w _ o n e , p b o o l w _ m a n y , 00786 00787 s i z e _ t r e s _ l e n g t h , 00788 00789 c h a r * m i n _ s t r , c h a r * m a x _ s t r , 00790 00791 s i z e _ t * m i n _ l e n g t h , s i z e _ t * m a x _ l e n g t h ) ; 00792 00793 m y _ b o o l m y _ l i k e _ r a n g e _ m b ( C H A R S E T _ I N F O * c s , 00794 00795 c o n s t c h a r * p t r , s i z e _ t p t r _ l e n g t h , 00796 00797 p b o o l e s c a p e , p b o o l w _ o n e , p b o o l w _ m a n y , 00798 00799 s i z e _ t r e s _ l e n g t h , 00800 00801 c h a r * m i n _ s t r , c h a r * m a x _ s t r , 00802 00803 s i z e _ t * m i n _ l e n g t h , s i z e _ t * m a x _ l e n g t h ) ; 00804 00805 m y _ b o o l m y _ l i k e _ r a n g e _ u c s 2 ( C H A R S E T _ I N F O * c s , 00806 00807 c o n s t c h a r * p t r , s i z e _ t p t r _ l e n g t h , 00808 00809 p b o o l e s c a p e , p b o o l w _ o n e , p b o o l w _ m a n y , 00810 00811 s i z e _ t r e s _ l e n g t h , 00812 00813 c h a r * m i n _ s t r , c h a r * m a x _ s t r , 00814 00815 s i z e _ t * m i n _ l e n g t h , s i z e _ t * m a x _ l e n g t h ) ; 00816 00817 m y _ b o o l m y _ l i k e _ r a n g e _ u t f 1 6 ( C H A R S E T _ I N F O * c s , 00818 00819 c o n s t c h a r * p t r , s i z e _ t p t r _ l e n g t h , 00820 00821 p b o o l e s c a p e , p b o o l w _ o n e , p b o o l w _ m a n y , 00822 00823 s i z e _ t r e s _ l e n g t h , 00824 00825 c h a r * m i n _ s t r , c h a r * m a x _ s t r , 00826 00827 s i z e _ t * m i n _ l e n g t h , s i z e _ t * m a x _ l e n g t h ) ; 00828 00829 m y _ b o o l m y _ l i k e _ r a n g e _ u t f 3 2 ( C H A R S E T _ I N F O * c s , 00830 00831 c o n s t c h a r * p t r , s i z e _ t p t r _ l e n g t h , 00832 00833 p b o o l e s c a p e , p b o o l w _ o n e , p b o o l w _ m a n y , 00834 00835 s i z e _ t r e s _ l e n g t h , 00836 00837 c h a r * m i n _ s t r , c h a r * m a x _ s t r , 00838 00839 s i z e _ t * m i n _ l e n g t h , s i z e _ t * m a x _ l e n g t h ) ; 00840 00841 00842 00843 i n t m y _ w i l d c m p _ 8 b i t ( C H A R S E T _ I N F O * , 00844 00845 c o n s t c h a r * s t r , c o n s t c h a r * s t r _ e n d , 00846 00847 c o n s t c h a r * w i l d s t r , c o n s t c h a r * w i l d e n d , 00848 00849 i n t e s c a p e , i n t w _ o n e , i n t w _ m a n y ) ; 00850 00851 i n t m y _ w i l d c m p _ b i n ( C H A R S E T _ I N F O * , 00852 00853 c o n s t c h a r * s t r , c o n s t c h a r * s t r _ e n d , 00854 00855 c o n s t c h a r * w i l d s t r , c o n s t c h a r * w i l d e n d , 00856 00857 i n t e s c a p e , i n t w _ o n e , i n t w _ m a n y ) ; 00858 00859 s i z e _ t m y _ n u m c h a r s _ 8 b i t ( C H A R S E T _ I N F O * , c o n s t c h a r * b , c o n s t c h a r * e ) ; 00860 00861 s i z e _ t m y _ n u m c e l l s _ 8 b i t ( C H A R S E T _ I N F O * , c o n s t c h a r * b , c o n s t c h a r * e ) ; 00862 00863 s i z e _ t m y _ c h a r p o s _ 8 b i t ( C H A R S E T _ I N F O * , c o n s t c h a r * b , c o n s t c h a r * e , s i z e _ t p o s ) ; 00864 00865 s i z e _ t m y _ w e l l _ f o r m e d _ l e n _ 8 b i t ( C H A R S E T _ I N F O * , c o n s t c h a r * b , c o n s t c h a r * e , 00866 00867 s i z e _ t p o s , i n t * e r r o r ) ; 00868 00869 u i n t m y _ m b c h a r l e n _ 8 b i t ( C H A R S E T _ I N F O * , u i n t c ) ; 00870 00871 00872 00873 / * F u n c t i o n s f o r m u l t i b y t e c h a r s e t s * / 00874 00875 e x t e r n s i z e _ t m y _ c a s e u p _ s t r _ m b ( C H A R S E T _ I N F O * , c h a r * ) ; 00876 00877 e x t e r n s i z e _ t m y _ c a s e d n _ s t r _ m b ( C H A R S E T _ I N F O * , c h a r * ) ; 00878 00879 e x t e r n s i z e _ t m y _ c a s e u p _ m b ( C H A R S E T _ I N F O * , c h a r * s r c , s i z e _ t s r c l e n , 00880 00881 c h a r * d s t , s i z e _ t d s t l e n ) ; 00882 00883 e x t e r n s i z e _ t m y _ c a s e d n _ m b ( C H A R S E T _ I N F O * , c h a r * s r c , s i z e _ t s r c l e n , 00884 00885 c h a r * d s t , s i z e _ t d s t l e n ) ; 00886 00887 e x t e r n i n t m y _ s t r c a s e c m p _ m b ( C H A R S E T _ I N F O * c s , c o n s t c h a r * , c o n s t c h a r * ) ; 00888 00889 i n t m y _ w i l d c m p _ m b ( C H A R S E T _ I N F O * , 00890 00891 c o n s t c h a r * s t r , c o n s t c h a r * s t r _ e n d , 00892 00893 c o n s t c h a r * w i l d s t r , c o n s t c h a r * w i l d e n d , 00894 00895 i n t e s c a p e , i n t w _ o n e , i n t w _ m a n y ) ; 00896 00897 s i z e _ t m y _ n u m c h a r s _ m b ( C H A R S E T _ I N F O * , c o n s t c h a r * b , c o n s t c h a r * e ) ; 00898 00899 s i z e _ t m y _ n u m c e l l s _ m b ( C H A R S E T _ I N F O * , c o n s t c h a r * b , c o n s t c h a r * e ) ; 00900 00901 s i z e _ t m y _ c h a r p o s _ m b ( C H A R S E T _ I N F O * , c o n s t c h a r * b , c o n s t c h a r * e , s i z e _ t p o s ) ; 00902 00903 s i z e _ t m y _ w e l l _ f o r m e d _ l e n _ m b ( C H A R S E T _ I N F O * , c o n s t c h a r * b , c o n s t c h a r * e , 00904 00905 s i z e _ t p o s , i n t * e r r o r ) ; 00906 00907 u i n t m y _ i n s t r _ m b ( s t r u c t c h a r s e t _ i n f o _ s t * , 00908 00909 c o n s t c h a r * b , s i z e _ t b _ l e n g t h , 00910 00911 c o n s t c h a r * s , s i z e _ t s _ l e n g t h , 00912 00913 m y _ m a t c h _ t * m a t c h , u i n t n m a t c h ) ; 00914 00915 i n t m y _ s t r n n c o l l _ m b _ b i n ( C H A R S E T _ I N F O * c s , 00916 00917 c o n s t u c h a r * s , s i z e _ t s l e n , 00918 00919 c o n s t u c h a r * t , s i z e _ t t l e n , 00920 00921 m y _ b o o l t _ i s _ p r e f i x ) ; 00922 00923 i n t m y _ s t r n n c o l l s p _ m b _ b i n ( C H A R S E T _ I N F O * c s , 00924 00925 c o n s t u c h a r * a , s i z e _ t a _ l e n g t h , 00926 00927 c o n s t u c h a r * b , s i z e _ t b _ l e n g t h , 00928 00929 m y _ b o o l d i f f _ i f _ o n l y _ e n d s p a c e _ d i f f e r e n c e ) ; 00930 00931 i n t m y _ w i l d c m p _ m b _ b i n ( C H A R S E T _ I N F O * c s , 00932 00933 c o n s t c h a r * s t r , c o n s t c h a r * s t r _ e n d , 00934 00935 c o n s t c h a r * w i l d s t r , c o n s t c h a r * w i l d e n d , 00936 00937 i n t e s c a p e , i n t w _ o n e , i n t w _ m a n y ) ; 00938 00939 i n t m y _ s t r c a s e c m p _ m b _ b i n ( C H A R S E T _ I N F O * c s _ _ a t t r i b u t e _ _ ( ( u n u s e d ) ) , 00940 00941 c o n s t c h a r * s , c o n s t c h a r * t ) ; 00942 00943 v o i d m y _ h a s h _ s o r t _ m b _ b i n ( C H A R S E T _ I N F O * c s _ _ a t t r i b u t e _ _ ( ( u n u s e d ) ) , 00944 00945 c o n s t u c h a r * k e y , s i z e _ t l e n , u l o n g * n r 1 , u l o n g * n r 2 ) ; 00946 00947 s i z e _ t m y _ s t r n x f r m _ m b ( C H A R S E T _ I N F O * , 00948 00949 u c h a r * d s t , s i z e _ t d s t l e n , u i n t n w e i g h t s , 00950 00951 c o n s t u c h a r * s r c , s i z e _ t s r c l e n , u i n t f l a g s ) ; 00952 00953 s i z e _ t m y _ s t r n x f r m _ u n i c o d e ( C H A R S E T _ I N F O * , 00954 00955 u c h a r * d s t , s i z e _ t d s t l e n , u i n t n w e i g h t s , 00956 00957 c o n s t u c h a r * s r c , s i z e _ t s r c l e n , u i n t f l a g s ) ; 00958 00959 i n t m y _ w i l d c m p _ u n i c o d e ( C H A R S E T _ I N F O * c s , 00960 00961 c o n s t c h a r * s t r , c o n s t c h a r * s t r _ e n d , 00962 00963 c o n s t c h a r * w i l d s t r , c o n s t c h a r * w i l d e n d , 00964 00965 i n t e s c a p e , i n t w _ o n e , i n t w _ m a n y , 00966 00967 M Y _ U N I C A S E _ I N F O * * w e i g h t s ) ; 00968 00969 e x t e r n m y _ b o o l m y _ p a r s e _ c h a r s e t _ x m l ( c o n s t c h a r * b u g , s i z e _ t l e n , 00970 00971 i n t ( * a d d ) ( C H A R S E T _ I N F O * c s ) ) ; 00972 00973 e x t e r n c h a r * m y _ s t r c h r ( C H A R S E T _ I N F O * c s , c o n s t c h a r * s t r , c o n s t c h a r * e n d , 00974 00975 p c h a r c ) ; 00976 00977 m y _ b o o l m y _ p r o p a g a t e _ s i m p l e ( C H A R S E T _ I N F O * c s , c o n s t u c h a r * s t r , s i z e _ t l e n ) ; 00978 00979 m y _ b o o l m y _ p r o p a g a t e _ c o m p l e x ( C H A R S E T _ I N F O * c s , c o n s t u c h a r * s t r , s i z e _ t l e n ) ; 00980 00981 00982 00983 u i n t m y _ s t r i n g _ r e p e r t o i r e ( C H A R S E T _ I N F O * c s , c o n s t c h a r * s t r , u l o n g l e n ) ; 00984 00985 m y _ b o o l m y _ c h a r s e t _ i s _ a s c i i _ b a s e d ( C H A R S E T _ I N F O * c s ) ; 00986 00987 m y _ b o o l m y _ c h a r s e t _ i s _ 8 b i t _ p u r e _ a s c i i ( C H A R S E T _ I N F O * c s ) ; 00988 00989 u i n t m y _ c h a r s e t _ r e p e r t o i r e ( C H A R S E T _ I N F O * c s ) ; 00990 00991 00992 00993 u i n t m y _ s t r x f r m _ f l a g _ n o r m a l i z e ( u i n t f l a g s , u i n t n l e v e l s ) ; 00994 00995 v o i d m y _ s t r x f r m _ d e s c _ a n d _ r e v e r s e ( u c h a r * s t r , u c h a r * s t r e n d , 00996 00997 u i n t f l a g s , u i n t l e v e l ) ; 00998 00999 s i z e _ t m y _ s t r x f r m _ p a d _ d e s c _ a n d _ r e v e r s e ( C H A R S E T _ I N F O * c s , 01000 01001 u c h a r * s t r , u c h a r * f r m e n d , u c h a r * s t r e n d , 01002 01003 u i n t n w e i g h t s , u i n t f l a g s , u i n t l e v e l ) ; 01004 01005 m y _ b o o l m y _ c h a r s e t _ i s _ a s c i i _ c o m p a t i b l e ( C H A R S E T _ I N F O * c s ) ; 01006 01007 # d e f i n e _ M Y _ U 0 1 / * U p p e r c a s e * / 01008 01009 # d e f i n e _ M Y _ L 0 2 / * L o w e r c a s e * / 01010 01011 # d e f i n e _ M Y _ N M R 0 4 / * N u m e r a l ( d i g i t ) * / 01012 01013 # d e f i n e _ M Y _ S P C 0 1 0 / * S p a c i n g c h a r a c t e r * / 01014 01015 # d e f i n e _ M Y _ P N T 0 2 0 / * P u n c t u a t i o n * / 01016 01017 # d e f i n e _ M Y _ C T R 0 4 0 / * C o n t r o l c h a r a c t e r * / 01018 01019 # d e f i n e _ M Y _ B 0 1 0 0 / * B l a n k * / 01020 01021 # d e f i n e _ M Y _ X 0 2 0 0 / * h e X a d e c i m a l d i g i t * / 01022 01023 01024 01025 # d e f i n e m y _ i s a s c i i ( c ) ( ! ( ( c ) & ~ 0 1 7 7 ) ) 01026 01027 # d e f i n e m y _ t o a s c i i ( c ) ( ( c ) & 0 1 7 7 ) 01028 01029 # d e f i n e m y _ t o c n t r l ( c ) ( ( c ) & 3 1 ) 01030 01031 # d e f i n e m y _ t o p r i n t ( c ) ( ( c ) | 6 4 ) 01032 01033 # d e f i n e m y _ t o u p p e r ( s , c ) ( c h a r ) ( ( s ) - > t o _ u p p e r [ ( u c h a r ) ( c ) ] ) 01034 01035 # d e f i n e m y _ t o l o w e r ( s , c ) ( c h a r ) ( ( s ) - > t o _ l o w e r [ ( u c h a r ) ( c ) ] ) 01036 01037 # d e f i n e m y _ i s a l p h a ( s , c ) ( ( ( s ) - > c t y p e + 1 ) [ ( u c h a r ) ( c ) ] & ( _ M Y _ U | _ M Y _ L ) ) 01038 01039 # d e f i n e m y _ i s u p p e r ( s , c ) ( ( ( s ) - > c t y p e + 1 ) [ ( u c h a r ) ( c ) ] & _ M Y _ U ) 01040 01041 # d e f i n e m y _ i s l o w e r ( s , c ) ( ( ( s ) - > c t y p e + 1 ) [ ( u c h a r ) ( c ) ] & _ M Y _ L ) 01042 01043 # d e f i n e m y _ i s d i g i t ( s , c ) ( ( ( s ) - > c t y p e + 1 ) [ ( u c h a r ) ( c ) ] & _ M Y _ N M R ) 01044 01045 # d e f i n e m y _ i s x d i g i t ( s , c ) ( ( ( s ) - > c t y p e + 1 ) [ ( u c h a r ) ( c ) ] & _ M Y _ X ) 01046 01047 # d e f i n e m y _ i s a l n u m ( s , c ) ( ( ( s ) - > c t y p e + 1 ) [ ( u c h a r ) ( c ) ] & ( _ M Y _ U | _ M Y _ L | _ M Y _ N M R ) ) 01048 01049 # d e f i n e m y _ i s s p a c e ( s , c ) ( ( ( s ) - > c t y p e + 1 ) [ ( u c h a r ) ( c ) ] & _ M Y _ S P C ) 01050 01051 # d e f i n e m y _ i s p u n c t ( s , c ) ( ( ( s ) - > c t y p e + 1 ) [ ( u c h a r ) ( c ) ] & _ M Y _ P N T ) 01052 01053 # d e f i n e m y _ i s p r i n t ( s , c ) ( ( ( s ) - > c t y p e + 1 ) [ ( u c h a r ) ( c ) ] & ( _ M Y _ P N T | _ M Y _ U | _ M Y _ L | _ M Y _ N M R | _ M Y _ B ) ) 01054 01055 # d e f i n e m y _ i s g r a p h ( s , c ) ( ( ( s ) - > c t y p e + 1 ) [ ( u c h a r ) ( c ) ] & ( _ M Y _ P N T | _ M Y _ U | _ M Y _ L | _ M Y _ N M R ) ) 01056 01057 # d e f i n e m y _ i s c n t r l ( s , c ) ( ( ( s ) - > c t y p e + 1 ) [ ( u c h a r ) ( c ) ] & _ M Y _ C T R ) 01058 01059 / * S o m e m a c r o s t h a t s h o u l d b e c l e a n e d u p a l i t t l e * / 01060 01061 # d e f i n e m y _ i s v a r ( s , c ) ( m y _ i s a l n u m ( s , c ) | | ( c ) = = ' _ ' ) 01062 01063 # d e f i n e m y _ i s v a r _ s t a r t ( s , c ) ( m y _ i s a l p h a ( s , c ) | | ( c ) = = ' _ ' ) 01064 01065 # d e f i n e m y _ b i n a r y _ c o m p a r e ( s ) ( ( s ) - > s t a t e & M Y _ C S _ B I N S O R T ) 01066 01067 # d e f i n e u s e _ s t r n x f r m ( s ) ( ( s ) - > s t a t e & M Y _ C S _ S T R N X F R M ) 01068 01069 # d e f i n e m y _ s t r n x f r m ( c s , d , d l , s , s l ) \ 01070 01071 ( ( c s ) - > c o l l - > s t r n x f r m ( ( c s ) , ( d ) , ( d l ) , ( d l ) , ( s ) , ( s l ) , M Y _ S T R X F R M _ P A D _ W I T H _ S P A C E ) ) 01072 01073 # d e f i n e m y _ s t r n n c o l l ( s , a , b , c , d ) ( ( s ) - > c o l l - > s t r n n c o l l ( ( s ) , ( a ) , ( b ) , ( c ) , ( d ) , 0 ) ) 01074 01075 # d e f i n e m y _ l i k e _ r a n g e ( s , a , b , c , d , e , f , g , h , i , j ) \ 01076 01077 ( ( s ) - > c o l l - > l i k e _ r a n g e ( ( s ) , ( a ) , ( b ) , ( c ) , ( d ) , ( e ) , ( f ) , ( g ) , ( h ) , ( i ) , ( j ) ) ) 01078 01079 # d e f i n e m y _ w i l d c m p ( c s , s , s e , w , w e , e , o , m ) ( ( c s ) - > c o l l - > w i l d c m p ( ( c s ) , ( s ) , ( s e ) , ( w ) , ( w e ) , ( e ) , ( o ) , ( m ) ) ) 01080 01081 # d e f i n e m y _ s t r c a s e c m p ( s , a , b ) ( ( s ) - > c o l l - > s t r c a s e c m p ( ( s ) , ( a ) , ( b ) ) ) 01082 01083 # d e f i n e m y _ c h a r p o s ( c s , b , e , n u m ) ( c s ) - > c s e t - > c h a r p o s ( ( c s ) , ( c o n s t c h a r * ) ( b ) , ( c o n s t c h a r * ) ( e ) , ( n u m ) ) 01084 01085 01086 01087 # d e f i n e u s e _ m b ( s ) ( ( s ) - > c s e t - > i s m b c h a r ! = N U L L ) 01088 01089 # d e f i n e m y _ i s m b c h a r ( s , a , b ) ( ( s ) - > c s e t - > i s m b c h a r ( ( s ) , ( a ) , ( b ) ) ) 01090 01091 # i f d e f U S E _ M B 01092 01093 # d e f i n e m y _ m b c h a r l e n ( s , a ) ( ( s ) - > c s e t - > m b c h a r l e n ( ( s ) , ( a ) ) ) 01094 01095 # e l s e 01096 01097 # d e f i n e m y _ m b c h a r l e n ( s , a ) 1 01098 01099 # e n d i f 01100 01101 # d e f i n e m y _ c a s e u p _ s t r ( s , a ) ( ( s ) - > c s e t - > c a s e u p _ s t r ( ( s ) , ( a ) ) ) 01102 01103 # d e f i n e m y _ c a s e d n _ s t r ( s , a ) ( ( s ) - > c s e t - > c a s e d n _ s t r ( ( s ) , ( a ) ) ) 01104 01105 # d e f i n e m y _ s t r n t o l ( s , a , b , c , d , e ) ( ( s ) - > c s e t - > s t r n t o l ( ( s ) , ( a ) , ( b ) , ( c ) , ( d ) , ( e ) ) ) 01106 01107 # d e f i n e m y _ s t r n t o u l ( s , a , b , c , d , e ) ( ( s ) - > c s e t - > s t r n t o u l ( ( s ) , ( a ) , ( b ) , ( c ) , ( d ) , ( e ) ) ) 01108 01109 # d e f i n e m y _ s t r n t o l l ( s , a , b , c , d , e ) ( ( s ) - > c s e t - > s t r n t o l l ( ( s ) , ( a ) , ( b ) , ( c ) , ( d ) , ( e ) ) ) 01110 01111 # d e f i n e m y _ s t r n t o u l l ( s , a , b , c , d , e ) ( ( s ) - > c s e t - > s t r n t o u l l ( ( s ) , ( a ) , ( b ) , ( c ) , ( d ) , ( e ) ) ) 01112 01113 # d e f i n e m y _ s t r n t o d ( s , a , b , c , d ) ( ( s ) - > c s e t - > s t r n t o d ( ( s ) , ( a ) , ( b ) , ( c ) , ( d ) ) ) 01114 01115 01116 01117 / * X X X : s t i l l n e e d t o t a k e c a r e o f t h i s o n e * / 01118 01119 # i f d e f M Y _ C H A R S E T _ T I S 6 2 0 01120 01121 # e r r o r T h e T I S 6 2 0 c h a r s e t i s b r o k e n a t t h e m o m e n t . T e l l t i m t o f i x i t . 01122 01123 # d e f i n e U S E _ T I S 6 2 0 01124 01125 # i n c l u d e " t _ c t y p e . h " 01126 01127 # e n d i f 01128 01129 # i f d e f _ _ c p l u s p l u s 01130 01131 } 01132 01133 # e n d i f 01134 01135 # e n d i f / * _ m _ c t y p e _ h * / 01136 01137