Randy Kobes wrote:

On Tue, 29 Jul 2003, Steve Hay wrote:



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.

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.

I take
it this is a problem in principle on all platforms running
perl-5.8?

Yes.

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.


I agree entirely with your sentiment, but shouldn't the logic be more like this:

#if PERL_VERSION >= 8 && ((!defined(WIN32) && !defined(_AIX)) || PERL_SUBVERSION >= 1)
...
#endif


Steve



Reply via email to