Upgrade to Encode 1.11, from Dan Kogai.
[p5sagit/p5-mst-13.2.git] / util.c
diff --git a/util.c b/util.c
index 303bfa4..7843507 100644 (file)
--- a/util.c
+++ b/util.c
@@ -339,19 +339,19 @@ S_xstat(pTHX_ int flag)
 Malloc_t Perl_malloc (MEM_SIZE nbytes)
 {
     dTHXs;
-    return PerlMem_malloc(nbytes);
+    return (Malloc_t)PerlMem_malloc(nbytes);
 }
 
 Malloc_t Perl_calloc (MEM_SIZE elements, MEM_SIZE size)
 {
     dTHXs;
-    return PerlMem_calloc(elements, size);
+    return (Malloc_t)PerlMem_calloc(elements, size);
 }
 
 Malloc_t Perl_realloc (Malloc_t where, MEM_SIZE nbytes)
 {
     dTHXs;
-    return PerlMem_realloc(where, nbytes);
+    return (Malloc_t)PerlMem_realloc(where, nbytes);
 }
 
 Free_t   Perl_mfree (Malloc_t where)
@@ -941,7 +941,7 @@ Perl_savesharedpv(pTHX_ const char *sv)
 {
     register char *newaddr = Nullch;
     if (sv) {
-       newaddr = PerlMemShared_malloc(strlen(sv)+1);
+       newaddr = (char*)PerlMemShared_malloc(strlen(sv)+1);
        (void)strcpy(newaddr,sv);
     }
     return newaddr;
@@ -2192,7 +2192,7 @@ Perl_my_popen(pTHX_ char *cmd, char *mode)
     return PerlIO_fdopen(p[This], mode);
 }
 #else
-#if defined(atarist)
+#if defined(atarist) || defined(EPOC)
 FILE *popen();
 PerlIO *
 Perl_my_popen(pTHX_ char *cmd, char *mode)
@@ -2577,7 +2577,7 @@ Perl_pidgone(pTHX_ Pid_t pid, int status)
     return;
 }
 
-#if defined(atarist) || defined(OS2)
+#if defined(atarist) || defined(OS2) || defined(EPOC)
 int pclose();
 #ifdef HAS_FORK
 int                                    /* Cannot prototype with I32
@@ -3445,25 +3445,25 @@ Perl_report_evil_fh(pTHX_ GV *gv, IO *io, I32 op)
 
     if (op == OP_phoney_OUTPUT_ONLY || op == OP_phoney_INPUT_ONLY) {
        if (name && *name)
-           Perl_warner(aTHX_ WARN_IO, "Filehandle %s opened only for %sput",
+           Perl_warner(aTHX_ packWARN(WARN_IO), "Filehandle %s opened only for %sput",
                        name,
                        (op == OP_phoney_INPUT_ONLY ? "in" : "out"));
        else
-           Perl_warner(aTHX_ WARN_IO, "Filehandle opened only for %sput",
+           Perl_warner(aTHX_ packWARN(WARN_IO), "Filehandle opened only for %sput",
                        (op == OP_phoney_INPUT_ONLY ? "in" : "out"));
     } else if (name && *name) {
-       Perl_warner(aTHX_ warn_type,
+       Perl_warner(aTHX_ packWARN(warn_type),
                    "%s%s on %s %s %s", func, pars, vile, type, name);
        if (io && IoDIRP(io) && !(IoFLAGS(io) & IOf_FAKE_DIRP))
-           Perl_warner(aTHX_ warn_type,
+           Perl_warner(aTHX_ packWARN(warn_type),
                        "\t(Are you trying to call %s%s on dirhandle %s?)\n",
                        func, pars, name);
     }
     else {
-       Perl_warner(aTHX_ warn_type,
+       Perl_warner(aTHX_ packWARN(warn_type),
                    "%s%s on %s %s", func, pars, vile, type);
        if (gv && io && IoDIRP(io) && !(IoFLAGS(io) & IOf_FAKE_DIRP))
-           Perl_warner(aTHX_ warn_type,
+           Perl_warner(aTHX_ packWARN(warn_type),
                        "\t(Are you trying to call %s%s on dirhandle?)\n",
                        func, pars);
     }
@@ -3968,9 +3968,10 @@ Perl_getcwd_sv(pTHX_ register SV *sv)
         Perl_croak(aTHX_ "Unstable directory path, "
                    "current directory changed unexpectedly");
     }
-#endif
 
     return TRUE;
+#endif
+
 #else
     return FALSE;
 #endif
@@ -4017,7 +4018,7 @@ Perl_new_vstring(pTHX_ char *s, SV *sv)
                 /* this is atoi() that tolerates underscores */
                 char *end = pos;
                 UV mult = 1;
-                if ( *(s-1) == '_') {
+                if ( s > pos && *(s-1) == '_') {
                      mult = 10;
                 }
                 while (--end >= s) {
@@ -4026,7 +4027,7 @@ Perl_new_vstring(pTHX_ char *s, SV *sv)
                      rev += (*end - '0') * mult;
                      mult *= 10;
                      if (orev > rev && ckWARN_d(WARN_OVERFLOW))
-                          Perl_warner(aTHX_ WARN_OVERFLOW,
+                          Perl_warner(aTHX_ packWARN(WARN_OVERFLOW),
                                       "Integer overflow in decimal number");
                 }
            }
@@ -4054,7 +4055,7 @@ Perl_new_vstring(pTHX_ char *s, SV *sv)
     return s;
 }
 
-#if !defined(HAS_SOCKETPAIR) && defined(HAS_SOCKET) && defined(AF_INET) && defined(PF_INET) && defined(SOCK_DGRAM)
+#if !defined(HAS_SOCKETPAIR) && defined(HAS_SOCKET) && defined(AF_INET) && defined(PF_INET) && defined(SOCK_DGRAM) && defined(HAS_SELECT)
 #   define EMULATE_SOCKETPAIR_UDP
 #endif
 
@@ -4198,7 +4199,9 @@ S_socketpair_udp (int fd[2]) {
         return -1;
     }
 }
+#endif /*  EMULATE_SOCKETPAIR_UDP */
 
+#if !defined(HAS_SOCKETPAIR) && defined(HAS_SOCKET) && defined(AF_INET) && defined(PF_INET) 
 int
 Perl_my_socketpair (int family, int type, int protocol, int fd[2]) {
     /* Stevens says that family must be AF_LOCAL, protocol 0.
@@ -4277,7 +4280,7 @@ Perl_my_socketpair (int family, int type, int protocol, int fd[2]) {
     return 0;
 
   abort_tidy_up_and_fail:
-    errno = ECONNABORTED; /* I hope this is portable and appropriate.  */
+  errno = ECONNABORTED; /* I hope this is portable and appropriate.  */
   tidy_up_and_fail:
     {
         int save_errno = errno;
@@ -4291,8 +4294,7 @@ Perl_my_socketpair (int family, int type, int protocol, int fd[2]) {
         return -1;
     }
 }
-#endif /* !defined(HAS_SOCKETPAIR) && defined(HAS_SOCKET) */
-#ifdef HAS_SOCKETPAIR
+#else
 /* In any case have a stub so that there's code corresponding
  * to the my_socketpair in global.sym. */
 int
@@ -4348,5 +4350,3 @@ Perl_sv_nounlocking(pTHX_ SV *sv)
 {
 }
 
-
-