public void Use(int numChars) { if (_pos + numChars > _len) { numChars = _len - _pos; } if (!_suppress) { _writer.Append(_str.Substring(_pos, numChars), CodeAttributes.Empty); } _pos += numChars; }
public void Use(int numChars) { while (numChars > 0 && _seg != null) { if (_segOffset + numChars >= _segLength) { var length = _segLength - _segOffset; _writer.Append(_seg.text.Substring(_segOffset, length), new CodeAttributes(_seg.fileName, _pos, _seg.endPos, _seg.actualContent, _seg.primaryFile, _suppress)); MoveNextSegment(); numChars -= length; } else { var text = _seg.text.Substring(_segOffset, numChars); var newPos = _pos + text.Length; _writer.Append(text, new CodeAttributes(_seg.fileName, _pos, _seg.actualContent ? newPos : _pos, _seg.actualContent, _seg.primaryFile, _suppress)); _segOffset += numChars; _pos = newPos; numChars = 0; } } }