[comp.binaries.atari.st] v09i006: cleo -- Enhance the TOS get-input-line routine

koreth@panarthea.ebay.sun.com (Steven Grimm) (12/24/89)

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
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
MPL4"'P8"*<,&C^0%$8D X@(W"S#&"W"1\[R).)C3*",V#S &WA2QK-6Q/V,(
MBBN['XO3 '"=' B"!Q"19@T'6? S,F Q**, &I.O8N.*<^1%$9VJP&#7 X#7
MH"0T#LN0&Q"14DW5>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(#<<X$' * ;\/V<,.#>)'#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 &<U &.P "84 &9# '
M(%#I<% 'F80&I$X';R '>? "&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 **#)<\!"<E &=Q &[TY4<O &9R ')YM.M0X"GW[I4T %(" &>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
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
338"0'-CP!D(BX0V4*1"D @(:    
 
end