mirror of
https://gitea.psi.ch/ELOG/elog.git
synced 2026-09-10 18:23:28 +00:00
Removed scandir() for Solaris compatibility
SVN revision: 181
This commit is contained in:
parent
bc79aadf02
commit
11937112e2
30
elogd.c
30
elogd.c
@ -6,6 +6,9 @@
|
|||||||
Contents: Web server program for Electronic Logbook ELOG
|
Contents: Web server program for Electronic Logbook ELOG
|
||||||
|
|
||||||
$Log$
|
$Log$
|
||||||
|
Revision 2.47 2002/07/25 09:22:05 midas
|
||||||
|
Removed scandir() for Solaris compatibility
|
||||||
|
|
||||||
Revision 2.46 2002/07/23 13:50:11 midas
|
Revision 2.46 2002/07/23 13:50:11 midas
|
||||||
Improved speed for threaded display
|
Improved speed for threaded display
|
||||||
|
|
||||||
@ -1392,28 +1395,25 @@ INT ss_file_find(char *path, char *pattern, char **plist)
|
|||||||
\********************************************************************/
|
\********************************************************************/
|
||||||
{
|
{
|
||||||
#ifdef OS_UNIX
|
#ifdef OS_UNIX
|
||||||
int i, j, n;
|
DIR *dir_pointer;
|
||||||
struct dirent **namelist;
|
struct dirent *dp;
|
||||||
|
|
||||||
n = scandir(path, &namelist, NULL, NULL);
|
if ((dir_pointer = opendir(path)) == NULL)
|
||||||
|
|
||||||
if (n <= 0)
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
*plist = (char *) malloc(MAX_PATH_LENGTH);
|
*plist = (char *) malloc(MAX_PATH_LENGTH);
|
||||||
|
i = 0;
|
||||||
for (i=j=0 ; i<n ; i++)
|
for (dp = readdir(dir_pointer); dp != NULL; dp = readdir(dir_pointer))
|
||||||
{
|
{
|
||||||
if (fnmatch1(pattern, namelist[i]->d_name) == 0)
|
if (fnmatch1(pattern, dp->d_name) == 0)
|
||||||
{
|
{
|
||||||
*plist = (char *)realloc(*plist, (j+1)*MAX_PATH_LENGTH);
|
*plist = (char *)realloc(*plist, (i+1)*MAX_PATH_LENGTH);
|
||||||
strncpy(*plist+(j*MAX_PATH_LENGTH), namelist[i]->d_name, strlen(namelist[i]->d_name));
|
strncpy(*plist+(i*MAX_PATH_LENGTH), dp->d_name, strlen(dp->d_name));
|
||||||
*(*plist+(j*MAX_PATH_LENGTH)+strlen(namelist[i]->d_name)) = '\0';
|
*(*plist+(i*MAX_PATH_LENGTH)+strlen(dp->d_name)) = '\0';
|
||||||
j++;
|
i++;
|
||||||
|
seekdir(dir_pointer, telldir(dir_pointer));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
free(namelist);
|
closedir(dir_pointer);
|
||||||
return j;
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef OS_WINNT
|
#ifdef OS_WINNT
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user