public bool Income(string chr) { if (kp == null) { return(false); } if (chr == "") { return(false); } KeyProcessorReturn x = kp.ProcessKey(chr); if (x == null) { if (chr == "delete") { Output("{BS}"); bf.PopChars(1); return(true); } else if (chr == "{BEEP}") { beep(); return(true); } else { Output(chr); bf.Append(chr); return(true); } } else { if (x.beep) { beep(); } // Better Optimized Method Needed for (int i = 0; i < x.leftcontext.Length; i++) { Output("{BS}"); } bf.PopChars(x.leftcontext.Length); bf.Append(x.output); Output(x.output); return(true); } }