Supersedes 141040.
Thanks Jacek for the review and suggestions.
This fixes bug 37217.
I have added more tests to cover my changes.
Some non-printing Unicode characters such as LRM, ZJW doesn't get preprocessed on Wine as they should be on Windows. But it is a separate issue and I will look into it.
Changing is_unreserved() to return true for Unicode characters is not gonna work because it would interfere with the decoding of unreserved characters. As showed in the last added test case, encoded Unicode characters are not decoded.
Signed-off-by: Zhiyi Zhang yi.gd.cn@gmail.com --- dlls/urlmon/tests/uri.c | 268 +++++++++++++++++++++++++++++++++++++++++++++++- dlls/urlmon/uri.c | 21 ++-- 2 files changed, 279 insertions(+), 10 deletions(-)
Hi Zhiyi,
On 02/01/2018 11:56 AM, Zhiyi Zhang wrote:
This fixes bug 37217
Signed-off-by: Zhiyi Zhang yi.gd.cn@gmail.com
dlls/urlmon/tests/uri.c | 35 +++++++++++++++++++++++++++++++++-- dlls/urlmon/uri.c | 21 +++++++++++++-------- 2 files changed, 46 insertions(+), 10 deletions(-)
The fix might be right, but we'd need more tests to be sure. You're changing decoding of all URI parts, but add tests only for paths. Please extend tests to cover all your changes. Also, it would be interesting to test with other, non-alphanumeric Unicode characters (like LRM, ZWJ or something invalid). Depending on the outcome of tests, we may want to change is_unreserved to return true for Unicode characters instead of changing each caller.
Thanks, Jacek