summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Smith <psmith@gnu.org>2016-05-01 15:34:42 -0400
committerPaul Smith <psmith@gnu.org>2016-05-21 16:21:31 -0400
commit6f7fb050b4af7335de259f570b75bf6c217eb1cd (patch)
tree21cfcad4bfb2d24b0966b742d9141e0323de501d
parent45200a42d3de9a022584f98200ec141f46dcdf95 (diff)
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.
-rwxr-xr-xbuild_w32.bat2
-rw-r--r--dir.c8
-rw-r--r--main.c7
-rw-r--r--makeint.h3
-rw-r--r--vmsjobs.c4
-rw-r--r--w32/subproc/sub_proc.c2
6 files changed, 12 insertions, 14 deletions
diff --git a/build_w32.bat b/build_w32.bat
index 9d752581..59e068b6 100755
--- a/build_w32.bat
+++ b/build_w32.bat
@@ -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
diff --git a/dir.c b/dir.c
index 203a1464..a286d2ea 100644
--- a/dir.c
+++ b/dir.c
@@ -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]): "),
diff --git a/main.c b/main.c
index 73eaf181..c812ba4a 100644
--- a/main.c
+++ b/main.c
@@ -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))
diff --git a/makeint.h b/makeint.h
index 7390da74..0ee5acc3 100644
--- a/makeint.h
+++ b/makeint.h
@@ -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>
diff --git a/vmsjobs.c b/vmsjobs.c
index 649479ef..f45c8a80 100644
--- a/vmsjobs.c
+++ b/vmsjobs.c
@@ -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; }}
diff --git a/w32/subproc/sub_proc.c b/w32/subproc/sub_proc.c
index 564ff1ae..d34e8408 100644
--- a/w32/subproc/sub_proc.c
+++ b/w32/subproc/sub_proc.c
@@ -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;