+static int ensuredir(char *base, char *dir)
+{
+ if(access(dir, X_OK)) {
+ if((mkdir(base, 0777) && (errno != EEXIST)) || mkdir(dir, 0777))
+ return(1);
+ }
+ return(0);
+}
+
+static void checkempty(char *dir)
+{
+ DIR *dh;
+ int empty;
+ struct dirent *de;
+
+ if((dh = opendir(dir)) == NULL)
+ return;
+ empty = 1;
+ while((de = readdir(dh)) != NULL) {
+ if(de->d_name[0] != '.') {
+ empty = 0;
+ break;
+ }
+ }
+ closedir(dh);
+ if(empty)
+ rmdir(dir);
+}
+