mirror of
https://gitea.nishi.boats/pyrite-dev/milsko
synced 2026-01-06 01:19:44 +00:00
stuff
git-svn-id: http://svn2.nishi.boats/svn/milsko/trunk@345 b9cfdab3-6d41-4d17-bbe4-086880011989
This commit is contained in:
@@ -38,6 +38,14 @@ enum MwALIGNMENT {
|
||||
*/
|
||||
#define MwDEFAULT 0x0fffffff
|
||||
|
||||
/*!
|
||||
* %brief Directory entry type
|
||||
*/
|
||||
enum {
|
||||
MwDIRECTORY_FILE = 0,
|
||||
MwDIRECTORY_DIRECTORY
|
||||
};
|
||||
|
||||
/*!
|
||||
* %brief Icon mask
|
||||
*/
|
||||
|
||||
@@ -42,7 +42,6 @@ MWDECL char* MwIconQuestion[];
|
||||
*/
|
||||
MWDECL char* MwIconWarning[];
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
#include <dlfcn.h>
|
||||
#include <signal.h>
|
||||
#include <dirent.h>
|
||||
#include <sys/stat.h>
|
||||
#endif
|
||||
|
||||
#ifndef M_PI
|
||||
|
||||
@@ -139,7 +139,7 @@ struct _MwSizeHints {
|
||||
|
||||
struct _MwDirectoryEntry {
|
||||
char* name;
|
||||
unsigned long attribute;
|
||||
int type;
|
||||
};
|
||||
|
||||
#define MwCursorDataHeight 16
|
||||
|
||||
@@ -14,6 +14,7 @@ typedef struct dir {
|
||||
#else
|
||||
typedef struct dir {
|
||||
DIR* dir;
|
||||
char* base;
|
||||
} dir_t;
|
||||
#endif
|
||||
|
||||
@@ -35,6 +36,8 @@ void* MwDirectoryOpen(const char* path) {
|
||||
free(dir);
|
||||
return NULL;
|
||||
}
|
||||
dir->base = malloc(strlen(path) + 1);
|
||||
strcpy(dir->base, path);
|
||||
#endif
|
||||
|
||||
return dir;
|
||||
@@ -46,6 +49,7 @@ void MwDirectoryClose(void* handle) {
|
||||
FindClose(dir->hFind);
|
||||
#else
|
||||
closedir(dir->dir);
|
||||
free(dir->base);
|
||||
#endif
|
||||
free(handle);
|
||||
}
|
||||
@@ -62,14 +66,36 @@ MwDirectoryEntry* MwDirectoryRead(void* handle) {
|
||||
}
|
||||
entry->name = malloc(strlen(dir->ffd.cFileName) + 1);
|
||||
strcpy(entry->name, dir->ffd.cFileName);
|
||||
|
||||
if(dir->ffd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
|
||||
entry->type = MwDIRECTORY_DIRECTORY;
|
||||
} else {
|
||||
entry->type = MwDIRECTORY_FILE;
|
||||
}
|
||||
#else
|
||||
struct dirent* d;
|
||||
struct stat s;
|
||||
char* p;
|
||||
if((d = readdir(dir->dir)) == NULL) {
|
||||
free(entry);
|
||||
return NULL;
|
||||
}
|
||||
entry->name = malloc(strlen(d->d_name) + 1);
|
||||
strcpy(entry->name, d->d_name);
|
||||
|
||||
p = malloc(strlen(dir->base) + 1 + strlen(d->d_name) + 1);
|
||||
strcpy(p, dir->base);
|
||||
strcat(p, "/");
|
||||
strcat(p, d->d_name);
|
||||
|
||||
stat(p, &s);
|
||||
if(S_ISDIR(s.st_mode)) {
|
||||
entry->type = MwDIRECTORY_DIRECTORY;
|
||||
} else {
|
||||
entry->type = MwDIRECTORY_FILE;
|
||||
}
|
||||
|
||||
free(p);
|
||||
#endif
|
||||
|
||||
return entry;
|
||||
|
||||
@@ -45,5 +45,4 @@ char *MwIconError[] = {
|
||||
"..ooo.@@ .X.....o.@@@@ ...@@ ",
|
||||
" .oo.@ .XXXXooo.@@@ @@@ ",
|
||||
" ...@@ .ooooo.@@@ ",
|
||||
" @@@@ .....@@ "
|
||||
};
|
||||
" @@@@ .....@@ "};
|
||||
|
||||
@@ -41,5 +41,4 @@ char *MwIconInfo[] = {
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" "
|
||||
};
|
||||
" "};
|
||||
|
||||
@@ -43,5 +43,4 @@ char *MwIconNews[] = {
|
||||
" ..... ",
|
||||
" ",
|
||||
" ",
|
||||
" "
|
||||
};
|
||||
" "};
|
||||
|
||||
@@ -45,5 +45,4 @@ char *MwIconNote[] = {
|
||||
" .......+O+O+O.. ",
|
||||
" ..+OO..+O+.. ",
|
||||
" ...+..... ",
|
||||
" ..... "
|
||||
};
|
||||
" ..... "};
|
||||
|
||||
@@ -43,5 +43,4 @@ char *MwIconQuestion[] = {
|
||||
" XXXXooOOO ",
|
||||
" XoooOOOO ",
|
||||
" OOOOOO ",
|
||||
" OOOO "
|
||||
};
|
||||
" OOOO "};
|
||||
|
||||
@@ -43,5 +43,4 @@ char *MwIconWarning[] = {
|
||||
" .............................oo",
|
||||
" ...........................ooo",
|
||||
" ooooooooooooooooooooooooooo ",
|
||||
" "
|
||||
};
|
||||
" "};
|
||||
|
||||
Reference in New Issue
Block a user