9base

revived minimalist port of Plan 9 userland to Unix
git clone git://git.suckless.org/9base
Log | Files | Refs | README | LICENSE

dirwstat.c (504B)


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