Swapped .f and .F suffix precedence
[unix-history] / usr / src / old / make / dosys.c
index 160be61..77f39ee 100644 (file)
@@ -1,4 +1,4 @@
-static char *sccsid = "@(#)dosys.c     4.2 (Berkeley) 82/03/14";
+static char *sccsid = "@(#)dosys.c     4.7 (Berkeley) 83/06/22";
 #include "defs"
 #include <signal.h>
 
 #include "defs"
 #include <signal.h>
 
@@ -80,23 +80,24 @@ return(status);
 
 doclose()      /* Close open directory files before exec'ing */
 {
 
 doclose()      /* Close open directory files before exec'ing */
 {
-register struct opendir *od;
+register struct dirhdr *od;
 
 for (od = firstod; od; od = od->nxtopendir)
 
 for (od = firstod; od; od = od->nxtopendir)
-       if (od->dirfc != NULL)
-               /* fclose(od->dirfc); */
-               close(od->dirfc->_file);
+       if (od->dirfc != NULL) {
+               closedir(od->dirfc);
+               od->dirfc = NULL;
+       }
 }
 \f
 
 
 }
 \f
 
 
-
+#define MAXARGV        400
 
 doexec(str)
 register char *str;
 {
 register char *t;
 
 doexec(str)
 register char *str;
 {
 register char *t;
-char *argv[200];
+char *argv[MAXARGV];
 register char **p;
 
 while( *str==' ' || *str=='\t' )
 register char **p;
 
 while( *str==' ' || *str=='\t' )
@@ -107,6 +108,8 @@ if( *str == '\0' )
 p = argv;
 for(t = str ; *t ; )
        {
 p = argv;
 for(t = str ; *t ; )
        {
+       if (p >= argv + MAXARGV)
+               fatal1("%s: Too many arguments.", str);
        *p++ = t;
        while(*t!=' ' && *t!='\t' && *t!='\0')
                ++t;
        *p++ = t;
        while(*t!=' ' && *t!='\t' && *t!='\0')
                ++t;
@@ -117,7 +120,7 @@ for(t = str ; *t ; )
 
 *p = NULL;
 
 
 *p = NULL;
 
-if((waitpid = vfork()) == 0)
+if((waitpid = fork()) == 0)
        {
        enbint(SIG_DFL);
        doclose();
        {
        enbint(SIG_DFL);
        doclose();
@@ -131,12 +134,10 @@ return( await() );
 \f
 #include <errno.h>
 
 \f
 #include <errno.h>
 
-#include <sys/types.h>
 #include <sys/stat.h>
 
 
 
 #include <sys/stat.h>
 
 
 
-
 touch(force, name)
 int force;
 char *name;
 touch(force, name)
 int force;
 char *name;
@@ -145,11 +146,7 @@ struct stat stbuff;
 char junk[1];
 int fd;
 
 char junk[1];
 int fd;
 
-#if vax
-if (lstat(name, &stbuff) < 0)
-#else
 if( stat(name,&stbuff) < 0)
 if( stat(name,&stbuff) < 0)
-#endif
        if(force)
                goto create;
        else
        if(force)
                goto create;
        else