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

📄 webcorensstringextras.mm

📁 linux下开源浏览器WebKit的源码,市面上的很多商用浏览器都是移植自WebKit
💻 MM
字号:
/* * Copyright (C) 2005, 2007 Apple Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1.  Redistributions of source code must retain the above copyright *     notice, this list of conditions and the following disclaimer.  * 2.  Redistributions in binary form must reproduce the above copyright *     notice, this list of conditions and the following disclaimer in the *     documentation and/or other materials provided with the distribution.  * 3.  Neither the name of Apple Computer, Inc. ("Apple") nor the names of *     its contributors may be used to endorse or promote products derived *     from this software without specific prior written permission.  * * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */#import "config.h"#import "WebCoreNSStringExtras.h"BOOL stringIsCaseInsensitiveEqualToString(NSString *first, NSString *second){    return [first compare:second options:(NSCaseInsensitiveSearch|NSLiteralSearch)] == NSOrderedSame;}BOOL hasCaseInsensitiveSuffix(NSString *string, NSString *suffix){    return [string rangeOfString:suffix options:(NSCaseInsensitiveSearch | NSBackwardsSearch | NSAnchoredSearch)].location != NSNotFound;}BOOL hasCaseInsensitiveSubstring(NSString *string, NSString *substring){    return [string rangeOfString:substring options:NSCaseInsensitiveSearch].location != NSNotFound;}NSString *filenameByFixingIllegalCharacters(NSString *string){    NSMutableString *filename = [[string mutableCopy] autorelease];    // Strip null characters.    unichar nullChar = 0;    [filename replaceOccurrencesOfString:[NSString stringWithCharacters:&nullChar length:0] withString:@"" options:0 range:NSMakeRange(0, [filename length])];    // Replace "/" with "-".    [filename replaceOccurrencesOfString:@"/" withString:@"-" options:0 range:NSMakeRange(0, [filename length])];    // Replace ":" with "-".    [filename replaceOccurrencesOfString:@":" withString:@"-" options:0 range:NSMakeRange(0, [filename length])];        // Strip leading dots.    while ([filename hasPrefix:@"."]) {        [filename deleteCharactersInRange:NSMakeRange(0,1)];    }        return filename;}CFStringEncoding stringEncodingForResource(Handle resource){    short resRef = HomeResFile(resource);    if (ResError() != noErr) {        return NSMacOSRomanStringEncoding;    }        // Get the FSRef for the current resource file    FSRef fref;    OSStatus error = FSGetForkCBInfo(resRef, 0, NULL, NULL, NULL, &fref, NULL);    if (error != noErr) {        return NSMacOSRomanStringEncoding;    }        CFURLRef URL = CFURLCreateFromFSRef(NULL, &fref);    if (URL == NULL) {        return NSMacOSRomanStringEncoding;    }        NSString *path = [(NSURL *)URL path];    CFRelease(URL);        // Get the lproj directory name    path = [path stringByDeletingLastPathComponent];    if (!stringIsCaseInsensitiveEqualToString([path pathExtension], @"lproj")) {        return NSMacOSRomanStringEncoding;    }        NSString *directoryName = [[path stringByDeletingPathExtension] lastPathComponent];    CFStringRef locale = CFLocaleCreateCanonicalLocaleIdentifierFromString(NULL, (CFStringRef)directoryName);    if (locale == NULL) {        return NSMacOSRomanStringEncoding;    }                LangCode lang;    RegionCode region;    error = LocaleStringToLangAndRegionCodes([(NSString *)locale UTF8String], &lang, &region);    CFRelease(locale);    if (error != noErr) {        return NSMacOSRomanStringEncoding;    }        TextEncoding encoding;    error = UpgradeScriptInfoToTextEncoding(kTextScriptDontCare, lang, region, NULL, &encoding);    if (error != noErr) {        return NSMacOSRomanStringEncoding;    }        return encoding;}

⌨️ 快捷键说明

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