https://bugs.winehq.org/show_bug.cgi?id=48458
Bug ID: 48458 Summary: Changes to scanf.c and scanf.h have resulted in Star Citizen incorrectly showing green lighting Product: Wine Version: unspecified Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: msvcrt Assignee: wine-bugs@winehq.org Reporter: michael.scott@quest-arts.co.uk Distribution: ---
I was looking into this after a discussion with the LUG group in Star Citizen and discovered the green lighting issue was introduced in the following commit in wine-5.0_rc4: f99d307a3e1f9beb7fd9dc8892b5cfabbabf816b msvcrt: Use parse_double for scanf floats.
I had to cherry pick the following additional commits, due to the error 30014 occurring when joining th PU without them: 1366dd69d5a0578299dc69365db972b0341456d2 msvcrt: Update consumed in all scanf variants on end of input.
and c4ad7391956fcbfe7a1a9324ebda1e013e5f6edd msvcrt: Don't use ungetc when reading double in scanf.
I confirmed this is the issue by taking dlls/msvcrt/scanf.c and dlls/msvcrt/scanf.h as they are after commit:
66c9c358ae5c50fc246cf4a4e280b401a5fc730b msvcrt: Use parse_double for wcstod.
then replacing the latest wine.git HEAD with those files and recompiling. This resolved the green lighting issue,