From b04e123d0e1159d431aae00c3e8f1cc4a1b95684 Mon Sep 17 00:00:00 2001 From: Adam Chlipala Date: Thu, 10 Dec 2009 13:32:09 -0500 Subject: Basis.url and redirects --- src/mono_opt.sml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'src/mono_opt.sml') diff --git a/src/mono_opt.sml b/src/mono_opt.sml index eb4f5811..5d81d24d 100644 --- a/src/mono_opt.sml +++ b/src/mono_opt.sml @@ -115,6 +115,8 @@ fun unAs s = doChars (String.explode s, []) end +fun checkUrl s = CharVector.all Char.isGraph s andalso Settings.checkUrl s + fun exp e = case e of EPrim (Prim.String s) => @@ -405,11 +407,16 @@ fun exp e = optExp (EApp (e2, e1), loc) | EFfiApp ("Basis", "bless", [(se as EPrim (Prim.String s), loc)]) => - (if Settings.checkUrl s then + (if checkUrl s then () else ErrorMsg.errorAt loc ("Invalid URL " ^ s ^ " passed to 'bless'"); se) + | EFfiApp ("Basis", "checkUrl", [(se as EPrim (Prim.String s), loc)]) => + (if checkUrl s then + ESome ((TFfi ("Basis", "string"), loc), (se, loc)) + else + ENone (TFfi ("Basis", "string"), loc)) | EFfiApp ("Basis", "blessMime", [(se as EPrim (Prim.String s), loc)]) => (if Settings.checkMime s then () -- cgit v1.2.3