From 38a08f1ffc4177902776511291a31c34f951b923 Mon Sep 17 00:00:00 2001 From: dickelbeck Date: Tue, 22 Apr 2008 17:19:28 +0000 Subject: [PATCH] delete hierarhical pin sheet bug --- eeschema/class_schematic_items.cpp | 2 +- eeschema/program.h | 5 +++-- eeschema/sheetlab.cpp | 16 ++++++++-------- 3 files changed, 12 insertions(+), 11 deletions(-) diff --git a/eeschema/class_schematic_items.cpp b/eeschema/class_schematic_items.cpp index a2416a9c65..da9d945d14 100644 --- a/eeschema/class_schematic_items.cpp +++ b/eeschema/class_schematic_items.cpp @@ -273,7 +273,7 @@ bool DrawMarkerStruct::Save( FILE* aFile ) const wxString msg; if( fprintf( aFile, "Kmarq %c %-4d %-4d \"%s\" F=%X\n", - m_Type + 'A', + int( m_Type ) + 'A', m_Pos.x, m_Pos.y, CONV_TO_UTF8( m_Comment ), m_MarkFlags ) == EOF ) { diff --git a/eeschema/program.h b/eeschema/program.h index ab53c5aa56..1f8aceccd9 100644 --- a/eeschema/program.h +++ b/eeschema/program.h @@ -33,13 +33,14 @@ #define BUS_TO_BUS 1 -typedef enum { /* Type des Marqueurs */ +enum TypeMarker { /* Type des Marqueurs */ MARQ_UNSPEC, MARQ_ERC, MARQ_PCB, MARQ_SIMUL, MARQ_NMAX /* Derniere valeur: fin de tableau */ -} TypeMarker; +}; + /* Messages correspondants aux types des marqueurs */ #ifdef MAIN diff --git a/eeschema/sheetlab.cpp b/eeschema/sheetlab.cpp index c9985c2541..36c476ff45 100644 --- a/eeschema/sheetlab.cpp +++ b/eeschema/sheetlab.cpp @@ -433,20 +433,20 @@ void WinEDA_SchematicFrame::DeleteSheetLabel( wxDC* DC, std::cout << "\n\n\n" << std::flush; #endif - Hierarchical_PIN_Sheet_Struct* label = parent->m_Label; + Hierarchical_PIN_Sheet_Struct* prev = NULL; - Hierarchical_PIN_Sheet_Struct** pprev = &parent->m_Label; - - while( label ) + Hierarchical_PIN_Sheet_Struct* label = parent->m_Label; + for( ; label; prev=label, label=label->Next() ) { if( label == SheetLabelToDel ) { - *pprev = label->Next(); + if( prev ) + prev->Pnext = label->Next(); + else + parent->m_Label = label->Next(); + break; } - - pprev = (Hierarchical_PIN_Sheet_Struct**) &label->Pnext; - label = label->Next(); } delete SheetLabelToDel;