keyname() is so huge that it deserves a separate module.

This commit is contained in:
William McBrine
2006-12-07 18:39:01 +00:00
parent 4231b74251
commit d3c3e06c5d
12 changed files with 47 additions and 128 deletions

View File

@@ -1,8 +1,8 @@
+addch.obj +addchstr.obj +addstr.obj +attr.obj +beep.obj +bkgd.obj &
+border.obj +clear.obj +color.obj +delch.obj +deleteln.obj +getch.obj &
+getstr.obj +getyx.obj +inch.obj +inchstr.obj +initscr.obj +inopts.obj &
+insch.obj +insstr.obj +instr.obj +kernel.obj +mouse.obj +move.obj &
+outopts.obj +overlay.obj +pad.obj +printw.obj +refresh.obj +scanw.obj &
+scr_dump.obj +scroll.obj +slk.obj +termattr.obj +terminfo.obj &
+insch.obj +insstr.obj +instr.obj +kernel.obj +keyname.obj +mouse.obj &
+move.obj +outopts.obj +overlay.obj +pad.obj +printw.obj +refresh.obj &
+scanw.obj +scr_dump.obj +scroll.obj +slk.obj +termattr.obj +terminfo.obj &
+touch.obj +util.obj +window.obj +pdcdebug.obj +pdcclip.obj +pdcdisp.obj &
+pdcgetsc.obj +pdckbd.obj +pdcscrn.obj +pdcsetsc.obj +pdcutil.obj ,lib.map

View File

@@ -20,6 +20,7 @@
-+insstr.obj &
-+instr.obj &
-+kernel.obj &
-+keyname.obj &
-+mouse.obj &
-+move.obj &
-+outopts.obj &

View File

@@ -14,9 +14,9 @@ demodir = $(PDCURSES_HOME)/demos
LIBOBJS = addch.$(O) addchstr.$(O) addstr.$(O) attr.$(O) beep.$(O) \
bkgd.$(O) border.$(O) clear.$(O) color.$(O) delch.$(O) deleteln.$(O) \
getch.$(O) getstr.$(O) getyx.$(O) inch.$(O) inchstr.$(O) initscr.$(O) \
inopts.$(O) insch.$(O) insstr.$(O) instr.$(O) kernel.$(O) mouse.$(O) \
move.$(O) outopts.$(O) overlay.$(O) pad.$(O) printw.$(O) refresh.$(O) \
scanw.$(O) scr_dump.$(O) scroll.$(O) slk.$(O) termattr.$(O) \
inopts.$(O) insch.$(O) insstr.$(O) instr.$(O) kernel.$(O) keyname.$(O) \
mouse.$(O) move.$(O) outopts.$(O) overlay.$(O) pad.$(O) printw.$(O) \
refresh.$(O) scanw.$(O) scr_dump.$(O) scroll.$(O) slk.$(O) termattr.$(O) \
terminfo.$(O) touch.$(O) util.$(O) window.$(O) pdcdebug.$(O)
PDCOBJS = pdcclip.$(O) pdcdisp.$(O) pdcgetsc.$(O) pdckbd.$(O) pdcscrn.$(O) \

View File

@@ -64,9 +64,9 @@ $(LIBCURSES) : $(LIBOBJS) $(PDCOBJS)
+addch.obj +addchstr.obj +addstr.obj +attr.obj +beep.obj +bkgd.obj \
+border.obj +clear.obj +color.obj +delch.obj +deleteln.obj +getch.obj \
+getstr.obj +getyx.obj +inch.obj +inchstr.obj +initscr.obj +inopts.obj \
+insch.obj +insstr.obj +instr.obj +kernel.obj +mouse.obj +move.obj \
+outopts.obj +overlay.obj +pad.obj +printw.obj +refresh.obj +scanw.obj \
+scr_dump.obj +scroll.obj +slk.obj +termattr.obj +terminfo.obj \
+insch.obj +insstr.obj +instr.obj +kernel.obj +keyname.obj +mouse.obj \
+move.obj +outopts.obj +overlay.obj +pad.obj +printw.obj +refresh.obj \
+scanw.obj +scr_dump.obj +scroll.obj +slk.obj +termattr.obj +terminfo.obj \
+touch.obj +util.obj +window.obj +pdcdebug.obj +pdcclip.obj +pdcdisp.obj \
+pdcgetsc.obj +pdckbd.obj +pdcscrn.obj +pdcsetsc.obj +pdcutil.obj ,lib.map

View File

@@ -20,6 +20,7 @@
-+insstr.obj &
-+instr.obj &
-+kernel.obj &
-+keyname.obj &
-+mouse.obj &
-+move.obj &
-+outopts.obj &

View File

@@ -134,6 +134,9 @@ instr.obj: $(srcdir)\instr.c $(PDCURSES_HEADERS)
kernel.obj: $(srcdir)\kernel.c $(PDCURSES_HEADERS)
$(BUILD) $(srcdir)\kernel.c
keyname.obj: $(srcdir)\keyname.c $(PDCURSES_HEADERS)
$(BUILD) $(srcdir)\keyname.c
mouse.obj: $(srcdir)\mouse.c $(PDCURSES_HEADERS)
$(BUILD) $(srcdir)\mouse.c

View File

@@ -13,7 +13,7 @@
#include <curspriv.h>
RCSID("$Id: util.c,v 1.55 2006/11/05 07:13:40 wmcbrine Exp $");
RCSID("$Id: util.c,v 1.56 2006/12/07 18:39:00 wmcbrine Exp $");
/*man-start**************************************************************
@@ -21,7 +21,6 @@ RCSID("$Id: util.c,v 1.55 2006/11/05 07:13:40 wmcbrine Exp $");
Synopsis:
char *unctrl(chtype c);
char *keyname(int key);
void filter(void);
void use_env(bool x);
int delay_output(int ms);
@@ -30,7 +29,6 @@ RCSID("$Id: util.c,v 1.55 2006/11/05 07:13:40 wmcbrine Exp $");
int setcchar(cchar_t *wcval, const wchar_t *wch, const attr_t attrs,
short color_pair, const void *opts);
wchar_t *wunctrl(cchar_t *wc);
char *key_name(wchar_t c);
X/Open Description:
The unctrl() routine expands the character c into a character
@@ -38,10 +36,6 @@ RCSID("$Id: util.c,v 1.55 2006/11/05 07:13:40 wmcbrine Exp $");
Control characters are displayed in the ^X notation. Printing
characters are displayed normally.
The keyname() function returns a pointer to a character string
containing a symbolic name corresponding to that specified in
the argument key. key may be any key returned by wgetch().
The delay_output() function inserts ms millisecond pause in output.
On some systems, this has no effect.
@@ -57,18 +51,16 @@ RCSID("$Id: util.c,v 1.55 2006/11/05 07:13:40 wmcbrine Exp $");
filter() and use_env() are no-ops on PDCurses.
X/Open Return Value:
All functions return OK on success and ERR on error.
FIXME
Portability X/Open BSD SYS V
unctrl Y Y Y
keyname Y - 3.0
filter Y - 3.0
use_env Y - 4.0
delay_output Y Y Y
getcchar Y
setcchar Y
wunctrl Y
key_name Y
**man-end****************************************************************/
@@ -99,92 +91,6 @@ char *unctrl(chtype c)
return strbuf;
}
char *keyname(int key)
{
/* Key names must be in exactly the same order as in curses.h */
static char *key_name[] = {
"KEY_BREAK", "KEY_DOWN", "KEY_UP", "KEY_LEFT",
"KEY_RIGHT", "KEY_HOME", "KEY_BACKSPACE", "KEY_F0",
"KEY_F(1)", "KEY_F(2)", "KEY_F(3)", "KEY_F(4)",
"KEY_F(5)", "KEY_F(6)", "KEY_F(7)", "KEY_F(8)",
"KEY_F(9)", "KEY_F(10)", "KEY_F(11)", "KEY_F(12)",
"KEY_F(13)", "KEY_F(14)", "KEY_F(15)", "KEY_F(16)",
"KEY_F(17)", "KEY_F(18)", "KEY_F(19)", "KEY_F(20)",
"KEY_F(21)", "KEY_F(22)", "KEY_F(23)", "KEY_F(24)",
"KEY_F(25)", "KEY_F(26)", "KEY_F(27)", "KEY_F(28)",
"KEY_F(29)", "KEY_F(30)", "KEY_F(31)", "KEY_F(32)",
"KEY_F(33)", "KEY_F(34)", "KEY_F(35)", "KEY_F(36)",
"KEY_F(37)", "KEY_F(38)", "KEY_F(39)", "KEY_F(40)",
"KEY_F(41)", "KEY_F(42)", "KEY_F(43)", "KEY_F(44)",
"KEY_F(45)", "KEY_F(46)", "KEY_F(47)", "KEY_F(48)",
"KEY_F(49)", "KEY_F(50)", "KEY_F(51)", "KEY_F(52)",
"KEY_F(53)", "KEY_F(54)", "KEY_F(55)", "KEY_F(56)",
"KEY_F(57)", "KEY_F(58)", "KEY_F(59)", "KEY_F(60)",
"KEY_F(61)", "KEY_F(62)", "KEY_F(63)", "KEY_DL",
"KEY_IL", "KEY_DC", "KEY_IC", "KEY_EIC", "KEY_CLEAR",
"KEY_EOS", "KEY_EOL", "KEY_SF", "KEY_SR", "KEY_NPAGE",
"KEY_PPAGE", "KEY_STAB", "KEY_CTAB", "KEY_CATAB",
"KEY_ENTER", "KEY_SRESET", "KEY_RESET", "KEY_PRINT",
"KEY_LL", "KEY_ABORT", "KEY_SHELP", "KEY_LHELP",
"KEY_BTAB", "KEY_BEG", "KEY_CANCEL", "KEY_CLOSE",
"KEY_COMMAND", "KEY_COPY", "KEY_CREATE", "KEY_END",
"KEY_EXIT", "KEY_FIND", "KEY_HELP", "KEY_MARK",
"KEY_MESSAGE", "KEY_MOVE", "KEY_NEXT", "KEY_OPEN",
"KEY_OPTIONS", "KEY_PREVIOUS", "KEY_REDO",
"KEY_REFERENCE", "KEY_REFRESH", "KEY_REPLACE",
"KEY_RESTART", "KEY_RESUME", "KEY_SAVE", "KEY_SBEG",
"KEY_SCANCEL", "KEY_SCOMMAND", "KEY_SCOPY",
"KEY_SCREATE", "KEY_SDC", "KEY_SDL", "KEY_SELECT",
"KEY_SEND", "KEY_SEOL", "KEY_SEXIT", "KEY_SFIND",
"KEY_SHOME", "KEY_SIC", "UNKNOWN KEY", "KEY_SLEFT",
"KEY_SMESSAGE", "KEY_SMOVE", "KEY_SNEXT",
"KEY_SOPTIONS", "KEY_SPREVIOUS", "KEY_SPRINT",
"KEY_SREDO", "KEY_SREPLACE", "KEY_SRIGHT", "KEY_SRSUME",
"KEY_SSAVE", "KEY_SSUSPEND", "KEY_SUNDO", "KEY_SUSPEND",
"KEY_UNDO", "ALT_0", "ALT_1", "ALT_2", "ALT_3", "ALT_4",
"ALT_5", "ALT_6", "ALT_7", "ALT_8", "ALT_9", "ALT_A",
"ALT_B", "ALT_C", "ALT_D", "ALT_E", "ALT_F", "ALT_G",
"ALT_H", "ALT_I", "ALT_J", "ALT_K", "ALT_L", "ALT_M",
"ALT_N", "ALT_O", "ALT_P", "ALT_Q", "ALT_R", "ALT_S",
"ALT_T", "ALT_U", "ALT_V", "ALT_W", "ALT_X", "ALT_Y",
"ALT_Z", "CTL_LEFT", "CTL_RIGHT", "CTL_PGUP",
"CTL_PGDN", "CTL_HOME", "CTL_END", "KEY_A1", "KEY_A2",
"KEY_A3", "KEY_B1", "KEY_B2", "KEY_B3", "KEY_C1",
"KEY_C2", "KEY_C3", "PADSLASH", "PADENTER",
"CTL_PADENTER", "ALT_PADENTER", "PADSTOP", "PADSTAR",
"PADMINUS", "PADPLUS", "CTL_PADSTOP", "CTL_PADCENTER",
"CTL_PADPLUS", "CTL_PADMINUS", "CTL_PADSLASH",
"CTL_PADSTAR", "ALT_PADPLUS", "ALT_PADMINUS",
"ALT_PADSLASH", "ALT_PADSTAR", "ALT_PADSTOP", "CTL_INS",
"ALT_DEL", "ALT_INS", "CTL_UP", "CTL_DOWN", "CTL_TAB",
"ALT_TAB", "ALT_MINUS", "ALT_EQUAL", "ALT_HOME",
"ALT_PGUP", "ALT_PGDN", "ALT_END", "ALT_UP", "ALT_DOWN",
"ALT_RIGHT", "ALT_LEFT", "ALT_ENTER", "ALT_ESC",
"ALT_BQUOTE", "ALT_LBRACKET", "ALT_RBRACKET",
"ALT_SEMICOLON", "ALT_FQUOTE", "ALT_COMMA", "ALT_STOP",
"ALT_FSLASH", "ALT_BKSP", "CTL_BKSP", "PAD0",
"CTL_PAD0", "CTL_PAD1", "CTL_PAD2", "CTL_PAD3",
"CTL_PAD4", "CTL_PAD5", "CTL_PAD6", "CTL_PAD7",
"CTL_PAD8", "CTL_PAD9", "ALT_PAD0", "ALT_PAD1",
"ALT_PAD2", "ALT_PAD3", "ALT_PAD4", "ALT_PAD5",
"ALT_PAD6", "ALT_PAD7", "ALT_PAD8", "ALT_PAD9",
"CTL_DEL", "ALT_BSLASH", "CTL_ENTER", "SHF_PADENTER",
"SHF_PADSLASH", "SHF_PADSTAR", "SHF_PADPLUS",
"SHF_PADMINUS", "SHF_UP", "SHF_DOWN", "SHF_IC",
"SHF_DC", "KEY_MOUSE", "KEY_SHIFT_L", "KEY_SHIFT_R",
"KEY_CONTROL_L", "KEY_CONTROL_R", "KEY_ALT_L",
"KEY_ALT_R", "KEY_RESIZE", "KEY_SUP", "KEY_SDOWN"
};
PDC_LOG(("keyname() - called: key %d\n", key));
if ((key >= 0) && (key < 0x80))
return unctrl((chtype)key);
return has_key(key) ? key_name[key - KEY_MIN] : "UNKNOWN KEY";
}
bool has_key(int key)
{
PDC_LOG(("has_key() - called: key %d\n",key));
@@ -271,11 +177,4 @@ wchar_t *wunctrl(cchar_t *wc)
return strbuf;
}
char *key_name(wchar_t c)
{
PDC_LOG(("key_name() - called\n"));
return keyname((int)c);
}
#endif

View File

@@ -7,10 +7,10 @@ demodir = $(PDCURSES_HOME)\demos
LIBOBJS = addch.obj addchstr.obj addstr.obj attr.obj beep.obj bkgd.obj &
border.obj clear.obj color.obj delch.obj deleteln.obj getch.obj &
getstr.obj getyx.obj inch.obj inchstr.obj initscr.obj inopts.obj &
insch.obj insstr.obj instr.obj kernel.obj mouse.obj move.obj outopts.obj &
overlay.obj pad.obj printw.obj refresh.obj scanw.obj scr_dump.obj &
scroll.obj slk.obj termattr.obj terminfo.obj touch.obj util.obj &
window.obj pdcdebug.obj
insch.obj insstr.obj instr.obj kernel.obj keyname.obj mouse.obj move.obj &
outopts.obj overlay.obj pad.obj printw.obj refresh.obj scanw.obj &
scr_dump.obj scroll.obj slk.obj termattr.obj terminfo.obj touch.obj &
util.obj window.obj pdcdebug.obj
PDCOBJS = pdcclip.obj pdcdisp.obj pdcgetsc.obj pdckbd.obj pdcscrn.obj &
pdcsetsc.obj pdcutil.obj

View File

@@ -62,9 +62,9 @@ $(LIBCURSES) : $(LIBOBJS) $(PDCOBJS)
+addch.obj +addchstr.obj +addstr.obj +attr.obj +beep.obj +bkgd.obj \
+border.obj +clear.obj +color.obj +delch.obj +deleteln.obj +getch.obj \
+getstr.obj +getyx.obj +inch.obj +inchstr.obj +initscr.obj +inopts.obj \
+insch.obj +insstr.obj +instr.obj +kernel.obj +mouse.obj +move.obj \
+outopts.obj +overlay.obj +pad.obj +printw.obj +refresh.obj +scanw.obj \
+scr_dump.obj +scroll.obj +slk.obj +termattr.obj +terminfo.obj \
+insch.obj +insstr.obj +instr.obj +kernel.obj +keyname.obj +mouse.obj \
+move.obj +outopts.obj +overlay.obj +pad.obj +printw.obj +refresh.obj \
+scanw.obj +scr_dump.obj +scroll.obj +slk.obj +termattr.obj +terminfo.obj \
+touch.obj +util.obj +window.obj +pdcdebug.obj +pdcclip.obj +pdcdisp.obj \
+pdcgetsc.obj +pdckbd.obj +pdcscrn.obj +pdcsetsc.obj +pdcutil.obj ,lib.map

View File

@@ -77,9 +77,9 @@ clean:
LIBOBJS = addch.obj addchstr.obj addstr.obj attr.obj beep.obj bkgd.obj \
border.obj clear.obj color.obj delch.obj deleteln.obj getch.obj \
getstr.obj getyx.obj inch.obj inchstr.obj initscr.obj inopts.obj \
insch.obj insstr.obj instr.obj kernel.obj mouse.obj move.obj outopts.obj \
overlay.obj pad.obj printw.obj refresh.obj scanw.obj scr_dump.obj \
scroll.obj slk.obj termattr.obj terminfo.obj touch.obj util.obj \
insch.obj insstr.obj instr.obj kernel.obj keyname.obj mouse.obj move.obj \
outopts.obj overlay.obj pad.obj printw.obj refresh.obj scanw.obj \
scr_dump.obj scroll.obj slk.obj termattr.obj terminfo.obj touch.obj util.obj \
window.obj pdcdebug.obj
PDCOBJS = pdcclip.obj pdcdisp.obj pdcgetsc.obj pdckbd.obj pdcscrn.obj \
@@ -173,6 +173,9 @@ instr.obj: $(srcdir)\instr.c
kernel.obj: $(srcdir)\kernel.c
$(BUILD) $(srcdir)\$*.c
keyname.obj: $(srcdir)\keyname.c
$(BUILD) $(srcdir)\$*.c
mouse.obj: $(srcdir)\mouse.c
$(BUILD) $(srcdir)\$*.c

View File

@@ -54,9 +54,10 @@ realclean: distclean
LIBOBJS = addch.o addchstr.o addstr.o attr.o beep.o bkgd.o border.o \
clear.o color.o delch.o deleteln.o getch.o getstr.o getyx.o inch.o \
inchstr.o initscr.o inopts.o insch.o insstr.o instr.o kernel.o mouse.o \
move.o outopts.o overlay.o pad.o printw.o refresh.o scanw.o scr_dump.o \
scroll.o slk.o termattr.o terminfo.o touch.o util.o window.o pdcdebug.o
inchstr.o initscr.o inopts.o insch.o insstr.o instr.o kernel.o keyname.o \
mouse.o move.o outopts.o overlay.o pad.o printw.o refresh.o scanw.o \
scr_dump.o scroll.o slk.o termattr.o terminfo.o touch.o util.o window.o \
pdcdebug.o
PDCOBJS = pdcclip.o pdcdisp.o pdcgetsc.o pdckbd.o pdcscrn.o pdcsetsc.o \
pdcutil.o pdcx11.o x11.o sb.o ScrollBox.o
@@ -148,6 +149,9 @@ instr.o: $(srcdir)/instr.c
kernel.o: $(srcdir)/kernel.c
$(BUILD) $(srcdir)/kernel.c
keyname.o: $(srcdir)/keyname.c
$(BUILD) $(srcdir)/keyname.c
mouse.o: $(srcdir)/mouse.c
$(BUILD) $(srcdir)/mouse.c

View File

@@ -73,9 +73,10 @@ realclean: distclean
LIBOBJS = addch.o addchstr.o addstr.o attr.o beep.o bkgd.o border.o \
clear.o color.o delch.o deleteln.o getch.o getstr.o getyx.o inch.o \
inchstr.o initscr.o inopts.o insch.o insstr.o instr.o kernel.o mouse.o \
move.o outopts.o overlay.o pad.o printw.o refresh.o scanw.o scr_dump.o \
scroll.o slk.o termattr.o terminfo.o touch.o util.o window.o pdcdebug.o
inchstr.o initscr.o inopts.o insch.o insstr.o instr.o kernel.o keyname.o \
mouse.o move.o outopts.o overlay.o pad.o printw.o refresh.o scanw.o \
scr_dump.o scroll.o slk.o termattr.o terminfo.o touch.o util.o window.o \
pdcdebug.o
PDCOBJS = pdcclip.o pdcdisp.o pdcgetsc.o pdckbd.o pdcscrn.o pdcsetsc.o \
pdcutil.o pdcx11.o x11.o sb.o ScrollBox.o
@@ -171,6 +172,9 @@ instr.o: $(srcdir)/instr.c
kernel.o: $(srcdir)/kernel.c
$(BUILD) $(srcdir)/kernel.c
keyname.o: $(srcdir)/keyname.c
$(BUILD) $(srcdir)/keyname.c
mouse.o: $(srcdir)/mouse.c
$(BUILD) $(srcdir)/mouse.c
@@ -351,6 +355,10 @@ kernel.sho: $(srcdir)/kernel.c
$(DYN_BUILD) $(srcdir)/kernel.c
@SAVE2O@
keyname.sho: $(srcdir)/keyname.c
$(DYN_BUILD) $(srcdir)/keyname.c
@SAVE2O@
mouse.sho: $(srcdir)/mouse.c
$(DYN_BUILD) $(srcdir)/mouse.c
@SAVE2O@