Loading cvpcb/cvstruct.h +0 −4 Original line number Original line Diff line number Diff line Loading @@ -115,11 +115,7 @@ public: int SaveNetList( const wxString& FullFileName ); int SaveNetList( const wxString& FullFileName ); int SaveComponentList( const wxString& FullFileName ); int SaveComponentList( const wxString& FullFileName ); bool ReadNetList(); bool ReadNetList(); int rdpcad(); int ReadSchematicNetlist(); int ReadSchematicNetlist(); int ReadFootprintFilterList( FILE* f ); int ReadViewlogicWirList(); int ReadViewlogicNetList(); void LoadProjectFile( const wxString& FileName ); void LoadProjectFile( const wxString& FileName ); void SaveProjectFile( const wxString& fileName ); void SaveProjectFile( const wxString& fileName ); virtual void LoadSettings(); virtual void LoadSettings(); Loading cvpcb/readschematicnetlist.cpp +97 −106 Original line number Original line Diff line number Diff line Loading @@ -18,11 +18,14 @@ #include "protos.h" #include "protos.h" #include "cvstruct.h" #include "cvstruct.h" #include "richio.h" #define SEPARATEUR '|' /* Separator character in NetList */ #define SEPARATEUR '|' /* Separator character in NetList */ static int ReadPinConnection( FILE* f, COMPONENT* CurrentCmp ); static int ReadPinConnection( FILE_LINE_READER& aNetlistReader, COMPONENT* CurrentCmp ); static int ReadFootprintFilterList( FILE_LINE_READER& aNetlistReader, COMPONENT_LIST& aComponentsList ); /* Sort the list alphabetically by component and and returns /* Sort the list alphabetically by component and and returns Loading Loading @@ -86,17 +89,12 @@ static int ReadPinConnection( FILE* f, COMPONENT* CurrentCmp ); int WinEDA_CvpcbFrame::ReadSchematicNetlist() int WinEDA_CvpcbFrame::ReadSchematicNetlist() { { char alim[1024]; char alim[1024]; int i, k, l; int idx, jj, k, l; char* LibName; char* LibName; char Line[BUFFER_CHAR_SIZE + 1]; char cbuffer[BUFFER_CHAR_SIZE]; /* temporary storage */ wxString component_reference; /* buffer for component reference (U1, R4...) */ wxString schematic_timestamp; /* buffer for component time stamp */ wxString footprint_name; /* buffer for component footprint field */ wxString component_value; /* buffer for component values (470K, 22nF ...) */ char* ptchar; char* ptchar; COMPONENT* Cmp; COMPONENT* Cmp; FILE* source; FILE* source; char* result; m_modified = false; m_modified = false; m_isEESchemaNetlist = false; m_isEESchemaNetlist = false; Loading @@ -116,22 +114,26 @@ int WinEDA_CvpcbFrame::ReadSchematicNetlist() return -1; return -1; } } FILE_LINE_READER netlistReader( source, BUFFER_CHAR_SIZE ); char* Line = netlistReader; /* Read the file header (must be "( { OrCAD PCB" or "({ OrCAD PCB" ) /* Read the file header (must be "( { OrCAD PCB" or "({ OrCAD PCB" ) * or "# EESchema Netlist" * or "# EESchema Netlist" */ */ result = fgets( Line, BUFFER_CHAR_SIZE, source ); netlistReader.ReadLine( ); /* test for netlist type PCB2 */ /* test for netlist type PCB2 */ i = strnicmp( Line, "( {", 3 ); idx = strnicmp( Line, "( {", 3 ); if( i != 0 ) if( idx != 0 ) i = strnicmp( Line, "({", 2 ); idx = strnicmp( Line, "({", 2 ); if( i != 0 ) if( idx != 0 ) { { i = strnicmp( Line, "# EESchema", 7 ); /* net type EESchema */ idx = strnicmp( Line, "# EESchema", 7 ); /* net type EESchema */ if( i == 0 ) if( idx == 0 ) m_isEESchemaNetlist = TRUE; m_isEESchemaNetlist = true; } } if( i != 0 ) if( idx != 0 ) { { wxString msg, Lineconv = CONV_FROM_UTF8( Line ); wxString msg, Lineconv = CONV_FROM_UTF8( Line ); msg.Printf( _( "Unknown file format <%s>" ), Lineconv.GetData() ); msg.Printf( _( "Unknown file format <%s>" ), Lineconv.GetData() ); Loading @@ -148,56 +150,54 @@ int WinEDA_CvpcbFrame::ReadSchematicNetlist() { { /* Search the beginning of a component description */ /* Search the beginning of a component description */ if( fgets( Line, BUFFER_CHAR_SIZE, source ) == 0 ) if( netlistReader.ReadLine( ) == 0 ) break; break; /* Remove blanks */ /* Remove blanks */ i = 0; while( Line[i] == ' ' ) idx = 0; i++; while( Line[idx] == ' ' ) idx++; /* remove empty lines : */ /* remove empty lines : */ if( Line[i] < ' ' ) if( Line[idx] < ' ' ) continue; continue; if( strnicmp( &Line[i], "{ Allowed footprints", 20 ) == 0 ) if( strnicmp( &Line[idx], "{ Allowed footprints", 20 ) == 0 ) { { ReadFootprintFilterList( source ); ReadFootprintFilterList( netlistReader, m_components ); continue; continue; } } if( strnicmp( &Line[i], "( ", 2 ) != 0 ) if( strnicmp( &Line[idx], "( ", 2 ) != 0 ) continue; continue; /*******************************/ /*******************************/ /* Component description found */ /* Component description found */ /*******************************/ /*******************************/ while( Line[i] != ' ' ) Cmp = new COMPONENT(); // Creates the new component storage i++; while( Line[i] == ' ' ) while( Line[idx] != ' ' ) i++; idx++; /* i points the beginning of the schematic time stamp */ while( Line[idx] == ' ' ) idx++; schematic_timestamp.Empty(); /* idx points the beginning of the schematic time stamp */ while( Line[i] != ' ' ) jj = 0; schematic_timestamp.Append( Line[i++] ); while( Line[idx] != ' ' && Line[idx] ) cbuffer[jj++] = Line[idx++]; cbuffer[jj] = 0; Cmp->m_TimeStamp = CONV_FROM_UTF8(cbuffer); /* search val/ref.lib */ /* search val/ref.lib */ while( Line[i] == ' ' ) while( Line[idx] == ' ' ) i++; idx++; /* i points the component value */ LibName = Line + i; component_reference.Empty(); /* idx points the component value */ footprint_name.Empty(); LibName = Line + idx; component_value.Empty(); memset( alim, 0, sizeof(alim) ); /* Read value */ /* Read value */ ptchar = strstr( &Line[idx], " " ); // Search end of value field (space) ptchar = strstr( &Line[i], " " ); // Search end of value field (space) if( ptchar == 0 ) if( ptchar == 0 ) { { wxString msg; wxString msg; Loading @@ -208,62 +208,57 @@ int WinEDA_CvpcbFrame::ReadSchematicNetlist() else else k = ptchar - Line; k = ptchar - Line; for( ; i < k; i++ ) for( jj = 0; idx < k; idx++ ) { { if( Line[i] == SEPARATEUR ) if( Line[idx] == SEPARATEUR ) break; break; footprint_name.Append( Line[i] ); cbuffer[jj++] = Line[idx]; } } cbuffer[jj] = 0; Cmp->m_Module = CONV_FROM_UTF8(cbuffer); if( (Line[++i] == '(') && (Line[k - 1] == ')' ) ) if( (Line[++idx] == '(') && (Line[k - 1] == ')' ) ) { { i++; l = 0; while( k - 1 > i ) idx++; l = 0; alim[l++] = Line[i++]; while( k - 1 > idx ) alim[l++] = Line[idx++]; } } else else i = k; idx = k; /* Search component reference */ /* Search component reference */ while( Line[i] != ' ' ) while( Line[idx] != ' ' && Line[idx] ) i++; idx++; /* goto end of value field */ /* goto end of value field */ while( Line[i] == ' ' ) while( Line[idx] == ' ' && Line[idx] ) i++; idx++; /* goto beginning of reference */ /* goto beginning of reference */ for( ; ; i++ ) for( jj = 0; ; idx++ ) { { #if defined(KICAD_GOST) if( Line[idx] == ' ' || Line[idx] == 0) if( Line[i] == ' ' ) #else if( Line[i] <= ' ' ) #endif break; break; component_reference.Append( Line[i] ); cbuffer[jj++] = Line[idx]; } } cbuffer[jj] = 0; Cmp->m_Reference = CONV_FROM_UTF8(cbuffer); /* Search component value */ /* Search component value */ while( Line[i] == ' ' ) while( Line[idx] == ' ' && Line[idx] ) i++; idx++; /** goto beginning of value */ /** goto beginning of value */ for( ; ; i++ ) for( jj = 0 ; ; idx++ ) { { #if defined(KICAD_GOST) if( (Line[idx] == ' ') || (Line[idx] == '\n') || (Line[idx] == '\r') || Line[idx] == 0) if( (Line[i] == ' ') || (Line[i] == '\n') || (Line[i] == '\r') ) #else if( Line[i] <= ' ' ) #endif break; break; component_value.Append( Line[i] ); cbuffer[jj++] = Line[idx]; } } cbuffer[jj] = 0; Cmp->m_Value = CONV_FROM_UTF8(cbuffer); /* Store info for this component */ Cmp = new COMPONENT(); Cmp->m_Reference = component_reference; Cmp->m_Value = component_value; m_components.push_back( Cmp ); m_components.push_back( Cmp ); if( m_isEESchemaNetlist ) /* copy footprint name: */ if( m_isEESchemaNetlist ) /* copy footprint name: */ Loading @@ -277,9 +272,8 @@ int WinEDA_CvpcbFrame::ReadSchematicNetlist() } } } } } } Cmp->m_TimeStamp = schematic_timestamp; ReadPinConnection( source, Cmp ); ReadPinConnection( netlistReader, Cmp ); } } fclose( source ); fclose( source ); Loading @@ -290,15 +284,15 @@ int WinEDA_CvpcbFrame::ReadSchematicNetlist() } } int WinEDA_CvpcbFrame::ReadFootprintFilterList( FILE* f ) int ReadFootprintFilterList( FILE_LINE_READER& aNetlistReader, COMPONENT_LIST& aComponentsList ) { { char Line[BUFFER_CHAR_SIZE + 1]; char* Line = aNetlistReader; wxString CmpRef; wxString CmpRef; COMPONENT* Cmp = NULL; COMPONENT* Cmp = NULL; for( ; ; ) for( ; ; ) { { if( fgets( Line, BUFFER_CHAR_SIZE, f ) == 0 ) if( aNetlistReader.ReadLine( ) == 0 ) break; break; if( strnicmp( Line, "$endlist", 8 ) == 0 ) if( strnicmp( Line, "$endlist", 8 ) == 0 ) { { Loading @@ -311,14 +305,13 @@ int WinEDA_CvpcbFrame::ReadFootprintFilterList( FILE* f ) if( strnicmp( Line, "$component", 10 ) == 0 ) // New component ref found if( strnicmp( Line, "$component", 10 ) == 0 ) // New component ref found { { CmpRef = CONV_FROM_UTF8( Line + 11 ); CmpRef = CONV_FROM_UTF8( Line + 11 ); CmpRef.Trim( TRUE ); CmpRef.Trim( true ); CmpRef.Trim( FALSE ); CmpRef.Trim( false ); /* Search the new component in list */ /* Search the new component in list */ BOOST_FOREACH( COMPONENT& component, m_components ) BOOST_FOREACH( COMPONENT & component, aComponentsList ) { { Cmp = &component; Cmp = &component; if( Cmp->m_Reference == CmpRef ) if( Cmp->m_Reference == CmpRef ) break; break; } } Loading @@ -326,8 +319,8 @@ int WinEDA_CvpcbFrame::ReadFootprintFilterList( FILE* f ) else if( Cmp ) else if( Cmp ) { { wxString fp = CONV_FROM_UTF8( Line + 1 ); wxString fp = CONV_FROM_UTF8( Line + 1 ); fp.Trim( FALSE ); fp.Trim( false ); fp.Trim( TRUE ); fp.Trim( true ); Cmp->m_FootprintFilter.Add( fp ); Cmp->m_FootprintFilter.Add( fp ); } } } } Loading @@ -336,20 +329,18 @@ int WinEDA_CvpcbFrame::ReadFootprintFilterList( FILE* f ) } } int ReadPinConnection( FILE* f, COMPONENT* Cmp ) int ReadPinConnection( FILE_LINE_READER& aNetlistReader, COMPONENT* Cmp ) { { int i, jj; int i, jj; wxString numpin; char* Line = aNetlistReader; wxString net; char cbuffer[BUFFER_CHAR_SIZE]; char Line[BUFFER_CHAR_SIZE + 1]; PIN* Pin = NULL; for( ; ; ) for( ; ; ) { { /* Find beginning of description. */ /* Find beginning of description. */ for( ; ; ) for( ; ; ) { { if( fgets( Line, BUFFER_CHAR_SIZE, f ) == 0 ) if( aNetlistReader.ReadLine( ) == 0 ) return -1; return -1; /* Remove blanks from the beginning of the line. */ /* Remove blanks from the beginning of the line. */ Loading @@ -370,31 +361,31 @@ int ReadPinConnection( FILE* f, COMPONENT* Cmp ) if( Line[i] == ')' ) if( Line[i] == ')' ) return 0; return 0; net.Empty(); PIN * Pin = new PIN(); numpin.Empty(); /* Read pin name, 4 letters */ /* Read pin name, usually 4 letters */ for( jj = 0; jj < 4; jj++, i++ ) for( jj = 0; ; i++ ) { { if( Line[i] == ' ' ) if( Line[i] == ' ' || Line[i] == 0 ) break; break; numpin.Append( Line[i] ); cbuffer[jj++] = Line[i]; } } cbuffer[jj] = 0; Pin->m_Number = CONV_FROM_UTF8(cbuffer); /* Read netname */ /* Read netname */ while( Line[i] == ' ' ) while( Line[i] == ' ' ) i++; i++; for( ; ; i++ ) for( jj = 0; ; i++ ) { { if( Line[i] <= ' ' ) if( Line[i] == ' ' || Line[i] == '\n' || Line[i] == '\r' || Line[i] == 0 ) break; break; net.Append( Line[i] ); cbuffer[jj++] = Line[i]; } } cbuffer[jj] = 0; Pin->m_Net = CONV_FROM_UTF8(cbuffer); Pin = new PIN(); Pin->m_Number = numpin; Pin->m_Net = net; Cmp->m_Pins.push_back( Pin ); Cmp->m_Pins.push_back( Pin ); } } } } Loading pcbnew/tool_pcb.cpp +2 −13 Original line number Original line Diff line number Diff line Loading @@ -159,21 +159,10 @@ void WinEDA_PcbFrame::PrepareLayerIndicator() if( m_HToolBar ) if( m_HToolBar ) { { #if wxCHECK_VERSION( 2, 8, 3 ) & !defined(__WXX11__) m_HToolBar->SetToolBitmap( ID_AUX_TOOLBAR_PCB_SELECT_LAYER_PAIR, m_HToolBar->SetToolNormalBitmap( ID_AUX_TOOLBAR_PCB_SELECT_LAYER_PAIR, *LayerPairBitmap ); *LayerPairBitmap ); #else int pos = m_HToolBar->GetToolPos( ID_AUX_TOOLBAR_PCB_SELECT_LAYER_PAIR ); if( pos != wxNOT_FOUND ) { m_HToolBar->DeleteTool( ID_AUX_TOOLBAR_PCB_SELECT_LAYER_PAIR ); m_HToolBar->InsertTool( pos, ID_AUX_TOOLBAR_PCB_SELECT_LAYER_PAIR, *LayerPairBitmap, wxNullBitmap, false, NULL, SEL_LAYER_HELP ); m_HToolBar->Realize(); m_HToolBar->Realize(); } } #endif } } } Loading Loading
cvpcb/cvstruct.h +0 −4 Original line number Original line Diff line number Diff line Loading @@ -115,11 +115,7 @@ public: int SaveNetList( const wxString& FullFileName ); int SaveNetList( const wxString& FullFileName ); int SaveComponentList( const wxString& FullFileName ); int SaveComponentList( const wxString& FullFileName ); bool ReadNetList(); bool ReadNetList(); int rdpcad(); int ReadSchematicNetlist(); int ReadSchematicNetlist(); int ReadFootprintFilterList( FILE* f ); int ReadViewlogicWirList(); int ReadViewlogicNetList(); void LoadProjectFile( const wxString& FileName ); void LoadProjectFile( const wxString& FileName ); void SaveProjectFile( const wxString& fileName ); void SaveProjectFile( const wxString& fileName ); virtual void LoadSettings(); virtual void LoadSettings(); Loading
cvpcb/readschematicnetlist.cpp +97 −106 Original line number Original line Diff line number Diff line Loading @@ -18,11 +18,14 @@ #include "protos.h" #include "protos.h" #include "cvstruct.h" #include "cvstruct.h" #include "richio.h" #define SEPARATEUR '|' /* Separator character in NetList */ #define SEPARATEUR '|' /* Separator character in NetList */ static int ReadPinConnection( FILE* f, COMPONENT* CurrentCmp ); static int ReadPinConnection( FILE_LINE_READER& aNetlistReader, COMPONENT* CurrentCmp ); static int ReadFootprintFilterList( FILE_LINE_READER& aNetlistReader, COMPONENT_LIST& aComponentsList ); /* Sort the list alphabetically by component and and returns /* Sort the list alphabetically by component and and returns Loading Loading @@ -86,17 +89,12 @@ static int ReadPinConnection( FILE* f, COMPONENT* CurrentCmp ); int WinEDA_CvpcbFrame::ReadSchematicNetlist() int WinEDA_CvpcbFrame::ReadSchematicNetlist() { { char alim[1024]; char alim[1024]; int i, k, l; int idx, jj, k, l; char* LibName; char* LibName; char Line[BUFFER_CHAR_SIZE + 1]; char cbuffer[BUFFER_CHAR_SIZE]; /* temporary storage */ wxString component_reference; /* buffer for component reference (U1, R4...) */ wxString schematic_timestamp; /* buffer for component time stamp */ wxString footprint_name; /* buffer for component footprint field */ wxString component_value; /* buffer for component values (470K, 22nF ...) */ char* ptchar; char* ptchar; COMPONENT* Cmp; COMPONENT* Cmp; FILE* source; FILE* source; char* result; m_modified = false; m_modified = false; m_isEESchemaNetlist = false; m_isEESchemaNetlist = false; Loading @@ -116,22 +114,26 @@ int WinEDA_CvpcbFrame::ReadSchematicNetlist() return -1; return -1; } } FILE_LINE_READER netlistReader( source, BUFFER_CHAR_SIZE ); char* Line = netlistReader; /* Read the file header (must be "( { OrCAD PCB" or "({ OrCAD PCB" ) /* Read the file header (must be "( { OrCAD PCB" or "({ OrCAD PCB" ) * or "# EESchema Netlist" * or "# EESchema Netlist" */ */ result = fgets( Line, BUFFER_CHAR_SIZE, source ); netlistReader.ReadLine( ); /* test for netlist type PCB2 */ /* test for netlist type PCB2 */ i = strnicmp( Line, "( {", 3 ); idx = strnicmp( Line, "( {", 3 ); if( i != 0 ) if( idx != 0 ) i = strnicmp( Line, "({", 2 ); idx = strnicmp( Line, "({", 2 ); if( i != 0 ) if( idx != 0 ) { { i = strnicmp( Line, "# EESchema", 7 ); /* net type EESchema */ idx = strnicmp( Line, "# EESchema", 7 ); /* net type EESchema */ if( i == 0 ) if( idx == 0 ) m_isEESchemaNetlist = TRUE; m_isEESchemaNetlist = true; } } if( i != 0 ) if( idx != 0 ) { { wxString msg, Lineconv = CONV_FROM_UTF8( Line ); wxString msg, Lineconv = CONV_FROM_UTF8( Line ); msg.Printf( _( "Unknown file format <%s>" ), Lineconv.GetData() ); msg.Printf( _( "Unknown file format <%s>" ), Lineconv.GetData() ); Loading @@ -148,56 +150,54 @@ int WinEDA_CvpcbFrame::ReadSchematicNetlist() { { /* Search the beginning of a component description */ /* Search the beginning of a component description */ if( fgets( Line, BUFFER_CHAR_SIZE, source ) == 0 ) if( netlistReader.ReadLine( ) == 0 ) break; break; /* Remove blanks */ /* Remove blanks */ i = 0; while( Line[i] == ' ' ) idx = 0; i++; while( Line[idx] == ' ' ) idx++; /* remove empty lines : */ /* remove empty lines : */ if( Line[i] < ' ' ) if( Line[idx] < ' ' ) continue; continue; if( strnicmp( &Line[i], "{ Allowed footprints", 20 ) == 0 ) if( strnicmp( &Line[idx], "{ Allowed footprints", 20 ) == 0 ) { { ReadFootprintFilterList( source ); ReadFootprintFilterList( netlistReader, m_components ); continue; continue; } } if( strnicmp( &Line[i], "( ", 2 ) != 0 ) if( strnicmp( &Line[idx], "( ", 2 ) != 0 ) continue; continue; /*******************************/ /*******************************/ /* Component description found */ /* Component description found */ /*******************************/ /*******************************/ while( Line[i] != ' ' ) Cmp = new COMPONENT(); // Creates the new component storage i++; while( Line[i] == ' ' ) while( Line[idx] != ' ' ) i++; idx++; /* i points the beginning of the schematic time stamp */ while( Line[idx] == ' ' ) idx++; schematic_timestamp.Empty(); /* idx points the beginning of the schematic time stamp */ while( Line[i] != ' ' ) jj = 0; schematic_timestamp.Append( Line[i++] ); while( Line[idx] != ' ' && Line[idx] ) cbuffer[jj++] = Line[idx++]; cbuffer[jj] = 0; Cmp->m_TimeStamp = CONV_FROM_UTF8(cbuffer); /* search val/ref.lib */ /* search val/ref.lib */ while( Line[i] == ' ' ) while( Line[idx] == ' ' ) i++; idx++; /* i points the component value */ LibName = Line + i; component_reference.Empty(); /* idx points the component value */ footprint_name.Empty(); LibName = Line + idx; component_value.Empty(); memset( alim, 0, sizeof(alim) ); /* Read value */ /* Read value */ ptchar = strstr( &Line[idx], " " ); // Search end of value field (space) ptchar = strstr( &Line[i], " " ); // Search end of value field (space) if( ptchar == 0 ) if( ptchar == 0 ) { { wxString msg; wxString msg; Loading @@ -208,62 +208,57 @@ int WinEDA_CvpcbFrame::ReadSchematicNetlist() else else k = ptchar - Line; k = ptchar - Line; for( ; i < k; i++ ) for( jj = 0; idx < k; idx++ ) { { if( Line[i] == SEPARATEUR ) if( Line[idx] == SEPARATEUR ) break; break; footprint_name.Append( Line[i] ); cbuffer[jj++] = Line[idx]; } } cbuffer[jj] = 0; Cmp->m_Module = CONV_FROM_UTF8(cbuffer); if( (Line[++i] == '(') && (Line[k - 1] == ')' ) ) if( (Line[++idx] == '(') && (Line[k - 1] == ')' ) ) { { i++; l = 0; while( k - 1 > i ) idx++; l = 0; alim[l++] = Line[i++]; while( k - 1 > idx ) alim[l++] = Line[idx++]; } } else else i = k; idx = k; /* Search component reference */ /* Search component reference */ while( Line[i] != ' ' ) while( Line[idx] != ' ' && Line[idx] ) i++; idx++; /* goto end of value field */ /* goto end of value field */ while( Line[i] == ' ' ) while( Line[idx] == ' ' && Line[idx] ) i++; idx++; /* goto beginning of reference */ /* goto beginning of reference */ for( ; ; i++ ) for( jj = 0; ; idx++ ) { { #if defined(KICAD_GOST) if( Line[idx] == ' ' || Line[idx] == 0) if( Line[i] == ' ' ) #else if( Line[i] <= ' ' ) #endif break; break; component_reference.Append( Line[i] ); cbuffer[jj++] = Line[idx]; } } cbuffer[jj] = 0; Cmp->m_Reference = CONV_FROM_UTF8(cbuffer); /* Search component value */ /* Search component value */ while( Line[i] == ' ' ) while( Line[idx] == ' ' && Line[idx] ) i++; idx++; /** goto beginning of value */ /** goto beginning of value */ for( ; ; i++ ) for( jj = 0 ; ; idx++ ) { { #if defined(KICAD_GOST) if( (Line[idx] == ' ') || (Line[idx] == '\n') || (Line[idx] == '\r') || Line[idx] == 0) if( (Line[i] == ' ') || (Line[i] == '\n') || (Line[i] == '\r') ) #else if( Line[i] <= ' ' ) #endif break; break; component_value.Append( Line[i] ); cbuffer[jj++] = Line[idx]; } } cbuffer[jj] = 0; Cmp->m_Value = CONV_FROM_UTF8(cbuffer); /* Store info for this component */ Cmp = new COMPONENT(); Cmp->m_Reference = component_reference; Cmp->m_Value = component_value; m_components.push_back( Cmp ); m_components.push_back( Cmp ); if( m_isEESchemaNetlist ) /* copy footprint name: */ if( m_isEESchemaNetlist ) /* copy footprint name: */ Loading @@ -277,9 +272,8 @@ int WinEDA_CvpcbFrame::ReadSchematicNetlist() } } } } } } Cmp->m_TimeStamp = schematic_timestamp; ReadPinConnection( source, Cmp ); ReadPinConnection( netlistReader, Cmp ); } } fclose( source ); fclose( source ); Loading @@ -290,15 +284,15 @@ int WinEDA_CvpcbFrame::ReadSchematicNetlist() } } int WinEDA_CvpcbFrame::ReadFootprintFilterList( FILE* f ) int ReadFootprintFilterList( FILE_LINE_READER& aNetlistReader, COMPONENT_LIST& aComponentsList ) { { char Line[BUFFER_CHAR_SIZE + 1]; char* Line = aNetlistReader; wxString CmpRef; wxString CmpRef; COMPONENT* Cmp = NULL; COMPONENT* Cmp = NULL; for( ; ; ) for( ; ; ) { { if( fgets( Line, BUFFER_CHAR_SIZE, f ) == 0 ) if( aNetlistReader.ReadLine( ) == 0 ) break; break; if( strnicmp( Line, "$endlist", 8 ) == 0 ) if( strnicmp( Line, "$endlist", 8 ) == 0 ) { { Loading @@ -311,14 +305,13 @@ int WinEDA_CvpcbFrame::ReadFootprintFilterList( FILE* f ) if( strnicmp( Line, "$component", 10 ) == 0 ) // New component ref found if( strnicmp( Line, "$component", 10 ) == 0 ) // New component ref found { { CmpRef = CONV_FROM_UTF8( Line + 11 ); CmpRef = CONV_FROM_UTF8( Line + 11 ); CmpRef.Trim( TRUE ); CmpRef.Trim( true ); CmpRef.Trim( FALSE ); CmpRef.Trim( false ); /* Search the new component in list */ /* Search the new component in list */ BOOST_FOREACH( COMPONENT& component, m_components ) BOOST_FOREACH( COMPONENT & component, aComponentsList ) { { Cmp = &component; Cmp = &component; if( Cmp->m_Reference == CmpRef ) if( Cmp->m_Reference == CmpRef ) break; break; } } Loading @@ -326,8 +319,8 @@ int WinEDA_CvpcbFrame::ReadFootprintFilterList( FILE* f ) else if( Cmp ) else if( Cmp ) { { wxString fp = CONV_FROM_UTF8( Line + 1 ); wxString fp = CONV_FROM_UTF8( Line + 1 ); fp.Trim( FALSE ); fp.Trim( false ); fp.Trim( TRUE ); fp.Trim( true ); Cmp->m_FootprintFilter.Add( fp ); Cmp->m_FootprintFilter.Add( fp ); } } } } Loading @@ -336,20 +329,18 @@ int WinEDA_CvpcbFrame::ReadFootprintFilterList( FILE* f ) } } int ReadPinConnection( FILE* f, COMPONENT* Cmp ) int ReadPinConnection( FILE_LINE_READER& aNetlistReader, COMPONENT* Cmp ) { { int i, jj; int i, jj; wxString numpin; char* Line = aNetlistReader; wxString net; char cbuffer[BUFFER_CHAR_SIZE]; char Line[BUFFER_CHAR_SIZE + 1]; PIN* Pin = NULL; for( ; ; ) for( ; ; ) { { /* Find beginning of description. */ /* Find beginning of description. */ for( ; ; ) for( ; ; ) { { if( fgets( Line, BUFFER_CHAR_SIZE, f ) == 0 ) if( aNetlistReader.ReadLine( ) == 0 ) return -1; return -1; /* Remove blanks from the beginning of the line. */ /* Remove blanks from the beginning of the line. */ Loading @@ -370,31 +361,31 @@ int ReadPinConnection( FILE* f, COMPONENT* Cmp ) if( Line[i] == ')' ) if( Line[i] == ')' ) return 0; return 0; net.Empty(); PIN * Pin = new PIN(); numpin.Empty(); /* Read pin name, 4 letters */ /* Read pin name, usually 4 letters */ for( jj = 0; jj < 4; jj++, i++ ) for( jj = 0; ; i++ ) { { if( Line[i] == ' ' ) if( Line[i] == ' ' || Line[i] == 0 ) break; break; numpin.Append( Line[i] ); cbuffer[jj++] = Line[i]; } } cbuffer[jj] = 0; Pin->m_Number = CONV_FROM_UTF8(cbuffer); /* Read netname */ /* Read netname */ while( Line[i] == ' ' ) while( Line[i] == ' ' ) i++; i++; for( ; ; i++ ) for( jj = 0; ; i++ ) { { if( Line[i] <= ' ' ) if( Line[i] == ' ' || Line[i] == '\n' || Line[i] == '\r' || Line[i] == 0 ) break; break; net.Append( Line[i] ); cbuffer[jj++] = Line[i]; } } cbuffer[jj] = 0; Pin->m_Net = CONV_FROM_UTF8(cbuffer); Pin = new PIN(); Pin->m_Number = numpin; Pin->m_Net = net; Cmp->m_Pins.push_back( Pin ); Cmp->m_Pins.push_back( Pin ); } } } } Loading
pcbnew/tool_pcb.cpp +2 −13 Original line number Original line Diff line number Diff line Loading @@ -159,21 +159,10 @@ void WinEDA_PcbFrame::PrepareLayerIndicator() if( m_HToolBar ) if( m_HToolBar ) { { #if wxCHECK_VERSION( 2, 8, 3 ) & !defined(__WXX11__) m_HToolBar->SetToolBitmap( ID_AUX_TOOLBAR_PCB_SELECT_LAYER_PAIR, m_HToolBar->SetToolNormalBitmap( ID_AUX_TOOLBAR_PCB_SELECT_LAYER_PAIR, *LayerPairBitmap ); *LayerPairBitmap ); #else int pos = m_HToolBar->GetToolPos( ID_AUX_TOOLBAR_PCB_SELECT_LAYER_PAIR ); if( pos != wxNOT_FOUND ) { m_HToolBar->DeleteTool( ID_AUX_TOOLBAR_PCB_SELECT_LAYER_PAIR ); m_HToolBar->InsertTool( pos, ID_AUX_TOOLBAR_PCB_SELECT_LAYER_PAIR, *LayerPairBitmap, wxNullBitmap, false, NULL, SEL_LAYER_HELP ); m_HToolBar->Realize(); m_HToolBar->Realize(); } } #endif } } } Loading