⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 textbreakiteratorinternalicumac.mm

📁 linux下开源浏览器WebKit的源码,市面上的很多商用浏览器都是移植自WebKit
💻 MM
字号:
/* * Copyright (C) 2007 Apple Inc. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public License * along with this library; see the file COPYING.LIB.  If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. * */#include "config.h"#include "TextBreakIteratorInternalICU.h"namespace WebCore {static const int maxLocaleStringLength = 32;// This code was swiped from the CarbonCore UnicodeUtilities. One change from that is to use the empty// string instead of the "old locale model" as the ultimate fallback. This change is per the UnicodeUtilities// engineer.static void getTextBreakLocale(char localeStringBuffer[maxLocaleStringLength]){    // Empty string means "root locale", which is what we use if we can't use a pref.    // We get the parts string from AppleTextBreakLocale pref.    // If that fails then look for the first language in the AppleLanguages pref.    CFStringRef prefLocaleStr = (CFStringRef)CFPreferencesCopyValue(CFSTR("AppleTextBreakLocale"),        kCFPreferencesAnyApplication, kCFPreferencesCurrentUser, kCFPreferencesAnyHost);    if (!prefLocaleStr) {        CFArrayRef appleLangArr = (CFArrayRef)CFPreferencesCopyValue(CFSTR("AppleLanguages"),            kCFPreferencesAnyApplication, kCFPreferencesCurrentUser, kCFPreferencesAnyHost);        if (appleLangArr)  {            // Take the topmost language. Retain so that we can blindly release later.                                                                                                               prefLocaleStr = (CFStringRef)CFArrayGetValueAtIndex(appleLangArr, 0);            if (prefLocaleStr)                CFRetain(prefLocaleStr);             CFRelease(appleLangArr);        }    }    if (prefLocaleStr) {        // Canonicalize pref string in case it is not in the canonical format.        CFStringRef canonLocaleCFStr = CFLocaleCreateCanonicalLanguageIdentifierFromString(kCFAllocatorDefault, prefLocaleStr);        if (canonLocaleCFStr) {            CFStringGetCString(canonLocaleCFStr, localeStringBuffer, maxLocaleStringLength, kCFStringEncodingASCII);            CFRelease(canonLocaleCFStr);        }        CFRelease(prefLocaleStr);    }}const char* currentTextBreakLocaleID(){    static char localeStringBuffer[maxLocaleStringLength];    static bool gotTextBreakLocale = false;    if (!gotTextBreakLocale) {        getTextBreakLocale(localeStringBuffer);        gotTextBreakLocale = true;    }    return localeStringBuffer;}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -