Lines Matching defs:end
57 if (a.start == b.start && a.end == b.end) return a;
59 auto end = std::min(a.end, b.end);
60 return end > begin ? TextRange(begin, end) : EMPTY_TEXT;
64 if (a.width() <= 0 || b.width() <= 0 || a.end < b.start || a.start > b.end) {
68 return TextRange(std::min(a.start, b.start), std::max(a.end, b.end));
76 auto end = p + utf8.size();
77 while (p < end) {
79 auto unichar = SkUTF::NextUTF8(&p, end);
175 size_t lineCharCount = fLines[lineNumber - 1].clusters().end -
181 size_t currentRunCharNumber = targetRun.clusterRange().end -
214 [&](SkUnichar unichar, int32_t start, int32_t end, int32_t count) {
223 if (sourceRange.end <= deletedRange.start) {
228 if (sourceRange.start >= deletedRange.end) {
229 return TextRange(sourceRange.start + changeSize, sourceRange.end + changeSize);
234 target.end = sourceRange.end <= deletedRange.end ? deletedRange.start + ellSize : sourceRange.end + changeSize;
235 return target.start <= target.end ? target : EMPTY_RANGE;
245 static_cast<unsigned long>(fs.fRange.start), static_cast<unsigned long>(fs.fRange.end),
246 static_cast<unsigned long>(newTextRange.start), static_cast<unsigned long>(newTextRange.end));
264 static_cast<unsigned long>(ph.fRange.start), static_cast<unsigned long>(ph.fRange.end),
265 static_cast<unsigned long>(newTextRange.start), static_cast<unsigned long>(newTextRange.end));
271 newTextRange.start = fPlaceholders.empty() ? 0 : fPlaceholders.back().fRange.end;
272 if (newTextRange.end > deletedRange.start) {
273 newTextRange.end = newTextRange.end <= deletedRange.end ?
274 deletedRange.start + ellSize : newTextRange.end + ellSize - deletedRange.width();
289 size_t end = 0;
293 middleEllipsisLtrDeal(end, charbegin, charend);
295 middleEllipsisRtlDeal(end, charbegin, charend);
297 if (end != 0) {
303 // end = 0 means the text does not exceed the width limit
304 return end != 0;
307 void ParagraphImpl::middleEllipsisLtrDeal(size_t& end,
317 end = 1;
320 scanTextCutPoint(ltrTextSize, start, end);
321 if (end) {
323 charend = ltrTextSize[end].charOver;
324 fText.remove(ltrTextSize[start].charbegin, ltrTextSize[end].charOver - ltrTextSize[start].charbegin);
331 void ParagraphImpl::middleEllipsisRtlDeal(size_t& end,
338 scanTextCutPoint(rtlTextSize, start, end);
339 if (start < 1 || end + PARAM_DOUBLE >= rtlTextSize.size()) {
341 end = 0;
343 if (end) {
345 charend = rtlTextSize[end + PARAM_DOUBLE].charbegin;
347 rtlTextSize[end + PARAM_DOUBLE].charbegin - rtlTextSize[start - 1].charbegin);
372 void ParagraphImpl::scanRTLTextCutPoint(const std::vector<TextCutRecord>& rawTextSize, size_t& start, size_t& end)
395 end = right;
398 end = 0;
402 void ParagraphImpl::scanLTRTextCutPoint(const std::vector<TextCutRecord>& rawTextSize, size_t& start, size_t& end)
430 end = last;
433 end = 0;
437 void ParagraphImpl::scanTextCutPoint(const std::vector<TextCutRecord>& rawTextSize, size_t& start, size_t& end)
445 scanLTRTextCutPoint(rawTextSize, start, end);
447 scanRTLTextCutPoint(rawTextSize, start, end);
700 getUTF16Index(ellipsisClusterRange.end));
836 for (auto i = unicodeSetRange.start; i <= unicodeSetRange.end; ++i) {
842 return set_.find(c) != set_.end();
853 size_t end,
859 , fTextRange(text.begin() - fOwner->text().begin(), text.end() - fOwner->text().begin())
862 , fEnd(end)
871 if (text.end() - ch == 1 && *(unsigned char*)ch <= 0x7F) {
877 for (auto i = fTextRange.start; i < fTextRange.end; ++i) {
892 fIsHardBreak = fOwner->codeUnitHasProperty(fTextRange.end,
899 auto unicodeEnd = fOwner->getUnicodeIndex(fTextRange.end);
909 SkScalar Run::calculateWidth(size_t start, size_t end, bool clip) const {
910 SkASSERT(start <= end);
911 // clip |= end == size(); // Clip at the end of the run?
913 if (end > start && !fJustificationShifts.empty()) {
915 correction = fJustificationShifts[end - 1].fX -
918 if (end > start && !fAutoSpacings.empty()) {
920 correction += fAutoSpacings[end - 1].fX - fAutoSpacings[start].fY;
922 return posX(end) - posX(start) + correction;
986 SkASSERT(currentStyle != fTextStyles.end());
1049 fCodeUnitProperties[fRuns.back().textRange().end] |= SkUnicode::CodeUnitFlags::kGraphemeStart;
1050 fCodeUnitProperties[fRuns.back().textRange().end] |= SkUnicode::CodeUnitFlags::kGlyphClusterStart;
1060 for (auto i = run.textRange().start; i < run.textRange().end; ++i) {
1066 fCodeUnitProperties[run.textRange().end] |= SkUnicode::CodeUnitFlags::kSoftLineBreakBefore;
1413 BlockIndex end = EMPTY_BLOCK;
1416 if (block.fRange.end <= textRange.start) {
1419 if (block.fRange.start >= textRange.end) {
1425 end = index;
1428 if (begin == EMPTY_INDEX || end == EMPTY_INDEX) {
1434 return { begin, end + 1 };
1499 // start and end glyph indexes, including start and excluding end
1501 unsigned end,
1507 if (start == 0 && end > 0) {
1508 // On account of implied "\n" that is always at the end of the text
1509 //SkDebugf("getRectsForRange(%d, %d): %f\n", start, end, fHeight);
1521 if (start >= end || start > SkToSizeT(fUTF8IndexForUTF16Index.size()) || end == 0) {
1528 // does not contain an end of a grapheme.
1536 // that belongs to the given [start:end) range entirely (not the ones that intersect with it)
1545 if (end < SkToSizeT(fUTF8IndexForUTF16Index.size())) {
1546 auto utf8 = this->findPreviousGraphemeBoundary(fUTF8IndexForUTF16Index[end]);
1547 text.end = utf8;
1549 //SkDebugf("getRectsForRange(%d,%d) -> (%d:%d)\n", start, end, text.start, text.end);
1561 SkDebugf("getRectsForRange(%d, %d)\n", start, end);
1641 int32_t end = 0;
1646 end = word;
1648 end = word;
1653 //SkDebugf("getWordBoundary(%d): %d - %d\n", offset, start, end);
1654 return { SkToU32(start), SkToU32(end) };
1665 SkASSERT(textRange.start <= fText.size() && textRange.end <= fText.size());
1672 clusterRange.end <= SkToSizeT(fClusters.size()));
1688 blockRange.end <= SkToSizeT(fTextStyles.size()));
1904 if (to < fRange.end) {
1929 for (auto index = textRange.start; index < textRange.end; ++index) {
2016 visitor(lineNumber, nullptr); // signal end of line
2057 for (auto c = line.clustersWithSpaces().start; c < line.clustersWithSpaces().end; ++c) {
2224 auto it = std::lower_bound(fUnicodeIndexForUTF8Index.begin(), fUnicodeIndexForUTF8Index.end(), index);
2225 if (it != fUnicodeIndexForUTF8Index.end() && *it == index) {