[win32] add AS patch#24, remove one other instance of error_no
authorGurusamy Sarathy <gsar@cpan.org>
Wed, 3 Jun 1998 22:12:55 +0000 (22:12 +0000)
committerGurusamy Sarathy <gsar@cpan.org>
Wed, 3 Jun 1998 22:12:55 +0000 (22:12 +0000)
that was missed (patch#23 was intentionally skipped)

p4raw-id: //depot/win32/perl@1071

embedvar.h
globals.c
perlvars.h
win32/makedef.pl
win32/runperl.c

index a74b4e4..6cb5972 100644 (file)
 #define do_undump              (Perl_Vars.Gdo_undump)
 #define egid                   (Perl_Vars.Gegid)
 #define error_count            (Perl_Vars.Gerror_count)
-#define error_no               (Perl_Vars.Gerror_no)
 #define euid                   (Perl_Vars.Geuid)
 #define eval_cond              (Perl_Vars.Geval_cond)
 #define eval_mutex             (Perl_Vars.Geval_mutex)
 #define Gdo_undump             do_undump
 #define Gegid                  egid
 #define Gerror_count           error_count
-#define Gerror_no              error_no
 #define Geuid                  euid
 #define Geval_cond             eval_cond
 #define Geval_mutex            eval_mutex
 #define do_undump              Perl_do_undump
 #define egid                   Perl_egid
 #define error_count            Perl_error_count
-#define error_no               Perl_error_no
 #define euid                   Perl_euid
 #define eval_cond              Perl_eval_cond
 #define eval_mutex             Perl_eval_mutex
index 1fd3f1e..1daf4f1 100644 (file)
--- a/globals.c
+++ b/globals.c
@@ -1438,7 +1438,7 @@ CPerlObj::operator new(size_t nSize, IPerlMem *pvtbl)
 int&
 CPerlObj::ErrorNo(void)
 {
-    return error_no;
+    return errno;
 }
 
 void
index 9f801fb..954a99f 100644 (file)
@@ -25,11 +25,6 @@ PERLVARI(Gthreadsv_names,    char *, THREADSV_NAMES)
 PERLVAR(Gcurthr,       struct perl_thread *)   /* Currently executing (fake) thread */
 #endif
 #endif /* USE_THREADS */
-#ifdef PERL_OBJECT
-#ifdef WIN32
-PERLVAR(Gerror_no,    int)     /* errno for each interpreter */
-#endif
-#endif
 
 PERLVAR(Guid,  int)            /* current real user id */
 PERLVAR(Geuid, int)            /* current effective user id */
index 1b45f73..237c950 100644 (file)
@@ -112,7 +112,6 @@ Perl_dump_packsubs
 Perl_dump_pm
 Perl_dump_sub
 Perl_expectterm
-Perl_error_no
 Perl_extralen
 Perl_fetch_gv
 Perl_fetch_io
index 36461bd..17d2ac2 100644 (file)
@@ -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)
     {