Fix compile issues with Windows and VMS.

* main.c (initialize_stopchar_map): isblank() is not part of C89.
Install bits for space and tab directly.
* makeint.h: Don't define vfork; autoconf handles this for us.
* vmsjobs.c: Rename NEXT_TOKEN to V_NEXT_TOKEN to avoid conflicts.
* dir.c (print_dir_data_base): Visual Studio C doesn't have int64_t.
* w32/subproc/sub_proc.c (process_begin): Missing arg to memset().
* build_w32.bat: Don't use obsolete Visual Studio flags.
This commit is contained in:
Paul Smith 2016-05-01 15:34:42 -04:00
parent 45200a42d3
commit 6f7fb050b4
6 changed files with 12 additions and 14 deletions

View file

@ -149,7 +149,7 @@ if "%COMPILER%" == "gcc" goto GccCompile
:: MSVC Compile
echo on
cl.exe /nologo /MT /W4 /GX /YX %OPTS% /I %OUTDIR% /I . /I glob /I w32/include /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR%OUTDIR% /Fp%OUTDIR%\%MAKE%.pch /Fo%OUTDIR%\%1.obj /Fd%OUTDIR%\%MAKE%.pdb %EXTRAS% /c %1.c
cl.exe /nologo /MT /W4 /EHsc %OPTS% /I %OUTDIR% /I . /I glob /I w32/include /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR%OUTDIR% /Fp%OUTDIR%\%MAKE%.pch /Fo%OUTDIR%\%1.obj /Fd%OUTDIR%\%MAKE%.pdb %EXTRAS% /c %1.c
@echo off
echo %OUTDIR%\%1.obj >>%OUTDIR%\link.sc
goto :EOF

8
dir.c
View file

@ -1082,9 +1082,9 @@ print_dir_data_base (void)
else if (dir->contents->dirfiles.ht_vec == 0)
{
#ifdef WINDOWS32
printf (_("# %s (key %s, mtime %I64d): could not be opened.\n"),
printf (_("# %s (key %s, mtime %ull): could not be opened.\n"),
dir->name, dir->contents->path_key,
(int64_t)dir->contents->mtime);
(unsigned long long)dir->contents->mtime);
#else /* WINDOWS32 */
#ifdef VMS_INO_T
printf (_("# %s (device %d, inode [%d,%d,%d]): could not be opened.\n"),
@ -1119,9 +1119,9 @@ print_dir_data_base (void)
}
}
#ifdef WINDOWS32
printf (_("# %s (key %s, mtime %I64d): "),
printf (_("# %s (key %s, mtime %ull): "),
dir->name, dir->contents->path_key,
(int64_t)dir->contents->mtime);
(unsigned long long)dir->contents->mtime);
#else /* WINDOWS32 */
#ifdef VMS_INO_T
printf (_("# %s (device %d, inode [%d,%d,%d]): "),

7
main.c
View file

@ -663,6 +663,9 @@ initialize_stopchar_map ()
stopchar_map[(int)'-'] = MAP_USERFUNC;
stopchar_map[(int)'_'] = MAP_USERFUNC;
stopchar_map[(int)' '] = MAP_BLANK;
stopchar_map[(int)'\t'] = MAP_BLANK;
stopchar_map[(int)'/'] = MAP_DIRSEP;
#if defined(VMS)
stopchar_map[(int)':'] |= MAP_DIRSEP;
@ -674,9 +677,7 @@ initialize_stopchar_map ()
for (i = 1; i <= UCHAR_MAX; ++i)
{
if (isblank (i))
stopchar_map[i] |= MAP_BLANK;
else if (isspace (i))
if (isspace (i) && NONE_SET (stopchar_map[i], MAP_BLANK))
/* Don't mark blank characters as newline characters. */
stopchar_map[i] |= MAP_NEWLINE;
else if (isalnum (i))

View file

@ -137,9 +137,6 @@ extern int errno;
#ifdef HAVE_VFORK_H
# include <vfork.h>
#endif
#if !HAVE_WORKING_VFORK
# define vfork fork
#endif
#ifdef HAVE_LIMITS_H
# include <limits.h>

View file

@ -264,14 +264,14 @@ tryToSetupYAst(void)
{ token->cmd_errno = ERANGE; return x; }}
/* Check if we are out of space for more tokens */
#define NEXT_TOKEN { if (cmd_tkn_index < MAX_DCL_TOKENS) \
#define V_NEXT_TOKEN { if (cmd_tkn_index < MAX_DCL_TOKENS) \
cmd_tokens[++cmd_tkn_index] = NULL; \
else { token.cmd_errno = E2BIG; break; } \
token.length = 0;}
#define UPDATE_TOKEN {cmd_tokens[cmd_tkn_index] = strdup(token.text); \
NEXT_TOKEN;}
V_NEXT_TOKEN;}
#define EOS_ERROR(x) { if (*x == 0) { token->cmd_errno = ERANGE; break; }}

View file

@ -677,7 +677,7 @@ process_begin(
/*
* Set up inherited stdin, stdout, stderr for child
*/
memset(&startInfo, sizeof(startInfo));
memset(&startInfo, '\0', sizeof(startInfo));
GetStartupInfo(&startInfo);
startInfo.dwFlags = STARTF_USESTDHANDLES;
startInfo.lpReserved = 0;