Symbol editor: Inversion sign ("~") incorectly ùmanaged in graphic texts.
It was always replaced with space in a graphic text, but it should happens only in non quoted texts Now graphic texts containing ' ' or '~' or '"' are always quoted (work fine with 4.0 version) Fixes: lp:1771105 https://bugs.launchpad.net/kicad/+bug/1771105
This commit is contained in:
parent
23a9fcd91d
commit
509793a5b4
|
@ -3076,13 +3076,17 @@ LIB_TEXT* SCH_LEGACY_PLUGIN_CACHE::loadText( std::unique_ptr< LIB_PART >& aPart,
|
||||||
if( *line == '"' )
|
if( *line == '"' )
|
||||||
parseQuotedString( str, aReader, line, &line );
|
parseQuotedString( str, aReader, line, &line );
|
||||||
else
|
else
|
||||||
|
{
|
||||||
parseUnquotedString( str, aReader, line, &line );
|
parseUnquotedString( str, aReader, line, &line );
|
||||||
|
|
||||||
|
// In old libs, "spaces" are replaced by '~' in unquoted strings:
|
||||||
|
str.Replace( "~", " " );
|
||||||
|
}
|
||||||
|
|
||||||
if( !str.IsEmpty() )
|
if( !str.IsEmpty() )
|
||||||
{
|
{
|
||||||
// convert two apostrophes back to double quote
|
// convert two apostrophes back to double quote
|
||||||
str.Replace( "''", "\"" );
|
str.Replace( "''", "\"" );
|
||||||
str.Replace( wxT( "~" ), wxT( " " ) );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
text->SetText( str );
|
text->SetText( str );
|
||||||
|
@ -3916,18 +3920,12 @@ void SCH_LEGACY_PLUGIN_CACHE::saveText( LIB_TEXT* aText,
|
||||||
|
|
||||||
wxString text = aText->GetText();
|
wxString text = aText->GetText();
|
||||||
|
|
||||||
if( text.Contains( wxT( "~" ) ) || text.Contains( wxT( "\"" ) ) )
|
if( text.Contains( wxT( " " ) ) || text.Contains( wxT( "~" ) ) || text.Contains( wxT( "\"" ) ) )
|
||||||
{
|
{
|
||||||
// convert double quote to similar-looking two apostrophes
|
// convert double quote to similar-looking two apostrophes
|
||||||
text.Replace( wxT( "\"" ), wxT( "''" ) );
|
text.Replace( wxT( "\"" ), wxT( "''" ) );
|
||||||
text = wxT( "\"" ) + text + wxT( "\"" );
|
text = wxT( "\"" ) + text + wxT( "\"" );
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
// Spaces are not allowed in text because it is not double quoted:
|
|
||||||
// changed to '~'
|
|
||||||
text.Replace( wxT( " " ), wxT( "~" ) );
|
|
||||||
}
|
|
||||||
|
|
||||||
aFormatter->Print( 0, "T %g %d %d %d %d %d %d %s", aText->GetTextAngle(),
|
aFormatter->Print( 0, "T %g %d %d %d %d %d %d %s", aText->GetTextAngle(),
|
||||||
aText->GetTextPos().x, aText->GetTextPos().y,
|
aText->GetTextPos().x, aText->GetTextPos().y,
|
||||||
|
|
Loading…
Reference in New Issue