X-Git-Url: https://git.hcoop.net/clinton/domtool2.git/blobdiff_plain/e0b80e65c8132f096ed5c92e42d4da7d33ff369b..a6b60abf89587acd4fd3fed327f68848f1923c25:/src/plugins/alias.sml diff --git a/src/plugins/alias.sml b/src/plugins/alias.sml index 43e109f..8ed2da6 100644 --- a/src/plugins/alias.sml +++ b/src/plugins/alias.sml @@ -24,30 +24,32 @@ open Ast structure SM = DataStructures.StringMap -val aliases : TextIO.outstream SM.map ref = ref SM.empty +val aliases : Domain.files SM.map ref = ref SM.empty fun aliasesF node = valOf (SM.find (!aliases, node)) -val aliasesD : TextIO.outstream SM.map ref = ref SM.empty +val aliasesD : Domain.files SM.map ref = ref SM.empty fun aliasesDF node = valOf (SM.find (!aliasesD, node)) fun write nodes = let val files = map (fn node => aliasesF node) nodes in - fn s => app (fn file => TextIO.output (file, s)) files + (fn s => app (fn file => #write file s) files, + fn () => app (fn file => #writeDom file ()) files) end fun writeD nodes = let val files = map (fn node => aliasesDF node) nodes in - fn s => app (fn file => TextIO.output (file, s)) files + (fn s => app (fn file => #write file s) files, + fn () => app (fn file => #writeDom file ()) files) end fun openInAll base = foldl (fn (node, r) => SM.insert (r, node, - Domain.domainFile {node = node, name = base})) + Domain.domainsFile {node = node, name = base})) SM.empty Domain.nodes val _ = Domain.registerBefore @@ -55,8 +57,8 @@ val _ = Domain.registerBefore aliasesD := openInAll "aliases.default")) val _ = Domain.registerAfter - (fn _ => (SM.app TextIO.closeOut (!aliases); - SM.app TextIO.closeOut (!aliasesD))) + (fn _ => (SM.app (fn file => #close file ()) (!aliases); + SM.app (fn file => #close file ()) (!aliasesD))) fun validEmailUser s = size s > 0 andalso size s < 50 @@ -117,8 +119,8 @@ fun writeSource (env, s, t) = let val nodes = Env.env (Env.list Env.string) (env, "MailNodes") - val write = write nodes - val writeD = writeD nodes + val (write, writeDom) = write nodes + val (writeD, writeDomD) = writeD nodes fun writeTarget (writer, t) = case t of @@ -130,17 +132,17 @@ fun writeSource (env, s, t) = case s of User s => (write s; write "@"; - write (Domain.currentDomain ()); + writeDom (); write ": "; writeTarget (write, t); write "\n") | Default => (write "*@"; - write (Domain.currentDomain ()); + writeDom (); write ": "; writeTarget (write, t); write "\n") | CatchAll => (writeD "*@"; - writeD (Domain.currentDomain ()); + writeDomD (); writeD ": "; writeTarget (writeD, t); writeD "\n")