https://bugs.winehq.org/show_bug.cgi?id=38558
--- Comment #7 from Jason Edmeades us@edmeades.me.uk --- A short investigation shows the problem here is simply the way wine does data conversion from single to doublebyte - it does 16 bytes at a time, but this ends up corrupting the buffer if the src overlaps the dest. A simple patch is applied, which gets things going, but I have no ideas if it would be acceptable to wine as potentially there's a performance hit here.
Re the %? - Given its such an edge case I'll wait until someone reports a need for it before trying to add it to wine, as the code is specific for a-z, A-Z at the moment. No idea if there's any others either!
Either way my only priority at the moment is to get wine's cmd running for these kind of test cases. I've found a problem as a result of this bug report for which I'll submit a patch, but the issue of getting windows XP's cmd.exe running is outside my scope. Either way, its definitely not a 'cmd' component problem, assigning to kernel32 which is where I think the converions would come under