On Tue, 29 Jul 2003, Steve Hay wrote:These were the only two that Nicholas Clark mentioned when I asked about the missing PerlIO_isutf8() on the perl-xs list, so that may well be true. I will double-check with p5p to see if there are any more.
Is anybody going to take a serious look at the problem that I previously reported with Apache->print()'s handling of UTF-8 data in Perl 5.8?
The patch that I sent (http://marc.theaimsgroup.com/?l=apache-modperl&m=105912130001046&w=2) seems to fix it for me on Windows as long as I've got perl #20203 incorporated. Does it work on other platforms?
The #ifdef version-checks need a little work: on Windows (and other platforms [-- which ones?] that rely on Perl's makedef.pl to get symbols exported from the Perl library) you need perl-5.8.1; on other platforms the test for perl-5.8.0 should be fine. The brokenness of Apache->print() under perl-5.8.0 on Windows et al would also need documenting somewhere since it can't be fixed properly.
Maybe it's just easier to change the version-checks to 5.8.1 for all
platforms, and document the broken behaviour under 5.8.0?
mod_perl 2 makes two special cases for handling systems that use export files - Win32 and aix ($^O eq 'aix'). So these might be the only two one has to worry about in this regard.
Yes.I take it this is a problem in principle on all platforms running perl-5.8?
I agree entirely with your sentiment, but shouldn't the logic be more like this:If so, what might work is, for all platforms running 5.8.x, apply the patch, except for Win32 and aix (I'm not sure of aix), which would require 5.8.1. So something like
#if PERL_VERSION >= 8 #if ( defined(WIN32) || defined(_AIX) ) && PERL_SUBVERSION >= 1 .... #endif #endif
And then, as you say, document the broken behaviour under
Win32 (and aix?) for 5.8.0.
#if PERL_VERSION >= 8 && ((!defined(WIN32) && !defined(_AIX)) || PERL_SUBVERSION >= 1)
...
#endif
Steve