in reply to Re^8: Is there a way to make Prima widgets accept double byte characters?
in thread Is there a way to make Prima widgets accept double byte characters?

fixed
  • Comment on Re^9: Is there a way to make Prima widgets accept double byte characters?

Replies are listed 'Best First'.
Re^10: Is there a way to make Prima widgets accept double byte characters?
by Anonymous Monk on Jun 10, 2011 at 06:46 UTC
    I forgot to post this "patch" for Prima/Makefile.PL, because Prima::codecs::win32 ends up at unexpected place
    sub setup_codecs { # see if Prima::codecs:: is installed my ( $prereq, $have_binary_prereq); $prereq = 'win32' if $Win32 and not $cygwin; $prereq = 'win64' if $Win64 and not $cygwin; $prereq = 'os2' if $OS2; if ( $prereq) { print "Checking for Prima::codecs::$prereq... "; eval "use Prima::codecs::$prereq;"; unless ( $@) { print "yes\n"; $have_binary_prereq++; push @LIBPATH, qd("$Config{installsitearch}/Prima/codecs/$ +prereq/lib"); push @INCPATH, qd("$Config{installsitearch}/Prima/codecs/$ +prereq/include"); if( $prereq =~ /win32/ ){ my $f = $INC{'Prima/codecs/win32.pm'}; $f =~ s/.pm$//; #~ push @LIBPATH, qd("$f/lib"); #~ push @INCPATH, qd("$f/include"); $LIBPATH[-1]=qd("$f/lib"); $INCPATH[-1]=qd("$f/include"); print "$_\n" for $f,@LIBPATH, @INCPATH ; } } else { print "no\n"; } }
    FWIW, Prima::codecs::win32, should have two class methods, INCPATH and LIBPATH which return the correct path
      Hmm, interesting. I see that code gets borked if $Config{installsitearch} wasn't used. That raises a question why, of course, and which setup did you use (so I could reproduce), but generally I agress, path in %INC is more reliable. Would you try this?
      --- Makefile.PL 2011-05-17 13:50:41.988807409 +0200 +++ Makefile.PL.0 2011-06-10 09:49:56.579743052 +0200 @@ -1486,8 +1486,10 @@ unless ( $@) { print "yes\n"; $have_binary_prereq++; - push @LIBPATH, qd("$Config{installsitearch}/Pr +ima/codecs/$prereq/lib"); - push @INCPATH, qd("$Config{installsitearch}/Pr +ima/codecs/$prereq/include"); + my $f = $INC{"Prima/codecs/$prereq.pm"}; + $f =~ s/.pm$//; + push @LIBPATH, qd("$f/lib"); + push @INCPATH, qd("$f/include"); } else { print "no\n"; }
      And btw, really, perlmonks interface doesn't help with communication at this point. Please use email next time.

        A better idea would be for Prima::codecs::win32, instead of being empty-do-nothing module, to have function/method to return path to installed files ... maybe using File::ShareDir, see also File::ShareDir::Install