|
|
@ -1,4 +1,4 @@
|
|
|
|
/* $Id: sysfunc.c,v 1.4 2003/05/06 21:34:07 stpohle Exp $
|
|
|
|
/* $Id: sysfunc.c,v 1.5 2003/05/06 22:47:05 stpohle Exp $
|
|
|
|
sysfunc.c - this file hold some routines for the system functions..
|
|
|
|
sysfunc.c - this file hold some routines for the system functions..
|
|
|
|
like d_delay
|
|
|
|
like d_delay
|
|
|
|
*/
|
|
|
|
*/
|
|
|
@ -15,7 +15,9 @@ s_delay (int ms)
|
|
|
|
tval.tv_sec = 0;
|
|
|
|
tval.tv_sec = 0;
|
|
|
|
tval.tv_usec = ms;
|
|
|
|
tval.tv_usec = ms;
|
|
|
|
select (1, &selectset, NULL, NULL, &tval);
|
|
|
|
select (1, &selectset, NULL, NULL, &tval);
|
|
|
|
}
int
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int
|
|
|
|
s_random (int maxnr)
|
|
|
|
s_random (int maxnr)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
#ifdef _WIN32
|
|
|
|
#ifdef _WIN32
|
|
|
@ -29,7 +31,9 @@ s_random (int maxnr)
|
|
|
|
return i;
|
|
|
|
return i;
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
static char homedir[255];
|
|
|
|
static char homedir[255];
|
|
|
|
|
|
|
|
|
|
|
|
char *
|
|
|
|
char *
|
|
|
|
s_gethomedir ()
|
|
|
|
s_gethomedir ()
|
|
|
|
{
|
|
|
|
{
|
|
|
@ -53,8 +57,11 @@ s_gethomedir ()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return homedir;
|
|
|
|
return homedir;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
static _direntry direntrys[MAX_DIRENTRYS];
|
|
|
|
static _direntry direntrys[MAX_DIRENTRYS];
|
|
|
|
_direntry * s_getdir (char *path)
|
|
|
|
|
|
|
|
|
|
|
|
_direntry *
|
|
|
|
|
|
|
|
s_getdir (char *path)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
DIR *dp;
|
|
|
|
DIR *dp;
|
|
|
|
struct dirent *ep;
|
|
|
|
struct dirent *ep;
|
|
|
@ -70,7 +77,7 @@ s_gethomedir ()
|
|
|
|
if (strlen (ep->d_name) >= LEN_FILENAME)
|
|
|
|
if (strlen (ep->d_name) >= LEN_FILENAME)
|
|
|
|
direntrys[entrynr].name[LEN_FILENAME - 1] = 0;
|
|
|
|
direntrys[entrynr].name[LEN_FILENAME - 1] = 0;
|
|
|
|
|
|
|
|
|
|
|
|
sprintf (filename, "%s/%s\0", path, direntrys[entrynr].name);
|
|
|
|
sprintf (filename, "%s/%s", path, direntrys[entrynr].name);
|
|
|
|
stat (filename, &fstat);
|
|
|
|
stat (filename, &fstat);
|
|
|
|
if (S_ISREG (fstat.st_mode)) {
|
|
|
|
if (S_ISREG (fstat.st_mode)) {
|
|
|
|
direntrys[entrynr].flags = DF_file;
|
|
|
|
direntrys[entrynr].flags = DF_file;
|
|
|
@ -93,9 +100,12 @@ s_gethomedir ()
|
|
|
|
return &direntrys[0];
|
|
|
|
return &direntrys[0];
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
_direntry *
|
|
|
|
_direntry *s_dirfilter (_direntry *dirstart, signed char dirflags) {
|
|
|
|
s_dirfilter (_direntry * dirstart, signed char dirflags)
|
|
|
|
_direntry *newstart = NULL, *pos = NULL, *old = NULL;
|
|
|
|
{
|
|
|
|
|
|
|
|
_direntry *newstart = NULL,
|
|
|
|
|
|
|
|
*pos = NULL,
|
|
|
|
|
|
|
|
*old = NULL;
|
|
|
|
|
|
|
|
|
|
|
|
for (pos = dirstart; pos != NULL; pos = pos->next)
|
|
|
|
for (pos = dirstart; pos != NULL; pos = pos->next)
|
|
|
|
if (pos->name[0] != '.' && (pos->flags & dirflags) != 0) {
|
|
|
|
if (pos->name[0] != '.' && (pos->flags & dirflags) != 0) {
|
|
|
@ -114,4 +124,3 @@ _direntry *s_dirfilter (_direntry *dirstart, signed char dirflags) {
|
|
|
|
|
|
|
|
|
|
|
|
return newstart;
|
|
|
|
return newstart;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|