X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=filebrowser%2Fdir.c;h=123d329caec9c3dfc28ece08b353ec2f5e651760;hb=b633aa086dad6a008fb8e19068605e40cf13b02b;hp=102187e83e8030158261a6de7ec399e716f62c22;hpb=373488935bf19680e26a3b51e617c9586dd438c6;p=xboard.git diff --git a/filebrowser/dir.c b/filebrowser/dir.c index 102187e..123d329 100644 --- a/filebrowser/dir.c +++ b/filebrowser/dir.c @@ -25,6 +25,8 @@ */ #include +#include /* for qsort */ +#include "../config.h" /* to check for dirent.h */ #ifdef SEL_FILE_IGNORE_CASE #include @@ -32,19 +34,15 @@ #include "selfile.h" -#if defined(SVR4) || defined(SYSV) || defined(USG) || defined(__osf__) +#ifdef HAVE_DIRENT_H #include -#else /* defined(SVR4) || defined(SYSV) || defined(USG) */ +#else #include #define dirent direct -#endif /* defined(SVR4) || defined(SYSV) || defined(USG) */ +#endif #include -#if defined(SVR4) || defined(SYSV) || defined(USG) -extern void qsort(); -#endif /* defined(SVR4) || defined(SYSV) || defined(USG) */ - #ifdef SEL_FILE_IGNORE_CASE int SFcompareEntries(p, q) @@ -144,14 +142,14 @@ SFgetDir(dir) maxChars = len; } result[i].shown = result[i].real; + if(SFpathFlag) { // [HGM] only show directories + struct stat statBuf; + if (stat(str, &statBuf) || SFstatChar(&statBuf) != '/') continue; + } i++; } -#if defined(SVR4) || defined(SYSV) || defined(USG) - qsort((char *) result, (unsigned) i, sizeof(SFEntry), SFcompareEntries); -#else /* defined(SVR4) || defined(SYSV) || defined(USG) */ - qsort((char *) result, i, sizeof(SFEntry), SFcompareEntries); -#endif /* defined(SVR4) || defined(SYSV) || defined(USG) */ + qsort((char *) result, (size_t) i, sizeof(SFEntry), SFcompareEntries); dir->entries = result; dir->nEntries = i;