From 0545f6811f1f72c78e91ba892108edaf82a6bd6a Mon Sep 17 00:00:00 2001 From: dickelbeck Date: Wed, 1 Oct 2008 16:05:20 +0000 Subject: [PATCH] track locale switching better in the event of errors --- pcbnew/gen_modules_placefile.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pcbnew/gen_modules_placefile.cpp b/pcbnew/gen_modules_placefile.cpp index c30245719c..1983e54d63 100644 --- a/pcbnew/gen_modules_placefile.cpp +++ b/pcbnew/gen_modules_placefile.cpp @@ -79,6 +79,7 @@ void WinEDA_PcbFrame::GenModulesPosition( wxCommandEvent& event ) wxString Title; FILE* fpFront = NULL; FILE* fpBack = NULL; + bool switchedLocale = false; /* Calcul des echelles de conversion */ float conv_unit = 0.0001; /* unites = INCHES */ @@ -159,6 +160,7 @@ void WinEDA_PcbFrame::GenModulesPosition( wxCommandEvent& event ) // Switch the locale to standard C (needed to print floating point numbers like 1.3) SetLocaleTo_C_standard( ); + switchedLocale = true; /* Affichage du bilan : */ MsgPanel->EraseMsgBox(); @@ -264,7 +266,6 @@ void WinEDA_PcbFrame::GenModulesPosition( wxCommandEvent& event ) fputs( "## End\n", fpBack ); MyFree( Liste ); - SetLocaleTo_Default( ); // revert to the current locale msg = frontLayerName + wxT( " File: " ) + fnFront; @@ -274,6 +275,9 @@ void WinEDA_PcbFrame::GenModulesPosition( wxCommandEvent& event ) DisplayInfo( this, msg ); exit: + if( switchedLocale ) + SetLocaleTo_Default( ); // revert to the current locale + if( fpFront ) fclose( fpFront );