1219b2ee8SDavid du Colombier #include "lib.h" 23e12c5d1SDavid du Colombier #include <sys/types.h> 3219b2ee8SDavid du Colombier #include <time.h> 43e12c5d1SDavid du Colombier #include <utime.h> 53e12c5d1SDavid du Colombier #include <errno.h> 69a747e4fSDavid du Colombier #include <stdlib.h> 73e12c5d1SDavid du Colombier #include "sys9.h" 8219b2ee8SDavid du Colombier #include "dir.h" 93e12c5d1SDavid du Colombier 103e12c5d1SDavid du Colombier int utime(const char * path,const struct utimbuf * times)113e12c5d1SDavid du Colombierutime(const char *path, const struct utimbuf *times) 123e12c5d1SDavid du Colombier { 13219b2ee8SDavid du Colombier int n; 14*d3c05884SDavid du Colombier Dir nd; 15219b2ee8SDavid du Colombier time_t curt; 16219b2ee8SDavid du Colombier 17*d3c05884SDavid du Colombier _nulldir(&nd); 18219b2ee8SDavid du Colombier if(times == 0) { 19219b2ee8SDavid du Colombier curt = time(0); 20*d3c05884SDavid du Colombier nd.atime = curt; 21*d3c05884SDavid du Colombier nd.mtime = curt; 22219b2ee8SDavid du Colombier } else { 23*d3c05884SDavid du Colombier nd.atime = times->actime; 24*d3c05884SDavid du Colombier nd.mtime = times->modtime; 25219b2ee8SDavid du Colombier } 26*d3c05884SDavid du Colombier n = _dirwstat(path, &nd); 27219b2ee8SDavid du Colombier if(n < 0) 28219b2ee8SDavid du Colombier _syserrno(); 29219b2ee8SDavid du Colombier return n; 30219b2ee8SDavid du Colombier } 31