This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Integrate mainline
authorNick Ing-Simmons <nik@tiuk.ti.com>
Sat, 8 Dec 2001 14:11:12 +0000 (14:11 +0000)
committerNick Ing-Simmons <nik@tiuk.ti.com>
Sat, 8 Dec 2001 14:11:12 +0000 (14:11 +0000)
p4raw-id: //depot/perlio@13532

doio.c
hints/unicos.sh
hints/unicosmk.sh
perl.h
perlio.c
perliol.h
t/op/utf8decode.t [changed mode: 0644->0755]

diff --git a/doio.c b/doio.c
index abf9ae5..ed57c42 100644 (file)
--- a/doio.c
+++ b/doio.c
@@ -359,9 +359,6 @@ Perl_do_openn(pTHX_ GV *gv, register char *name, I32 len, int as_raw,
                }
            } /* & */
            else {
-               if (num_svs > 1) {
-                   Perl_croak(aTHX_ "More than one argument to '>' open");
-               }
                /*SUPPRESS 530*/
                for (; isSPACE(*type); type++) ;
                if (*type == IoTYPE_STD && (!type[1] || isSPACE(type[1]) || type[1] == ':')) {
@@ -369,6 +366,9 @@ Perl_do_openn(pTHX_ GV *gv, register char *name, I32 len, int as_raw,
                    type++;
                    fp = PerlIO_stdout();
                    IoTYPE(io) = IoTYPE_STD;
+                   if (num_svs > 1) {
+                       Perl_croak(aTHX_ "More than one argument to '>%c' open",IoTYPE_STD);
+                   }
                }
                else  {
                    if (!num_svs) {
@@ -382,9 +382,6 @@ Perl_do_openn(pTHX_ GV *gv, register char *name, I32 len, int as_raw,
            } /* !& */
        }
        else if (*type == IoTYPE_RDONLY) {
-           if (num_svs > 1) {
-               Perl_croak(aTHX_ "More than one argument to '<' open");
-           }
            /*SUPPRESS 530*/
            for (type++; isSPACE(*type); type++) ;
            mode[0] = 'r';
@@ -401,6 +398,9 @@ Perl_do_openn(pTHX_ GV *gv, register char *name, I32 len, int as_raw,
                type++;
                fp = PerlIO_stdin();
                IoTYPE(io) = IoTYPE_STD;
+               if (num_svs > 1) {
+                   Perl_croak(aTHX_ "More than one argument to '<%c' open",IoTYPE_STD);
+               }
            }
            else {
                if (!num_svs) {
index e25b3fd..026259f 100644 (file)
@@ -15,7 +15,7 @@ ccflags="$ccflags -h rounddiv"
 # isn't correctly saved and restored --Mark P. Lutz 
 pp_ctl_cflags='ccflags="$ccflags -h scalar0 -h vector0"'
 # Otherwise the unpack %65c checksums will fail.
-pp_pack_cflags='optimize="$ccflags -h scalar0 -h vector0"'
+pp_pack_cflags='ccflags="$ccflags -h scalar0 -h vector0"'
 case "$usemymalloc" in
 '') # The perl malloc.c SHOULD work says Ilya.
     # But for the time being (5.004_68), alas, it doesn't. --jhi
index 93ed9a6..5fd5342 100644 (file)
@@ -29,4 +29,4 @@ if test "$d_shm" = ""; then
     esac
 fi
 # Otherwise the unpack %65c checksums will fail.
-pp_pack_cflags='optimize="-h scalar0 -h vector0"'
+pp_pack_cflags='ccflags="$ccflags -h scalar0 -h vector0"'
diff --git a/perl.h b/perl.h
index c9d359c..04df385 100644 (file)
--- a/perl.h
+++ b/perl.h
@@ -425,7 +425,7 @@ int usleep(unsigned int);
 #  define MYSWAP
 #endif
 
-/* Cannot include embed.h here on Win32 as win32.h has not 
+/* Cannot include embed.h here on Win32 as win32.h has not
    yet been included and defines some config variables e.g. HAVE_INTERP_INTERN
  */
 #if !defined(PERL_FOR_X2P) && !(defined(WIN32)||defined(VMS))
index 7c16e43..bdbde16 100644 (file)
--- a/perlio.c
+++ b/perlio.c
@@ -208,7 +208,10 @@ PerlIO *
 PerlIO_openn(pTHX_ const char *layers, const char *mode, int fd,
             int imode, int perm, PerlIO *old, int narg, SV **args)
 {
-    if (narg == 1) {
+    if (narg) {
+       if (narg > 1) {
+           Perl_croak(aTHX_ "More than one argument to open");
+       }
        if (*args == &PL_sv_undef)
            return PerlIO_tmpfile();
        else {
@@ -1283,6 +1286,9 @@ PerlIO_openn(pTHX_ const char *layers, const char *mode, int fd,
            /*
             * Found that layer 'n' can do opens - call it
             */
+           if (narg > 1 && !(tab->kind & PERLIO_K_MULTIARG)) {
+               Perl_croak(aTHX_ "More than one argument to open(,':%s')",tab->name);
+           }
            PerlIO_debug("openn(%s,'%s','%s',%d,%x,%o,%p,%d,%p)\n",
                         tab->name, layers, mode, fd, imode, perm, f, narg,
                         args);
index 226de6a..d133061 100644 (file)
--- a/perliol.h
+++ b/perliol.h
@@ -58,6 +58,7 @@ struct _PerlIO_funcs {
 #define PERLIO_K_DUMMY         0x00000010
 #define PERLIO_K_UTF8          0x00008000
 #define PERLIO_K_DESTRUCT      0x00010000
+#define PERLIO_K_MULTIARG      0x00020000
 
 /*--------------------------------------------------------------------------------------*/
 struct _PerlIO {
old mode 100644 (file)
new mode 100755 (executable)