http://bugs.winehq.org/show_bug.cgi?id=11659
Chris chris.kcat@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |chris.kcat@gmail.com
--- Comment #1 from Chris chris.kcat@gmail.com 2008-02-20 06:08:45 --- Actually what Wine's doing is buffering all src data, then decoding however much it can from that buffer, and leaves the rest until the next call. So you do increment the source data by the amount "used". The difference is that Wine leaves the extra source data buffered for the next call, whereas Windows leaves it unbuffered and reports it unused.
Of course, Wine's method can cause some problems to unsuspecting apps. Namely that the buffered input will continue to grow as long as there's not enough output to decode it all. If you attempt to continue buffering 0 src bytes until you get 0 dst bytes, you'll get everything.. but I suppose this should be fixed to match Windows' behavior.