summaryrefslogtreecommitdiff
path: root/starmath/source/visitors.cxx
diff options
context:
space:
mode:
authorLuke Dixon <6b8b4567@gmail.com>2010-11-23 10:36:18 +0000
committerJonas Finnemann Jensen <jopsen@gmail.com>2010-11-24 12:19:51 +0100
commite6f69c3c0961649f33ce25faede5b4f184658e29 (patch)
treeb7807d01d447272727b8262e77394c5add63a875 /starmath/source/visitors.cxx
parent3a71b8d8f78ca470115f8c5ec29a51c2ab7fcc1c (diff)
Fix Greek characters, stacks and subs/sups for operators.
Diffstat (limited to 'starmath/source/visitors.cxx')
-rw-r--r--starmath/source/visitors.cxx30
1 files changed, 20 insertions, 10 deletions
diff --git a/starmath/source/visitors.cxx b/starmath/source/visitors.cxx
index 25998fc22b5e..3b9bdef2f9e2 100644
--- a/starmath/source/visitors.cxx
+++ b/starmath/source/visitors.cxx
@@ -2174,7 +2174,7 @@ void SmNodeToTextVisitor::Visit( SmTableNode* pNode )
LineToText( it.Current( ) );
if( it.Next( ) ) {
Separate( );
- Append( "## " );
+ Append( "# " );
}else
break;
}
@@ -2242,33 +2242,39 @@ void SmNodeToTextVisitor::Visit( SmOperNode* pNode )
SmNode* pChild;
if( ( pChild = pSubSup->GetSubSup( LSUP ) ) ) {
Separate( );
- Append( "lsup " );
+ Append( "lsup { " );
LineToText( pChild );
+ Append( "} ");
}
if( ( pChild = pSubSup->GetSubSup( LSUB ) ) ) {
Separate( );
- Append( "lsub " );
+ Append( "lsub { " );
LineToText( pChild );
+ Append( "} ");
}
if( ( pChild = pSubSup->GetSubSup( RSUP ) ) ) {
Separate( );
- Append( "rsup " );
+ Append( "rsup { " );
LineToText( pChild );
+ Append( "} ");
}
if( ( pChild = pSubSup->GetSubSup( RSUB ) ) ) {
Separate( );
- Append( "rsub " );
+ Append( "rsub { " );
LineToText( pChild );
+ Append( "} ");
}
if( ( pChild = pSubSup->GetSubSup( CSUP ) ) ) {
Separate( );
- Append( "csup " );
+ Append( "csup { " );
LineToText( pChild );
+ Append( "} ");
}
if( ( pChild = pSubSup->GetSubSup( CSUB ) ) ) {
Separate( );
- Append( "csub " );
+ Append( "csub { " );
LineToText( pChild );
+ Append( "} ");
}
}
LineToText( pNode->GetSubNode( 1 ) );
@@ -2492,7 +2498,6 @@ void SmNodeToTextVisitor::Visit( SmTextNode* pNode )
void SmNodeToTextVisitor::Visit( SmSpecialNode* pNode )
{
- Append( "%" );
Append( pNode->GetToken( ).aText );
}
@@ -2530,13 +2535,18 @@ void SmNodeToTextVisitor::Visit( SmLineNode* pNode )
void SmNodeToTextVisitor::Visit( SmExpressionNode* pNode )
{
- Append( "{ " );
+ USHORT nSize = pNode->GetNumSubNodes();
+ if (nSize > 1) {
+ Append( "{ " );
+ }
SmNodeIterator it( pNode );
while( it.Next( ) ) {
it->Accept( this );
Separate( );
}
- Append( "}" );
+ if (nSize > 1) {
+ Append( "} " );
+ }
}
void SmNodeToTextVisitor::Visit( SmPolyLineNode* )