Here we go. Unfortunately, the exported RTF cannot be properly imported by 
AbiWord, in spite of being perfectly valid.

The problem is in IE_Imp_RTF.  The exported {\header ..} sequence appears 
AFTER a {\pard ..} sequence, whereas the code expects the header definition 
to be before.  The problem is that the closing } in the \pard sequence 
triggers IE_Imp_RTF::FlushStoredChars() which calls 
ApplySectionAttributes() before the header is properly "registered" with 
the section.

As linear-style document structure seems to be preferred, the 
ApplySectionAttributes should only be called when a new section begins or 
because of EndOfDocument. Alternatively, we could continue with the broken 
RTF importer and force the exporter to write the header before any blocks. 
Any ideas?

I cleaned up an UT_ASSERT along the way, which will now ignore unfound 
header/footers instead of crashing.

Also, small updates to a MSVC6 file.

changed files:
abi/src/wp/impexp/ie_exp_RTP.cpp
abi/src/wp/impexp/ie_exp_listenerWriteDoc.cpp
abi/src/text/fmt/xp/fl_DocListener.cpp - change UT_ASSERT to UT_DEBUG()
abi/src/wp/impexp/ie_imp_RTF.cpp  - remove comiler warnings, change debug 
messages

MSVC6/AbiImpExp.dsp


Reply via email to