| 414 | } |
| 415 | |
| 416 | void listfiles(const char *dir, const char *ext, vector<char *> &files, int (__cdecl *sf)(const char **, const char **)) |
| 417 | { |
| 418 | listdir(dir, ext, files); |
| 419 | string s; |
| 420 | if(homedir[0]) |
| 421 | { |
| 422 | formatstring(s)("%s%s", homedir, dir); |
| 423 | listdir(s, ext, files); |
| 424 | } |
| 425 | loopv(packagedirs) |
| 426 | { |
| 427 | formatstring(s)("%s%s", packagedirs[i], dir); |
| 428 | listdir(s, ext, files); |
| 429 | } |
| 430 | #ifndef STANDALONE |
| 431 | listzipfiles(dir, ext, files); |
| 432 | #endif |
| 433 | if(sf) |
| 434 | { // sort and remove doubles |
| 435 | files.sort(sf); |
| 436 | for(int i = files.length() - 1; i > 0; i--) |
| 437 | { |
| 438 | if(!strcmp(files[i], files[i - 1])) delstring(files.remove(i)); |
| 439 | } |
| 440 | } |
| 441 | } |
| 442 | |
| 443 | #ifndef STANDALONE |
| 444 | void listfilesrecursive(const char *dir, vector<char *> &files, int level) |
no test coverage detected