Fix bug in gEDA footprint library parser and OpenSSL version CMake file. (fixes lp:1427917)

* Fixed incorrect parameter ordering in gEDA footprint library parser
  which read drill diameter, pad clearance and solder mask clearance.
* Fix FindOpenSSL.cmake version detect bug which was exposed by OpenSSL
  version 1.0.2.
This commit is contained in:
Wayne Stambaugh 2015-03-04 14:46:06 -05:00
parent 8d6e75fce6
commit d13912c26a
2 changed files with 17 additions and 7 deletions

View File

@ -294,6 +294,8 @@ if (OPENSSL_INCLUDE_DIR)
# indicates the bug fix state, which 00 -> nothing, 01 -> a, 02 -> b and so
# on.
message(STATUS "OPENSSL_VERSION_STR=${openssl_version_str}")
string(REGEX REPLACE "^.*OPENSSL_VERSION_NUMBER[\t ]+0x([0-9a-fA-F])([0-9a-fA-F][0-9a-fA-F])([0-9a-fA-F][0-9a-fA-F])([0-9a-fA-F][0-9a-fA-F])([0-9a-fA-F]).*$"
"\\1;\\2;\\3;\\4;\\5" OPENSSL_VERSION_LIST "${openssl_version_str}")
list(GET OPENSSL_VERSION_LIST 0 OPENSSL_VERSION_MAJOR)

View File

@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2012 Wayne Stambaugh <stambaughw@verizon.net>
* Copyright (C) 1992-2012 KiCad Developers, see change_log.txt for contributors.
* Copyright (C) 1992-2015 KiCad Developers, see change_log.txt for contributors.
*
*
* This program is free software; you can redistribute it and/or
@ -495,6 +495,9 @@ MODULE* GPCB_FPL_CACHE::parseMODULE( LINE_READER* aLineReader ) throw( IO_ERROR,
conv_unit = NEW_GPCB_UNIT_CONV;
}
wxLogTrace( traceFootprintLibrary, wxT( "%s parameter count = %d." ),
GetChars( parameters[0] ), paramCnt );
// Parse a line with format: ElementLine [X1 Y1 X2 Y2 Thickness]
if( parameters[0].CmpNoCase( wxT( "ElementLine" ) ) == 0 )
{
@ -681,20 +684,25 @@ MODULE* GPCB_FPL_CACHE::parseMODULE( LINE_READER* aLineReader ) throw( IO_ERROR,
wxPoint padPos( parseInt( parameters[2], conv_unit ),
parseInt( parameters[3], conv_unit ) );
int drillSize = parseInt( parameters[5], conv_unit );
int padSize = padSize = parseInt( parameters[4], conv_unit );
pad->SetDrillSize( wxSize( drillSize, drillSize ) );
pad->SetSize( wxSize( padSize, padSize ) );
int padSize = parseInt( parameters[4], conv_unit );
int drillSize = 0;
// Get the pad clearance and the solder mask clearance.
if( paramCnt == 13 )
// Get the pad clearance, solder mask clearance, and drill size.
if( paramCnt == 12 )
{
pad->SetLocalClearance( parseInt( parameters[5], conv_unit ) );
pad->SetLocalSolderMaskMargin( parseInt( parameters[6], conv_unit ) );
drillSize = parseInt( parameters[7], conv_unit );
}
else
{
drillSize = parseInt( parameters[5], conv_unit );
}
pad->SetSize( wxSize( padSize, padSize ) );
pad->SetDrillSize( wxSize( drillSize, drillSize ) );
padPos += module->GetPosition();
pad->SetPos0( padPos );
pad->SetPosition( padPos );