diff options
author | 2011-05-12 17:14:13 -0400 | |
---|---|---|
committer | 2011-05-12 17:14:13 -0400 | |
commit | b2a63d5b664c052d672d8cbde8cbb351b292e4c5 (patch) | |
tree | 7b127a36fbb5427c13faebb5351d949d7feea79d | |
parent | e76ab5cc70d54021d19c9aabbb632c922297dda6 (diff) |
Escape less-than in JavaScript strings
-rw-r--r-- | src/c/urweb.c | 12 | ||||
-rw-r--r-- | tests/treeDyn.ur | 18 | ||||
-rw-r--r-- | tests/treeDyn.urp | 4 | ||||
-rw-r--r-- | tests/treeDyn.urs | 1 |
4 files changed, 35 insertions, 0 deletions
diff --git a/src/c/urweb.c b/src/c/urweb.c index 4dae4c3d..1ca45836 100644 --- a/src/c/urweb.c +++ b/src/c/urweb.c @@ -1380,6 +1380,10 @@ uw_Basis_string uw_Basis_jsifyString(uw_context ctx, uw_Basis_string s) { strcpy(s2, "\\\\"); s2 += 2; break; + case '<': + strcpy(s2, "\\074"); + s2 += 4; + break; default: if (isprint((int)c) || c >= 128) *s2++ = c; @@ -1417,6 +1421,10 @@ uw_Basis_string uw_Basis_jsifyChar(uw_context ctx, uw_Basis_char c1) { strcpy(s2, "\\\\"); s2 += 2; break; + case '<': + strcpy(s2, "\\074"); + s2 += 4; + break; default: if (isprint((int)c) || c >= 128) *s2++ = c; @@ -1451,6 +1459,10 @@ uw_Basis_string uw_Basis_jsifyString_ws(uw_context ctx, uw_Basis_string s) { strcpy(s2, "\\\\"); s2 += 2; break; + case '<': + strcpy(s2, "\\074"); + s2 += 4; + break; default: if (isprint((int)c) || c >= 128) *s2++ = c; diff --git a/tests/treeDyn.ur b/tests/treeDyn.ur new file mode 100644 index 00000000..1d58cca5 --- /dev/null +++ b/tests/treeDyn.ur @@ -0,0 +1,18 @@ +table t : {Id : int, Parent : option int} + +fun recurse (root : option int) = + queryX' (SELECT * FROM t WHERE {eqNullable' (SQL t.Parent) root}) + (fn r => + children <- recurse (Some r.T.Id); + (*s <- source False;*) + return <xml> + <dyn signal={(*v <- signal s; + if v then*) + return <xml><b>HI</b>{children}<b>BYE</b></xml> + (*else + return <xml/>*)}/> + </xml>) + +fun main () = + x <- recurse None; + return <xml><body>{x}</body></xml> diff --git a/tests/treeDyn.urp b/tests/treeDyn.urp new file mode 100644 index 00000000..231bad2f --- /dev/null +++ b/tests/treeDyn.urp @@ -0,0 +1,4 @@ +database dbname=treeDyn +sql treeDyn.sql + +treeDyn diff --git a/tests/treeDyn.urs b/tests/treeDyn.urs new file mode 100644 index 00000000..901d6bf2 --- /dev/null +++ b/tests/treeDyn.urs @@ -0,0 +1 @@ +val main : {} -> transaction page |