Browse Source

Handle doc urls enclosed in parens.

It seems this has become a common pattern in at least some of our
libraries.

Fixes https://gitlab.com/kicad/code/kicad/issues/7963
6.0.7
Jeff Young 5 years ago
parent
commit
49b1aceb8b
  1. 40
      pcbnew/generate_footprint_info.cpp

40
pcbnew/generate_footprint_info.cpp

@ -94,15 +94,41 @@ public:
// It is currently common practice to store a documentation link in the description.
int idx = desc.find( wxT( "http:" ) );
if( idx < 0 )
idx = desc.find( wxT( "https:" ) );
if( idx >= 0 )
{
doc = desc.substr( (unsigned) idx );
desc = desc.substr( 0, (unsigned) idx );
desc = desc.Trim( true );
if( !desc.IsEmpty() && desc.Last() == ',' )
desc.RemoveLast( 1 );
// And, sadly, it appears to have also become customary to bury the url inside
// parentheses.
if( idx >= 1 && desc.at( idx - 1 ) == '(' )
{
int nesting = 0;
while( idx < (int) desc.size() )
{
char c = desc.at( idx++ );
if( c == '(' )
nesting++;
else if( c == ')' && --nesting < 0 )
break;
doc += c;
}
desc.Replace( doc, _( "doc url" ) );
}
else
{
doc = desc.substr( (unsigned) idx );
desc = desc.substr( 0, (unsigned) idx );
desc = desc.Trim( true );
if( !desc.IsEmpty() && desc.Last() == ',' )
desc.RemoveLast( 1 );
}
}
m_html.Replace( "__NAME__", EscapeHTML( name ) );

Loading…
Cancel
Save