add dirent wrapper

git-svn-id: http://svn2.nishi.boats/svn/milsko/trunk@344 b9cfdab3-6d41-4d17-bbe4-086880011989
This commit is contained in:
NishiOwO
2025-10-15 16:17:47 +00:00
parent ba9b6750d5
commit f71ab6184b
20 changed files with 1229 additions and 987 deletions

81
src/directory.c Normal file
View File

@@ -0,0 +1,81 @@
/* $Id$ */
#include <Mw/Milsko.h>
#ifdef _WIN32
#include <windows.h>
#endif
#ifdef _WIN32
typedef struct dir {
HANDLE hFind;
WIN32_FIND_DATA ffd;
int first;
} dir_t;
#else
typedef struct dir {
DIR* dir;
} dir_t;
#endif
void* MwDirectoryOpen(const char* path) {
dir_t* dir = malloc(sizeof(*dir));
#ifdef _WIN32
char* p = malloc(strlen(path) + 2 + 1);
strcpy(p, path);
strcat(p, "/*");
if((dir->hFind = FindFirstFile(p, &dir->ffd)) == INVALID_HANDLE_VALUE) {
free(p);
free(dir);
return NULL;
}
free(p);
dir->first = 1;
#else
if((dir->dir = opendir(path)) == NULL) {
free(dir);
return NULL;
}
#endif
return dir;
}
void MwDirectoryClose(void* handle) {
dir_t* dir = handle;
#ifdef _WIN32
FindClose(dir->hFind);
#else
closedir(dir->dir);
#endif
free(handle);
}
MwDirectoryEntry* MwDirectoryRead(void* handle) {
dir_t* dir = handle;
MwDirectoryEntry* entry = malloc(sizeof(*entry));
#ifdef _WIN32
if(dir->first) {
dir->first = 0;
} else if(FindNextFile(dir->hFind, &dir->ffd) == 0) {
free(entry);
return NULL;
}
entry->name = malloc(strlen(dir->ffd.cFileName) + 1);
strcpy(entry->name, dir->ffd.cFileName);
#else
struct dirent* d;
if((d = readdir(dir->dir)) == NULL) {
free(entry);
return NULL;
}
entry->name = malloc(strlen(d->d_name) + 1);
strcpy(entry->name, d->d_name);
#endif
return entry;
}
void MwDirectoryFreeEntry(MwDirectoryEntry* entry) {
free(entry->name);
free(entry);
}

View File

@@ -2,47 +2,48 @@
#include <Mw/Milsko.h>
/* XPM */
char* MwIconError[] = {
/* columns rows colors chars-per-pixel */
"32 32 8 1 ",
" c None",
". c black",
"X c white",
"o c gray",
"O c gainsboro",
"+ c lavender",
"@ c DarkSlateGray",
"# c SlateGray",
/* pixels */
" ... ... ",
" .Xo. .XX. ",
"..XXo. .XXX..",
".XXoo. .XXOo.",
".XXooo. ......... .XOooo.",
" ...Xoo...O+++++++o.. .Xoo...@",
" .Xo.#O++XXXXX++Oo. .Xoo.@@@@",
" ..#OO+XXXXXX+OOOo.#oo.@@ ",
" .OOO+XXXXX++OOOo.@#.@@ ",
" .#OOO+XXXX++OOOoo#..@@ ",
" .#OOO+XX+++OOOOoo#.@@ ",
" .#ooo+++++OOOOo###.@@@ ",
" .ooXXXXX+OOO++++##.@@@ ",
" .oXXOOOOOOO++OOoo#.@@@ ",
" .oo...OOOOO...oo..@@@ ",
" .o.....ooo.....o.@@@@ ",
" .X.....ooo...@#o.@@@ ",
" .oX@@@@.Xoo.@##@oo.@@ ",
" .OXo@@.Xo.oX.@@oXo.@@@ ",
" .OOXXXXo...oXXXOoo.@@@ ",
" ..oOOXo.o.oOOOo..@.@@ ",
" ..oOOo.o.oOOo..@##.@ ",
" ..o.oXXXXXOOo.o..###. ",
" .oo.o.@oXXo...o.@@.#oX... ",
" .XXo.X@o....@o.o.@@@.ooXXX. ",
" ...XXo..X@X@o@o@X.o.@@@ .oXoo. ",
".XXXoo.@@.X.@X@X@.o.@@@@ .Xoo..@",
".XXXo.@@@.X.@o@o@.o.@@@ .oo.@@@",
"..ooo.@@ .X.....o.@@@@ ...@@ ",
" .oo.@ .XXXXooo.@@@ @@@ ",
" ...@@ .ooooo.@@@ ",
" @@@@ .....@@ "};
char *MwIconError[] = {
/* columns rows colors chars-per-pixel */
"32 32 8 1 ",
" c None",
". c black",
"X c white",
"o c gray",
"O c gainsboro",
"+ c lavender",
"@ c DarkSlateGray",
"# c SlateGray",
/* pixels */
" ... ... ",
" .Xo. .XX. ",
"..XXo. .XXX..",
".XXoo. .XXOo.",
".XXooo. ......... .XOooo.",
" ...Xoo...O+++++++o.. .Xoo...@",
" .Xo.#O++XXXXX++Oo. .Xoo.@@@@",
" ..#OO+XXXXXX+OOOo.#oo.@@ ",
" .OOO+XXXXX++OOOo.@#.@@ ",
" .#OOO+XXXX++OOOoo#..@@ ",
" .#OOO+XX+++OOOOoo#.@@ ",
" .#ooo+++++OOOOo###.@@@ ",
" .ooXXXXX+OOO++++##.@@@ ",
" .oXXOOOOOOO++OOoo#.@@@ ",
" .oo...OOOOO...oo..@@@ ",
" .o.....ooo.....o.@@@@ ",
" .X.....ooo...@#o.@@@ ",
" .oX@@@@.Xoo.@##@oo.@@ ",
" .OXo@@.Xo.oX.@@oXo.@@@ ",
" .OOXXXXo...oXXXOoo.@@@ ",
" ..oOOXo.o.oOOOo..@.@@ ",
" ..oOOo.o.oOOo..@##.@ ",
" ..o.oXXXXXOOo.o..###. ",
" .oo.o.@oXXo...o.@@.#oX... ",
" .XXo.X@o....@o.o.@@@.ooXXX. ",
" ...XXo..X@X@o@o@X.o.@@@ .oXoo. ",
".XXXoo.@@.X.@X@X@.o.@@@@ .Xoo..@",
".XXXo.@@@.X.@o@o@.o.@@@ .oo.@@@",
"..ooo.@@ .X.....o.@@@@ ...@@ ",
" .oo.@ .XXXXooo.@@@ @@@ ",
" ...@@ .ooooo.@@@ ",
" @@@@ .....@@ "
};

View File

@@ -2,43 +2,44 @@
#include <Mw/Milsko.h>
/* XPM */
char* MwIconInfo[] = {
/* columns rows colors chars-per-pixel */
"32 32 4 1 ",
" c None",
". c blue",
"X c DarkSlateGray",
"o c #6632F7",
/* pixels */
" ",
" ",
" ",
" ",
" ",
" ..... ",
" ....... ",
" .....XX ",
" XXXXX ",
" ",
" ",
" ...... ",
" .......XX ",
" ..........XX ",
" XXX.....XX ",
" .....XX ",
" .....XX ",
" .....XX ",
" .....XX ",
" .....XX ",
" .....XX ",
" ....XX ",
" ....XX ",
" ....XX . ",
" ....X ...XX ",
" .......XXX ",
" XXXXXXX ",
" ",
" ",
" ",
" ",
" "};
char *MwIconInfo[] = {
/* columns rows colors chars-per-pixel */
"32 32 4 1 ",
" c None",
". c blue",
"X c DarkSlateGray",
"o c #6632F7",
/* pixels */
" ",
" ",
" ",
" ",
" ",
" ..... ",
" ....... ",
" .....XX ",
" XXXXX ",
" ",
" ",
" ...... ",
" .......XX ",
" ..........XX ",
" XXX.....XX ",
" .....XX ",
" .....XX ",
" .....XX ",
" .....XX ",
" .....XX ",
" .....XX ",
" ....XX ",
" ....XX ",
" ....XX . ",
" ....X ...XX ",
" .......XXX ",
" XXXXXXX ",
" ",
" ",
" ",
" ",
" "
};

View File

@@ -2,45 +2,46 @@
#include <Mw/Milsko.h>
/* XPM */
char* MwIconNews[] = {
/* columns rows colors chars-per-pixel */
"32 32 6 1 ",
" c None",
". c black",
"X c white",
"o c SlateGray",
"O c gray",
"+ c #6632F7",
/* pixels */
" ",
" ",
" ",
" ... ",
" .XXX.. ",
" .XX.XXX.. ",
" .XX..X.XXX.. ",
" .XX.X..XX.oXX.. ",
" .XX.XX.XX.Xo.XXX.. ",
" .XOXXX.XX.O.XX.XXXX.. ",
" .XXo.oXXX.oXXX.XoXoXXX.. ",
" .XOXXXo.OXXO.X.Xo.X.X.oXX.. ",
" .XXo.oXXXO.oXXX...X.X.Xo.XXX.",
" .XOXXXo.OXXXo.oXXX..XXX.XXXX.O",
" .XXo.oXXXO.oXXXOX.XXX.oX.XXX.O.",
".oOXXXo.OXXXo.oXX.X..XXo.XXX.O.O",
".Xo.oXXXO.oXXXOX.OXXX..XXXX.O.O.",
".XXXo.OXXXo.oXX.OOOOXXX.XX.O.O.O",
".O.oXXO.oXXXOX.oooOOOO.XX.O.O.O.",
".oOO.oXXo.oXXX..ooooO.XX.O.O.O. ",
" ..oOOOoXXoOOXXX..oo.XX.O.O.O. ",
" ..oOO.oXXO.oXXX..XX.O.O.O. ",
" ..oOO.oXXo.oXXXX.O.O.O. ",
" ..oOXOoXXo.XX.O.O.O. ",
" ..oOo.oXXX.O.O.O. ",
" ..oOO.X.O.O.O. ",
" ..oOO.O..O. ",
" ..o.oOO. ",
" ..... ",
" ",
" ",
" "};
char *MwIconNews[] = {
/* columns rows colors chars-per-pixel */
"32 32 6 1 ",
" c None",
". c black",
"X c white",
"o c SlateGray",
"O c gray",
"+ c #6632F7",
/* pixels */
" ",
" ",
" ",
" ... ",
" .XXX.. ",
" .XX.XXX.. ",
" .XX..X.XXX.. ",
" .XX.X..XX.oXX.. ",
" .XX.XX.XX.Xo.XXX.. ",
" .XOXXX.XX.O.XX.XXXX.. ",
" .XXo.oXXX.oXXX.XoXoXXX.. ",
" .XOXXXo.OXXO.X.Xo.X.X.oXX.. ",
" .XXo.oXXXO.oXXX...X.X.Xo.XXX.",
" .XOXXXo.OXXXo.oXXX..XXX.XXXX.O",
" .XXo.oXXXO.oXXXOX.XXX.oX.XXX.O.",
".oOXXXo.OXXXo.oXX.X..XXo.XXX.O.O",
".Xo.oXXXO.oXXXOX.OXXX..XXXX.O.O.",
".XXXo.OXXXo.oXX.OOOOXXX.XX.O.O.O",
".O.oXXO.oXXXOX.oooOOOO.XX.O.O.O.",
".oOO.oXXo.oXXX..ooooO.XX.O.O.O. ",
" ..oOOOoXXoOOXXX..oo.XX.O.O.O. ",
" ..oOO.oXXO.oXXX..XX.O.O.O. ",
" ..oOO.oXXo.oXXXX.O.O.O. ",
" ..oOXOoXXo.XX.O.O.O. ",
" ..oOo.oXXX.O.O.O. ",
" ..oOO.X.O.O.O. ",
" ..oOO.O..O. ",
" ..o.oOO. ",
" ..... ",
" ",
" ",
" "
};

View File

@@ -2,47 +2,48 @@
#include <Mw/Milsko.h>
/* XPM */
char* MwIconNote[] = {
/* columns rows colors chars-per-pixel */
"32 32 8 1 ",
" c None",
". c black",
"X c red",
"o c magenta",
"O c white",
"+ c yellow",
"@ c gray",
"# c #6632F7",
/* pixels */
" ..... ",
" .XXXXX. ",
" .XXXXXXX. ",
" .XXXXXXo. ",
" .XooOOoX. .. ",
" .XXOOX. ..+O. ",
" ..... ..O+O+. ",
" ..XXX....+O+O+O+. ",
" .X.XXO.X.+O+O+O+O. ",
" .XX.XXo.Xo.+O+O+O+O. ",
" .XXX...XXo.O+O+O+O+. ",
" .XoXXXXXoX.+O+O+O+O+. ",
" ..XXooOOoXX.O+O+O+O+O. ",
"..@..XXXXXXX.O+O+O+O+O+O. ",
".@@@........O+O+O+O+O+O+. ",
" .@.@.@..O+O+O+O+O+@@O+O+. ",
" .@@.@.@.+O+O+O+O@@+O+O+O. ",
" .@@.@.@O+O+@+@@O+O+O+O+O. ",
" .@@@.@O+O+O@@+O@O+O@@+O+. ",
" .@O+O+O+@@O+O+O+@@O+O+O+. ",
" .@@O+O@@+@@O+O@@+O@O+O+O+. ",
" .@+O+O+O+O+@@O+O+O+O@@+O+...",
" .@@+O+O+@@@+O+O+O+@@O+O+O+O.",
" .@O+O@@+O+@+@+O@@+O+O+O+O. ",
" .@@O+O+O+O+O+@@O+@+O+O+O. ",
" .@+O+O+O+O@@+O+O+O+O+.. ",
" ..@+O+O+O+O+O+O+O+O.. ",
" ....O+O+O+O+O+O+.. ",
" .......+O+O+O.. ",
" ..+OO..+O+.. ",
" ...+..... ",
" ..... "};
char *MwIconNote[] = {
/* columns rows colors chars-per-pixel */
"32 32 8 1 ",
" c None",
". c black",
"X c red",
"o c magenta",
"O c white",
"+ c yellow",
"@ c gray",
"# c #6632F7",
/* pixels */
" ..... ",
" .XXXXX. ",
" .XXXXXXX. ",
" .XXXXXXo. ",
" .XooOOoX. .. ",
" .XXOOX. ..+O. ",
" ..... ..O+O+. ",
" ..XXX....+O+O+O+. ",
" .X.XXO.X.+O+O+O+O. ",
" .XX.XXo.Xo.+O+O+O+O. ",
" .XXX...XXo.O+O+O+O+. ",
" .XoXXXXXoX.+O+O+O+O+. ",
" ..XXooOOoXX.O+O+O+O+O. ",
"..@..XXXXXXX.O+O+O+O+O+O. ",
".@@@........O+O+O+O+O+O+. ",
" .@.@.@..O+O+O+O+O+@@O+O+. ",
" .@@.@.@.+O+O+O+O@@+O+O+O. ",
" .@@.@.@O+O+@+@@O+O+O+O+O. ",
" .@@@.@O+O+O@@+O@O+O@@+O+. ",
" .@O+O+O+@@O+O+O+@@O+O+O+. ",
" .@@O+O@@+@@O+O@@+O@O+O+O+. ",
" .@+O+O+O+O+@@O+O+O+O@@+O+...",
" .@@+O+O+@@@+O+O+O+@@O+O+O+O.",
" .@O+O@@+O+@+@+O@@+O+O+O+O. ",
" .@@O+O+O+O+O+@@O+@+O+O+O. ",
" .@+O+O+O+O@@+O+O+O+O+.. ",
" ..@+O+O+O+O+O+O+O+O.. ",
" ....O+O+O+O+O+O+.. ",
" .......+O+O+O.. ",
" ..+OO..+O+.. ",
" ...+..... ",
" ..... "
};

View File

@@ -2,45 +2,46 @@
#include <Mw/Milsko.h>
/* XPM */
char* MwIconQuestion[] = {
/* columns rows colors chars-per-pixel */
"32 32 6 1 ",
" c None",
". c orange",
"X c red",
"o c firebrick",
"O c SlateGray",
"+ c lavender",
/* pixels */
" ",
" ........... ",
" ..XXXXXXXXXXXXX ",
" .XXXXXoooooooooXXO ",
" .XXXXoooooooooooooXO ",
" .XXXXooooXXXXoooooooXO ",
" .XXXXooooOOO XXooooooooO ",
" .XXXXooooOOO XXoooooooOO ",
" .XXXoooooOO .XXooooooOO ",
" .XXXooooooO .XXooooooOO ",
" XXXooooooOO .XXooooooOO ",
" XXooooooOO .XXXooooooOO ",
" XXooooOOO .XXooooooOOO ",
" XXooOOO .XXooooooOOO ",
" OOOOO .XXooooooOOOO ",
" OOO .XXooooooOOOO ",
" .XXoooooOOOOO ",
" .XXoooooOOOO ",
" .XXoooooOOOO ",
" .XXooooOOOO ",
" XXoooOOOO ",
" XXoOOOO ",
" OOOOO ",
" .XXooO ",
" .X.XXoo ",
" .X.X.XXoo ",
" .XX.XXXooO ",
" XXXXXXooOO ",
" XXXXooOOO ",
" XoooOOOO ",
" OOOOOO ",
" OOOO "};
char *MwIconQuestion[] = {
/* columns rows colors chars-per-pixel */
"32 32 6 1 ",
" c None",
". c orange",
"X c red",
"o c firebrick",
"O c SlateGray",
"+ c lavender",
/* pixels */
" ",
" ........... ",
" ..XXXXXXXXXXXXX ",
" .XXXXXoooooooooXXO ",
" .XXXXoooooooooooooXO ",
" .XXXXooooXXXXoooooooXO ",
" .XXXXooooOOO XXooooooooO ",
" .XXXXooooOOO XXoooooooOO ",
" .XXXoooooOO .XXooooooOO ",
" .XXXooooooO .XXooooooOO ",
" XXXooooooOO .XXooooooOO ",
" XXooooooOO .XXXooooooOO ",
" XXooooOOO .XXooooooOOO ",
" XXooOOO .XXooooooOOO ",
" OOOOO .XXooooooOOOO ",
" OOO .XXooooooOOOO ",
" .XXoooooOOOOO ",
" .XXoooooOOOO ",
" .XXoooooOOOO ",
" .XXooooOOOO ",
" XXoooOOOO ",
" XXoOOOO ",
" OOOOO ",
" .XXooO ",
" .X.XXoo ",
" .X.X.XXoo ",
" .XX.XXXooO ",
" XXXXXXooOO ",
" XXXXooOOO ",
" XoooOOOO ",
" OOOOOO ",
" OOOO "
};

View File

@@ -2,45 +2,46 @@
#include <Mw/Milsko.h>
/* XPM */
char* MwIconWarning[] = {
/* columns rows colors chars-per-pixel */
"32 32 6 1 ",
" c None",
". c red",
"X c yellow",
"o c DarkSlateGray",
"O c black",
"+ c #6632F7",
/* pixels */
" ",
" ",
" ... ",
" ..... ",
" ..X..oo ",
" ..XXX..oo ",
" ..XXX..oo ",
" ..XXXXX..oo ",
" ..XXXXX..oo ",
" ..XXOOOXX..oo ",
" ..XOOOOOX..oo ",
" ..XXOOOOOXX..oo ",
" ..XXOOOOOXX..oo ",
" ..XXXOOOOOXXX..oo ",
" ..XXXOOOOOXXX..oo ",
" ..XXXXOOOOOXXXX..oo ",
" ..XXXXOOOOOXXXX..oo ",
" ..XXXXXOOOOOXXXXX..oo ",
" ..XXXXXXOOOXXXXXX..oo ",
" ..XXXXXXXOOOXXXXXXX..oo ",
" ..XXXXXXXOOOXXXXXXX..oo ",
" ..XXXXXXXXOOOXXXXXXXX..oo ",
" ..XXXXXXXXXXXXXXXXXXX..oo ",
" ..XXXXXXXXXOOOXXXXXXXXX..oo ",
" ..XXXXXXXXOOOOOXXXXXXXX..oo ",
" ..XXXXXXXXXOOOOOXXXXXXXXX..oo ",
" ..XXXXXXXXXXOOOXXXXXXXXXX..oo ",
" ..XXXXXXXXXXXXXXXXXXXXXXXXX..oo",
" .............................oo",
" ...........................ooo",
" ooooooooooooooooooooooooooo ",
" "};
char *MwIconWarning[] = {
/* columns rows colors chars-per-pixel */
"32 32 6 1 ",
" c None",
". c red",
"X c yellow",
"o c DarkSlateGray",
"O c black",
"+ c #6632F7",
/* pixels */
" ",
" ",
" ... ",
" ..... ",
" ..X..oo ",
" ..XXX..oo ",
" ..XXX..oo ",
" ..XXXXX..oo ",
" ..XXXXX..oo ",
" ..XXOOOXX..oo ",
" ..XOOOOOX..oo ",
" ..XXOOOOOXX..oo ",
" ..XXOOOOOXX..oo ",
" ..XXXOOOOOXXX..oo ",
" ..XXXOOOOOXXX..oo ",
" ..XXXXOOOOOXXXX..oo ",
" ..XXXXOOOOOXXXX..oo ",
" ..XXXXXOOOOOXXXXX..oo ",
" ..XXXXXXOOOXXXXXX..oo ",
" ..XXXXXXXOOOXXXXXXX..oo ",
" ..XXXXXXXOOOXXXXXXX..oo ",
" ..XXXXXXXXOOOXXXXXXXX..oo ",
" ..XXXXXXXXXXXXXXXXXXX..oo ",
" ..XXXXXXXXXOOOXXXXXXXXX..oo ",
" ..XXXXXXXXOOOOOXXXXXXXX..oo ",
" ..XXXXXXXXXOOOOOXXXXXXXXX..oo ",
" ..XXXXXXXXXXOOOXXXXXXXXXX..oo ",
" ..XXXXXXXXXXXXXXXXXXXXXXXXX..oo",
" .............................oo",
" ...........................ooo",
" ooooooooooooooooooooooooooo ",
" "
};