val id = C.intFromSql id
val name = C.stringFromSql name
in
- TextIO.output (outf, "<li> ");
- TextIO.output (outf, Web.html name);
case NM.find (res, id) of
NONE => ()
- | SOME n => (TextIO.output (outf, " (");
- TextIO.output (outf, Int.toString n);
- TextIO.output (outf, ")"));
- TextIO.output (outf, "</li>\n<ul>\n");
- locationTree (SOME id);
- TextIO.output (outf, "</ul>\n")
+ | SOME n =>
+ (TextIO.output (outf, "<li> ");
+ TextIO.output (outf, Web.html name);
+ TextIO.output (outf, " (");
+ TextIO.output (outf, Int.toString n);
+ TextIO.output (outf, ")");
+ TextIO.output (outf, "</li>\n<ul>\n");
+ locationTree (SOME id);
+ TextIO.output (outf, "</ul>\n"))
end
| doOne _ = raise Fail "Bad locationTree row"
in
-structure Support :> SUPPORT =
+\structure Support :> SUPPORT =
struct
open Util Sql Init
ignore (C.dml (getDb ()) ($`DELETE FROM SupSubscription
WHERE usr = ^(C.intToSql usr) AND cat = ^(C.intToSql cat)`))
-val okChars = [#" ", #"-", #".", #"!", #"?", #":", #";", #"'", #"\""]
+val okChars = [#" ", #"-", #".", #"!", #"?", #":", #";", #"'", #"\"", #"/"]
fun validTitle s = CharVector.exists (fn ch => not (Char.isSpace ch)) s
andalso CharVector.all (fn ch => Char.isAlphaNum ch orelse List.exists (fn ch' => ch = ch') okChars) s