OUTPUTFORMATTER::Quoted() was not wrapping strings containing internal quotes with quotes

This commit is contained in:
Dick Hollenbeck 2011-01-28 14:18:30 -06:00
parent 021becb426
commit e0f4963b6a
2 changed files with 6 additions and 5 deletions

View File

@ -311,7 +311,7 @@ std::string OUTPUTFORMATTER::Quoted( const std::string& aWrapee ) throw( IO_ERRO
}
}
if( *squote )
if( *squote || strchr( wrapee.c_str(), quote ) )
{
// wrap the beginning and end of the string in a quote.
wrapee.insert( wrapee.begin(), quote );

View File

@ -17,7 +17,7 @@ wxString TEMPLATE_FIELDNAME::GetDefaultFieldName( int aFieldNdx )
_( "Datasheet" ), // Link to a datasheet for component
};
if ( (unsigned) aFieldNdx < DIM(fixedNames) )
if( (unsigned) aFieldNdx < DIM(fixedNames) )
return fixedNames[aFieldNdx];
else
@ -32,11 +32,12 @@ wxString TEMPLATE_FIELDNAME::GetDefaultFieldName( int aFieldNdx )
void TEMPLATE_FIELDNAME::Format( OUTPUTFORMATTER* out, int nestLevel ) const throw( IO_ERROR )
{
// user may want spaces in his field name, ug, so quote them for the parser.
out->Print( nestLevel, "(field (name \"%s\")", CONV_TO_UTF8(m_Name) );
out->Print( nestLevel, "(field (name %s)",
out->Quoted( CONV_TO_UTF8(m_Name) ).c_str() );
if( !m_Value.IsEmpty() )
out->Print( 0, "(value \"%s\")", CONV_TO_UTF8(m_Value) );
out->Print( 0, "(value %s)",
out->Quoted( CONV_TO_UTF8(m_Value) ).c_str() );
if( m_Visible )
out->Print( 0, " visible" );