+static void
+Key_PrintBindList(int j)
+{
+ char bindbuf[MAX_INPUTLINE];
+ const char *p;
+ int i;
+
+ for (i = 0; i < (int)(sizeof(keybindings[0])/sizeof(keybindings[0][0])); i++)
+ {
+ p = keybindings[j][i];
+ if (p)
+ {
+ Cmd_QuoteString(bindbuf, sizeof(bindbuf), p, "\"\\");
+ if (j == 0)
+ Con_Printf("^2%s ^7= \"%s\"\n", Key_KeynumToString (i), bindbuf);
+ else
+ Con_Printf("^3bindmap %d: ^2%s ^7= \"%s\"\n", j, Key_KeynumToString (i), bindbuf);
+ }
+ }
+}
+
+static void
+Key_In_BindList_f (void)
+{
+ int m;
+ char *errchar = NULL;
+
+ if(Cmd_Argc() >= 2)
+ {
+ m = strtol(Cmd_Argv(1), &errchar, 0);
+ if ((m < 0) || (m >= 8) || (errchar && *errchar)) {
+ Con_Printf("%s isn't a valid bindmap\n", Cmd_Argv(1));
+ return;
+ }
+ Key_PrintBindList(m);
+ }
+ else
+ {
+ for (m = 0; m < MAX_BINDMAPS; m++)
+ Key_PrintBindList(m);
+ }
+}
+
+static void
+Key_BindList_f (void)
+{
+ Key_PrintBindList(0);
+}