- sprintf(newfile, "%s/%s", filename, name);
- sum += du(newfile);
+ while ((entry = readdir(dir))) {
+ char newfile[BUFSIZ + 1];
+ char *name = entry->d_name;
+
+ if ((strcmp(name, "..") == 0)
+ || (strcmp(name, ".") == 0)) {
+ continue;
+ }
+
+ if (len + strlen(name) + 1 > BUFSIZ) {
+ fprintf(stderr, name_too_long, "du");
+ du_depth--;
+ return 0;
+ }
+ sprintf(newfile, "%s/%s", filename, name);
+
+ sum += du(newfile);
+ }
+ closedir(dir);
+ print(sum, filename);