public static void Execute(CommandExecutionContext *context) { byte *rawbuf = stackalloc byte [EntryModule.MaxKeyMapNameLength]; if (context->parameters->Compare("--list") == 0) { ListKeyMaps(); } else if (context->parameters->Compare(0, "--set ", 0, 6) == 0 && context->parameters->Length > 6) { PString8 *buf = PString8.Wrap(rawbuf, EntryModule.MaxKeyMapNameLength); buf->Clear(); TextMode.Write(context->parameters->Length); TextMode.WriteLine(); buf->Concat(context->parameters, 6, context->parameters->Length - 6); if (KeyMap.GetBuiltinKeyMap(buf) == null) { TextMode.SaveAttributes(); TextMode.Foreground = TextColor.Red; TextMode.Write("Unknown keymap `"); TextMode.Write(buf); TextMode.Write("'"); TextMode.RestoreAttributes(); } else { TextMode.Write("Setting key map to `"); TextMode.Write(buf); TextMode.Write("'"); KeyMap.SetKeyMap(buf); } } else if (context->parameters->Length == 0) { TextMode.Write("Current key map: "); TextMode.WriteLine(KeyMap.GetCurrentKeyMapName()); } else { TextMode.WriteLine("Usage: keymap [--list|--set NAME]"); } }