summaryrefslogtreecommitdiff
path: root/writerfilter/source/rtftok/rtftokenizer.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'writerfilter/source/rtftok/rtftokenizer.cxx')
-rw-r--r--writerfilter/source/rtftok/rtftokenizer.cxx30
1 files changed, 23 insertions, 7 deletions
diff --git a/writerfilter/source/rtftok/rtftokenizer.cxx b/writerfilter/source/rtftok/rtftokenizer.cxx
index abe8cff110db..3e7a7503d526 100644
--- a/writerfilter/source/rtftok/rtftokenizer.cxx
+++ b/writerfilter/source/rtftok/rtftokenizer.cxx
@@ -46,7 +46,8 @@ RTFTokenizer::RTFTokenizer(RTFDocumentImpl& rImport, SvStream* pInStream, uno::R
: m_rImport(rImport),
m_pInStream(pInStream),
m_xStatusIndicator(xStatusIndicator),
- m_aRTFControlWords(std::vector<RTFSymbol>(aRTFControlWords, aRTFControlWords + nRTFControlWords))
+ m_aRTFControlWords(std::vector<RTFSymbol>(aRTFControlWords, aRTFControlWords + nRTFControlWords)),
+ m_nGroup(0)
{
std::sort(m_aRTFControlWords.begin(), m_aRTFControlWords.end());
}
@@ -93,9 +94,9 @@ int RTFTokenizer::resolveParse()
if (m_xStatusIndicator.is() && (nCurrentPos = Strm().Tell()) > (nLastPos + nPercentSize))
m_xStatusIndicator->setValue(nLastPos = nCurrentPos);
- if (m_rImport.getGroup() < 0)
+ if (m_nGroup < 0)
return ERROR_GROUP_UNDER;
- if (m_rImport.getGroup() > 0 && m_rImport.getState().nInternalState == INTERNAL_BIN)
+ if (m_nGroup > 0 && m_rImport.getState().nInternalState == INTERNAL_BIN)
{
ret = m_rImport.resolveChars(ch);
if (ret)
@@ -114,7 +115,7 @@ int RTFTokenizer::resolveParse()
ret = m_rImport.popState();
if (ret)
return ret;
- if (m_rImport.getGroup() == 0)
+ if (m_nGroup == 0)
{
if (m_rImport.isSubstream())
m_rImport.finishSubstream();
@@ -130,7 +131,7 @@ int RTFTokenizer::resolveParse()
case 0x0a:
break; // ignore these
default:
- if (m_rImport.getGroup() == 0)
+ if (m_nGroup == 0)
return ERROR_CHAR_OVER;
if (m_rImport.getState().nInternalState == INTERNAL_NORMAL)
{
@@ -162,9 +163,9 @@ int RTFTokenizer::resolveParse()
}
}
- if (m_rImport.getGroup() < 0)
+ if (m_nGroup < 0)
return ERROR_GROUP_UNDER;
- else if (m_rImport.getGroup() > 0)
+ else if (m_nGroup > 0)
return ERROR_GROUP_OVER;
return 0;
}
@@ -193,6 +194,21 @@ int RTFTokenizer::asHex(char ch)
return ret;
}
+int RTFTokenizer::getGroup() const
+{
+ return m_nGroup;
+}
+
+void RTFTokenizer::pushGroup()
+{
+ m_nGroup++;
+}
+
+void RTFTokenizer::popGroup()
+{
+ m_nGroup--;
+}
+
int RTFTokenizer::resolveKeyword()
{
char ch;