--- OLD/xc/config/imake/imake.c Thu Jan 1 00:00:00 1970 +++ NEW/xc/config/imake/imake.c Thu Jan 1 00:00:00 1970 @@ -136,8 +136,7 @@ * #include INCLUDE_IMAKEFILE * */ -#include -#include +#include #include "Xosdefs.h" #ifdef WIN32 # include "Xw32defs.h" @@ -145,8 +144,11 @@ #ifndef X_NOT_POSIX # ifndef _POSIX_SOURCE # define _POSIX_SOURCE +# define _POSIX_C_SOURCE 2 # endif #endif +#include +#include #include #include #ifdef X_NOT_POSIX @@ -163,7 +165,6 @@ # include # undef _POSIX_SOURCE #endif -#include #ifndef X_NOT_POSIX # ifdef _POSIX_SOURCE # include @@ -291,6 +292,8 @@ # endif #endif +#include + char *cpp = NULL; char *tmpMakefile = "/tmp/Imf.XXXXXX"; @@ -317,7 +320,10 @@ char *CleanCppInput(); char *Strdup(); char *Emalloc(); -void LogFatalI(), LogFatal(), LogMsg(); +static void LogFatal(const char *, ...) + __attribute__((__format__(__printf__,1,2))); +static void LogMsg(const char *, ...) + __attribute__((__format__(__printf__,1,2))); void showit(); void wrapup(); @@ -412,7 +418,7 @@ int sig; { errno = 0; - LogFatalI("Signal %d.", sig); + LogFatal("Signal %d.", sig); } /* @@ -461,7 +467,7 @@ { errno = 0; if (make_argindex >= ARGUMENTS-1) - LogFatal("Out of internal storage.", ""); + LogFatal("Out of internal storage."); make_argv[ make_argindex++ ] = arg; make_argv[ make_argindex ] = NULL; } @@ -472,7 +478,7 @@ { errno = 0; if (cpp_argindex >= ARGUMENTS-1) - LogFatal("Out of internal storage.", ""); + LogFatal("Out of internal storage."); cpp_argv[ cpp_argindex++ ] = arg; cpp_argv[ cpp_argindex ] = NULL; } @@ -501,7 +507,7 @@ else { argc--, argv++; if (! argc) - LogFatal("No description arg after -f flag", ""); + LogFatal("No description arg after -f flag"); Imakefile = argv[0]; } } else if (argv[0][1] == 's') { @@ -511,7 +517,7 @@ else { argc--, argv++; if (!argc) - LogFatal("No description arg after -s flag", ""); + LogFatal("No description arg after -s flag"); Makefile = ((argv[0][0] == '-') && !argv[0][1]) ? NULL : argv[0]; } @@ -525,7 +531,7 @@ else { argc--, argv++; if (! argc) - LogFatal("No description arg after -T flag", ""); + LogFatal("No description arg after -T flag"); Template = argv[0]; } } else if (argv[0][1] == 'C') { @@ -534,7 +540,7 @@ else { argc--, argv++; if (! argc) - LogFatal("No imakeCfile arg after -C flag", ""); + LogFatal("No imakeCfile arg after -C flag"); ImakefileC = argv[0]; } } else if (argv[0][1] == 'v') { @@ -568,7 +574,7 @@ } else { if (access("Imakefile", R_OK) < 0) if (access("imakefile", R_OK) < 0) - LogFatal("No description file.", ""); + LogFatal("No description file."); else Imakefile = "imakefile"; else @@ -577,44 +583,34 @@ return(Imakefile); } -void -LogFatalI(s, i) - char *s; - int i; -{ - /*NOSTRICT*/ - LogFatal(s, (char *)i); -} - -void -LogFatal(x0,x1) - char *x0, *x1; +static void LogFatal(const char *fmt, ...) { + va_list ap; static boolean entered = FALSE; if (entered) return; entered = TRUE; - - LogMsg(x0, x1); - fprintf(stderr, " Stop.\n"); - wrapup(); - exit(1); + { char *s; + va_start(ap,fmt); + vasprintf(&s,fmt,ap); + va_end(ap); + fprintf(stderr,"%s: %s\n Stop.\n",program,s); + wrapup(); + exit(1); + } } -void -LogMsg(x0,x1) - char *x0, *x1; +static void LogMsg(const char *fmt, ...) { - int error_number = errno; + va_list ap; + char *s; - if (error_number) { - fprintf(stderr, "%s: ", program); - fprintf(stderr, "%s\n", strerror(error_number)); - } - fprintf(stderr, "%s: ", program); - fprintf(stderr, x0, x1); - fprintf(stderr, "\n"); + va_start(ap,fmt); + vasprintf(&s,fmt,ap); + va_end(ap); + fprintf(stderr,"%s: %s\n",program,s); + free(s); } void @@ -690,18 +686,18 @@ if (status < 0) LogFatal("Cannot spawn %s.", cmd); if (status > 0) - LogFatalI("Exit code %d.", status); + LogFatal("Exit code %d.", status); #else pid = fork(); if (pid < 0) - LogFatal("Cannot fork.", ""); + LogFatal("Cannot fork."); if (pid) { /* parent... simply wait */ while (wait(&status) > 0) { errno = 0; if (WIFSIGNALED(status)) - LogFatalI("Signal %d.", waitSig(status)); + LogFatal("Signal %d.", waitSig(status)); if (WIFEXITED(status) && waitCode(status)) - LogFatalI("Exit code %d.", waitCode(status)); + LogFatal("Exit code %d.", waitCode(status)); } } else { /* child... dup and exec cmd */ @@ -778,7 +774,7 @@ /* Just in case... */ if (strlen(buf) >= sizeof(buf)) - LogFatal("Buffer overflow parsing uname.", ""); + LogFatal("Buffer overflow parsing uname."); /* Parse the buffer. The sscanf() return value is rarely correct. */ *result = '\0'; @@ -1095,7 +1091,7 @@ /* Obtain the system information. */ if (uname(&name) < 0) - LogFatal("Cannot invoke uname", ""); + LogFatal("Cannot invoke uname"); # ifdef DEFAULT_OS_NAME parse_utsname(&name, DEFAULT_OS_NAME, buf, @@ -1477,7 +1473,7 @@ char *p; if ((p = malloc(size)) == NULL) - LogFatalI("Cannot allocate %d bytes", size); + LogFatal("Cannot allocate %d bytes", size); return(p); }