Blame


1 fd04aace 2003-11-23 devnull #include <u.h>
2 fd04aace 2003-11-23 devnull #define NOPLAN9DEFINES
3 fd04aace 2003-11-23 devnull #include <libc.h>
4 fd04aace 2003-11-23 devnull #include <sys/time.h>
5 d2c4ee9e 2003-11-24 devnull #include <utime.h>
6 7e0b6862 2008-12-07 rsc #include <sys/stat.h>
7 fd04aace 2003-11-23 devnull
8 fd04aace 2003-11-23 devnull int
9 fd04aace 2003-11-23 devnull dirwstat(char *file, Dir *dir)
10 fd04aace 2003-11-23 devnull {
11 115dbcec 2008-12-07 rsc int ret;
12 d2c4ee9e 2003-11-24 devnull struct utimbuf ub;
13 fd04aace 2003-11-23 devnull
14 fd04aace 2003-11-23 devnull /* BUG handle more */
15 115dbcec 2008-12-07 rsc ret = 0;
16 115dbcec 2008-12-07 rsc if(~dir->mode != 0){
17 115dbcec 2008-12-07 rsc if(chmod(file, dir->mode) < 0)
18 115dbcec 2008-12-07 rsc ret = -1;
19 115dbcec 2008-12-07 rsc }
20 115dbcec 2008-12-07 rsc if(~dir->mtime != 0){
21 115dbcec 2008-12-07 rsc ub.actime = dir->mtime;
22 115dbcec 2008-12-07 rsc ub.modtime = dir->mtime;
23 115dbcec 2008-12-07 rsc if(utime(file, &ub) < 0)
24 115dbcec 2008-12-07 rsc ret = -1;
25 115dbcec 2008-12-07 rsc }
26 115dbcec 2008-12-07 rsc if(~dir->length != 0){
27 115dbcec 2008-12-07 rsc if(truncate(file, dir->length) < 0)
28 115dbcec 2008-12-07 rsc ret = -1;
29 115dbcec 2008-12-07 rsc }
30 115dbcec 2008-12-07 rsc return ret;
31 fd04aace 2003-11-23 devnull }