*/
#include "includes.h"
-#include "xmalloc.h"
RCSID("$Id$");
-/*
- * NB. duplicate __progname in case it is an alias for argv[0]
- * Otherwise it may get clobbered by setproctitle()
- */
char *get_progname(char *argv0)
{
#ifdef HAVE___PROGNAME
extern char *__progname;
- return xstrdup(__progname);
+ return __progname;
#else
char *p;
p = argv0;
else
p++;
-
- return xstrdup(p);
+ return p;
#endif
}
{
struct utimbuf ub;
- ub.actime = tvp[0].tv_sec;
- ub.modtime = tvp[1].tv_sec;
+ ub.actime = tvp->tv_sec;
+ ub.modtime = tvp->tv_usec;
return(utime(filename, &ub));
}
#endif
-
-#ifndef HAVE_TRUNCATE
-int truncate (const char *path, off_t length)
-{
- int fd, ret, saverrno;
-
- fd = open(path, O_WRONLY);
- if (fd < 0)
- return -1;
-
- ret = ftruncate(fd, length);
- saverrno = errno;
- (void) close (fd);
- if (ret == -1)
- errno = saverrno;
- return(ret);
-}
-#endif /* HAVE_TRUNCATE */
-
-#if !defined(HAVE_SETGROUPS) && defined(SETGROUPS_NOOP)
-/*
- * Cygwin setgroups should be a noop.
- */
-int
-setgroups(size_t size, const gid_t *list)
-{
- return 0;
-}
-#endif
-
-#if !defined(HAVE_NANOSLEEP) && !defined(HAVE_NSLEEP)
-int nanosleep(const struct timespec *req, struct timespec *rem)
-{
- int rc, saverrno;
- extern int errno;
- struct timeval tstart, tstop, tremain, time2wait;
-
- TIMESPEC_TO_TIMEVAL(&time2wait, req)
- (void) gettimeofday(&tstart, NULL);
- rc = select(0, NULL, NULL, NULL, &time2wait);
- if (rc == -1) {
- saverrno = errno;
- (void) gettimeofday (&tstop, NULL);
- errno = saverrno;
- tremain.tv_sec = time2wait.tv_sec -
- (tstop.tv_sec - tstart.tv_sec);
- tremain.tv_usec = time2wait.tv_usec -
- (tstop.tv_usec - tstart.tv_usec);
- tremain.tv_sec += tremain.tv_usec / 1000000L;
- tremain.tv_usec %= 1000000L;
- } else {
- tremain.tv_sec = 0;
- tremain.tv_usec = 0;
- }
- TIMEVAL_TO_TIMESPEC(&tremain, rem)
-
- return(rc);
-}
-
-#endif
-