ansiperl builds with Borland C++ again
Nick Ing-Simmons [Sat, 22 Nov 1997 18:10:50 +0000 (18:10 +0000)]
p4raw-id: //depot/ansiperl@280

pp_ctl.c
regcomp.c
regcomp.h
regexec.c
toke.c
util.c
win32/config.bc
win32/config_H.bc
win32/perlglob.c
win32/win32.c
win32/win32.h

index 4887690..7718789 100644 (file)
--- a/pp_ctl.c
+++ b/pp_ctl.c
@@ -2119,7 +2119,7 @@ sv_compile_2op(SV *sv, OP** startop, char *code, AV** avp)
     dSP;                               /* Make POPBLOCK work. */
     PERL_CONTEXT *cx;
     SV **newsp;
-    I32 gimme;
+    I32 gimme = GIMME;
     I32 optype;
     OP dummy;
     OP *oop = op, *rop;
@@ -2881,3 +2881,4 @@ doparseform(SV *sv)
     SvCOMPILED_on(sv);
 }
 
+
index 603a421..adda2aa 100644 (file)
--- a/regcomp.c
+++ b/regcomp.c
@@ -372,7 +372,7 @@ study_chunk(regnode **scanp, I32 *deltap, regnode *last, scan_data_t *data, U32
                    data->last_start_max = is_inf
                        ? I32_MAX : data->pos_min + data->pos_delta; 
                }
-               sv_catpvn(data->last_found, OPERAND(scan)+1, l);
+               sv_catpvn(data->last_found, (char *)(OPERAND(scan)+1), l);
                data->last_end = data->pos_min + l;
                data->pos_min += l; /* As in the first entry. */
                data->flags &= ~SF_BEFORE_EOL;
@@ -1673,7 +1673,7 @@ tryagain:
            ret = reg_node((regflags & PMf_FOLD)
                          ? ((regflags & PMf_LOCALE) ? EXACTFL : EXACTF)
                          : EXACT);
-           s = OPERAND(ret);
+           s = (char *) OPERAND(ret);
            regc(0, s++);               /* save spot for len */
            for (len = 0, p = regparse - 1;
              len < 127 && p < regxend;
@@ -1841,7 +1841,7 @@ regclass(void)
     register I32 def;
     I32 numlen;
 
-    s = opnd = OPERAND(regcode);
+    s = opnd = (char *) OPERAND(regcode);
     ret = reg_node(ANYOF);
     for (Class = 0; Class < 33; Class++)
        regc(0, s++);
@@ -2662,3 +2662,4 @@ re_croak2(const char* pat1,const char* pat2, va_alist)
     croak("%s", buf);
 }
 
+
index dec5ac3..2a00d40 100644 (file)
--- a/regcomp.h
+++ b/regcomp.h
@@ -144,9 +144,9 @@ typedef OP OP_4tree;                        /* Will be redefined later. */
  */
 
 #ifndef DOINIT
-EXT const U8 regkind[];
+EXTCONST U8 regkind[];
 #else
-EXT const U8 regkind[] = {
+EXTCONST U8 regkind[] = {
        END,
        BOL,
        BOL,
index fb811d2..7285bea 100644 (file)
--- a/regexec.c
+++ b/regexec.c
@@ -411,7 +411,7 @@ regexec_flags(register regexp *prog, char *stringarg, register char *strend, cha
        goto phooey;
     } else if (c = prog->regstclass) {
        I32 doevery = (prog->reganch & ROPT_SKIP) == 0;
-       char *class;
+       char *Class;
 
        if (minlen)
            dontbother = minlen - 1;
@@ -420,9 +420,9 @@ regexec_flags(register regexp *prog, char *stringarg, register char *strend, cha
        /* We know what class it must start with. */
        switch (OP(c)) {
        case ANYOF:
-           class = OPERAND(c);
+           Class = (char *) OPERAND(c);
            while (s < strend) {
-               if (reginclass(class, *s)) {
+               if (reginclass(Class, *s)) {
                    if (tmp && regtry(prog, s))
                        goto got_it;
                    else
@@ -854,7 +854,7 @@ regmatch(regnode *prog)
            nextchar = UCHARAT(++locinput);
            break;
        case EXACT:
-           s = OPERAND(scan);
+           s = (char *) OPERAND(scan);
            ln = UCHARAT(s++);
            /* Inline the first character, for speed. */
            if (UCHARAT(s) != nextchar)
@@ -870,7 +870,7 @@ regmatch(regnode *prog)
            reg_flags |= RF_tainted;
            /* FALL THROUGH */
        case EXACTF:
-           s = OPERAND(scan);
+           s = (char *) OPERAND(scan);
            ln = UCHARAT(s++);
            /* Inline the first character, for speed. */
            if (UCHARAT(s) != nextchar &&
@@ -887,7 +887,7 @@ regmatch(regnode *prog)
            nextchar = UCHARAT(locinput);
            break;
        case ANYOF:
-           s = OPERAND(scan);
+           s = (char *) OPERAND(scan);
            if (nextchar < 0)
                nextchar = UCHARAT(locinput);
            if (!reginclass(s, nextchar))
@@ -1633,7 +1633,7 @@ regrepeat(regnode *p, I32 max)
     scan = reginput;
     if (max != REG_INFTY && max < loceol - scan)
       loceol = scan + max;
-    opnd = OPERAND(p);
+    opnd = (char *) OPERAND(p);
     switch (OP(p)) {
     case ANY:
        while (scan < loceol && *scan != '\n')
@@ -1801,3 +1801,5 @@ reginclass(register char *p, register I32 c)
     return match ^ ((flags & ANYOF_INVERT) != 0);
 }
 
+
+
diff --git a/toke.c b/toke.c
index f10c39f..95be7df 100644 (file)
--- a/toke.c
+++ b/toke.c
@@ -1230,6 +1230,8 @@ yylex(void)
     register char *d;
     register I32 tmp;
     STRLEN len;
+    GV *gv = Nullgv;
+    GV **gvp = 0;
 
     if (pending_ident) {
        char pit = pending_ident;
@@ -2545,8 +2547,8 @@ yylex(void)
     case 'z': case 'Z':
 
       keylookup: {
-       GV *gv = Nullgv;
-       GV **gvp = 0;
+       gv = Nullgv;
+       gvp = 0;
 
        bufptr = s;
        s = scan_word(s, tokenbuf, sizeof tokenbuf, FALSE, &len);
@@ -5381,3 +5383,4 @@ yyerror(char *s)
     return 0;
 }
 
+
diff --git a/util.c b/util.c
index e771cbc..ab6ddd7 100644 (file)
--- a/util.c
+++ b/util.c
@@ -867,9 +867,9 @@ fbm_instr(unsigned char *big, register unsigned char *bigend, SV *littlestr)
        if (!len) {
            if (SvTAIL(littlestr)) {
                if (bigend > big && bigend[-1] == '\n')
-                   return bigend - 1;
+                   return (char *)(bigend - 1);
                else
-                   return bigend;
+                   return (char *) bigend;
            }
            return (char*)big;
        }
@@ -2547,3 +2547,4 @@ Perl_huge(void)
 }
 #endif
 
+
index 7554ae5..0a014d7 100644 (file)
@@ -286,6 +286,9 @@ full_csh=''
 full_sed=''
 gcc=''
 gccversion=''
+gethbadd_addr_type='char *'
+gethbadd_alen_type='int'
+getnbadd_net_type='long'
 gidtype='gid_t'
 glibpth='/usr/shlib  /lib/pa1.1 /usr/lib/large /lib /usr/lib /usr/lib/386 /lib/386 /lib/large /usr/lib/small /lib/small /usr/ccs/lib /usr/ucblib /usr/shlib '
 grep='grep'
index ad7bcaf..edd4ffc 100644 (file)
@@ -10,8 +10,8 @@
  * $Id: Config_h.U,v 3.0.1.4 1995/09/25 09:10:49 ram Exp $
  */
 
-/* Configuration time: Thu Apr 11 06:20:49 PDT 1996
- * Configured by: garyng
+/* Configuration time: undef
+ * Configured by: nick
  * Target system: 
  */
 
  *     where library files may be held under a private library, for
  *     instance.
  */
-#ifdef _ALPHA_
-#define ARCHNAME "alpha-mswin32"              /**/
-#else
-#define ARCHNAME "x86-mswin32"              /**/
-#endif
+#define ARCHNAME "MSWin32"             /**/
 
 /* BIN:
  *     This symbol holds the path of the bin directory where the package will
  */
 /*#define HAS_GETHOSTENT               /**/
 
+/* HAS_GETHBADD:
+ *     This symbol, if defined, indicates that the gethostbyaddr routine is
+ *     available to lookup host names by their IP addresses.
+ */
+/*#define HAS_GETHBADD         /**/
+
+/* Gethbadd_addr_t:
+ *     This symbol holds the type used for the 1st argument
+ *     to gethostbyaddr().
+ */
+#define Gethbadd_addr_t                char *
+
+/* Gethbadd_alen_t:
+ *     This symbol holds the type used for the 2nd argument
+ *     to gethostbyaddr().
+ */
+#define Gethbadd_alen_t                int
+
+/* HAS_GETNBADD:
+ *     This symbol, if defined, indicates that the getnetbyaddr routine is
+ *     available to lookup networks by their IP addresses.
+ */
+/*#define HAS_GETNBADD         /**/
+
+/* Gethbadd_net_t:
+ *     This symbol holds the type used for the 1st argument
+ *     to getnetbyaddr().
+ */
+#define Getnbadd_net_t         long
+
 /* HAS_UNAME:
  *     This symbol, if defined, indicates that the C program may use the
  *     uname() routine to derive the host name.  See also HAS_GETHOSTNAME
  */
 /*#define I_NETINET_IN /**/
 
+/* I_NETDB:
+ *     This symbol, if defined, indicates that <netdb.h> exists and 
+ *     should be included.
+ */
+/*#define I_NETDB              /**/
+
 /* I_PWD:
  *     This symbol, if defined, indicates to the C program that it should
  *     include <pwd.h>.
  */
 #define ARCHLIB "c:\\perl\\lib"                /**/
 #define ARCHLIB_EXP (win32PerlLibPath())       /**/
+#define APPLLIB_EXP (win32SiteLibPath())       /**/
 
 /* BINCOMPAT3:
  *     This symbol, if defined, indicates that Perl 5.004 should be
  *     /bin/pdksh, /bin/ash, /bin/bash, or even something such as
  *     D:/bin/sh.exe.
  */
-#define SH_PATH "cmd.exe"  /**/
+#define SH_PATH "cmd /x /c"  /**/
 
 /* SIG_NAME:
  *     This symbol contains a list of signal names in order of
  *     script to make sure (one hopes) that it runs with perl and not
  *     some shell.
  */
-#define STARTPERL "#perl"              /**/
+#define STARTPERL "#!perl"             /**/
 
 /* USE_PERLIO:
  *     This symbol, if defined, indicates that the PerlIO abstraction should
index b2fdca2..be9d550 100644 (file)
@@ -22,7 +22,8 @@ main(int argc, char *argv[])
 
     /* check out the file system characteristics */
     if (GetFullPathName(".", MAX_PATH, root, &dummy)) {
-       if (dummy = strchr(root, '\\'))
+        dummy = strchr(root,'\\'); 
+       if (dummy)
            *++dummy = '\0';
        if (GetVolumeInformation(root, volname, MAX_PATH, 
                                 &serial, &maxname, &flags, 0, 0)) {
@@ -40,3 +41,4 @@ main(int argc, char *argv[])
     }
     return 0;
 }
+
index 28454e8..26cf26f 100644 (file)
@@ -1338,7 +1338,7 @@ sbrk(int need)
    if (committed && reserved && committed < reserved)
     {
      /* Commit last of previous chunk cannot span allocations */
-     addr = VirtualAlloc(committed,reserved-committed,MEM_COMMIT,PAGE_READWRITE);
+     addr = (char *) VirtualAlloc(committed,reserved-committed,MEM_COMMIT,PAGE_READWRITE);
      if (addr)
       committed = reserved;
     }
@@ -1347,7 +1347,7 @@ sbrk(int need)
     * so lets system choose where we start, subsequent calls pass
     * the old end address so ask for a contiguous block
     */
-   addr  = VirtualAlloc(reserved,size,MEM_RESERVE,PAGE_NOACCESS);
+   addr  = (char *) VirtualAlloc(reserved,size,MEM_RESERVE,PAGE_NOACCESS);
    if (addr)
     {
      reserved = addr+size;
@@ -1368,7 +1368,7 @@ sbrk(int need)
  if (brk > committed)
   {
    DWORD size = ((brk-committed + pagesize -1)/pagesize) * pagesize;
-   char *addr = VirtualAlloc(committed,size,MEM_COMMIT,PAGE_READWRITE);
+   char *addr = (char *) VirtualAlloc(committed,size,MEM_COMMIT,PAGE_READWRITE);
    if (addr)
     {
      committed += size;
@@ -1754,3 +1754,4 @@ win32_strip_return(SV *sv)
 
 
 
+
index 9086f31..ec4faa8 100644 (file)
@@ -111,6 +111,7 @@ extern  gid_t       getegid(void);
 extern  int    setuid(uid_t uid);
 extern  int    setgid(gid_t gid);
 extern  int    kill(int pid, int sig);
+extern  void   *sbrk(int need);
 
 #undef  Stat
 #define  Stat          win32_stat