VA_DECL/VA_END usage

Make the variadic functions look more like ordinary code rather than
have the function opening brace be hidden inside the VA_DECL() macro.
That brace is still there, but VA_DECL() now needs to be followed by
a visible brace (which introduces a nested block rather than the
start of the funciton).  VA_END() now provides a hidden closing brace
to end the nested block, and the existing closing brace still matches
the one in VA_DECL().

Sample usage:
void foo VA_DECL(int, arg)  --macro expansion has a hidden opening brace
{  --new, explicit opening brace (actually introduces a nested block)
  VA_START(bar);
  ...code for foo...
  VA_END();  --expansion now provides a closing brace for the nested block
}  --existing closing brace, still pairs with the hidden one in VA_DECL()

This should help if/when another round of reformatting ever takes place,
and also with editors or other tools that do brace/bracket/parenthesis
matching.

I had forgotten that there were variadic functions in sys/* and ended
up modifying a lot more files than intended.  The majority of changes
to those just inserted a new '{' line so that revised VA_END()'s '}'
won't introduce a syntax error.  A couple of them needed VA_END() moved
so that local variables wouldn't go out of scope too soon.  Only the
Unix ones have been tested.
This commit is contained in:
PatR
2015-05-15 17:45:21 -07:00
parent dd62a6831f
commit fabf9cd901
16 changed files with 8339 additions and 42 deletions

View File

@@ -1,4 +1,4 @@
/* NetHack 3.6 amiwind.c $NHDT-Date: 1431192783 2015/05/09 17:33:03 $ $NHDT-Branch: master $:$NHDT-Revision: 1.8 $ */
/* NetHack 3.6 amiwind.c $NHDT-Date: 1431737059 2015/05/16 00:44:19 $ $NHDT-Branch: master $:$NHDT-Revision: 1.9 $ */
/* NetHack 3.6 amiwind.c $Date: 2009/05/06 10:48:30 $ $Revision: 1.5 $ */
/* SCCS Id: @(#)amiwind.c 3.5 2000/01/12
/* Copyright (c) Olaf Seibert (KosmoSoft), 1989, 1992 */
@@ -889,6 +889,7 @@ amii_loadlib(void)
/*VARARGS1*/
void error
VA_DECL(const char *, s)
{
VA_START(s);
VA_INIT(s, char *);

View File

@@ -1,4 +1,4 @@
/* NetHack 3.6 macerrs.c $NHDT-Date: 1431192785 2015/05/09 17:33:05 $ $NHDT-Branch: master $:$NHDT-Revision: 1.8 $ */
/* NetHack 3.6 macerrs.c $NHDT-Date: 1431737061 2015/05/16 00:44:21 $ $NHDT-Branch: master $:$NHDT-Revision: 1.9 $ */
/* NetHack 3.6 macerrs.c $Date: 2009/05/06 10:49:10 $ $Revision: 1.5 $ */
/* SCCS Id: @(#)macerrs.c 3.5 1993/01/24 */
/* Copyright (c) Michael Hamel, 1991 */
@@ -102,7 +102,8 @@ static void vprogerror();
#endif
/* Macro substitute for error() */
void error VA_DECL(const char *, line){
void error VA_DECL(const char *, line)
{
VA_START(line);
VA_INIT(line, char *);
vprogerror(line, VA_ARGS);
@@ -111,18 +112,18 @@ void error VA_DECL(const char *, line){
#ifdef USE_STDARG
static void
vprogerror(const char *line, va_list the_args) {
vprogerror(const char *line, va_list the_args)
#else
static void
vprogerror(line, the_args) const char *line; va_list the_args; {
vprogerror(line, the_args) const char *line; va_list the_args;
#endif
#else /* USE_STDARG | USE_VARARG */
void
error VA_DECL(const char *, line){
error VA_DECL(const char *, line)
#endif
/* Do NOT use VA_START and VA_END in here... see above */
{ /* opening brace for vprogerror(), nested block for USE_OLDARG error() */
char pbuf[BUFSZ];
if(index(line, '%')) {
@@ -130,6 +131,10 @@ error VA_DECL(const char *, line){
line = pbuf;
}
showerror("of an internal error",line);
#if !(defined(USE_STDARG) || defined(USE_VARARGS))
VA_END(); /* provides closing brace for USE_OLDARGS's nested block */
#endif
}

View File

@@ -1,4 +1,4 @@
/* NetHack 3.6 pcsys.c $NHDT-Date: 1431192778 2015/05/09 17:32:58 $ $NHDT-Branch: master $:$NHDT-Revision: 1.26 $ */
/* NetHack 3.6 pcsys.c $NHDT-Date: 1431737062 2015/05/16 00:44:22 $ $NHDT-Branch: master $:$NHDT-Revision: 1.27 $ */
/* NetHack 3.6 pcsys.c $Date: 2012/01/22 06:33:47 $ $Revision: 1.18 $ */
/* SCCS Id: @(#)pcsys.c 3.5 2002/01/22 */
/* NetHack may be freely redistributed. See license for details. */
@@ -418,6 +418,7 @@ const char *str;
#ifndef WIN32
void msmsg
VA_DECL(const char *, fmt)
{
VA_START(fmt);
VA_INIT(fmt, const char *);
#if defined(MSDOS) && defined(NO_TERMS)

View File

@@ -1,4 +1,4 @@
/* NetHack 3.6 pctty.c $NHDT-Date: 1431192779 2015/05/09 17:32:59 $ $NHDT-Branch: master $:$NHDT-Revision: 1.9 $ */
/* NetHack 3.6 pctty.c $NHDT-Date: 1431737063 2015/05/16 00:44:23 $ $NHDT-Branch: master $:$NHDT-Revision: 1.10 $ */
/* NetHack 3.6 pctty.c $Date: 2009/05/06 10:50:30 $ $Revision: 1.6 $ */
/* SCCS Id: @(#)pctty.c 3.5 1990/22/02
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
@@ -75,6 +75,7 @@ unsigned mseconds;
void error
VA_DECL(const char *, s)
{
VA_START(s);
VA_INIT(s, const char *);
/* error() may get called before tty is initialized */

View File

@@ -1,4 +1,4 @@
/* NetHack 3.6 unixtty.c $NHDT-Date: 1431192779 2015/05/09 17:32:59 $ $NHDT-Branch: master $:$NHDT-Revision: 1.17 $ */
/* NetHack 3.6 unixtty.c $NHDT-Date: 1431737063 2015/05/16 00:44:23 $ $NHDT-Branch: master $:$NHDT-Revision: 1.18 $ */
/* NetHack 3.6 unixtty.c $Date: 2012/01/23 07:11:09 $ $Revision: 1.10 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/* NetHack may be freely redistributed. See license for details. */
@@ -456,6 +456,7 @@ init_linux_cons()
/*VARARGS1*/
void error
VA_DECL(const char *, s)
{
VA_START(s);
VA_INIT(s, const char *);
if (settty_needed)

View File

@@ -1,4 +1,4 @@
/* NetHack 3.6 vmstty.c $NHDT-Date: 1431192780 2015/05/09 17:33:00 $ $NHDT-Branch: master $:$NHDT-Revision: 1.13 $ */
/* NetHack 3.6 vmstty.c $NHDT-Date: 1431737064 2015/05/16 00:44:24 $ $NHDT-Branch: master $:$NHDT-Revision: 1.14 $ */
/* NetHack 3.6 vmstty.c $Date: 2011/04/13 01:48:13 $ $Revision: 1.10 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/* NetHack may be freely redistributed. See license for details. */
@@ -547,6 +547,7 @@ unsigned mseconds; /* milliseconds */
/*VARARGS1*/
void error
VA_DECL(const char *, s)
{
VA_START(s);
VA_INIT(s, const char *);

View File

@@ -1,4 +1,4 @@
/* NetHack 3.6 winhack.c $NHDT-Date: 1431192786 2015/05/09 17:33:06 $ $NHDT-Branch: master $:$NHDT-Revision: 1.16 $ */
/* NetHack 3.6 winhack.c $NHDT-Date: 1431737065 2015/05/16 00:44:25 $ $NHDT-Branch: master $:$NHDT-Revision: 1.17 $ */
/* NetHack 3.6 winhack.c $Date: 2009/10/22 02:59:35 $ $Revision: 1.11 $ */
/* Copyright (C) 2001 by Alex Kompel */
// winhack.cpp : Defines the entry point for the application.
@@ -240,6 +240,7 @@ gotlock:
/* misc functions */
void error
VA_DECL(const char *, s)
{
TCHAR wbuf[1024];
char buf[1024];
DWORD last_error = GetLastError();
@@ -269,10 +270,8 @@ VA_DECL(const char *, s)
LocalFree(lpMsgBuf);
}
}
VA_END();
MessageBox(NULL, wbuf, TEXT("Error"), MB_OK | MB_ICONERROR);
VA_END();
exit(EXIT_FAILURE);
}

View File

@@ -1,4 +1,4 @@
/* NetHack 3.6 nttty.c $NHDT-Date: 1431192782 2015/05/09 17:33:02 $ $NHDT-Branch: master $:$NHDT-Revision: 1.62 $ */
/* NetHack 3.6 nttty.c $NHDT-Date: 1431737067 2015/05/16 00:44:27 $ $NHDT-Branch: master $:$NHDT-Revision: 1.63 $ */
/* Copyright (c) NetHack PC Development Team 1993 */
/* NetHack may be freely redistributed. See license for details. */
@@ -1014,11 +1014,11 @@ load_keyboard_handler()
*/
void msmsg
VA_DECL(const char *, fmt)
{
char buf[ROWNO * COLNO]; /* worst case scenario */
VA_START(fmt);
VA_INIT(fmt, const char *);
Vsprintf(buf, fmt, VA_ARGS);
VA_END();
if (redirect_stdout)
fprintf(stdout, "%s", buf);
else {
@@ -1026,6 +1026,7 @@ VA_DECL(const char *, fmt)
if (ttyDisplay)
curs(BASE_WINDOW, cursor.X + 1, cursor.Y);
}
VA_END();
return;
}
@@ -1033,6 +1034,7 @@ VA_DECL(const char *, fmt)
/*VARARGS1*/
void nttty_error
VA_DECL(const char *, s)
{
char buf[BUFSZ];
VA_START(s);
VA_INIT(s, const char *);
@@ -1041,9 +1043,9 @@ VA_DECL(const char *, s)
end_screen();
buf[0] = '\n';
(void) vsprintf(&buf[1], s, VA_ARGS);
VA_END();
msmsg(buf);
really_move_cursor();
VA_END();
exit(EXIT_FAILURE);
}

View File

@@ -138,6 +138,7 @@ load_keyboard_handler()
*/
void msmsg
VA_DECL(const char *, fmt)
{
VA_START(fmt);
VA_INIT(fmt, const char *);
VA_END();
@@ -147,6 +148,7 @@ VA_DECL(const char *, fmt)
/*VARARGS1*/
void nttty_error
VA_DECL(const char *, s)
{
VA_START(s);
VA_INIT(s, const char *);
VA_END();

View File

@@ -1,4 +1,4 @@
/* NetHack 3.6 winnt.c $NHDT-Date: 1431192782 2015/05/09 17:33:02 $ $NHDT-Branch: master $:$NHDT-Revision: 1.25 $ */
/* NetHack 3.6 winnt.c $NHDT-Date: 1431737068 2015/05/16 00:44:28 $ $NHDT-Branch: master $:$NHDT-Revision: 1.26 $ */
/* Copyright (c) NetHack PC Development Team 1993, 1994 */
/* NetHack may be freely redistributed. See license for details. */
@@ -197,6 +197,7 @@ return &szFullPath[0];
/*VARARGS1*/
void error
VA_DECL(const char *, s)
{
char buf[BUFSZ];
VA_START(s);
VA_INIT(s, const char *);