public abstract UndoableCommand Clone();
private void ExecuteCommand(ref int iChar) { foreach (var r in range.GetSubRanges(false)) { ts.CurrentTB.Selection = r; var c = cmd.Clone(); c.Execute(); if (ts.CurrentTB.Selection.End.iChar > iChar) { iChar = ts.CurrentTB.Selection.End.iChar; } commandsByRanges.Add(c); } }