$ od -c -N 50000 [eris]<Lisp>KOTO>LISPUSERS>CD.TEDIT!1 0000000 X E R O X \t C D \r 2 \r \r 4 \r \r 1 0000020 \r \r C D \r 1 \r \r 4 \r \r B y : 0000040 H e n r y T h o m p s o n ( 0000060 H T h o m p s o n . p a @ X e r 0000100 o x ) \r \r T h e f i l e C D 0000120 i m p l e m e n t s a U N 0000140 I X * - s t y l e f a c i l i 0000160 t y f o r m a n i p u l a t 0000200 i n g t h e c o n n e c t e 0000220 d d i r e c t o r y . I t 0000240 a l s o i n s u r e s t h 0000260 a t t h e c o n n e c t e d 0000300 d i r e c t o r y i s a l 0000320 w a y s d i s p l a y e d . \r 0000340 C D p a t t e r n \r C D i s 0000360 d e f i n e d a s a L I 0000400 S P X M A C R O w h i c h a 0000420 l l o w s l o w - o v e r h e 0000440 a d m e a n s o f e f f e 0000460 c t i n g m a n y c o m m o 0000500 n c h a n g e s o f c o n 0000520 n e c t e d d i r e c t o r y 0000540 . I t s b e h a v i o u r 0000560 i s p a r t l y c o n d i 0000600 t i o n e d b y t h r e e 0000620 g l o b a l v a r i a b l e s 0000640 , C D . D E F A U L T . H O S 0000660 T , C D . D E F A U L T . P R 0000700 E F I X a n d C D . D E F A 0000720 U L T . U S E R . C D . D E 0000740 F A U L T . H O S T d e f a u 0000760 l t s t o D S K . C D . D 0001000 E F A U L T . P R E F I X d e 0001020 f a u l t s t o t h e n a 0001040 m e ( e . g . D S K ) o f 0001060 t h e l o c a l d i s k 0001100 v o l u m e o n a D a n d 0001120 e l i o n , o t h e r w i s e 0001140 N I L . C D . D E F A U L 0001160 T . U S E R d e f a u l t s 0001200 t o t h e v a l u e o f 0001220 U S E R N A M E , a n d i s 0001240 u p d a t e d a u t o m a t 0001260 i c a l l y a f t e r G R E 0001300 E T i n g . \r T h e v a l u e 0001320 o f C D i s a l w a y s 0001340 a C O N S - p a i r o f 0001360 t h e o l d a n d n e w 0001400 c o n n e c t e d d i r e c t 0001420 o r i e s . \r O n h o s t s 0001440 w h i c h s u p p o r t s o 0001460 m e f o r m o f s u b - d 0001500 i r e c t o r y , C D n e e 0001520 d s t o k n o w t h e c 0001540 h a r a c t e r w h i c h i 0001560 s u s e d t o s e p a r a 0001600 t e s u b - d i r e c t o r i 0001620 e s . T h e t a b l e C 0001640 D . O S . S E P R S i s a n 0001660 a - l i s t w h i c h d e 0001700 t e r m i n e s t h i s m a 0001720 p p i n g - i t i s i n 0001740 i t i a l i s e d t o m a p 0001760 U N I X * a n d V M S t 0002000 o " / " a n d D S K , N 0002020 S a n d I F S t o " > " 0002040 . T o e n t e r t h i s 0002060 t a b l e i t l o o k s 0002100 u p t h e h o s t f i r s 0002120 t i n C D . O S . S E P R S 0002140 d i r e c t l y , t h e n 0002160 v i a N E T W O R K O S T Y P 0002200 E S . I n t h e d o c u 0002220 m e n t a t i o n w h i c h 0002240 f o l l o w s , " > " m e a 0002260 n s w h a t e v e r t h e 0002300 s e p a r a t o r i s f o r 0002320 t h e r e l e v a n t h o 0002340 s t . \r T h e p o s s i b i l 0002360 i t i e s f o r p a t t e r 0002400 n a r e a s f o l l o w s 0002420 : \r e m p t y \r C o n n e c t s 0002440 t o t h e d i r e c t o r 0002460 y d e t e r m i n e d b y 0002500 t h e c o n j u n c t i o n 0002520 o f C D . D E F A U L T . H O 0002540 S T , C D . D E F A U L T . P 0002560 R E F I X a n d C D . D E F 0002600 A U L T . U S E R . \r { a n y t 0002620 h i n g \r I n t e r p r e t s 0002640 p a t t e r n a s a c o m 0002660 p l e t e d i r e c t o r y 0002700 s p e c i f i c a t i o n , a 0002720 n d c o n n e c t s t o i 0002740 t . \r < a n y t h i n g \r I n t 0002760 e r p r e t s p a t t e r n 0003000 a s a d i r e c t o r y s 0003020 p e c i f i c a t i o n t o 0003040 b e q u a l i f i e d b y 0003060 C D . D E F A U L T . H O S T 0003100 a n d C D . D E F A U L T . P 0003120 R E F I X , a n d c o n n 0003140 e c t s t o i t . F o r 0003160 e x a m p l e i f C D . D 0003200 E F A U L T . H O S T i s { 0003220 s e r v e r } a n d C D . D 0003240 E F A U L T . P R E F I X i s 0003260 N I L , t h e n C D < d 0003300 i r > s d i r > i s e q u i 0003320 v a l e n t t o C D { s e 0003340 r v e r } < d i r > s d i r > , 0003360 w h e r e a s i f C D . D 0003400 E F A U L T . P R E F I X w a 0003420 s / u s e r a n d s e r v 0003440 e r w a s k n o w n t o 0003460 b e r u n n i n g U N I X * 0003500 , t h e n C D < d i r / s 0003520 d i r > w o u l d b e e q 0003540 u i v a l e n t t o C D { 0003560 s e r v e r } < / u s e r / d i 0003600 r / s d i r > . \r . > r e s t \r 0003620 E q u i v a l e n t t o C D 0003640 r e s t . T h i s i s 0003660 p u r e l y f o r c o m p a 0003700 t a b i l i t y w i t h U N 0003720 I X * . \r . . > r e s t \r E q u 0003740 i v a l e n t t o p e e l i 0003760 n g o f f o n e ( s u b - 0004000 ) d i r e c t o r y f r o m 0004020 t h e c u r r e n t l y c o 0004040 n n e c t e d d i r e c t o r 0004060 y , f o l l o w e d b y C 0004100 D r e s t . F o r e x a 0004120 m p l e , i f c o n n e c t 0004140 e d t o { s e r v e r } < d 0004160 i r > s d i r > , t h e n C 0004200 D . . > s d i r 1 i s e q 0004220 u i v a l e n t t o C D { 0004240 s e r v e r } < d i r > s d i r 0004260 1 > . \r o t h e r w i s e \r T r 0004300 e a t p a t t e r n a s a 0004320 f u r t h e r s p e c i a l 0004340 i s a t i o n o f t h e c 0004360 u r r e n t d i r e c t o r y 0004400 , a n d c o n n e c t t o 0004420 t h e r e s u l t i n g s 0004440 u b - d i r e c t o r y . F 0004460 o r e x a m p l e , i f c 0004500 o n n e c t e d t o { s e r 0004520 v e r } < d i r > s d i r > , 0004540 t h e n C D s s d i r i s 0004560 e q u i v a l e n t t o C 0004600 D { s e r v e r } < d i r > s d 0004620 i r > s s d i r > . \r N o t e 0004640 t h a t t h r o u g h o u t , 0004660 t h e c l o s i n g " > " 0004700 i s o p t i o n a l . \r M e 0004720 n u i n t e r f a c e \r A t 0004740 a n y t i m e y o u c a n 0004760 b u t t o n ( l e f t o r 0005000 m i d d l e ) i n t h e 0005020 w i n d o w d i s p l a y i n 0005040 g t h e c u r r e n t c o 0005060 n n e c t e d d i r e c t o r 0005100 y , a n d s e e a m e n 0005120 u o f a l l t h e d i r 0005140 e c t o r i e s y o u h a v 0005160 e y e t b e e n c o n n e 0005200 c t e d t o , a n d s e l 0005220 e c t i n g o n e w i l l 0005240 m o v e y o u t h e r e . 0005260 Y o u c a n a l s o s h 0005300 i f t - s e l e c t o u t o 0005320 f t h i s m e n u i n t o 0005340 t h e c u r r e n t i n p 0005360 u t s t r e a m . T h i s 0005400 l a t t e r i s v e r y 0005420 u s e f u l w h e n t y p i 0005440 n g f i l e n a m e s . \r 0005460 \r * U N I X i s a 0005500 t r a d e m a r k o f B e l 0005520 l L a b o r a t o r i e s . \0 0005540 \0 \0 \0 \0 003 ( L I S T ( ( P A G 0005560 E N I L ( P A P E R S I Z E 0005600 L e t t e r F O L I O I N F 0005620 O ( A R A B I C ) S T A 0005640 R T I N G P A G E # 1 ) ( 0 0005660 0 6 1 2 7 9 2 ) ( ( F O 0005700 L I O N I L ( P A R A L O O 0005720 K S ( Q U A D C E N T E R E 0005740 D ) C H A R L O O K S ( S U 0005760 P E R S C R I P T 0 I N V I 0006000 S I B L E O F F S E L E C T 0006020 P O I N T O F F P R O T E C 0006040 T E D O F F S I Z E 1 0 0006060 F A M I L Y M O D E R N O V 0006100 E R L I N E O F F S T R I K 0006120 E O U T O F F U N D E R L I 0006140 N E O F F E X P A N S I O N 0006160 R E G U L A R S L O P E R 0006200 E G U L A R W E I G H T M E 0006220 D I U M I N V E R T E D O F 0006240 F U S E R I N F O N I L S 0006260 T Y L E N I L ) F O R M A T 0006300 I N F O ( A R A B I C ) ) 0006320 ( 1 7 4 3 6 2 8 8 3 6 ) 0006340 N I L ) ( H E A D I N G N 0006360 I L ( H E A D I N G T Y P E 0006400 R U N N I N G H E A D ) ( 8 4 0006420 7 4 4 5 2 8 3 6 ) N I L 0006440 ) ( T E X T N I L N I L 0006460 ( 8 4 9 6 4 5 6 6 0 0 ) 0006500 N I L ) ) ) ( P A G E N I L 0006520 ( P A P E R S I Z E L e t t 0006540 e r F O L I O I N F O ( A R 0006560 A B I C ) ) ( 0 0 6 1 0006600 2 7 9 2 ) ( ( F O L I O N 0006620 I L ( P A R A L O O K S ( Q 0006640 U A D C E N T E R E D ) C H 0006660 A R L O O K S ( S U P E R S C 0006700 R I P T 0 I N V I S I B L E 0006720 O F F S E L E C T P O I N T 0006740 O F F P R O T E C T E D O 0006760 F F S I Z E 1 0 F A M I L 0007000 Y M O D E R N O V E R L I N 0007020 E O F F S T R I K E O U T 0007040 O F F U N D E R L I N E O F 0007060 F E X P A N S I O N R E G U 0007100 L A R S L O P E R E G U L A 0007120 R W E I G H T M E D I U M 0007140 I N V E R T E D O F F U S E 0007160 R I N F O N I L S T Y L E 0007200 N I L ) F O R M A T I N F O 0007220 ( A R A B I C ) ) ( 1 7 4 0007240 3 6 2 8 8 3 6 ) N I L ) 0007260 ( H E A D I N G N I L ( H 0007300 E A D I N G T Y P E R U N N I 0007320 N G H E A D ) ( 8 4 7 4 4 0007340 5 2 8 3 6 ) N I L ) ( T E 0007360 X T N I L N I L ( 8 4 9 0007400 6 4 5 6 6 0 0 ) N I L ) ) 0007420 ) ( P A G E N I L ( P A P 0007440 E R S I Z E L e t t e r F O 0007460 L I O I N F O ( A R A B I C 0007500 ) ) ( 0 0 6 1 2 7 9 2 0007520 ) ( ( F O L I O N I L ( P 0007540 A R A L O O K S ( Q U A D C 0007560 E N T E R E D ) C H A R L O O 0007600 K S ( S U P E R S C R I P T 0007620 0 I N V I S I B L E O F F 0007640 S E L E C T P O I N T O F F 0007660 P R O T E C T E D O F F S I 0007700 Z E 1 0 F A M I L Y M O D 0007720 E R N O V E R L I N E O F F 0007740 S T R I K E O U T O F F U 0007760 N D E R L I N E O F F E X P 0010000 A N S I O N R E G U L A R S 0010020 L O P E R E G U L A R W E I 0010040 G H T M E D I U M I N V E R 0010060 T E D O F F U S E R I N F O 0010100 N I L S T Y L E N I L ) 0010120 F O R M A T I N F O ( A R A B 0010140 I C ) ) ( 1 7 4 3 6 2 0010160 8 8 3 6 ) N I L ) ( H E A 0010200 D I N G N I L ( H E A D I N 0010220 G T Y P E R U N N I N G H E A 0010240 D ) ( 8 4 7 4 4 5 2 8 3 0010260 6 ) N I L ) ( T E X T N I 0010300 L N I L ( 8 4 9 6 4 5 6 0010320 6 0 0 ) N I L ) ) ) ) ) \0 \0 0010340 \0 \0 \0 005 \0 006 \0 ( \0 \0 \0 \0 001 310 \0 \v 0010360 \0 \0 \0 004 002 004 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0010400 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 ( 0010420 \0 \0 \0 \0 001 310 \0 021 \0 \0 \0 004 002 003 \0 \0 0010440 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0010460 \0 \0 \0 \0 \0 \0 \0 ( \0 212 \0 212 001 8 \0 006 0010500 \0 \0 \0 004 002 003 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0010520 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 ( 0010540 \0 212 \0 212 001 8 \0 \0 \0 \0 \0 004 002 004 \0 \0 0010560 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0010600 \0 \0 \0 \0 \0 \0 \0 D \0 \0 \0 \0 001 310 \0 \0 0010620 \0 \0 \0 \0 003 004 \0 \0 001 001 310 001 \0 \0 \0 \0 0010640 \0 \0 \0 \v P A G E H E A D I N G \0 0010660 \v R U N N I N G H E A D \0 \0 \0 \0 0010700 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 ( \0 \0 \0 \0 0010720 \0 \0 \0 \0 \0 \0 \0 \0 002 003 \0 \0 \0 \0 \0 \0 0010740 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0010760 \0 \0 \0 \0 \0 \0 \0 004 \0 \n \0 024 \0 006 M O 0011000 D E R N \0 \f \0 \0 \0 \0 \0 \0 003 \0 \0 024 0011020 \0 006 M O D E R N \0 \f \0 \0 \0 \0 \0 \0 0011040 002 \0 \0 024 \0 006 M O D E R N \0 \n \0 \0 0011060 \0 \0 \0 \0 \0 \0 \0 024 \0 006 M O D E R N 0011100 \0 006 \0 \0 \0 \0 \0 \0 \0 \0 \0 022 \0 004 L O 0011120 G O \0 030 \0 \0 \0 \0 \0 \0 \0 \0 \0 024 \0 006 0011140 M O D E R N \0 \n \0 \0 \0 \0 \0 \0 \0 200 0011160 \0 024 \0 006 M O D E R N \0 \n \0 \0 \0 \0 0011200 \0 \0 001 \0 \0 024 \0 006 M O D E R N \0 \n 0011220 \0 002 \0 \0 \0 \0 \0 \0 \0 024 \0 006 M O D E 0011240 R N \0 \n \0 \0 \0 \0 \0 \0 \0 \0 \0 024 \0 006 0011260 M O D E R N \0 \f \0 \0 \0 \0 \0 \0 002 \0 0011300 \0 \0 \0 \0 \0 002 \0 005 \0 \0 \0 005 \0 \0 \0 \0 0011320 005 \0 \0 \0 001 \0 \0 \0 \0 004 \0 \0 \0 003 \0 \0 0011340 \0 \0 003 \0 \0 \0 \0 \0 002 \0 005 \0 \0 \0 002 \0 0011360 001 \0 \v H R U L E . G E T F N 001 \0 0011400 024 \0 006 M O D E R N \0 \n \0 \0 \0 \0 \0 0011420 \0 \0 \0 \0 \0 \0 001 \0 \0 \0 \0 003 \0 \0 \0 \0 0011440 \0 002 \0 004 \0 \0 \0 002 \0 001 \0 \v H R U L 0011460 E . G E T F N 001 \0 024 \0 006 M O D E 0011500 R N \0 \n \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 001 0011520 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 004 \0 \0 \0 0011540 002 \0 001 \0 \v H R U L E . G E T F N 0011560 001 \0 024 \0 006 M O D E R N \0 \n \0 \0 \0 0011600 \0 \0 \0 \0 \0 \0 \0 \0 001 \0 \0 \0 \0 003 \0 \0 0011620 \0 \0 \0 002 \0 003 \0 \0 \0 003 \0 \0 \0 \0 002 \0 0011640 \0 \0 \0 \0 002 \0 003 \0 \0 \0 002 \0 001 \0 \v H 0011660 R U L E . G E T F N 001 \0 024 \0 006 M 0011700 O D E R N \0 \f \0 \0 \0 \0 \0 \0 002 \0 \0 0011720 \0 \0 001 \0 \0 \0 \0 002 \0 \0 \0 \0 \0 002 \0 004 0011740 \0 \0 \0 002 \0 001 \0 \v H R U L E . G E 0011760 T F N 001 \0 024 \0 006 M O D E R N \0 \f 0012000 \0 \0 \0 \0 \0 \0 002 \0 \0 \0 \0 001 \0 \0 \0 \0 0012020 002 \0 \0 \0 \0 \0 002 \0 002 \0 \0 \0 ) \0 \0 \0 0012040 \0 003 \0 \0 \0 \0 \0 002 \0 006 \0 \0 \0 001 \0 \0 0012060 \0 \0 \n \0 \0 \0 \0 \0 002 \0 001 \0 \0 \0 035 \0 0012100 \0 \0 \0 \t \0 \0 \0 001 \0 \0 \0 \0 \b \0 \0 \0 0012120 } \0 \0 \0 \0 \t \0 \0 \0 \0 \0 002 \0 001 \0 \0 0012140 \0 003 \0 \0 \0 \0 \n \0 \0 \0 \a \0 \0 \0 \0 001 0012160 \0 \0 \0 001 \0 \0 \0 \0 \n \0 \0 \0 \0 \0 002 \0 0012200 001 \0 \0 001 334 \0 \0 \0 \0 \t \0 \0 \0 \0 \0 002 0012220 \0 001 \0 \0 \0 P \0 \0 \0 \0 \t \0 \0 \0 \0 \0 0012240 002 \0 001 \0 \0 \0 336 \0 \0 \0 \0 \t \0 \0 \0 001 0012260 \0 \0 \0 \0 \b \0 \0 \0 356 \0 \0 \0 \0 \t \0 \0 0012300 \0 \0 \0 002 \0 001 \0 \0 \0 026 \0 \0 \0 \0 \t \0 0012320 \0 \0 \a \0 \0 \0 \0 \a \0 \0 \0 021 \0 \0 \0 \0 0012340 \t \0 \0 \0 \0 \0 002 \0 001 \0 \0 \0 005 \0 \0 \0 0012360 \0 \a \0 \0 \0 001 \0 \0 \0 \0 \t \0 \0 \0 \0 \0 0012400 002 \0 001 \0 \0 \0 s \0 \0 \0 \0 \t \0 \0 \0 \0 0012420 \0 002 \0 001 \0 \0 \0 \n \0 \0 \0 \0 \a \0 \0 \0 0012440 \0 \0 002 \0 001 \0 \0 \0 \v \0 \0 \0 \0 \t \0 \0 0012460 \0 \a \0 \0 \0 \0 \a \0 \0 \0 < \0 \0 \0 \0 \t 0012500 \0 \0 \0 \0 \0 002 \0 001 \0 \0 \0 \n \0 \0 \0 \0 0012520 \a \0 \0 \0 \0 \0 002 \0 001 \0 \0 \0 \v \0 \0 \0 0012540 \0 \t \0 \0 \0 \a \0 \0 \0 \0 \a \0 \0 001 @ \0 0012560 \0 \0 \0 \t \0 \0 \0 001 \0 \0 \0 \0 \b \0 \0 \0 0012600 I \0 \0 \0 \0 \t \0 \0 \0 \0 \0 002 \0 001 \0 \0 0012620 \0 \a \0 \0 \0 \0 \a \0 \0 \0 \0 \0 002 \0 001 \0 0012640 \0 \0 B \0 \0 \0 \0 \t \0 \0 \0 001 \0 \0 \0 \0 0012660 \b \0 \0 \0 002 \0 \0 \0 \0 \t \0 \0 \0 \0 \0 002 0012700 \0 001 \0 \0 \0 \b \0 \0 \0 \0 \a \0 \0 \0 \0 \0 0012720 002 \0 001 \0 \0 \0 327 \0 \0 \0 \0 \t \0 \0 \0 \0 0012740 \0 002 \0 001 \0 \0 \0 \n \0 \0 \0 \0 \a \0 \0 \0 0012760 \0 \0 002 \0 001 \0 \0 \0 006 \0 \0 \0 \0 \t \0 \0 0013000 \0 \a \0 \0 \0 \0 \a \0 \0 \0 320 \0 \0 \0 \0 \t 0013020 \0 \0 \0 \0 \0 002 \0 001 \0 \0 \0 3 \0 \0 \0 \0 0013040 \t \0 \0 \0 \0 \0 002 \0 001 \0 \0 \0 016 \0 \0 \0 0013060 \0 \n \0 \0 \0 001 \0 \0 \0 \0 \t \0 \0 \0 \0 \0 0013100 002 \0 001 \0 \0 001 R \0 \0 \0 \0 \t \0 \0 \0 \0 0013120 \0 002 \0 001 \0 \0 \0 005 \0 \0 \0 \0 006 \0 \0 \0 0013140 001 \0 \0 \0 \0 \t \0 \0 \0 \0 \0 002 \0 001 \0 \0 0013160 \0 001 \0 \0 \0 \0 \b \0 \0 \0 ) \0 \0 \0 \0 \t 0013200 \0 \0 \v _ \0 ^ z 272 0013210