public OpStatus StepBack() { if (iCurrent == 0) { return(OpStatus.Success); // weird but ok } IChangeOp op = vHistory[iCurrent - 1]; DebugUtil.Log(2, "ChangeHistory.StepBack: reverting {0}", op.Identifier()); OpStatus result = op.Revert(); if (result.code != OpStatus.no_error) { DebugUtil.Error("[ChangeHistory::StepBack] Revert() of ChangeOp {0} failed - result was code {1} message {2}", op.Identifier(), result.code, result.message); return(result); } iCurrent--; return(OpStatus.Success); }