diff options
Diffstat (limited to 'uisimulator/x11')
-rw-r--r-- | uisimulator/x11/dir.h | 2 | ||||
-rw-r--r-- | uisimulator/x11/io.c | 13 |
2 files changed, 15 insertions, 0 deletions
diff --git a/uisimulator/x11/dir.h b/uisimulator/x11/dir.h index 6b019c833e..17058eafb2 100644 --- a/uisimulator/x11/dir.h +++ b/uisimulator/x11/dir.h | |||
@@ -32,6 +32,7 @@ typedef void * MYDIR; | |||
32 | extern MYDIR *x11_opendir(char *name); | 32 | extern MYDIR *x11_opendir(char *name); |
33 | extern struct x11_dirent* x11_readdir(MYDIR* dir); | 33 | extern struct x11_dirent* x11_readdir(MYDIR* dir); |
34 | extern int x11_closedir(MYDIR *dir); | 34 | extern int x11_closedir(MYDIR *dir); |
35 | extern int x11_mkdir(char *name, int mode); | ||
35 | 36 | ||
36 | #ifndef NO_REDEFINES_PLEASE | 37 | #ifndef NO_REDEFINES_PLEASE |
37 | 38 | ||
@@ -40,6 +41,7 @@ extern int x11_closedir(MYDIR *dir); | |||
40 | #define opendir(x) x11_opendir(x) | 41 | #define opendir(x) x11_opendir(x) |
41 | #define readdir(x) x11_readdir(x) | 42 | #define readdir(x) x11_readdir(x) |
42 | #define closedir(x) x11_closedir(x) | 43 | #define closedir(x) x11_closedir(x) |
44 | #define mkdir(x, y) x11_mkdir(x, y) | ||
43 | 45 | ||
44 | #endif | 46 | #endif |
45 | 47 | ||
diff --git a/uisimulator/x11/io.c b/uisimulator/x11/io.c index 14d2bfa2c0..72a7319ec6 100644 --- a/uisimulator/x11/io.c +++ b/uisimulator/x11/io.c | |||
@@ -133,6 +133,19 @@ int x11_creat(const char *name, mode_t mode) | |||
133 | return (creat)(name, 0666); | 133 | return (creat)(name, 0666); |
134 | } | 134 | } |
135 | 135 | ||
136 | int x11_mkdir(const char *name, mode_t mode) | ||
137 | { | ||
138 | char buffer[256]; /* sufficiently big */ | ||
139 | (void)mode; | ||
140 | if(name[0] == '/') { | ||
141 | sprintf(buffer, "%s%s", SIMULATOR_ARCHOS_ROOT, name); | ||
142 | |||
143 | debugf("We create the real directory '%s'\n", buffer); | ||
144 | return (mkdir)(buffer, 0666); | ||
145 | } | ||
146 | return (mkdir)(name, 0666); | ||
147 | } | ||
148 | |||
136 | int x11_remove(char *name) | 149 | int x11_remove(char *name) |
137 | { | 150 | { |
138 | char buffer[256]; /* sufficiently big */ | 151 | char buffer[256]; /* sufficiently big */ |