diff options
Diffstat (limited to 'win32/runperl.c')
-rw-r--r-- | win32/runperl.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/win32/runperl.c b/win32/runperl.c index 36461bdc9e..17d2ac2a57 100644 --- a/win32/runperl.c +++ b/win32/runperl.c @@ -23,6 +23,12 @@ CPerlObj *pPerl; #include <ipproc.h> #include <ipstdio.h> +#define CALLFUNC0RET(x)\ + int ret = x;\ + if(ret < 0)\ + err = errno;\ + return ret; + extern int g_closedir(DIR *dirp); extern DIR *g_opendir(char *filename); extern struct direct *g_readdir(DIR *dirp); @@ -35,15 +41,15 @@ public: CPerlDir() {}; virtual int Makedir(const char *dirname, int mode, int &err) { - return win32_mkdir(dirname, mode); + CALLFUNC0RET(win32_mkdir(dirname, mode)); }; virtual int Chdir(const char *dirname, int &err) { - return win32_chdir(dirname); + CALLFUNC0RET(win32_chdir(dirname)); }; virtual int Rmdir(const char *dirname, int &err) { - return win32_rmdir(dirname); + CALLFUNC0RET(win32_rmdir(dirname)); }; virtual int Close(DIR *dirp, int &err) { |