# Yacc/Lex ... if you got 'em.
#
# If you have yacc and lex programs (or work-alike such as bison
-# and flex), comment out the upper two macros and uncomment
-# the lower two.
+# and flex), uncomment the upper two macros.
#
-DO_YACC = YACC_MSG
-DO_LEX = LEX_MSG
#DO_YACC = YACC_ACT
#DO_LEX = LEX_ACT
+!IFNDEF DO_YACC
+DO_YACC = YACC_MSG
+!ENDIF
+!IFNDEF DO_LEX
+DO_LEX = LEX_MSG
+!ENDIF
+
# Wilbur Streett's Win32 ports of GNU bison and flex are available at:
# http://www.monmouth.com/~wstreett/lex-yacc/lex-yacc.html
#
char dllname[512];
char *shortdllname;
+int FDECL(__declspec(dllexport) __stdcall
+ProcessKeystroke, (HANDLE hConIn, INPUT_RECORD *ir,
+ boolean *valid, BOOLEAN_P numberpad, int portdebug));
+
int WINAPI DllMain(HINSTANCE hInstance, DWORD fdwReason, PVOID pvReserved)
{
char dlltmpname[512];
CheckInput(hConIn, ir, count, numpad, mode, mod, cc)
HANDLE hConIn;
INPUT_RECORD *ir;
-int *count;
+DWORD *count;
boolean numpad;
int mode;
int *mod;
char dllname[512];
char *shortdllname;
+int FDECL(__declspec(dllexport) __stdcall
+ProcessKeystroke, (HANDLE hConIn, INPUT_RECORD *ir,
+ boolean *valid, BOOLEAN_P numberpad, int portdebug));
+
int WINAPI DllMain(HINSTANCE hInstance, DWORD fdwReason, PVOID pvReserved)
{
char dlltmpname[512];
CheckInput(hConIn, ir, count, numpad, mode, mod, cc)
HANDLE hConIn;
INPUT_RECORD *ir;
-int *count;
+DWORD *count;
boolean numpad;
int mode;
int *mod;
/*
* Keystroke handling contributed by Ray Chason.
+ * The following text was written by Ray Chason.
*
* The problem
* ===========
* * After pushing the bogus key and calling ReadConsole, check to see
* if we got the bogus key; if so, and an Alt is pressed, process the
* event as an Alt sequence.
+ *
*/
static char where_to_get_source[] = "http://www.nethack.org/";
char dllname[512];
char *shortdllname;
+int FDECL(__declspec(dllexport) __stdcall
+ProcessKeystroke, (HANDLE hConIn, INPUT_RECORD *ir,
+ boolean *valid, BOOLEAN_P numberpad, int portdebug));
+
static INPUT_RECORD bogus_key;
int WINAPI DllMain(HINSTANCE hInstance, DWORD fdwReason, PVOID pvReserved)
CheckInput(hConIn, ir, count, numpad, mode, mod, cc)
HANDLE hConIn;
INPUT_RECORD *ir;
-int *count, *mod;
+DWORD *count;
+int *mod;
boolean numpad;
coord *cc;
{
void FDECL(cmov, (int, int));
void FDECL(nocmov, (int, int));
+int FDECL(process_keystroke, (INPUT_RECORD *, boolean *,
+ BOOLEAN_P numberpad, int portdebug));
/*
* The following WIN32 Console API routines are used in this file.
typedef int (__stdcall * CHECKINPUT)(
HANDLE,
INPUT_RECORD *,
- int *,
+ DWORD *,
BOOLEAN_P,
int,
int *,
while (!valid || ch != 27) {
ReadConsoleInput(hConIn,&ir,1,&count);
if ((ir.EventType == KEY_EVENT) && ir.Event.KeyEvent.bKeyDown)
- ch = process_keystroke(&ir, &valid, 1);
+ ch = process_keystroke(&ir, &valid, iflags.num_pad, 1);
}
(void)doredraw();
}