void SegmentedString::append(const SegmentedString &s) { ASSERT(!s.escaped()); append(s.m_currentString); if (s.m_composite) { DeprecatedValueListConstIterator<SegmentedSubstring> i = s.m_substrings.begin(); DeprecatedValueListConstIterator<SegmentedSubstring> e = s.m_substrings.end(); for (; i != e; ++i) append(*i); } m_currentChar = m_pushedChar1 ? &m_pushedChar1 : m_currentString.m_current; }
void SegmentedString::prepend(const SegmentedString& s) { ASSERT(!escaped()); ASSERT(!s.escaped()); if (s.isComposite()) { Deque<SegmentedSubstring>::const_reverse_iterator it = s.m_substrings.rbegin(); Deque<SegmentedSubstring>::const_reverse_iterator e = s.m_substrings.rend(); for (; it != e; ++it) prepend(*it); } prepend(s.m_currentString); m_currentChar = m_pushedChar1 ? m_pushedChar1 : (m_currentString.m_length ? m_currentString.getCurrentChar() : 0); }
void SegmentedString::prepend(const SegmentedString &s) { ASSERT(!escaped()); ASSERT(!s.escaped()); if (s.m_composite) { DeprecatedValueListConstIterator<SegmentedSubstring> i = s.m_substrings.fromLast(); DeprecatedValueListConstIterator<SegmentedSubstring> e = s.m_substrings.end(); for (; i != e; --i) prepend(*i); } prepend(s.m_currentString); m_currentChar = m_pushedChar1 ? &m_pushedChar1 : m_currentString.m_current; }
void SegmentedString::append(const SegmentedString &s) { ASSERT(!m_closed); ASSERT(!s.escaped()); append(s.m_currentString); if (s.m_composite) { Deque<SegmentedSubstring>::const_iterator it = s.m_substrings.begin(); Deque<SegmentedSubstring>::const_iterator e = s.m_substrings.end(); for (; it != e; ++it) append(*it); } m_currentChar = m_pushedChar1 ? &m_pushedChar1 : m_currentString.m_current; }