You can subscribe to this list here.
2005 |
Jan
|
Feb
|
Mar
|
Apr
(3) |
May
(4) |
Jun
(28) |
Jul
(15) |
Aug
(23) |
Sep
(2) |
Oct
(13) |
Nov
(26) |
Dec
(30) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2006 |
Jan
(1) |
Feb
(2) |
Mar
(5) |
Apr
(4) |
May
(70) |
Jun
(32) |
Jul
(27) |
Aug
(25) |
Sep
(8) |
Oct
(16) |
Nov
(30) |
Dec
(30) |
2007 |
Jan
(17) |
Feb
(7) |
Mar
(6) |
Apr
(36) |
May
(19) |
Jun
(82) |
Jul
(99) |
Aug
(44) |
Sep
(60) |
Oct
(106) |
Nov
(47) |
Dec
(37) |
2008 |
Jan
(5) |
Feb
(5) |
Mar
(4) |
Apr
(16) |
May
(2) |
Jun
|
Jul
(20) |
Aug
(5) |
Sep
|
Oct
(95) |
Nov
(104) |
Dec
(23) |
2009 |
Jan
(2) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(8) |
Oct
|
Nov
|
Dec
|
2010 |
Jan
|
Feb
|
Mar
|
Apr
(4) |
May
(1) |
Jun
(46) |
Jul
(5) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Fridrich S. <str...@us...> - 2005-07-30 14:01:21
|
Update of /cvsroot/libwpd/writerperfect In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32184 Modified Files: configure.in Log Message: Reverting the fribidi stuff since it is sooner than in writerperfect that the reordering has to be done in order to be useful Index: configure.in =================================================================== RCS file: /cvsroot/libwpd/writerperfect/configure.in,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** configure.in 4 Jul 2005 16:42:18 -0000 1.8 --- configure.in 30 Jul 2005 14:01:11 -0000 1.9 *************** *** 8,12 **** LIBWPD_REQUIRED_VERSION=0.8.0 - FRIBIDI_REQUIRED_VERSION=0.10.4 WRITERPERFECT_VERSION="$WRITERPERFECT_MAJOR_VERSION.$WRITERPERFECT_MINOR_VERSION.$WRITERPERFECT_MICRO_VERSION" --- 8,11 ---- *************** *** 35,39 **** libwpd-0.8 >= $LIBWPD_REQUIRED_VERSION libwpd-stream-0.8 >= $LIBWPD_REQUIRED_VERSION - fribidi >= $FRIBIDI_REQUIRED_VERSION ]) --- 34,37 ---- |
From: Fridrich S. <str...@us...> - 2005-07-30 14:01:21
|
Update of /cvsroot/libwpd/writerperfect/filter In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32184/filter Modified Files: WordPerfectCollector.cxx Log Message: Reverting the fribidi stuff since it is sooner than in writerperfect that the reordering has to be done in order to be useful Index: WordPerfectCollector.cxx =================================================================== RCS file: /cvsroot/libwpd/writerperfect/filter/WordPerfectCollector.cxx,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** WordPerfectCollector.cxx 4 Jul 2005 17:42:52 -0000 1.18 --- WordPerfectCollector.cxx 30 Jul 2005 14:01:12 -0000 1.19 *************** *** 71,100 **** } - #include <fribidi/fribidi.h> - - WPXString _reorderVisualToLogical(const WPXString &str) - { - #ifndef FRIBIDI_CHARSET_UTF8 - #define FRIBIDI_CHARSET_UTF8 fribidi_parse_charset("UTF-8") - #endif - - int len = str.len(); - FriBidiChar visualUCS4String[len+1]; - FriBidiChar logicalUCS4String[len+1]; - len = strlen(str.cstr()); - char logicalUTF8String[len+1]; - - FriBidiCharType base = FRIBIDI_TYPE_LTR; - - len = fribidi_charset_to_unicode(FRIBIDI_CHARSET_UTF8, (char *)str.cstr(), len, visualUCS4String); - // Do the reordering, and if there is an error, return the unordered string - if (!fribidi_log2vis(visualUCS4String, len, &base, logicalUCS4String, NULL, NULL, NULL)) - return str; - len = fribidi_remove_bidi_marks(logicalUCS4String, len, NULL, NULL, NULL); - len = fribidi_unicode_to_charset(FRIBIDI_CHARSET_UTF8, logicalUCS4String, len, logicalUTF8String); - - return WPXString(logicalUTF8String); - } - WordPerfectCollector::~WordPerfectCollector() { --- 71,74 ---- *************** *** 921,925 **** void WordPerfectCollector::insertText(const WPXString &text) { ! DocumentElement *pText = new TextElement(_reorderVisualToLogical(text)); mpCurrentContentElements->push_back(pText); } --- 895,899 ---- void WordPerfectCollector::insertText(const WPXString &text) { ! DocumentElement *pText = new TextElement(text); mpCurrentContentElements->push_back(pText); } |
From: Fridrich S. <str...@us...> - 2005-07-30 13:08:44
|
Update of /cvsroot/libwpd/libwpd2/src/lib In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22714/src/lib Modified Files: Tag: fs_refactoring1 WP3HLListener.cpp WP3HLListener.h WP42HLListener.cpp WP42HLListener.h WP5HLListener.cpp WP5HLListener.h WP6HLContentListener.cpp WP6HLContentListener.h WP6HLStylesListener.h WPXHLListener.h Log Message: Removing "const bool=fakeText" parameter Index: WP6HLContentListener.h =================================================================== RCS file: /cvsroot/libwpd/libwpd2/src/lib/WP6HLContentListener.h,v retrieving revision 1.44.2.1 retrieving revision 1.44.2.2 diff -C2 -d -r1.44.2.1 -r1.44.2.2 *** WP6HLContentListener.h 27 Jul 2005 15:57:03 -0000 1.44.2.1 --- WP6HLContentListener.h 30 Jul 2005 13:08:34 -0000 1.44.2.2 *************** *** 187,191 **** //void _handleLineBreakElementBegin(); void _paragraphNumberOn(const uint16_t outlineHash, const uint8_t level); ! void _flushText(const bool fakeText=false); void _handleListChange(const uint16_t outlineHash); --- 187,191 ---- //void _handleLineBreakElementBegin(); void _paragraphNumberOn(const uint16_t outlineHash, const uint8_t level); ! void _flushText(); void _handleListChange(const uint16_t outlineHash); Index: WP3HLListener.h =================================================================== RCS file: /cvsroot/libwpd/libwpd2/src/lib/WP3HLListener.h,v retrieving revision 1.15 retrieving revision 1.15.2.1 diff -C2 -d -r1.15 -r1.15.2.1 *** WP3HLListener.h 8 Feb 2005 16:02:49 -0000 1.15 --- WP3HLListener.h 30 Jul 2005 13:08:34 -0000 1.15.2.1 *************** *** 78,82 **** private: ! void _flushText(const bool fakeText=false); void _flushList() {}; --- 78,82 ---- private: ! void _flushText(); void _flushList() {}; Index: WP42HLListener.cpp =================================================================== RCS file: /cvsroot/libwpd/libwpd2/src/lib/WP42HLListener.cpp,v retrieving revision 1.28.2.1 retrieving revision 1.28.2.2 diff -C2 -d -r1.28.2.1 -r1.28.2.2 *** WP42HLListener.cpp 27 Jul 2005 15:57:02 -0000 1.28.2.1 --- WP42HLListener.cpp 30 Jul 2005 13:08:34 -0000 1.28.2.2 *************** *** 137,141 **** *****************************************/ ! void WP42HLListener::_flushText(const bool fakeText) { if (m_textBuffer.len()) --- 137,141 ---- *****************************************/ ! void WP42HLListener::_flushText() { if (m_textBuffer.len()) Index: WP42HLListener.h =================================================================== RCS file: /cvsroot/libwpd/libwpd2/src/lib/WP42HLListener.h,v retrieving revision 1.34 retrieving revision 1.34.2.1 diff -C2 -d -r1.34 -r1.34.2.1 *** WP42HLListener.h 8 Feb 2005 16:02:50 -0000 1.34 --- WP42HLListener.h 30 Jul 2005 13:08:34 -0000 1.34.2.1 *************** *** 71,75 **** private: ! void _flushText(const bool fakeText=false); void _flushList() {}; --- 71,75 ---- private: ! void _flushText(); void _flushList() {}; Index: WP6HLContentListener.cpp =================================================================== RCS file: /cvsroot/libwpd/libwpd2/src/lib/WP6HLContentListener.cpp,v retrieving revision 1.78.2.4 retrieving revision 1.78.2.5 diff -C2 -d -r1.78.2.4 -r1.78.2.5 *** WP6HLContentListener.cpp 28 Jul 2005 16:55:22 -0000 1.78.2.4 --- WP6HLContentListener.cpp 30 Jul 2005 13:08:34 -0000 1.78.2.5 *************** *** 1206,1213 **** // _flushText: Flushes text and any section, paragraph, or span properties prior to the text - // paramaters: fakeText. Pretend there is text, even if there isn't any (useful for tabs) // FIXME: we need to declare a set of preconditions that must be met when this function is called // ! void WP6HLContentListener::_flushText(const bool fakeText) { --- 1206,1212 ---- // _flushText: Flushes text and any section, paragraph, or span properties prior to the text // FIXME: we need to declare a set of preconditions that must be met when this function is called // ! void WP6HLContentListener::_flushText() { *************** *** 1228,1232 **** // create a new section, and a new paragraph, if our section attributes have changed and we have inserted // something into the document (or we have forced a break, which assumes the same condition) ! if (m_ps->m_sectionAttributesChanged && (m_parseState->m_bodyText.len() > 0 || fakeText)) { if (!m_ps->m_isTableOpened) { --- 1227,1231 ---- // create a new section, and a new paragraph, if our section attributes have changed and we have inserted // something into the document (or we have forced a break, which assumes the same condition) ! if (m_ps->m_sectionAttributesChanged && m_parseState->m_bodyText.len()) { if (!m_ps->m_isTableOpened) { Index: WP5HLListener.cpp =================================================================== RCS file: /cvsroot/libwpd/libwpd2/src/lib/WP5HLListener.cpp,v retrieving revision 1.32.2.1 retrieving revision 1.32.2.2 diff -C2 -d -r1.32.2.1 -r1.32.2.2 *** WP5HLListener.cpp 27 Jul 2005 15:57:02 -0000 1.32.2.1 --- WP5HLListener.cpp 30 Jul 2005 13:08:34 -0000 1.32.2.2 *************** *** 194,198 **** *****************************************/ ! void WP5HLListener::_flushText(const bool fakeText) { if (m_textBuffer.len()) --- 194,198 ---- *****************************************/ ! void WP5HLListener::_flushText() { if (m_textBuffer.len()) Index: WP6HLStylesListener.h =================================================================== RCS file: /cvsroot/libwpd/libwpd2/src/lib/WP6HLStylesListener.h,v retrieving revision 1.38 retrieving revision 1.38.2.1 diff -C2 -d -r1.38 -r1.38.2.1 *** WP6HLStylesListener.h 6 Apr 2005 07:24:38 -0000 1.38 --- WP6HLStylesListener.h 30 Jul 2005 13:08:35 -0000 1.38.2.1 *************** *** 100,104 **** virtual void _handleSubDocument(uint16_t textPID, const bool isHeaderFooter, WPXTableList tableList, int nextTableIndice = 0); ! virtual void _flushText(const bool fakeText=false) {} virtual void _openParagraph() {} virtual void _openPageSpan() { /* FIXME: REMOVE ME WHEN IMPLEMENTED IN WPXHLListener */ }; --- 100,104 ---- virtual void _handleSubDocument(uint16_t textPID, const bool isHeaderFooter, WPXTableList tableList, int nextTableIndice = 0); ! virtual void _flushText() {} virtual void _openParagraph() {} virtual void _openPageSpan() { /* FIXME: REMOVE ME WHEN IMPLEMENTED IN WPXHLListener */ }; Index: WPXHLListener.h =================================================================== RCS file: /cvsroot/libwpd/libwpd2/src/lib/WPXHLListener.h,v retrieving revision 1.61.2.1 retrieving revision 1.61.2.2 diff -C2 -d -r1.61.2.1 -r1.61.2.2 *** WPXHLListener.h 27 Jul 2005 15:57:03 -0000 1.61.2.1 --- WPXHLListener.h 30 Jul 2005 13:08:35 -0000 1.61.2.2 *************** *** 175,179 **** protected: virtual void _handleSubDocument(uint16_t textPID, const bool isHeaderFooter, WPXTableList tableList, int nextTableIndice) = 0; ! virtual void _flushText(const bool fakeText=false) = 0; virtual void _flushList() = 0; --- 175,179 ---- protected: virtual void _handleSubDocument(uint16_t textPID, const bool isHeaderFooter, WPXTableList tableList, int nextTableIndice) = 0; ! virtual void _flushText() = 0; virtual void _flushList() = 0; Index: WP5HLListener.h =================================================================== RCS file: /cvsroot/libwpd/libwpd2/src/lib/WP5HLListener.h,v retrieving revision 1.35 retrieving revision 1.35.2.1 diff -C2 -d -r1.35 -r1.35.2.1 *** WP5HLListener.h 8 Feb 2005 16:02:51 -0000 1.35 --- WP5HLListener.h 30 Jul 2005 13:08:34 -0000 1.35.2.1 *************** *** 78,82 **** private: ! void _flushText(const bool fakeText=false); void _flushList() {}; --- 78,82 ---- private: ! void _flushText(); void _flushList() {}; Index: WP3HLListener.cpp =================================================================== RCS file: /cvsroot/libwpd/libwpd2/src/lib/WP3HLListener.cpp,v retrieving revision 1.13.2.1 retrieving revision 1.13.2.2 diff -C2 -d -r1.13.2.1 -r1.13.2.2 *** WP3HLListener.cpp 27 Jul 2005 15:57:02 -0000 1.13.2.1 --- WP3HLListener.cpp 30 Jul 2005 13:08:34 -0000 1.13.2.2 *************** *** 226,230 **** *****************************************/ ! void WP3HLListener::_flushText(const bool fakeText) { if (m_textBuffer.len()) --- 226,230 ---- *****************************************/ ! void WP3HLListener::_flushText() { if (m_textBuffer.len()) |
From: Fridrich S. <str...@us...> - 2005-07-28 16:55:48
|
Update of /cvsroot/libwpd/libwpd2/src/lib In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8597/src/lib Modified Files: Tag: fs_refactoring1 WP6HLContentListener.cpp WPXHLListener.cpp Log Message: libwpd refactoring 2 -- Minor fixes. Still far from being finished, but not known issue with WP3, WP42 and WP5 after this. Index: WP6HLContentListener.cpp =================================================================== RCS file: /cvsroot/libwpd/libwpd2/src/lib/WP6HLContentListener.cpp,v retrieving revision 1.78.2.3 retrieving revision 1.78.2.4 diff -C2 -d -r1.78.2.3 -r1.78.2.4 *** WP6HLContentListener.cpp 27 Jul 2005 15:57:02 -0000 1.78.2.3 --- WP6HLContentListener.cpp 28 Jul 2005 16:55:22 -0000 1.78.2.4 *************** *** 382,385 **** --- 382,386 ---- { + _flushText(); // First of all, open paragraph for tabs that always are converted as tabs switch ((tabType & 0xF8) >> 3) *************** *** 395,399 **** case WP6_TAB_GROUP_RIGHT_TAB: case WP6_TAB_GROUP_DECIMAL_TAB: - _flushText(); if (!m_ps->m_isParagraphOpened && !m_ps->m_isListElementOpened) if (m_ps->m_currentListLevel == 0) --- 396,399 ---- *************** *** 401,408 **** else _openListElement(); - - if (!m_ps->m_isSpanOpened) - _openSpan(); - break; --- 401,404 ---- *************** *** 483,488 **** else { - _flushText(); - if (!m_ps->m_isSpanOpened) _openSpan(); --- 479,482 ---- *************** *** 771,779 **** // In WP, the last column ends with a hard column break code. // In this case, we do not really want to insert any column break ! if (m_ps->m_isParagraphPageBreak) ! { ! m_ps->m_isParagraphPageBreak = false; ! m_ps->m_isTextColumnWithoutParagraph = false; ! } _flushText(); float remainingSpace = m_ps->m_pageFormWidth - m_ps->m_pageMarginLeft - m_ps->m_pageMarginRight --- 765,771 ---- // In WP, the last column ends with a hard column break code. // In this case, we do not really want to insert any column break ! m_ps->m_isParagraphPageBreak = false; ! m_ps->m_isTextColumnWithoutParagraph = false; ! _flushText(); float remainingSpace = m_ps->m_pageFormWidth - m_ps->m_pageMarginLeft - m_ps->m_pageMarginRight *************** *** 1013,1017 **** // the packet after we're through with the footnote ref. m_parseState->m_noteTextPID = textPID; - m_ps->m_isNote = true; } } --- 1005,1008 ---- *************** *** 1041,1045 **** else m_listenerImpl->closeEndnote(); - m_ps->m_isNote = false; } } --- 1032,1035 ---- *************** *** 1117,1122 **** if (!isUndoOn()) { - //_handleLineBreakElementBegin(); - // save the justification information. We will need it after the table ends. m_ps->m_paragraphJustificationBeforeTable = m_ps->m_paragraphJustification; --- 1107,1110 ---- *************** *** 1199,1203 **** WP6LLListener::getPrefixDataPacket(textPID)->parse(this); else ! _openParagraph(); _flushText(); _closeSection(); --- 1187,1191 ---- WP6LLListener::getPrefixDataPacket(textPID)->parse(this); else ! _openSpan(); _flushText(); _closeSection(); *************** *** 1228,1234 **** if (m_parseState->m_styleStateSequence.getCurrentState() == NORMAL) { ! if (m_ps->m_currentListLevel > 0 && ! (m_parseState->m_bodyText.len() > 0 || fakeText) && ! m_parseState->m_styleStateSequence.getCurrentState() == NORMAL) { m_ps->m_currentListLevel = 0; --- 1216,1221 ---- if (m_parseState->m_styleStateSequence.getCurrentState() == NORMAL) { ! if (m_ps->m_currentListLevel && m_parseState->m_bodyText.len() && ! (m_parseState->m_styleStateSequence.getCurrentState() == NORMAL)) { m_ps->m_currentListLevel = 0; *************** *** 1246,1251 **** _closeSection(); _openSection();} - if (fakeText) - _openParagraph(); } --- 1233,1236 ---- *************** *** 1264,1267 **** --- 1249,1254 ---- !m_parseState->m_putativeListElementHasParagraphNumber) { + if (!m_ps->m_isSpanOpened) + _openSpan(); m_listenerImpl->insertText(m_parseState->m_textBeforeNumber); m_parseState->m_textBeforeNumber.clear(); *************** *** 1269,1272 **** --- 1256,1261 ---- if (m_parseState->m_bodyText.len()) { + if (!m_ps->m_isSpanOpened) + _openSpan(); m_listenerImpl->insertText(m_parseState->m_bodyText); m_parseState->m_bodyText.clear(); Index: WPXHLListener.cpp =================================================================== RCS file: /cvsroot/libwpd/libwpd2/src/lib/WPXHLListener.cpp,v retrieving revision 1.61.2.1 retrieving revision 1.61.2.2 diff -C2 -d -r1.61.2.1 -r1.61.2.2 *** WPXHLListener.cpp 27 Jul 2005 15:57:03 -0000 1.61.2.1 --- WPXHLListener.cpp 28 Jul 2005 16:55:23 -0000 1.61.2.2 *************** *** 828,833 **** { case WPX_COLUMN_BREAK: - if (!m_ps->m_isSpanOpened) - _openSpan(); if (m_ps->m_isParagraphOpened) _closeParagraph(); --- 828,831 ---- *************** *** 838,843 **** break; case WPX_PAGE_BREAK: - if (!m_ps->m_isSpanOpened) - _openSpan(); if (m_ps->m_isParagraphOpened) _closeParagraph(); --- 836,839 ---- *************** *** 857,861 **** { if (!m_ps->m_isTableOpened) ! _openPageSpan(); else m_ps->m_isPageSpanBreakDeferred = true; --- 853,857 ---- { if (!m_ps->m_isTableOpened) ! _closePageSpan(); else m_ps->m_isPageSpanBreakDeferred = true; |
From: Fridrich S. <str...@us...> - 2005-07-27 15:58:03
|
Update of /cvsroot/libwpd/libwpd2/src/lib In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29931/src/lib Modified Files: Tag: fs_refactoring1 WP3HLListener.cpp WP42HLListener.cpp WP5HLListener.cpp WP6HLContentListener.cpp WP6HLContentListener.h WPXHLListener.cpp WPXHLListener.h Log Message: First part of my refactoring. Take with caution. Some WP6+ documents make libwpd to segfault. Index: WP3HLListener.cpp =================================================================== RCS file: /cvsroot/libwpd/libwpd2/src/lib/WP3HLListener.cpp,v retrieving revision 1.13 retrieving revision 1.13.2.1 diff -C2 -d -r1.13 -r1.13.2.1 *** WP3HLListener.cpp 8 Feb 2005 16:02:48 -0000 1.13 --- WP3HLListener.cpp 27 Jul 2005 15:57:02 -0000 1.13.2.1 *************** *** 1,5 **** /* libwpd * Copyright (C) 2004 Marc Maurer (j.m...@st...) ! * Copyright (C) 2004 Fridrich Strba (fri...@bl...) * * This library is free software; you can redistribute it and/or --- 1,5 ---- /* libwpd * Copyright (C) 2004 Marc Maurer (j.m...@st...) ! * Copyright (C) 2004-2005 Fridrich Strba (fri...@bl...) * * This library is free software; you can redistribute it and/or *************** *** 58,62 **** --- 58,66 ---- { if (!isUndoOn()) + { + if (!m_ps->m_isSpanOpened) + _openSpan(); appendUCS4(m_textBuffer, (uint32_t)character); + } } *************** *** 66,69 **** --- 70,75 ---- { _flushText(); + if (!m_ps->m_isSpanOpened) + _openSpan(); m_listenerImpl->insertTab(); } *************** *** 72,105 **** void WP3HLListener::insertEOL() { ! if (!isUndoOn()) { ! _flushText(); ! m_ps->m_numDeferredParagraphBreaks++; } } void WP3HLListener::endDocument() { ! // corner case: document ends in a list element ! /*if (m_parseState->m_styleStateSequence.getCurrentState() != NORMAL) ! { ! _flushText(); // flush the list text ! m_parseState->m_styleStateSequence.setCurrentState(NORMAL); ! _flushText(true); // flush the list exterior (forcing a line break, to make _flushText think we've exited a list) ! }*/ ! // corner case: document contains no end of lines ! /*else*/ if (!m_ps->m_isParagraphOpened && !m_ps->m_isParagraphClosed) ! { ! _flushText(); ! } ! // NORMAL(ish) case document ends either inside a paragraph or outside of one, ! // but not inside an object ! else if (!m_ps->m_isParagraphClosed || !m_ps->m_isParagraphOpened) ! { ! _flushText(); ! } ! // the only other possibility is a logical contradiction: a paragraph ! // may not be opened and closed at the same time ! // close the document nice and tight _closeSection(); _closePageSpan(); --- 78,98 ---- void WP3HLListener::insertEOL() { ! if (!isUndoOn()) { ! if (!m_ps->m_isSpanOpened && !m_ps->m_isParagraphOpened && !m_ps->m_isListElementOpened) ! _openSpan(); ! else ! _flushText(); ! if (m_ps->m_isParagraphOpened) ! _closeParagraph(); ! if (m_ps->m_isListElementOpened) ! _closeListElement(); } + } void WP3HLListener::endDocument() { ! _flushText(); _closeSection(); _closePageSpan(); *************** *** 116,121 **** if (!isUndoOn()) { ! // flush everything which came before this change ! _flushText(); uint32_t textAttributeBit = 0; --- 109,113 ---- if (!isUndoOn()) { ! _closeSpan(); uint32_t textAttributeBit = 0; *************** *** 178,183 **** else m_ps->m_textAttributeBits ^= textAttributeBit; - - m_ps->m_textAttributesChanged = true; } } --- 170,173 ---- *************** *** 238,276 **** void WP3HLListener::_flushText(const bool fakeText) { - // create a new section, and a new paragraph, if our section attributes have changed and we have inserted - // something into the document (or we have forced a break, which assumes the same condition) - if (m_ps->m_sectionAttributesChanged && (m_textBuffer.len() > 0 || m_ps->m_numDeferredParagraphBreaks > 0 /*|| fakeText*/)) - { - _openSection(); - //if (fakeText) - _openParagraph(); - } - - if (m_ps->m_numDeferredParagraphBreaks > 0) - { - if (!m_ps->m_isParagraphOpened //&& - // !(m_parseState->m_isTableOpened && !m_parseState->m_isTableCellOpened) // don't allow paragraphs to be opened when we have already opened a table, but no cell yet. - MARCM (is it really correct, or should this be fixed elsewhere??) - ) - m_ps->m_numDeferredParagraphBreaks++; - - while (m_ps->m_numDeferredParagraphBreaks > 1) - _openParagraph(); - _closeParagraph(); - m_ps->m_numDeferredParagraphBreaks = 0; // compensate for this by requiring a paragraph to be opened - } - else if (m_ps->m_textAttributesChanged && m_textBuffer.len()) - { - _openSpan(); - m_ps->m_textAttributesChanged = false; - } - if (m_textBuffer.len()) { ! if (!m_ps->m_isParagraphOpened) ! { ! _openParagraph(); _openSpan(); - } - m_listenerImpl->insertText(m_textBuffer); m_textBuffer.clear(); --- 228,235 ---- void WP3HLListener::_flushText(const bool fakeText) { if (m_textBuffer.len()) { ! if (!m_ps->m_isSpanOpened) _openSpan(); m_listenerImpl->insertText(m_textBuffer); m_textBuffer.clear(); Index: WP5HLListener.cpp =================================================================== RCS file: /cvsroot/libwpd/libwpd2/src/lib/WP5HLListener.cpp,v retrieving revision 1.32 retrieving revision 1.32.2.1 diff -C2 -d -r1.32 -r1.32.2.1 *** WP5HLListener.cpp 8 Feb 2005 16:02:50 -0000 1.32 --- WP5HLListener.cpp 27 Jul 2005 15:57:02 -0000 1.32.2.1 *************** *** 2,5 **** --- 2,6 ---- * Copyright (C) 2003 William Lachance (wil...@sy...) * Copyright (C) 2003 Marc Maurer (j.m...@st...) + * Copyright (C) 2005 Fridrich Strba (fri...@bl...) * * This library is free software; you can redistribute it and/or *************** *** 57,60 **** --- 58,63 ---- void WP5HLListener::insertCharacter(const uint16_t character) { + if (!m_ps->m_isSpanOpened) + _openSpan(); appendUCS4(m_textBuffer, (uint32_t)character); } *************** *** 63,66 **** --- 66,71 ---- { _flushText(); + if (!m_ps->m_isSpanOpened) + _openSpan(); m_listenerImpl->insertTab(); } *************** *** 68,100 **** void WP5HLListener::insertEOL() { ! _flushText(); ! m_ps->m_numDeferredParagraphBreaks++; } void WP5HLListener::endDocument() { ! // corner case: document ends in a list element ! /*if (m_parseState->m_styleStateSequence.getCurrentState() != NORMAL) ! { ! _flushText(); // flush the list text ! m_parseState->m_styleStateSequence.setCurrentState(NORMAL); ! _flushText(true); // flush the list exterior (forcing a line break, to make _flushText think we've exited a list) ! }*/ ! // corner case: document contains no end of lines ! /*else*/ if (!m_ps->m_isParagraphOpened && !m_ps->m_isParagraphClosed) ! { ! _flushText(); ! } ! // NORMAL(ish) case document ends either inside a paragraph or outside of one, ! // but not inside an object ! else if (!m_ps->m_isParagraphClosed || !m_ps->m_isParagraphOpened) ! { ! _flushText(); ! } ! ! // the only other possibility is a logical contradiction: a paragraph ! // may not be opened and closed at the same time ! ! // close the document nice and tight _closeSection(); _closePageSpan(); --- 73,92 ---- void WP5HLListener::insertEOL() { ! if (!isUndoOn()) ! { ! if (!m_ps->m_isSpanOpened && !m_ps->m_isParagraphOpened && !m_ps->m_isListElementOpened) ! _openSpan(); ! else ! _flushText(); ! if (m_ps->m_isParagraphOpened) ! _closeParagraph(); ! if (m_ps->m_isListElementOpened) ! _closeListElement(); ! } } void WP5HLListener::endDocument() { ! _flushText(); _closeSection(); _closePageSpan(); *************** *** 109,115 **** void WP5HLListener::attributeChange(const bool isOn, const uint8_t attribute) { ! ! // flush everything which came before this change ! _flushText(); uint32_t textAttributeBit = 0; --- 101,105 ---- void WP5HLListener::attributeChange(const bool isOn, const uint8_t attribute) { ! _closeSpan(); uint32_t textAttributeBit = 0; *************** *** 172,177 **** else m_ps->m_textAttributeBits ^= textAttributeBit; - - m_ps->m_textAttributesChanged = true; } --- 162,165 ---- *************** *** 208,248 **** void WP5HLListener::_flushText(const bool fakeText) { - // create a new section, and a new paragraph, if our section attributes have changed and we have inserted - // something into the document (or we have forced a break, which assumes the same condition) - if (m_ps->m_sectionAttributesChanged && (m_textBuffer.len() > 0 || m_ps->m_numDeferredParagraphBreaks > 0/* || fakeText*/)) - { - _openSection(); - //if (fakeText) - _openParagraph(); - } - - if (m_ps->m_numDeferredParagraphBreaks > 0) - { - if (!m_ps->m_isParagraphOpened //&& - // !(m_parseState->m_isTableOpened && !m_parseState->m_isTableCellOpened) // don't allow paragraphs to be opened when we have already opened a table, but no cell yet. - MARCM (is it really correct, or should this be fixed elsewhere??) - ) - m_ps->m_numDeferredParagraphBreaks++; - - while (m_ps->m_numDeferredParagraphBreaks > 1) - _openParagraph(); - _closeParagraph(); - m_ps->m_numDeferredParagraphBreaks = 0; // compensate for this by requiring a paragraph to be opened - } - else if (m_ps->m_textAttributesChanged && m_textBuffer.len()) - { - _openSpan(); - m_ps->m_textAttributesChanged = false; - } - if (m_textBuffer.len()) { ! if (!m_ps->m_isParagraphOpened) ! { ! _openParagraph(); _openSpan(); - } - m_listenerImpl->insertText(m_textBuffer); m_textBuffer.clear(); } } --- 196,206 ---- void WP5HLListener::_flushText(const bool fakeText) { if (m_textBuffer.len()) { ! if (!m_ps->m_isSpanOpened) _openSpan(); m_listenerImpl->insertText(m_textBuffer); m_textBuffer.clear(); } } + Index: WPXHLListener.cpp =================================================================== RCS file: /cvsroot/libwpd/libwpd2/src/lib/WPXHLListener.cpp,v retrieving revision 1.61 retrieving revision 1.61.2.1 diff -C2 -d -r1.61 -r1.61.2.1 *** WPXHLListener.cpp 6 Apr 2005 07:24:38 -0000 1.61 --- WPXHLListener.cpp 27 Jul 2005 15:57:03 -0000 1.61.2.1 *************** *** 41,45 **** _WPXParsingState::_WPXParsingState(bool sectionAttributesChanged) : m_textAttributeBits(0), - m_textAttributesChanged(false), m_fontSize(12.0f/*WP6_DEFAULT_FONT_SIZE*/), // FIXME ME!!!!!!!!!!!!!!!!!!! HELP WP6_DEFAULT_FONT_SIZE m_fontName(new WPXString(/*WP6_DEFAULT_FONT_NAME*/"Times New Roman")), // EN PAS DEFAULT FONT AAN VOOR WP5/6/etc --- 41,44 ---- *************** *** 53,65 **** m_tempParagraphJustification(0), m_isSectionOpened(false), m_isPageSpanBreakDeferred(false), m_isParagraphOpened(false), - m_isParagraphClosed(false), m_isListElementOpened(false), - m_isListElementClosed(false), m_isSpanOpened(false), - m_numDeferredParagraphBreaks(0), m_currentTableCol(0), --- 52,63 ---- m_tempParagraphJustification(0), + m_isDocumentStarted(false), + m_isPageSpanOpened(false), m_isSectionOpened(false), m_isPageSpanBreakDeferred(false), m_isParagraphOpened(false), m_isListElementOpened(false), m_isSpanOpened(false), m_currentTableCol(0), *************** *** 73,77 **** m_paragraphJustificationBeforeTable(WPX_PARAGRAPH_JUSTIFICATION_LEFT), - m_isPageSpanOpened(false), m_nextPageSpanIndice(0), m_numPagesRemainingInSpan(0), --- 71,74 ---- *************** *** 102,115 **** m_textIndentByParagraphIndentChange(0.0f), m_textIndentByTabs(0.0f), - #if 0 m_currentListLevel(0), m_putativeListElementHasParagraphNumber(false), m_putativeListElementHasDisplayReferenceNumber(false), m_noteTextPID(0), - m_inSubDocument(false) #endif m_alignmentCharacter('.'), ! m_isTabPositionRelative(false) { } --- 99,113 ---- m_textIndentByParagraphIndentChange(0.0f), m_textIndentByTabs(0.0f), m_currentListLevel(0), + #if 0 m_putativeListElementHasParagraphNumber(false), m_putativeListElementHasDisplayReferenceNumber(false), m_noteTextPID(0), #endif m_alignmentCharacter('.'), ! m_isTabPositionRelative(false), ! m_inSubDocument(false), ! m_isNote(false) { } *************** *** 144,184 **** m_listenerImpl->startDocument(); ! _openPageSpan(); } void WPXHLListener::_openSection() { ! _closeSection(); ! WPXPropertyList propList; ! if (m_ps->m_numColumns > 1) ! { ! propList.insert("fo:margin-bottom", 1.0f); ! propList.insert("text:dont-balance-text-columns", false); ! } ! else ! propList.insert("fo:margin-bottom", 0.0f); ! WPXPropertyListVector columns; ! typedef std::vector<WPXColumnDefinition>::const_iterator CDVIter; ! for (CDVIter iter = m_ps->m_textColumns.begin(); iter != m_ps->m_textColumns.end(); iter++) ! { ! WPXPropertyList column; ! // The "style:rel-width" is expressed in twips (1440 twips per inch) and includes the left and right Gutter ! column.insert("style:rel-width", (*iter).m_width * 1440.0f, TWIP); ! column.insert("fo:margin-left", (*iter).m_leftGutter); ! column.insert("fo:margin-right", (*iter).m_rightGutter); ! columns.append(column); ! } ! m_listenerImpl->openSection(propList, columns); ! m_ps->m_sectionAttributesChanged = false; ! m_ps->m_isSectionOpened = true; } void WPXHLListener::_closeSection() { ! _closeParagraph(); if (m_ps->m_isSectionOpened) m_listenerImpl->closeSection(); --- 142,192 ---- m_listenerImpl->startDocument(); ! ! m_ps->m_isDocumentStarted = true; } void WPXHLListener::_openSection() { ! if (!m_ps->m_inSubDocument) ! { ! if (!m_ps->m_isPageSpanOpened) ! _openPageSpan(); ! WPXPropertyList propList; ! if (m_ps->m_numColumns > 1) ! { ! propList.insert("fo:margin-bottom", 1.0f); ! propList.insert("text:dont-balance-text-columns", false); ! } ! else ! propList.insert("fo:margin-bottom", 0.0f); ! WPXPropertyListVector columns; ! typedef std::vector<WPXColumnDefinition>::const_iterator CDVIter; ! for (CDVIter iter = m_ps->m_textColumns.begin(); iter != m_ps->m_textColumns.end(); iter++) ! { ! WPXPropertyList column; ! // The "style:rel-width" is expressed in twips (1440 twips per inch) and includes the left and right Gutter ! column.insert("style:rel-width", (*iter).m_width * 1440.0f, TWIP); ! column.insert("fo:margin-left", (*iter).m_leftGutter); ! column.insert("fo:margin-right", (*iter).m_rightGutter); ! columns.append(column); ! } ! if (!m_ps->m_isSectionOpened) ! m_listenerImpl->openSection(propList, columns); ! m_ps->m_sectionAttributesChanged = false; ! m_ps->m_isSectionOpened = true; ! } } void WPXHLListener::_closeSection() { ! if (m_ps->m_isParagraphOpened) ! _closeParagraph(); ! if (m_ps->m_isListElementOpened) ! _closeListElement(); ! if (m_ps->m_isSectionOpened) m_listenerImpl->closeSection(); *************** *** 189,193 **** void WPXHLListener::_openPageSpan() { ! _closePageSpan(); // Hack to be sure that the paragraph margins are consistent even if the page margin changes --- 197,202 ---- void WPXHLListener::_openPageSpan() { ! if (!m_ps->m_isDocumentStarted) ! startDocument(); // Hack to be sure that the paragraph margins are consistent even if the page margin changes *************** *** 221,225 **** propList.insert("fo:margin-bottom", currentPage->getMarginBottom()); ! m_listenerImpl->openPageSpan(propList); m_ps->m_pageFormWidth = currentPage->getFormWidth(); --- 230,237 ---- propList.insert("fo:margin-bottom", currentPage->getMarginBottom()); ! if (!m_ps->m_isPageSpanOpened) ! m_listenerImpl->openPageSpan(propList); ! ! m_ps->m_isPageSpanOpened = true; m_ps->m_pageFormWidth = currentPage->getFormWidth(); *************** *** 287,327 **** m_ps->m_numPagesRemainingInSpan = (currentPage->getPageSpan() - 1); m_ps->m_nextPageSpanIndice++; - m_ps->m_isPageSpanOpened = true; - _openSection(); } void WPXHLListener::_closePageSpan() { ! if (m_ps->m_isPageSpanOpened) ! { _closeSection(); m_listenerImpl->closePageSpan(); ! m_ps->m_isPageSpanOpened = false; ! } } void WPXHLListener::_openParagraph() { ! if (m_ps->m_isListElementOpened) ! _flushList(); // If we are in a list, we should discontinue it ! else ! _closeParagraph(); ! ! WPXPropertyListVector tabStops; ! _getTabStops(tabStops); ! ! WPXPropertyList propList; ! _appendParagraphProperties(propList); ! m_listenerImpl->openParagraph(propList, tabStops); ! // this is paragraph-specific (handle breaks differently for ! // lists, which we otherwise treat the same) ! if (m_ps->m_numDeferredParagraphBreaks > 0) ! m_ps->m_numDeferredParagraphBreaks--; ! _resetParagraphState(); ! _openSpan(); } --- 299,333 ---- m_ps->m_numPagesRemainingInSpan = (currentPage->getPageSpan() - 1); m_ps->m_nextPageSpanIndice++; } void WPXHLListener::_closePageSpan() { ! if (m_ps->m_isSectionOpened) _closeSection(); + + if (m_ps->m_isPageSpanOpened) m_listenerImpl->closePageSpan(); ! ! m_ps->m_isPageSpanOpened = false; } void WPXHLListener::_openParagraph() { ! if (!m_ps->m_isParagraphOpened && !m_ps->m_isListElementOpened) ! { ! if (!m_ps->m_isTableOpened && !m_ps->m_isSectionOpened && !m_ps->m_inSubDocument) ! _openSection(); ! WPXPropertyListVector tabStops; ! _getTabStops(tabStops); ! WPXPropertyList propList; ! _appendParagraphProperties(propList); ! if (!m_ps->m_isParagraphOpened) ! m_listenerImpl->openParagraph(propList, tabStops); ! _resetParagraphState(); ! } } *************** *** 450,454 **** void WPXHLListener::_closeParagraph() { ! _closeSpan(); if (m_ps->m_isParagraphOpened) m_listenerImpl->closeParagraph(); --- 456,461 ---- void WPXHLListener::_closeParagraph() { ! if (m_ps->m_isSpanOpened) ! _closeSpan(); if (m_ps->m_isParagraphOpened) m_listenerImpl->closeParagraph(); *************** *** 459,479 **** void WPXHLListener::_openListElement() { ! _closeParagraph(); ! _closeListElement(); ! WPXPropertyList propList; ! _appendParagraphProperties(propList); ! WPXPropertyListVector tabStops; ! _getTabStops(tabStops); ! m_listenerImpl->openListElement(propList, tabStops); ! _resetParagraphState(true); ! _openSpan(); } void WPXHLListener::_closeListElement() { ! _closeSpan(); if (m_ps->m_isListElementOpened) m_listenerImpl->closeListElement(); --- 466,490 ---- void WPXHLListener::_openListElement() { ! if (!m_ps->m_isParagraphOpened && !m_ps->m_isListElementOpened) ! { ! if (!m_ps->m_isTableOpened && !m_ps->m_isSectionOpened && !m_ps->m_inSubDocument) ! _openSection(); ! WPXPropertyList propList; ! _appendParagraphProperties(propList); ! WPXPropertyListVector tabStops; ! _getTabStops(tabStops); ! if (!m_ps->m_isListElementOpened) ! m_listenerImpl->openListElement(propList, tabStops); ! _resetParagraphState(true); ! } } void WPXHLListener::_closeListElement() { ! if (m_ps->m_isSpanOpened) ! _closeSpan(); if (m_ps->m_isListElementOpened) m_listenerImpl->closeListElement(); *************** *** 486,490 **** void WPXHLListener::_openSpan() { ! _closeSpan(); // The behaviour of WP6+ is following: if an attribute bit is set in the cell attributes, we cannot // unset it; if it is set, we can set or unset it --- 497,506 ---- void WPXHLListener::_openSpan() { ! if (!m_ps->m_isParagraphOpened && !m_ps->m_isListElementOpened) ! if (m_ps->m_currentListLevel == 0) ! _openParagraph(); ! else ! _openListElement(); ! // The behaviour of WP6+ is following: if an attribute bit is set in the cell attributes, we cannot // unset it; if it is set, we can set or unset it *************** *** 563,567 **** propList.insert("style:text-background-color", _colorToString(m_ps->m_highlightColor)); ! m_listenerImpl->openSpan(propList); m_ps->m_isSpanOpened = true; --- 579,584 ---- propList.insert("style:text-background-color", _colorToString(m_ps->m_highlightColor)); ! if (!m_ps->m_isSpanOpened) ! m_listenerImpl->openSpan(propList); m_ps->m_isSpanOpened = true; *************** *** 570,573 **** --- 587,591 ---- void WPXHLListener::_closeSpan() { + _flushText(); if (m_ps->m_isSpanOpened) m_listenerImpl->closeSpan(); *************** *** 764,768 **** { if (m_ps->m_isCellWithoutParagraph) ! _openParagraph(); _closeParagraph(); m_ps->m_cellAttributeBits = 0x00000000; --- 782,786 ---- { if (m_ps->m_isCellWithoutParagraph) ! _openSpan(); _closeParagraph(); m_ps->m_cellAttributeBits = 0x00000000; *************** *** 788,791 **** --- 806,810 ---- m_ps->m_subDocumentTextPIDs = oldPS->m_subDocumentTextPIDs; // END: copy page properties into the new parsing state + m_ps->m_inSubDocument = true; // Check whether the document is calling its own TextPID if ((m_ps->m_subDocumentTextPIDs.find(textPID) == m_ps->m_subDocumentTextPIDs.end()) || (!textPID)) *************** *** 809,823 **** { case WPX_COLUMN_BREAK: ! if (m_ps->m_isTextColumnWithoutParagraph) ! { ! _openParagraph(); // handle a case where two column breaks are following each other ! _flushText(); ! } ! m_ps->m_numDeferredParagraphBreaks++; m_ps->m_isParagraphColumnBreak = true; m_ps->m_isTextColumnWithoutParagraph = true; break; case WPX_PAGE_BREAK: ! m_ps->m_numDeferredParagraphBreaks++; m_ps->m_isParagraphPageBreak = true; break; --- 828,847 ---- { case WPX_COLUMN_BREAK: ! if (!m_ps->m_isSpanOpened) ! _openSpan(); ! if (m_ps->m_isParagraphOpened) ! _closeParagraph(); ! if (m_ps->m_isListElementOpened) ! _closeListElement(); m_ps->m_isParagraphColumnBreak = true; m_ps->m_isTextColumnWithoutParagraph = true; break; case WPX_PAGE_BREAK: ! if (!m_ps->m_isSpanOpened) ! _openSpan(); ! if (m_ps->m_isParagraphOpened) ! _closeParagraph(); ! if (m_ps->m_isListElementOpened) ! _closeListElement(); m_ps->m_isParagraphPageBreak = true; break; Index: WP6HLContentListener.h =================================================================== RCS file: /cvsroot/libwpd/libwpd2/src/lib/WP6HLContentListener.h,v retrieving revision 1.44 retrieving revision 1.44.2.1 diff -C2 -d -r1.44 -r1.44.2.1 *** WP6HLContentListener.h 8 Feb 2005 16:02:53 -0000 1.44 --- WP6HLContentListener.h 27 Jul 2005 15:57:03 -0000 1.44.2.1 *************** *** 2,5 **** --- 2,6 ---- * Copyright (C) 2002 William Lachance (wil...@sy...) * Copyright (C) 2002 Marc Maurer (j.m...@st...) + * Copyright (C) 2005 Fridrich Strba (fri...@bl...) * * This library is free software; you can redistribute it and/or *************** *** 86,90 **** uint16_t m_currentOutlineHash; // probably should replace Hash with Key in these sorts of cases uint8_t m_oldListLevel; - uint8_t m_currentListLevel; WP6StyleStateSequence m_styleStateSequence; bool m_putativeListElementHasParagraphNumber; --- 87,90 ---- Index: WP42HLListener.cpp =================================================================== RCS file: /cvsroot/libwpd/libwpd2/src/lib/WP42HLListener.cpp,v retrieving revision 1.28 retrieving revision 1.28.2.1 diff -C2 -d -r1.28 -r1.28.2.1 *** WP42HLListener.cpp 8 Feb 2005 16:02:50 -0000 1.28 --- WP42HLListener.cpp 27 Jul 2005 15:57:02 -0000 1.28.2.1 *************** *** 2,5 **** --- 2,6 ---- * Copyright (C) 2003 William Lachance (wil...@sy...) * Copyright (C) 2003-2004 Marc Maurer (j.m...@st...) + * Copyright (C) 2005 Fridrich Strba (fri...@bl...) * * This library is free software; you can redistribute it and/or *************** *** 41,44 **** --- 42,47 ---- void WP42HLListener::insertCharacter(const uint16_t character) { + if (m_ps->m_isSpanOpened) + _openSpan(); appendUCS4(m_textBuffer, (uint32_t)character); } *************** *** 46,84 **** void WP42HLListener::insertTab(const uint8_t tabType, const float tabPosition) { ! _flushText(); ! m_listenerImpl->insertTab(); } void WP42HLListener::insertEOL() { ! _flushText(); ! m_ps->m_numDeferredParagraphBreaks++; } void WP42HLListener::endDocument() { ! // corner case: document ends in a list element ! /*if (m_parseState->m_styleStateSequence.getCurrentState() != NORMAL) ! { ! _flushText(); // flush the list text ! m_parseState->m_styleStateSequence.setCurrentState(NORMAL); ! _flushText(true); // flush the list exterior (forcing a line break, to make _flushText think we've exited a list) ! }*/ ! // corner case: document contains no end of lines ! /*else*/ if (!m_ps->m_isParagraphOpened && !m_ps->m_isParagraphClosed) ! { ! _flushText(); ! } ! // NORMAL(ish) case document ends either inside a paragraph or outside of one, ! // but not inside an object ! else if (!m_ps->m_isParagraphClosed || !m_ps->m_isParagraphOpened) ! { ! _flushText(); ! } ! ! // the only other possibility is a logical contradiction: a paragraph ! // may not be opened and closed at the same time ! ! // close the document nice and tight _closeSection(); _closePageSpan(); --- 49,79 ---- void WP42HLListener::insertTab(const uint8_t tabType, const float tabPosition) { ! if (!isUndoOn()) ! { ! _flushText(); ! if (!m_ps->m_isSpanOpened) ! _openSpan(); ! m_listenerImpl->insertTab(); ! } } void WP42HLListener::insertEOL() { ! if (!isUndoOn()) ! { ! if (!m_ps->m_isSpanOpened && !m_ps->m_isParagraphOpened && !m_ps->m_isListElementOpened) ! _openSpan(); ! else ! _flushText(); ! if (m_ps->m_isParagraphOpened) ! _closeParagraph(); ! if (m_ps->m_isListElementOpened) ! _closeListElement(); ! } } void WP42HLListener::endDocument() { ! _flushText(); _closeSection(); _closePageSpan(); *************** *** 93,99 **** void WP42HLListener::attributeChange(const bool isOn, const uint8_t attribute) { ! ! // flush everything which came before this change ! _flushText(); uint32_t textAttributeBit = 0; --- 88,92 ---- void WP42HLListener::attributeChange(const bool isOn, const uint8_t attribute) { ! _closeSpan(); uint32_t textAttributeBit = 0; *************** *** 138,143 **** else m_ps->m_textAttributeBits ^= textAttributeBit; - - m_ps->m_textAttributesChanged = true; } --- 131,134 ---- *************** *** 146,189 **** *****************************************/ - /* - TODO: this function needs to be fleshed out - */ void WP42HLListener::_flushText(const bool fakeText) { - // create a new section, and a new paragraph, if our section attributes have changed and we have inserted - // something into the document (or we have forced a break, which assumes the same condition) - if (m_ps->m_sectionAttributesChanged && (m_textBuffer.len() > 0 || m_ps->m_numDeferredParagraphBreaks > 0/* || fakeText*/)) - { - _openSection(); - //if (fakeText) - _openParagraph(); - } - - if (m_ps->m_numDeferredParagraphBreaks > 0) - { - if (!m_ps->m_isParagraphOpened //&& - // !(m_parseState->m_isTableOpened && !m_parseState->m_isTableCellOpened) // don't allow paragraphs to be opened when we have already opened a table, but no cell yet. - MARCM (is it really correct, or should this be fixed elsewhere??) - ) - m_ps->m_numDeferredParagraphBreaks++; - - while (m_ps->m_numDeferredParagraphBreaks > 1) - _openParagraph(); - _closeParagraph(); - m_ps->m_numDeferredParagraphBreaks = 0; // compensate for this by requiring a paragraph to be opened - } - else if (m_ps->m_textAttributesChanged && m_textBuffer.len()) - { - _openSpan(); - m_ps->m_textAttributesChanged = false; - } - if (m_textBuffer.len()) { ! if (!m_ps->m_isParagraphOpened) ! { ! _openParagraph(); _openSpan(); - } - m_listenerImpl->insertText(m_textBuffer); m_textBuffer.clear(); --- 137,146 ---- *****************************************/ void WP42HLListener::_flushText(const bool fakeText) { if (m_textBuffer.len()) { ! if (!m_ps->m_isSpanOpened) _openSpan(); m_listenerImpl->insertText(m_textBuffer); m_textBuffer.clear(); Index: WPXHLListener.h =================================================================== RCS file: /cvsroot/libwpd/libwpd2/src/lib/WPXHLListener.h,v retrieving revision 1.61 retrieving revision 1.61.2.1 diff -C2 -d -r1.61 -r1.61.2.1 *** WPXHLListener.h 6 Apr 2005 07:24:38 -0000 1.61 --- WPXHLListener.h 27 Jul 2005 15:57:03 -0000 1.61.2.1 *************** *** 2,5 **** --- 2,6 ---- * Copyright (C) 2002 William Lachance (wil...@sy...) * Copyright (C) 2002 Marc Maurer (j.m...@st...) + * Copyright (C) 2005 Fridrich Strba (fri...@bl...) * * This library is free software; you can redistribute it and/or *************** *** 72,76 **** #endif uint32_t m_textAttributeBits; - bool m_textAttributesChanged; float m_fontSize; WPXString *m_fontName; --- 73,76 ---- *************** *** 84,96 **** float m_paragraphLineSpacing; bool m_isSectionOpened; bool m_isPageSpanBreakDeferred; bool m_isParagraphOpened; - bool m_isParagraphClosed; bool m_isListElementOpened; - bool m_isListElementClosed; bool m_isSpanOpened; - int m_numDeferredParagraphBreaks; WPXTableDefinition m_tableDefinition; --- 84,95 ---- float m_paragraphLineSpacing; + bool m_isDocumentStarted; + bool m_isPageSpanOpened; bool m_isSectionOpened; bool m_isPageSpanBreakDeferred; bool m_isParagraphOpened; bool m_isListElementOpened; bool m_isSpanOpened; WPXTableDefinition m_tableDefinition; *************** *** 106,110 **** uint8_t m_paragraphJustificationBeforeTable; - bool m_isPageSpanOpened; int m_nextPageSpanIndice; int m_numPagesRemainingInSpan; --- 105,108 ---- *************** *** 135,138 **** --- 133,138 ---- float m_textIndentByParagraphIndentChange; // part of the indent due to the PARAGRAPH indent (WP6???) float m_textIndentByTabs; // part of the indent due to the "Back Tab" + + uint8_t m_currentListLevel; #if 0 *************** *** 140,144 **** uint16_t m_currentOutlineHash; // probably should replace Hash with Key in these sorts of cases uint8_t m_oldListLevel; - uint8_t m_currentListLevel; WP6StyleStateSequence m_styleStateSequence; bool m_putativeListElementHasParagraphNumber; --- 140,143 ---- *************** *** 152,155 **** --- 151,157 ---- std::set <int> m_subDocumentTextPIDs; + + bool m_inSubDocument; + bool m_isNote; }; Index: WP6HLContentListener.cpp =================================================================== RCS file: /cvsroot/libwpd/libwpd2/src/lib/WP6HLContentListener.cpp,v retrieving revision 1.78.2.2 retrieving revision 1.78.2.3 diff -C2 -d -r1.78.2.2 -r1.78.2.3 *** WP6HLContentListener.cpp 22 Jun 2005 10:54:18 -0000 1.78.2.2 --- WP6HLContentListener.cpp 27 Jul 2005 15:57:02 -0000 1.78.2.3 *************** *** 226,230 **** m_nextTableIndice(nextTableIndice), - m_currentListLevel(0), m_putativeListElementHasParagraphNumber(false), m_putativeListElementHasDisplayReferenceNumber(false), --- 226,229 ---- *************** *** 327,331 **** --- 326,334 ---- if (m_parseState->m_styleStateSequence.getCurrentState() == STYLE_BODY || m_parseState->m_styleStateSequence.getCurrentState() == NORMAL) + { + if (!m_ps->m_isSpanOpened) + _openSpan(); appendUCS4(m_parseState->m_bodyText, (uint32_t)character); + } else if (m_parseState->m_styleStateSequence.getCurrentState() == BEGIN_BEFORE_NUMBERING) { *************** *** 375,391 **** if (!isUndoOn()) { - - _flushText(); - // Fridrich Strba -- HACK: we force each tab to be in its own span in order - // to prevent previous span's properties to apply to the tab also if they changed. - m_ps->m_textAttributesChanged = true; - - // open new section if section attributes changed - if (m_ps->m_sectionAttributesChanged && !m_ps->m_isTableOpened) - { - _openSection(); - m_ps->m_sectionAttributesChanged = false; - } - if (m_parseState->m_styleStateSequence.getCurrentState() == STYLE_BODY || m_parseState->m_styleStateSequence.getCurrentState() == NORMAL) --- 378,381 ---- *************** *** 405,414 **** case WP6_TAB_GROUP_RIGHT_TAB: case WP6_TAB_GROUP_DECIMAL_TAB: if (!m_ps->m_isParagraphOpened && !m_ps->m_isListElementOpened) ! if (m_parseState->m_currentListLevel == 0) _openParagraph(); else _openListElement(); _openSpan(); break; --- 395,408 ---- case WP6_TAB_GROUP_RIGHT_TAB: case WP6_TAB_GROUP_DECIMAL_TAB: + _flushText(); if (!m_ps->m_isParagraphOpened && !m_ps->m_isListElementOpened) ! if (m_ps->m_currentListLevel == 0) _openParagraph(); else _openListElement(); + + if (!m_ps->m_isSpanOpened) _openSpan(); + break; *************** *** 489,495 **** else { ! // Fridrich Strba -- HACK: we force each tab to be in its own span in order ! // to prevent previous span's properties to apply to the tab also if they changed. ! _flushText(true); switch ((tabType & 0xF8) >> 3) { --- 483,491 ---- else { ! _flushText(); ! ! if (!m_ps->m_isSpanOpened) ! _openSpan(); ! switch ((tabType & 0xF8) >> 3) { *************** *** 514,519 **** break; } - _flushText(true); - m_ps->m_textAttributesChanged = true; } } --- 510,513 ---- *************** *** 526,538 **** { _flushText(); - // Fridrich Strba -- HACK: we force each tab to be in its own span in order - // to prevent previous span's properties to apply to the tab also if they changed. - m_ps->m_textAttributesChanged = true; - - if (m_ps->m_sectionAttributesChanged && !m_ps->m_isTableOpened) - { - _openSection(); - m_ps->m_sectionAttributesChanged = false; - } if (m_parseState->m_styleStateSequence.getCurrentState() == STYLE_BODY || --- 520,523 ---- *************** *** 540,551 **** { if (!m_ps->m_isParagraphOpened && !m_ps->m_isListElementOpened) ! if (m_parseState->m_currentListLevel == 0) _openParagraph(); else _openListElement(); ! _flushText(true); m_listenerImpl->insertLineBreak(); - _flushText(true); - m_ps->m_textAttributesChanged = true; } } --- 525,535 ---- { if (!m_ps->m_isParagraphOpened && !m_ps->m_isListElementOpened) ! if (m_ps->m_currentListLevel == 0) _openParagraph(); else _openListElement(); ! if (!m_ps->m_isSpanOpened) ! _openSpan(); m_listenerImpl->insertLineBreak(); } } *************** *** 556,562 **** if (!isUndoOn()) { ! if (m_parseState->m_styleStateSequence.getCurrentState() == NORMAL) _flushText(); ! m_ps->m_numDeferredParagraphBreaks++; } --- 540,551 ---- if (!isUndoOn()) { ! if (!m_ps->m_isSpanOpened && !m_ps->m_isParagraphOpened && !m_ps->m_isListElementOpened) ! _openSpan(); ! else _flushText(); ! if (m_ps->m_isParagraphOpened) ! _closeParagraph(); ! if (m_ps->m_isListElementOpened) ! _closeListElement(); } *************** *** 567,576 **** if (!isUndoOn()) { ! // flush everything which came before this change ! _flushText(); m_ps->m_fontColor->m_r = red; m_ps->m_fontColor->m_g = green; m_ps->m_fontColor->m_b = blue; - m_ps->m_textAttributesChanged = true; } } --- 556,563 ---- if (!isUndoOn()) { ! _closeSpan(); m_ps->m_fontColor->m_r = red; m_ps->m_fontColor->m_g = green; m_ps->m_fontColor->m_b = blue; } } *************** *** 580,587 **** if (!isUndoOn()) { ! // flush everything which came before this change ! _flushText(); m_ps->m_fontColor->m_s = shading; - m_ps->m_textAttributesChanged = true; } } --- 567,572 ---- if (!isUndoOn()) { ! _closeSpan(); m_ps->m_fontColor->m_s = shading; } } *************** *** 591,601 **** if (!isUndoOn()) { ! //flush everything which came before this change ! _flushText(); if (isOn) m_ps->m_highlightColor = new RGBSColor(color.m_r, color.m_g, color.m_b, color.m_s); else DELETEP(m_ps->m_highlightColor); - m_ps->m_textAttributesChanged = true; } } --- 576,584 ---- if (!isUndoOn()) { ! _closeSpan(); if (isOn) m_ps->m_highlightColor = new RGBSColor(color.m_r, color.m_g, color.m_b, color.m_s); else DELETEP(m_ps->m_highlightColor); } } *************** *** 605,611 **** if (!isUndoOn()) { ! // flush everything which came before this change ! _flushText(); ! if (matchedFontPointSize) { --- 588,592 ---- if (!isUndoOn()) { ! _closeSpan(); if (matchedFontPointSize) { *************** *** 624,628 **** } } - m_ps->m_textAttributesChanged = true; } } --- 605,608 ---- *************** *** 632,637 **** if (!isUndoOn()) { ! // flush everything which came before this change ! _flushText(); uint32_t textAttributeBit = 0; --- 612,616 ---- if (!isUndoOn()) { ! _closeSpan(); uint32_t textAttributeBit = 0; *************** *** 697,702 **** else m_ps->m_textAttributeBits ^= textAttributeBit; - - m_ps->m_textAttributesChanged = true; } } --- 676,679 ---- *************** *** 897,902 **** { WPD_DEBUG_MSG(("WordPerfect: Virtual paragraph numbering used since no paragraph number\n")); ! (m_parseState->m_currentListLevel == 0) ? _paragraphNumberOn(0, 1) : ! _paragraphNumberOn(0, m_parseState->m_currentListLevel); } m_parseState->m_styleStateSequence.setCurrentState(DISPLAY_REFERENCING); --- 874,879 ---- { WPD_DEBUG_MSG(("WordPerfect: Virtual paragraph numbering used since no paragraph number\n")); ! (m_ps->m_currentListLevel == 0) ? _paragraphNumberOn(0, 1) : ! _paragraphNumberOn(0, m_ps->m_currentListLevel); } m_parseState->m_styleStateSequence.setCurrentState(DISPLAY_REFERENCING); *************** *** 963,972 **** case WP6_STYLE_GROUP_PARASTYLE_BEGIN_ON_PART2: WPD_DEBUG_MSG(("WordPerfect: Handling a para style begin 2 (ON)\n")); - if (m_ps->m_numDeferredParagraphBreaks > 0) { - m_ps->m_numDeferredParagraphBreaks--; // very complicated: we are substituting other blocks for paragraph breaks, essentially - m_parseState->m_numRemovedParagraphBreaks = 1; // set it to 1, rather than incrementing, in case we have a leftover - } _flushText(); - break; case WP6_STYLE_GROUP_PARASTYLE_END_ON: --- 940,944 ---- *************** *** 996,999 **** --- 968,972 ---- if (m_ps->m_sectionAttributesChanged && !m_ps->m_isTableOpened) { + _closeSection(); _openSection(); m_ps->m_sectionAttributesChanged = false; *************** *** 1003,1011 **** } else - { - m_ps->m_numDeferredParagraphBreaks+=m_parseState->m_numRemovedParagraphBreaks; - m_parseState->m_numRemovedParagraphBreaks = 0; _flushText(); - } break; case WP6_STYLE_GROUP_PARASTYLE_END_OFF: --- 976,980 ---- *************** *** 1044,1047 **** --- 1013,1017 ---- // the packet after we're through with the footnote ref. m_parseState->m_noteTextPID = textPID; + m_ps->m_isNote = true; } } *************** *** 1071,1074 **** --- 1041,1045 ---- else m_listenerImpl->closeEndnote(); + m_ps->m_isNote = false; } } *************** *** 1076,1104 **** void WP6HLContentListener::endDocument() { // corner case: document ends in a list element if (m_parseState->m_styleStateSequence.getCurrentState() != NORMAL) { - // maybe one could simply use the "_flushList()" ???? - _flushText(); // flush the list text m_parseState->m_styleStateSequence.setCurrentState(NORMAL); ! _flushText(true); // flush the list exterior (forcing a line break, to make _flushText think we've exited a list) ! ! } ! // corner case: document contains no end of lines ! else if (!m_ps->m_isParagraphOpened && !m_ps->m_isParagraphClosed) ! { ! _flushText(); ! } ! // NORMAL(ish) case document ends either inside a paragraph or outside of one, ! // but not inside an object ! else if (!m_ps->m_isParagraphClosed || !m_ps->m_isParagraphOpened) ! { ! _flushText(); } - // the only other possibility is a logical contradiction: a paragraph - // may not be opened and closed at the same time - // close the document nice and tight _closePageSpan(); m_listenerImpl->endDocument(); --- 1047,1060 ---- void WP6HLContentListener::endDocument() { + _flushText(); // corner case: document ends in a list element if (m_parseState->m_styleStateSequence.getCurrentState() != NORMAL) { m_parseState->m_styleStateSequence.setCurrentState(NORMAL); ! _flushList(); // flush the list exterior } // close the document nice and tight + _closeSection(); _closePageSpan(); m_listenerImpl->endDocument(); *************** *** 1173,1176 **** --- 1129,1133 ---- // it is safer to introduce it though. Does not hurt. { + _closeSection(); _openSection(); m_ps->m_sectionAttributesChanged = false; *************** *** 1252,1270 **** } - // _handleLineBreakElementBegin: flush everything which came before this change - // eliminating one paragraph break which is now implicit in this change -- - // UNLESS the paragraph break represents something else than its name suggests, - // such as a paragraph or column break OR the paragraph break exists by itself - // NB: I know this method is ugly. Sorry kids, the translation between WordPerfect - // and an XMLish format is rather ugly by definition. - // void WP6HLContentListener::_handleLineBreakElementBegin() - // { - // if (!m_ps->m_sectionAttributesChanged && - // m_ps->m_numDeferredParagraphBreaks > 0 && - // !m_ps->m_isParagraphColumnBreak && !m_ps->m_isParagraphPageBreak) - // m_ps->m_numDeferredParagraphBreaks--; - // _flushText(); - // } - void WP6HLContentListener::_paragraphNumberOn(const uint16_t outlineHash, const uint8_t level) { --- 1209,1212 ---- *************** *** 1272,1276 **** m_parseState->m_putativeListElementHasParagraphNumber = true; m_parseState->m_currentOutlineHash = outlineHash; ! m_parseState->m_currentListLevel = level; } --- 1214,1218 ---- m_parseState->m_putativeListElementHasParagraphNumber = true; m_parseState->m_currentOutlineHash = outlineHash; ! m_ps->m_currentListLevel = level; } *************** *** 1286,1296 **** if (m_parseState->m_styleStateSequence.getCurrentState() == NORMAL) { ! if (m_parseState->m_currentListLevel > 0 && ! (m_ps->m_numDeferredParagraphBreaks > 0 || m_parseState->m_bodyText.len() > 0 || fakeText) && m_parseState->m_styleStateSequence.getCurrentState() == NORMAL) { ! m_parseState->m_currentListLevel = 0; _handleListChange(m_parseState->m_currentOutlineHash); - m_ps->m_numDeferredParagraphBreaks--; // we have an implicit break here, when we close the list m_ps->m_isParagraphOpened = false; m_ps->m_isListElementOpened = false; --- 1228,1237 ---- if (m_parseState->m_styleStateSequence.getCurrentState() == NORMAL) { ! if (m_ps->m_currentListLevel > 0 && ! (m_parseState->m_bodyText.len() > 0 || fakeText) && m_parseState->m_styleStateSequence.getCurrentState() == NORMAL) { ! m_ps->m_currentListLevel = 0; _handleListChange(m_parseState->m_currentOutlineHash); m_ps->m_isParagraphOpened = false; m_ps->m_isListElementOpened = false; *************** *** 1300,1331 **** // create a new section, and a new paragraph, if our section attributes have changed and we have inserted // something into the document (or we have forced a break, which assumes the same condition) ! if (m_ps->m_sectionAttributesChanged && (m_parseState->m_bodyText.len() > 0 || m_ps->m_numDeferredParagraphBreaks > 0 || fakeText)) { ! if (!m_ps->m_isTableOpened) ! _openSection(); if (fakeText) _openParagraph(); } - if (m_ps->m_numDeferredParagraphBreaks > 0 && (m_parseState->m_styleStateSequence.getCurrentState() == NORMAL || - ((m_parseState->m_styleStateSequence.getCurrentState() == STYLE_BODY || - m_parseState->m_styleStateSequence.getCurrentState() == STYLE_END) && - !m_parseState->m_putativeListElementHasParagraphNumber))) - { - if (!m_ps->m_isParagraphOpened && !m_ps->m_isListElementOpened && - !(m_ps->m_isTableOpened && !m_ps->m_isTableCellOpened) // don't allow paragraphs to be opened when we have already opened a table, but no cell yet. - MARCM (is it really correct, or should this be fixed elsewhere??) - ) - m_ps->m_numDeferredParagraphBreaks++; - - while (m_ps->m_numDeferredParagraphBreaks > 1) - _openParagraph(); - _closeParagraph(); - m_ps->m_numDeferredParagraphBreaks = 0; // compensate for this by requiring a paragraph to be opened - } - else if (m_ps->m_textAttributesChanged && (m_parseState->m_bodyText.len() > 0 || fakeText) && (m_ps->m_isParagraphOpened || m_ps->m_isListElementOpened)) - { - _openSpan(); - } - if (m_parseState->m_bodyText.len() || (m_parseState->m_textBeforeNumber.len() && !m_parseState->m_putativeListElementHasParagraphNumber)) --- 1241,1253 ---- // create a new section, and a new paragraph, if our section attributes have changed and we have inserted // something into the document (or we have forced a break, which assumes the same condition) ! if (m_ps->m_sectionAttributesChanged && (m_parseState->m_bodyText.len() > 0 || fakeText)) { ! if (!m_ps->m_isTableOpened) { ! _closeSection(); ! _openSection();} if (fakeText) _openParagraph(); } if (m_parseState->m_bodyText.len() || (m_parseState->m_textBeforeNumber.len() && !m_parseState->m_putativeListElementHasParagraphNumber)) *************** *** 1333,1341 **** if (!m_ps->m_isParagraphOpened && !m_ps->m_isListElementOpened) { ! if (m_parseState->m_currentListLevel == 0) _openParagraph(); else _openListElement(); - _openSpan(); } --- 1255,1262 ---- if (!m_ps->m_isParagraphOpened && !m_ps->m_isListElementOpened) { ! if (m_ps->m_currentListLevel == 0) _openParagraph(); else _openListElement(); } *************** *** 1352,1357 **** } } - - m_ps->m_textAttributesChanged = false; } --- 1273,1276 ---- *************** *** 1380,1393 **** ! if (m_parseState->m_currentListLevel > oldListLevel) { WPXPropertyList propList; propList.insert("libwpd:id", m_parseState->m_currentOutlineHash); ! propList.insert("libwpd:level", m_parseState->m_currentListLevel); if (m_parseState->m_putativeListElementHasDisplayReferenceNumber) { WPXNumberingType listType = _extractWPXNumberingTypeFromBuf(m_parseState->m_numberText, ! outlineDefinition->getListType((m_parseState->m_currentListLevel-1))); int number = _extractDisplayReferenceNumberFromBuf(m_parseState->m_numberText, listType); --- 1299,1312 ---- ! if (m_ps->m_currentListLevel > oldListLevel) { WPXPropertyList propList; propList.insert("libwpd:id", m_parseState->m_currentOutlineHash); ! propList.insert("libwpd:level", m_ps->m_currentListLevel); if (m_parseState->m_putativeListElementHasDisplayReferenceNumber) { WPXNumberingType listType = _extractWPXNumberingTypeFromBuf(m_parseState->m_numberText, ! outlineDefinition->getListType((m_ps->m_currentListLevel-1))); int number = _extractDisplayReferenceNumberFromBuf(m_parseState->m_numberText, listType); *************** *** 1396,1400 **** propList.insert("style:num-suffix", m_parseState->m_textAfterDisplayReference); propList.insert("text:start-value", number); ! propList.insert("text:space-before", (m_parseState->m_currentListLevel * WPX_DEFAULT_LIST_INDENT)); m_listenerImpl->defineOrderedListLevel(propList); --- 1315,1319 ---- propList.insert("style:num-suffix", m_parseState->m_textAfterDisplayReference); propList.insert("text:start-value", number); ! propList.insert("text:space-before", (m_ps->m_currentListLevel * WPX_DEFAULT_LIST_INDENT)); m_listenerImpl->defineOrderedListLevel(propList); *************** *** 1403,1410 **** { propList.insert("text:bullet-char", m_parseState->m_textBeforeDisplayReference); ! propList.insert("text:space-before", (m_parseState->m_currentListLevel * WPX_DEFAULT_LIST_INDENT)); m_listenerImpl->defineUnorderedListLevel(propList); } ! for (int i=(oldListLevel+1); i<=m_parseState->m_currentListLevel; i++) { // Fridrich: we should not define list sublevels _inside_ of list elements; // so we just close the element to prevent call graph failure --- 1322,1329 ---- { propList.insert("text:bullet-char", m_parseState->m_textBeforeDisplayReference); ! propList.insert("text:space-before", (m_ps->m_currentListLevel * WPX_DEFAULT_LIST_INDENT)); m_listenerImpl->defineUnorderedListLevel(propList); } ! for (int i=(oldListLevel+1); i<=m_ps->m_currentListLevel; i++) { // Fridrich: we should not define list sublevels _inside_ of list elements; // so we just close the element to prevent call graph failure *************** *** 1422,1431 **** } } ! else if (m_parseState->m_currentListLevel < oldListLevel) { _closeListElement(); // close the current element, which must exist // now keep on closing levels until we reach the current list level, or the list // level stack is empty (signalling that we are out of a list) ! while (!m_parseState->m_listLevelStack.empty() && m_parseState->m_listLevelStack.top() > m_parseState->m_currentListLevel) { int tempListLevel = m_parseState->m_listLevelStack.top(); --- 1341,1350 ---- } } ! else if (m_ps->m_currentListLevel < oldListLevel) { _closeListElement(); // close the current element, which must exist // now keep on closing levels until we reach the current list level, or the list // level stack is empty (signalling that we are out of a list) ! while (!m_parseState->m_listLevelStack.empty() && m_parseState->m_listLevelStack.top() > m_ps->m_currentListLevel) { int tempListLevel = m_parseState->m_listLevelStack.top(); *************** *** 1449,1453 **** } } ! else if (m_parseState->m_currentListLevel == oldListLevel) { // keep the last element on the stack, as it's replaced by this element --- 1368,1372 ---- } } ! else if (m_ps->m_currentListLevel == oldListLevel) { // keep the last element on the stack, as it's replaced by this element *************** *** 1463,1467 **** // open a new list element, if we're still in the list ! if (m_parseState->m_currentListLevel > 0) { _openListElement(); --- 1382,1386 ---- // open a new list element, if we're still in the list ! if (m_ps->m_currentListLevel > 0) { _openListElement(); *************** *** 1472,1476 **** { _closeListElement(); ! m_parseState->m_currentListLevel = 0; _handleListChange(m_parseState->m_currentOutlineHash); } --- 1391,1395 ---- { _closeListElement(); ! m_ps->m_currentListLevel = 0; _handleListChange(m_parseState->m_currentOutlineHash); } |
From: Fridrich S. <str...@us...> - 2005-07-25 21:31:55
|
Update of /cvsroot/libwpd/libwpd2 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7780 Modified Files: Tag: fs_refactoring1 CHANGES Makefile.am configure.in Log Message: Synchronizing again with HEAD. It looks like I have about 4 days without a lot of work, so hopefully I push the refactoring a bit further Index: Makefile.am =================================================================== RCS file: /cvsroot/libwpd/libwpd2/Makefile.am,v retrieving revision 1.15 retrieving revision 1.15.2.1 diff -C2 -d -r1.15 -r1.15.2.1 *** Makefile.am 14 Feb 2005 11:27:05 -0000 1.15 --- Makefile.am 25 Jul 2005 21:31:30 -0000 1.15.2.1 *************** *** 7,11 **** pkgconf_DATA = libwpd-0.8.pc $(LIBWPD_STREAM_PC) ! SUBDIRS = src build docs EXTRA_DIST = \ --- 7,11 ---- pkgconf_DATA = libwpd-0.8.pc $(LIBWPD_STREAM_PC) ! SUBDIRS = src build docs autopackage EXTRA_DIST = \ Index: CHANGES =================================================================== RCS file: /cvsroot/libwpd/libwpd2/CHANGES,v retrieving revision 1.55.2.2 retrieving revision 1.55.2.3 diff -C2 -d -r1.55.2.2 -r1.55.2.3 *** CHANGES 22 Jun 2005 10:54:18 -0000 1.55.2.2 --- CHANGES 25 Jul 2005 21:31:30 -0000 1.55.2.3 *************** *** 1,3 **** --- 1,6 ---- CHANGES: + 0.8.2 -> 0.8.3 + - Autopackage support (Robert Staudinger) + 0.8.1 -> 0.8.2 - Add unicode mappings for WP5/WP3 charsets, different from WP6 Index: configure.in =================================================================== RCS file: /cvsroot/libwpd/libwpd2/configure.in,v retrieving revision 1.32.2.1 retrieving revision 1.32.2.2 diff -C2 -d -r1.32.2.1 -r1.32.2.2 *** configure.in 15 Jun 2005 12:20:37 -0000 1.32.2.1 --- configure.in 25 Jul 2005 21:31:30 -0000 1.32.2.2 *************** *** 201,204 **** --- 201,206 ---- libwpd.spec libwpd-zip + autopackage/Makefile + autopackage/default.apspec ]) |
From: Fridrich S. <str...@us...> - 2005-07-25 21:31:40
|
Update of /cvsroot/libwpd/libwpd2/src/lib In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7780/src/lib Modified Files: Tag: fs_refactoring1 WP6EOLGroup.cpp Log Message: Synchronizing again with HEAD. It looks like I have about 4 days without a lot of work, so hopefully I push the refactoring a bit further Index: WP6EOLGroup.cpp =================================================================== RCS file: /cvsroot/libwpd/libwpd2/src/lib/WP6EOLGroup.cpp,v retrieving revision 1.44 retrieving revision 1.44.2.1 diff -C2 -d -r1.44 -r1.44.2.1 *** WP6EOLGroup.cpp 2 Sep 2004 13:53:09 -0000 1.44 --- WP6EOLGroup.cpp 25 Jul 2005 21:31:31 -0000 1.44.2.1 *************** *** 281,284 **** --- 281,285 ---- case WP6_EOL_GROUP_DELETABLE_HARD_EOL_AT_EOC: // 0x18 (deletable hard EOL at EOC) case WP6_EOL_GROUP_DELETABLE_HARD_EOL_AT_EOP: // 0x19 (deletable hard EOL at EOP) + case WP6_EOL_GROUP_DELETABLE_HARD_EOP: // deletable hard EOP case WP6_EOL_GROUP_HARD_EOL: case WP6_EOL_GROUP_HARD_EOL_AT_EOC: *************** *** 297,301 **** break; case WP6_EOL_GROUP_HARD_EOP: // hard EOP - case WP6_EOL_GROUP_DELETABLE_HARD_EOP: // deletable hard EOP listener->insertBreak(WPX_PAGE_BREAK); break; --- 298,301 ---- |
From: Fridrich S. <str...@us...> - 2005-07-25 21:31:40
|
Update of /cvsroot/libwpd/libwpd2/autopackage In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7780/autopackage Added Files: Tag: fs_refactoring1 .cvsignore Makefile.am default.apspec.in Log Message: Synchronizing again with HEAD. It looks like I have about 4 days without a lot of work, so hopefully I push the refactoring a bit further --- NEW FILE: .cvsignore --- Makefile Makefile.in default.apspec --- NEW FILE: Makefile.am --- EXTRA_DIST = \ default.apspec.in \ default.apspec --- NEW FILE: default.apspec.in --- # -*-shell-script-*- [Meta] RootName: @libwpd.sourceforge.net/libwpd:@VERSION@ DisplayName: A library for importing WordPerfect (tm) documents ShortName: libwpd Maintainer: libwpd Team - http://libwpd.sourceforge.net/authors_licensing.html Packager: Robert Staudinger <ro...@st...> Summary: A library for importing WordPerfect (tm) documents. SoftwareVersion: @VERSION@ AutopackageTarget: 1.0 PackageVersion: 1 # Only uncomment InterfaceVersion if your package exposes interfaces to other software, # for instance if it includes DSOs or python/perl modules. See the developer guide for more info, # or ask on autopackage-dev if you don't understand interface versioning in autopackage. InterfaceVersion: @LT_CURRENT@.@LT_AGE@ [Description] A library for importing WordPerfect (tm) documents. [BuildPrepare] # doesn't need binreloc prepareBuild --prefix=/break/if/binreloc/breaks --disable-debug [BuildUnprepare] unprepareBuild [Imports] echo '*' | import [Prepare] require @gnu.org/libstdc++ 3 [Install] installExe ./bin/* installLib ./lib/*.so.*.*.* DATADEST="share/doc/libwpd-@VERSION@" if [ ! -e "$PREFIX/$DATADEST" ] ; then mkdir -p "$PREFIX/$DATADEST" fi copyFiles "./$DATADEST/COPYING" "$PREFIX/$DATADEST/" copyFiles "./$DATADEST/CREDITS" "$PREFIX/$DATADEST/" copyFiles "./$DATADEST/README" "$PREFIX/$DATADEST/" [Uninstall] uninstallFromLog |
From: Fridrich S. <str...@us...> - 2005-07-05 15:30:40
|
Update of /cvsroot/libwpd/writerperfect/filter In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14608/filter Modified Files: TextRunStyle.cxx Log Message: Add style:font-style into the attributes that have to be expanded to asian and complex Index: TextRunStyle.cxx =================================================================== RCS file: /cvsroot/libwpd/writerperfect/filter/TextRunStyle.cxx,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** TextRunStyle.cxx 27 Jun 2005 16:27:58 -0000 1.11 --- TextRunStyle.cxx 5 Jul 2005 15:30:27 -0000 1.12 *************** *** 148,151 **** --- 148,157 ---- } + if (mPropList["fo:font-style"]) + { + propList.insert("style:font-style-asian", mPropList["fo:font-style"]->getStr()); + propList.insert("style:font-style-complex", mPropList["fo:font-style"]->getStr()); + } + xHandler.startElement("style:properties", propList); |
From: Fridrich S. <str...@us...> - 2005-07-04 17:43:02
|
Update of /cvsroot/libwpd/writerperfect/filter In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9226 Modified Files: WordPerfectCollector.cxx Log Message: It seems that fribidi 0.10.5 does not define FRIBIDI_CHARSET_UTF8, so we cater for this option too Index: WordPerfectCollector.cxx =================================================================== RCS file: /cvsroot/libwpd/writerperfect/filter/WordPerfectCollector.cxx,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** WordPerfectCollector.cxx 4 Jul 2005 16:42:18 -0000 1.17 --- WordPerfectCollector.cxx 4 Jul 2005 17:42:52 -0000 1.18 *************** *** 75,78 **** --- 75,82 ---- WPXString _reorderVisualToLogical(const WPXString &str) { + #ifndef FRIBIDI_CHARSET_UTF8 + #define FRIBIDI_CHARSET_UTF8 fribidi_parse_charset("UTF-8") + #endif + int len = str.len(); FriBidiChar visualUCS4String[len+1]; |
From: Fridrich S. <str...@us...> - 2005-07-04 16:42:27
|
Update of /cvsroot/libwpd/writerperfect In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9674 Modified Files: CHANGES configure.in Log Message: Add dependency on fribidi >= 0.10.4 (The earlies I tested) Reorder strings in order to render the RTL runs correctly. Index: CHANGES =================================================================== RCS file: /cvsroot/libwpd/writerperfect/CHANGES,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** CHANGES 23 Jan 2005 10:41:07 -0000 1.2 --- CHANGES 4 Jul 2005 16:42:18 -0000 1.3 *************** *** 1,5 **** CHANGES: ! 0.6.1 -> 0.7.x - Removed span properties from paragraph style (William Lachance) - Paragraph and span properties defined in the table cell function, --- 1,8 ---- CHANGES: + 0.7.0 -> 0.7.1 + - Use fribidi to reorder strings so that they are displayed correctly + in OOo (Fridrich Strba) ! 0.6.1 -> 0.7.0 - Removed span properties from paragraph style (William Lachance) - Paragraph and span properties defined in the table cell function, Index: configure.in =================================================================== RCS file: /cvsroot/libwpd/writerperfect/configure.in,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** configure.in 28 Jan 2005 07:57:04 -0000 1.7 --- configure.in 4 Jul 2005 16:42:18 -0000 1.8 *************** *** 5,11 **** WRITERPERFECT_MAJOR_VERSION=0 WRITERPERFECT_MINOR_VERSION=7 ! WRITERPERFECT_MICRO_VERSION=0 LIBWPD_REQUIRED_VERSION=0.8.0 WRITERPERFECT_VERSION="$WRITERPERFECT_MAJOR_VERSION.$WRITERPERFECT_MINOR_VERSION.$WRITERPERFECT_MICRO_VERSION" --- 5,12 ---- WRITERPERFECT_MAJOR_VERSION=0 WRITERPERFECT_MINOR_VERSION=7 ! WRITERPERFECT_MICRO_VERSION=1 LIBWPD_REQUIRED_VERSION=0.8.0 + FRIBIDI_REQUIRED_VERSION=0.10.4 WRITERPERFECT_VERSION="$WRITERPERFECT_MAJOR_VERSION.$WRITERPERFECT_MINOR_VERSION.$WRITERPERFECT_MICRO_VERSION" *************** *** 34,40 **** libwpd-0.8 >= $LIBWPD_REQUIRED_VERSION libwpd-stream-0.8 >= $LIBWPD_REQUIRED_VERSION ]) - AC_MSG_CHECKING([for native Win32]) case "$host" in --- 35,41 ---- libwpd-0.8 >= $LIBWPD_REQUIRED_VERSION libwpd-stream-0.8 >= $LIBWPD_REQUIRED_VERSION + fribidi >= $FRIBIDI_REQUIRED_VERSION ]) AC_MSG_CHECKING([for native Win32]) case "$host" in |
From: Fridrich S. <str...@us...> - 2005-07-04 16:42:27
|
Update of /cvsroot/libwpd/writerperfect/filter In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9674/filter Modified Files: WordPerfectCollector.cxx Log Message: Add dependency on fribidi >= 0.10.4 (The earlies I tested) Reorder strings in order to render the RTL runs correctly. Index: WordPerfectCollector.cxx =================================================================== RCS file: /cvsroot/libwpd/writerperfect/filter/WordPerfectCollector.cxx,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** WordPerfectCollector.cxx 9 Feb 2005 21:59:15 -0000 1.16 --- WordPerfectCollector.cxx 4 Jul 2005 16:42:18 -0000 1.17 *************** *** 71,74 **** --- 71,96 ---- } + #include <fribidi/fribidi.h> + + WPXString _reorderVisualToLogical(const WPXString &str) + { + int len = str.len(); + FriBidiChar visualUCS4String[len+1]; + FriBidiChar logicalUCS4String[len+1]; + len = strlen(str.cstr()); + char logicalUTF8String[len+1]; + + FriBidiCharType base = FRIBIDI_TYPE_LTR; + + len = fribidi_charset_to_unicode(FRIBIDI_CHARSET_UTF8, (char *)str.cstr(), len, visualUCS4String); + // Do the reordering, and if there is an error, return the unordered string + if (!fribidi_log2vis(visualUCS4String, len, &base, logicalUCS4String, NULL, NULL, NULL)) + return str; + len = fribidi_remove_bidi_marks(logicalUCS4String, len, NULL, NULL, NULL); + len = fribidi_unicode_to_charset(FRIBIDI_CHARSET_UTF8, logicalUCS4String, len, logicalUTF8String); + + return WPXString(logicalUTF8String); + } + WordPerfectCollector::~WordPerfectCollector() { *************** *** 895,899 **** void WordPerfectCollector::insertText(const WPXString &text) { ! DocumentElement *pText = new TextElement(text); mpCurrentContentElements->push_back(pText); } --- 917,921 ---- void WordPerfectCollector::insertText(const WPXString &text) { ! DocumentElement *pText = new TextElement(_reorderVisualToLogical(text)); mpCurrentContentElements->push_back(pText); } |
From: Fridrich S. <str...@us...> - 2005-07-04 16:39:37
|
Update of /cvsroot/libwpd/libwpd2/src/lib In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8260/src/lib Modified Files: WP6EOLGroup.cpp Log Message: Convert Deletable_Hard_EOP as hard return. Index: WP6EOLGroup.cpp =================================================================== RCS file: /cvsroot/libwpd/libwpd2/src/lib/WP6EOLGroup.cpp,v retrieving revision 1.44 retrieving revision 1.45 diff -C2 -d -r1.44 -r1.45 *** WP6EOLGroup.cpp 2 Sep 2004 13:53:09 -0000 1.44 --- WP6EOLGroup.cpp 4 Jul 2005 16:39:28 -0000 1.45 *************** *** 281,284 **** --- 281,285 ---- case WP6_EOL_GROUP_DELETABLE_HARD_EOL_AT_EOC: // 0x18 (deletable hard EOL at EOC) case WP6_EOL_GROUP_DELETABLE_HARD_EOL_AT_EOP: // 0x19 (deletable hard EOL at EOP) + case WP6_EOL_GROUP_DELETABLE_HARD_EOP: // deletable hard EOP case WP6_EOL_GROUP_HARD_EOL: case WP6_EOL_GROUP_HARD_EOL_AT_EOC: *************** *** 297,301 **** break; case WP6_EOL_GROUP_HARD_EOP: // hard EOP - case WP6_EOL_GROUP_DELETABLE_HARD_EOP: // deletable hard EOP listener->insertBreak(WPX_PAGE_BREAK); break; --- 298,301 ---- |
From: Fridrich S. <str...@us...> - 2005-06-27 16:28:09
|
Update of /cvsroot/libwpd/writerperfect/filter In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6806/filter Modified Files: TextRunStyle.cxx Log Message: Use the same font for Western, Asian and Complex characters/unicode ranges Index: TextRunStyle.cxx =================================================================== RCS file: /cvsroot/libwpd/writerperfect/filter/TextRunStyle.cxx,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** TextRunStyle.cxx 7 Feb 2005 00:07:43 -0000 1.10 --- TextRunStyle.cxx 27 Jun 2005 16:27:58 -0000 1.11 *************** *** 128,132 **** xHandler.startElement("style:style", styleOpenList); ! xHandler.startElement("style:properties", mPropList); xHandler.endElement("style:properties"); --- 128,152 ---- xHandler.startElement("style:style", styleOpenList); ! WPXPropertyList propList(mPropList); ! ! if (mPropList["style:font-name"]) ! { ! propList.insert("style:font-name-asian", mPropList["style:font-name"]->getStr()); ! propList.insert("style:font-name-complex", mPropList["style:font-name"]->getStr()); ! } ! ! if (mPropList["fo:font-size"]) ! { ! propList.insert("style:font-size-asian", mPropList["fo:font-size"]->getStr()); ! propList.insert("style:font-size-complex", mPropList["fo:font-size"]->getStr()); ! } ! ! if (mPropList["fo:font-weight"]) ! { ! propList.insert("style:font-weight-asian", mPropList["fo:font-weight"]->getStr()); ! propList.insert("style:font-weight-complex", mPropList["fo:font-weight"]->getStr()); ! } ! ! xHandler.startElement("style:properties", propList); xHandler.endElement("style:properties"); |
From: Fridrich S. <str...@us...> - 2005-06-25 10:44:18
|
Update of /cvsroot/libwpd/libwpd2 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5934 Modified Files: configure.in Log Message: OK, I forgot this one Index: configure.in =================================================================== RCS file: /cvsroot/libwpd/libwpd2/configure.in,v retrieving revision 1.34 retrieving revision 1.35 diff -C2 -d -r1.34 -r1.35 *** configure.in 23 Jun 2005 19:26:00 -0000 1.34 --- configure.in 25 Jun 2005 10:44:08 -0000 1.35 *************** *** 201,204 **** --- 201,205 ---- libwpd.spec libwpd-zip + autopackage/Makefile autopackage/default.apspec ]) |
From: Fridrich S. <str...@us...> - 2005-06-25 10:40:59
|
Update of /cvsroot/libwpd/libwpd2/autopackage In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4758/autopackage Added Files: .cvsignore Makefile.am Log Message: Put the autopackage directory into the "dist" target, since the configure will need it. --- NEW FILE: .cvsignore --- Makefile Makefile.in default.apspec --- NEW FILE: Makefile.am --- EXTRA_DIST = \ default.apspec.in \ default.apspec |
From: Fridrich S. <str...@us...> - 2005-06-25 10:40:59
|
Update of /cvsroot/libwpd/libwpd2 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4758 Modified Files: Makefile.am Log Message: Put the autopackage directory into the "dist" target, since the configure will need it. Index: Makefile.am =================================================================== RCS file: /cvsroot/libwpd/libwpd2/Makefile.am,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** Makefile.am 14 Feb 2005 11:27:05 -0000 1.15 --- Makefile.am 25 Jun 2005 10:40:51 -0000 1.16 *************** *** 7,11 **** pkgconf_DATA = libwpd-0.8.pc $(LIBWPD_STREAM_PC) ! SUBDIRS = src build docs EXTRA_DIST = \ --- 7,11 ---- pkgconf_DATA = libwpd-0.8.pc $(LIBWPD_STREAM_PC) ! SUBDIRS = src build docs autopackage EXTRA_DIST = \ |
From: Marc M. <uw...@us...> - 2005-06-23 19:26:09
|
Update of /cvsroot/libwpd/libwpd2/autopackage In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10960/autopackage Added Files: default.apspec.in Log Message: Autopackage support (Robert Staudinger) --- NEW FILE: default.apspec.in --- # -*-shell-script-*- [Meta] RootName: @libwpd.sourceforge.net/libwpd:@VERSION@ DisplayName: A library for importing WordPerfect (tm) documents ShortName: libwpd Maintainer: libwpd Team - http://libwpd.sourceforge.net/authors_licensing.html Packager: Robert Staudinger <ro...@st...> Summary: A library for importing WordPerfect (tm) documents. SoftwareVersion: @VERSION@ AutopackageTarget: 1.0 PackageVersion: 1 # Only uncomment InterfaceVersion if your package exposes interfaces to other software, # for instance if it includes DSOs or python/perl modules. See the developer guide for more info, # or ask on autopackage-dev if you don't understand interface versioning in autopackage. InterfaceVersion: @LT_CURRENT@.@LT_AGE@ [Description] A library for importing WordPerfect (tm) documents. [BuildPrepare] # doesn't need binreloc prepareBuild --prefix=/break/if/binreloc/breaks --disable-debug [BuildUnprepare] unprepareBuild [Imports] echo '*' | import [Prepare] require @gnu.org/libstdc++ 3 [Install] installExe ./bin/* installLib ./lib/*.so.*.*.* DATADEST="share/doc/libwpd-@VERSION@" if [ ! -e "$PREFIX/$DATADEST" ] ; then mkdir -p "$PREFIX/$DATADEST" fi copyFiles "./$DATADEST/COPYING" "$PREFIX/$DATADEST/" copyFiles "./$DATADEST/CREDITS" "$PREFIX/$DATADEST/" copyFiles "./$DATADEST/README" "$PREFIX/$DATADEST/" [Uninstall] uninstallFromLog |
From: Marc M. <uw...@us...> - 2005-06-23 19:26:08
|
Update of /cvsroot/libwpd/libwpd2 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10960 Modified Files: CHANGES configure.in Log Message: Autopackage support (Robert Staudinger) Index: CHANGES =================================================================== RCS file: /cvsroot/libwpd/libwpd2/CHANGES,v retrieving revision 1.57 retrieving revision 1.58 diff -C2 -d -r1.57 -r1.58 *** CHANGES 22 Jun 2005 09:12:43 -0000 1.57 --- CHANGES 23 Jun 2005 19:26:00 -0000 1.58 *************** *** 1,3 **** --- 1,6 ---- CHANGES: + 0.8.2 -> 0.8.3 + - Autopackage support (Robert Staudinger) + 0.8.1 -> 0.8.2 - Add unicode mappings for WP5/WP3 charsets, different from WP6 Index: configure.in =================================================================== RCS file: /cvsroot/libwpd/libwpd2/configure.in,v retrieving revision 1.33 retrieving revision 1.34 diff -C2 -d -r1.33 -r1.34 *** configure.in 15 Jun 2005 12:18:27 -0000 1.33 --- configure.in 23 Jun 2005 19:26:00 -0000 1.34 *************** *** 201,204 **** --- 201,205 ---- libwpd.spec libwpd-zip + autopackage/default.apspec ]) |
From: Marc M. <uw...@us...> - 2005-06-23 19:24:05
|
Update of /cvsroot/libwpd/libwpd2/autopackage In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10056/autopackage Log Message: Directory /cvsroot/libwpd/libwpd2/autopackage added to the repository |
From: Fridrich S. <str...@us...> - 2005-06-22 10:54:27
|
Update of /cvsroot/libwpd/libwpd2/src/lib In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26538/src/lib Modified Files: Tag: fs_refactoring1 WP6HLContentListener.cpp Log Message: Sync with hEAD Index: WP6HLContentListener.cpp =================================================================== RCS file: /cvsroot/libwpd/libwpd2/src/lib/WP6HLContentListener.cpp,v retrieving revision 1.78.2.1 retrieving revision 1.78.2.2 diff -C2 -d -r1.78.2.1 -r1.78.2.2 *** WP6HLContentListener.cpp 11 May 2005 14:26:23 -0000 1.78.2.1 --- WP6HLContentListener.cpp 22 Jun 2005 10:54:18 -0000 1.78.2.2 *************** *** 382,386 **** // open new section if section attributes changed ! if (m_ps->m_sectionAttributesChanged) { _openSection(); --- 382,386 ---- // open new section if section attributes changed ! if (m_ps->m_sectionAttributesChanged && !m_ps->m_isTableOpened) { _openSection(); *************** *** 530,534 **** m_ps->m_textAttributesChanged = true; ! if (m_ps->m_sectionAttributesChanged) { _openSection(); --- 530,534 ---- m_ps->m_textAttributesChanged = true; ! if (m_ps->m_sectionAttributesChanged && !m_ps->m_isTableOpened) { _openSection(); *************** *** 994,998 **** if (m_parseState->m_putativeListElementHasParagraphNumber) { ! if (m_ps->m_sectionAttributesChanged) { _openSection(); --- 994,998 ---- if (m_parseState->m_putativeListElementHasParagraphNumber) { ! if (m_ps->m_sectionAttributesChanged && !m_ps->m_isTableOpened) { _openSection(); *************** *** 1168,1172 **** // FIXME: this isn't a very satisfying solution, and might need to be generalized // as we add more table-like structures into the document ! if (m_ps->m_sectionAttributesChanged) { _openSection(); --- 1168,1175 ---- // FIXME: this isn't a very satisfying solution, and might need to be generalized // as we add more table-like structures into the document ! if (m_ps->m_sectionAttributesChanged && !m_ps->m_isTableOpened) ! // !m_ps->m_isTableOpened condition seems impossible for the time being, since ! // there are no nested tables in WP6+ file format, but with "more table-like structures" ! // it is safer to introduce it though. Does not hurt. { _openSection(); *************** *** 1299,1303 **** if (m_ps->m_sectionAttributesChanged && (m_parseState->m_bodyText.len() > 0 || m_ps->m_numDeferredParagraphBreaks > 0 || fakeText)) { ! _openSection(); if (fakeText) _openParagraph(); --- 1302,1307 ---- if (m_ps->m_sectionAttributesChanged && (m_parseState->m_bodyText.len() > 0 || m_ps->m_numDeferredParagraphBreaks > 0 || fakeText)) { ! if (!m_ps->m_isTableOpened) ! _openSection(); if (fakeText) _openParagraph(); |
From: Fridrich S. <str...@us...> - 2005-06-22 10:54:27
|
Update of /cvsroot/libwpd/libwpd2 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26538 Modified Files: Tag: fs_refactoring1 CHANGES Log Message: Sync with hEAD Index: CHANGES =================================================================== RCS file: /cvsroot/libwpd/libwpd2/CHANGES,v retrieving revision 1.55.2.1 retrieving revision 1.55.2.2 diff -C2 -d -r1.55.2.1 -r1.55.2.2 *** CHANGES 15 Jun 2005 12:20:37 -0000 1.55.2.1 --- CHANGES 22 Jun 2005 10:54:18 -0000 1.55.2.2 *************** *** 4,10 **** (Ariya Hidayat, Fridrich Strba, Susan Isiko Strba) - Add unicode mappings for WP6 Arabic charsets 13 & 14 (Smokey ! Ardisson) - Fix conversion of page attributes in documents with headers/footers (Fridrich Strba) 0.8.0 -> 0.8.1 --- 4,18 ---- (Ariya Hidayat, Fridrich Strba, Susan Isiko Strba) - Add unicode mappings for WP6 Arabic charsets 13 & 14 (Smokey ! Ardisson) ! - Fix http://bugzilla.abisource.com/show_bug.cgi?id=8807 : Improving ! our extended characters to unicode mappings (Ariya Hidayat, Smokey ! Ardisson, Fridrich Strba) - Fix conversion of page attributes in documents with headers/footers (Fridrich Strba) + - Fix http://bugzilla.abisource.com/show_bug.cgi?id=8830 : Ignore a + font size change if the resulting size would be of "Opt" + (Fridrich Strba) + - Fix http://bugzilla.abisource.com/show_bug.cgi?id=9190 : Do NEVER + open/close sections inside a table (Fridrich Strba) 0.8.0 -> 0.8.1 |
From: Fridrich S. <str...@us...> - 2005-06-22 09:24:57
|
Update of /cvsroot/libwpd/regression/testset/WP6 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12736/testset/WP6 Added Files: 10e.wpd 10e.wpd.raw 10e.wpd.writerperfect Log Message: I fogot to do "cvs add" --- NEW FILE: 10e.wpd --- (This appears to be a binary file; contents omitted.) --- NEW FILE: 10e.wpd.writerperfect --- <?xml version="1.0"?> <office:document-content xmlns:chart="http://openoffice.org/2000/chart" xmlns:dr3d="http://openoffice.org/2000/dr3d" xmlns:draw="http://openoffice.org/2000/draw" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:form="http://openoffice.org/2000/form" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:number="http://openoffice.org/2000/datastyle" xmlns:office="http://openoffice.org/2000/office" xmlns:script="http://openoffice.org/2000/script" xmlns:style="http://openoffice.org/2000/style" xmlns:svg="http://www.w3.org/2000/svg" xmlns:table="http://openoffice.org/2000/table" xmlns:text="http://openoffice.org/2000/text" xmlns:xlink="http://www.w3.org/1999/xlink" office:class="text" office:version="1.0"> <office:font-decls> <style:font-decl fo:font-family="Times New Roman" style:font-pitch="variable" style:name="Times New Roman"> </style:font-decl> <style:font-decl fo:font-family="StarSymbol" style:font-charset="x-symbol" style:name="StarSymbol"> </style:font-decl> </office:font-decls> <office:styles> <style:default-style style:family="paragraph"> <style:properties style:family="paragraph" style:tab-stop-distance="0.5inch"> </style:properties> </style:default-style> <style:style style:class="text" style:family="paragraph" style:name="Standard"> </style:style> <style:style style:class="text" style:family="paragraph" style:name="Text Body" style:parent-style-name="Standard"> </style:style> <style:style style:class="extra" style:family="paragraph" style:name="Table Contents" style:parent-style-name="Text Body"> </style:style> [...2777 lines suppressed...] <table:table-cell table:number-columns-spanned="1" table:number-rows-spanned="1" table:style-name="Table0.Cell34" table:value-type="string"> <text:p text:style-name="S21"> <text:span text:style-name="Span2"> </text:span> <text:span text:style-name="Span2"> 5</text:span> </text:p> </table:table-cell> <table:table-cell table:number-columns-spanned="1" table:number-rows-spanned="1" table:style-name="Table0.Cell35" table:value-type="string"> <text:p text:style-name="S20"> <text:span text:style-name="Span2"> </text:span> <text:span text:style-name="Span2"> Consideration and adoption of the report of the Ad Hoc Committee on its second session</text:span> </text:p> </table:table-cell> </table:table-row> </table:table> </office:body> </office:document-content> --- NEW FILE: 10e.wpd.raw --- setDocumentMetaData(dc:creator: , dc:subject: , libwpd:abstract: , libwpd:descriptive-name: A/AC.254/10, libwpd:descriptive-type: CONFERENCE, libwpd:keywords: 1,062) startDocument() openPageSpan(fo:margin-bottom: 1.6142inch, fo:margin-left: 0.7167inch, fo:margin-right: 0.7167inch, fo:margin-top: 0.9450inch, fo:page-height: 11.6925inch, fo:page-width: 8.2675inch, libwpd:is-last-page-span: false, libwpd:num-pages: 1, style:print-orientation: portrait) openFooter(libwpd:occurence: all) openParagraph(fo:line-height: 100.0000%, fo:margin-bottom: 0.0000inch, fo:margin-left: 0.0708inch, fo:margin-right: 0.0708inch, fo:margin-top: 0.0000inch, fo:text-align: justify, fo:text-indent: 0.0000inch, tab-stops: ((style:position: 0.0000inch), (style:position: 0.3933inch))) openSpan(fo:color: #000000, fo:font-size: 8pt, style:font-name: Times New Roman) closeSpan() openSpan(fo:color: #000000, fo:font-size: 8pt, style:font-name: Times New Roman) insertText(text: V.99-80861 (E)) closeSpan() closeParagraph() closeFooter() openSection(fo:margin-bottom: 0.0000inch, columns: ()) openParagraph(fo:line-height: 100.0000%, fo:margin-bottom: 0.0000inch, fo:margin-left: 0.7083inch, fo:margin-right: 0.0000inch, fo:margin-top: 0.0000inch, fo:text-align: left, fo:text-indent: 0.0000inch, tab-stops: ((style:position: 0.0000inch, style:type: right), (style:position: 0.1725inch), (style:position: 3.9317inch))) openSpan(fo:color: #000000, fo:font-size: 14pt, style:font-name: Times New Roman) closeSpan() openSpan(fo:color: #000000, fo:font-size: 14pt, style:font-name: Times New Roman) insertText(text: United Nations) closeSpan() [...1230 lines suppressed...] closeSpan() openSpan(fo:color: #000000, fo:font-size: 10pt, style:font-name: Times New Roman) insertText(text: 5) closeSpan() closeParagraph() closeTableCell() openTableCell(fo:background-color: #ffffff, fo:border-bottom: 0.000700inch solid #000000, fo:border-left: 0.0inch, fo:border-right: 0.0inch, fo:border-top: 0.0inch, fo:vertical-align: top, libwpd:column: 3, libwpd:row: 8, table:number-columns-spanned: 1, table:number-rows-spanned: 1) openParagraph(fo:line-height: 100.0000%, fo:margin-bottom: 0.0000inch, fo:margin-top: 0.0000inch, fo:text-align: left, tab-stops: ((style:position: 0.0000inch), (style:position: 0.7083inch, style:type: right), (style:position: 0.8750inch), (style:position: 1.2083inch), (style:position: 1.5408inch), (style:position: 1.8742inch), (style:position: 2.2067inch), (style:position: 2.5400inch), (style:position: 2.8733inch), (style:position: 3.2058inch), (style:position: 3.5392inch), (style:position: 3.8717inch), (style:position: 4.2050inch), (style:position: 4.5383inch), (style:position: 4.8708inch), (style:position: 5.2042inch), (style:position: 5.5367inch), (style:position: 5.8700inch), (style:position: 6.2033inch), (style:position: 6.5358inch), (style:position: 6.8692inch), (style:position: 7.2017inch), (style:position: 7.5350inch), (style:position: 7.8683inch), (style:position: 8.2008inch), (style:position: 8.5342inch), (style:position: 8.8667inch), (style:position: 9.2000inch), (style:position: 9.5333inch), (style:position: 9.8658inch), (style:position: 10.1992inch), (style:position: 10.5317inch), (style:position: 10.8650inch), (style:position: 11.1983inch), (style:position: 11.5308inch), (style:position: 11.8642inch), (style:position: 12.1967inch), (style:position: 12.5300inch), (style:position: 12.8633inch), (style:position: 13.1958inch))) openSpan(fo:color: #000000, fo:font-size: 10pt, style:font-name: Times New Roman) closeSpan() openSpan(fo:color: #000000, fo:font-size: 10pt, style:font-name: Times New Roman) insertText(text: Consideration and adoption of the report of the Ad Hoc Committee on its second session) closeSpan() closeParagraph() closeTableCell() closeTableRow() closeTable() closeSection() closePageSpan() endDocument() |
From: Fridrich S. <str...@us...> - 2005-06-22 09:22:25
|
Update of /cvsroot/libwpd/regression/testset/WP6 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10988/testset/WP6 Modified Files: regression.in Log Message: Modifying regression suite and syncing it so that is corresponds to the upcomming 0.8.2 release Index: regression.in =================================================================== RCS file: /cvsroot/libwpd/regression/testset/WP6/regression.in,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** regression.in 21 Jan 2005 09:25:08 -0000 1.9 --- regression.in 22 Jun 2005 09:22:14 -0000 1.10 *************** *** 1,4 **** --- 1,5 ---- 01FINA%7E1.WPD 05mechanicalservice.wpd + 10e.wpd 1414.wp cell_span.wpd |
From: Fridrich S. <str...@us...> - 2005-06-22 09:13:23
|
Update of /cvsroot/libwpd/libwpd2 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6833 Modified Files: CHANGES Log Message: Do NEVER open/close section inside a table Index: CHANGES =================================================================== RCS file: /cvsroot/libwpd/libwpd2/CHANGES,v retrieving revision 1.56 retrieving revision 1.57 diff -C2 -d -r1.56 -r1.57 *** CHANGES 15 Jun 2005 12:18:26 -0000 1.56 --- CHANGES 22 Jun 2005 09:12:43 -0000 1.57 *************** *** 4,10 **** (Ariya Hidayat, Fridrich Strba, Susan Isiko Strba) - Add unicode mappings for WP6 Arabic charsets 13 & 14 (Smokey ! Ardisson) - Fix conversion of page attributes in documents with headers/footers (Fridrich Strba) 0.8.0 -> 0.8.1 --- 4,18 ---- (Ariya Hidayat, Fridrich Strba, Susan Isiko Strba) - Add unicode mappings for WP6 Arabic charsets 13 & 14 (Smokey ! Ardisson) ! - Fix http://bugzilla.abisource.com/show_bug.cgi?id=8807 : Improving ! our extended characters to unicode mappings (Ariya Hidayat, Smokey ! Ardisson, Fridrich Strba) - Fix conversion of page attributes in documents with headers/footers (Fridrich Strba) + - Fix http://bugzilla.abisource.com/show_bug.cgi?id=8830 : Ignore a + font size change if the resulting size would be of "Opt" + (Fridrich Strba) + - Fix http://bugzilla.abisource.com/show_bug.cgi?id=9190 : Do NEVER + open/close sections inside a table (Fridrich Strba) 0.8.0 -> 0.8.1 |