From ae8ae8a624237d0c9710919d993b5342ef44a36b Mon Sep 17 00:00:00 2001 From: Adam Chlipala Date: Fri, 1 Jan 2010 10:49:36 -0500 Subject: Proper client-side attrifyString --- lib/js/urweb.js | 4 ++++ src/settings.sml | 2 +- tests/sendurl.ur | 11 +++++++++++ tests/sendurl.urp | 4 ++++ tests/sendurl.urs | 1 + 5 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 tests/sendurl.ur create mode 100644 tests/sendurl.urp create mode 100644 tests/sendurl.urs diff --git a/lib/js/urweb.js b/lib/js/urweb.js index 3a0e7f9f..8d7f6e40 100644 --- a/lib/js/urweb.js +++ b/lib/js/urweb.js @@ -603,6 +603,10 @@ function uu(s) { return decodeURIComponent(s.replace(new RegExp ("\\+", "g"), " ")); } +function atr(s) { + return s.replace(new RegExp ("\"", "g"), """).replace(new RegExp ("&", "g"), "&") +} + function ub(b) { return b ? "1" : "0"; } diff --git a/src/settings.sml b/src/settings.sml index b95ce1ea..03b7fd6d 100644 --- a/src/settings.sml +++ b/src/settings.sml @@ -158,7 +158,7 @@ val jsFuncsBase = basisM [("alert", "alert"), ("onConnectFail", "onConnectFail"), ("onDisconnect", "onDisconnect"), ("onServerError", "onServerError"), - ("attrifyString", "escape"), + ("attrifyString", "atr"), ("attrifyInt", "ts"), ("attrifyFloat", "ts"), ("attrifyBool", "bs"), diff --git a/tests/sendurl.ur b/tests/sendurl.ur new file mode 100644 index 00000000..8264305a --- /dev/null +++ b/tests/sendurl.ur @@ -0,0 +1,11 @@ +fun main () = + let + fun getIt () = return (bless "http://www.yahoo.com/") + in + s <- source ; + return + + +