http://bugs.winehq.org/show_bug.cgi?id=2029
Summary: dlls/shell32/authors.c is generated broken when LC_ALL is UTF8 Product: Wine Version: 20040213 Platform: PC URL: http://bugs.gentoo.org/show_bug.cgi?id=41947 OS/Version: Linux Status: UNCONFIRMED Severity: major Priority: P2 Component: wine-misc AssignedTo: wine-bugs@winehq.org ReportedBy: ed@catmur.co.uk
... authors.c:483: error: (near initialization for `SHELL_Authors[481]') authors.c:483: error: syntax error before string constant authors.c:613: error: stray '\305' in program authors.c:613: error: stray '\366' in program authors.c:613: error: `ngstr' undeclared here (not in a function) authors.c:613: error: initializer element is not constant authors.c:613: error: (near initialization for `SHELL_Authors[612]') authors.c:613: error: syntax error before "m" make: *** [authors.o] Error 1
Offending lines in authors.c are as these:
"Jean-Bruno Luginb",ühl "Per ",Ångström
authors.c is autogenerated on build by this command:
(LANG=C; echo 'const char * const SHELL_Authors[] = {' && \ sed -e '1,2d' -e 's/(.*)/ "\1",/' ../../AUTHORS && \ echo ' 0 };') >authors.c || (rm -f authors.c && false)
As ../../AUTHORS uses an ISO-8859 encoding, the accented characters fall outside the UTF-8 collating locale's set of printing characters and thus are not matched by `.' in the sed command.
Prepending "LC_ALL=C" to the above sed command in the Makefile fixes this issue.
This may have been a bug for some time; I postponed switching to UTF-8 until en_GB.utf8 reached the Gentoo glibc.