From cbd2a516e101655200946d458b08dfd2eed3afa0 Mon Sep 17 00:00:00 2001 From: keni Date: Wed, 10 Feb 2010 16:08:51 +0000 Subject: [PATCH] First batch of changes from FailSafeC This is all tiny stuff - allow overriding WIDENED_PROTOTYPES from the hints file, missing NO_SIGNAL conditionals, remove a GCC-ism, conditional indentation, void return in a non-void function. --- include/tradstdc.h | 18 ++++++++++-------- src/end.c | 5 ++++- src/files.c | 14 ++++++++++++-- sys/share/ioctl.c | 4 ++-- sys/unix/unixmain.c | 4 ++++ sys/unix/unixunix.c | 6 +++++- win/tty/wintty.c | 2 +- 7 files changed, 38 insertions(+), 15 deletions(-) diff --git a/include/tradstdc.h b/include/tradstdc.h index 5e080a699..040505990 100644 --- a/include/tradstdc.h +++ b/include/tradstdc.h @@ -215,31 +215,33 @@ typedef genericptr genericptr_t; /* (void *) or (char *) */ * prototypes to match the standard and thus lose the typechecking. */ #if defined(MSDOS) && !defined(__GO32__) -#define UNWIDENED_PROTOTYPES +# define UNWIDENED_PROTOTYPES #endif #if defined(AMIGA) && !defined(AZTEC_50) -#define UNWIDENED_PROTOTYPES +# define UNWIDENED_PROTOTYPES #endif #if defined(macintosh) && (defined(__SC__) || defined(__MRC__)) -#define WIDENED_PROTOTYPES +# define WIDENED_PROTOTYPES #endif #if defined(__MWERKS__) && defined(__BEOS__) -#define UNWIDENED_PROTOTYPES +# define UNWIDENED_PROTOTYPES #endif #if defined(WIN32) -#define UNWIDENED_PROTOTYPES +# define UNWIDENED_PROTOTYPES #endif #if defined(ULTRIX_PROTO) && defined(ULTRIX_CC20) -#define UNWIDENED_PROTOTYPES +# define UNWIDENED_PROTOTYPES #endif #if defined(apollo) -#define UNWIDENED_PROTOTYPES +# define UNWIDENED_PROTOTYPES #endif #ifndef UNWIDENED_PROTOTYPES # if defined(NHSTDC) || defined(ULTRIX_PROTO) || defined(THINK_C) -# define WIDENED_PROTOTYPES +# ifndef WIDENED_PROTOTYPES +# define WIDENED_PROTOTYPES +# endif # endif #endif diff --git a/src/end.c b/src/end.c index 56c5199d3..64e05024d 100644 --- a/src/end.c +++ b/src/end.c @@ -228,13 +228,14 @@ NH_panictrace_gdb(){ char *gdbpath = GDBPATH; char *greppath = GREPPATH; char buf[BUFSZ]; + FILE *gdb; if(gdbpath == NULL || gdbpath[0] == 0) return FALSE; if(greppath == NULL || greppath[0] == 0) return FALSE; sprintf(buf, "%s -n -q %s %d 2>&1 | %s '^#'", gdbpath, ARGV0, getpid(), greppath); - FILE *gdb = popen(buf, "w"); + gdb = popen(buf, "w"); if(gdb){ raw_print("Generating more information you may report:\n"); fprintf(gdb, "bt\nquit\ny"); @@ -327,7 +328,9 @@ done2() # endif # endif if ((c = ynq(tmp)) == 'y') { +# ifndef NO_SIGNAL (void) signal(SIGINT, (SIG_RET_TYPE) done1); +# endif exit_nhwindows((char *)0); NH_abort(); } else if (c == 'q') done_stopprint++; diff --git a/src/files.c b/src/files.c index 6cf6fb970..c9d157927 100644 --- a/src/files.c +++ b/src/files.c @@ -1281,13 +1281,23 @@ boolean uncomp; uncomp ? "un" : "", filename); return; } +# ifndef NO_SIGNAL (void) signal(SIGINT, SIG_IGN); (void) signal(SIGQUIT, SIG_IGN); (void) wait((int *)&i); (void) signal(SIGINT, (SIG_RET_TYPE) done1); -# ifdef WIZARD +# ifdef WIZARD if (wizard) (void) signal(SIGQUIT, SIG_DFL); -# endif +# endif +#else + /* I don't think we can really cope with external compression + * without signals, so we'll declare that compress failed and + * go on. (We could do a better job by forcing off external + * compression if there are no signals, but we want this for + * testing with FailSafeC + */ + i = 1; +#endif if (i == 0) { /* (un)compress succeeded: remove file left behind */ if (uncomp) diff --git a/sys/share/ioctl.c b/sys/share/ioctl.c index 779fdd5b7..f8e8abc61 100644 --- a/sys/share/ioctl.c +++ b/sys/share/ioctl.c @@ -162,10 +162,10 @@ dosuspend() || !check_user_string(sysopt.shellers) ){ Norep("Suspend command not available."); - return; + return 0; } #endif -# ifdef SIGTSTP +# if defined(SIGTSTP) && !defined(NO_SIGNAL) if(signal(SIGTSTP, SIG_IGN) == SIG_DFL) { suspend_nhwindows((char *)0); # ifdef _M_UNIX diff --git a/sys/unix/unixmain.c b/sys/unix/unixmain.c index 45854f93b..cf671ee5d 100644 --- a/sys/unix/unixmain.c +++ b/sys/unix/unixmain.c @@ -183,7 +183,9 @@ char *argv[]; */ u.uhp = 1; /* prevent RIP on early quits */ program_state.preserve_locks = 1; +#ifndef NO_SIGNAL sethanguphandler((SIG_RET_TYPE)hangup); +#endif process_options(argc, argv); /* command line options */ init_nhwindows(&argc, argv); /* now we can set up window system */ @@ -268,7 +270,9 @@ char *argv[]; const char *fq_save = fqname(SAVEF, SAVEPREFIX, 1); (void) chmod(fq_save,0); /* disallow parallel restores */ +#ifndef NO_SIGNAL (void) signal(SIGINT, (SIG_RET_TYPE) done1); +#endif #ifdef NEWS if(iflags.news) { display_file(NEWS, FALSE); diff --git a/sys/unix/unixunix.c b/sys/unix/unixunix.c index 7d2af5add..3dc095c3e 100644 --- a/sys/unix/unixunix.c +++ b/sys/unix/unixunix.c @@ -298,8 +298,10 @@ int wt; return(0); } /* fork succeeded; wait for child to exit */ +#ifndef NO_SIGNAL (void) signal(SIGINT,SIG_IGN); (void) signal(SIGQUIT,SIG_IGN); +#endif (void) wait( (int *) 0); #ifdef _M_UNIX sco_mapoff(); @@ -307,9 +309,11 @@ int wt; #ifdef __linux__ linux_mapoff(); #endif +#ifndef NO_SIGNAL (void) signal(SIGINT, (SIG_RET_TYPE) done1); -#ifdef WIZARD +# ifdef WIZARD if(wizard) (void) signal(SIGQUIT,SIG_DFL); +# endif #endif if(wt) { raw_print(""); diff --git a/win/tty/wintty.c b/win/tty/wintty.c index 948d8e459..e93a74cf0 100644 --- a/win/tty/wintty.c +++ b/win/tty/wintty.c @@ -338,7 +338,7 @@ char** argv; ttyDisplay->lastwin = WIN_ERR; -#if defined(SIGWINCH) && defined(CLIPPING) +#if defined(SIGWINCH) && defined(CLIPPING) && !defined(NO_SIGNAL) (void) signal(SIGWINCH, winch); #endif -- 2.40.0