diff options
author | Adam Chlipala <adam@chlipala.net> | 2014-12-18 07:48:37 -0500 |
---|---|---|
committer | Adam Chlipala <adam@chlipala.net> | 2014-12-18 07:48:37 -0500 |
commit | ac637085e36c23d9963c8695e4a3294d49494b68 (patch) | |
tree | 0d19eed502bbe0d5e7e8c98e41316426441d5afd | |
parent | 9cd4c2ffdc38b34541b243c902a99150687cb16a (diff) |
Fix XML syntax for closing <input> tags
-rw-r--r-- | src/monoize.sml | 4 | ||||
-rw-r--r-- | tests/nestedInput.ur | 10 |
2 files changed, 13 insertions, 1 deletions
diff --git a/src/monoize.sml b/src/monoize.sml index 6563da8b..392a05c1 100644 --- a/src/monoize.sml +++ b/src/monoize.sml @@ -3447,6 +3447,8 @@ fun monoExp (env, st, fm) (all as (e, loc)) = NONE => tagStart | SOME extra => (L'.EStrcat (tagStart, extra), loc) + val firstWord = Substring.string o #1 o Substring.splitl (fn ch => not (Char.isSpace ch)) o Substring.full + fun normal () = let val (xml, fm) = monoExp (env, st, fm) xml @@ -3457,7 +3459,7 @@ fun monoExp (env, st, fm) (all as (e, loc)) = in ((L'.EStrcat ((L'.EStrcat (tagStart, strH ">"), loc), (L'.EStrcat (xml, - strH (String.concat ["</", tag, ">"])), loc)), + strH (String.concat ["</", firstWord tag, ">"])), loc)), loc), fm) end diff --git a/tests/nestedInput.ur b/tests/nestedInput.ur new file mode 100644 index 00000000..19a73e15 --- /dev/null +++ b/tests/nestedInput.ur @@ -0,0 +1,10 @@ +fun main () : transaction page = + let + fun handler _ = return <xml/> + in + return <xml><body> + <form> + <submit action={handler}>Uh oh!</submit> + </form> + </body></xml> + end |