private void ConvertProcessedTextPosition(ref UITextPosition p, ref int markupCount) { if (markupCount == -1) { markupCount = this.markups.Count; } if (markupCount != 0) { UITextMarkup markup = this.markups[0]; int num = 0; while (p.position <= markup.index) { switch (markup.mod) { case UITextMod.End: p.deformed = (short)(this.mText.Length - markup.index); return; case UITextMod.Removed: { p.deformed = (short)(p.deformed + 1); if (++num >= markupCount) { return; } markup = this.markups[num]; continue; } case UITextMod.Replaced: { if (++num >= markupCount) { return; } markup = this.markups[num]; continue; } case UITextMod.Added: { p.deformed = (short)(p.deformed - 1); if (++num >= markupCount) { return; } markup = this.markups[num]; continue; } } if (++num >= markupCount) { break; } markup = this.markups[num]; } } }
public UITextPosition ConvertUnprocessedPosition(int position) { UITextPosition uITextPosition = new UITextPosition(); string str = this.processedText; int count = this.markups.Count; int num = position; if (count > 0) { int num1 = 0; UITextMarkup item = this.markups[num1]; while (item.index <= position) { switch (item.mod) { case UITextMod.End: { position = position - (num - item.index); num1 = count; goto case UITextMod.Replaced; } case UITextMod.Removed: { position--; goto case UITextMod.Replaced; } case UITextMod.Replaced: { int num2 = num1 + 1; num1 = num2; if (num2 < count) { item = this.markups[num1]; continue; } break; } case UITextMod.Added: { position++; goto case UITextMod.Replaced; } default: { goto case UITextMod.Replaced; } } } } UILabel.CountLinesGetColumn(str, position, out uITextPosition.position, out uITextPosition.line, out uITextPosition.column, out uITextPosition.region); uITextPosition.uniformRegion = uITextPosition.region; uITextPosition.deformed = (short)(num - uITextPosition.position); return(uITextPosition); }
public UITextPosition ConvertUnprocessedPosition(int position) { UITextPosition position2; string processedText = this.processedText; int count = this.markups.Count; int num2 = position; if (count > 0) { int num3 = 0; for (UITextMarkup markup = this.markups[num3]; markup.index <= position; markup = this.markups[num3]) { switch (markup.mod) { case UITextMod.End: position -= num2 - markup.index; num3 = count; break; case UITextMod.Removed: position--; break; case UITextMod.Added: position++; break; } if (++num3 >= count) { break; } } } CountLinesGetColumn(processedText, position, out position2.position, out position2.line, out position2.column, out position2.region); position2.uniformRegion = position2.region; position2.deformed = (short)(num2 - position2.position); return(position2); }
public static string MarkUp(this List <UITextMarkup> list, string input) { int num; if ((list == null) || ((num = list.Count) == 0)) { return(input); } UITextMarkup markup2 = list[0]; int index = markup2.index; StringBuilder builder = new StringBuilder(input, 0, index, input.Length + num); int num3 = 0; UITextMarkup markup = list[num3]; for (int i = markup.index; i < input.Length; i++) { char ch = input[i]; if (i != markup.index) { goto Label_0176; } Label_0068: switch (markup.mod) { case UITextMod.End: i = input.Length + 1; ch = '\0'; break; case UITextMod.Removed: ch = '\0'; break; case UITextMod.Replaced: builder.Append(markup.value); ch = '\0'; break; case UITextMod.Added: builder.Append(markup.value); break; } if (++num3 == num) { if (i >= input.Length) { goto Label_0153; } if (ch != '\0') { builder.Append(input, i, input.Length - i); } else { if (++i >= input.Length) { goto Label_0161; } builder.Append(input, i, input.Length - i); } i = input.Length + 1; goto Label_0161; } markup = list[num3]; Label_0153: if (markup.index == i) { goto Label_0068; } Label_0161: if (ch != '\0') { builder.Append(ch); } continue; Label_0176: if (ch != '\0') { builder.Append(ch); } } while (++num3 < num) { switch (markup.mod) { case UITextMod.End: { continue; } case UITextMod.Added: { builder.Append(markup.value); continue; } } Debug.Log("Unsupported end markup " + markup); } return(builder.ToString()); }
public static string MarkUp(this List <UITextMarkup> list, string input) { if (list != null) { int count = list.Count; int num = count; if (count != 0) { int item = list[0].index; StringBuilder stringBuilder = new StringBuilder(input, 0, item, input.Length + num); int num1 = 0; UITextMarkup uITextMarkup = list[num1]; for (int i = uITextMarkup.index; i < input.Length; i++) { char chr = input[i]; if (i == uITextMarkup.index) { do { switch (uITextMarkup.mod) { case UITextMod.End: { i = input.Length + 1; chr = '\0'; break; } case UITextMod.Removed: { chr = '\0'; break; } case UITextMod.Replaced: { stringBuilder.Append(uITextMarkup.@value); chr = '\0'; break; } case UITextMod.Added: { stringBuilder.Append(uITextMarkup.@value); break; } } int num2 = num1 + 1; num1 = num2; if (num2 != num) { uITextMarkup = list[num1]; } else if (i < input.Length) { if (chr == 0) { int num3 = i + 1; i = num3; if (num3 >= input.Length) { break; } else { stringBuilder.Append(input, i, input.Length - i); } } else { stringBuilder.Append(input, i, input.Length - i); } i = input.Length + 1; break; } }while (uITextMarkup.index == i); if (chr != 0) { stringBuilder.Append(chr); } } else if (chr != 0) { stringBuilder.Append(chr); } } while (true) { int num4 = num1 + 1; num1 = num4; if (num4 >= num) { break; } switch (uITextMarkup.mod) { case UITextMod.End: { continue; } case UITextMod.Removed: case UITextMod.Replaced: { Debug.Log(string.Concat("Unsupported end markup ", uITextMarkup)); continue; } case UITextMod.Added: { stringBuilder.Append(uITextMarkup.@value); continue; } default: { goto case UITextMod.Replaced; } } } return(stringBuilder.ToString()); } } return(input); }
public void GetProcessedIndices(ref int start, ref int end) { int count = this.markups.Count; if (count != 0) { UITextMarkup markup = this.markups[0]; if (markup.index <= end) { UITextMarkup markup3; UITextMarkup markup5; int num2 = start; int num3 = end; int num4 = 0; Label_00AA: markup3 = this.markups[num4]; if (markup3.index <= start) { UITextMarkup markup2 = this.markups[num4]; switch (markup2.mod) { case UITextMod.End: num3 = this.mProcessedText.Length - 1; return; case UITextMod.Removed: num2--; num3--; break; case UITextMod.Added: num2++; num3++; break; } if (++num4 >= count) { start = num2; end = num3; return; } goto Label_00AA; } Label_012F: markup5 = this.markups[num4]; if (markup5.index <= end) { UITextMarkup markup4 = this.markups[num4]; switch (markup4.mod) { case UITextMod.End: num3 = this.mProcessedText.Length - 1; return; case UITextMod.Removed: num3--; break; case UITextMod.Added: num3++; break; } if (++num4 < count) { goto Label_012F; } } start = num2; end = num3; } } }
private void ConvertProcessedTextPosition(ref UITextPosition p, ref int markupCount) { if (markupCount == -1) { markupCount = this.markups.Count; } if (markupCount == 0) { return; } UITextMarkup item = this.markups[0]; int num = 0; while (true) { if (p.position > item.index) { return; } switch (item.mod) { case UITextMod.End: { p.deformed = (short)(this.mText.Length - item.index); break; } case UITextMod.Removed: { p.deformed = (short)(p.deformed + 1); int num1 = num + 1; num = num1; if (num1 < markupCount) { item = this.markups[num]; continue; } break; } case UITextMod.Replaced: { int num2 = num + 1; num = num2; if (num2 < markupCount) { item = this.markups[num]; continue; } break; } case UITextMod.Added: { p.deformed = (short)(p.deformed - 1); int num3 = num + 1; num = num3; if (num3 < markupCount) { item = this.markups[num]; continue; } break; } default: { int num4 = num + 1; num = num4; if (num4 < markupCount) { item = this.markups[num]; continue; } break; } } } }