Branch: Tag:

2016-03-02

2016-03-02 15:11:34 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Roxen: Added decoding of surrogates to http_decode_string().

Some javascript code sends %u-encoded surrogate pairs.

10:   test_eq(_Roxen.http_decode_string(""), "")   test_eq(_Roxen.http_decode_string("+"), "+")    + test_eq(_Roxen.http_decode_string("%uD83D%uDE02"), "\U0001f602") +    // the following inputs are all illegal   test_eval_error(_Roxen.http_decode_string("%"))   test_eval_error(_Roxen.http_decode_string("%0"))
29:   test_eval_error(_Roxen.http_decode_string("%41%u00"))   test_eval_error(_Roxen.http_decode_string("%41%u000"))   test_eval_error(_Roxen.http_decode_string("%41%u000_")) + dnl test_eval_error(_Roxen.http_decode_string("%uD83D")) + dnl test_eval_error(_Roxen.http_decode_string("%uDE02")) + dnl test_eval_error(_Roxen.http_decode_string("X%uD83DX")) + dnl test_eval_error(_Roxen.http_decode_string("X%uDE02X"))      test_eq(_Roxen.http_decode_string("%u12345"), "\x1234""5")   test_eq(_Roxen.http_decode_string("%U12345"), "\x1234""5")