Mercurial > urweb
comparison src/settings.sml @ 2226:e10881cd92da
Merge.
author | Ziv Scully <ziv@mit.edu> |
---|---|
date | Fri, 27 Mar 2015 11:26:06 -0400 |
parents | 365727ff68f4 8beeb4f761b5 |
children | 25c94de06e3c |
comparison
equal
deleted
inserted
replaced
2225:6262dabc08d6 | 2226:e10881cd92da |
---|---|
295 ("strcspn", "sspn"), | 295 ("strcspn", "sspn"), |
296 ("strlenGe", "strlenGe"), | 296 ("strlenGe", "strlenGe"), |
297 ("mouseEvent", "uw_mouseEvent"), | 297 ("mouseEvent", "uw_mouseEvent"), |
298 ("keyEvent", "uw_keyEvent"), | 298 ("keyEvent", "uw_keyEvent"), |
299 ("minTime", "0"), | 299 ("minTime", "0"), |
300 ("stringToBool_error", "s2be"), | |
301 ("stringToBool", "s2b"), | |
300 | 302 |
301 ("islower", "isLower"), | 303 ("islower", "isLower"), |
302 ("isupper", "isUpper"), | 304 ("isupper", "isUpper"), |
303 ("isalpha", "isAlpha"), | 305 ("isalpha", "isAlpha"), |
304 ("isdigit", "isDigit"), | 306 ("isdigit", "isDigit"), |
375 datatype action = Allow | Deny | 377 datatype action = Allow | Deny |
376 type rule = { action : action, kind : pattern_kind, pattern : string } | 378 type rule = { action : action, kind : pattern_kind, pattern : string } |
377 | 379 |
378 datatype path_kind = Any | Url | Table | Sequence | View | Relation | Cookie | Style | 380 datatype path_kind = Any | Url | Table | Sequence | View | Relation | Cookie | Style |
379 type rewrite = { pkind : path_kind, kind : pattern_kind, from : string, to : string, hyphenate : bool } | 381 type rewrite = { pkind : path_kind, kind : pattern_kind, from : string, to : string, hyphenate : bool } |
382 | |
383 fun pak2s pak = | |
384 case pak of | |
385 Exact => "Exact" | |
386 | Prefix => "Prefix" | |
387 fun pk2s pk = | |
388 case pk of | |
389 Any => "Any" | |
390 | Url => "Url" | |
391 | Table => "Table" | |
392 | Sequence => "Sequence" | |
393 | View => "View" | |
394 | Relation => "Relation" | |
395 | Cookie => "Cookie" | |
396 | Style => "Style" | |
397 fun r2s (r : rewrite) = pak2s (#kind r) ^ " " ^ pk2s (#pkind r) ^ ", from<" ^ #from r ^ ">, to<" ^ #to r ^ ">" | |
380 | 398 |
381 val rewrites = ref ([] : rewrite list) | 399 val rewrites = ref ([] : rewrite list) |
382 | 400 |
383 fun subsume (pk1, pk2) = | 401 fun subsume (pk1, pk2) = |
384 pk1 = pk2 | 402 pk1 = pk2 |
724 fun capitalize s = | 742 fun capitalize s = |
725 case s of | 743 case s of |
726 "" => "" | 744 "" => "" |
727 | _ => str (Char.toUpper (String.sub (s, 0))) ^ String.extract (s, 1, NONE) | 745 | _ => str (Char.toUpper (String.sub (s, 0))) ^ String.extract (s, 1, NONE) |
728 | 746 |
747 val allLower = CharVector.map Char.toLower | |
748 | |
729 val mangle = ref true | 749 val mangle = ref true |
730 fun setMangleSql x = mangle := x | 750 fun setMangleSql x = mangle := x |
731 fun mangleSqlTable s = if !mangle then "uw_" ^ capitalize s | 751 |
732 else if #name (currentDbms ()) = "mysql" then capitalize s | 752 fun mangleSqlTable s = |
733 else lowercase s | 753 if #name (currentDbms ()) = "mysql" then |
734 fun mangleSql s = if !mangle then "uw_" ^ s | 754 if !mangle then |
735 else if #name (currentDbms ()) = "mysql" then lowercase s | 755 "uw_" ^ allLower s |
736 else lowercase s | 756 else |
737 fun mangleSqlCatalog s = if !mangle then "uw_" ^ s else lowercase s | 757 allLower s |
758 else | |
759 if !mangle then | |
760 "uw_" ^ capitalize s | |
761 else | |
762 lowercase s | |
763 | |
764 fun mangleSql s = | |
765 if #name (currentDbms ()) = "mysql" then | |
766 if !mangle then | |
767 "uw_" ^ allLower s | |
768 else | |
769 allLower s | |
770 else | |
771 if !mangle then | |
772 "uw_" ^ s | |
773 else | |
774 lowercase s | |
775 | |
776 fun mangleSqlCatalog s = | |
777 if #name (currentDbms ()) = "mysql" then | |
778 if !mangle then | |
779 "uw_" ^ allLower s | |
780 else | |
781 allLower s | |
782 else | |
783 if !mangle then | |
784 "uw_" ^ s | |
785 else | |
786 lowercase s | |
738 | 787 |
739 val html5 = ref false | 788 val html5 = ref false |
740 fun setIsHtml5 b = html5 := b | 789 fun setIsHtml5 b = html5 := b |
741 fun getIsHtml5 () = !html5 | 790 fun getIsHtml5 () = !html5 |
742 | 791 |
820 | 869 |
821 fun setFilePath path = filePath := path | 870 fun setFilePath path = filePath := path |
822 | 871 |
823 fun addFile {Uri, LoadFromFilename} = | 872 fun addFile {Uri, LoadFromFilename} = |
824 let | 873 let |
825 val path = OS.Path.joinDirFile {dir = !filePath, file = LoadFromFilename} | 874 val path = OS.Path.mkAbsolute {relativeTo = !filePath, path = LoadFromFilename} |
826 in | 875 in |
827 case SM.find (!files, Uri) of | 876 case SM.find (!files, Uri) of |
828 SOME (path', _) => | 877 SOME (path', _) => |
829 if path' = path then | 878 if path' = path then |
830 () | 879 () |