#include "curses.h"

static char *_fkeynames[] = {
    "BREAK",
    "DOWN",
    "UP",
    "LEFT",
    "RIGHT",
    "HOME",
    "BACKSPACE",
    "F0",
    "F1",
    "F2",
    "F3",
    "F4",
    "F5",
    "F6",
    "F7",
    "F8",
    "F9",
    "F10",
    "F11",
    "F12",
    "F13",
    "F14",
    "F15",
    "F16",
    "F17",
    "F18",
    "F19",
    "F20",
    "F21",
    "F22",
    "F23",
    "F24",
    "F25",
    "F26",
    "F27",
    "F28",
    "F29",
    "F30",
    "F31",
    "F32",
    "F33",
    "F34",
    "F35",
    "F36",
    "F37",
    "F38",
    "F39",
    "F40",
    "F41",
    "F42",
    "F43",
    "F44",
    "F45",
    "F46",
    "F47",
    "F48",
    "F49",
    "F50",
    "F51",
    "F52",
    "F53",
    "F54",
    "F55",
    "F56",
    "F57",
    "F58",
    "F59",
    "F60",
    "F61",
    "F62",
    "F63",
    "DELETE-LINE",
    "INSERT-LINE",
    "DELETE-CHARACTER",
    "INSERT-CHARACTER",
    "EXIT-INSERT-MODE",
    "CLEAR",
    "CLEAR-SCREEN",
    "CLEAR-LINE",
    "SCROLL-UP",
    "SCROLL-DOWN",
    "NEXT-PAGE",
    "PREVIOUS-PAGE",
    "SET-TAB",
    "CLEAR-TAB",
    "CLEAR-ALL-TABS",
    "ENTER",
    "SOFT-RESET",
    "RESET",
    "PRINT",
    "LOWER-LEFT",
    "UPPER-LEFT",
    "UPPER-RIGHT",
    "CENTER",
    "LOWER-LEFT",
    "LOWER-RIGHT",
    "BACKTAB",
    "BEGIN",
    "CANCEL",
    "CLOSE",
    "COMMAND",
    "COPY",
    "CREATE",
    "END",
    "EXIT",
    "FIND",
    "HELP",
    "MARK",
    "MESSAGE",
    "MOVE",
    "NEXT",
    "OPEN",
    "OPTIONS",
    "PREVIOUS",
    "REDO",
    "REFERENCE",
    "REFRESH",
    "REPLACE",
    "RESTART",
    "RESUME",
    "SAVE",
    "SHIFT-BEGIN",
    "SHIFT-CANCEL",
    "SHIFT-COPY",
    "SHIFT-CREATE",
    "SHIFT-DELETE-CHAR",
    "SHIFT-DELETE-LINE",
    "SELECT",
    "SHIFT-END",
    "SHIFT-CLEAR-LINE",
    "SHIFT-EXIT",
    "SHIFT-FIND",
    "SHIFT-HELP",
    "SHIFT-HOME",
    "SHIFT-INSERT-CHAR",
    "SHIFT-LEFT",
    "SHIFT-MESSAGE",
    "SHIFT-MOVE",
    "SHIFT-NEXT",
    "SHIFT-OPTIONS",
    "SHIFT-PREVIOUS",
    "SHIFT-PRINT",
    "SHIFT-REDO",
    "SHIFT-REPLACE",
    "SHIFT-RIGHT",
    "SHIFT-RESUME",
    "SHIFT-SAVE",
    "SHIFT-SUSPEND",
    "SHIFT-UNDO",
    "SUSPEND",
    "UNDO"
  } ;

/* AT&T
AT&T The keyname() routine returns a character string corresponding
AT&T to the key c is returned.
AT&T */

char *
keyname(int c)
{
  if((c >= 0) && (c < 256)) return( unctrl((chtype)c) );

  c -= KEY_BREAK;
  if((c >= 0) && (c <= KEY_UNDO-KEY_BREAK)) return(_fkeynames[c]);
  return((char *)0);
}
