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 # i f n d e f _ l i s t _ h _ 00024 00025 # d e f i n e _ l i s t _ h _ 00026 00027 # i f d e f _ _ c p l u s p l u s 00028 00029 e x t e r n " C " { 00030 00031 # e n d i f 00032 00033 t y p e d e f s t r u c t s t _ l i s t { 00034 00035 s t r u c t s t _ l i s t * p r e v , * n e x t ; 00036 00037 v o i d * d a t a ; 00038 00039 } L I S T ; 00040 00041 t y p e d e f i n t ( * l i s t _ w a l k _ a c t i o n ) ( v o i d * , v o i d * ) ; 00042 00043 e x t e r n L I S T * l i s t _ a d d ( L I S T * r o o t , L I S T * e l e m e n t ) ; 00044 00045 e x t e r n L I S T * l i s t _ d e l e t e ( L I S T * r o o t , L I S T * e l e m e n t ) ; 00046 00047 e x t e r n L I S T * l i s t _ c o n s ( v o i d * d a t a , L I S T * r o o t ) ; 00048 00049 e x t e r n L I S T * l i s t _ r e v e r s e ( L I S T * r o o t ) ; 00050 00051 e x t e r n v o i d l i s t _ f r e e ( L I S T * r o o t , u n s i g n e d i n t f r e e _ d a t a ) ; 00052 00053 e x t e r n u n s i g n e d i n t l i s t _ l e n g t h ( L I S T * ) ; 00054 00055 e x t e r n i n t l i s t _ w a l k ( L I S T * , l i s t _ w a l k _ a c t i o n a c t i o n , u n s i g n e d c h a r * a r g u m e n t ) ; 00056 00057 # d e f i n e l i s t _ r e s t ( a ) ( ( a ) - > n e x t ) 00058 00059 # d e f i n e l i s t _ p u s h ( a , b ) ( a ) = l i s t _ c o n s ( ( b ) , ( a ) ) 00060 00061 # d e f i n e l i s t _ p o p ( A ) { L I S T * o l d = ( A ) ; ( A ) = l i s t _ d e l e t e ( o l d , o l d ) ; m y _ f r e e ( ( u n s i g n e d c h a r * ) o l d , M Y F ( M Y _ F A E ) ) ; } 00062 00063 # i f d e f _ _ c p l u s p l u s 00064 00065 } 00066 00067 # e n d i f 00068 00069 # e n d i f 00070 00071