aboutsummaryrefslogtreecommitdiffstats
path: root/src/sysdep.c
diff options
context:
space:
mode:
authorKarl Heuer <[email protected]>1994-09-18 19:13:39 +0000
committerKarl Heuer <[email protected]>1994-09-18 19:13:39 +0000
commit546ec8fb4ceaf02fef96a176a82f9d61bb5a471b (patch)
tree658c34be5e7e73b3680f6d60bc2df14a5fe4b659 /src/sysdep.c
parentf48c727a2403490b67c3e8e13cdabef042eabe6b (diff)
(set_file_times): New function.
Diffstat (limited to 'src/sysdep.c')
-rw-r--r--src/sysdep.c50
1 files changed, 24 insertions, 26 deletions
diff --git a/src/sysdep.c b/src/sysdep.c
index e670958289..85076908f1 100644
--- a/src/sysdep.c
+++ b/src/sysdep.c
@@ -3023,36 +3023,34 @@ rename (from, to)
#endif
-#ifdef MISSING_UTIMES
-
-/* HPUX (among others) sets HAVE_TIMEVAL but does not implement utimes. */
-
-utimes ()
+int
+set_file_times (path, atime, mtime)
+ char *path;
+ EMACS_TIME atime, mtime;
{
-}
+#ifdef HAVE_UTIMES
+ struct timeval tv[2];
+ tv[0] = atime;
+ tv[1] = mtime;
+ return utimes (path, tv);
+#else
+#ifdef HAVE_UTIME
+#ifndef HAVE_STRUCT_UTIMBUF
+ struct utimbuf {
+ long actime;
+ long modtime;
+ };
#endif
-
-#ifdef IRIS_UTIME
-
-/* The IRIS (3.5) has timevals, but uses sys V utime, and doesn't have the
- utimbuf structure defined anywhere but in the man page. */
-
-struct utimbuf
- {
- long actime;
- long modtime;
- };
-
-utimes (name, tvp)
- char *name;
- struct timeval tvp[];
-{
struct utimbuf utb;
- utb.actime = tvp[0].tv_sec;
- utb.modtime = tvp[1].tv_sec;
- utime (name, &utb);
+ utb.actime = EMACS_SECS (atime);
+ utb.modtime = EMACS_SECS (mtime);
+ return utime (path, &utb);
+#else /* !HAVE_UTIMES && !HAVE_UTIME */
+ /* Should we set errno here? If so, set it to what? */
+ return -1;
+#endif
+#endif
}
-#endif /* IRIS_UTIME */
#ifdef HPUX