Re: [PATCH] Use FIX_UTF8_MAC to enable conversion from UTF8-MAC to UTF8
- From
Dmitry Potapov <dpotapov@gmail.com>
- Date
- Jan 22, 2008, 11:57 UTC
- Message-ID
- <20080122115741.GI14871@dpotapov.dyndns.org>
- In-Reply-To
- <alpine.LFD.1.00.0801212025050.2957@woody.linux-foundation.org>
On Mon, Jan 21, 2008 at 08:59:56PM -0800, Linus Torvalds wrote:
Show 7 quoted lines
> > Anyway, even if you do that, our "reencode_string()" is really *so* > expensive that you really don't want to do it on a filename by filename > basis. It literally does a malloc() for each allocation. It might well be > worth it to find something that is more utf-8-specific (and I could well > imagine that Mac OS X comes with some UTF libraries, if only because we > cannot possibly be the only people with this issue).
Yes, starting with Mac OS X 10.2 there are functions for that. http://developer.apple.com/qa/qa2001/qa1235.html
Anyway, even if iconv is to be used, I believe it should be possible to avoid malloc here (I usually allocate 256 on stack and use malloc()/free() only when I need more than that which in practice never happens!). It is also avoidable to call iconv_open/iconv_close for each name by putting the allocated descriptor for character set conversion into a static variable. Thus leaving iconv() alone, which should not be big overhead provided that it is done only for non-ASCII names.
Dmitry