work around 8 bit wxString B.S.
This commit is contained in:
parent
6a26a7f9bf
commit
1ae44d090a
|
@ -280,7 +280,7 @@ int OUTPUTFORMATTER::Print( int nestLevel, const char* fmt, ... ) throw( IO_ERRO
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
std::string OUTPUTFORMATTER::Quoted( const std::string& aWrapee ) throw( IO_ERROR )
|
std::string OUTPUTFORMATTER::Quotes( const std::string& aWrapee ) throw( IO_ERROR )
|
||||||
{
|
{
|
||||||
static const char quoteThese[] = "\t ()\n\r";
|
static const char quoteThese[] = "\t ()\n\r";
|
||||||
|
|
||||||
|
@ -329,6 +329,17 @@ std::string OUTPUTFORMATTER::Quoted( const std::string& aWrapee ) throw( IO_ERRO
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
std::string OUTPUTFORMATTER::Quotew( const wxString& aWrapee ) throw( IO_ERROR )
|
||||||
|
{
|
||||||
|
// s-expressions atoms are always encoded as UTF-8.
|
||||||
|
// The non-virutal function calls the virtual workhorse function, and if
|
||||||
|
// a different quoting or escaping strategy is desired from the standard,
|
||||||
|
// a derived class can overload Quotes() above, but
|
||||||
|
// should never be a reason to overload this Quotew() here.
|
||||||
|
return Quotes( (const char*) aWrapee.utf8_str() );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//-----<STRING_FORMATTER>----------------------------------------------------
|
//-----<STRING_FORMATTER>----------------------------------------------------
|
||||||
|
|
||||||
void STRING_FORMATTER::write( const char* aOutBuf, int aCount ) throw( IO_ERROR )
|
void STRING_FORMATTER::write( const char* aOutBuf, int aCount ) throw( IO_ERROR )
|
||||||
|
|
|
@ -34,7 +34,7 @@ void XNODE::Format( OUTPUTFORMATTER* out, int nestLevel ) throw( IO_ERROR )
|
||||||
switch( GetType() )
|
switch( GetType() )
|
||||||
{
|
{
|
||||||
case wxXML_ELEMENT_NODE:
|
case wxXML_ELEMENT_NODE:
|
||||||
out->Print( nestLevel, "(%s", out->Quoted( GetName() ).c_str() );
|
out->Print( nestLevel, "(%s", out->Quotew( GetName() ).c_str() );
|
||||||
FormatContents( out, nestLevel );
|
FormatContents( out, nestLevel );
|
||||||
if( GetNext() )
|
if( GetNext() )
|
||||||
out->Print( 0, ")\n" );
|
out->Print( 0, ")\n" );
|
||||||
|
@ -55,8 +55,8 @@ void XNODE::FormatContents( OUTPUTFORMATTER* out, int nestLevel ) throw( IO_ERRO
|
||||||
{
|
{
|
||||||
out->Print( 0, " (%s %s)",
|
out->Print( 0, " (%s %s)",
|
||||||
// attr names should never need quoting, no spaces, we designed the file.
|
// attr names should never need quoting, no spaces, we designed the file.
|
||||||
out->Quoted( attr->GetName() ).c_str(),
|
out->Quotew( attr->GetName() ).c_str(),
|
||||||
out->Quoted( attr->GetValue() ).c_str()
|
out->Quotew( attr->GetValue() ).c_str()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@ void XNODE::FormatContents( OUTPUTFORMATTER* out, int nestLevel ) throw( IO_ERRO
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case wxXML_TEXT_NODE:
|
case wxXML_TEXT_NODE:
|
||||||
out->Print( 0, " %s", out->Quoted( GetContent() ).c_str() );
|
out->Print( 0, " %s", out->Quotew( GetContent() ).c_str() );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
|
|
@ -32,10 +32,10 @@ wxString TEMPLATE_FIELDNAME::GetDefaultFieldName( int aFieldNdx )
|
||||||
|
|
||||||
void TEMPLATE_FIELDNAME::Format( OUTPUTFORMATTER* out, int nestLevel ) const throw( IO_ERROR )
|
void TEMPLATE_FIELDNAME::Format( OUTPUTFORMATTER* out, int nestLevel ) const throw( IO_ERROR )
|
||||||
{
|
{
|
||||||
out->Print( nestLevel, "(field (name %s)", out->Quoted( m_Name ).c_str() );
|
out->Print( nestLevel, "(field (name %s)", out->Quotew( m_Name ).c_str() );
|
||||||
|
|
||||||
if( !m_Value.IsEmpty() )
|
if( !m_Value.IsEmpty() )
|
||||||
out->Print( 0, "(value %s)", out->Quoted( m_Value ).c_str() );
|
out->Print( 0, "(value %s)", out->Quotew( m_Value ).c_str() );
|
||||||
|
|
||||||
if( m_Visible )
|
if( m_Visible )
|
||||||
out->Print( 0, " visible" );
|
out->Print( 0, " visible" );
|
||||||
|
|
|
@ -486,7 +486,7 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function Quoted
|
* Function Quotes
|
||||||
* checks \a aWrapee input string for a need to be quoted
|
* checks \a aWrapee input string for a need to be quoted
|
||||||
* (e.g. contains a ')' character or a space), and for \" double quotes
|
* (e.g. contains a ')' character or a space), and for \" double quotes
|
||||||
* within the string that need to be escaped such that the DSNLEXER
|
* within the string that need to be escaped such that the DSNLEXER
|
||||||
|
@ -500,13 +500,9 @@ public:
|
||||||
*
|
*
|
||||||
* @throw IO_ERROR, if there is any kind of problem with the input string.
|
* @throw IO_ERROR, if there is any kind of problem with the input string.
|
||||||
*/
|
*/
|
||||||
virtual std::string Quoted( const std::string& aWrapee ) throw( IO_ERROR );
|
virtual std::string Quotes( const std::string& aWrapee ) throw( IO_ERROR );
|
||||||
|
|
||||||
std::string Quoted( const wxString& aWrapee ) throw( IO_ERROR )
|
std::string Quotew( const wxString& aWrapee ) throw( IO_ERROR );
|
||||||
{
|
|
||||||
// s-expressions atoms are always encoded as UTF-8
|
|
||||||
return Quoted( (const char*) aWrapee.utf8_str() );
|
|
||||||
}
|
|
||||||
|
|
||||||
//-----</interface functions>-----------------------------------------
|
//-----</interface functions>-----------------------------------------
|
||||||
};
|
};
|
||||||
|
|
|
@ -157,10 +157,10 @@ void LIB_TABLE::ROW::Format( OUTPUTFORMATTER* out, int nestLevel ) const
|
||||||
throw( IO_ERROR )
|
throw( IO_ERROR )
|
||||||
{
|
{
|
||||||
out->Print( nestLevel, "(lib (logical %s)(type %s)(full_uri %s)(options %s))\n",
|
out->Print( nestLevel, "(lib (logical %s)(type %s)(full_uri %s)(options %s))\n",
|
||||||
out->Quoted( logicalName ).c_str(),
|
out->Quotes( logicalName ).c_str(),
|
||||||
out->Quoted( libType ).c_str(),
|
out->Quotes( libType ).c_str(),
|
||||||
out->Quoted( fullURI ).c_str(),
|
out->Quotes( fullURI ).c_str(),
|
||||||
out->Quoted( options ).c_str()
|
out->Quotes( options ).c_str()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -134,7 +134,7 @@ void PCB_PLOT_PARAMS::Format( OUTPUTFORMATTER* aFormatter,
|
||||||
aFormatter->Print( aNestLevel+1, "(%s %d)\n", GetTokenName( T_scaleselection ),
|
aFormatter->Print( aNestLevel+1, "(%s %d)\n", GetTokenName( T_scaleselection ),
|
||||||
scaleSelection );
|
scaleSelection );
|
||||||
aFormatter->Print( aNestLevel+1, "(%s %s)\n", GetTokenName( T_outputdirectory ),
|
aFormatter->Print( aNestLevel+1, "(%s %s)\n", GetTokenName( T_outputdirectory ),
|
||||||
aFormatter->Quoted( CONV_TO_UTF8( outputDirectory ) ).c_str() );
|
aFormatter->Quotew( outputDirectory ).c_str() );
|
||||||
aFormatter->Print( 0, ")\n" );
|
aFormatter->Print( 0, ")\n" );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue