\ 4tH ASCII cleaning utility \ Copyright 2003,2004 - Hansoft & Partners [needs lib/istype.4th] 9 constant tab 10 constant lf /char string buffer \ emit char if c1 = c2 : ?emit over = if dup emit then ; ( c1 c2 -- c1) \ duplicate char if char is printable : char? dup is-print ( c -- c -n | c c ) if dup else -1 then ; : Usage abort" Usage: ascii7 infile outfile" ; : Read-file buffer /char accept ; \ read a character : Process buffer c@ \ put it on the stack lf ?emit \ emit if it is a LF tab ?emit \ emit if it is a TAB char? ?emit \ emit if it is printable drop \ now drop it ; [needs lib/convert.4th]