develooper Front page | perl.perl5.porters | Postings from January 2001

Re: 8482 busted for $^V sprintf()s on OS/390

Thread Previous | Thread Next
Jarkko Hietaniemi
January 20, 2001 14:34
Re: 8482 busted for $^V sprintf()s on OS/390
Message ID:
> >Probably not.
> >
> >"Wide character in print" means that a string was (internally) marked
> >UTF-8 and the string truly contains > 0xff (wide) characters, and you
> >tried to output that.  Since wide characters cannot be output as such
> >(a conversion to bytes is needed, using some character set mapping),
> >print() barfed.  This is one of the dreaded "should not happen" cases.
> It can happen easily enough, and a PerlIO layer which is tagged as accepting
> utf8 will not give that error but (should) give its own error if it cannot 
> represent the character. But we have not changed anything in that area 
> recently, so I think print is being fed junk. Possibly (as this is OS390)
> we have one of those EBCDIC issues here.

Yeah, one of Those.

> I suspect Hugo's patch has spuriously set the UTF8 flag - the mix of U8 and 
> char that was there before Peter's patch shows wooly UTF8 thinking.
> My gut feeling by the way is that Peter's patch did that backwards - i.e.
> rather than making the variable U8 it should have not-cast SvPV. 

Which is, in fact, what I'm trying in my alternate patch.

> -- 
> Nick Ing-Simmons

$jhi++; #
        # There is this special biologist word we use for 'stable'.
        # It is 'dead'. -- Jack Cohen

Thread Previous | Thread Next Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at | Group listing | About