1structure Flash :> Flash =
2struct
3
4
5val prelimstr = ref ""
6
7fun init (s,t) = let
8  val count = ref 0
9  fun one () = (count := !count + 1;
10                print ("\r"^s);
11                print (StringCvt.padLeft #" " 4
12                                         (Int.toString (!count * 100 div t)));
13                print "%")
14in
15  (one, (fn () => print "\n"))
16end
17
18fun donowt() = ()
19
20fun initialise p = let
21  val null = (donowt, donowt)
22in
23  case OS.Process.getEnv "TERM" of
24    SOME "emacs" => null
25  | SOME "dumb" => null
26  | SOME s => init p
27  | NONE => null
28end
29
30
31end; (* struct *)
32