From acb2de0554f379e2bf4af9fa291b28f214bf66d0 Mon Sep 17 00:00:00 2001 From: Seth Hillbrand <seth@kipro-pcb.com> Date: Wed, 13 Sep 2023 07:27:53 -0700 Subject: [PATCH] Fix issue with clang and older gcc Not all compilers support c++17 yet so we can't use the floating point version of from_chars Fixes https://gitlab.com/kicad/code/kicad/-/issues/15633 --- gerbview/excellon_read_drill_file.cpp | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/gerbview/excellon_read_drill_file.cpp b/gerbview/excellon_read_drill_file.cpp index bc214b3b0f..3ba97272b3 100644 --- a/gerbview/excellon_read_drill_file.cpp +++ b/gerbview/excellon_read_drill_file.cpp @@ -409,12 +409,8 @@ bool EXCELLON_IMAGE::TestFileIsExcellon( const wxString& aFullFileName ) else { double x_val; - char* start = letter + 1; - char* end = letter + strlen( letter ); - std::from_chars_result res = std::from_chars( start, end, x_val ); - - if( res.ec != std::errc::invalid_argument ) + if( wxString( letter + 1 ).ToCDouble( &x_val ) ) foundT = true; } } @@ -423,24 +419,16 @@ bool EXCELLON_IMAGE::TestFileIsExcellon( const wxString& aFullFileName ) if( ( letter = strstr( line, "X" ) ) != nullptr ) { double x_val; - char* start = letter + 1; - char* end = letter + strlen( letter ); - std::from_chars_result res = std::from_chars( start, end, x_val ); - - if( res.ec != std::errc::invalid_argument ) + if( wxString( letter + 1 ).ToCDouble( &x_val ) ) foundX = true; } if( ( letter = strstr( line, "Y" ) ) != nullptr ) { double x_val; - char* start = letter + 1; - char* end = letter + strlen( letter ); - std::from_chars_result res = std::from_chars( start, end, x_val ); - - if( res.ec != std::errc::invalid_argument ) + if( wxString( letter + 1 ).ToCDouble( &x_val ) ) foundY = true; } }