OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2012 Apple Inc. All r
ights reserved. | 2 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2012 Apple Inc. All r
ights reserved. |
3 * Copyright (C) 2005 Alexey Proskuryakov. | 3 * Copyright (C) 2005 Alexey Proskuryakov. |
4 * | 4 * |
5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
6 * modification, are permitted provided that the following conditions | 6 * modification, are permitted provided that the following conditions |
7 * are met: | 7 * are met: |
8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
(...skipping 650 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
661 unsigned start = m_offset; | 661 unsigned start = m_offset; |
662 unsigned end = (m_node == m_endContainer) ? static_cast<unsigned>(m_endOffse
t) : INT_MAX; | 662 unsigned end = (m_node == m_endContainer) ? static_cast<unsigned>(m_endOffse
t) : INT_MAX; |
663 while (m_textBox) { | 663 while (m_textBox) { |
664 unsigned textBoxStart = m_textBox->start(); | 664 unsigned textBoxStart = m_textBox->start(); |
665 unsigned runStart = max(textBoxStart, start); | 665 unsigned runStart = max(textBoxStart, start); |
666 | 666 |
667 // Check for collapsed space at the start of this run. | 667 // Check for collapsed space at the start of this run. |
668 InlineTextBox* firstTextBox = renderer->containsReversedText() ? (m_sort
edTextBoxes.isEmpty() ? 0 : m_sortedTextBoxes[0]) : renderer->firstTextBox(); | 668 InlineTextBox* firstTextBox = renderer->containsReversedText() ? (m_sort
edTextBoxes.isEmpty() ? 0 : m_sortedTextBoxes[0]) : renderer->firstTextBox(); |
669 bool needSpace = m_lastTextNodeEndedWithCollapsedSpace | 669 bool needSpace = m_lastTextNodeEndedWithCollapsedSpace |
670 || (m_textBox == firstTextBox && textBoxStart == runStart && runStar
t > 0); | 670 || (m_textBox == firstTextBox && textBoxStart == runStart && runStar
t > 0); |
671 if (needSpace && !isCollapsibleWhitespace(m_lastCharacter) && m_lastChar
acter) { | 671 if (needSpace && !renderer->style()->isCollapsibleWhiteSpace(m_lastChara
cter) && m_lastCharacter) { |
672 if (m_lastTextNode == m_node && runStart > 0 && str[runStart - 1] ==
' ') { | 672 if (m_lastTextNode == m_node && runStart > 0 && str[runStart - 1] ==
' ') { |
673 unsigned spaceRunStart = runStart - 1; | 673 unsigned spaceRunStart = runStart - 1; |
674 while (spaceRunStart > 0 && str[spaceRunStart - 1] == ' ') | 674 while (spaceRunStart > 0 && str[spaceRunStart - 1] == ' ') |
675 --spaceRunStart; | 675 --spaceRunStart; |
676 emitText(m_node, renderer, spaceRunStart, spaceRunStart + 1); | 676 emitText(m_node, renderer, spaceRunStart, spaceRunStart + 1); |
677 } else { | 677 } else { |
678 emitCharacter(' ', m_node, 0, runStart, runStart); | 678 emitCharacter(' ', m_node, 0, runStart, runStart); |
679 } | 679 } |
680 return; | 680 return; |
681 } | 681 } |
(...skipping 1477 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2159 const Position& collapseTo = options & Backwards ? start : end; | 2159 const Position& collapseTo = options & Backwards ? start : end; |
2160 return Range::create(*start.document(), collapseTo, collapseTo); | 2160 return Range::create(*start.document(), collapseTo, collapseTo); |
2161 } | 2161 } |
2162 } | 2162 } |
2163 | 2163 |
2164 CharacterIterator computeRangeIterator(start, end, iteratorFlagsForFindPlain
Text); | 2164 CharacterIterator computeRangeIterator(start, end, iteratorFlagsForFindPlain
Text); |
2165 return characterSubrange(computeRangeIterator, matchStart, matchLength); | 2165 return characterSubrange(computeRangeIterator, matchStart, matchLength); |
2166 } | 2166 } |
2167 | 2167 |
2168 } | 2168 } |
OLD | NEW |