Commit 3f8c0910 authored by unknown's avatar unknown Committed by jean-pierre charras
Browse files

export IDF without empty PLACEMENT section

parent 76436943
Loading
Loading
Loading
Loading
+26 −3
Original line number Diff line number Diff line
@@ -3053,6 +3053,27 @@ void IDF3_BOARD::writeBoardFile( const std::string& aFileName )
            std::map< std::string, IDF3_COMPONENT*>::iterator itcs = components.begin();
            std::map< std::string, IDF3_COMPONENT*>::iterator itce = components.end();

            // determine if there are any component outlines at all and avoid
            // writing an empty PLACEMENT section if there are no outlines.
            // this will cost a little time but prevents software such as
            // CircuitWorks from segfaulting on an empty section.

            bool hasOutlines = false;

            while( itcs != itce )
            {
                if( itcs->second->GetOutlinesSize() > 0 )
                {
                    itcs = components.begin();
                    hasOutlines = true;
                    break;
                }

                ++itcs;
            }

            if( hasOutlines )
            {
                brd << ".PLACEMENT\n";

                while( itcs != itce )
@@ -3065,6 +3086,8 @@ void IDF3_BOARD::writeBoardFile( const std::string& aFileName )
            }

        }

    }
    catch( const std::exception& e )
    {
        brd.exceptions( std::ios_base::goodbit );