pinstall-warning-cleanup-20011005
[openafs.git] / src / pinstall / install.c
index e3066f4..f2c0b0f 100644 (file)
@@ -28,9 +28,6 @@ SOFTWARE.
 ******************************************************************/
 /* $ACIS: $ */
 
-#ifndef lint
-#endif
-
 /* ALSO utimes and strip the file
 
 Generic install command.  Options are:
@@ -49,7 +46,11 @@ Generic install command.  Options are:
 
 #define MAXFILES 200
 #define BUFSIZE 32768
+#include <afsconfig.h>
 #include <afs/param.h>
+
+RCSID("$Header$");
+
 #include <stdio.h>
 #include <pwd.h>
 #include <grp.h>
@@ -80,23 +81,20 @@ Generic install command.  Options are:
 #include <unistd.h>
 #include <string.h>
 #include <sys/wait.h>
+#include <stdlib.h>
 
 struct stat istat, ostat;
 
 extern int errno;
 extern int sys_nerr;
-#if !defined(AFS_LINUX20_ENV) && !defined(AFS_DARWIN_ENV) && !defined(AFS_FBSD40_ENV)
+#if !defined(AFS_LINUX20_ENV) && !defined(AFS_DARWIN_ENV) && !defined(AFS_FBSD_ENV)
 extern char *sys_errlist[];
 #endif
-#if    defined(AFS_AIX_ENV) || defined(AFS_HPUX_ENV) || defined(AFS_SUN5_ENV) || defined(AFS_DECOSF_ENV) || defined(AFS_SGI_ENV) || defined(AFS_LINUX20_ENV) || defined(AFS_DARWIN_ENV)
+#if    defined(AFS_AIX_ENV) || defined(AFS_HPUX_ENV) || defined(AFS_SUN5_ENV) || defined(AFS_DECOSF_ENV) || defined(AFS_SGI_ENV) || defined(AFS_LINUX20_ENV) || defined(AFS_DARWIN_ENV) || defined(AFS_XBSD_ENV)
 extern struct passwd *getpwnam();
 int stripcalled = 0;
 #endif
 
-#ifndef rindex
-extern char *rindex();   /* this should always be defined, shouldn't it? */
-#endif
-
 #if defined(AFS_HPUX_ENV) && !defined(AFS_HPUX102_ENV)
 utimes(file,tvp)
 char *file;
@@ -117,7 +115,7 @@ static char *strrpbrk (s, set)
     char sets[256];
     int  i;
 
-    bzero (sets, sizeof(sets));
+    memset(sets, 0, sizeof(sets));
     while (*set) sets[(int) *set++] = 1;
     i = strlen (s);
     while (i > 0) if (sets[(int)s[--i]]) return &s[i];
@@ -138,7 +136,7 @@ char *ErrorString(aerrno)
 int
 stripName(aname)
     char *aname;
-    {if (rindex(aname, '.') == 0) return 1;
+    {if (strrchr(aname, '.') == 0) return 1;
     else return 0;
     }
 
@@ -155,7 +153,7 @@ atoo(astr)
     return value;
     }
 
-#if    defined(AFS_HPUX_ENV) || defined(AFS_SUN5_ENV) || defined(AFS_DECOSF_ENV) || defined(AFS_SGI_ENV) || defined(AFS_LINUX20_ENV) || defined(AFS_DARWIN_ENV)
+#if    defined(AFS_HPUX_ENV) || defined(AFS_SUN5_ENV) || defined(AFS_DECOSF_ENV) || defined(AFS_SGI_ENV) || defined(AFS_LINUX20_ENV) || defined(AFS_DARWIN_ENV) || defined(AFS_OBSD_ENV)
 /*
  * Implementation lifted from that for AIX 3.1, since there didn't seem to be any
  * reason why it wouldn't work.
@@ -207,6 +205,7 @@ char *iname, *oname; {
                return -1;
        }
 
+#ifndef AFS_OBSD_ENV
        /*
         * done the copy, now strip if desired.
         */
@@ -222,7 +221,7 @@ char *iname, *oname; {
                strip[1] = oname;
 #ifdef AFS_SUN5_ENV
 #define        STRIP_BIN       "/usr/ccs/bin/strip"
-#elif defined(AFS_LINUX20_ENV) || defined(AFS_DARWIN_ENV)
+#elif defined(AFS_LINUX20_ENV) || defined(AFS_DARWIN_ENV) || defined(AFS_FBSD_ENV)
 #define STRIP_BIN      "/usr/bin/strip"
 #else
 #define        STRIP_BIN       "/bin/strip"
@@ -237,6 +236,7 @@ char *iname, *oname; {
                        return -1;
                }
        }
+#endif
 
        return status;
 }
@@ -476,7 +476,7 @@ main (argc, argv)
 #endif /* AFS_HPUX_ENV */
     char pnametmp[1024];
     int pnamelen;
-#if defined (AFS_AIX_ENV)
+#if defined (AFS_AIX_ENV) || defined(AFS_XBSD_ENV)
     afs_int32 newcode;
     static char diskBuffer[BUFSIZE];   /* must be static to avoid compiler bugs for large stuff */
 #endif
@@ -641,7 +641,7 @@ main (argc, argv)
 
     for (i=0;i<fptr;i++)
        {/* figure out name to put as entry name for file */
-       tp = rindex(fnames[i], '/');
+       tp = strrchr(fnames[i], '/');
        if (tp) newNames[i] = tp+1;
        else newNames[i] = fnames[i];
        }
@@ -687,7 +687,7 @@ main (argc, argv)
                continue;
            }
        }
-#if    defined(AFS_AIX_ENV) || defined(AFS_HPUX_ENV) || defined(AFS_SUN5_ENV) || defined(AFS_DECOSF_ENV) || defined(AFS_SGI_ENV) || defined(AFS_LINUX20_ENV) || defined(AFS_DARWIN_ENV)
+#if    defined(AFS_AIX_ENV) || defined(AFS_HPUX_ENV) || defined(AFS_SUN5_ENV) || defined(AFS_DECOSF_ENV) || defined(AFS_SGI_ENV) || defined(AFS_LINUX20_ENV) || defined(AFS_DARWIN_ENV) || defined(AFS_OBSD_ENV)
        stripcalled = 0;
        if (strip == 1 ||
            ((strip == -1 && ((istat.st_mode & 0111) == 0111) && stripName(newNames[i])) && AIXobject(fnames[i])))