From 974d14ac4fc8dc736a4e2c9876d85d3c295b1196 Mon Sep 17 00:00:00 2001 From: Paul Smith Date: Fri, 10 Jun 2005 20:16:28 +0000 Subject: [PATCH] Fixes for VMS from Hartmut Becker. --- ChangeLog | 10 ++++++++++ job.c | 6 +++--- makefile.vms | 2 +- vmsjobs.c | 12 ++++++++---- 4 files changed, 22 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index 6482a38..86966eb 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2005-06-10 Paul D. Smith + + VMS build updates from Hartmut Becker : + + * vmsjobs.c [VMS]: Updates to compile on VMS: add some missing + headers; make vmsWaitForChildren() static; extern vmsify(). + * job.c [VMS]: Move vmsWaitForChildren() prototype to be global. + Don't create child_execute_job() here (it's in vmsjobs.c). + * makefile.vms (job.obj) [VMS]: Add vmsjobs.c as a prerequisite. + 2005-06-09 Paul D. Smith * variable.c (push_new_variable_scope): File variables point diff --git a/job.c b/job.c index 8349445..b805eda 100644 --- a/job.c +++ b/job.c @@ -98,6 +98,7 @@ static int amiga_batch_file; # endif # include # include +static void vmsWaitForChildren PARAMS ((int *)); #endif #ifdef WINDOWS32 @@ -535,7 +536,6 @@ reap_children (int block, int err) if (any_local) { #ifdef VMS - static void vmsWaitForChildren PARAMS ((int *)); vmsWaitForChildren (&status); pid = c->pid; #else @@ -1905,7 +1905,7 @@ child_execute_job (int stdin_fd, int stdout_fd, char **argv, char **envp) return pid; } -#elif !defined (_AMIGA) && !defined (__MSDOS__) +#elif !defined (_AMIGA) && !defined (__MSDOS__) && !defined (VMS) /* UNIX: Replace the current process with one executing the command in ARGV. @@ -1926,7 +1926,7 @@ child_execute_job (int stdin_fd, int stdout_fd, char **argv, char **envp) /* Run the command. */ exec_command (argv, envp); } -#endif /* !AMIGA && !__MSDOS__ */ +#endif /* !AMIGA && !__MSDOS__ && !VMS */ #endif /* !WINDOWS32 */ #ifndef _AMIGA diff --git a/makefile.vms b/makefile.vms index 6ed86c1..09c471a 100644 --- a/makefile.vms +++ b/makefile.vms @@ -116,7 +116,7 @@ clean: # Automatically generated dependencies. commands.obj: commands.c make.h dep.h commands.h filedef.h variable.h job.h -job.obj: job.c make.h commands.h job.h filedef.h variable.h +job.obj: job.c vmsjobs.c make.h commands.h job.h filedef.h variable.h dir.obj: dir.c make.h file.obj: file.c make.h commands.h dep.h filedef.h variable.h misc.obj: misc.c make.h dep.h diff --git a/vmsjobs.c b/vmsjobs.c index bc15276..0f658fe 100644 --- a/vmsjobs.c +++ b/vmsjobs.c @@ -4,10 +4,16 @@ This file must be #included in job.c, as it accesses static functions. */ +#include +#include +#include + +extern char *vmsify PARAMS ((char *name, int type)); + static int vms_jobsefnmask = 0; /* Wait for nchildren children to terminate */ -void +static void vmsWaitForChildren(int *status) { while (1) @@ -91,9 +97,6 @@ vms_handle_apos (char *p) return p; } -#include -#include - /* This is called as an AST when a child process dies (it won't get interrupted by anything except a higher level AST). */ @@ -196,6 +199,7 @@ vmsHandleChildTerm(struct child *child) #define MAXCMDLEN 200 /* local helpers to make ctrl+c and ctrl+y working, see below */ +#include #include #include -- 2.7.4