summaryrefslogtreecommitdiff
path: root/dmake/msdos/borland/utime.c
diff options
context:
space:
mode:
Diffstat (limited to 'dmake/msdos/borland/utime.c')
-rw-r--r--dmake/msdos/borland/utime.c66
1 files changed, 66 insertions, 0 deletions
diff --git a/dmake/msdos/borland/utime.c b/dmake/msdos/borland/utime.c
new file mode 100644
index 000000000000..2b87022fe3f1
--- /dev/null
+++ b/dmake/msdos/borland/utime.c
@@ -0,0 +1,66 @@
+/* RCS $Id: utime.c,v 1.1.1.1 2000-09-22 15:33:28 hr Exp $
+--
+-- SYNOPSIS
+-- utime
+--
+-- DESCRIPTION
+-- chage the last modified time on a file.
+--
+-- AUTHOR
+-- Dennis Vadura, dvadura@dmake.wticorp.com
+--
+-- WWW
+-- http://dmake.wticorp.com/
+--
+-- COPYRIGHT
+-- Copyright (c) 1996,1997 by WTI Corp. All rights reserved.
+--
+-- This program is NOT free software; you can redistribute it and/or
+-- modify it under the terms of the Software License Agreement Provided
+-- in the file <distribution-root>/readme/license.txt.
+--
+-- LOG
+-- Use cvs log to obtain detailed change logs.
+*/
+#include <sys/stat.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <fcntl.h>
+#include <io.h>
+#include <time.h>
+
+int
+utime(name, timep)/*
+====================
+ Broken for turbo C it only sets the file time to the current time by
+ touching a character in the file */
+char* name;
+time_t timep[2];
+{
+ struct stat buf;
+ int fil;
+ char data;
+
+ if (stat(name, &buf) != 0)
+ return (-1);
+ if (buf.st_size != 0) {
+ if ((fil = open(name, O_RDWR, S_IWRITE)) < 0)
+ return (-1);
+ if (read(fil, &data, 1) < 1) {
+ close(fil);
+ return (-1);
+ }
+ lseek(fil, 0L, 0);
+ if (write(fil, &data, 1) < 1) {
+ close(fil);
+ return (-1);
+ }
+ close(fil);
+ return (0);
+ } else if ((fil = creat(name, S_IWRITE)) < 0) {
+ return (-1);
+ } else {
+ close(fil);
+ return (0);
+ }
+}