Commit b8d81d26 authored by jean-pierre charras's avatar jean-pierre charras

Pcbnew: fix a crash when a non ascii char (i.e. a char having a code > 127) is...

Pcbnew: fix a crash when a non ascii char (i.e. a char having a code > 127) is found in a text (see Bug #1246340).
Could be only a temporary fix (tested only with French non ascii chars).
parent e4825ee2
......@@ -244,8 +244,13 @@ void STROKE_FONT::Draw( std::string aText, const VECTOR2D& aPosition, double aRo
GLYPH_LIST::iterator glyphIt = m_glyphs.begin();
std::deque<BOX2D>::iterator bbIt = m_glyphBoundingBoxes.begin();
advance( glyphIt, (int) ( *chIt ) - (int) ' ' );
advance( bbIt, (int) ( *chIt ) - (int) ' ' );
unsigned dd = (unsigned) ((unsigned char) *chIt ) - (unsigned) ' ';
if( dd >= m_glyphBoundingBoxes.size() )
dd = '?' - ' ';
advance( glyphIt, dd );
advance( bbIt, dd );
GLYPH glyph = *glyphIt;
......@@ -297,7 +302,13 @@ VECTOR2D STROKE_FONT::computeTextSize( const std::string& aText ) const
continue;
std::deque<BOX2D>::const_iterator bbIt = m_glyphBoundingBoxes.begin();
advance( bbIt, (int) ( *chIt ) - (int) ' ' );
unsigned dd = (unsigned) ((unsigned char)*chIt) - (unsigned) ' ';
if( dd >= m_glyphBoundingBoxes.size() )
dd = '?' - ' ';
advance( bbIt, dd );
result.x += m_scaleFactor * m_glyphSize.x * bbIt->GetEnd().x;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment