Skip to content

Commit

Permalink
vms Meta key hack (trunk only)
Browse files Browse the repository at this point in the history
     I can't figure out how to make PuTTY use the Alt key to function as
a Meta key and set a character's high bit, so I used this hack to test
the M-5 fix just committed.  This lets me specify a character to be used
to force the next character to have its high bit set, so I can fake the
Meta key with a two character sequence.  (I used the back-tick/accent,
since nethack doesn't do anything special with it.)  Conceivably something
like this should be promoted to the core; this just affects VMS, and only
when vmstty.c is compiled with DEBUG defined.
  • Loading branch information
nethack.rankin committed Apr 13, 2011
1 parent 3148c15 commit 7002734
Showing 1 changed file with 30 additions and 1 deletion.
31 changes: 30 additions & 1 deletion sys/vms/vmstty.c
@@ -1,5 +1,4 @@
/* NetHack 3.5 vmstty.c $Date$ $Revision$ */
/* SCCS Id: @(#)vmstty.c 3.5 2007/01/31 */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/* NetHack may be freely redistributed. See license for details. */
/* tty.c - (VMS) version */
Expand Down Expand Up @@ -103,6 +102,36 @@ static unsigned long tt_char_restore = 0, tt_char_active = 0,
tt2_char_restore = 0, tt2_char_active = 0;
static unsigned long ctrl_mask = 0;

#ifdef DEBUG
extern int NDECL(nh_vms_getchar);

/* rename the real vms_getchar and interpose this one in front of it */
int
vms_getchar()
{
static int althack = 0, altprefix;
char *nhalthack;
int res;

if (!althack) {
/* one-time init */
nhalthack = nh_getenv("NH_ALTHACK");
althack = nhalthack ? 1 : -1;
if (althack > 0)
altprefix = *nhalthack;
}

# define vms_getchar nh_vms_getchar

res = vms_getchar();
if (althack > 0 && res == altprefix) {
res = vms_getchar();
if (res != ESC) res = META(res);
}
return res;
}
#endif /*DEBUG*/

int
vms_getchar()
{
Expand Down

0 comments on commit 7002734

Please sign in to comment.