There's a problem in isprintrune in sbase, it can only return 0 because of the “&& (r < 0xFFF9) && (r > 0xFFFB)” part. When fixing it (and the others problems I mentioned earlier), Ralph's patch works (it needs cleaning though).

The only real way to do this is to also look at wide characters. As you
may have already seen, I finished up libutf in regard to the is*rune()-
functions, so just go through each filename _rune by rune_ and check if
isprintrune() is false, replacing the rune with '?'.

I'm not sure how this differs from Ralph's implementation. Do you mean he should decode the filename to get a rune array, modify it, then encode the array back?

Reply via email to