tweaks to enable PERL_OBJECT to build & test on win32
Gurusamy Sarathy [Fri, 25 Sep 1998 00:20:07 +0000 (00:20 +0000)]
p4raw-id: //depot/perl@1879

Changes
doop.c
mg.c
objpp.h
proto.h
regexec.c
util.c
win32/GenCAPI.pl

diff --git a/Changes b/Changes
index 843ef45..42e1498 100644 (file)
--- a/Changes
+++ b/Changes
@@ -78,6 +78,46 @@ Version 5.005_52        Development release working toward 5.006
 ----------------
 
 ____________________________________________________________________________
+[  1876] By: gsar                                  on 1998/09/24  09:04:43
+        Log: From: Colin Kuskie <ckuskie@cadence.com>
+             Date: Wed, 26 Aug 1998 14:53:01 -0700 (PDT)
+             Message-ID: <Pine.GSO.3.96.980826143507.3258K-100000@pdxmail.cadence.com>
+             Subject: [PATCH 5.005_51] perlform.pod
+     Branch: perl
+           ! pod/perlform.pod
+____________________________________________________________________________
+[  1875] By: gsar                                  on 1998/09/24  08:47:47
+        Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Date: Tue, 25 Aug 1998 15:35:58 -0400 (EDT)
+             Message-Id: <199808251935.PAA11384@monk.mps.ohio-state.edu>
+             Subject: Re: problem with (?p{}) [PATCH 5.005_5*]
+     Branch: perl
+           ! regexec.c
+____________________________________________________________________________
+[  1874] By: gsar                                  on 1998/09/24  08:44:55
+        Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Date: Tue, 25 Aug 1998 14:56:06 -0400 (EDT)
+             Message-Id: <199808251856.OAA10825@monk.mps.ohio-state.edu>
+             Subject: Re: your Regexp.patch dated 21.8 [PATCH]
+     Branch: perl
+           ! toke.c
+____________________________________________________________________________
+[  1873] By: gsar                                  on 1998/09/24  08:39:41
+        Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Date: Tue, 25 Aug 1998 04:29:49 -0400 (EDT)
+             Message-Id: <199808250829.EAA02470@monk.mps.ohio-state.edu>
+             Subject: [PATCH 5.005_*] Extraneous warning for (?()A|B)
+     Branch: perl
+           ! Changes regcomp.c
+____________________________________________________________________________
+[  1872] By: gsar                                  on 1998/09/24  08:37:00
+        Log: From: Krishna Sethuraman <krishpl@shamu.engr.sgi.com>
+             Date: Sun, 23 Aug 1998 23:18:38 PDT
+             Message-Id: <199808240618.XAA05329@shamu.engr.sgi.com>
+             Subject: new irix_6.sh hints file
+     Branch: perl
+           ! hints/irix_6.sh
+____________________________________________________________________________
 [  1871] By: gsar                                  on 1998/09/24  07:26:37
         Log: correct FSF address in various places
      Branch: perl
diff --git a/doop.c b/doop.c
index a3663f9..8502d1a 100644 (file)
--- a/doop.c
+++ b/doop.c
 #include <signal.h>
 #endif
 
-static I32
+#ifndef PERL_OBJECT
+static I32 do_trans_CC_simple _((SV *sv));
+static I32 do_trans_CC_count _((SV *sv));
+static I32 do_trans_CC_complex _((SV *sv));
+static I32 do_trans_UU_simple _((SV *sv));
+static I32 do_trans_UU_count _((SV *sv));
+static I32 do_trans_UU_complex _((SV *sv));
+static I32 do_trans_UC_simple _((SV *sv));
+static I32 do_trans_CU_simple _((SV *sv));
+static I32 do_trans_UC_trivial _((SV *sv));
+static I32 do_trans_CU_trivial _((SV *sv));
+#endif
+
+STATIC I32
 do_trans_CC_simple(SV *sv)
 {
     dTHR;
@@ -48,7 +61,7 @@ do_trans_CC_simple(SV *sv)
     return matches;
 }
 
-static I32
+STATIC I32
 do_trans_CC_count(SV *sv)
 {
     dTHR;
@@ -74,7 +87,7 @@ do_trans_CC_count(SV *sv)
     return matches;
 }
 
-static I32
+STATIC I32
 do_trans_CC_complex(SV *sv)
 {
     dTHR;
@@ -131,7 +144,7 @@ do_trans_CC_complex(SV *sv)
     return matches;
 }
 
-static I32
+STATIC I32
 do_trans_UU_simple(SV *sv)
 {
     dTHR;
@@ -183,7 +196,7 @@ do_trans_UU_simple(SV *sv)
     return matches;
 }
 
-static I32
+STATIC I32
 do_trans_UU_count(SV *sv)
 {
     dTHR;
@@ -211,7 +224,7 @@ do_trans_UU_count(SV *sv)
     return matches;
 }
 
-static I32
+STATIC I32
 do_trans_UC_simple(SV *sv)
 {
     dTHR;
@@ -264,7 +277,7 @@ do_trans_UC_simple(SV *sv)
     return matches;
 }
 
-static I32
+STATIC I32
 do_trans_CU_simple(SV *sv)
 {
     dTHR;
@@ -327,7 +340,7 @@ do_trans_CU_simple(SV *sv)
 
 /* utf-8 to latin-1 */
 
-static I32
+STATIC I32
 do_trans_UC_trivial(SV *sv)
 {
     dTHR;
@@ -359,7 +372,7 @@ do_trans_UC_trivial(SV *sv)
 
 /* latin-1 to utf-8 */
 
-static I32
+STATIC I32
 do_trans_CU_trivial(SV *sv)
 {
     dTHR;
@@ -393,7 +406,7 @@ do_trans_CU_trivial(SV *sv)
     return matches;
 }
 
-static I32
+STATIC I32
 do_trans_UU_complex(SV *sv)
 {
     dTHR;
diff --git a/mg.c b/mg.c
index e7472a6..90bea2b 100644 (file)
--- a/mg.c
+++ b/mg.c
@@ -307,7 +307,7 @@ mg_free(SV *sv)
 #include <signal.h>
 #endif
 
-int
+U32
 magic_regdata_cnt(SV *sv, MAGIC *mg)
 {
     dTHR;
@@ -318,7 +318,7 @@ magic_regdata_cnt(SV *sv, MAGIC *mg)
 
     if (PL_curpm && (rx = PL_curpm->op_pmregexp))
        return rx->lastparen;
-    return -1;
+    return (U32)-1;
 }
 
 int
diff --git a/objpp.h b/objpp.h
index 005d472..8bab61a 100644 (file)
--- a/objpp.h
+++ b/objpp.h
 #define regcppush         CPerlObj::regcppush
 #undef  regcppop
 #define regcppop          CPerlObj::regcppop
+#undef  regcp_set_to
+#define regcp_set_to      CPerlObj::regcp_set_to
+#undef  cache_re
+#define cache_re          CPerlObj::cache_re
 #undef  reghop
 #define reghop            CPerlObj::reghop
 #undef  reghopmaybe
 #undef  to_utf8_upper
 #define to_utf8_upper       CPerlObj::Perl_to_utf8_upper
 
+#undef do_trans_CC_simple
+#define do_trans_CC_simple     CPerlObj::do_trans_CC_simple
+#undef do_trans_CC_count
+#define do_trans_CC_count      CPerlObj::do_trans_CC_count
+#undef do_trans_CC_complex
+#define do_trans_CC_complex    CPerlObj::do_trans_CC_complex
+#undef do_trans_UU_simple
+#define do_trans_UU_simple     CPerlObj::do_trans_UU_simple
+#undef do_trans_UU_count
+#define do_trans_UU_count      CPerlObj::do_trans_UU_count
+#undef do_trans_UU_complex
+#define do_trans_UU_complex    CPerlObj::do_trans_UU_complex
+#undef do_trans_UC_simple
+#define do_trans_UC_simple     CPerlObj::do_trans_UC_simple
+#undef do_trans_CU_simple
+#define do_trans_CU_simple     CPerlObj::do_trans_CU_simple
+#undef do_trans_UC_trivial
+#define do_trans_UC_trivial    CPerlObj::do_trans_UC_trivial
+#undef do_trans_CU_trivial
+#define do_trans_CU_trivial    CPerlObj::do_trans_CU_trivial
+
 #undef  too_few_arguments
 #define too_few_arguments CPerlObj::Perl_too_few_arguments
 #undef  too_many_arguments
diff --git a/proto.h b/proto.h
index c294d30..e1406f6 100644 (file)
--- a/proto.h
+++ b/proto.h
@@ -267,7 +267,7 @@ VIRTUAL U32 magic_len       _((SV* sv, MAGIC* mg));
 VIRTUAL int    magic_mutexfree _((SV* sv, MAGIC* mg));
 #endif /* USE_THREADS */
 VIRTUAL int    magic_nextpack  _((SV* sv, MAGIC* mg, SV* key));
-VIRTUAL int    magic_regdata_cnt       _((SV* sv, MAGIC* mg));
+VIRTUAL U32    magic_regdata_cnt       _((SV* sv, MAGIC* mg));
 VIRTUAL int    magic_regdatum_get      _((SV* sv, MAGIC* mg));
 VIRTUAL int    magic_set       _((SV* sv, MAGIC* mg));
 #ifdef OVERLOAD
@@ -735,7 +735,7 @@ void visit _((SVFUNC f));
 typedef I32 (CPerlObj::*SVCOMPARE) _((SV*, SV*));
 void qsortsv _((SV ** array, size_t num_elts, SVCOMPARE f));
 I32 sortcv _((SV *a, SV *b));
-void save_magic _((MGS *mgs, SV *sv));
+void save_magic _((I32 mgs_ix, SV *sv));
 int magic_methpack _((SV *sv, MAGIC *mg, char *meth));
 int magic_methcall _((MAGIC *mg, char *meth, I32 flags, int n, SV *val));
 OP * doform _((CV *cv, GV *gv, OP *retop));
@@ -863,6 +863,8 @@ bool reginclass _((char *p, I32 c));
 bool reginclassutf8 _((regnode *f, U8* p));
 CHECKPOINT regcppush _((I32 parenfloor));
 char * regcppop _((void));
+char * regcp_set_to _((I32 ss));
+void cache_re _((regexp *prog));
 U8 * reghop _((U8 *pos, I32 off));
 U8 * reghopmaybe _((U8 *pos, I32 off));
 void dump _((char *pat,...));
@@ -878,6 +880,17 @@ void debprof _((OP *o));
 void *bset_obj_store _((void *obj, I32 ix));
 OP *new_logop _((I32 type, I32 flags, OP **firstp, OP **otherp));
 
+I32 do_trans_CC_simple _((SV *sv));
+I32 do_trans_CC_count _((SV *sv));
+I32 do_trans_CC_complex _((SV *sv));
+I32 do_trans_UU_simple _((SV *sv));
+I32 do_trans_UU_count _((SV *sv));
+I32 do_trans_UU_complex _((SV *sv));
+I32 do_trans_UC_simple _((SV *sv));
+I32 do_trans_CU_simple _((SV *sv));
+I32 do_trans_UC_trivial _((SV *sv));
+I32 do_trans_CU_trivial _((SV *sv));
+
 #define PPDEF(s) OP* CPerlObj::s _((ARGSproto));
 public:
 
index d4e1fc4..a529e86 100644 (file)
--- a/regexec.c
+++ b/regexec.c
@@ -107,6 +107,8 @@ static bool reginclass _((char *p, I32 c));
 static bool reginclassutf8 _((regnode *f, U8* p));
 static CHECKPOINT regcppush _((I32 parenfloor));
 static char * regcppop _((void));
+static char * regcp_set_to _((I32 ss));
+static void cache_re _((regexp *prog));
 #endif
 
 #define REGINCLASS(p,c)  (*(p) ? reginclass(p,c) : ANYOF_TEST(p,c))
@@ -211,6 +213,7 @@ regcp_set_to(I32 ss)
     PL_savestack_ix = ss;
     regcppop();
     PL_savestack_ix = tmp;
+    return Nullch;
 }
 
 typedef struct re_cc_state
diff --git a/util.c b/util.c
index 5be4969..fd99576 100644 (file)
--- a/util.c
+++ b/util.c
@@ -897,14 +897,14 @@ mem_collxfrm(const char *s, STRLEN len, STRLEN *xlen)
 void
 fbm_compile(SV *sv, U32 flags /* not used yet */)
 {
-    register unsigned char *s;
-    register unsigned char *table;
+    register U8 *s;
+    register U8 *table;
     register U32 i;
     STRLEN len;
     I32 rarest = 0;
     U32 frequency = 256;
 
-    s = SvPV_force(sv, len);
+    s = (U8*)SvPV_force(sv, len);
     sv_upgrade(sv, SVt_PVBM);
     if (len > 255 || len == 0) /* TAIL might be on on a zero-length string. */
        return;                 /* can't have offsets that big */
index 4c3947f..275ed5a 100644 (file)
@@ -426,6 +426,7 @@ mess_sv
 ors
 opsave
 eval_mutex
+strtab_mutex
 orslen
 ofmt
 modcount