You have some indentation issues, please review the coding style policy at, http://ci.kicad-pcb.org/job/kicad-doxygen/ws/Documentation/doxygen/html/md_Documentation_development_coding-style-policy.html
The wxString line should probably also have a space in betweent he two end parenthesis, but I am not sure. I have not reviewed the patch further than that, FWIW. 2015-08-27 7:37 GMT+02:00 Joseph Chen <[email protected]>: > I am submitting a patch file (attached as well) that enables the eeschema > ERC to generate errors for any and all unmatched global labels. > > This patch resolves the issue that I reported in [Bug 1487945]. > > I have tested the patch on Ubuntu 15.04 and it passed all my test cases > > The patch is based off KiCAD BZR 6129. > > Please feel free to correct or enhance this patch any way you see fit. > > --Joe > > ------------------------------------------- Patch Contents > -------------------------------------- > > diff --git a/eeschema/class_drc_erc_item.cpp > b/eeschema/class_drc_erc_item.cpp > index 8e35bfe..aefac14 100644 > --- a/eeschema/class_drc_erc_item.cpp > +++ b/eeschema/class_drc_erc_item.cpp > @@ -52,6 +52,8 @@ wxString DRC_ITEM::GetErrorText() const > return wxString( _("Mismatch between hierarchical labels and pins > sheets")); > case ERCE_NOCONNECT_CONNECTED: > return wxString( _("A no connect symbol is connected to more than 1 > pin")); > + case ERCE_GLOBLABEL: > + return wxString( _("A global label not connected to any other > global label")); > > default: > return wxString( wxT("Unkown.") ); > diff --git a/eeschema/class_netlist_object.cpp > b/eeschema/class_netlist_object.cpp > index 169a28f..8c77cd1 100644 > --- a/eeschema/class_netlist_object.cpp > +++ b/eeschema/class_netlist_object.cpp > @@ -228,6 +228,14 @@ bool NETLIST_OBJECT::IsLabelConnected( NETLIST_OBJECT* > aNetItem ) > return true; //connected! > } > } > + else if( ( at == NET_GLOBLABEL ) && ( bt == NET_GLOBLABEL ) ) > + { > + const char *al = (const char *)(m_Label).mb_str(); > + const char *bl = (const char *)(aNetItem->m_Label).mb_str(); > + > + if( strcmp(al, bl) == 0 ) > + return true; > + } > > return false; //these two are unconnected > } > diff --git a/eeschema/dialogs/dialog_erc.cpp > b/eeschema/dialogs/dialog_erc.cpp > index 4dca4d5..c14aa70 100644 > --- a/eeschema/dialogs/dialog_erc.cpp > +++ b/eeschema/dialogs/dialog_erc.cpp > @@ -499,7 +499,6 @@ void DIALOG_ERC::TestErc( wxArrayString* aMessagesList ) > case NET_LABEL: > case NET_BUSLABELMEMBER: > case NET_PINLABEL: > - case NET_GLOBLABEL: > case NET_GLOBBUSLABELMEMBER: > break; > > @@ -507,6 +506,7 @@ void DIALOG_ERC::TestErc( wxArrayString* aMessagesList ) > case NET_HIERBUSLABELMEMBER: > case NET_SHEETLABEL: > case NET_SHEETBUSLABELMEMBER: > + case NET_GLOBLABEL: > > // ERC problems when pin sheets do not match hierarchical > labels. > // Each pin sheet must match a hierarchical label > diff --git a/eeschema/erc.cpp b/eeschema/erc.cpp > index e477610..e1a932a 100644 > --- a/eeschema/erc.cpp > +++ b/eeschema/erc.cpp > @@ -251,18 +251,31 @@ void Diagnose( NETLIST_OBJECT* aNetItemRef, > NETLIST_OBJECT* aNetItemTst, > { > msg.Printf( _( "Hierarchical label %s is not connected to a > sheet label." ), > GetChars( aNetItemRef->m_Label ) ); > + marker->SetData( ERCE_HIERACHICAL_LABEL, > + aNetItemRef->m_Start, > + msg, > + aNetItemRef->m_Start ); > } > + else if( (aNetItemRef->m_Type == NET_GLOBLABEL) ) > + { > + msg.Printf( _( "Global label %s is not connected to any other > global label." ), > + GetChars( aNetItemRef->m_Label ) ); > + marker->SetData( ERCE_GLOBLABEL, > + aNetItemRef->m_Start, > + msg, > + aNetItemRef->m_Start ); > + } > + > else > { > msg.Printf( _( "Sheet label %s is not connected to a > hierarchical label." ), > GetChars( aNetItemRef->m_Label ) ); > + marker->SetData( ERCE_HIERACHICAL_LABEL, > + aNetItemRef->m_Start, > + msg, > + aNetItemRef->m_Start ); > } > > - > - marker->SetData( ERCE_HIERACHICAL_LABEL, > - aNetItemRef->m_Start, > - msg, > - aNetItemRef->m_Start ); > return; > } > > diff --git a/eeschema/erc.h b/eeschema/erc.h > index 1e01515..908c498 100644 > --- a/eeschema/erc.h > +++ b/eeschema/erc.h > @@ -57,6 +57,7 @@ extern const wxString CommentERC_V[]; > #define ERCE_PIN_TO_PIN_ERROR 5 // pin connected to an other pin: > error level > #define ERCE_HIERACHICAL_LABEL 6 // mismatch between hierarchical > labels and pins sheets > #define ERCE_NOCONNECT_CONNECTED 7 // a no connect symbol is connected > to more than 1 pin > +#define ERCE_GLOBLABEL 8 // a global label not connected to > any other global label > > /* Minimal connection table */ > #define NPI 4 // Net with Pin isolated, this pin has type Not Connected > and must be left N.C. > > > _______________________________________________ > Mailing list: https://launchpad.net/~kicad-developers > Post to : [email protected] > Unsubscribe : https://launchpad.net/~kicad-developers > More help : https://help.launchpad.net/ListHelp > _______________________________________________ Mailing list: https://launchpad.net/~kicad-developers Post to : [email protected] Unsubscribe : https://launchpad.net/~kicad-developers More help : https://help.launchpad.net/ListHelp

