if ( !str )
return;
- // we change the string temporarily inside this function
- wxString& s = (wxString &)str; // const_cast
-
- char * cptr = s.GetWriteBuf(s.Len());
+ // we change the string only temporarily inside this function
+ // VZ: I still don't like it... the string data may be shared...
+ char * cptr = (char *)str.c_str(); // const_cast
const char * begin = cptr;
char backup;
break;
cptr++;
}
-
- s.UngetWriteBuf();
}
static
wxString wxLayoutExportCmdAsHTML(wxLayoutObjectCmd const & cmd,
- wxLayoutStyleInfo *styleInfo)
+ wxLayoutStyleInfo *styleInfo,
+ bool firstTime)
{
static char buffer[20];
wxString html;
html +=">";
- if(styleInfo != NULL)
+ if(styleInfo != NULL && ! firstTime)
html ="</font>"+html; // terminate any previous font command
if((si->weight == wxBOLD) && ( (!styleInfo) || (styleInfo->weight != wxBOLD)))
m_si = list->GetDefaultStyleInfo();
m_line = list->GetFirstLine();
m_iterator = m_line->GetFirstObject();
+ m_FirstTime = TRUE;
}
int mode, int flags)
{
wxASSERT(status);
- wxLayoutExportObject * export;
+ wxLayoutExportObject * exp;
if(status->m_iterator == NULLIT) // end of line
{
// reached end of list
return NULL;
}
- export = new wxLayoutExportObject();
+ exp = new wxLayoutExportObject();
wxLayoutObjectType type;
if(status->m_iterator != NULLIT)
{
type = (** status->m_iterator).GetType();
if( mode == WXLO_EXPORT_AS_OBJECTS || ! WXLO_IS_TEXT(type)) // simple case
{
- export->type = WXLO_EXPORT_OBJECT;
- export->content.object = *status->m_iterator;
+ exp->type = WXLO_EXPORT_OBJECT;
+ exp->content.object = *status->m_iterator;
status->m_iterator++;
- return export;
+ return exp;
}
}
else
{ // iterator == NULLIT
if(mode == WXLO_EXPORT_AS_OBJECTS)
{
- export->type = WXLO_EXPORT_EMPTYLINE;
- export->content.object = NULL; //empty line
+ exp->type = WXLO_EXPORT_EMPTYLINE;
+ exp->content.object = NULL; //empty line
status->m_line = status->m_line->GetNextLine();
if(status->m_line)
status->m_iterator = status->m_line->GetFirstObject();
- return export;
+ return exp;
}
else
type = WXLO_TYPE_TEXT;
{
while(status->m_iterator == NULLIT)
{
- if(flags & WXLO_EXPORT_AS_HTML)
+ if(mode & WXLO_EXPORT_AS_HTML)
*str += "<br>";
if(flags & WXLO_EXPORT_WITH_CRLF)
*str += "\r\n";
break;
case WXLO_TYPE_CMD:
if(mode == WXLO_EXPORT_AS_HTML)
- *str += wxLayoutExportCmdAsHTML(*(wxLayoutObjectCmd const
- *)*status->m_iterator, & status->m_si);
+ *str += wxLayoutExportCmdAsHTML(
+ *(wxLayoutObjectCmd const *)*status->m_iterator,
+ & status->m_si, status->m_FirstTime);
+ status->m_FirstTime = FALSE;
break;
default: // ignore icons
;
}
status->m_iterator++;
}
-
- export->type = (mode == WXLO_EXPORT_AS_HTML)
+ exp->type = (mode == WXLO_EXPORT_AS_HTML)
? WXLO_EXPORT_HTML : WXLO_EXPORT_TEXT;
- export->content.text = str;
- return export;
+ exp->content.text = str;
+ return exp;
}