Menu

#800 Always recompiles sources when project path contains non ascii characters

Release_xx.yy
fixed
nobody
None
Bug_Report
2022-03-24
2019-02-18
No

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.

1 Attachments

Discussion

  • Teodor Petrov

    Teodor Petrov - 2019-02-19

    Interesting. I can reproduce this. Thanks for the example.

     
  • Miguel Gimenez

    Miguel Gimenez - 2019-03-08

    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).

        depsTimeStamp(pfd.source_file_absolute_native.mb_str(), &timeSrc);
    
     

    Last edit: Miguel Gimenez 2019-03-08
  • Miguel Gimenez

    Miguel Gimenez - 2019-03-11

    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
    • osdt

      osdt - 2019-05-14

      The presence of the o-acute makes mb_str() fail and depsTimeStamp() receives a pointer to an empty string.

      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
  • ollydbg

    ollydbg - 2019-03-11

    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.

     
    • Miguel Gimenez

      Miguel Gimenez - 2019-03-12

      there is an issue that the depslib can't handle non-English characters

      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.

       
  • Teodor Petrov

    Teodor Petrov - 2020-07-16
    • Milestone: Undefined --> Release_xx.yy
     
  • Miguel Gimenez

    Miguel Gimenez - 2022-03-24
    • status: open --> fixed
     
  • Miguel Gimenez

    Miguel Gimenez - 2022-03-24

    Fixed in [r12761].

     

    Related

    Commit: [r12761]


Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.