157 val commas_quote: string list -> string |
157 val commas_quote: string list -> string |
158 val cat_lines: string list -> string |
158 val cat_lines: string list -> string |
159 val space_explode: string -> string -> string list |
159 val space_explode: string -> string -> string list |
160 val std_output: string -> unit |
160 val std_output: string -> unit |
161 val std_error: string -> unit |
161 val std_error: string -> unit |
|
162 val writeln_default: string -> unit |
162 val prefix_lines: string -> string -> string |
163 val prefix_lines: string -> string -> string |
163 val split_lines: string -> string list |
164 val split_lines: string -> string list |
164 val untabify: string list -> string list |
165 val untabify: string list -> string list |
165 val suffix: string -> string -> string |
166 val suffix: string -> string -> string |
166 val unsuffix: string -> string -> string |
167 val unsuffix: string -> string -> string |
1137 val pwd = OS.FileSys.getDir; |
1138 val pwd = OS.FileSys.getDir; |
1138 |
1139 |
1139 fun std_output s = (TextIO.output (TextIO.stdOut, s); TextIO.flushOut TextIO.stdOut); |
1140 fun std_output s = (TextIO.output (TextIO.stdOut, s); TextIO.flushOut TextIO.stdOut); |
1140 fun std_error s = (TextIO.output (TextIO.stdErr, s); TextIO.flushOut TextIO.stdErr); |
1141 fun std_error s = (TextIO.output (TextIO.stdErr, s); TextIO.flushOut TextIO.stdErr); |
1141 |
1142 |
1142 fun prefix_lines prfx txt = |
1143 fun prefix_lines "" txt = txt |
1143 txt |> split_lines |> map (fn s => prfx ^ s) |> cat_lines; |
1144 | prefix_lines prfx txt = txt |> split_lines |> map (fn s => prfx ^ s) |> cat_lines; |
1144 |
1145 |
1145 (*hooks for output channels: normal, warning, error*) |
1146 val writeln_default = std_output o suffix "\n"; |
1146 val writeln_fn = ref (std_output o suffix "\n"); |
1147 |
|
1148 (*hooks for various output channels*) |
|
1149 val writeln_fn = ref writeln_default; |
1147 val priority_fn = ref (fn s => ! writeln_fn s); |
1150 val priority_fn = ref (fn s => ! writeln_fn s); |
1148 val tracing_fn = ref (fn s => ! writeln_fn s); |
1151 val tracing_fn = ref (fn s => ! writeln_fn s); |
1149 val warning_fn = ref (std_output o suffix "\n" o prefix_lines "### "); |
1152 val warning_fn = ref (std_output o suffix "\n" o prefix_lines "### "); |
1150 val error_fn = ref (std_output o suffix "\n" o prefix_lines "*** "); |
1153 val error_fn = ref (std_output o suffix "\n" o prefix_lines "*** "); |
1151 |
1154 |