[PATCH v2] urlmon: Do not canonicalize Unicode characters.

Zhiyi Zhang yi.gd.cn at gmail.com
Fri Feb 9 09:22:51 CST 2018


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 at 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 at 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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-urlmon-Do-not-canonicalize-Unicode-characters.txt
Type: text/x-patch
Size: 16825 bytes
Desc: not available
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20180209/c965590d/attachment.bin>


More information about the wine-devel mailing list