[Patch Perl@12856] MULTIPLICITY on VMS
Charles Lane [Mon, 12 Nov 2001 12:35:18 +0000 (07:35 -0500)]
Message-Id: <011112123409.27041@DUPHY4.Physics.Drexel.Edu>

p4raw-id: //depot/perl@12958

ext/Cwd/Cwd.xs
perlio.c
vms/ext/Stdio/Stdio.xs
vms/gen_shrfls.pl
vms/sockadapt.c
vms/vms.c

index a82404f..19d3afd 100644 (file)
@@ -70,7 +70,8 @@ bsd_realpath(path, resolved)
        char *resolved;
 {
 #ifdef VMS
-       return Perl_rmsexpand((char*)path, resolved, NULL, 0);
+       dTHX;
+       return Perl_rmsexpand(aTHX_ (char*)path, resolved, NULL, 0);
 #else
        struct stat sb;
        int n, rootd, serrno;
index 1a21e25..8e8b859 100644 (file)
--- a/perlio.c
+++ b/perlio.c
 #define PERL_IN_PERLIO_C
 #include "perl.h"
 
+#ifdef PERL_IMPLICIT_CONTEXT
+#undef dSYS
+#define dSYS dTHX
+#endif
+
 #include "XSUB.h"
 
 int
index 64bd750..75d87b3 100644 (file)
@@ -174,7 +174,7 @@ binmode(fh)
            }
            /* appearances to the contrary, this is an freopen substitute */
            name = sv_2mortal(newSVpvn(filespec,strlen(filespec)));
-           if (PerlIO_openn(Nullch,acmode,-1,0,0,fp,1,&name) == Nullfp) XSRETURN_UNDEF;
+           if (PerlIO_openn(aTHX_ Nullch,acmode,-1,0,0,fp,1,&name) == Nullfp) XSRETURN_UNDEF;
            if (iotype != '-' && ret != -1 && PerlIO_setpos(fp,&pos) == -1) XSRETURN_UNDEF;
            if (ret == -1) { set_errno(saverrno); set_vaxc_errno(savevmserrno); }
            XSRETURN_YES;
index 07b6f8e..04161d4 100644 (file)
@@ -167,9 +167,9 @@ if ($use_mymalloc) {
 }
 
 if ($use_perlio) {
-  $preprocess_list = "${dir}perl.h,${dir}perliol.h";
+  $preprocess_list = "${dir}perl.h+${dir}perlapi.h,${dir}perliol.h";
 } else {
-  $preprocess_list = "${dir}perl.h";
+  $preprocess_list = "${dir}perl.h+${dir}perlapi.h";
 }
 
 $used_expectation_enum = $used_opcode_enum = 0; # avoid warnings
@@ -180,7 +180,7 @@ if ($docc) {
 else {
   open(CPP,"$cpp_file") or die "$0: Can't read preprocessed file $cpp_file: $!\n";
 }
-%checkh = map { $_,1 } qw( thread bytecode byterun proto perlio );
+%checkh = map { $_,1 } qw( thread bytecode byterun proto perlio perlvars intrpvar thrdvar );
 $ckfunc = 0;
 LINE: while (<CPP>) {
   while (/^#.*vmsish\.h/i .. /^#.*perl\.h/i) {
index b4a0534..e7b207c 100644 (file)
 #if ((((__VMS_VER >= 70000000) && (__DECC_VER >= 50200000)) || (__CRTL_VER >= 70000000)) && defined(DECCRTL_SOCKETS))
 #else
 void setnetent(int stayopen) {
-  croak("Function \"setnetent\" not implemented in this version of perl");
+  dTHX;
+  Perl_croak(aTHX_ "Function \"setnetent\" not implemented in this version of perl");
 }
 void endnetent() {
-  croak("Function \"endnetent\" not implemented in this version of perl");
+  dTHX;
+  Perl_croak(aTHX_ "Function \"endnetent\" not implemented in this version of perl");
 }
 #endif
 
@@ -49,29 +51,37 @@ void endnetent() {
 #if ((__VMS_VER >= 70000000) && (__DECC_VER >= 50200000)) || (__CRTL_VER >= 70000000)
 #else
   void sethostent(int stayopen) {
-    croak("Function \"sethostent\" not implemented in this version of perl");
+    dTHX;
+    Perl_croak(aTHX_ "Function \"sethostent\" not implemented in this version of perl");
   }
   void endhostent() {
-    croak("Function \"endhostent\" not implemented in this version of perl");
+    dTHX;
+    Perl_croak(aTHX_ "Function \"endhostent\" not implemented in this version of perl");
   }
   void setprotoent(int stayopen) {
-    croak("Function \"setprotoent\" not implemented in this version of perl");
+    dTHX;
+    Perl_croak(aTHX_ "Function \"setprotoent\" not implemented in this version of perl");
   }
   void endprotoent() {
-    croak("Function \"endprotoent\" not implemented in this version of perl");
+    dTHX;
+    Perl_croak(aTHX_ "Function \"endprotoent\" not implemented in this version of perl");
   }
   void setservent(int stayopen) {
-    croak("Function \"setservent\" not implemented in this version of perl");
+    dTHX;
+    Perl_croak(aTHX_ "Function \"setservent\" not implemented in this version of perl");
   }
   void endservent() {
-    croak("Function \"endservent\" not implemented in this version of perl");
+    dTHX;
+    Perl_croak(aTHX_ "Function \"endservent\" not implemented in this version of perl");
   }
   __sockadapt_my_hostent_t gethostent() {
-    croak("Function \"gethostent\" not implemented in this version of perl");
+    dTHX;
+    Perl_croak(aTHX_ "Function \"gethostent\" not implemented in this version of perl");
     return (__sockadapt_my_hostent_t )NULL; /* Avoid MISSINGRETURN warning, not reached */
   }
   __sockadapt_my_servent_t getservent() {
-    croak("Function \"getservent\" not implemented in this version of perl");
+    dTHX;
+    Perl_croak(aTHX_ "Function \"getservent\" not implemented in this version of perl");
     return (__sockadapt_my_servent_t )NULL; /* Avoid MISSINGRETURN warning, not reached */
   }
 #endif
@@ -80,15 +90,18 @@ void endnetent() {
     /* Work around things missing/broken in SOCKETSHR. */
 
 __sockadapt_my_netent_t getnetbyaddr( __sockadapt_my_addr_t net, int type) {
-  croak("Function \"getnetbyaddr\" not implemented in this version of perl");
+  dTHX;
+  Perl_croak(aTHX_ "Function \"getnetbyaddr\" not implemented in this version of perl");
   return (struct netent *)NULL; /* Avoid MISSINGRETURN warning, not reached */
 }
 __sockadapt_my_netent_t getnetbyname( __sockadapt_my_name_t name) {
-  croak("Function \"getnetbyname\" not implemented in this version of perl");
+  dTHX;
+  Perl_croak(aTHX_ "Function \"getnetbyname\" not implemented in this version of perl");
   return (struct netent *)NULL; /* Avoid MISSINGRETURN warning, not reached */
 }
 __sockadapt_my_netent_t getnetent() {
-  croak("Function \"getnetent\" not implemented in this version of perl");
+  dTHX;
+  Perl_croak(aTHX_ "Function \"getnetent\" not implemented in this version of perl");
   return (__sockadapt_my_netent_t )NULL; /* Avoid MISSINGRETURN warning, not reached */
 }
 
index 1150ea3..5ad498b 100644 (file)
--- a/vms/vms.c
+++ b/vms/vms.c
@@ -5917,7 +5917,7 @@ Perl_my_localtime(pTHX_ const time_t *timep)
 # endif
   dst = -1;
 #ifndef RTL_USES_UTC
-  if (tz_parse(&when, &dst, 0, &offset)) {   /* truelocal determines DST*/
+  if (tz_parse(aTHX_ &when, &dst, 0, &offset)) {   /* truelocal determines DST*/
       when = whenutc - offset;                   /* pseudolocal time*/
   }
 # endif