mirror of
https://git.savannah.gnu.org/git/make.git
synced 2025-09-05 00:01:03 -04:00
Avoid C99 constructs
Although gnulib requires C99, most of the code does compile with a C90 compiler (perhaps with a lot of warnings). Reinstate our C90 configuration test, and clean up a few C99 things that crept in. * src/job.c (construct_command_argv_internal): Don't use loop-local variables or C++ comments. * src/read.c (eval_makefile): Don't use loop-local variables.
This commit is contained in:
parent
92789aa2e7
commit
1dd52ab472
@ -259,7 +259,8 @@ CFGCHECK_BUILDFLAGS =
|
||||
# as well, and that will fail.
|
||||
CFGCHECK_MAKEFLAGS = # CFLAGS='$(AM_CFLAGS)'
|
||||
|
||||
# This test can no longer be run: now that we rely on gnulib we must use C99+
|
||||
# We don't support C90 anymore, strictly, but this test still works (with lots
|
||||
# of warnings) and it helps us avoid egregious incompatibilities.
|
||||
checkcfg.strict-c90: CFGCHECK_CONFIGFLAGS = CFLAGS='-std=c90 -pedantic'
|
||||
checkcfg.strict-c90: CFGCHECK_MAKEFLAGS =
|
||||
|
||||
@ -277,6 +278,7 @@ checkcfg.no-sync: CFGCHECK_CONFIGFLAGS = CPPFLAGS=-DNO_OUTPUT_SYNC
|
||||
checkcfg.no-archives: CFGCHECK_CONFIGFLAGS = CPPFLAGS=-DNO_ARCHIVES
|
||||
|
||||
CONFIG_CHECKS := \
|
||||
checkcfg.strict-c90 \
|
||||
checkcfg.no-jobserver \
|
||||
checkcfg.no-load \
|
||||
checkcfg.no-guile \
|
||||
|
@ -3376,12 +3376,12 @@ construct_command_argv_internal (char *line, char **restp, const char *shell,
|
||||
{
|
||||
/* Parse shellflags using construct_command_argv_internal to
|
||||
handle quotes. */
|
||||
char **argv;
|
||||
char **argv, **a;
|
||||
char *f;
|
||||
f = alloca (sflags_len + 1); // +1 for null terminator.
|
||||
f = alloca (sflags_len + 1); /* +1 for null terminator. */
|
||||
memcpy (f, shellflags, sflags_len + 1);
|
||||
argv = construct_command_argv_internal (f, 0, 0, 0, 0, flags, 0);
|
||||
for (char **a = argv; a && *a; ++a)
|
||||
for (a = argv; a && *a; ++a)
|
||||
new_argv[n++] = *a;
|
||||
free (argv);
|
||||
}
|
||||
|
35
src/read.c
35
src/read.c
@ -375,23 +375,26 @@ eval_makefile (const char *filename, unsigned short flags)
|
||||
makefile search path for this makefile. */
|
||||
if (ebuf.fp == NULL && deps->error == ENOENT && (flags & RM_INCLUDED)
|
||||
&& *filename != '/' && include_directories)
|
||||
for (const char **dir = include_directories; *dir != NULL; ++dir)
|
||||
{
|
||||
const char *included = concat (3, *dir, "/", filename);
|
||||
{
|
||||
const char **dir;
|
||||
for (dir = include_directories; *dir != NULL; ++dir)
|
||||
{
|
||||
const char *included = concat (3, *dir, "/", filename);
|
||||
|
||||
ENULLLOOP(ebuf.fp, fopen (included, "r"));
|
||||
if (ebuf.fp)
|
||||
{
|
||||
filename = included;
|
||||
break;
|
||||
}
|
||||
if (errno != ENOENT)
|
||||
{
|
||||
filename = included;
|
||||
deps->error = errno;
|
||||
break;
|
||||
}
|
||||
}
|
||||
ENULLLOOP(ebuf.fp, fopen (included, "r"));
|
||||
if (ebuf.fp)
|
||||
{
|
||||
filename = included;
|
||||
break;
|
||||
}
|
||||
if (errno != ENOENT)
|
||||
{
|
||||
filename = included;
|
||||
deps->error = errno;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Enter the final name for this makefile as a goaldep. */
|
||||
filename = strcache_add (filename);
|
||||
|
Loading…
x
Reference in New Issue
Block a user