$ od -c -N 50000 [Erinyes]<LispManual>Draft>CHAPUSERIO.TXT!1 0000000 \r 2 7 . \t U S E R I N P U 0000020 T / O U T P U T P A C K A G E 0000040 S \r \r \r T h i s c h a p t e 0000060 r p r e s e n t s a n u m 0000100 b e r o f p a c k a g e s 0000120 t h a t h a v e b e e n d 0000140 e v e l o p e d f o r d i s 0000160 p l a y i n g a n d a l l o 0000200 w i n g t h e u s e r t o 0000220 e n t e r i n f o r m a t i 0000240 o n . T h e s e p a c k a 0000260 g e s a r e u s e d t o 0000300 i m p l e m e n t t h e u s 0000320 e r i n t e r f a c e o f 0000340 m a n y s y s t e m f a c i 0000360 l i t i e s . \r \t 267 \t T h e I 0000400 n s p e c t o r ( b e l o w ) 0000420 p r o v i d e s a w i n d 0000440 o w - b a s e d f a c i l i t 0000460 y f o r d i s p l a y i n g 0000500 a n d c h a n g i n g t h 0000520 e f i e l d s o f a d a 0000540 t a o b j e c t . \r \t 267 \t P R 0000560 O M P T F O R W O R D ( p a g 0000600 e X . X X ) i s a f u n 0000620 c t i o n u s e d f o r e 0000640 n t e r i n g a s i m p l e 0000660 s t r i n g o f c h a r a 0000700 c t e r s . B a s i c e d 0000720 i t i n g a n d p r o m p t 0000740 i n g f a c i l i t i e s a 0000760 r e p r o v i d e d . \r \t 267 \t 0001000 A S K U S E R ( p a g e X . 0001020 X X ) p r o v i d e s a m 0001040 o r e c o m p l i c a t e d 0001060 p r o m p t i n g a n d a n 0001100 s w e r i n g f a c i l i t y 0001120 , a l l o w i n g a s e r 0001140 i e s o f q u e s t i o n s 0001160 t o b e p r i n t e d . 0001200 P r o m p t s a n d a r g 0001220 u m e n t c o m p l e t i o n 0001240 a r e s u p p o r t e d . \r 0001260 \t 267 \t T T Y I N ( p a g e X 0001300 . X X ) i s a d i s p l a 0001320 y t y p e i n e d i t o r , 0001340 t h a t p r o v i d e s c 0001360 o m p l e x t e x t e d i t 0001400 i n g f a c i l i t i e s w 0001420 h e n e n t e r i n g a n 0001440 i n p u t l i n e . \r \t 267 \t P 0001460 R E T T Y P R I N T ( p a g e 0001500 X . X X ) i s u s e d f 0001520 o r p r i n t i n g f u n c 0001540 t i o n d e f i n i t i o n s 0001560 a n d o t h e r l i s t 0001600 s t r u c t u r e s , u s i n 0001620 g m u l t i p l e f o n t s 0001640 a n d i n d e n t i n g l 0001660 i n e s t o s h o w t h e 0001700 s t r u c t u r e o f t h 0001720 e l i s t . \r \r 2 7 . 1 \t 0001740 I n s p e c t o r \r \r T h e I 0001760 n s p e c t o r p r o v i d e 0002000 s a d i s p l a y - o r i e 0002020 n t e d f a c i l i t y f o 0002040 r l o o k i n g a t a n d 0002060 c h a n g i n g a r b i t r 0002100 a r y I n t e r l i s p - D 0002120 d a t a s t r u c t u r e s . 0002140 T h e i n s p e c t o r 0002160 c a n b e u s e d t o i 0002200 n s p e c t a l l u s e r 0002220 d a t a t y p e s a n d m a 0002240 n y s y s t e m d a t a t y 0002260 p e s ( a l t h o u g h s o 0002300 m e o b j e c t s s u c h 0002320 a s n u m b e r s h a v e 0002340 n o i n s p e c t a b l e s 0002360 t r u c t u r e ) . T h e 0002400 i n s p e c t o r d i s p l a 0002420 y s t h e f i e l d n a m 0002440 e s a n d v a l u e s o f 0002460 a n a r b i t r a r y o b 0002500 j e c t i n a w i n d o w 0002520 t h a t a l l o w s s e t 0002540 t i n g o f t h e p r o p 0002560 e r t i e s a n d f u r t h 0002600 e r i n s p e c t i o n o f 0002620 t h e v a l u e s . T h 0002640 i s l a t t e r f e a t u r 0002660 e m a k e s i t p o s s i 0002700 b l e t o " w a l k " a r 0002720 o u n d a l l o f t h e 0002740 d a t a s t r u c t u r e s 0002760 i n t h e s y s t e m a t 0003000 t h e t o u c h o f a 0003020 b u t t o n . I n a d d i 0003040 t i o n , t h e i n s p e c 0003060 t o r i s i n t e g r a t e 0003100 d w i t h t h e b r e a k 0003120 p a c k a g e t o a l l o 0003140 w i n s p e c t i o n o f 0003160 a n y o b j e c t o n t h 0003200 e s t a c k a n d w i t h 0003220 t h e d i s p l a y a n d 0003240 t e l e t y p e s t r u c t 0003260 u r a l e d i t o r s t o 0003300 a l l o w t h e e d i t o r 0003320 s t o b e u s e d t o 0003340 " i n s p e c t " l i s t s 0003360 t r u c t u r e s a n d t h 0003400 e i n s p e c t o r t o " 0003420 e d i t " d a t a t y p e s . 0003440 \r T h e u n d e r l y i n 0003460 g m e c h a n i s m s o f 0003500 t h e d a t a i n s p e c t 0003520 o r h a v e b e e n d e s 0003540 i g n e d t o a l l o w t 0003560 h e i r u s e a s s p e c 0003600 i a l i z e d e d i t o r s 0003620 i n u s e r a p p l i c a t 0003640 i o n s . T h i s f u n c 0003660 t i o n a l i t y i s d e s 0003700 c r i b e d a t t h e e n 0003720 d o f t h i s s e c t i o 0003740 n . \r N o t e : C u r r e n 0003760 t l y , t h e i n s p e c t 0004000 o r d o e s n o t h a v e 0004020 U N D O i n g . A l s o , 0004040 v a r i a b l e s w h o s e 0004060 v a l u e s a r e c h a n 0004100 g e d w i l l n o t b e 0004120 m a r k e d a s s u c h . \r 0004140 2 7 . 1 . 1 \t C a l l i n g 0004160 t h e I n s p e c t o r \r \r 0004200 T h e r e a r e s e v e r a 0004220 l w a y s t o o p e n a 0004240 n i n s p e c t w i n d o w 0004260 o n t o a n o b j e c t . 0004300 I n a d d i t i o n t o 0004320 c a l l i n g I N S P E C T 0004340 d i r e c t l y ( b e l o w 0004360 ) , t h e i n s p e c t o r 0004400 c a n a l s o b e c a l 0004420 l e d b y b u t t o n i n g 0004440 a n I n s p e c t c o m m 0004460 a n d i n s i d e a n e x 0004500 i s t i n g i n s p e c t o r 0004520 w i n d o w . F i n a l l 0004540 y , i f a n o n - l i s t 0004560 i s e d i t e d w i t h 0004600 E D I T V , t h e i n s p e 0004620 c t o r i s c a l l e d . 0004640 T h i s a l s o c a u s e 0004660 s t h e i n s p e c t o r 0004700 t o b e c a l l e d b y 0004720 t h e D e d i t c o m m a n 0004740 d f r o m t h e d i s p l 0004760 a y e d i t o r o r t h e 0005000 E V c o m m a n d f r o m 0005020 t h e t e l e t y p e e d 0005040 i t o r i f t h e s e l e 0005060 c t e d p i e c e o f s t 0005100 r u c t u r e i s a n o n 0005120 - l i s t . \r ( I N S P E C T 0005140 O B J E C T A S T Y P E W H 0005160 E R E ) \t [ F u n c t i o n 0005200 ] \r C r e a t e s a n i n s 0005220 p e c t w i n d o w o n t o 0005240 O B J E C T . I f A S T 0005260 Y P E i s g i v e n , i t 0005300 w i l l b e t a k e n a 0005320 s t h e r e c o r d t y p 0005340 e o f O B J E C T . T h 0005360 i s a l l o w s r e c o r d 0005400 s t o b e i n s p e c t e 0005420 d w i t h t h e i r p r o 0005440 p e r t y n a m e s . I f 0005460 A S T Y P E i s N I L , 0005500 t h e d a t a t y p e o f 0005520 O B J E C T w i l l b e 0005540 u s e d t o d e t e r m i n 0005560 e i t s p r o p e r t y n 0005600 a m e s i n t h e i n s p 0005620 e c t w i n d o w . \r W H E R 0005640 E s p e c i f i e s t h e 0005660 l o c a t i o n o f t h e 0005700 i n s p e c t w i n d o w . 0005720 I f W H E R E i s N I L 0005740 , t h e u s e r w i l l 0005760 b e p r o m p t e d f o r 0006000 a l o c a t i o n . I f 0006020 W H E R E i s a w i n d o 0006040 w , i t w i l l b e u s 0006060 e d a s t h e i n s p e c 0006100 t w i n d o w . I f W H 0006120 E R E i s a r e g i o n , 0006140 t h e i n s p e c t w i n 0006160 d o w w i l l b e c r e a 0006200 t e d i n t h a t r e g i 0006220 o n o f t h e s c r e e n 0006240 . I f W H E R E i s a 0006260 p o s i t i o n , t h e i 0006300 n s p e c t w i n d o w w i 0006320 l l h a v e i t s l o w e 0006340 r l e f t c o r n e r a t 0006360 t h a t p o s i t i o n o 0006400 n t h e s c r e e n . \r I N 0006420 S P E C T r e t u r n s t h 0006440 e i n s p e c t w i n d o w 0006460 o n t o O B J E C T , o r 0006500 N I L i f n o i n s p e 0006520 c t i o n t o o k p l a c e 0006540 . \r \r ( I N S P E C T C O D E 0006560 F N W H E R E - - - - - - 0006600 - - - - - - ) \t [ F u n 0006620 c t i o n ] \r O p e n s a w 0006640 i n d o w a n d d i s p l a 0006660 y s t h e c o m p i l e d 0006700 c o d e o f t h e f u n c 0006720 t i o n F N u s i n g P R 0006740 I N T C O D E . T h e w i 0006760 n d o w i s s c r o l l a b 0007000 l e . \r W H E R E I S d e t e 0007020 r m i n e s w h e r e t h e 0007040 w i n d o w s h o u l d a 0007060 p p e a r . I t c a n b 0007100 e a p o s i t i o n , a 0007120 r e g i o n , o r a w i n 0007140 d o w . I f N I L , t h 0007160 e u s e r i s p r o m p t 0007200 e d t o s p e c i f y t h 0007220 e p o s i t i o n o f t h 0007240 e w i n d o w . \r \r 2 7 . 1 . 0007260 2 \t M u l t i p l e W a y 0007300 s o f I n s p e c t i n g \r 0007320 \r F o r s o m e d a t a t y 0007340 p e s t h e r e i s m o r 0007360 e t h a n o n e a s p e c 0007400 t t h a t i s o f i n t 0007420 e r e s t o r m o r e t h 0007440 a n o n e m e t h o d o f 0007460 i n s p e c t i n g t h e 0007500 o b j e c t . I n t h e s 0007520 e c a s e s , t h e i n s 0007540 p e c t o r w i l l b r i n 0007560 g u p a m e n u o f t 0007600 h e p o s s i b i l i t i e s 0007620 a n d w a i t f o r t h 0007640 e u s e r t o s e l e c t 0007660 o n e . \r I f t h e o b j 0007700 e c t i s a l i t a t o m 0007720 , t h e c o m m a n d s a 0007740 r e t h e t y p e s f o r 0007760 w h i c h t h e l i t a t 0010000 o m h a s d e f i n i t i o 0010020 n s a s d e t e r m i n e d 0010040 b y H A S D E F . S o m 0010060 e t y p i c a l c o m m a n 0010100 d s a r e : \r \t F N S \t E d i 0010120 t t h e d e f i n i t i o n 0010140 o f t h e s e l e c t e d 0010160 l i t a t o m . \r \t V A R S \t 0010200 I n s p e c t t h e v a l u 0010220 e . \r \t P R O P S \t I n s p e c 0010240 t t h e p r o p e r t y l 0010260 i s t . \r I f t h e o b j e 0010300 c t i s a l i s t , t h 0010320 e r e w i l l b e c h o i 0010340 c e o f h o w t o i n s 0010360 p e c t t h e l i s t : \r \t 0010400 I n s p e c t \t O p e n s a n 0010420 i n s p e c t w i n d o w 0010440 i n w h i c h t h e p r o 0010460 p e r t i e s a r e n u m b 0010500 e r s a n d t h e v a l u 0010520 e s a r e t h e e l e m e 0010540 n t s o f t h e l i s t . 0010560 \r \t T t y E d i t \t C a l l s 0010600 t h e t e l e t y p e l i s 0010620 t s t r u c t u r e e d i t 0010640 o r o n t h e l i s t ( 0010660 p a g e X . X X ) . \r \t D i s 0010700 p l a y E d i t \t C a l l s t 0010720 h e D E d i t d i s p l a y 0010740 e d i t o r o n t h e l 0010760 i s t ( p a g e X . X X ) . 0011000 \r \t A s a P L I S T \t I n s 0011020 p e c t s t h e l i s t a 0011040 s a p r o p e r t y l i s 0011060 t , i f t h e l i s t i 0011100 s i n p r o p e r t y l i 0011120 s t f o r m : ( ( P R O P 1 0011140 V A L 1 ) . . . ( P R O P 0011160 N V A L N ) ) . \r \t A s a n 0011200 A L I S T \t I n s p e c t s 0011220 t h e l i s t a s a n a 0011240 s s o c i a t i o n - l i s t , 0011260 i f t h e l i s t i s 0011300 i n A S S O C l i s t f o 0011320 r m : ( P R O P 1 V A L 1 0011340 . . . P R O P N V A L N ) . 0011360 \r \t A s a r e c o r d \t B r 0011400 i n g s u p a s u b m e n 0011420 u w i t h a l l o f t h 0011440 e R E C O R D s i n t h e 0011460 s y s t e m a n d i n s p 0011500 e c t t h e l i s t w i t 0011520 h t h e o n e c h o s e n 0011540 . \r \t A s a " r e c o r d 0011560 t y p e " \t I n s p e c t s t 0011600 h e l i s t a s t h e r 0011620 e c o r d o f t h e t y p 0011640 e n a m e d i n i t s C 0011660 A R , i f t h e C A R o 0011700 f t h e l i s t i s t h 0011720 e n a m e o f a T Y P E 0011740 R E C O R D ( p a g e X . X 0011760 X ) . \r I f t h e o b j e c 0012000 t i s a b i t m a p , t 0012020 h e c h o i c e i s b e t 0012040 w e e n i n s p e c t i n g 0012060 t h e b i t m a p ' s c o n 0012100 t e n t s w i t h t h e b 0012120 i t m a p e d i t o r ( E D 0012140 I T B M ) o r i n s p e c t 0012160 i n g t h e b i t m a p ' s 0012200 f i e l d s . \r O t h e r d 0012220 a t a t y p e s m a y i n c 0012240 l u d e m u l t i p l e m e 0012260 t h o d s f o r i n s p e c 0012300 t i n g o b j e c t s o f 0012320 t h a t t y p e . \r 2 7 . 1 . 0012340 3 \t I n s p e c t W i n d 0012360 o w s \r \r A n i n s p e c t 0012400 w i n d o w d i s p l a y s 0012420 t w o c o l u m n s o f v 0012440 a l u e s . T h e l e f t 0012460 h a n d c o l u m n l i s t 0012500 s t h e p r o p e r t y n 0012520 a m e s o f t h e s t r u 0012540 c t u r e b e i n g i n s p 0012560 e c t e d . T h e r i g h 0012600 t h a n d c o l u m n c o n 0012620 t a i n s t h e v a l u e s 0012640 o f t h e p r o p e r t i 0012660 e s n a m e d o n t h e 0012700 l e f t . F o r v a r i a 0012720 b l e l e n g t h d a t a 0012740 s u c h a s l i s t s a n 0012760 d a r r a y s , t h e " p 0013000 r o p e r t y n a m e s " a 0013020 r e n u m b e r s f r o m 0013040 1 t o t h e l e n g t h 0013060 o f t h e i n s p e c t e d 0013100 i t e m a n d t h e v a 0013120 l u e s a r e t h e c o r 0013140 r e s p o n d i n g e l e m e 0013160 n t s . F o r a r r a y s 0013200 , t h e p r o p e r t y n 0013220 a m e s a r e t h e a r r 0013240 a y e l e m e n t n u m b e 0013260 r s a n d t h e v a l u e 0013300 s a r e t h e c o r r e s 0013320 p o n d i n g e l e m e n t s 0013340 o f t h e a r r a y . \r F 0013360 o r l a r g e l i s t s o 0013400 r a r r a y s , o r d a t 0013420 a t y p e s w i t h m a n y 0013440 f i e l d s , t h e i n i 0013460 t i a l w i n d o w m a y 0013500 b e t o o s m a l l t o 0013520 c o n t a i n a l l o f t 0013540 h e m . I n t h e s e c 0013560 a s e s , t h e u n s e e n 0013600 e l e m e n t s c a n b e 0013620 s c r o l l e d i n t o v 0013640 i e w ( f r o m t h e b o 0013660 t t o m ) o r t h e w i n 0013700 d o w c a n b e r e s h a 0013720 p e d t o i n c r e a s e 0013740 i t s s i z e . \r I n a n 0013760 i n s p e c t w i n d o w , 0014000 t h e L E F T b u t t o n 0014020 i s u s e d t o s e l e c 0014040 t t h i n g s , t h e M I 0014060 D D L E b u t t o n t o i 0014100 n v o k e c o m m a n d s t 0014120 h a t a p p l y t o t h e 0014140 s e l e c t e d i t e m . 0014160 A n y p r o p e r t y o r 0014200 v a l u e c a n b e s e 0014220 l e c t e d b y p o i n t i 0014240 n g t h e c u r s o r d i 0014260 r e c t l y a t t h e t e 0014300 x t r e p r e s e n t i n g 0014320 i t , a n d c l i c k i n g 0014340 t h e L E F T b u t t o n 0014360 . T h e r e i s o n e 0014400 s e l e c t e d i t e m p e 0014420 r w i n d o w a n d i t 0014440 i s m a r k e d b y h a v 0014460 i n g i t s s u r r o u n d 0014500 i n g b o x i n v e r t e d 0014520 . \r T h e o p t i o n s o f 0014540 f e r e d b y t h e M I D 0014560 D L E b u t t o n d e p e n 0014600 d o n w h e t h e r t h e 0014620 s e l e c t i o n i s a 0014640 p r o p e r t y o r a v a 0014660 l u e . I f t h e s e l 0014700 e c t e d i t e m i s a 0014720 v a l u e , t h e o p t i o 0014740 n s p r o v i d e d i f f e 0014760 r e n t w a y s o f i n s 0015000 p e c t i n g t h e s e l e 0015020 c t e d s t r u c t u r e . 0015040 T h e e x a c t c o m m a 0015060 n d s t h a t a r e g i v 0015100 e n d e p e n d o n t h e 0015120 t y p e o f t h e v a l 0015140 u e . \r I f t h e s e l e c 0015160 t e d i t e m i s a p r 0015200 o p e r t y n a m e , t h e 0015220 c o m m a n d S E T w i l 0015240 l a p p e a r . I f s e 0015260 l e c t e d , t h e u s e r 0015300 w i l l b e a s k e d t 0015320 o t y p e i n a n e x p 0015340 r e s s i o n , a n d t h e 0015360 s e l e c t e d p r o p e r 0015400 t y w i l l b e s e t t 0015420 o t h e r e s u l t o f 0015440 e v a l u a t i n g t h e r 0015460 e a d f o r m . T h e e 0015500 v a l u a t i o n o f t h e 0015520 r e a d f o r m a n d t 0015540 h e r e p l a c e m e n t o 0015560 f t h e s e l e c t e d i 0015600 t e m p r o p e r t y w i l 0015620 l a p p e a r a s t h e i 0015640 r o w n h i s t o r y e v 0015660 e n t s a n d a r e i n d 0015700 i v i d u a l l y u n d o a b 0015720 l e . P r o p e r t i e s 0015740 o f s y s t e m d a t a t y 0015760 p e s c a n n o t b e s e 0016000 t . ( T h e r e a r e o 0016020 f t e n c o n s i s t e n c y 0016040 r e q u i r e m e n t s w h 0016060 i c h c a n b e i n a d v 0016100 e r t e n t l y v i o l a t e 0016120 d i n w a y s t h a t c 0016140 r a s h t h e s y s t e m . 0016160 T h i s m a y b e t r 0016200 u e o f s o m e u s e r 0016220 d a t a t y p e s a s w e l 0016240 l , h o w e v e r t h e s 0016260 y s t e m d o e s n ' t k n 0016300 o w w h i c h o n e s . U 0016320 s e r s a r e a d v i s e d 0016340 t o e x e r c i s e c a u 0016360 t i o n . ) \r I t i s p o s 0016400 s i b l e t o c o p y - s e 0016420 l e c t p r o p e r t y n a 0016440 m e s o r v a l u e s o u 0016460 t o f a n i n s p e c t 0016500 w i n d o w . L i t a t o m 0016520 s , n u m b e r s a n d s 0016540 t r i n g s a r e c o p i e 0016560 d a s t h e y a r e d i 0016600 s p l a y e d . U n p r i n 0016620 t a b l e o b j e c t s ( s 0016640 u c h a s b i t m a p s , 0016660 e t c . ) c o m e o u t a 0016700 s a n a p p r o p r i a t e 0016720 s y s t e m e x p r e s s i 0016740 o n , s u c h t h a t i f 0016760 i s e v a l u a t e d , t 0017000 h e o b j e c t i s r e - 0017020 c r e a t e d . \r 2 7 . 1 . 4 0017040 \t I n s p e c t W i n d o w 0017060 C o m m a n d s \r \r B y p r 0017100 e s s i n g t h e M I D D L 0017120 E b u t t o n i n t h e 0017140 t i t l e o f t h e i n s 0017160 p e c t w i n d o w , a m 0017200 e n u o f c o m m a n d s 0017220 t h a t a p p l y t o t h 0017240 e i n s p e c t w i n d o w 0017260 i s b r o u g h t u p : \r 0017300 R e F e t c h \t [ I n s p e 0017320 c t W i n d o w C o m m a n 0017340 d ] \r A n i n s p e c t w i 0017360 n d o w i s n o t a u t o 0017400 m a t i c a l l y u p d a t e 0017420 d w h e n t h e s t r u c 0017440 t u r e i t i s i n s p e 0017460 c t i n g i s c h a n g e d 0017500 . T h e " R e F e t c h " 0017520 c o m m a n d w i l l r e 0017540 f e t c h e a n d r e d i s 0017560 p l a y a l l o f t h e 0017600 f i e l d s o f t h e o b 0017620 j e c t b e i n g i n s p e 0017640 c t e d i n t h e i n s p 0017660 e c t w i n d o w . \r \r I T _ 0017700 d a t u m \t [ I n s p e c t 0017720 W i n d o w C o m m a n d ] 0017740 \r S e t s t h e v a r i a b 0017760 l e I T t o o b j e c t 0020000 b e i n g i n s p e c t e d 0020020 i n t h e i n s p e c t w 0020040 i n d o w . \r \r I T _ s e l e c 0020060 t i o n \t [ I n s p e c t 0020100 W i n d o w C o m m a n d ] \r 0020120 S e t s t h e v a r i a b l 0020140 e I T t o t h e p r o p 0020160 e r t y n a m e o r v a l 0020200 u e c u r r e n t l y s e l 0020220 e c t e d i n t h e i n s 0020240 p e c t w i n d o w . \r \r 2 7 0020260 . 1 . 5 \t I n t e r a c t i 0020300 o n W i t h t h e D i s p 0020320 l a y B r e a k P a c k a g 0020340 e \r \r T h e d i s p l a y b 0020360 r e a k f a c i l i t y ( p 0020400 a g e X . X X ) k n o w s 0020420 a b o u t t h e i n s p e c 0020440 t o r i n t h e s e n s e 0020460 t h a t t h e b a c k t r 0020500 a c e f r a m e w i n d o w 0020520 i s a n i n s p e c t w 0020540 i n d o w o n t o t h e f 0020560 r a m e s e l e c t e d f r 0020600 o m t h e b a c k t r a c 0020620 e m e n u d u r i n g a 0020640 b r e a k . T h u s y o u 0020660 c a n c a l l t h e i n 0020700 s p e c t o r o n a n o b 0020720 j e c t t h a t i s b o u 0020740 n d o n t h e s t a c k 0020760 b y s e l e c t i n g i t s 0021000 f r a m e i n t h e b a 0021020 c k t r a c e m e n u , s 0021040 e l e c t i n g i t s v a l 0021060 u e w i t h t h e L E F T 0021100 b u t t o n i n t h e b 0021120 a c k t r a c e f r a m e 0021140 w i n d o w , a n d s e l e 0021160 c t i n g t h e i n s p e c 0021200 t c o m m a n d w i t h t 0021220 h e M I D D L E b u t t o n 0021240 i n t h e b a c k t r a 0021260 c e f r a m e w i n d o w . 0021300 T h e v a l u e s o f 0021320 v a r i a b l e s i n f r a 0021340 m e s c a n b e s e t b 0021360 y s e l e c t i n g t h e 0021400 v a r i a b l e n a m e w i 0021420 t h t h e L E F T b u t t 0021440 o n a n d t h e n t h e 0021460 " S e t " c o m m a n d w i 0021500 t h t h e M I D D L E b u 0021520 t t o n . \r N o t e : T h e 0021540 i n s p e c t o r w i l l 0021560 o n l y a l l o w t h e s 0021600 e t t i n g o f n a m e d 0021620 v a r i a b l e s . E v e n 0021640 w i t h t h i s r e s t r 0021660 i c t i o n i t i s s t i 0021700 l l p o s s i b l e t o c 0021720 r a s h t h e s y s t e m 0021740 b y s e t t i n g v a r i a 0021760 b l e s i n s i d e s y s t 0022000 e m f r a m e s . E x e r 0022020 c i s e c a u t i o n i n 0022040 s e t t i n g v a r i a b l e 0022060 s i n o t h e r t h a n 0022100 y o u r o w n c o d e . \r 2 0022120 7 . 1 . 6 \t C o n t r o l l 0022140 i n g t h e A m o u n t D 0022160 i s p l a y e d D u r i n g 0022200 I n s p e c t i o n \r \r T h e 0022220 a m o u n t o f i n f o r m 0022240 a t i o n d i s p l a y e d 0022260 d u r i n g i n s p e c t i o 0022300 n c a n b e c o n t r o l 0022320 l e d u s i n g t h e f o 0022340 l l o w i n g v a r i a b l e 0022360 s : \r M A X I N S P E C T C D R 0022400 L E V E L \t [ V a r i a b l 0022420 e ] \r T h e i n s p e c t o r 0022440 p r i n t s o n l y t h e 0022460 f i r s t M A X I N S P E C 0022500 T C D R L E V E L e l e m e n 0022520 t s o f a l o n g l i s 0022540 t , a n d w i l l m a k e 0022560 t h e t a i l c o n t a i 0022600 n i n g t h e u n p r i n t 0022620 e d e l e m e n t s t h e 0022640 l a s t i t e m . T h e 0022660 l a s t i t e m c a n b e 0022700 i n s p e c t e d t o s e 0022720 e f u r t h e r e l e m e n 0022740 t s . I n i t i a l l y 5 0022760 0 . \r \r M A X I N S P E C T A R 0023000 R A Y L E V E L \t [ V a r i 0023020 a b l e ] \r T h e i n s p e c 0023040 t o r p r i n t s o n l y 0023060 t h e f i r s t M A X I N S 0023100 P E C T A R R A Y L E V E L e 0023120 l e m e n t s o f a n a r 0023140 r a y . T h e r e m a i n 0023160 i n g e l e m e n t s c a n 0023200 b e i n s p e c t e d b y 0023220 c a l l i n g t h e f u n 0023240 c t i o n ( I N S P E C T / A 0023260 R R A Y A R R A Y B E G I N 0023300 O F F S E T ) w h i c h i n 0023320 s p e c t s t h e B E G I N 0023340 O F F S E T t h r o u g h t 0023360 h e B E G I N O F F S E T + 0023400 M A X I N S P E C T A R R A Y 0023420 L E V E L e l e m e n t s o 0023440 f A R R A Y . I n i t i a 0023460 l l y 3 0 0 . \r \r I N S P E C 0023500 T P R I N T L E V E L \t [ V 0023520 a r i a b l e ] \r W h e n p r 0023540 i n t i n g t h e v a l u e 0023560 s , t h e i n s p e c t o r 0023600 r e s e t s P R I N T L E V 0023620 E L ( p a g e X . X X ) t 0023640 o t h e v a l u e o f I 0023660 N S P E C T P R I N T L E V E L 0023700 . I n i t i a l l y ( 2 0023720 . 5 ) . \r \r I N S P E C T A L 0023740 L F I E L D S F L G \t [ V a 0023760 r i a b l e ] \r I f I N S P E 0024000 C T A L L F I E L D S F L G i 0024020 s T , t h e i n s p e c t 0024040 o r w i l l s h o w c o m 0024060 p u t e d f i e l d s ( A C 0024100 C E S S F N S , p a g e X . 0024120 X X ) a s w e l l a s r 0024140 e g u l a r f i e l d s f o 0024160 r s t r u c t u r e s t h a 0024200 t h a v e a r e c o r d 0024220 d e f i n i t i o n . I n i 0024240 t i a l l y T . \r \r 2 7 . 1 . 0024260 7 \t I n s p e c t M a c r 0024300 o s \r \r T h e I n s p e c t o 0024320 r c a n b e e x t e n d e 0024340 d t o i n s p e c t n e w 0024360 s t r u c t u r e s a n d 0024400 d a t a t y p e s b y a d d 0024420 i n g e n t r i e s t o t 0024440 h e l i s t I N S P E C T M 0024460 A C R O S . A n e n t r y 0024500 s h o u l d b e o f t h 0024520 e f o r m ( O B J E C T T Y 0024540 P E . I N S P E C T I N F O 0024560 ) . O B J E C T T Y P E i 0024600 s u s e d t o d e t e r m 0024620 i n e t h e t y p e s o f 0024640 o b j e c t s t h a t a r 0024660 e i n s p e c t e d w i t h 0024700 t h i s m a c r o . I f 0024720 O B J E C T T Y P E i s a 0024740 l i t a t o m , t h e I N 0024760 S P E C T I N F O w i l l b 0025000 e u s e d t o i n s p e c 0025020 t i t e m s w h o s e t y 0025040 p e n a m e i s O B J E C 0025060 T T Y P E . I f O B J E C 0025100 T T Y P E i s a l i s t 0025120 o f t h e f o r m ( F U N 0025140 C T I O N D A T U M - P R E D 0025160 I C A T E ) , D A T U M - P R 0025200 E D I C A T E w i l l b e 0025220 A P P L Y e d t o t h e i 0025240 t e m a n d i f i t r e 0025260 t u r n s n o n - N I L , t 0025300 h e I N S P E C T I N F O w 0025320 i l l b e u s e d t o i 0025340 n s p e c t t h e i t e m . 0025360 \r I N S P E C T I N F O c a n 0025400 b e o n e o f t w o f 0025420 o r m s . I f I N S P E C 0025440 T I N F O i s a l i t a t 0025460 o m , i t s h o u l d b e 0025500 a f u n c t i o n t h a t 0025520 w i l l b e a p p l i e d 0025540 t o t h r e e a r g u m e 0025560 n t s ( t h e i t e m b e 0025600 i n g i n s p e c t e d , O 0025620 B J E C T T Y P E , a n d t 0025640 h e v a l u e o f W H E R 0025660 E p a s s e d t o I N S P 0025700 E C T ) t h a t s h o u l d 0025720 d o t h e i n s p e c t i 0025740 o n . I f I N S P E C T I 0025760 N F O i s n o t a l i t 0026000 a t o m , i t s h o u l d 0026020 b e a l i s t o f ( P R 0026040 O P E R T I E S F E T C H F N 0026060 S T O R E F N P R O P C O M 0026100 M A N D F N V A L U E C O M M 0026120 A N D F N T I T L E C O M M A 0026140 N D F N T I T L E S E L E C 0026160 T I O N F N W H E R E P R O 0026200 P P R I N T F N ) w h e r e 0026220 t h e e l e m e n t s o f 0026240 t h i s l i s t a r e t h 0026260 e a r g u m e n t s f o r 0026300 I N S P E C T W . C R E A T E , 0026320 d e s c r i b e d b e l o w 0026340 . F r o m t h i s l i s 0026360 t , t h e W H E R E a r g 0026400 u m e n t w i l l b e e v 0026420 a l u a t e d ; t h e o t h 0026440 e r s w i l l n o t . I 0026460 f W H E R E i s N I L , 0026500 t h e v a l u e o f W H E 0026520 R E t h a t w a s p a s s 0026540 e d t o I N S P E C T w i 0026560 l l b e u s e d . \r E x a m 0026600 p l e s : \r T h e e n t r y 0026620 ( ( F U N C T I O N M Y A T O 0026640 M P ) P R O P N A M E S G E 0026660 T P R O P P U T P R O P ) o 0026700 n I N S P E C T M A C R O S 0026720 w o u l d c a u s e a l l 0026740 o b j e c t s s a t i s f y i 0026760 n g t h e p r e d i c a t e 0027000 M Y A T O M P t o h a v e 0027020 t h e i r p r o p e r t i e 0027040 s i n s p e c t e d w i t h 0027060 G E T P R O P a n d P U T 0027100 P R O P . I n t h i s e 0027120 x a m p l e , M Y A T O M P 0027140 s h o u l d m a k e s u r e 0027160 t h e o b j e c t i s a 0027200 l i t a t o m . \r T h e e n 0027220 t r y ( M Y D A T A T Y P E 0027240 . M Y I N S P E C T F N ) o 0027260 n I N S P E C T M A C R O S 0027300 w o u l d c a u s e a l l 0027320 d a t a t y p e s o f t y p 0027340 e M Y D A T A T Y P E t o 0027360 b e p a s s e d t o t h e 0027400 f u n c t i o n M Y I N S P 0027420 E C T F N . \r 2 7 . 1 . 8 \t 0027440 I N S P E C T W s \r \r T h e i 0027460 n s p e c t o r i s b u i l 0027500 t o n t h e a b s t r a c 0027520 t i o n o f a n I N S P E 0027540 C T W . A n I N S P E C T 0027560 W i s a w i n d o w w i 0027600 t h c e r t a i n w i n d o 0027620 w p r o p e r t i e s t h a 0027640 t d i s p l a y a n o b j 0027660 e c t a n d r e s p o n d 0027700 t o s e l e c t i o n s o f 0027720 t h e o b j e c t ' s p a 0027740 r t s . I t i s c h a r a 0027760 c t e r i z e d b y a n o 0030000 b j e c t a n d i t s l i 0030020 s t o f p r o p e r t i e s 0030040 . A n I N S P E C T W d 0030060 i s p l a y s t h e o b j e 0030100 c t i n t w o c o l u m n 0030120 s w i t h t h e p r o p e 0030140 r t y n a m e s o n t h e 0030160 l e f t a n d t h e v a 0030200 l u e s o f t h o s e p r 0030220 o p e r t i e s o n t h e 0030240 r i g h t . A n I N S P E 0030260 C T W s u p p o r t s t h e 0030300 p r o t o c o l t h a t t 0030320 h e L E F T m o u s e b u 0030340 t t o n c a n b e u s e d 0030360 t o s e l e c t a n y p 0030400 r o p e r t y n a m e o r 0030420 p r o p e r t y v a l u e a 0030440 n d t h e M I D D L E b u 0030460 t t o n c a l l s a u s e 0030500 r p r o v i d e d f u n c t 0030520 i o n o n t h e s e l e c 0030540 t e d v a l u e o r p r o 0030560 p e r t y . F o r t h e 0030600 I n s p e c t o r a p p l i c 0030620 a t i o n , t h i s f u n c 0030640 t i o n p u t s u p a m 0030660 e n u o f t h e a l t e r 0030700 n a t i v e w a y s o f i 0030720 n s p e c t i n g v a l u e s 0030740 o r o f t h e w a y s 0030760 o f s e t t i n g p r o p e 0031000 r t i e s . I N S P E C T W 0031020 s a r e c r e a t e d w i 0031040 t h t h e f o l l o w i n g 0031060 f u n c t i o n : \r ( I N S P 0031100 E C T W . C R E A T E D A T U 0031120 M P R O P E R T I E S F E T 0031140 C H F N S T O R E F N P R O 0031160 P C O M M A N D F N V A L U E 0031200 C O M M A N D F N T I T L E C 0031220 O M M A N D F N T I T L E S 0031240 E L E C T I O N F N W H E R E 0031260 P R O P P R I N T F N ) \t 0031300 [ F u n c t i o n ] \r C r e a t 0031320 e s a n I N S P E C T W t 0031340 h a t v i e w s t h e o b 0031360 j e c t D A T U M . I f 0031400 P R O P E R T I E S i s a 0031420 l i s t , i t i s t a k e 0031440 n a s t h e l i s t o f 0031460 p r o p e r t i e s o f D 0031500 A T U M t o d i s p l a y . 0031520 I f P R O P E R T I E S 0031540 i s a l i t a t o m , i t 0031560 i s A P P L Y e d t o D 0031600 A T U M a n d t h e r e s 0031620 u l t i s u s e d a s t 0031640 h e l i s t o f p r o p e 0031660 r t i e s t o d i s p l a y 0031700 . \r \r F E T C H F N i s a 0031720 f u n c t i o n o f t w o 0031740 a r g u m e n t s ( O B J E C 0031760 T P R O P E R T Y ) t h a t 0032000 s h o u l d r e t u r n t 0032020 h e v a l u e o f t h e 0032040 P R O P E R T Y p r o p e r t 0032060 y o f O B J E C T . T h 0032100 e r e s u l t o f t h i s 0032120 f u n c t i o n w i l l b 0032140 e p r i n t e d ( w i t h 0032160 P R I N 2 ) i n t h e I N 0032200 S P E C T W a s t h e v a 0032220 l u e . \r S T O R E F N i s 0032240 a f u n c t i o n o f t h 0032260 r e e a r g u m e n t s ( O 0032300 B J E C T P R O P E R T Y N 0032320 E W V A L U E ) t h a t c h 0032340 a n g e s t h e P R O P E R 0032360 T Y p r o p e r t y o f O 0032400 B J E C T t o N E W V A L U 0032420 E . I t i s u s e d b 0032440 y t h e d e f a u l t P R 0032460 O P C O M M A N D F N a n d 0032500 V A L U E C O M M A N D F N t 0032520 o c h a n g e t h e v a l 0032540 u e o f a p r o p e r t y 0032560 a n d a l s o b y t h e 0032600 f u n c t i o n I N S P E C 0032620 T W . R E P L A C E ( d e s c 0032640 r i b e d b e l o w ) . T 0032660 h i s c a n b e N I L i 0032700 f t h e u s e r p r o v i 0032720 d e s c o m m a n d f u n c 0032740 t i o n s w h i c h d o n 0032760 o t c a l l I N S P E C T W 0033000 . R E P L A C E . E a c h 0033020 r e p l a c e a c t i o n w 0033040 i l l b e a s e p a r a t 0033060 e e v e n t o n t h e h 0033100 i s t o r y l i s t . U s 0033120 e r s a r e e n c o u r a g 0033140 e d t o p r o v i d e U N 0033160 D O a b l e S T O R E F N s . 0033200 \r P R O P C O M M A N D F N i 0033220 s a f u n c t i o n o f 0033240 t h r e e a r g u m e n t s 0033260 ( P R O P E R T Y O B J E C T 0033300 I N S P E C T W ) w h i c h 0033320 g e t s c a l l e d w h e 0033340 n t h e u s e r p r e s s 0033360 e s t h e M I D D L E b u 0033400 t t o n a n d t h e s e l 0033420 e c t e d i t e m i n t h 0033440 e I N S P E C T W i s a 0033460 p r o p e r t y n a m e . 0033500 P R O P E R T Y w i l l b e 0033520 t h e n a m e o f t h e 0033540 s e l e c t e d p r o p e r 0033560 t y , O B J E C T w i l l 0033600 b e t h e d a t u m b e i 0033620 n g v i e w e d , a n d I 0033640 N S P E C T W w i l l b e 0033660 t h e w i n d o w . I f 0033700 P R O P C O M M A N D F N i s 0033720 a s t r i n g , i t w i 0033740 l l g e t p r i n t e d i 0033760 n t h e P R O M P T W I N D 0034000 O W w h e n t h e M I D D 0034020 L E b u t t o n i s p r e 0034040 s s e d . T h i s p r o v 0034060 i d e s a c o n v e n i e n 0034100 t w a y t o n o t i f y 0034120 t h e u s e r a b o u t d 0034140 i s a b l e d c o m m a n d s 0034160 o n t h e p r o p e r t i 0034200 e s . D E F A U L T . I N S 0034220 P E C T W . P R O P C O M M A N 0034240 D F N , t h e d e f a u l t 0034260 P R O P C O M M A N D F N , 0034300 w i l l p r e s e n t a m 0034320 e n u w i t h t h e s i n 0034340 g l e c o m m a n d S e t 0034360 o n i t . I f s e l e c 0034400 t e d , t h e S e t c o m 0034420 m a n d w i l l r e a d a 0034440 v a l u e f r o m t h e 0034460 u s e r a n d s e t t h e 0034500 s e l e c t e d p r o p e r 0034520 t y t o t h e r e s u l t 0034540 o f E V A L u a t i n g t 0034560 h i s r e a d v a l u e . \r 0034600 V A L U E C O M M A N D F N i 0034620 s a f u n c t i o n o f 0034640 f o u r a r g u m e n t s ( 0034660 V A L U E P R O P E R T Y O 0034700 B J E C T I N S P E C T W ) 0034720 t h a t g e t s c a l l e d 0034740 w h e n t h e u s e r p 0034760 r e s s e s t h e M I D D L 0035000 E b u t t o n a n d t h e 0035020 s e l e c t e d i t e m i 0035040 n t h e I N S P E C T W i 0035060 s a p r o p e r t y v a l 0035100 u e . V A L U E w i l l 0035120 b e t h e s e l e c t e d 0035140 v a l u e ( a s r e t u r n 0035160 e d b y F E T C H F N ) , 0035200 P R O P E R T Y w i l l b e 0035220 t h e n a m e o f t h e 0035240 p r o p e r t y V A L U E 0035260 i s t h e v a l u e o f , 0035300 O B J E C T w i l l b e 0035320 t h e d a t u m b e i n g 0035340 v i e w e d , a n d I N S P 0035360 E C T W w i l l b e t h e 0035400 I N S P E C T W w i n d o w 0035420 . D E F A U L T . I N S P E 0035440 C T W . V A L U E C O M M A N D 0035460 F N , t h e d e f a u l t 0035500 V A L U E C O M M A N D F N , 0035520 w i l l p r e s e n t a m 0035540 e n u o f p o s s i b l e 0035560 w a y s o f i n s p e c t i 0035600 n g t h e v a l u e a n d 0035620 c r e a t e a n e w I n 0035640 s p e c t w i n d o w i f 0035660 o n e o f t h e m e n u 0035700 i t e m s i s s e l e c t e 0035720 d . \r T I T L E C O M M A N D F 0035740 N i s a f u n c t i o n 0035760 o f t w o a r g u m e n t s 0036000 ( I N S P E C T W O B J E C 0036020 T ) w h i c h g e t s c a 0036040 l l e d w h e n t h e u s 0036060 e r p r e s s e s t h e M 0036100 I D D L E b u t t o n a n d 0036120 t h e c u r s o r i s i 0036140 n t h e t i t l e o r b 0036160 o r d e r o f t h e i n s 0036200 p e c t w i n d o w I N S P 0036220 E C T W . T h i s c o m m 0036240 a n d f u n c t i o n i s 0036260 p r o v i d e d s o t h a t 0036300 u s e r s c a n i m p l e 0036320 m e n t c o m m a n d s t h 0036340 a t a p p l y t o t h e 0036360 e n t i r e o b j e c t . 0036400 T h e d e f a u l t T I T L 0036420 E C O M M A N D F N ( D E F A 0036440 U L T . I N S P E C T W . T I T 0036460 L E C O M M A N D F N ) p r e 0036500 s e n t s a m e n u w i t 0036520 h t h e c o m m a n d s R 0036540 e F e t c h , I T _ d a t u m 0036560 , a n d I T _ s e l e c t i 0036600 o n ( s e e p a g e X . X 0036620 X ) . \r T I T L E s p e c i f 0036640 i e s t h e t i t l e o f 0036660 t h e w i n d o w . I f 0036700 T I T L E i s N I L , t 0036720 h e t i t l e o f t h e 0036740 w i n d o w w i l l b e t 0036760 h e p r i n t e d f o r m 0037000 o f D A T U M f o l l o w e 0037020 d b y t h e s t r i n g 0037040 " I n s p e c t o r " . I 0037060 f T I T L E i s t h e l 0037100 i t a t o m D O N ' T , t h 0037120 e i n s p e c t w i n d o w 0037140 w i l l n o t h a v e a 0037160 t i t l e . I f T I T L 0037200 E i s a n y o t h e r l 0037220 i t a t o m , i t w i l l 0037240 b e a p p l y e d t o t h 0037260 e D A T U M a n d t h e 0037300 p o t e n t i a l i n s p e c 0037320 t w i n d o w ( i f i t 0037340 i s k n o w n ) . I f t h 0037360 i s r e s u l t i s t h e 0037400 l i t a t o m D O N ' T , 0037420 t h e i n s p e c t w i n d 0037440 o w w i l l n o t h a v e 0037460 a t i t l e ; o t h e r w 0037500 i s e t h e r e s u l t w 0037520 i l l b e u s e d a s a 0037540 t i t l e . I f T I T L 0037560 E i s n o t a l i t a t 0037600 o m , i t w i l l b e u 0037620 s e d a s t h e t i t l e 0037640 . \r S E L E C T I O N F N i 0037660 s a f u n c t i o n o f 0037700 t h r e e a r g u m e n t s 0037720 ( P R O P E R T Y V A L U E F 0037740 L G I N S P E C T W ) w h i 0037760 c h g e t s c a l l e d w 0040000 h e n t h e u s e r r e l 0040020 e a s e s t h e l e f t b 0040040 u t t o n a n d t h e c u 0040060 r s o r i s o n o n e o 0040100 f t h e i t e m s . T h 0040120 e S E L E C T I O N F N a l 0040140 l o w s a p r o g r a m t 0040160 o t a k e a c t i o n o n 0040200 t h e u s e r ' s s e l e 0040220 c t i o n o f a n i t e m 0040240 i n t h e i n s p e c t 0040260 w i n d o w . A t t h e 0040300 t i m e t h i s f u n c t i 0040320 o n i s c a l l e d , t h 0040340 e s e l e c t e d i t e m 0040360 h a s b e e n " s e l e c t 0040400 e d " . T h e f u n c t i 0040420 o n I N S P E C T W . S E L E 0040440 C T I T E M ( d e s c r i b 0040460 e d b e l o w ) c a n b e 0040500 u s e d t o t u r n o f 0040520 f t h i s s e l e c t i o n 0040540 . P R O P E R T Y w i l l 0040560 b e t h e n a m e o f 0040600 t h e p r o p e r t y o f 0040620 t h e s e l e c t e d i t e 0040640 m . V A L U E F L G w i l 0040660 l b e N I L i f t h e 0040700 s e l e c t e d i t e m i s 0040720 t h e p r o p e r t y n a 0040740 m e ; T i f t h e s e l 0040760 e c t e d i t e m i s t h 0041000 e p r o p e r t y v a l u e 0041020 . \r W H E R E i n d i c a t e 0041040 s w h e r e t h e i n s p 0041060 e c t w i n d o w s h o u l 0041100 d g o . I t s i n t e r 0041120 p r e t a t i o n i s d e s 0041140 c r i b e d i n I N S P E C 0041160 T ( p a g e X . X X ) . \r P 0041200 R O P P R I N T F N i s a 0041220 f u n c t i o n o f t w o 0041240 a r g u m e n t s ( P R O P E 0041260 R T Y D A T U M ) w h i c h 0041300 g e t s c a l l e d t o 0041320 d e t e r m i n e w h a t t 0041340 o p r i n t i n t h e p 0041360 r o p e r t y p l a c e f o 0041400 r t h e p r o p e r t y P 0041420 R O P E R T Y . I f P R O 0041440 P P R I N T F N r e t u r n s 0041460 N I L , n o p r o p e r t 0041500 y n a m e w i l l b e p 0041520 r i n t e d a n d t h e v 0041540 a l u e w i l l b e p r i 0041560 n t e d t o t h e l e f t 0041600 o f t h e o t h e r v a 0041620 l u e s . \r A n i n s p e c 0041640 t w i n d o w u s e s t h 0041660 e f o l l o w i n g w i n d 0041700 o w p r o p e r t y n a m e 0041720 s t o h o l d i n f o r m 0041740 a t i o n : D A T U M , F E 0041760 T C H F N , S T O R E F N , 0042000 P R O P C O M M A N D F N , V 0042020 A L U E C O M M A N D F N , S 0042040 E L E C T I O N F N , P R O P 0042060 P R I N T F N , I N S P E C T 0042100 W T I T L E , P R O P E R T I 0042120 E S , C U R R E N T I T E M 0042140 a n d S E L E C T A B L E I T 0042160 E M S . \r ( I N S P E C T W . R 0042200 E D I S P L A Y I N S P E C T 0042220 W P R O P S - - - ) \t [ 0042240 F u n c t i o n ] \r U p d a t e 0042260 s t h e d i s p l a y o f 0042300 t h e o b j e c t s b e i 0042320 n g i n s p e c t e d i n 0042340 I N S P E C T W . I f P R 0042360 O P S i s a p r o p e r t 0042400 y n a m e o r a l i s t 0042420 o f p r o p e r t y n a m 0042440 e s , o n l y t h o s e p 0042460 r o p e r t i e s a r e u p 0042500 d a t e d . I f P R O P S 0042520 i s N I L , a l l p r o 0042540 p e r t i e s a r e r e d i 0042560 s p l a y e d . T h i s f 0042600 u n c t i o n i s p r o v i 0042620 d e d b e c a u s e i n s p 0042640 e c t w i n d o w s d o n 0042660 o t a u t o m a t i c a l l y 0042700 u p d a t e t h e i r d i 0042720 s p l a y w h e n t h e o 0042740 b j e c t t h e y a r e s 0042760 h o w i n g c h a n g e s . 0043000 \r T h i s f u n c t i o n 0043020 i s c a l l e d b y t h e 0043040 R e F e t c h c o m m a n d 0043060 i n t h e t i t l e c o 0043100 m m a n d m e n u o f a n 0043120 I N S P E C T W ( p a g e 0043140 X . X X ) . \r \r ( I N S P E C T 0043160 W . R E P L A C E I N S P E C 0043200 T W P R O P E R T Y N E W V 0043220 A L U E ) \t [ F u n c t i o 0043240 n ] \r C a l l s t h e S T O 0043260 R E F N o f t h e i n s p 0043300 e c t w i n d o w I N S P E 0043320 C T W t o c h a n g e t h 0043340 e p r o p e r t y n a m e d 0043360 P R O P E R T Y t o t h e 0043400 v a l u e N E W V A L U E 0043420 a n d u p d a t e s t h e 0043440 d i s p l a y o f P R O P E 0043460 R T Y ' s v a l u e i n t 0043500 h e d i s p l a y . T h i 0043520 s p r o v i d e s a f u n 0043540 c t i o n a l i n t e r f a c 0043560 e f o r u s e r P R O P C 0043600 O M M A N D F N s . \r \r ( I N S 0043620 P E C T W . S E L E C T I T E M 0043640 I N S P E C T W P R O P E R 0043660 T Y V A L U E F L G ) \t [ 0043700 F u n c t i o n ] \r S e t s t 0043720 h e s e l e c t e d i t e m 0043740 i n a n i n s p e c t w 0043760 i n d o w . T h e i t e m 0044000 i s i n v e r t e d o n 0044020 t h e d i s p l a y a n d 0044040 p u t o n t h e w i n d o 0044060 w p r o p e r t y C U R R E 0044100 N T I T E M o f I N S P E C 0044120 T W . I f I N S P E C T W 0044140 h a s a C U R R E N T I T 0044160 E M , i t i s d e s e l e 0044200 c t e d . P R O P E R T Y 0044220 i s t h e n a m e o f t 0044240 h e p r o p e r t y o f t 0044260 h e s e l e c t e d i t e m 0044300 . V A L U E F L G i s N 0044320 I L i f t h e s e l e c t 0044340 e d i t e m i s t h e p 0044360 r o p e r t y n a m e ; T 0044400 i f t h e s e l e c t e d 0044420 i t e m i s t h e p r o p 0044440 e r t y v a l u e . I f 0044460 P R O P E R T Y i s N I L , 0044500 n o i t e m w i l l b e 0044520 s e l e c t e d . T h i s 0044540 p r o v i d e s a w a y 0044560 o f d e s e l e c t i n g a 0044600 l l i t e m s . \r \r \r 2 7 . 2 0044620 \t P R O M P T F O R W O R D 0044640 \r \r P R O M P T F O R W O R D 0044660 i s a f u n c t i o n t h 0044700 a t r e a d s i n a s e 0044720 q u e n c e o f c h a r a c 0044740 t e r s , g e n e r a l l y 0044760 f r o m t h e k e y b o a r 0045000 d , w i t h o u t i n v o l 0045020 v i n g R E A D - l i k e s 0045040 y n t a x . A u s e r c 0045060 a n s u p p l y a p r o m 0045100 p t i n g s t r i n g , a s 0045120 w e l l a s a " c a n d 0045140 i d a t e " s t r i n g , w 0045160 h i c h i s p r i n t e d 0045200 a n d u s e d i f t h e 0045220 u s e r t y p e s o n l y 0045240 a w o r d t e r m i n a t o 0045260 r c h a r a c t e r ( o r 0045300 d o e s n ' t t y p e a n y 0045320 t h i n g b e f o r e a g 0045340 i v e n t i m e l i m i t ) 0045360 . A s s o o n a s a n 0045400 y c h a r a c t e r s a r e 0045420 t y p e d t h e " c a n d 0045440 i d a t e " s t r i n g i s 0045460 e r a s e d a n d t h e 0045500 n e w i n p u t t a k e s 0045520 i t s p l a c e . \r P R O M P 0045540 T F O R W O R D a c c e p t s 0045560 u s e r t y p e - i n u n 0045600 t i l o n e o f t h e " 0045620 w o r d t e r m i n a t o r " 0045640 c h a r a c t e r s i s t 0045660 y p e d . N o r m a l l y , 0045700 t h e w o r d t e r m i n 0045720 a t o r c h a r a c t e r s 0045740 a r e E O L , E S C A P E , 0045760 L F , S P A C E , o r T 0046000 A B . T h i s l i s t c 0046020 a n b e c h a n g e d u s 0046040 i n g t h e T E R M I N C H 0046060 A R . L S T a r g u m e n t 0046100 t o P R O M P T F O R W O R D 0046120 , f o r e x a m p l e i f 0046140 i t i s d e s i r a b l e 0046160 t o a l l o w t h e u s 0046200 e r t o i n p u t l i n e 0046220 s i n c l u d i n g s p a c 0046240 e s . \r P R O M P T F O R W O R 0046260 D a l s o r e c o g n i z e 0046300 s t h e f o l l o w i n g 0046320 s p e c i a l c h a r a c t e 0046340 r s : \r \t C o n t r o l - A , 0046360 B a c k s p a c e , o r D E 0046400 L E T E \t A n y o f t h e s 0046420 e c h a r a c t e r s d e l 0046440 e t e s t h e l a s t c h 0046460 a r a c t e r t y p e d a n 0046500 d a p p r o p r i a t e l y 0046520 e r a s e s i t f r o m t 0046540 h e e c h o s t r e a m i 0046560 f i t i s a d i s p l a 0046600 y s t r e a m . \r \t C o n t r 0046620 o l - Q \t E r a s e s a l l 0046640 t h e t y p e - i n s o f 0046660 a r . \r \t C o n t r o l - R \t R 0046700 e p r i n t s t h e a c c u 0046720 m u l a t e d s t r i n g . \r 0046740 \t C o n t r o l - V \t " Q u o t 0046760 e s " t h e n e x t c h a 0047000 r a c t e r : a f t e r t y 0047020 p i n g C o n t r o l - V , 0047040 t h e n e x t c h a r a c t 0047060 e r t y p e d i s a d d e 0047100 d t o t h e a c c u m u l 0047120 a t e d s t r i n g , r e g 0047140 a r d l e s s o f a n y s 0047160 p e c i a l m e a n i n g i 0047200 t h a s . A l l o w s t 0047220 h e u s e r t o i n c l u 0047240 d e e d i t i n g c h a r a 0047260 c t e r s a n d w o r d t 0047300 e r m i n a t o r c h a r a c 0047320 t e r s i n t h e a c c u 0047340 m u l a t e d s t r i n g . \r 0047360 \t C o n t r o l - W \t E r a s e 0047400 s t h e l a s t w o r d . 0047420 \r \t ? \t C a l l s u p a " 0047440 h e l p " f a c i l i t y . 0047460 T h e a c t i o n t a k e 0047500 n i s d e f i n e d b y 0047520 t h e G E N E R A T E ? L I S 0047540 T . F N a r g u m e n t t o 0047560 P R O M P T F O R W O R D ( 0047600 s e e b e l o w ) . N o r 0047620 m a l l y , t h i s p r i n 0047640 t s a l i s t o f p o s 0047660 s i b l e c a n d i d a t e s 0047700 . \r ( P R O M P T F O R W O R D 0047720 P R O M P T . S T R C A N D 0047740 I D A T E . S T R G E N E R A 0047760 T E ? L I S T . F N E C H O . 0050000 C H A N N E L D O N T E C H O 0050020 T Y P E I N . F L G U R G E N 0050040 C Y . O P T I O N T E R M I N 0050060 C H A R S . L S T K E Y B D . 0050100 C H A N N E L ) \t [ F u n c 0050120 t i o n ] \r P R O M P T F O R W 0050140 O R D h a s a m u l t i p 0050160 l i c i t y o f f e a t u r 0050200 e s , w h i c h a r e s p 0050220 e c i f i e d t h r o u g h 0050240 a r a t h e r l a r g e n 0050260 u m b e r o f i n p u t a 0050300 r g u m e n t s , b u t t h 0050320 e d e f a u l t s e t t i n 0050340 g s f o r t h e m ( i . e 0050360 . , w h e n t h e y a r e 0050400 n ' t g i v e n , o r a r 0050420 e g i v e n a s N I L ) 0050440 i s s u c h t o m i n i m 0050460 i z e t h e n u m b e r n 0050500 e e d e d i n t h e a v e 0050520 r a g e c a s e , a n d a 0050540 n a t t e m p t h a s b e 0050560 e n m a d e t o o r d e r 0050600 t h e m o r e f r e q u e 0050620 n t l y n o n - d e f a u l t 0050640 e d a r g u m e n t s a t 0050660 t h e b e g i n n i n g o f 0050700 t h e a r g u m e n t l i 0050720 s t . T h e d e f a u l t 0050740 i n p u t a n d e c h o 0050760 a r e b o t h t o t h e 0051000 t e r m i n a l ; t h e t e 0051020 r m i n a l t a b l e i n 0051040 e f f e c t d u r i n g i n 0051060 p u t a l l o w s m o s t 0051100 c o n t r o l c h a r a c t e 0051120 r s t o b e I N D I C A T 0051140 E ' d . \r P R O M P T F O R 0051160 W O R D r e t u r n s N I L 0051200 i f a n u l l s t r i n 0051220 g i s t y p e d ; t h i s 0051240 w o u l d o c c u r w h e 0051260 n n o c a n d i d a t e i 0051300 s g i v e n a n d o n l y 0051320 a t e r m i n a t o r i s 0051340 t y p e d , o r w h e n 0051360 t h e c a n d i d a t e i s 0051400 e r a s e d a n d a t e 0051420 r m i n a t o r i s t y p e 0051440 d w i t h n o o t h e r 0051460 i n p u t s t i l l u n - e 0051500 r a s e d . I n a l l o 0051520 t h e r c a s e s , P R O M 0051540 P T F O R W O R D r e t u r n 0051560 s a s t r i n g . \r P R O 0051600 M P T F O R W O R D i s c o 0051620 n t r o l l e d t h r o u g h 0051640 t h e f o l l o w i n g a 0051660 r g u m e n t s : \r \t P R O M P 0051700 T . S T R \t I f n o n - N I L 0051720 , t h i s i s c o e r c e 0051740 d t o a s t r i n g a n 0051760 d u s e d f o r p r o m p 0052000 t i n g ; a n a d d i t i o 0052020 n a l s p a c e i s o u t 0052040 p u t a f t e r t h i s s 0052060 t r i n g . \r \t C A N D I D A T 0052100 E . S T R \t I f n o n - N I L 0052120 , t h i s i s c o e r c e 0052140 d t o a s t r i n g a n 0052160 d o f f e r e d a s i n i 0052200 t i a l c o n t e n t s o f 0052220 t h e i n p u t b u f f e 0052240 r . \r \t G E N E R A T E ? L I S 0052260 T . F N \t I f n o n - N I L , 0052300 t h i s i s e i t h e r 0052320 a s t r i n g t o b e p 0052340 r i n t e d o u t f o r h 0052360 e l p , o r a f u n c t i 0052400 o n t o b e a p p l i e d 0052420 t o P R O M P T . S T R a 0052440 n d C A N D I D A T E . S T R 0052460 ( a f t e r b o t h h a v 0052500 e b e e n c o e r c e d t 0052520 o s t r i n g s ) , a n d 0052540 w h i c h s h o u l d r e t 0052560 u r n a l i s t o f p o 0052600 t e n t i a l c a n d i d a t 0052620 e s . T h e h e l p s t 0052640 r i n g o r l i s t o f 0052660 p o t e n t i a l c a n d i d 0052700 a t e s w i l l t h e n b 0052720 e p r i n t e d o n a s 0052740 e p a r a t e l i n e , t h 0052760 e p r o m p t w i l l b e 0053000 r e s t a r t e d , a n d 0053020 a n y t y p e - i n w i l l 0053040 b e r e - e c h o e d . \r N 0053060 o t e : I f G E N E R A T 0053100 E ? L I S T . F N i s a f 0053120 u n c t i o n , i t s v a l 0053140 u e l i s t w i l l b e 0053160 " c a c h e d " s o t h a t 0053200 i t w i l l b e r u n 0053220 a t m o s t o n c e p e r 0053240 c a l l t o P R O M P T F 0053260 O R W O R D . \r \t E C H O . C H 0053300 A N N E L \t C o e r c e d t o 0053320 a n o u t p u t s t r e a 0053340 m ; N I L d e f a u l t s 0053360 t o T , t h e " t e r m i 0053400 n a l o u t p u t s t r e a 0053420 m " , n o r m a l l y ( T T 0053440 Y D I S P L A Y S T R E A M ) . 0053460 T o a c h i e v e e c h 0053500 o i n g t o t h e " c u r 0053520 r e n t o u t p u t s t r e 0053540 a m " , u s e ( G E T S T R 0053560 E A M N I L ' O U T P U T ) 0053600 . I f e c h o i s t o 0053620 a d i s p l a y s t r e a 0053640 m , i t w i l l h a v e 0053660 a f l a s h i n g c a r e t 0053700 s h o w i n g w h e r e t 0053720 h e n e x t i n p u t i s 0053740 t o b e e c h o e d . \r \t 0053760 D O N T E C H O T Y P E I N . F 0054000 L G \t I f T , t h e r e i 0054020 s n o e c h o i n g o f 0054040 t h e i n p u t c h a r a c 0054060 t e r s . I f t h e v a 0054100 l u e o f D O N T E C H O T 0054120 Y P E I N . F L G i s a s 0054140 i n g l e - c h a r a c t e r 0054160 a t o m o r s t r i n g , 0054200 t h a t c h a r a c t e r i 0054220 s e c h o e d i n s t e a d 0054240 o f t h e a c t u a l i 0054260 n p u t . F o r e x a m p 0054300 l e , L O G I N p r o m p t 0054320 s f o r a p a s s w o r d 0054340 w i t h D O N T E C H O T Y 0054360 P E I N . F L G b e i n g " 0054400 * " . \r \t U G E N C Y . O P T I 0054420 O N \t I f N I L , P R O M P 0054440 T F O R W O R D q u i e t l y 0054460 w a i t f o r i n p u t , 0054500 a s R E A D d o e s ; i 0054520 f a n u m b e r , t h i s 0054540 i s t h e n u m b e r o 0054560 f s e c o n d s t o w a i 0054600 t f o r t h e u s e r t 0054620 o r e s p o n d ( i f t i 0054640 m e o u t i s r e a c h e d 0054660 , t h e n C A N D I D A T E 0054700 . W O R D i s r e t u r n e 0054720 d , r e g a r d l e s s o f 0054740 a n y o t h e r t y p e - 0054760 i n a c t i v i t y ) ; i f 0055000 T , t h i s m e a n s t 0055020 o w a i t f o r e v e r , 0055040 b u t p e r i o d i c a l l y 0055060 f l a s h t h e w i n d o 0055100 w t o a l e r t t h e u 0055120 s e r ; i f T T Y , t h e 0055140 n P R O M P T F O R W O R D 0055160 g r a b s t h e T T Y i m 0055200 m e d i a t e l y . W h e n 0055220 U R G E N C Y . O P T I O N = 0055240 T T Y , t h e c u r s o r 0055260 i s t e m p o r a r i l y c 0055300 h a n g e d t o a d i f f 0055320 e r e n t s h a p e t o i 0055340 n d i c a t e t h e u r g e 0055360 n t n a t u r e o f t h e 0055400 r e q u e s t . \r \t T E R M I 0055420 N C H A R S . L S T \t T h i s 0055440 i s l i s t o f " w o r d 0055460 t e r m i n a t o r " c h a 0055500 r a c t e r c o d e s ; i t 0055520 d e f a u l t s t o ( C H 0055540 A R C O D E ( E O L E S C A 0055560 P E L F S P A C E T A B ) 0055600 ) . T h i s m a y a l s 0055620 o b e a s i n g l e c h 0055640 a r a c t e r c o d e . \r \t 0055660 K E Y B D . C H A N N E L \t I f 0055700 n o n - N I L , t h i s i 0055720 s c o e r c e d t o a s 0055740 t r e a m , a n d t h e i 0055760 n p u t b y t e s a r e t 0056000 a k e n f r o m t h a t s 0056020 t r e a m . N I L d e f a 0056040 u l t s t o t h e k e y b 0056060 o a r d i n p u t s t r e a 0056100 m . N o t e t h a t t h 0056120 i s i s n o t t h e s a 0056140 m e a s t h e t e r m i n 0056160 a l o u t p u t s t r e a m 0056200 T ( p a g e X . X X ) , 0056220 w h i c h i s a b u f f e 0056240 r e d k e y b o a r d i n p 0056260 u t s t r e a m , n o t s 0056300 u i t a b l e f o r u s e 0056320 w i t h P R O M P T F O R W O 0056340 R D . \r \r E x a m p l e s : \r ( 0056360 P R O M P T F O R W O R D \r 0056400 " W h a t i s y o u r F 0056420 O O w o r d ? " ' M u m b l 0056440 e \r ( F U N C T I O N ( 0056460 L A M B D A ( ) ' ( G r u m 0056500 b l e B l e t c h ) ) ) \r 0056520 P R O M P T W I N D O W N I 0056540 L 3 0 ) \r T h i s f i r s t 0056560 p r o m p t s t h e u s e 0056600 r f o r i n p u t b y p 0056620 r i n t i n g t h e f i r s 0056640 t a r g u m e n t a s a 0056660 p r o m p t i n t o P R O M 0056700 P T W I N D O W ; t h e n 0056720 t h e p r o f f e r e d d e 0056740 f a u l t a n s w e r , " M 0056760 u m b l e " , i s p r i n t 0057000 e d o u t a n d t h e c 0057020 a r e t s t a r t s f l a s 0057040 h i n g j u s t a f t e r 0057060 i t t o i n d i c a t e t 0057100 h a t t h e u p c o m i n g 0057120 i n p u t w i l l b e e 0057140 c h o e d t h e r e . I f 0057160 t h e u s e r f a i l s 0057200 t o c o m p l e t e a w o 0057220 r d w i t h i n 3 0 s e c 0057240 o n d s , t h e n t h e r 0057260 e s u l t w i l l b e t h 0057300 e s t r i n g " M u m b l e 0057320 " . \r ( F R E S H L I N E 0057340 T ) \r ( L I S T \r ( P R 0057360 O M P T F O R W O R D \r 0057400 ( C O N C A T " { " H 0057420 O S T " } L o g i n : " ) 0057440 \r ( U S E R N A M E 0057460 N I L N I L T ) ) \r 0057500 ( P R O M P T F O R W O R D \r 0057520 " ( p a s s w o r d 0057540 ) " N I L N I L N I L ' 0057560 * ) ) \r T h i s f i r s t p 0057600 r o m p t s i n w h a t e v 0057620 e r w i n d o w i s c u r 0057640 r e n t l y ( T T Y D I S P L 0057660 A Y S T R E A M ) , a n d t 0057700 h e n t a k e s i n a u 0057720 s e r n a m e ; t h e s e 0057740 c o n d c a l l p r o m p t 0057760 s w i t h " ( p a s s w o 0060000 r d ) " a n d t a k e s i 0060020 n a n o t h e r w o r d ( 0060040 t h e p a s s w o r d ) w i 0060060 t h o u t p r o f f e r i n g 0060100 a c a n d i d a t e , e 0060120 c h o i n g t h e t y p e d 0060140 - i n c h a r a c t e r s a 0060160 s " * " . \r \r 2 7 . 3 \t A 0060200 S K U S E R \r \r D W I M , t h 0060220 e c o m p i l e r , t h e 0060240 e d i t o r , a n d m a n y 0060260 o t h e r s y s t e m p a 0060300 c k a g e s a l l u s e A 0060320 S K U S E R , a n e x t r e 0060340 m e l y g e n e r a l u s e 0060360 r i n t e r a c t i o n p a 0060400 c k a g e , f o r t h e i r 0060420 i n t e r a c t i o n s w i 0060440 t h t h e u s e r a t t 0060460 h e t e r m i n a l . A S 0060500 K U S E R t a k e s a s i 0060520 t s p r i n c i p a l a r g 0060540 u m e n t K E Y L S T w h i 0060560 c h i s u s e d t o d r 0060600 i v e t h e i n t e r a c t 0060620 i o n . K E Y L S T s p e 0060640 c i f i e s w h a t t h e 0060660 u s e r c a n t y p e a t 0060700 a n y g i v e n p o i n t 0060720 , h o w A S K U S E R s h 0060740 o u l d r e s p o n d t o 0060760 t h e v a r i o u s i n p u 0061000 t s , w h a t v a l u e s 0061020 h o u l d b e r e t u r n e 0061040 d b y A S K U S E R , a n 0061060 d i s a l s o u s e d t 0061100 o p r e s e n t t h e u s 0061120 e r a t a n y g i v e n 0061140 p o i n t w i t h a l i s 0061160 t o f t h e p o s s i b l 0061200 e r e s p o n s e s . A S 0061220 K U S E R a l s o t a k e s 0061240 o t h e r a r g u m e n t s 0061260 w h i c h p e r m i t s p 0061300 e c i f y i n g a w a i t 0061320 t i m e , a d e f a u l t 0061340 v a l u e , a m e s s a g e 0061360 t o b e p r i n t e d o 0061400 n e n t r y , a f l a g 0061420 i n d i c a t i n g w h e t h 0061440 e r o r n o t t y p e a h 0061460 e a d i s t o b e p e r 0061500 m i t t e d , a f l a g 0061520 i n d i c a t i n g w h e t h 0061540 e r t h e t r a n s a c t i 0061560 o n i s t o b e s t o r 0061600 e d o n t h e h i s t o r 0061620 y l i s t ( p a g e X . X 0061640 X ) , a d e f a u l t s e 0061660 t o f o p t i o n s , a n 0061700 d a n ( o p t i o n a l ) 0061720 i n p u t f i l e / s t r i n 0061740 g . \r ( A S K U S E R W A I T 0061760 D E F A U L T M E S S K E 0062000 Y L S T T Y P E A H E A D L 0062020 I S P X P R N T F L G O P T I 0062040 O N S L S T F I L E ) \t [ 0062060 F u n c t i o n ] \r W A I T i 0062100 s e i t h e r N I L o r 0062120 a n u m b e r ( o f s e c 0062140 o n d s ) . D E F A U L T 0062160 i s a s i n g l e c h a r 0062200 a c t e r o r a s e q u e 0062220 n c e ( l i s t ) o f c h 0062240 a r a c t e r s t o b e u 0062260 s e d a s t h e d e f a u 0062300 l t i n p u t s f o r t h 0062320 e c a s e w h e n W A I T 0062340 i s n o t N I L a n d 0062360 m o r e t h a n W A I T s 0062400 e c o n d s e l a p s e w i 0062420 t h o u t a n y i n p u t . 0062440 I n t h i s c a s e , 0062460 t h e c h a r a c t e r ( s ) 0062500 f r o m D E F A U L T a r 0062520 e p r o c e s s e d e x a c 0062540 t l y a s t h o u g h t h 0062560 e y h a d b e e n t y p e 0062600 d , e x c e p t t h a t A 0062620 S K U S E R f i r s t t y p 0062640 e s " . . . " . \r M E S S i 0062660 s t h e i n i t i a l m e 0062700 s s a g e t o b e p r i n 0062720 t e d b y A S K U S E R , 0062740 i f a n y , a n d c a n 0062760 b e a s t r i n g , o r 0063000 a l i s t . I n t h e 0063020 l a t t e r c a s e , e a c 0063040 h e l e m e n t o f t h e 0063060 l i s t i s p r i n t e d 0063100 , s e p a r a t e d b y s 0063120 p a c e s , a n d t e r m i 0063140 n a t e d w i t h a " ? 0063160 " . K E Y L S T a n d 0063200 O P T I O N S L S T a r e d 0063220 e s c r i b e d . T Y P E A 0063240 H E A D i s T i f t h e 0063260 u s e r i s p e r m i t t 0063300 e d t o t y p e a h e a d 0063320 a r e s p o n s e t o A S 0063340 K U S E R . N I L m e a n 0063360 s a n y t y p e a h e a d 0063400 s h o u l d b e c l e a r e 0063420 d a n d s a v e d . L I 0063440 S P X P R N T F L G d e t e r 0063460 m i n e s w h e t h e r o r 0063500 n o t t h e i n t e r a c 0063520 t i o n i s t o b e r e 0063540 c o r d e d o n t h e h i 0063560 s t o r y l i s t . F I L 0063600 E c a n b e e i t h e r 0063620 N I L ( i n w h i c h c a 0063640 s e i t d e f a u l t s t 0063660 o t h e t e r m i n a l i 0063700 n p u t s t r e a m , T ) , 0063720 a s t r e a m , o r a 0063740 s t r i n g . I f F I L E 0063760 i s a s t r i n g , a n 0064000 d a l l o f i t s c h a 0064020 r a c t e r s a r e r e a d 0064040 b e f o r e A S K U S E R 0064060 f i n i s h e s , F I L E w 0064100 i l l b e r e s e t t o 0064120 T , a n d t h e i n t e r 0064140 a c t i o n w i l l c o n t 0064160 i n u e w i t h A S K U S E 0064200 R r e a d i n g f r o m t 0064220 h e t e r m i n a l . \r A l l 0064240 i n p u t o p e r a t i o n 0064260 s t a k e p l a c e f r o 0064300 m F I L E u n t i l a n 0064320 u n a c c e p t a b l e i n p 0064340 u t i s e n c o u n t e r e 0064360 d , i . e . , o n e t h a 0064400 t d o e s n o t c o n f o 0064420 r m t o t h e p r o t o c 0064440 o l d e f i n e d b y K E 0064460 Y L S T . A t t h a t p 0064500 o i n t , F I L E i s s e 0064520 t t o T , D E F A U L T 0064540 i s s e t t o N I L , t 0064560 h e i n p u t b u f f e r 0064600 i s c l e a r e d , a n d 0064620 a b e l l i s r u n g . 0064640 U n a c c e p t a b l e i n 0064660 p u t s a r e n o t e c h 0064700 o e d . \r T h e v a l u e o 0064720 f A S K U S E R i s t h e 0064740 r e s u l t o f p a c k i 0064760 n g a l l t h e k e y s 0065000 t h a t w e r e m a t c h e 0065020 d , u n l e s s t h e R E 0065040 T U R N o p t i o n i s s 0065060 p e c i f i e d ( p a g e X 0065100 . X X ) . \r \r ( M A K E K E Y L 0065120 S T L S T D E F A U L T K E 0065140 Y L C A S E F L G A U T O C 0065160 O M P L E T E F L G ) \t [ F 0065200 u n c t i o n ] \r L S T i s 0065220 a l i s t o f a t o m s 0065240 o r s t r i n g s . M A K 0065260 E K E Y L S T r e t u r n s 0065300 a n A S K U S E R K E Y L S 0065320 T w h i c h w i l l p e r 0065340 m i t t h e u s e r t o 0065360 s p e c i f y o n e o f t 0065400 h e e l e m e n t s o n L 0065420 S T b y e i t h e r t y p 0065440 i n g e n o u g h c h a r a 0065460 c t e r s t o m a k e t h 0065500 e c h o i c e u n a m b i g 0065520 u o u s , o r e l s e t y 0065540 p i n g a n u m b e r b e 0065560 t w e e n 1 a n d N , w 0065600 h e r e N i s t h e l e 0065620 n g t h o f L S T . \r F o r 0065640 e x a m p l e , i f A S K 0065660 U S E R i s c a l l e d w 0065700 i t h K E Y L S T = ( M A 0065720 K E K E Y L S T ' ( C O N N E 0065740 C T S U P P O R T C O M P I 0065760 L E ) ) , t h e n t h e u 0066000 s e r c a n t y p e C - O 0066020 - N , S , C - O - M , 1 , 0066040 2 , o r 3 t o i n d i 0066060 c a t e o n e o f t h e 0066100 t h r e e c h o i c e s . \r I 0066120 f L C A S E F L G = T , t h 0066140 e n e c h o i n g o f u p 0066160 p e r c a s e e l e m e n t 0066200 s w i l l b e i n l o w 0066220 e r c a s e ( b u t t h e 0066240 v a l u e r e t u r n e d 0066260 w i l l s t i l l b e o n 0066300 e o f t h e e l e m e n t 0066320 s o f L S T ) . I f D E 0066340 F A U L T K E Y i s n o n - 0066360 N I L , i t w i l l b e 0066400 t h e l a s t k e y o n 0066420 t h e K E Y L S T . O t h 0066440 e r w i s e , a k e y w h 0066460 i c h p e r m i t s t h e 0066500 u s e r t o i n d i c a t e 0066520 " N o - n o n e o f t 0066540 h e a b o v e " c h o i c e 0066560 s , i n w h i c h c a s e 0066600 t h e v a l u e r e t u r 0066620 n e d b y A S K U S E R w 0066640 i l l b e N I L . \r A U T O 0066660 C O M P L E T E F L G i s u 0066700 s e d a s t h e v a l u e 0066720 o f t h e A U T O C O M P 0066740 L E T E F L G o p t i o n o 0066760 f t h e r e s u l t i n g 0067000 k e y l i s t . \r \r 2 7 . 3 . 0067020 1 \t F o r m a t o f K E 0067040 Y L S T \r \r K E Y L S T i s 0067060 a l i s t o f e l e m e n 0067100 t s o f t h e f o r m ( 0067120 K E Y P R O M P T S T R I N G 0067140 . O P T I O N S ) , w h e 0067160 r e K E Y i s a n a t o 0067200 m o r a s t r i n g ( e 0067220 q u i v a l e n t ) , P R O M 0067240 P T S T R I N G i s a n a 0067260 t o m o r a s t r i n g , 0067300 a n d O P T I O N S a l 0067320 i s t o f o p t i o n s i 0067340 n p r o p e r t y l i s t 0067360 f o r m a t . T h e o p t 0067400 i o n s a r e e x p l a i n 0067420 e d b e l o w . I f a n 0067440 o p t i o n i s s p e c i 0067460 f i e d i n O P T I O N S , 0067500 t h e v a l u e o f t h 0067520 e o p t i o n i s t h e 0067540 n e x t e l e m e n t . O 0067560 t h e r w i s e , i f t h e 0067600 o p t i o n i s s p e c i 0067620 f i e d i n t h e O P T I 0067640 O N S L S T a r g u m e n t 0067660 t o A S K U S E R , i t s 0067700 v a l u e i s t h e n e x 0067720 t e l e m e n t o n O P T 0067740 I O N S L S T . T h u s , 0067760 O P T I O N S L S T c a n b 0070000 e u s e d t o p r o v i d 0070020 e d e f a u l t o p t i o n 0070040 s f o r a n e n t i r e 0070060 K E Y L S T , r a t h e r t 0070100 h a n h a v i n g t o i n 0070120 c l u d e t h e o p t i o n 0070140 a t e a c h l e v e l . 0070160 I f a n o p t i o n d o e 0070200 s n o t a p p e a r o n 0070220 e i t h e r O P T I O N S o 0070240 r O P T I O N S L S T , i t 0070260 s v a l u e i s N I L . \r 0070300 F o r c o n v e n i e n c e , 0070320 a n e n t r y o n K E Y 0070340 L S T o f t h e f o r m 0070360 ( K E Y . A T O M / S T R I 0070400 N G ) , c a n b e u s e d 0070420 a s a n a b b r e v i a t 0070440 i o n f o r ( K E Y A T O 0070460 M / S T R I N G C O N F I R M 0070500 F L G T ) , a n d a n e 0070520 n t r y o f j u s t t h e 0070540 f o r m K E Y , i . e . , 0070560 a n o n - l i s t , a s 0070600 a n a b b r e v i a t i o n 0070620 f o r ( K E Y N I L C O N 0070640 F I R M F L G T ) . \r A s e 0070660 a c h c h a r a c t e r i s 0070700 r e a d , i t i s m a t 0070720 c h e d a g a i n s t t h e 0070740 c u r r e n t l y a c t i v 0070760 e k e y s . A c h a r a 0071000 c t e r m a t c h e s a k 0071020 e y i f i t i s t h e 0071040 s a m e c h a r a c t e r a 0071060 s t h a t i n t h e c o 0071100 r r e s p o n d i n g p o s i 0071120 t i o n i n t h e k e y , 0071140 o r , i f t h e c h a r 0071160 a c t e r i s a n a l p h 0071200 a b e t i c c h a r a c t e r 0071220 , i f t h e c h a r a c t 0071240 e r s a r e t h e s a m e 0071260 w i t h o u t r e g a r d 0071300 f o r u p p e r / l o w e r 0071320 c a s e d i f f e r e n c e s 0071340 , i . e . " A " m a t c h 0071360 e s " a " a n d v i c e 0071400 v e r s a ( u n l e s s t h 0071420 e N O C A S E F L G o p t i 0071440 o n i s T , s e e p a g 0071460 e X . X X ) . I n o t h 0071500 e r w o r d s , i f t w o 0071520 c h a r a c t e r s h a v e 0071540 a l r e a d y b e e n i n 0071560 p u t a n d m a t c h e d , 0071600 t h e t h i r d c h a r a 0071620 c t e r i s m a t c h e d 0071640 w i t h e a c h a c t i v e 0071660 k e y b y c o m p a r i n 0071700 g i t w i t h t h e t h 0071720 i r d c h a r a c t e r o f 0071740 t h a t k e y . I f t 0071760 h e c h a r a c t e r m a t 0072000 c h e s w i t h o n e o r 0072020 m o r e o f t h e k e y 0072040 s , t h e e n t r i e s o 0072060 n K E Y L S T c o r r e s p 0072100 o n d i n g t o t h e r e 0072120 m a i n i n g k e y s a r e 0072140 d i s c a r d e d . I f 0072160 t h e c h a r a c t e r d o 0072200 e s n o t m a t c h w i t 0072220 h a n y o f t h e k e y 0072240 s , t h e c h a r a c t e r 0072260 i s n o t e c h o e d , 0072300 a n d a b e l l i s r u 0072320 n g i n s t e a d . \r W h e n 0072340 a k e y i s c o m p l e 0072360 t e , P R O M P T S T R I N G 0072400 i s p r i n t e d ( N I L 0072420 i s e q u i v a l e n t t 0072440 o " " , t h e e m p t y 0072460 s t r i n g , i . e . , n o 0072500 t h i n g w i l l b e p r 0072520 i n t e d ) . T h e n , i 0072540 f t h e v a l u e o f t 0072560 h e C O N F I R M F L G o p 0072600 t i o n i s T , A S K U S 0072620 E R w a i t s f o r c o n 0072640 f i r m a t i o n o f t h e 0072660 k e y b y a c a r r i a 0072700 g e r e t u r n o r s p a 0072720 c e . O t h e r w i s e , 0072740 t h e k e y d o e s n o t 0072760 r e q u i r e c o n f i r m 0073000 a t i o n . \r T h e n , i f 0073020 t h e v a l u e o f t h e 0073040 K E Y L S T o p t i o n i 0073060 s n o t N I L , i t s v 0073100 a l u e b e c o m e s t h e 0073120 n e w K E Y L S T , a n d 0073140 t h e p r o c e s s r e c 0073160 u r s e s . O t h e r w i s 0073200 e , t h e k e y i s a 0073220 " l e a f , " i . e . , i t 0073240 t e r m i n a t e s a p a 0073260 r t i c u l a r p a t h t h 0073300 r o u g h t h e o r i g i n 0073320 a l , t o p - l e v e l K E 0073340 Y L S T , a n d A S K U S E 0073360 R r e t u r n s t h e r e 0073400 s u l t o f p a c k i n g 0073420 a l l t h e k e y s t h a 0073440 t h a v e b e e n m a t c 0073460 h e d a n d c o m p l e t e 0073500 d a l o n g t h e w a y 0073520 ( u n l e s s t h e R E T U 0073540 R N o p t i o n i s u s e 0073560 d t o s p e c i f y s o m 0073600 e o t h e r v a l u e , a 0073620 s d e s c r i b e d b e l o 0073640 w ) . \r F o r e x a m p l e , 0073660 w h e n A S K U S E R i s 0073700 c a l l e d w i t h K E Y 0073720 L S T = N I L , t h e f o l 0073740 l o w i n g K E Y L S T i s 0073760 u s e d a s t h e d e f 0074000 a u l t : \r ( ( Y " e s c r " 0074020 ) ( N " o c r " ) ) \r T h i 0074040 s K E Y L S T s p e c i f i 0074060 e s t h a t i f ( a s s 0074100 o o n a s ) t h e u s e r 0074120 t y p e s Y ( o r y ) , 0074140 A S K U S E R e c h o e s 0074160 w i t h Y , p r o m p t s 0074200 w i t h " e s c r " , a n d 0074220 r e t u r n s Y a s i t 0074240 s v a l u e . S i m i l a 0074260 r l y , i f t h e u s e r 0074300 t y p e s N , A S K U S E 0074320 R e c h o e s t h e N , 0074340 p r o m p t s w i t h " o c 0074360 r " , a n d r e t u r n s 0074400 N . I f t h e u s e r 0074420 t y p e s ? , A S K U S E R 0074440 p r i n t s : \r Y e s \r N o \r 0074460 t o i n d i c a t e h i s 0074500 p o s s i b l e r e s p o n s 0074520 e s . A l l o t h e r i 0074540 n p u t s a r e u n a c c e 0074560 p t a b l e , a n d A S K U 0074600 S E R w i l l r i n g t h 0074620 e b e l l a n d n o t e 0074640 c h o o r p r i n t a n y 0074660 t h i n g . \r F o r a m o r 0074700 e c o m p l i c a t e d e x 0074720 a m p l e , t h e f o l l o 0074740 w i n g i s t h e K E Y L 0074760 S T u s e d f o r t h e 0075000 c o m p i l e r q u e s t i o 0075020 n s ( p a g e X . X X ) : \r 0075040 ( ( S T " o r e a n d r e 0075060 d e f i n e " K E Y L S T 0075100 ( " " ( F . " o r g e t 0075120 e x p r s " ) ) \r ( S . " 0075140 a m e a s l a s t t i m e 0075160 " ) \r ( F . " F i l e o 0075200 n l y " ) \r ( T . " o t 0075220 e r m i n a l " ) \r 1 \r 2 \r 0075240 ( Y . " e s " ) \r ( N 0075260 . " o " ) ) \r W h e n A S K 0075300 U S E R i s c a l l e d w 0075320 i t h t h i s K E Y L S T , 0075340 a n d t h e u s e r t y 0075360 p e s a n S , t w o k e 0075400 y s a r e m a t c h e d : 0075420 S T a n d S . T h e u 0075440 s e r c a n t h e n t y p 0075460 e a T , w h i c h m a t 0075500 c h e s o n l y t h e S T 0075520 k e y , o r c o n f i r m 0075540 t h e S k e y b y t y 0075560 p i n g a c r o r s p a 0075600 c e . I f t h e u s e r 0075620 c o n f i r m s t h e S 0075640 k e y , A S K U S E R p r o 0075660 m p t s w i t h " a m e a 0075700 s l a s t t i m e " , a n 0075720 d r e t u r n s S a s i 0075740 t s v a l u e . ( N o t e 0075760 t h a t t h e c o n f i r 0076000 m i n g c h a r a c t e r i 0076020 s n o t i n c l u d e d i 0076040 n t h e v a l u e . ) I 0076060 f t h e u s e r t y p e s 0076100 a T , A S K U S E R p r 0076120 o m p t s w i t h " o r e 0076140 a n d r e d e f i n e " , a 0076160 n d m a k e s ( " " ( F 0076200 . " o r g e t e x p r s " ) 0076220 ) b e t h e n e w K E Y 0076240 L S T , a n d w a i t s f 0076260 o r m o r e i n p u t . 0076300 T h e u s e r c a n t h e 0076320 n t y p e a n F , o r 0076340 c o n f i r m t h e " " ( 0076360 w h i c h e s s e n t i a l l 0076400 y s t a r t s o u t w i t 0076420 h a l l o f i t s c h a 0076440 r a c t e r s m a t c h e d ) 0076460 . I f h e c o n f i r m 0076500 s t h e " " , A S K U S E 0076520 R r e t u r n s S T a s 0076540 i t s v a l u e t h e r e 0076560 s u l t o f p a c k i n g 0076600 S T a n d " " . I f h 0076620 e t y p e s F , A S K U S 0076640 E R p r o m p t s w i t h 0076660 " o r g e t e x p r s " , a 0076700 n d w a i t s f o r c o n 0076720 f i r m a t i o n a g a i n . 0076740 I f t h e u s e r t h e 0076760 n c o n f i r m s , A S K U 0077000 S E R r e t u r n s S T F , 0077020 t h e r e s u l t o f p 0077040 a c k i n g S T a n d F . 0077060 \r A t a n y p o i n t t h 0077100 e u s e r c a n t y p e 0077120 a ? a n d b e p r o m p 0077140 t e d w i t h t h e p o s 0077160 s i b l e r e s p o n s e s . 0077200 F o r e x a m p l e , i 0077220 f t h e u s e r t y p e s 0077240 S a n d t h e n ? , A 0077260 S K U S E R w i l l t y p e 0077300 : \r S T o r e a n d r e d e 0077320 f i n e F o r g e t e x p r 0077340 s \r S T o r e a n d r e d e 0077360 f i n e \r S a m e a s l a s 0077400 t t i m e \r 2 7 . 3 . 2 \t 0077420 O p t i o n s \r \r \t K E Y L S T 0077440 \t W h e n a k e y i s c 0077460 o m p l e t e , i f t h e 0077500 v a l u e o f t h e K E Y 0077520 L S T o p t i o n i s n o 0077540 t N I L , t h i s v a l u 0077560 e b e c o m e s t h e n e 0077600 w K E Y L S T a n d t h e 0077620 p r o c e s s r e c u r s e 0077640 s . O t h e r w i s e , t h 0077660 e k e y t e r m i n a t e s 0077700 a p a t h t h r o u g h 0077720 t h e o r i g i n a l , t o 0077740 p - l e v e l K E Y L S T , 0077760 a n d A S K U S E R r e t u 0100000 r n s t h e i n d i c a t e 0100020 d v a l u e . \r \t C O N F I R 0100040 M F L G \t I f T , t h e k 0100060 e y m u s t b e c o n f i 0100100 r m e d w i t h e i t h e r 0100120 a c a r r i a g e r e t u 0100140 r n o r a s p a c e . 0100160 I f t h e v a l u e o f 0100200 C O N F I R M F L G i s a 0100220 l i s t , t h e c o n f i r 0100240 m i n g c h a r a c t e r m 0100260 a y b e a n y m e m b e r 0100300 o f t h e l i s t . \r \t P 0100320 R O M P T C O N F I R M F L G \t 0100340 I f T , w h e n e v e r c 0100360 o n f i r m a t i o n i s r 0100400 e q u i r e d , t h e u s e 0100420 r i s p r o m p t e d w i 0100440 t h t h e s t r i n g " 0100460 [ c o n f i r m ] " . \r \t N O 0100500 C A S E F L G \t I f T , s a 0100520 y s d o n o t p e r f o r 0100540 m c a s e i n d e p e n d e 0100560 n t m a t c h i n g o n a 0100600 l p h a b e t i c c h a r a c 0100620 t e r s . I f N I L , d 0100640 o p e r f o r m c a s e i 0100660 n d e p e n d e n t m a t c h 0100700 i n g , i . e . " A " m a 0100720 t c h e s w i t h " a " a 0100740 n d v i c e v e r s a . \r \t 0100760 R E T U R N \t I f n o n - N I 0101000 L , E V A L o f t h e v 0101020 a l u e o f t h e R E T U 0101040 R N o p t i o n i s r e t 0101060 u r n e d a s t h e v a l 0101100 u e o f A S K U S E R . 0101120 N o t e t h a t d i f f e r 0101140 e n t R E T U R N o p t i o 0101160 n s c a n b e s p e c i f 0101200 i e d f o r d i f f e r e n 0101220 t k e y s . T h e v a r 0101240 i a b l e A N S W E R i s 0101260 b o u n d i n A S K U S E R 0101300 t o t h e l i s t o f 0101320 k e y s t h a t h a v e b 0101340 e e n m a t c h e d . I n 0101360 o t h e r w o r d s , R E 0101400 T U R N ( P A C K A N S W E 0101420 R ) w o u l d b e e q u i 0101440 v a l e n t t o w h a t A 0101460 S K U S E R n o r m a l l y 0101500 d o e s . \r \t N O E C H O F L G 0101520 \t I f n o n - N I L , c h a 0101540 r a c t e r s t h a t a r e 0101560 m a t c h e d ( o r a u t 0101600 o m a t i c a l l y s u p p l 0101620 i e d a s a r e s u l t 0101640 o f t y p i n g $ o r c 0101660 o n f i r m i n g ) a r e n 0101700 o t e c h o e d , n o r i 0101720 s t h e c o n f i r m i n g 0101740 c h a r a c t e r , i f a 0101760 n y . T h e v a l u e o 0102000 f N O E C H O F L G i s a 0102020 u t o m a t i c a l l y N I L 0102040 w h e n A S K U S E R i s 0102060 r e a d i n g f r o m a 0102100 f i l e o r s t r i n g . 0102120 T h e d e c i s i o n a b 0102140 o u t w h e t h e r o r n 0102160 o t t o e c h o a c h a 0102200 r a c t e r t h a t m a t c 0102220 h e s s e v e r a l k e y s 0102240 i s d e t e r m i n e d b 0102260 y t h e v a l u e o f t 0102300 h e N O E C H O F L G o p t 0102320 i o n f o r t h e f i r s 0102340 t k e y . \r \t E X P L A I N S 0102360 T R I N G \t I f t h e v a l 0102400 u e o f t h e E X P L A I 0102420 N S T R I N G o p t i o n i 0102440 s n o n - N I L , i t s v 0102460 a l u e i s p r i n t e d 0102500 w h e n t h e u s e r t y 0102520 p e s a ? , r a t h e r 0102540 t h a n K E Y + P R O M P 0102560 T S T R I N G . E X P L A I 0102600 N S T R I N G e n a b l e s 0102620 m o r e e l a b o r a t e 0102640 e x p l a n a t i o n s i n 0102660 r e s p o n s e t o a ? 0102700 t h a n w h a t t h e u s 0102720 e r s e e s w h e n h e 0102740 i s p r o m p t e d a s a 0102760 r e s u l t o f s i m p l 0103000 y c o m p l e t i n g k e y 0103020 s . \r F o r e x a m p l e : 0103040 O n e o f t h e e n t r 0103060 i e s o n t h e K E Y L S 0103100 T u s e d b y A D D T O F 0103120 I L E S ? ( p a g e X . X X 0103140 ) i s : \r ( ] " N o w h e r 0103160 e c r " N O E C H O F L G T 0103200 \r E X P L A I N S T R I N 0103220 G " ] - n o w h e r e , 0103240 i t e m i s m a r k e d a 0103260 s a d u m m y c r " ) \r W h 0103300 e n t h e u s e r t y p e 0103320 s ] , A S K U S E R j u s 0103340 t p r i n t s " N o w h e r 0103360 e c r " , i . e . , t h e 0103400 ] i s n o t e c h o e d . 0103420 I f t h e u s e r t y 0103440 p e s ? , t h e e x p l a 0103460 n a t i o n c o r r e s p o n 0103500 d i n g t o t h i s e n t 0103520 r y w i l l b e : \r ] - 0103540 n o w h e r e , i t e m i s 0103560 m a r k e d a s a d u m 0103600 m y \r \t K E Y S T R I N G \t I f 0103620 n o n - N I L , c h a r a c 0103640 t e r s t h a t a r e m a 0103660 t c h e d a r e e c h o e d 0103700 a s t h o u g h t h e v 0103720 a l u e o f K E Y S T R I N 0103740 G w e r e u s e d i n p 0103760 l a c e o f t h e k e y . 0104000 K E Y S T R I N G i s a l 0104020 s o u s e d f o r c o m p 0104040 u t i n g t h e v a l u e 0104060 r e t u r n e d . T h e m a 0104100 i n r e a s o n f o r t h 0104120 i s f e a t u r e i s t o 0104140 e n a b l e e c h o i n g 0104160 i n l o w e r c a s e . \r \t P 0104200 R O M P T O N \t I f n o n - N 0104220 I L , P R O M P T S T R I N G 0104240 i s p r i n t e d o n l y 0104260 w h e n t h e k e y i s 0104300 c o n f i r m e d w i t h 0104320 a m e m b e r o f t h e 0104340 v a l u e o f P R O M P T O 0104360 N . \r \t C O M P L E T E O N \t W 0104400 h e n a c o n f i r m i n g 0104420 c h a r a c t e r i s t y 0104440 p e d , t h e N c h a r a 0104460 c t e r s t h a t a r e a 0104500 u t o m a t i c a l l y s u p 0104520 p l i e d , a s s p e c i f 0104540 i e d i n c a s e ( 4 ) , 0104560 a r e e c h o e d o n l y 0104600 w h e n t h e k e y i s 0104620 c o n f i r m e d w i t h 0104640 a m e m b e r o f t h e 0104660 v a l u e o f P R O M P T O 0104700 N . \r T h e P R O M P T O N 0104720 a n d C O M P L E T E O N o 0104740 p t i o n s e n a b l e t h 0104760 e u s e r t o c o n s t r 0105000 u c t a K E Y L S T w h i 0105020 c h w i l l c a u s e A S 0105040 K U S E R t o e m u l a t e 0105060 t h e a c t i o n o f t 0105100 h e T E N E X e x e c . 0105120 T h e p r o t o c o l f o l 0105140 l o w e d b y t h e T E N 0105160 E X e x e c i s t h a t 0105200 t h e u s e r c a n t y p 0105220 e a s m a n y c h a r a c 0105240 t e r s a s h e l i k e s 0105260 i n s p e c i f y i n g a 0105300 c o m m a n d . T h e c 0105320 o m m a n d c a n b e c o 0105340 m p l e t e d w i t h a c 0105360 a r r i a g e r e t u r n o 0105400 r s p a c e , i n w h i c 0105420 h c a s e n o f u r t h e 0105440 r o u t p u t i s f o r t 0105460 h c o m i n g , o r w i t h 0105500 a $ ( e s c a p e ) , i 0105520 n w h i c h c a s e t h e 0105540 r e s t o f t h e c h a 0105560 r a c t e r s i n t h e c 0105600 o m m a n d a r e e c h o e 0105620 d , f o l l o w e d b y s 0105640 o m e p r o m p t i n g i n 0105660 f o r m a t i o n . T h e 0105700 f o l l o w i n g K E Y L S T 0105720 w o u l d h a n d l e t h 0105740 e T E N E X C O P Y a n d 0105760 C O N N E C T c o m a n d s 0106000 : \r ( ( C O P Y " ( F I L E 0106020 L I S T ) " \r \t \t P R O M P 0106040 T O N ( $ ) \r \t \t C O M P L E 0106060 T E O N ( $ ) \r \t \t C O N F I 0106100 R M F L G ( $ ) ) \r ( C O N 0106120 N E C T " ( T O D I R E C 0106140 T O R Y ) " \r \t \t P R O M P T 0106160 O N ( $ ) \r \t \t C O M P L E T 0106200 E O N ( $ ) \r \t \t C O N F I R 0106220 M F L G ( $ ) ) ) \r \t A U T O 0106240 C O M P L E T E F L G \t I f t 0106260 h e v a l u e o f t h e 0106300 A U T O C O M P L E T E F L G 0106320 o p t i o n i s n o t N I 0106340 L , A S K U S E R w i l l 0106360 a u t o m a t i c a l l y s u 0106400 p p l y u n a m b i g u o u s 0106420 c h a r a c t e r s w h e n 0106440 e v e r i t c a n , i . e 0106460 . , A S K U S E R a c t s 0106500 a s t h o u g h $ w e r e 0106520 t y p e d a f t e r e a c 0106540 h c h a r a c t e r ( e x c 0106560 e p t t h a t i t d o e s 0106600 n o t r i n g t h e b e 0106620 l l i f t h e r e a r e 0106640 n o u n a m b i g u o u s c 0106660 h a r a c t e r s ) . \r \t M A C 0106700 R O C H A R S \t v a l u e i s 0106720 a l i s t o f d o t t e 0106740 d p a i r s o f f o r m 0106760 ( C H A R A C T E R . F O R 0107000 M ) . W h e n C H A R A C 0107020 T E R i s t y p e d , a n 0107040 d i t d o e s n o t m a 0107060 t c h a n y o f t h e c 0107100 u r r e n t k e y s , F O R 0107120 M i s e v a l u a t e d a 0107140 n d n o t h i n g e l s e 0107160 h a p p e n s , i . e . t h 0107200 e m a t c h i n g p r o c e 0107220 s s s t a y s w h e r e i 0107240 t i s . F o r e x a m p 0107260 l e , ? c o u l d h a v e 0107300 b e e n i m p l e m e n t e 0107320 d u s i n g t h i s o p t 0107340 i o n . E s s e n t i a l l 0107360 y M A C R O C H A R S p r o 0107400 v i d e s a r e a d m a c 0107420 r o f a c i l i t y w h i l 0107440 e i n s i d e o f A S K U 0107460 S E R ( s i n c e A S K U S 0107500 E R d o e s R E A D C ' s , 0107520 r e a d m a c r o s d e f 0107540 i n e d v i a t h e r e a 0107560 d t a b l e a r e n e v e r 0107600 i n v o k e d ) . \r \t E X P L 0107620 A I N D E L I M I T E R \t v a l 0107640 u e i s w h a t i s p r 0107660 i n t e d t o d e l i m i t 0107700 e x p l a n a t i o n i n 0107720 r e s p o n s e t o ? . I 0107740 n i t i a l l y a c a r r i 0107760 a g e r e t u r n , b u t 0110000 c a n b e r e s e t , e . 0110020 g . t o a c o m m a , f 0110040 o r m o r e l i n e a r o 0110060 u t p u t . \r 2 7 . 3 . 3 0110100 \t O p e r a t i o n \r \r A l l 0110120 i n p u t o p e r a t i o n s 0110140 a r e e x e c u t e d w i 0110160 t h t h e t e r m i n a l 0110200 t a b l e i n t h e v a r 0110220 i a b l e A S K U S E R T T B 0110240 L , i n w h i c h ( 1 ) 0110260 ( C O N T R O L T ) h a s 0110300 b e e n e x e c u t e d ( s 0110320 e e p a g e X . X X ) , s 0110340 o t h a t A S K U S E R c 0110360 a n i n t e r a c t w i t h 0110400 t h e u s e r a f t e r 0110420 e a c h c h a r a c t e r i 0110440 s t y p e d ; a n d ( 2 ) 0110460 ( E C H O M O D E N I L ) 0110500 h a s b e e n e x e c u t e 0110520 d ( s e e p a g e X . X X 0110540 ) , s o t h a t A S K U S 0110560 E R c a n d e c i d e a f 0110600 t e r i t r e a d s a c 0110620 h a r a c t e r w h e t h e r 0110640 o r n o t t h e c h a r 0110660 a c t e r s h o u l d b e 0110700 e c h o e d , a n d w i t h 0110720 w h a t , e . g . u n a c 0110740 c e p t a b l e i n p u t s 0110760 a r e n e v e r e c h o e d 0111000 . \r A s e a c h c h a r a c 0111020 t e r i s t y p e d , i t 0111040 i s m a t c h e d a g a i 0111060 n s t K E Y L S T , a n d 0111100 a p p r o p r i a t e e c h o 0111120 i n g a n d / o r p r o m p 0111140 t i n g i s p e r f o r m e 0111160 d . I f t h e u s e r 0111200 t y p e s a n u n a c c e p 0111220 t a b l e c h a r a c t e r , 0111240 A S K U S E R s i m p l y 0111260 r i n g s t h e b e l l a 0111300 n d a l l o w s h i m t o 0111320 t r y a g a i n . \r A t a 0111340 n y p o i n t , t h e u s 0111360 e r c a n t y p e ? a n 0111400 d r e c e i v e a l i s t 0111420 o f a c c e p t a b l e r 0111440 e s p o n s e s a t t h a t 0111460 p o i n t ( g e n e r a t e 0111500 d f r o m K E Y L S T ) , 0111520 o r t y p e a c o n t r o 0111540 l - A , c o n t r o l - Q , 0111560 c o n t r o l - X , o r d e 0111600 l e t e , w h i c h c a u s 0111620 e s A S K U S E R t o r e 0111640 i n i t i a l i z e , a n d 0111660 s t a r t o v e r . \r N o t e 0111700 t h a t ? , C o n t r o l 0111720 - A , C o n t r o l - Q , a 0111740 n d C o n t r o l - X w i l 0111760 l n o t w o r k i f t h 0112000 e y a r e a c c e p t a b l 0112020 e i n p u t s , i . e . , 0112040 t h e y m a t c h o n e o 0112060 f t h e k e y s o n K E 0112100 Y L S T . D e l e t e w i 0112120 l l n o t w o r k i f i 0112140 t i s a n i n t e r r u p 0112160 t c h a r a c t e r , i n 0112200 w h i c h c a s e i t i s 0112220 n o t s e e n b y A S K 0112240 U S E R . \r W h e n a n a c 0112260 c e p t a b l e s e q u e n c 0112300 e i s c o m p l e t e d , 0112320 A S K U S E R r e t u r n s 0112340 t h e i n d i c a t e d v a 0112360 l u e . \r 2 7 . 3 . 4 \t C o 0112400 m p l e t i n g a K e y \r \r 0112420 T h e d e c i s i o n a b o 0112440 u t w h e n a k e y i s 0112460 c o m p l e t e i s m o r 0112500 e c o m p l i c a t e d t h 0112520 a n s i m p l y w h e t h e 0112540 r o r n o t a l l o f 0112560 i t s c h a r a c t e r s h 0112600 a v e b e e n m a t c h e d 0112620 . I n t h e c o m p i l 0112640 e r q u e s t i o n s e x a 0112660 m p l e a b o v e , a l l 0112700 o f t h e c h a r a c t e r 0112720 s i n t h e S k e y a 0112740 r e m a t c h e d a s s o 0112760 o n a s t h e S h a s 0113000 b e e n t y p e d , b u t 0113020 u n t i l t h e n e x t c 0113040 h a r a c t e r i s t y p e 0113060 d , A S K U S E R d o e s 0113100 n o t k n o w w h e t h e r 0113120 t h e S c o m p l e t e s 0113140 t h e S k e y , o r i 0113160 s s i m p l y t h e f i r 0113200 s t c h a r a c t e r i n 0113220 t h e S T k e y . T h e 0113240 r e f o r e , a k e y i s 0113260 c o n s i d e r e d t o b 0113300 e c o m p l e t e w h e n : 0113320 \r \t ( 1 ) \t A l l o f i t s 0113340 c h a r a c t e r s h a v e 0113360 b e e n m a t c h e d a n 0113400 d i t i s t h e o n l y 0113420 k e y l e f t , i . e . , 0113440 t h e r e a r e n o o t 0113460 h e r k e y s f o r w h i 0113500 c h t h i s k e y i s a 0113520 s u b s t r i n g . \r \t ( 2 ) 0113540 \t A l l o f i t s c h a r 0113560 a c t e r s h a v e b e e n 0113600 m a t c h e d a n d a c 0113620 o n f i r m i n g c h a r a c 0113640 t e r i s t y p e d . \r \t ( 0113660 3 ) \t A l l o f i t s c h 0113700 a r a c t e r s h a v e b e 0113720 e n m a t c h e d , a n d 0113740 t h e v a l u e o f t h e 0113760 C O N F I R M F L G o p t i 0114000 o n i s N I L , a n d t 0114020 h e v a l u e o f t h e 0114040 K E Y L S T o p t i o n i s 0114060 n o t N I L , a n d t h 0114100 e n e x t c h a r a c t e r 0114120 m a t c h e s o n e o f 0114140 t h e k e y s o n t h e 0114160 v a l u e o f t h e K E Y 0114200 L S T o p t i o n . \r \t ( 4 ) 0114220 \t T h e r e i s o n l y o 0114240 n e k e y l e f t a n d 0114260 a c o n f i r m i n g c h a 0114300 r a c t e r i s t y p e d . 0114320 N o t e t h a t i f t 0114340 h e v a l u e o f C O N F 0114360 I R M F L G i s T , t h e 0114400 k e y s t i l l h a s t 0114420 o b e c o n f i r m e d , 0114440 r e g a r d l e s s o f w h 0114460 e t h e r o r n o t i t 0114500 i s c o m p l e t e . F o 0114520 r e x a m p l e , i f t h 0114540 e f i r s t e n t r y i n 0114560 t h e a b o v e e x a m p 0114600 l e w e r e i n s t e a d 0114620 \r ( S T " o r e a n d r e 0114640 d e f i n e " C O N F I R M 0114660 F L G T K E Y L S T ( " " 0114700 ( F . " o r g e t e x p 0114720 r s " ) ) \r a n d t h e u s 0114740 e r w a n t e d t o s p e 0114760 c i f y t h e S T F p a t 0115000 h , h e w o u l d h a v e 0115020 t o t y p e S T , t h e 0115040 n c o n f i r m b e f o r e 0115060 t y p i n g F , e v e n 0115100 t h o u g h t h e S T c 0115120 o m p l e t e d t h e S T 0115140 k e y b y t h e r u l e 0115160 i n c a s e ( 1 ) . H o 0115200 w e v e r , h e w o u l d 0115220 b e p r o m p t e d w i t h 0115240 " o r e a n d r e d e f 0115260 i n e " a s s o o n a s 0115300 h e t y p e d t h e T , 0115320 a n d c o m p l e t e d t h 0115340 e S T k e y . \r C a s e ( 0115360 2 ) s a y s t h a t c o n 0115400 f i r m a t i o n c a n b e 0115420 u s e d t o c o m p l e t 0115440 e a k e y i n t h e c 0115460 a s e w h e r e i t i s 0115500 a s u b s t r i n g o f a 0115520 n o t h e r k e y , e v e n 0115540 w h e r e t h e v a l u e 0115560 o f C O N F I R M F L G i 0115600 s N I L . I n t h i s 0115620 c a s e , t h e c o n f i r 0115640 m i n g c h a r a c t e r d 0115660 o u b l e s a s b o t h a 0115700 n i n d i c a t o r t h a t 0115720 t h e k e y i s c o m p 0115740 l e t e , a n d a l s o t 0115760 o c o n f i r m i t , i f 0116000 n e c e s s a r y . T h i 0116020 s s i t u a t i o n c o r r 0116040 e s p o n d s t o t y p i n 0116060 g S c r i n t h e a b o 0116100 v e e x a m p l e . \r C a s e 0116120 ( 3 ) s a y s t h a t i 0116140 f t h e r e w e r e a n o 0116160 t h e r e n t r y w h o s e 0116200 k e y w a s S T X i n 0116220 t h e a b o v e e x a m p l 0116240 e , s o t h a t a f t e r 0116260 t h e u s e r t y p e d 0116300 S T , t w o k e y s , S T 0116320 a n d S T X , w e r e s 0116340 t i l l a c t i v e , t h e 0116360 n t y p i n g F w o u l d 0116400 c o m p l e t e t h e S T 0116420 k e y , b e c a u s e F 0116440 m a t c h e s t h e ( F . 0116460 " o r g e t e x p r s " ) 0116500 e n t r y o n t h e v a l 0116520 u e o f t h e K E Y L S T 0116540 o p t i o n o f t h e S 0116560 T e n t r y . I n t h i 0116600 s c a s e , " o r e a n d 0116620 r e d e f i n e " w o u l d 0116640 b e p r i n t e d b e f o 0116660 r e t h e F w a s e c h 0116700 o e d . \r F i n a l l y , c a 0116720 s e ( 4 ) s a y s t h a t 0116740 t h e u s e r c a n u s 0116760 e c o n f i r m a t i o n t 0117000 o s p e c i f y c o m p l e 0117020 t i o n w h e n o n l y o 0117040 n e k e y i s l e f t , 0117060 e v e n w h e n a l l o f 0117100 i t s c h a r a c t e r s 0117120 h a v e n o t b e e n m a 0117140 t c h e d . F o r e x a m 0117160 p l e , i f t h e f i r s 0117200 t k e y i n t h e a b o 0117220 v e e x a m p l e w e r e 0117240 S T O R E , t h e u s e r 0117260 c o u l d t y p e S T a n 0117300 d t h e n c o n f i r m , 0117320 a n d O R E w o u l d b e 0117340 e c h o e d , f o l l o w e 0117360 d b y w h a t e v e r p r 0117400 o m p t i n g w a s s p e c 0117420 i f i e d . I n t h i s 0117440 c a s e , t h e c o n f i r 0117460 m i n g c h a r a c t e r a 0117500 l s o c o n f i r m s t h e 0117520 k e y i f n e c e s s a r 0117540 y , s o t h a t n o f u 0117560 r t h e r a c t i o n i s 0117600 r e q u i r e d , e v e n w 0117620 h e n t h e v a l u e o f 0117640 C O N F I R M F L G i s T 0117660 . \r C a s e ( 4 ) p e r m i 0117700 t s t h e u s e r n o t 0117720 t o h a v e t o t y p e 0117740 e v e r y c h a r a c t e r 0117760 i n a k e y w h e n t h 0120000 e k e y i s t h e o n l 0120020 y o n e l e f t . E v e 0120040 n w h e n t h e r e a r e 0120060 s e v e r a l a c t i v e 0120100 k e y s , t h e u s e r c 0120120 a n t y p e t y p e $ ( 0120140 t h e E S C k e y , o r 0120160 o n s o m e t e r m i n a l 0120200 s , t h e k e y l a b e l 0120220 l e d A L T ) t o s p e c 0120240 i f y t h e n e x t N > 0 0120260 c o m m o n c h a r a c t e 0120300 r s a m o n g t h e c u r 0120320 r e n t l y a c t i v e k e 0120340 y s . T h e e f f e c t 0120360 i s e x a c t l y t h e s 0120400 a m e a s t h o u g h t h 0120420 e s e c h a r a c t e r s h 0120440 a d b e e n t y p e d . 0120460 I f t h e r e a r e n o 0120500 c o m m o n c h a r a c t e r 0120520 s i n t h e a c t i v e 0120540 k e y s a t t h a t p o i 0120560 n t , i . e . N = 0 , t 0120600 h e $ i s t r e a t e d 0120620 a s a n i n c o r r e c t 0120640 i n p u t , a n d t h e b 0120660 e l l i s r u n g . F o 0120700 r e x a m p l e , i f K E 0120720 Y L S T i s ( C L I S P F L 0120740 G C L I S P I F Y P A C K F L 0120760 G C L I S P I F T R A N F L G 0121000 ) , a n d t h e u s e r 0121020 t y p e s C f o l l o w e d 0121040 b y $ , A S K U S E R w 0121060 i l l s u p p l y t h e L 0121100 , I , S , a n d P . 0121120 T h e u s e r c a n t h e 0121140 n t y p e F f o l l o w e 0121160 d b y a c a r r i a g e 0121200 r e t u r n o r s p a c e 0121220 t o c o m p l e t e a n d 0121240 c o n f i r m C L I S P F L G 0121260 , a s p e r c a s e ( 4 0121300 ) , o r t y p e I , f o 0121320 l l o w e d b y $ , a n d 0121340 A S K U S E R w i l l s u 0121360 p p l y t h e F , e t c . 0121400 N o t e t h a t t h e 0121420 c h a r a c t e r s s u p p l 0121440 i e d d o n o t h a v e 0121460 t o c o r r e s p o n d t o 0121500 a t e r m i n a l s e g m 0121520 e n t o f a n y o f t h 0121540 e k e y s . N o t e a l 0121560 s o t h a t t h e $ d o 0121600 e s n o t c o n f i r m t 0121620 h e k e y , a l t h o u g h 0121640 i t m a y c o m p l e t e 0121660 i t i n t h e c a s e 0121700 t h a t t h e r e i s o n 0121720 l y o n e k e y a c t i v 0121740 e . \r I f t h e u s e r t 0121760 y p e s a c o n f i r m i n 0122000 g c h a r a c t e r w h e n 0122020 s e v e r a l k e y s a r 0122040 e l e f t , t h e n e x t 0122060 N > 0 c o m m o n c h a r 0122100 a c t e r s a r e s t i l l 0122120 s u p p l i e d , t h e s 0122140 a m e a s w i t h $ . 0122160 H o w e v e r , A S K U S E R 0122200 a s s u m e s t h e i n t 0122220 e n t w a s t o c o m p l 0122240 e t e a k e y , i . e . , 0122260 c a s e ( 4 ) i s b e i 0122300 n g i n v o k e d . T h e 0122320 r e f o r e , a f t e r s u 0122340 p p l y i n g t h e n e x t 0122360 N c h a r a c t e r s , t 0122400 h e b e l l i s r u n g 0122420 t o i n d i c a t e t h a t 0122440 t h e o p e r a t i o n w 0122460 a s n o t c o m p l e t e 0122500 d . I n o t h e r w o r d 0122520 s , t y p i n g a c o n f 0122540 i r m i n g c h a r a c t e r 0122560 h a s t h e s a m e e f 0122600 f e c t a s t y p i n g a 0122620 n $ i n t h a t t h e 0122640 n e x t N c o m m o n c h 0122660 a r a c t e r s a r e s u p 0122700 p l i e d . T h e n , i f 0122720 t h e r e i s o n l y o 0122740 n e k e y l e f t , t h e 0122760 k e y i s c o m p l e t e 0123000 ( c a s e 4 ) a n d c o 0123020 n f i r m a t i o n i s n o 0123040 t r e q u i r e d . I f 0123060 t h e k e y i s n o t t 0123100 h e o n l y k e y l e f t 0123120 , t h e b e l l i s r u 0123140 n g . \r 2 7 . 3 . 5 \t S p e 0123160 c i a l K e y s \r \r \t & \t T h 0123200 i s c a n b e u s e d a 0123220 s a k e y t o m a t c h 0123240 w i t h a n y s i n g l e 0123260 c h a r a c t e r , p r o v 0123300 i d e d t h e c h a r a c t 0123320 e r d o e s n o t m a t c 0123340 h w i t h s o m e o t h e 0123360 r k e y a t t h a t l e 0123400 v e l . F o r t h e p u r 0123420 p o s e s o f e c h o i n g 0123440 a n d r e t u r n i n g a 0123460 v a l u e , t h e e f f e 0123500 c t i s t h e s a m e a 0123520 s t h o u g h t h e c h a 0123540 r a c t e r t h a t w e r e 0123560 m a t c h e d a c t u a l l 0123600 y a p p e a r e d a s t h 0123620 e k e y . \r \t $ ( e s c ) \t 0123640 T h i s c a n b e u s e d 0123660 a s a k e y t o m a t 0123700 c h w i t h t h e r e s u 0123720 l t o f a s i n g l e c 0123740 a l l t o R E A D . F o 0123760 r e x a m p l e , i f t h 0124000 e K E Y L S T w e r e : \r ( 0124020 ( C O P Y " ( F I L E L I 0124040 S T ) " \r \t \t P R O M P T O N 0124060 ( $ ) \r \t \t C O M P L E T E O 0124100 N ( $ ) \r \t \t C O N F I R M F 0124120 L G ( $ ) \r \t \t K E Y L S T 0124140 ( ( $ N I L R E T U R N A 0124160 N S W E R ) ) ) ) \r t h e n i 0124200 f t h e u s e r t y p e d 0124220 C O P F O O c r , ( C O P 0124240 Y F O O ) w o u l d b e 0124260 r e t u r n e d a s t h e 0124300 v a l u e o f A S K U S E R 0124320 . O n e a d v a n t a g e 0124340 o f u s i n g $ , r a t 0124360 h e r t h a n h a v i n g 0124400 t h e c a l l i n g p r o g 0124420 r a m p e r f o r m t h e 0124440 R E A D , i s t h a t t h 0124460 e c a l l t o R E A D f 0124500 r o m i n s i d e A S K U S 0124520 E R i s E R R O R S E T p 0124540 r o t e c t e d , s o t h a 0124560 t t h e u s e r c a n b 0124600 a c k o u t o f t h i s 0124620 p a t h a n d r e i n i t i 0124640 a l i z e A S K U S E R , e 0124660 . g . t o c h a n g e f r 0124700 o m a C O P Y c o m m a n 0124720 d t o a C O N N E C T c 0124740 o m m a n d , s i m p l y b 0124760 y t y p i n g c o n t r o l 0125000 - E . \r \t $ $ \t T h i s c a n 0125020 b e u s e d a s a k e 0125040 y t o m a t c h w i t h 0125060 t h e r e s u l t o f a 0125100 s i n g l e c a l l t o R 0125120 E A D L I N E . \r \t A l i s t 0125140 \t A l i s t c a n b e u 0125160 s e d a s a k e y , i n 0125200 w h i c h c a s e t h e 0125220 l i s t / f o r m i s e v a 0125240 l u a t e d a n d i t s v 0125260 a l u e " m a t c h e s " t 0125300 h e k e y . T h i s f e 0125320 a t u r e i s p r o v i d e 0125340 d p r i m a r i l y a s a 0125360 n e s c a p e h a t c h f 0125400 o r i n c l u d i n g a r b 0125420 i t r a r y i n p u t o p e 0125440 r a t i o n s a s p a r t 0125460 o f a n A S K U S E R s e 0125500 q u e n c e . F o r e x a 0125520 m p l e , t h e e f f e c t 0125540 o f $ $ c o u l d b e 0125560 a c h i e v e d s i m p l y 0125600 b y u s i n g ( R E A D L I 0125620 N E T ) a s a k e y . \r 0125640 \t " " \t T h e e m p t y s t 0125660 r i n g c a n b e u s e d 0125700 a s a k e y . S i n c 0125720 e i t h a s n o c h a r 0125740 a c t e r s , a l l o f i 0125760 t s c h a r a c t e r s a r 0126000 e a u t o m a t i c a l l y 0126020 m a t c h e d . " " e s 0126040 s e n t i a l l y f u n c t i 0126060 o n s a s a p l a c e m 0126100 a r k e r . F o r e x a m 0126120 p l e , o n e o f t h e 0126140 e n t r i e s o n t h e K 0126160 E Y L S T u s e d b y A D 0126200 D T O F I L E S ? i s : \r ( " 0126220 " " F i l e / l i s t : " 0126240 \r \t E X P L A I N S T R I N G 0126260 " a f i l e n a m e o r 0126300 n a m e o f a f u n c t i 0126320 o n l i s t " \r \t K E Y L S T 0126340 ( $ ) ) \r T h u s , i f t 0126360 h e u s e r t y p e s a 0126400 c h a r a c t e r t h a t d 0126420 o e s n o t m a t c h a n 0126440 y o f t h e o t h e r k 0126460 e y s o n t h e K E Y L S 0126500 T , t h e n t h e c h a r 0126520 a c t e r c o m p l e t e s 0126540 t h e " " k e y , b y v 0126560 i r t u e o f c a s e ( 4 0126600 ) , s i n c e t h e c h a 0126620 r a c t e r w i l l m a t c 0126640 h w i t h t h e $ i n 0126660 t h e i n n e r K E Y L S T 0126700 . A S K U S E R t h e n 0126720 p r i n t s " F i l e / l i s 0126740 t : " b e f o r e e c h 0126760 o i n g t h e c h a r a c t 0127000 e r , t h e n c a l l s R 0127020 E A D . T h e c h a r a c 0127040 t e r w i l l b e r e a d 0127060 a s p a r t o f t h e 0127100 R E A D . T h e v a l u e 0127120 r e t u r n e d b y A S K 0127140 U S E R w i l l b e t h e 0127160 v a l u e o f t h e R E 0127200 A D . \r N o t e : F o r $ 0127220 , $ $ , o r a l i s t , 0127240 i f t h e l a s t c h a 0127260 r a c t e r r e a d b y t 0127300 h e i n p u t o p e r a t i 0127320 o n i s a s e p a r a t o 0127340 r , t h e c h a r a c t e r 0127360 i s t r e a t e d a s a 0127400 c o n f i r m i n g c h a r 0127420 a c t e r f o r t h e k e 0127440 y . H o w e v e r , i f 0127460 t h e l a s t c h a r a c t 0127500 e r i s a b r e a k c h 0127520 a r a c t e r , i t w i l l 0127540 b e m a t c h e d a g a i 0127560 n s t t h e n e x t k e y 0127600 . \r 2 7 . 3 . 6 \t S t a r t 0127620 u p P r o t o c o l a n d 0127640 T y p e a h e a d \r \r I n t e r 0127660 l i s p p e r m i t s a n d 0127700 e n c o u r a g e s t h e 0127720 u s e r t o t y p e a h e a 0127740 d ; i n a c t u a l p r a 0127760 c t i c e , t h e u s e r 0130000 f r e q u e n t l y d o e s 0130020 t h i s . T h i s p r e s 0130040 e n t s a p r o b l e m f 0130060 o r A S K U S E R . W h e 0130100 n A S K U S E R i s e n t 0130120 e r e d a n d t h e r e h 0130140 a s b e e n t y p e a h e a 0130160 d , w a s t h e i n p u t 0130200 i n t e n d e d f o r A S 0130220 K U S E R , o r w a s t h 0130240 e i n t e r a c t i o n u n 0130260 a n t i c i p a t e d , a n d 0130300 t h e u s e r s i m p l y 0130320 t y p i n g a h e a d t o 0130340 s o m e o t h e r p r o g 0130360 r a m , e . g . t h e p r 0130400 o g r a m m e r ' s a s s i s 0130420 t a n t ? E v e n w h e r 0130440 e t h e r e w a s n o t 0130460 y p e a h e a d , i . e . , 0130500 t h e u s e r s t a r t s 0130520 t y p i n g a f t e r t h e 0130540 c a l l t o A S K U S E R 0130560 , t h e q u e s t i o n r 0130600 e m a i n s o f w h e t h e 0130620 r t h e u s e r h a d t 0130640 i m e t o s e e t h e m 0130660 e s s a g e f r o m A S K U 0130700 S E R a n d r e a c t t o 0130720 i t , o r s i m p l y b 0130740 e g a n t y p i n g a h e a 0130760 d a t a n i n a u s p i c 0131000 i o u s m o m e n t . T h 0131020 u s , w h a t i s n e e d 0131040 e d i s a n i n t e r l o 0131060 c k m e c h a n i s m w h i 0131100 c h w a r n s t h e u s e 0131120 r t o s t o p t y p i n g 0131140 , g i v e s h i m a c h 0131160 a n c e t o r e s p o n d 0131200 t o t h e w a r n i n g , 0131220 a n d t h e n a l l o w s 0131240 h i m t o b e g i n t y p 0131260 i n g t o A S K U S E R . \r 0131300 T h e r e f o r e , w h e n 0131320 A S K U S E R i s f i r s t 0131340 e n t e r e d , a n d t h 0131360 e i n t e r a c t i o n i s 0131400 t o t a k e p l a c e w 0131420 i t h a t e r m i n a l , 0131440 a n d t y p e a h e a d t o 0131460 A S K U S E R i s n o t 0131500 p e r m i t t e d , t h e f 0131520 o l l o w i n g p r o t o c o 0131540 l i s o b s e r v e d : \r \t 0131560 ( 1 ) \t I f t h e r e i s 0131600 t y p e a h e a d , A S K U S 0131620 E R c l e a r s a n d s a 0131640 v e s t h e i n p u t b u 0131660 f f e r s a n d r i n g s 0131700 t h e b e l l t o w a r n 0131720 t h e u s e r t o s t o 0131740 p t y p i n g . T h e b 0131760 u f f e r s w i l l b e r 0132000 e s t o r e d w h e n A S K 0132020 U S E R c o m p l e t e s o 0132040 p e r a t i o n a n d r e t 0132060 u r n s . \r \t ( 2 ) \t I f M E 0132100 S S , t h e m e s s a g e 0132120 t o b e p r i n t e d o n 0132140 e n t r y , i s n o t N 0132160 I L ( t h e t y p i c a l 0132200 c a s e ) , A S K U S E R t 0132220 h e n p r i n t s M E S S 0132240 i f i t i s a s t r i n 0132260 g , o t h e r w i s e C A R 0132300 o f M E S S , i f M E S 0132320 S i s a l i s t . \r \t ( 3 0132340 ) \t A f t e r p r i n t i n g 0132360 M E S S o r C A R o f 0132400 M E S S , A S K U S E R w a 0132420 i t s u n t i l t h e o u 0132440 t p u t h a s a c t u a l l 0132460 y b e e n p r i n t e d o 0132500 n t h e t e r m i n a l t 0132520 o m a k e s u r e t h a t 0132540 t h e u s e r h a s a c 0132560 t u a l l y h a d a c h a 0132600 n c e t o s e e t h e o 0132620 u t p u t . T h i s a l s 0132640 o g i v e t h e u s e r 0132660 a c h a n c e t o r e a c 0132700 t . A S K U S E R t h e n 0132720 c h e c k s t o s e e i 0132740 f a n y t h i n g a d d i t 0132760 i o n a l h a s b e e n t 0133000 y p e d i n t h e i n t e 0133020 r v e n i n g p e r i o d s 0133040 i n c e i t f i r s t w a 0133060 r n e d t h e u s e r i n 0133100 ( 1 ) . I f s o m e t h i 0133120 n g h a s b e e n t y p e 0133140 d , A S K U S E R c l e a r 0133160 s i t o u t a n d a g a 0133200 i n r i n g s t h e b e l 0133220 l . T h i s l a t t e r m 0133240 a t e r i a l , i . e . , t 0133260 h a t t y p e d b e t w e e 0133300 n t h e e n t r y t o A 0133320 S K U S E R a n d t h i s 0133340 p o i n t , i s d i s c a r 0133360 d e d a n d w i l l n o t 0133400 b e r e s t o r e d s i n 0133420 c e i t i s n o t c e r 0133440 t a i n w h e t h e r t h e 0133460 u s e r s i m p l y r e a 0133500 c t e d q u i c k l y t o 0133520 t h e f i r s t w a r n i n 0133540 g ( b e l l ) a n d t h i 0133560 s i n p u t i s i n t e n 0133600 d e d f o r A S K U S E R , 0133620 o r w h e t h e r t h e 0133640 u s e r w a s i n t h e 0133660 p r o c e s s o f t y p i n 0133700 g a h e a d w h e n t h e 0133720 c a l l t o A S K U S E R 0133740 o c c u r r e d , a n d d 0133760 i d n o t s t o p t y p i 0134000 n g a t t h e f i r s t 0134020 w a r n i n g , a n d t h e 0134040 r e f o r e t h i s i n p u 0134060 t i s a c o n t i n u a t 0134100 i o n o f i n p u t i n t 0134120 e n d e d f o r a n o t h e 0134140 r p r o g r a m . \r A n y t h 0134160 i n g t y p e d a f t e r 0134200 ( 3 ) i s c o n s i d e r 0134220 e d t o b e i n t e n d e 0134240 d f o r A S K U S E R , i 0134260 . e . , o n c e t h e u s 0134300 e r s e e s M E S S o r 0134320 C A R o f M E S S , h e 0134340 i s f r e e t o r e s p o 0134360 n d . F o r e x a m p l e 0134400 , U N D O ( p a g e X . 0134420 X X ) c a l l s A S K U S E 0134440 R w h e n t h e n u m b e 0134460 r o f u n d o s a v e s a 0134500 r e e x c e e d e d f o r 0134520 a n e v e n t w i t h M E 0134540 S S = ( L I S T N U M B E R - 0134560 U N D O S A V E S " u n d o s 0134600 a v e s , c o n t i n u e s 0134620 a v i n g " ) . T h u s , 0134640 t h e u s e r c a n t y p 0134660 e a r e s p o n s e a s 0134700 s o o n a s N U M B E R - U 0134720 N D O S A V E S i s t y p e 0134740 d . \r \t ( 4 ) \t A S K U S E R 0134760 t h e n t y p e s t h e r 0135000 e s t o f M E S S , i f 0135020 a n y . \r \t ( 5 ) \t T h e n A 0135040 S K U S E R g o e s i n t o 0135060 a w a i t l o o p u n t 0135100 i l s o m e t h i n g i s 0135120 t y p e d . I f W A I T , 0135140 t h e w a i t t i m e , 0135160 i s n o t N I L , a n d 0135200 n o t h i n g i s t y p e d 0135220 i n W A I T s e c o n d s 0135240 , A S K U S E R w i l l t 0135260 y p e " . . . " a n d t r 0135300 e a t t h e e l e m e n t s 0135320 o f D E F A U L T , t h e 0135340 d e f a u l t v a l u e , 0135360 a s a l i s t o f c h a 0135400 r a c t e r s , a n d b e g 0135420 i n p r o c e s s i n g t h 0135440 e m e x a c t l y a s t h 0135460 o u g h t h e y h a d b e 0135500 e n t y p e d . I f t h 0135520 e u s e r d o e s t y p e 0135540 a n y t h i n g w i t h i n 0135560 W A I T s e c o n d s , h 0135600 e c a n t h e n w a i t 0135620 a s l o n g a s h e l i 0135640 k e s , i . e . , o n c e 0135660 s o m e t h i n g h a s b 0135700 e e n t y p e d , A S K U S 0135720 E R w i l l n o t u s e 0135740 t h e d e f a u l t v a l u 0135760 e s p e c i f i e d i n D 0136000 E F A U L T . \r I f t h e u 0136020 s e r w a n t s t o c o n 0136040 s i d e r h i s r e s p o n 0136060 s e f o r m o r e t h a n 0136100 W A I T s e c o n d s , a 0136120 n d d o e s n o t w a n t 0136140 A S K U S E R t o d e f a 0136160 u l t , h e c a n t y p e 0136200 a c a r r i a g e r e t u 0136220 r n o r a s p a c e , w 0136240 h i c h a r e i g n o r e d 0136260 i f t h e y a r e n o t 0136300 s p e c i f i e d a s a c 0136320 c e p t a b l e i n p u t s 0136340 b y K E Y L S T ( s e e b 0136360 e l o w ) a n d t h e y a 0136400 r e t h e f i r s t t h i 0136420 n g t y p e d . \r I f t h e 0136440 c a l l i n g p r o g r a m 0136460 k n o w s t h a t t h e 0136500 u s e r i s e x p e c t i n 0136520 g a n i n t e r a c t i o n 0136540 w i t h A S K U S E R , e 0136560 . g . a n o t h e r i n t e 0136600 r a c t i o n p r e c e d e d 0136620 t h i s o n e , i t c a 0136640 n s p e c i f y i n t h e 0136660 c a l l t o A S K U S E R 0136700 t h a t t y p e a h e a d 0136720 i s p e r m i t t e d . I 0136740 n t h i s c a s e , A S K 0136760 U S E R s i m p l y n o t e 0137000 s w h e t h e r t h e r e 0137020 i s a n y t y p e a h e a d 0137040 , t h e n p r i n t s M E 0137060 S S a n d g o e s i n t o 0137100 a w a i t l o o p a s 0137120 d e s c r i b e d a b o v e . 0137140 \r I f t h e r e i s t y p 0137160 e a h e a d t h a t c o n t 0137200 a i n s u n a c c e p t a b l 0137220 e i n p u t , A S K U S E R 0137240 w i l l a s s u m e t h a 0137260 t t h e t y p e a h e a d 0137300 w a s n o t i n t e n d e d 0137320 f o r A S K U S E R , a n 0137340 d w i l l r e s t o r e t 0137360 h e t y p e a h e a d w h e 0137400 n i t c o m p l e t e s o 0137420 p e r a t i o n a n d r e t 0137440 u r n s . \r \t ( 6 ) \t F i n a l 0137460 l y , i f t h e i n t e r 0137500 a c t i o n i s n o t w i 0137520 t h t h e t e r m i n a l , 0137540 i . e . , t h e o p t i o 0137560 n a l i n p u t f i l e / s 0137600 t r i n g i s s p e c i f i 0137620 e d , A S K U S E R s i m p 0137640 l y p r i n t s M E S S a 0137660 n d b e g i n s r e a d i n 0137700 g f r o m t h e f i l e / 0137720 s t r i n g . \r \r 2 7 . 4 \t 0137740 T T Y I N D i s p l a y T y 0137760 p e i n E d i t o r \r \r T T Y 0140000 I N i s a n I n t e r l i 0140020 s p f u n c t i o n f o r 0140040 r e a d i n g i n p u t f r 0140060 o m t h e t e r m i n a l . 0140100 I t f e a t u r e s a l 0140120 t m o d e c o m p l e t i o n 0140140 , s p e l l i n g c o r r e 0140160 c t i o n , h e l p f a c i 0140200 l i t y , a n d f a n c y 0140220 e d i t i n g , a n d c a n 0140240 a l s o s e r v e a s a 0140260 g l o r i f i e d f r e e 0140300 t e x t i n p u t f u n c t 0140320 i o n . T h i s d o c u m 0140340 e n t i s d i v i d e d i 0140360 n t o t w o m a j o r s e 0140400 c t i o n s : h o w t o u 0140420 s e T T Y I N f r o m t h 0140440 e u s e r ' s p o i n t o 0140460 f v i e w , a n d f r o m 0140500 t h e p r o g r a m m e r ' 0140520 s . \r T T Y I N e x i s t s 0140540 i n i m p l e m e n t a t i o 0140560 n s f o r I n t e r l i s p 0140600 - 1 0 a n d I n t e r l i s 0140620 p - D . T h e t w o a r 0140640 e s u b s t a n t i a l l y 0140660 c o m p a t i b l e , b u t 0140700 t h e c a p a b i l i t i e s 0140720 o f t h e t w o s y s t 0140740 e m s d i f f e r ( I n t e 0140760 r l i s p - D h a s a m o 0141000 r e p o w e r f u l d i s p 0141020 l a y a n d a l l o w s g 0141040 r e a t e r a c c e s s t o 0141060 t h e s y s t e m p r i m 0141100 i t i v e s n e e d e d t o 0141120 c o n t r o l i t e f f e 0141140 c t i v e l y ; i t a l s o 0141160 h a s a m o u s e , g r 0141200 e a t l y r e d u c i n g t 0141220 h e n e e d f o r k e y b 0141240 o a r d - o r i e n t e d e d 0141260 i t i n g c o m m a n d s ) . 0141300 D e s c r i p t i o n s o 0141320 f b o t h a r e i n c l u 0141340 d e d i n t h i s d o c u 0141360 m e n t f o r c o m p l e t 0141400 e n e s s , b u t I n t e r 0141420 l i s p - D u s e r s m a y 0141440 f i n d l a r g e s e c t 0141460 i o n s i r r e l e v a n t . 0141500 \r 2 7 . 4 . 1 \t E n t e r i 0141520