alias fts { hmake a 100 hload -n a $1 var %a $lines($1),%b 1,%j 0,%x X $+ $1 while %b <= %a { var %z = $regex(r,$hget(a,%b),/(\.+)/g),%d $regml(r,0),%e 1 while %e <= %d { var %y $regml(r,%e),%f $len(%y),%g $regml(r,%e).pos while %f > 1 { var %p %y,%n %f,%k 0 while %k == 0 && %n > 1 && %n >= %j { var %h 1,%o $right(%p,%n) while %h < %n { var %i $calc(%b + %h) if $mid($hget(a,%i),%g,%n) == %o { var %k 1 } else var %h %n,%k 0 inc %h } if %k == 0 { dec %n } } var %p $right(%y,-1),%q %b + %g if %k == 1 && (%n > %j || (%n == %j && %q < %r)) { var %j %n,%l %b,%m %g,%r %q } inc %g dec %f } inc %e } inc %b } if %j != 0 { .fopen -n f %x var %i = 1,%s %l + %j,%t %m - 1,%u $calc((%t + %j) * -1) while $hget(a,%i) { var %w $v1,%v $left(%w,%t) $+ $str(X,%j) $+ $right(%w,%u) .fwrite -n f $iif(%i >= %l && %i < %s,%v,%w) inc %i } .fclose f } hfree a return %j }