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