On 4 mars 08, at 10:28, Julien Jalon wrote:

1) Might not be a good idea to use CFStringGetCStringPtr as it might return
NULL2) kCFStringEncodingMacRoman is likely not a good choice as the
encoding, especially for localized strings

If I were you, I'd do something like (warning: Mail compiled code):
const char* MyGetLocalizedCString(CFStringRef string)
{
    // if you need to be thread safe, add proper locks around that
    static CFMutableDictionaryRef mapping = NULL;
    if(mapping == NULL) {
        mapping = CFDictionaryCreateMutable(NULL, 0,
&kCFTypeDictionaryKeyCallBacks, NULL);
    }

    const char* result = (const char *)CFDictionaryGetValue(mapping,
string);
    if(result == NULL) {
CFStringRef localizedString = CFCopyLocalizedStringFromTable(string,
CFSTR("LibraryLocalizable"), NULL);
         result = (const char
*)malloc(CFStringGetMaximumSizeForEncoding(CFStringGetLength(localizedS tring),
kCFStringEncodingUTF8);
CFStringGetCString(localizedString, (char *)result, bufferSize,
kCFStringEncodingUTF8);
CFDictionarySetValue(mapping, string, result);

I'm not sure CFDictionarySetValue would accept a char *.


_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to [EMAIL PROTECTED]

Reply via email to