From be69f7ad209a7eb7ddd2bdccff62fbfaf3b7c609 Mon Sep 17 00:00:00 2001 From: Wayne Stambaugh Date: Mon, 6 May 2013 13:57:18 -0400 Subject: [PATCH] Fix bug when footprint library file names contain dots. (fixes lp:593989) --- common/footprint_info.cpp | 31 ++++++++++++++++++++++---- cvpcb/class_DisplayFootprintsFrame.cpp | 5 ++--- 2 files changed, 29 insertions(+), 7 deletions(-) diff --git a/common/footprint_info.cpp b/common/footprint_info.cpp index 84c387ad44..9daa2072a5 100644 --- a/common/footprint_info.cpp +++ b/common/footprint_info.cpp @@ -1,3 +1,27 @@ +/* + * This program source code file is part of KiCad, a free EDA CAD application. + * + * Copyright (C) 2011 Jean-Pierre Charras, + * Copyright (C) 1992-2011 KiCad Developers, see AUTHORS.txt for contributors. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, you may find one here: + * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html + * or you may search the http://www.gnu.org website for the version 2 license, + * or you may write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + */ + /** * @file footprint_info.cpp */ @@ -52,15 +76,14 @@ bool FOOTPRINT_LIST::ReadFootprintFiles( wxArrayString& aFootprintsLibNames ) // Parse Libraries Listed for( unsigned ii = 0; ii < aFootprintsLibNames.GetCount(); ii++ ) { - wxFileName filename = aFootprintsLibNames[ii]; - - filename.SetExt( LegacyFootprintLibPathExtension ); + wxFileName filename( wxEmptyString, aFootprintsLibNames[ii], + LegacyFootprintLibPathExtension ); wxString libPath = wxGetApp().FindLibraryPath( filename ); if( !libPath ) { - m_filesNotFound << filename.GetFullName() << wxT("\n"); + m_filesNotFound << filename.GetFullName() << wxT( "\n" ); continue; } diff --git a/cvpcb/class_DisplayFootprintsFrame.cpp b/cvpcb/class_DisplayFootprintsFrame.cpp index 3eb7beb15a..71d334b868 100644 --- a/cvpcb/class_DisplayFootprintsFrame.cpp +++ b/cvpcb/class_DisplayFootprintsFrame.cpp @@ -481,9 +481,8 @@ MODULE* DISPLAY_FOOTPRINTS_FRAME::Get_Module( const wxString& aFootprintName ) for( unsigned i = 0; i < parent->m_ModuleLibNames.GetCount(); ++i ) { - wxFileName fn = parent->m_ModuleLibNames[i]; - - fn.SetExt( LegacyFootprintLibPathExtension ); + wxFileName fn( wxEmptyString, parent->m_ModuleLibNames[i], + LegacyFootprintLibPathExtension ); wxString libPath = wxGetApp().FindLibraryPath( fn );