diff options
-rw-r--r-- | lib/js/urweb.js | 2 | ||||
-rw-r--r-- | src/c/urweb.c | 4 |
2 files changed, 4 insertions, 2 deletions
diff --git a/lib/js/urweb.js b/lib/js/urweb.js index 7349d2bf..19d549c2 100644 --- a/lib/js/urweb.js +++ b/lib/js/urweb.js @@ -473,6 +473,8 @@ function uf(s) { function uu(s) { if (s.length > 0 && s[0] == '_') s = s.substring(1); + else if (s.length >= 3 && s[0] == '%' && s[1] == '5' && (s[2] == 'f' || s[2] == 'F')) + s = s.substring(3); return unescape(s.replace(new RegExp ("\\+", "g"), " ")); } diff --git a/src/c/urweb.c b/src/c/urweb.c index d5005af2..21e50893 100644 --- a/src/c/urweb.c +++ b/src/c/urweb.c @@ -1625,7 +1625,7 @@ uw_Basis_time uw_Basis_unurlifyTime(uw_context ctx, char **s) { } static uw_Basis_string uw_unurlifyString_to(uw_context ctx, char *r, char *s) { - char *s1, *s2; + char *s1, *s2 = s; int n; if (*s2 == '_') @@ -1633,7 +1633,7 @@ static uw_Basis_string uw_unurlifyString_to(uw_context ctx, char *r, char *s) { else if (s2[0] == '%' && s2[1] == '5' && (s2[2] == 'f' || s2[2] == 'F')) s2 += 3; - for (s1 = r, s2 = s; *s2; ++s1, ++s2) { + for (s1 = r; *s2; ++s1, ++s2) { char c = *s2; switch (c) { |