← Back to team overview

kicad-developers team mailing list archive

Re: PATCH: fix kicad2step non-ASCII filename problem in MinGW

 

On Wed, Mar 8, 2017 at 12:40 AM, Wayne Stambaugh <stambaughw@xxxxxxxxx> wrote:
> Cirilo,
>
> Just to be sure I have this correct,  I need to apply this patch to the
> master branch and build oce with the previous patch you sent correct?
> What I intend to do is apply this patch and add the mingw-oce patch to
> our patches folder.
>

That's right: kicad2step_fix_utf8_B.patch to patch KiCad and for OCE
the hack which I sent earlier. Just to remind everyone: the OCE
patch is for 0.17.3 and it is meant for MinGW only; it will break
any other build. The OCE  patch was quite intrusive and I couldn't see
any reasonable way to construct it to maintain build compatibility across
platform+compilers.

- Cirilo


> @Orson, didn't you create the oce PKGBUILD file for the msys2 project?
> If so, would you please add this patch to the PKGBUILD and submit a pull
> request to fix this so we don't have to build oce to have a UTF8 file
> support on windows.
>
> Thanks,
>
> Wayne
>
>
> On 3/7/2017 1:07 AM, Cirilo Bernardo wrote:
>> The attached patch is the latest version and fixes the non-ASCII
>> filename chars issue in kicad2step. If OCE is built in MinGW
>> with the hack I provided then everything works as expected
>> under Windows+MinGW.
>>
>> The sole difference with the previous patch is that kicad2step.cpp
>> was modified to replace:
>>
>> wxIMPLEMENT_APP_CONSOLE( KICAD2MCAD );
>>
>> with
>>
>> wxIMPLEMENT_APP( KICAD2MCAD );
>>
>> I don't understand why one works but not the other. The
>> CONSOLE version results in a main( int, char** ) type of
>> entry point and the Windows CRT converts UTF16 to ASCII,
>> which naturally fails for most UTF16 code points. I presume
>> a similar problem will exist for other external tools such as
>> idf2vrml.
>>
>> I guess for now we have to look at this as a workaround for
>> a bug in wxWidgets + MinGW. I suspect things start to go
>> wrong in wx/app.h:
>>
>> #if wxUSE_UNICODE && defined(__VISUALC__)
>>     #define wxIMPLEMENT_WXWIN_MAIN_CONSOLE                                    \
>>         int wmain(int argc, wchar_t **argv)                                   \
>>         {                                                                     \
>>             wxDISABLE_DEBUG_SUPPORT();                                        \
>>                                                                               \
>>             return wxEntry(argc, argv);                                       \
>>         }
>> #else // Use standard main()
>>     #define wxIMPLEMENT_WXWIN_MAIN_CONSOLE                                    \
>>         int main(int argc, char **argv)                                       \
>>         {                                                                     \
>>             wxDISABLE_DEBUG_SUPPORT();                                        \
>>                                                                               \
>>             return wxEntry(argc, argv);                                       \
>>         }
>> #endif
>>
>> I tried to change #if wxUSE_UNICODE && defined(__VISUALC__)
>> to include __MINGW32__ and __MINGW64__, but a subsequent
>> build told me WinMain() was not found. I gave up trying to find
>> the specific problem at that point.
>>
>> - Cirilo
>>
>>
>> On Sun, Mar 5, 2017 at 3:52 PM, Cirilo Bernardo
>> <cirilo.bernardo@xxxxxxxxx> wrote:
>>> This patch fixes the non-ASCII filename problem in
>>> Windows+MinGW.
>>>
>>> When this patch is applied, and OCE is built under
>>> MinGW with the patch I previously supplied, all
>>> 3D model viewing and STEP export appear to work
>>> mostly as expected. There is one remaining
>>> issue to resolve which is correctly passing the
>>> UTF8 filename from pcbnew to kicad2step and
>>> ensuring that the appropriate output file is created.
>>> At the moment I'm not sure if the problem is in
>>> kicad2step or my hack of OCE, but I'm looking
>>> into it.
>>>
>>> - Cirilo
>>>
>>>
>>> _______________________________________________
>>> Mailing list: https://launchpad.net/~kicad-developers
>>> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
>>> Unsubscribe : https://launchpad.net/~kicad-developers
>>> More help   : https://help.launchpad.net/ListHelp
>
> _______________________________________________
> Mailing list: https://launchpad.net/~kicad-developers
> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~kicad-developers
> More help   : https://help.launchpad.net/ListHelp


References