Path: utzoo!utgpu!jarvis.csri.toronto.edu!clyde.concordia.ca!uunet!tut.cis.ohio-state.edu!pacific.mps.ohio-state.edu!zaphod.mps.ohio-state.edu!usc!cs.utexas.edu!sun-barr!newstop!grapevine!koreth@panarthea.ebay.sun.com From: koreth@panarthea.ebay.sun.com (Steven Grimm) Newsgroups: comp.binaries.atari.st Subject: v09i006: cleo -- Enhance the TOS get-input-line routine Keywords: arc, uue Message-ID: <34964@grapevine.uucp> Date: 19 Dec 89 15:20:03 GMT Sender: news@grapevine.uucp Reply-To: leo@dts.ine.philips.nl (Leo de Wit) Lines: 249 Approved: koreth@panarthea.ebay.sun.com Submitted-by: leo@dts.ine.philips.nl (Leo de Wit) Posting-number: Volume 9, Issue 6 Archive-name: cleo The included program is an extension to the GEMDOS readline function, that is: you can benefit from it from within any program that uses this function (some C libraries do this for instance to implement gets()). For instance: it gives the micro-Cshell a history mechanism, command line editing facilities and filename completion. Send any questions e.d. regarding this submission to Leo de Wit Nachtegaallaan 7 5731XP Mierlo Holland email: philmds.dts.ine.philips.nl!leo, will become tq.ine.philips.nl!leo Uudecode, then un-arc. 8X------------8X------------8X------------8X------------8X------------ begin 640 cleo.arc M&@A#3$5/+D1/0P #_WPH #,3UW5!HBP9 ,#10$! &)P! F19Z 0#'D M39LV8=R0 <$DC9LR((J024/'XAD03^B@*2/G3IHY95* . DB# @J4Z0LI$*R MC<4P=#!&G#B%3I@\ PM**3,G#9DR;NBHA"/GS1DY8=J H/,&A!B,<-B$&5-F MHL6I(ZV^>4,'Q%$[:;B>F ,B2!4J"LV\87-4CHN@!)*4E5,FZU:B8#$>*=*$ MR),I(,S4<3.FXQLW((:,>2R'+0HI18(0F4)%2A(G1U2*R=,21)LW?%N2L1.1 M*QF\73EZ!#$F#)PP8M*PX4@:11HS*]V\>%.'#ISB*]FZ(6NUS&R^&_DV[IK" M!0B]>"V.85/G*%N7:$Y2E4.Z39DQ:"*>;,,BL6ZD43%.;I.UC&,W[,-1&%9>#U!G <+;2<3V*P01J'YFTX4H)S5 >2&3E! M-H=/$H4AQT2[B0$5>8DMUE@:C[&UVXIXG6'?'"BHI"1&:=#'1H!(Y3212$W5 M<08:%E)F61DNG&$=$SAUQ%5DU06$UQ0=@L 71'*L,8<.>(6ATD$)325'&H!1 M!<**?2FZU1HA B<25DW15]:1B[IQ1GL1EG62#B#<,=)% ,J!UZ6T[<=74L$= M5Y88=9AA!DD@7-05A%5=Y6=L<_B51U L-M%H(Z$%X.:-B=7:JQ: M)*M5M=YJ(DM7/0>LL,12595OP,'QQAQ%Y9@2@0:*<2A""L'X7:E*NC';50E. M595%&]664VGFHIN&NB"0U)2)*-3FQHW^ <@"7@HS?-28.;6WG'MCLB778F2\ M !$=Z'657T0,2Q=&@D)2$1Y;^"JH<'-X;30';F.2P6Y!8ZBDLGRNEHFMK;B^ M7 8>14[T'ZXHI7KR@FCD451M"BY+E'5!X,47IVG=MY*8C$XT&@B#%798:>19YW*+&G'G7=X!?M78OW) ,/;<;C;$H'%K/&%B4C&F]HM,:(JJ02?GZ>D8: $*VW!V$MDX $D4P M 05!#!!QDK 0AJ58[U1"]CM;N@NOH4OS,4442A-]F,?-%.SI!O\E/="$L8EA.F\",M M6PEP),0JI!C-4F&Q(4D(:$ $RJ0*TX/$ 82(D3H \"O^$P]JUI>1K;"I(SU" MT5SJ$D+ZL9FOW*BOMXUN9>,AC1@K(Z0@\$]5K:/ M!0G1O(J$.9&.8*3G @&\WRACM !HYA@>0< MK5,$.TXE3#KQ3VJD(\KY89(@%. 6(#]"2/QUA8!,D (2GM"$(A D 47@2(E^ M!34VS$N74!JE12P8E@\64W4/RV1_YH"&6GXG7W$\TAS[>+?K@)%GH835) 7) MD@#A+@_M.9F"P"E)8WXG->RL)7XTQ)=450@U=1'D(>5!8GZ6"Q M.K3A*M !00R$E 0:;RZ,@;4^-6.*3%4'&4;Z*9R3IN99< MP72,@BSI2D0U+ZQYJED8(2@]#XH1E"@I9!.95DLD:CXSI $/*OD8>A82PY3. MAJ5WI.BYRF).6'F2I&X0Y";ID),*WJ$JM4')'&2ZQ12!+#PJ5*HXYR#(C4F$ MB/F,HK;(9M4$$0NL91,L278@2!*1Q"05,F&][E4&%K)%#HN1$UZJX 3#4(\* M3CE#QI3%$9*<["+H>L$X26(^G^0..&EKBLOHMI6V\C63OF',YF93A#G4!@YE M:,]0Z+ ?8_U5")/R'%?02MJV+NTT1W$I;1Y#!]G2AK9VZ^GVIO08LC$,N'*8 MEGG(T!Y:O3!&F42/DFKKQX(EA23$VHUS$T2:<2(QC,:\W,K\$]U,LN1DZKLL M4>S3R-7*H;7$DBJK+D*T$R4(;Y^90A&D $0%@/8,H@63&U"2TA?PQ2]W@BY& MI*K>NMG6.CW9B9*\!S(>U$N(W'*7)=_ ;'?( MW(E V;:_ C%ZD$*I0L"BF;('YN\;SN_2)@03A) C[!"9UY A/:0I U1G""/KYQ>IJ9Q)55]QA0IJXO & MH 0A@P0G%10,C2.3^7(+9B"#/#EO" '7]JZ)T.N*N(U5A06,J/=80J$I:\=4G338HJOR/(Z)QGI\$Z MSV_2@I/N!11C9>AISB='H1BG/*PG*7H:I+/3\E&LLKT!^7M,4_5?%>7+N,2) MUKD^1^;VG"UQ?;E9MG[T>29]#$OW5_<:R^.?3Z0-9??B^$# A66S>]ZKKG=E MHVT&05XLY"B_ZS/Q4H0I#"$(4,BT BJRHLA0U[I$:,]C_+8\6KKA!)MJ9[+$ MGK'R%H>?&R8)'5#@X;YP.24N!&RPR^F0TT#F-BEEW*4$J56\?@3R)\C5R1<" M)SE-5TR>WEW(E9_'%L?<#$IJ"5MFRI;%I"$.=0#[2HZ2E*73;%WQ/CR]$G^& M("]>B]:>MW*8XY*B>&I,=D4/M@6>$6__^MU'%A:"9V[O0VOYE7X?,7R99$6L MQG@MP0;4-FQ(;>Q1Q6%E+VI59^>$Z#-5'XY&,L8565$6-'S!HOT M QP,,VTN*('PE3)AL8ATP$_OQ"&Q=EBGLCL0@0?6,1F+052_8D?$@@(C5R%* M&'Z"]"%-R$GH8Q7&."$0 M(3GWQP\(-"A?($""5P < ! @_'2B2X"-BR"^1 2D\DW/_Z(/JC7W.4%("Y PDFXP5M+G*F,$;0M0! M-#AC(=9QE(+: /AG!P*P$$6> DQX2 M9VB3'A-GN,98$V?,QA@;<:67Q1DBI+?&&1RD%P1[Z?44V'$;V(=?@/\4]YX MR:'DQW[^\!.$/@ P(\)"Q$R"# @)B, 2 DH T@8#8 @@ 391(/,//T)$L-1? M,/QD !@$2' <"%'^HT^52\T%!A@__&2!1 )(-$!%7#SBF $&+/7"3P1(E$ 8 M /@#1)Q+270 G_[0(%:@/REPIU42.4$H"!<%^M 3A%)P:!T2O4 H ILB"@ESR(P3^I/@&? M#$@ NTTX\F,[L7($P#L J@O")P3,#,\ =V;TZ0V6!7* SL\ 5 /JS@J<_SG MRBO/O++. Q"!&-)3WR/]3P0+$A(8($@$, F@2'?XB@9&B 1B!RE[+>*2M@ MZ$/:L- P.T$,#P(XDL'X2#>0)%4O # (W;$Z *U T"$GHON.('Z2.F6Q#C"P MD!X(LB>.*0!B:WA0@BO^@8>R 4 ;<&C QP82@%4] @Z* L#08N)%_>%!"H!@ M -7$1H$V< .]Q(CR+KHM)+A@0!K' %MD8',/# C&A48]S$\\88;)&,=:0B M'@?)1S!( X@."0=']$"9>'A'W30'QT,D$=#RI&+7H2##B09RDA^$I&/,&,X M )&M:+PG!&B0 B)$ (1IO!(-G8L $1' )PI0X")3F"(>]N/!X^$. #K@#+9 M 6 "X&@?(,R @$I2,5I@6&<[@2'%:*V!G_OKW_] 8+L2@E!U*#P6]Q# A!?N M9Q_&<]8*XP> ^0& 3Q- P/WV(0XEY.P*P!@<$@"AL1X,BPU/=882\B _P9#*O0?(H'U J-X^,$%5J_)) JK8*B&\NJPS^.!E M;QBKQ@PB@^R98WE(;1Z?'B"-%[IO'[4#P,7DM[VK(M,,6P4"9"4+C(<.( #R M(0 P!"FV#;"A);8H!R#:A@ !&$X-AA-'X&A!-[3&A!?[$0 DNN*Y IC/P1@ MQ'[T80_H$H)NRP6 /M0!W6&VI(\M@0-TC2L =$"7#- ]TT T %TL&,X1AG, M=)D 7<7!)C"W4P( S$"!PI:V=;RXGSXLP0"450!FZO0P5?6;]QUIL@@3I%3@F,$.0/JQ@3!F4+*'!N#"QN-< 9SQ3NS;(G'[Y MZU_N+4; &N@ ^E9WO$#0E@!C$($3!QH-8-#3G#4#0#H9\+) 3 $ FP,#-'K\ MXR /&9P$-3($RIF ,T@ G6=@LNB>'.4I7_-8$ [$=T:(3-UE.*' (&( -)LR M.7@891= , #R 8@2GYBA*MZ=:1F CQ?G PQP ,Z+P 7A@: 9'6W:0K/=JJ8AH"#K@?/M"AXV.M MKLF2#@ 93)!F(H]SRP/I\I<' H(P-UD*4!Y6(,#@#%RK6M>\;O/J?'WD+B=Y MR<=.]NJ8W6EI^Q"(QY+$$)>)/CXMP)FQVP\^K+!6TKZ5>7&=*VG5[8-.E\^$ MQYJ= P![!@_DM7Q\->T"/ '8ZN$C@Y8F;5\M<+][P"-SF^NV#D<':@"? ]2&!.*/<7#&T!@QBN'4\M<#C.8#1!,BFK#C$0& MAJA&IV(0 MY(F((K?@@H3XYC\($1C](L@>KF M92U;=F*1V@">#6Q_YVY8]7#B?O:PPT2O M:XO5QG7Q;6U\4M.G &)$OGKV,(+7^=0 +&!>!IXS_$#PT5,T6%$2%PUI5?\W M$$*4% BN' @L/8?05;OAHK\//@!@B=(S"UHO++4)Z_$@4S,0 ?D]9QY; 2 " M-"!A^[ ,^M ]USOPIR'Z#!!_["8@ST$('PU@\,(214I;/:IS"D*=_^Y76?Z! M=/_[[Z=^-I%2 +A\Y]=2 L@ [$$A$:X$"A8@/AP@''Z"(86 ! M%P$&H-"%56"%K7*#3&$% Q%]M=(_]O,(D2! # "*FBA%-O$&CV1*8S1)P40\ MZ&"#./@/_O 7\ 0!8F,0(H!E$J!+YO,">S(1@#!T Q48O A.$/"+O), W', M^Q8[JD@!:\ '3Y,3NN<_; 'R7=+@6$L_Q Z*2,+ " &-!< //0/_W"-%-"- M#8@(Q_,/1(0Q; !T(+,!0A<[+[..6 8!K*2,_@@Z76<^?R%G2V4"+T2+G3@0 M(7A*DP1&(AB%HU%X;D@!4.>07L1.HP$&XE!4#S"/Y,(G"> )%^&1)#0!=* \ M%F9AYL,G!V +"3%'D&#@ !NA$ Y:0#9D 5( ( M7 )/-75!4^8 ^*8++"65"0@'!$!$)0,-78@%"2@$)<,*JJ,+8\0!H]B70RD& M9^<)0@.&/J ZU#"4:N"#,WAWOD/GC"4 M9B!%_6 &U2, O,!2_2 &?:DZ\O"7T6@3-A03-:DLGN":?ZD'%Y$D+!$ +M"% M7(";_:.;8P$("!( "0%^7B"<\D.<28(@?>)5/"D5[$247@4 #@"=KN!13O@T M3@@+KF"9;,!K#@!0PK!W_> &1:87S%E5S@D(;Z!33BAE;8<"3L@&Q^<"EEE_ M*#"6P629WND$]WB>[I">138$!\H'TP ,WJD%1N>$YDE$SAB* X&/2J2? M DJ@%VJ@"!IGRK,7RO*:]YB/-E&=6M!V.^D%9H !<,"6Y_,/?#FB"0@&') $ M\L0*2R!/\F"4$D !Y/B"AK=.C2 %TN4.0D !/B@#HGF=V=DGBO"8+"> M<<9+,4$&=>2$<=JA<[J>%EI5HSB42N"=2E!_#< &+*>A>PH =6GP%!0_: $ M$, +2E:=2M : ;JHC7J@= JI2B $$%"=5N"=4E"=4F!##M"%8:")F).JX$<&FEB=3D!,/!&>6N"=5AJ>7L &_269J$.9 MG&EU0%":R<*3^]$/0*":C0F&C_DRK#"D>R>C7/*MNJ "2&"4AJ<#@@<-$P4- M+X $HU%.0= &!C006N &$L!:G+0WKA4$.664K+42$PD(2@D&#JHLT "JWND% MC@$#8B23GJAD6@D!AC>O !"O6$>O;D GQ.:/&HD 8. -"MDKQ!:Q$UM.8; D MY:0'&=LN2L:Q N2Q(.NP8@("VU<#"H,7$C E/8 7$" FN!BQ)H9,# 4+@5 & M Z$):^:/-( Q<% O=@ %B 8RC, %?8"]'AV:5<5$! )RJ(/C*4/:D !-)LP M,!"JP->U4R"%8& .8TL0:) ;R&1B4R(+@84"<*N+ -"U&>8/Z3$ ;& !C.4/ M;V "<$ $W$, ]L J:6N+8* .,% R_* QLK\M"V M-KNSR*2S/.NS$#N1$!"T]YIBZD( T@ ($H8R#R +@B & Z$*E>4M39MB>&*0 M5PL;,/!"T="UH/NV9CNY=-L&"L"U8B(%:DL.Q0NW$B"W_$"W9J "=SNYD@ $ M/0 M?*LN?@NXRB*XA#L$ATL"BCN^C?NX4R*Y)4.Y*6:Y \ ,)7FZJ):Z*+.Z M(N2/&K2Y#5N+[%!4"Z"Z#/6Z/S10% !M&N[ ,N4L0NTL)/6=AJ*,\ORL M[*.UQ6LN@,%0&O.Z9:LQ:$1#2A8 6X,/(H O "4':&00 X50-)"_]2)N$! ( M3VL!*+, H,L&T3 ,[3H:T2 ,/]2+-D$!$4!""T )HV-A/W&*0#DE<7E-=7:Z MP2,8D)N256NY ( ,+]2_G,BY,LL/)/-2%\DG L!P$GF_R.:/+PP!DS8&ZQ0 M-0P&;'"=%B =/XNZ.[R>[@H 4X (R6@3OSC$/VG$XB8%HZ,\O?NG&!H[QQBJ M@-%G]HN,5(Q06+R2RQ,&(-#%DPP!0U:S/&QD C0!7ER+^A"]N@$!HINS_(#$ M>QP,>ZLQL0L #W##.4P)NR, 0G *N\0G#?Q"PP,LUS+4'O+N:P7QZP/?#)G);D$W!, H\B^E L,I9@3&ZP;J\MSQ\P/[)A1 MC$$!O$D"#?F*H11&\"QVVFQ: 2 'X*-6X"0![,&^D>O )>,/E;O-&! I89PL M4V+';U"L$2W8M1BYYS #."3HX$"6.8"* ,!(' 4W (O D"_AI7 M2OFC"L501KIF+."&X@ "!K"PP."_JJV0<=, $L 1C(:IF0>%C +R% &6=:@ M$P "3F0&^K 43_+;P5T'!]$ %GD.#Z$"H"$#:B 1! (NG$&*/#<1 (0B ( M=O !XP (XR )M%"T!*#$:!0%R_ /\B " I +A6#=@# +A* &"!#=7"($@2 $ M@. 8'V$KD(#<)'#6@3"6^ T&(F#=@6 " & ,P8 $0D , M$RX$8F,-]!($P##A0" $0 -@Z $\0W=^?T-1,C?_^0K22A $' &.("6DGH& M,$#$TQ,!U!T87_VROQC:P:"1#+!F6Y.$QDD "AF+,"0,JOCB'"#C+VX I5P' M S7C4/X/_NO:8O2P'&W9ONC&E,;.^P7E_UL''0OD8, -6_ZO7>[C:X;EO3(E M'G6$/UE04[*5.C4E5*D__.#:D' ; !D-0"(# $(, $(% $FPP"@BXV0_ & M;= &8> &9%#H:> &97#H9) &=%#I9[#)=( &92 '=Y &? "&Q 'C I)7' /D.",(" VK@[K(% &F;[I;N 3 M9I &;% &;G"RESX&C@X'S;[I;W!\M X"1U $34 $3S %P8X N;[K+-?K??X" MP6X **#)<\!"5#H9;!R M9'#I5Z#I*1#L S#N#,\%(( +$6]*P4X $$\)D13L1UP&=N "(! #+@ #LZ($ M=< & Q\#.8 #91'L!< %7_ 3D$ '* . ]$!,5#S YEOU#SRE#S^' 0!( $ M9;"- $ %LL[J9E ';C &UNX&)\#JF3X'U!X&;,4#+< "+> # - $;V 'EU[I MK>X&KYY);%#I1EL%<, "1/ &=P!.7._U80\"TO[HD3[I1T_KM@X 0\ L"]0& M1BL%93 &8< &;# KD$X'8X &83_V+U#VE@X"(P 52#I+*$4UYX"94\'H3[X M*I@J9$Z;L;02?.&( @47D"0*>/F#9TR\U<3$/2S!LY 0<.@%-&SIPW;L*P 8&"SDB%:4 9F$I-*C)4^F!.$T#)V59,K,@<-S)YV@!",R%%.FC!NV:'ZZ M/(.&31Z%*8F.H5.&S$J>#^FD8;.T39C#5]W0"9/FKY@Z9^: G-)YS$6B;^"P M*8-W &,W9-C>+(-',4F;-]O4&8-&YD_9-]GPI+-Z91*<1M.@*V%G'<\IJ+5$%4E--1\^$[/'M/G%MFL6S "S%JY.@1Q&^>#,F\ M&5/'I&:W:2#%0FLHQ3;='-5=UY ;S+6A6AJ-O4#;@UR1- =H9\@E&5(,O6$& M6&*940<;;LC%D$]R+)A':W!()!E_UJ4(1QURP/&&6"!5(19\#&6T44=MV.>& M80I]V-)+%HDWF7!NG/%>&'-<:!*!E($@QT)KJ+2@@1Z%D:&6:7R(4AXK2;10 M9TY"&=UZ([X%0ADZ_16F0B0MU-H88835& C+357&&<)EZ(9I]J58%1I%R90G M&W2X(()V A&4A4LP7>37531ZN:=-#T44DU/Q^4A?D 72F=]^_?FUV89_H>=4 M:X<6Q5!33YF$4E0-D13>57/0D0)(0EQTX:?.O*%4XE)\T7%'7W\=N5+4>LI1)L1E#!BI:X@V5(=3/X$D4GP5'7;D M"57R!<)W<-3I!HHFQ;;LF" \.U'&=Q2:VM0=8=XB!++%HU_<8HB M"''4H6& *:WDX]%EM*'EA6=\R:J6GSE9+1Z=4[F4JVAT9N5)1[DQFJ<4)1E? MVXREV-9?4!#Q6.I/19TGX"GVNF1K9O1U\/%S<9@&[3SC]'Q'I17/1FRE>AB^ M47R604?T,O5%AAAAC+'&8W6: Y70 KU$3:]R6-$*5Y2RDCF4YB($0PJ16G28 MU87,+2RAE'"^