X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=doio.c;h=0309e2a4c89b182e91a324a20353a488a150c10a;hb=f0b5ba41df93ba6703cb6968a5cc3fad069c7ad7;hp=d0d28b026c1d204234ace041946c8c7c1abc13e5;hpb=afd1eb533c8ea286efcac6fd054ae7cebaf0dfe3;p=p5sagit%2Fp5-mst-13.2.git diff --git a/doio.c b/doio.c index d0d28b0..0309e2a 100644 --- a/doio.c +++ b/doio.c @@ -174,7 +174,7 @@ Perl_do_openn(pTHX_ GV *gv, register char *name, I32 len, int as_raw, IoTYPE(io) = IoTYPE_RDWR; break; } - writing = (result > 0); + writing = (result != O_RDONLY); if (result == O_RDONLY) { mode[ix++] = 'r'; @@ -235,6 +235,7 @@ Perl_do_openn(pTHX_ GV *gv, register char *name, I32 len, int as_raw, if ((*type == IoTYPE_RDWR) && /* scary */ (*(type+1) == IoTYPE_RDONLY || *(type+1) == IoTYPE_WRONLY) && ((!num_svs || (tend > type+1 && tend[-1] != IoTYPE_PIPE)))) { + TAINT_PROPER("open"); mode[1] = *type++; writing = 1; } @@ -1221,7 +1222,9 @@ Perl_do_print(pTHX_ register SV *sv, PerlIO *fp) sv_utf8_upgrade(sv = sv_mortalcopy(sv)); } else if (DO_UTF8(sv)) { - if (!sv_utf8_downgrade((sv = sv_mortalcopy(sv)), TRUE)) { + if (!sv_utf8_downgrade((sv = sv_mortalcopy(sv)), TRUE) + && ckWARN(WARN_UTF8)) + { Perl_warner(aTHX_ WARN_UTF8, "Wide character in print"); } }