- entry[idx].name = xmalloc (strlen(dent->d_name)+1);
- strcpy (entry[idx].name, dent->d_name);
- idx++;
+ strcpy (path + pathpos, dent->d_name);
+ stat (path, &finfo);
+ switch (finfo.st_mode & S_IFMT)
+ {
+ case S_IFREG:
+ entry[idx].kind = dirs_file;
+ entry[idx].ctime = finfo.st_ctime;
+ entry[idx].name = xmalloc (strlen(dent->d_name)+1);
+ strcpy (entry[idx].name, dent->d_name);
+ idx++;
+ break;
+ case S_IFDIR:
+ entry[idx].kind = dirs_dir;
+ entry[idx].ctime = finfo.st_ctime;
+ entry[idx].name = xmalloc (strlen(dent->d_name)+2);
+ strcpy (entry[idx].name, dent->d_name);
+ strcat (entry[idx].name, "/");
+ idx++;
+ break;
+ }