diff options
-rw-r--r-- | emul/utime.h | 11 | ||||
-rw-r--r-- | utime.c | 72 |
2 files changed, 83 insertions, 0 deletions
diff --git a/emul/utime.h b/emul/utime.h new file mode 100644 index 000000000..f25462f6d --- /dev/null +++ b/emul/utime.h @@ -0,0 +1,11 @@ +#ifndef _UTIME_H +#define _UTIME_H + +struct utimbuf { + time_t actime; /* access time */ + time_t modtime; /* mod time */ +}; + +int utime __P((const char *, const struct utimbuf *)); + +#endif /* _UTIME_H */ diff --git a/utime.c b/utime.c new file mode 100644 index 000000000..d90c80f47 --- /dev/null +++ b/utime.c @@ -0,0 +1,72 @@ +/* + * CU sudo version 1.3.1 + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 1, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * + * Please send bugs, changes, problems to sudo-bugs@cs.colorado.edu + * + ******************************************************************* + * + * This module emulates utime(3) via utimes(2) for those systems that + * lack utime(2). + * utime(3) sets the access and mod times of the named file. + * + * Todd C. Miller (millert@colorado.edu) Sat Jun 17 16:42:41 MDT 1995 + */ + +#ifndef lint +static char rcsid[] = "$Id$"; +#endif /* lint */ + +#include "config.h" + +#include <stdio.h> +#ifdef HAVE_UNISTD_H +#include <unistd.h> +#endif /* HAVE_UNISTD_H */ +#include <sys/types.h> +#include <sys/time.h> + +#include "pathnames.h" +#include "compat.h" +#include "utime.h" + + +/****************************************************************** + * + * utime() + * + * Emulate utime(3) via utimes(2). + * utime(3) sets the access and mod times of the named file. + */ + +int utime(file, tvp) + const char *file; /* file to udpate */ + const struct utimbuf *utp; /* what to update to */ +{ + if (upt) { + struct timeval tv[2]; + + tv[0].tv_sec = ut.actime; + tv[0].tv_usec = 0; + + tv[1].tv_sec = ut.modtime; + tv[1].tv_usec = 0; + + return(utimes(file, tv); + } else { + return(utimes(file, NULL); + } +} |