![]() |
CMGDK r49-rc2
|
00001 / * C o p y r i g h t ( C ) 2 0 0 0 - 2 0 0 3 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 H e l p e r m a c r o s u s e d f o r s e t t i n g d i f f e r e n t _ _ a t t r i b u t e s _ _ 00026 00027 o n f u n c t i o n s i n a p o r t a b l e f a s h i o n 00028 00029 * / 00030 00031 # i f n d e f _ m y _ a t t r i b u t e _ h 00032 00033 # d e f i n e _ m y _ a t t r i b u t e _ h 00034 00035 / * 00036 00037 D i s a b l e _ _ a t t r i b u t e _ _ ( ) o n g c c < 2 . 7 , g + + < 3 . 4 , a n d n o n - g c c c o m p i l e r s . 00038 00039 S o m e f o r m s o f _ _ a t t r i b u t e _ _ a r e a c t u a l l y s u p p o r t e d i n e a r l i e r v e r s i o n s o f 00040 00041 g + + , b u t w e j u s t d i s a b l e t h e m a l l b e c a u s e w e o n l y u s e t h e m t o g e n e r a t e 00042 00043 c o m p i l a t i o n w a r n i n g s . 00044 00045 * / 00046 00047 # i f n d e f _ _ a t t r i b u t e _ _ 00048 00049 # i f ! d e f i n e d ( _ _ G N U C _ _ ) 00050 00051 # d e f i n e _ _ a t t r i b u t e _ _ ( A ) 00052 00053 # e l i f G C C _ V E R S I O N < 2 0 0 8 00054 00055 # d e f i n e _ _ a t t r i b u t e _ _ ( A ) 00056 00057 # e l i f d e f i n e d ( _ _ c p l u s p l u s ) & & G C C _ V E R S I O N < 3 0 0 4 00058 00059 # d e f i n e _ _ a t t r i b u t e _ _ ( A ) 00060 00061 # e n d i f 00062 00063 # e n d i f 00064 00065 / * 00066 00067 _ _ a t t r i b u t e _ _ ( ( f o r m a t ( . . . ) ) ) i s o n l y s u p p o r t e d i n g c c > = 2 . 8 a n d g + + > = 3 . 4 00068 00069 B u t t h a t ' s a l r e a d y c o v e r e d b y t h e _ _ a t t r i b u t e _ _ t e s t s a b o v e , s o t h i s i s 00070 00071 j u s t a c o n v e n i e n c e m a c r o . 00072 00073 * / 00074 00075 # i f n d e f A T T R I B U T E _ F O R M A T 00076 00077 # d e f i n e A T T R I B U T E _ F O R M A T ( s t y l e , m , n ) _ _ a t t r i b u t e _ _ ( ( f o r m a t ( s t y l e , m , n ) ) ) 00078 00079 # e n d i f 00080 00081 / * 00082 00083 _ _ a t t r i b u t e _ _ ( ( f o r m a t ( . . . ) ) ) o n a f u n c t i o n p o i n t e r i s n o t s u p p o r t e d 00084 00085 u n t i l g c c 3 . 1 00086 00087 * / 00088 00089 # i f n d e f A T T R I B U T E _ F O R M A T _ F P T R 00090 00091 # i f ( G C C _ V E R S I O N > = 3 0 0 1 ) 00092 00093 # d e f i n e A T T R I B U T E _ F O R M A T _ F P T R ( s t y l e , m , n ) A T T R I B U T E _ F O R M A T ( s t y l e , m , n ) 00094 00095 # e l s e 00096 00097 # d e f i n e A T T R I B U T E _ F O R M A T _ F P T R ( s t y l e , m , n ) 00098 00099 # e n d i f / * G N U C > = 3 . 1 * / 00100 00101 # e n d i f 00102 00103 00104 00105 # e n d i f 00106 00107