private void EscapeAndWriteBuffer( char[] buffer, int offset, int length, ITextSink sink) { int lastIdx = offset; for (int idx = offset; idx < offset + length;) { char ch = buffer[idx]; if (ch == '>' || ch == '<') { if (idx - lastIdx > 0) { sink.Write(buffer, lastIdx, idx - lastIdx); } uint value = (uint)ch; char[] escapeSequenceBuffer = new char[4]; escapeSequenceBuffer[0] = '\\'; escapeSequenceBuffer[3] = ' '; for (int i = 2; i > 0; --i) { uint digit = value & 0xF; escapeSequenceBuffer[i] = (char)(digit + (digit < 10 ? '0' : 'A' - 10)); value >>= 4; } sink.Write(escapeSequenceBuffer, 0, 4); lastIdx = ++idx; } else { CssToken.AttemptUnescape(buffer, offset + length, ref ch, ref idx); ++idx; } } sink.Write(buffer, lastIdx, length - (lastIdx - offset)); }
// Token: 0x06001246 RID: 4678 RVA: 0x000834B8 File Offset: 0x000816B8 private void EscapeAndWriteBuffer(char[] buffer, int offset, int length, ITextSink sink) { int num = offset; int i = offset; while (i < offset + length) { char c = buffer[i]; if (c == '>' || c == '<') { if (i - num > 0) { sink.Write(buffer, num, i - num); } uint num2 = (uint)c; char[] array = new char[] { '\\', '\0', '\0', ' ' }; for (int j = 2; j > 0; j--) { uint num3 = num2 & 15U; array[j] = (char)((ulong)num3 + (ulong)((num3 < 10U) ? 48L : 55L)); num2 >>= 4; } sink.Write(array, 0, 4); i = (num = i + 1); } else { CssToken.AttemptUnescape(buffer, offset + length, ref c, ref i); i++; } } sink.Write(buffer, num, length - (num - offset)); }