Change 17684 by [EMAIL PROTECTED] on 2002/08/05 22:35:22

        Integrate from perlio: change #17653 fixes bug RT15283

Affected files ...

.... //depot/perl/ext/PerlIO/via/via.xs#2 integrate

Differences ...

==== //depot/perl/ext/PerlIO/via/via.xs#2 (text) ====
Index: perl/ext/PerlIO/via/via.xs
--- perl/ext/PerlIO/via/via.xs#1~17454~ Tue Jul  9 14:31:44 2002
+++ perl/ext/PerlIO/via/via.xs  Mon Aug  5 15:35:22 2002
@@ -143,11 +143,15 @@
                s->stash = gv_stashpvn(SvPVX(s->obj), pkglen + 13, FALSE);
            }
            if (s->stash) {
-               SV *modesv =
-                   (mode) ? sv_2mortal(newSVpvn(mode, strlen(mode))) :
-                   Nullsv;
-               SV *result =
-                   PerlIOVia_method(aTHX_ f, MYMethod(PUSHED), G_SCALAR,
+               char lmode[8];
+               SV *modesv;
+               SV *result;
+               if (!mode) {
+                   /* binmode() passes NULL - so find out what mode is */
+                   mode = PerlIO_modestr(f,lmode);
+               }
+               modesv = sv_2mortal(newSVpvn(mode, strlen(mode)));
+               result = PerlIOVia_method(aTHX_ f, MYMethod(PUSHED), G_SCALAR,
                                     modesv, Nullsv);
                if (result) {
                    if (sv_isobject(result)) {
End of Patch.

Reply via email to