#include <unistd.h>
#include <string.h>
#include <sys/wait.h>
+#include <stdlib.h>
struct stat istat, ostat;
#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) || defined(AFS_FBSD_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;
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];
int
stripName(aname)
char *aname;
- {if (rindex(aname, '.') == 0) return 1;
+ {if (strrchr(aname, '.') == 0) return 1;
else return 0;
}
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.
return -1;
}
+#ifndef AFS_OBSD_ENV
/*
* done the copy, now strip if desired.
*/
return -1;
}
}
+#endif
return status;
}
#endif /* AFS_HPUX_ENV */
char pnametmp[1024];
int pnamelen;
-#if defined (AFS_AIX_ENV) || defined(AFS_FBSD_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
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];
}
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])))