$ od -c -N 50000 [Erinyes]<LispManual>FPtypes.im!10
0000000 \r \r \r { B e g i n S u b S e c
0000020 F i l e P a c k a g e T y
0000040 p e s } \r { T i t l e F i l e
0000060 P a c k a g e T y p e s } \r
0000100 { T e x t \r \r \r { T a g F i l
0000120 e P k g T y p e s } \r \r { i n d
0000140 e x * P R I M A R Y * F i l
0000160 e p a c k a g e t y p e s }
0000200 \r \r \r I n a d d i t i o n t
0000220 o t h e d e f i n i t i o n
0000240 s o f f u n c t i o n s a
0000260 n d v a l u e s o f v a r
0000300 i a b l e s , s o u r c e f
0000320 i l e s i n I n t e r l i s
0000340 p c a n c o n t a i n a
0000360 v a r i e t y o f o t h e r
0000400 i n f o r m a t i o n , e .
0000420 g . p r o p e r t y l i s t
0000440 s , r e c o r d d e c l a r
0000460 a t i o n s , m a c r o d e
0000500 f i n i t i o n s , h a s h
0000520 a r r a y s , e t c . I n
0000540 o r d e r t o t r e a t
0000560 s u c h a d i v e r s e a
0000600 s s o r t m e n t o f d a t
0000620 a u n i f o r m l y f r o m
0000640 t h e s t a n d p o i n t
0000660 o f f i l e o p e r a t i o
0000700 n s , t h e f i l e p a c
0000720 k a g e u s e s t h e c o
0000740 n c e p t o f a { i t t
0000760 y p e d d e f i n i t i o n }
0001000 , o f w h i c h a f u n
0001020 c t i o n d e f i n i t i o n
0001040 i s j u s t o n e e x a
0001060 m p l e . A t y p e d d
0001100 e f i n i t i o n a s s o c i
0001120 a t e s w i t h a n a m e
0001140 ( u s u a l l y a l i t a
0001160 t o m ) , a d e f i n i t i
0001200 o n o f a g i v e n t y
0001220 p e ( c a l l e d t h e f
0001240 i l e p a c k a g e t y p e
0001260 ) . N o t e t h a t t h
0001300 e s a m e n a m e m a y
0001320 h a v e s e v e r a l d e f
0001340 i n i t i o n s o f d i f f
0001360 e r e n t t y p e s . F o
0001400 r e x a m p l e , a l i t
0001420 a t o m m a y h a v e b o
0001440 t h a f u n c t i o n d e
0001460 f i n i t i o n a n d a v
0001500 a r i a b l e d e f i n i t i
0001520 o n . T h e f i l e p a
0001540 c k a g e a l s o k e e p s
0001560 t r a c k o f t h e f i
0001600 l e t h a t a p a r t i c
0001620 u l a r t y p e d d e f i n
0001640 i t i o n i s s t o r e d
0001660 o n , s o o n e c a n t
0001700 h i n k o f a t y p e d
0001720 d e f i n i t i o n a s a
0001740 r e l a t i o n b e t w e e n
0001760 f o u r e l e m e n t s :
0002000 a n a m e , a d e f i n i
0002020 t i o n , a t y p e , a n
0002040 d a f i l e . \r \r \r A f i
0002060 l e p a c k a g e t y p e
0002100 i s a n a b s t r a c t n
0002120 o t i o n o f a c l a s s
0002140 o f o b j e c t s w h i c
0002160 h s h a r e t h e p r o p
0002200 e r t y t h a t e v e r y
0002220 o b j e c t o f t h e s a
0002240 m e f i l e p a c k a g e
0002260 t y p e i s s t o r e d ,
0002300 r e t r i e v e d , e d i t e
0002320 d , c o p i e d e t c . ,
0002340 b y t h e f i l e p a c k
0002360 a g e i n t h e s a m e
0002400 w a y . E a c h f i l e
0002420 p a c k a g e t y p e i s
0002440 i d e n t i f i e d b y a
0002460 l i t a t o m , w h i c h c
0002500 a n b e g i v e n a s a
0002520 n a r g u m e n t t o t h
0002540 e f u n c t i o n s t h a t
0002560 m a n i p u l a t e t y p e
0002600 d d e f i n i t i o n s .
0002620 T h e u s e r m a y d e f
0002640 i n e n e w f i l e p a c
0002660 k a g e t y p e s , a s d
0002700 e s c r i b e d i n { P a g
0002720 e R e f F n F I L E P K G T
0002740 Y P E } . \r \r \r \r { V a r D e f
0002760 { N a m e F I L E P K G T Y
0003000 P E S } \r { T e x t \r T h e v
0003020 a l u e o f { v a r F I L
0003040 E P K G T Y P E S } i s a
0003060 l i s t o f a l l f i l e
0003100 p a c k a g e t y p e s ,
0003120 i n c l u d i n g a n y t h
0003140 a t m a y h a v e b e e n
0003160 d e f i n e d b y t h e
0003200 u s e r . \r } } \r \r \r \r T h e
0003220 f i l e p a c k a g e i s
0003240 i n i t i a l i z e d w i t h
0003260 t h e f o l l o w i n g b
0003300 u i l t - i n f i l e p a c
0003320 k a g e t y p e s : \r \r \r { D
0003340 e f { T y p e ( F i l e P
0003360 a c k a g e T y p e ) } { N
0003400 a m e A D V I C E } \r { T e x
0003420 t \r U s e d t o a c c e s s
0003440 " a d v i c e " m o d i f y
0003460 i n g a f u n c t i o n (
0003500 s e e { P a g e R e f T e r
0003520 m A d v i s i n g f u n c t
0003540 i o n s } ) . \r } } \r \r { D e f
0003560 { T y p e ( F i l e P a c
0003600 k a g e T y p e ) } { N a m
0003620 e A L I S T S } \r { T e x t \r
0003640 U s e d t o a c c e s s o
0003660 b j e c t s s t o r e d o n
0003700 a n a s s o c i a t i o n
0003720 l i s t t h a t i s t h e
0003740 v a l u e o f a l i t a
0003760 t o m ( s e e { P a g e R e
0004000 f T e r m A s s o c i a t i
0004020 o n l i s t s } ) . \r \r A v
0004040 a r i a b l e i s d e c l a
0004060 r e d t o h a v e a n a
0004100 s s o c i a t i o n l i s t
0004120 a s i t s v a l u e b y
0004140 p u t t i n g o n i t s p
0004160 r o p e r t y l i s t t h e
0004200 p r o p e r t y { i n d e x
0004220 * P R I M A R Y * V A R T Y
0004240 P E P r o p } { p r o p V A
0004260 R T Y P E } w i t h v a l u
0004300 e { l i s p A L I S T } .
0004320 I n t h i s c a s e , e
0004340 a c h d o t t e d p a i r
0004360 o n t h e l i s t i s a
0004400 n o b j e c t o f t y p e
0004420 { l i s p A L I S T S } .
0004440 W h e n t h e v a l u e
0004460 o f s u c h a v a r i a b
0004500 l e i s c h a n g e d , o
0004520 n l y t h o s e e n t r i e
0004540 s i n t h e a s s o c i a
0004560 t i o n l i s t t h a t a
0004600 r e a c t u a l l y c h a n
0004620 g e d o r a d d e d a r e
0004640 m a r k e d a s c h a n g
0004660 e d o b j e c t s o f t y
0004700 p e { l i s p A L I S T S }
0004720 ( w i t h " n a m e " { l
0004740 i s p ( { a r g L I T A T O
0004760 M } { a r g K E Y } ) } ) .
0005000 O b j e c t s o f t y p
0005020 e { l i s p A L I S T S }
0005040 a r e d u m p e d v i a t
0005060 h e { f i l e c o m A L I S
0005100 T S } o r { f i l e c o m
0005120 A D D V A R S } f i l e p a
0005140 c k a g e c o m m a n d s . \r
0005160 \r N o t e t h a t s o m e
0005200 a s s o c i a t i o n l i s t
0005220 s a r e u s e d t o " i
0005240 m p l e m e n t " o t h e r
0005260 f i l e p a c k a g e t y p
0005300 e s . F o r e x a m p l e
0005320 , t h e v a l u e o f t
0005340 h e g l o b a l v a r i a b
0005360 l e { v a r U S E R M A C R
0005400 O S } i m p l e m e n t s t
0005420 h e f i l e p a c k a g e
0005440 t y p e { l i s p U S E R M
0005460 A C R O S } a n d t h e v
0005500 a l u e s o f { v a r L I
0005520 S P X M A C R O S } a n d {
0005540 v a r L I S P X H I S T O R Y
0005560 M A C R O S } i m p l e m e n
0005600 t t h e f i l e p a c k a
0005620 g e t y p e { l i s p L I
0005640 S P X M A C R O S } . T h i
0005660 s i s i n d i c a t e d b
0005700 y p u t t i n g o n t h e
0005720 p r o p e r t y l i s t o
0005740 f t h e v a r i a b l e t
0005760 h e p r o p e r t y { p r o
0006000 p V A R T Y P E } w i t h
0006020 v a l u e a l i s t o f
0006040 t h e f o r m { l i s p (
0006060 A L I S T { a r g F I L E P
0006100 K G T Y P E } ) } . F o r
0006120 e x a m p l e , { l i s p (
0006140 G E T P R O P ' L I S P X H I
0006160 S T O R Y M A C R O S ' V A R
0006200 T Y P E ) = > ( A L I S
0006220 T L I S P X M A C R O S ) } .
0006240 \r } } \r \r \r { D e f { T y p e
0006260 ( F i l e P a c k a g e T
0006300 y p e ) } { N a m e C O U R
0006320 I E R P R O G R A M S } \r { T e
0006340 x t \r U s e d t o a c c e s
0006360 s C o u r i e r p r o g r a
0006400 m s ( s e e { P a g e R e f
0006420 T e r m C o u r i e r p r
0006440 o g r a m s } ) . \r } } \r \r \r {
0006460 D e f { T y p e ( F i l e
0006500 P a c k a g e T y p e ) } {
0006520 N a m e E X P R E S S I O N S
0006540 } \r { T e x t \r U s e d t o
0006560 a c c e s s l i s p e x p r
0006600 e s s i o n s t h a t a r e
0006620 p u t o n a f i l e b
0006640 y u s i n g t h e { p a c
0006660 o m R E M E M B E R } p r o
0006700 g r a m m e r s a s s i s t a
0006720 n t c o m m a n d ( { P a g
0006740 e R e f P A C o m R E M E M
0006760 B E R } ) , o r b y e x p
0007000 l i c i t l y p u t t i n g
0007020 t h e { f i l e c o m P }
0007040 f i l e p a c k a g e c o m
0007060 m a n d ( { P a g e R e f F
0007100 i l e C o m P } ) o n t h
0007120 e f i l e c o m s . \r } } \r
0007140 \r \r { D e f { T y p e ( F i
0007160 l e P a c k a g e T y p e )
0007200 } { N a m e F I E L D S } \r
0007220 { T e x t \r U s e d t o a c
0007240 c e s s f i e l d s o f r
0007260 e c o r d s . T h e " d e
0007300 f i n i t i o n " o f a n
0007320 o b j e c t o f t y p e {
0007340 l i s p F I E L D S } i s
0007360 a l i s t o f a l l t h
0007400 e r e c o r d d e c l a r a
0007420 t i o n s w h i c h c o n t
0007440 a i n t h e n a m e .
0007460 S e e { P a g e R e f T e r
0007500 m R e c o r d P a c k a g e
0007520 } . \r } } \r \r { D e f { T y p
0007540 e ( F i l e P a c k a g e
0007560 T y p e ) } { N a m e F I L
0007600 E P K G C O M S } \r { T e x t \r
0007620 U s e d t o a c c e s s f
0007640 i l e p a c k a g e c o m m
0007660 a n d s a n d t y p e s .
0007700 A s i n g l e n a m e c
0007720 a n b e d e f i n e d b o
0007740 t h a s a f i l e p a c
0007760 k a g e t y p e a n d a
0010000 f i l e p a c k a g e c o m
0010020 m a n d . T h e " d e f i
0010040 n i t i o n " o f a n o b
0010060 j e c t o f t y p e { l i
0010100 s p F I L E P K G C O M S }
0010120 i s a l i s t s t r u c t
0010140 u r e o f t h e f o r m
0010160 { l i s p ( ( C O M . { a
0010200 r g C O M P R O P S } ) ( T
0010220 Y P E . { a r g T Y P E P
0010240 R O P S } ) ) } , w h e r e
0010260 { a r g C O M P R O P S } i
0010300 s a p r o p e r t y l i s
0010320 t s p e c i f y i n g h o w
0010340 t h e n a m e i s d e f
0010360 i n e d a s a f i l e p
0010400 a c k a g e c o m m a n d b
0010420 y { f n F I L E P K G C O M
0010440 } ( { P a g e R e f F n F
0010460 I L E P K G C O M } ) , a n d
0010500 { a r g T Y P E P R O P S }
0010520 i s a p r o p e r t y l
0010540 i s t s p e c i f y i n g h
0010560 o w t h e n a m e i s d
0010600 e f i n e d a s a f i l e
0010620 p a c k a g e t y p e b y
0010640 { f n F I L E P K G T Y P E
0010660 } ( { P a g e R e f F n F
0010700 I L E P K G T Y P E } ) . \r } }
0010720 \r \r { D e f { T y p e ( F i
0010740 l e P a c k a g e T y p e )
0010760 } { N a m e F I L E S } \r {
0011000 T e x t \r U s e d t o a c c
0011020 e s s f i l e s . T h i s
0011040 f i l e p a c k a g e t y
0011060 p e i s m o s t u s e f u
0011100 l f o r r e n a m i n g f
0011120 i l e s . T h e " d e f i
0011140 n i t i o n " o f a f i l
0011160 e i s n o t a u s e f u
0011200 l s t r u c t u r e . \r \r { B
0011220 e g i n N o t e } \r D a t e :
0011240 1 6 O c t 1 9 7 8 1 : 4
0011260 2 p m ( M o n d a y ) \r F r
0011300 o m : M a s i n t e r \r \r ( i
0011320 m p l e m e n t a t i o n c h
0011340 a n g e ) \r G E T D E F ( X F
0011360 I L E S ) n o w r e t u r n
0011400 s a m o r e c o m p l i c
0011420 a t e d d a t a s t r u c t
0011440 u r e t h a n b e f o r e
0011460 ( i t u s e d t o j u s t
0011500 r e t u r n t h e C O M S
0011520 f o r t h e f i l e , n
0011540 o w t h e v a l u e o f
0011560 G E T D E F i n c l u d e s
0011600 p a r t o f t h e F I L E
0011620 a n d F I L E D A T E S p
0011640 r o p e r t y o f X ) . \r \r
0011660 P U T D E F ( X F I L E D E
0011700 F I N I T I O N ) w i l l M
0011720 A K E F I L E ( X ) c o p y i
0011740 n g f u n c t i o n s i f \r
0011760 n e c e s s a r y f r o m t
0012000 h e " o l d " f i l e ( s
0012020 u p p l i e d a s p a r t
0012040 o f t h e D E F I N I T I O
0012060 N ) . \r \r T h i s c h a n g e
0012100 s h o u l d n o t a f f e
0012120 c t a n y u s e r s ( t h
0012140 e o n l y u s e I h a v
0012160 e e v e r \r m a d e o f F
0012200 I L E S a s a t y p e i
0012220 s t o r e n a m e t h e m
0012240 ) ; i t m a d e i t p o
0012260 s s i b l e t o r e m o v e
0012300 a s p e c i a l c h e c k
0012320 i n t h e C O P Y D E F
0012340 f u n c t i o n t o h a n d
0012360 l e t h i s c a s e . \r { E
0012400 n d N o t e } \r } } \r \r \r { D
0012420 e f { T y p e ( F i l e P
0012440 a c k a g e T y p e ) } { N
0012460 a m e F I L E V A R S } \r { T
0012500 e x t \r U s e d t o a c c e
0012520 s s F i l e v a r s ( s e e
0012540 { P a g e R e f T e r m F
0012560 i l e V a r s } ) . \r } } \r \r \r
0012600 { D e f { T y p e ( F i l e
0012620 P a c k a g e T y p e ) }
0012640 { N a m e F N S } \r { T e x t
0012660 \r U s e d t o a c c e s s
0012700 f u n c t i o n d e f i n i t
0012720 i o n s . \r } } \r \r { D e f {
0012740 T y p e ( F i l e P a c k a
0012760 g e T y p e ) } { N a m e
0013000 I . S . O P R S } \r { T e x t \r
0013020 U s e d t o a c c e s s t
0013040 h e d e f i n i t i o n s o
0013060 f i t e r a t i v e s t a t
0013100 e m e n t o p e r a t o r s
0013120 ( s e e { P a g e R e f T e
0013140 r m I t e r a t i v e s t a
0013160 t e m e n t s } ) . \r } } \r \r {
0013200 D e f { T y p e ( F i l e
0013220 P a c k a g e T y p e ) } {
0013240 N a m e L I S P X M A C R O S
0013260 } \r { T e x t \r U s e d t o
0013300 a c c e s s p r o g r a m m e
0013320 r ' s a s s i s t a n t c o
0013340 m m a n d s d e f i n e d o
0013360 n t h e v a r i a b l e s
0013400 { l i s p L I S P X M A C R O
0013420 S } a n d { v a r L I S P
0013440 X H I S T O R Y M A C R O S }
0013460 ( s e e { P a g e R e f V a
0013500 r L I S P X M A C R O S } ) .
0013520 \r } } \r \r { D e f { T y p e
0013540 ( F i l e P a c k a g e T y
0013560 p e ) } { N a m e M A C R O
0013600 S } \r { T e x t \r U s e d t o
0013620 a c c e s s m a c r o d e
0013640 f i n i t i o n s ( s e e {
0013660 P a g e R e f T e r m M a c
0013700 r o s } ) . \r } } \r \r { D e f
0013720 { T y p e ( F i l e P a c k
0013740 a g e T y p e ) } { N a m e
0013760 P R O P S } \r { T e x t \r U s
0014000 e d t o a c c e s s o b j
0014020 e c t s s t o r e d o n t
0014040 h e p r o p e r t y l i s t
0014060 o f a l i t a t o m ( s
0014100 e e { P a g e R e f T e r m
0014120 P r o p e r t i e s o f l
0014140 i t a t o m s } ) . W h e n
0014160 a p r o p e r t y i s c
0014200 h a n g e d o r a d d e d ,
0014220 a n o b j e c t o f t y
0014240 p e { l i s p P R O P S } ,
0014260 w i t h " n a m e " { l i
0014300 s p ( { a r g L I T A T O M
0014320 } { a r g P R O P N A M E }
0014340 ) } i s m a r k e d a s
0014360 b e i n g c h a n g e d . \r \r
0014400 N o t e t h a t s o m e l
0014420 i t a t o m p r o p e r t i e
0014440 s a r e u s e d t o i m
0014460 p l e m e n t o t h e r f i
0014500 l e p a c k a g e t y p e s
0014520 . F o r e x a m p l e ,
0014540 t h e p r o p e r t y { p r
0014560 o p M A C R O } i m p l e m
0014600 e n t s t h e f i l e p a
0014620 c k a g e t y p e { l i s p
0014640 M A C R O S } , t h e p r
0014660 o p e r t y { p r o p A D V
0014700 I C E } i m p l e m e n t s
0014720 { l i s p A D V I C E } , e
0014740 t c . T h i s i s i n d
0014760 i c a t e d b y p u t t i n
0015000 g t h e p r o p e r t y {
0015020 p r o p P R O P T Y P E } , {
0015040 i n d e x * P R I M A R Y *
0015060 P R O P T Y P E P r o p } w
0015100 i t h v a l u e o f t h e
0015120 f i l e p a c k a g e t y
0015140 p e o n t h e p r o p e r
0015160 t y l i s t o f t h e p
0015200 r o p e r t y n a m e . F
0015220 o r e x a m p l e , { l i s
0015240 p ( G E T P R O P ' M A C R
0015260 O ' P R O P T Y P E ) = >
0015300 M A C R O S } . W h e n
0015320 s u c h a p r o p e r t y
0015340 i s c h a n g e d o r a
0015360 d d e d , a n o b j e c t
0015400 o f t h e c o r r e s p o n
0015420 d i n g f i l e p a c k a g
0015440 e t y p e i s m a r k e d
0015460 . I f { l i s p ( G E T
0015500 P R O P { a r g P R O P N A
0015520 M E } ' P R O P T Y P E )
0015540 = > I G N O R E } , t h e
0015560 c h a n g e i s i g n o r
0015600 e d . T h e { p r o p F
0015620 I L E } , { p r o p F I L E
0015640 M A P } , { p r o p F I L E
0015660 D A T E S } , e t c . p r o
0015700 p e r t i e s a r e a l l
0015720 h a n d l e d t h i s w a y
0015740 . ( N o t e t h a t { l
0015760 i s p I G N O R E } c a n n
0016000 o t b e t h e n a m e o
0016020 f a f i l e p a c k a g e
0016040 t y p e i m p l e m e n t e
0016060 d a s a p r o p e r t y )
0016100 . \r } } \r \r { D e f { T y
0016120 p e ( F i l e P a c k a g e
0016140 T y p e ) } { N a m e R E
0016160 C O R D S } \r { T e x t \r U s e
0016200 d t o a c c e s s r e c o
0016220 r d d e c l a r a t i o n s
0016240 ( s e e { P a g e R e f T e
0016260 r m R e c o r d P a c k a g
0016300 e } ) . \r } } \r \r \r { D e f {
0016320 T y p e ( F i l e P a c k a
0016340 g e T y p e ) } { N a m e
0016360 R E S O U R C E S } \r { T e x t
0016400 \r U s e d t o a c c e s s
0016420 r e s o u r c e s ( s e e {
0016440 P a g e R e f T e r m R e s
0016460 o u r c e s } ) . \r } } \r \r { D
0016500 e f { T y p e ( F i l e P
0016520 a c k a g e T y p e ) } { N
0016540 a m e T E M P L A T E S } \r {
0016560 T e x t \r U s e d t o a c c
0016600 e s s M a s t e r s c o p e
0016620 t e m p l a t e s ( s e e {
0016640 P a g e R e f T e r m M a s
0016660 t e r s c o p e T e m p l a t
0016700 e s } ) . \r } } \r \r { D e f {
0016720 T y p e ( F i l e P a c k a
0016740 g e T y p e ) } { N a m e
0016760 U S E R M A C R O S } \r { T e x
0017000 t \r U s e d t o a c c e s s
0017020 u s e r e d i t m a c r o
0017040 s ( s e e { P a g e R e f
0017060 T e r m E d i t M a c r o s
0017100 } ) . \r } } \r \r \r { D e f { T
0017120 y p e ( F i l e P a c k a g
0017140 e T y p e ) } { N a m e V
0017160 A R S } \r { T e x t \r U s e d
0017200 t o a c c e s s t o p - l e
0017220 v e l v a r i a b l e v a l
0017240 u e s . \r } } \r \r \r \r { B e g i
0017260 n N o t e } \r d o c s y n o
0017300 n y m s ? ? ? \r \r s y n o n y m
0017320 s f o r f i l e p a c k a
0017340 g e t y p e s : \r ( L I S P X
0017360 C O M S . L I S P X M A C R
0017400 O S ) \r ( F I L E P K G T Y P E
0017420 S . F I L E P K G C O M S )
0017440 \r ( E D I T M A C R O S . U
0017460 S E R M A C R O S ) \r { E n d
0017500 N o t e } \r \r \r \r \r { B e g i n
0017520 S u b S e c F u n c t i o n
0017540 s f o r M a n i p u l a t i
0017560 n g T y p e d D e f i n i t
0017600 i o n s } \r { T i t l e F u n
0017620 c t i o n s f o r M a n i p
0017640 u l a t i n g T y p e d D e
0017660 f i n i t i o n s } \r { T e x t
0017700 \r \r T h e f u n c t i o n s
0017720 d e s c r i b e d b e l o w
0017740 c a n b e u s e d t o m
0017760 a n i p u l a t e t y p e d
0020000 d e f i n i t i o n s , w i t
0020020 h o u t n e e d i n g t o
0020040 k n o w h o w t h e m a n
0020060 i p u l a t i o n s a r e d
0020100 o n e . F o r e x a m p l
0020120 e , { l i s p ( G E T D E F
0020140 ' F O O ' F N S ) } w i l
0020160 l r e t u r n t h e f u n
0020200 c t i o n d e f i n i t i o n
0020220 o f { l i s p F O O } ,
0020240 { l i s p ( G E T D E F ' F
0020260 O O ' V A R S ) } w i l l
0020300 r e t u r n t h e v a r i a
0020320 b l e v a l u e o f { l i
0020340 s p F O O } , e t c . A
0020360 l l o f t h e f u n c t i
0020400 o n s u s e t h e f o l l
0020420 o w i n g c o n v e n t i o n
0020440 s : \r \r ( 1 ) A l l f u n
0020460 c t i o n s w h i c h m a k
0020500 e d e s t r u c t i v e c h
0020520 a n g e s a r e u n d o a b
0020540 l e . \r \r ( 2 ) A n y a r
0020560 g u m e n t t h a t e x p e
0020600 c t s a l i s t o f l i
0020620 t a t o m s w i l l a l s o
0020640 a c c e p t a s i n g l e
0020660 l i t a t o m , o p e r a t
0020700 i n g a s t h o u g h i t
0020720 w e r e e n c l o s e d i
0020740 n a l i s t . F o r e
0020760 x a m p l e , i f t h e a
0021000 r g u m e n t { a r g F I L
0021020 E S } s h o u l d b e a
0021040 l i s t o f f i l e s , i
0021060 t m a y a l s o b e a
0021100 s i n g l e f i l e . \r \r \r (
0021120 3 ) { a r g T Y P E } i
0021140 s a f i l e p a c k a g e
0021160 t y p e . { a r g T Y P
0021200 E } = { l i s p N I L } i s
0021220 e q u i v a l e n t t o {
0021240 a r g T Y P E } = { l i s p
0021260 F N S } . T h e s i n g u
0021300 l a r f o r m o f a f i
0021320 l e p a c k a g e t y p e
0021340 i s a l s o r e c o g n i z
0021360 e d , e . g . { a r g T Y
0021400 P E } = { l i s p V A R } i
0021420 s e q u i v a l e n t t o
0021440 { a r g T Y P E } = { l i s p
0021460 V A R S } . \r \r \r ( 4 ) {
0021500 a r g F I L E S } = { l i s p
0021520 N I L } i s e q u i v a l
0021540 e n t t o { a r g F I L E
0021560 S } = { v a r F I L E L S T }
0021600 . \r \r \r ( 5 ) { a r g S O
0021620 U R C E } i s u s e d t o
0021640 i n d i c a t e t h e s o
0021660 u r c e o f a d e f i n i
0021700 t i o n , t h a t i s , w
0021720 h e r e t h e d e f i n i t
0021740 i o n s h o u l d b e f o
0021760 u n d . { a r g S O U R C
0022000 E } c a n b e o n e o f
0022020 : \r \r { B e g i n L a b e l
0022040 e d L i s t S O U R C E } \r \r
0022060 { N a m e { l i s p C U R R
0022100 E N T } } \r { T e x t \r G e t
0022120 t h e d e f i n i t i o n c
0022140 u r r e n t l y i n e f f e
0022160 c t . \r } \r \r { N a m e { l i
0022200 s p S A V E D } } \r { T e x t
0022220 \r G e t t h e " s a v e d "
0022240 d e f i n i t i o n , a s
0022260 s t o r e d b y { f n S A
0022300 V E D E F } ( { P a g e R e f
0022320 F n S A V E D E F } ) . \r }
0022340 \r \r { N a m e { l i s p F I
0022360 L E } } \r { T e x t \r G e t t
0022400 h e d e f i n i t i o n c o
0022420 n t a i n e d o n t h e (
0022440 f i r s t ) f i l e d e t e
0022460 r m i n e d b y { f n W H
0022500 E R E I S } ( { P a g e R e f
0022520 F n W H E R E I S } ) .
0022540 \r \r N o t e : { f n W H E
0022560 R E I S } i s c a l l e d
0022600 w i t h { a r g F I L E S }
0022620 = { l i s p T } , s o t h
0022640 a t i f t h e W H E R E I
0022660 S l i b r a r y p a c k a g
0022700 e i s l o a d e d , t h e
0022720 W H E R E I S d a t a b a
0022740 s e w i l l b e u s e d
0022760 t o f i n d t h e f i l e
0023000 c o n t a i n i n g t h e
0023020 d e f i n i t i o n . \r } \r \r {
0023040 N a m e { l i s p ? } } \r {
0023060 T e x t \r G e t t h e d e f
0023100 i n i t i o n c u r r e n t l
0023120 y i n e f f e c t i f t
0023140 h e r e i s o n e , e l s
0023160 e t h e s a v e d d e f i
0023200 n i t i o n i f t h e r e
0023220 i s o n e , o t h e r w i s
0023240 e t h e d e f i n i t i o n
0023260 f r o m a f i l e d e t
0023300 e r m i n e d b y { f n W
0023320 H E R E I S } . L i k e s
0023340 p e c i f y i n g { l i s p
0023360 C U R R E N T } , { l i s p
0023400 S A V E D } , a n d { l i s
0023420 p F I L E } i n o r d e r
0023440 , a n d t a k i n g t h e
0023460 f i r s t d e f i n i t i o
0023500 n t h a t i s f o u n d .
0023520 \r } \r \r { N a m e a f i l e
0023540 n a m e } \r { N a m e a l
0023560 i s t o f f i l e n a m e
0023600 s } \r { T e x t \r G e t t h e
0023620 d e f i n i t i o n f r o m
0023640 t h e f i r s t o f t h
0023660 e i n d i c a t e d f i l e
0023700 s t h a t c o n t a i n s
0023720 o n e . \r } \r \r { N a m e { l
0023740 i s p N I L } } \r { T e x t \r
0023760 I n m o s t c a s e s , g
0024000 i v i n g { a r g S O U R C
0024020 E } = { l i s p N I L } ( o
0024040 r n o t s p e c i f y i n g
0024060 i t a t a l l ) i s t
0024100 h e s a m e a s g i v i n
0024120 g { l i s p ? } , t o g
0024140 e t e i t h e r t h e c u
0024160 r r e n t , s a v e d , o r
0024200 f i l e d d e f i n i t i o
0024220 n . H o w e v e r , w i t
0024240 h { f n H A S D E F } , {
0024260 a r g S O U R C E } = { l i s
0024300 p N I L } i s i n t e r p
0024320 r e t e d a s e q u a l t
0024340 o { a r g S O U R C E } = {
0024360 l i s p C U R R E N T } , w
0024400 h i c h o n l y t e s t s
0024420 i f t h e r e i s a c u
0024440 r r e n t d e f i n i t i o n
0024460 . \r } \r \r { E n d L a b e l e
0024500 d L i s t S O U R C E } \r \r \r
0024520 { n o t e H A S D E F , G E
0024540 T D E F n o w o n l y a c
0024560 c e p t f i l e p a c k a g
0024600 e t y p e s ( n o t c o m
0024620 m a n d s ) , e . g . G E T
0024640 D E F ( F O O C O M S ) c a
0024660 u s e s e r r o r " C O M S
0024700 n o t f i l e p a c k a g
0024720 e t y p e " . } \r \r \r \r T h
0024740 e o p e r a t i o n o f m
0024760 o s t o f t h e f u n c t
0025000 i o n s d e s c r i b e d b
0025020 e l o w c a n b e c h a n
0025040 g e d o r e x t e n d e d
0025060 b y m o d i f y i n g t h e
0025100 a p p r o p r i a t e p r o
0025120 p e r t i e s f o r t h e
0025140 c o r r e s p o n d i n g f i
0025160 l e p a c k a g e t y p e
0025200 u s i n g t h e f u n c t i
0025220 o n { f n F I L E P K G T Y
0025240 P E } , d e s c r i b e d o
0025260 n { P a g e R e f F n F I
0025300 L E P K G T Y P E } . \r \r \r \r {
0025320 F n D e f { F n N a m e G E
0025340 T D E F } { F n A r g s N A
0025360 M E T Y P E S O U R C E O
0025400 P T I O N S } \r { T e x t \r R e
0025420 t u r n s t h e d e f i n i
0025440 t i o n o f { a r g N A M
0025460 E } , o f t y p e { a r g
0025500 T Y P E } , f r o m { a r
0025520 g S O U R C E } . F o r
0025540 m o s t t y p e s , { f n
0025560 G E T D E F } r e t u r n s
0025600 t h e e x p r e s s i o n w
0025620 h i c h w o u l d b e p r
0025640 e t t y p r i n t e d w h e
0025660 n d u m p i n g { a r g N
0025700 A M E } a s { a r g T Y P
0025720 E } . F o r e x a m p l e
0025740 , f o r { a r g T Y P E }
0025760 = { l i s p F N S } , a n
0026000 { l i s p E X P R } d e f i
0026020 n i t i o n i s r e t u r n
0026040 e d , f o r { a r g T Y P
0026060 E } = { l i s p V A R S } ,
0026100 t h e v a l u e o f { a r
0026120 g N A M E } i s r e t u r
0026140 n e d , e t c . \r \r \r { a r g
0026160 O P T I O N S } i s a l
0026200 i s t w h i c h s p e c i f
0026220 i e s c e r t a i n o p t i
0026240 o n s : \r \r { B e g i n L a b
0026260 e l e d L i s t G E T D E F
0026300 o p t i o n s } \r \r { N a m e
0026320 { l i s p N O E R R O R } } \r
0026340 { T e x t \r { f n G E T D E F
0026360 } c a u s e s a n e r r o
0026400 r i f a n a p p r o p r i
0026420 a t e d e f i n i t i o n c
0026440 a n n o t b e f o u n d ,
0026460 u n l e s s { a r g O P T I
0026500 O N S } i s o r c o n t a
0026520 i n s { l i s p N O E R R O
0026540 R } . I n t h i s c a s
0026560 e , { f n G E T D E F } r
0026600 e t u r n s t h e v a l u e
0026620 o f t h e { l i s p N U
0026640 L L D E F } f i l e p a c k
0026660 a g e t y p e p r o p e r t
0026700 y ( { P a g e R e f ( F i l
0026720 e P a c k a g e T y p e P
0026740 r o p e r t y ) N U L L D E F
0026760 } ) , u s u a l l y { l i s
0027000 p N I L } . \r } \r \r { N a m e
0027020 a s t r i n g } \r { T e x t
0027040 \r I f { a r g O P T I O N S
0027060 } i s o r c o n t a i n s
0027100 a s t r i n g , t h a t
0027120 s t r i n g w i l l b e r
0027140 e t u r n e d i f n o d e
0027160 f i n i t i o n i s f o u n
0027200 d ( a n d { l i s p N O E
0027220 R R O R } i s n o t a m o
0027240 n g t h e o p t i o n s ) .
0027260 T h e c a l l e r c a n
0027300 t h u s d e t e r m i n e
0027320 w h e t h e r a d e f i n i
0027340 t i o n w a s f o u n d ,
0027360 e v e n f o r t y p e s f
0027400 o r w h i c h { l i s p N
0027420 I L } o r { l i s p N O B
0027440 I N D } a r e a c c e p t a
0027460 b l e d e f i n i t i o n s .
0027500 \r } \r \r { N a m e { l i s p
0027520 N O C O P Y } } \r { T e x t \r {
0027540 f n G E T D E F } r e t u r
0027560 n s a c o p y o f t h e
0027600 d e f i n i t i o n u n l e
0027620 s s { a r g O P T I O N S }
0027640 i s o r c o n t a i n s
0027660 { l i s p N O C O P Y } . \r }
0027700 \r \r { N a m e { l i s p E D
0027720 I T } } \r { T e x t \r I f { a
0027740 r g O P T I O N S } i s o
0027760 r c o n t a i n s { l i s p
0030000 E D I T } , { f n G E T D
0030020 E F } r e t u r n s a c o
0030040 p y o f t h e d e f i n i
0030060 t i o n u n l e s s i t i
0030100 s p o s s i b l e t o e d
0030120 i t t h e d e f i n i t i o
0030140 n " i n p l a c e . " W
0030160 i t h s o m e f i l e p a
0030200 c k a g e t y p e s , s u c
0030220 h a s f u n c t i o n s ,
0030240 i t i s m e a n i n g f u l
0030260 ( a n d e f f i c i e n t )
0030300 t o e d i t t h e d e f
0030320 i n i t i o n b y d e s t r
0030340 u c t i v e l y m o d i f y i
0030360 n g t h e l i s t s t r u
0030400 c t u r e , w i t h o u t c
0030420 a l l i n g { f n P U T D E
0030440 F } . H o w e v e r , s o
0030460 m e f i l e p a c k a g e
0030500 t y p e s ( l i k e r e c o
0030520 r d s ) n e e d t o b e
0030540 " i n s t a l l e d " w i t h
0030560 { f n P U T D E F } a f t
0030600 e r t h e y a r e e d i t
0030620 e d . T h e d e f a u l t
0030640 { l i s p E D I T D E F }
0030660 ( s e e { P a g e R e f ( F
0030700 i l e P a c k a g e T y p e
0030720 P r o p e r t y ) E D I T D
0030740 E F } ) c a l l s { f n G
0030760 E T D E F } w i t h { a r g
0031000 O P T I O N S } o f { l i
0031020 s p ( E D I T N O C O P Y )
0031040 } , s o i t d o e s n ' t
0031060 u s e a c o p y u n l e
0031100 s s i t h a s t o , a n
0031120 d o n l y c a l l s { f n
0031140 P U T D E F } i f t h e
0031160 r e s u l t o f e d i t i n
0031200 g i s n o t { f n E Q U
0031220 A L } t o t h e o l d d
0031240 e f i n i t i o n . \r } \r \r { N
0031260 a m e { l i s p N O D W I M
0031300 } } \r { T e x t \r A { l i s p
0031320 F N S } d e f i n i t i o n
0031340 w i l l b e d w i m i f i
0031360 e d i f i t i s l i k e
0031400 l y t o c o n t a i n C L
0031420 I S P u n l e s s { a r g
0031440 O P T I O N S } i s o r c
0031460 o n t a i n s { l i s p N O
0031500 D W I M } . \r } \r \r \r { E n d
0031520 L a b e l e d L i s t G E T D
0031540 E F o p t i o n s } \r \r \r { n
0031560 o t e a d d i t i o n a l G
0031600 E T D E F o p t i o n s w h
0031620 i c h n e e d t o b e e
0031640 x p l a i n e d : S P E L L
0031660 , H A S D E F , F A S T ,
0031700 A R G L I S T } \r \r } } \r \r \r \r
0031720 { F n D e f { F n N a m e P
0031740 U T D E F } { F n A r g s N
0031760 A M E T Y P E D E F I N I T
0032000 I O N R E A S O N } \r { T e x
0032020 t \r D e f i n e s { a r g N
0032040 A M E } o f t y p e { a r
0032060 g T Y P E } w i t h { a r
0032100 g D E F I N I T I O N } .
0032120 F o r { a r g T Y P E } = {
0032140 l i s p F N S } , d o e s
0032160 a { f n D E F I N E } ; f
0032200 o r { a r g T Y P E } = { l
0032220 i s p V A R S } , d o e s
0032240 a { f n S A V E S E T } ,
0032260 e t c . \r \r F o r { a r g T
0032300 Y P E } = { l i s p F I L E S
0032320 } , { f n P U T D E F } e
0032340 s t a b l i s h e s t h e c
0032360 o m m a n d l i s t , n o t
0032400 i c e s { a r g N A M E } ,
0032420 a n d t h e n c a l l s
0032440 { f n M A K E F I L E } t o
0032460 a c t u a l l y d u m p t
0032500 h e f i l e { a r g N A M
0032520 E } , c o p y i n g f u n c
0032540 t i o n s i f n e c e s s a
0032560 r y f r o m t h e " o l d
0032600 " f i l e ( s u p p l i e d
0032620 a s p a r t o f { a r g
0032640 D E F I N I T I O N } ) . \r \r
0032660 { f n P U T D E F } c a l l
0032700 s { f n M A R K A S C H A N
0032720 G E D } ( { P a g e R e f F
0032740 n M A R K A S C H A N G E D }
0032760 ) t o m a r k { a r g N
0033000 A M E } a s c h a n g e d ,
0033020 g i v i n g a r e a s o n
0033040 o f { a r g R E A S O N }
0033060 . I f { a r g R E A S O
0033100 N } i s { l i s p N I L }
0033120 , t h e d e f a u l t i s
0033140 { l i s p D E F I N E D } .
0033160 \r \r N o t e : I f { a r g
0033200 T Y P E } = { l i s p F N S
0033220 } , { f n P U T D E F } p
0033240 r i n t s a w a r n i n g
0033260 i f t h e u s e r t r i e
0033300 s t o r e d e f i n e a
0033320 f u n c t i o n o n t h e
0033340 l i s t { i n d e x U N S A
0033360 F E . T O . M O D I F Y . F N S
0033400 V a r } { v a r U N S A F E
0033420 . T O . M O D I F Y . F N S }
0033440 ( { P a g e R e f V a r U N
0033460 S A F E . T O . M O D I F Y . F
0033500 N S } ) . \r } } \r \r \r { F n D e
0033520 f { F n N a m e H A S D E F
0033540 } { F n A r g s N A M E T
0033560 Y P E S O U R C E S P E L L
0033600 F L G } \r { T e x t \r R e t u r
0033620 n s { l i s p ( O R { a r
0033640 g N A M E } T ) } i f {
0033660 a r g N A M E } i s t h e
0033700 n a m e o f s o m e t h i
0033720 n g o f t y p e { a r g
0033740 T Y P E } . I f n o t ,
0033760 a t t e m p t s s p e l l i n
0034000 g c o r r e c t i o n i f
0034020 { a r g S P E L L F L G } = {
0034040 l i s p T } , a n d r e t
0034060 u r n s t h e s p e l l i n
0034100 g - c o r r e c t e d { a r g
0034120 N A M E } . O t h e r w i
0034140 s e r e t u r n s { l i s p
0034160 N I L } . \r \r { l i s p ( H
0034200 A S D E F N I L { a r g T
0034220 Y P E } ) } r e t u r n s {
0034240 l i s p T } i f { l i s p
0034260 N I L } h a s a v a l i
0034300 d d e f i n i t i o n . \r \r N
0034320 o t e : i f { a r g S O
0034340 U R C E } = { l i s p N I L }
0034360 , { a r g H A S D E F } i
0034400 n t e r p r e t s t h i s a
0034420 s e q u a l t o { a r g
0034440 S O U R C E } = { l i s p C U
0034460 R R E N T } , w h i c h o n
0034500 l y t e s t s i f t h e r
0034520 e i s a c u r r e n t d
0034540 e f i n i t i o n . \r } } \r \r \r
0034560 \r { F n D e f { F n N a m e
0034600 T Y P E S O F } { F n A r g s
0034620 N A M E P O S S I B L E T Y
0034640 P E S I M P O S S I B L E T Y
0034660 P E S S O U R C E } \r { T e x
0034700 t \r R e t u r n s a l i s t
0034720 o f t h e t y p e s i n
0034740 { a r g P O S S I B L E T Y
0034760 P E S } b u t n o t i n
0035000 { a r g I M P O S S I B L E T
0035020 Y P E S } f o r w h i c h
0035040 { a r g N A M E } h a s a
0035060 d e f i n i t i o n . { l
0035100 i s p F I L E P K G T Y P E S
0035120 } i s u s e d i f { a r
0035140 g P O S S I B L E T Y P E S }
0035160 i s { l i s p N I L } . \r
0035200 } } \r \r \r \r { F n D e f { F n
0035220 N a m e C O P Y D E F } { F
0035240 n A r g s O L D N E W T Y
0035260 P E S O U R C E O P T I O N
0035300 S } \r { T e x t \r D e f i n e s
0035320 { a r g N E W } t o h a
0035340 v e a c o p y o f t h e
0035360 d e f i n i t i o n o f {
0035400 a r g O L D } b y d o i n
0035420 g { f n P U T D E F } o n
0035440 a c o p y o f t h e d
0035460 e f i n i t i o n r e t r i e
0035500 v e d b y { l i s p ( G E
0035520 T D E F { a r g O L D } {
0035540 a r g T Y P E } { a r g S
0035560 O U R C E } { a r g O P T I
0035600 O N S } ) } . { a r g N E
0035620 W } i s s u b s t i t u t e
0035640 d f o r { a r g O L D }
0035660 i n t h e c o p i e d d e
0035700 f i n i t i o n , i n a m
0035720 a n n e r t h a t m a y d
0035740 e p e n d o n t h e { a r
0035760 g T Y P E } . \r \r { n o t
0036000 e I a s s u m e t h a t
0036020 C O P Y D E F w i l l f a i
0036040 l m i s e r a b l y i f g
0036060 i v e n a n y u s e r - d e
0036100 f i n e d f i l e p a c k a
0036120 g e t y p e w h i c h c o
0036140 n t a i n s i n t e r n a l
0036160 r e f e r e n c e s t o i t
0036200 s n a m e . P e r h a p s
0036220 t h e r e s h o u l d b e
0036240 a C O P Y D E F a t t r i
0036260 b u t e d e f i n a b l e b
0036300 y F I L E P K G T Y P E ? ?
0036320 ? } \r \r F o r e x a m p l e ,
0036340 { l i s p ( C O P Y D E F
0036360 ' P D Q ' R S T ' F I L E S
0036400 ) } s e t s u p { l i s p
0036420 R S T C O M S } t o b e
0036440 a c o p y o f { l i s p
0036460 P D Q C O M S } , c h a n g e
0036500 s t h i n g s l i k e { l
0036520 i s p ( V A R S * P D Q V
0036540 A R S ) } t o b e { l i s
0036560 p ( V A R S * R S T V A R
0036600 S ) } i n { l i s p R S T
0036620 C O M S } , a n d p e r f o
0036640 r m s a { f n M A K E F I
0036660 L E } o n { l i s p R S T
0036700 } s u c h t h a t t h e
0036720 a p p r o p r i a t e d e f i
0036740 n i t i o n s g e t c o p i
0036760 e d f r o m { l i s p P D
0037000 Q } . \r \r { f n C O P Y D E F
0037020 } d i s a b l e s t h e {
0037040 l i s p N O C O P Y } o p t
0037060 i o n o f { f n G E T D E
0037100 F } , s o { a r g N E W }
0037120 w i l l a l w a y s h a v
0037140 e a { i t c o p y } o f
0037160 t h e d e f i n i t i o n
0037200 o f { a r g O L D } . \r \r N
0037220 o t e : { f n C O P Y D E
0037240 F } s u b s t i t u t e s {
0037260 a r g N E W } f o r { a r
0037300 g O L D } t h r o u g h o u
0037320 t t h e d e f i n i t i o n
0037340 o f { a r g O L D } .
0037360 T h i s i s u s u a l l y
0037400 t h e r i g h t t h i n g
0037420 t o d o , b u t i n s o
0037440 m e c a s e s , e . g . ,
0037460 w h e r e t h e o l d n a
0037500 m e a p p e a r s w i t h i
0037520 n a q u o t e d e x p r e
0037540 s s i o n b u t w a s n o
0037560 t u s e d i n t h e s a
0037600 m e c o n t e x t , t h e
0037620 u s e r m u s t r e - e d i
0037640 t t h e d e f i n i t i o n
0037660 . \r } } \r \r \r { F n D e f { F
0037700 n N a m e D E L D E F } { F
0037720 n A r g s N A M E T Y P E }
0037740 \r { T e x t \r R e m o v e s t
0037760 h e d e f i n i t i o n o f
0040000 { a r g N A M E } a s a
0040020 { a r g T Y P E } t h a t
0040040 i s c u r r e n t l y i n
0040060 e f f e c t . \r } } \r \r \r { F
0040100 n D e f { F n N a m e S H O
0040120 W D E F } { F n A r g s N A
0040140 M E T Y P E F I L E } \r { T
0040160 e x t \r P r e t t y p r i n t s
0040200 t h e d e f i n i t i o n
0040220 o f { a r g N A M E } a s
0040240 a { a r g T Y P E } t o
0040260 { a r g F I L E } . T h
0040300 i s s h o w s t h e u s e
0040320 r h o w { a r g N A M E }
0040340 w o u l d b e w r i t t e
0040360 n t o a f i l e . U s
0040400 e d b y { f n A D D T O F
0040420 I L E S ? } ( { P a g e R e f
0040440 F n A D D T O F I L E S ? }
0040460 ) . \r } } \r \r \r { F n D e f {
0040500 F n N a m e E D I T D E F }
0040520 { F n A r g s N A M E T Y P
0040540 E S O U R C E E D I T C O M
0040560 S } \r { T e x t \r E d i t s t
0040600 h e d e f i n i t i o n o f
0040620 { a r g N A M E } a s a
0040640 { a r g T Y P E } . E s
0040660 s e n t i a l l y p e r f o r
0040700 m s \r \r { l i s p c o d e \r ( P
0040720 U T D E F { a r g N A M E }
0040740 { a r g T Y P E } \r (
0040760 E D I T E ( G E T D E F { a
0041000 r g N A M E } { a r g T Y
0041020 P E } { a r g S O U R C E }
0041040 ) \r { a r g
0041060 E D I T C O M S } ) ) } \r } } \r
0041100 \r \r { F n D e f { F n N a m e
0041120 S A V E D E F } { F n A r g
0041140 s N A M E T Y P E D E F I
0041160 N I T I O N } \r { T e x t \r S e
0041200 t s t h e " s a v e d " d
0041220 e f i n i t i o n o f { a r
0041240 g N A M E } a s a { a r
0041260 g T Y P E } t o { a r g
0041300 D E F I N I T I O N } . I f
0041320 { a r g D E F I N I T I O N
0041340 } = { l i s p N I L } , t h
0041360 e c u r r e n t d e f i n i
0041400 t i o n o f { a r g N A M
0041420 E } i s s a v e d . \r \r I f
0041440 { a r g T Y P E } = { l i s
0041460 p F N S } ( o r { l i s p
0041500 N I L } ) , t h e f u n c
0041520 t i o n d e f i n i t i o n
0041540 i s s a v e d o n { a r g
0041560 N A M E } ' s p r o p e r t
0041600 y l i s t u n d e r t h e
0041620 p r o p e r t y { i n d e x
0041640 E X P R P r o p } { p r o p
0041660 E X P R } , o r { i n d e
0041700 x * P R I M A R Y * C O D E
0041720 P r o p } { p r o p C O D E
0041740 } ( d e p e n d i n g o n
0041760 t h e { i n d e x F N T Y P
0042000 F N } { f n F N T Y P } o
0042020 f t h e f u n c t i o n d
0042040 e f i n i t i o n ) . I f
0042060 { l i s p ( G E T D { a r g
0042100 N A M E } ) } i s n o n -
0042120 { l i s p N I L } , b u t
0042140 { l i s p ( F N T Y P { a r
0042160 g F N } ) } = { l i s p N I
0042200 L } , { f n S A V E D E F }
0042220 s a v e s t h e d e f i n
0042240 i t i o n o n t h e p r o
0042260 p e r t y n a m e { i n d e
0042300 x * P R I M A R Y * L I S T
0042320 P r o p } { l i s p L I S T
0042340 } . T h i s c a n h a p
0042360 p e n i f a f u n c t i o
0042400 n w a s s o m e h o w d e
0042420 f i n e d w i t h a n i l
0042440 l e g a l e x p r d e f i n
0042460 i t i o n , s u c h a s {
0042500 l i s p ( L A M M M M D A (
0042520 X ) { e l l i p s i s } ) } .
0042540 \r \r I f { a r g T Y P E } =
0042560 { l i s p V A R S } , t h e
0042600 d e f i n i t i o n i s s
0042620 t o r e d a s t h e v a l
0042640 u e o f t h e { i n d e x
0042660 * P R I M A R Y * V A L U E
0042700 P r o p } { p r o p V A L U
0042720 E } p r o p e r t y o f {
0042740 a r g N A M E } . F o r
0042760 o t h e r t y p e s , t h e
0043000 d e f i n i t i o n i s s
0043020 t o r e d i n a n i n t e
0043040 r n a l d a t a s t r u c t
0043060 u r e , f r o m w h e r e
0043100 i t c a n b e r e t r i e
0043120 v e d b y { f n G E T D E
0043140 F } o r { f n U N S A V E
0043160 D E F } . \r } } \r \r \r { F n D e
0043200 f { F n N a m e U N S A V E
0043220 D E F } { F n A r g s N A M
0043240 E T Y P E { a n o n a r g }
0043260 } \r { T e x t \r R e s t o r e s
0043300 t h e " s a v e d " d e f
0043320 i n i t i o n o f { a r g
0043340 N A M E } a s a { a r g
0043360 T Y P E } , m a k i n g i t
0043400 b e t h e c u r r e n t
0043420 d e f i n i t i o n . R e t
0043440 u r n s { a r g P R O P } .
0043460 \r \r I f { a r g T Y P E } =
0043500 { l i s p F N S } ( o r {
0043520 l i s p N I L } ) , { f n
0043540 U N S A V E D E F } u n s a v
0043560 e s t h e f u n c t i o n
0043600 d e f i n i t i o n f r o m
0043620 t h e { p r o p E X P R }
0043640 p r o p e r t y i f a n y ,
0043660 e l s e { p r o p C O D E
0043700 } , a n d r e t u r n s t
0043720 h e p r o p e r t y n a m e
0043740 u s e d . { f n U N S A
0043760 V E D E F } a l s o r e c o
0044000 g n i z e s { a r g T Y P E
0044020 } = { l i s p E X P R } , {
0044040 l i s p C O D E } , o r {
0044060 l i s p L I S T } , m e a n
0044100 i n g t o u n s a v e t h
0044120 e d e f i n i t i o n o n l
0044140 y f r o m t h e c o r r e
0044160 s p o n d i n g p r o p e r t
0044200 y o n l y . \r \r I f { i n d
0044220 e x D F N F L G V a r } { v
0044240 a r D F N F L G } i s n o
0044260 t { l i s p T } ( s e e
0044300 { P a g e R e f V a r D F N
0044320 F L G } ) , t h e c u r r e
0044340 n t d e f i n i t i o n o f
0044360 { a r g N A M E } , i f
0044400 a n y , i s s a v e d u s
0044420 i n g { f n S A V E D E F }
0044440 . T h u s o n e c a n
0044460 u s e { f n U N S A V E D E
0044500 F } t o s w i t c h b a c
0044520 k a n d f o r t h b e t w
0044540 e e n t w o d e f i n i t i
0044560 o n s . \r } } \r \r \r { F n D e f
0044600 { F n N a m e L O A D D E F
0044620 } { F n A r g s N A M E T
0044640 Y P E S O U R C E } \r { T e x
0044660 t \r E q u i v a l e n t t o
0044700 { l i s p ( P U T D E F { a
0044720 r g N A M E } { a r g T Y
0044740 P E } ( G E T D E F { a r g
0044760 N A M E } { a r g T Y P E
0045000 } { a r g S O U R C E } ) )
0045020 } . { f n L O A D D E F }
0045040 i s e s s e n t i a l l y
0045060 a g e n e r a l i z a t i o n
0045100 o f { f n L O A D F N S }
0045120 , e . g . i t e n a b l e
0045140 s l o a d i n g a s i n g
0045160 l e r e c o r d d e c l a r
0045200 a t i o n f r o m a f i l
0045220 e . \r N o t e t h a t { l i
0045240 s p ( L O A D D E F { a r g
0045260 F N } ) } w i l l g i v e
0045300 { a r g F N } a n { l i
0045320 s p E X P R } d e f i n i t
0045340 i o n , e i t h e r o b t a
0045360 i n e d f r o m i t s p r
0045400 o p e r t y l i s t o r a
0045420 f i l e , u n l e s s i t
0045440 a l r e a d y h a s o n e
0045460 . \r \r { n o t e c a l l s G
0045500 E T D E F w i t h O P T I O
0045520 N S = ( N O D W I M N O C O P
0045540 Y ) } \r \r } } \r \r \r { F n D e f
0045560 { F n N a m e C H A N G E C
0045600 A L L E R S } { F n A r g s
0045620 O L D N E W T Y P E S F I
0045640 L E S M E T H O D } \r { T e x
0045660 t \r F i n d s a l l o f t
0045700 h e p l a c e s w h e r e
0045720 { a r g O L D } i s u s e
0045740 d a s a n y o f t h e
0045760 t y p e s i n { a r g T Y
0046000 P E S } a n d c h a n g e s
0046020 t h o s e p l a c e s t o
0046040 u s e { a r g N E W } .
0046060 F o r e x a m p l e , { l
0046100 i s p ( C H A N G E C A L L E
0046120 R S ' N L S E T Q ' E R S E
0046140 T Q ) } w i l l c h a n g e
0046160 a l l c a l l s t o { f
0046200 n N L S E T Q } t o b e
0046220 c a l l s t o { f n E R S
0046240 E T Q } . A l s o c h a n
0046260 g e s o c c u r r e n c e s
0046300 o f { a r g O L D } t o
0046320 { a r g N E W } i n s i d e
0046340 t h e f i l e c o m s o f
0046360 a n y f i l e , i n s i d
0046400 e r e c o r d d e c l a r a
0046420 t i o n s , p r o p e r t i e
0046440 s , e t c . \r \r { f n C
0046460 H A N G E C A L L E R S } a t
0046500 t e m p t s t o d e t e r m
0046520 i n e i f { a r g O L D }
0046540 m i g h t b e u s e d a
0046560 s m o r e t h a n o n e
0046600 t y p e ; f o r e x a m p l
0046620 e , i f i t i s b o t h
0046640 a f u n c t i o n a n d
0046660 a r e c o r d f i e l d .
0046700 I f s o , r a t h e r t
0046720 h a n p e r f o r m i n g t
0046740 h e t r a n s f o r m a t i o
0046760 n { l i s p { a r g O L D
0047000 } - > { a r g N E W } }
0047020 a u t o m a t i c a l l y , t
0047040 h e u s e r i s a l l o w
0047060 e d t o e d i t a l l o
0047100 f t h e p l a c e s w h e
0047120 r e { a r g O L D } o c c
0047140 u r s . F o r e a c h o
0047160 c c u r r e n c e o f { a r
0047200 g O L D } , t h e u s e r
0047220 i s a s k e d w h e t h e
0047240 r h e w a n t s t o m a
0047260 k e t h e r e p l a c e m e
0047300 n t . I f h e r e s p o
0047320 n d s w i t h a n y t h i n
0047340 g e x c e p t { l i s p Y
0047360 e s } o r { l i s p N o }
0047400 , t h e e d i t o r i s
0047420 i n v o k e d o n t h e e
0047440 x p r e s s i o n c o n t a i
0047460 n i n g t h a t o c c u r r
0047500 e n c e . \r \r T h e r e a r e
0047520 t w o d i f f e r e n t m
0047540 e t h o d s f o r d e t e r
0047560 m i n i n g w h i c h f u n
0047600 c t i o n s a r e t o b e
0047620 e x a m i n e d . I f {
0047640 a r g M E T H O D } = { l i s
0047660 p E D I T C A L L E R S } ,
0047700 { f n E D I T C A L L E R S }
0047720 i s u s e d t o s e a r
0047740 c h { a r g F I L E S } (
0047760 s e e { P a g e R e f F n
0050000 E D I T C A L L E R S } ) .
0050020 I f { a r g M E T H O D } =
0050040 { l i s p M A S T E R S C O P
0050060 E } , t h e n t h e M a s
0050100 t e r s c o p e d a t a b a s
0050120 e i s u s e d i n s t e a
0050140 d . { a r g M E T H O D }
0050160 = { l i s p N I L } d e f a
0050200 u l t s t o { l i s p M A
0050220 S T E R S C O P E } i f t h
0050240 e v a l u e o f t h e v
0050260 a r i a b l e { v a r D E F
0050300 A U L T R E N A M E M E T H O D
0050320 } { i n d e x * P R I M A R Y
0050340 * D E F A U L T R E N A M E M
0050360 E T H O D V a r } i s { l
0050400 i s p M A S T E R S C O P E }
0050420 a n d a M a s t e r s c o
0050440 p e d a t a b a s e e x i s
0050460 t s , o t h e r w i s e i t
0050500 d e f a u l t s t o { l i
0050520 s p E D I T C A L L E R S } .
0050540 \r } } \r \r \r { F n D e f { F n
0050560 N a m e R E N A M E } { F n
0050600 A r g s O L D N E W T Y P
0050620 E S F I L E S M E T H O D }
0050640 \r { T e x t \r F i r s t p e r
0050660 f o r m s { l i s p ( C O P
0050700 Y D E F { a r g O L D } {
0050720 a r g N E W } { a r g T Y
0050740 P E } ) } f o r a l l { a
0050760 r g T Y P E } i n s i d e
0051000 { a r g T Y P E S } . I t
0051020 t h e n c a l l s { f n
0051040 C H A N G E C A L L E R S } t
0051060 o c h a n g e a l l o c c
0051100 u r r e n c e s o f { a r g
0051120 O L D } t o { a r g N E
0051140 W } , a n d t h e n " d e
0051160 l e t e s " { a r g O L D }
0051200 w i t h { f n D E L D E F
0051220 } . F o r e x a m p l e ,
0051240 i f t h e u s e r h a s
0051260 a f u n c t i o n { l i s
0051300 p F O O } w h i c h h e
0051320 n o w w i s h e s t o c a
0051340 l l { l i s p F I E } , h
0051360 e s i m p l y p e r f o r m
0051400 s { l i s p ( R E N A M E
0051420 ' F O O ' F I E ) } , a n d
0051440 { l i s p F I E } w i l l
0051460 b e g i v e n { l i s p
0051500 F O O } ' s d e f i n i t i o
0051520 n , a n d a l l p l a c e
0051540 s t h a t { l i s p F O O
0051560 } a r e c a l l e d w i l
0051600 l b e c h a n g e d t o
0051620 c a l l { l i s p F I E }
0051640 i n s t e a d . \r \r { a r g M
0051660 E T H O D } i s i n t e r p
0051700 r e t e d t h e s a m e a
0051720 s t h e { a r g M E T H O
0051740 D } a r g u m e n t t o {
0051760 f n C H A N G E C A L L E R S
0052000 } , a b o v e . \r } } \r \r \r {
0052020 F n D e f { F n N a m e C O
0052040 M P A R E } { F n A r g s N
0052060 A M E 1 N A M E 2 T Y P E
0052100 S O U R C E 1 S O U R C E 2 }
0052120 \r { T e x t \r C o m p a r e s
0052140 t h e d e f i n i t i o n o
0052160 f { a r g N A M E 1 } w i
0052200 t h t h a t o f { a r g
0052220 N A M E 2 } , b y c a l l i
0052240 n g { f n C O M P A R E L I
0052260 S T S } ( { P a g e R e f F
0052300 n C O M P A R E L I S T S } )
0052320 o n { l i s p ( G E T D
0052340 E F { a r g N A M E 1 } {
0052360 a r g T Y P E } { a r g S
0052400 O U R C E 1 } ) } a n d { l
0052420 i s p ( G E T D E F { a r g
0052440 N A M E 2 } { a r g T Y P
0052460 E } { a r g S O U R C E 2 }
0052500 ) } , w h i c h p r i n t s
0052520 t h e i r d i f f e r e n c
0052540 e s o n t h e t e r m i n
0052560 a l . \r \r F o r e x a m p l e
0052600 , i f t h e c u r r e n t
0052620 v a l u e o f t h e v a
0052640 r i a b l e { l i s p A }
0052660 i s { l i s p ( A B C
0052700 ( D E F ) G ) } , a n d
0052720 t h e v a l u e o f t h
0052740 e v a r i a b l e { l i s p
0052760 B } o n t h e f i l e
0053000 { l i s p < l i s p > F O O }
0053020 i s { l i s p ( A B C
0053040 ( D F E ) G ) } , t h
0053060 e n : \r \r { l i s p c o d e \r _
0053100 ( C O M P A R E ' A ' B '
0053120 V A R S ' C U R R E N T ' <
0053140 l i s p > F O O ) \r A f r o m
0053160 C U R R E N T a n d B f
0053200 r o m < l i s p > T E S T d
0053220 i f f e r : \r ( E - > F )
0053240 ( F - > E ) \r T } \r } } \r
0053260 \r \r { F n D e f { F n N a m e
0053300 C O M P A R E D E F S } { F
0053320 n A r g s N A M E T Y P E
0053340 S O U R C E S } \r { T e x t \r C
0053360 a l l s { f n C O M P A R E
0053400 L I S T S } ( { P a g e R e f
0053420 F n C O M P A R E L I S T S
0053440 } ) o n a l l p a i r s
0053460 o f d e f i n i t i o n s o
0053500 f { a r g N A M E } a s
0053520 a { a r g T Y P E } o b t
0053540 a i n e d f r o m t h e v
0053560 a r i o u s { a r g S O U R
0053600 C E S } ( i n t e r p r e t e
0053620 d a s a l i s t o f s
0053640 o u r c e s p e c i f i c a t
0053660 i o n s ) . \r } } \r \r \r \r } {
0053700 E n d S u b S e c F u n c t
0053720 i o n s f o r M a n i p u l
0053740 a t i n g T y p e d D e f i
0053760 n i t i o n s } \r \r \r \r { B e g
0054000 i n S u b S e c D e f i n i
0054020 n g N e w F i l e P a c k
0054040 a g e T y p e s } \r { T i t l
0054060 e D e f i n i n g N e w F
0054100 i l e P a c k a g e T y p e
0054120 s } \r { T e x t \r \r { i n d e x
0054140 * P R I M A R Y * D e f i n
0054160 i n g f i l e p a c k a g e
0054200 t y p e s } \r \r A l l m a n
0054220 i p u l a t i o n o f t y p
0054240 e d d e f i n i t i o n s i
0054260 n t h e f i l e p a c k a
0054300 g e i s d o n e u s i n g
0054320 t h e t y p e - i n d e p e
0054340 n d e n t f u n c t i o n s
0054360 { f n G E T D E F } , { f n
0054400 P U T D E F } , e t c .
0054420 T h e r e f o r e , t o d e
0054440 f i n e a n e w f i l e
0054460 p a c k a g e t y p e , i t
0054500 i s o n l y n e c e s s a
0054520 r y t o s p e c i f y ( v
0054540 i a t h e f u n c t i o n
0054560 { f n F I L E P K G T Y P E }
0054600 ) w h a t t h e s e f u n
0054620 c t i o n s s h o u l d d o
0054640 w h e n d e a l i n g w i
0054660 t h a t y p e d d e f i n
0054700 i t i o n o f t h e n e w
0054720 t y p e . E a c h f i l
0054740 e p a c k a g e t y p e h
0054760 a s t h e f o l l o w i n g
0055000 p r o p e r t i e s , w h o
0055020 s e v a l u e s a r e f u
0055040 n c t i o n s o r l i s t s
0055060 o f f u n c t i o n s : \r \r
0055100 N o t e : T h e s e f u n
0055120 c t i o n s a r e d e f i n
0055140 e d t o t a k e a { a r
0055160 g T Y P E } a r g u m e n t
0055200 s o t h a t t h e u s e
0055220 r m a y h a v e t h e s
0055240 a m e f u n c t i o n f o r
0055260 m o r e t h a n o n e t
0055300 y p e . \r \r \r { D e f { T y p
0055320 e ( F i l e P a c k a g e
0055340 T y p e P r o p e r t y ) }
0055360 { N a m e G E T D E F } \r { T
0055400 e x t \r V a l u e i s a f
0055420 u n c t i o n o f t h r e e
0055440 a r g u m e n t s , { a r g
0055460 N A M E } , { a r g T Y P
0055500 E } , a n d { a r g O P T
0055520 I O N S } , w h i c h s h o
0055540 u l d r e t u r n t h e c
0055560 u r r e n t d e f i n i t i o
0055600 n o f { a r g N A M E }
0055620 a s a t y p e { a r g T
0055640 Y P E } . U s e d b y {
0055660 f n G E T D E F } ( { P a g
0055700 e R e f F n G E T D E F } )
0055720 , w h i c h p a s s e s i
0055740 t s { a r g O P T I O N S }
0055760 a r g u m e n t . \r \r I f t
0056000 h e r e i s n o { l i s p
0056020 G E T D E F } p r o p e r t
0056040 y , a f i l e p a c k a g
0056060 e c o m m a n d f o r d u
0056100 m p i n g { a r g N A M E }
0056120 i s c r e a t e d ( b y
0056140 { f n M A K E N E W C O M } )
0056160 . T h i s c o m m a n d
0056200 i s t h e n u s e d t o
0056220 w r i t e t h e d e f i n i
0056240 t i o n o f { a r g N A M
0056260 E } a s a t y p e { a r
0056300 g T Y P E } o n t o t h e
0056320 f i l e { l i s p F I L E
0056340 P K G . S C R A T C H } { i n d
0056360 e x F I L E P K G . S C R A T
0056400 C H ( f i l e ) } ( i n I
0056420 n t e r l i s p - D , t h i s
0056440 f i l e i s c r e a t e d
0056460 o n t h e { l i s p { b
0056500 r a c k e t C O R E } } d e
0056520 v i c e ) . T h i s e x p
0056540 r e s s i o n i s t h e n
0056560 r e a d b a c k i n a n d
0056600 r e t u r n e d a s t h e
0056620 c u r r e n t d e f i n i t
0056640 i o n . \r \r { n o t e i f G
0056660 E T D E F p r o p i s T
0056700 ( F N S , V A R S , e t c )
0056720 , t h i s i s h a n d l e
0056740 d b y c o d e i n G E T
0056760 D E F C U R R E N T } \r \r N o t
0057000 e : I n s o m e s i t u
0057020 a t i o n s , t h e f u n c
0057040 t i o n { f n H A S D E F }
0057060 ( { P a g e R e f F n H A
0057100 S D E F } ) n e e d s t o
0057120 c a l l { f n G E T D E F }
0057140 t o d e t e r m i n e w h
0057160 e t h e r a d e f i n i t i
0057200 o n e x i s t s . I n t
0057220 h i s c a s e , { a r g O
0057240 P T I O N S } w i l l i n c
0057260 l u d e t h e l i t a t o m
0057300 { l i s p H A S D E F } ,
0057320 a n d i t i s p e r m i s
0057340 s a b l e f o r a { l i s
0057360 p G E T D E F } f u n c t i
0057400 o n t o r e t u r n { l i
0057420 s p T } o r { l i s p N
0057440 I L } , r a t h e r t h a n
0057460 c r e a t i n g a c o m p
0057500 l e x s t r u c t u r e w h
0057520 i c h w i l l n o t b e
0057540 u s e d . \r } } \r \r \r { D e f
0057560 { T y p e ( F i l e P a c k
0057600 a g e T y p e P r o p e r t
0057620 y ) } { N a m e N U L L D E
0057640 F } \r { T e x t \r T h e v a l
0057660 u e o f t h e { l i s p
0057700 N U L L D E F } p r o p e r t
0057720 y i s r e t u r n e d b y
0057740 { f n G E T D E F } ( { P
0057760 a g e R e f F n G E T D E F
0060000 } ) w h e n t h e r e i s
0060020 n o d e f i n i t i o n a
0060040 n d t h e { l i s p N O E
0060060 R R O R } o p t i o n i s
0060100 s u p p l i e d . F o r e
0060120 x a m p l e , t h e { l i s
0060140 p N U L L D E F } o f { l
0060160 i s p V A R S } i s { l i
0060200 s p N O B I N D } . \r } } \r \r
0060220 \r { D e f { T y p e ( F i l
0060240 e P a c k a g e T y p e P
0060260 r o p e r t y ) } { N a m e
0060300 F I L E G E T D E F } \r { T e x
0060320 t \r T h i s e n a b l e s t
0060340 h e u s e r t o p r o v i
0060360 d e a w a y o f o b t a
0060400 i n i n g d e f i n i t i o n
0060420 s f r o m a f i l e t h
0060440 a t i s m o r e e f f i c
0060460 i e n t t h a n t h e d e
0060500 f a u l t p r o c e d u r e
0060520 u s e d b y { f n G E T D
0060540 E F } ( { P a g e R e f F n
0060560 G E T D E F } ) . V a l u
0060600 e i s a f u n c t i o n
0060620 o f f o u r a r g u m e n t
0060640 s , { a r g N A M E } , {
0060660 a r g T Y P E } , { a r g
0060700 F I L E } , a n d { a r g
0060720 O P T I O N S } . T h e f
0060740 u n c t i o n i s a p p l i
0060760 e d b y { f n G E T D E F
0061000 } w h e n i t i s d e t
0061020 e r m i n e d t h a t a t
0061040 y p e d d e f i n i t i o n
0061060 i s n e e d e d f r o m a
0061100 p a r t i c u l a r f i l e
0061120 . T h e f u n c t i o n
0061140 m u s t o p e n a n d s e
0061160 a r c h t h e g i v e n f
0061200 i l e a n d r e t u r n a
0061220 n y { a r g T Y P E } d e
0061240 f i n i t i o n f o r { a r
0061260 g N A M E } t h a t i t
0061300 f i n d s . \r } } \r \r \r { D e f
0061320 { T y p e ( F i l e P a c
0061340 k a g e T y p e P r o p e r
0061360 t y ) } { N a m e C A N F I
0061400 L E D E F } \r { T e x t \r I f
0061420 t h e v a l u e o f t h i
0061440 s p r o p e r t y i s n o
0061460 n - { l i s p N I L } , t h
0061500 i s i n d i c a t e s t h a
0061520 t d e f i n i t i o n s o f
0061540 t h i s f i l e p a c k a
0061560 g e t y p e a r e n o t
0061600 l o a d e d w h e n a f i
0061620 l e i s l o a d e d w i t
0061640 h { f n L O A D F R O M }
0061660 ( { P a g e R e f F n L O A
0061700 D F R O M } ) . T h e d e
0061720 f a u l t i s { l i s p N
0061740 I L } . I n i t i a l l y ,
0061760 o n l y { l i s p F N S }
0062000 h a s t h i s p r o p e r
0062020 t y s e t t o n o n - { l
0062040 i s p N I L } . \r } } \r \r \r {
0062060 D e f { T y p e ( F i l e
0062100 P a c k a g e T y p e P r o
0062120 p e r t y ) } { N a m e P U
0062140 T D E F } \r { T e x t \r V a l u
0062160 e i s a f u n c t i o n
0062200 o f t h r e e a r g u m e n
0062220 t s , { a r g N A M E } ,
0062240 { a r g T Y P E } , a n d
0062260 { a r g D E F I N I T I O N }
0062300 , w h i c h s h o u l d s
0062320 t o r e { a r g D E F I N I
0062340 T I O N } a s t h e d e f
0062360 i n i t i o n o f { a r g
0062400 N A M E } a s a t y p e
0062420 { a r g T Y P E } . U s e
0062440 d b y { f n P U T D E F }
0062460 ( { P a g e R e f F n P U
0062500 T D E F } ) . \r } } \r \r { D e f
0062520 { T y p e ( F i l e P a c
0062540 k a g e T y p e P r o p e r
0062560 t y ) } { N a m e H A S D E
0062600 F } \r { T e x t \r V a l u e i
0062620 s a f u n c t i o n o f
0062640 t h r e e a r g u m e n t s ,
0062660 { a r g N A M E } , { a r
0062700 g T Y P E } , a n d { a r
0062720 g S O U R C E } , w h i c h
0062740 s h o u l d r e t u r n {
0062760 l i s p ( O R { a r g N A
0063000 M E } T ) } i f { a r g
0063020 N A M E } i s t h e n a m
0063040 e o f s o m e t h i n g o
0063060 f t y p e { a r g T Y P E
0063100 } . { a r g S O U R C E }
0063120 i s a s i n t e r p r e t
0063140 e d b y { f n H A S D E F
0063160 } ( { P a g e R e f F n H
0063200 A S D E F } ) , w h i c h u
0063220 s e s t h i s p r o p e r t
0063240 y . \r } } \r \r { D e f { T y p
0063260 e ( F i l e P a c k a g e
0063300 T y p e P r o p e r t y ) }
0063320 { N a m e E D I T D E F } \r {
0063340 T e x t \r V a l u e i s a
0063360 f u n c t i o n o f f o u r
0063400 a r g u m e n t s , { a r g
0063420 N A M E } , { a r g T Y P
0063440 E } , { a r g S O U R C E }
0063460 , a n d { a r g E D I T C
0063500 O M S } , w h i c h s h o u
0063520 l d e d i t t h e d e f i
0063540 n i t i o n o f { a r g N
0063560 A M E } a s a t y p e {
0063600 a r g T Y P E } f r o m t
0063620 h e s o u r c e { a r g S
0063640 O U R C E } , i n t e r p r e
0063660 t i n g t h e e d i t c o
0063700 m m a n d s { a r g E D I T
0063720 C O M S } . I f s u c e s
0063740 s f u l , s h o u l d r e t
0063760 u r n { a r g N A M E } (
0064000 o r a s p e l l i n g - c o
0064020 r r e c t e d { a r g N A M
0064040 E } ) . I f i t r e t u
0064060 r n s { l i s p N I L } ,
0064100 t h e " d e f a u l t " e d
0064120 i t o r i s c a l l e d .
0064140 U s e d b y { f n E D I
0064160 T D E F } ( { P a g e R e f
0064200 F n E D I T D E F } ) . \r } }
0064220 \r \r { D e f { T y p e ( F i
0064240 l e P a c k a g e T y p e
0064260 P r o p e r t y ) } { N a m e
0064300 D E L D E F } \r { T e x t \r V
0064320 a l u e i s a f u n c t i
0064340 o n o f t w o a r g u m e
0064360 n t s , { a r g N A M E } ,
0064400 a n d { a r g T Y P E } ,
0064420 w h i c h r e m o v e s t
0064440 h e d e f i n i t i o n o f
0064460 { a r g N A M E } a s a
0064500 { a r g T Y P E } t h a t
0064520 i s c u r r e n t l y i n
0064540 e f f e c t . U s e d b
0064560 y { f n D E L D E F } ( {
0064600 P a g e R e f F n D E L D E
0064620 F } ) . \r } } \r \r \r { D e f
0064640 { T y p e ( F i l e P a c k
0064660 a g e T y p e P r o p e r t
0064700 y ) } { N a m e N E W C O M
0064720 } \r { T e x t \r V a l u e i s
0064740 a f u n c t i o n o f f
0064760 o u r a r g u m e n t s , {
0065000 a r g N A M E } , { a r g
0065020 T Y P E } , { a r g L I S T
0065040 N A M E } , a n d { a r g
0065060 F I L E } . S p e c i f i e
0065100 s h o w t o m a k e a
0065120 n e w ( i n s t a n c e o f
0065140 a ) f i l e p a c k a g e
0065160 c o m m a n d t o d u m p
0065200 { a r g N A M E } , a n
0065220 o b j e c t o f t y p e {
0065240 a r g T Y P E } . T h e
0065260 f u n c t i o n s h o u l d
0065300 r e t u r n t h e n e w f
0065320 i l e p a c k a g e c o m m
0065340 a n d . U s e d b y { f
0065360 n A D D T O F I L E } a n d
0065400 { f n S H O W D E F } . \r \r
0065420 I f { a r g L I S T N A M E
0065440 } i s n o n - { l i s p N
0065460 I L } , t h i s m e a n s
0065500 t h a t t h e u s e r s p
0065520 e c i f i e d { a r g L I S
0065540 T N A M E } a s t h e f i
0065560 l e v a r i n h i s i n t
0065600 e r a c t i o n w i t h { f
0065620 n A D D T O F I L E S ? }
0065640 ( s e e { P a g e R e f T a
0065660 g F i l e V a r s } ) . \r \r I
0065700 f n o { l i s p N E W C O
0065720 M } i s s p e c i f i e d ,
0065740 t h e d e f a u l t i s
0065760 t o c a l l { f n D E F A
0066000 U L T M A K E N E W C O M } , {
0066020 i n d e x D E F A U L T M A K
0066040 E N E W C O M F N } w h i c
0066060 h w i l l c o n s t r u c t
0066100 a n d r e t u r n a c o
0066120 m m a n d o f t h e f o r
0066140 m { l i s p ( { a r g T Y
0066160 P E } { a r g N A M E } ) }
0066200 . { f n D E F A U L T M A
0066220 K E N E W C O M } c a n b e
0066240 a d v i s e d o r r e d e
0066260 f i n e d b y t h e u s e
0066300 r . \r } } \r \r \r { D e f { T
0066320 y p e ( F i l e P a c k a g
0066340 e T y p e P r o p e r t y )
0066360 } { N a m e W H E N C H A N
0066400 G E D } \r { T e x t \r V a l u e
0066420 i s a l i s t o f f u
0066440 n c t i o n s t o b e a p
0066460 p l i e d t o { a r g N A
0066500 M E } , { a r g T Y P E } ,
0066520 a n d { a r g R E A S O N
0066540 } w h e n { a r g N A M E
0066560 } , a n i n s t a n c e o
0066600 f t y p e { a r g T Y P E
0066620 } , i s c h a n g e d o r
0066640 d e f i n e d ( s e e { f
0066660 n M A R K A S C H A N G E D }
0066700 , { P a g e R e f F n M A
0066720 R K A S C H A N G E D } ) .
0066740 U s e d f o r v a r i o u s
0066760 a p p l i c a t i o n s , e
0067000 . g . w h e n a n o b j e
0067020 c t o f t y p e { l i s p
0067040 I . S . O P R S } c h a n g
0067060 e s , i t i s n e c e s s
0067100 a r y t o c l e a r t h e
0067120 c o r r e s p o n d i n g t
0067140 r a n s l a t o n s f r o m
0067160 { v a r C L I S P A R R A Y }
0067200 . \r \r T h e { l i s p W H E
0067220 N C H A N G E D } f u n c t i
0067240 o n s a r e c a l l e d b
0067260 e f o r e t h e o b j e c t
0067300 i s m a r k e d a s c h
0067320 a n g e d , s o t h a t i
0067340 t c a n , i n f a c t ,
0067360 d e c i d e t h a t t h e
0067400 o b j e c t i s { i t n o
0067420 t } t o b e m a r k e d
0067440 a s c h a n g e d , a n d
0067460 e x e c u t e { l i s p ( R
0067500 E T F R O M ' M A R K A S C H
0067520 A N G E D ) } . \r \r N o t e :
0067540 F o r b a c k w a r d s c
0067560 o m p a t i b i l i t y , t h
0067600 e { a r g R E A S O N } a
0067620 r g u m e n t p a s s e d t
0067640 o { l i s p W H E N C H A N
0067660 G E D } f u n c t i o n s i
0067700 s e i t h e r { l i s p T
0067720 } ( f o r { l i s p D E F
0067740 I N E D } ) a n d { l i s p
0067760 N I L } ( f o r { l i s p
0070000 C H A N G E D } ) . \r } } \r \r
0070020 \r { D e f { T y p e ( F i l
0070040 e P a c k a g e T y p e P
0070060 r o p e r t y ) } { N a m e
0070100 W H E N F I L E D } \r { T e x t
0070120 \r V a l u e i s a l i s t
0070140 o f f u n c t i o n s t o
0070160 b e a p p l i e d t o {
0070200 a r g N A M E } , { a r g
0070220 T Y P E } , a n d { a r g
0070240 F I L E } w h e n { a r g
0070260 N A M E } , a n i n s t a n
0070300 c e o f t y p e { a r g
0070320 T Y P E } , i s a d d e d
0070340 t o { a r g F I L E } . \r }
0070360 } \r \r \r { D e f { T y p e (
0070400 F i l e P a c k a g e T y p
0070420 e P r o p e r t y ) } { N a
0070440 m e W H E N U N F I L E D } \r
0070460 { T e x t \r V a l u e i s a
0070500 l i s t o f f u n c t i o
0070520 n s t o b e a p p l i e d
0070540 t o { a r g N A M E } ,
0070560 { a r g T Y P E } , a n d
0070600 { a r g F I L E } w h e n
0070620 { a r g N A M E } , a n i
0070640 n s t a n c e o f t y p e
0070660 { a r g T Y P E } , i s r
0070700 e m o v e d f r o m { a r g
0070720 F I L E } . \r } } \r \r \r { D e
0070740 f { T y p e ( F i l e P a
0070760 c k a g e T y p e P r o p e
0071000 r t y ) } { N a m e D E S C
0071020 R I P T I O N } \r { T e x t \r V
0071040 a l u e i s a s t r i n g
0071060 w h i c h d e s c r i b e s
0071100 i n s t a n c e s o f t h
0071120 i s t y p e . F o r e x
0071140 a m p l e , f o r t y p e
0071160 { l i s p R E C O R D S } ,
0071200 t h e v a l u e o f { l i
0071220 s p D E S C R I P T I O N }
0071240 i s t h e s t r i n g { l
0071260 i s p " r e c o r d d e c l
0071300 a r a t i o n s " } . \r } } \r \r
0071320 \r \r T h e f u n c t i o n {
0071340 f n F I L E P K G T Y P E }
0071360 i s u s e d t o d e f i n
0071400 e n e w f i l e p a c k a
0071420 g e t y p e s , o r t o
0071440 c h a n g e t h e p r o p e
0071460 r t i e s o f e x i s t i n
0071500 g t y p e s . N o t e t
0071520 h a t i t i s p o s s i b
0071540 l e t o r e d e f i n e t
0071560 h e a t t r i b u t e s o f
0071600 s y s t e m f i l e p a c
0071620 k a g e t y p e s , s u c h
0071640 a s { l i s p F N S } o
0071660 r { l i s p P R O P S } . \r
0071700 \r { F n D e f { F n N a m e
0071720 F I L E P K G T Y P E } { F n
0071740 A r g s T Y P E P R O P { S
0071760 U B 1 } V A L { S U B 1 }
0072000 { e l l i p s i s } P R O P
0072020 { S U B N } V A L { S U B
0072040 N } } \r { T y p e N O S P R E
0072060 A D } \r { T e x t \r N o s p r e
0072100 a d f u n c t i o n f o r
0072120 d e f i n i n g n e w f i l
0072140 e p a c k a g e t y p e s ,
0072160 o r c h a n g i n g p r o
0072200 p e r t i e s o f e x i s t
0072220 i n g f i l e p a c k a g e
0072240 t y p e s . { a r g P R
0072260 O P { s u b i } } i s o n
0072300 e o f t h e p r o p e r t
0072320 y n a m e s g i v e n a b
0072340 o v e ; { a r g V A L { s
0072360 u b i } } i s t h e v a
0072400 l u e t o b e g i v e n
0072420 t o t h a t p r o p e r t y
0072440 . R e t u r n s { a r g
0072460 T Y P E } . \r \r { l i s p ( F
0072500 I L E P K G T Y P E { a r g
0072520 T Y P E } { a r g P R O P }
0072540 ) } r e t u r n s t h e v
0072560 a l u e o f t h e p r o p
0072600 e r t y { a r g P R O P } ,
0072620 w i t h o u t c h a n g i n
0072640 g i t . \r \r { l i s p ( F I
0072660 L E P K G T Y P E { a r g T
0072700 Y P E } ) } r e t u r n s a
0072720 n a l i s t o f a l l o
0072740 f t h e d e f i n e d p r
0072760 o p e r t i e s o f { a r g
0073000 T Y P E } , u s i n g t h
0073020 e p r o p e r t y n a m e s
0073040 a s k e y s . \r \r { i n d e
0073060 x * P R I M A R Y * S y n o
0073100 n y m s f o r f i l e p a
0073120 c k a g e t y p e s } \r \r N o
0073140 t e : S p e c i f y i n g
0073160 { a r g T Y P E } a s t h
0073200 e l i t a t o m { l i s p
0073220 T Y P E } c a n b e u s e
0073240 d t o d e f i n e o n e
0073260 f i l e p a c k a g e t y p
0073300 e a s a s y n o n y m o
0073320 f a n o t h e r . F o r
0073340 e x a m p l e , { l i s p (
0073360 F I L E P K G T Y P E ' R '
0073400 T Y P E ' R E C O R D S ) }
0073420 d e f i n e s { l i s p R }
0073440 a s a s y n o n y m f o
0073460 r t h e f i l e p a c k a
0073500 g e t y p e { l i s p R E
0073520 C O R D S } . \r } } \r \r \r } { E
0073540 n d S u b S e c D e f i n i
0073560 n g N e w F i l e P a c k
0073600 a g e T y p e s } \r \r \r \r \r \r
0073620 } { E n d S u b S e c F i l
0073640 e P a c k a g e T y p e s }
0073660 \r \r \r \r \0 \0 \0 \0 \0 004 \0 004 \0 ? \0 1
0073700 ( D E F A U L T F O N T 1 (
0073720 G A C H A 1 0 ) ( G A C H A
0073740 8 ) ( T E R M I N A L 8 )
0073760 ) \0 \n \0 \0 \0 \0 \0 \0 \0 \0 \0 ? \0 1 (
0074000 D E F A U L T F O N T 1 ( G
0074020 A C H A 1 0 ) ( G A C H A
0074040 8 ) ( T E R M I N A L 8 ) )
0074060 \0 \n \0 \0 \0 \0 \0 \0 \0 \0 \0 ? \0 1 ( D
0074100 E F A U L T F O N T 1 ( G A
0074120 C H A 1 0 ) ( G A C H A 8
0074140 ) ( T E R M I N A L 8 ) ) \0
0074160 \n \0 \0 \0 \0 \0 \0 \0 \0 \0 ? \0 1 ( D E
0074200 F A U L T F O N T 1 ( G A C
0074220 H A 1 0 ) ( G A C H A 8 )
0074240 ( T E R M I N A L 8 ) ) \0 \n
0074260 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 w 264 \0 \0 \0 \0
0074300 004 \0 \0 w 264 \0 001 z 272
0074311