address #H4266 - build problem with clang Modules
Report states that using OSX Xcode IDE results in use of 'clang Modules', whatever those are, and role.c's 'filter' struct ends up conflicting with a function declared by <curses.h> (or possibly <ncurses.h> since one includes the other). src/role.c does not include <curses.h>, so this smacks of the problems caused by using precompiled headers on pre-OSX Mac. Instead of trying to import nethack into Xcode, I temporarily inserted '#include <curses.h>' at the end of unixconf.h. gcc did complain about 'filter' in role.c (but not in invent.c, despite -Wshadow), and then complained about termcap.c using TRUE when it wasn't defined (after in had been #undef'd, where there's a comment stating that it won't be used in the rest of that file), and also complained about static function winch() in wintty.c conflicting with external winch() in curses. This renames 'filter' and 'winch()' to things that won't conflict. Also, our winch() is a signal handler but had the wrong signature for one. And the troublesome use of TRUE was in code that was supposed to be dealing with int rather than boolean.
This commit is contained in:
@@ -182,6 +182,8 @@ tty: specifying all four of role, race, gender, and alignment still prompted
|
|||||||
for confirmation with "Is this ok?" before starting play
|
for confirmation with "Is this ok?" before starting play
|
||||||
tty: responding with <return> or <enter> during role, race, &c selection
|
tty: responding with <return> or <enter> during role, race, &c selection
|
||||||
behaved same as <escape> to quit; now it will pick [random] instead
|
behaved same as <escape> to quit; now it will pick [random] instead
|
||||||
|
tty: rename struct variable 'filter' (role.c) and function 'winch()' (wintty.c)
|
||||||
|
to avoid conflicts with <curses.h>
|
||||||
unix/X11: in top level Makefile, some commented out definitions of VARDATND
|
unix/X11: in top level Makefile, some commented out definitions of VARDATND
|
||||||
misspelled pilemark.xbm (as pilemark.xpm)
|
misspelled pilemark.xbm (as pilemark.xpm)
|
||||||
unix: options file with CR+LF line ends and an invalid option line resulted in
|
unix: options file with CR+LF line ends and an invalid option line resulted in
|
||||||
|
|||||||
+5
-5
@@ -1,4 +1,4 @@
|
|||||||
/* NetHack 3.6 invent.c $NHDT-Date: 1456354616 2016/02/24 22:56:56 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.195 $ */
|
/* NetHack 3.6 invent.c $NHDT-Date: 1456907837 2016/03/02 08:37:17 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.196 $ */
|
||||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||||
/* NetHack may be freely redistributed. See license for details. */
|
/* NetHack may be freely redistributed. See license for details. */
|
||||||
|
|
||||||
@@ -1437,7 +1437,7 @@ boolean combo; /* combination menu flag */
|
|||||||
unsigned *resultflags;
|
unsigned *resultflags;
|
||||||
{
|
{
|
||||||
int FDECL((*ckfn), (OBJ_P)) = (int FDECL((*), (OBJ_P))) 0;
|
int FDECL((*ckfn), (OBJ_P)) = (int FDECL((*), (OBJ_P))) 0;
|
||||||
boolean FDECL((*filter), (OBJ_P)) = (boolean FDECL((*), (OBJ_P))) 0;
|
boolean FDECL((*ofilter), (OBJ_P)) = (boolean FDECL((*), (OBJ_P))) 0;
|
||||||
boolean takeoff, ident, allflag, m_seen;
|
boolean takeoff, ident, allflag, m_seen;
|
||||||
int itemcount;
|
int itemcount;
|
||||||
int oletct, iletct, unpaid, oc_of_sym;
|
int oletct, iletct, unpaid, oc_of_sym;
|
||||||
@@ -1455,13 +1455,13 @@ unsigned *resultflags;
|
|||||||
add_valid_menu_class(0); /* reset */
|
add_valid_menu_class(0); /* reset */
|
||||||
if (taking_off(word)) {
|
if (taking_off(word)) {
|
||||||
takeoff = TRUE;
|
takeoff = TRUE;
|
||||||
filter = is_worn;
|
ofilter = is_worn;
|
||||||
} else if (!strcmp(word, "identify")) {
|
} else if (!strcmp(word, "identify")) {
|
||||||
ident = TRUE;
|
ident = TRUE;
|
||||||
filter = not_fully_identified;
|
ofilter = not_fully_identified;
|
||||||
}
|
}
|
||||||
|
|
||||||
iletct = collect_obj_classes(ilets, invent, FALSE, filter, &itemcount);
|
iletct = collect_obj_classes(ilets, invent, FALSE, ofilter, &itemcount);
|
||||||
unpaid = count_unpaid(invent);
|
unpaid = count_unpaid(invent);
|
||||||
|
|
||||||
if (ident && !iletct) {
|
if (ident && !iletct) {
|
||||||
|
|||||||
+22
-22
@@ -1,4 +1,4 @@
|
|||||||
/* NetHack 3.6 role.c $NHDT-Date: 1453514597 2016/01/23 02:03:17 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.36 $ */
|
/* NetHack 3.6 role.c $NHDT-Date: 1456907852 2016/03/02 08:37:32 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.37 $ */
|
||||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985-1999. */
|
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985-1999. */
|
||||||
/* NetHack may be freely redistributed. See license for details. */
|
/* NetHack may be freely redistributed. See license for details. */
|
||||||
|
|
||||||
@@ -768,7 +768,7 @@ const struct Align aligns[] = {
|
|||||||
static struct {
|
static struct {
|
||||||
boolean roles[SIZE(roles)];
|
boolean roles[SIZE(roles)];
|
||||||
short mask;
|
short mask;
|
||||||
} filter;
|
} rfilter;
|
||||||
|
|
||||||
STATIC_DCL int NDECL(randrole_filtered);
|
STATIC_DCL int NDECL(randrole_filtered);
|
||||||
STATIC_DCL char *FDECL(promptsep, (char *, int));
|
STATIC_DCL char *FDECL(promptsep, (char *, int));
|
||||||
@@ -1046,7 +1046,7 @@ int rolenum, racenum, gendnum, alignnum;
|
|||||||
short allow;
|
short allow;
|
||||||
|
|
||||||
if (rolenum >= 0 && rolenum < SIZE(roles) - 1) {
|
if (rolenum >= 0 && rolenum < SIZE(roles) - 1) {
|
||||||
if (filter.roles[rolenum])
|
if (rfilter.roles[rolenum])
|
||||||
return FALSE;
|
return FALSE;
|
||||||
allow = roles[rolenum].allow;
|
allow = roles[rolenum].allow;
|
||||||
if (racenum >= 0 && racenum < SIZE(races) - 1
|
if (racenum >= 0 && racenum < SIZE(races) - 1
|
||||||
@@ -1062,7 +1062,7 @@ int rolenum, racenum, gendnum, alignnum;
|
|||||||
} else {
|
} else {
|
||||||
/* random; check whether any selection is possible */
|
/* random; check whether any selection is possible */
|
||||||
for (i = 0; i < SIZE(roles) - 1; i++) {
|
for (i = 0; i < SIZE(roles) - 1; i++) {
|
||||||
if (filter.roles[i])
|
if (rfilter.roles[i])
|
||||||
continue;
|
continue;
|
||||||
allow = roles[i].allow;
|
allow = roles[i].allow;
|
||||||
if (racenum >= 0 && racenum < SIZE(races) - 1
|
if (racenum >= 0 && racenum < SIZE(races) - 1
|
||||||
@@ -1114,7 +1114,7 @@ int rolenum, racenum, gendnum, alignnum;
|
|||||||
short allow;
|
short allow;
|
||||||
|
|
||||||
if (racenum >= 0 && racenum < SIZE(races) - 1) {
|
if (racenum >= 0 && racenum < SIZE(races) - 1) {
|
||||||
if (filter.mask & races[racenum].selfmask)
|
if (rfilter.mask & races[racenum].selfmask)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
allow = races[racenum].allow;
|
allow = races[racenum].allow;
|
||||||
if (rolenum >= 0 && rolenum < SIZE(roles) - 1
|
if (rolenum >= 0 && rolenum < SIZE(roles) - 1
|
||||||
@@ -1130,7 +1130,7 @@ int rolenum, racenum, gendnum, alignnum;
|
|||||||
} else {
|
} else {
|
||||||
/* random; check whether any selection is possible */
|
/* random; check whether any selection is possible */
|
||||||
for (i = 0; i < SIZE(races) - 1; i++) {
|
for (i = 0; i < SIZE(races) - 1; i++) {
|
||||||
if (filter.mask & races[i].selfmask)
|
if (rfilter.mask & races[i].selfmask)
|
||||||
continue;
|
continue;
|
||||||
allow = races[i].allow;
|
allow = races[i].allow;
|
||||||
if (rolenum >= 0 && rolenum < SIZE(roles) - 1
|
if (rolenum >= 0 && rolenum < SIZE(roles) - 1
|
||||||
@@ -1187,7 +1187,7 @@ int alignnum UNUSED;
|
|||||||
short allow;
|
short allow;
|
||||||
|
|
||||||
if (gendnum >= 0 && gendnum < ROLE_GENDERS) {
|
if (gendnum >= 0 && gendnum < ROLE_GENDERS) {
|
||||||
if (filter.mask & genders[gendnum].allow)
|
if (rfilter.mask & genders[gendnum].allow)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
allow = genders[gendnum].allow;
|
allow = genders[gendnum].allow;
|
||||||
if (rolenum >= 0 && rolenum < SIZE(roles) - 1
|
if (rolenum >= 0 && rolenum < SIZE(roles) - 1
|
||||||
@@ -1200,7 +1200,7 @@ int alignnum UNUSED;
|
|||||||
} else {
|
} else {
|
||||||
/* random; check whether any selection is possible */
|
/* random; check whether any selection is possible */
|
||||||
for (i = 0; i < ROLE_GENDERS; i++) {
|
for (i = 0; i < ROLE_GENDERS; i++) {
|
||||||
if (filter.mask & genders[i].allow)
|
if (rfilter.mask & genders[i].allow)
|
||||||
continue;
|
continue;
|
||||||
allow = genders[i].allow;
|
allow = genders[i].allow;
|
||||||
if (rolenum >= 0 && rolenum < SIZE(roles) - 1
|
if (rolenum >= 0 && rolenum < SIZE(roles) - 1
|
||||||
@@ -1256,7 +1256,7 @@ int alignnum;
|
|||||||
short allow;
|
short allow;
|
||||||
|
|
||||||
if (alignnum >= 0 && alignnum < ROLE_ALIGNS) {
|
if (alignnum >= 0 && alignnum < ROLE_ALIGNS) {
|
||||||
if (filter.mask & aligns[alignnum].allow)
|
if (rfilter.mask & aligns[alignnum].allow)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
allow = aligns[alignnum].allow;
|
allow = aligns[alignnum].allow;
|
||||||
if (rolenum >= 0 && rolenum < SIZE(roles) - 1
|
if (rolenum >= 0 && rolenum < SIZE(roles) - 1
|
||||||
@@ -1269,7 +1269,7 @@ int alignnum;
|
|||||||
} else {
|
} else {
|
||||||
/* random; check whether any selection is possible */
|
/* random; check whether any selection is possible */
|
||||||
for (i = 0; i < ROLE_ALIGNS; i++) {
|
for (i = 0; i < ROLE_ALIGNS; i++) {
|
||||||
if (filter.mask & aligns[i].allow)
|
if (rfilter.mask & aligns[i].allow)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
allow = aligns[i].allow;
|
allow = aligns[i].allow;
|
||||||
if (rolenum >= 0 && rolenum < SIZE(roles) - 1
|
if (rolenum >= 0 && rolenum < SIZE(roles) - 1
|
||||||
@@ -1356,13 +1356,13 @@ const char *bufp;
|
|||||||
boolean reslt = TRUE;
|
boolean reslt = TRUE;
|
||||||
|
|
||||||
if ((i = str2role(bufp)) != ROLE_NONE && i != ROLE_RANDOM)
|
if ((i = str2role(bufp)) != ROLE_NONE && i != ROLE_RANDOM)
|
||||||
filter.roles[i] = TRUE;
|
rfilter.roles[i] = TRUE;
|
||||||
else if ((i = str2race(bufp)) != ROLE_NONE && i != ROLE_RANDOM)
|
else if ((i = str2race(bufp)) != ROLE_NONE && i != ROLE_RANDOM)
|
||||||
filter.mask |= races[i].selfmask;
|
rfilter.mask |= races[i].selfmask;
|
||||||
else if ((i = str2gend(bufp)) != ROLE_NONE && i != ROLE_RANDOM)
|
else if ((i = str2gend(bufp)) != ROLE_NONE && i != ROLE_RANDOM)
|
||||||
filter.mask |= genders[i].allow;
|
rfilter.mask |= genders[i].allow;
|
||||||
else if ((i = str2align(bufp)) != ROLE_NONE && i != ROLE_RANDOM)
|
else if ((i = str2align(bufp)) != ROLE_NONE && i != ROLE_RANDOM)
|
||||||
filter.mask |= aligns[i].allow;
|
rfilter.mask |= aligns[i].allow;
|
||||||
else
|
else
|
||||||
reslt = FALSE;
|
reslt = FALSE;
|
||||||
return reslt;
|
return reslt;
|
||||||
@@ -1373,10 +1373,10 @@ gotrolefilter()
|
|||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
if (filter.mask)
|
if (rfilter.mask)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
for (i = 0; i < SIZE(roles); ++i)
|
for (i = 0; i < SIZE(roles); ++i)
|
||||||
if (filter.roles[i])
|
if (rfilter.roles[i])
|
||||||
return TRUE;
|
return TRUE;
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
@@ -1387,8 +1387,8 @@ clearrolefilter()
|
|||||||
int i;
|
int i;
|
||||||
|
|
||||||
for (i = 0; i < SIZE(roles); ++i)
|
for (i = 0; i < SIZE(roles); ++i)
|
||||||
filter.roles[i] = FALSE;
|
rfilter.roles[i] = FALSE;
|
||||||
filter.mask = 0;
|
rfilter.mask = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#define BP_ALIGN 0
|
#define BP_ALIGN 0
|
||||||
@@ -1836,7 +1836,7 @@ boolean preselect;
|
|||||||
what = "role";
|
what = "role";
|
||||||
f = r;
|
f = r;
|
||||||
for (i = 0; i < SIZE(roles); ++i)
|
for (i = 0; i < SIZE(roles); ++i)
|
||||||
if (i != f && !filter.roles[i])
|
if (i != f && !rfilter.roles[i])
|
||||||
break;
|
break;
|
||||||
if (i == SIZE(roles)) {
|
if (i == SIZE(roles)) {
|
||||||
constrainer = "filter";
|
constrainer = "filter";
|
||||||
@@ -1855,7 +1855,7 @@ boolean preselect;
|
|||||||
constrainer = "role";
|
constrainer = "role";
|
||||||
forcedvalue = races[c].noun;
|
forcedvalue = races[c].noun;
|
||||||
} else if (f >= 0
|
} else if (f >= 0
|
||||||
&& (allowmask & ~filter.mask) == races[f].selfmask) {
|
&& (allowmask & ~rfilter.mask) == races[f].selfmask) {
|
||||||
/* if there is only one race choice available due to user
|
/* if there is only one race choice available due to user
|
||||||
options disallowing others, race menu entry is disabled */
|
options disallowing others, race menu entry is disabled */
|
||||||
constrainer = "filter";
|
constrainer = "filter";
|
||||||
@@ -1877,7 +1877,7 @@ boolean preselect;
|
|||||||
constrainer = "role";
|
constrainer = "role";
|
||||||
forcedvalue = genders[g].adj;
|
forcedvalue = genders[g].adj;
|
||||||
} else if (f >= 0
|
} else if (f >= 0
|
||||||
&& (allowmask & ~filter.mask) == genders[f].allow) {
|
&& (allowmask & ~rfilter.mask) == genders[f].allow) {
|
||||||
/* if there is only one gender choice available due to user
|
/* if there is only one gender choice available due to user
|
||||||
options disallowing other, gender menu entry is disabled */
|
options disallowing other, gender menu entry is disabled */
|
||||||
constrainer = "filter";
|
constrainer = "filter";
|
||||||
@@ -1912,7 +1912,7 @@ boolean preselect;
|
|||||||
constrainer = "race";
|
constrainer = "race";
|
||||||
}
|
}
|
||||||
if (f >= 0 && !constrainer
|
if (f >= 0 && !constrainer
|
||||||
&& (ROLE_ALIGNMASK & ~filter.mask) == aligns[f].allow) {
|
&& (ROLE_ALIGNMASK & ~rfilter.mask) == aligns[f].allow) {
|
||||||
/* if there is only one alignment choice available due to user
|
/* if there is only one alignment choice available due to user
|
||||||
options disallowing others, algn menu entry is disabled */
|
options disallowing others, algn menu entry is disabled */
|
||||||
constrainer = "filter";
|
constrainer = "filter";
|
||||||
|
|||||||
+8
-6
@@ -1,4 +1,4 @@
|
|||||||
/* NetHack 3.6 termcap.c $NHDT-Date: 1447234979 2015/11/11 09:42:59 $ $NHDT-Branch: master $:$NHDT-Revision: 1.23 $ */
|
/* NetHack 3.6 termcap.c $NHDT-Date: 1456907853 2016/03/02 08:37:33 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.24 $ */
|
||||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||||
/* NetHack may be freely redistributed. See license for details. */
|
/* NetHack may be freely redistributed. See license for details. */
|
||||||
|
|
||||||
@@ -1246,6 +1246,7 @@ int color;
|
|||||||
xputs(hilites[color]);
|
xputs(hilites[color]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* not to be confused with has_colors() in unixtty.c */
|
||||||
int
|
int
|
||||||
has_color(color)
|
has_color(color)
|
||||||
int color;
|
int color;
|
||||||
@@ -1253,23 +1254,24 @@ int color;
|
|||||||
#ifdef X11_GRAPHICS
|
#ifdef X11_GRAPHICS
|
||||||
/* XXX has_color() should be added to windowprocs */
|
/* XXX has_color() should be added to windowprocs */
|
||||||
if (windowprocs.name != NULL && !strcmpi(windowprocs.name, "X11"))
|
if (windowprocs.name != NULL && !strcmpi(windowprocs.name, "X11"))
|
||||||
return TRUE;
|
return 1;
|
||||||
#endif
|
#endif
|
||||||
#ifdef GEM_GRAPHICS
|
#ifdef GEM_GRAPHICS
|
||||||
/* XXX has_color() should be added to windowprocs */
|
/* XXX has_color() should be added to windowprocs */
|
||||||
if (windowprocs.name != NULL && !strcmpi(windowprocs.name, "Gem"))
|
if (windowprocs.name != NULL && !strcmpi(windowprocs.name, "Gem"))
|
||||||
return TRUE;
|
return 1;
|
||||||
#endif
|
#endif
|
||||||
#ifdef QT_GRAPHICS
|
#ifdef QT_GRAPHICS
|
||||||
/* XXX has_color() should be added to windowprocs */
|
/* XXX has_color() should be added to windowprocs */
|
||||||
if (windowprocs.name != NULL && !strcmpi(windowprocs.name, "Qt"))
|
if (windowprocs.name != NULL && !strcmpi(windowprocs.name, "Qt"))
|
||||||
return TRUE;
|
return 1;
|
||||||
#endif
|
#endif
|
||||||
#ifdef AMII_GRAPHICS
|
#ifdef AMII_GRAPHICS
|
||||||
/* hilites[] not used */
|
/* hilites[] not used */
|
||||||
return iflags.use_color;
|
return iflags.use_color ? 1 : 0;
|
||||||
#endif
|
#else
|
||||||
return hilites[color] != (char *) 0;
|
return hilites[color] != (char *) 0;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* TEXTCOLOR */
|
#endif /* TEXTCOLOR */
|
||||||
|
|||||||
+17
-5
@@ -1,4 +1,4 @@
|
|||||||
/* NetHack 3.6 wintty.c $NHDT-Date: 1453514601 2016/01/23 02:03:21 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.124 $ */
|
/* NetHack 3.6 wintty.c $NHDT-Date: 1456907854 2016/03/02 08:37:34 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.125 $ */
|
||||||
/* Copyright (c) David Cohrs, 1991 */
|
/* Copyright (c) David Cohrs, 1991 */
|
||||||
/* NetHack may be freely redistributed. See license for details. */
|
/* NetHack may be freely redistributed. See license for details. */
|
||||||
|
|
||||||
@@ -31,8 +31,7 @@ extern void msmsg(const char *, ...);
|
|||||||
#include "wintty.h"
|
#include "wintty.h"
|
||||||
|
|
||||||
#ifdef CLIPPING /* might want SIGWINCH */
|
#ifdef CLIPPING /* might want SIGWINCH */
|
||||||
#if defined(BSD) || defined(ULTRIX) || defined(AIX_31) \
|
#if defined(BSD) || defined(ULTRIX) || defined(AIX_31) || defined(_BULL_SOURCE)
|
||||||
|| defined(_BULL_SOURCE)
|
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
@@ -226,8 +225,21 @@ const char *mesg;
|
|||||||
}
|
}
|
||||||
|
|
||||||
#if defined(SIGWINCH) && defined(CLIPPING)
|
#if defined(SIGWINCH) && defined(CLIPPING)
|
||||||
|
STATIC_DCL void FDECL(winch_handler, (int));
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This really ought to just set a flag like the hangup handler does,
|
||||||
|
* then check the flag at "safe" times, in case the signal arrives
|
||||||
|
* while something fragile is executing. Better to have a brief period
|
||||||
|
* where display updates don't fit the new size than for tty internals
|
||||||
|
* to become corrupted.
|
||||||
|
*
|
||||||
|
* 'winch_seen' has been "notyet" for a long time....
|
||||||
|
*/
|
||||||
|
/*ARGUSED*/
|
||||||
STATIC_OVL void
|
STATIC_OVL void
|
||||||
winch()
|
winch_handler(sig_unused) /* signal handler is called with at least 1 arg */
|
||||||
|
int sig_unused UNUSED;
|
||||||
{
|
{
|
||||||
int oldLI = LI, oldCO = CO, i;
|
int oldLI = LI, oldCO = CO, i;
|
||||||
register struct WinDesc *cw;
|
register struct WinDesc *cw;
|
||||||
@@ -345,7 +357,7 @@ char **argv UNUSED;
|
|||||||
ttyDisplay->lastwin = WIN_ERR;
|
ttyDisplay->lastwin = WIN_ERR;
|
||||||
|
|
||||||
#if defined(SIGWINCH) && defined(CLIPPING) && !defined(NO_SIGNAL)
|
#if defined(SIGWINCH) && defined(CLIPPING) && !defined(NO_SIGNAL)
|
||||||
(void) signal(SIGWINCH, winch);
|
(void) signal(SIGWINCH, (SIG_RET_TYPE) winch_handler);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* add one a space forward menu command alias */
|
/* add one a space forward menu command alias */
|
||||||
|
|||||||
Reference in New Issue
Block a user