Download the attached project and unzip it.
Open the project and compile, every time you compile it recompiles all the sources.
Also the project executable cannot be run and "Open containing folder" doesn't work.
I'm using C::B svn 11575 with wx3.0.4 on debian testing.
Interesting. I can reproduce this. Thanks for the example.
In MSW all works OK, probably because my locale includes the o-acute char in the 8-bit character set.
In Debian probably the problem resides in failed conversions from wxString to char * using mb_str(). The recompilation issue in particular may be related to a failed conversion in line 1073 of directcommands.cpp (I don't have Debian at hand).
Last edit: Miguel Gimenez 2019-03-08
Tested in Ubuntu; The presence of the o-acute makes mb_str() fail and depsTimeStamp() receives a pointer to an empty string.
The main problem is in depslib, it assumes 8-bit chars when processing the file names and paths. It can be modified to understand wide chars, but this involves a lot of work and possibly the changes won't be accepted.
Last edit: Miguel Gimenez 2019-03-11
Does CB call
setlocale(LC_CTYPE, "")
somewhere at startup? If it does not, wxString::mb_str() will be limited to plain ASCII (default "C" locale), at least on linux.Even if depslib accepted wide chars, it would have to convert them to the users locale at some point, facing the same issues.
Last edit: osdt 2019-05-14
The depslib has other issue under Windows, if I remember correctly, there is an issue that the depslib can't handle non-English characters. It is already reported in our SF's ticket system.
Another issue I see is that the resource compiler of MinGW-W64 can't handle rc file path which has space chars, this cause very annoying issue if the user name has a space. For example, a Windows user name has like "abc def", then the Path
C:\Users\abc def\xxx
, and I see the resource compiler just failed.It's the same issue discussed here. I have looked for that ticket but haven't found any.
Regarding the resource compiler issue, my MinGW resource compiler (windres.exe from GNU) is called by C::B using the 8.3 short names, so there is no problem with spaces.
Fixed in [r12761].
Related
Commit: [r12761]