Lines Matching full:range
55 #include "Range.h"
143 static void appendEscapedContent(Vector<UChar>& result, pair<const UChar*, size_t> range, bool escapeNBSP)
145 const UChar* uchars = range.first;
146 unsigned len = range.second;
216 static String stringValueForRange(const Node* node, const Range* range)
218 if (!range)
223 if (node == range->endContainer(ec))
224 str.truncate(range->endOffset(ec));
225 if (node == range->startContainer(ec))
226 str.remove(0, range->startOffset(ec));
230 static inline pair<const UChar*, size_t> ucharRange(const Node *node, const Range *range)
236 if (range) {
238 if (node == range->endContainer(ec))
239 length = range->endOffset(ec);
240 if (node == range->startContainer(ec)) {
241 size_t start = range->startOffset(ec);
250 static inline void appendUCharRange(Vector<UChar>& result, const pair<const UChar*, size_t> range)
252 result.append(range.first, range.second);
255 static String renderedText(const Node* node, const Range* range)
265 if (range && node == range->startContainer(ec))
266 startOffset = range->startOffset(ec);
267 if (range && node == range->endContainer(ec))
268 endOffset = range->endOffset(ec);
272 return plainText(Range::create(node->document(), start, end).get());
396 static void appendStartMarkup(Vector<UChar>& result, const Node* node, const Range* range, EAnnotateForInterchange annotate, bool convertBlocksToInlines = false, HashMap<AtomicStringImpl*, AtomicStringImpl*>* namespaces = 0, RangeFullySelectsNode rangeFullySelectsNode = DoesFullySelectNode)
409 appendUCharRange(result, ucharRange(node, range));
414 appendEscapedContent(result, ucharRange(node, range), documentIsHTML);
419 String markup = escapeContentText(useRenderedText ? renderedText(node, range) : stringValueForRange(node, range), false);
514 // If the node is not fully selected by the range, then we don't want to keep styles that affect its relationship to the nodes around it
552 static String getStartMarkup(const Node* node, const Range* range, EAnnotateForInterchange annotate, bool convertBlocksToInlines = false, HashMap<AtomicStringImpl*, AtomicStringImpl*>* namespaces = 0, RangeFullySelectsNode rangeFullySelectsNode = DoesFullySelectNode)
555 appendStartMarkup(result, node, range, annotate, convertBlocksToInlines, namespaces, rangeFullySelectsNode);
790 // FIXME: At least, annotation and style info should probably not be included in range.markupString()
791 String createMarkup(const Range* range, Vector<Node*>* nodes, EAnnotateForInterchange annotate, bool convertBlocksToInlines)
795 if (!range)
798 Document* document = range->ownerDocument();
806 RefPtr<Range> updatedRange = avoidIntersectionWithNode(range, deleteButton ? deleteButton->containerElement() : 0);
844 if (pastEnd && Range::compareBoundaryPoints(startNode, 0, pastEnd, 0) >= 0) {
900 // Not at the end of the range, close ancestors up to sibling of next node.
930 // Include ancestors that aren't completely inside the range but are required to retain
1147 PassRefPtr<DocumentFragment> createFragmentFromText(Range* context, const String& text)
1271 String createFullMarkup(const Range* range)
1273 if (!range)
1276 Node* node = range->startContainer();
1289 return frame->documentTypeString() + createMarkup(range, 0, AnnotateForInterchange);