diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000000..1418e2ff07 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,3 @@ +language: objective-c +xcode_project: CotEditor.xcodeproj +xcode_scheme: CotEditor diff --git a/CEATSTypesetter.m b/CEATSTypesetter.m index f94f6c8040..f5d6267266 100644 --- a/CEATSTypesetter.m +++ b/CEATSTypesetter.m @@ -3,8 +3,9 @@ CEATSTypesetter (for CotEditor) -Copyright (C) 2004-2007 nakamuxu. -http://www.aynimac.com/ + Copyright (C) 2004-2007 nakamuxu. + Copyright (C) 2014 CotEditor Project + http://coteditor.github.io ================================================= encoding="UTF-8" @@ -63,7 +64,7 @@ + (CEATSTypesetter *)sharedSystemTypesetter //======================================================= // ------------------------------------------------------ -- (id)init +- (instancetype)init // 初期化 // ------------------------------------------------------ { @@ -86,18 +87,18 @@ - (BOOL)usesFontLeading // ------------------------------------------------------ -- (float)lineSpacingAfterGlyphAtIndex:(unsigned)inGlyphIndex withProposedLineFragmentRect:(NSRect)inRect +- (CGFloat)lineSpacingAfterGlyphAtIndex:(NSUInteger)inGlyphIndex withProposedLineFragmentRect:(NSRect)inRect // 行間ピクセル数を返す // ------------------------------------------------------ { CELayoutManager *theManager = (CELayoutManager *)[self layoutManager]; - float theLineSpacing = [(CETextViewCore *)[[self currentTextContainer] textView] lineSpacing]; - float theFontSize; + CGFloat theLineSpacing = [(CETextViewCore *)[[self currentTextContainer] textView] lineSpacing]; + CGFloat theFontSize; if (([theManager isPrinting]) || (![theManager fixLineHeight])) { // 印刷時または複合フォントでの行間固定をしないときは、システム既定値に、設定された行間を追加するだけ // ([NSGraphicsContext currentContextDrawingToScreen] が真を返す時があるため、専用フラグで印刷中を確認) - float theSpacing = [super lineSpacingAfterGlyphAtIndex:inGlyphIndex withProposedLineFragmentRect:inRect]; + CGFloat theSpacing = [super lineSpacingAfterGlyphAtIndex:inGlyphIndex withProposedLineFragmentRect:inRect]; theFontSize = [[[[self currentTextContainer] textView] font] pointSize]; return (theSpacing + theLineSpacing * theFontSize); @@ -109,7 +110,7 @@ - (float)lineSpacingAfterGlyphAtIndex:(unsigned)inGlyphIndex withProposedLineFra // (CETextViewCore で、NSParagraphStyle の lineSpacing を設定しても行間は制御できるが、 // 「文書の1文字目に1バイト文字(または2バイト文字)を入力してある状態で先頭に2バイト文字(または1バイト文字)を // 挿入すると行間がズレる」問題が生じる) - float theDefaultLineHeight = [theManager defaultLineHeightForTextFont]; + CGFloat theDefaultLineHeight = [theManager defaultLineHeightForTextFont]; theFontSize = [theManager textFontPointSize]; // 小数点以下を返すと選択範囲が分離することがあるため、丸める diff --git a/CEAppController.h b/CEAppController.h index 409ac7ee7c..2201cb347c 100644 --- a/CEAppController.h +++ b/CEAppController.h @@ -3,8 +3,9 @@ CEAppController (for CotEditor) -Copyright (C) 2004-2007 nakamuxu. -http://www.aynimac.com/ + Copyright (C) 2004-2007 nakamuxu. + Copyright (C) 2014 CotEditor Project + http://coteditor.github.io ================================================= encoding="UTF-8" @@ -41,13 +42,12 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #import "CEHexColorTransformer.h" #import "constants.h" -@interface CEAppController : NSObject +@interface CEAppController : NSObject { CEPreferences *_preferences; NSMenu *_encodingMenu; NSMenu *_syntaxMenu; NSArray *_invalidYenEncodings; - NSString *_thousandsSeparator; BOOL _didFinishLaunching; } @@ -63,15 +63,14 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - (void)setSyntaxMenu:(NSMenu *)inSyntaxMenu; - (void)buildAllEncodingMenus; - (void)buildAllSyntaxMenus; -- (NSString *)invisibleSpaceCharacter:(unsigned int)inIndex; -- (NSString *)invisibleTabCharacter:(unsigned int)inIndex; -- (NSString *)invisibleNewLineCharacter:(unsigned int)inIndex; -- (NSString *)invisibleFullwidthSpaceCharacter:(unsigned int)inIndex; +- (NSString *)invisibleSpaceCharacter:(NSUInteger)inIndex; +- (NSString *)invisibleTabCharacter:(NSUInteger)inIndex; +- (NSString *)invisibleNewLineCharacter:(NSUInteger)inIndex; +- (NSString *)invisibleFullwidthSpaceCharacter:(NSUInteger)inIndex; - (NSStringEncoding)encodingFromName:(NSString *)inEncodingName; - (BOOL)isInvalidYenEncoding:(NSStringEncoding)inEncoding; -- (NSString *)keyEquivalentAndModifierMask:(unsigned int *)ioModMask +- (NSString *)keyEquivalentAndModifierMask:(NSUInteger *)ioModMask fromString:(NSString *)inString includingCommandKey:(BOOL)inBool; -- (NSString *)stringFromUnsignedInt:(unsigned int)inInt; // Action Message - (IBAction)openPrefWindow:(id)sender; @@ -81,5 +80,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - (IBAction)newInDockMenu:(id)sender; - (IBAction)openInDockMenu:(id)sender; - (IBAction)openBundledDocument:(id)sender; +- (IBAction)openWebSite:(id)sender; @end diff --git a/CEAppController.m b/CEAppController.m index 09bc2a8725..4d99a515ec 100644 --- a/CEAppController.m +++ b/CEAppController.m @@ -3,8 +3,9 @@ CEAppController (for CotEditor) -Copyright (C) 2004-2007 nakamuxu. -http://www.aynimac.com/ + Copyright (C) 2004-2007 nakamuxu. + Copyright (C) 2011, 2014 CotEditor Project + http://coteditor.github.io ================================================= encoding="UTF-8" @@ -43,8 +44,7 @@ - (NSMenu *)buildFormatEncodingMenuFromArray:(NSArray *)inArray; - (void)setupSupportDirectory; - (NSMenu *)buildSyntaxMenu; - (void)cacheTheInvisibleGlyph; -- (void)filterNotAvailableEncoding; -- (void)deleteWrongDotFile; +- (void)cleanDeprecatedDefaults; @end @@ -68,174 +68,150 @@ + (void)initialize // ------------------------------------------------------ { // Encoding list - NSMutableArray *theEncodings = [NSMutableArray array]; - int i; - for (i = 0; i < sizeof(k_CFStringEncodingList)/sizeof(CFStringEncodings); i++) { - [theEncodings addObject:[NSNumber numberWithUnsignedLong:k_CFStringEncodingList[i]]]; + NSUInteger numberOfEncodings = sizeof(k_CFStringEncodingList)/sizeof(CFStringEncodings); + NSMutableArray *theEncodings = [[NSMutableArray alloc] initWithCapacity:numberOfEncodings]; + for (NSUInteger i = 0; i < numberOfEncodings; i++) { + [theEncodings addObject:@(k_CFStringEncodingList[i])]; } - // 10.4+ で実行されていたら、さらにエンコーディングを追加 - if (floor(NSAppKitVersionNumber) > NSAppKitVersionNumber10_3) { - [theEncodings addObject:[NSNumber numberWithUnsignedLong:kCFStringEncodingInvalidId]]; // セパレータ - for (i = 0; i < sizeof(k_CFStringEncoding10_4List)/sizeof(CFStringEncodings); i++) { - [theEncodings addObject:[NSNumber numberWithUnsignedLong:k_CFStringEncoding10_4List[i]]]; - } - } - - NSDictionary *theDefaults = [NSDictionary dictionaryWithObjectsAndKeys: - [NSNumber numberWithBool:YES], k_key_showLineNumbers, - [NSNumber numberWithBool:YES], k_key_showWrappedLineMark, - [NSNumber numberWithBool:YES], k_key_showStatusBar, - [NSNumber numberWithBool:YES], k_key_countLineEndingAsChar, - [NSNumber numberWithBool:NO], k_key_syncFindPboard, - [NSNumber numberWithBool:NO], k_key_inlineContextualScriptMenu, - [NSNumber numberWithBool:YES], k_key_appendExtensionAtSaving, - [NSNumber numberWithBool:YES], k_key_showStatusBarThousSeparator, - [NSNumber numberWithBool:YES], k_key_showNavigationBar, - [NSNumber numberWithBool:YES], k_key_wrapLines, - [NSNumber numberWithInt:0], k_key_defaultLineEndCharCode, - theEncodings, k_key_encodingList, - [[NSFont controlContentFontOfSize:[NSFont systemFontSize]] fontName], k_key_fontName, - [NSNumber numberWithFloat:[NSFont systemFontSize]], k_key_fontSize, - [NSNumber numberWithUnsignedLong:k_autoDetectEncodingMenuTag], k_key_encodingInOpen, - [NSNumber - numberWithUnsignedLong:CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingUTF8)], - k_key_encodingInNew, - [NSNumber numberWithBool:YES], k_key_referToEncodingTag, - [NSNumber numberWithBool:YES], k_key_createNewAtStartup, - [NSNumber numberWithBool:YES], k_key_reopenBlankWindow, - [NSNumber numberWithBool:NO], k_key_checkSpellingAsType, - [NSNumber numberWithUnsignedInt:0], k_key_saveTypeCreator, - [NSNumber numberWithFloat:600.0], k_key_windowWidth, - [NSNumber numberWithFloat:450.0], k_key_windowHeight, - [NSNumber numberWithBool:NO], k_key_autoExpandTab, - [NSNumber numberWithUnsignedInt:4], k_key_tabWidth, - [NSNumber numberWithFloat:1.0], k_key_windowAlpha, - [NSNumber numberWithBool:YES], k_key_alphaOnlyTextView, - [NSNumber numberWithBool:YES], k_key_autoIndent, - [NSArchiver archivedDataWithRootObject:[NSColor grayColor]], k_key_invisibleCharactersColor, - [NSNumber numberWithBool:NO], k_key_showInvisibleSpace, - [NSNumber numberWithUnsignedInt:0], k_key_invisibleSpace, - [NSNumber numberWithBool:NO], k_key_showInvisibleTab, - [NSNumber numberWithUnsignedInt:0], k_key_invisibleTab, - [NSNumber numberWithBool:NO], k_key_showInvisibleNewLine, - [NSNumber numberWithUnsignedInt:0], k_key_invisibleNewLine, - [NSNumber numberWithBool:NO], k_key_showInvisibleFullwidthSpace, - [NSNumber numberWithUnsignedInt:0], k_key_invisibleFullwidthSpace, - [NSNumber numberWithBool:NO], k_key_showOtherInvisibleChars, - [NSNumber numberWithBool:NO], k_key_highlightCurrentLine, - [NSNumber numberWithBool:YES], k_key_setHiliteLineColorToIMChars, - [NSArchiver archivedDataWithRootObject:[NSColor textColor]], k_key_textColor, - [NSArchiver archivedDataWithRootObject:[NSColor textBackgroundColor]], k_key_backgroundColor, - [NSArchiver archivedDataWithRootObject:[NSColor textColor]], k_key_insertionPointColor, - [NSArchiver archivedDataWithRootObject:[NSColor selectedTextBackgroundColor]], - k_key_selectionColor, - [NSArchiver archivedDataWithRootObject: + + NSDictionary *theDefaults = @{k_key_showLineNumbers: @YES, + k_key_showWrappedLineMark: @YES, + k_key_showStatusBar: @YES, + k_key_countLineEndingAsChar: @YES, + k_key_syncFindPboard: @NO, + k_key_inlineContextualScriptMenu: @NO, + k_key_appendExtensionAtSaving: @YES, + k_key_showStatusBarThousSeparator: @YES, + k_key_showNavigationBar: @YES, + k_key_wrapLines: @YES, + k_key_defaultLineEndCharCode: @0, + k_key_encodingList: theEncodings, + k_key_fontName: [[NSFont controlContentFontOfSize:[NSFont systemFontSize]] fontName], + k_key_fontSize: @([NSFont systemFontSize]), + k_key_encodingInOpen: @(k_autoDetectEncodingMenuTag), + k_key_encodingInNew: @(CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingUTF8)), + k_key_referToEncodingTag: @YES, + k_key_createNewAtStartup: @YES, + k_key_reopenBlankWindow: @YES, + k_key_checkSpellingAsType: @NO, + k_key_saveTypeCreator: @0U, + k_key_windowWidth: @600.0f, + k_key_windowHeight: @450.0f, + k_key_autoExpandTab: @NO, + k_key_tabWidth: @4U, + k_key_windowAlpha: @1.0f, + k_key_alphaOnlyTextView: @YES, + k_key_autoIndent: @YES, + k_key_invisibleCharactersColor: [NSArchiver archivedDataWithRootObject:[NSColor grayColor]], + k_key_showInvisibleSpace: @NO, + k_key_invisibleSpace: @0U, + k_key_showInvisibleTab: @NO, + k_key_invisibleTab: @0U, + k_key_showInvisibleNewLine: @NO, + k_key_invisibleNewLine: @0U, + k_key_showInvisibleFullwidthSpace: @NO, + k_key_invisibleFullwidthSpace: @0U, + k_key_showOtherInvisibleChars: @NO, + k_key_highlightCurrentLine: @NO, + k_key_setHiliteLineColorToIMChars: @YES, + k_key_textColor: [NSArchiver archivedDataWithRootObject:[NSColor textColor]], + k_key_backgroundColor: [NSArchiver archivedDataWithRootObject:[NSColor textBackgroundColor]], + k_key_insertionPointColor: [NSArchiver archivedDataWithRootObject:[NSColor textColor]], + k_key_selectionColor: [NSArchiver archivedDataWithRootObject:[NSColor selectedTextBackgroundColor]], + k_key_highlightLineColor: [NSArchiver archivedDataWithRootObject: [NSColor colorWithCalibratedRed:0.843 green:0.953 blue:0.722 alpha:1.0]], - k_key_highlightLineColor, - [NSArchiver archivedDataWithRootObject: + k_key_keywordsColor: [NSArchiver archivedDataWithRootObject: [NSColor colorWithCalibratedRed:0.047 green:0.102 blue:0.494 alpha:1.0]], - k_key_keywordsColor, - [NSArchiver archivedDataWithRootObject: + k_key_commandsColor: [NSArchiver archivedDataWithRootObject: [NSColor colorWithCalibratedRed:0.408 green:0.220 blue:0.129 alpha:1.0]], - k_key_commandsColor, - [NSArchiver archivedDataWithRootObject:[NSColor blueColor]], k_key_numbersColor, - [NSArchiver archivedDataWithRootObject: + k_key_numbersColor: [NSArchiver archivedDataWithRootObject:[NSColor blueColor]], + k_key_valuesColor: [NSArchiver archivedDataWithRootObject: [NSColor colorWithCalibratedRed:0.463 green:0.059 blue:0.313 alpha:1.0]], - k_key_valuesColor, - [NSArchiver archivedDataWithRootObject: + k_key_stringsColor: [NSArchiver archivedDataWithRootObject: [NSColor colorWithCalibratedRed:0.537 green:0.075 blue:0.08 alpha:1.0]], - k_key_stringsColor, - [NSArchiver archivedDataWithRootObject:[NSColor blueColor]], k_key_charactersColor, - [NSArchiver archivedDataWithRootObject: + k_key_charactersColor: [NSArchiver archivedDataWithRootObject:[NSColor blueColor]], + k_key_commentsColor: [NSArchiver archivedDataWithRootObject: [NSColor colorWithCalibratedRed:0.137 green:0.431 blue:0.145 alpha:1.0]], - k_key_commentsColor, - [NSNumber numberWithBool:YES], k_key_doColoring, - NSLocalizedString(@"None",@""), k_key_defaultColoringStyleName, - [NSNumber numberWithBool:NO], k_key_delayColoring, - [NSArray arrayWithObjects: - [NSDictionary dictionaryWithObjectsAndKeys: - @"jpg, jpeg, gif, png", k_key_fileDropExtensions, - @">>\" alt =\"<<>>\" title=\"<<>>\" width=\"<<>>\" height=\"<<>>\" />", k_key_fileDropFormatString, - nil], nil], k_key_fileDropArray, - [NSNumber numberWithInt:1], k_key_NSDragAndDropTextDelay, - [NSNumber numberWithBool:NO], k_key_smartInsertAndDelete, - [NSNumber numberWithBool:YES], k_key_shouldAntialias, - [NSNumber numberWithUnsignedInt:0], k_key_completeAddStandardWords, - [NSNumber numberWithBool:NO], k_key_showPageGuide, - [NSNumber numberWithInt:80], k_key_pageGuideColumn, - [NSNumber numberWithFloat:0.0], k_key_lineSpacing, - [NSNumber numberWithBool:NO], k_key_swapYenAndBackSlashKey, - [NSNumber numberWithBool:YES], k_key_fixLineHeight, - [NSNumber numberWithBool:YES], k_key_highlightBraces, - [NSNumber numberWithBool:NO], k_key_highlightLtGt, - [NSNumber numberWithBool:NO], k_key_saveUTF8BOM, - [NSNumber numberWithInt:0], k_key_setPrintFont, - [[NSFont controlContentFontOfSize:[NSFont systemFontSize]] fontName], k_key_printFontName, - [NSNumber numberWithFloat:[NSFont systemFontSize]], k_key_printFontSize, - [NSNumber numberWithBool:YES], k_printHeader, - [NSNumber numberWithInt:3], k_headerOneStringIndex, - [NSNumber numberWithInt:4], k_headerTwoStringIndex, - [NSNumber numberWithInt:0], k_headerOneAlignIndex, - [NSNumber numberWithInt:2], k_headerTwoAlignIndex, - [NSNumber numberWithBool:YES], k_printHeaderSeparator, - [NSNumber numberWithBool:YES], k_printFooter, - [NSNumber numberWithInt:0], k_footerOneStringIndex, - [NSNumber numberWithInt:5], k_footerTwoStringIndex, - [NSNumber numberWithInt:0], k_footerOneAlignIndex, - [NSNumber numberWithInt:1], k_footerTwoAlignIndex, - [NSNumber numberWithBool:YES], k_printFooterSeparator, - [NSNumber numberWithInt:0], k_printLineNumIndex, - [NSNumber numberWithInt:0], k_printInvisibleCharIndex, - [NSNumber numberWithInt:0], k_printColorIndex, + k_key_doColoring: @YES, + k_key_defaultColoringStyleName: NSLocalizedString(@"None",@""), + k_key_delayColoring: @NO, + k_key_fileDropArray: @[@{k_key_fileDropExtensions: @"jpg, jpeg, gif, png", + k_key_fileDropFormatString: @">>\" alt =\"<<>>\" title=\"<<>>\" width=\"<<>>\" height=\"<<>>\" />"}], + k_key_NSDragAndDropTextDelay: @1, + k_key_smartInsertAndDelete: @NO, + k_key_shouldAntialias: @YES, + k_key_completeAddStandardWords: @0U, + k_key_showPageGuide: @NO, + k_key_pageGuideColumn: @80, + k_key_lineSpacing: @0.0f, + k_key_swapYenAndBackSlashKey: @NO, + k_key_fixLineHeight: @YES, + k_key_highlightBraces: @YES, + k_key_highlightLtGt: @NO, + k_key_saveUTF8BOM: @NO, + k_key_setPrintFont: @0, + k_key_printFontName: [[NSFont controlContentFontOfSize:[NSFont systemFontSize]] fontName], + k_key_printFontSize: @([NSFont systemFontSize]), + k_printHeader: @YES, + k_headerOneStringIndex: @3, + k_headerTwoStringIndex: @4, + k_headerOneAlignIndex: @0, + k_headerTwoAlignIndex: @2, + k_printHeaderSeparator: @YES, + k_printFooter: @YES, + k_footerOneStringIndex: @0, + k_footerTwoStringIndex: @5, + k_footerOneAlignIndex: @0, + k_footerTwoAlignIndex: @1, + k_printFooterSeparator: @YES, + k_printLineNumIndex: @0, + k_printInvisibleCharIndex: @0, + k_printColorIndex: @0, /* -------- 以下、環境設定にない設定項目 -------- */ - [NSNumber numberWithInt:1], k_key_gotoObjectMenuIndex, // in Only goto window (not pref). - [NSArchiver archivedDataWithRootObject: + k_key_gotoObjectMenuIndex: @1, // in Only goto window (not pref). + k_key_HCCBackgroundColor: [NSArchiver archivedDataWithRootObject: [NSColor colorWithCalibratedRed:1.0 green:1.0 blue:1.0 alpha:1.0]], - k_key_HCCBackgroundColor, - [NSArchiver archivedDataWithRootObject: + k_key_HCCForeColor: [NSArchiver archivedDataWithRootObject: [NSColor colorWithCalibratedRed:0.0 green:0.0 blue:0.0 alpha:1.0]], - k_key_HCCForeColor, - [NSString stringWithString:@"Sample Text"], k_key_HCCSampleText, - [NSArray array], k_key_HCCForeComboBoxData, - [NSArray array], k_key_HCCBackComboBoxData, - [NSNumber numberWithBool:NO], k_key_foreColorCBoxIsOk, - [NSNumber numberWithBool:NO], k_key_backgroundColorCBoxIsOk, - [self factoryDefaultOfTextInsertStringArray], k_key_insertCustomTextArray, + k_key_HCCSampleText: @"Sample Text", + k_key_HCCForeComboBoxData: @[], + k_key_HCCBackComboBoxData: @[], + k_key_foreColorCBoxIsOk: @NO, + k_key_backgroundColorCBoxIsOk: @NO, + k_key_insertCustomTextArray: [self factoryDefaultOfTextInsertStringArray], /* -------- 以下、隠し設定 -------- */ - [NSString stringWithString:@"Courier"], k_key_statusBarFontName, - [NSNumber numberWithFloat:12.0], k_key_statusBarFontSize, - [NSString stringWithString:@"ArialNarrow"], k_key_lineNumFontName, - [NSNumber numberWithFloat:10.0], k_key_lineNumFontSize, - [NSArchiver archivedDataWithRootObject:[NSColor darkGrayColor]], k_key_lineNumFontColor, - [NSNumber numberWithFloat:0.001], k_key_basicColoringDelay, - [NSNumber numberWithFloat:0.3], k_key_firstColoringDelay, - [NSNumber numberWithFloat:0.7], k_key_secondColoringDelay, - [NSNumber numberWithFloat:0.12], k_key_lineNumUpdateInterval, - [NSNumber numberWithFloat:0.2], k_key_infoUpdateInterval, - [NSNumber numberWithFloat:0.42], k_key_incompatibleCharInterval, - [NSNumber numberWithFloat:0.37], k_key_outlineMenuInterval, - [NSString stringWithString:@"Helvetica"], k_key_navigationBarFontName, - [NSNumber numberWithFloat:11.0], k_key_navigationBarFontSize, - [NSNumber numberWithUnsignedInt:110], k_key_outlineMenuMaxLength, - [[NSFont systemFontOfSize:[NSFont systemFontSize]] fontName], k_key_headerFooterFontName, - [NSNumber numberWithFloat:10.0], k_key_headerFooterFontSize, - [NSString stringWithString:@"%Y-%m-%d %H:%M:%S"], k_key_headerFooterDateTimeFormat, - [NSNumber numberWithBool:YES], k_key_headerFooterPathAbbreviatingWithTilde, - [NSNumber numberWithFloat:0.0], k_key_textContainerInsetWidth, - [NSNumber numberWithFloat:4.0], k_key_textContainerInsetHeightTop, - [NSNumber numberWithFloat:16.0], k_key_textContainerInsetHeightBottom, - [NSNumber numberWithUnsignedInt:115000], k_key_showColoringIndicatorTextLength, - [NSNumber numberWithBool:YES], k_key_runAppleScriptInLaunching, - [NSNumber numberWithBool:YES], k_key_showAlertForNotWritable, - [NSNumber numberWithBool:YES], k_key_notifyEditByAnother, // 0.9.4までは環境設定にあった(2008.06.03) - - nil]; + k_key_statusBarFontSize: @11.0f, + k_key_lineNumFontName: @"ArialNarrow", + k_key_lineNumFontSize: @10.0f, + k_key_lineNumFontColor: [NSArchiver archivedDataWithRootObject:[NSColor darkGrayColor]], + k_key_basicColoringDelay: @0.001f, + k_key_firstColoringDelay: @0.3f, + k_key_secondColoringDelay: @0.7f, + k_key_lineNumUpdateInterval: @0.12f, + k_key_infoUpdateInterval: @0.2f, + k_key_incompatibleCharInterval: @0.42f, + k_key_outlineMenuInterval: @0.37f, + k_key_navigationBarFontName: @"Helvetica", + k_key_navigationBarFontSize: @11.0f, + k_key_outlineMenuMaxLength: @110U, + k_key_headerFooterFontName: [[NSFont systemFontOfSize:[NSFont systemFontSize]] fontName], + k_key_headerFooterFontSize: @10.0f, + k_key_headerFooterDateTimeFormat: @"%Y-%m-%d %H:%M:%S", + k_key_headerFooterPathAbbreviatingWithTilde: @YES, + k_key_textContainerInsetWidth: @0.0f, + k_key_textContainerInsetHeightTop: @4.0f, + k_key_textContainerInsetHeightBottom: @16.0f, + k_key_showColoringIndicatorTextLength: @115000U, + k_key_runAppleScriptInLaunching: @YES, + k_key_showAlertForNotWritable: @YES, + k_key_notifyEditByAnother: @YES}; + [[NSUserDefaults standardUserDefaults] registerDefaults:theDefaults]; [[NSUserDefaultsController sharedUserDefaultsController] setInitialValues:theDefaults]; // transformer 登録 - id theTransformer = [[[CEHexColorTransformer alloc] init] autorelease]; + CEHexColorTransformer *theTransformer = [[[CEHexColorTransformer alloc] init] autorelease]; [NSValueTransformer setValueTransformer:theTransformer forName:@"HexColorTransformer"]; } @@ -246,10 +222,9 @@ + (NSArray *)factoryDefaultOfTextInsertStringArray // ------------------------------------------------------ { // インデックスが0-30の、合計31個 - return [NSArray arrayWithObjects: - @"
\n", @"", @"", @"", @"", @"", @"", @"", @"", @"", @"", + return @[@"
\n", @"", @"", @"", @"", @"", @"", @"", @"", @"", @"", @"", @"", @"", @"", @"", @"", @"", @"", @"", @"", - @"", @"", @"", @"", @"", @"", @"", @"", @"", @"", nil]; + @"", @"", @"", @"", @"", @"", @"", @"", @"", @""]; } @@ -262,7 +237,7 @@ + (NSArray *)factoryDefaultOfTextInsertStringArray //======================================================= // ------------------------------------------------------ -- (id)init +- (instancetype)init // 初期化 // ------------------------------------------------------ { @@ -270,13 +245,12 @@ - (id)init if (self) { NSMutableArray *theEncodings = [NSMutableArray array]; NSStringEncoding theEncoding; - int i; + NSUInteger i; for (i = 0; i < sizeof(k_CFStringEncodingInvalidYenList)/sizeof(CFStringEncodings); i++) { theEncoding = CFStringConvertEncodingToNSStringEncoding(k_CFStringEncodingInvalidYenList[i]); - [theEncodings addObject:[NSNumber numberWithUnsignedInt:theEncoding]]; + [theEncodings addObject:@(theEncoding)]; } _invalidYenEncodings = [theEncodings retain]; - _thousandsSeparator = [[[NSUserDefaults standardUserDefaults] valueForKey:NSThousandsSeparator] retain]; _didFinishLaunching = NO; } return self; @@ -292,7 +266,6 @@ - (void)dealloc [_encodingMenu release]; [_syntaxMenu release]; [_invalidYenEncodings release]; - [_thousandsSeparator release]; [super dealloc]; } @@ -373,12 +346,12 @@ - (void)buildAllSyntaxMenus // ------------------------------------------------------ -- (NSString *)invisibleSpaceCharacter:(unsigned int)inIndex +- (NSString *)invisibleSpaceCharacter:(NSUInteger)inIndex // 非表示半角スペース表示用文字を返すユーティリティメソッド // ------------------------------------------------------ { - unsigned int theMax = (sizeof(k_invisibleSpaceCharList) / sizeof(unichar)) - 1; - unsigned int theIndex = (inIndex > theMax) ? theMax : inIndex; + NSUInteger theMax = (sizeof(k_invisibleSpaceCharList) / sizeof(unichar)) - 1; + NSUInteger theIndex = (inIndex > theMax) ? theMax : inIndex; unichar theUnichar = k_invisibleSpaceCharList[theIndex]; return ([NSString stringWithCharacters:&theUnichar length:1]); @@ -386,12 +359,12 @@ - (NSString *)invisibleSpaceCharacter:(unsigned int)inIndex // ------------------------------------------------------ -- (NSString *)invisibleTabCharacter:(unsigned int)inIndex +- (NSString *)invisibleTabCharacter:(NSUInteger)inIndex // 非表示タブ表示用文字を返すユーティリティメソッド // ------------------------------------------------------ { - unsigned int theMax = (sizeof(k_invisibleTabCharList) / sizeof(unichar)) - 1; - unsigned int theIndex = (inIndex > theMax) ? theMax : inIndex; + NSUInteger theMax = (sizeof(k_invisibleTabCharList) / sizeof(unichar)) - 1; + NSUInteger theIndex = (inIndex > theMax) ? theMax : inIndex; unichar theUnichar = k_invisibleTabCharList[theIndex]; return ([NSString stringWithCharacters:&theUnichar length:1]); @@ -399,12 +372,12 @@ - (NSString *)invisibleTabCharacter:(unsigned int)inIndex // ------------------------------------------------------ -- (NSString *)invisibleNewLineCharacter:(unsigned int)inIndex +- (NSString *)invisibleNewLineCharacter:(NSUInteger)inIndex // 非表示改行表示用文字を返すユーティリティメソッド // ------------------------------------------------------ { - unsigned int theMax = (sizeof(k_invisibleNewLineCharList) / sizeof(unichar)) - 1; - unsigned int theIndex = (inIndex > theMax) ? theMax : inIndex; + NSUInteger theMax = (sizeof(k_invisibleNewLineCharList) / sizeof(unichar)) - 1; + NSUInteger theIndex = (inIndex > theMax) ? theMax : inIndex; unichar theUnichar = k_invisibleNewLineCharList[theIndex]; return ([NSString stringWithCharacters:&theUnichar length:1]); @@ -412,12 +385,12 @@ - (NSString *)invisibleNewLineCharacter:(unsigned int)inIndex // ------------------------------------------------------ -- (NSString *)invisibleFullwidthSpaceCharacter:(unsigned int)inIndex +- (NSString *)invisibleFullwidthSpaceCharacter:(NSUInteger)inIndex // 非表示全角スペース表示用文字を返すユーティリティメソッド // ------------------------------------------------------ { - unsigned int theMax = (sizeof(k_invisibleFullwidthSpaceCharList) / sizeof(unichar)) - 1; - unsigned int theIndex = (inIndex > theMax) ? theMax : inIndex; + NSUInteger theMax = (sizeof(k_invisibleFullwidthSpaceCharList) / sizeof(unichar)) - 1; + NSUInteger theIndex = (inIndex > theMax) ? theMax : inIndex; unichar theUnichar = k_invisibleFullwidthSpaceCharList[theIndex]; return ([NSString stringWithCharacters:&theUnichar length:1]); @@ -433,10 +406,9 @@ - (NSStringEncoding)encodingFromName:(NSString *)inEncodingName NSArray *theEncodings = [[[theValues valueForKey:k_key_encodingList] copy] autorelease]; NSStringEncoding outEncoding; BOOL theCorrect = NO; - int i, theCount = [theEncodings count]; - for (i = 0; i < theCount; i++) { - CFStringEncoding theCFEncoding = [[theEncodings objectAtIndex:i] unsignedLongValue]; + for (NSNumber *encoding in theEncodings) { + CFStringEncoding theCFEncoding = [encoding unsignedLongValue]; if (theCFEncoding != kCFStringEncodingInvalidId) { // = separator outEncoding = CFStringConvertEncodingToNSStringEncoding(theCFEncoding); if ([inEncodingName isEqualToString:[NSString localizedNameOfStringEncoding:outEncoding]]) { @@ -454,18 +426,18 @@ - (BOOL)isInvalidYenEncoding:(NSStringEncoding)inEncoding // エンコーディング名からNSStringEncodingを返すユーティリティメソッド // ------------------------------------------------------ { - return ([_invalidYenEncodings containsObject:[NSNumber numberWithUnsignedInt:inEncoding]]); + return ([_invalidYenEncodings containsObject:@(inEncoding)]); } // ------------------------------------------------------ -- (NSString *)keyEquivalentAndModifierMask:(unsigned int *)ioModMask +- (NSString *)keyEquivalentAndModifierMask:(NSUInteger *)ioModMask fromString:(NSString *)inString includingCommandKey:(BOOL)inBool // 文字列からキーボードショートカット定義を読み取るユーティリティメソッド //------------------------------------------------------ { *ioModMask = 0; - int theLength = [inString length]; + NSUInteger theLength = [inString length]; if ((inString == nil) || (theLength < 2)) { return @""; } NSString *outKey = [inString substringFromIndex:(theLength - 1)]; @@ -506,36 +478,6 @@ - (NSString *)keyEquivalentAndModifierMask:(unsigned int *)ioModMask } else { return @""; } - -} - - -// ------------------------------------------------------ -- (NSString *)stringFromUnsignedInt:(unsigned int)inInt -// unsigned int を文字列に変換するユーティリティメソッド -//------------------------------------------------------ -{ -// このメソッドは、Smultron を参考にさせていただきました。(2006.04.30) -// This method is based on Smultron.(written by Peter Borg – http://smultron.sourceforge.net) -// Smultron Copyright (c) 2004-2005 Peter Borg, All rights reserved. -// Smultron is released under GNU General Public License, http://www.gnu.org/copyleft/gpl.html - -// Leopard で検証した限りでは、NSNumberFormatter を使うよりも速い (2008.04.05) - - id theValues = [[NSUserDefaultsController sharedUserDefaultsController] values]; - NSMutableString *outString = [NSMutableString stringWithFormat:@"%u", inInt]; - - if ((![[theValues valueForKey:k_key_showStatusBarThousSeparator] boolValue]) || - (_thousandsSeparator == nil) || ([_thousandsSeparator length] < 1)) { - return outString; - } - int thePosition = [outString length] - 3; - - while (thePosition > 0) { - [outString insertString:_thousandsSeparator atIndex:thePosition]; - thePosition -= 3; - } - return outString; } @@ -554,12 +496,10 @@ - (void)awakeFromNib { [self setupSupportDirectory]; _preferences = [[CEPreferences alloc] initWithAppController:self]; - [self filterNotAvailableEncoding]; [self buildAllEncodingMenus]; [self setSyntaxMenu:[self buildSyntaxMenu]]; [[CEScriptManager sharedInstance] buildScriptMenu:nil]; [self cacheTheInvisibleGlyph]; - [self deleteWrongDotFile]; } @@ -650,9 +590,8 @@ - (void)applicationDidFinishLaunching:(NSNotification *)aNotification // AppleScript 起動のスピードアップのため一度動かしておく if ([[theValues valueForKey:k_key_runAppleScriptInLaunching] boolValue]) { - NSString *thePath = [[NSBundle mainBundle] pathForResource:@"startup" ofType:@"applescript"]; - if (thePath == nil) { return; } - NSURL *theURL = [NSURL fileURLWithPath:thePath]; + NSURL *theURL = [[NSBundle mainBundle] URLForResource:@"startup" withExtension:@"applescript"]; + if (theURL == nil) { return; } NSAppleScript *theAppleScript = [[[NSAppleScript alloc] initWithContentsOfURL:theURL error:nil] autorelease]; @@ -667,6 +606,9 @@ - (void)applicationDidFinishLaunching:(NSNotification *)aNotification // ファイルを開くデフォルトエンコーディングをセット [[CEDocumentController sharedDocumentController] setSelectAccessoryEncodingMenuToDefault:self]; + // 廃止した UserDeafults の値を取り除く + [self cleanDeprecatedDefaults]; + // 起動完了フラグをセット _didFinishLaunching = YES; } @@ -679,7 +621,7 @@ - (void)applicationDidBecomeActive:(NSNotification *)inNotification { // 各ドキュメントに外部プロセスによって変更保存されていた場合の通知を行わせる [[[CEDocumentController sharedDocumentController] documents] - makeObjectsPerformSelector:@selector(showUpdateAlertWithUKKQueueNotification)]; + makeObjectsPerformSelector:@selector(showUpdatedByExternalProcessAlert)]; } @@ -748,10 +690,9 @@ - (IBAction)openAppleScriptDictionary:(id)sender // アップルスクリプト辞書をスクリプトエディタで開く // ------------------------------------------------------ { - NSString *thePath = [[NSBundle mainBundle] pathForResource:@"openDictionary" ofType:@"applescript"]; - NSString *theSource = [NSString stringWithContentsOfFile:thePath]; + NSURL *URL = [[NSBundle mainBundle] URLForResource:@"openDictionary" withExtension:@"applescript"]; NSDictionary *theErrorInfo; - NSAppleScript *theAppleScript = [[[NSAppleScript alloc] initWithSource:theSource] autorelease]; + NSAppleScript *theAppleScript = [[[NSAppleScript alloc] initWithContentsOfURL:URL error:nil] autorelease]; (void)[theAppleScript executeAndReturnError:&theErrorInfo]; } @@ -799,18 +740,19 @@ - (IBAction)openBundledDocument:(id)sender // 付属ドキュメントを開く // ------------------------------------------------------ { - NSMenuItem *theMenuItem = (NSMenuItem *)sender; - NSString *theDocumentPath = [[[NSBundle mainBundle] bundlePath] stringByAppendingPathComponent:@"/Contents/Resources/Docs"]; - int i; + NSString *fileName = k_bundleDocumentDict[@([sender tag])]; + NSURL *URL = [[NSBundle mainBundle] URLForResource:fileName withExtension:@"rtf"]; - for (i = 0; k_bundleDocumentList[i].tag != 0; i++) { - if (k_bundleDocumentList[i].tag == theMenuItem.tag) { - theDocumentPath = [theDocumentPath stringByAppendingPathComponent:k_bundleDocumentList[i].path]; - break; - } - } + [[NSWorkspace sharedWorkspace] openURL:URL]; +} + - [[NSWorkspace sharedWorkspace] openFile:theDocumentPath]; +// ------------------------------------------------------ +- (IBAction)openWebSite:(id)sender +// Webサイト(coteditor.github.io)を開く +// ------------------------------------------------------ +{ + [[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:k_webSiteURL]]; } @@ -826,7 +768,7 @@ - (CETextSelection *)selection // 最も前面のドキュメントウィンドウの選択範囲オブジェクトを返す // ------------------------------------------------------ { - id theDoc = [[NSApp orderedDocuments] objectAtIndex:0]; + id theDoc = [NSApp orderedDocuments][0]; if (theDoc != nil) { return (CETextSelection *)[theDoc selection]; @@ -861,19 +803,27 @@ - (void)setupSupportDirectory // データ保存用ディレクトリの存在をチェック、なければつくる //------------------------------------------------------ { - NSString *theDirPath = [NSHomeDirectory( ) - stringByAppendingPathComponent:@"Library/Application Support/CotEditor"]; NSFileManager *theFileManager = [NSFileManager defaultManager]; + NSURL *URL = [[theFileManager URLForDirectory:NSApplicationSupportDirectory + inDomain:NSUserDomainMask + appropriateForURL:nil + create:YES + error:nil] + URLByAppendingPathComponent:@"CotEditor"]; BOOL theValueIsDir = NO, theValueCreated = NO; - if (![theFileManager fileExistsAtPath:theDirPath isDirectory:&theValueIsDir]) { - theValueCreated = [theFileManager createDirectoryAtPath:theDirPath attributes:nil]; + if (![theFileManager fileExistsAtPath:[URL path] isDirectory:&theValueIsDir]) { + theValueCreated = [theFileManager createDirectoryAtURL:URL + withIntermediateDirectories:YES + attributes:nil + error:nil]; if (!theValueCreated) { NSLog(@"Could not create support directory for CotEditor..."); } } else if (!theValueIsDir) { - NSLog(@"\"%@\" is not dir.", theDirPath); + NSLog(@"\"%@\" is not dir.", [URL path]); } + } @@ -887,7 +837,6 @@ - (NSArray *)encodingMenuNoActionFromArray:(NSArray *)inArray [[CEDocumentController sharedDocumentController] accessoryEncodingMenu]; NSMenu *theAccessoryEncodingMenu = [theAccessoryEncodingMenuButton menu]; NSMenuItem *theItem; - int i, theCount = [inArray count]; [theAccessoryEncodingMenuButton removeAllItems]; theItem = [[[NSMenuItem alloc] initWithTitle:NSLocalizedString(@"Auto-Detect",@"") @@ -896,8 +845,8 @@ - (NSArray *)encodingMenuNoActionFromArray:(NSArray *)inArray [theAccessoryEncodingMenu addItem:theItem]; [theAccessoryEncodingMenu addItem:[NSMenuItem separatorItem]]; - for (i = 0; i < theCount; i++) { - CFStringEncoding theCFEncoding = [[inArray objectAtIndex:i] unsignedLongValue]; + for (NSNumber *encoding in inArray) { + CFStringEncoding theCFEncoding = [encoding unsignedLongValue]; if (theCFEncoding == kCFStringEncodingInvalidId) { // set separator [theAccessoryEncodingMenu addItem:[NSMenuItem separatorItem]]; [outArray addObject:[NSMenuItem separatorItem]]; @@ -916,6 +865,20 @@ - (NSArray *)encodingMenuNoActionFromArray:(NSArray *)inArray } +//------------------------------------------------------ +- (void)cleanDeprecatedDefaults +// 廃止したuserDefaultsのデータをユーザのplistから削除 +//------------------------------------------------------ +{ + NSArray *deprecatedKeys = @[@"statusAreaFontName" // deprecated on 1.4 + ]; + + for (NSString *key in deprecatedKeys) { + [[NSUserDefaults standardUserDefaults] removeObjectForKey:key]; + } +} + + //------------------------------------------------------ - (NSMenu *)buildFormatEncodingMenuFromArray:(NSArray *)inArray // フォーマットのエンコーディングメニューアイテムを生成 @@ -924,10 +887,9 @@ - (NSMenu *)buildFormatEncodingMenuFromArray:(NSArray *)inArray NSMenu *theEncodingMenu = [[[NSMenu alloc] initWithTitle:@"ENCODEING"] autorelease]; NSMenuItem *theFormatMenuItem = [[[[NSApp mainMenu] itemAtIndex:k_formatMenuIndex] submenu] itemWithTag:k_fileEncodingMenuItemTag]; - int i, theCount = [inArray count]; - for (i = 0; i < theCount; i++) { - CFStringEncoding theCFEncoding = [[inArray objectAtIndex:i] unsignedLongValue]; + for (NSNumber *encoding in inArray) { + CFStringEncoding theCFEncoding = [encoding unsignedLongValue]; if (theCFEncoding == kCFStringEncodingInvalidId) { // set separator [theEncodingMenu addItem:[NSMenuItem separatorItem]]; } else { @@ -956,7 +918,7 @@ - (NSMenu *)buildSyntaxMenu NSMenuItem *theMenuItem; NSString *theMenuTitle; NSArray *theArray = [[CESyntaxManager sharedInstance] styleNames]; - int i, theCount = [theArray count]; + NSInteger i, theCount = [theArray count]; [theFormatMenuItem setSubmenu:nil]; // まず開放しておかないと、同じキーボードショートカットキーが設定できない @@ -967,7 +929,7 @@ - (NSMenu *)buildSyntaxMenu if (i == 0) { theMenuTitle = NSLocalizedString(@"None",@""); } else { - theMenuTitle = [theArray objectAtIndex:(i - 2)]; + theMenuTitle = theArray[(i - 2)]; } theMenuItem = [[[NSMenuItem alloc] initWithTitle:theMenuTitle action:@selector(setSyntaxStyle:) keyEquivalent:@""] autorelease]; @@ -996,7 +958,7 @@ - (void)cacheTheInvisibleGlyph //------------------------------------------------------ { NSMutableString *theChars = [NSMutableString string]; - int i; + NSUInteger i; for (i = 0; i < (sizeof(k_invisibleSpaceCharList) / sizeof(unichar)); i++) { [theChars appendString:[NSString stringWithCharacters:&k_invisibleSpaceCharList[i] length:1]]; @@ -1021,48 +983,4 @@ - (void)cacheTheInvisibleGlyph (void)[theLayoutManager glyphRangeForTextContainer:theContainer]; } - -//------------------------------------------------------ -- (void)filterNotAvailableEncoding -// 実行環境で使えないエンコーディングを削除する -//------------------------------------------------------ -{ -// 新しいバージョンの Mac OS X から古いバージョンへ環境設定ファイルが写された場合への対応 - - if (floor(NSAppKitVersionNumber) <= NSAppKitVersionNumber10_3) { // = 10.3.x以前 - NSUserDefaults *theUserDefaults = [NSUserDefaults standardUserDefaults]; - NSMutableArray *theNewList = [[[theUserDefaults arrayForKey:k_key_encodingList] mutableCopy] autorelease]; - NSNumber *theNum; - int i; - - for (i = 0; i < sizeof(k_CFStringEncoding10_4List)/sizeof(CFStringEncodings); i++) { - theNum = [NSNumber numberWithUnsignedLong:k_CFStringEncoding10_4List[i]]; - if ([theNewList containsObject:theNum]) { - [theNewList removeObject:theNum]; - } - } - [theUserDefaults setObject:theNewList forKey:k_key_encodingList]; - [theUserDefaults synchronize]; - } -} - - -//------------------------------------------------------ -- (void)deleteWrongDotFile -// 0.9.5までのバグで作成された可能性のある不正なファイルを削除 -//------------------------------------------------------ -{ - // 0.9.5まで、シンタックススタイルシートを新規に作成した場合の処理が不正で「.plist」というファイルが作成されてしまっていた。 - // その「~/Library/Application Support/CotEditor/SyntaxColorings/.plist」を削除する(2008.11.02) - NSFileManager *theFileManager = [NSFileManager defaultManager]; - NSString *thePath = [NSHomeDirectory( ) - stringByAppendingPathComponent:@"Library/Application Support/CotEditor/SyntaxColorings/.plist"]; - - if ([theFileManager fileExistsAtPath:thePath]) { - (void)[theFileManager removeFileAtPath:thePath handler:nil]; - } -} - - - @end diff --git a/CEApplication.h b/CEApplication.h index 766dd1d748..557a002929 100644 --- a/CEApplication.h +++ b/CEApplication.h @@ -3,8 +3,9 @@ CEApplication (for CotEditor) -Copyright (C) 2004-2007 nakamuxu. -http://www.aynimac.com/ + Copyright (C) 2004-2007 nakamuxu. + Copyright (C) 2014 CotEditor Project + http://coteditor.github.io ================================================= encoding="UTF-8" @@ -31,16 +32,10 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #import -#import "constants.h" @interface CEApplication : NSApplication -{ - int _requestID; - int _keyCatchMode; -} -// Public method -- (void)setKeyCatchMode:(int)inMode; +@property (nonatomic) NSInteger keyCatchMode; @end diff --git a/CEApplication.m b/CEApplication.m index 084b6e2ad6..71ef589880 100644 --- a/CEApplication.m +++ b/CEApplication.m @@ -3,8 +3,9 @@ CEApplication (for CotEditor) -Copyright (C) 2004-2007 nakamuxu. -http://www.aynimac.com/ + Copyright (C) 2004-2007 nakamuxu. + Copyright (C) 2014 CotEditor Project + http://coteditor.github.io ================================================= encoding="UTF-8" @@ -31,21 +32,12 @@ */ #import "CEApplication.h" - - -@interface CEApplication (Private) -- (void)setKeyCatchModeWithNotification:(NSNotification *)inNotification; -@end - - -//------------------------------------------------------------------------------------------ - - +#import "constants.h" @implementation CEApplication -#pragma mark ===== Public method ===== +#pragma mark Public Methods //======================================================= // Public method @@ -53,18 +45,18 @@ @implementation CEApplication //======================================================= // ------------------------------------------------------ -- (id)init +- (instancetype)init // 初期化 // ------------------------------------------------------ { self = [super init]; if (self) { [self setKeyCatchMode:k_keyDownNoCatch]; - [[NSNotificationCenter defaultCenter] addObserver:self - selector:@selector(setKeyCatchModeWithNotification:) - name:k_setKeyCatchModeToCatchMenuShortcut object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(setKeyCatchModeWithNotification:) + name:k_setKeyCatchModeToCatchMenuShortcut + object:nil]; } - return self; } @@ -82,76 +74,61 @@ - (void)dealloc // ------------------------------------------------------ -- (void)sendEvent:(NSEvent *)inEvent +- (void)sendEvent:(NSEvent *)anEvent // keyDownイベントをキャッチする // ------------------------------------------------------ { - if ((_keyCatchMode == k_catchMenuShortcut) && ([inEvent type] == NSKeyDown)) { - - NSString *theCharIgnoringMod = [inEvent charactersIgnoringModifiers]; - if ((theCharIgnoringMod != nil) && ([theCharIgnoringMod length] > 0)) { - unichar theChar = [theCharIgnoringMod characterAtIndex:0]; - unsigned int theModFlags = [inEvent modifierFlags]; - NSCharacterSet *theIgnoringShiftSet = - [NSCharacterSet characterSetWithCharactersInString:@"`~!@#$%^&()_{}|\":<>?=/*-+.'"]; + if (([self keyCatchMode] == k_catchMenuShortcut) && ([anEvent type] == NSKeyDown)) { + NSString *charIgnoringMod = [anEvent charactersIgnoringModifiers]; + if ((charIgnoringMod != nil) && ([charIgnoringMod length] > 0)) { + unichar theChar = [charIgnoringMod characterAtIndex:0]; + NSUInteger modifierFlags = [anEvent modifierFlags]; + NSCharacterSet *ignoringShiftSet = [NSCharacterSet characterSetWithCharactersInString:@"`~!@#$%^&()_{}|\":<>?=/*-+.'"]; // Backspace または delete キーが押されていた時、是正する // (return 上の方にあるのが Backspace、テンキーとのあいだにある「delete」の刻印があるのが delete(forword)) if (theChar == NSDeleteCharacter) { - unichar theBSChar = NSBackspaceCharacter; - theCharIgnoringMod = [NSString stringWithCharacters:&theBSChar length:1]; + unichar BSChar = NSBackspaceCharacter; + charIgnoringMod = [NSString stringWithCharacters:&BSChar length:1]; } else if (theChar == NSDeleteFunctionKey) { - unichar theDeleteForwardChar = NSDeleteCharacter; - theCharIgnoringMod = [NSString stringWithCharacters:&theDeleteForwardChar length:1]; + unichar deleteForwardChar = NSDeleteCharacter; + charIgnoringMod = [NSString stringWithCharacters:&deleteForwardChar length:1]; } // 不要なシフトを削除 - if (([theIgnoringShiftSet characterIsMember:[theCharIgnoringMod characterAtIndex:0]]) && - (theModFlags & NSShiftKeyMask)) { - theModFlags ^= NSShiftKeyMask; + if ([ignoringShiftSet characterIsMember:[charIgnoringMod characterAtIndex:0]] && + (modifierFlags & NSShiftKeyMask)) { + modifierFlags ^= NSShiftKeyMask; } - NSDictionary *theUserInfo = [NSDictionary dictionaryWithObjectsAndKeys: - [NSNumber numberWithUnsignedInt:theModFlags], k_keyBindingModFlags, - theCharIgnoringMod, k_keyBindingChar, - nil]; - [[NSNotificationCenter defaultCenter] postNotificationName:k_catchMenuShortcutNotification - object:self userInfo:theUserInfo]; + NSDictionary *userInfo = @{k_keyBindingModFlags: @(modifierFlags), + k_keyBindingChar: charIgnoringMod}; + [[NSNotificationCenter defaultCenter] postNotificationName:k_catchMenuShortcutNotification + object:self + userInfo:userInfo]; [self setKeyCatchMode:k_keyDownNoCatch]; return; } } - [super sendEvent:inEvent]; + [super sendEvent:anEvent]; } -// ------------------------------------------------------ -- (void)setKeyCatchMode:(int)inMode -// キーキャッチモード設定 -// ------------------------------------------------------ -{ - _keyCatchMode = inMode; -} - - -@end - -@implementation CEApplication (Private) +#pragma mark - +#pragma mark Private Methods //======================================================= // Private method // //======================================================= - // ------------------------------------------------------ -- (void)setKeyCatchModeWithNotification:(NSNotification *)inNotification +- (void)setKeyCatchModeWithNotification:(NSNotification *)aNotification // ノーティフィケーションからキーキャッチモードを設定 // ------------------------------------------------------ { - int theMode = [[[inNotification userInfo] objectForKey:k_keyCatchMode] intValue]; + NSInteger mode = [[aNotification userInfo][k_keyCatchMode] integerValue]; - [self setKeyCatchMode:theMode]; + [self setKeyCatchMode:mode]; } - @end diff --git a/CEDocumentAppleScript.h b/CEDocument+ScriptingSupport.h similarity index 90% rename from CEDocumentAppleScript.h rename to CEDocument+ScriptingSupport.h index e1a1b16a3c..b3fa373036 100644 --- a/CEDocumentAppleScript.h +++ b/CEDocument+ScriptingSupport.h @@ -1,10 +1,11 @@ /* ================================================= -CEDocument (AdditionalAppleScript) +CEDocument+ScriptingSupport (for CotEditor) -Copyright (C) 2004-2007 nakamuxu. -http://www.aynimac.com/ + Copyright (C) 2004-2007 nakamuxu. + Copyright (C) 2014 CotEditor Project + http://coteditor.github.io ================================================= encoding="UTF-8" @@ -34,7 +35,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #import "CEDocument.h" -@interface CEDocument (AdditionalAppleScript) +@interface CEDocument (ScriptingSupport) // AppleScript Enum typedef enum { diff --git a/CEDocumentAppleScript.m b/CEDocument+ScriptingSupport.m similarity index 85% rename from CEDocumentAppleScript.m rename to CEDocument+ScriptingSupport.m index b694f55425..be606bd189 100644 --- a/CEDocumentAppleScript.m +++ b/CEDocument+ScriptingSupport.m @@ -1,10 +1,11 @@ /* ================================================= -CEDocument (AdditionalAppleScript) +CEDocument+ScriptingSupport (for CotEditor) -Copyright (C) 2004-2007 nakamuxu. -http://www.aynimac.com/ + Copyright (C) 2004-2007 nakamuxu. + Copyright (C) 2014 CotEditor Project + http://coteditor.github.io ================================================= encoding="UTF-8" @@ -30,14 +31,14 @@ ================================================= */ -#import "CEDocumentAppleScript.h" +#import "CEDocument+ScriptingSupport.h" //======================================================= // Private method // //======================================================= -@interface CEDocument (AdditionalAppleScriptPrivate) +@interface CEDocument (ScriptingSupportPrivate) - (BOOL)doFind:(NSString *)inSearchString range:(NSRange)inRange option:(unsigned)inMask withRegularExpression:(BOOL)inRE; @end @@ -48,7 +49,7 @@ - (BOOL)doFind:(NSString *)inSearchString range:(NSRange)inRange -@implementation CEDocument (AdditionalAppleScript) +@implementation CEDocument (ScriptingSupport) #pragma mark ===== Public method ===== @@ -81,7 +82,7 @@ - (void)textStorageDidProcessEditing:(NSNotification *)inNotification { NSString *theNewString = [(NSTextStorage *)[inNotification object] string]; - [[_editorView textView] replaceAllStringTo:theNewString]; + [[[self editorView] textView] replaceAllStringTo:theNewString]; [self cleanUpTextStorage:(NSTextStorage *)[inNotification object]]; } @@ -100,7 +101,7 @@ - (NSTextStorage *)textStorage // ドキュメントの文字列を返す(text型) // ------------------------------------------------------ { - NSTextStorage *outStorage = [[[NSTextStorage alloc] initWithString:[_editorView stringForSave]] autorelease]; + NSTextStorage *outStorage = [[[NSTextStorage alloc] initWithString:[[self editorView] stringForSave]] autorelease]; [outStorage setDelegate:self]; // 0.5秒後にデリゲートをやめる(放置するとクラッシュの原因になる) @@ -116,7 +117,7 @@ - (void)setTextStorage:(id)inObject; // ------------------------------------------------------ { if ([inObject isKindOfClass:[NSTextStorage class]]) { - [[_editorView textView] replaceAllStringTo:[inObject string]]; + [[[self editorView] textView] replaceAllStringTo:[inObject string]]; } } @@ -144,9 +145,9 @@ - (NSNumber *)length // ドキュメントの文字数を返す(integer型) // ------------------------------------------------------ { - int theLength = [[_editorView stringForSave] length]; + int theLength = [[[self editorView] stringForSave] length]; - return [NSNumber numberWithInt:theLength]; + return @(theLength); } @@ -155,7 +156,7 @@ - (CELineEnding)lineEnding // 行末コードを返す(enum型) // ------------------------------------------------------ { - int theCode = [_editorView lineEndingCharacter]; + NSInteger theCode = [[self editorView] lineEndingCharacter]; CELineEnding outLineEnding; switch (theCode) { @@ -178,7 +179,7 @@ - (void)setLineEnding:(CELineEnding)inEnding // 行末コードをセット // ------------------------------------------------------ { - int theCode; + NSInteger theCode; switch (inEnding) { case CELineEndingCR: @@ -200,7 +201,7 @@ - (NSString *)encoding // エンコーディング名を返す(Unicode text型) // ------------------------------------------------------ { - return [NSString localizedNameOfStringEncoding:_encoding]; + return [NSString localizedNameOfStringEncoding:[self encodingCode]]; } @@ -224,7 +225,7 @@ - (NSString *)coloringStyle // カラーリングスタイル名を返す(Unicode text型) // ------------------------------------------------------ { - return [_editorView syntaxStyleNameToColoring]; + return [[self editorView] syntaxStyleNameToColoring]; } @@ -262,7 +263,7 @@ - (NSNumber *)alphaOnlyTextView // 透明度をtextViewだけに適用するかどうかを返す // ------------------------------------------------------ { - return [NSNumber numberWithBool:_alphaOnlyTextViewInThisWindow]; + return @([self alphaOnlyTextViewInThisWindow]); } @@ -281,9 +282,9 @@ - (NSNumber *)transparency // ウィンドウまたはtextViewの透明度を返す // ------------------------------------------------------ { - float theAlpha = [self alpha]; + CGFloat theAlpha = [self alpha]; - return [NSNumber numberWithFloat:theAlpha]; + return @(theAlpha); // AppleScript で値を得てみると、0.50000000113 とかになってしまう **** 2005.03.04 } @@ -293,7 +294,7 @@ - (void)setTransparency:(NSNumber *)inAlpha // ウィンドウまたはtextViewの透明度を設定 // ------------------------------------------------------ { - [self setAlpha:[inAlpha floatValue]]; + [self setAlpha:(CGFloat)[inAlpha doubleValue]]; } @@ -302,9 +303,9 @@ - (NSNumber *)wrapLines // ワードラップの状態を返す // ------------------------------------------------------ { - BOOL theBOOL = [_editorView wrapLines]; + BOOL theBOOL = [[self editorView] wrapLines]; - return [NSNumber numberWithBool:theBOOL]; + return @(theBOOL); } @@ -313,7 +314,7 @@ - (void)setWrapLines:(NSNumber *)inValue // ワードラップを切り替える // ------------------------------------------------------ { - [_editorView setWrapLines:[inValue boolValue]]; + [[self editorView] setWrapLines:[inValue boolValue]]; } @@ -322,9 +323,9 @@ - (NSNumber *)lineSpacing // 行間値を返す // ------------------------------------------------------ { - float theSpacing = [self lineSpacingInTextView]; + CGFloat theSpacing = [self lineSpacingInTextView]; - return [NSNumber numberWithFloat:theSpacing]; + return @(theSpacing); } @@ -333,7 +334,7 @@ - (void)setLineSpacing:(NSNumber *)inSpacing // 行間値をセット // ------------------------------------------------------ { - [self setCustomLineSpacingToTextView:[inSpacing floatValue]]; + [self setCustomLineSpacingToTextView:(CGFloat)[inSpacing doubleValue]]; } @@ -356,10 +357,10 @@ - (NSNumber *)handleConvert:(NSScriptCommand *)inCommand if (theEncoding == NSNotFound) { theResult = NO; - } else if (theEncoding == _encoding) { + } else if (theEncoding == [self encodingCode]) { theResult = YES; } else { - NSString *theActionName = [NSString stringWithString:@"TEST"]; + NSString *theActionName = @"TEST"; BOOL theLossy = NO; theLossy = [[theArg valueForKey:@"Lossy"] boolValue]; @@ -367,7 +368,7 @@ - (NSNumber *)handleConvert:(NSScriptCommand *)inCommand askLossy:NO lossy:theLossy asActionName:theActionName]; } - return [NSNumber numberWithBool:theResult]; + return @(theResult); } @@ -378,25 +379,24 @@ - (NSNumber *)handleReinterpret:(NSScriptCommand *)inCommand { NSDictionary *theArg = [inCommand evaluatedArguments]; NSString *theEncodingName = [theArg valueForKey:@"newEncoding"]; - NSString *theFileName = [self fileName]; NSStringEncoding theEncoding = [[NSApp delegate] encodingFromName:theEncodingName]; BOOL theResult = NO; - if ((theEncoding == NSNotFound) || (theFileName == nil)) { + if ((theEncoding == NSNotFound) || ([self fileURL] == nil)) { theResult = NO; - } else if (theEncoding == _encoding) { + } else if (theEncoding == [self encodingCode]) { theResult = YES; - } else if ([self stringFromData:[NSData dataWithContentsOfFile:theFileName] + } else if ([self stringFromData:[NSData dataWithContentsOfURL:[self fileURL]] encoding:theEncoding xattr:NO]) { [self setStringToEditorView]; // ダーティーフラグをクリア [self updateChangeCount:NSChangeCleared]; // ツールバーアイテムの選択状態をセット - [[_windowController toolbarController] setSelectEncoding:_encoding]; + [[_windowController toolbarController] setSelectEncoding:[self encodingCode]]; theResult = YES; } - return [NSNumber numberWithBool:theResult]; + return @(theResult); } @@ -407,7 +407,7 @@ - (NSNumber *)handleFind:(NSScriptCommand *)inCommand { NSDictionary *theArg = [inCommand evaluatedArguments]; NSString *theSearch = [theArg valueForKey:@"targetString"]; - if ((theSearch == nil) || ([theSearch length] < 1)) { return [NSNumber numberWithBool:NO]; } + if ((theSearch == nil) || ([theSearch length] < 1)) { return @NO; } BOOL theBoolIsRE = ([theArg valueForKey:@"regularExpression"] != nil) ? [[theArg valueForKey:@"regularExpression"] boolValue] : NO; BOOL theBoolIgnoreCase = ([theArg valueForKey:@"ignoreCase"] != nil) ? @@ -416,10 +416,10 @@ - (NSNumber *)handleFind:(NSScriptCommand *)inCommand [[theArg valueForKey:@"backwardsSearch"] boolValue] : NO; BOOL theBoolWrapSearch = ([theArg valueForKey:@"wrapSearch"] != nil) ? [[theArg valueForKey:@"wrapSearch"] boolValue] : NO; - NSString *theWholeStr = [_editorView stringForSave]; - int theWholeLength = [theWholeStr length]; - if (theWholeLength < 1) { return [NSNumber numberWithBool:NO]; } - NSRange theSelectionRange = [_editorView selectedRange]; + NSString *theWholeStr = [[self editorView] stringForSave]; + NSInteger theWholeLength = [theWholeStr length]; + if (theWholeLength < 1) { return @NO; } + NSRange theSelectionRange = [[self editorView] selectedRange]; NSRange theTargetRange; if (theBoolBackwards) { @@ -428,7 +428,7 @@ - (NSNumber *)handleFind:(NSScriptCommand *)inCommand theTargetRange = NSMakeRange(NSMaxRange(theSelectionRange), theWholeLength - NSMaxRange(theSelectionRange)); } - unsigned theMask = 0; + NSUInteger theMask = 0; if (theBoolIgnoreCase) { theMask |= (theBoolIsRE) ? OgreIgnoreCaseOption : NSCaseInsensitiveSearch; } @@ -444,7 +444,7 @@ - (NSNumber *)handleFind:(NSScriptCommand *)inCommand option:theMask withRegularExpression:theBoolIsRE]; } - return [NSNumber numberWithBool:theBoolResult]; + return @(theBoolResult); } @@ -455,7 +455,7 @@ - (NSNumber *)handleReplace:(NSScriptCommand *)inCommand { NSDictionary *theArg = [inCommand evaluatedArguments]; NSString *theSearch = [theArg valueForKey:@"targetString"]; - if ((theSearch == nil) || ([theSearch length] < 1)) { return [NSNumber numberWithBool:NO]; } + if ((theSearch == nil) || ([theSearch length] < 1)) { return @NO; } BOOL theBoolIsRE = ([theArg valueForKey:@"regularExpression"] != nil) ? [[theArg valueForKey:@"regularExpression"] boolValue] : NO; BOOL theBoolIgnoreCase = ([theArg valueForKey:@"ignoreCase"] != nil) ? @@ -466,18 +466,18 @@ - (NSNumber *)handleReplace:(NSScriptCommand *)inCommand [[theArg valueForKey:@"backwardsSearch"] boolValue] : NO; BOOL theBoolWrapSearch = ([theArg valueForKey:@"wrapSearch"] != nil) ? [[theArg valueForKey:@"wrapSearch"] boolValue] : NO; - NSString *theWholeStr = [_editorView stringForSave]; - int theWholeLength = [theWholeStr length]; - if (theWholeLength < 1) { return [NSNumber numberWithInt:0]; } + NSString *theWholeStr = [[self editorView] stringForSave]; + NSInteger theWholeLength = [theWholeStr length]; + if (theWholeLength < 1) { return @0; } NSString *theNewString = [theArg valueForKey:@"newString"]; - if ([theSearch isEqualToString:theNewString]) { return [NSNumber numberWithBool:NO]; } + if ([theSearch isEqualToString:theNewString]) { return @NO; } if (theNewString == nil) { theNewString = @""; } NSRange theSelectionRange, theTargetRange; if (theBoolAll) { theTargetRange = NSMakeRange(0, theWholeLength); } else { - theSelectionRange = [_editorView selectedRange]; + theSelectionRange = [[self editorView] selectedRange]; if (theBoolBackwards) { theTargetRange = NSMakeRange(0, theSelectionRange.location); } else { @@ -485,7 +485,7 @@ - (NSNumber *)handleReplace:(NSScriptCommand *)inCommand theWholeLength - NSMaxRange(theSelectionRange)); } } - unsigned theMask = 0; + NSUInteger theMask = 0; if (theBoolIgnoreCase) { theMask |= (theBoolIsRE) ? OgreIgnoreCaseOption : NSCaseInsensitiveSearch; } @@ -494,7 +494,7 @@ - (NSNumber *)handleReplace:(NSScriptCommand *)inCommand } BOOL theBoolResult = NO; - int theResult = 0; + NSInteger theResult = 0; if (theBoolAll) { NSMutableString *theTmpStr = [theWholeStr mutableCopy]; // ===== copy if (theBoolIsRE) { @@ -505,8 +505,8 @@ - (NSNumber *)handleReplace:(NSScriptCommand *)inCommand withString:theNewString options:theMask range:theTargetRange]; } if (theResult > 0) { - [[_editorView textView] replaceAllStringTo:theTmpStr]; - [[_editorView textView] setSelectedRange:NSMakeRange(0,0)]; + [[[self editorView] textView] replaceAllStringTo:theTmpStr]; + [[[self editorView] textView] setSelectedRange:NSMakeRange(0,0)]; } [theTmpStr release]; // ===== release @@ -524,7 +524,7 @@ - (NSNumber *)handleReplace:(NSScriptCommand *)inCommand } } - return [NSNumber numberWithInt:theResult]; + return @(theResult); } @@ -544,19 +544,19 @@ - (NSString *)handleString:(NSScriptCommand *)inCommand { NSDictionary *theArg = [inCommand evaluatedArguments]; NSArray *theArray = [theArg valueForKey:@"range"]; - int theLocation, theLength; + NSInteger theLocation, theLength; NSRange theRange; if ((theArray == nil) || ([theArray count] < 1)) { return [NSString string]; } - theLocation = [[theArray objectAtIndex:0] intValue]; + theLocation = [theArray[0] integerValue]; theLength = ([theArray count] > 1) ? - [[theArray objectAtIndex:1] intValue] : 1; + [theArray[1] integerValue] : 1; theRange = [self rangeInTextViewWithLocation:theLocation withLength:theLength]; if (NSEqualRanges(NSMakeRange(0, 0), theRange)) { return @""; } - return [[[_editorView textView] string] substringWithRange:theRange]; + return [[[[self editorView] textView] string] substringWithRange:theRange]; } @@ -566,7 +566,7 @@ - (NSString *)handleString:(NSScriptCommand *)inCommand -@implementation CEDocument (AdditionalAppleScriptPrivate) +@implementation CEDocument (ScriptingSupportPrivate) //======================================================= // Private method @@ -579,7 +579,7 @@ - (BOOL)doFind:(NSString *)inSearchString range:(NSRange)inRange // 文字列を検索し、見つかったら選択して結果を返す // ------------------------------------------------------ { - NSString *theWholeStr = [_editorView stringForSave]; + NSString *theWholeStr = [[self editorView] stringForSave]; NSRange theSearchedRange; if (inRE) { @@ -589,7 +589,7 @@ - (BOOL)doFind:(NSString *)inSearchString range:(NSRange)inRange theSearchedRange = [theWholeStr rangeOfString:inSearchString options:inMask range:inRange]; } if (theSearchedRange.location != NSNotFound) { - [_editorView setSelectedRange:theSearchedRange]; + [[self editorView] setSelectedRange:theSearchedRange]; return YES; } return NO; diff --git a/CEDocument.h b/CEDocument.h index 7de6a98bca..7ad9e06a12 100644 --- a/CEDocument.h +++ b/CEDocument.h @@ -3,8 +3,9 @@ CEDocument (for CotEditor) -Copyright (C) 2004-2007 nakamuxu. -http://www.aynimac.com/ + Copyright (C) 2004-2007 nakamuxu. + Copyright (C) 2014 CotEditor Project + http://coteditor.github.io ================================================= encoding="UTF-8" @@ -38,91 +39,70 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #import "CEWindowController.h" #import "CETextSelection.h" #import "CEPrintView.h" -#import "UKKQueue.h" #import "UKXattrMetadataStore.h" + @class CEEditorView; @class UKXattrMetadataStore; -typedef struct { - id delegate; - SEL shouldCloseSelector; - void *contextInfo; -} CanCloseAlertContext; @interface CEDocument : NSDocument { - CEEditorView *_editorView; id _windowController; - NSString *_initialString; - NSStringEncoding _encoding; - NSDictionary *_fileAttr; CETextSelection *_selection; - NSAppleEventDescriptor *_fileSender; - NSAppleEventDescriptor *_fileToken; - - BOOL _alphaOnlyTextViewInThisWindow; - BOOL _doCascadeWindow; - BOOL _isSaving; - BOOL _showUpdateAlertWithBecomeKey; - BOOL _isRevertingWithUKKQueueNotification; - BOOL _canActivateShowInvisibleCharsItem; - NSPoint _initTopLeftPoint; } -// Public method -- (CEEditorView *)editorView; -- (void)setEditorView:(CEEditorView *)inEditorView; -- (id)windowController; -- (BOOL)stringFromData:(NSData *)inData encoding:(NSStringEncoding)ioEncoding xattr:(BOOL)inBoolXattr; +@property (retain) CEEditorView *editorView; +@property BOOL doCascadeWindow; // ウィンドウをカスケード表示するかどうか +@property NSPoint initTopLeftPoint; // カスケードしないときのウィンドウ左上のポイント +@property BOOL alphaOnlyTextViewInThisWindow; + +// readonly properties +@property (readonly) BOOL canActivateShowInvisibleCharsItem;// 不可視文字表示メニュー/ツールバーアイテムを有効化できるか +@property (readonly) NSStringEncoding encodingCode; // 表示しているファイルのエンコーディング +@property (readonly, retain) NSDictionary *fileAttributes; // ファイル属性情報辞書 +// ODB Editor Suite 対応プロパティ +@property (retain) NSAppleEventDescriptor *fileSender; // ファイルクライアントのシグネチャ +@property (retain) NSAppleEventDescriptor *fileToken; // ファイルクライアントの追加文字列 + +// Public methods +- (id)windowController; +- (BOOL)stringFromData:(NSData *)data encoding:(NSStringEncoding)encoding xattr:(BOOL)boolXattr; - (NSString *)stringToWindowController; - (void)setStringToEditorView; - (void)setStringToTextView:(NSString *)inString; -- (NSStringEncoding)encodingCode; - (BOOL)doSetEncoding:(NSStringEncoding)inEncoding updateDocument:(BOOL)inDocUpdate askLossy:(BOOL)inAskLossy lossy:(BOOL)inLossy asActionName:(NSString *)inName; - (void)clearAllMarkupForIncompatibleChar; - (NSArray *)markupCharCanNotBeConvertedToCurrentEncoding; - (NSArray *)markupCharCanNotBeConvertedToEncoding:(NSStringEncoding)inEncoding; -- (void)doSetNewLineEndingCharacterCode:(int)inNewLineEnding; -- (void)setLineEndingCharToView:(int)inNewLineEnding; +- (void)doSetNewLineEndingCharacterCode:(NSInteger)inNewLineEnding; +- (void)setLineEndingCharToView:(NSInteger)inNewLineEnding; - (void)doSetSyntaxStyle:(NSString *)inName; - (void)doSetSyntaxStyle:(NSString *)inName delay:(BOOL)inBoolDelay; - (void)setColoringExtension:(NSString *)inExtension coloring:(BOOL)inBoolColoring; - (void)setFontToViewInWindow; -- (BOOL)alphaOnlyTextViewInThisWindow; -- (float)alpha; -- (void)setAlpha:(float)inAlpha; -- (void)setAlphaOnlyTextViewInThisWindow:(BOOL)inBool; +- (CGFloat)alpha; +- (void)setAlpha:(CGFloat)inAlpha; - (void)setAlphaToWindowAndTextView; - (void)setAlphaToWindowAndTextViewDefaultValue; - (void)setAlphaValueToTransparencyController; -- (NSAppleEventDescriptor *)fileSender; -- (void)setFileSender:(NSAppleEventDescriptor *)inFileSender; -- (NSAppleEventDescriptor *)fileToken; -- (void)setFileToken:(NSAppleEventDescriptor *)inFileToken; -- (NSRange)rangeInTextViewWithLocation:(int)inLocation withLength:(int)inLength; -- (void)setSelectedCharacterRangeInTextViewWithLocation:(int)inLocation withLength:(int)inLength; -- (void)setSelectedLineRangeInTextViewWithLocation:(int)inLocation withLength:(int)inLength; +- (NSRange)rangeInTextViewWithLocation:(NSInteger)inLocation withLength:(NSInteger)inLength; +- (void)setSelectedCharacterRangeInTextViewWithLocation:(NSInteger)inLocation withLength:(NSInteger)inLength; +- (void)setSelectedLineRangeInTextViewWithLocation:(NSInteger)inLocation withLength:(NSInteger)inLength; - (void)scrollToCenteringSelection; -- (void)gotoLocation:(int)inLocation withLength:(int)inLength; +- (void)gotoLocation:(NSInteger)inLocation withLength:(NSInteger)inLength; - (void)getFileAttributes; -- (NSDictionary *)documentFileAttributes; - (void)rebuildToolbarEncodingItem; - (void)rebuildToolbarSyntaxItem; - (void)setRecolorFlagToWindowControllerWithStyleName:(NSDictionary *)inDictionary; - (void)setStyleToNoneAndRecolorFlagWithStyleName:(NSString *)inStyleName; -- (BOOL)doCascadeWindow; -- (void)setDoCascadeWindow:(BOOL)inBool; -- (NSPoint)initTopLeftPoint; -- (void)setInitTopLeftPoint:(NSPoint)inPoint; - (void)setSmartInsertAndDeleteToTextView; - (NSString *)currentIANACharSetName; -- (void)showUpdateAlertWithUKKQueueNotification; -- (float)lineSpacingInTextView; -- (void)setCustomLineSpacingToTextView:(float)inSpacing; -- (BOOL)canActivateShowInvisibleCharsItem; +- (void)showUpdatedByExternalProcessAlert; +- (CGFloat)lineSpacingInTextView; +- (void)setCustomLineSpacingToTextView:(CGFloat)inSpacing; // Action Message - (IBAction)setLineEndingCharToLF:(id)sender; diff --git a/CEDocument.m b/CEDocument.m index 22258ab4a4..4e6b696f74 100644 --- a/CEDocument.m +++ b/CEDocument.m @@ -3,8 +3,9 @@ CEDocument (for CotEditor) -Copyright (C) 2004-2007 nakamuxu. -http://www.aynimac.com/ + Copyright (C) 2004-2007 nakamuxu. + Copyright (C) 2011, 2014 CotEditor Project + http://coteditor.github.io ================================================= encoding="UTF-8" @@ -32,43 +33,36 @@ #import "CEDocument.h" #import "ODBEditorSuite.h" +#import "NSData+MD5.h" + + //======================================================= -// Private method +// not defined in __LP64__ +// 2014-02 by 1024jp +//======================================================= +#ifdef __LP64__ +enum { typeFSS = 'fss ' }; +#endif + + + +//======================================================= +// Private properties // //======================================================= -@interface CEDocument (Private) -- (NSString *)convertedCharacterString:(NSString *)inString withEncoding:(NSStringEncoding)inEncoding; -- (void)doSetEncoding:(NSStringEncoding)inEncoding; -- (void)updateEncodingInToolbarAndInfo; -- (BOOL)readFromFile:(NSString *)inFileName withEncoding:(NSStringEncoding)inEncoding; -- (NSStringEncoding)scannedCharsetOrEncodingFromString:(NSString *)inString; -- (void)redoSetEncoding:(NSStringEncoding)inEncoding updateDocument:(BOOL)inDocUpdate - askLossy:(BOOL)inAskLossy lossy:(BOOL)inLossy asActionName:(NSString *)inName; -- (void)redoSetNewLineEndingCharacterCode:(int)inNewLineEnding; -- (NSDictionary *)myCreatorAndTypeCodeAttributes; -- (BOOL)acceptSaveDocumentWithIANACharSetName; -- (BOOL)acceptSaveDocumentToConvertEncoding; -- (BOOL)saveToFile:(NSString *)inFileName ofType:(NSString *)inDocType - saveOperation:(NSSaveOperationType)inSaveOperationType; -- (void)sendModifiedEventToClientOfFile:(NSString *)inSaveAsPath - operation:(NSSaveOperationType)inSaveOperationType; -- (void)sendCloseEventToClient; -- (BOOL)canReleaseFinderLockOfFile:(NSString *)inFileName isLocked:(BOOL *)ioLocked lockAgain:(BOOL)inLockAgain; -- (void)alertForNotWritableCloseDocDidEnd:(NSAlert *)inAlert returnCode:(int)inReturnCode - contextInfo:(void *)inContextInfo; -- (void)startWatchFile:(NSString *)inFileName; -- (void)stopWatchFile:(NSString *)inFileName; -- (void)setIsSavingFlagToNo; -- (void)alertForModByAnotherProcessDidEnd:(NSAlert *)inAlert returnCode:(int)inReturnCode - contextInfo:(void *)inContextInfo; -- (void)printPanelDidEnd:(NSPrintPanel *)inPrintPanel returnCode:(int)inReturnCode - contextInfo:(void *)inContextInfo; -- (NSStringEncoding)encodingFromComAppleTextEncodingAtPath:(NSString *)inFilePath; -- (void)setComAppleTextEncodingAtPath:(NSString *)inFilePath; -- (void)setIsWritableToEditorViewWithFileName:(NSString *)inFileName; -- (void)showAlertForNotWritable; +@interface CEDocument () + +@property (atomic, retain) NSString *fileMD5; +@property (atomic) BOOL showUpdateAlertWithBecomeKey; +@property (atomic) BOOL isRevertingForExternalFileUpdate; +@property (retain) NSString *initialString; // 初期表示文字列に表示する文字列; + +@property (readwrite) BOOL canActivateShowInvisibleCharsItem; +@property (readwrite) NSStringEncoding encodingCode; +@property (readwrite, retain) NSDictionary *fileAttributes; + @end @@ -79,7 +73,7 @@ - (void)showAlertForNotWritable; @implementation CEDocument -#pragma mark ===== Class method ===== +#pragma mark Class Methods // ------------------------------------------------------ + (BOOL)autosavesInPlace @@ -99,15 +93,15 @@ + (BOOL)preservesVersions } -#pragma mark ===== Public method ===== +#pragma mark NSDocument Methods //======================================================= -// Public method +// NSDocument methods // //======================================================= // ------------------------------------------------------ -- (id)init +- (instancetype)init // 初期化 // ------------------------------------------------------ { @@ -119,27 +113,23 @@ - (id)init _initialString = nil; _windowController = nil; // CotEditor のクリエータ/タイプを使うなら、設定しておく - _fileAttr = ([[theValues valueForKey:k_key_saveTypeCreator] unsignedIntValue] <= 1) ? - [[self myCreatorAndTypeCodeAttributes] retain] : nil; + if ([[theValues valueForKey:k_key_saveTypeCreator] unsignedIntegerValue] <= 1) { + [self setFileAttributes:[self myCreatorAndTypeCodeAttributes]]; + } (void)[self doSetEncoding:[[theValues valueForKey:k_key_encodingInNew] unsignedLongValue] updateDocument:NO askLossy:NO lossy:NO asActionName:nil]; _selection = [[CETextSelection alloc] initWithDocument:self]; // ===== alloc - _fileSender = nil; - _fileToken = nil; - _isSaving = NO; - _showUpdateAlertWithBecomeKey = NO; - _isRevertingWithUKKQueueNotification = NO; - _canActivateShowInvisibleCharsItem = - ([[theValues valueForKey:k_key_showInvisibleSpace] boolValue] || + [self setCanActivateShowInvisibleCharsItem: + [[theValues valueForKey:k_key_showInvisibleSpace] boolValue] || [[theValues valueForKey:k_key_showInvisibleTab] boolValue] || [[theValues valueForKey:k_key_showInvisibleNewLine] boolValue] || [[theValues valueForKey:k_key_showInvisibleFullwidthSpace] boolValue] || - [[theValues valueForKey:k_key_showOtherInvisibleChars] boolValue]); + [[theValues valueForKey:k_key_showOtherInvisibleChars] boolValue]]; [self setDoCascadeWindow:YES]; [self setInitTopLeftPoint:NSZeroPoint]; - [[NSNotificationCenter defaultCenter] addObserver:self - selector:@selector(documentDidFinishOpen:) - name:k_documentDidFinishOpenNotification object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(documentDidFinishOpen:) + name:k_documentDidFinishOpenNotification object:nil]; } return self; } @@ -152,18 +142,16 @@ - (void)dealloc { // ノーティフィケーションセンタから自身を排除 [[NSNotificationCenter defaultCenter] removeObserver:self]; - // 外部プロセスによるファイルの変更監視を停止 - if ([self fileName] != nil) { - [self stopWatchFile:[self fileName]]; - } - // _initialString は既に autorelease されている == "- (NSString *)stringToWindowController" + + [[self fileMD5] release]; + // initialString は既に autorelease されている == "- (NSString *)stringToWindowController" // _selection は既に autorelease されている == "- (void)close" - [[_editorView splitView] releaseAllEditorView]; // 各subSplitView が持つ editorView 参照を削除 - [_editorView release]; // 自身のメンバを削除 + [[[self editorView] splitView] releaseAllEditorView]; // 各subSplitView が持つ editorView 参照を削除 + [[self editorView] release]; // 自身のメンバを削除 [_windowController release]; - [_fileAttr release]; - [_fileToken release]; - // _fileSender は既にnilがセットされている == "- (void)sendModifiedEventToClientOfFile:(NSString *)inSaveAsPath operation:(NSSaveOperationType)inSaveOperationType", "- (void)sendCloseEventToClient" + [[self fileAttributes] release]; + [[self fileToken] release]; + // fileSender は既にnilがセットされている == "- (void)sendModifiedEventToClientOfFile:(NSString *)inSaveAsPath operation:(NSSaveOperationType)inSaveOperationType", "- (void)sendCloseEventToClient" [super dealloc]; } @@ -180,111 +168,122 @@ - (void)makeWindowControllers // ------------------------------------------------------ -- (BOOL)writeWithBackupToFile:(NSString *)inFullDocumentPath ofType:(NSString *)inDocType - saveOperation:(NSSaveOperationType)inSaveOperationType -// バックアップファイルの保存(保存処理で包括的に呼ばれる) +- (BOOL)writeSafelyToURL:(NSURL *)url ofType:(NSString *)typeName forSaveOperation:(NSSaveOperationType)saveOperation error:(NSError **)outError +// ファイルの保存(保存処理で包括的に呼ばれる) // ------------------------------------------------------ { - // 保存中のフラグを立て、保存実行(自分自身が保存した時のファイル更新通知を区別するため) - _isSaving = YES; - // SaveAs のとき古いパスを監視対象から外すために保持 - NSString *theOldPath = [self fileName]; + // 保存の前後で編集内容をグルーピングさせないための処置 + // ダミーのグループを作り、そのままだと空のアンドゥ内容でダーティーフラグがたってしまうので、アンドゥしておく + // ****** 空のアンドゥ履歴が残る問題あり (2005.08.05) ******* + // (保存の前後で編集内容がグルーピングされてしまう例:キー入力後保存し、キャレットを動かすなどしないでそのまま入力 + // した場合、ダーティーフラグがたたず、アンドゥすると保存前まで戻されてしまう。さらに、戻された状態でリドゥすると、 + // 保存後の入力までが行われる。つまり、保存をはさんで前後の内容が同一アンドゥグループに入ってしまうための不具合) + // CETextViewCore > doInsertString:withRange:withSelected:withActionName: でも同様の対処を行っている + // ****** 何かもっとうまい回避方法があるはずなんだが … (2005.08.05) ******* + [[self undoManager] beginUndoGrouping]; + [[self undoManager] endUndoGrouping]; + [[self undoManager] undo]; + + + id token = [self changeCountTokenForSaveOperation:saveOperation]; + // 新規書類を最初に保存する場合のフラグをセット - BOOL theBoolIsFirstSaving = ((theOldPath == nil) || (inSaveOperationType == NSSaveAsOperation)); + BOOL isFirstSave = (![self fileURL] || (saveOperation == NSSaveAsOperation)); + // 保存処理実行 - BOOL outResult = [self saveToFile:inFullDocumentPath ofType:inDocType saveOperation:inSaveOperationType]; - - if (outResult) { - NSUndoManager *theUndoManager = [self undoManager]; + BOOL success = [self forceWriteToURL:url ofType:typeName forSaveOperation:saveOperation]; + if (success) { // 新規保存時、カラーリングのために拡張子を保持 - if (theBoolIsFirstSaving) { - [self setColoringExtension:[[inFullDocumentPath lastPathComponent] pathExtension] - coloring:YES]; + if (isFirstSave) { + [self setColoringExtension:[url pathExtension] coloring:YES]; } - // 保存の前後で編集内容をグルーピングさせないための処置 - // ダミーのグループを作り、そのままだと空のアンドゥ内容でダーティーフラグがたってしまうので、アンドゥしておく - // ****** 空のアンドゥ履歴が残る問題あり (2005.08.05) ******* - // (保存の前後で編集内容がグルーピングされてしまう例:キー入力後保存し、キャレットを動かすなどしないでそのまま入力 - // した場合、ダーティーフラグがたたず、アンドゥすると保存前まで戻されてしまう。さらに、戻された状態でリドゥすると、 - // 保存後の入力までが行われる。つまり、保存をはさんで前後の内容が同一アンドゥグループに入ってしまうための不具合) - // CETextViewCore > doInsertString:withRange:withSelected:withActionName: でも同様の対処を行っている - // ****** 何かもっとうまい回避方法があるはずなんだが … (2005.08.05) ******* - [theUndoManager beginUndoGrouping]; - [theUndoManager endUndoGrouping]; - [theUndoManager undo]; - // 保持しているファイル情報/表示する文書情報を更新 [self getFileAttributes]; - // SaveAs のとき古いパスの監視をやめる - if ((theOldPath != nil) && (inSaveOperationType == NSSaveAsOperation)) { - [self stopWatchFile:theOldPath]; - } - // 外部プロセスによる変更監視を開始 - if (theBoolIsFirstSaving) { - [self startWatchFile:inFullDocumentPath]; - } + + // 外部エディタプロトコル(ODB Editor Suite)のファイル更新通知送信 + [self sendModifiedEventToClientOfFile:[url path] operation:saveOperation]; + + // ファイル保存更新を Finder へ通知(デスクトップに保存した時に白紙アイコンになる問題への対応) + [[NSWorkspace sharedWorkspace] noteFileSystemChanged:[url path]]; + + // changeCountを更新 + [self updateChangeCountWithToken:token forSaveOperation:saveOperation]; } - // 外部エディタプロトコル(ODB Editor Suite)のファイル更新通知送信 - [self sendModifiedEventToClientOfFile:inFullDocumentPath operation:inSaveOperationType]; - // ファイル保存更新を Finder へ通知(デスクトップに保存した時に白紙アイコンになる問題への対応) - [[NSWorkspace sharedWorkspace] noteFileSystemChanged:inFullDocumentPath]; - // ディレイをかけて、保存中フラグをもどす - [self performSelector:@selector(setIsSavingFlagToNo) withObject:nil afterDelay:0.8]; + return success; +} - return outResult; + +// ------------------------------------------------------ +- (NSData *)dataOfType:(NSString *)typeName error:(NSError **)outError +// 保存用のデータを生成 +// ------------------------------------------------------ +{ + id defaults = [[NSUserDefaultsController sharedUserDefaultsController] values]; + BOOL shouldAppendBOM = [[defaults valueForKey:k_key_saveUTF8BOM] boolValue]; + + // エンコーディングを見て、半角円マークを変換しておく + NSString *string = [self convertedCharacterString:[[self editorView] stringForSave] withEncoding:[self encodingCode]]; + + // stringから保存用のdataを得る + NSData *data = [string dataUsingEncoding:[self encodingCode] allowLossyConversion:YES]; + + // 必要であれば UTF-8 BOM 追加 (2008.12.13) + if (shouldAppendBOM && ([self encodingCode] == NSUTF8StringEncoding)) { + const char utf8Bom[] = {0xef, 0xbb, 0xbf}; // UTF-8 BOM + NSMutableData *mutableData = [NSMutableData dataWithBytes:utf8Bom length:3]; + [mutableData appendData:data]; + data = [NSData dataWithData:mutableData]; + } + + return data; } // ------------------------------------------------------ -- (NSDictionary *)fileAttributesToWriteToFile:(NSString *)inFullDocumentPath - ofType:(NSString *)inDocType - saveOperation:(NSSaveOperationType)inSaveOperationType +- (NSDictionary *)fileAttributesToWriteToURL:(NSURL *)url ofType:(NSString *)typeName forSaveOperation:(NSSaveOperationType)saveOperation originalContentsURL:(NSURL *)absoluteOriginalContentsURL error:(NSError **)outError // ファイル保存時のクリエータ/タイプなどファイル属性を決定する // ------------------------------------------------------ { - // 10.4 で廃止されたメソッド。バージョンアップ注意 ***** - id theValues = [[NSUserDefaultsController sharedUserDefaultsController] values]; - NSMutableDictionary *outDict = [NSMutableDictionary dictionaryWithDictionary: - [super fileAttributesToWriteToFile:inFullDocumentPath - ofType:inDocType - saveOperation:inSaveOperationType]]; - unsigned int theSaveTypeCreator = [[theValues valueForKey:k_key_saveTypeCreator] unsignedIntValue]; - + NSMutableDictionary *outDict = [[super fileAttributesToWriteToURL:url + ofType:typeName + forSaveOperation:saveOperation + originalContentsURL:absoluteOriginalContentsURL + error:outError] mutableCopy]; + NSUInteger theSaveTypeCreator = [[theValues valueForKey:k_key_saveTypeCreator] unsignedIntegerValue]; + if (theSaveTypeCreator == 0) { // = same as original - unsigned long theCreator = [_fileAttr fileHFSCreatorCode]; - unsigned long theType = [_fileAttr fileHFSTypeCode]; + OSType theCreator = [[self fileAttributes] fileHFSCreatorCode]; + OSType theType = [[self fileAttributes] fileHFSTypeCode]; if ((theCreator == 0) || (theType == 0)) { [outDict addEntriesFromDictionary:[self myCreatorAndTypeCodeAttributes]]; } else { - [outDict setObject:[_fileAttr objectForKey:NSFileHFSCreatorCode] forKey:NSFileHFSCreatorCode]; - [outDict setObject:[_fileAttr objectForKey:NSFileHFSTypeCode] forKey:NSFileHFSTypeCode]; + outDict[NSFileHFSCreatorCode] = [self fileAttributes][NSFileHFSCreatorCode]; + outDict[NSFileHFSTypeCode] = [self fileAttributes][NSFileHFSTypeCode]; } } else if (theSaveTypeCreator == 1) { // = CotEditor's type [outDict addEntriesFromDictionary:[self myCreatorAndTypeCodeAttributes]]; } - + return outDict; } // ------------------------------------------------------ -- (BOOL)revertToSavedFromFile:(NSString *)inFileName ofType:(NSString *)inType +- (BOOL)revertToContentsOfURL:(NSURL *)url ofType:(NSString *)typeName error:(NSError **)outError // セーブ時の状態に戻す // ------------------------------------------------------ { - // revertToSavedFromFile:ofType: は 10.4 で廃止されたメソッド。バージョンアップ注意 ***** - // 認証が必要な時に重なって表示されるのを避けるため、まず復帰確認シートを片づける //(外部プロセスによる変更通知アラートシートはそのままに) - if (!_isRevertingWithUKKQueueNotification) { - [[[_editorView window] attachedSheet] orderOut:self]; + if (![self isRevertingForExternalFileUpdate]) { + [[[self windowForSheet] attachedSheet] orderOut:self]; } - BOOL outResult = [self readFromFile:inFileName withEncoding:k_autoDetectEncodingMenuTag]; + BOOL outResult = [self readFromFile:[url path] withEncoding:k_autoDetectEncodingMenuTag]; if (outResult) { [self setStringToEditorView]; @@ -303,16 +302,16 @@ - (BOOL)shouldRunSavePanelWithAccessoryView // ------------------------------------------------------ -- (void)runModalSavePanelForSaveOperation:(NSSaveOperationType)inSaveOperation delegate:(id)inDelegate - didSaveSelector:(SEL)inDidSaveSelector contextInfo:(void *)inContextInfo +- (void)runModalSavePanelForSaveOperation:(NSSaveOperationType)saveOperation delegate:(id)delegate + didSaveSelector:(SEL)didSaveSelector contextInfo:(void *)contextInfo // セーブパネルを表示 // ------------------------------------------------------ { - [super runModalSavePanelForSaveOperation:inSaveOperation delegate:inDelegate - didSaveSelector:inDidSaveSelector contextInfo:inContextInfo]; + [super runModalSavePanelForSaveOperation:saveOperation delegate:delegate + didSaveSelector:didSaveSelector contextInfo:contextInfo]; // セーブパネル表示時の処理 - NSSavePanel *theSavePanel = (NSSavePanel *)[[_editorView window] attachedSheet]; + NSSavePanel *theSavePanel = (NSSavePanel *)[[self windowForSheet] attachedSheet]; if (theSavePanel != nil) { NSEnumerator *theEnumerator = [[[theSavePanel contentView] subviews] objectEnumerator]; NSTextField *theTextField = nil; @@ -345,35 +344,23 @@ - (void)runModalSavePanelForSaveOperation:(NSSaveOperationType)inSaveOperation d // ------------------------------------------------------ -- (BOOL)readFromFile:(NSString *)inFileName ofType:(NSString *)inDocType +- (BOOL)readFromURL:(NSURL *)url ofType:(NSString *)typeName error:(NSError **)outError // ファイルを読み込み、成功したかどうかを返す // ------------------------------------------------------ { // フォルダをアイコンにドロップしても開けないようにする BOOL theBoolIsDir = NO; - (void)[[NSFileManager defaultManager] fileExistsAtPath:inFileName isDirectory:&theBoolIsDir]; + (void)[[NSFileManager defaultManager] fileExistsAtPath:[url path] isDirectory:&theBoolIsDir]; if (theBoolIsDir) { return NO; } NSStringEncoding theEncoding = [[CEDocumentController sharedDocumentController] accessorySelectedEncoding]; - return [self readFromFile:inFileName withEncoding:theEncoding]; + return [self readFromFile:[url path] withEncoding:theEncoding]; } // ------------------------------------------------------ -- (void)setString:(NSMutableString *)inString -// 初期表示文字列に表示する文字列を保持 -// ------------------------------------------------------ -{ - [inString retain]; - [_initialString release]; - _initialString = inString; -} - - -// ------------------------------------------------------ -- (void)canCloseDocumentWithDelegate:(id)inDelegate shouldCloseSelector:(SEL)inShouldCloseSelector - contextInfo:(void *)inContextInfo +- (void)canCloseDocumentWithDelegate:(id)delegate shouldCloseSelector:(SEL)shouldCloseSelector contextInfo:(void *)contextInfo // ドキュメントが閉じられる前に保存のためのダイアログの表示などを行う // ------------------------------------------------------ { @@ -384,38 +371,32 @@ - (void)canCloseDocumentWithDelegate:(id)inDelegate shouldCloseSelector:(SEL)inS [[self editorView] stopAllTimer]; // Finder のロックが解除できず、かつダーティーフラグがたっているときは相応のダイアログを出す - if (([self isDocumentEdited]) && - (![self canReleaseFinderLockOfFile:[self fileName] isLocked:nil lockAgain:YES])) { - CanCloseAlertContext *closeContext = malloc(sizeof(CanCloseAlertContext)); - closeContext->delegate = inDelegate; - closeContext->shouldCloseSelector = inShouldCloseSelector; - closeContext->contextInfo = inContextInfo; - - NSAlert *theAleart = [NSAlert alertWithMessageText:NSLocalizedString(@"Finder's Lock is ON",@"") - defaultButton:NSLocalizedString(@"Cancel",@"") - alternateButton:NSLocalizedString(@"Don't Save, and Close",@"") - otherButton:nil - informativeTextWithFormat:NSLocalizedString(@"Finder's Lock could not be released. So, You can not save your changes on this file, but you will be able to Save a Copy somewhere else. \n\nDo you want to close?\n",@"") - ]; - NSArray *theButtons = [theAleart buttons]; - NSButton *theDontSaveButton = nil; - int i, theCount = [theButtons count]; - - for (i = 0; i < theCount; i++) { - theDontSaveButton = [theButtons objectAtIndex:i]; - if ([[theDontSaveButton title] isEqualToString:NSLocalizedString(@"Don't Save, and Close",@"")]) { - [theDontSaveButton setKeyEquivalent:@"d"]; - [theDontSaveButton setKeyEquivalentModifierMask:NSCommandKeyMask]; + if ([self isDocumentEdited] && + ![self canReleaseFinderLockOfFile:[[self fileURL] path] isLocked:nil lockAgain:YES]) { + + NSAlert *alert = [NSAlert alertWithMessageText:NSLocalizedString(@"Finder's lock is ON", nil) + defaultButton:NSLocalizedString(@"Cancel", nil) + alternateButton:NSLocalizedString(@"Don't Save, and Close", nil) + otherButton:nil + informativeTextWithFormat:NSLocalizedString(@"Finder's lock could not be released. So, you can not save your changes on this file, but you will be able to save a copy somewhere else. \n\nDo you want to close?", nil)]; + + for (NSButton *button in [alert buttons]) { + if ([[button title] isEqualToString:NSLocalizedString(@"Don't Save, and Close",@"")]) { + [button setKeyEquivalent:@"d"]; + [button setKeyEquivalentModifierMask:NSCommandKeyMask]; break; } } - [theAleart beginSheetModalForWindow:[_editorView window] - modalDelegate:self - didEndSelector:@selector(alertForNotWritableCloseDocDidEnd:returnCode:contextInfo:) - contextInfo:closeContext]; + + [alert beginSheetModalForWindow:[self windowForSheet] completionHandler:^(NSModalResponse returnCode) { + BOOL theReturn = (returnCode != NSAlertDefaultReturn); // YES == Don't Save (Close) + + if (delegate) { + objc_msgSend(delegate, shouldCloseSelector, self, theReturn, contextInfo); + } + }]; } else { - [super canCloseDocumentWithDelegate:inDelegate shouldCloseSelector:inShouldCloseSelector - contextInfo:inContextInfo]; + [super canCloseDocumentWithDelegate:delegate shouldCloseSelector:shouldCloseSelector contextInfo:contextInfo]; } } @@ -429,33 +410,18 @@ - (void)close [[self undoManager] removeAllActionsWithTarget:self]; // 外部エディタプロトコル(ODB Editor Suite)のファイルクローズを送信 [self sendCloseEventToClient]; - - [_selection autorelease]; // (互いに参照しあっているため、dealloc でなく、ここで開放しておく) [self removeWindowController:(NSWindowController *)_windowController]; [super close]; } -// ------------------------------------------------------ -- (CEEditorView *)editorView -// editorView を返す -// ------------------------------------------------------ -{ - return _editorView; -} - - -// ------------------------------------------------------ -- (void)setEditorView:(CEEditorView *)inEditorView -// editorView をセット -// ------------------------------------------------------ -{ - [inEditorView retain]; - [_editorView release]; - _editorView = inEditorView; -} +#pragma mark Public Methods +//======================================================= +// Public method +// +//======================================================= // ------------------------------------------------------ - (id)windowController @@ -467,7 +433,7 @@ - (id)windowController //------------------------------------------------------ -- (BOOL)stringFromData:(NSData *)inData encoding:(NSStringEncoding)ioEncoding xattr:(BOOL)inBoolXattr +- (BOOL)stringFromData:(NSData *)data encoding:(NSStringEncoding)encoding xattr:(BOOL)boolXattr // データから指定エンコードで文字列を得る //------------------------------------------------------ { @@ -482,95 +448,95 @@ - (BOOL)stringFromData:(NSData *)inData encoding:(NSStringEncoding)ioEncoding xa // http://blogs.dion.ne.jp/fujidana/archives/4169016.html // 10.5+でのファイル拡張属性(com.apple.TextEncoding)を試す - if ((inBoolXattr) && (ioEncoding != k_autoDetectEncodingMenuTag)) { - theStr = [[[NSString alloc] initWithData:inData encoding:ioEncoding] autorelease]; + if ((boolXattr) && (encoding != k_autoDetectEncodingMenuTag)) { + theStr = [[[NSString alloc] initWithData:data encoding:encoding] autorelease]; if (theStr == nil) { - ioEncoding = k_autoDetectEncodingMenuTag; + encoding = k_autoDetectEncodingMenuTag; } } - if (([inData length] > 0) && (ioEncoding == k_autoDetectEncodingMenuTag)) { + if (([data length] > 0) && (encoding == k_autoDetectEncodingMenuTag)) { const char theUtf8Bom[] = {0xef, 0xbb, 0xbf}; // UTF-8 BOM // BOM付きUTF-8判定 - if (memchr([inData bytes], *theUtf8Bom, 3) != NULL) { + if (memchr([data bytes], *theUtf8Bom, 3) != NULL) { theBoolToSkipUTF8 = YES; - theStr = [[[NSString alloc] initWithData:inData encoding:NSUTF8StringEncoding] autorelease]; + theStr = [[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding] autorelease]; if (theStr != nil) { - ioEncoding = NSUTF8StringEncoding; + encoding = NSUTF8StringEncoding; } // UTF-16判定 - } else if ((memchr([inData bytes], 0xfffe, 2) != NULL) || - (memchr([inData bytes], 0xfeff, 2) != NULL)) { + } else if ((memchr([data bytes], 0xfffe, 2) != NULL) || + (memchr([data bytes], 0xfeff, 2) != NULL)) { theBoolToSkipUTF16 = YES; - theStr = [[[NSString alloc] initWithData:inData encoding:NSUnicodeStringEncoding] autorelease]; + theStr = [[[NSString alloc] initWithData:data encoding:NSUnicodeStringEncoding] autorelease]; if (theStr != nil) { - ioEncoding = NSUnicodeStringEncoding; + encoding = NSUnicodeStringEncoding; } // ISO 2022-JP判定 - } else if (memchr([inData bytes], 0x1b, [inData length]) != NULL) { + } else if (memchr([data bytes], 0x1b, [data length]) != NULL) { theBoolToSkipISO2022JP = YES; - theStr = [[[NSString alloc] initWithData:inData encoding:NSISO2022JPStringEncoding] autorelease]; + theStr = [[[NSString alloc] initWithData:data encoding:NSISO2022JPStringEncoding] autorelease]; if (theStr != nil) { - ioEncoding = NSISO2022JPStringEncoding; + encoding = NSISO2022JPStringEncoding; } } } - if ((theStr == nil) && (ioEncoding == k_autoDetectEncodingMenuTag)) { + if ((theStr == nil) && (encoding == k_autoDetectEncodingMenuTag)) { id theValues = [[NSUserDefaultsController sharedUserDefaultsController] values]; NSArray *theEncodings = [[[theValues valueForKey:k_key_encodingList] copy] autorelease]; - int i = 0; + NSInteger i = 0; while (theStr == nil) { - ioEncoding = - CFStringConvertEncodingToNSStringEncoding([[theEncodings objectAtIndex:i] unsignedLongValue]); - if ((ioEncoding == NSISO2022JPStringEncoding) && theBoolToSkipISO2022JP) { + encoding = + CFStringConvertEncodingToNSStringEncoding([theEncodings[i] unsignedLongValue]); + if ((encoding == NSISO2022JPStringEncoding) && theBoolToSkipISO2022JP) { break; - } else if ((ioEncoding == NSUTF8StringEncoding) && theBoolToSkipUTF8) { + } else if ((encoding == NSUTF8StringEncoding) && theBoolToSkipUTF8) { break; - } else if ((ioEncoding == NSUnicodeStringEncoding) && theBoolToSkipUTF16) { + } else if ((encoding == NSUnicodeStringEncoding) && theBoolToSkipUTF16) { break; - } else if (ioEncoding == NSProprietaryStringEncoding) { + } else if (encoding == NSProprietaryStringEncoding) { NSLog(@"theEncoding == NSProprietaryStringEncoding"); break; } - theStr = [[[NSString alloc] initWithData:inData encoding:ioEncoding] autorelease]; + theStr = [[[NSString alloc] initWithData:data encoding:encoding] autorelease]; if (theStr != nil) { // "charset="や"encoding="を読んでみて適正なエンコーディングが得られたら、そちらを優先 NSStringEncoding theTmpEncoding = [self scannedCharsetOrEncodingFromString:theStr]; - if ((theTmpEncoding == NSProprietaryStringEncoding) || (theTmpEncoding == ioEncoding)) { + if ((theTmpEncoding == NSProprietaryStringEncoding) || (theTmpEncoding == encoding)) { break; } NSString *theTmpStr = - [[[NSString alloc] initWithData:inData encoding:theTmpEncoding] autorelease]; + [[[NSString alloc] initWithData:data encoding:theTmpEncoding] autorelease]; if (theTmpStr != nil) { theStr = theTmpStr; - ioEncoding = theTmpEncoding; + encoding = theTmpEncoding; } } i++; } } else if (theStr == nil) { - theStr = [[[NSString alloc] initWithData:inData encoding:ioEncoding] autorelease]; + theStr = [[[NSString alloc] initWithData:data encoding:encoding] autorelease]; } - if ((theStr != nil) && (ioEncoding != k_autoDetectEncodingMenuTag)) { + if ((theStr != nil) && (encoding != k_autoDetectEncodingMenuTag)) { // 10.3.9 で、一部のバイナリファイルを開いたときにクラッシュする問題への暫定対応。 // 10.4+ ではスルー(2005.12.25) // >> しかし「すべて2バイト文字で4096文字以上あるユニコードでない文書」は開けない(2005.12.25) // (下記の現象と同じ理由で発生していると思われる) // https://www.codingmonkeys.de/bugs/browse/HYR-529?page=all if ((floor(NSAppKitVersionNumber) > NSAppKitVersionNumber10_3) || // = 10.4+ - ([inData length] <= 8192) || - (([inData length] > 8192) && ([inData length] != ([theStr length] * 2 + 1)) && - ([inData length] != ([theStr length] * 2)))) { - + ([data length] <= 8192) || + (([data length] > 8192) && ([data length] != ([theStr length] * 2 + 1)) && + ([data length] != ([theStr length] * 2)))) { + _initialString = [theStr retain]; // ===== retain // (_initialString はあとで開放 == "- (NSString *)stringToWindowController".) - (void)[self doSetEncoding:ioEncoding updateDocument:NO askLossy:NO lossy:NO asActionName:nil]; + (void)[self doSetEncoding:encoding updateDocument:NO askLossy:NO lossy:NO asActionName:nil]; return YES; } } @@ -593,12 +559,12 @@ - (void)setStringToEditorView // editorView に文字列をセット // ------------------------------------------------------ { - [self setColoringExtension:[[self fileName] pathExtension] coloring:NO]; + [self setColoringExtension:[[self fileURL] pathExtension] coloring:NO]; [self setStringToTextView:[self stringToWindowController]]; if ([_windowController needsIncompatibleCharDrawerUpdate]) { [_windowController showIncompatibleCharList]; } - [self setIsWritableToEditorViewWithFileName:[self fileName]]; + [self setIsWritableToEditorViewWithURL:[self fileURL]]; } @@ -610,26 +576,17 @@ - (void)setStringToTextView:(NSString *)inString if (inString) { OgreNewlineCharacter theLineEnd = [OGRegularExpression newlineCharacterInString:inString]; [self setLineEndingCharToView:theLineEnd]; // for update toolbar item - [_editorView setString:inString]; // (editorView の setString 内でキャレットを先頭に移動させている) + [[self editorView] setString:inString]; // (editorView の setString 内でキャレットを先頭に移動させている) } else { - [_editorView setString:@""]; + [[self editorView] setString:@""]; } // ツールバーのエンコーディングメニュー、ステータスバー、ドローワを更新 [self updateEncodingInToolbarAndInfo]; // テキストビューへフォーカスを移動 - [[_editorView window] makeFirstResponder:[[[[_editorView splitView] subviews] objectAtIndex:0] textView]]; + [[[self editorView] window] makeFirstResponder:[[[[self editorView] splitView] subviews][0] textView]]; // カラーリングと行番号を更新 // (大きいドキュメントの時はインジケータを表示させるため、ディレイをかけてまずウィンドウを表示させる) - [_editorView updateColoringAndOutlineMenuWithDelay]; -} - - -// ------------------------------------------------------ -- (NSStringEncoding)encodingCode -// 表示しているファイルのエンコーディングを返す -// ------------------------------------------------------ -{ - return _encoding; + [[self editorView] updateColoringAndOutlineMenuWithDelay]; } @@ -639,29 +596,28 @@ - (BOOL)doSetEncoding:(NSStringEncoding)inEncoding updateDocument:(BOOL)inDocUpd // 新規エンコーディングをセット // ------------------------------------------------------ { - if (inEncoding == _encoding) { + if (inEncoding == [self encodingCode]) { return YES; } - int theResult = NSAlertOtherReturn; + NSInteger theResult = NSAlertOtherReturn; BOOL theBoolNeedsShowList = NO; if (inDocUpdate) { theBoolNeedsShowList = [_windowController needsIncompatibleCharDrawerUpdate]; - NSString *theCurString = [_editorView stringForSave]; + NSString *theCurString = [[self editorView] stringForSave]; BOOL theAllowLossy = NO; if (inAskLossy) { if (![theCurString canBeConvertedToEncoding:inEncoding]) { NSString *theEncodingNameStr = [NSString localizedNameOfStringEncoding:inEncoding]; - NSString *theMessage = [NSString stringWithFormat: - NSLocalizedString(@"The characters would have to be changed or deleted in saving as \"%@\".\n\nDo you want to change encoding and show incompatible character(s)?\n",@""), theEncodingNameStr]; - NSAlert *theAleart = [NSAlert alertWithMessageText:NSLocalizedString(@"Warning",@"") - defaultButton:NSLocalizedString(@"Cancel",@"") - alternateButton:NSLocalizedString(@"Change Encoding",@"") - otherButton:nil - informativeTextWithFormat:theMessage]; - - theResult = [theAleart runModal]; + NSString *theMessageText = [NSString stringWithFormat:NSLocalizedString(@"The characters would have to be changed or deleted in saving as \"%@\".", nil), theEncodingNameStr]; + NSAlert *theAlert = [NSAlert alertWithMessageText:theMessageText + defaultButton:NSLocalizedString(@"Cancel", nil) + alternateButton:NSLocalizedString(@"Change Encoding", nil) + otherButton:nil + informativeTextWithFormat:NSLocalizedString(@"Do you want to change encoding and show incompatible character(s)?", nil)]; + + theResult = [theAlert runModal]; if (theResult == NSAlertDefaultReturn) { // == Cancel return NO; } @@ -679,7 +635,7 @@ - (BOOL)doSetEncoding:(NSStringEncoding)inEncoding updateDocument:(BOOL)inDocUpd if (theBoolNeedsShowList) { [[theUndoManager prepareWithInvocationTarget:_windowController] showIncompatibleCharList]; } - [[theUndoManager prepareWithInvocationTarget:self] doSetEncoding:_encoding]; // エンコード値設定 + [[theUndoManager prepareWithInvocationTarget:self] doSetEncoding:[self encodingCode]]; // エンコード値設定 [[theUndoManager prepareWithInvocationTarget:self] updateChangeCount:NSChangeUndone]; // changeCount減値 if (inName) { [theUndoManager setActionName:inName]; @@ -699,13 +655,12 @@ - (void)clearAllMarkupForIncompatibleChar // 背景色の変更を取り消し // ------------------------------------------------------ { - NSArray *theManagers = [_editorView allLayoutManagers]; - int i, theCount = [theManagers count]; + NSArray *managers = [[self editorView] allLayoutManagers]; - for (i = 0; i < theCount; i++) { + for (NSLayoutManager *manager in managers) { // 現存の背景色カラーリングをすべて削除(検索のハイライトも削除される) - [[theManagers objectAtIndex:i] removeTemporaryAttribute:NSBackgroundColorAttributeName - forCharacterRange:NSMakeRange(0, [[_editorView string] length])]; + [manager removeTemporaryAttribute:NSBackgroundColorAttributeName + forCharacterRange:NSMakeRange(0, [[[self editorView] string] length])]; } } @@ -725,8 +680,8 @@ - (NSArray *)markupCharCanNotBeConvertedToEncoding:(NSStringEncoding)inEncoding // ------------------------------------------------------ { NSMutableArray *outArray = [NSMutableArray array]; - NSString *theWholeString = [_editorView stringForSave]; - unsigned int theWholeLength = [theWholeString length]; + NSString *theWholeString = [[self editorView] stringForSave]; + NSUInteger theWholeLength = [theWholeString length]; NSData *theData = [theWholeString dataUsingEncoding:inEncoding allowLossyConversion:YES]; NSString *theConvertedString = [[[NSString alloc] initWithData:theData encoding:inEncoding] autorelease]; @@ -740,7 +695,7 @@ - (NSArray *)markupCharCanNotBeConvertedToEncoding:(NSStringEncoding)inEncoding // 削除/変換される文字をリストアップ id theValues = [[NSUserDefaultsController sharedUserDefaultsController] values]; - NSArray *theManagers = [_editorView allLayoutManagers]; + NSArray *theManagers = [[self editorView] allLayoutManagers]; NSColor *theForeColor = [NSUnarchiver unarchiveObjectWithData:[theValues valueForKey:k_key_textColor]]; NSColor *theBGColor = @@ -750,8 +705,8 @@ - (NSArray *)markupCharCanNotBeConvertedToEncoding:(NSStringEncoding)inEncoding NSString *theCurChar, *theConvertedChar; NSString *theYemMarkChar = [NSString stringWithCharacters:&k_yenMark length:1]; unichar theWholeUnichar, theConvertedUnichar; - unsigned int i, j, theLines, theIndex, theCurLine; - float theBG_R, theBG_G, theBG_B, theF_R, theF_G, theF_B; + NSUInteger i, theLines, theIndex, theCurLine; + CGFloat theBG_R, theBG_G, theBG_B, theF_R, theF_G, theF_B; // 文字色と背景色の中間色を得る [[theForeColor colorUsingColorSpaceName:NSCalibratedRGBColorSpace] @@ -762,9 +717,7 @@ - (NSArray *)markupCharCanNotBeConvertedToEncoding:(NSStringEncoding)inEncoding green:((theBG_G + theF_G) / 2) blue:((theBG_B + theF_B) / 2) alpha:1.0]; - theAttrs = [NSDictionary dictionaryWithObjectsAndKeys: - theIncompatibleColor, NSBackgroundColorAttributeName, - nil]; + theAttrs = @{NSBackgroundColorAttributeName: theIncompatibleColor}; for (i = 0; i < theWholeLength; i++) { theWholeUnichar = [theWholeString characterAtIndex:i]; @@ -779,9 +732,8 @@ - (NSArray *)markupCharCanNotBeConvertedToEncoding:(NSStringEncoding)inEncoding theConvertedChar = @"\\"; } - for (j = 0; j < [theManagers count]; j++) { - [[theManagers objectAtIndex:j] - addTemporaryAttributes:theAttrs forCharacterRange:NSMakeRange(i, 1)]; + for (NSLayoutManager *manager in theManagers) { + [manager addTemporaryAttributes:theAttrs forCharacterRange:NSMakeRange(i, 1)]; } theCurLine = 1; for (theIndex = 0, theLines = 0; theIndex < theWholeLength; theLines++) { @@ -793,7 +745,7 @@ - (NSArray *)markupCharCanNotBeConvertedToEncoding:(NSStringEncoding)inEncoding theIndex = NSMaxRange([theWholeString lineRangeForRange:NSMakeRange(theIndex, 0)]); } [outArray addObject:[NSMutableDictionary dictionaryWithObjectsAndKeys: - [NSNumber numberWithUnsignedInt:theCurLine], k_listLineNumber, + @(theCurLine), k_listLineNumber, [NSValue valueWithRange:NSMakeRange(i, 1)], k_incompatibleRange, theCurChar, k_incompatibleChar, theConvertedChar, k_convertedChar, @@ -805,20 +757,20 @@ - (NSArray *)markupCharCanNotBeConvertedToEncoding:(NSStringEncoding)inEncoding // ------------------------------------------------------ -- (void)doSetNewLineEndingCharacterCode:(int)inNewLineEnding +- (void)doSetNewLineEndingCharacterCode:(NSInteger)inNewLineEnding // 行末コードを変更する // ------------------------------------------------------ { - int theCurrentEnding = [_editorView lineEndingCharacter]; + NSInteger theCurrentEnding = [[self editorView] lineEndingCharacter]; // 現在と同じ行末コードなら、何もしない if (theCurrentEnding == inNewLineEnding) { return; } - NSArray *lineEndingNames = [NSArray arrayWithObjects:k_lineEndingNames, nil]; + NSArray *lineEndingNames = @[k_lineEndingNames]; NSString *theActionName = [NSString stringWithFormat: - NSLocalizedString(@"Line Endings to \"%@\"",@""),[lineEndingNames objectAtIndex:inNewLineEnding]]; + NSLocalizedString(@"Line Endings to \"%@\"",@""),lineEndingNames[inNewLineEnding]]; // Undo登録 NSUndoManager *theUndoManager = [self undoManager]; @@ -834,11 +786,11 @@ - (void)doSetNewLineEndingCharacterCode:(int)inNewLineEnding // ------------------------------------------------------ -- (void)setLineEndingCharToView:(int)inNewLineEnding +- (void)setLineEndingCharToView:(NSInteger)inNewLineEnding // 行末コード番号をセット // ------------------------------------------------------ { - [_editorView setLineEndingCharacter:inNewLineEnding]; + [[self editorView] setLineEndingCharacter:inNewLineEnding]; [[_windowController toolbarController] setSelectEndingItemIndex:inNewLineEnding]; } @@ -849,7 +801,7 @@ - (void)doSetSyntaxStyle:(NSString *)inName // ------------------------------------------------------ { if ([inName length] > 0) { - [_editorView setSyntaxStyleNameToColoring:inName recolorNow:YES]; + [[self editorView] setSyntaxStyleNameToColoring:inName recolorNow:YES]; [[_windowController toolbarController] setSelectSyntaxItemWithTitle:inName]; } } @@ -862,7 +814,7 @@ - (void)doSetSyntaxStyle:(NSString *)inName delay:(BOOL)inBoolDelay { if (inBoolDelay) { if ([inName length] > 0) { - [_editorView setSyntaxStyleNameToColoring:inName recolorNow:NO]; + [[self editorView] setSyntaxStyleNameToColoring:inName recolorNow:NO]; [[_windowController toolbarController] performSelector:@selector(setSelectSyntaxItemWithTitle:) withObject:inName afterDelay:0]; } @@ -881,7 +833,7 @@ - (void)setColoringExtension:(NSString *)inExtension coloring:(BOOL)inBoolColori id theValues = [[NSUserDefaultsController sharedUserDefaultsController] values]; if (![[theValues valueForKey:k_key_doColoring] boolValue]) { return; } - BOOL theBoolIsUpdated = [_editorView setSyntaxExtension:inExtension]; + BOOL theBoolIsUpdated = [[self editorView] setSyntaxExtension:inExtension]; if (theBoolIsUpdated) { // ツールバーのカラーリングポップアップの表示を更新、再カラーリング @@ -903,30 +855,21 @@ - (void)setFontToViewInWindow { id theValues = [[NSUserDefaultsController sharedUserDefaultsController] values]; NSString *theName = [theValues valueForKey:k_key_fontName]; - float theSize = [[theValues valueForKey:k_key_fontSize] floatValue]; + CGFloat theSize = (CGFloat)[[theValues valueForKey:k_key_fontSize] doubleValue]; NSFont *theFont = [NSFont fontWithName:theName size:theSize]; - [_editorView setFont:theFont]; + [[self editorView] setFont:theFont]; } // ------------------------------------------------------ -- (BOOL)alphaOnlyTextViewInThisWindow -// TextView のみを透過するかどうかを返す -// ------------------------------------------------------ -{ - return _alphaOnlyTextViewInThisWindow; -} - - -// ------------------------------------------------------ -- (float)alpha +- (CGFloat)alpha // ウィンドウまたは TextView の透明度を返す // ------------------------------------------------------ { - float outAlpha; + CGFloat outAlpha; if ([self alphaOnlyTextViewInThisWindow]) { - outAlpha = [[[_editorView textView] backgroundColor] alphaComponent]; + outAlpha = [[[[self editorView] textView] backgroundColor] alphaComponent]; } else { outAlpha = [[_windowController window] alphaValue]; } @@ -940,11 +883,11 @@ - (float)alpha } // ------------------------------------------------------ -- (void)setAlpha:(float)inAlpha +- (void)setAlpha:(CGFloat)inAlpha // ウィンドウの透明度を変更する // ------------------------------------------------------ { - float theAlpha; + CGFloat theAlpha; if (inAlpha < 0.2) { theAlpha = 0.2; @@ -958,31 +901,22 @@ - (void)setAlpha:(float)inAlpha [[_windowController window] setBackgroundColor:[NSColor clearColor]]; // ウィンドウ背景色に透明色をセット [[_windowController window] setOpaque:NO]; // ウィンドウを透明にする [[_windowController window] setAlphaValue:1.0]; - [[_editorView splitView] setAllBackgroundColorWithAlpha:theAlpha]; + [[[self editorView] splitView] setAllBackgroundColorWithAlpha:theAlpha]; } else { - [[_windowController window] setBackgroundColor:[NSColor windowBackgroundColor]]; // 通常の背景色をセット + [[_windowController window] setBackgroundColor:nil]; // 通常の背景色をセット [[_windowController window] setOpaque:YES]; // ウィンドウを不透明にする [[_windowController window] setAlphaValue:theAlpha]; - [[_editorView splitView] setAllBackgroundColorWithAlpha:1.0]; + [[[self editorView] splitView] setAllBackgroundColorWithAlpha:1.0]; } } -// ------------------------------------------------------ -- (void)setAlphaOnlyTextViewInThisWindow:(BOOL)inBool -// TextView のみを透過するかどうかを保持 -// ------------------------------------------------------ -{ - _alphaOnlyTextViewInThisWindow = inBool; -} - - // ------------------------------------------------------ - (void)setAlphaToWindowAndTextView // ウィンドウの透明度を変更する // ------------------------------------------------------ { - float theAlpha = [[CEDocumentController sharedDocumentController] windowAlphaControllerValue]; + CGFloat theAlpha = [[CEDocumentController sharedDocumentController] windowAlphaControllerValue]; [self setAlpha:theAlpha]; } @@ -994,7 +928,7 @@ - (void)setAlphaToWindowAndTextViewDefaultValue // ------------------------------------------------------ { id theValues = [[NSUserDefaultsController sharedUserDefaultsController] values]; - float theAlpha = [[theValues valueForKey:k_key_windowAlpha] floatValue]; + CGFloat theAlpha = (CGFloat)[[theValues valueForKey:k_key_windowAlpha] doubleValue]; [self setAlpha:theAlpha]; } @@ -1005,64 +939,24 @@ - (void)setAlphaValueToTransparencyController // 透明度設定パネルに値をセット // ------------------------------------------------------ { - float theAlpha = [self alpha]; + CGFloat theAlpha = [self alpha]; NSMutableDictionary *outDict = [NSMutableDictionary dictionaryWithObjectsAndKeys: - [NSNumber numberWithFloat:theAlpha], k_key_curWindowAlpha, - [NSNumber numberWithBool:[self alphaOnlyTextViewInThisWindow]], k_key_curAlphaOnlyTextView, + @(theAlpha), k_key_curWindowAlpha, + @([self alphaOnlyTextViewInThisWindow]), k_key_curAlphaOnlyTextView, nil]; [[CEDocumentController sharedDocumentController] setWindowAlphaControllerDictionary:outDict]; } // ------------------------------------------------------ -- (NSAppleEventDescriptor *)fileSender -// ODB Editor Suite 対応メソッド。ファイルクライアントのシグネチャを返す。 -// ------------------------------------------------------ -{ - return _fileSender; -} - - -// ------------------------------------------------------ -- (void)setFileSender:(NSAppleEventDescriptor *)inFileSender -// ODB Editor Suite 対応メソッド。ファイルクライアントのシグネチャをセット。 -// ------------------------------------------------------ -{ - [inFileSender retain]; - [_fileSender release]; - _fileSender = inFileSender; -} - - -// ------------------------------------------------------ -- (NSAppleEventDescriptor *)fileToken -// ODB Editor Suite 対応メソッド。ファイルクライアントの追加文字列を返す。 -// ------------------------------------------------------ -{ - return _fileToken; -} - - -// ------------------------------------------------------ -- (void)setFileToken:(NSAppleEventDescriptor *)inFileToken -// ODB Editor Suite 対応メソッド。ファイルクライアントの追加文字列をセット。 -// ------------------------------------------------------ -{ - [inFileToken retain]; - [_fileToken release]; - _fileToken = inFileToken; -} - - -// ------------------------------------------------------ -- (NSRange)rangeInTextViewWithLocation:(int)inLocation withLength:(int)inLength +- (NSRange)rangeInTextViewWithLocation:(NSInteger)inLocation withLength:(NSInteger)inLength // マイナス指定された文字範囲/長さをNSRangeにコンバートして返す // ------------------------------------------------------ { - CETextViewCore *theTextView = [_editorView textView]; - unsigned int theWholeLength = [[theTextView string] length]; - int theLocation, theLength; + CETextViewCore *theTextView = [[self editorView] textView]; + NSUInteger theWholeLength = [[theTextView string] length]; + NSInteger theLocation, theLength; NSRange outRange = NSMakeRange(0, 0); theLocation = (inLocation < 0) ? (theWholeLength + inLocation) : inLocation; @@ -1085,34 +979,34 @@ - (NSRange)rangeInTextViewWithLocation:(int)inLocation withLength:(int)inLength // ------------------------------------------------------ -- (void)setSelectedCharacterRangeInTextViewWithLocation:(int)inLocation withLength:(int)inLength +- (void)setSelectedCharacterRangeInTextViewWithLocation:(NSInteger)inLocation withLength:(NSInteger)inLength // editorView 内部の textView で指定された部分を文字単位で選択 // ------------------------------------------------------ { NSRange theSelectionRange = [self rangeInTextViewWithLocation:inLocation withLength:inLength]; - [_editorView setSelectedRange:theSelectionRange]; + [[self editorView] setSelectedRange:theSelectionRange]; } // ------------------------------------------------------ -- (void)setSelectedLineRangeInTextViewWithLocation:(int)inLocation withLength:(int)inLength +- (void)setSelectedLineRangeInTextViewWithLocation:(NSInteger)inLocation withLength:(NSInteger)inLength // editorView 内部の textView で指定された部分を行単位で選択 // ------------------------------------------------------ { - CETextViewCore *theTextView = [_editorView textView]; - unsigned int theWholeLength = [[theTextView string] length]; + CETextViewCore *theTextView = [[self editorView] textView]; + NSUInteger theWholeLength = [[theTextView string] length]; OGRegularExpression *regex = [OGRegularExpression regularExpressionWithString:@"^"]; NSArray *theArray = [regex allMatchesInString:[theTextView string]]; if (theArray) { - int theCount = [theArray count]; + NSInteger theCount = [theArray count]; if (inLocation == 0) { [theTextView setSelectedRange:NSMakeRange(0, 0)]; } else if (inLocation > theCount) { [theTextView setSelectedRange:NSMakeRange(theWholeLength, 0)]; } else { - int theLocation, theLength; + NSInteger theLocation, theLength; theLocation = (inLocation < 0) ? (theCount + inLocation + 1) : inLocation; if (inLength < 0) { @@ -1130,10 +1024,10 @@ - (void)setSelectedLineRangeInTextViewWithLocation:(int)inLocation withLength:(i } if ((theLocation <= 0) || (theLength <= 0)) { return; } - OGRegularExpressionMatch *theMatch = [theArray objectAtIndex:(theLocation - 1)]; + OGRegularExpressionMatch *theMatch = theArray[(theLocation - 1)]; NSRange theRange = [theMatch rangeOfMatchedString]; NSRange theTmpRange = theRange; - int i; + NSInteger i; for (i = 0; i < theLength; i++) { if (NSMaxRange(theTmpRange) > theWholeLength) { @@ -1156,17 +1050,17 @@ - (void)scrollToCenteringSelection // 選択範囲が見えるようにスクロール // ------------------------------------------------------ { - [[_editorView textView] scrollRangeToVisible:[[_editorView textView] selectedRange]]; + [[[self editorView] textView] scrollRangeToVisible:[[[self editorView] textView] selectedRange]]; } // ------------------------------------------------------ -- (void)gotoLocation:(int)inLocation withLength:(int)inLength +- (void)gotoLocation:(NSInteger)inLocation withLength:(NSInteger)inLength // 選択範囲を変更する // ------------------------------------------------------ { id theValues = [[NSUserDefaultsController sharedUserDefaultsController] values]; - int theIndex = [[theValues valueForKey:k_key_gotoObjectMenuIndex] intValue]; + NSInteger theIndex = [[theValues valueForKey:k_key_gotoObjectMenuIndex] integerValue]; if (theIndex == k_gotoCharacterIndex) { [self setSelectedCharacterRangeInTextViewWithLocation:inLocation withLength:inLength]; @@ -1174,10 +1068,7 @@ - (void)gotoLocation:(int)inLocation withLength:(int)inLength [self setSelectedLineRangeInTextViewWithLocation:inLocation withLength:inLength]; } [self scrollToCenteringSelection]; // 選択範囲が見えるようにスクロール - // 10.5+で実行されているときには検索結果表示エフェクトを追加 - if (floor(NSAppKitVersionNumber) >= 949) { // 949 = LeopardのNSAppKitVersionNumber - [[_editorView textView] showFindIndicatorForRange:[[_editorView textView] selectedRange]]; - } + [[[self editorView] textView] showFindIndicatorForRange:[[[self editorView] textView] selectedRange]]; // 検索結果表示エフェクトを追加 [[_windowController window] makeKeyAndOrderFront:self]; // 対象ウィンドウをキーに } @@ -1187,34 +1078,23 @@ - (void)getFileAttributes // ファイル情報辞書を保持 // ------------------------------------------------------ { - NSFileManager *theFileManager = [NSFileManager defaultManager]; - NSDictionary *theAttr = [theFileManager fileAttributesAtPath:[self fileName] traverseLink:YES]; + NSDictionary *attributes = [[NSFileManager defaultManager] attributesOfItemAtPath:[[self fileURL] path] + error:nil]; - if (theAttr) { - [theAttr retain]; - [_fileAttr release]; - _fileAttr = theAttr; + if (attributes) { + [self setFileAttributes:attributes]; [_windowController updateFileAttrsInformation]; } } -// ------------------------------------------------------ -- (NSDictionary *)documentFileAttributes -// ファイル属性情報辞書を返す -// ------------------------------------------------------ -{ - return _fileAttr; -} - - // ------------------------------------------------------ - (void)rebuildToolbarEncodingItem // toolbar のエンコーディングメニューアイテムを再生成する // ------------------------------------------------------ { [[_windowController toolbarController] buildEncodingPopupButton]; - [[_windowController toolbarController] setSelectEncoding:_encoding]; + [[_windowController toolbarController] setSelectEncoding:[self encodingCode]]; } @@ -1235,13 +1115,13 @@ - (void)setRecolorFlagToWindowControllerWithStyleName:(NSDictionary *)inDictiona // 指定されたスタイルを適用していたら、WindowController のリカラーフラグを立てる // ------------------------------------------------------ { - NSString *theOldName = [inDictionary objectForKey:k_key_oldStyleName]; - NSString *theNewName = [inDictionary objectForKey:k_key_newStyleName]; - NSString *theCurStyleName = [_editorView syntaxStyleNameToColoring]; + NSString *theOldName = inDictionary[k_key_oldStyleName]; + NSString *theNewName = inDictionary[k_key_newStyleName]; + NSString *theCurStyleName = [[self editorView] syntaxStyleNameToColoring]; if ([theOldName isEqualToString:theCurStyleName]) { if ((theOldName != nil) && (theNewName != nil) && (![theOldName isEqualToString:theNewName])) { - [_editorView setSyntaxStyleNameToColoring:theNewName recolorNow:NO]; + [[self editorView] setSyntaxStyleNameToColoring:theNewName recolorNow:NO]; } [_windowController setRecolorWithBecomeKey:YES]; } @@ -1253,52 +1133,16 @@ - (void)setStyleToNoneAndRecolorFlagWithStyleName:(NSString *)inStyleName // 指定されたスタイルを適用していたら WindowController のリカラーフラグを立て、スタイル名を"None"にする // ------------------------------------------------------ { - NSString *theCurStyleName = [_editorView syntaxStyleNameToColoring]; + NSString *theCurStyleName = [[self editorView] syntaxStyleNameToColoring]; // 指定されたスタイル名と違ったら、無視 if ([theCurStyleName isEqualToString:inStyleName]) { [_windowController setRecolorWithBecomeKey:YES]; - [_editorView setSyntaxStyleNameToColoring:NSLocalizedString(@"None",@"") recolorNow:NO]; + [[self editorView] setSyntaxStyleNameToColoring:NSLocalizedString(@"None",@"") recolorNow:NO]; } } -// ------------------------------------------------------ -- (BOOL)doCascadeWindow -// ウィンドウをカスケード表示するかどうかを返す -// ------------------------------------------------------ -{ - return _doCascadeWindow; -} - - -// ------------------------------------------------------ -- (void)setDoCascadeWindow:(BOOL)inBool -// ウィンドウをカスケード表示するかどうかをセット -// ------------------------------------------------------ -{ - _doCascadeWindow = inBool; -} - - -// ------------------------------------------------------ -- (NSPoint)initTopLeftPoint -// カスケードしないときのウィンドウ左上のポイントを返す -// ------------------------------------------------------ -{ - return _initTopLeftPoint; -} - - -// ------------------------------------------------------ -- (void)setInitTopLeftPoint:(NSPoint)inPoint -// カスケードしないときのウィンドウ左上のポイントをセット -// ------------------------------------------------------ -{ - _initTopLeftPoint = inPoint; -} - - // ------------------------------------------------------ - (void)setSmartInsertAndDeleteToTextView // スマートインサート/デリートをするかどうかをテキストビューへ設定 @@ -1306,7 +1150,7 @@ - (void)setSmartInsertAndDeleteToTextView { id theValues = [[NSUserDefaultsController sharedUserDefaultsController] values]; - [[_editorView textView] setSmartInsertDeleteEnabled: + [[[self editorView] textView] setSmartInsertDeleteEnabled: [[theValues valueForKey:k_key_smartInsertAndDelete] boolValue]]; } @@ -1317,7 +1161,7 @@ - (NSString *)currentIANACharSetName // ------------------------------------------------------ { NSString *outString = nil; - CFStringEncoding theCFEncoding = CFStringConvertNSStringEncodingToEncoding(_encoding); + CFStringEncoding theCFEncoding = CFStringConvertNSStringEncodingToEncoding([self encodingCode]); if (theCFEncoding != kCFStringEncodingInvalidId) { outString = (NSString *)CFStringConvertEncodingToIANACharSetName(theCFEncoding); @@ -1327,67 +1171,68 @@ - (NSString *)currentIANACharSetName // ------------------------------------------------------ -- (void)showUpdateAlertWithUKKQueueNotification +- (void)showUpdatedByExternalProcessAlert // 外部プロセスによって更新されたことをシート/ダイアログで通知 // ------------------------------------------------------ { - if (_isSaving) { return; } // 自身が保存した時の通知は無視 - if (!_showUpdateAlertWithBecomeKey) { return; } // 表示フラグが立っていなければ、もどる + if (![self showUpdateAlertWithBecomeKey]) { return; } // 表示フラグが立っていなければ、もどる - NSAlert *theAleart; - NSString *theDefaultTitle, *theInfoText; + NSAlert *alert; + NSString *messageText, *informativeText, *defaultButton; if ([self isDocumentEdited]) { - theDefaultTitle = NSLocalizedString(@"Keep CotEditor Edition",@""); - theInfoText = NSLocalizedString(@"The file has been modified by another process.\nThere are also unsaved changes in CotEditor.\n\nDo you want to keep CotEditor Edition or Update to the modified edition?\n",@""); + messageText = @"The file has been modified by another process. There are also unsaved changes in CotEditor."; + informativeText = @"Do you want to keep CotEditor's edition or update to the modified edition?"; + defaultButton = @"Keep CotEditor's Edition"; } else { - theDefaultTitle = NSLocalizedString(@"Keep unchanged",@""); - theInfoText = NSLocalizedString(@"The file has been modified by another process.\n\nDo you want to keep unchanged or Update to the modified edition?\n",@""); + messageText = @"The file has been modified by another process."; + informativeText = @"Do you want to keep unchanged or Update to the modified edition?"; + defaultButton = @"Keep Unchanged"; [self updateChangeCount:NSChangeDone]; // ダーティーフラグを立てる } - theAleart = [NSAlert alertWithMessageText:NSLocalizedString(@"Warning",@"") - defaultButton:theDefaultTitle - alternateButton:NSLocalizedString(@"Update",@"") - otherButton:nil - informativeTextWithFormat:theInfoText]; + alert = [NSAlert alertWithMessageText:NSLocalizedString(messageText, nil) + defaultButton:NSLocalizedString(defaultButton, nil) + alternateButton:NSLocalizedString(@"Update", nil) + otherButton:nil + informativeTextWithFormat:NSLocalizedString(informativeText, nil)]; // シートが表示中でなければ、表示 - if ([[_editorView window] attachedSheet] == nil) { - _isRevertingWithUKKQueueNotification = YES; - [[_editorView window] orderFront:nil]; // 後ろにあるウィンドウにシートを表示させると不安定になることへの対策 - [theAleart beginSheetModalForWindow:[_editorView window] + if ([[self windowForSheet] attachedSheet] == nil) { + [self setIsRevertingForExternalFileUpdate:YES]; + [[self windowForSheet] orderFront:nil]; // 後ろにあるウィンドウにシートを表示させると不安定になることへの対策 + [alert beginSheetModalForWindow:[self windowForSheet] modalDelegate:self didEndSelector:@selector(alertForModByAnotherProcessDidEnd:returnCode:contextInfo:) contextInfo:NULL]; - } else if (_isRevertingWithUKKQueueNotification) { + } else if ([self isRevertingForExternalFileUpdate]) { // (同じ外部プロセスによる変更通知アラートシートを表示中の時は、なにもしない) // 既にシートが出ている時はダイアログで表示 } else { - _isRevertingWithUKKQueueNotification = YES; - [[_editorView window] orderFront:nil]; // 後ろにあるウィンドウにシートを表示させると不安定になることへの対策 - int theResult = [theAleart runModal]; // アラート表示 - [self alertForModByAnotherProcessDidEnd:theAleart returnCode:theResult contextInfo:NULL]; + [self setIsRevertingForExternalFileUpdate:YES]; + [[self windowForSheet] orderFront:nil]; // 後ろにあるウィンドウにシートを表示させると不安定になることへの対策 + NSInteger theResult = [alert runModal]; // アラート表示 + [self alertForModByAnotherProcessDidEnd:alert returnCode:theResult contextInfo:NULL]; } } // ------------------------------------------------------ -- (float)lineSpacingInTextView +- (CGFloat)lineSpacingInTextView // テキストビューに設定されている行間値を返す // ------------------------------------------------------ { - return ([[_editorView textView] lineSpacing]); + return ([[[self editorView] textView] lineSpacing]); } // ------------------------------------------------------ -- (void)setCustomLineSpacingToTextView:(float)inSpacing +- (void)setCustomLineSpacingToTextView:(CGFloat)inSpacing // テキストビューにカスタム行間値をセットする // ------------------------------------------------------ { - float theSpacing; + CGFloat theSpacing; if (inSpacing < k_lineSpacingMin) { theSpacing = k_lineSpacingMin; @@ -1396,21 +1241,12 @@ - (void)setCustomLineSpacingToTextView:(float)inSpacing } else { theSpacing = inSpacing; } - [[_editorView textView] setNewLineSpacingAndUpdate:theSpacing]; + [[[self editorView] textView] setNewLineSpacingAndUpdate:theSpacing]; } -// ------------------------------------------------------ -- (BOOL)canActivateShowInvisibleCharsItem -// 不可視文字表示メニュー/ツールバーアイテムを有効化できるかを返す -// ------------------------------------------------------ -{ - return _canActivateShowInvisibleCharsItem; -} - - -#pragma mark ===== Protocol ===== +#pragma mark Protocols //======================================================= // NSMenuValidation Protocol @@ -1422,31 +1258,31 @@ - (BOOL)validateMenuItem:(NSMenuItem *)inMenuItem // メニュー項目の有効・無効を制御 // ------------------------------------------------------ { - int theState = NSOffState; + NSInteger theState = NSOffState; NSString *theName; if ([inMenuItem action] == @selector(saveDocument:)) { // 書き込み不可の時は、アラートが表示され「OK」されるまで保存メニューを無効化する - if ((![_editorView isWritable]) && (![_editorView isAlertedNotWritable])) { + if ((![[self editorView] isWritable]) && (![[self editorView] isAlertedNotWritable])) { return NO; } } else if ([inMenuItem action] == @selector(selectPrevItemOfOutlineMenu:)) { - return ([[_editorView navigationBar] canSelectPrevItem]); + return ([[[self editorView] navigationBar] canSelectPrevItem]); } else if ([inMenuItem action] == @selector(selectNextItemOfOutlineMenu:)) { - return ([[_editorView navigationBar] canSelectNextItem]); + return ([[[self editorView] navigationBar] canSelectNextItem]); } else if ([inMenuItem action] == @selector(setEncoding:)) { - theState = ([inMenuItem tag] == _encoding) ? NSOnState : NSOffState; + theState = ([inMenuItem tag] == [self encodingCode]) ? NSOnState : NSOffState; } else if (([inMenuItem action] == @selector(setLineEndingCharToLF:)) || ([inMenuItem action] == @selector(setLineEndingCharToCR:)) || ([inMenuItem action] == @selector(setLineEndingCharToCRLF:))) { - theState = ([inMenuItem tag] == [_editorView lineEndingCharacter]) ? NSOnState : NSOffState; + theState = ([inMenuItem tag] == [[self editorView] lineEndingCharacter]) ? NSOnState : NSOffState; } else if ([inMenuItem action] == @selector(setSyntaxStyle:)) { - theName = [_editorView syntaxStyleNameToColoring]; + theName = [[self editorView] syntaxStyleNameToColoring]; if (theName && [[inMenuItem title] isEqualToString:theName]) { theState = NSOnState; } } else if ([inMenuItem action] == @selector(recoloringAllStringOfDocument:)) { - theName = [_editorView syntaxStyleNameToColoring]; + theName = [[self editorView] syntaxStyleNameToColoring]; if (theName && [theName isEqualToString:NSLocalizedString(@"None",@"")]) { return NO; } @@ -1464,13 +1300,13 @@ - (BOOL)validateMenuItem:(NSMenuItem *)inMenuItem //======================================================= // ------------------------------------------------------ --(BOOL)validateToolbarItem:(NSToolbarItem *)inToolbarItem +-(BOOL)validateToolbarItem:(NSToolbarItem *)theItem // ツールバー項目の有効・無効を制御 // ------------------------------------------------------ { - if ([[inToolbarItem itemIdentifier] isEqualToString:k_syntaxReColorAllItemID]) { - NSString *theName = [_editorView syntaxStyleNameToColoring]; - if (theName && [theName isEqualToString:NSLocalizedString(@"None",@"")]) { + if ([[theItem itemIdentifier] isEqualToString:k_syntaxReColorAllItemID]) { + NSString *name = [[self editorView] syntaxStyleNameToColoring]; + if ([name isEqualToString:NSLocalizedString(@"None", @"")]) { return NO; } } @@ -1479,56 +1315,54 @@ -(BOOL)validateToolbarItem:(NSToolbarItem *)inToolbarItem -#pragma mark === Delegate and Notification === +#pragma mark Delegate and Notifications //======================================================= -// Notification method (UKKQueue) -// <== UKKKqueue +// Delegate method (NSFilePresenter) +// <== NSFilePresenter //======================================================= // ------------------------------------------------------ -- (void)fileWritten:(NSNotification *)inNotification -// いま開いているファイルが外部プロセスによって上書き保存された +- (void)presentedItemDidChange +// ファイルが変更された // ------------------------------------------------------ { - // 自分が保存中でないなら、書き込み通知を行う - if (!_isSaving) { - id theValues = [[NSUserDefaultsController sharedUserDefaultsController] values]; - - _showUpdateAlertWithBecomeKey = YES; - // アプリがアクティブならシート/ダイアログを表示し、そうでなければ設定を見てDockアイコンをジャンプ - if ([NSApp isActive]) { - [self showUpdateAlertWithUKKQueueNotification]; - } else if ([[theValues valueForKey:k_key_notifyEditByAnother] boolValue]) { - int theRequestID = [NSApp requestUserAttention:NSInformationalRequest]; - // Dockアイコンジャンプを中止(本来なくてもいいはずだが10.4.3ではジャンプし続けるため、実行) - [NSApp cancelUserAttentionRequest:theRequestID]; - } + // ファイルのmodificationDateがドキュメントのmodificationDateと同じ場合は無視 + NSFileCoordinator *coordinator = [[[NSFileCoordinator alloc] initWithFilePresenter:self] autorelease]; + __block NSDate *fileModificationDate; + [coordinator coordinateReadingItemAtURL:[self fileURL] options:NSFileCoordinatorReadingWithoutChanges + error:nil byAccessor:^(NSURL *newURL) + { + NSDictionary *fileAttrs = [[NSFileManager defaultManager] attributesOfItemAtPath:[newURL path] error:nil]; + fileModificationDate = [fileAttrs fileModificationDate]; + }]; + if ([fileModificationDate isEqualToDate:[self fileModificationDate]]) { return; } + + // ファイルのMD5ハッシュが保持しているものと同じ場合は編集されていないと認識させた上で無視 + __block NSString *MD5; + [coordinator coordinateReadingItemAtURL:[self fileURL] options:NSFileCoordinatorReadingWithoutChanges + error:nil byAccessor:^(NSURL *newURL) + { + NSData *data = [NSData dataWithContentsOfURL:newURL]; + MD5 = [data MD5]; + }]; + if ([MD5 isEqualToString:[self fileMD5]]) { + // documentの保持しているfileModificationDateを書き換える (2014-03 by 1024jp) + // ここだけで無視してもファイル保存時にアラートが出るのことへの対策 + [self setFileModificationDate:fileModificationDate]; + + return; } -} - - -// ------------------------------------------------------ -- (void)fileDeleted:(NSNotification *)inNotification -// いま開いているファイルが外部プロセスによって削除された -// ------------------------------------------------------ -{ -// このメソッドは下記のページの情報を参考にさせていただきました(2005.11.05) -// http://homepage3.nifty.com/kimuraw/misc/ukkqueue.html - - NSString *thePath = [self fileName]; - - // UKKQueue からパスを削除 - [[UKKQueue sharedQueue] removePathFromQueue:thePath]; - // Cocoa アプリで標準的に使われる置き換え保存かどうかを確認する - if ([[NSFileManager defaultManager] fileExistsAtPath:thePath]) { - // 置き換え保存なら、上書き保存と同じ処理後、UKKQueue に再登録 - [self fileWritten:inNotification]; - [[UKKQueue sharedQueue] addPathToQueue:thePath - notifyingAbout:(UKKQueueNotifyAboutWrite | UKKQueueNotifyAboutDelete)]; - } else { - // 単にファイルが削除されたのなら、監視をやめる - [[[NSWorkspace sharedWorkspace] notificationCenter] removeObserver:self]; + + // 書き込み通知を行う + [self setShowUpdateAlertWithBecomeKey:YES]; + id defaults = [[NSUserDefaultsController sharedUserDefaultsController] values]; + // アプリがアクティブならシート/ダイアログを表示し、そうでなければ設定を見てDockアイコンをジャンプ + if ([NSApp isActive]) { + [self performSelectorOnMainThread:@selector(showUpdatedByExternalProcessAlert) withObject:nil waitUntilDone:NO]; + + } else if ([[defaults valueForKey:k_key_notifyEditByAnother] boolValue]) { + [NSApp requestUserAttention:NSInformationalRequest]; } } @@ -1544,14 +1378,14 @@ - (void)documentDidFinishOpen:(NSNotification *)inNotification // 書類オープン処理が完了した // ------------------------------------------------------ { - if ([inNotification object] != _editorView) { return; } + if ([inNotification object] != [self editorView]) { return; } [self showAlertForNotWritable]; } -#pragma mark ===== Action messages ===== +#pragma mark Action Messages //======================================================= // Action messages @@ -1590,13 +1424,14 @@ - (IBAction)printDocument:(id)sender // Smultron Copyright (c) 2004-2005 Peter Borg, All rights reserved. // Smultron is released under GNU General Public License, http://www.gnu.org/copyleft/gpl.html - NSPrintPanel *thePrintPanel = [NSPrintPanel printPanel]; + NSPrintPanel *printPanel = [NSPrintPanel printPanel]; - [thePrintPanel setAccessoryView:[_windowController printAccessoryView]]; - [thePrintPanel beginSheetWithPrintInfo:[self printInfo] - modalForWindow:[_editorView window] - delegate:self didEndSelector:@selector(printPanelDidEnd:returnCode:contextInfo:) - contextInfo:NULL]; + [printPanel setAccessoryView:[_windowController printAccessoryView]]; + [printPanel beginSheetWithPrintInfo:[self printInfo] + modalForWindow:[self windowForSheet] + delegate:self + didEndSelector:@selector(printPanelDidEnd:returnCode:contextInfo:) + contextInfo:NULL]; } @@ -1643,25 +1478,24 @@ - (IBAction)setEncoding:(id)sender { NSStringEncoding theEncoding = [sender tag]; - if ((theEncoding < 1) || (theEncoding == _encoding)) { + if ((theEncoding < 1) || (theEncoding == [self encodingCode])) { return; } - int theResult; + NSInteger theResult; NSString *theEncodingName = [sender title]; // 文字列がないまたは未保存の時は直ちに変換プロセスへ - if (([[_editorView string] length] < 1) || (![self fileName])) { + if (([[[self editorView] string] length] < 1) || (![self fileURL])) { theResult = NSAlertDefaultReturn; } else { // 変換するか再解釈するかの選択ダイアログを表示 - NSAlert *theAleart = [NSAlert alertWithMessageText:NSLocalizedString(@"File Encoding",@"") - defaultButton:NSLocalizedString(@"Convert",@"") - alternateButton:NSLocalizedString(@"Reinterpret",@"") - otherButton:NSLocalizedString(@"Cancel",@"") - informativeTextWithFormat:[NSString stringWithFormat: - NSLocalizedString(@"Do you want to convert or reinterpret using \"%@\"?\n",@""), theEncodingName]]; + NSAlert *theAlert = [NSAlert alertWithMessageText:NSLocalizedString(@"File encoding", nil) + defaultButton:NSLocalizedString(@"Convert", nil) + alternateButton:NSLocalizedString(@"Reinterpret", nil) + otherButton:NSLocalizedString(@"Cancel", nil) + informativeTextWithFormat:NSLocalizedString(@"Do you want to convert or reinterpret it using \"%@\"?", nil), theEncodingName]; - theResult = [theAleart runModal]; + theResult = [theAlert runModal]; } if (theResult == NSAlertDefaultReturn) { // = Convert 変換 @@ -1674,44 +1508,40 @@ - (IBAction)setEncoding:(id)sender } else if (theResult == NSAlertAlternateReturn) { // = Reinterpret 再解釈 - NSString *theFileName = [self fileName]; - - if (!theFileName) { return; } // まだファイル保存されていない時(ファイルがない時)は、戻る + if (![self fileURL]) { return; } // まだファイル保存されていない時(ファイルがない時)は、戻る if ([self isDocumentEdited]) { - NSAlert *theSecondAleart = [NSAlert alertWithMessageText:NSLocalizedString(@"Warning",@"") - defaultButton:NSLocalizedString(@"Cancel",@"") - alternateButton:NSLocalizedString(@"Discard Changes",@"") - otherButton:nil - informativeTextWithFormat:[NSString stringWithFormat: - NSLocalizedString(@"The file \'%@\' has unsaved changes. \n\nDo you want to discard the changes and reset the file encodidng?\n",@""), theFileName]]; - - int theSecondResult = [theSecondAleart runModal]; + NSAlert *theSecondAlert = [NSAlert alertWithMessageText:[NSString stringWithFormat:NSLocalizedString(@"The file \'%@\' has unsaved changes.", nil), [[self fileURL] path]] + defaultButton:NSLocalizedString(@"Cancel", nil) + alternateButton:NSLocalizedString(@"Discard Changes", nil) + otherButton:nil + informativeTextWithFormat:NSLocalizedString(@"Do you want to discard the changes and reset the file encodidng?", nil)]; + + NSInteger theSecondResult = [theSecondAlert runModal]; if (theSecondResult != NSAlertAlternateReturn) { // != Discard Change // ツールバーから変更された場合のため、ツールバーアイテムの選択状態をリセット - [[_windowController toolbarController] setSelectEncoding:_encoding]; + [[_windowController toolbarController] setSelectEncoding:[self encodingCode]]; return; } } - if ([self readFromFile:theFileName withEncoding:theEncoding]) { + if ([self readFromFile:[[self fileURL] path] withEncoding:theEncoding]) { [self setStringToEditorView]; // アンドゥ履歴をクリア [[self undoManager] removeAllActions]; [self updateChangeCount:NSChangeCleared]; } else { - NSAlert *theThirdAleart = [NSAlert alertWithMessageText:NSLocalizedString(@"Can Not reinterpret",@"") - defaultButton:NSLocalizedString(@"Done",@"") - alternateButton:nil - otherButton:nil - informativeTextWithFormat:[NSString stringWithFormat: - NSLocalizedString(@"Sorry, the file \'%@\' could not reinterpret in the new encoding \"%@\".",@""), theFileName, theEncodingName]]; - [theThirdAleart setAlertStyle:NSCriticalAlertStyle]; + NSAlert *theThirdAlert = [NSAlert alertWithMessageText:NSLocalizedString(@"Can not reinterpret", nil) + defaultButton:NSLocalizedString(@"Done", nil) + alternateButton:nil + otherButton:nil + informativeTextWithFormat:NSLocalizedString(@"The file \'%@\' could not be reinterpreted using the new encoding \"%@\".", nil), [[self fileURL] path], theEncodingName]; + [theThirdAlert setAlertStyle:NSCriticalAlertStyle]; NSBeep(); - (void)[theThirdAleart runModal]; + (void)[theThirdAlert runModal]; } } // ツールバーから変更された場合のため、ツールバーアイテムの選択状態をリセット - [[_windowController toolbarController] setSelectEncoding:_encoding]; + [[_windowController toolbarController] setSelectEncoding:[self encodingCode]]; } @@ -1733,7 +1563,7 @@ - (IBAction)recoloringAllStringOfDocument:(id)sender // ドキュメント全体を再カラーリング // ------------------------------------------------------ { - [_editorView recoloringAllString]; + [[self editorView] recoloringAllString]; } @@ -1742,7 +1572,7 @@ - (IBAction)setWindowAlpha:(id)sender // ウィンドウの透明度を設定 // ------------------------------------------------------ { - float theAlpha = [sender floatValue]; + CGFloat theAlpha = (CGFloat)[sender doubleValue]; [self setAlpha:theAlpha]; } @@ -1766,7 +1596,7 @@ - (IBAction)insertIANACharSetName:(id)sender NSString *theString = [self currentIANACharSetName]; if (theString != nil) { - [[_editorView textView] insertText:theString]; + [[[self editorView] textView] insertText:theString]; } } @@ -1779,7 +1609,7 @@ - (IBAction)insertIANACharSetNameWithCharset:(id)sender NSString *theString = [self currentIANACharSetName]; if (theString != nil) { - [[_editorView textView] insertText:[NSString stringWithFormat:@"charset=\"%@\"", theString]]; + [[[self editorView] textView] insertText:[NSString stringWithFormat:@"charset=\"%@\"", theString]]; } } @@ -1792,7 +1622,7 @@ - (IBAction)insertIANACharSetNameWithEncoding:(id)sender NSString *theString = [self currentIANACharSetName]; if (theString != nil) { - [[_editorView textView] insertText:[NSString stringWithFormat:@"encoding=\"%@\"", theString]]; + [[[self editorView] textView] insertText:[NSString stringWithFormat:@"encoding=\"%@\"", theString]]; } } @@ -1802,7 +1632,7 @@ - (IBAction)selectPrevItemOfOutlineMenu:(id)sender // アウトラインメニューの前の項目を選択(メニューバーからのアクションを中継) // ------------------------------------------------------ { - [[_editorView navigationBar] selectPrevItem]; + [[[self editorView] navigationBar] selectPrevItem]; } @@ -1811,16 +1641,13 @@ - (IBAction)selectNextItemOfOutlineMenu:(id)sender // アウトラインメニューの次の項目を選択(メニューバーからのアクションを中継) // ------------------------------------------------------ { - [[_editorView navigationBar] selectNextItem]; + [[[self editorView] navigationBar] selectNextItem]; } -@end - - -@implementation CEDocument (Private) +#pragma mark - Private Methods //======================================================= // Private method @@ -1832,7 +1659,7 @@ - (NSString *)convertedCharacterString:(NSString *)inString withEncoding:(NSStri // 半角円マークを使えないエンコードの時はバックスラッシュに変換した文字列を返す // ------------------------------------------------------ { - unsigned int theLength = [inString length]; + NSUInteger theLength = [inString length]; if (theLength > 0) { NSMutableString *outString = [inString mutableCopy]; // ===== mutableCopy @@ -1853,7 +1680,7 @@ - (void)doSetEncoding:(NSStringEncoding)inEncoding // エンコード値を保存 // ------------------------------------------------------ { - _encoding = inEncoding; + [self setEncodingCode:inEncoding]; // ツールバーのエンコーディングメニュー、ステータスバー、ドローワを更新 [self updateEncodingInToolbarAndInfo]; } @@ -1865,9 +1692,9 @@ - (void)updateEncodingInToolbarAndInfo // ------------------------------------------------------ { // ツールバーのエンコーディングメニューを更新 - [[_windowController toolbarController] setSelectEncoding:_encoding]; + [[_windowController toolbarController] setSelectEncoding:[self encodingCode]]; // ステータスバー、ドローワを更新 - [_editorView updateLineEndingsInStatusAndInfo:NO]; + [[self editorView] updateLineEndingsInStatusAndInfo:NO]; } @@ -1879,17 +1706,20 @@ - (BOOL)readFromFile:(NSString *)inFileName withEncoding:(NSStringEncoding)inEnc NSData *theData = nil; // "authopen"コマンドを使って読み込む - NSString *theConvertedPath = [NSString stringWithUTF8String:[inFileName UTF8String]]; + NSString *theConvertedPath = @([inFileName UTF8String]); NSTask *theTask = [[[NSTask alloc] init] autorelease]; - int status; + NSInteger status; [theTask setLaunchPath:@"/usr/libexec/authopen"]; - [theTask setArguments:[NSArray arrayWithObjects:theConvertedPath, nil]]; + [theTask setArguments:@[theConvertedPath]]; [theTask setStandardOutput:[NSPipe pipe]]; [theTask launch]; theData = [NSData dataWithData:[[[theTask standardOutput] fileHandleForReading] readDataToEndOfFile]]; [theTask waitUntilExit]; + + // presentedItemDidChangeにて内容の同一性を比較するためにファイルのMD5を保存する + [self setFileMD5:[theData MD5]]; status = [theTask terminationStatus]; if (status != 0) { @@ -1929,8 +1759,6 @@ - (BOOL)readFromFile:(NSString *)inFileName withEncoding:(NSStringEncoding)inEnc outResult = [self stringFromData:theData encoding:theEncoding xattr:theBoolEA]; } if (outResult) { - // 外部プロセスによる変更監視を開始 - [self startWatchFile:inFileName]; // 保持しているファイル情報/表示する文書情報を更新 [self getFileAttributes]; } @@ -2006,10 +1834,9 @@ - (NSStringEncoding)scannedCharsetOrEncodingFromString:(NSString *)inString id theValues = [[NSUserDefaultsController sharedUserDefaultsController] values]; NSArray *theEncodings = [[[theValues valueForKey:k_key_encodingList] copy] autorelease]; CFStringEncoding theTmpCFEncoding; - int i, theCount = [theEncodings count]; - for (i = 0; i < theCount; i++) { - theTmpCFEncoding = [[theEncodings objectAtIndex:i] unsignedLongValue]; + for (NSNumber *encoding in theEncodings) { + theTmpCFEncoding = [encoding unsignedLongValue]; if ((theTmpCFEncoding == kCFStringEncodingShiftJIS) || (theTmpCFEncoding == kCFStringEncodingShiftJIS_X0213_00)) { theCFEncoding = theTmpCFEncoding; @@ -2041,7 +1868,7 @@ - (void)redoSetEncoding:(NSStringEncoding)inEncoding updateDocument:(BOOL)inDocU // ------------------------------------------------------ -- (void)redoSetNewLineEndingCharacterCode:(int)inNewLineEnding +- (void)redoSetNewLineEndingCharacterCode:(NSInteger)inNewLineEnding // 行末コードを変更するアクションのRedo登録 // ------------------------------------------------------ { @@ -2054,10 +1881,8 @@ - (NSDictionary *)myCreatorAndTypeCodeAttributes // CotEditor のタイプとクリエータを返す // ------------------------------------------------------ { - NSDictionary *outDict = [NSDictionary dictionaryWithObjectsAndKeys: - [NSNumber numberWithUnsignedLong:'cEd1'], NSFileHFSCreatorCode, - [NSNumber numberWithUnsignedLong:'TEXT'], NSFileHFSTypeCode, - nil]; + NSDictionary *outDict = @{NSFileHFSCreatorCode: @('cEd1'), + NSFileHFSTypeCode: @('TEXT')}; return outDict; } @@ -2068,25 +1893,24 @@ - (BOOL)acceptSaveDocumentWithIANACharSetName // ------------------------------------------------------ { NSStringEncoding theIANACharSetEncoding = - [self scannedCharsetOrEncodingFromString:[_editorView stringForSave]]; + [self scannedCharsetOrEncodingFromString:[[self editorView] stringForSave]]; NSStringEncoding theShiftJIS = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingShiftJIS); NSStringEncoding theX0213 = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingShiftJIS_X0213_00); - if ((theIANACharSetEncoding != NSProprietaryStringEncoding) && (theIANACharSetEncoding != _encoding) && + if ((theIANACharSetEncoding != NSProprietaryStringEncoding) && (theIANACharSetEncoding != [self encodingCode]) && (!(((theIANACharSetEncoding == theShiftJIS) || (theIANACharSetEncoding == theX0213)) && - ((_encoding == theShiftJIS) || (_encoding == theX0213))))) { + (([self encodingCode] == theShiftJIS) || ([self encodingCode] == theX0213))))) { // (Shift-JIS の時は要注意 = scannedCharsetOrEncodingFromString: を参照) NSString *theIANANameStr = [NSString localizedNameOfStringEncoding:theIANACharSetEncoding]; - NSString *theEncodingNameStr = [NSString localizedNameOfStringEncoding:_encoding]; - NSAlert *theAleart = [NSAlert alertWithMessageText:NSLocalizedString(@"Save Warning",@"") - defaultButton:NSLocalizedString(@"Cancel",@"") - alternateButton:NSLocalizedString(@"Continue Saving",@"") - otherButton:nil - informativeTextWithFormat:[NSString stringWithFormat: - NSLocalizedString(@"The encoding is \"%@\", but the IANA charset name in text is \"%@\".\n\nDo you want to continue processing?\n",@""), theEncodingNameStr, theIANANameStr]]; - - int theResult = [theAleart runModal]; + NSString *theEncodingNameStr = [NSString localizedNameOfStringEncoding:[self encodingCode]]; + NSAlert *theAlert = [NSAlert alertWithMessageText:[NSString stringWithFormat:NSLocalizedString(@"The encoding is \"%@\", but the IANA charset name in text is \"%@\".", nil), theEncodingNameStr, theIANANameStr] + defaultButton:NSLocalizedString(@"Cancel", nil) + alternateButton:NSLocalizedString(@"Continue Saving", nil) + otherButton:nil + informativeTextWithFormat:NSLocalizedString(@"Do you want to continue processing?", nil)]; + + NSInteger theResult = [theAlert runModal]; if (theResult != NSAlertAlternateReturn) { // == Cancel return NO; } @@ -2101,18 +1925,17 @@ - (BOOL)acceptSaveDocumentToConvertEncoding // ------------------------------------------------------ { // エンコーディングを見て、半角円マークを変換しておく - NSString *theCurString = [self convertedCharacterString:[_editorView stringForSave] - withEncoding:_encoding]; - if (![theCurString canBeConvertedToEncoding:_encoding]) { - NSString *theEncodingNameStr = [NSString localizedNameOfStringEncoding:_encoding]; - NSAlert *theAleart = [NSAlert alertWithMessageText:NSLocalizedString(@"Save Warning",@"") - defaultButton:NSLocalizedString(@"Show Incompatible Char(s)",@"") - alternateButton:NSLocalizedString(@"Save Available strings",@"") - otherButton:NSLocalizedString(@"Cancel",@"") - informativeTextWithFormat:[NSString stringWithFormat: - NSLocalizedString(@"The characters would have to be changed or deleted in saving as \"%@\".\n\nDo you want to continue processing?\n",@""), theEncodingNameStr]]; - - int theResult = [theAleart runModal]; + NSString *theCurString = [self convertedCharacterString:[[self editorView] stringForSave] + withEncoding:[self encodingCode]]; + if (![theCurString canBeConvertedToEncoding:[self encodingCode]]) { + NSString *theEncodingNameStr = [NSString localizedNameOfStringEncoding:[self encodingCode]]; + NSAlert *theAlert = [NSAlert alertWithMessageText:[NSString stringWithFormat:NSLocalizedString(@"The characters would have to be changed or deleted in saving as \"%@\".", nil), theEncodingNameStr] + defaultButton:NSLocalizedString(@"Show Incompatible Char(s)", nil) + alternateButton:NSLocalizedString(@"Save Available Strings", nil) + otherButton:NSLocalizedString(@"Cancel", nil) + informativeTextWithFormat:NSLocalizedString(@"Do you want to continue processing?", nil)]; + + NSInteger theResult = [theAlert runModal]; if (theResult != NSAlertAlternateReturn) { // != Save if (theResult == NSAlertDefaultReturn) { // == show incompatible char [_windowController showIncompatibleCharList]; @@ -2125,77 +1948,74 @@ - (BOOL)acceptSaveDocumentToConvertEncoding // ------------------------------------------------------ -- (BOOL)saveToFile:(NSString *)inFileName ofType:(NSString *)inDocType - saveOperation:(NSSaveOperationType)inSaveOperationType -// ファイル保存 +- (BOOL)forceWriteToURL:(NSURL *)url ofType:(NSString *)typeName forSaveOperation:(NSSaveOperationType)saveOperation +// authopenを使ってファイルを書き込む // ------------------------------------------------------ { - id theValues = [[NSUserDefaultsController sharedUserDefaultsController] values]; - // エンコーディングを見て、半角円マークを変換しておく - NSString *theCurString = [self convertedCharacterString:[_editorView stringForSave] - withEncoding:_encoding]; - NSData *theData; - BOOL outResult = NO; - - if ((_encoding == NSUTF8StringEncoding) && ([[theValues valueForKey:k_key_saveUTF8BOM] boolValue])) { - // UTF-8 BOM追加 2008.12.13 - const char theUtf8Bom[] = {0xef, 0xbb, 0xbf}; // UTF-8 BOM - NSMutableData *theMutableData1 = [NSMutableData dataWithBytes:theUtf8Bom length:3]; - [theMutableData1 appendData:[theCurString dataUsingEncoding:_encoding allowLossyConversion:YES]]; - theData = [NSData dataWithData:theMutableData1]; - } else { - theData = [theCurString dataUsingEncoding:_encoding allowLossyConversion:YES]; - } - if (theData != nil) { - - NSDictionary *theAttrs = [self fileAttributesToWriteToFile:inFileName - ofType:inDocType saveOperation:inSaveOperationType]; - NSFileManager *theManager = [NSFileManager defaultManager]; - NSString *theConvertedPath = [NSString stringWithUTF8String:[inFileName UTF8String]]; - int status; - BOOL theFinderLockON = NO; - - if (![self canReleaseFinderLockOfFile:inFileName isLocked:&theFinderLockON lockAgain:NO]) { - // ユーザがオーナーでないファイルに Finder Lock がかかっていたら編集/保存できない - NSAlert *theAleart = [NSAlert alertWithMessageText:NSLocalizedString(@"Warning",@"") - defaultButton:NSLocalizedString(@"OK",@"") - alternateButton:nil - otherButton:nil - informativeTextWithFormat: - NSLocalizedString(@"Could Not be released Finder's Lock.\n\nYou can use \"SaveAs\" to save a copy.\n",@"")]; - [theAleart setAlertStyle:NSCriticalAlertStyle]; - (void)[theAleart runModal]; - return NO; - } - // "authopen"コマンドを使って保存 - NSTask *theTask = [[[NSTask alloc] init] autorelease]; + BOOL success = NO; + NSData *data = [self dataOfType:typeName error:nil]; + + if (data == nil) { return NO; } + - [theTask setLaunchPath:@"/usr/libexec/authopen"]; - [theTask setArguments:[NSArray arrayWithObjects:@"-c", @"-w", theConvertedPath, nil]]; - [theTask setStandardInput:[NSPipe pipe]]; + // 設定すべきfileAttributesを準備しておく + NSDictionary *attributes = [self fileAttributesToWriteToURL:url + ofType:typeName + forSaveOperation:saveOperation + originalContentsURL:nil + error:nil]; + + // ユーザがオーナーでないファイルに Finder Lock がかかっていたら編集/保存できない + BOOL isFinderLockOn = NO; + if (![self canReleaseFinderLockOfFile:[url path] isLocked:&isFinderLockOn lockAgain:NO]) { + NSAlert *alert = [NSAlert alertWithMessageText:NSLocalizedString(@"Finder's lock could not be released.", nil) + defaultButton:nil + alternateButton:nil + otherButton:nil + informativeTextWithFormat:NSLocalizedString(@"You can use \"Save As\" to save a copy.", nil)]; + [alert setAlertStyle:NSCriticalAlertStyle]; + (void)[alert runModal]; + return NO; + } + + // "authopen" コマンドを使って保存 + NSString *convertedPath = @([[url path] UTF8String]); + NSTask *task = [[[NSTask alloc] init] autorelease]; - [theTask launch]; - [[[theTask standardInput] fileHandleForWriting] writeData:theData]; - [[[theTask standardInput] fileHandleForWriting] closeFile]; - [theTask waitUntilExit]; + [task setLaunchPath:@"/usr/libexec/authopen"]; + [task setArguments:@[@"-c", @"-w", convertedPath]]; + [task setStandardInput:[NSPipe pipe]]; - status = [theTask terminationStatus]; - outResult = (status == 0); + [task launch]; + [[[task standardInput] fileHandleForWriting] writeData:data]; + [[[task standardInput] fileHandleForWriting] closeFile]; + [task waitUntilExit]; + int status = [task terminationStatus]; + success = (status == 0); + + if (success) { + // presentedItemDidChangeにて内容の同一性を比較するためにファイルのMD5を保存する + [self setFileMD5:[data MD5]]; + // クリエータなどを設定 - (void)[theManager changeFileAttributes:theAttrs atPath:inFileName]; - // ファイル拡張属性(com.apple.TextEncoding)にエンコーディングを保存(10.5+) - [self setComAppleTextEncodingAtPath:inFileName]; - if (theFinderLockON) { - // Finder Lock がかかってたなら、再びかける - BOOL theBoolToGo = [theManager changeFileAttributes: - [NSDictionary dictionaryWithObjectsAndKeys: - [NSNumber numberWithBool:YES], NSFileImmutable, nil] atPath:inFileName]; - outResult = (outResult && theBoolToGo); - } + [[NSFileManager defaultManager] setAttributes:attributes ofItemAtPath:[url path] error:nil]; + + // ファイル拡張属性(com.apple.TextEncoding)にエンコーディングを保存 + NSString *textEncoding = [[self currentIANACharSetName] stringByAppendingFormat:@";%@", + [@(CFStringConvertNSStringEncodingToEncoding([self encodingCode])) stringValue]]; + [UKXattrMetadataStore setString:textEncoding forKey:@"com.apple.TextEncoding" atPath:[url path] traverseLink:NO]; } - [self setIsWritableToEditorViewWithFileName:inFileName]; - return outResult; + + // Finder Lock がかかってたなら、再びかける + if (isFinderLockOn) { + BOOL lockSuccess = [[NSFileManager defaultManager] setAttributes:@{NSFileImmutable:@YES} ofItemAtPath:[url path] error:nil]; + success = (success && lockSuccess); + } + + [self setIsWritableToEditorViewWithURL:url]; + + return success; } @@ -2210,10 +2030,10 @@ - (void)sendModifiedEventToClientOfFile:(NSString *)inSaveAsPath // Smultron Copyright (c) 2004-2005 Peter Borg, All rights reserved. // Smultron is released under GNU General Public License, http://www.gnu.org/copyleft/gpl.html - NSString *thePath = [self fileName]; + NSString *thePath = [[self fileURL] path]; if (thePath == nil) { return; } - OSType creatorCode = [_fileSender typeCodeValue]; - if (creatorCode == nil) { return; } + OSType creatorCode = [[self fileSender] typeCodeValue]; + if (creatorCode == 0) { return; } NSAppleEventDescriptor *theCreator, *theAppleEvent, *theFileSSpec; AppleEvent *theAppleEventPointer; @@ -2243,8 +2063,8 @@ - (void)sendModifiedEventToClientOfFile:(NSString *)inSaveAsPath descriptorWithDescriptorType:typeFSS bytes:&theFSSpec length:sizeof(FSSpec)]; [theAppleEvent setParamDescriptor:theFileSSpec forKeyword:keyDirectObject]; - if (_fileToken) { - [theAppleEvent setParamDescriptor:_fileToken forKeyword:keySenderToken]; + if ([self fileToken]) { + [theAppleEvent setParamDescriptor:[self fileToken] forKeyword:keySenderToken]; } if (inSaveOperationType == NSSaveAsOperation) { theOSStatus = FSPathMakeRef((UInt8 *)[inSaveAsPath UTF8String], &theSaveAsRef, nil); @@ -2276,10 +2096,10 @@ - (void)sendCloseEventToClient // Smultron Copyright (c) 2004-2005 Peter Borg, All rights reserved. // Smultron is released under GNU General Public License, http://www.gnu.org/copyleft/gpl.html - NSString *thePath = [self fileName]; + NSString *thePath = [[self fileURL] path]; if (thePath == nil) { return; } - OSType creatorCode = [_fileSender typeCodeValue]; - if (creatorCode == nil) { return; } + OSType creatorCode = [[self fileSender] typeCodeValue]; + if (creatorCode == 0) { return; } NSAppleEventDescriptor *theCreator, *theAppleEvent, *theFileSSpec; AppleEvent *theAppleEventPointer; @@ -2309,8 +2129,8 @@ - (void)sendCloseEventToClient descriptorWithDescriptorType:typeFSS bytes:&theFSSpec length:sizeof(FSSpec)]; [theAppleEvent setParamDescriptor:theFileSSpec forKeyword:keyDirectObject]; - if (_fileToken) { - [theAppleEvent setParamDescriptor:_fileToken forKeyword:keySenderToken]; + if ([self fileToken]) { + [theAppleEvent setParamDescriptor:[self fileToken] forKeyword:keySenderToken]; } theAppleEventPointer = (AEDesc *)[theAppleEvent aeDesc]; @@ -2328,20 +2148,16 @@ - (BOOL)canReleaseFinderLockOfFile:(NSString *)inFileName isLocked:(BOOL *)ioLoc // ------------------------------------------------------ { NSFileManager *theManager = [NSFileManager defaultManager]; - BOOL theFinderLockON = [[theManager fileAttributesAtPath:inFileName traverseLink:YES] fileIsImmutable]; + BOOL theFinderLockON = [[theManager attributesOfItemAtPath:[inFileName stringByResolvingSymlinksInPath] error:nil] fileIsImmutable]; BOOL theBoolToGo = NO; if (theFinderLockON) { // Finder Lock がかかっていれば、解除 - theBoolToGo = [theManager changeFileAttributes: - [NSDictionary dictionaryWithObjectsAndKeys: - [NSNumber numberWithBool:NO], NSFileImmutable, nil] atPath:inFileName]; + theBoolToGo = [theManager setAttributes:@{NSFileImmutable:@NO} ofItemAtPath:inFileName error:nil]; if (theBoolToGo) { if (inLockAgain) { // フラグが立っていたなら、再びかける - (void)[theManager changeFileAttributes: - [NSDictionary dictionaryWithObjectsAndKeys: - [NSNumber numberWithBool:YES], NSFileImmutable, nil] atPath:inFileName]; + [theManager setAttributes:@{NSFileImmutable:@YES} ofItemAtPath:inFileName error:nil]; } } else { return NO; @@ -2355,296 +2171,199 @@ - (BOOL)canReleaseFinderLockOfFile:(NSString *)inFileName isLocked:(BOOL *)ioLoc // ------------------------------------------------------ -- (void)alertForNotWritableCloseDocDidEnd:(NSAlert *)inAlert returnCode:(int)inReturnCode - contextInfo:(void *)inContextInfo -// 書き込み不可ドキュメントが閉じるときの確認アラートが閉じた -// ------------------------------------------------------ -{ -// このメソッドは下記のページの情報を参考にさせていただきました(2005.07.08) -// http://www.cocoadev.com/index.pl?ReplaceSaveChangesSheet - CanCloseAlertContext *theContextInfo = inContextInfo; - BOOL theReturn = (inReturnCode != NSAlertDefaultReturn); // YES == Don't Save (Close) - - if (theContextInfo->delegate) { - objc_msgSend(theContextInfo->delegate, theContextInfo->shouldCloseSelector, - self, theReturn, theContextInfo->contextInfo); - } - free(theContextInfo); -} - - -// ------------------------------------------------------ -- (void)startWatchFile:(NSString *)inFileName -// 外部プロセスによるファイルの変更監視を開始 -// ------------------------------------------------------ -{ -// このメソッドは下記のページの情報を参考にさせていただきました(2005.11.05) -// http://homepage3.nifty.com/kimuraw/misc/ukkqueue.html - - if ([[NSFileManager defaultManager] fileExistsAtPath:inFileName]) { - - NSNotificationCenter *theNotifCenter = [[NSWorkspace sharedWorkspace] notificationCenter]; - - [theNotifCenter addObserver:self - selector:@selector(fileWritten:) - name:UKFileWatcherWriteNotification object:inFileName]; - [theNotifCenter addObserver:self - selector:@selector(fileDeleted:) - name:UKFileWatcherDeleteNotification object:inFileName]; - [[UKKQueue sharedQueue] addPathToQueue:inFileName - notifyingAbout:(UKKQueueNotifyAboutWrite | UKKQueueNotifyAboutDelete)]; - } -} - - -// ------------------------------------------------------ -- (void)stopWatchFile:(NSString *)inFileName -// 外部プロセスによるファイルの変更監視を停止 -// ------------------------------------------------------ -{ - // UKKQueue からパスを削除、NSWorkspace のノーティフィケーションセンターから自身を削除 - [[UKKQueue sharedQueue] removePathFromQueue:inFileName]; - [[[NSWorkspace sharedWorkspace] notificationCenter] removeObserver:self]; -} - - -// ------------------------------------------------------ -- (void)setIsSavingFlagToNo -// 保存中フラグを戻す -// ------------------------------------------------------ -{ - _isSaving = NO; -} - - -// ------------------------------------------------------ -- (void)alertForModByAnotherProcessDidEnd:(NSAlert *)inAlert returnCode:(int)inReturnCode +- (void)alertForModByAnotherProcessDidEnd:(NSAlert *)inAlert returnCode:(NSInteger)inReturnCode contextInfo:(void *)inContextInfo // 外部プロセスによる変更の通知アラートが閉じた // ------------------------------------------------------ { if (inReturnCode == NSAlertAlternateReturn) { // == Revert // Revert 確認アラートを表示させないため、実行メソッドを直接呼び出す - if ([self revertToSavedFromFile:[self fileName] ofType:[self fileType]]) { - // UKKQueue からパスを削除(上記メソッド内で追加しているため、このままだとダブる) - [[UKKQueue sharedQueue] removePathFromQueue:[self fileName]]; // (NotifCenter への登録はそのままに) + if ([self revertToContentsOfURL:[self fileURL] ofType:[self fileType] error:nil]) { [[self undoManager] removeAllActions]; [self updateChangeCount:NSChangeCleared]; } } - _isRevertingWithUKKQueueNotification = NO; - _showUpdateAlertWithBecomeKey = NO; + [self setIsRevertingForExternalFileUpdate:YES]; + [self setShowUpdateAlertWithBecomeKey:NO]; } // ------------------------------------------------------ -- (void)printPanelDidEnd:(NSPrintPanel *)inPrintPanel returnCode:(int)inReturnCode - contextInfo:(void *)inContextInfo +- (void)printPanelDidEnd:(NSPrintPanel *)printPanel returnCode:(NSInteger)returnCode contextInfo:(void *)contextInfo // プリントパネルが閉じた // ------------------------------------------------------ { - if (inReturnCode != NSOKButton) { return; } - - id theValues = [[NSUserDefaultsController sharedUserDefaultsController] values]; - id thePrintValues = [_windowController printValues]; - NSPrintInfo *thePrintInfo = [self printInfo]; - NSSize thePaperSize = [thePrintInfo paperSize]; - NSPrintOperation *thePrintOperation; - NSString *theFilePath = ([[theValues valueForKey:k_key_headerFooterPathAbbreviatingWithTilde] boolValue]) ? - [[self fileName] stringByAbbreviatingWithTildeInPath] : [self fileName]; - // (fileName は 10.4 で廃止されているメソッド。バージョンアップ注意 *****) - CELayoutManager *theLayoutManager = [[[CELayoutManager alloc] init] autorelease]; - CEPrintView *thePrintView; - CESyntax *thePrintSyntax; - float theTopMargin = k_printHFVerticalMargin; - float theBottomMargin = k_printHFVerticalMargin; - BOOL theBoolDoColoring = ([[thePrintValues valueForKey:k_printColorIndex] intValue] == 1); - BOOL theBoolShowInvisibles = [(CELayoutManager *)[[_editorView textView] layoutManager] showInvisibles]; - BOOL theBoolShowControls = theBoolShowInvisibles; + if (returnCode != NSOKButton) { return; } + + id values = [[NSUserDefaultsController sharedUserDefaultsController] values]; + id printValues = [_windowController printValues]; + NSPrintInfo *printInfo = [self printInfo]; + NSSize paperSize = [printInfo paperSize]; + NSPrintOperation *printOperation; + NSString *filePath = ([[values valueForKey:k_key_headerFooterPathAbbreviatingWithTilde] boolValue]) ? + [[[self fileURL] path] stringByAbbreviatingWithTildeInPath] : [[self fileURL] path]; + CELayoutManager *layoutManager = [[[CELayoutManager alloc] init] autorelease]; + CEPrintView *printView; + CESyntax *printSyntax; + CGFloat topMargin = k_printHFVerticalMargin; + CGFloat bottomMargin = k_printHFVerticalMargin; + BOOL doColoring = ([[printValues valueForKey:k_printColorIndex] integerValue] == 1); + BOOL showsInvisibles = [(CELayoutManager *)[[[self editorView] textView] layoutManager] showInvisibles]; + BOOL showsControls = showsInvisibles; // ヘッダ/フッタの高さ(文書を印刷しない高さ)を得る - if ([[thePrintValues valueForKey:k_printHeader] boolValue]) { - if ([[thePrintValues valueForKey:k_headerOneStringIndex] intValue] > 1) { // 行1 = 印字あり - theTopMargin += k_headerFooterLineHeight; + if ([[printValues valueForKey:k_printHeader] boolValue]) { + if ([[printValues valueForKey:k_headerOneStringIndex] integerValue] > 1) { // 行1 = 印字あり + topMargin += k_headerFooterLineHeight; } - if ([[thePrintValues valueForKey:k_headerTwoStringIndex] intValue] > 1) { // 行2 = 印字あり - theTopMargin += k_headerFooterLineHeight; + if ([[printValues valueForKey:k_headerTwoStringIndex] integerValue] > 1) { // 行2 = 印字あり + topMargin += k_headerFooterLineHeight; } } // ヘッダと本文との距離をセパレータも勘案して決定する(フッタは本文との間が開くことが多いため、入れない) - if (theTopMargin > k_printHFVerticalMargin) { - theTopMargin += - ([[theValues valueForKey:k_key_headerFooterFontSize] floatValue] - k_headerFooterLineHeight); - if ([[thePrintValues valueForKey:k_printHeaderSeparator] boolValue]) { - theTopMargin += k_separatorPadding; + if (topMargin > k_printHFVerticalMargin) { + topMargin += (CGFloat)[[values valueForKey:k_key_headerFooterFontSize] doubleValue] - k_headerFooterLineHeight; + if ([[printValues valueForKey:k_printHeaderSeparator] boolValue]) { + topMargin += k_separatorPadding; } else { - theTopMargin += k_noSeparatorPadding; + topMargin += k_noSeparatorPadding; } } else { - if ([[thePrintValues valueForKey:k_printHeaderSeparator] boolValue]) { - theTopMargin += k_separatorPadding; + if ([[printValues valueForKey:k_printHeaderSeparator] boolValue]) { + topMargin += k_separatorPadding; } } - if ([[thePrintValues valueForKey:k_printFooter] boolValue]) { - if ([[thePrintValues valueForKey:k_footerOneStringIndex] intValue] > 1) { // 行1 = 印字あり - theBottomMargin += k_headerFooterLineHeight; + if ([[printValues valueForKey:k_printFooter] boolValue]) { + if ([[printValues valueForKey:k_footerOneStringIndex] integerValue] > 1) { // 行1 = 印字あり + bottomMargin += k_headerFooterLineHeight; } - if ([[thePrintValues valueForKey:k_footerTwoStringIndex] intValue] > 1) { // 行2 = 印字あり - theBottomMargin += k_headerFooterLineHeight; + if ([[printValues valueForKey:k_footerTwoStringIndex] integerValue] > 1) { // 行2 = 印字あり + bottomMargin += k_headerFooterLineHeight; } } - if ((theBottomMargin == k_printHFVerticalMargin) && - ([[thePrintValues valueForKey:k_printFooterSeparator] boolValue])) { - theBottomMargin += k_separatorPadding; + if ((bottomMargin == k_printHFVerticalMargin) && [[printValues valueForKey:k_printFooterSeparator] boolValue]) { + bottomMargin += k_separatorPadding; } // プリントビュー生成 - thePrintView = [[[CEPrintView alloc] initWithFrame: - NSMakeRect(0, 0, - thePaperSize.width - (k_printTextHorizontalMargin * 2), - thePaperSize.height - theTopMargin - theBottomMargin)] autorelease]; + NSRect frame = NSMakeRect(0, 0, + paperSize.width - (k_printTextHorizontalMargin * 2), + paperSize.height - topMargin - bottomMargin); + printView = [[[CEPrintView alloc] initWithFrame:frame] autorelease]; // 設定するフォント - NSFont *theFont; - if ([[theValues valueForKey:k_key_setPrintFont] intValue] == 1) { // == プリンタ専用フォントで印字 - theFont = [NSFont fontWithName:[theValues valueForKey:k_key_printFontName] - size:[[theValues valueForKey:k_key_printFontSize] floatValue]]; + NSFont *font; + if ([[values valueForKey:k_key_setPrintFont] integerValue] == 1) { // == プリンタ専用フォントで印字 + font = [NSFont fontWithName:[values valueForKey:k_key_printFontName] + size:(CGFloat)[[values valueForKey:k_key_printFontSize] doubleValue]]; } else { - theFont = [_editorView font]; + font = [[self editorView] font]; } // プリンタダイアログでの設定オブジェクトをコピー - [thePrintView setPrintValues:[[[_windowController printValues] copy] autorelease]]; + [printView setPrintValues:[[[_windowController printValues] copy] autorelease]]; // プリントビューのテキストコンテナのパディングを固定する(印刷中に変動させるとラップの関連で末尾が印字されないことがある) - [[thePrintView textContainer] setLineFragmentPadding:k_printHFHorizontalMargin]; + [[printView textContainer] setLineFragmentPadding:k_printHFHorizontalMargin]; // プリントビューに行間値/行番号表示の有無を設定 - [thePrintView setLineSpacing:[self lineSpacingInTextView]]; - [thePrintView setIsShowingLineNum:[[self editorView] showLineNum]]; + [printView setLineSpacing:[self lineSpacingInTextView]]; + [printView setIsShowingLineNum:[[self editorView] showLineNum]]; // 制御文字印字を取得 - if ([[thePrintValues valueForKey:k_printInvisibleCharIndex] intValue] == 0) { // = No print - theBoolShowControls = NO; - } else if ([[thePrintValues valueForKey:k_printInvisibleCharIndex] intValue] == 2) { // = Print all - theBoolShowControls = YES; + if ([[printValues valueForKey:k_printInvisibleCharIndex] integerValue] == 0) { // = No print + showsControls = NO; + } else if ([[printValues valueForKey:k_printInvisibleCharIndex] integerValue] == 2) { // = Print all + showsControls = YES; } // layoutManager を入れ替え - [theLayoutManager setTextFont:theFont]; - [theLayoutManager setFixLineHeight:NO]; - [theLayoutManager setIsPrinting:YES]; - [theLayoutManager setShowInvisibles:theBoolShowInvisibles]; - [theLayoutManager setShowsControlCharacters:theBoolShowControls]; - [[thePrintView textContainer] replaceLayoutManager:theLayoutManager]; - - if (theBoolDoColoring) { + [layoutManager setTextFont:font]; + [layoutManager setFixLineHeight:NO]; + [layoutManager setIsPrinting:YES]; + [layoutManager setShowInvisibles:showsInvisibles]; + [layoutManager setShowsControlCharacters:showsControls]; + [[printView textContainer] replaceLayoutManager:layoutManager]; + + if (doColoring) { // カラーリング実行オブジェクトを用意 - thePrintSyntax = [[[CESyntax allocWithZone:[self zone]] init] autorelease]; - [thePrintSyntax setSyntaxStyleName:[[_windowController toolbarController] selectedTitleOfSyntaxItem]]; - [thePrintSyntax setLayoutManager:theLayoutManager]; - [thePrintSyntax setIsPrinting:YES]; + printSyntax = [[[CESyntax allocWithZone:[self zone]] init] autorelease]; + [printSyntax setSyntaxStyleName:[[_windowController toolbarController] selectedTitleOfSyntaxItem]]; + [printSyntax setLayoutManager:layoutManager]; + [printSyntax setIsPrinting:YES]; } // ドキュメントが未保存ならウィンドウ名をパスとして設定 - if (theFilePath == nil) { - theFilePath = [self displayName]; + if (filePath == nil) { + filePath = [self displayName]; } - [thePrintView setFilePath:theFilePath]; + [printView setFilePath:filePath]; // PrintInfo 設定 - [thePrintInfo setHorizontalPagination:NSFitPagination]; - [thePrintInfo setHorizontallyCentered:NO]; - [thePrintInfo setVerticallyCentered:NO]; - [thePrintInfo setLeftMargin:k_printTextHorizontalMargin]; - [thePrintInfo setRightMargin:k_printTextHorizontalMargin]; - [thePrintInfo setTopMargin:theTopMargin]; - [thePrintInfo setBottomMargin:theBottomMargin]; + [printInfo setHorizontalPagination:NSFitPagination]; + [printInfo setHorizontallyCentered:NO]; + [printInfo setVerticallyCentered:NO]; + [printInfo setLeftMargin:k_printTextHorizontalMargin]; + [printInfo setRightMargin:k_printTextHorizontalMargin]; + // ???: どこかで天地がflipしているのでbottomとtopのmarginを入れ替えている (2014-03-11 by 1024jp) + [printInfo setTopMargin:bottomMargin]; + [printInfo setBottomMargin:topMargin]; // プリントビューの設定 - [thePrintView setFont:theFont]; - if (theBoolDoColoring) { // カラーリングする - [thePrintView setTextColor: - [NSUnarchiver unarchiveObjectWithData:[theValues valueForKey:k_key_textColor]]]; - [thePrintView setBackgroundColor: - [NSUnarchiver unarchiveObjectWithData:[theValues valueForKey:k_key_backgroundColor]]]; + [printView setFont:font]; + if (doColoring) { // カラーリングする + [printView setTextColor:[NSUnarchiver unarchiveObjectWithData:[values valueForKey:k_key_textColor]]]; + [printView setBackgroundColor:[NSUnarchiver unarchiveObjectWithData:[values valueForKey:k_key_backgroundColor]]]; } else { - [thePrintView setTextColor:[NSColor blackColor]]; - [thePrintView setBackgroundColor:[NSColor whiteColor]]; + [printView setTextColor:[NSColor blackColor]]; + [printView setBackgroundColor:[NSColor whiteColor]]; } // プリントビューへ文字列を流し込む - [thePrintView setString:[_editorView string]]; - if (theBoolDoColoring) { // カラーリングする + [printView setString:[[self editorView] string]]; + if (doColoring) { // カラーリングする // 現状では、印刷するページ数に関係なく全ページがカラーリングされている。20080104***** - [thePrintSyntax colorAllString:[_editorView string]]; + [printSyntax colorAllString:[[self editorView] string]]; } // プリントオペレーション生成、設定、プリント実行 - thePrintOperation = [NSPrintOperation printOperationWithView:thePrintView printInfo:thePrintInfo]; + printOperation = [NSPrintOperation printOperationWithView:printView printInfo:printInfo]; // プリントパネルの表示を制御し、プログレスパネルは表示させる - if (floor(NSAppKitVersionNumber) <= NSAppKitVersionNumber10_3) { // = 10.3.x以前 - NS_DURING - [thePrintOperation _setShowPrintPanel:NO]; // 隠しメソッド - [thePrintOperation _setShowProgressPanel:YES]; // 隠しメソッド - NS_HANDLER // 例外が発生したら、公開メソッドでパネル表示を制御(10.3ではプログレスパネル表示メソッドはない) - [thePrintOperation setShowPanels:NO]; - NS_ENDHANDLER - } else { // 10.4+ - [thePrintOperation setShowsPrintPanel:NO]; - [thePrintOperation setShowsProgressPanel:YES]; - } - [thePrintOperation runOperation]; + [printOperation setShowsPrintPanel:NO]; + [printOperation setShowsProgressPanel:YES]; + [printOperation runOperation]; } // ------------------------------------------------------ - (NSStringEncoding)encodingFromComAppleTextEncodingAtPath:(NSString *)inFilePath -// ファイル拡張属性(com.apple.TextEncoding)からエンコーディングを得る(10.5専用) +// ファイル拡張属性(com.apple.TextEncoding)からエンコーディングを得る // ------------------------------------------------------ { NSStringEncoding outEncoding = NSProprietaryStringEncoding; - if (floor(NSAppKitVersionNumber) >= 949) { // 949 = LeopardのNSAppKitVersionNumber - NSString *theStr = [UKXattrMetadataStore stringForKey:@"com.apple.TextEncoding" - atPath:inFilePath traverseLink:NO]; - NSArray *theArray = [theStr componentsSeparatedByString:@";"]; - if (([theArray count] >= 2) && ([[theArray objectAtIndex:1] length] > 1)) { - // (配列の2番目の要素の末尾には行末コードが付加されているため、長さの最小は1) - outEncoding = CFStringConvertEncodingToNSStringEncoding([[theArray objectAtIndex:1] intValue]); - } else if ([[theArray objectAtIndex:0] length] > 1) { - CFStringEncoding theCFEncoding = - CFStringConvertIANACharSetNameToEncoding((CFStringRef)[theArray objectAtIndex:0]); - if (theCFEncoding != kCFStringEncodingInvalidId) { - outEncoding = CFStringConvertEncodingToNSStringEncoding(theCFEncoding); - } + NSString *theStr = [UKXattrMetadataStore stringForKey:@"com.apple.TextEncoding" + atPath:inFilePath traverseLink:NO]; + NSArray *theArray = [theStr componentsSeparatedByString:@";"]; + if (([theArray count] >= 2) && ([theArray[1] length] > 1)) { + // (配列の2番目の要素の末尾には行末コードが付加されているため、長さの最小は1) + outEncoding = CFStringConvertEncodingToNSStringEncoding([theArray[1] integerValue]); + } else if ([theArray[0] length] > 1) { + CFStringEncoding theCFEncoding = + CFStringConvertIANACharSetNameToEncoding((CFStringRef)theArray[0]); + if (theCFEncoding != kCFStringEncodingInvalidId) { + outEncoding = CFStringConvertEncodingToNSStringEncoding(theCFEncoding); } } + return outEncoding; } // ------------------------------------------------------ -- (void)setComAppleTextEncodingAtPath:(NSString *)inFilePath -// ファイル拡張属性(com.apple.TextEncoding)にエンコーディングをセット(10.5専用) -// ------------------------------------------------------ -{ - if (floor(NSAppKitVersionNumber) >= 949) { // 949 = LeopardのNSAppKitVersionNumber - - NSString *theEncodingStr = [[self currentIANACharSetName] stringByAppendingFormat:@";%@", - [[NSNumber numberWithInt:CFStringConvertNSStringEncodingToEncoding(_encoding)] stringValue]]; - - [UKXattrMetadataStore setString:theEncodingStr forKey:@"com.apple.TextEncoding" - atPath:inFilePath traverseLink:NO]; - } -} - - -// ------------------------------------------------------ -- (void)setIsWritableToEditorViewWithFileName:(NSString *)inFileName +- (void)setIsWritableToEditorViewWithURL:(NSURL *)url // 書き込み可能かを EditorView にセット // ------------------------------------------------------ { - NSFileManager *theFileManager = [NSFileManager defaultManager]; - BOOL theBoolIsWritable = YES; // default = YES - - if ((inFileName) && ([theFileManager fileExistsAtPath:inFileName])) { - theBoolIsWritable = [theFileManager isWritableFileAtPath:inFileName]; + BOOL isWritable = YES; // default = YES + + if ([url checkResourceIsReachableAndReturnError:nil]) { + isWritable = [[NSFileManager defaultManager] isWritableFileAtPath:[url path]]; } - [_editorView setIsWritable:theBoolIsWritable]; + [[self editorView] setIsWritable:isWritable]; } @@ -2653,7 +2372,7 @@ - (void)showAlertForNotWritable // EditorView で、書き込み禁止アラートを表示 // ------------------------------------------------------ { - [_editorView alertForNotWritable]; + [[self editorView] alertForNotWritable]; } diff --git a/CEDocumentController.h b/CEDocumentController.h index f268aaa2db..773b1dc4b5 100644 --- a/CEDocumentController.h +++ b/CEDocumentController.h @@ -3,8 +3,9 @@ CEDocumentController (for CotEditor) -Copyright (C) 2004-2007 nakamuxu. -http://www.aynimac.com/ + Copyright (C) 2004-2007 nakamuxu. + Copyright (C) 2014 CotEditor Project + http://coteditor.github.io ================================================= encoding="UTF-8" @@ -57,7 +58,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - (NSStringEncoding)accessorySelectedEncoding; - (void)setSelectAccessoryEncoding:(NSStringEncoding)inEncoding; - (void)setFontToAllDocuments; -- (float)windowAlphaControllerValue; +- (CGFloat)windowAlphaControllerValue; - (void)setWindowAlphaControllerDictionary:(NSMutableDictionary *)inDict; - (void)setWindowAlphaControllerValueDefault; - (void)setTransparencyPanelControlsEnabledWithDecrement:(BOOL)inValue; diff --git a/CEDocumentController.m b/CEDocumentController.m index 5156719b8a..0eba4c4e53 100644 --- a/CEDocumentController.m +++ b/CEDocumentController.m @@ -3,8 +3,9 @@ CEDocumentController (for CotEditor) -Copyright (C) 2004-2007 nakamuxu. -http://www.aynimac.com/ + Copyright (C) 2004-2007 nakamuxu. + Copyright (C) 2014 CotEditor Project + http://coteditor.github.io ================================================= encoding="UTF-8" @@ -38,7 +39,8 @@ @implementation CEDocumentController -#pragma mark ===== Public method ===== +#pragma mark - +#pragma mark Public method //======================================================= // Public method @@ -57,11 +59,11 @@ - (void)dealloc // ------------------------------------------------------ -- (id)openUntitledDocumentOfType:(NSString *)inDocType display:(BOOL)inDisplay +- (id)openUntitledDocumentAndDisplay:(BOOL)displayDocument error:(NSError **)outError // 名称未設定ドキュメントを開き、位置を保存 // ------------------------------------------------------ { - id outDocument = [super openUntitledDocumentOfType:inDocType display:inDisplay]; + id outDocument = [super openUntitledDocumentAndDisplay:displayDocument error:outError]; if (outDocument) { theLatestDocument = outDocument; @@ -72,13 +74,11 @@ - (id)openUntitledDocumentOfType:(NSString *)inDocType display:(BOOL)inDisplay // ------------------------------------------------------ -- (id)makeDocumentWithContentsOfFile:(NSString *)inFileName ofType:(NSString *)inDocType +- (id)makeDocumentWithContentsOfURL:(NSURL *)url ofType:(NSString *)typeName error:(NSError **)outError // ファイルからドキュメントを作成 // ------------------------------------------------------ { - // makeDocumentWithContentsOfFile:ofType: は 10.4 で廃止されたメソッド。バージョンアップ注意 ***** - - id outDocument = [super makeDocumentWithContentsOfFile:inFileName ofType:inDocType]; + id outDocument = [super makeDocumentWithContentsOfURL:url ofType:typeName error:outError]; // 自動的に開かれた名称未設定ドキュメントが未変更のままあるときはそれを上書きする(ように見せる)ための設定を行う // 実際の位置の変更は CEWindowController で行う @@ -96,13 +96,11 @@ - (id)makeDocumentWithContentsOfFile:(NSString *)inFileName ofType:(NSString *)i // ------------------------------------------------------ -- (id)openDocumentWithContentsOfFile:(NSString *)inFileName display:(BOOL)inFlag +- (id)openDocumentWithContentsOfURL:(NSURL *)url display:(BOOL)displayDocument error:(NSError **)outError // ファイルを開き、ドキュメントを作成 // ------------------------------------------------------ { - // openDocumentWithContentsOfFile:display: は 10.4 で廃止されたメソッド。バージョンアップ注意 ***** - - id outDocument = [super openDocumentWithContentsOfFile:inFileName display:inFlag]; + id outDocument = [super openDocumentWithContentsOfURL:url display:displayDocument error:outError]; if (outDocument) { // 外部エディタプロトコル(ODB Editor Suite)用の値をセット @@ -142,7 +140,7 @@ - (id)openDocumentWithContentsOfFile:(NSString *)inFileName display:(BOOL)inFlag // ------------------------------------------------------ -- (int)runModalOpenPanel:(NSOpenPanel *)inOpenPanel forTypes:(NSArray *)inExtensions +- (NSInteger)runModalOpenPanel:(NSOpenPanel *)inOpenPanel forTypes:(NSArray *)inExtensions // オープンパネルを開くときにエンコーディング指定メニューを付加する // ------------------------------------------------------ { @@ -152,15 +150,8 @@ - (int)runModalOpenPanel:(NSOpenPanel *)inOpenPanel forTypes:(NSArray *)inExtens // 非表示ファイルも表示するとき if (_isOpenHidden) { - // この部分は、Smultron を参考にさせていただきました。(2005.09.18) - // This part is based on Smultron.(written by Peter Borg – http://smultron.sourceforge.net) - // Smultron Copyright (c) 2004-2005 Peter Borg, All rights reserved. - // Smultron is released under GNU General Public License, http://www.gnu.org/copyleft/gpl.html [inOpenPanel setTreatsFilePackagesAsDirectories:YES]; - NS_DURING // catch any exceptions if Apple ever changes this undocumented feature - [[inOpenPanel _navView] setShowsHiddenFiles:YES]; // 隠しメソッド、バージョンアップに注意 - NS_HANDLER // if there are any exceptions raised, just ignore including hidden files - NS_ENDHANDLER + [inOpenPanel setShowsHiddenFiles:YES]; } else { [inOpenPanel setTreatsFilePackagesAsDirectories:NO]; } @@ -223,11 +214,11 @@ - (void)setFontToAllDocuments // ------------------------------------------------------ -- (float)windowAlphaControllerValue +- (CGFloat)windowAlphaControllerValue // ウィンドウの透明度設定コントローラの値を返す // ------------------------------------------------------ { - return [[[_transparencyController content] valueForKey:k_key_curWindowAlpha] floatValue]; + return (CGFloat)[[[_transparencyController content] valueForKey:k_key_curWindowAlpha] doubleValue]; } @@ -259,7 +250,7 @@ - (void)setTransparencyPanelControlsEnabledWithDecrement:(BOOL)inValue // 透明度設定パネルのコントロール類の有効/無効を制御 // ------------------------------------------------------ { - unsigned int theNum = [[self documents] count]; + NSUInteger theNum = [[self documents] count]; if (inValue) { theNum--; @@ -287,7 +278,7 @@ - (void)setGotoPanelControlsEnabledWithDecrement:(BOOL)inValue // 文字/行移動パネルのコントロール類の有効/無効を制御 // ------------------------------------------------------ { - unsigned int theNum = [[self documents] count]; + NSUInteger theNum = [[self documents] count]; if (inValue) { theNum--; @@ -340,7 +331,8 @@ - (void)setNoneAndRecolorFlagToAllDocumentsWithStyleName:(NSString *)inStyleName -#pragma mark ===== Protocol ===== +#pragma mark - +#pragma mark Protocol //======================================================= // NSNibAwaking Protocol @@ -357,7 +349,7 @@ - (BOOL)validateMenuItem:(NSMenuItem *)inMenuItem if (theCurDoc == nil) { return NO; } else { - float theLineSpacing = [theCurDoc lineSpacingInTextView]; + CGFloat theLineSpacing = [theCurDoc lineSpacingInTextView]; BOOL theState = ((theLineSpacing != 0.0) && (theLineSpacing != 0.25) && (theLineSpacing != 0.5) && (theLineSpacing != 0.75) && (theLineSpacing != 1.0) && (theLineSpacing != 1.25) && @@ -380,7 +372,8 @@ - (BOOL)validateMenuItem:(NSMenuItem *)inMenuItem -#pragma mark ===== Action messages ===== +#pragma mark - +#pragma mark Action messages //======================================================= // Action messages @@ -451,7 +444,7 @@ - (IBAction)openGotoPanel:(id)sender if ([thePanel isKeyWindow]) { // 既に開いてキーになっているときは、文字/行移動をトグルに切り替える NSUserDefaults *theDefaults = [NSUserDefaults standardUserDefaults]; - int theNewSelect = ([_gotoCharLineMatrix selectedRow] == 0) ? 1 : 0; + NSInteger theNewSelect = ([_gotoCharLineMatrix selectedRow] == 0) ? 1 : 0; [theDefaults setInteger:theNewSelect forKey:k_key_gotoObjectMenuIndex]; } else { [self setGotoPanelControlsEnabledWithDecrement:NO]; @@ -470,8 +463,8 @@ - (IBAction)gotoCharacterOrLine:(id)sender CEDocument *theCurDoc = [self currentDocument]; if (([theArray count] > 0) && (theCurDoc)) { - int theLocation = [[theArray objectAtIndex:0] intValue]; - int theLength = ([theArray count] > 1) ? [[theArray objectAtIndex:1] intValue] : 0; + NSInteger theLocation = [theArray[0] integerValue]; + NSInteger theLength = ([theArray count] > 1) ? [theArray[1] integerValue] : 0; [theCurDoc gotoLocation:theLocation withLength:theLength]; } @@ -505,7 +498,7 @@ - (IBAction)openLineSpacingPanel:(id)sender // ------------------------------------------------------ { CEDocument *theCurDoc = [self currentDocument]; - float theLineSpacing = [theCurDoc lineSpacingInTextView]; + CGFloat theLineSpacing = [theCurDoc lineSpacingInTextView]; if (theCurDoc) { [_lineSpacingField setStringValue:[NSString stringWithFormat:@"%.2f", theLineSpacing]]; @@ -531,7 +524,7 @@ - (IBAction)setCustomLineSpacing:(id)sender CEDocument *theCurDoc = [self currentDocument]; if (theCurDoc) { - [theCurDoc setCustomLineSpacingToTextView:[_lineSpacingField floatValue]]; + [theCurDoc setCustomLineSpacingToTextView:(CGFloat)[_lineSpacingField doubleValue]]; } [self closeLineSpacingPanel:nil]; } diff --git a/CEEditorView.h b/CEEditorView.h index 8a2b4683ac..4f44d8f2e6 100644 --- a/CEEditorView.h +++ b/CEEditorView.h @@ -3,8 +3,9 @@ CEEditorView (for CotEditor) -Copyright (C) 2004-2007 nakamuxu. -http://www.aynimac.com/ + Copyright (C) 2004-2007 nakamuxu. + Copyright (C) 2014 CotEditor Project + http://coteditor.github.io ================================================= encoding="UTF-8" @@ -118,8 +119,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - (BOOL)showPageGuide; - (void)setShowPageGuide:(BOOL)inBool; -- (int)lineEndingCharacter; -- (void)setLineEndingCharacter:(int)inNewLineEnding; +- (NSInteger)lineEndingCharacter; +- (void)setLineEndingCharacter:(NSInteger)inNewLineEnding; - (NSString *)syntaxStyleNameToColoring; - (void)setSyntaxStyleNameToColoring:(NSString *)inName recolorNow:(BOOL)inValue; - (void)recoloringAllString; diff --git a/CEEditorView.m b/CEEditorView.m index 7c239d81c4..ccfd9de784 100644 --- a/CEEditorView.m +++ b/CEEditorView.m @@ -3,8 +3,9 @@ CEEditorView (for CotEditor) -Copyright (C) 2004-2007 nakamuxu. -http://www.aynimac.com/ + Copyright (C) 2004-2007 nakamuxu. + Copyright (C) 2014 CotEditor Project + http://coteditor.github.io ================================================= encoding="UTF-8" @@ -42,6 +43,12 @@ This class is based on JSDTextView (written by James S. Derry – http://www.bal // //======================================================= +@interface CEEditorView () + +@property (nonatomic, retain) NSNumberFormatter *decimalFormatter; + +@end + @interface CEEditorView (Private) - (void)setupViews; - (void)setupViewParamsInInit:(BOOL)inBool; @@ -71,12 +78,19 @@ @implementation CEEditorView //======================================================= // ------------------------------------------------------ -- (id)initWithFrame:(NSRect)inFrame +- (instancetype)initWithFrame:(NSRect)inFrame // 初期化 // ------------------------------------------------------ { self = [super initWithFrame:inFrame]; if (self) { + // set number formatter for status bar + [self setDecimalFormatter:[[NSNumberFormatter alloc] init]]; + [[self decimalFormatter] setNumberStyle:NSNumberFormatterDecimalStyle]; + if (![[NSUserDefaults standardUserDefaults] boolForKey:k_key_showStatusBarThousSeparator]) { + [[self decimalFormatter] setThousandSeparator:@""]; + } + [self setupViews]; } return self; @@ -93,6 +107,7 @@ - (void)dealloc [_textViewCore release]; [_splitView release]; [_statusBar release]; + [_decimalFormatter release]; [super dealloc]; } @@ -392,10 +407,9 @@ - (NSArray *)allLayoutManagers { NSArray *theSubSplitViews = [[self splitView] subviews]; NSMutableArray *outArray = [NSMutableArray array]; - int i; - for (i = 0; i < [theSubSplitViews count]; i++) { - [outArray addObject:[[[theSubSplitViews objectAtIndex:i] textView] layoutManager]]; + for (NSTextContainer *container in theSubSplitViews) { + [outArray addObject:[[container textView] layoutManager]]; } return outArray; } @@ -501,13 +515,14 @@ - (BOOL)isWritable // ------------------------------------------------------ -- (void)setIsWritable:(BOOL)inBool +- (void)setIsWritable:(BOOL)isWritable // 文書への書き込み(ファイル上書き保存)が可能かどうかをセット // ------------------------------------------------------ { - _isWritable = inBool; - if ((_statusBar) && ([_statusBar showStatusBar])) { - [_statusBar setReadOnlyIcon:(!_isWritable)]; + _isWritable = isWritable; + + if (_statusBar) { + [_statusBar setShowsReadOnlyIcon:!_isWritable]; } } @@ -574,7 +589,7 @@ - (void)setShowPageGuide:(BOOL)inBool // ------------------------------------------------------ -- (int)lineEndingCharacter +- (NSInteger)lineEndingCharacter // 行末コードを返す(OgreNewlineCharacter型) // ------------------------------------------------------ { @@ -583,51 +598,51 @@ - (int)lineEndingCharacter // ------------------------------------------------------ -- (void)setLineEndingCharacter:(int)inNewLineEnding +- (void)setLineEndingCharacter:(NSInteger)inNewLineEnding // 行末コードをセット(OgreNewlineCharacter型) // ------------------------------------------------------ { NSArray *theSubSplitViews = [[self splitView] subviews]; NSString *theNewLineString; BOOL theBoolUpdate = ([self lineEndingCharacter] != inNewLineEnding); - int i; + unichar theChar[2]; if ((inNewLineEnding > OgreNonbreakingNewlineCharacter) && (inNewLineEnding <= OgreWindowsNewlineCharacter)) { _lineEndingCharacter = inNewLineEnding; } else { id theValues = [[NSUserDefaultsController sharedUserDefaultsController] values]; - int theDefaultLineEnd = [[theValues valueForKey:k_key_defaultLineEndCharCode] intValue]; + NSInteger theDefaultLineEnd = [[theValues valueForKey:k_key_defaultLineEndCharCode] integerValue]; _lineEndingCharacter = theDefaultLineEnd; } // set to textViewCore. - if (_lineEndingCharacter == OgreLfNewlineCharacter) { - // LF - theNewLineString = @"\n"; - } else if (_lineEndingCharacter == OgreCrNewlineCharacter) { - // CR - theNewLineString = @"\r"; - } else if (_lineEndingCharacter == OgreCrLfNewlineCharacter) { - // CR+LF - theNewLineString = @"\r\n"; - } else if (_lineEndingCharacter == OgreUnicodeLineSeparatorNewlineCharacter) { - // Unicode line separator - unichar theChar[2]; - theChar[0] = 0x2028; theChar[1] = 0; - theNewLineString = [[[NSString alloc] initWithCharacters:theChar length:1] autorelease]; - } else if (_lineEndingCharacter == OgreUnicodeParagraphSeparatorNewlineCharacter) { - // Unicode paragraph separator - unichar theChar[2]; - theChar[0] = 0x2029; theChar[1] = 0; - theNewLineString = [[[NSString alloc] initWithCharacters:theChar length:1] autorelease]; - } else if (_lineEndingCharacter == OgreNonbreakingNewlineCharacter) { - // 改行なしの場合 - theNewLineString = @""; - } else { - return; + switch (_lineEndingCharacter) { + case OgreLfNewlineCharacter: + theNewLineString = @"\n"; // LF + break; + case OgreCrNewlineCharacter: // CR + theNewLineString = @"\r"; + break; + case OgreCrLfNewlineCharacter: // CR+LF + theNewLineString = @"\r\n"; + break; + case OgreUnicodeLineSeparatorNewlineCharacter: // Unicode line separator + theChar[0] = 0x2028; theChar[1] = 0; + theNewLineString = [[[NSString alloc] initWithCharacters:theChar length:1] autorelease]; + break; + case OgreUnicodeParagraphSeparatorNewlineCharacter: // Unicode paragraph separator + theChar[0] = 0x2029; theChar[1] = 0; + theNewLineString = [[[NSString alloc] initWithCharacters:theChar length:1] autorelease]; + break; + case OgreNonbreakingNewlineCharacter: // 改行なしの場合 + theNewLineString = @""; + break; + + default: + return; } - for (i = 0; i < [theSubSplitViews count]; i++) { - [(CETextViewCore *)[[theSubSplitViews objectAtIndex:i] textView] setNewLineString:theNewLineString]; + for (NSTextContainer *container in theSubSplitViews) { + [(CETextViewCore *)[container textView] setNewLineString:theNewLineString]; } if (theBoolUpdate) { [self updateLineEndingsInStatusAndInfo:NO]; @@ -701,14 +716,14 @@ - (void)alertForNotWritable if ([[theValues valueForKey:k_key_showAlertForNotWritable] boolValue]) { - NSAlert *theAleart = [NSAlert alertWithMessageText:NSLocalizedString(@"File Is Read Only",@"") - defaultButton:NSLocalizedString(@"OK",@"") - alternateButton:nil - otherButton:nil - informativeTextWithFormat:NSLocalizedString(@"You may not be able to save your changes, but you will be able to Save a Copy somewhere else.",@"") + NSAlert *theAlert = [NSAlert alertWithMessageText:NSLocalizedString(@"The file is not writable.", nil) + defaultButton:nil + alternateButton:nil + otherButton:nil + informativeTextWithFormat:NSLocalizedString(@"You may not be able to save your changes, but you will be able to save a copy somewhere else.", nil) ]; - [theAleart beginSheetModalForWindow:[self window] + [theAlert beginSheetModalForWindow:[self window] modalDelegate:self didEndSelector:NULL contextInfo:NULL]; @@ -722,92 +737,86 @@ - (void)updateDocumentInfoStringWithDrawerForceUpdate:(BOOL)inBool // ドローワの文書情報を更新 // ------------------------------------------------------ { - id theValues = [[NSUserDefaultsController sharedUserDefaultsController] values]; - - BOOL theBoolStatusBarUpdate = [_statusBar showStatusBar]; - BOOL theBoolDrawerUpdate = (inBool) ? YES : [[self windowController] needsInfoDrawerUpdate]; - if ((!theBoolStatusBarUpdate) && (!theBoolDrawerUpdate)) { return; } - NSString *theStatusStr, *theInfoLine, *theInfoChar, *theInfoSelect; - NSString *theString = ([self lineEndingCharacter] == OgreCrLfNewlineCharacter) ? - [self stringForSave] : [self string]; - NSString *theCharStr = nil; - NSRange theRange = [self selectedRange]; - unsigned int theLines = 0, theCurLine = 0, theIndex = 0, theLength = [theString length]; - unsigned int theLineStart = 0, theCountInLine = 0; + BOOL shoudlUpdateStatusBar = [_statusBar showStatusBar]; + BOOL shouldUpdateDrawer = (inBool) ? YES : [[self windowController] needsInfoDrawerUpdate]; + if (!shoudlUpdateStatusBar && !shouldUpdateDrawer) { return; } + NSString *theString = ([self lineEndingCharacter] == OgreCrLfNewlineCharacter) ? [self stringForSave] : [self string]; + NSString *singleCharInfo = nil; + NSRange selectedRange = [self selectedRange]; + NSUInteger numberOfLines = 0, currentLine = 0, length = [theString length]; + NSUInteger lineStart = 0, countInLine = 0; // IM で変換途中の文字列は選択範囲としてカウントしない (2007.05.20) if ([[self textView] hasMarkedText]) { - theRange.length = 0; + selectedRange.length = 0; } - if (theLength > 0) { + if (length > 0) { + lineStart = [theString lineRangeForRange:selectedRange].location; + countInLine = selectedRange.location - lineStart; - theLineStart = [theString lineRangeForRange:theRange].location; - theCountInLine = theRange.location - theLineStart; - - for (theIndex = 0, theLines = 0; theIndex < theLength; theLines++) { - if (theIndex <= theRange.location) { - theCurLine = theLines + 1; + for (NSUInteger index = 0, numberOfLines = 0; index < length; numberOfLines++) { + if (index <= selectedRange.location) { + currentLine = numberOfLines + 1; } - theIndex = NSMaxRange([theString lineRangeForRange:NSMakeRange(theIndex, 0)]); + index = NSMaxRange([theString lineRangeForRange:NSMakeRange(index, 0)]); } // 行末コードをカウントしない場合は再計算 - if (![[theValues valueForKey:k_key_countLineEndingAsChar] boolValue]) { - NSString *theLocStr = [theString substringToIndex:theRange.location]; + if (![[NSUserDefaults standardUserDefaults] boolForKey:k_key_countLineEndingAsChar]) { + NSString *theLocStr = [theString substringToIndex:selectedRange.location]; - theRange.location = [[OGRegularExpression chomp:theLocStr] length]; - theRange.length = [[OGRegularExpression chomp:[self substringWithSelection]] length]; - theLength = [[OGRegularExpression chomp:theString] length]; + selectedRange.location = [[OGRegularExpression chomp:theLocStr] length]; + selectedRange.length = [[OGRegularExpression chomp:[self substringWithSelection]] length]; + length = [[OGRegularExpression chomp:theString] length]; } } - - if (theBoolStatusBarUpdate) { - if (theRange.length > 0) { - if (theRange.length == 1) { - unichar theCharacter = [theString characterAtIndex:theRange.location]; - theCharStr = [NSString stringWithFormat:@"0x%.4X",theCharacter]; - theStatusStr = - [NSString stringWithFormat:NSLocalizedString(@" Line: %@ / %@ Char: %@ / %@ (>%@) [:%@] Unicode: %@",@""), - [[NSApp delegate] stringFromUnsignedInt:theCurLine], - [[NSApp delegate] stringFromUnsignedInt:theLines], - [[NSApp delegate] stringFromUnsignedInt:theRange.location], - [[NSApp delegate] stringFromUnsignedInt:theLength], - [[NSApp delegate] stringFromUnsignedInt:theCountInLine], - [[NSApp delegate] stringFromUnsignedInt:theRange.length], - theCharStr]; + NSUInteger numberOfWords = [[NSSpellChecker sharedSpellChecker] countWordsInString:theString language:nil]; + + if (shoudlUpdateStatusBar) { + NSString *statusString; + + if (selectedRange.length > 0) { + if (selectedRange.length == 1) { + unichar theCharacter = [theString characterAtIndex:selectedRange.location]; + singleCharInfo = [NSString stringWithFormat:@"0x%.4X",theCharacter]; + statusString = [NSString stringWithFormat:NSLocalizedString(@"Line: %@ / %@ Char: %@ / %@ (>%@) [:%@] Unicode: %@", nil), + [[self decimalFormatter] stringFromNumber:@(currentLine)], + [[self decimalFormatter] stringFromNumber:@(numberOfLines)], + [[self decimalFormatter] stringFromNumber:@(selectedRange.location)], + [[self decimalFormatter] stringFromNumber:@(length)], + [[self decimalFormatter] stringFromNumber:@(countInLine)], + [[self decimalFormatter] stringFromNumber:@(selectedRange.length)], + singleCharInfo]; } else { - theStatusStr = - [NSString stringWithFormat:NSLocalizedString(@" Line: %@ / %@ Char: %@ / %@ (>%@) [:%@]",@""), - [[NSApp delegate] stringFromUnsignedInt:theCurLine], - [[NSApp delegate] stringFromUnsignedInt:theLines], - [[NSApp delegate] stringFromUnsignedInt:theRange.location], - [[NSApp delegate] stringFromUnsignedInt:theLength], - [[NSApp delegate] stringFromUnsignedInt:theCountInLine], - [[NSApp delegate] stringFromUnsignedInt:theRange.length]]; + statusString = [NSString stringWithFormat:NSLocalizedString(@"Line: %@ / %@ Char: %@ / %@ (>%@) [:%@]", nil), + [[self decimalFormatter] stringFromNumber:@(currentLine)], + [[self decimalFormatter] stringFromNumber:@(numberOfLines)], + [[self decimalFormatter] stringFromNumber:@(selectedRange.location)], + [[self decimalFormatter] stringFromNumber:@(length)], + [[self decimalFormatter] stringFromNumber:@(countInLine)], + [[self decimalFormatter] stringFromNumber:@(selectedRange.length)]]; } } else { - theStatusStr = [NSString stringWithFormat:NSLocalizedString(@" Line: %@ / %@ Char: %@ / %@ (>%@)",@""), - [[NSApp delegate] stringFromUnsignedInt:theCurLine], - [[NSApp delegate] stringFromUnsignedInt:theLines], - [[NSApp delegate] stringFromUnsignedInt:theRange.location], - [[NSApp delegate] stringFromUnsignedInt:theLength], - [[NSApp delegate] stringFromUnsignedInt:theCountInLine]]; + statusString = [NSString stringWithFormat:NSLocalizedString(@"Line: %@ / %@ Char: %@ / %@ (>%@)", nil), + [[self decimalFormatter] stringFromNumber:@(currentLine)], + [[self decimalFormatter] stringFromNumber:@(numberOfLines)], + [[self decimalFormatter] stringFromNumber:@(selectedRange.location)], + [[self decimalFormatter] stringFromNumber:@(length)], + [[self decimalFormatter] stringFromNumber:@(countInLine)]]; } - [[_statusBar leftTextField] setStringValue:theStatusStr]; + [[_statusBar leftTextField] setStringValue:statusString]; } - if (theBoolDrawerUpdate) { - theInfoLine = [NSString stringWithFormat:@"%i / %i",theCurLine, theLines]; - [[self windowController] setInfoLine:theInfoLine]; - theInfoChar = [NSString stringWithFormat:@"%i / %i",theRange.location, theLength]; - [[self windowController] setInfoChar:theInfoChar]; - [[self windowController] setInfoInLine:[NSString stringWithFormat:@"%i", theCountInLine]]; - theInfoSelect = (theRange.length > 0) ? - [NSString stringWithFormat:@"%i", theRange.length] : [NSString stringWithString:@" - "]; - [[self windowController] setInfoSelect:theInfoSelect]; - if (theCharStr != nil) { - [[self windowController] setInfoSingleChar:theCharStr]; - } else { - [[self windowController] setInfoSingleChar:[NSString stringWithString:@" - "]]; - } + if (shouldUpdateDrawer) { + NSString *lineInfo, *charInfo, *selectInfo; + + lineInfo = [NSString stringWithFormat:@"%lu / %lu",(unsigned long)currentLine, (unsigned long)numberOfLines]; + [[self windowController] setLineInfo:lineInfo]; + charInfo = [NSString stringWithFormat:@"%lu / %lu",(unsigned long)selectedRange.location, (unsigned long)length]; + [[self windowController] setCharInfo:charInfo]; + [[self windowController] setInLineInfo:[NSString stringWithFormat:@"%lu", (unsigned long)countInLine]]; + selectInfo = (selectedRange.length > 0) ? [NSString stringWithFormat:@"%lu", (unsigned long)selectedRange.length] : @" - "; + [[self windowController] setSelectInfo:selectInfo]; + singleCharInfo = singleCharInfo ? : @" - "; + [[self windowController] setSingleCharInfo:singleCharInfo]; } } @@ -817,34 +826,42 @@ - (void)updateLineEndingsInStatusAndInfo:(BOOL)inBool // ステータスバーと情報ドローワの行末コード表記を更新 // ------------------------------------------------------ { - BOOL theBoolStatusBarUpdate = [_statusBar showStatusBar]; - BOOL theBoolDrawerUpdate = (inBool) ? YES : [[self windowController] needsInfoDrawerUpdate]; - if ((!theBoolStatusBarUpdate) && (!theBoolDrawerUpdate)) { return; } - NSString *theInfoEncodingStr, *theInfoLineEndingsStr; - - if (_lineEndingCharacter == OgreLfNewlineCharacter) { - theInfoLineEndingsStr = @"LF"; - } else if (_lineEndingCharacter == OgreCrNewlineCharacter) { - theInfoLineEndingsStr = @"CR"; - } else if (_lineEndingCharacter == OgreCrLfNewlineCharacter) { - theInfoLineEndingsStr = @"CRLF"; - } else if (_lineEndingCharacter == OgreUnicodeLineSeparatorNewlineCharacter) { - theInfoLineEndingsStr = @"U-lineSep"; // Unicode line separator - } else if (_lineEndingCharacter == OgreUnicodeParagraphSeparatorNewlineCharacter) { - theInfoLineEndingsStr = @"U-paraSep"; // Unicode paragraph separator - } else if (_lineEndingCharacter == OgreNonbreakingNewlineCharacter) { - theInfoLineEndingsStr = @""; // 改行なしの場合 - } else { - return; + BOOL shouldUpdateStatusBar = [_statusBar showStatusBar]; + BOOL shouldUpdateDrawer = (inBool) ? YES : [[self windowController] needsInfoDrawerUpdate]; + if (!shouldUpdateStatusBar && !shouldUpdateDrawer) { return; } + + NSString *encodingInfo, *lineEndingsInfo; + + switch (_lineEndingCharacter) { + case OgreLfNewlineCharacter: + lineEndingsInfo = @"LF"; + break; + case OgreCrNewlineCharacter: + lineEndingsInfo = @"CR"; + break; + case OgreCrLfNewlineCharacter: + lineEndingsInfo = @"CRLF"; + break; + case OgreUnicodeLineSeparatorNewlineCharacter: + lineEndingsInfo = @"U-lineSep"; // Unicode line separator + break; + case OgreUnicodeParagraphSeparatorNewlineCharacter: + lineEndingsInfo = @"U-paraSep"; // Unicode paragraph separator + break; + case OgreNonbreakingNewlineCharacter: + lineEndingsInfo = @""; // 改行なしの場合 + break; + default: + return; } - theInfoEncodingStr = [[self document] currentIANACharSetName]; - if (theBoolStatusBarUpdate) { - [[_statusBar rightTextField] setStringValue: - [NSString stringWithFormat:@"%@ %@", theInfoEncodingStr, theInfoLineEndingsStr]]; + + encodingInfo = [[self document] currentIANACharSetName]; + if (shouldUpdateStatusBar) { + [[_statusBar rightTextField] setStringValue:[NSString stringWithFormat:@"%@ %@", encodingInfo, lineEndingsInfo]]; } - if (theBoolDrawerUpdate) { - [[self windowController] setInfoEncoding:theInfoEncodingStr]; - [[self windowController] setInfoLineEndings:theInfoLineEndingsStr]; + if (shouldUpdateDrawer) { + [[self windowController] setEncodingInfo:encodingInfo]; + [[self windowController] setLineEndingsInfo:lineEndingsInfo]; } } @@ -975,7 +992,7 @@ - (BOOL)validateMenuItem:(NSMenuItem *)inMenuItem // メニュー項目の有効・無効を制御 // ------------------------------------------------------ { - int theState = NSOffState; + NSInteger theState = NSOffState; if ([inMenuItem action] == @selector(toggleShowLineNum:)) { if ([self showLineNum]) {theState = NSOnState;} @@ -1092,7 +1109,7 @@ - (IBAction)openSplitTextView:(id)sender // ------------------------------------------------------ { CESubSplitView *theMasterView = ([sender isMemberOfClass:[NSMenuItem class]]) ? - [(CETextViewCore *)[[self window] firstResponder] delegate] : + (CESubSplitView *)[(CETextViewCore *)[[self window] firstResponder] delegate] : [(CENavigationBarView *)[sender superview] masterView]; if (theMasterView == nil) { return; } NSRect theSubSplitFrame = [theMasterView bounds]; @@ -1127,24 +1144,21 @@ - (IBAction)closeSplitTextView:(id)sender // ------------------------------------------------------ { BOOL theBoolIsSenderMenu = [sender isMemberOfClass:[NSMenuItem class]]; - CESubSplitView *theFirstResponderSubSplitView = [(CETextViewCore *)[[self window] firstResponder] delegate]; + CESubSplitView *theFirstResponderSubSplitView = (CESubSplitView *)[(CETextViewCore *)[[self window] firstResponder] delegate]; CESubSplitView *theCloseSubSplitView = (theBoolIsSenderMenu) ? theFirstResponderSubSplitView : [(CENavigationBarView *)[sender superview] masterView]; if (theCloseSubSplitView == nil) { return; } NSArray *theSubViews = [[self splitView] subviews]; - unsigned int theCount = [theSubViews count]; - unsigned int theDelIndex = [theSubViews indexOfObject:theCloseSubSplitView]; - unsigned int theIndex = 0; + NSUInteger theCount = [theSubViews count]; + NSUInteger theDelIndex = [theSubViews indexOfObject:theCloseSubSplitView]; + NSUInteger theIndex = 0; if ((theBoolIsSenderMenu) || (theDelIndex == [theSubViews indexOfObject:theFirstResponderSubSplitView])) { theIndex = theDelIndex + 1; if (theIndex >= theCount) { theIndex = theCount - 2; } - if (theIndex < 0) { - theIndex = 0; - } - [[self window] makeFirstResponder:[[theSubViews objectAtIndex:theIndex] textView]]; + [[self window] makeFirstResponder:[theSubViews[theIndex] textView]]; } [theCloseSubSplitView removeFromSuperview]; [self updateCloseSubSplitViewButton]; @@ -1214,11 +1228,11 @@ - (void)setupViews _coloringTimer = nil; _infoUpdateTimer = nil; _incompatibleCharTimer = nil; - _basicColoringDelay = [[theValues valueForKey:k_key_basicColoringDelay] floatValue]; - _firstColoringDelay = [[theValues valueForKey:k_key_firstColoringDelay] floatValue]; - _secondColoringDelay = [[theValues valueForKey:k_key_secondColoringDelay] floatValue]; - _infoUpdateInterval = [[theValues valueForKey:k_key_infoUpdateInterval] floatValue]; - _incompatibleCharInterval = [[theValues valueForKey:k_key_incompatibleCharInterval] floatValue]; + _basicColoringDelay = [[theValues valueForKey:k_key_basicColoringDelay] doubleValue]; + _firstColoringDelay = [[theValues valueForKey:k_key_firstColoringDelay] doubleValue]; + _secondColoringDelay = [[theValues valueForKey:k_key_secondColoringDelay] doubleValue]; + _infoUpdateInterval = [[theValues valueForKey:k_key_infoUpdateInterval] doubleValue]; + _incompatibleCharInterval = [[theValues valueForKey:k_key_incompatibleCharInterval] doubleValue]; } @@ -1262,10 +1276,10 @@ - (void)doColoringNow // = 選択領域(編集場所)が見えないときは編集場所周辺を更新 if (!NSLocationInRange(theSelectedRange.location, theCharRange)) { - int theLocation = theSelectedRange.location - theCharRange.length; + NSInteger theLocation = theSelectedRange.location - theCharRange.length; if (theLocation < 0) { theLocation = 0; } - int theLength = theSelectedRange.length + theCharRange.length; - int theMax = [[self string] length] - theLocation; + NSInteger theLength = theSelectedRange.length + theCharRange.length; + NSInteger theMax = [[self string] length] - theLocation; if (theLength > theMax) { theLength = theMax; } [[self syntax] colorVisibleRange:NSMakeRange(theLocation, theLength) withWholeString:[self string]]; @@ -1311,10 +1325,10 @@ - (void)focusOtherSplitTextViewOnNext:(BOOL)inBool // ------------------------------------------------------ { NSArray *theSubSplitViews = [[self splitView] subviews]; - int theCount = [theSubSplitViews count]; + NSInteger theCount = [theSubSplitViews count]; if (theCount < 2) { return; } - CESubSplitView *theCurView = [(CETextViewCore *)[[self window] firstResponder] delegate]; - int theIndex = [theSubSplitViews indexOfObject:theCurView]; + CESubSplitView *theCurView = (CESubSplitView *)[(CETextViewCore *)[[self window] firstResponder] delegate]; + NSInteger theIndex = [theSubSplitViews indexOfObject:theCurView]; if (inBool) { // == Next theIndex++; @@ -1324,9 +1338,9 @@ - (void)focusOtherSplitTextViewOnNext:(BOOL)inBool if (theIndex < 0) { [[self window] makeFirstResponder:[[theSubSplitViews lastObject] textView]]; } else if (theIndex < theCount) { - [[self window] makeFirstResponder:[[theSubSplitViews objectAtIndex:theIndex] textView]]; + [[self window] makeFirstResponder:[theSubSplitViews[theIndex] textView]]; } else if (theIndex >= theCount) { - [[self window] makeFirstResponder:[[theSubSplitViews objectAtIndex:0] textView]]; + [[self window] makeFirstResponder:[theSubSplitViews[0] textView]]; } } @@ -1371,6 +1385,4 @@ - (void)stopIncompatibleCharTimer } } - - -@end \ No newline at end of file +@end diff --git a/CEFlippedView.h b/CEFlippedView.h index 8c82dcb8cd..ac3df9085b 100644 --- a/CEFlippedView.h +++ b/CEFlippedView.h @@ -3,8 +3,9 @@ CEFlippedView (for CotEditor) -Copyright (C) 2004-2007 nakamuxu. -http://www.aynimac.com/ + Copyright (C) 2004-2007 nakamuxu. + Copyright (C) 2014 CotEditor Project + http://coteditor.github.io ================================================= encoding="UTF-8" @@ -38,7 +39,5 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. @interface CEFlippedView : NSView -{ -} @end diff --git a/CEFlippedView.m b/CEFlippedView.m index 597f2b6e97..7366a4aef2 100644 --- a/CEFlippedView.m +++ b/CEFlippedView.m @@ -3,8 +3,9 @@ CEFlippedView (for CotEditor) -Copyright (C) 2004-2007 nakamuxu. -http://www.aynimac.com/ + Copyright (C) 2004-2007 nakamuxu. + Copyright (C) 2014 CotEditor Project + http://coteditor.github.io ================================================= encoding="UTF-8" @@ -38,6 +39,7 @@ @implementation CEFlippedView + - (BOOL)isFlipped { return YES; diff --git a/CEHCCManager.m b/CEHCCManager.m index 955927af37..4c9f856cfc 100644 --- a/CEHCCManager.m +++ b/CEHCCManager.m @@ -3,8 +3,9 @@ CEHCCManager (for CotEditor) -Copyright (C) 2004-2006 nakamuxu. -http://www.aynimac.com/ + Copyright (C) 2004-2006 nakamuxu. + Copyright (C) 2014 CotEditor Project + http://coteditor.github.io ================================================= encoding="UTF-8" @@ -80,7 +81,7 @@ + (CEHCCManager *)sharedInstance //======================================================= // ------------------------------------------------------ -- (id)init +- (instancetype)init // 初期化 // ------------------------------------------------------ { @@ -175,8 +176,8 @@ - (void)awakeFromNib // ArrayController のソート方式をセット NSSortDescriptor *theDescriptor = [[[NSSortDescriptor alloc] initWithKey:k_HCCDataControllerKey ascending:YES] autorelease]; - [_foreColorDataController setSortDescriptors:[NSArray arrayWithObject:theDescriptor]]; - [_backColorDataController setSortDescriptors:[NSArray arrayWithObject:theDescriptor]]; + [_foreColorDataController setSortDescriptors:@[theDescriptor]]; + [_backColorDataController setSortDescriptors:@[theDescriptor]]; } @@ -246,7 +247,7 @@ - (IBAction)exportHexColorCode:(id)sender // ------------------------------------------------------ { if ([[NSApp orderedDocuments] count] < 1) { return; } - CEDocument *theDoc = [[NSApp orderedDocuments] objectAtIndex:0]; + CEDocument *theDoc = [NSApp orderedDocuments][0]; NSString *theCodeStr = nil, *theSelected = nil; NSRange theRange; @@ -336,13 +337,11 @@ - (IBAction)addComboBoxDataCurrentString:(id)sender if (([sender tag] == k_addCodeToForeButtonTag) && ([[theValues valueForKey:k_key_foreColorCBoxIsOk] boolValue])) { [_foreColorDataController addObject: - [NSDictionary dictionaryWithObjectsAndKeys: - [_foreColorComboBox stringValue], k_HCCDataControllerKey, nil]]; + @{k_HCCDataControllerKey: [_foreColorComboBox stringValue]}]; } else if (([sender tag] == k_addCodeToBackButtonTag) && ([[theValues valueForKey:k_key_backgroundColorCBoxIsOk] boolValue])) { [_backColorDataController addObject: - [NSDictionary dictionaryWithObjectsAndKeys: - [_backgroundColorComboBox stringValue], k_HCCDataControllerKey, nil]]; + @{k_HCCDataControllerKey: [_backgroundColorComboBox stringValue]}]; } } @@ -414,7 +413,7 @@ - (void)importHexColorCode:(NSString *)inCodeString to:(id)inControl if ([theString length] == 6) { NSCharacterSet *theSet = [NSCharacterSet characterSetWithCharactersInString:@"0123456789abcdefABCDEF"]; - int i; + NSInteger i; for (i = 0; i < 6; i++) { theBoolIsHex = [theSet characterIsMember:[theString characterAtIndex:i]]; @@ -446,7 +445,7 @@ - (void)checkComboBox:(id)inControl string:(NSString *)inString if ((inString != nil) && ([inString length] == 6)) { NSCharacterSet *theSet = [NSCharacterSet characterSetWithCharactersInString:@"0123456789abcdefABCDEF"]; - int i; + NSInteger i; theBoolIsOk = YES; for (i = 0; i < 6; i++) { @@ -469,7 +468,7 @@ - (void)checkComboBox:(id)inControl string:(NSString *)inString theKeyName = k_key_backgroundColorCBoxIsOk; } [[[NSUserDefaultsController sharedUserDefaultsController] defaults] - setValue:[NSNumber numberWithBool:theBoolIsOk] forKey:theKeyName]; + setValue:@(theBoolIsOk) forKey:theKeyName]; } diff --git a/CEHexColorTransformer.h b/CEHexColorTransformer.h index e21acb473a..18c783b6bb 100644 --- a/CEHexColorTransformer.h +++ b/CEHexColorTransformer.h @@ -3,8 +3,9 @@ CEHexColorTransformer (for CotEditor) -Copyright (C) 2004-2007 nakamuxu. -http://www.aynimac.com/ + Copyright (C) 2004-2007 nakamuxu. + Copyright (C) 2014 CotEditor Project + http://coteditor.github.io ================================================= encoding="UTF-8" @@ -34,7 +35,5 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. @interface CEHexColorTransformer : NSValueTransformer -{ -} @end diff --git a/CEHexColorTransformer.m b/CEHexColorTransformer.m index 2ca4d8de84..14d68b8f7b 100644 --- a/CEHexColorTransformer.m +++ b/CEHexColorTransformer.m @@ -3,8 +3,9 @@ CEHexColorTransformer (for CotEditor) -Copyright (C) 2004-2007 nakamuxu. -http://www.aynimac.com/ + Copyright (C) 2004-2007 nakamuxu. + Copyright (C) 2014 CotEditor Project + http://coteditor.github.io ================================================= encoding="UTF-8" @@ -35,7 +36,7 @@ @implementation CEHexColorTransformer -#pragma mark ===== Class method ===== +#pragma mark Class Methods //======================================================= // Class method @@ -47,7 +48,7 @@ + (Class)transformedValueClass // 変換後のオブジェクトのクラスを返す // ------------------------------------------------------ { - return [NSString self]; + return [NSString class]; } @@ -61,7 +62,7 @@ + (BOOL)allowsReverseTransformation -#pragma mark ===== Public method ===== +#pragma mark Public Methods //======================================================= // Public method @@ -69,62 +70,61 @@ + (BOOL)allowsReverseTransformation //======================================================= // ------------------------------------------------------ -- (id)transformedValue:(id)inValue +- (id)transformedValue:(id)value // 変換された値を返す(NSColor+NSArchiver -> NSString) // ------------------------------------------------------ { - if (inValue == nil) { return nil; } + if (value == nil) { return nil; } - id theColor = [NSUnarchiver unarchiveObjectWithData:inValue]; - if (theColor == nil) { return nil; } - float theRed, theGreen, theBlue; - NSString *outString = nil, *theColorSpaceName = nil; + NSColor *color = [NSUnarchiver unarchiveObjectWithData:value]; + + if (color == nil) { return nil; } + + CGFloat red, green, blue; + NSString *outString = nil; + NSString *colorSpaceName; // カラースペース名がRGB系でなかったらコンバートする - theColorSpaceName = [theColor colorSpaceName]; - if ((![theColorSpaceName isEqualToString:NSCalibratedRGBColorSpace]) && - (![theColorSpaceName isEqualToString:NSDeviceRGBColorSpace])) { - theColor = [theColor colorUsingColorSpaceName:NSCalibratedRGBColorSpace]; + colorSpaceName = [color colorSpaceName]; + if (![colorSpaceName isEqualToString:NSCalibratedRGBColorSpace] && + ![colorSpaceName isEqualToString:NSDeviceRGBColorSpace]) { + color = [color colorUsingColorSpaceName:NSCalibratedRGBColorSpace]; } - [theColor getRed:&theRed green:&theGreen blue:&theBlue alpha:nil]; + [color getRed:&red green:&green blue:&blue alpha:nil]; + // 各色の値を文字列に整形 - outString = [NSString stringWithFormat:@"%2.2x%2.2x%2.2x", - (unsigned long)(theRed*255), (unsigned long)(theGreen*255), (unsigned long)(theBlue*255)]; + outString = [NSString stringWithFormat:@"%2.2lx%2.2lx%2.2lx", + (unsigned long)(red*255), (unsigned long)(green*255), (unsigned long)(blue*255)]; return outString; } // ------------------------------------------------------ -- (id)reverseTransformedValue:(id)inValue +- (id)reverseTransformedValue:(id)value // 逆変換された値を返す(NSString -> NSColor+NSArchiver) // ------------------------------------------------------ { - if (inValue == nil) { return nil; } - if ([inValue length] != 6) { return nil; } + if (value == nil) { return nil; } + if ([value length] != 6) { return nil; } unsigned int theInt = 0; - float theRed, theGreen, theBlue; - int i; - - NSScanner *theScanner; - for (i = 0; i < 3; i++) { - theScanner = [NSScanner scannerWithString:[inValue substringWithRange:NSMakeRange(i * 2, 2)]]; - if ([theScanner scanHexInt:&theInt]) { - if (i == 0) { - theRed = (theInt > 0) ? ((float)theInt / 255) : 0.0; - } else if (i == 1) { - theGreen = (theInt > 0) ? ((float)theInt / 255) : 0.0; - } else if (i == 2) { - theBlue = (theInt > 0) ? ((float)theInt / 255) : 0.0; + CGFloat red, green, blue; + + NSScanner *scanner; + for (NSUInteger i = 0; i < 3; i++) { + scanner = [NSScanner scannerWithString:[value substringWithRange:NSMakeRange(i * 2, 2)]]; + if ([scanner scanHexInt:&theInt]) { + switch (i) { + case 0: red = (CGFloat)theInt / 255; break; + case 1: green = (CGFloat)theInt / 255; break; + case 2: blue = (CGFloat)theInt / 255; break; } } } - NSColor *outColor = [NSColor colorWithCalibratedRed:theRed green:theGreen blue:theBlue alpha:1.0]; + NSColor *color = [NSColor colorWithCalibratedRed:red green:green blue:blue alpha:1.0]; - return [NSArchiver archivedDataWithRootObject:outColor]; + return [NSArchiver archivedDataWithRootObject:color]; } - - @end diff --git a/CEKeyBindingManager.h b/CEKeyBindingManager.h index 8b02245a3f..960b2e5c0b 100644 --- a/CEKeyBindingManager.h +++ b/CEKeyBindingManager.h @@ -3,8 +3,9 @@ CEKeyBindingManager (for CotEditor) -Copyright (C) 2004-2007 nakamuxu. -http://www.aynimac.com/ + Copyright (C) 2004-2007 nakamuxu. + Copyright (C) 2014 CotEditor Project + http://coteditor.github.io ================================================= encoding="UTF-8" @@ -61,7 +62,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. NSDictionary *_textKeyBindingDict; NSDictionary *_noPrintableKeyDict; NSString *_currentKeySpecChars; - int _outlineMode; + NSInteger _outlineMode; } // class method @@ -69,10 +70,10 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. // Public method - (void)setupAtLaunching; -- (NSWindow *)editSheetWindowOfMode:(int)inMode; +- (NSWindow *)editSheetWindowOfMode:(NSInteger)inMode; - (void)setupKeyBindingDictionary; -- (BOOL)setupOutlineDataOfMode:(int)inMode; -- (NSString *)selectorStringWithKeyEquivalent:(NSString *)inString modifierFrags:(unsigned int)inModFlags; +- (BOOL)setupOutlineDataOfMode:(NSInteger)inMode; +- (NSString *)selectorStringWithKeyEquivalent:(NSString *)inString modifierFrags:(NSUInteger)inModFlags; // Action Message - (IBAction)editKeyBindingKey:(id)sender; diff --git a/CEKeyBindingManager.m b/CEKeyBindingManager.m index 5d50473454..f4f1a22ad5 100644 --- a/CEKeyBindingManager.m +++ b/CEKeyBindingManager.m @@ -3,8 +3,9 @@ CEKeyBindingManager (for CotEditor) -Copyright (C) 2004-2006 nakamuxu. -http://www.aynimac.com/ + Copyright (C) 2004-2006 nakamuxu. + Copyright (C) 2014 CotEditor Project + http://coteditor.github.io ================================================= encoding="UTF-8" @@ -50,7 +51,7 @@ - (NSMutableArray *)mainMenuArrayForOutlineData:(NSMenu *)inMenu; - (NSMutableArray *)textKeySpecCharArrayForOutlineDataWithFactoryDefaults:(BOOL)inBool; - (NSString *)readableKeyStringsFromKeySpecChars:(NSString *)inString; - (NSString *)readableKeyStringsFromKeyEquivalent:(NSString *)inString; -- (NSString *)keySpecCharsFromKeyEquivalent:(NSString *)inString modifierFrags:(unsigned int)inModFlags; +- (NSString *)keySpecCharsFromKeyEquivalent:(NSString *)inString modifierFrags:(NSUInteger)inModFlags; - (NSString *)readableKeyStringsFromModKeySpecChars:(NSString *)inModString withShiftKey:(BOOL)inBool; - (NSString *)visibleCharFromIgnoringModChar:(NSString *)inIgModChar; - (BOOL)showDuplicateKeySpecCharsMessageWithKeySpecChars:(NSString *)inKeySpec oldChars:(NSString *)inOldSpec; @@ -100,7 +101,7 @@ + (CEKeyBindingManager *)sharedInstance //======================================================= // ------------------------------------------------------ -- (id)init +- (instancetype)init // 初期化 // ------------------------------------------------------ { @@ -170,7 +171,7 @@ - (void)setupAtLaunching // ------------------------------------------------------ -- (NSWindow *)editSheetWindowOfMode:(int)inMode +- (NSWindow *)editSheetWindowOfMode:(NSInteger)inMode // キーバインディング編集シート用ウィンドウを返す // ------------------------------------------------------ { @@ -194,7 +195,7 @@ - (void)setupKeyBindingDictionary // ------------------------------------------------------ -- (BOOL)setupOutlineDataOfMode:(int)inMode +- (BOOL)setupOutlineDataOfMode:(NSInteger)inMode // 環境設定でシートを表示する準備 // ------------------------------------------------------ { @@ -223,7 +224,6 @@ - (BOOL)setupOutlineDataOfMode:(int)inMode NSArray *theInsertTextArray = [theValues valueForKey:k_key_insertCustomTextArray]; NSMutableArray *theContentArray = [NSMutableArray array]; NSMutableDictionary *theDict; - int i, theMax = [theInsertTextArray count]; [_textDuplicateTextField setStringValue:@""]; _outlineDataArray = @@ -235,9 +235,8 @@ - (BOOL)setupOutlineDataOfMode:(int)inMode (![[[[NSApp delegate] class] factoryDefaultOfTextInsertStringArray] isEqualToArray:theInsertTextArray]))]; [_textOutlineView reloadData]; - for (i = 0; i < theMax; i++) { - theDict = [NSMutableDictionary dictionaryWithObject:[theInsertTextArray objectAtIndex:i] - forKey:k_key_insertCustomText]; + for (id object in theInsertTextArray) { + theDict = [NSMutableDictionary dictionaryWithObject:object forKey:k_key_insertCustomText]; [theContentArray addObject:theDict]; } [_textInsertStringArrayController setContent:theContentArray]; @@ -252,13 +251,13 @@ - (BOOL)setupOutlineDataOfMode:(int)inMode // ------------------------------------------------------ -- (NSString *)selectorStringWithKeyEquivalent:(NSString *)inString modifierFrags:(unsigned int)inModFlags +- (NSString *)selectorStringWithKeyEquivalent:(NSString *)inString modifierFrags:(NSUInteger)inModFlags // キー入力に応じたセレクタ文字列を返す // ------------------------------------------------------ { NSString *theKeySpecChars = [self keySpecCharsFromKeyEquivalent:inString modifierFrags:inModFlags]; - return [_textKeyBindingDict objectForKey:theKeySpecChars]; + return _textKeyBindingDict[theKeySpecChars]; } @@ -290,15 +289,15 @@ - (void)awakeFromNib //======================================================= // ------------------------------------------------------ -- (int)outlineView:(NSOutlineView *)inOutlineView numberOfChildrenOfItem:(id)inItem +- (NSInteger)outlineView:(NSOutlineView *)inOutlineView numberOfChildrenOfItem:(id)inItem // 子アイテムの数を返す // ------------------------------------------------------ { if (inItem == nil) { return [_outlineDataArray count]; } else { - id theItem = [inItem valueForKey:k_children]; - return (theItem != nil) ? [theItem count] : 0; + NSMutableArray *children = inItem[k_children]; + return (children != nil) ? [children count] : 0; } } @@ -311,20 +310,20 @@ - (BOOL)outlineView:(NSOutlineView *)inOutlineView isItemExpandable:(id)inItem if (inItem == nil) { return YES; } else { - return ([inItem valueForKey:k_children] != nil); + return (inItem[k_children] != nil); } } // ------------------------------------------------------ -- (id)outlineView:(NSOutlineView *)inOutlineView child:(int)inIndex ofItem:(id)inItem +- (id)outlineView:(NSOutlineView *)inOutlineView child:(NSInteger)inIndex ofItem:(id)inItem // 子アイテムオブジェクトを返す // ------------------------------------------------------ { if (inItem == nil) { - return [_outlineDataArray objectAtIndex:inIndex]; + return _outlineDataArray[inIndex]; } else { - return [[inItem valueForKey:k_children] objectAtIndex:inIndex]; + return inItem[k_children][inIndex]; } } @@ -352,7 +351,7 @@ - (BOOL)outlineView:(NSOutlineView *)inOutlineView // ------------------------------------------------------ { id theID = [inTableColumn identifier]; - if (([theID isEqualToString:k_keyBindingKey]) && ([inItem valueForKey:k_children] == nil)) { + if (([theID isEqualToString:k_keyBindingKey]) && (inItem[k_children] == nil)) { id theItem = (inItem == nil) ? _outlineDataArray : inItem; @@ -362,9 +361,7 @@ - (BOOL)outlineView:(NSOutlineView *)inOutlineView } [[NSNotificationCenter defaultCenter] postNotificationName:k_setKeyCatchModeToCatchMenuShortcut object:self - userInfo:[NSDictionary dictionaryWithObjectsAndKeys: - [NSNumber numberWithInt:k_catchMenuShortcut], k_keyCatchMode, - nil] + userInfo:@{k_keyCatchMode: @k_catchMenuShortcut} ]; if (_outlineMode == k_outlineViewModeMenu) { [_menuDeleteKeyButton setEnabled:YES]; @@ -393,24 +390,24 @@ - (void)outlineView:(NSOutlineView *)inOutlineView if (([[NSApp currentEvent] type] == NSLeftMouseDown) && (_outlineMode == k_outlineViewModeMenu) && ([[_menuDuplicateTextField stringValue] length] > 0)) { - [inItem setObject:@"" forKey:theID]; + inItem[theID] = @""; [_menuDuplicateTextField setStringValue:@""]; (void)[self showDuplicateKeySpecCharsMessageWithKeySpecChars:@"" oldChars:_currentKeySpecChars]; } else if (([[NSApp currentEvent] type] == NSLeftMouseDown) && (_outlineMode == k_outlineViewModeText) && ([[_textDuplicateTextField stringValue] length] > 0)) { - [inItem setObject:@"" forKey:theID]; + inItem[theID] = @""; [_textDuplicateTextField setStringValue:@""]; (void)[self showDuplicateKeySpecCharsMessageWithKeySpecChars:@"" oldChars:_currentKeySpecChars]; } } else { // 現在の表示値と違っていたら、セット - [inItem setObject:inObject forKey:theID]; + inItem[theID] = inObject; // 他の値とダブっていたら、再び編集状態にする if (![self showDuplicateKeySpecCharsMessageWithKeySpecChars:inObject oldChars:_currentKeySpecChars]) { [self performSelector:@selector(performEditOutlineViewSelectedKeyBindingKeyColumn) withObject:nil afterDelay:0 - inModes:[NSArray arrayWithObject:NSModalPanelRunLoopMode]]; + inModes:@[NSModalPanelRunLoopMode]]; theBoolReleaseOldChars = NO; } } @@ -451,14 +448,12 @@ - (BOOL)outlineView:(NSOutlineView *)inOutlineView shouldSelectItem:(id)inItem // キー取得を停止 [[NSNotificationCenter defaultCenter] postNotificationName:k_setKeyCatchModeToCatchMenuShortcut object:self - userInfo:[NSDictionary dictionaryWithObjectsAndKeys: - [NSNumber numberWithInt:k_keyDownNoCatch], k_keyCatchMode, - nil] + userInfo:@{k_keyCatchMode: @k_keyDownNoCatch} ]; // テキストのバインディングを編集している時は挿入文字列配列コントローラの選択オブジェクトを変更 if (_outlineMode == k_outlineViewModeText) { BOOL theBoolIsEnabled = [[inItem valueForKey:k_selectorString] hasPrefix:@"insertCustomText"]; - unsigned int theIndex = [inOutlineView rowForItem:inItem]; + NSUInteger theIndex = [inOutlineView rowForItem:inItem]; (void)[_textInsertStringArrayController setSelectionIndex:theIndex]; [_textInsertStringTextView setEditable:theBoolIsEnabled]; @@ -469,7 +464,7 @@ - (BOOL)outlineView:(NSOutlineView *)inOutlineView shouldSelectItem:(id)inItem } } // 編集ボタンを有効化/無効化 - [theEditButton setEnabled:([inItem valueForKey:k_children] == nil)]; + [theEditButton setEnabled:(inItem[k_children] == nil)]; return YES; } @@ -531,7 +526,7 @@ - (IBAction)resetOutlineDataArrayToFactoryDefaults:(id)sender _outlineDataArray = theTmpArray; [_duplicateKeyCheckArray release]; _duplicateKeyCheckArray = - [[self duplicateKeyCheckArrayWithArray:_outlineDataArray] retain]; // ===== retain + [[[self duplicateKeyCheckArrayWithArray:_outlineDataArray] mutableCopy] retain]; // ===== retain [_menuEditKeyButton setEnabled:NO]; [_menuOutlineView deselectAll:nil]; [_menuOutlineView reloadData]; @@ -542,10 +537,9 @@ - (IBAction)resetOutlineDataArrayToFactoryDefaults:(id)sender NSMutableArray *theContentArray = [NSMutableArray array]; NSArray *theInsertTextArray = [[[NSApp delegate] class] factoryDefaultOfTextInsertStringArray]; NSMutableDictionary *theDict; - int i, theMax = [theInsertTextArray count]; - for (i = 0; i < theMax; i++) { - theDict = [NSMutableDictionary dictionaryWithObject:[theInsertTextArray objectAtIndex:i] + for (id object in theInsertTextArray) { + theDict = [NSMutableDictionary dictionaryWithObject:object forKey:k_key_insertCustomText]; [theContentArray addObject:theDict]; } @@ -576,9 +570,7 @@ - (IBAction)closeKeyBindingEditSheet:(id)sender // キー入力取得を停止 [[NSNotificationCenter defaultCenter] postNotificationName:k_setKeyCatchModeToCatchMenuShortcut object:self - userInfo:[NSDictionary dictionaryWithObjectsAndKeys: - [NSNumber numberWithInt:k_keyDownNoCatch], k_keyCatchMode, - nil] + userInfo:@{k_keyCatchMode: @k_keyDownNoCatch} ]; if ([sender tag] == k_okButtonTag) { // ok のときデータを保存、反映させる @@ -614,7 +606,7 @@ - (IBAction)doubleClickedOutlineViewRow:(id)sender { if (![sender isKindOfClass:[NSOutlineView class]]) { return; } - int theSelectedRow = [(NSOutlineView *)sender selectedRow]; + NSInteger theSelectedRow = [(NSOutlineView *)sender selectedRow]; if (theSelectedRow != -1) { id theItem = [(NSOutlineView *)sender itemAtRow:theSelectedRow]; @@ -679,7 +671,10 @@ - (void)setupMenuKeyBindingDictionary BOOL theValueIsDir = NO, theValueCreated = NO; BOOL theExists = [theFileManager fileExistsAtPath:theDirPath isDirectory:&theValueIsDir]; if (!theExists) { - theValueCreated = [theFileManager createDirectoryAtPath:theDirPath attributes:nil]; + theValueCreated = [theFileManager createDirectoryAtPath:theDirPath + withIntermediateDirectories:YES + attributes:nil + error:nil]; } if ((theExists && theValueIsDir) || (theValueCreated)) { NSString *theSource = [[[NSBundle mainBundle] bundlePath] @@ -687,7 +682,7 @@ - (void)setupMenuKeyBindingDictionary if (([theFileManager fileExistsAtPath:theSource]) && (![theFileManager fileExistsAtPath:theFilePath])) { - if (![theFileManager copyPath:theSource toPath:theFilePath handler:nil]) { + if (![theFileManager copyItemAtPath:theSource toPath:theFilePath error:nil]) { NSLog(@"Error! Could not copy \"%@\" to \"%@\"...", theSource, theFilePath); return; } @@ -719,7 +714,7 @@ - (void)setupTextKeyBindingDictionary BOOL theValueIsDir = NO, theValueCreated = NO; BOOL theExists = [theFileManager fileExistsAtPath:theDirPath isDirectory:&theValueIsDir]; if (!theExists) { - theValueCreated = [theFileManager createDirectoryAtPath:theDirPath attributes:nil]; + theValueCreated = [theFileManager createDirectoryAtPath:theDirPath withIntermediateDirectories:YES attributes:nil error:nil]; } if ((theExists && theValueIsDir) || (theValueCreated)) { NSString *theSource = [[[NSBundle mainBundle] bundlePath] @@ -727,7 +722,7 @@ - (void)setupTextKeyBindingDictionary if (([theFileManager fileExistsAtPath:theSource]) && (![theFileManager fileExistsAtPath:theFilePath])) { - if (![theFileManager copyPath:theSource toPath:theFilePath handler:nil]) { + if (![theFileManager copyItemAtPath:theSource toPath:theFilePath error:nil]) { NSLog(@"Error! Could not copy \"%@\" to \"%@\"...", theSource, theFilePath); return; } @@ -848,7 +843,7 @@ - (void)resetKeyBindingWithDictionaryTo:(NSMenu *)inMenu continue; } NSString *theKeySpecChars = [self keySpecCharsInDictionaryFromSelectorString:theSelectorString]; - unsigned int theMod = 0; + NSUInteger theMod = 0; NSString *theKeyEquivalent = [[NSApp delegate] keyEquivalentAndModifierMask:&theMod fromString:theKeySpecChars includingCommandKey:YES]; @@ -881,7 +876,7 @@ - (NSMutableArray *)mainMenuArrayForOutlineData:(NSMenu *)inMenu NSMutableDictionary *theDict; NSString *theSelectorString, *theKeyEquivalent, *theKeySpecChars; id theMenuItem; - unsigned int theMod; + NSUInteger theMod; while (theMenuItem = [theMenuEnum nextObject]) { if (([theMenuItem isSeparatorItem]) || ([[theMenuItem title] length] < 1)) { @@ -915,7 +910,7 @@ - (NSMutableArray *)mainMenuArrayForOutlineData:(NSMenu *)inMenu theMod = [theMenuItem keyEquivalentModifierMask]; theKeySpecChars = [self keySpecCharsFromKeyEquivalent:theKeyEquivalent modifierFrags:theMod]; } else { - theKeySpecChars = [NSString stringWithString:@""]; + theKeySpecChars = @""; } theDict = [NSMutableDictionary dictionaryWithObjectsAndKeys: [theMenuItem title], k_title, @@ -955,7 +950,7 @@ - (NSMutableArray *)textKeySpecCharArrayForOutlineDataWithFactoryDefaults:(BOOL) theKeysArray = [_textKeyBindingDict allKeysForObject:theSelector]; } if ((theKeysArray != nil) && ([theKeysArray count] > 0)) { - theKey = [theKeysArray objectAtIndex:0]; + theKey = theKeysArray[0]; theDict = [NSMutableDictionary dictionaryWithObjectsAndKeys: theSelector, k_title, //***** theKey, k_keyBindingKey, @@ -980,13 +975,13 @@ - (NSString *)readableKeyStringsFromKeySpecChars:(NSString *)inString // キーバインディング定義文字列から表示用文字列を生成し、返す //------------------------------------------------------ { - int theLength = [inString length]; + NSInteger theLength = [inString length]; if (theLength < 2) { return @""; } NSString *theKeyEquivalent = [inString substringFromIndex:(theLength - 1)]; NSString *theKeyStr = [self readableKeyStringsFromKeyEquivalent:theKeyEquivalent]; BOOL theBoolDrawShift = (isupper([theKeyEquivalent characterAtIndex:0]) == 1); NSString *theModKeyStr = - [self readableKeyStringsFromModKeySpecChars:[inString substringToIndex:(theLength - 1)] + [self readableKeyStringsFromModKeySpecChars:[inString substringToIndex:(theLength - 1)] withShiftKey:theBoolDrawShift]; return [NSString stringWithFormat:@"%@%@", theModKeyStr, theKeyStr]; @@ -1010,7 +1005,7 @@ - (NSString *)readableKeyStringsFromKeyEquivalent:(NSString *)inString //------------------------------------------------------ -- (NSString *)keySpecCharsFromKeyEquivalent:(NSString *)inString modifierFrags:(unsigned int)inModFlags +- (NSString *)keySpecCharsFromKeyEquivalent:(NSString *)inString modifierFrags:(NSUInteger)inModFlags // メニューのキーボードショートカットからキーバインディング定義文字列を返す //------------------------------------------------------ { @@ -1019,7 +1014,7 @@ - (NSString *)keySpecCharsFromKeyEquivalent:(NSString *)inString modifierFrags:( NSMutableString *outStr = [NSMutableString string]; unichar theChar = [inString characterAtIndex:0]; BOOL theBoolShiftPress = NO; - int i, theMax = sizeof(k_modifierKeysList) / sizeof(unsigned int); + NSInteger i, theMax = sizeof(k_modifierKeysList) / sizeof(NSUInteger); if (theMax != (sizeof(k_keySpecCharList) / sizeof(unichar))) { NSLog(@"internal data error! 'k_modifierKeysList' and 'k_keySpecCharList' size is different."); @@ -1049,7 +1044,7 @@ - (NSString *)readableKeyStringsFromModKeySpecChars:(NSString *)inModString with NSCharacterSet *theModStringSet = [NSCharacterSet characterSetWithCharactersInString:inModString]; NSMutableString *outStr = [NSMutableString string]; unichar theChar; - int i, theMax = sizeof(k_keySpecCharList) / sizeof(unichar); + NSInteger i, theMax = sizeof(k_keySpecCharList) / sizeof(unichar); if (theMax != (sizeof(k_readableKeyStringsList) / sizeof(unichar))) { NSLog(@"internal data error! 'k_keySpecCharList' and 'k_readableKeyStringsList' size is different."); @@ -1071,7 +1066,7 @@ - (NSString *)visibleCharFromIgnoringModChar:(NSString *)inIgModChar // キーバインディング定義文字列またはキーボードショートカットキーからキー表示用文字列を生成し、返す //------------------------------------------------------ { - NSString *outString = [_noPrintableKeyDict objectForKey:inIgModChar]; + NSString *outString = _noPrintableKeyDict[inIgModChar]; return (outString) ? outString : inIgModChar; } @@ -1095,7 +1090,7 @@ - (void)addCatchedMenuShortcutString:(NSNotification *)inNotification if ((theSheet != nil) && (theOutlineView != nil)) { NSDictionary *theUserInfo = [inNotification userInfo]; - unsigned int theModFlags = [[theUserInfo valueForKey:k_keyBindingModFlags] unsignedIntValue]; + NSUInteger theModFlags = [[theUserInfo valueForKey:k_keyBindingModFlags] unsignedIntegerValue]; id theFieldEditor = [theSheet fieldEditor:NO forObject:theOutlineView]; NSString *theCharIgnoringMod = [theUserInfo valueForKey:k_keyBindingChar]; NSString *theFieldString = @@ -1207,7 +1202,7 @@ - (NSMutableArray *)duplicateKeyCheckArrayWithMenu:(NSMenu *)inMenu NSEnumerator *theEnumerator = [[inMenu itemArray] objectEnumerator]; NSString *theKeyEquivalent, *theKeySpecChars; id theMenuItem; - unsigned int theMod; + NSUInteger theMod; while (theMenuItem = [theEnumerator nextObject]) { if ([theMenuItem hasSubmenu]) { @@ -1241,7 +1236,7 @@ - (NSArray *)duplicateKeyCheckArrayWithArray:(NSArray *)inArray id theItem, theChildren, theKeySpecChars; while (theItem = [theEnumerator nextObject]) { - theChildren = [theItem valueForKey:k_children]; + theChildren = theItem[k_children]; if (theChildren != nil) { theChildrenArray = [self duplicateKeyCheckArrayWithArray:theChildren]; [outArray addObjectsFromArray:theChildrenArray]; @@ -1268,7 +1263,7 @@ - (NSMutableDictionary *)keyBindingDictionaryFromOutlineViewDataArray:(NSArray * id theItem, theChildren, theKeySpecChars, theSelectorStr; while (theItem = [theEnumerator nextObject]) { - theChildren = [theItem valueForKey:k_children]; + theChildren = theItem[k_children]; if (theChildren != nil) { theChildDict = [self keyBindingDictionaryFromOutlineViewDataArray:theChildren]; [outDict addEntriesFromDictionary:theChildDict]; @@ -1300,7 +1295,7 @@ - (void)saveOutlineViewData // ディレクトリの存在チェック theExists = [theFileManager fileExistsAtPath:theDirPath isDirectory:&theValueIsDir]; if (!theExists) { - theValueCreated = [theFileManager createDirectoryAtPath:theDirPath attributes:nil]; + theValueCreated = [theFileManager createDirectoryAtPath:theDirPath withIntermediateDirectories:YES attributes:nil error:nil]; } if ((theExists && theValueIsDir) || (theValueCreated)) { [_menuKeyBindingDict release]; @@ -1328,7 +1323,7 @@ - (void)saveOutlineViewData // ディレクトリの存在チェック theExists = [theFileManager fileExistsAtPath:theDirPath isDirectory:&theValueIsDir]; if (!theExists) { - theValueCreated = [theFileManager createDirectoryAtPath:theDirPath attributes:nil]; + theValueCreated = [theFileManager createDirectoryAtPath:theDirPath withIntermediateDirectories:YES attributes:nil error:nil]; } if ((theExists && theValueIsDir) || (theValueCreated)) { [_textKeyBindingDict release]; @@ -1347,12 +1342,11 @@ - (void)saveOutlineViewData NSUserDefaults *theDefaults = [NSUserDefaults standardUserDefaults]; NSMutableArray *theDefaultsArray = [NSMutableArray array]; NSString *theInsertText; - int i, theMax = [theContentArray count]; - - for (i = 0; i < theMax; i++) { - theInsertText = [[theContentArray objectAtIndex:i] objectForKey:k_key_insertCustomText]; + + for (NSDictionary *dict in theContentArray) { + theInsertText = dict[k_key_insertCustomText]; if (theInsertText == nil) { - theInsertText = [NSString stringWithString:@""]; + theInsertText = @""; } [theDefaultsArray addObject:theInsertText]; } @@ -1371,7 +1365,7 @@ - (NSString *)keySpecCharsInDictionaryFromSelectorString:(NSString *)inSelectorS NSArray *theKeyArray = [_menuKeyBindingDict allKeysForObject:inSelectorStr]; if ((theKeyArray != nil) && ([theKeyArray count] > 0)) { - return (NSString *)[theKeyArray objectAtIndex:0]; + return (NSString *)theKeyArray[0]; } return @""; } @@ -1385,7 +1379,7 @@ - (NSString *)keySpecCharsInDefaultDictionaryFromSelectorString:(NSString *)inSe NSArray *theKeyArray = [_defaultMenuKeyBindingDict allKeysForObject:inSelectorStr]; if ((theKeyArray != nil) && ([theKeyArray count] > 0)) { - return (NSString *)[theKeyArray objectAtIndex:0]; + return (NSString *)theKeyArray[0]; } return @""; } @@ -1401,7 +1395,7 @@ - (void)resetKeySpecCharsToFactoryDefaultsOfOutlineDataArray:(NSMutableArray *)i id theItem, theSelectorStr, theKeySpecChars; while (theItem = [theEnumerator nextObject]) { - theChildrenArray = [theItem valueForKey:k_children]; + theChildrenArray = theItem[k_children]; if (theChildrenArray != nil) { [self resetKeySpecCharsToFactoryDefaultsOfOutlineDataArray:theChildrenArray]; } @@ -1426,7 +1420,7 @@ - (void)performEditOutlineViewSelectedKeyBindingKeyColumn } if (theOutlineView == nil) { return; } - int theSelectedRow = [theOutlineView selectedRow]; + NSInteger theSelectedRow = [theOutlineView selectedRow]; if (theSelectedRow != -1) { @@ -1453,50 +1447,48 @@ - (NSDictionary *)noPrintableKeyDictionary { // 下記の情報を参考にさせていただきました (2005.09.05) // http://www.cocoabuilder.com/archive/message/2004/3/19/102023 - NSArray *theVisibleCharArray = [NSArray arrayWithObjects: - [NSString stringWithFormat:@"%C", 0x2191], // "↑" NSUpArrowFunctionKey, - [NSString stringWithFormat:@"%C", 0x2193], // "↓" NSDownArrowFunctionKey, - [NSString stringWithFormat:@"%C", 0x2190], // "←" NSLeftArrowFunctionKey, - [NSString stringWithFormat:@"%C", 0x2192], // "→" NSRightArrowFunctionKey, - [NSString stringWithString:@"F1"], // NSF1FunctionKey, - [NSString stringWithString:@"F2"], // NSF2FunctionKey, - [NSString stringWithString:@"F3"], // NSF3FunctionKey, - [NSString stringWithString:@"F4"], // NSF4FunctionKey, - [NSString stringWithString:@"F5"], // NSF5FunctionKey, - [NSString stringWithString:@"F6"], // NSF6FunctionKey, - [NSString stringWithString:@"F7"], // NSF7FunctionKey, - [NSString stringWithString:@"F8"], // NSF8FunctionKey, - [NSString stringWithString:@"F9"], // NSF9FunctionKey, - [NSString stringWithString:@"F10"], // NSF10FunctionKey, - [NSString stringWithString:@"F11"], // NSF11FunctionKey, - [NSString stringWithString:@"F12"], // NSF12FunctionKey, - [NSString stringWithString:@"F13"], // NSF13FunctionKey, - [NSString stringWithString:@"F14"], // NSF14FunctionKey, - [NSString stringWithString:@"F15"], // NSF15FunctionKey, - [NSString stringWithString:@"F16"], // NSF16FunctionKey, - [NSString stringWithFormat:@"%C", 0x2326], // NSDeleteCharacter = "Delete forward" - [NSString stringWithFormat:@"%C", 0x2196], // "↖" NSHomeFunctionKey, - [NSString stringWithFormat:@"%C", 0x2198], // "↘" NSEndFunctionKey, - [NSString stringWithFormat:@"%C", 0x21DE], // "⇞" NSPageUpFunctionKey, - [NSString stringWithFormat:@"%C", 0x21DF], // "⇟" NSPageDownFunctionKey, - [NSString stringWithFormat:@"%C", 0x2327], // "⌧" NSClearLineFunctionKey, - [NSString stringWithString:@"Help"], // NSHelpFunctionKey, - [NSString stringWithString:@"Space"], // "Space", - [NSString stringWithFormat:@"%C", 0x21E5], // "Tab" - [NSString stringWithFormat:@"%C", 0x21A9], // "Return" - [NSString stringWithFormat:@"%C", 0x232B], // "⌫" "Backspace" - [NSString stringWithFormat:@"%C", 0x2305], // "Enter" - [NSString stringWithFormat:@"%C", 0x21E4], // "Backtab" - [NSString stringWithFormat:@"%C", 0x238B], // "Escape" - nil]; - - int theMax = sizeof(k_noPrintableKeyList) / sizeof(unichar); + NSArray *theVisibleCharArray = @[[NSString stringWithFormat:@"%C", (unichar)0x2191], // "↑" NSUpArrowFunctionKey, + [NSString stringWithFormat:@"%C", (unichar)0x2193], // "↓" NSDownArrowFunctionKey, + [NSString stringWithFormat:@"%C", (unichar)0x2190], // "←" NSLeftArrowFunctionKey, + [NSString stringWithFormat:@"%C", (unichar)0x2192], // "→" NSRightArrowFunctionKey, + @"F1", // NSF1FunctionKey, + @"F2", // NSF2FunctionKey, + @"F3", // NSF3FunctionKey, + @"F4", // NSF4FunctionKey, + @"F5", // NSF5FunctionKey, + @"F6", // NSF6FunctionKey, + @"F7", // NSF7FunctionKey, + @"F8", // NSF8FunctionKey, + @"F9", // NSF9FunctionKey, + @"F10", // NSF10FunctionKey, + @"F11", // NSF11FunctionKey, + @"F12", // NSF12FunctionKey, + @"F13", // NSF13FunctionKey, + @"F14", // NSF14FunctionKey, + @"F15", // NSF15FunctionKey, + @"F16", // NSF16FunctionKey, + [NSString stringWithFormat:@"%C", (unichar)0x2326], // NSDeleteCharacter = "Delete forward" + [NSString stringWithFormat:@"%C", (unichar)0x2196], // "↖" NSHomeFunctionKey, + [NSString stringWithFormat:@"%C", (unichar)0x2198], // "↘" NSEndFunctionKey, + [NSString stringWithFormat:@"%C", (unichar)0x21DE], // "⇞" NSPageUpFunctionKey, + [NSString stringWithFormat:@"%C", (unichar)0x21DF], // "⇟" NSPageDownFunctionKey, + [NSString stringWithFormat:@"%C", (unichar)0x2327], // "⌧" NSClearLineFunctionKey, + @"Help", // NSHelpFunctionKey, + @"Space", // "Space", + [NSString stringWithFormat:@"%C", (unichar)0x21E5], // "Tab" + [NSString stringWithFormat:@"%C", (unichar)0x21A9], // "Return" + [NSString stringWithFormat:@"%C", (unichar)0x232B], // "⌫" "Backspace" + [NSString stringWithFormat:@"%C", (unichar)0x2305], // "Enter" + [NSString stringWithFormat:@"%C", (unichar)0x21E4], // "Backtab" + [NSString stringWithFormat:@"%C", (unichar)0x238B]]; + + NSInteger theMax = sizeof(k_noPrintableKeyList) / sizeof(unichar); if (theMax != [theVisibleCharArray count]) { NSLog(@"internal data error! 'k_noPrintableKeyList' and 'theVisibleCharArray' size is different."); - return @""; + return nil; } NSMutableArray *theKeyArray = [NSMutableArray array]; - int i; + NSInteger i; for (i = 0; i < theMax; i++) { [theKeyArray addObject:[NSString stringWithFormat:@"%C", k_noPrintableKeyList[i]]]; @@ -1511,8 +1503,7 @@ - (NSArray *)textKeyBindingSelectorStrArray // 独自定義のセレクタ名配列を返す //------------------------------------------------------ { - NSArray *outArray = [NSArray arrayWithObjects: - @"insertCustomText_00:", + NSArray *outArray = @[@"insertCustomText_00:", @"insertCustomText_01:", @"insertCustomText_02:", @"insertCustomText_03:", @@ -1542,8 +1533,7 @@ - (NSArray *)textKeyBindingSelectorStrArray @"insertCustomText_27:", @"insertCustomText_28:", @"insertCustomText_29:", - @"insertCustomText_30:", - nil]; + @"insertCustomText_30:"]; return outArray; } diff --git a/CELayoutManager.h b/CELayoutManager.h index fc5769d282..800e176ce3 100644 --- a/CELayoutManager.h +++ b/CELayoutManager.h @@ -3,8 +3,9 @@ CELayoutManager (for CotEditor) -Copyright (C) 2004-2007 nakamuxu. -http://www.aynimac.com/ + Copyright (C) 2004-2007 nakamuxu. + Copyright (C) 2014 CotEditor Project + http://coteditor.github.io ================================================= encoding="UTF-8" @@ -15,6 +16,7 @@ This class is based on Smultron - SMLLayoutManager (written by Peter Borg – ht Smultron Copyright (c) 2004 Peter Borg, All rights reserved. Smultron is released under GNU General Public License, http://www.gnu.org/copyleft/gpl.html arranged by nakamuxu, Jan 2005. +arranged by 1024jp, Mar 2014. ------------------------------------------------- This program is free software; you can redistribute it and/or @@ -36,61 +38,28 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #import -#import "CEATSTypesetter.h" -#import "CEPrivateMutableArray.h" -#import "constants.h" @interface CELayoutManager : NSLayoutManager -{ - NSDictionary *_attributes; - NSString *_spaceCharacter; - NSString *_tabCharacter; - NSString *_newLineCharacter; - NSString *_fullwidthSpaceCharacter; - NSFont *_textFont; - id _appController; - - BOOL _showInvisibles; - BOOL _showSpace; - BOOL _showTab; - BOOL _showNewLine; - BOOL _showFullwidthSpace; - BOOL _showOtherInvisibles; - - BOOL _fixLineHeight; - BOOL _useAntialias; - BOOL _isPrinting; - - float _defaultLineHeightForTextFont; - float _textFontPointSize; - float _textFontGlyphY; -} - -// Public method -- (BOOL)showInvisibles; -- (void)setShowInvisibles:(BOOL)inValue; -- (BOOL)showSpace; -- (void)setShowSpace:(BOOL)inValue; -- (BOOL)showTab; -- (void)setShowTab:(BOOL)inValue; -- (BOOL)showNewLine; -- (void)setShowNewLine:(BOOL)inValue; -- (BOOL)showFullwidthSpace; -- (void)setShowFullwidthSpace:(BOOL)inValue; -- (BOOL)showOtherInvisibles; -- (void)setShowOtherInvisibles:(BOOL)inValue; -- (BOOL)fixLineHeight; -- (void)setFixLineHeight:(BOOL)inValue; -- (BOOL)useAntialias; -- (void)setUseAntialias:(BOOL)inValue; -- (BOOL)isPrinting; -- (void)setIsPrinting:(BOOL)inValue; -- (NSFont *)textFont; -- (void)setTextFont:(NSFont *)inFont; -- (void)setValuesForTextFont:(NSFont *)inFont; -- (float)defaultLineHeightForTextFont; -- (float)textFontPointSize; -- (float)textFontGlyphY; -- (float)lineHeight; + +@property (nonatomic) BOOL showInvisibles; +@property (nonatomic) BOOL showSpace; +@property (nonatomic) BOOL showTab; +@property (nonatomic) BOOL showNewLine; +@property (nonatomic) BOOL showFullwidthSpace; +@property (nonatomic) BOOL showOtherInvisibles; + +@property (nonatomic) BOOL fixLineHeight; // 行高を固定するか +@property (nonatomic) BOOL useAntialias; // アンチエイリアスを適用するかどうか +@property (nonatomic) BOOL isPrinting; // プリンタ中かどうかを([NSGraphicsContext currentContextDrawingToScreen] は真を返す時があるため、専用フラグを使う) +@property (nonatomic, retain) NSFont *textFont; + +@property (nonatomic, readonly) CGFloat textFontPointSize; +@property (nonatomic, readonly) CGFloat defaultLineHeightForTextFont; // 表示フォントでの行高 +@property (nonatomic, readonly) CGFloat textFontGlyphY; // 表示フォントグリフのY位置を返す + + +- (void)setValuesForTextFont:(NSFont *)font; +- (CGFloat)lineHeight; + @end diff --git a/CELayoutManager.m b/CELayoutManager.m index cfdc5c40d6..2d048919c4 100644 --- a/CELayoutManager.m +++ b/CELayoutManager.m @@ -3,8 +3,9 @@ CELayoutManager (for CotEditor) -Copyright (C) 2004-2007 nakamuxu. -http://www.aynimac.com/ + Copyright (C) 2004-2007 nakamuxu. + Copyright (C) 2014 CotEditor Project + http://coteditor.github.io ================================================= encoding="UTF-8" @@ -15,6 +16,7 @@ Smultron Copyright (c) 2004 Peter Borg, All rights reserved. Smultron is released under GNU General Public License, http://www.gnu.org/copyleft/gpl.html arranged by nakamuxu, Jan 2005. +arranged by 1024jp, Mar 2014. ------------------------------------------------- This program is free software; you can redistribute it and/or @@ -37,25 +39,35 @@ Smultron Copyright (c) 2004 Peter Borg, All rights reserved. #import "CELayoutManager.h" #import "CEAppController.h" +#import "CEATSTypesetter.h" +#import "constants.h" -//======================================================= -// Private method -// -//======================================================= -@interface CELayoutManager (Private) -- (NSPoint)pointToDrawGlyphAtIndex:(unsigned int)inGlyphIndex adjust:(NSSize)inSize; +@interface CELayoutManager () + +@property (nonatomic, retain) NSString *spaceCharacter; +@property (nonatomic, retain) NSString *tabCharacter; +@property (nonatomic, retain, getter=theNewLineCharacter) NSString *newLineCharacter; // newから始まるproperty名が使えないためgetterにtheを付けている +@property (nonatomic, retain) NSString *fullwidthSpaceCharacter; +@property (nonatomic, retain) CEAppController *appController; +@property (nonatomic, assign) NSDictionary *attributes; // not retained + +// readonly properties +@property (nonatomic, readwrite) CGFloat textFontPointSize; +@property (nonatomic, readwrite) CGFloat defaultLineHeightForTextFont; +@property (nonatomic, readwrite) CGFloat textFontGlyphY; + @end //------------------------------------------------------------------------------------------ - +#pragma mark - @implementation CELayoutManager -#pragma mark ===== Public method ===== +#pragma mark Public Methods //======================================================= // Public method @@ -63,48 +75,46 @@ @implementation CELayoutManager //======================================================= // ------------------------------------------------------ -- (id)init +- (instancetype)init // 初期化 // ------------------------------------------------------ { if (self = [super init]) { - id theValues = [[NSUserDefaultsController sharedUserDefaultsController] values]; + id values = [[NSUserDefaultsController sharedUserDefaultsController] values]; /* // 削除しないこと! ************* (1/12) - NSString *theName = [theValues valueForKey:k_key_fontName]; - float theSize = [[theValues valueForKey:k_key_fontSize] floatValue]; - NSFont *theFont = [NSFont fontWithName:theName size:theSize]; - NSColor *theColor = - [NSUnarchiver unarchiveObjectWithData:[theValues valueForKey:k_key_invisibleCharactersColor]]; - _attributes = [[NSDictionary alloc] initWithObjectsAndKeys: - theFont, NSFontAttributeName, - theColor, NSForegroundColorAttributeName, nil]; // ===== alloc + NSString *fontName = [values valueForKey:k_key_fontName]; + CGFloat fontSize = (CGFloat)[[values valueForKey:k_key_fontSize] doubleValue]; + NSFont *font = [NSFont fontWithName:fontName size:fontSize]; + NSColor *color = [NSUnarchiver unarchiveObjectWithData:[theValues valueForKey:k_key_invisibleCharactersColor]]; + [self setAttributes:@{NSFontAttributeName:font, + NSForegroundColorAttributeName:color}]; // ===== alloc */ -// _defaultLineHeightForTextFont = 0.0; -// _textFontPointSize = 0.0; +// [self setDefaultLineHeightForTextFont:0.0]; +// [self setTextFontPointSize:0.0]; [self setTextFont:nil]; - _appController = (CEAppController *)[[NSApp delegate] retain]; // ===== retain + [self setAppController:(CEAppController *)[NSApp delegate]]; // ===== retain - _spaceCharacter = [[_appController invisibleSpaceCharacter: - [[theValues valueForKey:k_key_invisibleSpace] unsignedIntValue]] retain]; // ===== retain - _tabCharacter = [[_appController invisibleTabCharacter: - [[theValues valueForKey:k_key_invisibleTab] unsignedIntValue]] retain]; // ===== retain - _newLineCharacter = [[_appController invisibleNewLineCharacter: - [[theValues valueForKey:k_key_invisibleNewLine] unsignedIntValue]] retain]; // ===== retain - _fullwidthSpaceCharacter = [[_appController invisibleFullwidthSpaceCharacter: - [[theValues valueForKey:k_key_invisibleFullwidthSpace] unsignedIntValue]] retain]; // ===== retain + [self setSpaceCharacter:[[self appController] invisibleSpaceCharacter: + [[values valueForKey:k_key_invisibleSpace] unsignedIntegerValue]]]; // ===== retain + [self setTabCharacter:[[self appController] invisibleTabCharacter: + [[values valueForKey:k_key_invisibleTab] unsignedIntegerValue]]]; // ===== retain + [self setNewLineCharacter:[[self appController] invisibleNewLineCharacter: + [[values valueForKey:k_key_invisibleNewLine] unsignedIntegerValue]]]; // ===== retain + [self setFullwidthSpaceCharacter:[[self appController] invisibleFullwidthSpaceCharacter: + [[values valueForKey:k_key_invisibleFullwidthSpace] unsignedIntegerValue]]]; // ===== retain // (setShowInvisibles: は CEEditorView から実行される。プリント時は CEDocument から実行される) [self setFixLineHeight:NO]; [self setIsPrinting:NO]; - [self setShowSpace:[[theValues valueForKey:k_key_showInvisibleSpace] boolValue]]; - [self setShowTab:[[theValues valueForKey:k_key_showInvisibleTab] boolValue]]; - [self setShowNewLine:[[theValues valueForKey:k_key_showInvisibleNewLine] boolValue]]; - [self setShowFullwidthSpace:[[theValues valueForKey:k_key_showInvisibleFullwidthSpace] boolValue]]; - [self setShowOtherInvisibles:[[theValues valueForKey:k_key_showOtherInvisibleChars] boolValue]]; + [self setShowSpace:[[values valueForKey:k_key_showInvisibleSpace] boolValue]]; + [self setShowTab:[[values valueForKey:k_key_showInvisibleTab] boolValue]]; + [self setShowNewLine:[[values valueForKey:k_key_showInvisibleNewLine] boolValue]]; + [self setShowFullwidthSpace:[[values valueForKey:k_key_showInvisibleFullwidthSpace] boolValue]]; + [self setShowOtherInvisibles:[[values valueForKey:k_key_showOtherInvisibleChars] boolValue]]; [self setTypesetter:[CEATSTypesetter sharedSystemTypesetter]]; } return self; @@ -116,360 +126,188 @@ - (void)dealloc // 後片付け // ------------------------------------------------------ { - // _attributes was not retained. - [_spaceCharacter release]; - [_tabCharacter release]; - [_newLineCharacter release]; - [_fullwidthSpaceCharacter release]; - [_textFont release]; - [_appController release]; + // attributes was not retained. + [[self spaceCharacter] release]; + [[self tabCharacter] release]; + [[self theNewLineCharacter] release]; + [[self fullwidthSpaceCharacter] release]; + [[self textFont] release]; + [[self appController] release]; [super dealloc]; } // ------------------------------------------------------ -- (void)setLineFragmentRect:(NSRect)inFragmentRect - forGlyphRange:(NSRange)inGlyphRange usedRect:(NSRect)inUsedRect +- (void)setLineFragmentRect:(NSRect)fragmentRect + forGlyphRange:(NSRange)glyphRange usedRect:(NSRect)usedRect // 行描画矩形をセット // ------------------------------------------------------ { - if ((![self isPrinting]) && ([self fixLineHeight])) { + if (![self isPrinting] && [self fixLineHeight]) { // 複合フォントで行の高さがばらつくのを防止する // (CETextViewCore で、NSParagraphStyle の lineSpacing を設定しても行間は制御できるが、 // 「文書の1文字目に1バイト文字(または2バイト文字)を入力してある状態で先頭に2バイト文字(または1バイト文字)を // 挿入すると行間がズレる」問題が生じる) // ([NSGraphicsContext currentContextDrawingToScreen] は真を返す時があるため、専用フラグで印刷中を確認) - inFragmentRect.size.height = [self lineHeight]; - inUsedRect.size.height = [self lineHeight]; + fragmentRect.size.height = [self lineHeight]; + usedRect.size.height = [self lineHeight]; } - (void)[super setLineFragmentRect:(NSRect)inFragmentRect - forGlyphRange:(NSRange)inGlyphRange usedRect:(NSRect)inUsedRect]; + (void)[super setLineFragmentRect:fragmentRect forGlyphRange:glyphRange usedRect:usedRect]; } // ------------------------------------------------------ -- (void)setExtraLineFragmentRect:(NSRect)inFragmentRect - usedRect:(NSRect)inUsedRect textContainer:(NSTextContainer *)inTextContainer +- (void)setExtraLineFragmentRect:(NSRect)aRect + usedRect:(NSRect)usedRect textContainer:(NSTextContainer *)aTextContainer // 最終行描画矩形をセット // ------------------------------------------------------ { // 複合フォントで行の高さがばらつくのを防止するために一般の行の高さを変更しているので、それにあわせる - inFragmentRect.size.height = [self lineHeight]; + aRect.size.height = [self lineHeight]; - [super setExtraLineFragmentRect:inFragmentRect usedRect:inUsedRect textContainer:inTextContainer]; + [super setExtraLineFragmentRect:aRect usedRect:usedRect textContainer:aTextContainer]; } // ------------------------------------------------------ -- (NSPoint)locationForGlyphAtIndex:(unsigned)inGlyphIndex +- (NSPoint)locationForGlyphAtIndex:(NSUInteger)glyphIndex // グリフ位置を返す // ------------------------------------------------------ { - if ((![self isPrinting]) && ([self fixLineHeight])) { + if (![self isPrinting] && [self fixLineHeight]) { // 複合フォントで描画位置Y座標が変わるのを防止する // ([NSGraphicsContext currentContextDrawingToScreen] は真を返す時があるため、専用フラグで印刷中を確認) // フォントサイズは随時変更されるため、表示時に取得する - NSPoint outPoint = [super locationForGlyphAtIndex:inGlyphIndex]; + NSPoint outPoint = [super locationForGlyphAtIndex:glyphIndex]; outPoint.y = [self textFontGlyphY]; return outPoint; } - return [super locationForGlyphAtIndex:inGlyphIndex]; + return [super locationForGlyphAtIndex:glyphIndex]; } // ------------------------------------------------------ -- (void)drawGlyphsForGlyphRange:(NSRange)inGlyphRange atPoint:(NSPoint)inContainerOrigin +- (void)drawGlyphsForGlyphRange:(NSRange)glyphsToShow atPoint:(NSPoint)origin // 不可視文字の表示 // ------------------------------------------------------ { // (印刷中の判定は、このメソッド内では [NSGraphicsContext currentContextDrawingToScreen] が使えるが、 // 他のメソッドでは真を返す時があるため、他にそろえて専用フラグで印刷中を確認するようにしている) - id theValues = [[NSUserDefaultsController sharedUserDefaultsController] values]; - NSString *theCompleteStr = [[self textStorage] string]; - unsigned int theLengthToRedraw = NSMaxRange(inGlyphRange); - unsigned int theGlyphIndex, theCharIndex = 0; - int theInvisibleCharPrintMenuIndex; + id values = [[NSUserDefaultsController sharedUserDefaultsController] values]; + NSString *completeStr = [[self textStorage] string]; + NSUInteger rengthToRedraw = NSMaxRange(glyphsToShow); + NSUInteger glyphIndex, charIndex = 0; + NSInteger invisibleCharPrintMenuIndex; - id theView = [self firstTextView]; - if (([self isPrinting]) && ([theView respondsToSelector:@selector(printValues)])) { - theInvisibleCharPrintMenuIndex = - [[[theView printValues] valueForKey:k_printInvisibleCharIndex] intValue]; + id view = [self firstTextView]; + if ([self isPrinting] && [view respondsToSelector:@selector(printValues)]) { + invisibleCharPrintMenuIndex = [[[view printValues] valueForKey:k_printInvisibleCharIndex] integerValue]; } else { - theInvisibleCharPrintMenuIndex = [[theValues valueForKey:k_printInvisibleCharIndex] intValue]; + invisibleCharPrintMenuIndex = [[values valueForKey:k_printInvisibleCharIndex] integerValue]; } // フォントサイズは随時変更されるため、表示時に取得する - NSFont *theFont = ([self isPrinting]) ? [[self textStorage] font] : [self textFont]; - NSColor *theColor = - [NSUnarchiver unarchiveObjectWithData:[theValues valueForKey:k_key_invisibleCharactersColor]]; - _attributes = [NSDictionary dictionaryWithObjectsAndKeys: - theFont, NSFontAttributeName, - theColor, NSForegroundColorAttributeName, nil]; + NSFont *font = [self isPrinting] ? [[self textStorage] font] : [self textFont]; + NSColor *color = [NSUnarchiver unarchiveObjectWithData:[values valueForKey:k_key_invisibleCharactersColor]]; + [self setAttributes:@{NSFontAttributeName: font, + NSForegroundColorAttributeName: color}]; - unichar theCharacter; - NSPoint thePointToDraw; + unichar character; + NSPoint pointToDraw; // スクリーン描画の時、アンチエイリアス制御 if (![self isPrinting]) { [[NSGraphicsContext currentContext] setShouldAntialias:[self useAntialias]]; } - if ((((![self isPrinting]) || (theInvisibleCharPrintMenuIndex == 1)) && - ([self showInvisibles])) || - (([self isPrinting]) && (theInvisibleCharPrintMenuIndex == 2))) { + if (((![self isPrinting] || (invisibleCharPrintMenuIndex == 1)) && [self showInvisibles]) || + ([self isPrinting] && (invisibleCharPrintMenuIndex == 2))) { - float theInsetWidth = [[theValues valueForKey:k_key_textContainerInsetWidth] floatValue]; - float theInsetHeight = [[theValues valueForKey:k_key_textContainerInsetHeightTop] floatValue]; + CGFloat insetWidth = (CGFloat)[[values valueForKey:k_key_textContainerInsetWidth] doubleValue]; + CGFloat insetHeight = (CGFloat)[[values valueForKey:k_key_textContainerInsetHeightTop] doubleValue]; if ([self isPrinting]) { NSPoint thePoint = [[self firstTextView] textContainerOrigin]; - theInsetWidth = thePoint.x; - theInsetHeight = thePoint.y; + insetWidth = thePoint.x; + insetHeight = thePoint.y; } - NSSize theSize = NSMakeSize(theInsetWidth, theInsetHeight); - NSFont *theReplaceFont = [NSFont fontWithName:@"Lucida Grande" size:[[self textFont] pointSize]]; - NSGlyph theGlyph = [theReplaceFont glyphWithName:@"replacement"]; - - for (theGlyphIndex = inGlyphRange.location; theGlyphIndex < theLengthToRedraw; theGlyphIndex++) { - theCharIndex = [self characterIndexForGlyphAtIndex:theGlyphIndex]; - theCharacter = [theCompleteStr characterAtIndex:theCharIndex]; - - if (([self showSpace]) && ((theCharacter == ' ') || (theCharacter == 0x00A0))) { - thePointToDraw = [self pointToDrawGlyphAtIndex:theGlyphIndex adjust:theSize]; - [_spaceCharacter drawAtPoint:thePointToDraw withAttributes:_attributes]; - - } else if (([self showTab]) && (theCharacter == '\t')) { - thePointToDraw = [self pointToDrawGlyphAtIndex:theGlyphIndex adjust:theSize]; - [_tabCharacter drawAtPoint:thePointToDraw withAttributes:_attributes]; - - } else if (([self showNewLine]) && (theCharacter == '\n' )) { - thePointToDraw = [self pointToDrawGlyphAtIndex:theGlyphIndex adjust:theSize]; - [_newLineCharacter drawAtPoint:thePointToDraw withAttributes:_attributes]; - - } else if (([self showFullwidthSpace]) && (theCharacter == 0x3000)) { // Fullwidth-space (JP) - thePointToDraw = [self pointToDrawGlyphAtIndex:theGlyphIndex adjust:theSize]; - [_fullwidthSpaceCharacter drawAtPoint:thePointToDraw withAttributes:_attributes]; - - } else if (([self showOtherInvisibles]) && ([self glyphAtIndex:theGlyphIndex] == NSControlGlyph)) { - NSRange theCharRange = NSMakeRange(theCharIndex, 1); - NSString *theBaseStr = [theCompleteStr substringWithRange:theCharRange]; - NSGlyphInfo *theGlyphInfo = [NSGlyphInfo glyphInfoWithGlyph:theGlyph - forFont:theReplaceFont baseString:theBaseStr]; - if (theGlyphInfo != nil) { - NSDictionary *theReplaceAttrs = [NSDictionary dictionaryWithObjectsAndKeys: - theGlyphInfo, NSGlyphInfoAttributeName, - theReplaceFont , NSFontAttributeName, - theColor, NSForegroundColorAttributeName, nil]; - NSDictionary *theAttrs = - [[self textStorage] attributesAtIndex:theCharIndex effectiveRange:NULL]; - if ([theAttrs objectForKey:NSGlyphInfoAttributeName] == nil) { - [[self textStorage] addAttributes:theReplaceAttrs range:theCharRange]; + NSSize size = NSMakeSize(insetWidth, insetHeight); + NSFont *replaceFont = [NSFont fontWithName:@"Lucida Grande" size:[[self textFont] pointSize]]; + NSGlyph glyph = [replaceFont glyphWithName:@"replacement"]; + + for (glyphIndex = glyphsToShow.location; glyphIndex < rengthToRedraw; glyphIndex++) { + charIndex = [self characterIndexForGlyphAtIndex:glyphIndex]; + character = [completeStr characterAtIndex:charIndex]; + + if ([self showSpace] && ((character == ' ') || (character == 0x00A0))) { + pointToDraw = [self pointToDrawGlyphAtIndex:glyphIndex adjust:size]; + [[self spaceCharacter] drawAtPoint:pointToDraw withAttributes:[self attributes]]; + + } else if ([self showTab] && (character == '\t')) { + pointToDraw = [self pointToDrawGlyphAtIndex:glyphIndex adjust:size]; + [[self tabCharacter] drawAtPoint:pointToDraw withAttributes:[self attributes]]; + + } else if ([self showNewLine] && (character == '\n')) { + pointToDraw = [self pointToDrawGlyphAtIndex:glyphIndex adjust:size]; + [[self theNewLineCharacter] drawAtPoint:pointToDraw withAttributes:[self attributes]]; + + } else if ([self showFullwidthSpace] && (character == 0x3000)) { // Fullwidth-space (JP) + pointToDraw = [self pointToDrawGlyphAtIndex:glyphIndex adjust:size]; + [[self fullwidthSpaceCharacter] drawAtPoint:pointToDraw withAttributes:[self attributes]]; + + } else if ([self showOtherInvisibles] && ([self glyphAtIndex:glyphIndex] == NSControlGlyph)) { + NSRange charRange = NSMakeRange(charIndex, 1); + NSString *baseStr = [completeStr substringWithRange:charRange]; + NSGlyphInfo *glyphInfo = [NSGlyphInfo glyphInfoWithGlyph:glyph forFont:replaceFont baseString:baseStr]; + if (glyphInfo != nil) { + NSDictionary *replaceAttrs = @{NSGlyphInfoAttributeName: glyphInfo, + NSFontAttributeName: replaceFont, + NSForegroundColorAttributeName: color}; + NSDictionary *attrs = [[self textStorage] attributesAtIndex:charIndex effectiveRange:NULL]; + if (attrs[NSGlyphInfoAttributeName] == nil) { + [[self textStorage] addAttributes:replaceAttrs range:charRange]; } } } } } - [super drawGlyphsForGlyphRange:inGlyphRange atPoint:inContainerOrigin]; + [super drawGlyphsForGlyphRange:glyphsToShow atPoint:origin]; } // ------------------------------------------------------ -- (BOOL)showInvisibles -// 不可視文字を表示するかどうかを返す -// ------------------------------------------------------ -{ - return _showInvisibles; -} - - -// ------------------------------------------------------ -- (void)setShowInvisibles:(BOOL)inValue +- (void)setShowInvisibles:(BOOL)showInvisibles // 不可視文字を表示するかどうかを設定する // ------------------------------------------------------ { - if (!inValue) { - NSRange theRange = NSMakeRange(0, [[[self textStorage] string] length]); - [[self textStorage] removeAttribute:NSGlyphInfoAttributeName range:theRange]; + if (!showInvisibles) { + NSRange range = NSMakeRange(0, [[[self textStorage] string] length]); + [[self textStorage] removeAttribute:NSGlyphInfoAttributeName range:range]; } - if (([self showOtherInvisibles]) && - (floor(NSAppKitVersionNumber) > NSAppKitVersionNumber10_3)) { // = 10.4+ - [self setShowsControlCharacters:inValue]; + if ([self showOtherInvisibles]) { + [self setShowsControlCharacters:showInvisibles]; } - _showInvisibles = inValue; -} - - -// ------------------------------------------------------ -- (BOOL)showSpace -// 半角スペースを表示するかどうかを返す -// ------------------------------------------------------ -{ - return _showSpace; -} - - -// ------------------------------------------------------ -- (void)setShowSpace:(BOOL)inValue -// 半角スペースを表示するかどうかを設定する -// ------------------------------------------------------ -{ - _showSpace = inValue; + _showInvisibles = showInvisibles; } // ------------------------------------------------------ -- (BOOL)showTab -// タブを表示するかどうかを返す -// ------------------------------------------------------ -{ - return _showTab; -} - - -// ------------------------------------------------------ -- (void)setShowTab:(BOOL)inValue -// タブを表示するかどうかを設定する -// ------------------------------------------------------ -{ - _showTab = inValue; -} - - -// ------------------------------------------------------ -- (BOOL)showNewLine -// 改行を表示するかどうかを返す -// ------------------------------------------------------ -{ - return _showNewLine; -} - - -// ------------------------------------------------------ -- (void)setShowNewLine:(BOOL)inValue -// 改行を表示するかどうかを設定する -// ------------------------------------------------------ -{ - _showNewLine = inValue; -} - - -// ------------------------------------------------------ -- (BOOL)showFullwidthSpace -// 全角スペースを表示するかどうかを返す -// ------------------------------------------------------ -{ - return _showFullwidthSpace; -} - - -// ------------------------------------------------------ -- (void)setShowFullwidthSpace:(BOOL)inValue -// 全角スペースを表示するかどうかを設定する -// ------------------------------------------------------ -{ - _showFullwidthSpace = inValue; -} - - -// ------------------------------------------------------ -- (BOOL)showOtherInvisibles -// その他の不可視文字を表示するかどうかを返す -// ------------------------------------------------------ -{ - return _showOtherInvisibles; -} - - -// ------------------------------------------------------ -- (void)setShowOtherInvisibles:(BOOL)inValue +- (void)setShowOtherInvisibles:(BOOL)showOtherInvisibles // その他の不可視文字を表示するかどうかを設定する // ------------------------------------------------------ { - if (floor(NSAppKitVersionNumber) > NSAppKitVersionNumber10_3) { // = 10.4+ - [self setShowsControlCharacters:inValue]; - } else { - [self setShowsControlCharacters:NO]; - } - _showOtherInvisibles = inValue; -} - - -// ------------------------------------------------------ -- (BOOL)fixLineHeight -// 行高を固定するかを返す -// ------------------------------------------------------ -{ - return _fixLineHeight; -} - - -// ------------------------------------------------------ -- (void)setFixLineHeight:(BOOL)inValue -// 行高を固定するかをセット -// ------------------------------------------------------ -{ - _fixLineHeight = inValue; -} - - -// ------------------------------------------------------ -- (BOOL)useAntialias -// アンチエイリアスを適用するかどうかを返す -// ------------------------------------------------------ -{ - return _useAntialias; -} - - -// ------------------------------------------------------ -- (void)setUseAntialias:(BOOL)inValue -// アンチエイリアスを適用するかどうかをセット -// ------------------------------------------------------ -{ - _useAntialias = inValue; -} - - -// ------------------------------------------------------ -- (BOOL)isPrinting -// プリンタ中かどうかを返す -// ------------------------------------------------------ -{ - // ([NSGraphicsContext currentContextDrawingToScreen] は真を返す時があるため、専用フラグを使う) - return _isPrinting; -} - - -// ------------------------------------------------------ -- (void)setIsPrinting:(BOOL)inValue -// プリンタ中かどうかを設定 -// ------------------------------------------------------ -{ - // ([NSGraphicsContext currentContextDrawingToScreen] は真を返す時があるため、専用フラグを使う) - _isPrinting = inValue; + [self setShowsControlCharacters:showOtherInvisibles]; + _showOtherInvisibles = showOtherInvisibles; } // ------------------------------------------------------ -- (NSFont *)textFont -// 表示フォントを返す -// ------------------------------------------------------ -{ -// 複合フォントで行間が等間隔でなくなる問題を回避するため、自前でフォントを持っておく。 -// ([[self firstTextView] font] を使うと、「1バイトフォントを指定して日本語が入力されている」場合に -// 日本語フォント名を返してくることがあるため、使わない) - - return _textFont; -} - - -// ------------------------------------------------------ -- (void)setTextFont:(NSFont *)inFont +- (void)setTextFont:(NSFont *)textFont // 表示フォントをセット // ------------------------------------------------------ { @@ -477,77 +315,51 @@ - (void)setTextFont:(NSFont *)inFont // ([[self firstTextView] font] を使うと、「1バイトフォントを指定して日本語が入力されている」場合に // 日本語フォント名を返してくることがあるため、使わない) - [inFont retain]; + [textFont retain]; [_textFont release]; - _textFont = inFont; - [self setValuesForTextFont:inFont]; + _textFont = textFont; + [self setValuesForTextFont:textFont]; } // ------------------------------------------------------ -- (void)setValuesForTextFont:(NSFont *)inFont +- (void)setValuesForTextFont:(NSFont *)textFont // 表示フォントの各種値をキャッシュする // ------------------------------------------------------ { - if (inFont != nil) { - _defaultLineHeightForTextFont = [self defaultLineHeightForFont:inFont] * k_defaultLineHeightMultiple; - _textFontPointSize = [inFont pointSize]; - _textFontGlyphY = [inFont pointSize]; - // (_textFontGlyphYは「複合フォントでも描画位置Y座標を固定」する時のみlocationForGlyphAtIndex:内で使われる。 + if (textFont) { + [self setDefaultLineHeightForTextFont:[self defaultLineHeightForFont:textFont] * k_defaultLineHeightMultiple]; + [self setTextFontPointSize:[textFont pointSize]]; + [self setTextFontGlyphY:[textFont pointSize]]; + // (textFontGlyphYは「複合フォントでも描画位置Y座標を固定」する時のみlocationForGlyphAtIndex:内で使われる。 // 本来の値は[inFont ascender]か? 2009.03.28) - // [inFont pointSize]は通常、([inFont ascender] - [inFont descender])と一致する。例えばCourier 48ptだと、 + // [textFont pointSize]は通常、([textFont ascender] - [textFont descender])と一致する。例えばCourier 48ptだと、 // ascender = 36.187500, descender = -11.812500 となっている。 2009.03.28 } else { - _defaultLineHeightForTextFont = 0.0; - _textFontPointSize = 0.0; - _textFontGlyphY = 0.0; + [self setDefaultLineHeightForTextFont:0.0]; + [self setTextFontPointSize:0.0]; + [self setTextFontGlyphY:0.0]; } } // ------------------------------------------------------ -- (float)defaultLineHeightForTextFont -// 表示フォントでの行高を返す -// ------------------------------------------------------ -{ - return _defaultLineHeightForTextFont; -} - - -// ------------------------------------------------------ -- (float)textFontPointSize -// 表示フォントサイズを返す -// ------------------------------------------------------ -{ - return _textFontPointSize; -} - - -// ------------------------------------------------------ -- (float)textFontGlyphY -// 表示フォントグリフのY位置を返す -// ------------------------------------------------------ -{ - return _textFontGlyphY; -} - - -// ------------------------------------------------------ -- (float)lineHeight +- (CGFloat)lineHeight // 複合フォントで行の高さがばらつくのを防止するため、規定した行の高さを返す // ------------------------------------------------------ { - float theLineSpacing = [(CETextViewCore *)[self firstTextView] lineSpacing]; + CGFloat lineSpacing = [(CETextViewCore *)[self firstTextView] lineSpacing]; // 小数点以下を返すと選択範囲が分離することがあるため、丸める - return floor(_defaultLineHeightForTextFont + theLineSpacing * [self textFontPointSize] + 0.5); + return floor([self defaultLineHeightForTextFont] + lineSpacing * [self textFontPointSize] + 0.5); } +/* // ------------------------------------------------------ -- (void)_clearTemporaryAttributesForCharacterRange:(struct _NSRange)fp8 changeInLength:(int)fp16 +- (void)_clearTemporaryAttributesForCharacterRange:(struct _NSRange)fp8 changeInLength:(NSInteger)fp16 // 隠しメソッドをオーバーライド。 // ------------------------------------------------------ { @@ -555,16 +367,14 @@ - (void)_clearTemporaryAttributesForCharacterRange:(struct _NSRange)fp8 changeIn // 10.5未満で実行されているときまたは小規模の変更のみ、スーパークラスで実行 // (小規模の変更を通さないと、IMで入力中の変換前文字が直前までその場所にセットされていたattrにカラーリングされてしまう) if ((abs(fp16) < 65000) || (floor(NSAppKitVersionNumber) < 949)) { // 949 = LeopardのNSAppKitVersionNumber - [super _clearTemporaryAttributesForCharacterRange:(struct _NSRange)fp8 changeInLength:(int)fp16]; + [super _clearTemporaryAttributesForCharacterRange:(struct _NSRange)fp8 changeInLength:(NSInteger)fp16]; } } - - -@end +*/ -@implementation CELayoutManager (Private) +#pragma mark - Private Methods //======================================================= // Private method @@ -572,19 +382,17 @@ @implementation CELayoutManager (Private) //======================================================= //------------------------------------------------------ -- (NSPoint)pointToDrawGlyphAtIndex:(unsigned int)inGlyphIndex adjust:(NSSize)inSize +- (NSPoint)pointToDrawGlyphAtIndex:(NSUInteger)glyphIndex adjust:(NSSize)size // グリフを描画する位置を返す //------------------------------------------------------ { - NSPoint outPoint = [self locationForGlyphAtIndex:inGlyphIndex]; - NSRect theGlyphRect = [self lineFragmentRectForGlyphAtIndex:inGlyphIndex effectiveRange:NULL]; + NSPoint drawPoint = [self locationForGlyphAtIndex:glyphIndex]; + NSRect theGlyphRect = [self lineFragmentRectForGlyphAtIndex:glyphIndex effectiveRange:NULL]; - outPoint.x += inSize.width; - outPoint.y = theGlyphRect.origin.y + inSize.height; + drawPoint.x += size.width; + drawPoint.y = theGlyphRect.origin.y + size.height; - return outPoint; + return drawPoint; } - - @end diff --git a/CELineNumView.h b/CELineNumView.h index 42d290bf0c..235e193b40 100644 --- a/CELineNumView.h +++ b/CELineNumView.h @@ -3,8 +3,9 @@ CELineNumView (for CotEditor) -Copyright (C) 2004-2007 nakamuxu. -http://www.aynimac.com/ + Copyright (C) 2004-2007 nakamuxu. + Copyright (C) 2014 CotEditor Project + http://coteditor.github.io ================================================= encoding="UTF-8" @@ -14,6 +15,7 @@ Created:2005.03.30 This class is based on JSDTextView (written by James S. Derry – http://www.balthisar.com) JSDTextView is released as public domain. arranged by nakamuxu, Dec 2004. +arranged by 1024jp, Mar 2014. ------------------------------------------------- This program is free software; you can redistribute it and/or @@ -35,22 +37,17 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #import -#import "constants.h" @class CESubSplitView; @interface CELineNumView : NSView -{ - CESubSplitView *_masterView; - - BOOL _showLineNum; -} + +@property (nonatomic, assign) CESubSplitView *masterView; +@property (nonatomic) BOOL showLineNum; + // Public method -- (CESubSplitView *)masterView; -- (void)setMasterView:(CESubSplitView *)inView; -- (BOOL)showLineNum; -- (void)setShowLineNum:(BOOL)inBool; + - (void)updateLineNumber:(id)sender; @end diff --git a/CELineNumView.m b/CELineNumView.m index c124948862..da1b0844ee 100644 --- a/CELineNumView.m +++ b/CELineNumView.m @@ -3,8 +3,9 @@ CELineNumView (for CotEditor) -Copyright (C) 2004-2007 nakamuxu. -http://www.aynimac.com/ + Copyright (C) 2004-2007 nakamuxu. + Copyright (C) 2014 CotEditor Project + http://coteditor.github.io ================================================= encoding="UTF-8" @@ -15,7 +16,8 @@ This class is based on JSDTextView (written by James S. Derry – http://www.bal JSDTextView is released as public domain. arranged by nakamuxu, Dec 2004. arranged by Hetima, Aug 2005. -------------------------------------------------- +arranged by 1024jp, Mar 2014. + ------------------------------------------------- This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -37,14 +39,11 @@ This class is based on JSDTextView (written by James S. Derry – http://www.bal #import "CELineNumView.h" #import "CEEditorView.h" +#import "constants.h" -//======================================================= -// Private method -// -//======================================================= -@interface CELineNumView (Private) -- (void)setWidth:(float)inValue; +@interface CELineNumView () + @end @@ -52,10 +51,11 @@ - (void)setWidth:(float)inValue; +#pragma mark - @implementation CELineNumView -#pragma mark ===== Public method ===== +#pragma mark Public Methods //======================================================= // Public method @@ -63,11 +63,11 @@ @implementation CELineNumView //======================================================= // ------------------------------------------------------ -- (id)initWithFrame:(NSRect)inFrame +- (instancetype)initWithFrame:(NSRect)frameRect // initialize // ------------------------------------------------------ { - self = [super initWithFrame:inFrame]; + self = [super initWithFrame:frameRect]; if (self) { [self setAutoresizingMask:NSViewHeightSizable]; [[self enclosingScrollView] setHasHorizontalScroller:NO]; @@ -82,179 +82,148 @@ - (void)dealloc // clean up // ------------------------------------------------------ { -// _masterView was not retained +// masterView was not retained [super dealloc]; } // ------------------------------------------------------ -- (CESubSplitView *)masterView -// return main textView -// ------------------------------------------------------ -{ - return _masterView; // not retain -} - - -// ------------------------------------------------------ -- (void)setMasterView:(CESubSplitView *)inView -// set main textView in myself. *NOT* retain. -// ------------------------------------------------------ -{ - _masterView = inView; -} - - -// ------------------------------------------------------ -- (BOOL)showLineNum -// is set to show line numbers? -// ------------------------------------------------------ -{ - return _showLineNum; -} - - -// ------------------------------------------------------ -- (void)setShowLineNum:(BOOL)inBool +- (void)setShowLineNum:(BOOL)showLineNum // set to show line numbers. // ------------------------------------------------------ { - if (inBool != _showLineNum) { - _showLineNum = !_showLineNum; - if (!_showLineNum) { - [self setWidth:0]; - } else { - [self setWidth:k_defaultLineNumWidth]; - } + if (showLineNum != [self showLineNum]) { + _showLineNum = showLineNum; + + CGFloat width = [self showLineNum] ? k_defaultLineNumWidth : 0.0; + [self setWidth:width]; } } // ------------------------------------------------------ -- (void)drawRect:(NSRect)inRect +- (void)drawRect:(NSRect)dirtyRect // draw line numbers. // ------------------------------------------------------ { - if ((!_masterView) || (!_showLineNum)) { + if (![self masterView] || ![self showLineNum]) { return; } - id theValues = [[NSUserDefaultsController sharedUserDefaultsController] values]; + id values = [[NSUserDefaultsController sharedUserDefaultsController] values]; // fill in the background [[NSColor controlHighlightColor] set]; - [NSBezierPath fillRect:inRect]; + [NSBezierPath fillRect:dirtyRect]; // draw frame border [[NSColor controlShadowColor] set]; - [NSBezierPath strokeLineFromPoint:NSMakePoint(NSMaxX(inRect), NSMaxY(inRect)) - toPoint:NSMakePoint(NSMaxX(inRect), NSMinY(inRect))]; + [NSBezierPath strokeLineFromPoint:NSMakePoint(NSMaxX(dirtyRect), NSMaxY(dirtyRect)) + toPoint:NSMakePoint(NSMaxX(dirtyRect), NSMinY(dirtyRect))]; + // adjust rect so we won't later draw into the scrollbar area - if ([[_masterView scrollView] hasHorizontalScroller]) { - float theHScrollAdj = NSHeight([[[_masterView scrollView] horizontalScroller] frame]) / 2; - inRect.origin.y += theHScrollAdj; // (shift the drawing frame reference up.) - inRect.size.height -= theHScrollAdj; // (and shrink it the same distance.) + if ([[[self masterView] scrollView] hasHorizontalScroller]) { + CGFloat theHScrollAdj = NSHeight([[[[self masterView] scrollView] horizontalScroller] frame]) / 2; + dirtyRect.origin.y += theHScrollAdj; // (shift the drawing frame reference up.) + dirtyRect.size.height -= theHScrollAdj; // (and shrink it the same distance.) } // setup drawing attributes for the font size and color. - NSMutableDictionary *theAttrs = [[NSMutableDictionary alloc] init]; // ===== init - float theLineNumFontSize = [[theValues valueForKey:k_key_lineNumFontSize] floatValue]; - NSFont *theFont = [NSFont fontWithName:[theValues valueForKey:k_key_lineNumFontName] size:theLineNumFontSize]; - if (theFont == nil) { - theFont = [NSFont paletteFontOfSize:9]; + NSMutableDictionary *attrs = [[NSMutableDictionary alloc] init]; // ===== init + CGFloat fontSize = (CGFloat)[[values valueForKey:k_key_lineNumFontSize] doubleValue]; + NSFont *font = [NSFont fontWithName:[values valueForKey:k_key_lineNumFontName] size:fontSize]; + if (font == nil) { + font = [NSFont paletteFontOfSize:9]; } - [theAttrs setObject:theFont forKey:NSFontAttributeName]; - [theAttrs setObject: - [NSUnarchiver unarchiveObjectWithData:[theValues valueForKey:k_key_lineNumFontColor]] - forKey: NSForegroundColorAttributeName]; + attrs[NSFontAttributeName] = font; + attrs[NSForegroundColorAttributeName] = [NSUnarchiver unarchiveObjectWithData:[values valueForKey:k_key_lineNumFontColor]]; //文字幅を計算しておく 等幅扱い //いずれにしても等幅じゃないと奇麗に揃わないので等幅だということにしておく(hetima) - float charWidth = [@"8" sizeWithAttributes:theAttrs].width; + CGFloat charWidth = [@"8" sizeWithAttributes:attrs].width; // setup the variables we need for the loop - NSRange theRange; // a range for counting lines - NSString *theStr = [_masterView string]; - NSString *theNumStr; // a temporary string for Line Number - NSString *theWrapedLineMark = ([[theValues valueForKey:k_key_showWrappedLineMark] boolValue]) ? - [NSString stringWithString:@"-"] : [NSString stringWithString:@" "]; - int theGlyphIndex, theBefore, theGlyphCount; // glyph counter - int theCharIndex; - int theLineNum; // line counter - float theReqWidth; // width calculator holder -- width needed to show string - float theCurWidth; // width calculator holder -- my current width - float theAdj = 0; // adjust vertical value for line number drawing - float theInsetAdj = [[theValues valueForKey:k_key_textContainerInsetHeightTop] floatValue]; - NSRect theNumRect; // rectange holder - NSPoint theNumPoint; // point holder - CELayoutManager *theManager = (CELayoutManager *)[[_masterView textView] layoutManager]; // get _owner's layout manager. + NSRange range; // a range for counting lines + NSString *str = [[self masterView] string]; + NSString *numStr; // a temporary string for Line Number + NSString *wrappedLineMark = [[values valueForKey:k_key_showWrappedLineMark] boolValue] ? @"-" : @" "; + NSUInteger glyphIndex, theBefore, glyphCount; // glyph counter + NSUInteger charIndex; + NSUInteger lineNum; // line counter + CGFloat reqWidth; // width calculator holder -- width needed to show string + CGFloat curWidth; // width calculator holder -- my current width + CGFloat adj = 0; // adjust vertical value for line number drawing + CGFloat insetAdj = (CGFloat)[[values valueForKey:k_key_textContainerInsetHeightTop] doubleValue]; + NSRect numRect; // rectange holder + NSPoint numPoint; // point holder + CELayoutManager *layoutManager = (CELayoutManager *)[[[self masterView] textView] layoutManager]; // get _owner's layout manager. theBefore = 0; - theLineNum = 1; - theGlyphCount = 0; + lineNum = 1; + glyphCount = 0; - float crDistance; - unsigned numberOfGlyphs = [theManager numberOfGlyphs]; + CGFloat crDistance; + NSUInteger numberOfGlyphs = [layoutManager numberOfGlyphs]; if(numberOfGlyphs > 0) { //ループの中で convertRect:fromView: を呼ぶと重いみたいなので一回だけ呼んで差分を調べておく(hetima) - theNumRect = [theManager lineFragmentRectForGlyphAtIndex:theGlyphCount effectiveRange:NULL]; - crDistance = theNumRect.origin.y - NSHeight(theNumRect); - theNumRect = [self convertRect:theNumRect fromView:[_masterView textView]]; - crDistance = theNumRect.origin.y - crDistance; + numRect = [layoutManager lineFragmentRectForGlyphAtIndex:glyphCount effectiveRange:NULL]; + crDistance = numRect.origin.y - NSHeight(numRect); + numRect = [self convertRect:numRect fromView:[[self masterView] textView]]; + crDistance = numRect.origin.y - crDistance; } else { - [theAttrs release]; // ===== release + [attrs release]; // ===== release return; } - theAdj = k_lineNumFontDescender - ([[[_masterView textView] font] pointSize] + theLineNumFontSize) / 2 - theInsetAdj; - - for (theGlyphIndex = 0; theGlyphIndex < numberOfGlyphs; theLineNum++) { // count "REAL" lines - theCharIndex = [theManager characterIndexForGlyphAtIndex:theGlyphIndex]; - theGlyphIndex = NSMaxRange([theManager glyphRangeForCharacterRange: - [theStr lineRangeForRange:NSMakeRange(theCharIndex, 0)] - actualCharacterRange:NULL]); - while (theGlyphCount < theGlyphIndex) { // handle "DRAWN" (wrapped) lines - theNumRect = [theManager lineFragmentRectForGlyphAtIndex:theGlyphCount effectiveRange:&theRange]; - theNumRect.origin.x = inRect.origin.x; // don't care about x -- just force it into the rect - theNumRect.origin.y = crDistance - NSHeight(theNumRect) - theNumRect.origin.y; - if (NSIntersectsRect(theNumRect, inRect)) { - theNumStr = (theBefore != theLineNum) ? - [NSString stringWithFormat:@"%d", theLineNum] : theWrapedLineMark; - theReqWidth = charWidth * [theNumStr length]; - theCurWidth = NSWidth([self frame]); - if ((theCurWidth - k_lineNumPadding) < theReqWidth) { - while ((theCurWidth - k_lineNumPadding) < theReqWidth) { theCurWidth += charWidth;} - [self setWidth:theCurWidth]; // set a wider width if needed. + adj = k_lineNumFontDescender - ([[[[self masterView] textView] font] pointSize] + fontSize) / 2 - insetAdj; + + for (glyphIndex = 0; glyphIndex < numberOfGlyphs; lineNum++) { // count "REAL" lines + charIndex = [layoutManager characterIndexForGlyphAtIndex:glyphIndex]; + glyphIndex = NSMaxRange([layoutManager glyphRangeForCharacterRange:[str lineRangeForRange:NSMakeRange(charIndex, 0)] + actualCharacterRange:NULL]); + while (glyphCount < glyphIndex) { // handle "DRAWN" (wrapped) lines + numRect = [layoutManager lineFragmentRectForGlyphAtIndex:glyphCount effectiveRange:&range]; + numRect.origin.x = dirtyRect.origin.x; // don't care about x -- just force it into the rect + numRect.origin.y = crDistance - NSHeight(numRect) - numRect.origin.y; + if (NSIntersectsRect(numRect, dirtyRect)) { + numStr = (theBefore != lineNum) ? [NSString stringWithFormat:@"%ld", (long)lineNum] : wrappedLineMark; + reqWidth = charWidth * [numStr length]; + curWidth = NSWidth([self frame]); + if ((curWidth - k_lineNumPadding) < reqWidth) { + while ((curWidth - k_lineNumPadding) < reqWidth) { + curWidth += charWidth; + } + [self setWidth:curWidth]; // set a wider width if needed. } - theNumPoint = NSMakePoint((theCurWidth - theReqWidth - k_lineNumPadding), - theNumRect.origin.y + theAdj + NSHeight(theNumRect)); - [theNumStr drawAtPoint:theNumPoint withAttributes:theAttrs]; // draw the line number. - theBefore = theLineNum; - } else if (NSMaxY(theNumRect) < 0) { // no need to draw - [theAttrs release]; // ===== release + numPoint = NSMakePoint(curWidth - reqWidth - k_lineNumPadding, + numRect.origin.y + adj + NSHeight(numRect)); + [numStr drawAtPoint:numPoint withAttributes:attrs]; // draw the line number. + theBefore = lineNum; + } else if (NSMaxY(numRect) < 0) { // no need to draw + [attrs release]; // ===== release return; } - theGlyphCount = NSMaxRange(theRange); + glyphCount = NSMaxRange(range); } } // Draw the last "extra" line number. - theNumRect = [theManager extraLineFragmentRect]; - // 10.5.1では、1行目が改行だけのときtheNumRect.origin.yに行の高さがセットされてしまうことへ対処(2007.12.01) - if ((theNumRect.size.width > 0) && (theNumRect.size.height > 0)) { -// if (!NSEqualRects(theNumRect, NSZeroRect)) { - theNumStr = (theBefore != theLineNum) ? - [NSString stringWithFormat:@"%d", theLineNum] : - [NSString stringWithString:@" "]; - theReqWidth = charWidth * [theNumStr length]; - theCurWidth = NSWidth([self frame]); - if ((theCurWidth - k_lineNumPadding) < theReqWidth) { - while ((theCurWidth - k_lineNumPadding) < theReqWidth) { theCurWidth += charWidth;} - [self setWidth:theCurWidth]; // set a wider width if needed. + numRect = [layoutManager extraLineFragmentRect]; + // 10.5.1では、1行目が改行だけのときnumRect.origin.yに行の高さがセットされてしまうことへ対処(2007.12.01) + if ((numRect.size.width > 0) && (numRect.size.height > 0)) { +// if (!NSEqualRects(numRect, NSZeroRect)) { + numStr = (theBefore != lineNum) ? [NSString stringWithFormat:@"%ld", (long)lineNum] : @" "; + reqWidth = charWidth * [numStr length]; + curWidth = NSWidth([self frame]); + if ((curWidth - k_lineNumPadding) < reqWidth) { + while ((curWidth - k_lineNumPadding) < reqWidth) { + curWidth += charWidth; + } + [self setWidth:curWidth]; // set a wider width if needed. } - theNumPoint = NSMakePoint((theCurWidth - theReqWidth - k_lineNumPadding), - crDistance - theNumRect.origin.y + theAdj); - [theNumStr drawAtPoint:theNumPoint withAttributes:theAttrs]; // draw the last line number. + numPoint = NSMakePoint((curWidth - reqWidth - k_lineNumPadding), + crDistance - numRect.origin.y + adj); + [numStr drawAtPoint:numPoint withAttributes:attrs]; // draw the last line number. } - [theAttrs release]; // ===== release + [attrs release]; // ===== release } @@ -268,11 +237,7 @@ - (void)updateLineNumber:(id)sender -@end - - - -@implementation CELineNumView (Private) +#pragma mark - Private Methods //======================================================= // Private method @@ -280,26 +245,25 @@ @implementation CELineNumView (Private) //======================================================= // ------------------------------------------------------ -- (void)setWidth:(float)inValue +- (void)setWidth:(CGFloat)width // set view width. // ------------------------------------------------------ { - float theAdjWidth = (inValue - NSWidth([self frame])); - NSRect theNewFrame; + CGFloat adjWidth = width - NSWidth([self frame]); + NSRect newFrame; // set masterView width - theNewFrame = [[[self masterView] scrollView] frame]; - theNewFrame.origin.x += theAdjWidth; - theNewFrame.size.width -= theAdjWidth; - [[[self masterView] scrollView] setFrame:theNewFrame]; + newFrame = [[[self masterView] scrollView] frame]; + newFrame.origin.x += adjWidth; + newFrame.size.width -= adjWidth; + [[[self masterView] scrollView] setFrame:newFrame]; // set LineNumView width - theNewFrame = [self frame]; - theNewFrame.size.width += theAdjWidth; - [self setFrame:theNewFrame]; + newFrame = [self frame]; + newFrame.size.width += adjWidth; + [self setFrame:newFrame]; [self setNeedsDisplay:YES]; } - -@end \ No newline at end of file +@end diff --git a/CENavigationBarView.h b/CENavigationBarView.h index 7396fb679a..d9ec2790aa 100644 --- a/CENavigationBarView.h +++ b/CENavigationBarView.h @@ -3,8 +3,9 @@ CENavigationBarView (for CotEditor) -Copyright (C) 2004-2007 nakamuxu. -http://www.aynimac.com/ + Copyright (C) 2004-2007 nakamuxu. + Copyright (C) 2014 CotEditor Project + http://coteditor.github.io ================================================= encoding="UTF-8" @@ -31,37 +32,23 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #import -#import "CEOutlineMenuButton.h" -#import "CEOutlineMenuButtonCell.h" -#import "constants.h" @class CESubSplitView; @interface CENavigationBarView : NSView -{ - CESubSplitView *_masterView; - CEOutlineMenuButton *_outlineMenu; - NSButton *_prevButton; - NSButton *_nextButton; - NSButton *_openSplitButton; - NSButton *_closeSplitButton; - BOOL _showNavigationBar; -} +@property (nonatomic, assign) CESubSplitView *masterView; +@property (nonatomic) BOOL showNavigationBar; // Public method -- (CESubSplitView *)masterView; -- (void)setMasterView:(CESubSplitView *)inView; -- (BOOL)showNavigationBar; -- (void)setShowNavigationBar:(BOOL)inBool; -- (void)setOutlineMenuArray:(NSArray *)inArray; -- (void)selectOutlineMenuItemWithRange:(NSRange)inRange; -- (void)selectOutlineMenuItemWithRangeValue:(NSValue *)inRangeValue; +- (void)setOutlineMenuArray:(NSArray *)menus; +- (void)selectOutlineMenuItemWithRange:(NSRange)range; +- (void)selectOutlineMenuItemWithRangeValue:(NSValue *)rangeValue; - (void)updatePrevNextButtonEnabled; - (void)selectPrevItem; - (void)selectNextItem; - (BOOL)canSelectPrevItem; - (BOOL)canSelectNextItem; -- (void)setCloseSplitButtonEnabled:(BOOL)inBool; +- (void)setCloseSplitButtonEnabled:(BOOL)enabled; @end diff --git a/CENavigationBarView.m b/CENavigationBarView.m index 1ba3a1f364..0b12f51fe1 100644 --- a/CENavigationBarView.m +++ b/CENavigationBarView.m @@ -3,8 +3,9 @@ CENavigationBarView (for CotEditor) -Copyright (C) 2004-2007 nakamuxu. -http://www.aynimac.com/ + Copyright (C) 2004-2007 nakamuxu. + Copyright (C) 2014 CotEditor Project + http://coteditor.github.io ================================================= encoding="UTF-8" @@ -32,17 +33,22 @@ #import "CENavigationBarView.h" #import "CEEditorView.h" +#import "CEOutlineMenuButton.h" +#import "constants.h" -//======================================================= -// Private method -// -//======================================================= +@interface CENavigationBarView () + +@property (nonatomic, retain) CEOutlineMenuButton *outlineMenu; +@property (nonatomic, retain) NSButton *prevButton; +@property (nonatomic, retain) NSButton *nextButton; +@property (nonatomic, retain) NSButton *openSplitButton; +@property (nonatomic, retain) NSButton *closeSplitButton; -@interface CENavigationBarView (Private) -- (void)setHeight:(float)inValue; @end +#pragma mark - + //------------------------------------------------------------------------------------------ @@ -50,93 +56,92 @@ - (void)setHeight:(float)inValue; @implementation CENavigationBarView + // ------------------------------------------------------ -- (id)initWithFrame:(NSRect)inFrame +- (instancetype)initWithFrame:(NSRect)frame // initialize // ------------------------------------------------------ { - self = [super initWithFrame:inFrame]; + self = [super initWithFrame:frame]; + if (self) { - // setup outlineMenu - NSRect theOutlineMenuFrame = inFrame; - theOutlineMenuFrame.origin.x += k_outlineMenuLeftMargin; - theOutlineMenuFrame.origin.y = 0.0; - theOutlineMenuFrame.size.width = k_outlineMenuWidth; - [self convertRect:theOutlineMenuFrame toView:self]; - _outlineMenu = [[CEOutlineMenuButton allocWithZone:[self zone]] - initWithFrame:theOutlineMenuFrame pullsDown:NO]; // ===== alloc - [_outlineMenu setAutoresizingMask:NSViewHeightSizable]; + NSRect outlineMenuFrame = frame; + outlineMenuFrame.origin.x += k_outlineMenuLeftMargin; + outlineMenuFrame.origin.y = 1.0; + outlineMenuFrame.size.height -= 1.0; + outlineMenuFrame.size.width = k_outlineMenuWidth; + [self convertRect:outlineMenuFrame toView:self]; + [self setOutlineMenu:[[CEOutlineMenuButton allocWithZone:[self zone]] initWithFrame:outlineMenuFrame pullsDown:NO]]; // ===== alloc + [[self outlineMenu] setAutoresizingMask:NSViewHeightSizable]; // setup prevButton - NSRect thePrevButtonFrame = theOutlineMenuFrame; - thePrevButtonFrame.origin.x -= k_outlineButtonWidth; - thePrevButtonFrame.origin.y = 1.0; - thePrevButtonFrame.size.width = k_outlineButtonWidth; - [self convertRect:thePrevButtonFrame toView:self]; - _prevButton = [[NSButton allocWithZone:[self zone]] initWithFrame:thePrevButtonFrame]; // ===== alloc - [_prevButton setButtonType:NSMomentaryPushInButton]; - [_prevButton setBordered:NO]; - [_prevButton setImagePosition:NSImageOnly]; - [_prevButton setAction:@selector(selectPrevItem)]; - [_prevButton setTarget:self]; - [_prevButton setToolTip:NSLocalizedString(@"Go Prev item",@"")]; - [_prevButton setAutoresizingMask:NSViewHeightSizable]; + NSRect prevButtonFrame = outlineMenuFrame; + prevButtonFrame.origin.x -= k_outlineButtonWidth; + prevButtonFrame.size.width = k_outlineButtonWidth; + [self convertRect:prevButtonFrame toView:self]; + [self setPrevButton:[[NSButton allocWithZone:[self zone]] initWithFrame:prevButtonFrame]]; // ===== alloc + [[self prevButton] setButtonType:NSMomentaryPushInButton]; + [[self prevButton] setBordered:NO]; + [[self prevButton] setImagePosition:NSImageOnly]; + [[self prevButton] setAction:@selector(selectPrevItem)]; + [[self prevButton] setTarget:self]; + [[self prevButton] setToolTip:NSLocalizedString(@"Go Prev item", @"")]; + [[self prevButton] setAutoresizingMask:NSViewHeightSizable]; // setup nextButton - NSRect theNextButtonFrame = theOutlineMenuFrame; - theNextButtonFrame.origin.x += NSWidth(theOutlineMenuFrame); - theNextButtonFrame.origin.y = 1.0; - theNextButtonFrame.size.width = k_outlineButtonWidth; - [self convertRect:theNextButtonFrame toView:self]; - _nextButton = [[NSButton allocWithZone:[self zone]] initWithFrame:theNextButtonFrame]; // ===== alloc - [_nextButton setButtonType:NSMomentaryPushInButton]; - [_nextButton setBordered:NO]; - [_nextButton setImagePosition:NSImageOnly]; - [_nextButton setAction:@selector(selectNextItem)]; - [_nextButton setTarget:self]; - [_nextButton setToolTip:NSLocalizedString(@"Go Next item",@"")]; - [_nextButton setAutoresizingMask:NSViewHeightSizable]; + NSRect nextButtonFrame = outlineMenuFrame; + nextButtonFrame.origin.x += NSWidth(outlineMenuFrame); + nextButtonFrame.size.width = k_outlineButtonWidth; + [self convertRect:nextButtonFrame toView:self]; + [self setNextButton:[[NSButton allocWithZone:[self zone]] initWithFrame:nextButtonFrame]]; // ===== alloc + [[self nextButton] setButtonType:NSMomentaryPushInButton]; + [[self nextButton] setBordered:NO]; + [[self nextButton] setImagePosition:NSImageOnly]; + [[self nextButton] setAction:@selector(selectNextItem)]; + [[self nextButton] setTarget:self]; + [[self nextButton] setToolTip:NSLocalizedString(@"Go Next item", @"")]; + [[self nextButton] setAutoresizingMask:NSViewHeightSizable]; // setup openSplitButton - NSRect theOpenSplitButtonFrame = inFrame; - theOpenSplitButtonFrame.origin.x += (NSWidth(inFrame) - [NSScroller scrollerWidth]); - theOpenSplitButtonFrame.origin.y = 1.0; - theOpenSplitButtonFrame.size.width = [NSScroller scrollerWidth]; - [self convertRect:theOpenSplitButtonFrame toView:self]; - _openSplitButton = [[NSButton allocWithZone:[self zone]] initWithFrame:theOpenSplitButtonFrame]; // ===== alloc - [_openSplitButton setButtonType:NSMomentaryPushInButton]; - [_openSplitButton setBordered:NO]; - [_openSplitButton setImagePosition:NSImageOnly]; - [_openSplitButton setAction:@selector(openSplitTextView:)]; - [_openSplitButton setAutoresizingMask:(NSViewHeightSizable | NSViewMinXMargin)]; - [_openSplitButton setImage:[NSImage imageNamed:@"openSplitButtonImg"]]; - [_openSplitButton setToolTip:NSLocalizedString(@"Open SplitView",@"")]; - [_openSplitButton setEnabled:YES]; + NSRect openSplitButtonFrame = frame; + openSplitButtonFrame.origin.x += (NSWidth(frame) - [NSScroller scrollerWidth]); + openSplitButtonFrame.origin.y = 1.0; + openSplitButtonFrame.size.width = [NSScroller scrollerWidth]; + [self convertRect:openSplitButtonFrame toView:self]; + [self setOpenSplitButton:[[NSButton allocWithZone:[self zone]] initWithFrame:openSplitButtonFrame]]; // ===== alloc + [[self openSplitButton] setButtonType:NSMomentaryPushInButton]; + [[self openSplitButton] setBordered:NO]; + [[self openSplitButton] setImagePosition:NSImageOnly]; + [[self openSplitButton] setAction:@selector(openSplitTextView:)]; + [[self openSplitButton] setAutoresizingMask:(NSViewHeightSizable | NSViewMinXMargin)]; + [[self openSplitButton] setImage:[NSImage imageNamed:@"openSplitButtonImg"]]; + [[self openSplitButton] setToolTip:NSLocalizedString(@"Open SplitView", @"")]; + [[self openSplitButton] setEnabled:YES]; // setup closeSplitButton - NSRect theDelSplitButtonFrame = inFrame; - theDelSplitButtonFrame.origin.x += (NSWidth(inFrame) - [NSScroller scrollerWidth] * 2); - theDelSplitButtonFrame.origin.y = 1.0; - theDelSplitButtonFrame.size.width = [NSScroller scrollerWidth]; - [self convertRect:theDelSplitButtonFrame toView:self]; - _closeSplitButton = [[NSButton allocWithZone:[self zone]] initWithFrame:theDelSplitButtonFrame]; // ===== alloc - [_closeSplitButton setButtonType:NSMomentaryPushInButton]; - [_closeSplitButton setBordered:NO]; - [_closeSplitButton setImagePosition:NSImageOnly]; - [_closeSplitButton setAction:@selector(closeSplitTextView:)]; - [_closeSplitButton setAutoresizingMask:(NSViewHeightSizable | NSViewMinXMargin)]; - [_closeSplitButton setImage:[NSImage imageNamed:@"closeSplitButtonImg"]]; - [_closeSplitButton setToolTip:NSLocalizedString(@"Close SplitView",@"")]; - [_closeSplitButton setHidden:YES]; + NSRect closeSplitButtonFrame = frame; + closeSplitButtonFrame.origin.x += (NSWidth(frame) - [NSScroller scrollerWidth] * 2); + closeSplitButtonFrame.origin.y = 1.0; + closeSplitButtonFrame.size.width = [NSScroller scrollerWidth]; + [self convertRect:closeSplitButtonFrame toView:self]; + [self setCloseSplitButton:[[NSButton allocWithZone:[self zone]] initWithFrame:closeSplitButtonFrame]]; // ===== alloc + [[self closeSplitButton] setButtonType:NSMomentaryPushInButton]; + [[self closeSplitButton] setBordered:NO]; + [[self closeSplitButton] setImagePosition:NSImageOnly]; + [[self closeSplitButton] setAction:@selector(closeSplitTextView:)]; + [[self closeSplitButton] setAutoresizingMask:(NSViewHeightSizable | NSViewMinXMargin)]; + [[self closeSplitButton] setImage:[NSImage imageNamed:@"closeSplitButtonImg"]]; + [[self closeSplitButton] setToolTip:NSLocalizedString(@"Close SplitView", @"")]; + [[self closeSplitButton] setHidden:YES]; [self setAutoresizingMask:(NSViewWidthSizable | NSViewMinYMargin)]; - [self addSubview:_outlineMenu]; - [self addSubview:_prevButton]; - [self addSubview:_nextButton]; - [self addSubview:_openSplitButton]; - [self addSubview:_closeSplitButton]; + [self addSubview:[self outlineMenu]]; + [self addSubview:[self prevButton]]; + [self addSubview:[self nextButton]]; + [self addSubview:[self openSplitButton]]; + [self addSubview:[self closeSplitButton]]; } return self; } @@ -147,149 +152,120 @@ - (void)dealloc // clean up // ------------------------------------------------------ { - // _masterView is not retain. - [_outlineMenu release]; - [_prevButton release]; - [_nextButton release]; - [_openSplitButton release]; - [_closeSplitButton release]; + // masterView is not retain. + [[self outlineMenu] release]; + [[self prevButton] release]; + [[self nextButton] release]; + [[self openSplitButton] release]; + [[self closeSplitButton] release]; [super dealloc]; } // ------------------------------------------------------ -- (CESubSplitView *)masterView -// return main textView -// ------------------------------------------------------ -{ - return _masterView; // not retain -} - - -// ------------------------------------------------------ -- (void)setMasterView:(CESubSplitView *)inView -// set main textView in myself. *NOT* retain. -// ------------------------------------------------------ -{ - _masterView = inView; -} - - -// ------------------------------------------------------ -- (BOOL)showNavigationBar -// is set to show navigation bar? -// ------------------------------------------------------ -{ - return _showNavigationBar; -} - - -// ------------------------------------------------------ -- (void)setShowNavigationBar:(BOOL)inBool +- (void)setShowNavigationBar:(BOOL)showNavigationBar // set to show navigation bar. // ------------------------------------------------------ { - if (inBool != _showNavigationBar) { - _showNavigationBar = !_showNavigationBar; - if (!_showNavigationBar) { - [self setHeight:0]; - } else { - [self setHeight:k_navigationBarHeight]; - } + if (showNavigationBar != [self showNavigationBar]) { + _showNavigationBar = showNavigationBar; + + CGFloat height = [self showNavigationBar] ? k_navigationBarHeight : 0.0; + [self setHeight:height]; } } // ------------------------------------------------------ -- (void)setOutlineMenuArray:(NSArray *)inArray +- (void)setOutlineMenuArray:(NSArray *)outlineMenuArray // 配列を元にアウトラインメニューを生成 // ------------------------------------------------------ { - id theValues = [[NSUserDefaultsController sharedUserDefaultsController] values]; - NSMenu *theMenu; - NSMenuItem *theMenuItem; - NSDictionary *theDict; - NSFont *theDefaultFont = [NSFont fontWithName:[theValues valueForKey:k_key_navigationBarFontName] - size:[[theValues valueForKey:k_key_navigationBarFontSize] floatValue]]; - - NSFontManager *theManager = [NSFontManager sharedFontManager]; - NSFont *theFont; - NSMutableAttributedString *theTitle; - NSFontTraitMask theFontMask; - NSNumber *theUnderlineMaskNumber; - int i, theCount = [inArray count]; - - [_outlineMenu removeAllItems]; - if (theCount < 1) { - [_outlineMenu setEnabled:NO]; - [_prevButton setEnabled:NO]; - [_prevButton setImage:nil]; - [_nextButton setEnabled:NO]; - [_nextButton setImage:nil]; + id values = [[NSUserDefaultsController sharedUserDefaultsController] values]; + NSMenu *menu; + NSMenuItem *menuItem; + NSFont *defaultFont = [NSFont fontWithName:[values valueForKey:k_key_navigationBarFontName] + size:(CGFloat)[[values valueForKey:k_key_navigationBarFontSize] doubleValue]]; + + NSFontManager *fontManager = [NSFontManager sharedFontManager]; + NSFont *font; + NSMutableAttributedString *title; + NSFontTraitMask fontMask; + NSNumber *underlineMaskNumber; + + [[self outlineMenu] removeAllItems]; + if ([outlineMenuArray count] < 1) { + [[self outlineMenu] setEnabled:NO]; + [[self prevButton] setEnabled:NO]; + [[self prevButton] setImage:nil]; + [[self nextButton] setEnabled:NO]; + [[self nextButton] setImage:nil]; } else { - theMenu = [_outlineMenu menu]; - for (i = 0; i < theCount; i++) { - theDict = [inArray objectAtIndex:i]; - if ([[theDict valueForKey:k_outlineMenuItemTitle] isEqualToString:k_outlineMenuSeparatorSymbol]) { + menu = [[self outlineMenu] menu]; + for (NSDictionary *outlineItem in outlineMenuArray) { + if ([[outlineItem valueForKey:k_outlineMenuItemTitle] isEqualToString:k_outlineMenuSeparatorSymbol]) { // セパレータ - [theMenu addItem:[NSMenuItem separatorItem]]; + [menu addItem:[NSMenuItem separatorItem]]; } else { - theUnderlineMaskNumber = - [[[theDict valueForKey:k_outlineMenuItemUnderlineMask] copy] autorelease]; - theFontMask = ([[theDict valueForKey:k_outlineMenuItemFontBold] boolValue]) ? - NSBoldFontMask : 0; - theFont = [theManager convertFont:theDefaultFont toHaveTrait:theFontMask]; - theTitle = [[[NSMutableAttributedString alloc] - initWithString:[theDict valueForKey:k_outlineMenuItemTitle] - attributes:[NSDictionary dictionaryWithObjectsAndKeys: - theFont, NSFontAttributeName, - theUnderlineMaskNumber, NSUnderlineStyleAttributeName, - nil]] autorelease]; - if ([[theDict valueForKey:k_outlineMenuItemFontItalic] boolValue]) { - [theTitle addAttribute:NSFontAttributeName - value:[theManager convertFont:theFont toHaveTrait:NSItalicFontMask] - range:NSMakeRange(0, [theTitle length])]; + underlineMaskNumber = [[outlineItem[k_outlineMenuItemUnderlineMask] copy] autorelease]; + fontMask = ([[outlineItem valueForKey:k_outlineMenuItemFontBold] boolValue]) ? NSBoldFontMask : 0; + font = [fontManager convertFont:defaultFont toHaveTrait:fontMask]; + + title = [[[NSMutableAttributedString alloc] initWithString:outlineItem[k_outlineMenuItemTitle] + attributes:@{NSFontAttributeName: font}] autorelease]; + if (underlineMaskNumber) { + [title addAttribute:NSUnderlineStyleAttributeName + value:underlineMaskNumber + range:NSMakeRange(0, [title length])]; } - theMenuItem = [[[NSMenuItem alloc] initWithTitle:@" " - action:@selector(setSelectedRangeWithNSValue:) keyEquivalent:@""] autorelease]; - [theMenuItem setTarget:[[self masterView] textView]]; - [theMenuItem setAttributedTitle:theTitle]; - [theMenuItem setRepresentedObject:[theDict valueForKey:k_outlineMenuItemRange]]; - [theMenu addItem:theMenuItem]; + if ([outlineItem[k_outlineMenuItemFontItalic] boolValue]) { + [title addAttribute:NSFontAttributeName + value:[fontManager convertFont:font toHaveTrait:NSItalicFontMask] + range:NSMakeRange(0, [title length])]; + } + menuItem = [[[NSMenuItem alloc] initWithTitle:@" " + action:@selector(setSelectedRangeWithNSValue:) keyEquivalent:@""] autorelease]; + [menuItem setTarget:[[self masterView] textView]]; + [menuItem setAttributedTitle:title]; + [menuItem setRepresentedObject:[outlineItem valueForKey:k_outlineMenuItemRange]]; + [menu addItem:menuItem]; } } // (メニューの再描画時のちらつき防止のため、ここで選択項目をセットする 2008.05.17.) - [self selectOutlineMenuItemWithRange:[[(CESubSplitView *)_masterView editorView] selectedRange]]; - [_outlineMenu setMenu:theMenu]; - [_outlineMenu setEnabled:YES]; - [_prevButton setImage:[NSImage imageNamed:@"prevButtonImg"]]; - [_prevButton setEnabled:YES]; - [_nextButton setImage:[NSImage imageNamed:@"nextButtonImg"]]; - [_nextButton setEnabled:YES]; + [self selectOutlineMenuItemWithRange:[[[self masterView] editorView] selectedRange]]; + [[self outlineMenu] setMenu:menu]; + [[self outlineMenu] setEnabled:YES]; + [[self prevButton] setImage:[NSImage imageNamed:@"prevButtonImg"]]; + [[self prevButton] setEnabled:YES]; + [[self nextButton] setImage:[NSImage imageNamed:@"nextButtonImg"]]; + [[self nextButton] setEnabled:YES]; } } // ------------------------------------------------------ -- (void)selectOutlineMenuItemWithRange:(NSRange)inRange +- (void)selectOutlineMenuItemWithRange:(NSRange)range // アウトラインメニューの選択項目を設定 // ------------------------------------------------------ { - if (![_outlineMenu isEnabled]) { return; } - NSMenu *theMenu = [_outlineMenu menu]; - id theItem = nil; - int i, theCount = [theMenu numberOfItems]; - unsigned int theMark, theLocation = inRange.location; - if (theCount < 1) { return; } - - if (NSEqualRanges(inRange, NSMakeRange(0, 0))) { + if (![[self outlineMenu] isEnabled]) { return; } + + NSMenu *menu = [[self outlineMenu] menu]; + NSMenuItem *menuItem; + NSInteger i; + NSInteger count = [menu numberOfItems]; + NSUInteger markedLocation; + NSUInteger location = range.location; + if (count < 1) { return; } + + if (NSEqualRanges(range, NSMakeRange(0, 0))) { i = 1; } else { - for (i = 1; i < theCount; i++) { - theItem = [theMenu itemAtIndex:i]; - theMark = [[theItem representedObject] rangeValue].location; - if (theMark > theLocation) { + for (i = 1; i < count; i++) { + menuItem = [menu itemAtIndex:i]; + markedLocation = [[menuItem representedObject] rangeValue].location; + if (markedLocation > location) { break; } } @@ -297,23 +273,23 @@ - (void)selectOutlineMenuItemWithRange:(NSRange)inRange // ループを抜けた時点で「次のアイテムインデックス」になっているので、減ずる i--; // セパレータを除外 - while ([[_outlineMenu itemAtIndex:i] isSeparatorItem]) { + while ([[[self outlineMenu] itemAtIndex:i] isSeparatorItem]) { i--; if (i < 0) { break; } } - [_outlineMenu selectItemAtIndex:i]; + [[self outlineMenu] selectItemAtIndex:i]; [self updatePrevNextButtonEnabled]; } // ------------------------------------------------------ -- (void)selectOutlineMenuItemWithRangeValue:(NSValue *)inRangeValue +- (void)selectOutlineMenuItemWithRangeValue:(NSValue *)rangeValue // アウトラインメニューの選択項目を設定 // ------------------------------------------------------ { - [self selectOutlineMenuItemWithRange:[inRangeValue rangeValue]]; + [self selectOutlineMenuItemWithRange:[rangeValue rangeValue]]; } @@ -322,8 +298,8 @@ - (void)updatePrevNextButtonEnabled // 前/次移動ボタンの有効/無効を切り替え // ------------------------------------------------------ { - [_prevButton setEnabled:[self canSelectPrevItem]]; - [_nextButton setEnabled:[self canSelectNextItem]]; + [[self prevButton] setEnabled:[self canSelectPrevItem]]; + [[self nextButton] setEnabled:[self canSelectNextItem]]; } @@ -333,15 +309,15 @@ - (void)selectPrevItem // ------------------------------------------------------ { if ([self canSelectPrevItem]) { - int theTargetIndex = [_outlineMenu indexOfSelectedItem] - 1; + NSInteger targetIndex = [[self outlineMenu] indexOfSelectedItem] - 1; - while ([[_outlineMenu itemAtIndex:theTargetIndex] isSeparatorItem]) { - theTargetIndex--; - if (theTargetIndex < 0) { + while ([[[self outlineMenu] itemAtIndex:targetIndex] isSeparatorItem]) { + targetIndex--; + if (targetIndex < 0) { break; } } - [[_outlineMenu menu] performActionForItemAtIndex:theTargetIndex]; + [[[self outlineMenu] menu] performActionForItemAtIndex:targetIndex]; } } @@ -352,17 +328,17 @@ - (void)selectNextItem // ------------------------------------------------------ { if ([self canSelectNextItem]) { - int theTargetIndex = [_outlineMenu indexOfSelectedItem] + 1; - int theMaxIndex = [_outlineMenu numberOfItems] - 1; + NSInteger targetIndex = [[self outlineMenu] indexOfSelectedItem] + 1; + NSInteger maxIndex = [[self outlineMenu] numberOfItems] - 1; - while ([[_outlineMenu itemAtIndex:theTargetIndex] isSeparatorItem]) { - theTargetIndex++; - if (theTargetIndex > theMaxIndex) { + while ([[[self outlineMenu] itemAtIndex:targetIndex] isSeparatorItem]) { + targetIndex++; + if (targetIndex > maxIndex) { break; } } - if (![[_outlineMenu itemAtIndex:theTargetIndex] isSeparatorItem]) { - [[_outlineMenu menu] performActionForItemAtIndex:theTargetIndex]; + if (![[[self outlineMenu] itemAtIndex:targetIndex] isSeparatorItem]) { + [[[self outlineMenu] menu] performActionForItemAtIndex:targetIndex]; } } } @@ -373,7 +349,7 @@ - (BOOL)canSelectPrevItem // can select prev item in outline menu? // ------------------------------------------------------ { - return ([_outlineMenu indexOfSelectedItem] > 0); + return ([[self outlineMenu] indexOfSelectedItem] > 0); } @@ -382,77 +358,70 @@ - (BOOL)canSelectNextItem // can select next item in outline menu? // ------------------------------------------------------ { - BOOL outBool = NO; - int i; - - for (i = ([_outlineMenu indexOfSelectedItem] + 1); i < [_outlineMenu numberOfItems]; i++) { - if (![[_outlineMenu itemAtIndex:i] isSeparatorItem]) { - outBool = YES; - break; + for (NSInteger i = ([[self outlineMenu] indexOfSelectedItem] + 1); i < [[self outlineMenu] numberOfItems]; i++) { + if (![[[self outlineMenu] itemAtIndex:i] isSeparatorItem]) { + return YES; } } - return outBool; + return NO; } // ------------------------------------------------------ -- (void)setCloseSplitButtonEnabled:(BOOL)inBool +- (void)setCloseSplitButtonEnabled:(BOOL)enabled // set closeSplitButton enabled or disabled // ------------------------------------------------------ { - [_closeSplitButton setHidden:(!inBool)]; + [[self closeSplitButton] setHidden:!enabled]; } // ------------------------------------------------------ -- (void)drawRect:(NSRect)inRect -// draw background. +- (void)drawRect:(NSRect)dirtyRect +// draw background // ------------------------------------------------------ { - if ((!_masterView) || (!_showNavigationBar)) { + if (![self masterView] || ![self showNavigationBar]) { return; } // fill in the background [[NSColor controlColor] set]; - [NSBezierPath fillRect:inRect]; + [NSBezierPath fillRect:dirtyRect]; // draw frame border (only bottom line) [[NSColor controlShadowColor] set]; - [NSBezierPath strokeLineFromPoint:NSMakePoint(NSMinX(inRect), NSMinY(inRect)) - toPoint:NSMakePoint(NSMaxX(inRect), NSMinY(inRect))]; + [NSBezierPath strokeLineFromPoint:NSMakePoint(NSMinX(dirtyRect), 0.5) + toPoint:NSMakePoint(NSMaxX(dirtyRect), 0.5)]; } -@end - - -@implementation CENavigationBarView (Private) +#pragma mark Private Methods // ------------------------------------------------------ -- (void)setHeight:(float)inValue +- (void)setHeight:(CGFloat)height // set view height. // ------------------------------------------------------ { - float theAdjHeight = (inValue - NSHeight([self frame])); - NSRect theNewFrame; + CGFloat adjHeight = height - NSHeight([self frame]); + NSRect newFrame; // set masterView height - theNewFrame = [[[self masterView] scrollView] frame]; - theNewFrame.size.height -= theAdjHeight; - [[[self masterView] scrollView] setFrame:theNewFrame]; + newFrame = [[[self masterView] scrollView] frame]; + newFrame.size.height -= adjHeight; + [[[self masterView] scrollView] setFrame:newFrame]; // set LineNumView height - theNewFrame = [[[self masterView] lineNumView] frame]; - theNewFrame.size.height -= theAdjHeight; - [[[self masterView] lineNumView] setFrame:theNewFrame]; + newFrame = [[[self masterView] lineNumView] frame]; + newFrame.size.height -= adjHeight; + [[[self masterView] lineNumView] setFrame:newFrame]; // set navigationBar height - theNewFrame = [self frame]; - theNewFrame.origin.y -= theAdjHeight; - theNewFrame.size.height += theAdjHeight; - [self setFrame:theNewFrame]; + newFrame = [self frame]; + newFrame.origin.y -= adjHeight; + newFrame.size.height += adjHeight; + [self setFrame:newFrame]; [[[self window] contentView] setNeedsDisplay:YES]; } diff --git a/CEOutlineMenuButton.h b/CEOutlineMenuButton.h index 216792eb58..8b6784f16c 100644 --- a/CEOutlineMenuButton.h +++ b/CEOutlineMenuButton.h @@ -3,8 +3,9 @@ CEOutlineMenuButton (for CotEditor) -Copyright (C) 2004-2007 nakamuxu. -http://www.aynimac.com/ + Copyright (C) 2004-2007 nakamuxu. + Copyright (C) 2014 CotEditor Project + http://coteditor.github.io ================================================= encoding="UTF-8" @@ -31,12 +32,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #import -#import "CEOutlineMenuButtonCell.h" -#import "constants.h" @interface CEOutlineMenuButton : NSPopUpButton -{ -} @end diff --git a/CEOutlineMenuButton.m b/CEOutlineMenuButton.m index 91d3391bcf..5e692cb2d9 100644 --- a/CEOutlineMenuButton.m +++ b/CEOutlineMenuButton.m @@ -3,8 +3,9 @@ CEOutlineMenuButton (for CotEditor) -Copyright (C) 2004-2007 nakamuxu. -http://www.aynimac.com/ + Copyright (C) 2004-2007 nakamuxu. + Copyright (C) 2014 CotEditor Project + http://coteditor.github.io ================================================= encoding="UTF-8" @@ -31,6 +32,8 @@ */ #import "CEOutlineMenuButton.h" +#import "CEOutlineMenuButtonCell.h" +#import "constants.h" @implementation CEOutlineMenuButton @@ -60,20 +63,18 @@ + (Class)cellClass //======================================================= // ------------------------------------------------------ -- (id)initWithFrame:(NSRect)inFrameRect pullsDown:(BOOL)inBool +- (instancetype)initWithFrame:(NSRect)buttonFrame pullsDown:(BOOL)flag // 初期化 // ------------------------------------------------------ { - self = [super initWithFrame:inFrameRect pullsDown:inBool]; + self = [super initWithFrame:buttonFrame pullsDown:flag]; if (self) { - id theValues = [[NSUserDefaultsController sharedUserDefaultsController] values]; - id theCell = [self cell]; - - [theCell setFont: - [NSFont fontWithName:[theValues valueForKey:k_key_navigationBarFontName] - size:[[theValues valueForKey:k_key_navigationBarFontSize] floatValue]]]; - [theCell setControlSize:NSSmallControlSize]; - [theCell setBordered:NO]; + id values = [[NSUserDefaultsController sharedUserDefaultsController] values]; + + [[self cell] setFont:[NSFont fontWithName:[values valueForKey:k_key_navigationBarFontName] + size:(CGFloat)[[values valueForKey:k_key_navigationBarFontSize] doubleValue]]]; + [[self cell] setControlSize:NSSmallControlSize]; + [[self cell] setBordered:NO]; } return self; } diff --git a/CEOutlineMenuButtonCell.h b/CEOutlineMenuButtonCell.h index 427dfde30c..7a3b34589e 100644 --- a/CEOutlineMenuButtonCell.h +++ b/CEOutlineMenuButtonCell.h @@ -3,8 +3,9 @@ CEOutlineMenuButtonCell (for CotEditor) -Copyright (C) 2004-2007 nakamuxu. -http://www.aynimac.com/ + Copyright (C) 2004-2007 nakamuxu. + Copyright (C) 2014 CotEditor Project + http://coteditor.github.io ================================================= encoding="UTF-8" @@ -31,11 +32,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #import -#import "constants.h" @interface CEOutlineMenuButtonCell : NSPopUpButtonCell -{ -} @end diff --git a/CEOutlineMenuButtonCell.m b/CEOutlineMenuButtonCell.m index 175219f11d..2874d585d7 100644 --- a/CEOutlineMenuButtonCell.m +++ b/CEOutlineMenuButtonCell.m @@ -3,8 +3,9 @@ CEOutlineMenuButtonCell (for CotEditor) -Copyright (C) 2004-2007 nakamuxu. -http://www.aynimac.com/ + Copyright (C) 2004-2007 nakamuxu. + Copyright (C) 2014 CotEditor Project + http://coteditor.github.io ================================================= encoding="UTF-8" @@ -35,34 +36,27 @@ @implementation CEOutlineMenuButtonCell -#pragma mark ===== Public method ===== +#pragma mark Public Methods //======================================================= // Public method // //======================================================= - // ------------------------------------------------------ -- (void)drawWithFrame:(NSRect)inCellFrame inView:(NSView *)inControlView +- (void)drawWithFrame:(NSRect)cellFrame inView:(NSView *)controlView // セルの描画 // ------------------------------------------------------ { if (![self isEnabled]) { return; } - NSImage *theBackgroundCenterImg = [NSImage imageNamed:@"popUpButtonBG_center"]; - NSImage *theBackgroundLeftImg = [NSImage imageNamed:@"popUpButtonBG_left"]; - NSImage *theArrowImg = [NSImage imageNamed:@"popUpButtonArrow"]; - float theImgHeight = k_navigationBarHeight - 1; - - [theBackgroundCenterImg setScalesWhenResized:YES]; - [theBackgroundCenterImg setSize:NSMakeSize(NSWidth(inCellFrame), theImgHeight)]; - [theBackgroundCenterImg compositeToPoint:NSMakePoint(NSMinX(inCellFrame), theImgHeight) - operation:NSCompositeSourceOver]; - [theBackgroundLeftImg compositeToPoint:NSMakePoint(NSMinX(inCellFrame), theImgHeight) - operation:NSCompositeSourceOver]; - [theArrowImg compositeToPoint:NSMakePoint(NSMaxX(inCellFrame) - 11.0, theImgHeight) - operation:NSCompositeSourceOver]; - [super drawInteriorWithFrame:inCellFrame inView:inControlView]; + + NSImage *centerImage = [NSImage imageNamed:@"popUpButtonBG_center"]; + NSImage *leftImage = [NSImage imageNamed:@"popUpButtonBG_left"]; + NSImage *rightImage= [NSImage imageNamed:@"popUpButtonArrow"]; + + NSDrawThreePartImage(cellFrame, leftImage, centerImage, rightImage, NO, NSCompositeSourceOver, 1.0, YES); + + [super drawInteriorWithFrame:cellFrame inView:controlView]; } @end diff --git a/CEPrefEncodingDataSource.m b/CEPrefEncodingDataSource.m index 2449086c22..5ea0e29c34 100644 --- a/CEPrefEncodingDataSource.m +++ b/CEPrefEncodingDataSource.m @@ -3,8 +3,9 @@ CEPrefEncodingDataSource (for CotEditor) -Copyright (C) 2004-2007 nakamuxu. -http://www.aynimac.com/ + Copyright (C) 2004-2007 nakamuxu. + Copyright (C) 2014 CotEditor Project + http://coteditor.github.io ================================================= encoding="UTF-8" @@ -94,7 +95,7 @@ - (void)writeEncodingsToUserDefaults //======================================================= // ------------------------------------------------------ -- (int)numberOfRowsInTableView:(NSTableView *)inTableView +- (NSInteger)numberOfRowsInTableView:(NSTableView *)inTableView // tableView の行数を返す // ------------------------------------------------------ { @@ -105,11 +106,11 @@ - (int)numberOfRowsInTableView:(NSTableView *)inTableView // ------------------------------------------------------ - (id)tableView:(NSTableView *)inTableView objectValueForTableColumn:(NSTableColumn *)inTableColumn - row:(int)inRowIndex + row:(NSInteger)inRowIndex // tableViewの列・行で指定された内容を返す // ------------------------------------------------------ { - CFStringEncoding theCFEncoding = [[_encodingsForTmp objectAtIndex:inRowIndex] unsignedLongValue]; + CFStringEncoding theCFEncoding = [_encodingsForTmp[inRowIndex] unsignedLongValue]; NSString *outStr; if (theCFEncoding == kCFStringEncodingInvalidId) { // = separator @@ -118,7 +119,7 @@ - (id)tableView:(NSTableView *)inTableView NSStringEncoding theEncoding = CFStringConvertEncodingToNSStringEncoding(theCFEncoding); NSString *theIanaName = (NSString *)CFStringConvertEncodingToIANACharSetName(theCFEncoding); if (theIanaName == nil) { - theIanaName = [NSString stringWithString:@"-"]; + theIanaName = @"-"; } outStr = [NSString stringWithFormat:@"%@ : [%@]", [NSString localizedNameOfStringEncoding:theEncoding], theIanaName]; @@ -133,20 +134,18 @@ - (BOOL)tableView:(NSTableView *)inTableView // ドラッグ開始/tableView からのドラッグアイテム内容をセット // ------------------------------------------------------ { - int i; - // ドラッグ受付タイプを登録 - [inTableView registerForDraggedTypes:[NSArray arrayWithObject:k_dropMyselfPboardType]]; + [inTableView registerForDraggedTypes:@[k_dropMyselfPboardType]]; // すべての選択を解除して、改めてドラッグされる行を選択し直す NSMutableIndexSet *theIndexes = [NSMutableIndexSet indexSet]; [inTableView deselectAll:self]; - for (i = 0; i < [inRows count]; i++) { - [theIndexes addIndex:[[inRows objectAtIndex:i] unsignedIntValue]]; + for (NSNumber *index in inRows) { + [theIndexes addIndex:[index unsignedIntegerValue]]; } [inTableView selectRowIndexes:theIndexes byExtendingSelection:YES]; // ドラッグされる行の保持、Pasteboard の設定 _draggedItems = inRows; // ドラッグ中にのみ必要なオブジェクトなので、retainしない - [ioPboard declareTypes:[NSArray arrayWithObject:k_dropMyselfPboardType] owner:nil]; + [ioPboard declareTypes:@[k_dropMyselfPboardType] owner:nil]; [ioPboard setData:[NSData data] forType:k_dropMyselfPboardType]; return YES; @@ -155,7 +154,7 @@ - (BOOL)tableView:(NSTableView *)inTableView // ------------------------------------------------------ - (NSDragOperation)tableView:(NSTableView *)inTableView - validateDrop:(id )inInfo proposedRow:(int)inRow + validateDrop:(id )inInfo proposedRow:(NSInteger)inRow proposedDropOperation:(NSTableViewDropOperation)inOperation // tableViewへドラッグアイテムが入ってきたときの判定 // ------------------------------------------------------ @@ -174,7 +173,7 @@ - (NSDragOperation)tableView:(NSTableView *)inTableView // ------------------------------------------------------ - (BOOL)tableView:(NSTableView *)inTableView - acceptDrop:(id )inInfo row:(int)inRow + acceptDrop:(id )inInfo row:(NSInteger)inRow dropOperation:(NSTableViewDropOperation)inOperation // ドロップの許可、アイテムの移動挿入 // ------------------------------------------------------ @@ -184,14 +183,14 @@ - (BOOL)tableView:(NSTableView *)inTableView NSMutableArray *theDraggingArray = [NSMutableArray array]; NSMutableArray *theNewArray = [NSMutableArray arrayWithArray:_encodingsForTmp]; id theObject; - int i, theCount, theNewRow = inRow; + NSInteger i, theCount, theNewRow = inRow; while (theObject = [theEnumerator nextObject]) { - if ([theObject unsignedIntValue] < [theNewArray count]) { + if ([theObject unsignedIntegerValue] < [theNewArray count]) { [theDraggingArray addObject: - [[[theNewArray objectAtIndex:[theObject unsignedIntValue]] copy] autorelease]]; - [theNewArray removeObjectAtIndex:[theObject unsignedIntValue]]; - if ([theObject intValue] < inRow) { // 下方へドラッグ移動されるときの調整 + [[theNewArray[[theObject unsignedIntegerValue]] copy] autorelease]]; + [theNewArray removeObjectAtIndex:[theObject unsignedIntegerValue]]; + if ([theObject integerValue] < inRow) { // 下方へドラッグ移動されるときの調整 theNewRow--; } } @@ -199,10 +198,10 @@ - (BOOL)tableView:(NSTableView *)inTableView theCount = [theDraggingArray count]; for (i = 0; i < theCount; i++) { if (inRow != k_lastRow) { - [theNewArray insertObject:[theDraggingArray objectAtIndex:i] atIndex:theNewRow]; + [theNewArray insertObject:theDraggingArray[i] atIndex:theNewRow]; [theSelectIndexSet addIndex:(theNewRow + i)]; } else { - [theNewArray addObject:[theDraggingArray objectAtIndex:(theCount - i - 1)]]; + [theNewArray addObject:theDraggingArray[(theCount - i - 1)]]; [theSelectIndexSet addIndex:i]; } } @@ -234,10 +233,10 @@ - (void)tableViewSelectionDidChange:(NSNotification *)inNotification if ([theSelectIndexSet count] > 0) { id theObject; - unsigned int i; + NSUInteger i; for (i = 0; i < [_encodingsForTmp count]; i++) { - theObject = [_encodingsForTmp objectAtIndex:i]; + theObject = _encodingsForTmp[i]; if (([theSelectIndexSet containsIndex:i]) && ([theObject unsignedLongValue] == kCFStringEncodingInvalidId)) { [_delSeparatorButton setEnabled:YES]; @@ -281,11 +280,10 @@ - (IBAction)addSeparator:(id)sender // セパレータ追加 // ------------------------------------------------------ { - int theIndex, theSelected = [_tableView selectedRow]; + NSInteger theIndex, theSelected = [_tableView selectedRow]; theIndex = (theSelected < 0) ? 0 : theSelected; - [_encodingsForTmp insertObject:[NSNumber numberWithUnsignedLong:kCFStringEncodingInvalidId] - atIndex:theIndex]; + [_encodingsForTmp insertObject:@(kCFStringEncodingInvalidId) atIndex:theIndex]; [_tableView reloadData]; [_tableView selectRowIndexes:[NSIndexSet indexSetWithIndex:theIndex] byExtendingSelection:NO]; } @@ -303,10 +301,10 @@ - (IBAction)deleteSeparator:(id)sender } NSMutableArray *theNewArray = [NSMutableArray array]; id theObject; - unsigned int i, theDeleted = 0; + NSUInteger i, theDeleted = 0; for (i = 0; i < [_encodingsForTmp count]; i++) { - theObject = [_encodingsForTmp objectAtIndex:i]; + theObject = _encodingsForTmp[i]; if (([theSelectIndexSet containsIndex:i]) && ([theObject unsignedLongValue] == kCFStringEncodingInvalidId)) { theDeleted++; diff --git a/CEPreferences.h b/CEPreferences.h index c59c3414f4..ada1061e50 100644 --- a/CEPreferences.h +++ b/CEPreferences.h @@ -3,8 +3,9 @@ CEPreferences (for CotEditor) -Copyright (C) 2004-2007 nakamuxu. -http://www.aynimac.com/ + Copyright (C) 2004-2007 nakamuxu. + Copyright (C) 2014 CotEditor Project + http://coteditor.github.io ================================================= encoding="UTF-8" @@ -62,24 +63,24 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. IBOutlet id _syntaxStyleDeleteButton; IBOutlet id _syntaxStyleXtsnErrButton; - float _sampleWidth; - float _sampleHeight; + CGFloat _sampleWidth; + CGFloat _sampleHeight; id _appController; - int _currentSheetCode; + NSInteger _currentSheetCode; BOOL _doDeleteFileDrop; } // Public method - (void)setupEncodingMenus:(NSArray *)inMenuItems; -- (id)initWithAppController:(id)inAppontroller; +- (instancetype)initWithAppController:(id)inAppontroller; - (void)setupSyntaxMenus; - (void)openPrefWindow; - (void)closePrefWindow; -- (float)sampleWidth; -- (void)setSampleWidth:(float)inWidth; -- (float)sampleHeight; -- (void)setSampleHeight:(float)inHeight; +- (CGFloat)sampleWidth; +- (void)setSampleWidth:(CGFloat)inWidth; +- (CGFloat)sampleHeight; +- (void)setSampleHeight:(CGFloat)inHeight; - (void)changeFont:(id)sender; - (void)makeFirstResponderToPrefWindow; - (void)writeBackFileDropArray; diff --git a/CEPreferences.m b/CEPreferences.m index 7496c1ad2d..8b9dd09077 100644 --- a/CEPreferences.m +++ b/CEPreferences.m @@ -3,8 +3,9 @@ CEPreferences (for CotEditor) -Copyright (C) 2004-2007 nakamuxu. -http://www.aynimac.com/ + Copyright (C) 2004-2007 nakamuxu. + Copyright (C) 2014 CotEditor Project + http://coteditor.github.io ================================================= encoding="UTF-8" @@ -48,19 +49,15 @@ - (void)setupInvisibleNewLinePopup; - (void)setupInvisibleFullwidthSpacePopup; - (void)setupSyntaxStylesPopup; - (void)deleteStyleAlertDidEnd:(NSAlert *)inAlert - returnCode:(int)inReturnCode contextInfo:(void *)inContextInfo; -- (void)importOpenPanelDidEnd:(NSOpenPanel *)inSheet - returnCode:(int)inReturnCode contextInfo:(void *)inContextInfo; + returnCode:(NSInteger)inReturnCode contextInfo:(void *)inContextInfo; - (void)secondarySheedlDidEnd:(NSAlert *)inSheet - returnCode:(int)inReturnCode contextInfo:(void *)inContextInfo; + returnCode:(NSInteger)inReturnCode contextInfo:(void *)inContextInfo; - (void)autoDetectAlertDidEnd:(NSAlert *)inSheet - returnCode:(int)inReturnCode contextInfo:(void *)inContextInfo; -- (void)doImport:(NSString *)inFileName withCurrentSheetWindow:(NSWindow *)inWindow; -- (void)exportSavePanelDidEnd:(NSSavePanel *)inSheet - returnCode:(int)inReturnCode contextInfo:(void *)inContextInfo; + returnCode:(NSInteger)inReturnCode contextInfo:(void *)inContextInfo; +- (void)doImport:(NSURL *)fileURL withCurrentSheetWindow:(NSWindow *)inWindow; - (void)doDeleteFileDropSetting; - (void)deleteFileDropSettingAlertDidEnd:(NSAlert *)inAlert - returnCode:(int)inReturnCode contextInfo:(void *)inContextInfo; + returnCode:(NSInteger)inReturnCode contextInfo:(void *)inContextInfo; - (void)editNewAddedRowOfFileDropTableView; @end @@ -80,7 +77,7 @@ @implementation CEPreferences //======================================================= // ------------------------------------------------------ -- (id)initWithAppController:(id)inAppController +- (instancetype)initWithAppController:(id)inAppController // 初期化 // ------------------------------------------------------ { @@ -119,8 +116,7 @@ - (void)setupEncodingMenus:(NSArray *)inMenuItems id theValues = [[NSUserDefaultsController sharedUserDefaultsController] values]; NSString *theTitle; NSMenuItem *theItem; - unsigned long theSelected; - int i, theCount = [inMenuItems count]; + NSUInteger theSelected; [_encodingMenuInOpen removeAllItems]; theItem = [[[NSMenuItem alloc] initWithTitle:NSLocalizedString(@"Auto-Detect",@"") @@ -130,9 +126,9 @@ - (void)setupEncodingMenus:(NSArray *)inMenuItems [[_encodingMenuInOpen menu] addItem:[NSMenuItem separatorItem]]; [_encodingMenuInNew removeAllItems]; - for (i = 0; i < theCount; i++) { - [[_encodingMenuInOpen menu] addItem:[[[inMenuItems objectAtIndex:i] copy] autorelease]]; - [[_encodingMenuInNew menu] addItem:[[[inMenuItems objectAtIndex:i] copy] autorelease]]; + for (NSMenuItem *menuItem in inMenuItems) { + [[_encodingMenuInOpen menu] addItem:[[menuItem copy] autorelease]]; + [[_encodingMenuInNew menu] addItem:[[menuItem copy] autorelease]]; } // (エンコーディング設定メニューはバインディングを使っているが、タグの選択がバインディングで行われた後に // メニューが追加/削除されるため、結果的に選択がうまく動かない。しかたないので、コードから選択している) @@ -186,7 +182,7 @@ - (void)closePrefWindow // ------------------------------------------------------ -- (float)sampleWidth +- (CGFloat)sampleWidth // サンプルウィンドウの幅を得る // ------------------------------------------------------ { @@ -195,7 +191,7 @@ - (float)sampleWidth // ------------------------------------------------------ -- (void)setSampleWidth:(float)inWidth +- (void)setSampleWidth:(CGFloat)inWidth // サンプルウィンドウの幅をセット // ------------------------------------------------------ { @@ -205,7 +201,7 @@ - (void)setSampleWidth:(float)inWidth // ------------------------------------------------------ -- (float)sampleHeight +- (CGFloat)sampleHeight // サンプルウィンドウの高さをセット // ------------------------------------------------------ { @@ -214,7 +210,7 @@ - (float)sampleHeight // ------------------------------------------------------ -- (void)setSampleHeight:(float)inHeight +- (void)setSampleHeight:(CGFloat)inHeight // サンプルウィンドウの高さを得る // ------------------------------------------------------ { @@ -232,7 +228,7 @@ - (void)changeFont:(id)sender NSUserDefaults *theDefaults = [NSUserDefaults standardUserDefaults]; NSFont *theNewFont = [sender convertFont:[NSFont systemFontOfSize:0]]; NSString *theName = [theNewFont fontName]; - float theSize = [theNewFont pointSize]; + CGFloat theSize = [theNewFont pointSize]; if ([[[_prefTabView selectedTabViewItem] identifier] isEqualToString:k_prefFormatItemID]) { [theDefaults setObject:theName forKey:k_key_fontName]; @@ -292,9 +288,8 @@ - (void)awakeFromNib // 2008.07.15. [_fileDropGlossaryTextView setString:NSLocalizedString(@"<<>>\nThe dropped file's absolute path.\n\n<<>>\nThe relative path between the dropped file and the document.\n\n<<>>\nThe dropped file's name with extension (if exists).\n\n<<>>\nThe dropped file's name without extension.\n\n<<>>\nThe dropped file's extension.\n\n<<>>\nThe dropped file's extension (converted to lowercase).\n\n<<>>\nThe dropped file's extension (converted to uppercase).\n\n<<>>\nThe parent directory name of the dropped file.\n\n<<>>\n(if the dropped file is Image) The image width.\n\n<<>>\n(if the dropped file is Image) The image height.",@"")]; - if (floor(NSAppKitVersionNumber) > NSAppKitVersionNumber10_3) { // = 10.4+ - [_prefWindow setShowsToolbarButton:NO]; - } + + [_prefWindow setShowsToolbarButton:NO]; } @@ -340,10 +335,9 @@ - (void)controlTextDidEndEditing:(NSNotification *)inNotification NSArray *theComponents = [theXtsnStr componentsSeparatedByString:@","]; NSMutableArray *theNewComps = [NSMutableArray array]; NSString *thePartStr, *theNewXtsnStr; - int j, theCount = [theComponents count]; - for (j = 0; j < theCount; j++) { - thePartStr = [[theComponents objectAtIndex:j] stringByTrimmingCharactersInSet:theTrimSet]; + for (NSString *component in theComponents) { + thePartStr = [component stringByTrimmingCharactersInSet:theTrimSet]; if ([thePartStr length] > 0) { [theNewComps addObject:thePartStr]; } @@ -397,10 +391,10 @@ - (IBAction)showFonts:(id)sender if ([[[_prefTabView selectedTabViewItem] identifier] isEqualToString:k_prefPrintItemID]) { theFont = [NSFont fontWithName:[theValues valueForKey:k_key_printFontName] - size:[[theValues valueForKey:k_key_printFontSize] floatValue]]; + size:(CGFloat)[[theValues valueForKey:k_key_printFontSize] doubleValue]]; } else { theFont = [NSFont fontWithName:[theValues valueForKey:k_key_fontName] - size:[[theValues valueForKey:k_key_fontSize] floatValue]]; + size:(CGFloat)[[theValues valueForKey:k_key_fontSize] doubleValue]]; } [_prefWindow makeFirstResponder:_prefWindow]; @@ -449,8 +443,8 @@ - (IBAction)openSizeSampleWindow:(id)sender // ------------------------------------------------------ { id theValues = [[NSUserDefaultsController sharedUserDefaultsController] values]; - NSSize theSize = NSMakeSize([[theValues valueForKey:k_key_windowWidth] floatValue], - [[theValues valueForKey:k_key_windowHeight] floatValue]); + NSSize theSize = NSMakeSize((CGFloat)[[theValues valueForKey:k_key_windowWidth] doubleValue], + (CGFloat)[[theValues valueForKey:k_key_windowHeight] doubleValue]); [_sizeSampleWindow setContentSize:theSize]; [_sizeSampleWindow makeKeyAndOrderFront:self]; @@ -484,7 +478,7 @@ - (IBAction)openSyntaxEditSheet:(id)sender // カラーシンタックス編集シートを開き、閉じる // ------------------------------------------------------ { - int theSelected = [_syntaxStylesPopup indexOfSelectedItem] - 2; // "None"とセパレータ分のオフセット + NSInteger theSelected = [_syntaxStylesPopup indexOfSelectedItem] - 2; // "None"とセパレータ分のオフセット if (([sender tag] != k_syntaxNewTag) && (theSelected < 0)) { return; } if (![[CESyntaxManager sharedInstance] setSelectionIndexOfStyle:theSelected mode:[sender tag]]) { @@ -509,9 +503,8 @@ - (IBAction)openSyntaxEditSheet:(id)sender if ([[CESyntaxManager sharedInstance] isOkButtonPressed]) { // 当該スタイルを適用しているドキュメントに前面に出たときの再カラーリングフラグを立てる NSString *theNewName = [[CESyntaxManager sharedInstance] editedNewStyleName]; - NSDictionary *theDict = [NSDictionary dictionaryWithObjectsAndKeys: - theOldName, k_key_oldStyleName, - theNewName, k_key_newStyleName, nil]; + NSDictionary *theDict = @{k_key_oldStyleName: theOldName, + k_key_newStyleName: theNewName}; [[CEDocumentController sharedDocumentController] setRecolorFlagToAllDocumentsWithStyleName:theDict]; [[CESyntaxManager sharedInstance] setEditedNewStyleName:@""]; @@ -553,7 +546,7 @@ - (IBAction)deleteSyntaxStyle:(id)sender // シンタックスカラーリングスタイル削除ボタンが押された // ------------------------------------------------------ { - int theSelected = [_syntaxStylesPopup indexOfSelectedItem] - 2; + NSInteger theSelected = [_syntaxStylesPopup indexOfSelectedItem] - 2; if (![[CESyntaxManager sharedInstance] setSelectionIndexOfStyle:theSelected mode:k_syntaxNoSheetTag]) { @@ -579,20 +572,47 @@ - (IBAction)importSyntaxStyle:(id)sender // シンタックスカラーリングスタイルインポートボタンが押された // ------------------------------------------------------ { - NSOpenPanel *theOpenPanel = [NSOpenPanel openPanel]; + NSOpenPanel *openPanel = [NSOpenPanel openPanel]; // OpenPanelをセットアップ(既定値を含む)、シートとして開く - [theOpenPanel setPrompt:NSLocalizedString(@"Import",@"")]; - [theOpenPanel setResolvesAliases:YES]; - [theOpenPanel setAllowsMultipleSelection:NO]; - [theOpenPanel setCanChooseDirectories:NO]; - [theOpenPanel beginSheetForDirectory:NSHomeDirectory() - file:nil - types:[NSArray arrayWithObject:@"plist"] - modalForWindow:_prefWindow - modalDelegate:self - didEndSelector:@selector(importOpenPanelDidEnd:returnCode:contextInfo:) - contextInfo:NULL]; + [openPanel setPrompt:NSLocalizedString(@"Import",@"")]; + [openPanel setResolvesAliases:YES]; + [openPanel setAllowsMultipleSelection:NO]; + [openPanel setCanChooseDirectories:NO]; + [openPanel setAllowedFileTypes:@[@"plist"]]; + + [openPanel beginSheetModalForWindow:_prefWindow completionHandler:^(NSInteger result) { + if (result == NSFileHandlingPanelCancelButton) return; + + NSURL *URL = [openPanel URLs][0]; + NSString *styleName = [[URL lastPathComponent] stringByDeletingPathExtension]; + + // 同名styleが既にあるときは、置換してもいいか確認 + if ([[CESyntaxManager sharedInstance] existsStyleFileWithStyleName:styleName]) { + // オープンパネルを閉じる + [openPanel orderOut:self]; + [_prefWindow makeKeyAndOrderFront:self]; + + NSAlert *theAlert; + NSString *theMessage = [NSString stringWithFormat: + NSLocalizedString(@"the \"%@\" style already exists.", @""), styleName]; + theAlert = [NSAlert alertWithMessageText:theMessage + defaultButton:NSLocalizedString(@"Cancel",@"") + alternateButton:NSLocalizedString(@"Replace",@"") otherButton:nil + informativeTextWithFormat:NSLocalizedString(@"Do you want to replace it ?\nReplaced style cannot be restored.",@"")]; + // 現行シート値を設定し、確認のためにセカンダリシートを開く + _currentSheetCode = k_syntaxImportTag; + NSBeep(); + [theAlert beginSheetModalForWindow:_prefWindow modalDelegate:self + didEndSelector:@selector(secondarySheedlDidEnd:returnCode:contextInfo:) + contextInfo:[URL retain]]; // ===== retain + + } else { + // 重複するファイル名がないとき、インポート実行 + [self doImport:URL withCurrentSheetWindow:openPanel]; + } + }]; + } @@ -602,19 +622,28 @@ - (IBAction)exportSyntaxStyle:(id)sender // シンタックスカラーリングスタイルエクスポートボタンが押された // ------------------------------------------------------ { - NSSavePanel *theSavePanel = [NSSavePanel savePanel]; + NSSavePanel *savePanel = [NSSavePanel savePanel]; // SavePanelをセットアップ(既定値を含む)、シートとして開く - [theSavePanel setCanCreateDirectories:YES]; - [theSavePanel setCanSelectHiddenExtension:YES]; - [theSavePanel setNameFieldLabel:NSLocalizedString(@"Export As:",@"")]; - [theSavePanel setAllowedFileTypes:[NSArray arrayWithObject:@"plist"]]; - [theSavePanel beginSheetForDirectory:NSHomeDirectory() - file:[[_syntaxStylesPopup title] stringByAppendingPathExtension:@"plist"] - modalForWindow:_prefWindow - modalDelegate:self - didEndSelector:@selector(exportSavePanelDidEnd:returnCode:contextInfo:) - contextInfo:NULL]; + [savePanel setCanCreateDirectories:YES]; + [savePanel setCanSelectHiddenExtension:YES]; + [savePanel setNameFieldLabel:NSLocalizedString(@"Export As:",@"")]; + [savePanel setNameFieldStringValue:[_syntaxStylesPopup title]]; + [savePanel setAllowedFileTypes:@[@"plist"]]; + + [savePanel beginSheetModalForWindow:_prefWindow completionHandler:^(NSInteger result) { + if (result == NSFileHandlingPanelCancelButton) return; + + NSFileManager *fileManager = [NSFileManager defaultManager]; + NSURL *sourceURL = [[CESyntaxManager sharedInstance] URLOfStyle:[_syntaxStylesPopup title]]; + NSURL *destURL = [savePanel URL]; + + // 同名ファイルが既にあるときは、削除(Replace の確認は、SavePanel で自動的に行われている) + if ([fileManager fileExistsAtPath:[destURL path]]) { + [fileManager removeItemAtURL:destURL error:nil]; + } + [fileManager copyItemAtURL:sourceURL toURL:destURL error:nil]; + }]; } @@ -720,7 +749,7 @@ - (IBAction)setupCustomLineSpacing:(id)sender { // IB で Formatter が設定できないのでメソッドで行ってる。 - float theValue = [sender floatValue]; + CGFloat theValue = (CGFloat)[sender doubleValue]; if (theValue < k_lineSpacingMin) { theValue = k_lineSpacingMin; } if (theValue > k_lineSpacingMax) { theValue = k_lineSpacingMax; } @@ -766,11 +795,11 @@ - (IBAction)openPrefHelp:(id)sender //------------------------------------------------------ { NSString *theBookName = [[NSBundle mainBundle] objectForInfoDictionaryKey: @"CFBundleHelpBookName"]; - NSArray *theAnchorsArray = [NSArray arrayWithObjects:k_helpPrefAnchors, nil]; - int theTag = [sender tag]; + NSArray *theAnchorsArray = @[k_helpPrefAnchors]; + NSInteger theTag = [sender tag]; if ((theTag >= 0) && (theTag < [theAnchorsArray count])) { - [[NSHelpManager sharedHelpManager] openHelpAnchor:[theAnchorsArray objectAtIndex:theTag] + [[NSHelpManager sharedHelpManager] openHelpAnchor:theAnchorsArray[theTag] inBook:theBookName]; } } @@ -811,14 +840,14 @@ - (void)setFontFamilyNameAndSize id theValues = [[NSUserDefaultsController sharedUserDefaultsController] values]; NSString *theName = [theValues valueForKey:k_key_fontName]; - float theSize = [[theValues valueForKey:k_key_fontSize] floatValue]; + CGFloat theSize = (CGFloat)[[theValues valueForKey:k_key_fontSize] doubleValue]; NSFont *theFont = [NSFont fontWithName:theName size:theSize]; NSString *theLocalizedName = [theFont displayName]; [_prefFontFamilyNameSize setStringValue:[NSString stringWithFormat:@"%@ (%gpt)",theLocalizedName,theSize]]; theName = [theValues valueForKey:k_key_printFontName]; - theSize = [[theValues valueForKey:k_key_printFontSize] floatValue]; + theSize = (CGFloat)[[theValues valueForKey:k_key_printFontSize] doubleValue]; theFont = [NSFont fontWithName:theName size:theSize]; theLocalizedName = [theFont displayName]; @@ -851,8 +880,8 @@ - (void)setupInvisibleSpacePopup id theValues = [[NSUserDefaultsController sharedUserDefaultsController] values]; NSString *theTitle; NSMenuItem *theItem; - unsigned int theSelected; - int i; + NSUInteger theSelected; + NSUInteger i; [_invisibleSpacePopup removeAllItems]; for (i = 0; i < (sizeof(k_invisibleSpaceCharList) / sizeof(unichar)); i++) { @@ -862,7 +891,7 @@ - (void)setupInvisibleSpacePopup } // (不可視文字表示設定ポップアップメニューはバインディングを使っているが、タグの選択がバインディングで行われた後に // メニューが追加/削除されるため、結果的に選択がうまく動かない。しかたないので、コードから選択している) - theSelected = [[theValues valueForKey:k_key_invisibleSpace] unsignedIntValue]; + theSelected = [[theValues valueForKey:k_key_invisibleSpace] unsignedIntegerValue]; [_invisibleSpacePopup selectItemAtIndex:theSelected]; } @@ -875,8 +904,8 @@ - (void)setupInvisibleTabPopup id theValues = [[NSUserDefaultsController sharedUserDefaultsController] values]; NSString *theTitle; NSMenuItem *theItem; - unsigned int theSelected; - int i; + NSUInteger theSelected; + NSUInteger i; [_invisibleTabPopup removeAllItems]; for (i = 0; i < (sizeof(k_invisibleTabCharList) / sizeof(unichar)); i++) { @@ -886,7 +915,7 @@ - (void)setupInvisibleTabPopup } // (不可視文字表示設定ポップアップメニューはバインディングを使っているが、タグの選択がバインディングで行われた後に // メニューが追加/削除されるため、結果的に選択がうまく動かない。しかたないので、コードから選択している) - theSelected = [[theValues valueForKey:k_key_invisibleTab] unsignedIntValue]; + theSelected = [[theValues valueForKey:k_key_invisibleTab] unsignedIntegerValue]; [_invisibleTabPopup selectItemAtIndex:theSelected]; } @@ -899,8 +928,8 @@ - (void)setupInvisibleNewLinePopup id theValues = [[NSUserDefaultsController sharedUserDefaultsController] values]; NSString *theTitle; NSMenuItem *theItem; - unsigned int theSelected; - int i; + NSUInteger theSelected; + NSUInteger i; [_invisibleNewLinePopup removeAllItems]; for (i = 0; i < (sizeof(k_invisibleNewLineCharList) / sizeof(unichar)); i++) { @@ -910,7 +939,7 @@ - (void)setupInvisibleNewLinePopup } // (不可視文字表示設定ポップアップメニューはバインディングを使っているが、タグの選択がバインディングで行われた後に // メニューが追加/削除されるため、結果的に選択がうまく動かない。しかたないので、コードから選択している) - theSelected = [[theValues valueForKey:k_key_invisibleNewLine] unsignedIntValue]; + theSelected = [[theValues valueForKey:k_key_invisibleNewLine] unsignedIntegerValue]; [_invisibleNewLinePopup selectItemAtIndex:theSelected]; } @@ -923,8 +952,8 @@ - (void)setupInvisibleFullwidthSpacePopup id theValues = [[NSUserDefaultsController sharedUserDefaultsController] values]; NSString *theTitle; NSMenuItem *theItem; - unsigned int theSelected; - int i; + NSUInteger theSelected; + NSUInteger i; [_invisibleFullwidthSpacePopup removeAllItems]; for (i = 0; i < (sizeof(k_invisibleFullwidthSpaceCharList) / sizeof(unichar)); i++) { @@ -934,7 +963,7 @@ - (void)setupInvisibleFullwidthSpacePopup } // (不可視文字表示設定ポップアップメニューはバインディングを使っているが、タグの選択がバインディングで行われた後に // メニューが追加/削除されるため、結果的に選択がうまく動かない。しかたないので、コードから選択している) - theSelected = [[theValues valueForKey:k_key_invisibleFullwidthSpace] unsignedIntValue]; + theSelected = [[theValues valueForKey:k_key_invisibleFullwidthSpace] unsignedIntegerValue]; [_invisibleFullwidthSpacePopup selectItemAtIndex:theSelected]; } @@ -948,8 +977,7 @@ - (void)setupSyntaxStylesPopup NSArray *theStyleNames = [[CESyntaxManager sharedInstance] styleNames]; NSMenuItem *theItem; NSString *theSelectedTitle; - unsigned int theSelected; - int i, theCount = [theStyleNames count]; + NSUInteger theSelected; [_syntaxStylesPopup removeAllItems]; [_syntaxStylesDefaultPopup removeAllItems]; @@ -962,8 +990,8 @@ - (void)setupSyntaxStylesPopup [[_syntaxStylesDefaultPopup menu] addItem:theItem]; [[_syntaxStylesDefaultPopup menu] addItem:[NSMenuItem separatorItem]]; - for (i = 0; i < theCount; i++) { - theItem = [[[NSMenuItem alloc] initWithTitle:[theStyleNames objectAtIndex:i] + for (NSString *styleName in theStyleNames) { + theItem = [[[NSMenuItem alloc] initWithTitle:styleName action:nil keyEquivalent:@""] autorelease]; [[_syntaxStylesPopup menu] addItem:theItem]; [[_syntaxStylesDefaultPopup menu] addItem:[[theItem copy] autorelease]]; @@ -983,7 +1011,7 @@ - (void)setupSyntaxStylesPopup // ------------------------------------------------------ - (void)deleteStyleAlertDidEnd:(NSAlert *)inAlert - returnCode:(int)inReturnCode contextInfo:(void *)inContextInfo + returnCode:(NSInteger)inReturnCode contextInfo:(void *)inContextInfo // style削除確認シートが閉じる直前 // ------------------------------------------------------ { @@ -1019,48 +1047,9 @@ - (void)deleteStyleAlertDidEnd:(NSAlert *)inAlert } -// ------------------------------------------------------ -- (void)importOpenPanelDidEnd:(NSOpenPanel *)inSheet - returnCode:(int)inReturnCode contextInfo:(void *)inContextInfo -// styleインポートオープンパネルシートが閉じる直前 -// ------------------------------------------------------ -{ - if (inReturnCode == NSCancelButton) { - return; - } - NSString *theFileName = [[inSheet filenames] objectAtIndex:0]; - NSAlert *theAlert; - - // 同名styleが既にあるときは、置換してもいいか確認 - if ([[CESyntaxManager sharedInstance] existsStyleFileWithStyleName:theFileName]) { - // オープンパネルを閉じる - [inSheet orderOut:self]; - [_prefWindow makeKeyAndOrderFront:self]; - - NSString *theMessage = [NSString stringWithFormat: - NSLocalizedString(@"the \"%@\" style already exists.", @""), - [[theFileName lastPathComponent] stringByDeletingPathExtension]]; - theAlert = [NSAlert alertWithMessageText:theMessage - defaultButton:NSLocalizedString(@"Cancel",@"") - alternateButton:NSLocalizedString(@"Replace",@"") otherButton:nil - informativeTextWithFormat:NSLocalizedString(@"Do you want to replace it ?\nReplaced style cannot be restored.",@"")]; - // 現行シート値を設定し、確認のためにセカンダリシートを開く - _currentSheetCode = k_syntaxImportTag; - NSBeep(); - [theAlert beginSheetModalForWindow:_prefWindow modalDelegate:self - didEndSelector:@selector(secondarySheedlDidEnd:returnCode:contextInfo:) - contextInfo:[theFileName retain]]; // ===== retain - - } else { - // 重複するファイル名がないとき、インポート実行 - [self doImport:theFileName withCurrentSheetWindow:inSheet]; - } -} - - // ------------------------------------------------------ - (void)secondarySheedlDidEnd:(NSAlert *)inSheet - returnCode:(int)inReturnCode contextInfo:(void *)inContextInfo + returnCode:(NSInteger)inReturnCode contextInfo:(void *)inContextInfo // セカンダリシートが閉じる直前 // ------------------------------------------------------ { @@ -1068,21 +1057,21 @@ - (void)secondarySheedlDidEnd:(NSAlert *)inSheet if (inReturnCode == NSAlertAlternateReturn) { // = Replace [self doImport:inContextInfo withCurrentSheetWindow:[inSheet window]]; } - [(NSString *)inContextInfo release]; // ===== release + [(NSURL *)inContextInfo release]; // ===== release } } // ------------------------------------------------------ - (void)autoDetectAlertDidEnd:(NSAlert *)inSheet - returnCode:(int)inReturnCode contextInfo:(void *)inContextInfo + returnCode:(NSInteger)inReturnCode contextInfo:(void *)inContextInfo // 既存ファイルを開くときのエンコーディングメニューで自動認識以外が // 選択されたときの警告シートが閉じる直前 // ------------------------------------------------------ { if (inReturnCode == NSAlertDefaultReturn) { // = revert to Auto-Detect NSUserDefaults *theDefaults = [NSUserDefaults standardUserDefaults]; - [theDefaults setObject:[NSNumber numberWithUnsignedLong:k_autoDetectEncodingMenuTag] + [theDefaults setObject:@(k_autoDetectEncodingMenuTag) forKey:k_key_encodingInOpen]; // ファイルを開くエンコーディングをセット // (オープンダイアログのエンコーディングポップアップメニューが、デフォルトエンコーディング値の格納場所を兼ねている) @@ -1092,11 +1081,11 @@ - (void)autoDetectAlertDidEnd:(NSAlert *)inSheet // ------------------------------------------------------ -- (void)doImport:(NSString *)inFileName withCurrentSheetWindow:(NSWindow *)inWindow +- (void)doImport:(NSURL *)fileURL withCurrentSheetWindow:(NSWindow *)inWindow // styleインポート実行 // ------------------------------------------------------ { - if ([[CESyntaxManager sharedInstance] importStyleFile:inFileName]) { + if ([[CESyntaxManager sharedInstance] importStyleFile:[fileURL path]]) { // インポートに成功したら、メニューとボタンを更新 [_appController buildAllSyntaxMenus]; } else { @@ -1107,7 +1096,7 @@ - (void)doImport:(NSString *)inFileName withCurrentSheetWindow:(NSWindow *)inWin defaultButton:nil alternateButton:nil otherButton:nil informativeTextWithFormat:NSLocalizedString(@"Sorry, could not import \"%@\".",@""), - [inFileName lastPathComponent]]; + [fileURL lastPathComponent]]; NSBeep(); [theAlert beginSheetModalForWindow:_prefWindow modalDelegate:self didEndSelector:NULL @@ -1117,29 +1106,6 @@ - (void)doImport:(NSString *)inFileName withCurrentSheetWindow:(NSWindow *)inWin } -// ------------------------------------------------------ -- (void)exportSavePanelDidEnd:(NSSavePanel *)inSheet - returnCode:(int)inReturnCode contextInfo:(void *)inContextInfo -// styleエクスポートオープンパネルシートが閉じる直前 -// ------------------------------------------------------ -{ - if (inReturnCode == NSCancelButton) { - return; - } - NSFileManager *theFileManager = [NSFileManager defaultManager]; - NSString *theSource = - [[CESyntaxManager sharedInstance] filePathOfStyleName:[_syntaxStylesPopup title]]; - NSString *theDestination = [inSheet filename]; - - // 同名ファイルが既にあるときは、削除(Replace の確認は、SavePanel で自動的に行われている) - if ([theFileManager fileExistsAtPath:theDestination]) { - (void)[theFileManager removeFileAtPath:theDestination handler:nil]; - } - (void)[theFileManager copyPath:theSource toPath:theDestination handler:nil]; - [self setupSyntaxMenus]; // *** この更新は必要か? (2/16) -} - - // ------------------------------------------------------ - (void)doDeleteFileDropSetting // ファイルドロップ編集設定の削除を確認 @@ -1149,11 +1115,11 @@ - (void)doDeleteFileDropSetting if (!_doDeleteFileDrop) { return; } NSArray *theSelected = [_fileDropController selectedObjects]; - NSString *theXtsnStr = [[theSelected objectAtIndex:0] valueForKey:k_key_fileDropExtensions]; + NSString *theXtsnStr = [theSelected[0] valueForKey:k_key_fileDropExtensions]; if ([theSelected count] == 0) { return; } else if (theXtsnStr == nil) { - theXtsnStr = [NSString stringWithString:@""]; + theXtsnStr = @""; } NSString *theMessage = [NSString stringWithFormat: @@ -1167,13 +1133,13 @@ - (void)doDeleteFileDropSetting [theAlert beginSheetModalForWindow:_prefWindow modalDelegate:self didEndSelector:@selector(deleteFileDropSettingAlertDidEnd:returnCode:contextInfo:) - contextInfo:[NSDictionary dictionaryWithObjectsAndKeys:theXtsnStr, @"theXtsnStr", nil]]; + contextInfo:@{@"theXtsnStr": theXtsnStr}]; } // ------------------------------------------------------ - (void)deleteFileDropSettingAlertDidEnd:(NSAlert *)inAlert - returnCode:(int)inReturnCode contextInfo:(void *)inContextInfo + returnCode:(NSInteger)inReturnCode contextInfo:(void *)inContextInfo // ファイルドロップ編集設定削除確認シートが閉じる直前 // ------------------------------------------------------ { diff --git a/CEPreferencesTabController.h b/CEPreferencesTabController.h index 442811a3b9..e7735fc96c 100644 --- a/CEPreferencesTabController.h +++ b/CEPreferencesTabController.h @@ -3,8 +3,9 @@ CEPreferencesTabController (for CotEditor) -Copyright (C) 2004-2007 nakamuxu. -http://www.aynimac.com/ + Copyright (C) 2004-2007 nakamuxu. + Copyright (C) 2014 CotEditor Project + http://coteditor.github.io ================================================= encoding="UTF-8" @@ -40,7 +41,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #import "constants.h" -@interface CEPreferencesTabController : NSObject +@interface CEPreferencesTabController : NSObject { IBOutlet id _prefWindow; IBOutlet id _tabView; diff --git a/CEPreferencesTabController.m b/CEPreferencesTabController.m index c0de866924..0119370aa5 100644 --- a/CEPreferencesTabController.m +++ b/CEPreferencesTabController.m @@ -3,8 +3,9 @@ CEPreferencesTabController (for CotEditor) -Copyright (C) 2004-2007 nakamuxu. -http://www.aynimac.com/ + Copyright (C) 2004-2007 nakamuxu. + Copyright (C) 2014 CotEditor Project + http://coteditor.github.io ================================================= encoding="UTF-8" @@ -170,16 +171,14 @@ - (NSArray *)toolbarDefaultItemIdentifiers:(NSToolbar *)inToolbar // ツールバーアイテムデフォルト配列を返す // ------------------------------------------------------ { - return [NSArray arrayWithObjects: - k_prefGeneralItemID, + return @[k_prefGeneralItemID, k_prefWindowItemID, k_prefViewItemID, k_prefFormatItemID, k_prefSyntaxItemID, k_prefFileDropItemID, k_prefKeyBindingsItemID, - k_prefPrintItemID, - nil]; + k_prefPrintItemID]; } @@ -209,9 +208,9 @@ - (BOOL)tabView:(NSTabView *)inTabView shouldSelectTabViewItem:(NSTabViewItem *) // タブビューは、ウィンドウに対して各辺が10pxずつ小さくなっている状態で配置される必要あり。 NSRect theFrame = [_prefWindow frame]; NSRect theContentRect = [_prefWindow contentRectForFrameRect:theFrame]; - float theOldHeight = NSHeight(theFrame); - float theWidthMargin = NSWidth(theFrame) - NSWidth(theContentRect); - float theHeightMargin = theOldHeight - NSHeight(theContentRect); + CGFloat theOldHeight = NSHeight(theFrame); + CGFloat theWidthMargin = NSWidth(theFrame) - NSWidth(theContentRect); + CGFloat theHeightMargin = theOldHeight - NSHeight(theContentRect); theFrame.size.width = NSWidth([theTabItemView frame]) + theWidthMargin; theFrame.size.height = NSHeight([theTabItemView frame]) + theHeightMargin; diff --git a/CEPrintView.h b/CEPrintView.h index 451d99bcb0..0dd6875de7 100644 --- a/CEPrintView.h +++ b/CEPrintView.h @@ -3,8 +3,9 @@ CEPrintView (for CotEditor) -Copyright (C) 2004-2007 nakamuxu. -http://www.aynimac.com/ + Copyright (C) 2004-2007 nakamuxu. + Copyright (C) 2014 CotEditor Project + http://coteditor.github.io ================================================= encoding="UTF-8" @@ -31,42 +32,13 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #import -#import "constants.h" @interface CEPrintView : NSTextView -{ - NSString *_filePath; - NSDictionary *_lineNumAttrs; - NSDictionary *_headerFooterAttrs; - id _printValues; - NSAttributedString *_headerOneString; - NSAttributedString *_headerTwoString; - NSAttributedString *_footerOneString; - NSAttributedString *_footerTwoString; - int _headerOneAlignment; - int _headerTwoAlignment; - int _footerOneAlignment; - int _footerTwoAlignment; - float _lineSpacing; - float _xOffset; - BOOL _readyToPrint; - BOOL _printLineNum; - BOOL _printHeader; - BOOL _printFooter; - BOOL _printHeaderSeparator; - BOOL _printFooterSeparator; - BOOL _readyToDrawPageNum; - BOOL _showingLineNum; -} -// Public method -- (void)setFilePath:(NSString *)inFilePath; -- (float)lineSpacing; -- (void)setLineSpacing:(float)inLineSpacing; -- (id)printValues; -- (void)setPrintValues:(id)inValues; -- (BOOL)isShowingLineNum; -- (void)setIsShowingLineNum:(BOOL)inValue; +@property (nonatomic, retain) NSString *filePath; +@property (nonatomic) CGFloat lineSpacing; +@property (nonatomic) BOOL isShowingLineNum; +@property (nonatomic, retain) id printValues; @end diff --git a/CEPrintView.m b/CEPrintView.m index 63c30bf816..5dc98b3170 100644 --- a/CEPrintView.m +++ b/CEPrintView.m @@ -3,8 +3,9 @@ CEPrintView (for CotEditor) -Copyright (C) 2004-2007 nakamuxu. -http://www.aynimac.com/ + Copyright (C) 2004-2007 nakamuxu. + Copyright (C) 2014 CotEditor Project + http://coteditor.github.io ================================================= encoding="UTF-8" @@ -31,280 +32,232 @@ */ #import "CEPrintView.h" +#import "constants.h" + + +typedef NS_ENUM(NSUInteger, CEAlignmentType) { + CEAlignLeft, + CEAlignCenter, + CEAlignRight +}; + + +@interface CEPrintView () + +@property (nonatomic, retain) NSAttributedString *headerOneString; +@property (nonatomic, retain) NSAttributedString *headerTwoString; +@property (nonatomic, retain) NSAttributedString *footerOneString; +@property (nonatomic, retain) NSAttributedString *footerTwoString; +@property (nonatomic) CEAlignmentType headerOneAlignment; +@property (nonatomic) CEAlignmentType headerTwoAlignment; +@property (nonatomic) CEAlignmentType footerOneAlignment; +@property (nonatomic) CEAlignmentType footerTwoAlignment; +@property (nonatomic) BOOL printsHeader; // ヘッダ印刷の有無 +@property (nonatomic) BOOL printsFooter; // フッタ印刷の有無 +@property (nonatomic) BOOL printsHeaderSeparator; +@property (nonatomic) BOOL printsFooterSeparator; +@property (nonatomic) BOOL readyToPrint; // =ヘッダ/フッタ生成処理などの準備完了フラグ +@property (nonatomic) BOOL printsLineNum; +@property (nonatomic) BOOL readyToDrawPageNum; +@property (nonatomic) CGFloat xOffset; +@property (nonatomic, retain) NSDictionary *headerFooterAttrs; +@property (nonatomic, retain) NSDictionary *lineNumAttrs; -//======================================================= -// Private method -// -//======================================================= - -@interface CEPrintView (Private) -- (void)setupPrintWithBorderWidth:(float)inBorderWidth; -- (void)setHeaderOneString:(NSAttributedString *)inAttrString; -- (void)setHeaderTwoString:(NSAttributedString *)inAttrString; -- (void)setFooterOneString:(NSAttributedString *)inAttrString; -- (void)setFooterTwoString:(NSAttributedString *)inAttrString; -- (void)setHeaderOneAlignment:(int)inAlingnType; -- (void)setHeaderTwoAlignment:(int)inAlingnType; -- (void)setFooterOneAlignment:(int)inAlingnType; -- (void)setFooterTwoAlignment:(int)inAlingnType; -- (void)setPrintHeader:(BOOL)inBool; -- (void)setPrintFooter:(BOOL)inBool; -- (void)setPrintHeaderSeparator:(BOOL)inBool; -- (void)setPrintFooterSeparator:(BOOL)inBool; -- (NSAttributedString *)attributedStringFromPrintInfoSelectedIndex:(int)inIndex maxWidth:(float)inWidth; -- (float)xValueToDrawOfAttributedString:(NSAttributedString *)inAttrString - borderWidth:(float)inBorderWidth alignment:(int)inAlignType; @end //------------------------------------------------------------------------------------------ +#pragma mark - @implementation CEPrintView -#pragma mark ===== Public method ===== +#pragma mark Public Methods //======================================================= // Public method // //======================================================= -// ------------------------------------------------------ -- (id)initWithFrame:(NSRect)inFrame -// 初期化 -// ------------------------------------------------------ -{ - self = [super initWithFrame:inFrame]; - - if (self) { - _filePath = nil; - _lineNumAttrs = nil; - _headerFooterAttrs = nil; - _printValues = nil; - _headerOneString = nil; - _headerTwoString = nil; - _footerOneString = nil; - _footerTwoString = nil; - _headerOneAlignment = 0; - _headerTwoAlignment = 0; - _footerOneAlignment = 0; - _footerTwoAlignment = 0; - _xOffset = 0.0; - _readyToPrint = NO; // =ヘッダ/フッタ生成処理などの準備完了フラグ - _printLineNum = NO; - _printHeader = NO; - _printFooter = NO; - _printHeaderSeparator = NO; - _printFooterSeparator = NO; - _readyToDrawPageNum = NO; - _showingLineNum = NO; - } - - return self; -} - // ------------------------------------------------------ - (void)dealloc // 後片づけ // ------------------------------------------------------ { - [_filePath release]; - [_lineNumAttrs release]; - [_printValues release]; - [_headerFooterAttrs release]; - [_headerOneString release]; - [_headerTwoString release]; - [_footerOneString release]; - [_footerTwoString release]; + [[self filePath] release]; + [[self lineNumAttrs] release]; + [[self printValues] release]; + [[self headerFooterAttrs] release]; + [[self headerOneString] release]; + [[self headerTwoString] release]; + [[self footerOneString] release]; + [[self footerTwoString] release]; [super dealloc]; } // ------------------------------------------------------ -- (void)drawPageBorderWithSize:(NSSize)inBorderSize +- (void)drawPageBorderWithSize:(NSSize)borderSize // ヘッダ/フッタの描画 // ------------------------------------------------------ { - id theValues = [[NSUserDefaultsController sharedUserDefaultsController] values]; - NSRect theCurrentFrame = [self frame]; // 現在のフレームを退避 - NSAttributedString *thePageString = nil; - NSPoint thePoint; - float theHeaderFooterLineFontSize = [[theValues valueForKey:k_key_headerFooterFontSize] floatValue]; - float thePadding = k_printHFVerticalMargin; + id values = [[NSUserDefaultsController sharedUserDefaultsController] values]; + NSRect currentFrame = [self frame]; // 現在のフレームを退避 + NSAttributedString *pageString = nil; + NSPoint drawPoint = NSMakePoint(0.0, k_printHFVerticalMargin); + CGFloat headerFooterLineFontSize = (CGFloat)[[values valueForKey:k_key_headerFooterFontSize] doubleValue]; // プリントパネルでのカスタム設定を読み取り、保持 - if (_readyToPrint == NO) { - [self setupPrintWithBorderWidth:inBorderSize.width]; + if ([self readyToPrint] == NO) { + [self setupPrintWithBorderWidth:borderSize.width]; } // ページ番号の印字があるなら、準備する - if (_readyToDrawPageNum) { - int thePageNum = [[NSPrintOperation currentOperation] currentPage]; + if ([self readyToDrawPageNum]) { + NSInteger pageNum = [[NSPrintOperation currentOperation] currentPage]; - thePageString = [[[NSAttributedString alloc] - initWithString:[NSString stringWithFormat:@"- %i -", thePageNum] - attributes:_headerFooterAttrs] autorelease]; + pageString = [[[NSAttributedString alloc] initWithString:[NSString stringWithFormat:@"- %li -", (long)pageNum] + attributes:[self headerFooterAttrs]] autorelease]; } // フレームを設定 - [self setFrame:NSMakeRect(0, 0, inBorderSize.width, inBorderSize.height)]; - // さらに、10.3.x ではフレームを重ねてセットしなければ印字されない ... バグ?(10.4.x では問題なし) - // 下記の情報を参考にさせていただきました (2005.09.05) - // http://www.cocoabuilder.com/archive/message/cocoa/2005/4/28/134100 - [self setFrameOrigin:NSZeroPoint]; - [self setFrameSize:inBorderSize]; + [self setFrame:NSMakeRect(0, 0, borderSize.width, borderSize.height)]; // 描画開始 // (このビューは isFlipped が YES なので drawAtPoint: は左上が原点となる) [self lockFocus]; - if (_printHeader) { - if ((_headerOneString != nil) && ([[_headerOneString string] isEqualToString:@"PAGENUM"])) { - thePoint = NSMakePoint([self xValueToDrawOfAttributedString:thePageString - borderWidth:inBorderSize.width alignment:_headerOneAlignment], thePadding); - [thePageString drawAtPoint:thePoint]; - thePadding += k_headerFooterLineHeight; - } else if (_headerOneString != nil) { - thePoint = NSMakePoint([self xValueToDrawOfAttributedString:_headerOneString - borderWidth:inBorderSize.width alignment:_headerOneAlignment], thePadding); - [_headerOneString drawAtPoint:thePoint]; - thePadding += k_headerFooterLineHeight; + if ([self printsHeader]) { + if ([self headerOneString]) { + if ([[[self headerOneString] string] isEqualToString:@"PAGENUM"]) { + [self setHeaderOneString:pageString]; + } + drawPoint.x = [self xValueToDrawOfAttributedString:[self headerOneString] + borderWidth:borderSize.width alignment:[self headerOneAlignment]]; + [[self headerOneString] drawAtPoint:drawPoint]; + drawPoint.y += k_headerFooterLineHeight; } - if (_headerTwoString == nil) { - if (_headerOneString != nil) { - thePadding += theHeaderFooterLineFontSize - k_headerFooterLineHeight; + + if ([self headerTwoString]) { + if ([[[self headerTwoString] string] isEqualToString:@"PAGENUM"]) { + [self setHeaderTwoString:pageString]; + } + drawPoint.x = [self xValueToDrawOfAttributedString:[self headerTwoString] + borderWidth:borderSize.width alignment:[self headerTwoAlignment]]; + [[self headerTwoString] drawAtPoint:drawPoint]; + drawPoint.y += headerFooterLineFontSize; + + } else { + if ([self headerOneString]) { + drawPoint.y += headerFooterLineFontSize - k_headerFooterLineHeight; } - } else if ((_headerTwoString != nil) && ([[_headerTwoString string] isEqualToString:@"PAGENUM"])) { - thePoint = NSMakePoint([self xValueToDrawOfAttributedString:thePageString - borderWidth:inBorderSize.width alignment:_headerTwoAlignment], thePadding); - [thePageString drawAtPoint:thePoint]; - thePadding += theHeaderFooterLineFontSize; - } else if (_headerTwoString != nil) { - thePoint = NSMakePoint([self xValueToDrawOfAttributedString:_headerTwoString - borderWidth:inBorderSize.width alignment:_headerTwoAlignment], thePadding); - [_headerTwoString drawAtPoint:thePoint]; - thePadding += theHeaderFooterLineFontSize; } } - if (_printHeaderSeparator) { - thePadding += (k_separatorPadding / 2); + if ([self printsHeaderSeparator]) { + drawPoint.y += k_separatorPadding / 2; [[NSColor controlShadowColor] set]; - [NSBezierPath strokeLineFromPoint:NSMakePoint(k_printHFHorizontalMargin, thePadding) - toPoint:NSMakePoint(inBorderSize.width - k_printHFHorizontalMargin, thePadding)]; + [NSBezierPath strokeLineFromPoint:NSMakePoint(k_printHFHorizontalMargin, drawPoint.y) + toPoint:NSMakePoint(borderSize.width - k_printHFHorizontalMargin, drawPoint.y)]; } - // (thePadding を inBorderSize.height - k_printHFVerticalMargin とすると1ページに満たない書類の印刷時に + // (drawPoint.y を borderSize.height - k_printHFVerticalMargin とすると1ページに満たない書類の印刷時に // セパレータが印字されないので、フッタ全体を下げる。 2006.02.18) - thePadding = inBorderSize.height - k_printHFVerticalMargin + k_separatorPadding; - if (_printFooter) { - if ((_footerTwoString != nil) && ([[_footerTwoString string] isEqualToString:@"PAGENUM"])) { - thePadding -= k_headerFooterLineHeight; - thePoint = NSMakePoint([self xValueToDrawOfAttributedString:thePageString - borderWidth:inBorderSize.width alignment:_footerTwoAlignment], - thePadding); - [thePageString drawAtPoint:thePoint]; - } else if (_footerTwoString != nil) { - thePadding -= k_headerFooterLineHeight; - thePoint = NSMakePoint([self xValueToDrawOfAttributedString:_footerTwoString - borderWidth:inBorderSize.width alignment:_footerTwoAlignment], - thePadding); - [_footerTwoString drawAtPoint:thePoint]; + drawPoint.y = borderSize.height - k_printHFVerticalMargin + k_separatorPadding; + if ([self printsFooter]) { + if ([self footerTwoString]) { + if ([[[self footerTwoString] string] isEqualToString:@"PAGENUM"]) { + [self setFooterTwoString:pageString]; + } + drawPoint.y -= k_headerFooterLineHeight; + drawPoint.x = [self xValueToDrawOfAttributedString:[self footerTwoString] + borderWidth:borderSize.width alignment:[self footerTwoAlignment]]; + [[self footerTwoString] drawAtPoint:drawPoint]; } - if (_footerOneString == nil) { - if (_footerTwoString == nil) { + + if ([self footerOneString]) { + if ([[[self footerOneString] string] isEqualToString:@"PAGENUM"]) { + [self setFooterOneString:pageString]; } - } else if ((_footerOneString != nil) && ([[_footerOneString string] isEqualToString:@"PAGENUM"])) { - thePadding -= k_headerFooterLineHeight; - thePoint = NSMakePoint([self xValueToDrawOfAttributedString:thePageString - borderWidth:inBorderSize.width alignment:_footerOneAlignment], - thePadding); - [thePageString drawAtPoint:thePoint]; - } else if (_footerOneString != nil) { - thePadding -= k_headerFooterLineHeight; - thePoint = NSMakePoint([self xValueToDrawOfAttributedString:_footerOneString - borderWidth:inBorderSize.width alignment:_footerOneAlignment], - thePadding); - [_footerOneString drawAtPoint:thePoint]; + drawPoint.y -= k_headerFooterLineHeight; + drawPoint.x = [self xValueToDrawOfAttributedString:[self footerOneString] + borderWidth:borderSize.width alignment:[self footerOneAlignment]]; + [[self footerOneString] drawAtPoint:drawPoint]; } } - if (_printFooterSeparator) { - thePadding -= (k_separatorPadding / 2); + if ([self printsFooterSeparator]) { + drawPoint.y -= k_separatorPadding / 2; [[NSColor controlShadowColor] set]; - [NSBezierPath strokeLineFromPoint:NSMakePoint(k_printHFHorizontalMargin, thePadding) - toPoint:NSMakePoint(inBorderSize.width - k_printHFHorizontalMargin, thePadding)]; + [NSBezierPath strokeLineFromPoint:NSMakePoint(k_printHFHorizontalMargin, drawPoint.y) + toPoint:NSMakePoint(borderSize.width - k_printHFHorizontalMargin, drawPoint.y)]; } [self unlockFocus]; // フレームをもとに戻す - [self setFrame:theCurrentFrame]; + [self setFrame:currentFrame]; } // ------------------------------------------------------ -- (void)drawRect:(NSRect)inRect +- (void)drawRect:(NSRect)dirtyRect // プリント // ------------------------------------------------------ { - [super drawRect:inRect]; + [super drawRect:dirtyRect]; // 行番号を印字 - if (_printLineNum) { - id theValues = [[NSUserDefaultsController sharedUserDefaultsController] values]; - float theLineNumFontSize = [[theValues valueForKey:k_key_lineNumFontSize] floatValue]; + if ([self printsLineNum]) { + id values = [[NSUserDefaultsController sharedUserDefaultsController] values]; + CGFloat lineNumFontSize = (CGFloat)[[values valueForKey:k_key_lineNumFontSize] doubleValue]; //文字幅を計算しておく 等幅扱い //いずれにしても等幅じゃないと奇麗に揃わないので等幅だということにしておく(hetima) - float charWidth = [@"8" sizeWithAttributes:_lineNumAttrs].width; + CGFloat charWidth = [@"8" sizeWithAttributes:[self lineNumAttrs]].width; // setup the variables we need for the loop - NSRange theRange; // a range for counting lines - NSString *theStr = [self string]; - NSString *theNumStr; // a temporary string for Line Number - NSString *theWrapedLineMark = ([[theValues valueForKey:k_key_showWrappedLineMark] boolValue]) ? - [NSString stringWithString:@"-:"] : [NSString stringWithString:@" "]; - int theGlyphIndex, theBefore, theGlyphCount; // glyph counter - int theCharIndex; - int theLineNum; // line counter - float theReqWidth; // width calculator holder -- width needed to show string - float theXAdj = 0; // adjust horizontal value for line number drawing - float theYAdj = 0; // adjust vertical value for line number drawing - NSRect theNumRect; // rectange holder - NSPoint theNumPoint; // point holder - NSLayoutManager *theManager = [self layoutManager]; // get _owner's layout manager. - unsigned theNumOfGlyphs = [theManager numberOfGlyphs]; + NSRange range; // a range for counting lines + NSString *str = [self string]; + NSString *numStr; // a temporary string for Line Number + NSString *wrappedLineMark = [[values valueForKey:k_key_showWrappedLineMark] boolValue] ? @"-:" : @" "; + NSUInteger glyphIndex, theBefore, glyphCount; // glyph counter + NSUInteger charIndex; + NSUInteger lineNum; // line counter + CGFloat reqWidth; // width calculator holder -- width needed to show string + CGFloat xAdj = 0.0; // adjust horizontal value for line number drawing + CGFloat yAdj = 0.0; // adjust vertical value for line number drawing + NSRect numRect; // rectange holder + NSPoint numPoint; // point holder + NSLayoutManager *layoutManager = [self layoutManager]; // get _owner's layout manager. + NSUInteger numberOfGlyphs = [layoutManager numberOfGlyphs]; theBefore = 0; - theLineNum = 1; - theGlyphCount = 0; - theXAdj = [self textContainerOrigin].x + k_printHFHorizontalMargin - k_lineNumPadding; - theYAdj = ([[self font] pointSize] - theLineNumFontSize) / 2; - - for (theGlyphIndex = 0; theGlyphIndex < theNumOfGlyphs; theLineNum++) { // count "REAL" lines - theCharIndex = [theManager characterIndexForGlyphAtIndex:theGlyphIndex]; - theGlyphIndex = NSMaxRange([theManager glyphRangeForCharacterRange: - [theStr lineRangeForRange:NSMakeRange(theCharIndex, 0)] - actualCharacterRange:NULL]); - while (theGlyphCount < theGlyphIndex) { // handle "DRAWN" (wrapped) lines - theNumRect = [theManager lineFragmentRectForGlyphAtIndex:theGlyphCount effectiveRange:&theRange]; - if (NSPointInRect(theNumRect.origin, inRect)) { - if (theBefore != theLineNum) { - theNumStr = [NSString stringWithFormat:@"%d:", theLineNum]; - theReqWidth = charWidth * [theNumStr length]; + lineNum = 1; + glyphCount = 0; + xAdj = [self textContainerOrigin].x + k_printHFHorizontalMargin - k_lineNumPadding; + yAdj = ([[self font] pointSize] - lineNumFontSize) / 2; + + for (glyphIndex = 0; glyphIndex < numberOfGlyphs; lineNum++) { // count "REAL" lines + charIndex = [layoutManager characterIndexForGlyphAtIndex:glyphIndex]; + glyphIndex = NSMaxRange([layoutManager glyphRangeForCharacterRange:[str lineRangeForRange:NSMakeRange(charIndex, 0)] + actualCharacterRange:NULL]); + while (glyphCount < glyphIndex) { // handle "DRAWN" (wrapped) lines + numRect = [layoutManager lineFragmentRectForGlyphAtIndex:glyphCount effectiveRange:&range]; + if (NSPointInRect(numRect.origin, dirtyRect)) { + if (theBefore != lineNum) { + numStr = [NSString stringWithFormat:@"%ld:", (long)lineNum]; + reqWidth = charWidth * [numStr length]; } else { - theNumStr = theWrapedLineMark; - theReqWidth = 8.0; // @"-:"のときに必要なピクセル値。変更時、注意。***** + numStr = wrappedLineMark; + reqWidth = 8.0; // @"-:"のときに必要なピクセル値。変更時、注意。***** } - theNumPoint = - NSMakePoint( - (inRect.origin.x - theReqWidth + theXAdj), - theNumRect.origin.y + theYAdj); - [theNumStr drawAtPoint:theNumPoint withAttributes:_lineNumAttrs]; // draw the line number. - theBefore = theLineNum; + numPoint = NSMakePoint(dirtyRect.origin.x - reqWidth + xAdj, + numRect.origin.y + yAdj); + [numStr drawAtPoint:numPoint withAttributes:[self lineNumAttrs]]; // draw the line number. + theBefore = lineNum; } - theGlyphCount = NSMaxRange(theRange); + glyphCount = NSMaxRange(range); } } } @@ -325,83 +278,14 @@ - (NSPoint)textContainerOrigin // the top/left point of text container. // ------------------------------------------------------ { - return (NSMakePoint(_xOffset, 0.0)); -} - - -// ------------------------------------------------------ -- (void)setFilePath:(NSString *)inFilePath -// ファイルパスをセット -// ------------------------------------------------------ -{ - [inFilePath retain]; // ===== retain - [_filePath release]; - _filePath = inFilePath; -} - - -// ------------------------------------------------------ -- (float)lineSpacing -// 行間値を返す -// ------------------------------------------------------ -{ - return _lineSpacing; -} - - -// ------------------------------------------------------ -- (void)setLineSpacing:(float)inLineSpacing -// 行間値をセット -// ------------------------------------------------------ -{ - _lineSpacing = inLineSpacing; -} - - -// ------------------------------------------------------ -- (id)printValues -// プリンタダイアログでの設定オブジェクトを返す -// ------------------------------------------------------ -{ - return _printValues; -} - - -// ------------------------------------------------------ -- (void)setPrintValues:(id)inValues -// プリンタダイアログでの設定オブジェクトをセット -// ------------------------------------------------------ -{ - [inValues retain]; - [_printValues release]; - _printValues = inValues; -} - - -// ------------------------------------------------------ -- (BOOL)isShowingLineNum -// CETextViewCoreが行番号を表示しているかを返す -// ------------------------------------------------------ -{ - return _showingLineNum; -} - - -// ------------------------------------------------------ -- (void)setIsShowingLineNum:(BOOL)inValue -// CETextViewCoreが行番号を表示しているかをセット -// ------------------------------------------------------ -{ - _showingLineNum = inValue; + return NSMakePoint([self xOffset], 0.0); } -@end - - -@implementation CEPrintView (Private) +#pragma mark - +#pragma mark Public Methods //======================================================= // Private method @@ -409,256 +293,129 @@ @implementation CEPrintView (Private) //======================================================= // ------------------------------------------------------ -- (void)setupPrintWithBorderWidth:(float)inBorderWidth +- (void)setupPrintWithBorderWidth:(CGFloat)borderWidth // プリント開始の準備 // ------------------------------------------------------ { - id theValues = [[NSUserDefaultsController sharedUserDefaultsController] values]; - NSAttributedString *theAttrString = nil; - float thePrintWidth = inBorderWidth - k_printHFHorizontalMargin * 2; - int theLineNumMenuIndex = [[[self printValues] valueForKey:k_printLineNumIndex] intValue]; + id values = [[NSUserDefaultsController sharedUserDefaultsController] values]; + NSAttributedString *attrString = nil; + CGFloat printWidth = borderWidth - k_printHFHorizontalMargin * 2; + NSInteger lineNumMenuIndex = [[[self printValues] valueForKey:k_printLineNumIndex] integerValue]; // ヘッダ/フッタの文字属性辞書生成、保持 - NSFont *theHeaderFooterFont = [NSFont fontWithName:[theValues valueForKey:k_key_headerFooterFontName] - size:[[theValues valueForKey:k_key_headerFooterFontSize] floatValue]]; - _headerFooterAttrs = [[NSDictionary dictionaryWithObjectsAndKeys: - theHeaderFooterFont, NSFontAttributeName, - [NSColor textColor], NSForegroundColorAttributeName, - nil] retain]; // ===== retain + NSFont *headerFooterFont = [NSFont fontWithName:[values valueForKey:k_key_headerFooterFontName] + size:(CGFloat)[[values valueForKey:k_key_headerFooterFontSize] doubleValue]]; + [self setHeaderFooterAttrs:@{NSFontAttributeName: headerFooterFont, + NSForegroundColorAttributeName: [NSColor textColor]}]; // ===== retain // 行番号印字の有無をチェック - if (theLineNumMenuIndex == 1) { // same to view - _printLineNum = [self isShowingLineNum]; - } else if (theLineNumMenuIndex == 2) { // print - _printLineNum = YES; + if (lineNumMenuIndex == 1) { // same to view + [self setPrintsLineNum:[self isShowingLineNum]]; + } else if (lineNumMenuIndex == 2) { // print + [self setPrintsLineNum:YES]; } else { - _printLineNum = NO; + [self setPrintsLineNum:NO]; } // 行番号を印字するときは文字属性を保持、パディングを調整 - if (_printLineNum) { - NSFont *theFont = [NSFont fontWithName:[theValues valueForKey:k_key_lineNumFontName] - size:[[theValues valueForKey:k_key_lineNumFontSize] floatValue]]; - _lineNumAttrs = [[NSDictionary dictionaryWithObjectsAndKeys: - theFont, NSFontAttributeName, - [NSUnarchiver unarchiveObjectWithData:[theValues valueForKey:k_key_lineNumFontColor]], - NSForegroundColorAttributeName, - nil] retain]; // ===== retain - _xOffset = k_printTextHorizontalMargin; + if ([self printsLineNum]) { + NSFont *font = [NSFont fontWithName:[values valueForKey:k_key_lineNumFontName] + size:(CGFloat)[[values valueForKey:k_key_lineNumFontSize] doubleValue]]; + [self setLineNumAttrs:@{NSFontAttributeName:font, + NSForegroundColorAttributeName:[NSUnarchiver unarchiveObjectWithData:[values valueForKey:k_key_lineNumFontColor]]}]; // ===== retain + [self setXOffset:k_printTextHorizontalMargin]; } + // ヘッダを設定 if ([[[self printValues] valueForKey:k_printHeader] boolValue]) { - [self setPrintHeader:YES]; - theAttrString = [self attributedStringFromPrintInfoSelectedIndex: - [[[self printValues] valueForKey:k_headerOneStringIndex] intValue] - maxWidth:thePrintWidth]; - [self setHeaderOneString:theAttrString]; - theAttrString = [self attributedStringFromPrintInfoSelectedIndex: - [[[self printValues] valueForKey:k_headerTwoStringIndex] intValue] - maxWidth:thePrintWidth]; - [self setHeaderTwoString:theAttrString]; - [self setHeaderOneAlignment:[[[self printValues] valueForKey:k_headerOneAlignIndex] intValue]]; - [self setHeaderTwoAlignment:[[[self printValues] valueForKey:k_headerTwoAlignIndex] intValue]]; + [self setPrintsHeader:YES]; + attrString = [self attributedStringFromPrintInfoSelectedIndex:[[[self printValues] valueForKey:k_headerOneStringIndex] integerValue] + maxWidth:printWidth]; + [self setHeaderOneString:attrString]; + attrString = [self attributedStringFromPrintInfoSelectedIndex:[[[self printValues] valueForKey:k_headerTwoStringIndex] integerValue] + maxWidth:printWidth]; + [self setHeaderTwoString:attrString]; + [self setHeaderOneAlignment:[[[self printValues] valueForKey:k_headerOneAlignIndex] integerValue]]; + [self setHeaderTwoAlignment:[[[self printValues] valueForKey:k_headerTwoAlignIndex] integerValue]]; } else { - [self setPrintHeader:NO]; + [self setPrintsHeader:NO]; } - [self setPrintHeaderSeparator:[[[self printValues] valueForKey:k_printHeaderSeparator] boolValue]]; + [self setPrintsHeaderSeparator:[[[self printValues] valueForKey:k_printHeaderSeparator] boolValue]]; // フッタを設定 if ([[[self printValues] valueForKey:k_printFooter] boolValue]) { - [self setPrintFooter:YES]; - theAttrString = [self attributedStringFromPrintInfoSelectedIndex: - [[[self printValues] valueForKey:k_footerOneStringIndex] intValue] - maxWidth:thePrintWidth]; - [self setFooterOneString:theAttrString]; - theAttrString = [self attributedStringFromPrintInfoSelectedIndex: - [[[self printValues] valueForKey:k_footerTwoStringIndex] intValue] - maxWidth:thePrintWidth]; - [self setFooterTwoString:theAttrString]; - [self setFooterOneAlignment:[[[self printValues] valueForKey:k_footerOneAlignIndex] intValue]]; - [self setFooterTwoAlignment:[[[self printValues] valueForKey:k_footerTwoAlignIndex] intValue]]; + [self setPrintsFooter:YES]; + attrString = [self attributedStringFromPrintInfoSelectedIndex:[[[self printValues] valueForKey:k_footerOneStringIndex] integerValue] + maxWidth:printWidth]; + [self setFooterOneString:attrString]; + attrString = [self attributedStringFromPrintInfoSelectedIndex:[[[self printValues] valueForKey:k_footerTwoStringIndex] integerValue] + maxWidth:printWidth]; + [self setFooterTwoString:attrString]; + [self setFooterOneAlignment:[[[self printValues] valueForKey:k_footerOneAlignIndex] integerValue]]; + [self setFooterTwoAlignment:[[[self printValues] valueForKey:k_footerTwoAlignIndex] integerValue]]; } else { - [self setPrintFooter:NO]; + [self setPrintsFooter:NO]; } - [self setPrintFooterSeparator:[[[self printValues] valueForKey:k_printFooterSeparator] boolValue]]; - _readyToPrint = YES; -} - - -// ------------------------------------------------------ -- (void)setHeaderOneString:(NSAttributedString *)inAttrString -// ヘッダ1の属性付き文字列をセット -// ------------------------------------------------------ -{ - [inAttrString retain]; // ===== retain - [_headerOneString release]; - _headerOneString = inAttrString; + [self setPrintsFooterSeparator:[[[self printValues] valueForKey:k_printFooterSeparator] boolValue]]; + [self setReadyToPrint:YES]; } // ------------------------------------------------------ -- (void)setHeaderTwoString:(NSAttributedString *)inAttrString -// ヘッダ2の属性付き文字列をセット -// ------------------------------------------------------ -{ - [inAttrString retain]; // ===== retain - [_headerTwoString release]; - _headerTwoString = inAttrString; -} - - -// ------------------------------------------------------ -- (void)setFooterOneString:(NSAttributedString *)inAttrString -// フッタ1の属性付き文字列をセット -// ------------------------------------------------------ -{ - [inAttrString retain]; // ===== retain - [_footerOneString release]; - _footerOneString = inAttrString; -} - - -// ------------------------------------------------------ -- (void)setFooterTwoString:(NSAttributedString *)inAttrString -// フッタ2の属性付き文字列をセット -// ------------------------------------------------------ -{ - [inAttrString retain]; // ===== retain - [_footerTwoString release]; - _footerTwoString = inAttrString; -} - - -// ------------------------------------------------------ -- (void)setHeaderOneAlignment:(int)inAlingnType -// ヘッダ1の文字位置タイプをセット -// ------------------------------------------------------ -{ - _headerOneAlignment = inAlingnType; -} - - -// ------------------------------------------------------ -- (void)setHeaderTwoAlignment:(int)inAlingnType -// ヘッダ2の文字位置タイプをセット -// ------------------------------------------------------ -{ - _headerTwoAlignment = inAlingnType; -} - - -// ------------------------------------------------------ -- (void)setFooterOneAlignment:(int)inAlingnType -// フッタ1の文字位置タイプをセット -// ------------------------------------------------------ -{ - _footerOneAlignment = inAlingnType; -} - - -// ------------------------------------------------------ -- (void)setFooterTwoAlignment:(int)inAlingnType -// フッタ2の文字位置タイプをセット -// ------------------------------------------------------ -{ - _footerTwoAlignment = inAlingnType; -} - - -// ------------------------------------------------------ -- (void)setPrintHeader:(BOOL)inBool -// ヘッダ印刷の有無をセット -// ------------------------------------------------------ -{ - _printHeader = inBool; -} - - -// ------------------------------------------------------ -- (void)setPrintFooter:(BOOL)inBool -// フッタ印刷の有無をセット -// ------------------------------------------------------ -{ - _printFooter = inBool; -} - - -// ------------------------------------------------------ -- (void)setPrintHeaderSeparator:(BOOL)inBool -// ヘッダセパレータ印刷の有無をセット -// ------------------------------------------------------ -{ - _printHeaderSeparator = inBool; -} - - -// ------------------------------------------------------ -- (void)setPrintFooterSeparator:(BOOL)inBool -// フッタセパレータ印刷の有無をセット -// ------------------------------------------------------ -{ - _printFooterSeparator = inBool; -} - - -// ------------------------------------------------------ -- (NSAttributedString *)attributedStringFromPrintInfoSelectedIndex:(int)inIndex maxWidth:(float)inWidth +- (NSAttributedString *)attributedStringFromPrintInfoSelectedIndex:(NSInteger)selectedIndex maxWidth:(CGFloat)maxWidth // ヘッダ/フッタに印字する文字列をポップアップメニューインデックスから生成し、返す // ------------------------------------------------------ { - id theValues = [[NSUserDefaultsController sharedUserDefaultsController] values]; + id values = [[NSUserDefaultsController sharedUserDefaultsController] values]; NSAttributedString *outString = nil; - NSString *theDateString; + NSString *dateString; - switch(inIndex) { - - case 2: // == Document Name - if (_filePath != nil) { - outString = [[[NSAttributedString alloc] - initWithString:[_filePath lastPathComponent] attributes:_headerFooterAttrs] autorelease]; - } - break; + switch (selectedIndex) { + case 2: // == Document Name + if ([self filePath]) { + outString = [[[NSAttributedString alloc] initWithString:[[self filePath] lastPathComponent] + attributes:[self headerFooterAttrs]] autorelease]; + } + break; - case 3: // == File Path - if (_filePath != nil) { - outString = [[[NSAttributedString alloc] - initWithString:_filePath attributes:_headerFooterAttrs] autorelease]; - } - break; - - case 4: // == Print Date - theDateString = [[NSCalendarDate calendarDate] - descriptionWithCalendarFormat:[theValues valueForKey:k_key_headerFooterDateTimeFormat]]; - if ((theDateString != nil) && ([theDateString length] > 0)) { - outString = [[[NSAttributedString alloc] initWithString: - [NSString stringWithFormat:NSLocalizedString(@"Printed: %@",@""), theDateString] - attributes:_headerFooterAttrs] autorelease]; - } - break; + case 3: // == File Path + if ([self filePath]) { + outString = [[[NSAttributedString alloc] initWithString:[self filePath] + attributes:[self headerFooterAttrs]] autorelease]; + } + break; + + case 4: // == Print Date + dateString = [[NSCalendarDate calendarDate] descriptionWithCalendarFormat:[values valueForKey:k_key_headerFooterDateTimeFormat]]; + if (dateString && ([dateString length] > 0)) { + outString = [[[NSAttributedString alloc] initWithString:[NSString stringWithFormat:NSLocalizedString(@"Printed: %@",@""), + dateString] + attributes:[self headerFooterAttrs]] autorelease]; + } + break; - case 5: // == Page num - outString = [[[NSAttributedString alloc] initWithString:[NSString stringWithString:@"PAGENUM"] - attributes:_headerFooterAttrs] autorelease]; - _readyToDrawPageNum = YES; - break; + case 5: // == Page num + outString = [[[NSAttributedString alloc] initWithString:@"PAGENUM" + attributes:[self headerFooterAttrs]] autorelease]; + [self setReadyToDrawPageNum:YES]; + break; - default: - break; + default: + break; } // 印字があふれる場合、中ほどを省略する - if ([outString size].width > inWidth) { - NSMutableAttributedString *theAttrStr = [[outString mutableCopy] autorelease]; - int theLength = [theAttrStr length]; - float theWidth = [theAttrStr size].width; - if (theLength > 0) { - float theAverage = theWidth / theLength; - int theDeleteCount = (theWidth - inWidth) / theAverage + 5; // 置き換える5文字の幅をみる - NSRange theReplaceRange = - NSMakeRange((unsigned int)((theLength - theDeleteCount) / 2), theDeleteCount); - [theAttrStr replaceCharactersInRange:theReplaceRange withString:@" ... "]; + if ([outString size].width > maxWidth) { + NSMutableAttributedString *attrStr = [[outString mutableCopy] autorelease]; + NSUInteger length = [attrStr length]; + CGFloat width = [attrStr size].width; + if (length > 0) { + CGFloat average = width / length; + NSInteger deleteCount = (width - maxWidth) / average + 5; // 置き換える5文字の幅をみる + NSRange replaceRange = NSMakeRange((NSUInteger)((length - deleteCount) / 2), deleteCount); + [attrStr replaceCharactersInRange:replaceRange withString:@" ... "]; } - return theAttrStr; + return attrStr; } return outString; @@ -666,25 +423,23 @@ - (NSAttributedString *)attributedStringFromPrintInfoSelectedIndex:(int)inIndex // ------------------------------------------------------ -- (float)xValueToDrawOfAttributedString:(NSAttributedString *)inAttrString - borderWidth:(float)inBorderWidth alignment:(int)inAlignType +- (CGFloat)xValueToDrawOfAttributedString:(NSAttributedString *)attrString + borderWidth:(CGFloat)borderWidth + alignment:(CEAlignmentType)alignmentType // X軸方向の印字開始位置を返す // ------------------------------------------------------ { - float outFloat = k_printHFHorizontalMargin; - - switch(inAlignType) { - - case 1: // == center - outFloat = (inBorderWidth - [inAttrString size].width) / 2; - break; - case 2: // == right - outFloat = inBorderWidth - [inAttrString size].width - k_printHFHorizontalMargin; - break; - default: - break; + switch (alignmentType) { + case CEAlignLeft: + return k_printHFHorizontalMargin; + break; + case CEAlignCenter: + return (borderWidth - [attrString size].width) / 2; + break; + case CEAlignRight: + return (borderWidth - [attrString size].width) - k_printHFHorizontalMargin; + break; } - return outFloat; } @end diff --git a/CEPrivateMutableArray.h b/CEPrivateMutableArray.h index dbbb1cf53d..afba325fd6 100644 --- a/CEPrivateMutableArray.h +++ b/CEPrivateMutableArray.h @@ -3,8 +3,9 @@ CEPrivateMutableArray (for CotEditor) -Copyright (C) 2004-2007 nakamuxu. -http://www.aynimac.com/ + Copyright (C) 2004-2007 nakamuxu. + Copyright (C) 2014 CotEditor Project + http://coteditor.github.io ================================================= encoding="UTF-8" @@ -39,10 +40,5 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. @interface CEPrivateMutableArray : NSMutableArray -{ - id *_pointers; - unsigned int _size; - unsigned int _nPointers; -} @end diff --git a/CEPrivateMutableArray.m b/CEPrivateMutableArray.m index 0782981377..faa9eb6152 100644 --- a/CEPrivateMutableArray.m +++ b/CEPrivateMutableArray.m @@ -3,8 +3,9 @@ CEPrivateMutableArray (for CotEditor) -Copyright (C) 2004-2007 nakamuxu. -http://www.aynimac.com/ + Copyright (C) 2004-2007 nakamuxu. + Copyright (C) 2014 CotEditor Project + http://coteditor.github.io ================================================= encoding="UTF-8" @@ -38,10 +39,19 @@ #import "CEPrivateMutableArray.h" +@interface CEPrivateMutableArray () +{ + id *_pointers; + NSUInteger _size; + NSUInteger _nPointers; +} + +@end + @implementation CEPrivateMutableArray -- (id)initWithCapacity:(unsigned int)inSize +- (id)initWithCapacity:(NSUInteger)inSize { [super init]; @@ -55,7 +65,7 @@ - (id)initWithCapacity:(unsigned int)inSize - (void)dealloc { - unsigned int i; + NSUInteger i; for (i = 0; i < _nPointers; i++) { [_pointers[ i] release]; @@ -69,14 +79,14 @@ - (void)dealloc - (void)grow { - unsigned int newsize; + NSUInteger newsize; if ((newsize = _size + _size) < _size + 4) { newsize = _size + 4; } if (!(_pointers = realloc(_pointers, newsize * sizeof(id)))) { [NSException raise:NSMallocException - format:@"%@ can't grow from %u to %u entries", self, _size, newsize]; + format:@"%@ can't grow from %lu to %lu entries", self, (unsigned long)_size, (unsigned long)newsize]; } _size = newsize; } @@ -94,17 +104,17 @@ - (void)addObject:(id)inObject } -- (unsigned int)count +- (NSUInteger)count { return (_nPointers); } -- (id)objectAtIndex:(unsigned int)inIndex +- (id)objectAtIndex:(NSUInteger)inIndex { if (inIndex >= _nPointers) { [NSException raise:NSInvalidArgumentException - format:@"index %d out of bounds %d", inIndex, _nPointers]; + format:@"index %lu out of bounds %lu", (unsigned long)inIndex, (unsigned long)_nPointers]; } return (_pointers[inIndex]); @@ -114,9 +124,8 @@ - (void)addObjectsFromArray:(CEPrivateMutableArray *)inArray { if (!inArray) { return; } - unsigned int i, theCount = [inArray count]; - for (i = 0; i < theCount; i++) { - [self addObject:[inArray objectAtIndex:i]]; + for (id object in inArray) { + [self addObject:object]; } } diff --git a/CEScriptManager.h b/CEScriptManager.h index 63c62115bd..2a2495c772 100644 --- a/CEScriptManager.h +++ b/CEScriptManager.h @@ -3,8 +3,9 @@ CEScriptManager (for CotEditor) -Copyright (C) 2004-2007 nakamuxu. -http://www.aynimac.com/ + Copyright (C) 2004-2007 nakamuxu. + Copyright (C) 2014 CotEditor Project + http://coteditor.github.io ================================================= encoding="UTF-8" @@ -31,18 +32,9 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #import -#import -#import "constants.h" @interface CEScriptManager : NSObject -{ - IBOutlet id _errorTextView; - - NSFileHandle *_outputHandle; - NSFileHandle *_errorHandle; - int _outputType; -} // class method + (CEScriptManager *)sharedInstance; diff --git a/CEScriptManager.m b/CEScriptManager.m index 474c87f0b2..da618c83ee 100644 --- a/CEScriptManager.m +++ b/CEScriptManager.m @@ -3,8 +3,9 @@ CEScriptManager (for CotEditor) -Copyright (C) 2004-2007 nakamuxu. -http://www.aynimac.com/ + Copyright (C) 2004-2007 nakamuxu. + Copyright (C) 2014 CotEditor Project + http://coteditor.github.io ================================================= encoding="UTF-8" @@ -32,38 +33,35 @@ #import "CEScriptManager.h" #import "CEDocument.h" -#import "NSEventAdditions.h" +#import "NSEvent+CarbonModFlag.h" +#import "constants.h" //======================================================= // Private method // //======================================================= -@interface CEScriptManager (Private) -- (void)setupMenuIcon; -- (NSString *)pathOfScriptDirectory; -- (void)addChildFileItemTo:(NSMenu *)inMenu fromDir:(NSString *)inPath; -- (void)removeAllMenuItemsFromParent:(NSMenu *)inMenu; -- (NSString *)menuTitleFromFileName:(NSString *)inFileName; -- (NSString *)keyEquivalentAndModifierMask:(unsigned int *)ioModMask fromFileName:(NSString *)inFileName; -- (void)showAlert:(NSString *)inMessage; -- (NSString *)stringOfScript:(NSString *)inPath; -- (void)doLaunchShellScript:(NSString *)inPath; -- (void)availableOutput:(NSNotification *)inNotification; -- (void)showScriptErrorLog:(NSString *)inLogString; +@interface CEScriptManager () + +@property (nonatomic, assign) IBOutlet id errorTextView; + +@property (nonatomic, retain) NSFileHandle *outputHandle; +@property (nonatomic, retain) NSFileHandle *errorHandle; +@property (nonatomic) NSInteger outputType; + @end //------------------------------------------------------------------------------------------ - +#pragma mark - @implementation CEScriptManager static CEScriptManager *sharedInstance = nil; -#pragma mark ===== Class method ===== +#pragma mark Class Methods //======================================================= // Class method @@ -79,8 +77,26 @@ + (CEScriptManager *)sharedInstance } +// ------------------------------------------------------ ++ (NSArray *)scriptExtensions +// 対応しているスクリプトの拡張子 +// ------------------------------------------------------ +{ + return @[@"sh", @"pl", @"php", @"rb", @"py"]; +} -#pragma mark ===== Public method ===== + +// ------------------------------------------------------ ++ (NSArray *)AppleScriptExtensions +// 対応しているAppleScriptの拡張子 +// ------------------------------------------------------ +{ + return @[@"applescript", @"scpt"]; +} + + + +#pragma mark - Public Methods //======================================================= // Public method @@ -88,7 +104,7 @@ + (CEScriptManager *)sharedInstance //======================================================= // ------------------------------------------------------ -- (id)init +- (instancetype)init // 初期化 // ------------------------------------------------------ { @@ -96,14 +112,12 @@ - (id)init self = [super init]; [self setupMenuIcon]; _outputType = k_noOutput; - _outputHandle = nil; - _errorHandle = nil; (void)[NSBundle loadNibNamed:@"ScriptManager" owner:self]; // ノーティフィケーションセンタへデータ出力読み込み完了の通知を依頼 - [[NSNotificationCenter defaultCenter] addObserver:self - selector:@selector(availableOutput:) - name:NSFileHandleReadToEndOfFileCompletionNotification - object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(availableOutput:) + name:NSFileHandleReadToEndOfFileCompletionNotification + object:nil]; sharedInstance = self; } return sharedInstance; @@ -135,82 +149,69 @@ - (void)buildScriptMenu:(id)sender // Scriptメニューを生成 //------------------------------------------------------ { - NSString *theDirPath = [self pathOfScriptDirectory]; // データディレクトリパス取得 + NSURL *directoryURL = [self scriptDirectoryURL]; // データディレクトリパス取得 + NSFileManager *fileManager = [NSFileManager defaultManager]; // ディレクトリの存在チェック - NSFileManager *theFileManager = [NSFileManager defaultManager]; - BOOL theBoolIsDir = NO, theBoolCreated = NO; - BOOL theExists = [theFileManager fileExistsAtPath:theDirPath isDirectory:&theBoolIsDir]; - if (!theExists) { - // 0.6.3以前の古いディレクトリ名がある場合はそれをリネームして使う。古いドキュメントは削除する。 - NSString *theOldPath = [NSHomeDirectory( ) - stringByAppendingPathComponent:@"Library/Application Support/CotEditor/AppleScriptMenu"]; - BOOL theBoolOldIsDir = NO; - BOOL theBoolOldExists = [theFileManager fileExistsAtPath:theOldPath isDirectory:&theBoolOldIsDir]; - if (theBoolOldExists && theBoolOldIsDir) { - theBoolCreated = [theFileManager movePath:theOldPath toPath:theDirPath handler:nil]; - NSString *theOldAboutDocPath = [NSHomeDirectory( ) - stringByAppendingPathComponent: - @"Library/Application Support/CotEditor/ScriptMenu/_aboutAppleScriptFolder.rtf"]; - (void)[theFileManager removeFileAtPath:theOldAboutDocPath handler:nil]; - } else { - theBoolCreated = [theFileManager createDirectoryAtPath:theDirPath attributes:nil]; - } + NSNumber *isDirectory = NO; + BOOL didCreated = NO; + [directoryURL getResourceValue:&isDirectory forKey:NSURLIsDirectoryKey error:nil]; + if (![isDirectory boolValue]) { + didCreated = [fileManager createDirectoryAtURL:directoryURL + withIntermediateDirectories:YES attributes:nil error:nil]; } - if ((!theExists) && (!theBoolCreated)) { + if (![isDirectory boolValue] && !didCreated) { NSLog(@"Error. ScriptMenu directory could not found."); return; } // About 文書をコピー - NSString *theSource = - [[[NSBundle mainBundle] bundlePath] - stringByAppendingPathComponent:@"/Contents/Resources/_aboutScriptFolder.rtf"]; - NSString *theDestination = [theDirPath stringByAppendingPathComponent:@"_aboutScriptFolder.rtf"]; - if (([theFileManager fileExistsAtPath:theSource]) && - (![theFileManager fileExistsAtPath:theDestination])) { - if (![theFileManager copyPath:theSource toPath:theDestination handler:nil]) { + NSURL *sourceURL = [[[NSBundle mainBundle] bundleURL] URLByAppendingPathComponent:@"/Contents/Resources/_aboutScriptFolder.rtf"]; + NSURL *destURL = [directoryURL URLByAppendingPathComponent:@"_aboutScriptFolder.rtf"]; + if ([sourceURL checkResourceIsReachableAndReturnError:nil] && + ![destURL checkResourceIsReachableAndReturnError:nil]) { + if (![fileManager copyItemAtURL:sourceURL toURL:destURL error:nil]) { NSLog(@"Error. AppleScriptFolder about document could not copy."); } // 付属の Script をコピー - NSString *theSourceDir = [[[NSBundle mainBundle] bundlePath] stringByAppendingPathComponent:@"/Contents/Resources/Script"]; - NSString *theDestinationDir = [theDirPath stringByAppendingPathComponent:@"/SampleScript"]; - if (![theFileManager copyPath:theSourceDir toPath:theDestinationDir handler:nil]) { + NSURL *sourceDirURL = [[[NSBundle mainBundle] bundleURL] URLByAppendingPathComponent:@"/Contents/Resources/Script"]; + NSURL *destDirURL = [directoryURL URLByAppendingPathComponent:@"/SampleScript"]; + if (![fileManager copyItemAtURL:sourceDirURL toURL:destDirURL error:nil]) { NSLog(@"Error. AppleScriptFolder sample could not copy."); } } - else if (([theFileManager fileExistsAtPath:theSource]) && - ([theFileManager fileExistsAtPath:theDestination]) && - (![theFileManager contentsEqualAtPath:theSource andPath:theDestination])) { + else if ([sourceURL checkResourceIsReachableAndReturnError:nil] && + [destURL checkResourceIsReachableAndReturnError:nil] && + ![fileManager contentsEqualAtPath:[sourceURL path] andPath:[destURL path]]) { // About 文書が更新されている場合の対応 - if (![theFileManager removeFileAtPath:theDestination handler:nil]) { + if (![fileManager removeItemAtURL:destURL error:nil]) { NSLog(@"Error. AppleScriptFolder about document could not remove."); } - if (![theFileManager copyPath:theSource toPath:theDestination handler:nil]) { + if (![fileManager copyItemAtURL:sourceURL toURL:destURL error:nil]) { NSLog(@"Error. AppleScriptFolder about document could not copy."); } } // メニューデータの読み込みとメニュー構成 - NSMenu *theASMenu = [[[NSApp mainMenu] itemAtIndex:k_scriptMenuIndex] submenu]; - [self removeAllMenuItemsFromParent:theASMenu]; - NSMenuItem *theMenuItem; + NSMenu *menu = [[[NSApp mainMenu] itemAtIndex:k_scriptMenuIndex] submenu]; + [self removeAllMenuItemsFromParent:menu]; + NSMenuItem *menuItem; - [self addChildFileItemTo:theASMenu fromDir:theDirPath]; - if ([theASMenu numberOfItems] > 0) { - [theASMenu addItem:[NSMenuItem separatorItem]]; + [self addChildFileItemTo:menu fromDir:[directoryURL path]]; + if ([menu numberOfItems] > 0) { + [menu addItem:[NSMenuItem separatorItem]]; } - theMenuItem = [[[NSMenuItem alloc] initWithTitle:NSLocalizedString(@"Open Scripts Folder",@"") - action:@selector(openScriptFolder:) - keyEquivalent:@""] autorelease]; - [theMenuItem setTarget:self]; - [theASMenu addItem:theMenuItem]; - theMenuItem = [[[NSMenuItem alloc] initWithTitle:NSLocalizedString(@"Update Script Menu",@"") - action:@selector(buildScriptMenu:) - keyEquivalent:@""] autorelease]; - [theMenuItem setTarget:self]; - [theASMenu addItem:theMenuItem]; + menuItem = [[[NSMenuItem alloc] initWithTitle:NSLocalizedString(@"Open Scripts Folder", @"") + action:@selector(openScriptFolder:) + keyEquivalent:@""] autorelease]; + [menuItem setTarget:self]; + [menu addItem:menuItem]; + menuItem = [[[NSMenuItem alloc] initWithTitle:NSLocalizedString(@"Update Script Menu", @"") + action:@selector(buildScriptMenu:) + keyEquivalent:@""] autorelease]; + [menuItem setTarget:self]; + [menu addItem:menuItem]; } @@ -219,9 +220,9 @@ - (NSMenu *)contexualMenu // コンテキストメニュー用のメニューを返す //------------------------------------------------------ { - NSMenu *theASMenu = [[[NSApp mainMenu] itemAtIndex:k_scriptMenuIndex] submenu]; + NSMenu *menu = [[[NSApp mainMenu] itemAtIndex:k_scriptMenuIndex] submenu]; - return [[theASMenu copy] autorelease]; + return [[menu copy] autorelease]; } @@ -230,90 +231,70 @@ - (void)launchScript:(id)sender // Script実行 //------------------------------------------------------ { - NSString *thePath = nil; + NSURL *URL; if ([sender isMemberOfClass:[NSMenuItem class]]) { - thePath = [sender representedObject]; + URL = [sender representedObject]; } - if (thePath == nil) { return; } + if (URL == nil) { return; } // ファイルがない場合は警告して抜ける - if (![[NSFileManager defaultManager] fileExistsAtPath:thePath]) { - [self showAlert:[NSString stringWithFormat: - NSLocalizedString(@"The Script \"%@\" NOT exists.\n\nCheck it and do \"Update Script Menu\".",@""), thePath]]; + if (![URL checkResourceIsReachableAndReturnError:nil]) { + [self showAlertWithMessage:[NSString stringWithFormat:NSLocalizedString(@"The script \"%@\" does not exist.\n\nCheck it and do \"Update Script Menu\".", @""), URL]]; return; } // Optキーが押されていたら、アプリでスクリプトを開く - unsigned int theFlags = [NSEvent currentCarbonModifierFlags]; - NSString *theXtsn = [thePath pathExtension]; - NSString *theMessage = nil; - BOOL theModifierPressed = NO; - BOOL theResult = YES; - if (theFlags == NSAlternateKeyMask) { - theModifierPressed = YES; - if (([theXtsn isEqualToString:@"applescript"]) || ([theXtsn isEqualToString:@"scpt"])) { - theResult = [[NSWorkspace sharedWorkspace] openFile:thePath withApplication:@"Script Editor"]; - if (!theResult) { - theResult = [[NSWorkspace sharedWorkspace] openFile:thePath withApplication:@"AppleScript Editor"]; - } - } else if (([theXtsn isEqualToString:@"sh"]) || ([theXtsn isEqualToString:@"pl"]) || - ([theXtsn isEqualToString:@"php"]) || ([theXtsn isEqualToString:@"rb"]) || - ([theXtsn isEqualToString:@"py"])) { - theResult = [[NSWorkspace sharedWorkspace] openFile:thePath - withApplication:[[NSBundle mainBundle] bundlePath]]; + NSUInteger flags = [NSEvent currentCarbonModifierFlags]; + NSString *extension = [URL pathExtension]; + NSString *message = nil; + BOOL isModifierPressed = NO; + BOOL success = YES; + if (flags == NSAlternateKeyMask) { + isModifierPressed = YES; + if ([[CEScriptManager AppleScriptExtensions] containsObject:extension]) { + success = [[NSWorkspace sharedWorkspace] openURLs:@[URL] + withAppBundleIdentifier:@"com.apple.ScriptEditor2" + options:0 + additionalEventParamDescriptor:nil + launchIdentifiers:NULL]; + } else if ([[CEScriptManager scriptExtensions] containsObject:extension]) { + success = [[NSWorkspace sharedWorkspace] openFile:[URL path] withApplication:[[NSBundle mainBundle] bundlePath]]; } - if (!theResult) { - theMessage = [NSString stringWithFormat: - NSLocalizedString(@"The Script file \"%@\" could not open.",@""), thePath]; - } - } else if (theFlags == (NSAlternateKeyMask | NSShiftKeyMask)) { - theModifierPressed = YES; - theResult = [[NSWorkspace sharedWorkspace] selectFile:thePath inFileViewerRootedAtPath:@""]; - if (!theResult) { - theMessage = [NSString stringWithFormat: - NSLocalizedString(@"The Script file \"%@\" could not select.",@""), thePath]; + if (!success) { + message = [NSString stringWithFormat:NSLocalizedString(@"Could not open the script file \"%@\".",@""), URL]; } + } else if (flags == (NSAlternateKeyMask | NSShiftKeyMask)) { + isModifierPressed = YES; + [[NSWorkspace sharedWorkspace] activateFileViewerSelectingURLs:@[URL]]; } - if ((!theResult) && (theMessage != nil)) { + if (!success && (message != nil)) { // 開けなかったり選択できなければその旨を表示 - [self showAlert:theMessage]; - } - if (theModifierPressed) { - return; + [self showAlertWithMessage:message]; } - - if (([theXtsn isEqualToString:@"applescript"]) || ([theXtsn isEqualToString:@"scpt"])) { - NSAppleScript *theAppleScript = nil; - NSDictionary *theErrorInfo = nil; - NSAppleEventDescriptor *theDescriptor; - if (([theXtsn isEqualToString:@"applescript"]) || - ([theXtsn isEqualToString:@"scpt"])) { - NSURL *theURL = [NSURL fileURLWithPath:thePath]; - theAppleScript = [[[NSAppleScript alloc] initWithContentsOfURL:theURL - error:&theErrorInfo] autorelease]; - } - - if (theAppleScript != nil) { - theDescriptor = [theAppleScript executeAndReturnError:&theErrorInfo]; + if (isModifierPressed) { return; } + + if ([[CEScriptManager AppleScriptExtensions] containsObject:extension]) { + NSAppleScript *appleScript = nil; + NSDictionary *errorInfo = nil; + NSAppleEventDescriptor *descriptor; + + appleScript = [[[NSAppleScript alloc] initWithContentsOfURL:URL error:&errorInfo] autorelease]; + if (appleScript != nil) { + descriptor = [appleScript executeAndReturnError:&errorInfo]; } // エラーが発生したら、表示 - if (((theAppleScript == nil) || (theDescriptor == nil)) && (theErrorInfo != nil)) { - [self showAlert:[NSString stringWithFormat: - NSLocalizedString(@"%@\nErrorNumber: %i",@""), - [theErrorInfo valueForKey:NSAppleScriptErrorMessage], - [[theErrorInfo valueForKey:NSAppleScriptErrorNumber] intValue]]]; + if (((appleScript == nil) || (descriptor == nil)) && (errorInfo != nil)) { + [self showAlertWithMessage:[NSString stringWithFormat:NSLocalizedString(@"%@\nErrorNumber: %i",@""), + [errorInfo valueForKey:NSAppleScriptErrorMessage], + [[errorInfo valueForKey:NSAppleScriptErrorNumber] integerValue]]]; } - } else if (([theXtsn isEqualToString:@"sh"]) || ([theXtsn isEqualToString:@"pl"]) || - ([theXtsn isEqualToString:@"php"]) || ([theXtsn isEqualToString:@"rb"]) || - ([theXtsn isEqualToString:@"py"])) { - + } else if ([[CEScriptManager scriptExtensions] containsObject:extension]) { // 実行権限がない場合は警告して抜ける - if (![[NSFileManager defaultManager] isExecutableFileAtPath:thePath]) { - [self showAlert:[NSString stringWithFormat: - NSLocalizedString(@"The Script \"%@\" NOT be able to execute.\nShell scripts have to have execute permission.\n\nCheck it\'s permission.",@""), thePath]]; + if (![[NSFileManager defaultManager] isExecutableFileAtPath:[URL path]]) { + [self showAlertWithMessage:[NSString stringWithFormat:NSLocalizedString(@"Cannnot execute the script \"%@\".\nShell scripts have to have the execute permission.\n\nCheck it\'s permission.",@""), URL]]; return; } - [self doLaunchShellScript:thePath]; + [self doLaunchShellScript:URL]; } } @@ -323,12 +304,12 @@ - (void)openScriptErrorWindow // Scriptエラーウィンドウを表示 // ------------------------------------------------------ { - [[_errorTextView window] orderFront:self]; + [[[self errorTextView] window] orderFront:self]; } -#pragma mark ===== Protocol ===== +#pragma mark Protocols //======================================================= // NSNibAwaking Protocol @@ -340,10 +321,8 @@ - (void)awakeFromNib // Nibファイル読み込み直後 // ------------------------------------------------------ { - // 自動スペルチェックをオフ - [_errorTextView setContinuousSpellCheckingEnabled:NO]; // nib での設定が有効にならないため、ここで設定している // フォント指定 - [_errorTextView setFont:[NSFont messageFontOfSize:10]]; + [[self errorTextView] setFont:[NSFont messageFontOfSize:10]]; } @@ -362,7 +341,7 @@ - (BOOL)validateMenuItem:(NSMenuItem *)inMenuItem -#pragma mark ===== Action messages ===== +#pragma mark Action Messages //======================================================= // Action messages @@ -374,14 +353,12 @@ - (IBAction)openScriptFolder:(id)sender // ScriptフォルダウィンドウをFinderで表示 // ------------------------------------------------------ { - NSString *thePath = [[NSBundle mainBundle] pathForResource:@"openScriptMenu" ofType:@"applescript"]; - if (thePath == nil) { return; } - NSURL *theURL = [NSURL fileURLWithPath:thePath]; - NSAppleScript *theAppleScript = [[[NSAppleScript alloc] initWithContentsOfURL:theURL error:nil] autorelease]; - - if (theAppleScript != nil) { - (void)[theAppleScript executeAndReturnError:nil]; - } + NSURL *URL = [[NSBundle mainBundle] URLForResource:@"openScriptMenu" withExtension:@"applescript"]; + + if (URL == nil) { return; } + + NSAppleScript *appleScript = [[[NSAppleScript alloc] initWithContentsOfURL:URL error:nil] autorelease]; + (void)[appleScript executeAndReturnError:nil]; } @@ -390,15 +367,14 @@ - (IBAction)cleanScriptError:(id)sender // Scriptエラーログを削除 // ------------------------------------------------------ { - [_errorTextView setString:@""]; + [[self errorTextView] setString:@""]; } -@end -@implementation CEScriptManager (Private) +#pragma mark - Private Methods //======================================================= // Private method @@ -410,22 +386,26 @@ - (void)setupMenuIcon // メニューバーにアイコンを表示 //------------------------------------------------------ { - NSMenuItem *theASMenuItem = [[NSApp mainMenu] itemAtIndex:k_scriptMenuIndex]; + NSMenuItem *menuItem = [[NSApp mainMenu] itemAtIndex:k_scriptMenuIndex]; - [theASMenuItem setTitle:NSLocalizedString(@"Script Menu",@"")]; - [theASMenuItem setImage:[NSImage imageNamed:@"scriptMenuIcon"]]; + [menuItem setTitle:NSLocalizedString(@"Script Menu", @"")]; + [menuItem setImage:[NSImage imageNamed:@"scriptMenuIcon"]]; } //------------------------------------------------------ -- (NSString *)pathOfScriptDirectory +- (NSURL *)scriptDirectoryURL // Scriptファイル保存用ディレクトリを返す //------------------------------------------------------ { - NSString *outPath = [NSHomeDirectory( ) - stringByAppendingPathComponent:@"Library/Application Support/CotEditor/ScriptMenu"]; - - return outPath; + NSURL *URL = [[[NSFileManager defaultManager] URLForDirectory:NSApplicationSupportDirectory + inDomain:NSUserDomainMask + appropriateForURL:nil + create:YES + error:nil] + URLByAppendingPathComponent:@"CotEditor/ScriptMenu"]; + + return URL; } @@ -434,348 +414,328 @@ - (void)addChildFileItemTo:(NSMenu *)inMenu fromDir:(NSString *)inPath // ファイルを読み込みメニューアイテムを生成/追加する //------------------------------------------------------ { - NSFileManager *theFileManager = [NSFileManager defaultManager]; - NSArray *theFiles = [theFileManager directoryContentsAtPath:inPath]; - NSString *thePath, *theMenuTitle; - NSMenuItem *theMenuItem; - int i; - - for (i = 0; i < [theFiles count]; i++) { - NSString *theFileName = [theFiles objectAtIndex:i]; - thePath = [inPath stringByAppendingPathComponent:theFileName]; - NSString *theXtsn = [thePath pathExtension]; - NSDictionary *theAttrs = [theFileManager fileAttributesAtPath:thePath traverseLink:NO]; - if (!theAttrs) { continue; } - if ([theAttrs valueForKey:NSFileType] == NSFileTypeDirectory) { - theMenuTitle = [self menuTitleFromFileName:theFileName]; - if ([theMenuTitle isEqualToString:@"-"]) { // セパレータ + NSURL *directoryURL = [NSURL fileURLWithPath:inPath]; + NSArray *URLs = [[NSFileManager defaultManager] contentsOfDirectoryAtURL:directoryURL + includingPropertiesForKeys:@[NSURLFileResourceTypeKey] + options:NSDirectoryEnumerationSkipsPackageDescendants | NSDirectoryEnumerationSkipsHiddenFiles + error:nil]; + NSString *menuTitle; + NSMenuItem *menuItem; + NSString *resourceType; + + for (NSURL *URL in URLs) { + NSString *extension = [URL pathExtension]; + [URL getResourceValue:&resourceType forKey:NSURLFileResourceTypeKey error:nil]; + if ([resourceType isEqualToString:NSURLFileResourceTypeDirectory]) { + menuTitle = [self menuTitleFromFileName:[URL lastPathComponent]]; + if ([menuTitle isEqualToString:@"-"]) { // セパレータ [inMenu addItem:[NSMenuItem separatorItem]]; continue; } - NSMenu *theSubMenu = [[[NSMenu alloc] initWithTitle:theMenuTitle] autorelease]; - theMenuItem = [[[NSMenuItem alloc] initWithTitle:theMenuTitle + NSMenu *subMenu = [[[NSMenu alloc] initWithTitle:menuTitle] autorelease]; + menuItem = [[[NSMenuItem alloc] initWithTitle:menuTitle action:nil keyEquivalent:@""] autorelease]; - [theMenuItem setTag:k_scriptMenuDirectoryTag]; - [inMenu addItem:theMenuItem]; - [theMenuItem setSubmenu:theSubMenu]; - [self addChildFileItemTo:theSubMenu fromDir:thePath]; - } else if (([theAttrs valueForKey:NSFileType] == NSFileTypeRegular) && - (([theXtsn isEqualToString:@"applescript"]) || - ([theXtsn isEqualToString:@"scpt"]) || - ([theXtsn isEqualToString:@"sh"]) || - ([theXtsn isEqualToString:@"pl"]) || - ([theXtsn isEqualToString:@"php"]) || - ([theXtsn isEqualToString:@"rb"]) || - ([theXtsn isEqualToString:@"py"]))) { - unsigned int theMod = 0; - NSString *theKeyEquivalent = [self keyEquivalentAndModifierMask:&theMod fromFileName:theFileName]; - theMenuTitle = [self menuTitleFromFileName:theFileName]; - theMenuItem = [[[NSMenuItem alloc] initWithTitle:theMenuTitle - action:@selector(launchScript:) keyEquivalent:theKeyEquivalent] autorelease]; - [theMenuItem setKeyEquivalentModifierMask:theMod]; - [theMenuItem setRepresentedObject:thePath]; - [theMenuItem setTarget:self]; - [theMenuItem setToolTip:NSLocalizedString(@"\"Opt + click\" to open in Script Editor.",@"")]; - [inMenu addItem:theMenuItem]; + [menuItem setTag:k_scriptMenuDirectoryTag]; + [inMenu addItem:menuItem]; + [menuItem setSubmenu:subMenu]; + [self addChildFileItemTo:subMenu fromDir:[URL path]]; + } else if ([resourceType isEqualToString:NSURLFileResourceTypeRegular] && + ([[CEScriptManager AppleScriptExtensions] containsObject:extension] || + [[CEScriptManager scriptExtensions] containsObject:extension])) { + NSUInteger modifierMask = 0; + NSString *keyEquivalent = [self keyEquivalentAndModifierMask:&modifierMask fromFileName:[URL lastPathComponent]]; + menuTitle = [self menuTitleFromFileName:[URL lastPathComponent]]; + menuItem = [[[NSMenuItem alloc] initWithTitle:menuTitle + action:@selector(launchScript:) + keyEquivalent:keyEquivalent] autorelease]; + [menuItem setKeyEquivalentModifierMask:modifierMask]; + [menuItem setRepresentedObject:URL]; + [menuItem setTarget:self]; + [menuItem setToolTip:NSLocalizedString(@"\"Opt + click\" to open in Script Editor.",@"")]; + [inMenu addItem:menuItem]; } } } //------------------------------------------------------ -- (void)removeAllMenuItemsFromParent:(NSMenu *)inMenu +- (void)removeAllMenuItemsFromParent:(NSMenu *)menu // すべてのメニューアイテムを削除 //------------------------------------------------------ { - NSArray *theItems = [inMenu itemArray]; - NSMenuItem *theMenuItem; - int i; - - for (i = ([theItems count] - 1); i >= 0; i--) { - theMenuItem = [theItems objectAtIndex:i]; - if ((![theMenuItem isSeparatorItem]) && ([theMenuItem hasSubmenu])) { - [self removeAllMenuItemsFromParent:[theMenuItem submenu]]; + NSArray *items = [menu itemArray]; + NSMenuItem *menuItem; + NSInteger i; + + for (i = ([items count] - 1); i >= 0; i--) { + menuItem = items[i]; + if (![menuItem isSeparatorItem] && [menuItem hasSubmenu]) { + [self removeAllMenuItemsFromParent:[menuItem submenu]]; } - [inMenu removeItem:theMenuItem]; + [menu removeItem:menuItem]; } } //------------------------------------------------------ -- (NSString *)menuTitleFromFileName:(NSString *)inFileName +- (NSString *)menuTitleFromFileName:(NSString *)fileName // ファイル/フォルダ名からメニューアイテムタイトル名を生成 //------------------------------------------------------ { - NSMutableString *outString = [NSMutableString stringWithString:[inFileName stringByDeletingPathExtension]]; - NSString *theExtnFirstChar = [[outString pathExtension] substringFromIndex:0]; - NSCharacterSet *theSpecSet = [NSCharacterSet characterSetWithCharactersInString:@"^~$@"]; + NSString *menuTitle = [fileName stringByDeletingPathExtension]; + NSString *extnFirstChar = [[menuTitle pathExtension] substringFromIndex:0]; + NSCharacterSet *specSet = [NSCharacterSet characterSetWithCharactersInString:@"^~$@"]; // 順番調整の冒頭の番号を削除 - [outString replaceOccurrencesOfRegularExpressionString:@"^[0-9]+\\)" - withString:@"" options:OgreNoneOption range:NSMakeRange(0, [outString length])]; - + NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"^[0-9]+\\)" + options:0 error:nil]; + menuTitle = [regex stringByReplacingMatchesInString:menuTitle + options:0 + range:NSMakeRange(0, [menuTitle length]) + withTemplate:@""]; + // キーボードショートカット定義があれば、削除して返す - if (([theExtnFirstChar length] > 0) && - ([theSpecSet characterIsMember:[theExtnFirstChar characterAtIndex:0]])) { - return [outString stringByDeletingPathExtension]; + if (([extnFirstChar length] > 0) && + [specSet characterIsMember:[extnFirstChar characterAtIndex:0]]) { + return [menuTitle stringByDeletingPathExtension]; } - return outString; + + return menuTitle; } //------------------------------------------------------ -- (NSString *)keyEquivalentAndModifierMask:(unsigned int *)ioModMask fromFileName:(NSString *)inFileName +- (NSString *)keyEquivalentAndModifierMask:(NSUInteger *)modifierMask fromFileName:(NSString *)fileName // ファイル名からキーボードショートカット定義を読み取る //------------------------------------------------------ { - NSString *theKeySpec = [[inFileName stringByDeletingPathExtension] pathExtension]; + NSString *keySpec = [[fileName stringByDeletingPathExtension] pathExtension]; - return [[NSApp delegate] keyEquivalentAndModifierMask:ioModMask - fromString:theKeySpec includingCommandKey:YES]; + return [[NSApp delegate] keyEquivalentAndModifierMask:modifierMask fromString:keySpec includingCommandKey:YES]; } //------------------------------------------------------ -- (void)showAlert:(NSString *)inMessage +- (void)showAlertWithMessage:(NSString *)message // エラーアラートを表示 //------------------------------------------------------ { - NSAlert *theAleart = [NSAlert alertWithMessageText:NSLocalizedString(@"Script Error",@"") - defaultButton:nil - alternateButton:nil - otherButton:nil - informativeTextWithFormat:inMessage]; - [theAleart setAlertStyle:NSCriticalAlertStyle]; - (void)[theAleart runModal]; + NSAlert *alert = [NSAlert alertWithMessageText:NSLocalizedString(@"Script Error", nil) + defaultButton:nil + alternateButton:nil + otherButton:nil + informativeTextWithFormat:message, nil]; + [alert setAlertStyle:NSCriticalAlertStyle]; + (void)[alert runModal]; } //------------------------------------------------------ -- (NSString *)stringOfScript:(NSString *)inPath +- (NSString *)stringOfScript:(NSURL *)URL // スクリプトの文字列を得る //------------------------------------------------------ { - NSString *outString = nil; - NSData *theData = [NSData dataWithContentsOfFile:inPath]; - if ((theData == nil) || ([theData length] < 1)) { return outString; } - id theValues = [[NSUserDefaultsController sharedUserDefaultsController] values]; - NSArray *theEncodings = [[[theValues valueForKey:k_key_encodingList] copy] autorelease]; - NSStringEncoding theEncoding; - int i = 0; - - while (outString == nil) { - theEncoding = - CFStringConvertEncodingToNSStringEncoding([[theEncodings objectAtIndex:i] unsignedLongValue]); - if (theEncoding == NSProprietaryStringEncoding) { - NSLog(@"theEncoding == NSProprietaryStringEncoding"); + NSString *scriptString = nil; + NSData *data = [NSData dataWithContentsOfURL:URL]; + + if ((data == nil) || ([data length] < 1)) { return nil; } + + NSArray *encodings = [[[[NSUserDefaults standardUserDefaults] arrayForKey:k_key_encodingList] copy] autorelease]; + NSStringEncoding encoding; + NSInteger i = 0; + while (scriptString == nil) { + encoding = CFStringConvertEncodingToNSStringEncoding([encodings[i] unsignedLongValue]); + if (encoding == NSProprietaryStringEncoding) { + NSLog(@"encoding == NSProprietaryStringEncoding"); break; } - outString = [[[NSString alloc] initWithData:theData encoding:theEncoding] autorelease]; - if (outString != nil) { break; } + scriptString = [[[NSString alloc] initWithData:data encoding:encoding] autorelease]; + if (scriptString != nil) { break; } i++; } - if (outString != nil) { - // 10.3.9 で、一部のバイナリファイルを開いたときにクラッシュする問題への暫定対応。 - // 10.4+ ではスルー(2005.12.25) - // >> しかし「すべて2バイト文字で4096文字以上あるユニコードでない文書」は開けない(2005.12.25) - // (下記の現象と同じ理由で発生していると思われる) - // https://www.codingmonkeys.de/bugs/browse/HYR-529?page=all - if ((floor(NSAppKitVersionNumber) > NSAppKitVersionNumber10_3) || // = 10.4+ - ([theData length] <= 8192) || - (([theData length] > 8192) && ([theData length] != ([outString length] * 2 + 1)) && - ([theData length] != ([outString length] * 2)))) { - - return outString; - } - } - return nil; + + return scriptString; } //------------------------------------------------------ -- (void)doLaunchShellScript:(NSString *)inPath +- (void)doLaunchShellScript:(NSURL *)URL // シェルスクリプト実行 //------------------------------------------------------ { - NSString *theScript = [self stringOfScript:inPath]; + NSString *script = [self stringOfScript:URL]; // スクリプトファイル内容を得られない場合は警告して抜ける - if ((theScript == nil) || ([theScript length] < 1)) { - [self showAlert:[NSString stringWithFormat: - NSLocalizedString(@"The Script \"%@\" could NOT read.",@""), inPath]]; + if (!script || ([script length] < 1)) { + [self showAlertWithMessage:[NSString stringWithFormat:NSLocalizedString(@"Could NOT read the script \"%@\".",@""), [URL path]]]; return; } - CEDocument *theDoc = nil; - NSScanner *theScanner = [NSScanner scannerWithString:theScript]; - NSString *theInputType = nil, *theOutputType = nil; - NSString *theInputStr = nil; - NSData *theInputData = nil; - NSTask *theTask = [[[NSTask alloc] init] autorelease]; - NSPipe *theOutPipe = [NSPipe pipe]; - NSPipe *theErrorPipe = [NSPipe pipe]; - BOOL theBoolDocExists = NO; - BOOL theBoolIsError = NO; + CEDocument *document = nil; + NSScanner *scanner = [NSScanner scannerWithString:script]; + NSString *inputType = nil; + NSString *outputType = nil; + NSString *inputString = nil; + NSData *inputData = nil; + NSTask *task = [[[NSTask alloc] init] autorelease]; + NSPipe *outPipe = [NSPipe pipe]; + NSPipe *errorPipe = [NSPipe pipe]; + BOOL docExists = NO; + BOOL hasError = NO; if ([[NSApp orderedDocuments] count] > 0) { - theBoolDocExists = YES; - theDoc = [[NSApp orderedDocuments] objectAtIndex:0]; + docExists = YES; + document = [NSApp orderedDocuments][0]; } - _outputHandle = [[theOutPipe fileHandleForReading] retain]; // ===== retain - _errorHandle = [[theErrorPipe fileHandleForReading] retain]; // ===== retain - [theScanner setCaseSensitive:YES]; - while (![theScanner isAtEnd]) { - (void)[theScanner scanUpToString:@"%%%{CotEditorXInput=" intoString:nil]; - if ([theScanner scanString:@"%%%{CotEditorXInput=" intoString:nil]) { - if ([theScanner scanUpToString:@"}%%%" intoString:&theInputType]) { + [self setOutputHandle:[outPipe fileHandleForReading]]; + [self setErrorHandle:[errorPipe fileHandleForReading]]; + [scanner setCaseSensitive:YES]; + while (![scanner isAtEnd]) { + (void)[scanner scanUpToString:@"%%%{CotEditorXInput=" intoString:nil]; + if ([scanner scanString:@"%%%{CotEditorXInput=" intoString:nil]) { + if ([scanner scanUpToString:@"}%%%" intoString:&inputType]) { break; } } } - if ((theInputType != nil) && ([theInputType isEqualToString:@"Selection"])) { - if (theBoolDocExists) { - NSRange theSelectedRange = [[[theDoc editorView] textView] selectedRange]; - theInputStr = [[[theDoc editorView] string] substringWithRange:theSelectedRange]; + if ((inputType != nil) && ([inputType isEqualToString:@"Selection"])) { + if (docExists) { + NSRange theSelectedRange = [[[document editorView] textView] selectedRange]; + inputString = [[[document editorView] string] substringWithRange:theSelectedRange]; // ([[theDoc editorView] string] は行末コードLFの文字列を返すが、[[theDoc editorView] selectedRange] は // 行末コードを反映させた範囲を返すので、「CR/LF」では使えない。そのため、 // [[[theDoc editorView] textView] selectedRange] を使う必要がある。2009-04-12 } else { - theBoolIsError = YES; + hasError = YES; } - } else if ((theInputType != nil) && ([theInputType isEqualToString:@"AllText"])) { - if (theBoolDocExists) { - theInputStr = [[theDoc editorView] string]; + } else if ((inputType != nil) && ([inputType isEqualToString:@"AllText"])) { + if (docExists) { + inputString = [[document editorView] string]; } else { - theBoolIsError = YES; + hasError = YES; } } else { // == "None" } - if (theBoolIsError) { - [self showScriptErrorLog: - [NSString stringWithFormat:@"[ %@ ]\n%@", - [[NSDate date] description], @"NO document, no Input."]]; + if (hasError) { + [self showScriptErrorLog:[NSString stringWithFormat:@"[ %@ ]\n%@", + [[NSDate date] description], @"NO document, no Input."]]; return; } - if (theInputStr != nil) { - theInputData = [theInputStr dataUsingEncoding:NSUTF8StringEncoding]; + if (inputString != nil) { + inputData = [inputString dataUsingEncoding:NSUTF8StringEncoding]; } - [theScanner setScanLocation:0]; - while (![theScanner isAtEnd]) { - (void)[theScanner scanUpToString:@"%%%{CotEditorXOutput=" intoString:nil]; - if ([theScanner scanString:@"%%%{CotEditorXOutput=" intoString:nil]) { - if ([theScanner scanUpToString:@"}%%%" intoString:&theOutputType]) { + [scanner setScanLocation:0]; + while (![scanner isAtEnd]) { + (void)[scanner scanUpToString:@"%%%{CotEditorXOutput=" intoString:nil]; + if ([scanner scanString:@"%%%{CotEditorXOutput=" intoString:nil]) { + if ([scanner scanUpToString:@"}%%%" intoString:&outputType]) { break; } } } - if (theOutputType == nil) { - _outputType = k_noOutput; - } else if ([theOutputType isEqualToString:@"ReplaceSelection"]) { - _outputType = k_replaceSelection; - } else if ([theOutputType isEqualToString:@"ReplaceAllText"]) { - _outputType = k_replaceAllText; - } else if ([theOutputType isEqualToString:@"InsertAfterSelection"]) { - _outputType = k_insertAfterSelection; - } else if ([theOutputType isEqualToString:@"AppendToAllText"]) { - _outputType = k_appendToAllText; - } else if ([theOutputType isEqualToString:@"Pasteboard"]) { - _outputType = k_pasteboard; - } else if ([theOutputType isEqualToString:@"Pasteboard puts"]) { // 以前の定義文字列。互換性のため。(2007.05.26) - _outputType = k_pasteboard; + if (outputType == nil) { + [self setOutputType:k_noOutput]; + } else if ([outputType isEqualToString:@"ReplaceSelection"]) { + [self setOutputType:k_replaceSelection]; + } else if ([outputType isEqualToString:@"ReplaceAllText"]) { + [self setOutputType:k_replaceAllText]; + } else if ([outputType isEqualToString:@"InsertAfterSelection"]) { + [self setOutputType:k_insertAfterSelection]; + } else if ([outputType isEqualToString:@"AppendToAllText"]) { + [self setOutputType:k_appendToAllText]; + } else if ([outputType isEqualToString:@"Pasteboard"]) { + [self setOutputType:k_pasteboard]; + } else if ([outputType isEqualToString:@"Pasteboard puts"]) { // 以前の定義文字列。互換性のため。(2007.05.26) + [self setOutputType:k_pasteboard]; } else { // == "Discard" - _outputType = k_noOutput; + [self setOutputType:k_noOutput]; } // タスク実行準備 - // (theTask に引数をセットすると一部のスクリプトが誤動作する。例えば、Perl 5.8.xで「use encoding 'utf8'」のうえ + // (task に引数をセットすると一部のスクリプトが誤動作する。例えば、Perl 5.8.xで「use encoding 'utf8'」のうえ // printコマンドを使用すると文字化けすることがある。2009-03-31) - [theTask setLaunchPath:inPath]; - [theTask setCurrentDirectoryPath:NSHomeDirectory()]; - [theTask setStandardInput:[NSPipe pipe]]; - [theTask setStandardOutput:theOutPipe]; - [theTask setStandardError:theErrorPipe]; + [task setLaunchPath:[URL path]]; + [task setCurrentDirectoryPath:NSHomeDirectory()]; + [task setStandardInput:[NSPipe pipe]]; + [task setStandardOutput:outPipe]; + [task setStandardError:errorPipe]; // 出力をバックグラウンドで行うように指示 - [[[theTask standardOutput] fileHandleForReading] readToEndOfFileInBackgroundAndNotify]; - [[[theTask standardError] fileHandleForReading] readToEndOfFileInBackgroundAndNotify]; + [[[task standardOutput] fileHandleForReading] readToEndOfFileInBackgroundAndNotify]; + [[[task standardError] fileHandleForReading] readToEndOfFileInBackgroundAndNotify]; - [theTask launch]; - if ((theInputData != nil) && ([theInputData length] > 0)) { - [[[theTask standardInput] fileHandleForWriting] writeData:theInputData]; - [[[theTask standardInput] fileHandleForWriting] closeFile]; + [task launch]; + if ((inputData != nil) && ([inputData length] > 0)) { + [[[task standardInput] fileHandleForWriting] writeData:inputData]; + [[[task standardInput] fileHandleForWriting] closeFile]; } } // ------------------------------------------------------ -- (void)availableOutput:(NSNotification *)inNotification +- (void)availableOutput:(NSNotification *)aNotification // 標準出力を取得 // ------------------------------------------------------ { - NSData *theOutputData = [[inNotification userInfo] objectForKey:NSFileHandleNotificationDataItem]; - CEDocument *theDoc = nil; - NSString *theOutputStr = nil; - NSPasteboard *thePb; - BOOL theBoolDocExists = NO; + NSData *outputData = [aNotification userInfo][NSFileHandleNotificationDataItem]; + CEDocument *document = nil; + NSString *outputString = nil; + NSPasteboard *pasteboard; + BOOL existsDocument = NO; if ([[NSApp orderedDocuments] count] > 0) { - theBoolDocExists = YES; - theDoc = [[NSApp orderedDocuments] objectAtIndex:0]; + existsDocument = YES; + document = [NSApp orderedDocuments][0]; } - if (theOutputData == nil) { return; } - if ([[inNotification object] isEqualTo:_outputHandle]) { - theOutputStr = [[[NSString alloc] initWithData:theOutputData - encoding:NSUTF8StringEncoding] autorelease]; - if (theOutputStr != nil) { - switch (_outputType) { + if (outputData == nil) { return; } + if ([[aNotification object] isEqualTo:[self outputHandle]]) { + outputString = [[[NSString alloc] initWithData:outputData encoding:NSUTF8StringEncoding] autorelease]; + if (outputString != nil) { + switch ([self outputType]) { case k_replaceSelection: - [[theDoc editorView] replaceTextViewSelectedStringTo:theOutputStr scroll:NO]; + [[document editorView] replaceTextViewSelectedStringTo:outputString scroll:NO]; break; case k_replaceAllText: - [[theDoc editorView] replaceTextViewAllStringTo:theOutputStr]; + [[document editorView] replaceTextViewAllStringTo:outputString]; break; case k_insertAfterSelection: - [[theDoc editorView] insertTextViewAfterSelectionStringTo:theOutputStr]; + [[document editorView] insertTextViewAfterSelectionStringTo:outputString]; break; case k_appendToAllText: - [[theDoc editorView] appendTextViewAfterAllStringTo:theOutputStr]; + [[document editorView] appendTextViewAfterAllStringTo:outputString]; break; case k_pasteboard: - thePb = [NSPasteboard generalPasteboard]; - [thePb declareTypes:[NSArray arrayWithObject:NSStringPboardType] owner:nil]; - if (![thePb setString:theOutputStr forType:NSStringPboardType]) { + pasteboard = [NSPasteboard generalPasteboard]; + [pasteboard declareTypes:@[NSStringPboardType] owner:nil]; + if (![pasteboard setString:outputString forType:NSStringPboardType]) { NSBeep(); } break; } } - _outputType = k_noOutput; - [_outputHandle release]; - _outputHandle = nil; - } else if ([[inNotification object] isEqualTo:_errorHandle]) { - theOutputStr = [[[NSString alloc] initWithData:theOutputData - encoding:NSUTF8StringEncoding] autorelease]; - if ((theOutputStr != nil) && ([theOutputStr length] > 0)) { - [self showScriptErrorLog: - [NSString stringWithFormat:@"[ %@ ]\n%@", [[NSDate date] description], theOutputStr]]; + [self setOutputType:k_noOutput]; + [self setOutputHandle:nil]; + } else if ([[aNotification object] isEqualTo:[self errorHandle]]) { + outputString = [[[NSString alloc] initWithData:outputData encoding:NSUTF8StringEncoding] autorelease]; + if ((outputString != nil) && ([outputString length] > 0)) { + [self showScriptErrorLog:[NSString stringWithFormat:@"[ %@ ]\n%@", [[NSDate date] description], outputString]]; } - [_errorHandle release]; - _errorHandle = nil; + [self setErrorHandle:nil]; } } // ------------------------------------------------------ -- (void)showScriptErrorLog:(NSString *)inLogString +- (void)showScriptErrorLog:(NSString *)errorLog // スクリプトエラーを追記し、エラーログウィンドウを表示 // ------------------------------------------------------ { - [_errorTextView setEditable:YES]; - [_errorTextView setSelectedRange:NSMakeRange([[_errorTextView string] length], 0)]; - [_errorTextView insertText:inLogString]; - [_errorTextView setEditable:NO]; + [[self errorTextView] setEditable:YES]; + [[self errorTextView] setSelectedRange:NSMakeRange([[[self errorTextView] string] length], 0)]; + [[self errorTextView] insertText:errorLog]; + [[self errorTextView] setEditable:NO]; [self openScriptErrorWindow]; } -@end \ No newline at end of file +@end diff --git a/CESplitView.h b/CESplitView.h index e67ec03b28..e1a5061052 100644 --- a/CESplitView.h +++ b/CESplitView.h @@ -3,8 +3,9 @@ CESplitView (for CotEditor) -Copyright (C) 2004-2007 nakamuxu. -http://www.aynimac.com/ + Copyright (C) 2004-2007 nakamuxu. + Copyright (C) 2014 CotEditor Project + http://coteditor.github.io ================================================= encoding="UTF-8" @@ -31,26 +32,21 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #import -#import "constants.h" @interface CESplitView : NSSplitView -{ - BOOL _finishedOpen; -} - -// Public method -- (void)setShowLineNum:(BOOL)inBool; -- (void)setShowNavigationBar:(BOOL)inBool; -- (void)setWrapLines:(BOOL)inBool; -- (void)setShowInvisibles:(BOOL)inBool; -- (void)setUseAntialias:(BOOL)inBool; -- (void)setCloseSubSplitViewButtonEnabled:(BOOL)inBool; + +- (void)setShowLineNum:(BOOL)showLineNum; +- (void)setShowNavigationBar:(BOOL)showNavigationBar; +- (void)setWrapLines:(BOOL)wrapLines; +- (void)setShowInvisibles:(BOOL)showInvisibles; +- (void)setUseAntialias:(BOOL)useAntialias; +- (void)setCloseSubSplitViewButtonEnabled:(BOOL)enabled; - (void)setAllCaretToBeginning; - (void)releaseAllEditorView; -- (void)setSyntaxStyleNameToSyntax:(NSString *)inName; +- (void)setSyntaxStyleNameToSyntax:(NSString *)syntaxName; - (void)recoloringAllTextView; - (void)updateAllOutlineMenu; -- (void)setAllBackgroundColorWithAlpha:(float)inAlpha; +- (void)setAllBackgroundColorWithAlpha:(CGFloat)alpha; @end diff --git a/CESplitView.m b/CESplitView.m index e1d1ff4aae..8495408192 100644 --- a/CESplitView.m +++ b/CESplitView.m @@ -3,8 +3,9 @@ CESplitView (for CotEditor) -Copyright (C) 2004-2007 nakamuxu. -http://www.aynimac.com/ + Copyright (C) 2004-2007 nakamuxu. + Copyright (C) 2014 CotEditor Project + http://coteditor.github.io ================================================= encoding="UTF-8" @@ -31,106 +32,88 @@ */ #import "CESplitView.h" +#import "constants.h" +@interface CESplitView () + +@property (nonatomic) BOOL finishedOpen; + +@end + @implementation CESplitView // ------------------------------------------------------ -- (id)initWithFrame:(NSRect)inFrame +- (instancetype)initWithFrame:(NSRect)frameRect // 初期化 // ------------------------------------------------------ { - self = [super initWithFrame:inFrame]; + self = [super initWithFrame:frameRect]; if (self) { - _finishedOpen = NO; + [self setFinishedOpen:NO]; + [self setDividerStyle:NSSplitViewDividerStylePaneSplitter]; } return self; } // ------------------------------------------------------ -- (float)dividerThickness -// 分割線の高さを返す -// ------------------------------------------------------ -{ - return k_splitDividerThickness; -} - -// ------------------------------------------------------ -- (void)drawDividerInRect:(NSRect)inRect -// 区切り線を描画 -// ------------------------------------------------------ -{ -// (ウィンドウ背景色をクリアカラーにしているため、オーバーライドしないと区切り線の背景が透明になってしまう) - - // 背景を塗る - [[NSColor gridColor] set]; - [NSBezierPath fillRect:inRect]; - // 区切り線を縁取る - [[NSColor controlShadowColor] set]; - [NSBezierPath strokeRect:inRect]; - // 区切り線マークを描画 - [super drawDividerInRect:inRect]; -} - - -// ------------------------------------------------------ -- (void)setShowLineNum:(BOOL)inBool +- (void)setShowLineNum:(BOOL)showLineNum // 行番号表示の有無を設定 // ------------------------------------------------------ { - [[self subviews] makeObjectsPerformSelector:@selector(setShowLineNumWithNumber:) - withObject:[NSNumber numberWithBool:inBool]]; + [[self subviews] makeObjectsPerformSelector:@selector(setShowLineNumWithNumber:) + withObject:@(showLineNum)]; } // ------------------------------------------------------ -- (void)setShowNavigationBar:(BOOL)inBool +- (void)setShowNavigationBar:(BOOL)showNavigationBar // ナビゲーションバー描画の有無を設定 // ------------------------------------------------------ { - [[self subviews] makeObjectsPerformSelector:@selector(setShowNavigationBarWithNumber:) - withObject:[NSNumber numberWithBool:inBool]]; + [[self subviews] makeObjectsPerformSelector:@selector(setShowNavigationBarWithNumber:) + withObject:@(showNavigationBar)]; } // ------------------------------------------------------ -- (void)setWrapLines:(BOOL)inBool +- (void)setWrapLines:(BOOL)wrapLines // ラップする/しないを設定 // ------------------------------------------------------ { - [[self subviews] makeObjectsPerformSelector:@selector(setWrapLinesWithNumber:) - withObject:[NSNumber numberWithBool:inBool]]; + [[self subviews] makeObjectsPerformSelector:@selector(setWrapLinesWithNumber:) + withObject:@(wrapLines)]; } // ------------------------------------------------------ -- (void)setShowInvisibles:(BOOL)inBool +- (void)setShowInvisibles:(BOOL)showInvisibles // 不可視文字の表示/非表示を設定 // ------------------------------------------------------ { - [[self subviews] makeObjectsPerformSelector:@selector(setShowInvisiblesWithNumber:) - withObject:[NSNumber numberWithBool:inBool]]; + [[self subviews] makeObjectsPerformSelector:@selector(setShowInvisiblesWithNumber:) + withObject:@(showInvisibles)]; } // ------------------------------------------------------ -- (void)setUseAntialias:(BOOL)inBool +- (void)setUseAntialias:(BOOL)useAntialias // 文字にアンチエイリアスを使うかどうかを設定 // ------------------------------------------------------ { - [[self subviews] makeObjectsPerformSelector:@selector(setUseAntialiasWithNumber:) - withObject:[NSNumber numberWithBool:inBool]]; + [[self subviews] makeObjectsPerformSelector:@selector(setUseAntialiasWithNumber:) + withObject:@(useAntialias)]; } // ------------------------------------------------------ -- (void)setCloseSubSplitViewButtonEnabled:(BOOL)inBool +- (void)setCloseSubSplitViewButtonEnabled:(BOOL)enabled // テキストビュー分割削除ボタンを有効/無効を設定 // ------------------------------------------------------ { - [[self subviews] makeObjectsPerformSelector:@selector(updateCloseSubSplitViewButtonWithNumber:) - withObject:[NSNumber numberWithBool:inBool]]; + [[self subviews] makeObjectsPerformSelector:@selector(updateCloseSubSplitViewButtonWithNumber:) + withObject:@(enabled)]; } @@ -154,13 +137,13 @@ - (void)releaseAllEditorView // ------------------------------------------------------ -- (void)setSyntaxStyleNameToSyntax:(NSString *)inName +- (void)setSyntaxStyleNameToSyntax:(NSString *)syntaxName // シンタックススタイルを設定 // ------------------------------------------------------ { - if (inName == nil) { return; } + if (syntaxName == nil) { return; } - [[self subviews] makeObjectsPerformSelector:@selector(setSyntaxStyleNameToSyntax:) withObject:inName]; + [[self subviews] makeObjectsPerformSelector:@selector(setSyntaxStyleNameToSyntax:) withObject:syntaxName]; } @@ -170,10 +153,10 @@ - (void)recoloringAllTextView // ------------------------------------------------------ { [[self subviews] makeObjectsPerformSelector:@selector(recoloringAllTextViewString)]; - if (!_finishedOpen) { - [[NSNotificationCenter defaultCenter] postNotificationName:k_documentDidFinishOpenNotification - object:[self superview]]; // superView = CEEditorView - _finishedOpen = YES; + if (![self finishedOpen]) { + [[NSNotificationCenter defaultCenter] postNotificationName:k_documentDidFinishOpenNotification + object:[self superview]]; // superView = CEEditorView + [self setFinishedOpen:YES]; } } @@ -188,14 +171,12 @@ - (void)updateAllOutlineMenu // ------------------------------------------------------ -- (void)setAllBackgroundColorWithAlpha:(float)inAlpha +- (void)setAllBackgroundColorWithAlpha:(CGFloat)alpha // 全てのテキストビューの背景透明度を設定 // ------------------------------------------------------ { - [[self subviews] makeObjectsPerformSelector:@selector(setBackgroundColorAlphaWithNumber:) - withObject:[NSNumber numberWithFloat:inAlpha]]; + [[self subviews] makeObjectsPerformSelector:@selector(setBackgroundColorAlphaWithNumber:) + withObject:@(alpha)]; } - - @end diff --git a/CEStatusBarView.h b/CEStatusBarView.h index ad11433f4a..c95fd023d5 100644 --- a/CEStatusBarView.h +++ b/CEStatusBarView.h @@ -3,8 +3,9 @@ CEStatusBarView (for CotEditor) -Copyright (C) 2004-2007 nakamuxu. -http://www.aynimac.com/ + Copyright (C) 2004-2007 nakamuxu. + Copyright (C) 2014 CotEditor Project + http://coteditor.github.io ================================================= encoding="UTF-8" @@ -14,6 +15,7 @@ Created:2005.03.30 This class is based on JSDTextView (written by James S. Derry – http://www.balthisar.com) JSDTextView is released as public domain. arranged by nakamuxu, Dec 2004. +arranged by 1024jp, Mar 2014. ------------------------------------------------- This program is free software; you can redistribute it and/or @@ -35,27 +37,19 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #import -#import "constants.h" @class CEEditorView; @interface CEStatusBarView : NSView -{ - NSTextField *_leftTextField; - NSTextField *_rightTextField; - NSImageView *_readOnlyView; - CEEditorView *_masterView; - BOOL _showStatusBar; -} +@property (nonatomic, assign) CEEditorView *masterView; +@property (nonatomic) BOOL showStatusBar; +@property (nonatomic, retain, readonly) NSTextField *leftTextField; +@property (nonatomic, retain, readonly) NSTextField *rightTextField; + // Public method -- (NSTextField *)leftTextField; -- (NSTextField *)rightTextField; -- (CEEditorView *)masterView; -- (void)setMasterView:(CEEditorView *)inView; -- (BOOL)showStatusBar; -- (void)setShowStatusBar:(BOOL)inBool; -- (void)setReadOnlyIcon:(BOOL)inBool; + +- (void)setShowsReadOnlyIcon:(BOOL)showsReadOnlyIcon; @end diff --git a/CEStatusBarView.m b/CEStatusBarView.m index 28d0bbc752..6b70ec47a7 100644 --- a/CEStatusBarView.m +++ b/CEStatusBarView.m @@ -3,8 +3,9 @@ CEStatusBarView (for CotEditor) -Copyright (C) 2004-2007 nakamuxu. -http://www.aynimac.com/ + Copyright (C) 2004-2007 nakamuxu. + Copyright (C) 2014 CotEditor Project + http://coteditor.github.io ================================================= encoding="UTF-8" @@ -14,6 +15,7 @@ This class is based on JSDTextView (written by James S. Derry – http://www.balthisar.com) JSDTextView is released as public domain. arranged by nakamuxu, Dec 2004. +arranged by 1024jp, Mar 2014. ------------------------------------------------- This program is free software; you can redistribute it and/or @@ -36,15 +38,16 @@ This class is based on JSDTextView (written by James S. Derry – http://www.bal #import "CEStatusBarView.h" #import "CEEditorView.h" +#import "constants.h" -//======================================================= -// Private method -// -//======================================================= +@interface CEStatusBarView () + +@property (nonatomic, retain, readwrite) NSTextField *leftTextField; +@property (nonatomic, retain, readwrite) NSTextField *rightTextField; + +@property (nonatomic, retain) NSImageView *readOnlyView; -@interface CEStatusBarView (Private) -- (void)setHeight:(float)inValue; @end @@ -52,10 +55,11 @@ - (void)setHeight:(float)inValue; +#pragma mark - @implementation CEStatusBarView -#pragma mark ===== Public method ===== +#pragma mark Public Methods //======================================================= // Public method @@ -63,57 +67,53 @@ @implementation CEStatusBarView //======================================================= // ------------------------------------------------------ -- (id)initWithFrame:(NSRect)inFrame +- (instancetype)initWithFrame:(NSRect)frameRect // 初期化 // ------------------------------------------------------ { - self = [super initWithFrame:inFrame]; + self = [super initWithFrame:frameRect]; if (self) { - - id theValues = [[NSUserDefaultsController sharedUserDefaultsController] values]; - - // setup the TextField. - NSFont *theFont = [NSFont fontWithName:[theValues valueForKey:k_key_statusBarFontName] - size:[[theValues valueForKey:k_key_statusBarFontSize] floatValue]]; - if (theFont == nil) { - theFont = [NSFont controlContentFontOfSize:11.0]; - } - NSRect theTextFieldFrame = inFrame; - theTextFieldFrame.origin.x += k_statusBarReadOnlyWidth; - theTextFieldFrame.origin.y -= (k_statusBarHeight - [theFont pointSize]) / 4 ; - theTextFieldFrame.size.width -= - ([NSScroller scrollerWidth] + k_statusBarReadOnlyWidth + k_statusBarRightPadding); - _leftTextField = [[NSTextField allocWithZone:[self zone]] initWithFrame:theTextFieldFrame]; // ===== alloc - [_leftTextField setEditable:NO]; - [_leftTextField setSelectable:NO]; - [_leftTextField setAutoresizingMask:(NSViewWidthSizable | NSViewHeightSizable)]; - [_leftTextField setFont:theFont]; - [_leftTextField setBordered:NO]; - [_leftTextField setDrawsBackground:NO]; - [_leftTextField setAlignment:NSLeftTextAlignment]; - - _rightTextField = [[NSTextField allocWithZone:[self zone]] initWithFrame:theTextFieldFrame]; // ===== alloc - [_rightTextField setEditable:NO]; - [_rightTextField setSelectable:NO]; - [_rightTextField setAutoresizingMask:(NSViewWidthSizable | NSViewHeightSizable)]; - [_rightTextField setFont:theFont]; - [_rightTextField setBordered:NO]; - [_rightTextField setDrawsBackground:NO]; - [_rightTextField setAlignment:NSRightTextAlignment]; - - - // setup the ReadOnly icon. - NSRect theReadOnlyFrame = inFrame; - theReadOnlyFrame.size.width = k_statusBarReadOnlyWidth; - _readOnlyView = - [[NSImageView allocWithZone:[self zone]] initWithFrame:theReadOnlyFrame]; // ===== alloc - [_readOnlyView setAutoresizingMask:NSViewHeightSizable]; - - [self setReadOnlyIcon:NO]; + id values = [[NSUserDefaultsController sharedUserDefaultsController] values]; + + // setup TextField + CGFloat fontSize = (CGFloat)[[values valueForKey:k_key_statusBarFontSize] doubleValue] ? : 11.0; + NSFont *font = [NSFont controlContentFontOfSize:fontSize]; + + NSRect textFieldFrame = frameRect; + textFieldFrame.origin.x += k_statusBarReadOnlyWidth; + textFieldFrame.origin.y -= (k_statusBarHeight - [font pointSize]) / 4; + textFieldFrame.size.width -= [NSScroller scrollerWidth] + k_statusBarReadOnlyWidth + k_statusBarRightPadding; + + [self setLeftTextField:[[NSTextField allocWithZone:[self zone]] initWithFrame:textFieldFrame]]; // ===== alloc + [[self leftTextField] setEditable:NO]; + [[self leftTextField] setSelectable:NO]; + [[self leftTextField] setAutoresizingMask:(NSViewWidthSizable | NSViewHeightSizable)]; + [[self leftTextField] setFont:font]; + [[self leftTextField] setBordered:NO]; + [[self leftTextField] setDrawsBackground:NO]; + [[self leftTextField] setAlignment:NSLeftTextAlignment]; + + [self setRightTextField:[[NSTextField allocWithZone:[self zone]] initWithFrame:textFieldFrame]]; // ===== alloc + [[self rightTextField] setEditable:NO]; + [[self rightTextField] setSelectable:NO]; + [[self rightTextField] setAutoresizingMask:(NSViewWidthSizable | NSViewHeightSizable)]; + [[self rightTextField] setFont:font]; + [[self rightTextField] setBordered:NO]; + [[self rightTextField] setDrawsBackground:NO]; + [[self rightTextField] setAlignment:NSRightTextAlignment]; + + // setup ReadOnly icon + NSRect readOnlyFrame = frameRect; + readOnlyFrame.size.width = k_statusBarReadOnlyWidth; + [self setReadOnlyView:[[NSImageView allocWithZone:[self zone]] initWithFrame:readOnlyFrame]]; // ===== alloc + [[self readOnlyView] setAutoresizingMask:NSViewHeightSizable]; + + [self setShowsReadOnlyIcon:NO]; [self setAutoresizingMask:NSViewWidthSizable]; - [self addSubview:_leftTextField]; - [self addSubview:_rightTextField]; - [self addSubview:_readOnlyView]; + + [self addSubview:[self leftTextField]]; + [self addSubview:[self rightTextField]]; + [self addSubview:[self readOnlyView]]; } return self; } @@ -125,134 +125,86 @@ - (void)dealloc // ------------------------------------------------------ { // _masterView is not retain. - [_leftTextField release]; - [_rightTextField release]; - [_readOnlyView release]; + [[self leftTextField] release]; + [[self rightTextField] release]; + [[self readOnlyView] release]; [super dealloc]; } // ------------------------------------------------------ -- (NSTextField *)leftTextField -// 左側のテキストフィールドを返す -// ------------------------------------------------------ -{ - return _leftTextField; -} - - -// ------------------------------------------------------ -- (NSTextField *)rightTextField -// 右側のテキストフィールドを返す -// ------------------------------------------------------ -{ - return _rightTextField; -} - - -// ------------------------------------------------------ -- (CEEditorView *)masterView -// テキストビューを返す -// ------------------------------------------------------ -{ - return _masterView; // retain していない -} - - -// ------------------------------------------------------ -- (void)setMasterView:(CEEditorView *)inView -// テキストビューをセット。retainしない。 -// ------------------------------------------------------ -{ - _masterView = inView; -} - - -// ------------------------------------------------------ -- (BOOL)showStatusBar -// ステータスバーを表示するかどうかを返す -// ------------------------------------------------------ -{ - return _showStatusBar; -} - - -// ------------------------------------------------------ -- (void)setShowStatusBar:(BOOL)inBool +- (void)setShowStatusBar:(BOOL)showStatusBar // ステータスバー表示の有無をセット // ------------------------------------------------------ { - if (inBool != _showStatusBar) { - _showStatusBar = !_showStatusBar; - if (!_showStatusBar) { - [self setHeight:0]; - } else { - [self setHeight:k_statusBarHeight]; - } + if (showStatusBar != [self showStatusBar]) { + _showStatusBar = showStatusBar; + + CGFloat height = [self showStatusBar] ? k_statusBarHeight : 0.0; + [self setHeight:height]; } } // ------------------------------------------------------ -- (void)setReadOnlyIcon:(BOOL)inBool +- (void)setShowsReadOnlyIcon:(BOOL)showsReadOnlyIcon // "ReadOnly"アイコン表示の有無をセット // ------------------------------------------------------ { - if (inBool) { - [_readOnlyView setImage:[NSImage imageNamed:@"lockOnImg"]]; - [_readOnlyView setToolTip:NSLocalizedString(@"This Doc is ReadOnly",@"")]; + if (showsReadOnlyIcon) { + [[self readOnlyView] setImage:[NSImage imageNamed:@"lockOnImg"]]; + [[self readOnlyView] setToolTip:NSLocalizedString(@"This Document is ReadOnly", nil)]; } else { - [_readOnlyView setImage:nil]; - [_readOnlyView setToolTip:nil]; + [[self readOnlyView] setImage:nil]; + [[self readOnlyView] setToolTip:nil]; } } // ------------------------------------------------------ -- (void)drawRect:(NSRect)inRect +- (void)drawRect:(NSRect)dirtyRect // 矩形を描画 // ------------------------------------------------------ { - if ((!_masterView) || (!_showStatusBar)) { + if (![self masterView] || ![self showStatusBar]) { return; } - // fill in the background - [[NSColor gridColor] set]; - [NSBezierPath fillRect:inRect]; - // draw frame border + + // fill in background + [[NSColor windowBackgroundColor] set]; + [NSBezierPath fillRect:dirtyRect]; + + // draw frame border (only top line) [[NSColor controlShadowColor] set]; - [NSBezierPath strokeRect:[self frame]]; + [NSBezierPath strokeLineFromPoint:NSMakePoint(NSMinX([self frame]), NSMaxY([self frame])) + toPoint:NSMakePoint(NSMaxX([self frame]), NSMaxY([self frame]))]; } -@end - - - -@implementation CEStatusBarView (Private) +#pragma mark - Private Methods // ------------------------------------------------------ -- (void)setHeight:(float)inValue +- (void)setHeight:(CGFloat)height // 高さをセット // ------------------------------------------------------ { - float theAdjHeight = (inValue - NSHeight([self frame])); - NSRect theNewFrame; + CGFloat adjHeight = height - NSHeight([self frame]); + NSRect newFrame; // set masterView height - theNewFrame = [[_masterView splitView] frame]; - theNewFrame.origin.y += theAdjHeight; - theNewFrame.size.height -= theAdjHeight; - [[_masterView splitView] setFrame:theNewFrame]; + newFrame = [[[self masterView] splitView] frame]; + newFrame.origin.y += adjHeight; + newFrame.size.height -= adjHeight; + [[[self masterView] splitView] setFrame:newFrame]; + // set statusBar height - theNewFrame = [self frame]; - theNewFrame.size.height += theAdjHeight; - [self setFrame:theNewFrame]; + newFrame = [self frame]; + newFrame.size.height += adjHeight; + [self setFrame:newFrame]; [[[self window] contentView] setNeedsDisplay:YES]; } - -@end \ No newline at end of file +@end diff --git a/CESubSplitView.h b/CESubSplitView.h index d8599c8c83..a24daf222c 100644 --- a/CESubSplitView.h +++ b/CESubSplitView.h @@ -3,8 +3,9 @@ CESubSplitView (for CotEditor) -Copyright (C) 2004-2007 nakamuxu. -http://www.aynimac.com/ + Copyright (C) 2004-2007 nakamuxu. + Copyright (C) 2014 CotEditor Project + http://coteditor.github.io ================================================= encoding="UTF-8" @@ -39,7 +40,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #import "constants.h" -@interface CESubSplitView : NSView +@interface CESubSplitView : NSView { CEEditorView *_editorView; NSTextStorage *_textStorage; @@ -56,7 +57,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. NSRange _hilightedLineRange; NSRect _hilightedLineRect; - int _lastCursorLocation; + NSInteger _lastCursorLocation; BOOL _highlightCurrentLine; BOOL _setHiliteLineColorToIMChars; BOOL _hadMarkedText; diff --git a/CESubSplitView.m b/CESubSplitView.m index 30cfd159ff..11d4ad042a 100644 --- a/CESubSplitView.m +++ b/CESubSplitView.m @@ -3,8 +3,9 @@ CESubSplitView (for CotEditor) -Copyright (C) 2004-2007 nakamuxu. -http://www.aynimac.com/ + Copyright (C) 2004-2007 nakamuxu. + Copyright (C) 2014 CotEditor Project + http://coteditor.github.io ================================================= encoding="UTF-8" @@ -62,7 +63,7 @@ @implementation CESubSplitView //======================================================= // ------------------------------------------------------ -- (id)initWithFrame:(NSRect)inFrame +- (instancetype)initWithFrame:(NSRect)inFrame // 初期化 // ------------------------------------------------------ { @@ -95,6 +96,7 @@ - (id)initWithFrame:(NSRect)inFrame [_scrollView setHasHorizontalScroller:YES]; [_scrollView setAutoresizingMask:(NSViewWidthSizable | NSViewHeightSizable)]; [_scrollView setAutohidesScrollers:NO]; + [_scrollView setDrawsBackground:NO]; [[_scrollView contentView] setAutoresizesSubviews:YES]; // (splitViewをリサイズした時に最後までナビバーを表示させるため、その下に配置する) [self addSubview:_scrollView positioned:NSWindowBelow relativeTo:_navigationBar]; @@ -124,11 +126,13 @@ - (id)initWithFrame:(NSRect)inFrame _textViewCore = [[CETextViewCore allocWithZone:[self zone]] initWithFrame:theTextFrame textContainer:theTextContainer]; // ===== alloc [_textViewCore setDelegate:self]; - // OgreKit 改造でポストするようにしたノーティフィケーションをキャッチ - [[NSNotificationCenter defaultCenter] addObserver:self - selector:@selector(textDidReplaceAll:) - name:@"textDidReplaceAllNotification" - object:_textViewCore]; + +// !!!: OgreKitの改造部分が失われたため現在機能していない (2014-03-16 by 1024jp) +// // OgreKit 改造でポストするようにしたノーティフィケーションをキャッチ +// [[NSNotificationCenter defaultCenter] addObserver:self +// selector:@selector(textDidReplaceAll:) +// name:@"textDidReplaceAllNotification" +// object:_textViewCore]; [_scrollView setDocumentView:_textViewCore]; // slave view をセット @@ -141,14 +145,14 @@ - (id)initWithFrame:(NSRect)inFrame // ビューのパラメータをセット [_textViewCore setTextContainerInset: - NSMakeSize([[theValues valueForKey:k_key_textContainerInsetWidth] floatValue], - ([[theValues valueForKey:k_key_textContainerInsetHeightTop] floatValue] + - [[theValues valueForKey:k_key_textContainerInsetHeightBottom] floatValue]) / 2 - )]; + NSMakeSize((CGFloat)[[theValues valueForKey:k_key_textContainerInsetWidth] doubleValue], + ((CGFloat)[[theValues valueForKey:k_key_textContainerInsetHeightTop] doubleValue] + + (CGFloat)[[theValues valueForKey:k_key_textContainerInsetHeightBottom] doubleValue]) / 2 + )]; _lineNumUpdateTimer = nil; _outlineMenuTimer = nil; - _lineNumUpdateInterval = [[theValues valueForKey:k_key_lineNumUpdateInterval] floatValue]; - _outlineMenuInterval = [[theValues valueForKey:k_key_outlineMenuInterval] floatValue]; + _lineNumUpdateInterval = [[theValues valueForKey:k_key_lineNumUpdateInterval] doubleValue]; + _outlineMenuInterval = [[theValues valueForKey:k_key_outlineMenuInterval] doubleValue]; _highlightBracesColorDict = [[NSDictionary alloc] initWithObjectsAndKeys: [NSUnarchiver unarchiveObjectWithData:[theValues valueForKey:k_key_selectionColor]], NSBackgroundColorAttributeName, nil]; // ===== alloc @@ -536,7 +540,7 @@ - (void)setBackgroundColorAlphaWithNumber:(NSNumber *)inNumber // テキストビューに背景色をセット // ------------------------------------------------------ { - [[self textView] setBackgroundColorWithAlpha:[inNumber floatValue]]; + [[self textView] setBackgroundColorWithAlpha:(CGFloat)[inNumber doubleValue]]; } @@ -598,7 +602,7 @@ - (BOOL)textView:(NSTextView *)inTextView shouldChangeTextInRange:(NSRange)inAff // ------------------------------------------------------ - (NSArray *)textView:(NSTextView *)inTextView completions:(NSArray *)inWordsArray - forPartialWordRange:(NSRange)inCharRange indexOfSelectedItem:(int *)inIndex + forPartialWordRange:(NSRange)inCharRange indexOfSelectedItem:(NSInteger *)inIndex // 補完候補リストをセット // ------------------------------------------------------ { @@ -607,7 +611,7 @@ - (NSArray *)textView:(NSTextView *)inTextView completions:(NSArray *)inWordsArr // http://smultron.sourceforge.net id theValues = [[NSUserDefaultsController sharedUserDefaultsController] values]; - unsigned int theAddingStandard = [[theValues valueForKey:k_key_completeAddStandardWords] unsignedIntValue]; + NSUInteger theAddingStandard = [[theValues valueForKey:k_key_completeAddStandardWords] unsignedIntegerValue]; NSMutableArray *outArray = [NSMutableArray arrayWithCapacity:[inWordsArray count]]; NSEnumerator *theEnumerator; NSString *theCurStr = [[inTextView string] substringWithRange:inCharRange]; @@ -708,11 +712,11 @@ - (void)textViewDidChangeSelection:(NSNotification *)inNotification return; } NSString *theString = [self string]; - int theStringLength = [theString length]; + NSInteger theStringLength = [theString length]; if (theStringLength == 0) { return; } NSRange theSelectedRange = [[self textView] selectedRange]; - int theLocation = theSelectedRange.location; - int theDifference = theLocation - _lastCursorLocation; + NSInteger theLocation = theSelectedRange.location; + NSInteger theDifference = theLocation - _lastCursorLocation; _lastCursorLocation = theLocation; // Smultron では「if (theDifference != 1 && theDifference != -1)」の条件を使ってキャレットを前方に動かした時も強調表示させているが、CotEditor では Xcode 同様、入力時またはキャレットを後方に動かした時だけに限定した(2006.09.10) @@ -741,7 +745,7 @@ - (void)textViewDidChangeSelection:(NSNotification *)inNotification } else { return; } - unsigned int theSkipMatchingBrace = 0; + NSUInteger theSkipMatchingBrace = 0; theCurChar = theUnichar; while (theLocation--) { @@ -767,6 +771,7 @@ - (void)textViewDidChangeSelection:(NSNotification *)inNotification //======================================================= // Notification method (OgreKit 改) // <== OgreReplaceAllThread +// !!!: OgreKitの改造部分が失われたため現在機能していない (2014-03-16 by 1024jp) //======================================================= // ------------------------------------------------------ @@ -800,7 +805,7 @@ - (void)adjustTextFrameSize // ラップする時にサイズを適正化する // ------------------------------------------------------ { - int theNewWidth = [[self scrollView] contentSize].width; + NSInteger theNewWidth = [[self scrollView] contentSize].width; theNewWidth -= (NSWidth([[self lineNumView] frame]) + k_lineNumPadding * 2 ); [[[self textView] textContainer] setContainerSize:NSMakeSize(theNewWidth, FLT_MAX)]; @@ -880,7 +885,7 @@ - (void)showHighlightCurrentLine CELayoutManager *theLayoutManager = (CELayoutManager *)[[self textView] layoutManager]; // グリフがないときはそのまま戻ると、全くハイライトされないことと、アンドゥで描画が乱れるため、実行する。2008.06.21. -// unsigned int theNumOfGlyphs = [theLayoutManager numberOfGlyphs]; +// NSUInteger theNumOfGlyphs = [theLayoutManager numberOfGlyphs]; // if (theNumOfGlyphs == 0) { return; } NSRange theSelectedRange = [[self textView] selectedRange]; NSRange theLineRange = [[self string] lineRangeForRange:theSelectedRange]; @@ -894,7 +899,7 @@ - (void)showHighlightCurrentLine if (([[self string] length] == 0) || ((!NSEqualRects(theAttrsRect, NSZeroRect)) && ([[self string] length] > 0))) { // 文字背景色を塗っても右側に生じる「空白」の矩形を得る - float theAdditionalWidth = [[[self textView] textContainer] containerSize].width + CGFloat theAdditionalWidth = [[[self textView] textContainer] containerSize].width - theAttrsRect.size.width - theAttrsRect.origin.x - [[self textView] textContainerInset].width - [[[self textView] textContainer] lineFragmentPadding]; @@ -921,9 +926,7 @@ - (void)showHighlightCurrentLine NSColor *theHighlightColor = [[[self textView] highlightLineColor] colorWithAlphaComponent: [[[self textView] backgroundColor] alphaComponent]]; - NSDictionary *theDict = [NSDictionary dictionaryWithObjectsAndKeys: - theHighlightColor, NSBackgroundColorAttributeName, - nil]; + NSDictionary *theDict = @{NSBackgroundColorAttributeName: theHighlightColor}; // (文字列が削除されたときも実行されるので、範囲を検証しておかないと例外が発生する) NSRange theRemoveAttrsRange = NSMakeRange(0, [_textStorage length]); diff --git a/CESyntax.h b/CESyntax.h index 1826f4bd75..6afb8604cc 100644 --- a/CESyntax.h +++ b/CESyntax.h @@ -3,8 +3,9 @@ CESyntax (for CotEditor) -Copyright (C) 2004-2007 nakamuxu. -http://www.aynimac.com/ + Copyright (C) 2004-2007 nakamuxu. + Copyright (C) 2014 CotEditor Project + http://coteditor.github.io ================================================= encoding="UTF-8" @@ -60,13 +61,12 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. BOOL _isIndicatorShown; BOOL _isPrinting; - BOOL _isPanther; - unsigned int _showColoringIndicatorTextLength; + NSUInteger _showColoringIndicatorTextLength; } // Public method - (void)setWholeString:(NSString *)inString; -- (unsigned int)wholeStringLength; +- (NSUInteger)wholeStringLength; - (void)setLocalString:(NSString *)inString; - (void)setLayoutManager:(CELayoutManager *)inLayoutManager; - (NSString *)syntaxStyleName; diff --git a/CESyntax.m b/CESyntax.m index e86d7c92df..1b38ec0345 100644 --- a/CESyntax.m +++ b/CESyntax.m @@ -3,8 +3,9 @@ CESyntax (for CotEditor) -Copyright (C) 2004-2007 nakamuxu. -http://www.aynimac.com/ + Copyright (C) 2004-2007 nakamuxu. + Copyright (C) 2014 CotEditor Project + http://coteditor.github.io ================================================= encoding="UTF-8" @@ -32,6 +33,7 @@ #import "CESyntax.h" #import "CEEditorView.h" +#import "CEPrivateMutableArray.h" //======================================================= // Private method @@ -44,21 +46,21 @@ - (void)setAttrToSimpleWordsArrayDict:(NSMutableDictionary*)inWordsDict - (NSArray *)rangesSimpleWordsArrayDict:(NSMutableDictionary*)inWordsDict withCharString:(NSMutableString *)inCharString; - (NSArray *)rangesBeginString:(NSString *)inBeginString withEndString:(NSString *)inEndString - doColoring:(BOOL)inValueDoColoring pairStringKind:(unsigned int)inPairKind; + doColoring:(BOOL)inValueDoColoring pairStringKind:(NSUInteger)inPairKind; - (NSArray *)rangesRegularExpressionString:(NSString *)inRegexStr withIgnoreCase:(BOOL)inIgnoreCase - doColoring:(BOOL)inValueDoColoring pairStringKind:(unsigned int)inPairKind; + doColoring:(BOOL)inValueDoColoring pairStringKind:(NSUInteger)inPairKind; - (NSArray *)checkRegularExpressionString:(NSString *)inRegexStr withIgnoreCase:(BOOL)inIgnoreCase - doColoring:(BOOL)inValueDoColoring pairStringKind:(unsigned int)inPairKind; + doColoring:(BOOL)inValueDoColoring pairStringKind:(NSUInteger)inPairKind; - (NSArray *)rangesRegularExpressionBeginString:(NSString *)inBeginString withEndString:(NSString *)inEndString withIgnoreCase:(BOOL)inIgnoreCase - doColoring:(BOOL)inValueDoColoring pairStringKind:(unsigned int)inPairKind; + doColoring:(BOOL)inValueDoColoring pairStringKind:(NSUInteger)inPairKind; - (NSArray *)checkRegularExpressionBeginString:(NSString *)inBeginString withEndString:(NSString *)inEndString withIgnoreCase:(BOOL)inIgnoreCase - doColoring:(BOOL)inValueDoColoring pairStringKind:(unsigned int)inPairKind; + doColoring:(BOOL)inValueDoColoring pairStringKind:(NSUInteger)inPairKind; - (void)setAttrToCommentsWithSyntaxArray:(NSArray *)inArray withSingleQuotes:(BOOL)inValueSingleQuotes withDoubleQuotes:(BOOL)inValueDoubleQuotes updateIndicator:(BOOL)inValueUpdateIndicator; -- (unsigned int)numberOfEscapeSequenceInString:(NSString *)inString; +- (NSUInteger)numberOfEscapeSequenceInString:(NSString *)inString; - (void)setOtherInvisibleCharsAttrs; - (void)doColoring; - (double)doubleValueOfIndicator; @@ -81,7 +83,7 @@ @implementation CESyntax //======================================================= // ------------------------------------------------------ -- (id)init +- (instancetype)init // 初期化 // ------------------------------------------------------ { @@ -101,9 +103,8 @@ - (id)init _updateRange = NSMakeRange(0, 0); _isIndicatorShown = NO; _isPrinting = NO; - _isPanther = (floor(NSAppKitVersionNumber) <= NSAppKitVersionNumber10_3); _showColoringIndicatorTextLength = - [[theValues valueForKey:k_key_showColoringIndicatorTextLength] unsignedIntValue]; + [[theValues valueForKey:k_key_showColoringIndicatorTextLength] unsignedIntegerValue]; [_coloringIndicator setIndeterminate:NO]; } return self; @@ -145,7 +146,7 @@ - (void)setWholeString:(NSString *)inString // ------------------------------------------------------ -- (unsigned int)wholeStringLength +- (NSUInteger)wholeStringLength // 全文字列の長さを返す // ------------------------------------------------------ { @@ -249,45 +250,38 @@ - (void)setCompleteWordsArrayFromColoringDictionary if (_coloringDictionary == nil) { return; } NSMutableArray *theTmpArray = [NSMutableArray array]; - NSArray *theCompleteArray = [_coloringDictionary objectForKey:k_SCKey_completionsArray]; + NSArray *theCompleteArray = _coloringDictionary[k_SCKey_completionsArray]; NSMutableString *theTmpString = [NSMutableString string]; NSString *theStr = nil; NSCharacterSet *theCharSet; - int i, theCount; if (theCompleteArray) { - - theCount = [theCompleteArray count]; - - for (i = 0; i < theCount; i++) { - theStr = [[theCompleteArray objectAtIndex:i] valueForKey:k_SCKey_arrayKeyString]; + for (NSDictionary *dict in theCompleteArray) { + theStr = dict[k_SCKey_arrayKeyString]; [theTmpArray addObject:theStr]; [theTmpString appendString:[theStr substringToIndex:1]]; } } else { - - NSArray *theSyntaxArray = [NSArray arrayWithObjects:k_SCKey_allColoringArrays, nil]; + NSArray *theSyntaxArray = @[k_SCKey_allColoringArrays]; NSArray *theArray; NSString *theEndStr = nil; NSDictionary *theStrDict; - int j; + NSUInteger i, theCount; theCount = [theSyntaxArray count]; NSAutoreleasePool *thePool = [[NSAutoreleasePool alloc] init]; // ===== alloc for (i = 0; i < theCount; i++) { - theArray = [_coloringDictionary objectForKey:[theSyntaxArray objectAtIndex:i]]; - int theArrayCount = [theArray count]; - for (j = 0; j < theArrayCount; j++) { - theStrDict = [theArray objectAtIndex:j]; - theStr = [[theStrDict objectForKey:k_SCKey_beginString] stringByTrimmingCharactersInSet: + theArray = _coloringDictionary[theSyntaxArray[i]]; + for (theStrDict in theArray) { + theStr = [theStrDict[k_SCKey_beginString] stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]]; - theEndStr = [[theStrDict objectForKey:k_SCKey_endString] stringByTrimmingCharactersInSet: + theEndStr = [theStrDict[k_SCKey_endString] stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]]; if (([theStr length] > 0) && ((theEndStr == nil) || ([theEndStr length] < 1)) && - (![[theStrDict objectForKey:k_SCKey_regularExpression] boolValue])) { + (![theStrDict[k_SCKey_regularExpression] boolValue])) { [theTmpArray addObject:theStr]; [theTmpString appendString:[theStr substringToIndex:1]]; } @@ -350,26 +344,18 @@ - (void)colorVisibleRange:(NSRange)inRange withWholeString:(NSString *)inWholeSt [self setWholeString:inWholeString]; NSRange theEffectiveRange; - unsigned int theStart = inRange.location; - unsigned int theEnd = NSMaxRange(inRange) - 1; - unsigned int theWholeLength = [self wholeStringLength]; - - // 直前/直後が同色ならカラーリング範囲を拡大する(10.5+で実行するならより正確に拡大) - if (floor(NSAppKitVersionNumber) >= 949) { // 949 = LeopardのNSAppKitVersionNumber - (void)[_layoutManager temporaryAttributesAtCharacterIndex:theStart - longestEffectiveRange:&theEffectiveRange inRange:NSMakeRange(0, [self wholeStringLength])]; - } else { - (void)[_layoutManager temporaryAttributesAtCharacterIndex:theStart - effectiveRange:&theEffectiveRange]; - } + NSUInteger theStart = inRange.location; + NSUInteger theEnd = NSMaxRange(inRange) - 1; + NSUInteger theWholeLength = [self wholeStringLength]; + + // 直前/直後が同色ならカラーリング範囲を拡大する + (void)[_layoutManager temporaryAttributesAtCharacterIndex:theStart + longestEffectiveRange:&theEffectiveRange inRange:NSMakeRange(0, [self wholeStringLength])]; + theStart = theEffectiveRange.location; - if (floor(NSAppKitVersionNumber) >= 949) { // 949 = LeopardのNSAppKitVersionNumber - (void)[_layoutManager temporaryAttributesAtCharacterIndex:theEnd - longestEffectiveRange:&theEffectiveRange inRange:NSMakeRange(0, [self wholeStringLength])]; - } else { - (void)[_layoutManager temporaryAttributesAtCharacterIndex:theEnd - effectiveRange:&theEffectiveRange]; - } + (void)[_layoutManager temporaryAttributesAtCharacterIndex:theEnd + longestEffectiveRange:&theEffectiveRange inRange:NSMakeRange(0, [self wholeStringLength])]; + theEnd = (NSMaxRange(theEffectiveRange) < theWholeLength) ? NSMaxRange(theEffectiveRange) : theWholeLength; @@ -400,18 +386,15 @@ - (NSArray *)outlineMenuArrayWithWholeString:(NSString *)inWholeString [self setWholeString:inWholeString]; id theValues = [[NSUserDefaultsController sharedUserDefaultsController] values]; - NSArray *theREStringArray = [_coloringDictionary objectForKey:k_SCKey_outlineMenuArray]; - NSDictionary *theDict; + NSArray *theREStringArray = _coloringDictionary[k_SCKey_outlineMenuArray]; NSMutableString *thePattern; NSString *theTitle, *theMatchedIndexString; NSRange theMatchRange; - int i, j, theCount = [theREStringArray count]; - unsigned int theIndex, theLines, theCurLine, theWholeLength = [inWholeString length]; - unsigned int theMenuTitleMaxLength = [[theValues valueForKey:k_key_outlineMenuMaxLength] unsignedIntValue]; + NSUInteger theIndex, theLines, theCurLine, theWholeLength = [inWholeString length]; + NSUInteger theMenuTitleMaxLength = [[theValues valueForKey:k_key_outlineMenuMaxLength] unsignedIntegerValue]; - for (i = 0; i < theCount; i++) { - theDict = [theREStringArray objectAtIndex:i]; - unsigned int theOption = ([[theDict objectForKey:k_SCKey_ignoreCase] boolValue]) ? + for (NSDictionary *theDict in theREStringArray) { + NSUInteger theOption = ([theDict[k_SCKey_ignoreCase] boolValue]) ? OgreIgnoreCaseOption : OgreNoneOption; NSDictionary *theMatchDict; OGRegularExpression *theRegex; @@ -420,7 +403,7 @@ - (NSArray *)outlineMenuArrayWithWholeString:(NSString *)inWholeString NS_DURING theRegex = [OGRegularExpression regularExpressionWithString: - [theDict objectForKey:k_SCKey_beginString] options:theOption]; + theDict[k_SCKey_beginString] options:theOption]; NS_HANDLER // 何もしない NSLog(@"ERROR in \"outlineMenuArrayWithWholeString:\""); @@ -432,14 +415,12 @@ - (NSArray *)outlineMenuArrayWithWholeString:(NSString *)inWholeString // マッチした範囲 theMatchRange = [theMatch rangeOfMatchedString]; // メニュー項目タイトル - thePattern = [[[theDict objectForKey:k_SCKey_arrayKeyString] mutableCopy] autorelease]; + thePattern = [[theDict[k_SCKey_arrayKeyString] mutableCopy] autorelease]; if ([thePattern isEqualToString:k_outlineMenuSeparatorSymbol]) { // セパレータのとき - theMatchDict = [NSDictionary dictionaryWithObjectsAndKeys: - [NSValue valueWithRange:theMatchRange], k_outlineMenuItemRange, - k_outlineMenuSeparatorSymbol, k_outlineMenuItemTitle, - [NSNumber numberWithUnsignedInt:theMatchRange.location], k_outlineMenuItemSortKey, - nil]; + theMatchDict = @{k_outlineMenuItemRange: [NSValue valueWithRange:theMatchRange], + k_outlineMenuItemTitle: k_outlineMenuSeparatorSymbol, + k_outlineMenuItemSortKey: @(theMatchRange.location)}; [outArray addObject:theMatchDict]; continue; } else if ((thePattern == nil) || ([thePattern length] < 1)) { @@ -454,11 +435,11 @@ - (NSArray *)outlineMenuArrayWithWholeString:(NSString *)inWholeString withString:[theMatch matchedString] options:0 range:NSMakeRange(0, [thePattern length])]; // マッチ部分文字列($1-9)置換 - for (j = 1; j < 10; j++) { - theMatchedIndexString = [theMatch substringAtIndex:j]; + for (NSInteger i = 1; i < 10; i++) { + theMatchedIndexString = [theMatch substringAtIndex:i]; if (theMatchedIndexString != nil) { (void)[thePattern replaceOccurrencesOfRegularExpressionString: - [NSString stringWithFormat:@"(? 0) { NSSortDescriptor *theDescriptor = [[[NSSortDescriptor alloc] initWithKey:k_outlineMenuItemSortKey ascending:YES selector:@selector(compare:)] autorelease]; - [outArray sortUsingDescriptors:[NSArray arrayWithObject:theDescriptor]]; + [outArray sortUsingDescriptors:@[theDescriptor]]; // ソート後に、冒頭のアイテムを追加 [outArray insertObject: - [NSDictionary dictionaryWithObjectsAndKeys: - [NSValue valueWithRange:NSMakeRange(0, 0)], k_outlineMenuItemRange, - NSLocalizedString(@"< Outline Menu >",@""), k_outlineMenuItemTitle, - [NSNumber numberWithUnsignedInt:0], k_outlineMenuItemSortKey, - nil] + @{k_outlineMenuItemRange: [NSValue valueWithRange:NSMakeRange(0, 0)], + k_outlineMenuItemTitle: NSLocalizedString(@"< Outline Menu >",@""), + k_outlineMenuItemSortKey: @0U} atIndex:0]; } return outArray; @@ -583,10 +559,9 @@ - (void)setAttrToSimpleWordsArrayDict:(NSMutableDictionary*)inWordsDict { NSArray *theArray = [self rangesSimpleWordsArrayDict:inWordsDict withCharString:inCharString]; NSRange theRange; - int i, theCount = [theArray count]; - for (i = 0; i < theCount; i++) { - theRange = [[theArray objectAtIndex:i] rangeValue]; + for (NSValue *value in theArray) { + theRange = [value rangeValue]; theRange.location += _updateRange.location; if ([self isPrinting]) { @@ -610,7 +585,7 @@ - (NSArray *)rangesSimpleWordsArrayDict:(NSMutableDictionary*)inWordsDict NSCharacterSet *theCharSet; NSRange theAttrRange; id wordsArray; - unsigned int theLocation = 0, theLength = 0; + NSUInteger theLocation = 0, theLength = 0; // 改行、タブ、スペースは無視 [inCharString chomp]; @@ -630,7 +605,7 @@ - (NSArray *)rangesSimpleWordsArrayDict:(NSMutableDictionary*)inWordsDict theLength = [theScanStr length]; if (theLength > 0) { theLocation = [theScanner scanLocation]; - wordsArray = [inWordsDict objectForKey:[NSNumber numberWithInt:theLength]]; + wordsArray = inWordsDict[@(theLength)]; if ([wordsArray containsObject:theScanStr]) { theAttrRange = NSMakeRange(theLocation - theLength, theLength); [outArray addObject:[NSValue valueWithRange:theAttrRange]]; @@ -650,16 +625,16 @@ - (NSArray *)rangesSimpleWordsArrayDict:(NSMutableDictionary*)inWordsDict // ------------------------------------------------------ - (NSArray *)rangesBeginString:(NSString *)inBeginString withEndString:(NSString *)inEndString - doColoring:(BOOL)inValueDoColoring pairStringKind:(unsigned int)inPairKind + doColoring:(BOOL)inValueDoColoring pairStringKind:(NSUInteger)inPairKind // 指定された開始/終了ペアの文字列を検索し、位置を返す // ------------------------------------------------------ { NSString *theESCheckStr = nil; NSScanner *theScanner = [NSScanner scannerWithString:_localString]; - unsigned int theLocalLength = [_localString length]; - unsigned int theStart = 0, theESNum = 0, theEnd = 0; - unsigned int theBeginLength = 0, theEndLength = 0, theESCheckLength; - unsigned int theStartEnd = 0; + NSUInteger theLocalLength = [_localString length]; + NSUInteger theStart = 0, theESNum = 0, theEnd = 0; + NSUInteger theBeginLength = 0, theEndLength = 0, theESCheckLength; + NSUInteger theStartEnd = 0; NSRange theAttrRange, theTmpRange; theBeginLength = [inBeginString length]; @@ -668,7 +643,7 @@ - (NSArray *)rangesBeginString:(NSString *)inBeginString withEndString:(NSString [theScanner setCharactersToBeSkipped:nil]; [theScanner setCaseSensitive:YES]; CEPrivateMutableArray *outArray = [[[CEPrivateMutableArray alloc] initWithCapacity:10] autorelease]; - int i = 0; + NSInteger i = 0; while (![theScanner isAtEnd]) { (void)[theScanner scanUpToString:inBeginString intoString:nil]; @@ -684,12 +659,10 @@ - (NSArray *)rangesBeginString:(NSString *)inBeginString withEndString:(NSString } if (!inValueDoColoring) { theStartEnd = (inPairKind >= k_QC_CommentBaseNum) ? k_QC_Start : k_notUseStartEnd; - [outArray addObject:[NSDictionary dictionaryWithObjectsAndKeys: - [NSNumber numberWithUnsignedInt:theStart], k_QCPosition, - [NSNumber numberWithUnsignedInt:inPairKind], k_QCPairKind, - [NSNumber numberWithUnsignedInt:theStartEnd], k_QCStartEnd, - [NSNumber numberWithUnsignedInt:theBeginLength], k_QCStrLength, - nil]]; + [outArray addObject:@{k_QCPosition: @(theStart), + k_QCPairKind: @(inPairKind), + k_QCStartEnd: @(theStartEnd), + k_QCStrLength: @(theBeginLength)}]; } } else { break; @@ -718,12 +691,10 @@ - (NSArray *)rangesBeginString:(NSString *)inBeginString withEndString:(NSString [outArray addObject:[NSValue valueWithRange:theAttrRange]]; } else { theStartEnd = (inPairKind >= k_QC_CommentBaseNum) ? k_QC_End : k_notUseStartEnd; - [outArray addObject:[NSDictionary dictionaryWithObjectsAndKeys: - [NSNumber numberWithUnsignedInt:(theEnd - theEndLength)], k_QCPosition, - [NSNumber numberWithUnsignedInt:inPairKind], k_QCPairKind, - [NSNumber numberWithUnsignedInt:theStartEnd], k_QCStartEnd, - [NSNumber numberWithUnsignedInt:theEndLength], k_QCStrLength, - nil]]; + [outArray addObject:@{k_QCPosition: @(theEnd - theEndLength), + k_QCPairKind: @(inPairKind), + k_QCStartEnd: @(theStartEnd), + k_QCStrLength: @(theEndLength)}]; } break; } @@ -739,7 +710,7 @@ - (NSArray *)rangesBeginString:(NSString *)inBeginString withEndString:(NSString // ------------------------------------------------------ - (NSArray *)rangesRegularExpressionString:(NSString *)inRegexStr withIgnoreCase:(BOOL)inIgnoreCase - doColoring:(BOOL)inValueDoColoring pairStringKind:(unsigned int)inPairKind + doColoring:(BOOL)inValueDoColoring pairStringKind:(NSUInteger)inPairKind // 指定された文字列を正規表現として検索し、位置を返す // ------------------------------------------------------ { @@ -748,8 +719,8 @@ - (NSArray *)rangesRegularExpressionString:(NSString *)inRegexStr withIgnoreCase NSEnumerator *theEnumerator; CEPrivateMutableArray *outArray = nil; NSRange theAttrRange; - int i, theCount = 0; - unsigned int theQCStart = 0, theQCEnd = 0; + NSInteger i, theCount = 0; + NSUInteger theQCStart = 0, theQCEnd = 0; NS_DURING theEnumerator = [_localString matchEnumeratorWithRegex:inRegexStr options:theOption]; @@ -772,25 +743,21 @@ - (NSArray *)rangesRegularExpressionString:(NSString *)inRegexStr withIgnoreCase ([NSApp runModalSession:_modalSession] != NSRunContinuesResponse)) { return nil; } - theAttrRange = [[theMatchArray objectAtIndex:i] rangeValue]; + theAttrRange = [theMatchArray[i] rangeValue]; if (inPairKind >= k_QC_CommentBaseNum) { theQCStart = k_QC_Start; theQCEnd = k_QC_End; } else { theQCStart = theQCEnd = k_notUseStartEnd; } - [outArray addObject:[NSDictionary dictionaryWithObjectsAndKeys: - [NSNumber numberWithUnsignedInt:(theAttrRange.location)], k_QCPosition, - [NSNumber numberWithUnsignedInt:inPairKind], k_QCPairKind, - [NSNumber numberWithUnsignedInt:theQCStart], k_QCStartEnd, - [NSNumber numberWithUnsignedInt:0], k_QCStrLength, - nil]]; - [outArray addObject:[NSDictionary dictionaryWithObjectsAndKeys: - [NSNumber numberWithUnsignedInt:NSMaxRange(theAttrRange)], k_QCPosition, - [NSNumber numberWithUnsignedInt:inPairKind], k_QCPairKind, - [NSNumber numberWithUnsignedInt:theQCEnd], k_QCStartEnd, - [NSNumber numberWithUnsignedInt:0], k_QCStrLength, - nil]]; + [outArray addObject:@{k_QCPosition: @(theAttrRange.location), + k_QCPairKind: @(inPairKind), + k_QCStartEnd: @(theQCStart), + k_QCStrLength: @0U}]; + [outArray addObject:@{k_QCPosition: @(NSMaxRange(theAttrRange)), + k_QCPairKind: @(inPairKind), + k_QCStartEnd: @(theQCEnd), + k_QCStrLength: @0U}]; } return outArray; } @@ -799,17 +766,17 @@ - (NSArray *)rangesRegularExpressionString:(NSString *)inRegexStr withIgnoreCase // ------------------------------------------------------ - (NSArray *)checkRegularExpressionString:(NSString *)inRegexStr withIgnoreCase:(BOOL)inIgnoreCase - doColoring:(BOOL)inValueDoColoring pairStringKind:(unsigned int)inPairKind + doColoring:(BOOL)inValueDoColoring pairStringKind:(NSUInteger)inPairKind // 指定された文字列を正規表現として検索し、位置を返す // ------------------------------------------------------ { - unsigned int theOption = (inIgnoreCase) ? OgreIgnoreCaseOption : OgreNoneOption; + NSUInteger theOption = (inIgnoreCase) ? OgreIgnoreCaseOption : OgreNoneOption; OGRegularExpression *theRegex; NSEnumerator *theEnum; OGRegularExpressionMatch *theMatch; NSMutableArray *outArray = [NSMutableArray array]; NSRange theAttrRange; - unsigned int theQCStart = 0, theQCEnd = 0; + NSUInteger theQCStart = 0, theQCEnd = 0; NS_DURING theRegex = [OGRegularExpression regularExpressionWithString:inRegexStr options:theOption]; @@ -838,18 +805,14 @@ - (NSArray *)checkRegularExpressionString:(NSString *)inRegexStr withIgnoreCase: } else { theQCStart = theQCEnd = k_notUseStartEnd; } - [outArray addObject:[NSDictionary dictionaryWithObjectsAndKeys: - [NSNumber numberWithUnsignedInt:(theAttrRange.location)], k_QCPosition, - [NSNumber numberWithUnsignedInt:inPairKind], k_QCPairKind, - [NSNumber numberWithUnsignedInt:theQCStart], k_QCStartEnd, - [NSNumber numberWithUnsignedInt:0], k_QCStrLength, - nil]]; - [outArray addObject:[NSDictionary dictionaryWithObjectsAndKeys: - [NSNumber numberWithUnsignedInt:NSMaxRange(theAttrRange)], k_QCPosition, - [NSNumber numberWithUnsignedInt:inPairKind], k_QCPairKind, - [NSNumber numberWithUnsignedInt:theQCEnd], k_QCStartEnd, - [NSNumber numberWithUnsignedInt:0], k_QCStrLength, - nil]]; + [outArray addObject:@{k_QCPosition: @(theAttrRange.location), + k_QCPairKind: @(inPairKind), + k_QCStartEnd: @(theQCStart), + k_QCStrLength: @0U}]; + [outArray addObject:@{k_QCPosition: @(NSMaxRange(theAttrRange)), + k_QCPairKind: @(inPairKind), + k_QCStartEnd: @(theQCEnd), + k_QCStrLength: @0U}]; } [thePool release]; // ===== release } @@ -860,7 +823,7 @@ - (NSArray *)checkRegularExpressionString:(NSString *)inRegexStr withIgnoreCase: // ------------------------------------------------------ - (NSArray *)rangesRegularExpressionBeginString:(NSString *)inBeginString withEndString:(NSString *)inEndString withIgnoreCase:(BOOL)inIgnoreCase - doColoring:(BOOL)inValueDoColoring pairStringKind:(unsigned int)inPairKind + doColoring:(BOOL)inValueDoColoring pairStringKind:(NSUInteger)inPairKind // 指定された開始/終了文字列を正規表現として検索し、位置を返す // ------------------------------------------------------ { @@ -869,8 +832,8 @@ - (NSArray *)rangesRegularExpressionBeginString:(NSString *)inBeginString withEn NSArray *theMatchArray; NSRange theBeginRange, theEndRange, theAttrRange; CEPrivateMutableArray *outArray = nil; - int i, theCount = 0; - unsigned int theQCStart = 0, theQCEnd = 0; + NSInteger i, theCount = 0; + NSUInteger theQCStart = 0, theQCEnd = 0; NS_DURING theEnumerator = [_localString matchEnumeratorWithRegex:inBeginString options:theOption]; @@ -890,7 +853,7 @@ - (NSArray *)rangesRegularExpressionBeginString:(NSString *)inBeginString withEn ([NSApp runModalSession:_modalSession] != NSRunContinuesResponse)) { return nil; } - theBeginRange = [[theMatchArray objectAtIndex:i] rangeValue]; + theBeginRange = [theMatchArray[i] rangeValue]; NS_DURING theEndRange = [_localString rangeOfRegex:inEndString options:theOption @@ -917,18 +880,14 @@ - (NSArray *)rangesRegularExpressionBeginString:(NSString *)inBeginString withEn } else { theQCStart = theQCEnd = k_notUseStartEnd; } - [outArray addObject:[NSDictionary dictionaryWithObjectsAndKeys: - [NSNumber numberWithUnsignedInt:(theAttrRange.location)], k_QCPosition, - [NSNumber numberWithUnsignedInt:inPairKind], k_QCPairKind, - [NSNumber numberWithUnsignedInt:theQCStart], k_QCStartEnd, - [NSNumber numberWithUnsignedInt:0], k_QCStrLength, - nil]]; - [outArray addObject:[NSDictionary dictionaryWithObjectsAndKeys: - [NSNumber numberWithUnsignedInt:NSMaxRange(theAttrRange)], k_QCPosition, - [NSNumber numberWithUnsignedInt:inPairKind], k_QCPairKind, - [NSNumber numberWithUnsignedInt:theQCEnd], k_QCStartEnd, - [NSNumber numberWithUnsignedInt:0], k_QCStrLength, - nil]]; + [outArray addObject:@{k_QCPosition: @(theAttrRange.location), + k_QCPairKind: @(inPairKind), + k_QCStartEnd: @(theQCStart), + k_QCStrLength: @0U}]; + [outArray addObject:@{k_QCPosition: @(NSMaxRange(theAttrRange)), + k_QCPairKind: @(inPairKind), + k_QCStartEnd: @(theQCEnd), + k_QCStrLength: @0U}]; } } return outArray; @@ -936,17 +895,17 @@ - (NSArray *)rangesRegularExpressionBeginString:(NSString *)inBeginString withEn // ------------------------------------------------------ - (NSArray *)checkRegularExpressionBeginString:(NSString *)inBeginString withEndString:(NSString *)inEndString withIgnoreCase:(BOOL)inIgnoreCase - doColoring:(BOOL)inValueDoColoring pairStringKind:(unsigned int)inPairKind + doColoring:(BOOL)inValueDoColoring pairStringKind:(NSUInteger)inPairKind // 指定された開始/終了文字列を正規表現として検索し、位置を返す // ------------------------------------------------------ { - unsigned int theOption = (inIgnoreCase) ? OgreIgnoreCaseOption : OgreNoneOption; + NSUInteger theOption = (inIgnoreCase) ? OgreIgnoreCaseOption : OgreNoneOption; OGRegularExpression *theRegex; NSEnumerator *theEnum; OGRegularExpressionMatch *theMatch; NSRange theBeginRange, theEndRange, theAttrRange; NSMutableArray *outArray = [NSMutableArray array]; - unsigned int theQCStart = 0, theQCEnd = 0; + NSUInteger theQCStart = 0, theQCEnd = 0; NS_DURING theRegex = [OGRegularExpression regularExpressionWithString:inBeginString options:theOption]; @@ -989,18 +948,14 @@ - (NSArray *)checkRegularExpressionBeginString:(NSString *)inBeginString withEnd } else { theQCStart = theQCEnd = k_notUseStartEnd; } - [outArray addObject:[NSDictionary dictionaryWithObjectsAndKeys: - [NSNumber numberWithUnsignedInt:(theAttrRange.location)], k_QCPosition, - [NSNumber numberWithUnsignedInt:inPairKind], k_QCPairKind, - [NSNumber numberWithUnsignedInt:theQCStart], k_QCStartEnd, - [NSNumber numberWithUnsignedInt:0], k_QCStrLength, - nil]]; - [outArray addObject:[NSDictionary dictionaryWithObjectsAndKeys: - [NSNumber numberWithUnsignedInt:NSMaxRange(theAttrRange)], k_QCPosition, - [NSNumber numberWithUnsignedInt:inPairKind], k_QCPairKind, - [NSNumber numberWithUnsignedInt:theQCEnd], k_QCStartEnd, - [NSNumber numberWithUnsignedInt:0], k_QCStrLength, - nil]]; + [outArray addObject:@{k_QCPosition:@(theAttrRange.location), + k_QCPairKind: @(inPairKind), + k_QCStartEnd: @(theQCStart), + k_QCStrLength: @0U}]; + [outArray addObject:@{k_QCPosition: @(NSMaxRange(theAttrRange)), + k_QCPairKind: @(inPairKind), + k_QCStartEnd: @(theQCEnd), + k_QCStrLength: @0U}]; } [thePool release]; // ===== release } @@ -1022,8 +977,8 @@ - (void)setAttrToCommentsWithSyntaxArray:(NSArray *)inArray NSString *theBeginStr = nil, *theEndStr = nil; NSMutableString *theSimpleWordsChar = [NSMutableString string]; NSRange theColoringRange; - int i, j, theIndex = 0, theSyntaxCount = [inArray count], theColoringCount; - unsigned int theQCKind, theStart, theEnd, theCheckStartEnd; + NSInteger i, j, theIndex = 0, theSyntaxCount = [inArray count], theColoringCount; + NSUInteger theQCKind, theStart, theEnd, theCheckStartEnd; double indicatorValue, theOldValue = 0.0, theBeginDouble = [self doubleValueOfIndicator]; BOOL theBoolHasEnd = NO; @@ -1031,37 +986,26 @@ - (void)setAttrToCommentsWithSyntaxArray:(NSArray *)inArray for (i = 0; i < theSyntaxCount; i++) { if ((_isIndicatorShown) && ((i % 10) == 0) && ([NSApp runModalSession:_modalSession] != NSRunContinuesResponse)) { return; } - theStrDict = [inArray objectAtIndex:i]; - theBeginStr = [theStrDict objectForKey:k_SCKey_beginString]; + theStrDict = inArray[i]; + theBeginStr = theStrDict[k_SCKey_beginString]; if ([theBeginStr length] < 1) { continue; } - theEndStr = [theStrDict objectForKey:k_SCKey_endString]; + theEndStr = theStrDict[k_SCKey_endString]; - if ([[theStrDict objectForKey:k_SCKey_regularExpression] boolValue]) { + if ([theStrDict[k_SCKey_regularExpression] boolValue]) { if ((theEndStr != nil) && ([theEndStr length] > 0)) { - if (_isPanther) { - theTmpArray = [self checkRegularExpressionBeginString:theBeginStr - withEndString:theEndStr - withIgnoreCase:[[theStrDict objectForKey:k_SCKey_ignoreCase] boolValue] - doColoring:NO pairStringKind:(k_QC_CommentBaseNum + i)]; - } else { - theTmpArray = [self rangesRegularExpressionBeginString:theBeginStr - withEndString:theEndStr - withIgnoreCase:[[theStrDict objectForKey:k_SCKey_ignoreCase] boolValue] - doColoring:NO pairStringKind:(k_QC_CommentBaseNum + i)]; - } + theTmpArray = [self rangesRegularExpressionBeginString:theBeginStr + withEndString:theEndStr + withIgnoreCase:[theStrDict[k_SCKey_ignoreCase] boolValue] + doColoring:NO + pairStringKind:(k_QC_CommentBaseNum + i)]; [thePosArray addObjectsFromArray:theTmpArray]; } else { - if (_isPanther) { - theTmpArray = [self checkRegularExpressionString:theBeginStr - withIgnoreCase:[[theStrDict objectForKey:k_SCKey_ignoreCase] boolValue] - doColoring:NO pairStringKind:(k_QC_CommentBaseNum + i)]; - } else { - theTmpArray = [self rangesRegularExpressionString:theBeginStr - withIgnoreCase:[[theStrDict objectForKey:k_SCKey_ignoreCase] boolValue] - doColoring:NO pairStringKind:(k_QC_CommentBaseNum + i)]; - } + theTmpArray = [self rangesRegularExpressionString:theBeginStr + withIgnoreCase:[theStrDict[k_SCKey_ignoreCase] boolValue] + doColoring:NO + pairStringKind:(k_QC_CommentBaseNum + i)]; [thePosArray addObjectsFromArray:theTmpArray]; } } else { @@ -1070,13 +1014,13 @@ - (void)setAttrToCommentsWithSyntaxArray:(NSArray *)inArray doColoring:NO pairStringKind:(k_QC_CommentBaseNum + i)]; [thePosArray addObjectsFromArray:theTmpArray]; } else { - NSNumber *len = [NSNumber numberWithInt:[theBeginStr length]]; - id wordsArray = [theSimpleWordsDict objectForKey:len]; + NSNumber *len = @([theBeginStr length]); + id wordsArray = theSimpleWordsDict[len]; if (wordsArray) { [wordsArray addObject:theBeginStr]; } else { wordsArray = [NSMutableArray arrayWithObject:theBeginStr]; - [theSimpleWordsDict setObject:wordsArray forKey:len]; + theSimpleWordsDict[len] = wordsArray; } [theSimpleWordsChar appendString:theBeginStr]; } @@ -1106,7 +1050,7 @@ - (void)setAttrToCommentsWithSyntaxArray:(NSArray *)inArray if ([thePosArray count] < 1) { return; } NSSortDescriptor *theDescriptor = [[[NSSortDescriptor alloc] initWithKey:k_QCPosition ascending:YES] autorelease]; - [thePosArray sortUsingDescriptors:[NSArray arrayWithObject:theDescriptor]]; + [thePosArray sortUsingDescriptors:@[theDescriptor]]; theColoringCount = [thePosArray count]; theQCKind = k_notUseKind; @@ -1116,18 +1060,18 @@ - (void)setAttrToCommentsWithSyntaxArray:(NSArray *)inArray indicatorValue = theBeginDouble + (double)(theIndex / (double)theColoringCount * 200); [self setDoubleIndicator:(double)indicatorValue]; } - theCurRecord = [thePosArray objectAtIndex:theIndex]; + theCurRecord = thePosArray[theIndex]; if (theQCKind == k_notUseKind) { - if ([[theCurRecord objectForKey:k_QCStartEnd] unsignedIntValue] == k_QC_End) { + if ([theCurRecord[k_QCStartEnd] unsignedIntegerValue] == k_QC_End) { theIndex++; continue; } - theQCKind = [[theCurRecord objectForKey:k_QCPairKind] unsignedIntValue]; - theStart = [[theCurRecord objectForKey:k_QCPosition] unsignedIntValue]; + theQCKind = [theCurRecord[k_QCPairKind] unsignedIntegerValue]; + theStart = [theCurRecord[k_QCPosition] unsignedIntegerValue]; theIndex++; continue; } - if (theQCKind == [[theCurRecord objectForKey:k_QCPairKind] unsignedIntValue]) { + if (theQCKind == [theCurRecord[k_QCPairKind] unsignedIntegerValue]) { if (theQCKind == k_QC_SingleQ) { theAttrs = _singleQuotesAttrs; } else if (theQCKind == k_QC_DoubleQ) { @@ -1138,12 +1082,12 @@ - (void)setAttrToCommentsWithSyntaxArray:(NSArray *)inArray NSLog(@"setAttrToCommentsWithSyntaxArray:withSyngleQuotes::... \n Can not set Attrs."); break; } - theEnd = [[theCurRecord objectForKey:k_QCPosition] unsignedIntValue] + - [[theCurRecord objectForKey:k_QCStrLength] unsignedIntValue]; + theEnd = [theCurRecord[k_QCPosition] unsignedIntegerValue] + + [theCurRecord[k_QCStrLength] unsignedIntegerValue]; theColoringRange = NSMakeRange(theStart + _updateRange.location, theEnd - theStart); if ([self isPrinting]) { [[_layoutManager firstTextView] setTextColor: - [theAttrs objectForKey:NSForegroundColorAttributeName] range:theColoringRange]; + theAttrs[NSForegroundColorAttributeName] range:theColoringRange]; } else { [_layoutManager addTemporaryAttributes:theAttrs forCharacterRange:theColoringRange]; } @@ -1152,9 +1096,9 @@ - (void)setAttrToCommentsWithSyntaxArray:(NSArray *)inArray } else { // 「終わり」があるか調べる for (j = (theIndex + 1); j < theColoringCount; j++) { - theCheckRecord = [thePosArray objectAtIndex:j]; - if (theQCKind == [[theCheckRecord objectForKey:k_QCPairKind] unsignedIntValue]) { - theCheckStartEnd = [[theCheckRecord objectForKey:k_QCStartEnd] unsignedIntValue]; + theCheckRecord = thePosArray[j]; + if (theQCKind == [theCheckRecord[k_QCPairKind] unsignedIntegerValue]) { + theCheckStartEnd = [theCheckRecord[k_QCStartEnd] unsignedIntegerValue]; if ((theCheckStartEnd == k_notUseStartEnd) || (theCheckStartEnd == k_QC_End)) { theBoolHasEnd = YES; break; @@ -1180,7 +1124,7 @@ - (void)setAttrToCommentsWithSyntaxArray:(NSArray *)inArray NSMakeRange(theStart + _updateRange.location, NSMaxRange(_updateRange) - theStart); if ([self isPrinting]) { [[_layoutManager firstTextView] setTextColor: - [theAttrs objectForKey:NSForegroundColorAttributeName] range:theColoringRange]; + theAttrs[NSForegroundColorAttributeName] range:theColoringRange]; } else { [_layoutManager addTemporaryAttributes:theAttrs forCharacterRange:theColoringRange]; } @@ -1192,12 +1136,12 @@ - (void)setAttrToCommentsWithSyntaxArray:(NSArray *)inArray // ------------------------------------------------------ -- (unsigned int)numberOfEscapeSequenceInString:(NSString *)inString +- (NSUInteger)numberOfEscapeSequenceInString:(NSString *)inString // 与えられた文字列の末尾にエスケープシーケンス(バックスラッシュ)がいくつあるかを返す // ------------------------------------------------------ { - unsigned int outCount = 0, theLength = [inString length]; - int i; + NSUInteger outCount = 0, theLength = [inString length]; + NSInteger i; for (i = (theLength - 1); i >= 0; i--) { if ([inString characterAtIndex:i] == '\\') { @@ -1225,10 +1169,10 @@ - (void)setOtherInvisibleCharsAttrs NSScanner *theScanner = [NSScanner scannerWithString:_localString]; NSString *theControlStr; NSRange theColoringRange; - int theStart, i, theMax; + NSInteger theStart; if (![self isPrinting]) { - theAttrs = [NSDictionary dictionaryWithObjectsAndKeys:theColor, NSForegroundColorAttributeName, nil]; + theAttrs = @{NSForegroundColorAttributeName: theColor}; } while (![theScanner isAtEnd]) { @@ -1241,16 +1185,15 @@ - (void)setOtherInvisibleCharsAttrs NSMakeRange(theStart, [theControlStr length])]]; } } - theMax = [theTargetArray count]; if ([self isPrinting]) { - for (i = 0; i < theMax; i++) { - theColoringRange = [[theTargetArray objectAtIndex:i] rangeValue]; + for (NSValue *value in theTargetArray) { + theColoringRange = [value rangeValue]; theColoringRange.location += _updateRange.location; [[_layoutManager firstTextView] setTextColor:theColor range:theColoringRange]; } } else { - for (i = 0; i < theMax; i++) { - theColoringRange = [[theTargetArray objectAtIndex:i] rangeValue]; + for (NSValue *value in theTargetArray) { + theColoringRange = [value rangeValue]; theColoringRange.location += _updateRange.location; [_layoutManager addTemporaryAttributes:theAttrs forCharacterRange:theColoringRange]; } @@ -1265,14 +1208,14 @@ - (void)doColoring { id theValues = [[NSUserDefaultsController sharedUserDefaultsController] values]; - unsigned int theLength = [self wholeStringLength]; + NSUInteger theLength = [self wholeStringLength]; if (theLength < 1) { return; } [self setLocalString:[_wholeString substringWithRange:_updateRange]]; // カラーリング対象文字列を保持 if ([_localString length] < 1) { return; } // 現在あるカラーリングを削除、カラーリング不要なら不可視文字のカラーリングだけして戻る [_layoutManager removeTemporaryAttribute:NSForegroundColorAttributeName forCharacterRange:_updateRange]; - if (([[_coloringDictionary objectForKey:k_SCKey_numOfObjInArray] intValue] == 0) || + if (([_coloringDictionary[k_SCKey_numOfObjInArray] integerValue] == 0) || ([[self syntaxStyleName] isEqualToString:NSLocalizedString(@"None",@"")])) { [self setOtherInvisibleCharsAttrs]; return; @@ -1302,16 +1245,16 @@ - (void)doColoring _modalSession = [NSApp beginModalSessionForWindow:theSheet]; } - NSArray *theColorArray = [NSArray arrayWithObjects:k_key_allSyntaxColors, nil]; - NSArray *theSyntaxArray = [NSArray arrayWithObjects:k_SCKey_allColoringArrays, nil]; + NSArray *theColorArray = @[k_key_allSyntaxColors]; + NSArray *theSyntaxArray = @[k_SCKey_allColoringArrays]; NSArray *theArray, *theInArray; NSMutableDictionary *theSimpleWordsDict = [NSMutableDictionary dictionaryWithCapacity:40]; NSMutableString *theSimpleWordsChar = [NSMutableString stringWithString:k_allAlphabetChars]; NSString *theBeginStr = nil, *theEndStr = nil; NSDictionary *theStrDict; NSRange theColoringRange; - int i, j, theCount, theSyntaxArrayCount = [theSyntaxArray count]; - int k,l, theTargetCount, theInArrayCount; + NSInteger i, j, theCount, theSyntaxArrayCount = [theSyntaxArray count]; + NSInteger k,l, theTargetCount, theInArrayCount; BOOL theBoolIsSingleQuotes = NO, theBoolIsDoubleQuotes = NO; double indicatorValue, theOldValue = 0.0, theBeginDouble = 0.0; @@ -1333,7 +1276,7 @@ - (void)doColoring break; } - theArray = [_coloringDictionary objectForKey:[theSyntaxArray objectAtIndex:i]]; + theArray = _coloringDictionary[theSyntaxArray[i]]; theCount = [theArray count]; if (theCount < 1) { if (_isIndicatorShown) { @@ -1342,12 +1285,11 @@ - (void)doColoring continue; } _textColor = [[NSUnarchiver unarchiveObjectWithData: - [theValues valueForKey:[theColorArray objectAtIndex:i]]] retain]; // ===== retain - _currentAttrs = [[NSDictionary dictionaryWithObjectsAndKeys:_textColor, - NSForegroundColorAttributeName, nil] retain]; // ===== retain + [theValues valueForKey:theColorArray[i]]] retain]; // ===== retain + _currentAttrs = [@{NSForegroundColorAttributeName: _textColor} retain]; // ===== retain // シングル/ダブルクォートのカラーリングがあったら、コメントとともに別メソッドでカラーリングする - if ([[theSyntaxArray objectAtIndex:i] isEqualToString:k_SCKey_commentsArray]) { + if ([theSyntaxArray[i] isEqualToString:k_SCKey_commentsArray]) { [self setAttrToCommentsWithSyntaxArray:theArray withSingleQuotes:theBoolIsSingleQuotes withDoubleQuotes:theBoolIsDoubleQuotes updateIndicator:_isIndicatorShown]; [_textColor release]; // ===== release @@ -1364,39 +1306,28 @@ - (void)doColoring NSArray *theTmpArray = nil; NSAutoreleasePool *thePool = [[NSAutoreleasePool alloc] init]; // ===== alloc for (j = 0; j < theCount; j++) { - theStrDict = [theArray objectAtIndex:j]; - theBeginStr = [theStrDict objectForKey:k_SCKey_beginString]; + theStrDict = theArray[j]; + theBeginStr = theStrDict[k_SCKey_beginString]; if ([theBeginStr length] < 1) { continue; } - theEndStr = [theStrDict objectForKey:k_SCKey_endString]; + theEndStr = theStrDict[k_SCKey_endString]; - if ([[theStrDict objectForKey:k_SCKey_regularExpression] boolValue]) { + if ([theStrDict[k_SCKey_regularExpression] boolValue]) { if ((theEndStr != nil) && ([theEndStr length] > 0)) { - if (_isPanther) { - theTmpArray = - [self checkRegularExpressionBeginString:theBeginStr withEndString:theEndStr - withIgnoreCase:[[theStrDict objectForKey:k_SCKey_ignoreCase] boolValue] - doColoring:YES pairStringKind:k_notUseKind]; - } else { - theTmpArray = - [self rangesRegularExpressionBeginString:theBeginStr withEndString:theEndStr - withIgnoreCase:[[theStrDict objectForKey:k_SCKey_ignoreCase] boolValue] - doColoring:YES pairStringKind:k_notUseKind]; - } + theTmpArray = [self rangesRegularExpressionBeginString:theBeginStr + withEndString:theEndStr + withIgnoreCase:[theStrDict[k_SCKey_ignoreCase] boolValue] + doColoring:YES + pairStringKind:k_notUseKind]; if (theTmpArray != nil) { [theTargetArray addObject:theTmpArray]; } } else { - if (_isPanther) { - theTmpArray = [self checkRegularExpressionString:theBeginStr - withIgnoreCase:[[theStrDict objectForKey:k_SCKey_ignoreCase] boolValue] - doColoring:YES pairStringKind:k_notUseKind]; - } else { - theTmpArray = [self rangesRegularExpressionString:theBeginStr - withIgnoreCase:[[theStrDict objectForKey:k_SCKey_ignoreCase] boolValue] - doColoring:YES pairStringKind:k_notUseKind]; - } + theTmpArray = [self rangesRegularExpressionString:theBeginStr + withIgnoreCase:[theStrDict[k_SCKey_ignoreCase] boolValue] + doColoring:YES + pairStringKind:k_notUseKind]; if (theTmpArray != nil) { [theTargetArray addObject:theTmpArray]; } @@ -1424,13 +1355,13 @@ - (void)doColoring [theTargetArray addObject:theTmpArray]; } } else { - NSNumber *len = [NSNumber numberWithInt:[theBeginStr length]]; - id wordsArray = [theSimpleWordsDict objectForKey:len]; + NSNumber *len = @([theBeginStr length]); + id wordsArray = theSimpleWordsDict[len]; if (wordsArray) { [wordsArray addObject:theBeginStr]; } else { wordsArray = [NSMutableArray arrayWithObject:theBeginStr]; - [theSimpleWordsDict setObject:wordsArray forKey:len]; + theSimpleWordsDict[len] = wordsArray; } [theSimpleWordsChar appendString:theBeginStr]; } @@ -1459,7 +1390,7 @@ - (void)doColoring // カラーリング実行 theTargetCount = [theTargetArray count]; // = 配列内の配列の数 for (k = 0; k < theTargetCount; k++) { - theInArray = [theTargetArray objectAtIndex:k]; + theInArray = theTargetArray[k]; theInArrayCount = [theInArray count]; // IMP を使ってメソッド呼び出しを高速化 @@ -1469,7 +1400,7 @@ - (void)doColoring IMP impSetTextColor = [[_layoutManager firstTextView] methodForSelector: @selector(setTextColor:range:)]; for (l = 0; l < theInArrayCount; l++) { - theColoringRange = [[theInArray objectAtIndex:l] rangeValue]; + theColoringRange = [theInArray[l] rangeValue]; theColoringRange.location += _updateRange.location; impSetTextColor([_layoutManager firstTextView], @selector(setTextColor:range:), @@ -1479,7 +1410,7 @@ - (void)doColoring IMP impAddTempAttrs = [_layoutManager methodForSelector: @selector(addTemporaryAttributes:forCharacterRange:)]; for (l = 0; l < theInArrayCount; l++) { - theColoringRange = [[theInArray objectAtIndex:l] rangeValue]; + theColoringRange = [theInArray[l] rangeValue]; theColoringRange.location += _updateRange.location; impAddTempAttrs(_layoutManager, @selector(addTemporaryAttributes:forCharacterRange:), diff --git a/CESyntaxManager.h b/CESyntaxManager.h index 830fd982e0..aca82ed183 100644 --- a/CESyntaxManager.h +++ b/CESyntaxManager.h @@ -3,8 +3,9 @@ CESyntaxManager (for CotEditor) -Copyright (C) 2004-2007 nakamuxu. -http://www.aynimac.com/ + Copyright (C) 2004-2007 nakamuxu. + Copyright (C) 2014 CotEditor Project + http://coteditor.github.io ================================================= encoding="UTF-8" @@ -56,8 +57,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. BOOL _okButtonPressed; BOOL _addedItemInLeopard; - int _sheetOpeningMode; - unsigned int _selectedDetailTag; // Elementsタブでのポップアップメニュー選択用バインディング変数(#削除不可) + NSInteger _sheetOpeningMode; + NSUInteger _selectedDetailTag; // Elementsタブでのポップアップメニュー選択用バインディング変数(#削除不可) } // class method @@ -70,7 +71,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - (NSString *)selectedStyleName; - (NSString *)editedNewStyleName; - (void)setEditedNewStyleName:(NSString *)inString; -- (BOOL)setSelectionIndexOfStyle:(int)inStyleIndex mode:(int)inMode; +- (BOOL)setSelectionIndexOfStyle:(NSInteger)inStyleIndex mode:(NSInteger)inMode; - (NSString *)syntaxNameFromExtension:(NSString *)inExtension; - (NSDictionary *)syntaxWithStyleName:(NSString *)inStyleName; - (NSArray *)defaultSyntaxFileNames; @@ -81,10 +82,10 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - (NSWindow *)editWindow; - (BOOL)isOkButtonPressed; - (void)setIsOkButtonPressed:(BOOL)inValue; -- (BOOL)existsStyleFileWithStyleName:(NSString *)inStyleFileName; +- (BOOL)existsStyleFileWithStyleName:(NSString *)inStyleName; - (BOOL)importStyleFile:(NSString *)inStyleFileName; - (BOOL)removeStyleFileWithStyleName:(NSString *)inStyleName; -- (NSString *)filePathOfStyleName:(NSString *)inStyleName; +- (NSURL *)URLOfStyle:(NSString *)styleName; - (BOOL)existsExtensionError; - (NSWindow *)extensionErrorWindow; diff --git a/CESyntaxManager.m b/CESyntaxManager.m index 1ac2134bf9..0a6f7912bf 100644 --- a/CESyntaxManager.m +++ b/CESyntaxManager.m @@ -3,8 +3,9 @@ CESyntaxManager (for CotEditor) -Copyright (C) 2004-2007 nakamuxu. -http://www.aynimac.com/ + Copyright (C) 2004-2007 nakamuxu. + Copyright (C) 2014 CotEditor Project + http://coteditor.github.io ================================================= encoding="UTF-8" @@ -43,14 +44,14 @@ - (void)setupColoringStyleArray; - (void)setupExtensionAndSyntaxTable; - (void)saveColoringStyle; - (NSString *)pathOfStyleDirectory; +- (NSURL *)URLOfStyleDirectory; - (BOOL)copyDefaultSyntaxStylesTo:(NSString *)inDestinationPath; - (NSString *)copiedSyntaxName:(NSString *)inOriginalName; - (void)setExtensionErrorToTextView; - (void)setupSyntaxSheetControles; - (void)editNewAddedRowOfTableView:(NSTableView *)inTableView; -- (int)syntaxElementError; -- (int)syntaxElementCheckInPanter; -- (int)syntaxElementCheck; +- (NSInteger)syntaxElementError; +- (NSInteger)syntaxElementCheck; @end @@ -88,7 +89,7 @@ + (CESyntaxManager *)sharedInstance //======================================================= // ------------------------------------------------------ -- (id)init +- (instancetype)init // 初期化 // ------------------------------------------------------ { @@ -182,32 +183,31 @@ - (void)setEditedNewStyleName:(NSString *)inString } // ------------------------------------------------------ -- (BOOL)setSelectionIndexOfStyle:(int)inStyleIndex mode:(int)inMode +- (BOOL)setSelectionIndexOfStyle:(NSInteger)inStyleIndex mode:(NSInteger)inMode // シートの表示に備え、シンタックスカラーリングスタイル定義配列のうちの一つを選択する(バインディングのため) // ------------------------------------------------------ { NSArray *theColoringArray; NSString *theName; - unsigned int theSelected; + NSUInteger theSelected; _sheetOpeningMode = inMode; if (inMode == k_syntaxCopyTag) { // Copy theSelected = inStyleIndex; theColoringArray = _coloringStyleArray; theName = [self copiedSyntaxName: - [[theColoringArray objectAtIndex:inStyleIndex] objectForKey:k_SCKey_styleName]]; - [[theColoringArray objectAtIndex:inStyleIndex] setObject:theName forKey:k_SCKey_styleName]; + theColoringArray[inStyleIndex][k_SCKey_styleName]]; + theColoringArray[inStyleIndex][k_SCKey_styleName] = theName; } else if (inMode == k_syntaxNewTag) { // New theSelected = 0; - theColoringArray = [NSArray arrayWithObject: - [NSMutableDictionary dictionaryWithDictionary:[self emptyColoringStyle]]]; - theName = [NSString stringWithString:@""]; + theColoringArray = @[[NSMutableDictionary dictionaryWithDictionary:[self emptyColoringStyle]]]; + theName = @""; } else { // Edit, Delete theSelected = inStyleIndex; theColoringArray = _coloringStyleArray; - theName = [[theColoringArray objectAtIndex:inStyleIndex] objectForKey:k_SCKey_styleName]; + theName = theColoringArray[inStyleIndex][k_SCKey_styleName]; } if (!theName) { return NO; } [theName retain]; @@ -227,7 +227,7 @@ - (NSString *)syntaxNameFromExtension:(NSString *)inExtension // 拡張子に応じたstyle名を返す // ------------------------------------------------------ { - NSString *outName = [[self xtsnAndStyleTable] objectForKey:inExtension]; + NSString *outName = [self xtsnAndStyleTable][inExtension]; if (outName == nil) { id theValues = [[NSUserDefaultsController sharedUserDefaultsController] values]; @@ -245,21 +245,18 @@ - (NSDictionary *)syntaxWithStyleName:(NSString *)inStyleName if ((![inStyleName isEqualToString:@""]) && (![inStyleName isEqualToString:NSLocalizedString(@"None",@"")])) { NSMutableDictionary *outDict; - NSDictionary *theDict = nil; - int i, theStyleCount = [_coloringStyleArray count]; - for (i = 0; i < theStyleCount; i++) { - theDict = [_coloringStyleArray objectAtIndex:i]; - if ([[theDict objectForKey:k_SCKey_styleName] isEqualToString:inStyleName]) { - NSArray *theSyntaxArray = [NSArray arrayWithObjects:k_SCKey_allColoringArrays, nil]; + for (NSDictionary *theDict in _coloringStyleArray) { + if ([theDict[k_SCKey_styleName] isEqualToString:inStyleName]) { + NSArray *theSyntaxArray = @[k_SCKey_allColoringArrays]; NSArray *theArray; - int j, theCount = 0, theSyntaxCount = [theSyntaxArray count]; + NSUInteger theCount = 0; outDict = [NSMutableDictionary dictionaryWithDictionary:theDict]; - for (j = 0; j < theSyntaxCount; j++) { - theArray = [outDict objectForKey:[theSyntaxArray objectAtIndex:j]]; + for (id key in theSyntaxArray) { + theArray = outDict[key]; theCount = theCount + [theArray count]; } - [outDict setObject:[NSNumber numberWithInt:theCount] forKey:k_SCKey_numOfObjInArray]; + outDict[k_SCKey_numOfObjInArray] = @(theCount); return outDict; } } @@ -277,7 +274,7 @@ - (NSArray *)defaultSyntaxFileNames NSFileManager *theFileManager = [NSFileManager defaultManager]; NSString *theSourceDirPath = [[[NSBundle mainBundle] bundlePath] stringByAppendingPathComponent:@"/Contents/Resources"]; - NSEnumerator *theEnumerator = [[theFileManager directoryContentsAtPath:theSourceDirPath] objectEnumerator]; + NSEnumerator *theEnumerator = [[theFileManager contentsOfDirectoryAtPath:theSourceDirPath error:nil] objectEnumerator]; // (enumeratorAtPath:はサブディレクトリの内容も返すので、使えない) NSMutableArray *outArray = [NSMutableArray array]; id theFileName; @@ -299,13 +296,10 @@ - (NSArray *)defaultSyntaxFileNamesWithoutPrefix { NSArray *theDefaultArray = [self defaultSyntaxFileNames]; NSMutableArray *outArray = [NSMutableArray array]; - NSString *theStr = nil; - int i, thePrefixLength, theCount = [theDefaultArray count]; - - thePrefixLength = [[NSString stringWithString:k_bundleSyntaxStyleFilePrefix] length]; - for (i = 0; i < theCount; i++) { - theStr = [[theDefaultArray objectAtIndex:i] substringFromIndex:thePrefixLength]; - [outArray addObject:theStr]; + NSUInteger thePrefixLength = [k_bundleSyntaxStyleFilePrefix length]; + + for (NSString *fileName in theDefaultArray) { + [outArray addObject:[fileName substringFromIndex:thePrefixLength]]; } return outArray; } @@ -331,26 +325,23 @@ - (BOOL)isEqualToDefaultSyntaxStyle:(NSString *)inStyleName { if ((inStyleName == nil) || ([inStyleName isEqualToString:@""])) { return NO; } NSFileManager *theFileManager = [NSFileManager defaultManager]; - NSString *theSourceDirPath = - [[[NSBundle mainBundle] bundlePath] stringByAppendingPathComponent:@"/Contents/Resources"]; - NSString *theSourcePath = [theSourceDirPath stringByAppendingFormat:@"/%@%@.plist", - k_bundleSyntaxStyleFilePrefix, inStyleName]; - NSString *theDestPath = [[self pathOfStyleDirectory] stringByAppendingFormat:@"/%@.plist", inStyleName]; - - if ((![theFileManager fileExistsAtPath:theSourcePath]) || - (![theFileManager fileExistsAtPath:theDestPath])) { + NSURL *destURL = [[[self URLOfStyleDirectory] URLByAppendingPathComponent:inStyleName] URLByAppendingPathExtension:@"plist"]; + NSURL *sourceDirURL =[[[NSBundle mainBundle] bundleURL] URLByAppendingPathComponent:@"/Contents/Resources"]; + NSURL *sourceURL = [[sourceDirURL URLByAppendingPathComponent:[NSString stringWithFormat:@"%@%@", k_bundleSyntaxStyleFilePrefix, inStyleName]] URLByAppendingPathExtension:@"plist"]; + + if (![theFileManager fileExistsAtPath:[sourceURL path]] || ![theFileManager fileExistsAtPath:[destURL path]]) { return NO; } // ([self syntaxWithStyleName:[self selectedStyleName]]] で返ってくる辞書には numOfObjInArray が付加されている // ため、同じではない。ファイル同士を比較する。2008.05.06. - NSDictionary *theSourcePList = [NSDictionary dictionaryWithContentsOfFile:theSourcePath]; - NSDictionary *theDestPList = [NSDictionary dictionaryWithContentsOfFile:theDestPath]; + NSDictionary *theSourcePList = [NSDictionary dictionaryWithContentsOfURL:sourceURL]; + NSDictionary *theDestPList = [NSDictionary dictionaryWithContentsOfURL:destURL]; return ([theSourcePList isEqualToDictionary:theDestPList]); // NSFileManager の contentsEqualAtPath:andPath: では、宣言部分の「Apple Computer(Tiger以前)」と「Apple(Leopard)」の違いが引っかかってしまうため、使えなくなった。 2008.05.06. -// return ([theFileManager contentsEqualAtPath:theSourcePath andPath:theDestPath]); +// return ([theFileManager contentsEqualAtPath:[sourceURL path] andPath:[destURL path]]); } @@ -360,10 +351,9 @@ - (NSArray *)styleNames // ------------------------------------------------------ { NSMutableArray *outArray = [NSMutableArray array]; - int i, theCount = [_coloringStyleArray count]; - - for (i = 0; i < theCount; i++) { - [outArray addObject:[[_coloringStyleArray objectAtIndex:i] objectForKey:k_SCKey_styleName]]; + + for (NSDictionary *dict in _coloringStyleArray) { + [outArray addObject:dict[k_SCKey_styleName]]; } return outArray; @@ -398,17 +388,13 @@ - (void)setIsOkButtonPressed:(BOOL)inValue //------------------------------------------------------ -- (BOOL)existsStyleFileWithStyleName:(NSString *)inStyleFileName -// あるファイル名を持つファイルがstyle保存ディレクトリにあるかどうかを返す(引数はファイルパスまたはstyle名) +- (BOOL)existsStyleFileWithStyleName:(NSString *)inStyleName +// ある名前を持つstyleファイルがstyle保存ディレクトリにあるかどうかを返す //------------------------------------------------------ { - NSFileManager *theFileManager = [NSFileManager defaultManager]; - NSString *thePath = [NSString stringWithFormat:@"%@/%@%@", - [self pathOfStyleDirectory], - [[inStyleFileName lastPathComponent] stringByDeletingPathExtension], - @".plist"]; + NSURL *URL = [[[self URLOfStyleDirectory] URLByAppendingPathComponent:inStyleName] URLByAppendingPathExtension:@"plist"]; - return ([theFileManager fileExistsAtPath:thePath]); + return ([[NSFileManager defaultManager] fileExistsAtPath:[URL path]]); } @@ -419,13 +405,13 @@ - (BOOL)importStyleFile:(NSString *)inStyleFileName { BOOL outBool = NO; NSFileManager *theFileManager = [NSFileManager defaultManager]; - NSString *theDestination = - [[self pathOfStyleDirectory] stringByAppendingPathComponent:[inStyleFileName lastPathComponent]]; + NSURL *styleFileURL = [NSURL fileURLWithPath:inStyleFileName]; + NSURL *destinationURL = [[self URLOfStyleDirectory] URLByAppendingPathComponent:[styleFileURL lastPathComponent]]; - if ([theFileManager fileExistsAtPath:theDestination]) { - (void)[theFileManager removeFileAtPath:theDestination handler:nil]; + if ([theFileManager fileExistsAtPath:[destinationURL path]]) { + [theFileManager removeItemAtURL:destinationURL error:nil]; } - outBool = [theFileManager copyPath:inStyleFileName toPath:theDestination handler:nil]; + outBool = [theFileManager copyItemAtURL:styleFileURL toURL:destinationURL error:nil]; if (outBool) { // 内部で持っているキャッシュ用データを更新 [self setupColoringStyleArray]; @@ -443,39 +429,32 @@ - (BOOL)removeStyleFileWithStyleName:(NSString *)inStyleName BOOL outValue = NO; if ([inStyleName length] < 1) { return outValue; } NSFileManager *theFileManager = [NSFileManager defaultManager]; - NSString *thePath = - [NSString stringWithFormat:@"%@/%@%@", [self pathOfStyleDirectory], inStyleName, @".plist"]; + NSURL *URL = [[[self URLOfStyleDirectory] URLByAppendingPathComponent:inStyleName] URLByAppendingPathExtension:@"plist"]; - if ([theFileManager fileExistsAtPath:thePath]) { - outValue = [theFileManager removeFileAtPath:thePath handler:nil]; + if ([theFileManager fileExistsAtPath:[URL path]]) { + outValue = [theFileManager removeItemAtURL:URL error:nil]; if (outValue) { // 内部で持っているキャッシュ用データを更新 [self setupColoringStyleArray]; [self setupExtensionAndSyntaxTable]; } else { - NSLog(@"Error. Could not remove \"%@\"", thePath); + NSLog(@"Error. Could not remove \"%@\"", [URL path]); } } else { - NSLog(@"Error. Could not be found \"%@\" for remove", thePath); + NSLog(@"Error. Could not be found \"%@\" for remove", [URL path]); } return outValue; } //------------------------------------------------------ -- (NSString *)filePathOfStyleName:(NSString *)inStyleName -// style名からstyle定義ファイルのパスを返す +- (NSURL *)URLOfStyle:(NSString *)styleName +// style名からstyle定義ファイルのURLを返す //------------------------------------------------------ { - NSFileManager *theFileManager = [NSFileManager defaultManager]; - NSString *thePath = - [NSString stringWithFormat:@"%@/%@%@", [self pathOfStyleDirectory], inStyleName, @".plist"]; - - if ([theFileManager fileExistsAtPath:thePath]) { - return thePath; - } else { - return nil; - } + NSURL *URL = [[[self URLOfStyleDirectory] URLByAppendingPathComponent:styleName] URLByAppendingPathExtension:@"plist"]; + + return ([[NSFileManager defaultManager] fileExistsAtPath:[URL path]]) ? URL : nil; } @@ -515,7 +494,7 @@ - (void)tableViewSelectionDidChange:(NSNotification *)inNotification // ------------------------------------------------------ { NSTableView *theTableView = [inNotification object]; - int theRow = [theTableView selectedRow]; + NSInteger theRow = [theTableView selectedRow]; // 最下行が選択されたのなら、編集開始のメソッドを呼び出す //(ここですぐに開始しないのは、選択行のセルが持つ文字列をこの段階では取得できないため) @@ -545,8 +524,7 @@ - (IBAction)setToFactoryDefaults:(id)sender NSString *theSourcePath = [theSourceDirPath stringByAppendingFormat:@"/%@%@.plist", k_bundleSyntaxStyleFilePrefix, [self selectedStyleName]]; if (![[NSFileManager defaultManager] fileExistsAtPath:theSourcePath]) { return; } - NSArray *theContents = [NSArray arrayWithObject: - [NSMutableDictionary dictionaryWithContentsOfFile:theSourcePath]]; + NSArray *theContents = @[[NSMutableDictionary dictionaryWithContentsOfFile:theSourcePath]]; // フォーカスを移しておく [[sender window] makeFirstResponder:[sender window]]; @@ -651,19 +629,17 @@ - (NSDictionary *)emptyColoringStyle // 空の新規styleを返す //------------------------------------------------------ { - NSDictionary *outDict = [NSDictionary dictionaryWithObjectsAndKeys: - [NSMutableString stringWithString:@""] , k_SCKey_styleName, - [NSMutableArray array], k_SCKey_extensions, - [NSMutableArray array], k_SCKey_keywordsArray, - [NSMutableArray array], k_SCKey_commandsArray, - [NSMutableArray array], k_SCKey_valuesArray, - [NSMutableArray array], k_SCKey_numbersArray, - [NSMutableArray array], k_SCKey_stringsArray, - [NSMutableArray array], k_SCKey_charactersArray, - [NSMutableArray array], k_SCKey_commentsArray, - [NSMutableArray array], k_SCKey_outlineMenuArray, - [NSMutableArray array], k_SCKey_completionsArray, - nil]; + NSDictionary *outDict = @{k_SCKey_styleName: [NSMutableString stringWithString:@""], + k_SCKey_extensions: [NSMutableArray array], + k_SCKey_keywordsArray: [NSMutableArray array], + k_SCKey_commandsArray: [NSMutableArray array], + k_SCKey_valuesArray: [NSMutableArray array], + k_SCKey_numbersArray: [NSMutableArray array], + k_SCKey_stringsArray: [NSMutableArray array], + k_SCKey_charactersArray: [NSMutableArray array], + k_SCKey_commentsArray: [NSMutableArray array], + k_SCKey_outlineMenuArray: [NSMutableArray array], + k_SCKey_completionsArray: [NSMutableArray array]}; return outDict; } @@ -681,16 +657,12 @@ - (void)setupColoringStyleArray BOOL theValueIsDir = NO, theValueCreated = NO; BOOL theExists = [theFileManager fileExistsAtPath:theDirPath isDirectory:&theValueIsDir]; if (!theExists) { -#if MAC_OS_X_VERSION_10_5 > MAC_OS_X_VERSION_MAX_ALLOWED - theValueCreated = [theFileManager createDirectoryAtPath:theDirPath attributes:nil]; -#else NSError *createDirError = nil; theValueCreated = [theFileManager createDirectoryAtPath:theDirPath withIntermediateDirectories:NO attributes:nil error:&createDirError]; if (createDirError != nil) { NSLog(@"Error. SyntaxStyles directory could not be created."); return; } -#endif } if ((theExists && theValueIsDir) || (theValueCreated)) { @@ -702,29 +674,22 @@ - (void)setupColoringStyleArray // styleデータの読み込み NSMutableArray *theArray = [NSMutableArray array]; -#if MAC_OS_X_VERSION_10_5 > MAC_OS_X_VERSION_MAX_ALLOWED - NSArray *theFiles = [theFileManager directoryContentsAtPath:theDirPath]; -#else NSError *findFileError = nil; NSArray *theFiles = [theFileManager contentsOfDirectoryAtPath:theDirPath error: &findFileError]; if (findFileError != nil) { NSLog(@"Error on seeking SyntaxStyle Files Directory."); return; } -#endif NSString *thePath = nil; - int i, theCount = [theFiles count]; - for (i = 0; i < theCount; i++) { - NSString *theFileName = [theFiles objectAtIndex:i]; - if ((![theFileName hasPrefix:@"."]) && ([theFileName hasSuffix:@".plist"])) { // ドットファイル除去 - thePath = [theDirPath stringByAppendingPathComponent:theFileName]; + for (NSString *fileName in theFiles) { + if ((![fileName hasPrefix:@"."]) && ([fileName hasSuffix:@".plist"])) { // ドットファイル除去 + thePath = [theDirPath stringByAppendingPathComponent:fileName]; NSMutableDictionary *theDict = [NSMutableDictionary dictionaryWithContentsOfFile:thePath]; // thePathが無効だった場合などに、theDictがnilになる場合がある - if (theDict != nil) { + if (theDict != nil) { // k_SCKey_styleName をファイル名にそろえておく(Finderで移動/リネームされたときへの対応) - [theDict setObject:[[theFileName lastPathComponent] stringByDeletingPathExtension] - forKey:k_SCKey_styleName]; + theDict[k_SCKey_styleName] = [[fileName lastPathComponent] stringByDeletingPathExtension]; [theArray addObject:theDict]; // theDictがnilになってここで落ちる(MacBook Airの場合) } } @@ -746,16 +711,14 @@ - (void)setupExtensionAndSyntaxTable NSMutableArray *theExtensions = [NSMutableArray array]; id theDict, theExtension, theAddedName = nil; NSArray *theArray; - int i, theCount; while (theDict = [theEnumerator nextObject]) { - theArray = [theDict objectForKey:k_SCKey_extensions]; + theArray = theDict[k_SCKey_extensions]; if (!theArray) { continue; } - theCount = [theArray count]; - for (i = 0; i < theCount; i++) { - theExtension = [[theArray objectAtIndex:i] valueForKey:k_SCKey_arrayKeyString]; - if (theAddedName = [theTable valueForKey:theExtension]) { // 同じ拡張子を持つものがすでにあるとき - NSMutableArray *theErrorArray = [theErrors valueForKey:theExtension]; + for (NSDictionary *extensionDict in theArray) { + theExtension = extensionDict[k_SCKey_arrayKeyString]; + if ((theAddedName = theTable[theExtension])) { // 同じ拡張子を持つものがすでにあるとき + NSMutableArray *theErrorArray = theErrors[theExtension]; if (!theErrorArray) { theErrorArray = [NSMutableArray array]; [theErrors setValue:theErrorArray forKey:theExtension]; @@ -763,9 +726,9 @@ - (void)setupExtensionAndSyntaxTable if (![theErrorArray containsObject:theAddedName]) { [theErrorArray addObject:theAddedName]; } - [theErrorArray addObject:[theDict valueForKey:k_SCKey_styleName]]; + [theErrorArray addObject:theDict[k_SCKey_styleName]]; } else { - [theTable setValue:[theDict valueForKey:k_SCKey_styleName] forKey:theExtension]; + [theTable setValue:theDict[k_SCKey_styleName] forKey:theExtension]; [theExtensions addObject:theExtension]; } } @@ -790,21 +753,20 @@ - (void)saveColoringStyle NSString *theDirPath = [self pathOfStyleDirectory]; // データディレクトリパス取得 NSString *theSaveFile, *theSavePath; NSMutableDictionary *theDict; - NSArray *theArraysArray = [NSArray arrayWithObjects:k_SCKey_allArrays, nil]; + NSArray *theArraysArray = @[k_SCKey_allArrays]; NSMutableArray *theKeyStringArray; NSSortDescriptor *theDescriptorOne = [[[NSSortDescriptor alloc] initWithKey:k_SCKey_beginString ascending:YES selector:@selector(caseInsensitiveCompare:)] autorelease]; NSSortDescriptor *theDescriptorTwo = [[[NSSortDescriptor alloc] initWithKey:k_SCKey_arrayKeyString ascending:YES selector:@selector(caseInsensitiveCompare:)] autorelease]; - NSArray *theDescriptors = [NSArray arrayWithObjects:theDescriptorOne, theDescriptorTwo, nil]; - int i; + NSArray *theDescriptors = @[theDescriptorOne, theDescriptorTwo]; // _styleController内のコンテンツオブジェクト取得 NSArray *theContent = [_styleController selectedObjects]; // styleデータ保存(選択中のオブジェクトはひとつだから、配列の最初の要素のみ処理する 2008.11.02) - theDict = [[theContent objectAtIndex:0] mutableCopy]; // ===== mutableCopy - for (i = 0; i < [theArraysArray count]; i++) { - theKeyStringArray = [theDict objectForKey:[theArraysArray objectAtIndex:i]]; + theDict = [theContent[0] mutableCopy]; // ===== mutableCopy + for (id key in theArraysArray) { + theKeyStringArray = theDict[key]; [theKeyStringArray sortUsingDescriptors:theDescriptors]; } theSaveFile = [self editedNewStyleName]; @@ -825,10 +787,23 @@ - (NSString *)pathOfStyleDirectory // styleデータファイル保存用ディレクトリを返す //------------------------------------------------------ { - NSString *outPath = [NSHomeDirectory( ) - stringByAppendingPathComponent:@"Library/Application Support/CotEditor/SyntaxColorings"]; + return [[self URLOfStyleDirectory] path]; +} - return outPath; + +//------------------------------------------------------ +- (NSURL *)URLOfStyleDirectory +// styleデータファイル保存用ディレクトリをNSURLで返す +//------------------------------------------------------ +{ + NSURL *URL = [[[NSFileManager defaultManager] URLForDirectory:NSApplicationSupportDirectory + inDomain:NSUserDomainMask + appropriateForURL:nil + create:NO + error:nil] + URLByAppendingPathComponent:@"CotEditor/SyntaxColorings"]; + + return URL; } @@ -844,14 +819,14 @@ - (BOOL)copyDefaultSyntaxStylesTo:(NSString *)inDestinationPath NSArray *theDestNames = [self defaultSyntaxFileNamesWithoutPrefix]; NSFileManager *theFileManager = [NSFileManager defaultManager]; BOOL theValue = NO; - int i; - + NSUInteger i; + for (i = 0; i < [theSourceNames count]; i++) { - theSource = [theSourceDirPath stringByAppendingPathComponent:[theSourceNames objectAtIndex:i]]; - theDestination = [inDestinationPath stringByAppendingPathComponent:[theDestNames objectAtIndex:i]]; + theSource = [theSourceDirPath stringByAppendingPathComponent:theSourceNames[i]]; + theDestination = [inDestinationPath stringByAppendingPathComponent:theDestNames[i]]; if (([theFileManager fileExistsAtPath:theSource]) && (![theFileManager fileExistsAtPath:theDestination])) { - theValue = [theFileManager copyPath:theSource toPath:theDestination handler:nil]; + theValue = [theFileManager copyItemAtPath:theSource toPath:theDestination error:nil]; if (!theValue) { NSLog(@"Error. Could not copy \"%@\" to \"%@\"...", theSource, inDestinationPath); } @@ -874,7 +849,7 @@ - (NSString *)copiedSyntaxName:(NSString *)inOriginalName NSMutableString *outName = [NSMutableString string]; NSRange theCopiedStrRange; BOOL theCopiedState = NO; - int i = 1; + NSInteger i = 1; theCopiedStrRange = [theCompareName rangeOfRegularExpressionString:NSLocalizedString(@" copy$",@"")]; if (theCopiedStrRange.location != NSNotFound) { @@ -896,7 +871,7 @@ - (NSString *)copiedSyntaxName:(NSString *)inOriginalName [outName appendFormat:@"%@.plist", theCopyName]; while ([theFileManager fileExistsAtPath:[thePath stringByAppendingPathComponent:outName]]) { i++; - [outName setString:[NSString stringWithFormat:@"%@ %i", theCopyName, i]]; + [outName setString:[NSString stringWithFormat:@"%@ %li", theCopyName, (long)i]]; [outName appendString:@".plist"]; } return [outName stringByDeletingPathExtension]; @@ -913,8 +888,9 @@ - (void)setExtensionErrorToTextView if ([[self xtsnErrors] count] > 0) { NSDictionary *theErrors = [self xtsnErrors]; NSEnumerator *theEnumerator = [theErrors keyEnumerator]; - id theKey, theArray; - int i, theCount; + NSArray *theArray; + id theKey; + NSInteger i, theCount; [theStr setString:NSLocalizedString(@"The following Extension list is registered by two or more styles for one extension. \nCotEditor uses the first style.\n\n",@"")]; [theStr appendString:NSLocalizedString(@"\"Extension\" = \"Style Names\"\n - - - - - - -\n",@"")]; @@ -922,11 +898,11 @@ - (void)setExtensionErrorToTextView // [NSDictionary descriptionInStringsFileFormat] だと日本語がユニコード16進表示になってしまうので、 // マニュアルで分解し文字列に変換(もっとうまいやり方あるだろ (-_-; ... 2005.12.03) while (theKey = [theEnumerator nextObject]) { - theArray = [theErrors objectForKey:theKey]; + theArray = theErrors[theKey]; theCount = [theArray count]; [theStr appendFormat:@"\"%@\" = \"", theKey]; for (i = 0; i < theCount; i++) { - [theStr appendString:[theArray objectAtIndex:i]]; + [theStr appendString:theArray[i]]; if (i < (theCount - 1)) { [theStr appendString:@", "]; } else { @@ -986,8 +962,8 @@ - (void)editNewAddedRowOfTableView:(NSTableView *)inTableView _addedItemInLeopard = NO; } - NSTableColumn *theColumn = [[inTableView tableColumns] objectAtIndex:0]; - int theRow = [inTableView selectedRow]; + NSTableColumn *theColumn = [inTableView tableColumns][0]; + NSInteger theRow = [inTableView selectedRow]; id theCell = [theColumn dataCellForRow:theRow]; if (theCell == nil) { return; } NSString *theStr = [theCell stringValue]; @@ -999,162 +975,69 @@ - (void)editNewAddedRowOfTableView:(NSTableView *)inTableView } } // ------------------------------------------------------ -- (int)syntaxElementError +- (NSInteger)syntaxElementError // 構文チェック実行 // ------------------------------------------------------ { - if (floor(NSAppKitVersionNumber) <= NSAppKitVersionNumber10_3) { // = 10.3.x以前 - return ([self syntaxElementCheckInPanter]); - } else { - return ([self syntaxElementCheck]); - } + return ([self syntaxElementCheck]); } - // ------------------------------------------------------ -- (int)syntaxElementCheckInPanter -// 10.3で、正規表現構文と重複のチェック実行 +- (NSInteger)syntaxElementCheck +// 正規表現構文と重複のチェック実行 // ------------------------------------------------------ { NSArray *theSelectedArray = [_styleController selectedObjects]; NSMutableString *theResultStr = [NSMutableString string]; - int outCount = 0; + NSInteger outCount = 0; if ([theSelectedArray count] == 1) { - NSDictionary *theDict = [theSelectedArray objectAtIndex:0]; - NSArray *theSyntaxArray = [NSArray arrayWithObjects:k_SCKey_syntaxCheckArrays, nil]; + NSDictionary *theDict = theSelectedArray[0]; + NSArray *theSyntaxArray = @[k_SCKey_syntaxCheckArrays]; NSArray *theArray; NSString *theBeginStr, *theEndStr, *theTmpBeginStr = nil, *theTmpEndStr = nil; - NSString *theArrayName = nil, *theArrayNameDeletingArray = nil; - int i, j, theSyntaxCount = [theSyntaxArray count]; - - for (i = 0; i < theSyntaxCount; i++) { - theArrayName = [theSyntaxArray objectAtIndex:i]; - theArray = [theDict objectForKey:theArrayName]; - theArrayNameDeletingArray = [theArrayName substringToIndex:([theArrayName length] - 5)]; - int theArrayCount = [theArray count]; - for (j = 0; j < theArrayCount; j++) { - theBeginStr = [[theArray objectAtIndex:j] objectForKey:k_SCKey_beginString]; - theEndStr = [[theArray objectAtIndex:j] objectForKey:k_SCKey_endString]; - if (([theTmpBeginStr isEqualToString:theBeginStr]) && - (((theTmpEndStr == nil) && (theEndStr == nil)) || - ([theTmpEndStr isEqualToString:theEndStr]))) { - outCount++; - [theResultStr appendFormat:@"%i. %@ :(Begin string) > %@\n >>> multiple registered.\n\n", - outCount, theArrayNameDeletingArray, theBeginStr]; - } else if ([[[theArray objectAtIndex:j] objectForKey:k_SCKey_regularExpression] boolValue]) { - NS_DURING - (void)[OGRegularExpression regularExpressionWithString:theBeginStr]; - NS_HANDLER - // 例外処理 (OgreKit付属のRegularExpressionTestのコードを参考にしています) - outCount++; - [theResultStr appendFormat:@"%i. %@ :(Begin string) > %@\n >>> %@\n\n", - outCount, theArrayNameDeletingArray, theBeginStr, [localException reason]]; - NS_ENDHANDLER + NSString *theArrayNameDeletingArray = nil; + NSInteger theCapCount; + NSError *theError = nil; - if (theEndStr != nil) { - NS_DURING - (void)[OGRegularExpression regularExpressionWithString:theEndStr]; - NS_HANDLER - // 例外処理 (OgreKit付属のRegularExpressionTestのコードを参考にしています) - outCount++; - [theResultStr appendFormat:@"%i. %@ :(End string) > %@\n >>> %@\n\n", - outCount, theArrayNameDeletingArray, theEndStr, [localException reason]]; - NS_ENDHANDLER - } - } else if ([theArrayName isEqualToString:k_SCKey_outlineMenuArray]) { - NS_DURING - (void)[OGRegularExpression regularExpressionWithString:theBeginStr]; - NS_HANDLER - // 例外処理 (OgreKit付属のRegularExpressionTestのコードを参考にしています) - outCount++; - [theResultStr appendFormat:@"%i. %@ :(RE string) > %@\n >>> %@\n\n", - outCount, theArrayNameDeletingArray, theBeginStr, [localException reason]]; - NS_ENDHANDLER - } - theTmpBeginStr = theBeginStr; - theTmpEndStr = theEndStr; - } - } - if (outCount == 0) { - [theResultStr setString:NSLocalizedString(@"No Error found.",@"")]; - } else if (outCount == 1) { - [theResultStr insertString:NSLocalizedString(@"One Error was Found !\n\n",@"") atIndex:0]; - } else { - [theResultStr insertString: - [NSString stringWithFormat:NSLocalizedString(@"%i Errors were Found !\n\n",@""), outCount] - atIndex:0]; - } - } else { - [theResultStr setString:NSLocalizedString(@"An Error occuerd in Checking.\nNumber of selected object is 2 or more in '_styleController'.",@"")]; - } - [_syntaxElementCheckTextView setString:theResultStr]; - - return outCount; -} - - -// ------------------------------------------------------ -- (int)syntaxElementCheck -// 10.4+で、正規表現構文と重複のチェック実行 -// ------------------------------------------------------ -{ - NSArray *theSelectedArray = [_styleController selectedObjects]; - NSMutableString *theResultStr = [NSMutableString string]; - int outCount = 0; - - if ([theSelectedArray count] == 1) { - NSDictionary *theDict = [theSelectedArray objectAtIndex:0]; - NSArray *theSyntaxArray = [NSArray arrayWithObjects:k_SCKey_syntaxCheckArrays, nil]; - NSArray *theArray; - NSString *theBeginStr, *theEndStr, *theTmpBeginStr = nil, *theTmpEndStr = nil; - NSString *theArrayName = nil, *theArrayNameDeletingArray = nil; - int i, j, theSyntaxCount = [theSyntaxArray count]; - int theCapCount; - NSError *theError = NULL; - - for (i = 0; i < theSyntaxCount; i++) { - theArrayName = [theSyntaxArray objectAtIndex:i]; - theArray = [theDict objectForKey:theArrayName]; + for (NSString *theArrayName in theSyntaxArray) { + theArray = theDict[theArrayName]; theArrayNameDeletingArray = [theArrayName substringToIndex:([theArrayName length] - 5)]; - int theArrayCount = [theArray count]; - for (j = 0; j < theArrayCount; j++) { - theBeginStr = [[theArray objectAtIndex:j] objectForKey:k_SCKey_beginString]; - theEndStr = [[theArray objectAtIndex:j] objectForKey:k_SCKey_endString]; + for (NSDictionary *dict in theArray) { + theBeginStr = dict[k_SCKey_beginString]; + theEndStr = dict[k_SCKey_endString]; if (([theTmpBeginStr isEqualToString:theBeginStr]) && (((theTmpEndStr == nil) && (theEndStr == nil)) || ([theTmpEndStr isEqualToString:theEndStr]))) { outCount++; - [theResultStr appendFormat:@"%i. %@ :(Begin string) > %@\n >>> multiple registered.\n\n", - outCount, theArrayNameDeletingArray, theBeginStr]; + [theResultStr appendFormat:@"%li. %@ :(Begin string) > %@\n >>> multiple registered.\n\n", + (long)outCount, theArrayNameDeletingArray, theBeginStr]; - } else if ([[[theArray objectAtIndex:j] objectForKey:k_SCKey_regularExpression] boolValue]) { + } else if ([dict[k_SCKey_regularExpression] boolValue]) { - theCapCount = - [NSString captureCountForRegex:theBeginStr options:RKLNoOptions error:&theError]; + theCapCount = [theBeginStr captureCountWithOptions:RKLNoOptions error:&theError]; if (theCapCount == -1) { // エラーのとき outCount++; - [theResultStr appendFormat:@"%i. %@ :(Begin string) > %@\n >>> Error \"%@\" in column %@: %@<>%@\n\n", - outCount, theArrayNameDeletingArray, theBeginStr, - [[theError userInfo] objectForKey:RKLICURegexErrorNameErrorKey], - [[theError userInfo] objectForKey:RKLICURegexOffsetErrorKey], - [[theError userInfo] objectForKey:RKLICURegexPreContextErrorKey], - [[theError userInfo] objectForKey:RKLICURegexPostContextErrorKey]]; + [theResultStr appendFormat:@"%li. %@ :(Begin string) > %@\n >>> Error \"%@\" in column %@: %@<>%@\n\n", + (long)outCount, theArrayNameDeletingArray, theBeginStr, + [theError userInfo][RKLICURegexErrorNameErrorKey], + [theError userInfo][RKLICURegexOffsetErrorKey], + [theError userInfo][RKLICURegexPreContextErrorKey], + [theError userInfo][RKLICURegexPostContextErrorKey]]; } if (theEndStr != nil) { - theCapCount = - [NSString captureCountForRegex:theEndStr options:RKLNoOptions error:&theError]; + theCapCount = [theEndStr captureCountWithOptions:RKLNoOptions error:&theError]; if (theCapCount == -1) { // エラーのとき outCount++; - [theResultStr appendFormat:@"%i. %@ :(End string) > %@\n >>> Error \"%@\" in column %@: %@<>%@\n\n", - outCount, theArrayNameDeletingArray, theEndStr, - [[theError userInfo] objectForKey:RKLICURegexErrorNameErrorKey], - [[theError userInfo] objectForKey:RKLICURegexOffsetErrorKey], - [[theError userInfo] objectForKey:RKLICURegexPreContextErrorKey], - [[theError userInfo] objectForKey:RKLICURegexPostContextErrorKey]]; + [theResultStr appendFormat:@"%li. %@ :(End string) > %@\n >>> Error \"%@\" in column %@: %@<>%@\n\n", + (long)outCount, theArrayNameDeletingArray, theEndStr, + [theError userInfo][RKLICURegexErrorNameErrorKey], + [theError userInfo][RKLICURegexOffsetErrorKey], + [theError userInfo][RKLICURegexPreContextErrorKey], + [theError userInfo][RKLICURegexPostContextErrorKey]]; } } @@ -1165,8 +1048,8 @@ - (int)syntaxElementCheck NS_HANDLER // 例外処理 (OgreKit付属のRegularExpressionTestのコードを参考にしています) outCount++; - [theResultStr appendFormat:@"%i. %@ :(RE string) > %@\n >>> %@\n\n", - outCount, theArrayNameDeletingArray, theBeginStr, [localException reason]]; + [theResultStr appendFormat:@"%li. %@ :(RE string) > %@\n >>> %@\n\n", + (long)outCount, theArrayNameDeletingArray, theBeginStr, [localException reason]]; NS_ENDHANDLER } theTmpBeginStr = theBeginStr; diff --git a/CETabItemView.h b/CETabItemView.h index 48355b014d..e8c56aabdd 100644 --- a/CETabItemView.h +++ b/CETabItemView.h @@ -3,8 +3,9 @@ CETabItemView (for CotEditor) -Copyright (C) 2004-2007 nakamuxu. -http://www.aynimac.com/ + Copyright (C) 2004-2007 nakamuxu. + Copyright (C) 2014 CotEditor Project + http://coteditor.github.io ================================================= encoding="UTF-8" @@ -31,11 +32,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #import -#import "constants.h" @interface CETabItemView : NSView -{ -} @end diff --git a/CETabItemView.m b/CETabItemView.m index 8a3ca97207..ce0732cd7d 100644 --- a/CETabItemView.m +++ b/CETabItemView.m @@ -3,8 +3,9 @@ CETabItemView (for CotEditor) -Copyright (C) 2004-2007 nakamuxu. -http://www.aynimac.com/ + Copyright (C) 2004-2007 nakamuxu. + Copyright (C) 2014 CotEditor Project + http://coteditor.github.io ================================================= encoding="UTF-8" @@ -31,6 +32,7 @@ */ #import "CETabItemView.h" +#import "constants.h" @implementation CETabItemView @@ -43,7 +45,7 @@ @implementation CETabItemView //======================================================= // ------------------------------------------------------ -- (int)tag +- (NSInteger)tag // タグを返す // ------------------------------------------------------ { diff --git a/CETextSelection.h b/CETextSelection.h index d03e7e7c43..6ae152b5c8 100644 --- a/CETextSelection.h +++ b/CETextSelection.h @@ -3,8 +3,9 @@ CETextSelection (for CotEditor) -Copyright (C) 2004-2007 nakamuxu. -http://www.aynimac.com/ + Copyright (C) 2004-2007 nakamuxu. + Copyright (C) 2014 CotEditor Project + http://coteditor.github.io ================================================= encoding="UTF-8" @@ -32,6 +33,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #import + @class CEDocument; // AppleScript Enum @@ -58,26 +60,31 @@ typedef enum { CENFKD = 'cNkd', } CEUNFType; -@interface CETextSelection : NSObject -{ - CEDocument *_document; -} + +@interface CETextSelection : NSObject // Public method -- (id)initWithDocument:(CEDocument *)inDocument; -- (void)cleanUpTextStorage:(NSTextStorage *)inTextStorage; +- (instancetype)initWithDocument:(CEDocument *)document; +- (void)cleanUpTextStorage:(NSTextStorage *)textStorage; + +@end + + +@interface CETextSelection (ScriptingSupport) -// for AppleScript accessor +// AppleScript accessor - (NSTextStorage *)contents; -- (void)setContents:(id)inObject; +- (void)setContents:(id)contentsObject; - (NSArray *)range; -- (void)setRange:(NSArray *)inArray; - -// for AppleScript handler -- (void)handleShiftRight:(NSScriptCommand *)inCommand; -- (void)handleShiftLeft:(NSScriptCommand *)inCommand; -- (void)handleChangeCase:(NSScriptCommand *)inCommand; -- (void)handleChangeWidthRoman:(NSScriptCommand *)inCommand; -- (void)handleChangeKana:(NSScriptCommand *)inCommand; +- (void)setRange:(NSArray *)rangeArray; +- (NSArray *)lineRange; +- (void)setLineRange:(NSArray *)RangeArray; + +// AppleScript handler +- (void)handleShiftRight:(NSScriptCommand *)command; +- (void)handleShiftLeft:(NSScriptCommand *)command; +- (void)handleChangeCase:(NSScriptCommand *)command; +- (void)handleChangeWidthRoman:(NSScriptCommand *)command; +- (void)handleChangeKana:(NSScriptCommand *)command; @end diff --git a/CETextSelection.m b/CETextSelection.m index 28b41c9f89..6740add598 100644 --- a/CETextSelection.m +++ b/CETextSelection.m @@ -3,8 +3,9 @@ CETextSelection (for CotEditor) -Copyright (C) 2004-2007 nakamuxu. -http://www.aynimac.com/ + Copyright (C) 2004-2007 nakamuxu. + Copyright (C) 2014 CotEditor Project + http://coteditor.github.io ================================================= encoding="UTF-8" @@ -31,12 +32,21 @@ */ #import "CETextSelection.h" -#import "CEDocumentAppleScript.h" +#import "CEDocument+ScriptingSupport.h" + + +@interface CETextSelection () + +@property (nonatomic, retain) CEDocument *document; + +@end + +#pragma mark - @implementation CETextSelection -#pragma mark ===== Public method ===== +#pragma mark Public Methods //======================================================= // Public method @@ -44,13 +54,13 @@ @implementation CETextSelection //======================================================= // ------------------------------------------------------ -- (id)initWithDocument:(CEDocument *)inDocument +- (instancetype)initWithDocument:(CEDocument *)document // 初期化 // ------------------------------------------------------ { self = [super init]; if (self) { - _document = [inDocument retain]; + [self setDocument:document]; } return self; } @@ -61,22 +71,22 @@ - (void)dealloc // 後片付け // ------------------------------------------------------ { - [_document release]; + [[self document] release]; [super dealloc]; } // ------------------------------------------------------ -- (void)cleanUpTextStorage:(NSTextStorage *)inTextStorage +- (void)cleanUpTextStorage:(NSTextStorage *)textStorage // 生成した textStorage のデリゲートであることをやめる // ------------------------------------------------------ { - [inTextStorage setDelegate:nil]; + [textStorage setDelegate:nil]; } -#pragma mark === Delegate and Notification === +#pragma mark Delegate and Notifications //======================================================= // Delegate method (NSTextStorage) @@ -84,18 +94,26 @@ - (void)cleanUpTextStorage:(NSTextStorage *)inTextStorage //======================================================= // ------------------------------------------------------ -- (void)textStorageDidProcessEditing:(NSNotification *)inNotification +- (void)textStorageDidProcessEditing:(NSNotification *)aNotification // AppleScriptの返り値としてのtextStorageが更新された // ------------------------------------------------------ { - NSString *theNewString = [(NSTextStorage *)[inNotification object] string]; + NSString *newString = [(NSTextStorage *)[aNotification object] string]; - [[[_document editorView] textView] replaceSelectedStringTo:theNewString scroll:NO]; - [self cleanUpTextStorage:(NSTextStorage *)[inNotification object]]; + [[[[self document] editorView] textView] replaceSelectedStringTo:newString scroll:NO]; + [self cleanUpTextStorage:(NSTextStorage *)[aNotification object]]; } -#pragma mark ===== AppleScript accessor ===== +@end + + + +#pragma mark - + +@implementation CETextSelection (ScriptingSupport) + +#pragma mark AppleScript Accessors //======================================================= // AppleScript accessor @@ -107,26 +125,26 @@ - (NSTextStorage *)contents // 選択範囲内の文字列を返す(Unicode text型) // ------------------------------------------------------ { - NSString *theString = [[_document editorView] substringWithSelectionForSave]; - NSTextStorage *outStorage = [[[NSTextStorage alloc] initWithString:theString] autorelease]; + NSString *string = [[[self document] editorView] substringWithSelectionForSave]; + NSTextStorage *storage = [[[NSTextStorage alloc] initWithString:string] autorelease]; - [outStorage setDelegate:self]; + [storage setDelegate:self]; // 0.5秒後にデリゲートをやめる(放置するとクラッシュの原因になる) - [self performSelector:@selector(cleanUpTextStorage:) withObject:outStorage afterDelay:0.5]; + [self performSelector:@selector(cleanUpTextStorage:) withObject:storage afterDelay:0.5]; - return outStorage; + return storage; } // ------------------------------------------------------ -- (void)setContents:(id)inObject +- (void)setContents:(id)ContentsObject // 選択範囲に文字列をセット // ------------------------------------------------------ { - if ([inObject isKindOfClass:[NSTextStorage class]]) { - [[_document editorView] replaceTextViewSelectedStringTo:[inObject string] scroll:NO]; - } else if ([inObject isKindOfClass:[NSString class]]) { - [[_document editorView] replaceTextViewSelectedStringTo:inObject scroll:NO]; + if ([ContentsObject isKindOfClass:[NSTextStorage class]]) { + [[[self document] editorView] replaceTextViewSelectedStringTo:[ContentsObject string] scroll:NO]; + } else if ([ContentsObject isKindOfClass:[NSString class]]) { + [[[self document] editorView] replaceTextViewSelectedStringTo:ContentsObject scroll:NO]; } } @@ -136,24 +154,24 @@ - (NSArray *)range // 選択範囲の文字の位置と長さを返す(list型) // ------------------------------------------------------ { - NSRange theSelectedRange = [[_document editorView] selectedRange]; - NSArray *outArray = [NSArray arrayWithObjects:[NSNumber numberWithInt:theSelectedRange.location], - [NSNumber numberWithInt:theSelectedRange.length], nil]; + NSRange selectedRange = [[[self document] editorView] selectedRange]; + NSArray *rangeArray = @[@(selectedRange.location), + @(selectedRange.length)]; - return outArray; + return rangeArray; } // ------------------------------------------------------ -- (void)setRange:(NSArray *)inArray +- (void)setRange:(NSArray *)rangeArray // 選択範囲の文字の位置と長さをセット // ------------------------------------------------------ { - if ([inArray count] != 2) { return; } - int theLocation = [[inArray objectAtIndex:0] intValue]; - int theLength = [[inArray objectAtIndex:1] intValue]; + if ([rangeArray count] != 2) { return; } + NSInteger location = [rangeArray[0] integerValue]; + NSInteger length = [rangeArray[1] integerValue]; - [_document setSelectedCharacterRangeInTextViewWithLocation:theLocation withLength:theLength]; + [[self document] setSelectedCharacterRangeInTextViewWithLocation:location withLength:length]; } @@ -162,53 +180,53 @@ - (NSArray *)lineRange // 選択範囲の行の位置と長さを返す(list型) // ------------------------------------------------------ { - NSRange theSelectedRange = [[_document editorView] selectedRange]; - NSString *theString = [[_document editorView] stringForSave]; - unsigned int theLines = 0, theCurLine = 0, theIndex = 0, theLastLine = 0, theLength = [theString length]; - NSArray *outArray; - - if (theLength > 0) { - for (theIndex = 0, theLines = 0; theIndex < theLength; theLines++) { - if (theIndex <= theSelectedRange.location) { - theCurLine = theLines + 1; + NSRange selectedRange = [[[self document] editorView] selectedRange]; + NSString *string = [[[self document] editorView] stringForSave]; + NSUInteger lines = 0, currentLine = 0, index = 0, lastLine = 0, length = [string length]; + NSArray *rangeArray; + + if (length > 0) { + for (index = 0, lines = 0; index < length; lines++) { + if (index <= selectedRange.location) { + currentLine = lines + 1; } - if (theIndex < NSMaxRange(theSelectedRange)) { - theLastLine = theLines + 1; + if (index < NSMaxRange(selectedRange)) { + lastLine = lines + 1; } - theIndex = NSMaxRange([theString lineRangeForRange:NSMakeRange(theIndex, 0)]); + index = NSMaxRange([string lineRangeForRange:NSMakeRange(index, 0)]); } } - outArray = [NSArray arrayWithObjects:[NSNumber numberWithInt:theCurLine], - [NSNumber numberWithInt:(theLastLine - theCurLine + 1)], nil]; + rangeArray = @[@(currentLine), + @(lastLine - currentLine + 1)]; - return outArray; + return rangeArray; } // ------------------------------------------------------ -- (void)setLineRange:(NSArray *)inArray +- (void)setLineRange:(NSArray *)rangeArray // 選択範囲の行の位置と長さをセット // ------------------------------------------------------ { - int theLocation; - int theLength; - - if ([inArray isKindOfClass:[NSNumber class]]) { - theLocation = [(NSNumber *)inArray intValue]; - theLength = 1; - } else if([inArray count] == 2) { - theLocation = [[inArray objectAtIndex:0] intValue]; - theLength = [[inArray objectAtIndex:1] intValue]; + NSInteger location; + NSInteger length; + + if ([rangeArray isKindOfClass:[NSNumber class]]) { + location = [(NSNumber *)rangeArray integerValue]; + length = 1; + } else if([rangeArray count] == 2) { + location = [rangeArray[0] integerValue]; + length = [rangeArray[1] integerValue]; } else { return; } - [_document setSelectedLineRangeInTextViewWithLocation:theLocation withLength:theLength]; + [[self document] setSelectedLineRangeInTextViewWithLocation:location withLength:length]; } -#pragma mark ===== AppleScript handler ===== +#pragma mark AppleScript Handlers //======================================================= // AppleScript handler @@ -216,40 +234,40 @@ - (void)setLineRange:(NSArray *)inArray //======================================================= // ------------------------------------------------------ -- (void)handleShiftRight:(NSScriptCommand *)inCommand +- (void)handleShiftRight:(NSScriptCommand *)command // 選択範囲を右にシフト // ------------------------------------------------------ { - [[[_document editorView] textView] shiftRight:self]; + [[[[self document] editorView] textView] shiftRight:self]; } // ------------------------------------------------------ -- (void)handleShiftLeft:(NSScriptCommand *)inCommand +- (void)handleShiftLeft:(NSScriptCommand *)command // 選択範囲を左にシフト // ------------------------------------------------------ { - [[[_document editorView] textView] shiftLeft:self]; + [[[[self document] editorView] textView] shiftLeft:self]; } // ------------------------------------------------------ -- (void)handleChangeCase:(NSScriptCommand *)inCommand +- (void)handleChangeCase:(NSScriptCommand *)command // 文字列を大文字/小文字/キャピタライズにコンバートし、結果を返す // ------------------------------------------------------ { - NSDictionary *theArg = [inCommand evaluatedArguments]; - CECaseType theType = [[theArg valueForKey:@"caseType"] unsignedLongValue]; + NSDictionary *arguments = [command evaluatedArguments]; + CECaseType caseType = [[arguments valueForKey:@"caseType"] unsignedLongValue]; - switch (theType) { + switch (caseType) { case CELowerCase: - [[[_document editorView] textView] exchangeLowercase:self]; + [[[[self document] editorView] textView] exchangeLowercase:self]; break; case CEUpperCase: - [[[_document editorView] textView] exchangeUppercase:self]; + [[[[self document] editorView] textView] exchangeUppercase:self]; break; case CECapitalized: - [[[_document editorView] textView] exchangeCapitalized:self]; + [[[[self document] editorView] textView] exchangeCapitalized:self]; break; default: break; @@ -258,19 +276,19 @@ - (void)handleChangeCase:(NSScriptCommand *)inCommand // ------------------------------------------------------ -- (void)handleChangeWidthRoman:(NSScriptCommand *)inCommand +- (void)handleChangeWidthRoman:(NSScriptCommand *)command // 半角/全角Romanを切り替える // ------------------------------------------------------ { - NSDictionary *theArg = [inCommand evaluatedArguments]; - CEWidthType theType = [[theArg valueForKey:@"widthType"] unsignedLongValue]; + NSDictionary *arguments = [command evaluatedArguments]; + CEWidthType widthType = [[arguments valueForKey:@"widthType"] unsignedLongValue]; - switch (theType) { + switch (widthType) { case CEFullwidth: - [[[_document editorView] textView] exchangeFullwidthRoman:self]; + [[[[self document] editorView] textView] exchangeFullwidthRoman:self]; break; case CEHalfwidth: - [[[_document editorView] textView] exchangeHalfwidthRoman:self]; + [[[[self document] editorView] textView] exchangeHalfwidthRoman:self]; break; default: break; @@ -279,38 +297,38 @@ - (void)handleChangeWidthRoman:(NSScriptCommand *)inCommand // ------------------------------------------------------ -- (void)handleChangeKana:(NSScriptCommand *)inCommand +- (void)handleChangeKana:(NSScriptCommand *)command // ひらがな/カタカナを切り替える // ------------------------------------------------------ { - NSDictionary *theArg = [inCommand evaluatedArguments]; - CEChangeKanaType theType = [[theArg valueForKey:@"kanaType"] unsignedLongValue]; + NSDictionary *arguments = [command evaluatedArguments]; + CEChangeKanaType changeKanaType = [[arguments valueForKey:@"kanaType"] unsignedLongValue]; - if (theType == CEHiragana) { - [[[_document editorView] textView] exchangeHiragana:self]; - } else if (theType == CEKatakana) { - [[[_document editorView] textView] exchangeKatakana:self]; + if (changeKanaType == CEHiragana) { + [[[[self document] editorView] textView] exchangeHiragana:self]; + } else if (changeKanaType == CEKatakana) { + [[[[self document] editorView] textView] exchangeKatakana:self]; } } // ------------------------------------------------------ -- (void)handleUnicodeNomalization:(NSScriptCommand *)inCommand +- (void)handleUnicodeNomalization:(NSScriptCommand *)command // Unicode 正規化 // ------------------------------------------------------ { - NSDictionary *theArg = [inCommand evaluatedArguments]; - CEChangeKanaType theType = [[theArg valueForKey:@"unfType"] unsignedLongValue]; - int theTypeCode = 0; - - switch (theType) { - case CENFD: theTypeCode = 1; break; - case CENFKC: theTypeCode = 2; break; - case CENFKD: theTypeCode = 3; break; + NSDictionary *arguments = [command evaluatedArguments]; + CEUNFType UNFType = [arguments[@"unfType"] unsignedLongValue]; + NSInteger typeCode = 0; + + switch (UNFType) { + case CENFD: typeCode = 1; break; + case CENFKC: typeCode = 2; break; + case CENFKD: typeCode = 3; break; default: break; } - [[[_document editorView] textView] unicodeNormalization:[NSNumber numberWithInt:theTypeCode]]; + [[[[self document] editorView] textView] unicodeNormalization:@(typeCode)]; } diff --git a/CETextViewCore.h b/CETextViewCore.h index cd4ae18dc5..395af53ccd 100644 --- a/CETextViewCore.h +++ b/CETextViewCore.h @@ -3,8 +3,9 @@ CETextViewCore (for CotEditor) -Copyright (C) 2004-2007 nakamuxu. -http://www.aynimac.com/ + Copyright (C) 2004-2007 nakamuxu. + Copyright (C) 2014 CotEditor Project + http://coteditor.github.io ================================================= encoding="UTF-8" @@ -35,7 +36,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #import -#import "NSEventAdditions.h" +#import "NSEvent+CarbonModFlag.h" #import "constants.h" @class CEEditorView; @@ -51,7 +52,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. NSPoint _textContainerOriginPoint; NSRect _highlightLineAdditionalRect; - float _lineSpacing; + CGFloat _lineSpacing; BOOL _isReCompletion; BOOL _updateOutlineMenuItemSelection; BOOL _isSelfDrop; @@ -71,16 +72,16 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - (NSDictionary *)typingAttrs; - (void)setTypingAttrs:(NSDictionary *)inAttrs; - (void)setEffectTypingAttrs; -- (void)setBackgroundColorWithAlpha:(float)inAlpha; +- (void)setBackgroundColorWithAlpha:(CGFloat)inAlpha; - (void)replaceSelectedStringTo:(NSString *)inString scroll:(BOOL)inBoolScroll; - (void)replaceAllStringTo:(NSString *)inString; - (void)insertAfterSelection:(NSString *)inString; - (void)appendAllString:(NSString *)inString; -- (void)insertCustomTextWithPatternNum:(int)inPatternNum; +- (void)insertCustomTextWithPatternNum:(NSInteger)inPatternNum; - (void)resetFont:(id)sender; - (NSArray *)readablePasteboardTypes; - (NSArray *)pasteboardTypesForString; -- (unsigned int)dragOperationForDraggingInfo:(id )inDragInfo type:(NSString *)inType; +- (NSUInteger)dragOperationForDraggingInfo:(id )inDragInfo type:(NSString *)inType; - (BOOL)readSelectionFromPasteboard:(NSPasteboard *)inPboard type:(NSString *)inType; - (NSRange)selectionRangeForProposedRange:(NSRange)inProposedSelRange granularity:(NSSelectionGranularity)inGranularity; @@ -92,9 +93,9 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - (void)setIsReCompletion:(BOOL)inValue; - (BOOL)updateOutlineMenuItemSelection; - (void)setUpdateOutlineMenuItemSelection:(BOOL)inValue; -- (float)lineSpacing; -- (void)setLineSpacing:(float)inLineSpacing; -- (void)setNewLineSpacingAndUpdate:(float)inLineSpacing; +- (CGFloat)lineSpacing; +- (void)setLineSpacing:(CGFloat)inLineSpacing; +- (void)setNewLineSpacingAndUpdate:(CGFloat)inLineSpacing; - (void)doReplaceString:(NSString *)inString withRange:(NSRange)inRange withSelected:(NSRange)inSelection withActionName:(NSString *)inActionName; - (void)selectTextRangeValue:(NSValue *)inRangeValue; diff --git a/CETextViewCore.m b/CETextViewCore.m index 8a15085200..750adbeb1e 100644 --- a/CETextViewCore.m +++ b/CETextViewCore.m @@ -3,8 +3,9 @@ CETextViewCore (for CotEditor) -Copyright (C) 2004-2007 nakamuxu. -http://www.aynimac.com/ + Copyright (C) 2004-2007 nakamuxu. + Copyright (C) 2014 CotEditor Project + http://coteditor.github.io ================================================= encoding="UTF-8" @@ -75,7 +76,7 @@ @implementation CETextViewCore //======================================================= // ------------------------------------------------------ -- (id)initWithFrame:(NSRect)inFrame textContainer:(NSTextContainer *)inTextContainer +- (instancetype)initWithFrame:(NSRect)inFrame textContainer:(NSTextContainer *)inTextContainer // 初期化 // ------------------------------------------------------ { @@ -88,14 +89,16 @@ - (id)initWithFrame:(NSRect)inFrame textContainer:(NSTextContainer *)inTextConta // set the width of every tab by first checking the size of the tab in spaces in the current font and then remove all tabs that sets automatically and then set the default tab stop distance id theValues = [[NSUserDefaultsController sharedUserDefaultsController] values]; NSMutableString *theWidthStr = [[NSMutableString alloc] init]; // ===== alloc - unsigned int theNumOfSpaces = [[theValues valueForKey:k_key_tabWidth] intValue]; + NSUInteger theNumOfSpaces = [[theValues valueForKey:k_key_tabWidth] integerValue]; while (theNumOfSpaces--) { [theWidthStr appendString:@" "]; } NSString *theName = [theValues valueForKey:k_key_fontName]; - float theSize = [[theValues valueForKey:k_key_fontSize] floatValue]; + CGFloat theSize = (CGFloat)[[theValues valueForKey:k_key_fontSize] doubleValue]; NSFont *theFont = [NSFont fontWithName:theName size:theSize]; - float sizeOfTab = [theFont widthOfString:theWidthStr]; + CGFloat sizeOfTab = [theWidthStr sizeWithAttributes:@{NSFontAttributeName:theFont}].width; + + // [追記] widthOfString:メソッドのdeprecatedに従い、Smultronでのコードに書き改めた (2014.02) // "widthOfString:" について (2005.02.06) // Apple の Xcode ヘルプの widthOfString: の項には、下記のように書かれている。 // "This method is for backward compatibility only. In new code, use the Application Kit’s @@ -135,12 +138,9 @@ - (id)initWithFrame:(NSRect)inFrame textContainer:(NSTextContainer *)inTextConta [theParagraphStyle setDefaultTabInterval:sizeOfTab]; - theAttrs = [NSDictionary dictionaryWithObjectsAndKeys: - theParagraphStyle, NSParagraphStyleAttributeName, - theFont, NSFontAttributeName, - [NSUnarchiver unarchiveObjectWithData:[theValues valueForKey:k_key_textColor]], - NSForegroundColorAttributeName, - nil]; + theAttrs = @{NSParagraphStyleAttributeName: theParagraphStyle, + NSFontAttributeName: theFont, + NSForegroundColorAttributeName: [NSUnarchiver unarchiveObjectWithData:[theValues valueForKey:k_key_textColor]]}; [theParagraphStyle release]; // ===== release [self setTypingAttrs:theAttrs]; [self setEffectTypingAttrs]; @@ -162,7 +162,7 @@ - (id)initWithFrame:(NSRect)inFrame textContainer:(NSTextContainer *)inTextConta [self setHorizontallyResizable:YES]; [self setVerticallyResizable:YES]; [self setAcceptsGlyphInfo:YES]; - [self setLineSpacing:[[theValues valueForKey:k_key_lineSpacing] floatValue]]; + [self setLineSpacing:(CGFloat)[[theValues valueForKey:k_key_lineSpacing] doubleValue]]; [self setTextColor:[NSUnarchiver unarchiveObjectWithData:[theValues valueForKey:k_key_textColor]]]; theBackgroundColor = [NSUnarchiver unarchiveObjectWithData:[theValues valueForKey:k_key_backgroundColor]]; @@ -172,10 +172,10 @@ - (id)initWithFrame:(NSRect)inFrame textContainer:(NSTextContainer *)inTextConta if ([[theValues valueForKey:k_key_alphaOnlyTextView] boolValue]) { [self setBackgroundColor: [theBackgroundColor colorWithAlphaComponent: - [[theValues valueForKey:k_key_windowAlpha] floatValue]]]; + (CGFloat)[[theValues valueForKey:k_key_windowAlpha] doubleValue]]]; [self setHighlightLineColor: [theHighlightLineColor colorWithAlphaComponent: - [[theValues valueForKey:k_key_windowAlpha] floatValue]]]; + (CGFloat)[[theValues valueForKey:k_key_windowAlpha] doubleValue]]]; } else { [self setBackgroundColor:theBackgroundColor]; [self setHighlightLineColor:theHighlightLineColor]; @@ -183,13 +183,10 @@ - (id)initWithFrame:(NSRect)inFrame textContainer:(NSTextContainer *)inTextConta [self setInsertionPointColor: [NSUnarchiver unarchiveObjectWithData:[theValues valueForKey:k_key_insertionPointColor]]]; [self setSelectedTextAttributes: - [NSDictionary dictionaryWithObjectsAndKeys: - [NSUnarchiver unarchiveObjectWithData:[theValues valueForKey:k_key_selectionColor]], - NSBackgroundColorAttributeName, nil]]; + @{NSBackgroundColorAttributeName: [NSUnarchiver unarchiveObjectWithData:[theValues valueForKey:k_key_selectionColor]]}]; _insertionRect = NSZeroRect; - _textContainerOriginPoint = - NSMakePoint([[theValues valueForKey:k_key_textContainerInsetWidth] floatValue], - [[theValues valueForKey:k_key_textContainerInsetHeightTop] floatValue]); + _textContainerOriginPoint = NSMakePoint((CGFloat)[[theValues valueForKey:k_key_textContainerInsetWidth] doubleValue], + (CGFloat)[[theValues valueForKey:k_key_textContainerInsetHeightTop] doubleValue]); [self setIsReCompletion:NO]; [self setUpdateOutlineMenuItemSelection:YES]; [self setIsSelfDrop:NO]; @@ -220,7 +217,7 @@ - (BOOL)becomeFirstResponder // first responder になれるかを返す // ------------------------------------------------------ { - [[self delegate] setTextViewToEditorView:self]; + [(CESubSplitView *)[self delegate] setTextViewToEditorView:self]; return [super becomeFirstResponder]; } @@ -234,14 +231,14 @@ - (void)keyDown:(NSEvent *)inEvent NSString *theCharIgnoringMod = [inEvent charactersIgnoringModifiers]; // IM で日本語入力変換中でないときのみ追加テキストキーバインディングを実行 if ((![self hasMarkedText]) && (theCharIgnoringMod != nil)) { - unsigned int theModFlags = [inEvent modifierFlags]; + NSUInteger theModFlags = [inEvent modifierFlags]; NSString *theSelectorStr = [[CEKeyBindingManager sharedInstance] selectorStringWithKeyEquivalent:theCharIgnoringMod modifierFrags:theModFlags]; - int theLength = [theSelectorStr length]; + NSInteger theLength = [theSelectorStr length]; if ((theSelectorStr != nil) && (theLength > 0)) { if (([theSelectorStr hasPrefix:@"insertCustomText"]) && (theLength == 20)) { - int theNum = [[theSelectorStr substringFromIndex:17] intValue]; + NSInteger theNum = [[theSelectorStr substringFromIndex:17] integerValue]; [self insertCustomTextWithPatternNum:theNum]; } else { [self doCommandBySelector:NSSelectorFromString(theSelectorStr)]; @@ -262,7 +259,7 @@ - (void)insertText:(id)inString if (([[theValues valueForKey:k_key_swapYenAndBackSlashKey] boolValue]) && ([inString length] == 1)) { NSEvent *theEvent = [NSApp currentEvent]; - unsigned int theFlags = [NSEvent currentCarbonModifierFlags]; + NSUInteger theFlags = [NSEvent currentCarbonModifierFlags]; if (([theEvent type] == NSKeyDown) && (theFlags == 0)) { if ([inString isEqualToString:@"\\"]) { @@ -286,11 +283,11 @@ - (void)insertTab:(id)sender id theValues = [[NSUserDefaultsController sharedUserDefaultsController] values]; if ([[theValues valueForKey:k_key_autoExpandTab] boolValue]) { - int theTabWidth = [[theValues valueForKey:k_key_tabWidth] intValue]; + NSInteger theTabWidth = [[theValues valueForKey:k_key_tabWidth] integerValue]; NSRange theSelected = [self selectedRange]; NSRange theLineRange = [[self string] lineRangeForRange:theSelected]; - int theLocation = theSelected.location - theLineRange.location; - int theLength = theTabWidth - ((theLocation + theTabWidth) % theTabWidth); + NSInteger theLocation = theSelected.location - theLineRange.location; + NSInteger theLength = theTabWidth - ((theLocation + theTabWidth) % theTabWidth); NSMutableString *theSpaces = [NSMutableString string]; while (theLength--) { @@ -341,16 +338,16 @@ - (void)deleteBackward:(id)sender if (theSelected.length == 0) { id theValues = [[NSUserDefaultsController sharedUserDefaultsController] values]; if ([[theValues valueForKey:k_key_autoExpandTab] boolValue]) { - int theTabWidth = [[theValues valueForKey:k_key_tabWidth] intValue]; + NSInteger theTabWidth = [[theValues valueForKey:k_key_tabWidth] integerValue]; NSRange theLineRange = [[self string] lineRangeForRange:theSelected]; - int theLocation = theSelected.location - theLineRange.location; - int theLength = (theLocation + theTabWidth) % theTabWidth; - int theTargetWidth = (theLength == 0) ? theTabWidth : theLength; - if ((int)theSelected.location >= theTargetWidth) { + NSInteger theLocation = theSelected.location - theLineRange.location; + NSInteger theLength = (theLocation + theTabWidth) % theTabWidth; + NSInteger theTargetWidth = (theLength == 0) ? theTabWidth : theLength; + if ((NSInteger)theSelected.location >= theTargetWidth) { NSRange theTargetRange = NSMakeRange(theSelected.location - theTargetWidth, theTargetWidth); NSString *theTarget = [[self string] substringWithRange:theTargetRange]; BOOL theValueToDelete = NO; - int i; + NSUInteger i; for (i = 0; i < theTargetWidth; i++) { theValueToDelete = [[theTarget substringWithRange:NSMakeRange(i, 1)] isEqualToString:@" "]; if (!theValueToDelete) { @@ -369,7 +366,7 @@ - (void)deleteBackward:(id)sender // ------------------------------------------------------ - (void)insertCompletion:(NSString *)inWord forPartialWordRange:(NSRange)inCharRange - movement:(int)inMovement isFinal:(BOOL)inFlag + movement:(NSInteger)inMovement isFinal:(BOOL)inFlag // 補完リストの表示、選択候補の入力 // ------------------------------------------------------ { @@ -431,7 +428,7 @@ - (NSMenu *)menuForEvent:(NSEvent *)inEvent // 既に追加されているかどうかをチェックしている if (theSelectAllMenuItem && ([outMenu indexOfItemWithTarget:nil andAction:@selector(selectAll:)] == k_noMenuItem)) { - int thePasteIndex = [outMenu indexOfItemWithTarget:nil andAction:@selector(paste:)]; + NSInteger thePasteIndex = [outMenu indexOfItemWithTarget:nil andAction:@selector(paste:)]; if (thePasteIndex != k_noMenuItem) { [outMenu insertItem:theSelectAllMenuItem atIndex:(thePasteIndex + 1)]; } @@ -448,11 +445,11 @@ - (NSMenu *)menuForEvent:(NSEvent *)inEvent } if (theASSubMenu) { NSMenuItem *theDelItem = nil; - while (theDelItem = [outMenu itemWithTag:k_scriptMenuTag]) { + while ((theDelItem = [outMenu itemWithTag:k_scriptMenuTag])) { [outMenu removeItem:theDelItem]; } if ([[theValues valueForKey:k_key_inlineContextualScriptMenu] boolValue]) { - int i, theCount = [theASSubMenu numberOfItems]; + NSUInteger i, theCount = [theASSubMenu numberOfItems]; NSMenuItem *theAddItem = nil; for (i = 0; i < 2; i++) { // セパレータをふたつ追加 @@ -514,7 +511,7 @@ - (void)setFont:(NSFont *)inFont // 日本語フォント名を返してくることがあるため、CELayoutManager からは [textView font] を使わない) [(CELayoutManager *)[self layoutManager] setTextFont:inFont]; [super setFont:inFont]; - [theAttrs setObject:inFont forKey:NSFontAttributeName]; + theAttrs[NSFontAttributeName] = inFont; [self setTypingAttrs:theAttrs]; [self setEffectTypingAttrs]; } @@ -528,7 +525,7 @@ - (NSRange)rangeForUserCompletion NSString *theString = [self string]; NSRange theRange = [super rangeForUserCompletion]; NSCharacterSet *theCharSet = [(CESubSplitView *)[self delegate] completionsFirstLetterSet]; - int i, theBegin = theRange.location; + NSInteger i, theBegin = theRange.location; if (theCharSet == nil) { return theRange; } @@ -568,16 +565,15 @@ - (void)drawRect:(NSRect)inRect // ページガイド描画 if ([(CESubSplitView *)[self delegate] showPageGuide]) { - float theColumn = [[theValues valueForKey:k_key_pageGuideColumn] floatValue]; + CGFloat theColumn = (CGFloat)[[theValues valueForKey:k_key_pageGuideColumn] doubleValue]; NSImage *theLineImg = [NSImage imageNamed:@"pageGuide"]; if ((theColumn < k_pageGuideColumnMin) || (theColumn > k_pageGuideColumnMax) || (theLineImg == nil)) { return; } - float theLinePadding = [[self textContainer] lineFragmentPadding]; - float theInsetWidth = [[theValues valueForKey:k_key_textContainerInsetWidth] floatValue]; - NSString *theTmpStr = [NSString stringWithString:@"M"]; - theColumn *= [theTmpStr sizeWithAttributes: - [NSDictionary dictionaryWithObject:[self font] forKey:NSFontAttributeName]].width; + CGFloat theLinePadding = [[self textContainer] lineFragmentPadding]; + CGFloat theInsetWidth = (CGFloat)[[theValues valueForKey:k_key_textContainerInsetWidth] doubleValue]; + NSString *theTmpStr = @"M"; + theColumn *= [theTmpStr sizeWithAttributes:@{NSFontAttributeName:[self font]}].width; // (2ピクセル右に描画してるのは、調整) [theLineImg drawInRect: @@ -653,7 +649,7 @@ - (void)scrollRangeToVisible:(NSRange)inRange // 完全にスクロールさせる // (setTextContainerInset で上下に空白領域を挿入している関係で、ちゃんとスクロールしない場合があることへの対策) - unsigned int theLength = [[self string] length]; + NSUInteger theLength = [[self string] length]; NSRect theRect = NSZeroRect, theConvertedRect; if (theLength == inRange.location) { @@ -675,9 +671,9 @@ - (void)scrollRangeToVisible:(NSRange)inRange if (NSEqualRects(theRect, NSZeroRect)) { return; } theConvertedRect = [self convertRect:theRect toView:[[self enclosingScrollView] superview]]; //subsplitview - if ((theConvertedRect.origin.y >= 0) && - (theConvertedRect.origin.y < - [[theValues valueForKey:k_key_textContainerInsetHeightBottom] floatValue])) { + if ((theConvertedRect.origin.y >= 0) && + (theConvertedRect.origin.y < (CGFloat)[[theValues valueForKey:k_key_textContainerInsetHeightBottom] doubleValue]) + ) { [self scrollPoint:NSMakePoint(NSMinX(theRect), NSMaxY(theRect))]; } } @@ -751,7 +747,7 @@ - (void)setEffectTypingAttrs // ------------------------------------------------------ -- (void)setBackgroundColorWithAlpha:(float)inAlpha +- (void)setBackgroundColorWithAlpha:(CGFloat)inAlpha // 背景色をセット // ------------------------------------------------------ { @@ -822,7 +818,7 @@ - (void)appendAllString:(NSString *)inString // ------------------------------------------------------ -- (void)insertCustomTextWithPatternNum:(int)inPatternNum +- (void)insertCustomTextWithPatternNum:(NSInteger)inPatternNum // カスタムキーバインドで文字列入力 // ------------------------------------------------------ { @@ -830,8 +826,8 @@ - (void)insertCustomTextWithPatternNum:(int)inPatternNum id theValues = [[NSUserDefaultsController sharedUserDefaultsController] values]; NSArray *theArray = [theValues valueForKey:k_key_insertCustomTextArray]; - if (inPatternNum < (int)[theArray count]) { - NSString *theString = [theArray objectAtIndex:inPatternNum]; + if (inPatternNum < (NSInteger)[theArray count]) { + NSString *theString = theArray[inPatternNum]; NSRange theSelected = [self selectedRange]; NSRange theNewRange = NSMakeRange(theSelected.location + [theString length], 0); @@ -848,7 +844,7 @@ - (void)resetFont:(id)sender { id theValues = [[NSUserDefaultsController sharedUserDefaultsController] values]; NSString *theName = [theValues valueForKey:k_key_fontName]; - float theSize = [[theValues valueForKey:k_key_fontSize] floatValue]; + CGFloat theSize = (CGFloat)[[theValues valueForKey:k_key_fontSize] doubleValue]; NSFont *theFont = [NSFont fontWithName:theName size:theSize]; [self setFont:theFont]; @@ -874,8 +870,8 @@ - (NSArray *)pasteboardTypesForString // 行末コード置換のためのPasteboardタイプ配列を返す // ------------------------------------------------------ { - NSArray *outArray = [NSArray arrayWithObjects:NSStringPboardType, - [NSString stringWithString:@"public.utf8-plain-text"], nil]; + NSArray *outArray = @[NSStringPboardType, + @"public.utf8-plain-text"]; return outArray; } @@ -894,7 +890,7 @@ - (void)dragImage:(NSImage *)inImage at:(NSPoint)inImageLoc offset:(NSSize)inMou // ------------------------------------------------------ -- (unsigned int)dragOperationForDraggingInfo:(id )inDragInfo type:(NSString *)inType +- (NSUInteger)dragOperationForDraggingInfo:(id )inDragInfo type:(NSString *)inType // 領域内でオブジェクトがドラッグされている // ------------------------------------------------------ { @@ -903,21 +899,20 @@ - (unsigned int)dragOperationForDraggingInfo:(id )inDragInfo typ NSArray *theFileDropArray = [theValues valueForKey:k_key_fileDropArray]; NSColor *theInsertionPointColor = [NSUnarchiver unarchiveObjectWithData:[theValues valueForKey:k_key_insertionPointColor]]; - int i, theCount = [theFileDropArray count]; - for (i = 0; i < theCount; i++) { + for (id item in theFileDropArray) { NSArray *theArray = [[inDragInfo draggingPasteboard] propertyListForType:NSFilenamesPboardType]; NSArray *theExtensions = - [[[theFileDropArray objectAtIndex:i] + [[item valueForKey:k_key_fileDropExtensions] componentsSeparatedByString:@", "]; if ([self draggedItemsArray:theArray containsExtensionInExtensions:theExtensions]) { NSString *theString = [self string]; - unsigned int theLength = [theString length]; + NSUInteger theLength = [theString length]; if (theLength > 0) { // 挿入ポイントを自前で描画する - float thePartialFraction; + CGFloat thePartialFraction; NSLayoutManager *theLayoutManager = [self layoutManager]; - unsigned theGlyphIndex = [theLayoutManager - glyphIndexForPoint:[self convertPoint:[inDragInfo draggingLocation] fromView: nil] + NSUInteger theGlyphIndex = [theLayoutManager + glyphIndexForPoint:[self convertPoint:[inDragInfo draggingLocation] fromView: nil] inTextContainer:[self textContainer] fractionOfDistanceThroughGlyph:&thePartialFraction]; NSPoint theGlypthIndexPoint; @@ -1049,20 +1044,18 @@ - (BOOL)readSelectionFromPasteboard:(NSPasteboard *)inPboard type:(NSString *)in NSArray *theFileDropArray = [theValues valueForKey:k_key_fileDropArray]; NSArray *theFiles = [inPboard propertyListForType:NSFilenamesPboardType]; NSString *theDocPath = [[[[self window] windowController] document] fileName]; - NSString *theAbsolutePath, *theFileName, *theFileNoSuffix, *theDirName; + NSString *theFileName, *theFileNoSuffix, *theDirName; NSString *thePathExtension = nil, *thePathExtensionLower = nil, *thePathExtensionUpper = nil; NSMutableString *theRelativePath = [NSMutableString string]; NSMutableString *theNewStr = [NSMutableString string]; - int i, theXtsnCount; - int theFilesCount = (int)[theFiles count]; - int theFileArrayCount = (int)[theFileDropArray count]; + NSInteger i, theXtsnCount; + NSInteger theFileArrayCount = (NSInteger)[theFileDropArray count]; - for (i = 0; i < theFilesCount; i++) { + for (NSString *theAbsolutePath in theFiles) { theSelected = [self selectedRange]; - theAbsolutePath = [theFiles objectAtIndex:i]; for (theXtsnCount = 0; theXtsnCount < theFileArrayCount; theXtsnCount++) { NSArray *theExtensions = - [[[theFileDropArray objectAtIndex:theXtsnCount] + [[theFileDropArray[theXtsnCount] valueForKey:k_key_fileDropExtensions] componentsSeparatedByString:@", "]; thePathExtension = [theAbsolutePath pathExtension]; thePathExtensionLower = [thePathExtension lowercaseString]; @@ -1071,7 +1064,7 @@ - (BOOL)readSelectionFromPasteboard:(NSPasteboard *)inPboard type:(NSString *)in if (([theExtensions containsObject:thePathExtensionLower]) || ([theExtensions containsObject:thePathExtensionUpper])) { - [theNewStr setString:[[theFileDropArray objectAtIndex:theXtsnCount] + [theNewStr setString:[theFileDropArray[theXtsnCount] valueForKey:k_key_fileDropFormatString]]; } else { continue; @@ -1082,13 +1075,13 @@ - (BOOL)readSelectionFromPasteboard:(NSPasteboard *)inPboard type:(NSString *)in NSArray *theDocPathArray = [theDocPath pathComponents]; NSArray *thePathArray = [theAbsolutePath pathComponents]; NSMutableString *theTmpStr = [NSMutableString string]; - int j, theSame = 0, theCount = 0; - int theDocArrayCount = (int)[theDocPathArray count]; - int thePathArrayCount = (int)[thePathArray count]; + NSInteger j, theSame = 0, theCount = 0; + NSInteger theDocArrayCount = (NSInteger)[theDocPathArray count]; + NSInteger thePathArrayCount = (NSInteger)[thePathArray count]; for (j = 0; j < theDocArrayCount; j++) { - if (![[theDocPathArray objectAtIndex:j] isEqualToString: - [thePathArray objectAtIndex:j]]) { + if (![theDocPathArray[j] isEqualToString: + thePathArray[j]]) { theSame = j; theCount = [theDocPathArray count] - theSame - 1; break; @@ -1101,7 +1094,7 @@ - (BOOL)readSelectionFromPasteboard:(NSPasteboard *)inPboard type:(NSString *)in if ([theTmpStr length] > 0) { [theTmpStr appendString:@"/"]; } - [theTmpStr appendString:[thePathArray objectAtIndex:j]]; + [theTmpStr appendString:thePathArray[j]]; } [theRelativePath setString:[theTmpStr stringByStandardizingPath]]; } else { @@ -1130,10 +1123,10 @@ - (BOOL)readSelectionFromPasteboard:(NSPasteboard *)inPboard type:(NSString *)in if (theImageRep != nil) { // NSImage の size では dpi をも考慮されたサイズが返ってきてしまうので NSImageRep を使う (void)[theNewStr replaceOccurrencesOfString:@"<<>>" - withString:[NSString stringWithFormat:@"%i", [theImageRep pixelsWide]] + withString:[NSString stringWithFormat:@"%li", (long)[theImageRep pixelsWide]] options:0 range:NSMakeRange(0, [theNewStr length])]; (void)[theNewStr replaceOccurrencesOfString:@"<<>>" - withString:[NSString stringWithFormat:@"%i", [theImageRep pixelsHigh]] + withString:[NSString stringWithFormat:@"%li", (long)[theImageRep pixelsHigh]] options:0 range:NSMakeRange(0, [theNewStr length])]; } // (ファイルをドロップしたときは、挿入文字列全体を選択状態にする) @@ -1171,14 +1164,14 @@ - (NSRange)selectionRangeForProposedRange:(NSRange)inProposedSelRange return [super selectionRangeForProposedRange:inProposedSelRange granularity:inGranularity]; } - int location = [super selectionRangeForProposedRange:inProposedSelRange granularity:NSSelectByCharacter].location; - int originalLocation = location; + NSInteger location = [super selectionRangeForProposedRange:inProposedSelRange granularity:NSSelectByCharacter].location; + NSInteger originalLocation = location; NSString *completeString = [self string]; unichar characterToCheck = [completeString characterAtIndex:location]; - unsigned short skipMatchingBrace = 0; - int lengthOfString = [completeString length]; - if (lengthOfString == (int)inProposedSelRange.location) { // To avoid crash if a double-click occurs after any text + NSUInteger skipMatchingBrace = 0; + NSInteger lengthOfString = [completeString length]; + if (lengthOfString == (NSInteger)inProposedSelRange.location) { // To avoid crash if a double-click occurs after any text return [super selectionRangeForProposedRange:inProposedSelRange granularity:inGranularity]; } @@ -1388,7 +1381,7 @@ - (void)setUpdateOutlineMenuItemSelection:(BOOL)inValue // ------------------------------------------------------ -- (float)lineSpacing +- (CGFloat)lineSpacing // 行間値を返す // ------------------------------------------------------ { @@ -1397,7 +1390,7 @@ - (float)lineSpacing // ------------------------------------------------------ -- (void)setLineSpacing:(float)inLineSpacing +- (void)setLineSpacing:(CGFloat)inLineSpacing // 行間値をセット // ------------------------------------------------------ { @@ -1406,7 +1399,7 @@ - (void)setLineSpacing:(float)inLineSpacing // ------------------------------------------------------ -- (void)setNewLineSpacingAndUpdate:(float)inLineSpacing +- (void)setNewLineSpacingAndUpdate:(CGFloat)inLineSpacing // 行間値をセットし、テキストと行番号を再描画 // ------------------------------------------------------ { @@ -1487,7 +1480,7 @@ - (BOOL)validateMenuItem:(NSMenuItem *)inMenuItem // ------------------------------------------------------ { NSRange theSelected = [self selectedRange]; - unsigned int theLength = theSelected.length; + NSUInteger theLength = theSelected.length; if (([inMenuItem action] == @selector(exchangeLowercase:)) || ([inMenuItem action] == @selector(exchangeUppercase:)) || @@ -1505,7 +1498,7 @@ - (BOOL)validateMenuItem:(NSMenuItem *)inMenuItem // (カラーコード編集メニューは常に有効) } else if ([inMenuItem action] == @selector(setLineSpacingFromMenu:)) { - [inMenuItem setState:(([self lineSpacing] == [[inMenuItem title] floatValue]) ? + [inMenuItem setState:(([self lineSpacing] == (CGFloat)[[inMenuItem title] doubleValue]) ? NSOnState : NSOffState)]; } @@ -1537,9 +1530,9 @@ - (IBAction)shiftRight:(id)sender } // シフトするために挿入する文字列と長さを得る NSMutableString *theShiftStr = [NSMutableString string]; - unsigned int theShiftLength = 0; + NSUInteger theShiftLength = 0; if ([[theValues valueForKey:k_key_autoExpandTab] boolValue]) { - unsigned int theTabWidth = [[theValues valueForKey:k_key_tabWidth] intValue]; + NSUInteger theTabWidth = [[theValues valueForKey:k_key_tabWidth] integerValue]; theShiftLength = theTabWidth; while (theTabWidth--) { [theShiftStr appendString:@" "]; @@ -1554,11 +1547,11 @@ - (IBAction)shiftRight:(id)sender NSMutableString *theNewLine = [NSMutableString stringWithString:[[self string] substringWithRange:theLineRange]]; NSString *theNewStr = [NSString stringWithFormat:@"%@%@", @"\n", theShiftStr]; - unsigned int theLines = [theNewLine replaceOccurrencesOfString:@"\n" + NSUInteger theLines = [theNewLine replaceOccurrencesOfString:@"\n" withString:theNewStr options:0 range:NSMakeRange(0, [theNewLine length])]; [theNewLine insertString:theShiftStr atIndex:0]; // 置換後の選択位置の調整 - unsigned int theNewLocation; + NSUInteger theNewLocation; if ((theLineRange.location == theSelected.location) && (theSelected.length > 0) && ([[[self string] substringWithRange:theSelected] hasSuffix:@"\n"])) { @@ -1594,7 +1587,7 @@ - (IBAction)shiftLeft:(id)sender theLineRange.length--; // 末尾の改行分を減ずる } // シフトするために削除するスペースの長さを得る - int theShiftLength = [[theValues valueForKey:k_key_tabWidth] intValue]; + NSInteger theShiftLength = [[theValues valueForKey:k_key_tabWidth] integerValue]; if (theShiftLength < 1) { return; } // 置換する行を生成する @@ -1604,19 +1597,19 @@ - (IBAction)shiftLeft:(id)sender NSMutableString *theTmpLine = [NSMutableString string]; NSString *theStr; BOOL theSpaceDeleted; - unsigned int theNumOfDeleted = 0, theTotalDeleted = 0; - int theNewLocation = theSelected.location, theNewLength = theSelected.length; - int i, j, theCount = (int)[theLines count]; + NSUInteger theNumOfDeleted = 0, theTotalDeleted = 0; + NSInteger theNewLocation = theSelected.location, theNewLength = theSelected.length; + NSInteger i, j, theCount = (NSInteger)[theLines count]; // 選択区域を含む行をスキャンし、冒頭のスペース/タブを削除 for (i = 0; i < theCount; i++) { - [theTmpLine setString:[theLines objectAtIndex:i]]; + [theTmpLine setString:theLines[i]]; theSpaceDeleted = NO; for (j = 0; j < theShiftLength; j++) { if ([theTmpLine length] == 0) { break; } - theStr = [[theLines objectAtIndex:i] substringWithRange:NSMakeRange(j, 1)]; + theStr = [theLines[i] substringWithRange:NSMakeRange(j, 1)]; if ([theStr isEqualToString:@"\t"]) { if (!theSpaceDeleted) { [theTmpLine deleteCharactersInRange:NSMakeRange(0, 1)]; @@ -1634,19 +1627,19 @@ - (IBAction)shiftLeft:(id)sender // 処理後の選択区域用の値を算出 if (i == 0) { theNewLocation -= theNumOfDeleted; - if (theNewLocation < (int)theLineRange.location) { + if (theNewLocation < (NSInteger)theLineRange.location) { theNewLength -= (theLineRange.location - theNewLocation); theNewLocation = theLineRange.location; } } else { theNewLength -= theNumOfDeleted; - if (theNewLength < (int)theLineRange.location - theNewLocation + (int)[theNewLine length]) { + if (theNewLength < (NSInteger)theLineRange.location - theNewLocation + (NSInteger)[theNewLine length]) { theNewLength = theLineRange.location - theNewLocation + [theNewLine length]; } } // 冒頭のスペース/タブを削除した行を合成 [theNewLine appendString:theTmpLine]; - if (i != ((int)[theLines count] - 1)) { + if (i != ((NSInteger)[theLines count] - 1)) { [theNewLine appendString:@"\n"]; } theTotalDeleted += theNumOfDeleted; @@ -1843,12 +1836,12 @@ - (IBAction)unicodeNormalization:(id)sender // ------------------------------------------------------ { NSRange theSelected = [self selectedRange]; - int theSwitchType; + NSInteger theSwitchType; if ([sender isKindOfClass:[NSMenuItem class]]) { theSwitchType = [sender tag]; } else if ([sender isKindOfClass:[NSNumber class]]) { - theSwitchType = [sender intValue]; + theSwitchType = [sender integerValue]; } else { return; } @@ -1947,7 +1940,7 @@ - (IBAction)setLineSpacingFromMenu:(id)sender // 行間設定を変更 // ------------------------------------------------------ { - [self setNewLineSpacingAndUpdate:[[sender title] floatValue]]; + [self setNewLineSpacingAndUpdate:(CGFloat)[[sender title] doubleValue]]; } @@ -2006,9 +1999,9 @@ - (NSString *)halfToFullwidthRomanStringFrom:(NSString *)inString // ------------------------------------------------------ { NSMutableString *outString = [NSMutableString string]; - NSCharacterSet *theLatinCharSet = [NSCharacterSet characterSetWithRange:NSMakeRange((unsigned int)'!', 94)]; + NSCharacterSet *theLatinCharSet = [NSCharacterSet characterSetWithRange:NSMakeRange((NSUInteger)'!', 94)]; unichar theChar; - int i, theCount = (int)[inString length]; + NSUInteger i, theCount = [inString length]; for (i = 0; i < theCount; i++) { theChar = [inString characterAtIndex:i]; @@ -2033,7 +2026,7 @@ - (NSString *)fullToHalfwidthRomanStringFrom:(NSString *)inString NSMutableString *outString = [NSMutableString string]; NSCharacterSet *theFullwidthCharSet = [NSCharacterSet characterSetWithRange:NSMakeRange(65281, 94)]; unichar theChar; - int i, theCount = (int)[inString length]; + NSUInteger i, theCount = [inString length]; for (i = 0; i < theCount; i++) { theChar = [inString characterAtIndex:i]; @@ -2055,7 +2048,7 @@ - (NSString *)hiraganaToKatakanaStringFrom:(NSString *)inString NSMutableString *outString = [NSMutableString string]; NSCharacterSet *theHiraganaCharSet = [NSCharacterSet characterSetWithRange:NSMakeRange(12353, 86)]; unichar theChar; - int i, theCount = (int)[inString length]; + NSUInteger i, theCount = [inString length]; for (i = 0; i < theCount; i++) { theChar = [inString characterAtIndex:i]; @@ -2077,7 +2070,7 @@ - (NSString *)katakanaToHiraganaStringFrom:(NSString *)inString NSMutableString *outString = [NSMutableString string]; NSCharacterSet *theKatakanaCharSet = [NSCharacterSet characterSetWithRange:NSMakeRange(12449, 86)]; unichar theChar; - int i, theCount = (int)[inString length]; + NSUInteger i, theCount = [inString length]; for (i = 0; i < theCount; i++) { theChar = [inString characterAtIndex:i]; @@ -2099,11 +2092,10 @@ - (BOOL)draggedItemsArray:(NSArray *)inArray containsExtensionInExtensions:(NSAr if ([inArray count] > 0) { NSEnumerator *theEnumerator = [inExtensions objectEnumerator]; NSString *theXtsn; - int i, theCount = (int)[inArray count]; while (theXtsn = [theEnumerator nextObject]) { - for (i = 0; i < theCount; i++) { - if ([[[inArray objectAtIndex:i] pathExtension] isEqualToString:theXtsn]) { + for (id item in inArray) { + if ([[item pathExtension] isEqualToString:theXtsn]) { return YES; } } diff --git a/CEToolbarController.h b/CEToolbarController.h index 2cb70d100b..dbb943920b 100644 --- a/CEToolbarController.h +++ b/CEToolbarController.h @@ -3,8 +3,9 @@ CEToolbarController (for CotEditor) -Copyright (C) 2004-2007 nakamuxu. -http://www.aynimac.com/ + Copyright (C) 2004-2007 nakamuxu. + Copyright (C) 2014 CotEditor Project + http://coteditor.github.io ================================================= encoding="UTF-8" @@ -36,7 +37,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. @class CEDocument; -@interface CEToolbarController : NSObject +@interface CEToolbarController : NSObject { IBOutlet id _mainWindow; IBOutlet id _lineEndingPopupButton; @@ -51,8 +52,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - (void)setupToolbar; - (void)updateToggleItem:(NSString *)inIdentifer setOn:(BOOL)inBool; - (void)buildEncodingPopupButton; -- (void)setSelectEncoding:(int)inEncoding; -- (void)setSelectEndingItemIndex:(int)inIndex; +- (void)setSelectEncoding:(NSInteger)inEncoding; +- (void)setSelectEndingItemIndex:(NSInteger)inIndex; - (void)buildSyntaxPopupButton; - (NSString *)selectedTitleOfSyntaxItem; - (void)setSelectSyntaxItemWithTitle:(NSString *)inTitle; diff --git a/CEToolbarController.m b/CEToolbarController.m index 2f0dc98df3..d1b04adbd2 100644 --- a/CEToolbarController.m +++ b/CEToolbarController.m @@ -3,8 +3,9 @@ CEToolbarController (for CotEditor) -Copyright (C) 2004-2007 nakamuxu. -http://www.aynimac.com/ + Copyright (C) 2004-2007 nakamuxu. + Copyright (C) 2014 CotEditor Project + http://coteditor.github.io ================================================= encoding="UTF-8" @@ -117,7 +118,7 @@ - (void)buildEncodingPopupButton // ------------------------------------------------------ -- (void)setSelectEncoding:(int)inEncoding +- (void)setSelectEncoding:(NSInteger)inEncoding // エンコーディングポップアップの選択項目を設定 // ------------------------------------------------------ { @@ -134,11 +135,11 @@ - (void)setSelectEncoding:(int)inEncoding // ------------------------------------------------------ -- (void)setSelectEndingItemIndex:(int)inIndex +- (void)setSelectEndingItemIndex:(NSInteger)inIndex // 行末コードポップアップの選択項目を設定 // ------------------------------------------------------ { - int theMax = [[_lineEndingPopupButton itemArray] count]; + NSInteger theMax = [[_lineEndingPopupButton itemArray] count]; if ((inIndex < 0) || (inIndex >= theMax)) { return; } [_lineEndingPopupButton selectItemAtIndex:inIndex]; @@ -217,10 +218,10 @@ - (NSToolbarItem *)toolbar:(NSToolbar *)inToolbar NSToolbarItem *outToolbarItem = [[[NSToolbarItem alloc] initWithItemIdentifier:inItemIdentifier] autorelease]; - // GetInfo (target = FirstResponder) + // Get Info (target = FirstResponder) if ([inItemIdentifier isEqualToString:k_getInfoItemID]) { - [outToolbarItem setLabel:NSLocalizedString(@"GetInfo",@"")]; - [outToolbarItem setPaletteLabel:NSLocalizedString(@"GetInfo",@"")]; + [outToolbarItem setLabel:NSLocalizedString(@"Get Info",@"")]; + [outToolbarItem setPaletteLabel:NSLocalizedString(@"Get Info",@"")]; [outToolbarItem setToolTip:NSLocalizedString(@"Show document information",@"")]; [outToolbarItem setImage:[NSImage imageNamed:@"getInfo"]]; [outToolbarItem setAction:@selector(getInfo:)]; @@ -233,47 +234,6 @@ - (NSToolbarItem *)toolbar:(NSToolbar *)inToolbar [outToolbarItem setImage:[NSImage imageNamed:@"IncompatibleChar"]]; [outToolbarItem setAction:@selector(toggleIncompatibleCharList:)]; - // Preferences - } else if ([inItemIdentifier isEqualToString:k_preferencesItemID]) { - [outToolbarItem setLabel:NSLocalizedString(@"Preferences",@"")]; - [outToolbarItem setPaletteLabel:NSLocalizedString(@"Preferences",@"")]; - [outToolbarItem setToolTip:NSLocalizedString(@"Open Preferences panel",@"")]; - [outToolbarItem setImage:[NSImage imageNamed:@"Preferences"]]; - [outToolbarItem setTarget:[NSApp delegate]]; // = CEAppController - [outToolbarItem setAction:@selector(openPrefWindow:)]; - - // Save (target = FirstResponder) - } else if ([inItemIdentifier isEqualToString:k_saveItemID]) { - [outToolbarItem setLabel:NSLocalizedString(@"Save",@"")]; - [outToolbarItem setPaletteLabel:NSLocalizedString(@"Save",@"")]; - [outToolbarItem setToolTip:NSLocalizedString(@"Save document",@"")]; - [outToolbarItem setImage:[NSImage imageNamed:@"Save"]]; - [outToolbarItem setAction:@selector(saveDocument:)]; - - // SaveAs (target = FirstResponder) - } else if ([inItemIdentifier isEqualToString:k_saveAsItemID]) { - [outToolbarItem setLabel:NSLocalizedString(@"SaveAs",@"")]; - [outToolbarItem setPaletteLabel:NSLocalizedString(@"SaveAs",@"")]; - [outToolbarItem setToolTip:NSLocalizedString(@"Save document as other name",@"")]; - [outToolbarItem setImage:[NSImage imageNamed:@"SaveAs"]]; - [outToolbarItem setAction:@selector(saveDocumentAs:)]; - - // Page setup (target = FirstResponder) - } else if ([inItemIdentifier isEqualToString:k_pageSetupItemID]) { - [outToolbarItem setLabel:NSLocalizedString(@"Page Setup",@"")]; - [outToolbarItem setPaletteLabel:NSLocalizedString(@"Page Setup",@"")]; - [outToolbarItem setToolTip:NSLocalizedString(@"Print page setup",@"")]; - [outToolbarItem setImage:[NSImage imageNamed:@"PageSetup"]]; - [outToolbarItem setAction:@selector(runPageLayout:)]; - - // Open TransparencyPanel (target = FirstResponder(CEDocumentController)) - } else if ([inItemIdentifier isEqualToString:k_openTransparencyPanelItemID]) { - [outToolbarItem setLabel:NSLocalizedString(@"Trans.Panel",@"")]; - [outToolbarItem setPaletteLabel:NSLocalizedString(@"Transparency Panel",@"")]; - [outToolbarItem setToolTip:NSLocalizedString(@"Open window Transparency Panel",@"")]; - [outToolbarItem setImage:[NSImage imageNamed:@"TransparencyPanel"]]; - [outToolbarItem setAction:@selector(openTransparencyPanel:)]; - // Bigger Font } else if ([inItemIdentifier isEqualToString:k_biggerFontItemID]) { [outToolbarItem setLabel:NSLocalizedString(@"Bigger",@"")]; @@ -413,16 +373,16 @@ - (NSToolbarItem *)toolbar:(NSToolbar *)inToolbar // Edit HexColorCode as Fore (target = FirstResponder) } else if ([inItemIdentifier isEqualToString:k_editHexAsForeItemID]) { [outToolbarItem setLabel:NSLocalizedString(@"Edit as Fore",@"")]; - [outToolbarItem setPaletteLabel:NSLocalizedString(@"Edit HexColorCode as Fore",@"")]; - [outToolbarItem setToolTip:NSLocalizedString(@"Open HexColorCode Editor to Edit as ForeColor",@"")]; + [outToolbarItem setPaletteLabel:NSLocalizedString(@"Edit Color Code as Fore",@"")]; + [outToolbarItem setToolTip:NSLocalizedString(@"Open Color Code Editor to Edit as ForeColor",@"")]; [outToolbarItem setImage:[NSImage imageNamed:@"EditHexAsFore"]]; [outToolbarItem setAction:@selector(editHexColorCodeAsForeColor:)]; // Edit HexColorCode as BG (target = FirstResponder) } else if ([inItemIdentifier isEqualToString:k_editHexAsBGItemID]) { [outToolbarItem setLabel:NSLocalizedString(@"Edit as BG",@"")]; - [outToolbarItem setPaletteLabel:NSLocalizedString(@"Edit HexColorCode as BG",@"")]; - [outToolbarItem setToolTip:NSLocalizedString(@"Open HexColorCode Editor to Edit as BackgroundColor",@"")]; + [outToolbarItem setPaletteLabel:NSLocalizedString(@"Edit Color Code as BG",@"")]; + [outToolbarItem setToolTip:NSLocalizedString(@"Open Color Code Editor to Edit as BackgroundColor",@"")]; [outToolbarItem setImage:[NSImage imageNamed:@"EditHexAsBG"]]; [outToolbarItem setAction:@selector(editHexColorCodeAsBGColor:)]; @@ -438,15 +398,9 @@ - (NSArray *)toolbarAllowedItemIdentifiers:(NSToolbar *)inToolbar // 設定画面でのツールバーアイテム配列を返す // ------------------------------------------------------ { - return [NSArray arrayWithObjects: - k_getInfoItemID, - k_showIncompatibleCharItemID, - k_preferencesItemID, - k_saveItemID, - k_saveAsItemID, - k_pageSetupItemID, - NSToolbarPrintItemIdentifier, - k_openTransparencyPanelItemID, + return @[k_getInfoItemID, + k_showIncompatibleCharItemID, + NSToolbarPrintItemIdentifier, NSToolbarShowFontsItemIdentifier, k_biggerFontItemID, k_smallerFontItemID, @@ -467,8 +421,7 @@ - (NSArray *)toolbarAllowedItemIdentifiers:(NSToolbar *)inToolbar NSToolbarSeparatorItemIdentifier, NSToolbarFlexibleSpaceItemIdentifier, NSToolbarSpaceItemIdentifier, - NSToolbarCustomizeToolbarItemIdentifier, - nil]; + NSToolbarCustomizeToolbarItemIdentifier]; } @@ -477,13 +430,11 @@ - (NSArray *)toolbarDefaultItemIdentifiers:(NSToolbar *)inToolbar // ツールバーアイテムデフォルト配列を返す // ------------------------------------------------------ { - return [NSArray arrayWithObjects: - k_lineEndingsItemID, + return @[k_lineEndingsItemID, k_fileEncodingsItemID, k_syntaxItemID, NSToolbarFlexibleSpaceItemIdentifier, - k_getInfoItemID, - nil]; + k_getInfoItemID]; } @@ -505,43 +456,29 @@ - (void)doUpdateToggleItem:(NSToolbarItem *)inItem setOn:(BOOL)inBool // ------------------------------------------------------ { NSString *theIdentifer = [inItem itemIdentifier]; + NSString *imageName; if ([theIdentifer isEqualToString:k_showNavigationBarItemID]) { - if (inBool) { - [inItem setImage:[NSImage imageNamed:@"NaviBar_Show"]]; - } else { - [inItem setImage:[NSImage imageNamed:@"NaviBar_Hide"]]; - } + imageName = inBool ? @"NaviBar_Show" : @"NaviBar_Hide"; + } else if ([theIdentifer isEqualToString:k_showLineNumItemID]) { - if (inBool) { - [inItem setImage:[NSImage imageNamed:@"LineNumber_Show"]]; - } else { - [inItem setImage:[NSImage imageNamed:@"LineNumber_Hide"]]; - } + imageName = inBool ? @"LineNumber_Show" : @"LineNumber_Hide"; + } else if ([theIdentifer isEqualToString:k_showStatusBarItemID]) { - if (inBool) { - [inItem setImage:[NSImage imageNamed:@"StatusArea_Show"]]; - } else { - [inItem setImage:[NSImage imageNamed:@"StatusArea_Hide"]]; - } + imageName = inBool ? @"StatusArea_Show" : @"StatusArea_Hide"; + } else if ([theIdentifer isEqualToString:k_showInvisibleCharsItemID]) { - if (inBool) { - [inItem setImage:[NSImage imageNamed:@"InvisibleChar_Show"]]; - } else { - [inItem setImage:[NSImage imageNamed:@"InvisibleChar_Hide"]]; - } + imageName = inBool ? @"InvisibleChar_Show" : @"InvisibleChar_Hide"; + } else if ([theIdentifer isEqualToString:k_showPageGuideItemID]) { - if (inBool) { - [inItem setImage:[NSImage imageNamed:@"PageGuide_Show"]]; - } else { - [inItem setImage:[NSImage imageNamed:@"PageGuide_Hide"]]; - } + imageName = inBool ? @"PageGuide_Show" : @"PageGuide_Hide"; + } else if ([theIdentifer isEqualToString:k_wrapLinesItemID]) { - if (inBool) { - [inItem setImage:[NSImage imageNamed:@"WrapLines_On"]]; - } else { - [inItem setImage:[NSImage imageNamed:@"WrapLines_Off"]]; - } + imageName = inBool ? @"WrapLines_On" : @"WrapLines_Off"; + } + + if (imageName) { + [inItem setImage:[NSImage imageNamed:imageName]]; } } diff --git a/CEWindowController.h b/CEWindowController.h index 58d6a5202c..55e70930a5 100644 --- a/CEWindowController.h +++ b/CEWindowController.h @@ -3,8 +3,9 @@ CEWindowController (for CotEditor) -Copyright (C) 2004-2007 nakamuxu. -http://www.aynimac.com/ + Copyright (C) 2004-2007 nakamuxu. + Copyright (C) 2014 CotEditor Project + http://coteditor.github.io ================================================= encoding="UTF-8" @@ -38,7 +39,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #import "constants.h" -@interface CEWindowController : NSWindowController +@interface CEWindowController : NSWindowController { IBOutlet id _editorView; IBOutlet id _drawer; @@ -65,7 +66,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. IBOutlet id _printSettingController; IBOutlet id _printAccessoryView; - unsigned _tabViewSelectedIndex; // ドローワのタブビューでのポップアップメニュー選択用バインディング変数(#削除不可) + NSUInteger _tabViewSelectedIndex; // ドローワのタブビューでのポップアップメニュー選択用バインディング変数(#削除不可) BOOL _recolorWithBecomeKey; } @@ -74,13 +75,13 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - (id)toolbarController; - (BOOL)needsInfoDrawerUpdate; - (BOOL)needsIncompatibleCharDrawerUpdate; -- (void)setInfoEncoding:(NSString *)inString; -- (void)setInfoLineEndings:(NSString *)inString; -- (void)setInfoLine:(NSString *)inString; -- (void)setInfoChar:(NSString *)inString; -- (void)setInfoSelect:(NSString *)inString; -- (void)setInfoInLine:(NSString *)inString; -- (void)setInfoSingleChar:(NSString *)inString; +- (void)setEncodingInfo:(NSString *)inString; +- (void)setLineEndingsInfo:(NSString *)inString; +- (void)setLineInfo:(NSString *)inString; +- (void)setCharInfo:(NSString *)inString; +- (void)setSelectInfo:(NSString *)inString; +- (void)setInLineInfo:(NSString *)inString; +- (void)setSingleCharInfo:(NSString *)inString; - (void)updateFileAttrsInformation; - (void)updateIncompatibleCharList; - (void)setRecolorWithBecomeKey:(BOOL)inValue; diff --git a/CEWindowController.m b/CEWindowController.m index 8b2462a040..1a8cf261b6 100644 --- a/CEWindowController.m +++ b/CEWindowController.m @@ -3,8 +3,9 @@ CEWindowController (for CotEditor) -Copyright (C) 2004-2007 nakamuxu. -http://www.aynimac.com/ + Copyright (C) 2004-2007 nakamuxu. + Copyright (C) 2014 CotEditor Project + http://coteditor.github.io ================================================= encoding="UTF-8" @@ -43,7 +44,7 @@ @implementation CEWindowController //======================================================= // ------------------------------------------------------ -- (id)init +- (instancetype)init // 初期化 // ------------------------------------------------------ { @@ -61,8 +62,8 @@ - (void)windowDidLoad // ------------------------------------------------------ { id theValues = [[NSUserDefaultsController sharedUserDefaultsController] values]; - NSSize theSize = NSMakeSize([[theValues valueForKey:k_key_windowWidth] floatValue], - [[theValues valueForKey:k_key_windowHeight] floatValue]); + NSSize theSize = NSMakeSize((CGFloat)[[theValues valueForKey:k_key_windowWidth] doubleValue], + (CGFloat)[[theValues valueForKey:k_key_windowHeight] doubleValue]); BOOL theBoolDoCascade = [[self document] doCascadeWindow]; [[self window] setContentSize:theSize]; @@ -81,7 +82,7 @@ - (void)windowDidLoad // ドキュメントオブジェクトに CEEditorView インスタンスをセット [[self document] setEditorView:_editorView]; // デフォルト行末コードをセット - [[self document] setLineEndingCharToView:[[theValues valueForKey:k_key_defaultLineEndCharCode] intValue]]; + [[self document] setLineEndingCharToView:[[theValues valueForKey:k_key_defaultLineEndCharCode] integerValue]]; // 不可視文字の表示/非表示をセット [_editorView setShowInvisibleChars:[[self document] canActivateShowInvisibleCharsItem]]; // プリントダイアログでの設定をセットアップ(ユーザデフォルトからローカル設定にコピー) @@ -135,7 +136,7 @@ - (BOOL)needsInfoDrawerUpdate // 文書情報ドローワ内容を更新すべきかを返す // ------------------------------------------------------ { - int theDrawerState = [_drawer state]; + NSInteger theDrawerState = [_drawer state]; BOOL theTabState = [[[_tabView selectedTabViewItem] identifier] isEqualToString:k_infoIdentifier]; return (theTabState && @@ -148,7 +149,7 @@ - (BOOL)needsIncompatibleCharDrawerUpdate // 非互換文字ドローワ内容を更新すべきかを返す // ------------------------------------------------------ { - int theDrawerState = [_drawer state]; + NSInteger theDrawerState = [_drawer state]; BOOL theTabState = [[[_tabView selectedTabViewItem] identifier] isEqualToString:k_incompatibleIdentifier]; return (theTabState && @@ -157,7 +158,7 @@ - (BOOL)needsIncompatibleCharDrawerUpdate // ------------------------------------------------------ -- (void)setInfoEncoding:(NSString *)inString +- (void)setEncodingInfo:(NSString *)inString // 文書のエンコーディング情報を設定 // ------------------------------------------------------ { @@ -166,7 +167,7 @@ - (void)setInfoEncoding:(NSString *)inString // ------------------------------------------------------ -- (void)setInfoLineEndings:(NSString *)inString +- (void)setLineEndingsInfo:(NSString *)inString // 文書の行末コード情報を設定 // ------------------------------------------------------ { @@ -175,7 +176,7 @@ - (void)setInfoLineEndings:(NSString *)inString // ------------------------------------------------------ -- (void)setInfoLine:(NSString *)inString +- (void)setLineInfo:(NSString *)inString // 文書の行情報を設定 // ------------------------------------------------------ { @@ -184,7 +185,7 @@ - (void)setInfoLine:(NSString *)inString // ------------------------------------------------------ -- (void)setInfoChar:(NSString *)inString +- (void)setCharInfo:(NSString *)inString // 文書の文字情報を設定 // ------------------------------------------------------ { @@ -193,7 +194,7 @@ - (void)setInfoChar:(NSString *)inString // ------------------------------------------------------ -- (void)setInfoSelect:(NSString *)inString +- (void)setSelectInfo:(NSString *)inString // 文書の選択範囲情報を設定 // ------------------------------------------------------ { @@ -202,7 +203,7 @@ - (void)setInfoSelect:(NSString *)inString // ------------------------------------------------------ -- (void)setInfoInLine:(NSString *)inString +- (void)setInLineInfo:(NSString *)inString // 文書の行頭からのキャレット位置をセット // ------------------------------------------------------ { @@ -211,7 +212,7 @@ - (void)setInfoInLine:(NSString *)inString // ------------------------------------------------------ -- (void)setInfoSingleChar:(NSString *)inString +- (void)setSingleCharInfo:(NSString *)inString // 文書の選択範囲情報を設定 // ------------------------------------------------------ { @@ -224,7 +225,7 @@ - (void)updateFileAttrsInformation // すべての文書情報を更新 // ------------------------------------------------------ { - NSDictionary *theFileAttr = [[self document] documentFileAttributes]; + NSDictionary *theFileAttr = [[self document] fileAttributes]; NSDate *theDate = nil; NSString *theOwner = nil; @@ -248,7 +249,7 @@ - (void)updateFileAttrsInformation } else { [_infoOwnerField setStringValue:@" - "]; } - [_infoPermissionField setStringValue:[NSString stringWithFormat:@"%o",[theFileAttr filePosixPermissions]]]; + [_infoPermissionField setStringValue:[NSString stringWithFormat:@"%lu",(unsigned long)[theFileAttr filePosixPermissions]]]; if ([theFileAttr fileIsImmutable]) { [_infoFinderLockField setStringValue:NSLocalizedString(@"ON",@"")]; } else { @@ -448,6 +449,28 @@ - (void)drawerDidClose:(NSNotification *)inNotification } +// ------------------------------------------------------ +- (void)windowWillEnterFullScreen:(NSNotification *)notification +// フルスクリーンを開始 +// ------------------------------------------------------ +{ + // ウインドウ背景をデフォルトにする(ツールバーの背景に影響) + [[self window] setBackgroundColor:nil]; +} + + +// ------------------------------------------------------ +- (void)windowDidExitFullScreen:(NSNotification *)notification +// フルスクリーンを終了 +// ------------------------------------------------------ +{ + // ウインドウ背景を戻す + if ([[self document] alphaOnlyTextViewInThisWindow]) { + [[self window] setBackgroundColor:[NSColor clearColor]]; + } +} + + #pragma mark ===== Action messages ===== @@ -461,7 +484,7 @@ - (IBAction)getInfo:(id)sender // ファイル情報を表示 // ------------------------------------------------------ { - int theDrawerState = [_drawer state]; + NSInteger theDrawerState = [_drawer state]; BOOL theTabState = [[[_tabView selectedTabViewItem] identifier] isEqualToString:k_infoIdentifier]; if ((theDrawerState == NSDrawerClosedState) || (theDrawerState == NSDrawerClosingState)) { @@ -489,7 +512,7 @@ - (IBAction)toggleIncompatibleCharList:(id)sender // 変換不可文字列リストパネルを開く // ------------------------------------------------------ { - int theDrawerState = [_drawer state]; + NSInteger theDrawerState = [_drawer state]; BOOL theTabState = [[[_tabView selectedTabViewItem] identifier] isEqualToString:k_incompatibleIdentifier]; if ((theDrawerState == NSDrawerClosedState) || (theDrawerState == NSDrawerClosingState)) { @@ -515,17 +538,15 @@ - (IBAction)selectIncompatibleRange:(id)sender // ------------------------------------------------------ { CEEditorView *theEditorView = [[self document] editorView]; - NSRange theRange = [[[[_listController selectedObjects] objectAtIndex:0] + NSRange theRange = [[[_listController selectedObjects][0] valueForKey:k_incompatibleRange] rangeValue]; [theEditorView setSelectedRange:theRange]; [[self window] makeFirstResponder:[theEditorView textView]]; [[theEditorView textView] scrollRangeToVisible:theRange]; - // 10.5+で実行されているときには検索結果表示エフェクトを追加 - if (floor(NSAppKitVersionNumber) >= 949) { // 949 = LeopardのNSAppKitVersionNumber - [[theEditorView textView] showFindIndicatorForRange:theRange]; - } + // 検索結果表示エフェクトを追加 + [[theEditorView textView] showFindIndicatorForRange:theRange]; } diff --git a/CotEditor.help/Contents/Info.plist b/CotEditor.help/Contents/Info.plist new file mode 100644 index 0000000000..b993dfd9df --- /dev/null +++ b/CotEditor.help/Contents/Info.plist @@ -0,0 +1,36 @@ + + + + + CFBundleDevelopmentRegion + en-US + CFBundleIdentifier + com.aynimac.CotEditor.help + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + CotEditor + CFBundlePackageType + BNDL + CFBundleShortVersionString + 3 + CFBundleSignature + CEHb + CFBundleVersion + 1.4 + CFBundleHelpTOCFile + CotEditorHelp.html + HPDBookAccessPath + CotEditorHelp.html + HPDBookIconPath + ../Shared/gfx/icon32.png + HPDBookIndexPath + CotEditorHelp.helpindex + HPDBookTitle + CotEditor Help + HPDBookType + 3 + HPDBookKBURL + http://coteditor.github.io/ + + diff --git a/CotEditor.help/Contents/Resources/Shared/gfx/icon128.png b/CotEditor.help/Contents/Resources/Shared/gfx/icon128.png new file mode 100644 index 0000000000..4b0d372722 Binary files /dev/null and b/CotEditor.help/Contents/Resources/Shared/gfx/icon128.png differ diff --git a/CotEditor.help/Contents/Resources/Shared/gfx/icon16.png b/CotEditor.help/Contents/Resources/Shared/gfx/icon16.png new file mode 100644 index 0000000000..d29158eb1e Binary files /dev/null and b/CotEditor.help/Contents/Resources/Shared/gfx/icon16.png differ diff --git a/CotEditor.help/Contents/Resources/Shared/gfx/icon32.png b/CotEditor.help/Contents/Resources/Shared/gfx/icon32.png new file mode 100644 index 0000000000..f58904b4c6 Binary files /dev/null and b/CotEditor.help/Contents/Resources/Shared/gfx/icon32.png differ diff --git a/CotEditor.help/Contents/Resources/Shared/sty/index.css b/CotEditor.help/Contents/Resources/Shared/sty/index.css new file mode 100644 index 0000000000..1f740f40d7 --- /dev/null +++ b/CotEditor.help/Contents/Resources/Shared/sty/index.css @@ -0,0 +1,34 @@ +/* + * CotEditor Help Standard Style Sheet for index page + * $Id$ + */ +div.terms { + margin: 3em 1.5em 0 1.5em; +} + +div.terms p { + clear: both; +} + +div.terms ul { + margin: 0; + padding: 0; + background: none; + border: none; + list-style-type: none; +} + +div.terms li { + border-bottom: 1px solid #cccccc; +} + +h1 { + margin: 0; + padding: 0 0 0.5em 15px; + width: 90%; + float: left; + clear: both; +} +h1:before { + display: none; +} diff --git a/CotEditor.help/Contents/Resources/Shared/sty/standard.css b/CotEditor.help/Contents/Resources/Shared/sty/standard.css new file mode 100644 index 0000000000..aefe4bd57e --- /dev/null +++ b/CotEditor.help/Contents/Resources/Shared/sty/standard.css @@ -0,0 +1,172 @@ +/* + * CotEditor Help Standard Style Sheet + * $Id$ + */ +body { + margin: 0 0 1em 0; + padding: 0; + font-family: "Lucida Grande"; + font-size: 9pt; + line-height: 130%; +} + +a { text-decoration: none; } +a:hover { text-decoration: underline; } + +#contents { + margin: 3em 1.5em 0 1.5em; +} + +h1 { + font-size: 130%; + margin: 1em 0; +} +h1:before { + content: url(../gfx/icon32.png); + -webkit-transform: scale(0.5); + display: inline-block; + width: 16px; + height: 16px; + vertical-align:9px; + margin-right:26px; +} +h2 { + font-size: 110%; + line-height: 110%; + margin-top: 1.5em; + margin-bottom: 0.5em; + clear: both; +} +h3 { + font-size: 100%; + line-height: 110%; +} + +ol, ul, pre { + padding: 1em 2em 0.5em 2em; + margin: 0; + border: 1px solid #cccccc; + background-color: #e6edff; + clear: both; +} + +ul { + list-style-type: square; +} + +li { + margin-bottom: 0.5em; +} + +ul ul, ul ol { + padding: 0 3em; + margin: 0.5em 0; + border: none; +} + +ul + ul, ol + ol, ul + ol, ol + ul { + margin-top: 1em; +} + +ul.topicbox { + background-color: white; + border: 1px dotted #999999; +} + +ul.rel_items { + list-style-type: none; + padding: 0; + margin: 0; + border: none; + background-color: white; + font-size: 90%; +} + +p.point { + padding: 1em 2em 1em 1.5em; + margin: auto -1%; + border: 1px solid #cccccc; + background-color: #e6edff; +} + +em { + font-weight: bold; + font-style: normal; +} + +p#relbar { + text-align: right; +} + +.figmarker { + font-weight: bold; + color: red; +} + +#navbar { + position: fixed; + top: 0; + left: 0; + width: 100%; + padding: -2px 6px 0; + border-bottom: 1px solid #bfbfbf; + background-color: #f2f2f2; + background-repeat: no-repeat; + float: left; + font-size: 85%; +} + +#home { + position: absolute; + top: 2px; + left: 10px; +} + +#index { + top: 2px; + right: 12px; + width: auto; + padding: 2px 25px 1px 8px; + background-color: #f2f2f2; + border-left: 1px solid #bfbfbf; + float: right; +} + +img.snapshot { + float: left; + margin: 0 1em 1em 0; +} + +img#h1icon { + margin: 0 8px -8px 0; +} + +dt { + font-weight: bold; + margin-left: 0.5em; +} +dd { + margin-left: 2.5em; +} + +table { + border-collapse: collapse; + empty-cells: show; +} +th, td { + border: 1px solid #cccccc; + margin: 0; + padding: 3px; +} +th { + background-color: #e6edff; + font-weight: normal; + white-space: nowrap; +} +th.lh { + text-align: left; +} + +tt, pre { + font-family: "Courier", "Courier New", monotype; +} diff --git a/CotEditor.help/Contents/Resources/Shared/sty/top.css b/CotEditor.help/Contents/Resources/Shared/sty/top.css new file mode 100644 index 0000000000..0397184938 --- /dev/null +++ b/CotEditor.help/Contents/Resources/Shared/sty/top.css @@ -0,0 +1,52 @@ +/* + * CotEditor Help Style Sheet for CotEditor.html + * $Id$ + */ +body { + margin: 0; + padding: 0; + font-family: "Lucida Grande"; +} + +a { text-decoration: none; } +a:hover { text-decoration: underline; } + +div { + float: left; + margin-top: 30px; +} +#leftbox { + width: 190px; + text-align: center; + padding-left: 20px; + padding-right: 20px; +} +#rightbox { + width: 220px; + padding-left: 30px; + border-left: 1px solid #999999; +} + +img { + margin: 20px 0; +} + +h1 { + font-size: 16pt; + font-weight: normal; +} + +address { + font-size: 8pt; + font-style: normal; +} + +dt { + font-size: 11pt; + font-weight: normal; + margin-top: 1em; +} +dd { + font-size: 9pt; + margin-left: 0; +} diff --git a/CotEditor.help/Contents/Resources/Shared/sty/topicbox.css b/CotEditor.help/Contents/Resources/Shared/sty/topicbox.css new file mode 100644 index 0000000000..fcfd2a44d9 --- /dev/null +++ b/CotEditor.help/Contents/Resources/Shared/sty/topicbox.css @@ -0,0 +1,34 @@ +/* + * CotEditor Help Style Sheet for topic_box + * $Id$ + */ +div.topic_box { + padding: 0; + min-height: 180px; + border: dotted 1px #cccccc; + margin-bottom: 1.5em; +} + +div.topic_box h2 { + margin: 0; + padding: 3px; + background-color: #e6edff; +} +div.topic_box p { + margin-top: 0.5em; + margin-left: 0.5em; + margin-right: 0.5em; +} + +div.topic_box img { + width: 160px; +} + +div.topic_box ul, div.topic_box ol { + margin-top: 1em; + margin-left: 170px; /* img 160px + 10px */ + padding-top: 0; + clear: none; + background: none; + border: none; +} diff --git a/CotEditor.help/Contents/Resources/en.lproj/CotEditorHelp.helpindex b/CotEditor.help/Contents/Resources/en.lproj/CotEditorHelp.helpindex new file mode 100644 index 0000000000..3b3822787b Binary files /dev/null and b/CotEditor.help/Contents/Resources/en.lproj/CotEditorHelp.helpindex differ diff --git a/CotEditor.help/Contents/Resources/en.lproj/CotEditorHelp.html b/CotEditor.help/Contents/Resources/en.lproj/CotEditorHelp.html new file mode 100644 index 0000000000..c1f09d73d8 --- /dev/null +++ b/CotEditor.help/Contents/Resources/en.lproj/CotEditorHelp.html @@ -0,0 +1,36 @@ + + + + + + + + + + + + +CotEditor Help + + + +
+


CotEditor Help

+
coteditor.github.io
+
+ + + diff --git a/CotEditor.help/Contents/Resources/en.lproj/gfx/ov_color.png b/CotEditor.help/Contents/Resources/en.lproj/gfx/ov_color.png new file mode 100644 index 0000000000..cf88ceaa2e Binary files /dev/null and b/CotEditor.help/Contents/Resources/en.lproj/gfx/ov_color.png differ diff --git a/CotEditor.help/Contents/Resources/en.lproj/gfx/ov_complete.png b/CotEditor.help/Contents/Resources/en.lproj/gfx/ov_complete.png new file mode 100644 index 0000000000..1afef4e4ba Binary files /dev/null and b/CotEditor.help/Contents/Resources/en.lproj/gfx/ov_complete.png differ diff --git a/CotEditor.help/Contents/Resources/en.lproj/gfx/ov_find.png b/CotEditor.help/Contents/Resources/en.lproj/gfx/ov_find.png new file mode 100644 index 0000000000..124530c65e Binary files /dev/null and b/CotEditor.help/Contents/Resources/en.lproj/gfx/ov_find.png differ diff --git a/CotEditor.help/Contents/Resources/en.lproj/gfx/ov_outline.png b/CotEditor.help/Contents/Resources/en.lproj/gfx/ov_outline.png new file mode 100644 index 0000000000..29cc4dad9b Binary files /dev/null and b/CotEditor.help/Contents/Resources/en.lproj/gfx/ov_outline.png differ diff --git a/CotEditor.help/Contents/Resources/en.lproj/gfx/ov_scriptmenu.png b/CotEditor.help/Contents/Resources/en.lproj/gfx/ov_scriptmenu.png new file mode 100644 index 0000000000..bbab627bbc Binary files /dev/null and b/CotEditor.help/Contents/Resources/en.lproj/gfx/ov_scriptmenu.png differ diff --git a/CotEditor.help/Contents/Resources/en.lproj/gfx/split_editor.png b/CotEditor.help/Contents/Resources/en.lproj/gfx/split_editor.png new file mode 100644 index 0000000000..3f91a6239a Binary files /dev/null and b/CotEditor.help/Contents/Resources/en.lproj/gfx/split_editor.png differ diff --git a/CotEditor.help/Contents/Resources/en.lproj/gfx/wind_encoding.png b/CotEditor.help/Contents/Resources/en.lproj/gfx/wind_encoding.png new file mode 100644 index 0000000000..d694931a35 Binary files /dev/null and b/CotEditor.help/Contents/Resources/en.lproj/gfx/wind_encoding.png differ diff --git a/CotEditor.help/Contents/Resources/en.lproj/pgs/about_applescript.html b/CotEditor.help/Contents/Resources/en.lproj/pgs/about_applescript.html new file mode 100644 index 0000000000..741bf718e5 --- /dev/null +++ b/CotEditor.help/Contents/Resources/en.lproj/pgs/about_applescript.html @@ -0,0 +1,39 @@ + + + + + + + + + +Working with AppleScript + + + + + +
+

Working with AppleScript

+

CotEditor supports AppleScript and has own AppleScript dictionary so that you can look up the classes or commands available with CotEditor. To open the dictionay:

+ +
    +
  1. Choose Help > AppleScript Dictionary.
  2. +
+
    +
  • Details and examples of AppleScript classes or commands can be found in the documentation: ~/Library/Application Support/CotEditor/ScriptMenu/AppleScript/AboutAppleScript-jp.rtf
  • +
+ +

See also

+ +
+ + + diff --git a/CotEditor.help/Contents/Resources/en.lproj/pgs/about_autodetect_charset.html b/CotEditor.help/Contents/Resources/en.lproj/pgs/about_autodetect_charset.html new file mode 100644 index 0000000000..0261659ee1 --- /dev/null +++ b/CotEditor.help/Contents/Resources/en.lproj/pgs/about_autodetect_charset.html @@ -0,0 +1,39 @@ + + + + + + + + + +Using encoding declarations (charset=, encoding=, @charset) for auto-detection + + + + + +
+

Using encoding declarations (charset=, encoding=, @charset) for auto-detection

+

When both “Auto-Detect” and “Refer to encoding declaration” are activated in the Format preferences pane, CotEditor reads the following types of encoding declarations (if present) — charset=, encoding=, @charset — when opening a file. If written properly, these declarations will be used to determine the file's character encoding.

+

A declaration can be anywhere in the document, the one either in comment area or in a plain sentence is detected. When you want to use a phrase such as “charset=UTF-8” even though your document's encoding is not UTF-8, you need to put an actual encoding declaration prior to the phrase, or, turn off “Refer to encoding declaration” in the Format preferences.

+
    +
  • To make auto-detection of character encoding work, you have to put an equal character (“=”, no other characters) right after “charset” or “encoding.”
  • +
  • The encoding name which comes after “charset=” or “encoding=” can be without double-quotes (") around.
  • +
  • In the case there are multiple encoding declarations in your document, CotEditor uses the first one to determine the character encoding.
  • +
  • When the encoding is declared as Shift JIS (written like charset="Shift_JIS"), CotEditor chooses the prioritized one (the upper one in the encoding list) between Japanese (Shift JIS) and Japanese (Shift JIS X0213).
    +=> Setting the priority of encoding auto-detection
  • +
+ +

See also

+ +
+ + + diff --git a/CotEditor.help/Contents/Resources/en.lproj/pgs/about_coloring_priority.html b/CotEditor.help/Contents/Resources/en.lproj/pgs/about_coloring_priority.html new file mode 100644 index 0000000000..a48cf04266 --- /dev/null +++ b/CotEditor.help/Contents/Resources/en.lproj/pgs/about_coloring_priority.html @@ -0,0 +1,28 @@ + + + + + + + + + +Syntax coloring order + + + + + +
+

Syntax coloring order

+
    +
  • When performing syntax coloring, CotEditor colors the code elements in the following order: 1)Keywords, 2)Commands, 3)Values, 4)Numbers, 5)Strings, 6)Characters, 7)Comments
  • +
  • When your document contains an item to be colored which matches multiple categories (e.g. Keywords AND Commands), the color of the latter in the order will overwrite the former's.
  • +
+
+ + + diff --git a/CotEditor.help/Contents/Resources/en.lproj/pgs/about_complist_settings.html b/CotEditor.help/Contents/Resources/en.lproj/pgs/about_complist_settings.html new file mode 100644 index 0000000000..9794880873 --- /dev/null +++ b/CotEditor.help/Contents/Resources/en.lproj/pgs/about_complist_settings.html @@ -0,0 +1,35 @@ + + + + + + + + + +Setting up the completion list + + + + + +
+

Setting up the completion list

+

You can create your own completion list by customizing the corresponding syntax style. After choosing a style and clicking Edit (see About syntax styles), select Completion List Setting from the drop-down menu.

+ + +
CompletionsThe words you put here appear in the completion list.
+

If no words here, the words generated by your syntax coloring rule will appear in the list.

+ +

See also

+ +
+ + + diff --git a/CotEditor.help/Contents/Resources/en.lproj/pgs/about_filedrop.html b/CotEditor.help/Contents/Resources/en.lproj/pgs/about_filedrop.html new file mode 100644 index 0000000000..a3ff4f101e --- /dev/null +++ b/CotEditor.help/Contents/Resources/en.lproj/pgs/about_filedrop.html @@ -0,0 +1,54 @@ + + + + + + + + + +Pre-formatted strings for File Drop + + + + + +
+

Pre-formatted strings for File Drop

+

CotEditor has the following pre-formatted strings for the use of File Drop.

+ + + + + + + + + + + + + +
Pre-formatted stringWill be replaced with
<<<ABSOLUTE-PATH>>>The absolute path of the dropped file (i.e. source file).
<<<RELATIVE-PATH>>>The relative path from your document to the dropped file.
<<<FILENAME>>>The name of the dropped file with extension.
<<<FILENAME-NOSUFFIX>>>The name of the dropped file without extension.
<<<FILEEXTENSION>>>The file extension of the dropped file.
<<<FILEEXTENSION-LOWER>>>The file extension of the dropped file (lowercase).
<<<FILEEXTENSION-UPPER>>>The file extension of the dropped file (uppercase).
<<<DIRECTORY>>>The directory of the dropped file.
<<<IMAGEWIDTH>>>The image width (works only when you drop an image file).
<<<IMAGEHEIGHT>>>The image height (works only when you drop an image file).
+ +

Here are a few examples of what it's like to use pre-formatted strings.

+ + + + + + + +
example 1) When you drop foo.html:
Insertion format you set<a href="<<<RELATIVE-PATH>>>"></a>
The string actually inserted<a href="foo.html"></a>
example 2) When you drop foo.jpg:
Insertion format you set<img src="<<<FILENAME>>>" width="<<<IMAGEWIDTH>>>" height="<<<IMAGEHEIGHT>>>" />
The string actually inserted<img src="foo.jpg" width="160" height="80" />
+ +

See also

+ +
+ + + diff --git a/CotEditor.help/Contents/Resources/en.lproj/pgs/about_move_menu.html b/CotEditor.help/Contents/Resources/en.lproj/pgs/about_move_menu.html new file mode 100644 index 0000000000..59066c8127 --- /dev/null +++ b/CotEditor.help/Contents/Resources/en.lproj/pgs/about_move_menu.html @@ -0,0 +1,37 @@ + + + + + + + + + +Using Go To + + + + + +
+

Using Go To

+

When you choose Go To in the Find menu, or press Command-L, CotEditor displays the Go To dialog box to give you quick access to the character(s) or the line(s) you want to see.

+

In the dialog box, choose either Character or Line, enter the character/line number, and click Select.

+
    +
  • If you choose Line and type in “3”:
    +
    => The line 3 (the third line from the top) will be selected.
  • +
  • If you choose Line and type in “3:2”:
    +
    => What this indicates is “starting from line 3, select 2 lines.” Thus, the line 3 and 4 will be selected.
  • +
  • If you choose Line and type in “3:-1”:
    +
    => What this indicates is “starting from line 3, select the rest lines except the last 1 line.” Thus, if the document has 10 lines, the lines from the line 3 to 9 will be selected.
  • +
+ +

The same applies when you choose Character.

+

You can toggle between Character and Line by pressing Command-L while the Go To dialog box is open.

+
+ + + diff --git a/CotEditor.help/Contents/Resources/en.lproj/pgs/about_outlinemenu_settings.html b/CotEditor.help/Contents/Resources/en.lproj/pgs/about_outlinemenu_settings.html new file mode 100644 index 0000000000..3bec608377 --- /dev/null +++ b/CotEditor.help/Contents/Resources/en.lproj/pgs/about_outlinemenu_settings.html @@ -0,0 +1,47 @@ + + + + + + + + + +Outline Menu settings + + + + + +
+

Outline Menu settings

+

The settings for customizing Outline Menu are as follows:

+ + + +
RE stringThe in-document strings matched by the regular expressions you set here will appear in the drop-down menu. This setting is required in order to search the items to be listed (RE stands for Regular Expression).
ICIf this is selected, case will be ignored during the search. For example, the expression “abc” matches “ABC” or “abc” or “Abc” in your document (IC stands for Ignore Case).
Menu Title PatternHere, you can format the titles of the Outline Menu items. Both the “RE string” setting and the setting here determine how the corresponding item is titled in the menu.
+

The meta characters you can use in Menu Title Pattern are as follows:

+ + + + + + +
(blank)The whole string matched by your regular expression.
$0, $&The whole string matched by your regular expression.
$1 ... $9The string matched by the first through ninth parenthesized subexpression in your regular expression.
$LNThe line number of a line which contains the first character of the string matched by your regular expression.
-A separator of the menu +(invalid when other letters than “-” are included).
+
    +
  • To show a meta character such as “$0” in the menu, you need to put a backslash (\) in front of it. You won't see that backslash (\) in the menu.
  • +
+ +

See also

+ +
+ + + diff --git a/CotEditor.help/Contents/Resources/en.lproj/pgs/about_script_name.html b/CotEditor.help/Contents/Resources/en.lproj/pgs/about_script_name.html new file mode 100644 index 0000000000..0ef413745d --- /dev/null +++ b/CotEditor.help/Contents/Resources/en.lproj/pgs/about_script_name.html @@ -0,0 +1,81 @@ + + + + + + + + + +File naming rules for CotEditor scripts + + + + + +
+

File naming rules for CotEditor scripts

+

This page explains the rules for naming script files.

+
+
Order of appearance
+
By adding “number + closing parenthesis ())” at the head of the name, you can line up the files in numerical order.
+The part “number + )” won't be shown in the menu. + + + + +
example 1.
File name01)Open File.scpt
Appearance in the menuOpen File
+
+
+ +
+
Keyboard shortcuts
+
By adding “dot (.) + modifier-key + shortcut-key” in front of the extension, you can assign a keyboard shortcut to the file. + + + + + + + +
example 2.
File nameInsert String.@e.scpt
Appearance in the menuInsert String (Command-E)
example 3.
File name03)Insert Date.@~Y.scpt
Appearance in the menuInsert Date (Option-Shift-Command-Y)
+
+
Modifier-key notations
+
+ + + + + + +
NotationEquivalent key
^Control
$Shift
~Option
@Command
+
+
+
+
+ + +
    +
  • Shortcut-keys (e.g. “e” in the example 2) are case sensitive. The one in uppercase indicates that “the Shift key should be pressed together” as in the example 3.
  • +
  • A shortcut-key must come after modifier-keys, and must be one letter. Thus, you can't assign the keys such as F1 or Delete to scripts.
  • +
  • When the keyboard shortcut you set is already taken by another function, the shortcut for the script will be ignored.
  • +
+ +
+
Separators
+
A folder named “-” appears as a separator line in the menu. By adding “number + closing parenthesis ())” at the head of the folder name, you can put a separator between the menu items.
+
+ +

See also

+ +
+ + + diff --git a/CotEditor.help/Contents/Resources/en.lproj/pgs/about_script_spec.html b/CotEditor.help/Contents/Resources/en.lproj/pgs/about_script_spec.html new file mode 100644 index 0000000000..bd07b1590e --- /dev/null +++ b/CotEditor.help/Contents/Resources/en.lproj/pgs/about_script_spec.html @@ -0,0 +1,73 @@ + + + + + + + + + +Working with UNIX scripts + + + + + +
+

Working with UNIX scripts

+

This page explains how to pass your document's text to UNIX scripts that are executable via the Script menu, or how to receive the outputs from them.

+ +
    +
  • The file extensions of the scripts you can add to the Script menu are: .sh .pl .php .rb .py (regardless of their languages)
  • +
  • In order to run a script, you need to set execute permission for the script file. To do so, use Terminal.app (located in Applications/Utilities) or chmod-755.app which is bundled in the Extras folder.
  • +
  • Line endings in your script must be LF.
  • +
+ +

Passing text data to a script

+ +

To pass text data from CotEditor to your script, you need to put a comment at the beginning of the script and write “%%%{CotEditorXInput=xxxx}%%%” inside. Replace “xxxx” with one of the parameters below.

+ + + + + +
SelectionTo pass the text you are currently selecting.
AllTextTo pass the whole text of your document.
NoneTo pass nothing (default).
+ +
    +
  • With no parameters, CotEditor passes nothing just like when you put “None.”
  • +
  • A script should capture CotEditor's text data on STDIN (standard in).
  • +
  • CotEditor passes text data with UTF-8 encoding.
  • +
+ +

Receiving output data from a script

+ +

To make CotEditor receive output data from a script, you need to put a comment at the beginning of the script and write “%%%{CotEditorXOutput=xxxx}%%%” inside. Replace “xxxx” with one of the parameters below.

+ + + + + + + + +
ReplaceSelectionTo replace the current selection with the contents of the output data.
ReplaceAllTextTo replace the whole text of your document with the contents of the output data.
InsertAfterSelectionTo insert the contents of the output data right after the current selection.
AppendToAllTextTo insert the contents of the output data at the end of your document.
PasteboardputsTo store the contents of the output data in clipboard.
DiscardTo do nothing (default).
+ +
    +
  • With no parameters, CotEditor does nothing just like when you put “Discard.”
  • +
  • A script should output the text data for CotEditor on STDOUT (standard out).
  • +
  • The character encoding of the text that CotEditor receives must be UTF-8.
  • +
+ +

See also

+ +
+ + + diff --git a/CotEditor.help/Contents/Resources/en.lproj/pgs/about_shiftjis.html b/CotEditor.help/Contents/Resources/en.lproj/pgs/about_shiftjis.html new file mode 100644 index 0000000000..035e6d6a01 --- /dev/null +++ b/CotEditor.help/Contents/Resources/en.lproj/pgs/about_shiftjis.html @@ -0,0 +1,47 @@ + + + + + + + + + +What is the difference between the four kinds of Shift JIS? + + + + + +
+

What is the difference between the four kinds of Shift JIS?

+

The four kinds of Shift JIS are different from each other as described below:

+ + + + + +
(Shift JIS)The most basic Shift JIS, support for JIS level 1 and 2 Kanji characters.
(Mac OS)Based on Shift JIS, with extended support for such as Mac-dependent characters. Being used in OS 9 and earlier.
(Windows, DOS)Based on Shift JIS, with extended support for such as Windows-dependent characters.
(Shift JIS X0213)Support for JIS X 0213 character sets, which include JIS level 1 through 4 Kanji characters.
+

Though choosing an appropriate encoding varies from case to case, it is normally safer to use Japanese (Shift JIS). However, note that there are differences between these encodings in the way of dealing with particular characters as below:

+ + + + + + +
Halfwidth Yen sign (¥)Halfwidth backslash (\)Halfwidth tilde (~)
(Shift JIS)AvailableReplaced with fullwidth backslashNot available
(Mac OS)AvailableAvailableAvailable
(Windows, DOS)Replaced with halfwidth backslashAvailableAvailable
(Shift JIS X0213)AvailableReplaced with fullwidth backslashReplaced with fullwidth tilde
+
    +
  • You can check whether such encoding problematic characters are included in your document by choosing Show Incompatible Char via the File menu.
  • +
+ +

See also

+ +
+ + + diff --git a/CotEditor.help/Contents/Resources/en.lproj/pgs/about_syntaxstyle.html b/CotEditor.help/Contents/Resources/en.lproj/pgs/about_syntaxstyle.html new file mode 100644 index 0000000000..840d773e29 --- /dev/null +++ b/CotEditor.help/Contents/Resources/en.lproj/pgs/about_syntaxstyle.html @@ -0,0 +1,41 @@ + + + + + + + + + +Customizing syntax coloring rules + + + + + +
+

Customizing syntax coloring rules

+

Syntax coloring rules are determined by the following settings:

+ + + + + +
Begin-stringA string which denotes the beginning of the search pattern. This is required in order to search the code elements you want to be colored.
End-stringA string which denotes the end of the search pattern. This can be left blank.
ICIf this option is selected, case will be ignored during the search (IC stands for Ignore Case). For example, if you set “abc” as Begin-string and check IC, “ABC” or “abc” or “Abc” in your document will be matched.
REIf this option is selected, both Begin-string and End-string will be considered as regular expressions (RE stands for Regular Expression).
+
    +
  • A definition whose Begin-string is blank will be ignored.
  • +
  • A definition whose End-string is blank and RE is turned off will be used for defining the completion list as well.
  • +
  • The RE setting affects both Begin-string and End-string, which means they should be written in regular expression or plain form both together.
  • +
+ +

See also

+ +
+ + + diff --git a/CotEditor.help/Contents/Resources/en.lproj/pgs/about_syntaxtargets.html b/CotEditor.help/Contents/Resources/en.lproj/pgs/about_syntaxtargets.html new file mode 100644 index 0000000000..2bb8b487e8 --- /dev/null +++ b/CotEditor.help/Contents/Resources/en.lproj/pgs/about_syntaxtargets.html @@ -0,0 +1,40 @@ + + + + + + + + + +Syntax coloring objects + + + + + +
+

Syntax coloring objects

+

The code elements that CotEditor's syntax coloring supports are as follows:

+ + + + + + + + +
KeywordsKeywords in source code such as reserved words of programming languages.e.g. for, while, if
CommandsFunctions or commands in source code.e.g. exit, break, do
ValuesValue constants in source code.e.g. Null, True, False
NumbersNumeric constants in source code.e.g. Int i = 0;
StringsString constants in source code.e.g. String s = "Hello World"
CharactersCharacter constants in source code.e.g. Char c = 'a'
CommentsComments in source code.e.g. /* 〜 */, # 〜
+ +

See also

+ +
+ + + diff --git a/CotEditor.help/Contents/Resources/en.lproj/pgs/faq_about_yen_backslash.html b/CotEditor.help/Contents/Resources/en.lproj/pgs/faq_about_yen_backslash.html new file mode 100644 index 0000000000..9658007d39 --- /dev/null +++ b/CotEditor.help/Contents/Resources/en.lproj/pgs/faq_about_yen_backslash.html @@ -0,0 +1,33 @@ + + + + + + + + + +The Yen sign appears as a backslash + + + + + +
+

The Yen sign appears as a backslash

+

With one of the character encodings listed below, a halfwidth Yen character (¥) is displayed as is when you type, but if you change the encoding, or, if you save and reopen the file, it will be displayed as a backslash (\).

+ + + + + + + +
Japanese (Windows, DOS)Arabic (Mac OS)Central European (ISO Latin 2)
Japanese (EUC)Hebrew (Mac OS)Western (ISO Latin 3)
Traditional Chinese (EUC)Greek (ISO 8859-7)Central European (ISO Latin 4)
Simplified Chinese (EUC)Cyrillic (Mac OS)Latin-US (DOS)
Korean (EUC)Cyrillic (ISO 8859-5)Central European (Windows Latin 2)
Korean (Windows, DOS)Central European (Mac OS)
+
+ + + diff --git a/CotEditor.help/Contents/Resources/en.lproj/pgs/faq_cannot_display.html b/CotEditor.help/Contents/Resources/en.lproj/pgs/faq_cannot_display.html new file mode 100644 index 0000000000..296e6dc520 --- /dev/null +++ b/CotEditor.help/Contents/Resources/en.lproj/pgs/faq_cannot_display.html @@ -0,0 +1,54 @@ + + + + + + + + + +Characters aren't displayed correctly + + + + + +
+

Characters aren't displayed correctly

+

Characters can be garbled if CotEditor fails to detect the file's encoding correctly. In such cases, change the character encoding as described below:

+
    +
  1. Choose Format > File Encoding, and select an encoding from the list.
  2. +
  3. When a dialog appears, click Reinterpret.
  4. +
+

Setting the priority of encoding auto-detection +

  • If you select “Refer to encoding declaration” in the Format preferences pane, in-document encoding declarations such as “charset=” or “encoding=” or “@charset” will take precedence when CotEditor auto-detects the character encoding.
    +=> Using encoding declarations (charset=, encoding=, @charset) for auto-detection
  • + + +

    See also

    + +
    + + + diff --git a/CotEditor.help/Contents/Resources/en.lproj/pgs/faq_cannot_save.html b/CotEditor.help/Contents/Resources/en.lproj/pgs/faq_cannot_save.html new file mode 100644 index 0000000000..ac9eadda4d --- /dev/null +++ b/CotEditor.help/Contents/Resources/en.lproj/pgs/faq_cannot_save.html @@ -0,0 +1,29 @@ + + + + + + + + + +I can't save a file + + + + + +
    +

    I can't save a file

    +

    In the cases described below, you can't save the file you're working on. What you need to do then is save it with another name, or change the file permission using Finder or Terminal.

    +
      +
    • You are not the owner of the file.
    • +
    • The file is locked.
    • +
    +
    + + + diff --git a/CotEditor.help/Contents/Resources/en.lproj/pgs/faq_crash.html b/CotEditor.help/Contents/Resources/en.lproj/pgs/faq_crash.html new file mode 100644 index 0000000000..b4af503fd1 --- /dev/null +++ b/CotEditor.help/Contents/Resources/en.lproj/pgs/faq_crash.html @@ -0,0 +1,38 @@ + + + + + + + + + +CotEditor crashes + + + + + +
    +

    CotEditor crashes

    +

    In the case you are using ATOK, Shift-Return, which is one of the CotEditor's default key bindings, would conflict with ATOK's key binding and cause an application crash.
    +To solve this problem, you need to change the key binding of ATOK or CotEditor.
    + => Key Bindings preferences

    +
    +

    If you get frequent crashes of CotEditor under certain circumstances, please send a crash log on the following page:

    + +

    When you send a crash log, don't forget to include the following information:

    +
      +
    • The operation you performed just before the crash.
    • +
    • Your environment information such as the version of OS, the version of CotEditor, your machine model, and so on.
    • +
    +

    You can display a crash log by clicking Report (on 10.4) in the dialog which appears on the crash. (There is no point to send the crash log to Apple, so just close the window after copying the log.)

    +
    + + + diff --git a/CotEditor.help/Contents/Resources/en.lproj/pgs/faq_keybinding.html b/CotEditor.help/Contents/Resources/en.lproj/pgs/faq_keybinding.html new file mode 100644 index 0000000000..53c64e0ffe --- /dev/null +++ b/CotEditor.help/Contents/Resources/en.lproj/pgs/faq_keybinding.html @@ -0,0 +1,35 @@ + + + + + + + + + +My own key bindings don't work as I expect + + + + + +
    +

    My own key bindings don't work as I expect

    +

    If a key binding you set doesn't work properly chances are that:

    +
      +
    • The key binding is already taken by another function.
    • +
    • You have set the key binding in the Menu Key Bindings setting, but the same key binding exists in the Additional Text Key Bindings setting. In this case, the latter takes precedence.
    • +
    + +

    See also

    + +
    + + + diff --git a/CotEditor.help/Contents/Resources/en.lproj/pgs/faq_known_probrems.html b/CotEditor.help/Contents/Resources/en.lproj/pgs/faq_known_probrems.html new file mode 100644 index 0000000000..f248cc0f3f --- /dev/null +++ b/CotEditor.help/Contents/Resources/en.lproj/pgs/faq_known_probrems.html @@ -0,0 +1,31 @@ + + + + + + + + + +Are there any known issues? + + + + + +
    +

    Are there any known issues?

    +

    There are some known issues as listed below. These should be taken care of in the future releases, but solutions to them are not yet in sight.

    +
      +
    • When the Line Endings drop-down menu on the toolbar is opened, no check mark appears next to the selected item.
    • +
    • When Line Spacing is set bigger than 0, the underlines, that Japanese input methods show during Kana-Kanji conversion, are displayed lower than usual.
    • +
    • When “Fix line height with composite font” is turned on, white lines may appear between the lines inside the selection (i.e. the background-color can be seen through).
    • +
    • If you selected Cancel in the authentication window of “authopen” when saving, error logs are output to console. (“authopen” is the name of a helper application which is launched by CotEditor.)
    • +
    +
    + + + diff --git a/CotEditor.help/Contents/Resources/en.lproj/pgs/faq_not_find_solution.html b/CotEditor.help/Contents/Resources/en.lproj/pgs/faq_not_find_solution.html new file mode 100644 index 0000000000..2b0b30f0b4 --- /dev/null +++ b/CotEditor.help/Contents/Resources/en.lproj/pgs/faq_not_find_solution.html @@ -0,0 +1,34 @@ + + + + + + + + + +I can't find a solution + + + + + +
    +

    I can't find a solution

    +

    If you couldn't find any answer to your problem, please inquire by email. In doing so, make sure to include the following information:

    +
      +
    • Your environment information such as the version of OS, the version of CotEditor, your machine model, and so on.
    • +
    • What the problem is, in clear and concrete words.
    • +
    • What you've already tried to fix it, if any.
    • +
    +

    The issue tracking page you should send to is:

    + +
    + + + diff --git a/CotEditor.help/Contents/Resources/en.lproj/pgs/faq_re_coloring.html b/CotEditor.help/Contents/Resources/en.lproj/pgs/faq_re_coloring.html new file mode 100644 index 0000000000..3d87998745 --- /dev/null +++ b/CotEditor.help/Contents/Resources/en.lproj/pgs/faq_re_coloring.html @@ -0,0 +1,38 @@ + + + + + + + + + +Syntax coloring seems not working properly + + + + + +
    +

    Syntax coloring seems not working properly

    +

    When syntax coloring seems not working properly, try the following procedure:

    +
      +
    1. Choose Format > Syntax Coloring, and select Re-color All.
    2. +
    +

    If it doesn't help, the possible causes are:

    +
      +
    • There is something inadequate in your text (e.g. inadequate programming syntax).
    • +
    • There is something inadequate in your syntax coloring rule.
    • +
    + +

    See also

    + +
    + + + diff --git a/CotEditor.help/Contents/Resources/en.lproj/pgs/howto_complete.html b/CotEditor.help/Contents/Resources/en.lproj/pgs/howto_complete.html new file mode 100644 index 0000000000..a2212bd672 --- /dev/null +++ b/CotEditor.help/Contents/Resources/en.lproj/pgs/howto_complete.html @@ -0,0 +1 @@ + How to complete words

    How to complete words

    To complete words, follow the instruction below:

    1. Type the first few letters of a word.
    2. Press F5 or ESC.
    3. Choose the word you want to input from the pop-up list.
    • To close the list, press ESC.
    • Under the Completion List section in the General preferences pane, you can change the range of possible completions that appear in the list. For example, the list can include only the words in your document, or the words specified by your syntax style additionally.

    See also

    \ No newline at end of file diff --git a/CotEditor.help/Contents/Resources/en.lproj/pgs/howto_customize_complete.html b/CotEditor.help/Contents/Resources/en.lproj/pgs/howto_customize_complete.html new file mode 100644 index 0000000000..d9fca3a1d2 --- /dev/null +++ b/CotEditor.help/Contents/Resources/en.lproj/pgs/howto_customize_complete.html @@ -0,0 +1,36 @@ + + + + + + + + + +Changing the range of possible completions + + + + + +
    +

    Changing the range of possible completions

    +

    You can expand/limit the range of possible completions. The completion list can show only the words in your document, or additionally, the words specified by your syntax style, or along with them all, standard English words.

    +
      +
    1. Choose CotEditor > Preferences.
    2. +
    3. Click General.
    4. +
    5. Under Completion List, select the range of your choice.
    6. +
    + +

    See also

    + +
    + + + diff --git a/CotEditor.help/Contents/Resources/en.lproj/pgs/howto_customize_encoding_order.html b/CotEditor.help/Contents/Resources/en.lproj/pgs/howto_customize_encoding_order.html new file mode 100644 index 0000000000..e0c18b472c --- /dev/null +++ b/CotEditor.help/Contents/Resources/en.lproj/pgs/howto_customize_encoding_order.html @@ -0,0 +1,38 @@ + + + + + + + + + +Setting the priority of encoding auto-detection + + + + + +
    +

    Setting the priority of encoding auto-detection

    +

    To set the priority of encoding auto-detection:

    +
      +
    1. Choose CotEditor > Preferences.
    2. +
    3. Click Format.
    4. +
    5. In the File Encoding section, click Edit Encoding List.
    6. +
    7. Move up the encodings you use frequently, and place UTF-16 right under them.
      +(As UTF-16 is able to encode most characters, you need to put it at the bottom of often-used encodings.)
    8. +
    +

    Though you can change the order of encodings, you cannot delete them. Just move down the encodings you don't use.

    + +

    See also

    + +
    + + + diff --git a/CotEditor.help/Contents/Resources/en.lproj/pgs/howto_customize_font_color.html b/CotEditor.help/Contents/Resources/en.lproj/pgs/howto_customize_font_color.html new file mode 100644 index 0000000000..a5f7b5a9e9 --- /dev/null +++ b/CotEditor.help/Contents/Resources/en.lproj/pgs/howto_customize_font_color.html @@ -0,0 +1,39 @@ + + + + + + + + + +Changing font type and color + + + + + +
    +

    Changing font type and color

    +

    You can change your document's font type and color.

    +
      +
    1. Choose Format > Font > Show Fonts.
    2. +
    3. Select the font and color of your choice using the Font panel.
    4. +
    +
      +
    • These changes apply only to the window currently active. To change the default font for all new documents, choose CotEditor > Preferences > Format. To change the default text color, choose CotEditor > Preferences > View.
    • +
    • To change the colors for syntax coloring, choose CotEditor > Preferences > Syntax.
    • +
    + +

    See also

    + +
    + + + diff --git a/CotEditor.help/Contents/Resources/en.lproj/pgs/howto_customize_keybinding.html b/CotEditor.help/Contents/Resources/en.lproj/pgs/howto_customize_keybinding.html new file mode 100644 index 0000000000..4c9b97cd17 --- /dev/null +++ b/CotEditor.help/Contents/Resources/en.lproj/pgs/howto_customize_keybinding.html @@ -0,0 +1,41 @@ + + + + + + + + + +Customizing key bindings + + + + + +
    +

    Customizing key bindings

    +

    You can fully customize CotEditor's menu key bindings. Also, you can store text snippets which have your preferred key bindings assigned. By default, you can insert “<br />” (with a line ending) by pressing Shift-Return. To create your own key bindings:

    +
      +
    1. Choose CotEditor > Preferences.
    2. +
    3. Click Key Bindings.
    4. +
    5. Click Edit, and modify/add the key bindings as you like.
    6. +
    + +
      +
    • Menu Key Bindings must include Command key.
    • +
    • Additional Text Key Bindings must exclude Command key.
    • +
    • You cannot set the key bindings that are already taken (e.g. shortcuts for your script files or menu items that don't appear in the Menu Key Bindings list).
    • +
    + +

    See also

    + +
    + + + diff --git a/CotEditor.help/Contents/Resources/en.lproj/pgs/howto_customize_scriptmenu.html b/CotEditor.help/Contents/Resources/en.lproj/pgs/howto_customize_scriptmenu.html new file mode 100644 index 0000000000..dd156587d3 --- /dev/null +++ b/CotEditor.help/Contents/Resources/en.lproj/pgs/howto_customize_scriptmenu.html @@ -0,0 +1,45 @@ + + + + + + + + + +Customizing the Script menu + + + + + +
    +

    Customizing the Script menu

    +

    To add scripts to or remove scripts from the Script menu, follow the instruction below:

    +
      +
    1. In Finder, go to the folder:
      + ~/Library/Application Support/CotEditor/ScriptMenu
    2. +
    3. Put your script files in this folder, or remove from there.
    4. +
    5. In CotEditor, choose Script > Update Script Menu.
    6. +
    +
      +
    • CotEditor recognizes scripts only when their file extensions are: .applescript .scpt .sh .pl .php .rb .py
    • +
    • You can change the order of appearance or assign keyboard shortcuts by modifying the names of your script files.
      +See File naming rules for CotEditor scripts for more details.
    • +
    • You can create subfolders in the ScriptMenu folder. They will appear as submenus.
    • +
    • The changes you made inside the ScriptMenu folder will be automatically reflected when CotEditor launches. Thus, you need to perform “Update Script Menu” only when you made modifications during CotEditor is running.
    • +
    + +

    See also

    + +
    + + + diff --git a/CotEditor.help/Contents/Resources/en.lproj/pgs/howto_customize_syntaxstyle.html b/CotEditor.help/Contents/Resources/en.lproj/pgs/howto_customize_syntaxstyle.html new file mode 100644 index 0000000000..09f3583005 --- /dev/null +++ b/CotEditor.help/Contents/Resources/en.lproj/pgs/howto_customize_syntaxstyle.html @@ -0,0 +1,43 @@ + + + + + + + + + +About syntax styles + + + + + +
    +

    About syntax styles

    +

    CotEditor's syntax styles control syntax coloring, Outline Menu, and the completion list, all together. To customize styles:

    +
      +
    1. Choose CotEditor > Preferences.
    2. +
    3. Click Syntax.
    4. +
    5. Under the Syntax Style section, click “Choose style” and select the one you want to customize from the drop-down menu.
    6. +
    7. Click Edit.
    8. +
    +
      +
    • To use an existing style as a guide for creating your own, click Copy instead.
    • +
    + +

    See also

    + +
    + + + diff --git a/CotEditor.help/Contents/Resources/en.lproj/pgs/howto_customize_toolbar.html b/CotEditor.help/Contents/Resources/en.lproj/pgs/howto_customize_toolbar.html new file mode 100644 index 0000000000..fd00fb53f6 --- /dev/null +++ b/CotEditor.help/Contents/Resources/en.lproj/pgs/howto_customize_toolbar.html @@ -0,0 +1,28 @@ + + + + + + + + + +Customizing the toolbar + + + + + +
    +

    Customizing the toolbar

    +

    As Finder or many Cocoa applications, CotEditor allows you to customize the toolbar. To do that:

    +
      +
    • Choose View > Customize Toolbar.
    • +
    +
    + + + diff --git a/CotEditor.help/Contents/Resources/en.lproj/pgs/howto_filedrop.html b/CotEditor.help/Contents/Resources/en.lproj/pgs/howto_filedrop.html new file mode 100644 index 0000000000..3cd8f234bd --- /dev/null +++ b/CotEditor.help/Contents/Resources/en.lproj/pgs/howto_filedrop.html @@ -0,0 +1,35 @@ + + + + + + + + + +Using File Drop + + + + + +
    +

    Using File Drop

    +

    To use File Drop, drag and drop a file onto your document window.

    +
      +
    • You need to set in advance the string to be inserted when you drop a file.
    • +
    • To configure the behavior of File Drop, choose CotEditor > Preferences > File Drop.
    • +
    + +

    See also

    + +
    + + + diff --git a/CotEditor.help/Contents/Resources/en.lproj/pgs/howto_find_newline.html b/CotEditor.help/Contents/Resources/en.lproj/pgs/howto_find_newline.html new file mode 100644 index 0000000000..ae6e6b6eb8 --- /dev/null +++ b/CotEditor.help/Contents/Resources/en.lproj/pgs/howto_find_newline.html @@ -0,0 +1,30 @@ + + + + + + + + + +Finding a line ending or a tab + + + + + +
    +

    Finding a line ending or a tab

    +

    To search a line ending or a tab character using the Find panel, you can either write the corresponding regular expression, or use the following key combinations to input them in the Find field.

    + + + + +
    Regular expressionKey combination
    A line ending character\nOption-Return
    A tab character\tOption-Tab
    +
    + + + diff --git a/CotEditor.help/Contents/Resources/en.lproj/pgs/howto_inspect_fileinfo.html b/CotEditor.help/Contents/Resources/en.lproj/pgs/howto_inspect_fileinfo.html new file mode 100644 index 0000000000..458a7a20f6 --- /dev/null +++ b/CotEditor.help/Contents/Resources/en.lproj/pgs/howto_inspect_fileinfo.html @@ -0,0 +1,44 @@ + + + + + + + + + +Getting information about documents + + + + + +
    +

    Getting information about documents

    +

    In the Get Info drawer, you can view various information concerning your document.

    +
      +
    1. Choose File > Get Info.
    2. +
    3. To close the drawer, click the Close button, or choose File > Get Info again.
    4. +
    +

    Clicking the Get Info icon on the toolbar also opens the same drawer.

    +

    The information displayed in the drawer is as follows:

    + + + + + + + + + + + + +
    CreatorThe code identifying the application which created the file.
    TypeThe code identifying the file type.
    CreatedThe file creation date and time.
    ModifiedThe file modification date and time.
    OwnerThe user name of the owner of the file.
    PermissionThe file privilege (in UNIX-style).
    Finder's Lock“ON” indicates the file is locked, “-” indicates not.
    LineThe line number of the line containing the caret.
    CharThe caret-position described in the number of characters.
    (Selected)The number of characters in the selection, if any.
    UnicodeThe Unicode hexadecimal code (UTF-16) for the character (displayed only when one character is selected).
    +
    + + + diff --git a/CotEditor.help/Contents/Resources/en.lproj/pgs/howto_inspect_usedchar.html b/CotEditor.help/Contents/Resources/en.lproj/pgs/howto_inspect_usedchar.html new file mode 100644 index 0000000000..35bc45f0c5 --- /dev/null +++ b/CotEditor.help/Contents/Resources/en.lproj/pgs/howto_inspect_usedchar.html @@ -0,0 +1,31 @@ + + + + + + + + + +Checking whether incompatible characters are included + + + + + +
    +

    Checking whether incompatible characters are included

    +

    If you input a character which is incompatible with your document's current encoding, it can appear garbled when you save and reopen the file. This function helps to prevent that kind of problem. You can check if there are any such problematic characters in your document, before closing it.

    +

    Also, this function is useful when you are going to convert between the two encodings whose character repertoires are different from each other, for example, from Japanese (Mac OS) to Japanese (Windows, DOS) or from Unicode to a local encoding.

    +

    To show incompatible characters:

    +
      +
    1. Choose File > Show Incompatible Char.
    2. +
    3. To close the drawer, click Close, or choose File > Show Incompatible Char again.
    4. +
    +
    + + + diff --git a/CotEditor.help/Contents/Resources/en.lproj/pgs/howto_open_hidden_file.html b/CotEditor.help/Contents/Resources/en.lproj/pgs/howto_open_hidden_file.html new file mode 100644 index 0000000000..8419532bf7 --- /dev/null +++ b/CotEditor.help/Contents/Resources/en.lproj/pgs/howto_open_hidden_file.html @@ -0,0 +1,33 @@ + + + + + + + + + +Opening hidden files + + + + + +
    +

    Opening hidden files

    +

    You can open files that are invisible in Finder. +

      +
    1. Whie holding down the Shift key, choose File.
    2. +
    3. Select Open Hidden.
    4. +
    +
      +
    • If you press the Shift key while showing the File menu, Open will turn into Open Hidden.
    • +
    • Pressing Command-Shift-O gives you the same result.
    • +
    +
    + + + diff --git a/CotEditor.help/Contents/Resources/en.lproj/pgs/howto_print.html b/CotEditor.help/Contents/Resources/en.lproj/pgs/howto_print.html new file mode 100644 index 0000000000..f81dbf9042 --- /dev/null +++ b/CotEditor.help/Contents/Resources/en.lproj/pgs/howto_print.html @@ -0,0 +1,29 @@ + + + + + + + + + +Printing a document + + + + + +
    +

    Printing a document

    +

    To print your document, choose File > Print.

    +
      +
    • The options you've set in the Print preferences pane are in effect when you print.
    • +
    • In the print dialog, you can click Copies & Pages and select the CotEditor option from the drop-down menu, then you can temporarily modify your print settings (you cannot change the font setting there).
    • +
    +
    + + + diff --git a/CotEditor.help/Contents/Resources/en.lproj/pgs/howto_rectangularSelection.html b/CotEditor.help/Contents/Resources/en.lproj/pgs/howto_rectangularSelection.html new file mode 100644 index 0000000000..e98cc530e3 --- /dev/null +++ b/CotEditor.help/Contents/Resources/en.lproj/pgs/howto_rectangularSelection.html @@ -0,0 +1,25 @@ + + + + + + + + + +Selecting rectangular area + + + + + +
    +

    Selecting rectangular area

    +

    You can select rectangular area in your document. To do so, drag and select text while holding down the Option key.

    +
    + + + diff --git a/CotEditor.help/Contents/Resources/en.lproj/pgs/howto_show_outlinemenu.html b/CotEditor.help/Contents/Resources/en.lproj/pgs/howto_show_outlinemenu.html new file mode 100644 index 0000000000..406eba37ce --- /dev/null +++ b/CotEditor.help/Contents/Resources/en.lproj/pgs/howto_show_outlinemenu.html @@ -0,0 +1,36 @@ + + + + + + + + + +How to show Outline Menu + + + + + +
    +

    How to show Outline Menu

    +

    Outline Menu generates a drop-down menu listing specific parts of your document according to the Outline Menu settings of your syntax style. The menu is displayed beneath the toolbar. By clicking on an item in the menu, you can easily go and select the corresponding part.

    +
      +
    • To show Outline Menu, choose View > Show Navigation Bar.
    • +
    • You need to make syntax coloring active in order to use Outline Menu.
    • +
    +

    The Outline Menu settings, where you can configure what items should appear and how they should be titled in the menu, are included in the Syntax Style settings.

    + +

    See also

    + +
    + + + diff --git a/CotEditor.help/Contents/Resources/en.lproj/pgs/howto_split.html b/CotEditor.help/Contents/Resources/en.lproj/pgs/howto_split.html new file mode 100644 index 0000000000..bb34317a1e --- /dev/null +++ b/CotEditor.help/Contents/Resources/en.lproj/pgs/howto_split.html @@ -0,0 +1,27 @@ + + + + + + + + + +Splitting a document window + + + + + +
    +

    Splitting a document window

    +

    To split a document window into multiple panes, choose View > Split View, or, click the icon on the right edge of the navigation bar.

    +

    To close a split view, choose View > Close Split View, or, click the second icon from the right edge of the navigation bar.

    +

    +
    + + + diff --git a/CotEditor.help/Contents/Resources/en.lproj/pgs/howto_uninstall.html b/CotEditor.help/Contents/Resources/en.lproj/pgs/howto_uninstall.html new file mode 100644 index 0000000000..44b78ee0da --- /dev/null +++ b/CotEditor.help/Contents/Resources/en.lproj/pgs/howto_uninstall.html @@ -0,0 +1,31 @@ + + + + + + + + + +Uninstalling CotEditor + + + + + +
    +

    Uninstalling CotEditor

    +

    To uninstall CotEditor, delete the following files and folders:

    +
      +
    • /Applications/CotEditor
    • +
    • ~/Library/Application Support/CotEditor
    • +
    • ~/Library/Preferences/com.aynimac.CotEditor.plist
    • +
    +

    Here, the tilde (~) represents the user's home folder and the slash (/) means the folder separator.

    +
    + + + diff --git a/CotEditor.help/Contents/Resources/en.lproj/pgs/overview.html b/CotEditor.help/Contents/Resources/en.lproj/pgs/overview.html new file mode 100644 index 0000000000..a4bbe62403 --- /dev/null +++ b/CotEditor.help/Contents/Resources/en.lproj/pgs/overview.html @@ -0,0 +1,95 @@ + + + + + + + + + + +Discover CotEditor + + + + + +
    +

    Discover CotEditor

    +

    CotEditor is a Cocoa text editor designed for editing plain text files such as web pages (HTML), program source codes (Perl, Ruby, etc.), or TeX sources. CotEditor offers a lot of useful features that are not available in Mac OS X's TextEdit. You'll find some of them below.

    + +
    +

    Powerful find and replace

    +

    ov_find.pngCotEditor has a very powerful find and replace using OgreKit [website].

    +

    In addition to the support for regular expression search, you can display a list of search results, or highlight matched words in your document.

    +
    + +
    +

    Syntax coloring

    +

    ov_color.pngCotEditor can colorize particular strings such as reserved words of programming languages, TeX commands, and HTML elements.

    rr +

    Coloring rules for major programming languages are built in by default, and you can add or customize styles as you like. You can also define the strings to be colored by regular expression patterns, not only by words.

    + +
    + +
    +

    Outline Menu

    +

    ov_outline.pngCotEditor's Outline Menu extracts predefined keywords from the document and displays them in a drop-down menu. By clicking on a listed item, you can go directly to the corresponding part of your document.

    +

    You can set what items should appear and how they should be titled in the menu by customizing the corresponding syntax style.

    + +
    + +
    +

    Word completion

    +

    ov_complete.pngWord completion assists you to input words faster, such as when typing reserved words of programming languages or HTML elements.

    +

    If you press the ESC or F5 key after typing the first few letters of a word, a list of possible completions shows up. You only need to select the one you want to input from the list. The range of completions can be expanded or limited.

    + +
    + +
    +

    Script menu

    +

    ov_complete.pngThe Script menu lets you run scripts to manipulate your document or launch external programs.

    +

    You can use AppleSctipt scripts, Perl, PHP, Ruby, and UNIX shell scripts as well.

    + +
    + +
    +

    Other features

    +
    +
    File Drop
    +
    File Drop lets you insert a specified string when you drop a file onto your document window. For example, you can insert the IMG tag into your HTML document by dropping an image file on it.
    +
    Key bindings
    +
    CotEditor's original key bindings are fully customizable.
    +
    AppleScript compatible
    +
    AppleScript can automate your workflow. You can call your scripts via the Script menu.
    +
    Support for the External Editor Protocol
    +
    CotEditor supports the External Editor Protocol in order to act as an external editor for applications implementing this protocol such as Cyberduck [website] or Interarchy [website] or RBrowser [website]. In those applications you can choose CotEditor to edit a file on a server.
    +
    Line numbers
    +
    CotEditor can display line numbers. This is useful such as when you develop and debug programs.
    +
    Window transparency
    +
    You can change a window's transparency. When you have many documents opened, this will help you find the one you need.
    +
    Line spacing
    +
    You can set space between lines as you see fit.
    +
    Incompatible characters
    +
    There are some characters you cannot save with a particular encoding. This feature enables you to check if those characters are included in your document.
    +
    Split view
    +
    You can split a single window into multiple panes to view different parts of your document at the same time.
    +
    +
    + +
    + + diff --git a/CotEditor.help/Contents/Resources/en.lproj/pgs/pref_appearance.html b/CotEditor.help/Contents/Resources/en.lproj/pgs/pref_appearance.html new file mode 100644 index 0000000000..67efd45085 --- /dev/null +++ b/CotEditor.help/Contents/Resources/en.lproj/pgs/pref_appearance.html @@ -0,0 +1,44 @@ + + + + + + + + + +View preferences + + + + + + +
    +

    View preferences

    +

    The View preferences let you set the default appearance of documents, including text color and invisible characters' alternatives.
    +Changes you make here will take effect when you next create/open a document.

    +
    +
    Basic Coloring
    +
    The configurations for basic coloring other than syntax coloring go here. Included are the color of text, selection, insertion point, and background.
    +You can customize the syntax coloring rules in the Syntax preferences pane.
    +
    +
    +
    Show Invisible Characters
    +
    You can transform invisible characters — space, tab, line ending, control character — into alternative symbols in order to make them viewable. Select the symbol you wish to use from the drop-down menu.
    +The default font you set in the Format pane applies to these symbols as well.
    +
    + +

    See also

    + +
    + + + diff --git a/CotEditor.help/Contents/Resources/en.lproj/pgs/pref_filedrop.html b/CotEditor.help/Contents/Resources/en.lproj/pgs/pref_filedrop.html new file mode 100644 index 0000000000..10165c55f9 --- /dev/null +++ b/CotEditor.help/Contents/Resources/en.lproj/pgs/pref_filedrop.html @@ -0,0 +1,49 @@ + + + + + + + + + +File Drop preferences + + + + + + +
    +

    File Drop preferences

    +

    File Drop allows you to insert a fixed text when you drop a file onto your document window. For example, you can automatically insert the IMG tag into your HTML document by dropping an image file from Finder.

    +
    +
    File extensions
    +
    Here, enter the file extensions of files being dropped.
    +
    +
    +
    Insertion format
    +
    Here, format the string as you want it to be inserted. +
    +
    Pre-formatted string
    +
    You can use CotEditor's pre-formatted strings in an insertion format.
    +
    +
    +
    + +
      +
    • Pre-formatted strings are going to be replaced with the corresponding information of the dropped file.
    • +
    + +

    See also

    + + +
    + + diff --git a/CotEditor.help/Contents/Resources/en.lproj/pgs/pref_format.html b/CotEditor.help/Contents/Resources/en.lproj/pgs/pref_format.html new file mode 100644 index 0000000000..ecc5c20233 --- /dev/null +++ b/CotEditor.help/Contents/Resources/en.lproj/pgs/pref_format.html @@ -0,0 +1,107 @@ + + + + + + + + + +Format preferences + + + + + + +
    +

    Format preferences

    +

    You can set the default format such as font type or file encoding for new documents.
    +Changes you make here will take effect when you next create/open a document.

    +
    +
    □ Soft wrap lines
    +
    When this option is turned on, CotEditor soft-wraps long lines so that you can view them within the window width. Otherwise, CotEditor shows horizontal scroll bar without wrapping text.
    +
    +
    +
    □ Auto indent
    +
    When this option is selected, CotEditor automatically indents each line you create by hitting the Return/Enter key. The new line will begin at the same indentation point as the previous line.
    +
    +
    +
    □ Fix line height with composite font
    +
    With this option turned on, CotEditor forces the line height to be fixed regardless of the font you use or the character you input.
    +The line height gets larger than when this option is off.
    +
    +
    +
    Line spacing:
    +
    You can adjust line spacing with a value indicating the number of lines. The range you can set is from 0.00 to 10.00 (lines).
    +(The actual height of space between lines is the product of the value you set here and the point size of the font)
    +
    +
    +
    +
    +
    □ Auto expand tabs to spaces
    +
    With this option turned on, CotEditor automatically converts tab characters to spaces as you type.
    +
    +
    +
    □ Tab/Indent width:
    +
    You can specify the number of spaces to which a tab character is expanded. 4 or 8 spaces are typically used.
    +
    +
    +
    +
    +
    Line endings for new documents:
    +
    You can set the default line ending style used when creating a new document.
    +
    +
    +
    File Encoding
    +
    +
    +
    When creating a file:
    +
    You can set the default character encoding used when creating a new document.
    +
    When opening a file:
    +
    You can set the default character encoding used when opening an existing file. Auto-Detect will do fine for most cases.
    +
    +
    +
    □ Save UTF-8 files with a BOM (not recommended)
    +
    Turn this option on if you want to add a BOM (Byte Order Mark) to any file you save as UTF-8.
    +UTF-8 with BOM can be problematic in some cases, so use this option with care. Leaving this option off is recommended unless you have a specific need for it.
    +
    □ Refer to encoding declaration
    +
    When this option is selected, CotEditor respects the encoding declaration written in your document.
    +CotEditor can detect charset=, encoding=, and @charset (in order of precedence).
    +See Using encoding declarations (charset=, encoding=, @charset) for auto-detection for more details. +
    +
    +
    +
    Edit Encoding List
    +
    You can customize the order of encodings that appear in the File Encoding submenu of the Format menu and the File Encoding drop-down list on the toolbar. This order is also used for encoding auto-detection and CotEditor tries each encoding from the top of the list. See Setting the priority of encoding auto-detection for more details.
    +
    +
    +
    + +
      +
    • In the case you've selected anything other than Auto-Detect for “When opening a file,” if CotEditor opened a file with a different encoding from the one used to create the file, you need to manually make CotEditor reinterpret it.
    • +
    + +
    +
    Font
    +
    You can set the default font type and size.
    +
    +
    +
    □ Anti-aliasing
    +
    With this option selected, CotEditor displays text anti-aliased.
    +
    +
    +
    + +

    See also

    + +
    + + + diff --git a/CotEditor.help/Contents/Resources/en.lproj/pgs/pref_general.html b/CotEditor.help/Contents/Resources/en.lproj/pgs/pref_general.html new file mode 100644 index 0000000000..7290854541 --- /dev/null +++ b/CotEditor.help/Contents/Resources/en.lproj/pgs/pref_general.html @@ -0,0 +1,104 @@ + + + + + + + + + +General preferences + + + + + + +
    +

    General preferences

    +

    The General preferences control various overall behaviors of CotEditor.

    +
    +
    □ Create a new document on startup
    +
    When this option is selected, a new blank document will be opened when you launch CotEditor.
    +
    +
    +
    □ Open blank window with a reopen AppleEvent
    +
    With this option selected, you can open a blank document by clicking CotEditor's icon in the Dock, provided you had no window already open.
    +
    +
    +
    □ Smart insert and delete
    +
    With this option turned on, when you paste or drag a word in between other words, a halfwidth space will be automatically added between the words to maintain that boundary. Meanwhile, any extra spaces will be automatically removed when you cut/delete a word. (This function only has meaning when you edit in English.)
    +
    +
    +
    □ Check spelling as you type
    +
    This option allows you to automatically check your spelling as you type.
    +
    +
    +
    □ Drag selected text immediately (just like in Carbon applications)
    +
    In order to drag selected text, you need to hold the mouse button pressed more than 0.3 seconds before starting dragging, but with this option turned on, you can reduce the waiting time and start dragging immediately. (This is an experimental implementation.)
    +
    +
    +
    □ Swap "¥" and "\" keys
    +
    With this option selected, you can input a backslash (\) using the key binding for the Yen sign (¥), and vice versa.
    +
    +
    +
    □ Highlight matching braces "( )" "[ ]" "{ }"
    +
    With this option turned on, CotEditor briefly highlights the corresponding opening brace when you write a closing brace.
    +
    +
    +
    □ Highlight "< >"
    +
    If this is on, highlighting will apply to angle brackets “< >” as well.
    +
    +
    +
    +
    +
    □ Count each line ending as one character
    +
    With this option selected, the character count displayed in the Get Info drawer and the status bar includes line endings.
    +
    +
    +
    □ Sync Find strings with other applications
    +
    With this option selected, the Find panel automatically retrieves the latest Find string searched in another Cocoa application.
    +
    +
    +
    □ Inline Script menu items into contextual menu
    +
    With this option turned on, the contents of the Script menu items, which are in the Script submenu by default, appear inlined in the contextual menu.
    +
    +
    +
    Type and Creator on Saving
    +
    Here, you can control how CotEditor sets its type and creator codes when saving a file. +
    +
    ○ Keep the originals (if any, otherwise set CotEditor's codes)
    +
    If the file already has its type and creator codes, CotEditor leaves them as is. Otherwise, CotEditor sets its own codes.
    +
    ○ Always set CotEditor's codes
    +
    CotEditor always sets its type and creator codes. If the file you are saving had been created by another application, the codes will be replaced.
    +
    ○ Set no codes
    +
    CotEditor never sets or modifies the codes.
    +
    +
    +
    +
    +
    Completion List
    +
    Here, you can change the range of possible completions that appear in the completion list.
    +
    +
    +
    ○ Show Document's words only
    +
    The list shows only the words appear in your document.
    +
    ○ Show Document's words + Syntax Style's words
    +
    In addition to the in-document words, the words defined by your syntax style appear in the list (in the case you've not specified any completions, the words generated by the syntax coloring rule appear).
    +
    ○ Show Document's words + Syntax Style's words + Standard words
    +
    In addition to all of the above, the list shows standard English words as well.
    +
    +
    +
    + +

    See also

    + +
    + + + diff --git a/CotEditor.help/Contents/Resources/en.lproj/pgs/pref_keybinding.html b/CotEditor.help/Contents/Resources/en.lproj/pgs/pref_keybinding.html new file mode 100644 index 0000000000..1e2f4351d8 --- /dev/null +++ b/CotEditor.help/Contents/Resources/en.lproj/pgs/pref_keybinding.html @@ -0,0 +1,48 @@ + + + + + + + + + +Key Bindings preferences + + + + + + +
    +

    Key Bindings preferences

    +

    Some of the CotEditor's menu items can be executed using keyboard shortcuts. CotEditor allows you to customize those key bindings. Also, CotEditor lets you store some text snippets you use frequently along with your preferred keyboard shortcuts.

    +
    +
    Menu Key Bindings
    +
    You can change the key bindings for CotEditor's menu items.
    +
    +
      +
    • The key bindings you set here must include Command key.
    • +
    +
    +
    Additional Text Key Bindings
    +
    You can add text snippets along with your preferred keyboard shortcuts.
    +
    +
      +
    • The key bindings you set here must exclude Command key.
    • +
    • Here, you can set only the key bindings for CotEditor's own text handling commands. For more details about customizing the standard key bindings of Cocoa applications, see Apple's documentation (external link):
      +OS X keyboard shortcuts
    • +
    + +

    See also

    + + +
    + + + diff --git a/CotEditor.help/Contents/Resources/en.lproj/pgs/pref_print.html b/CotEditor.help/Contents/Resources/en.lproj/pgs/pref_print.html new file mode 100644 index 0000000000..7a828c1405 --- /dev/null +++ b/CotEditor.help/Contents/Resources/en.lproj/pgs/pref_print.html @@ -0,0 +1,53 @@ + + + + + + + + + +Print preferences + + + + + + +
    +

    Print preferences

    +

    You can change the default print options here.
    +Changes you make here will take effect when you next create/open a document.

    +
    +
    Color
    +
    To print a file with syntax coloring enabled, select the “Same as document's setting” option here.
    +
    +
    +
    Line numbers
    +
    You can choose between No Print, Same as document's setting, and Print.
    +
    +
    +
    Invisible Chars
    +
    You can choose between No Print, Same as document's setting, and Print All.
    +
    +
    +
    Print Font
    +
    You can either use the document's font or specify another font for printing purpose.
    +
    +
    +
    Header and Footer
    +
    You can configure whether to print, what to print, whether to add separators, and where to print.
    +
    + +

    See also

    + + +
    + + + diff --git a/CotEditor.help/Contents/Resources/en.lproj/pgs/pref_syntax.html b/CotEditor.help/Contents/Resources/en.lproj/pgs/pref_syntax.html new file mode 100644 index 0000000000..2257ad2f26 --- /dev/null +++ b/CotEditor.help/Contents/Resources/en.lproj/pgs/pref_syntax.html @@ -0,0 +1,72 @@ + + + + + + + + + +Syntax preferences + + + + + + +
    +

    Syntax preferences

    +

    The Syntax preferences allow you to modify the syntax coloring settings, or set up your own syntax styles.

    +
    +
    □ Do syntax coloring for new/current document
    +
    If this option is turned on, CotEditor colors your document according to its kind.
    +
    +
    +
    Default syntax style for coloring
    +
    If there is no syntax style associated with the extension of the file you opened, the one you specified here will be used for coloring.
    +This setting applies to a newly created document as well.
    +
    □ Delay coloring
    +
    When this option is on, CotEditor starts coloring shortly after you complete typing. With this option off, coloring begins as you type.
    +
    +
    +
    +
    +
    Extended Coloring
    +
    You can set the colors for syntax coloring here.
    +The code elements CotEditor colors are: Keywords, Commands, Values, Numbers, Strings, Characters, Comments.
    +
    +
    +
    Syntax Style
    +
    Here, you can edit an existing style or add your own style.
    +
    +
    +
    Show Extension Error
    +
    You can check if multiple styles are associated with an extension.
    +
    Delete
    +
    You can remove the selected style.
    +
    Edit
    +
    You can edit the selected style. Note that CotEditor saves the syntax style configurations per user, which means only the current user's styles will reflect the changes you make here.
    +
    Copy
    +
    You can copy the selected style in order to make your own.
    +
    New
    +
    You can create a new style.
    +
    Export
    +
    This allows you to export the selected style so that you can use it on another computer. To use the exported file, click Import.
    +
    Import
    +
    This allows you to use a style created on another computer. After clicking Import, select an exported style file.
    +
    +
    +
    + +

    See also

    + +
    + + + diff --git a/CotEditor.help/Contents/Resources/en.lproj/pgs/pref_window.html b/CotEditor.help/Contents/Resources/en.lproj/pgs/pref_window.html new file mode 100644 index 0000000000..1575776bb0 --- /dev/null +++ b/CotEditor.help/Contents/Resources/en.lproj/pgs/pref_window.html @@ -0,0 +1,82 @@ + + + + + + + + + +Window preferences + + + + + + +
    +

    Window preferences

    +

    The Window preferences allow you to set the default window appearance such as widow size or line number display.
    +Changes you make here will take effect when you next create/open a document.

    +
    +
    □ Show navigation bar
    +
    With this option turned on, CotEditor's navigation bar appears beneath the toolbar.
    +
    +
    +
    □ Show line numbers
    +
    With this option turned on, CotEditor shows line numbers on the left side of the window.
    +
    +
    +
    □ Show wrapped-line mark
    +
    With this option turned on, you'll see a mark indicating that the line next to it is being wrapped. When this option is off, nothing is displayed.
    +
    +
    +
    +
    +
    □ Show status bar
    +
    With this option turned on, CotEditor shows a status bar at the bottom of the window.
    +
    +
    +
    □ Show thousands separator
    +
    With this option selected, numbers are displayed with thousands separators.
    +
    +
    +
    +
    +
    □ Show page guide
    +
    When this is turned on, a page guide (a vertical gray line) is displayed in the window's text view area.
    +
    +
    +
    Display at column:
    +
    You can specify the column at which you want the page guide displayed. Note that the display position will differ according to your font setting.
    +The default font type can be changed in the Format preferences.
    +
    +
    +
    +
    +
    Window Size
    +
    You can set the default window size. Clicking “Get from sample window” opens a sample window so that you can set the width and height visually.
    +
    +
    +
    Window Transparency
    +
    You can set the default window tranparency using the slider.
    +
    +
    +
    □ Text view only
    +
    When this option is selected, the transparency setting affects only the text view area. Otherwise, it affects the whole window including such as the title bar and the scroll bar.
    +
    +
    +
    + +

    See also

    + +
    + + + diff --git a/CotEditor.help/Contents/Resources/en.lproj/xpgs/xall.html b/CotEditor.help/Contents/Resources/en.lproj/xpgs/xall.html new file mode 100644 index 0000000000..6384f002c4 --- /dev/null +++ b/CotEditor.help/Contents/Resources/en.lproj/xpgs/xall.html @@ -0,0 +1,39 @@ + + + + + + + + + + +Index + + + + + +

    Index

    + + + + diff --git a/CotEditor.help/Contents/Resources/en.lproj/xpgs/xcomplete.html b/CotEditor.help/Contents/Resources/en.lproj/xpgs/xcomplete.html new file mode 100644 index 0000000000..18a52ae04b --- /dev/null +++ b/CotEditor.help/Contents/Resources/en.lproj/xpgs/xcomplete.html @@ -0,0 +1,31 @@ + + + + + + + + + + +word completion + + + + + +

    word completion

    + + + + diff --git a/CotEditor.help/Contents/Resources/en.lproj/xpgs/xconfiguration.html b/CotEditor.help/Contents/Resources/en.lproj/xpgs/xconfiguration.html new file mode 100644 index 0000000000..e3c248fcd3 --- /dev/null +++ b/CotEditor.help/Contents/Resources/en.lproj/xpgs/xconfiguration.html @@ -0,0 +1,33 @@ + + + + + + + + + + +setting up + + + + + +

    setting up

    + + + + diff --git a/CotEditor.help/Contents/Resources/en.lproj/xpgs/xcustomize.html b/CotEditor.help/Contents/Resources/en.lproj/xpgs/xcustomize.html new file mode 100644 index 0000000000..428c782178 --- /dev/null +++ b/CotEditor.help/Contents/Resources/en.lproj/xpgs/xcustomize.html @@ -0,0 +1,32 @@ + + + + + + + + + + +customizing + + + + + +

    customizing

    + + + + diff --git a/CotEditor.help/Contents/Resources/en.lproj/xpgs/xencoding.html b/CotEditor.help/Contents/Resources/en.lproj/xpgs/xencoding.html new file mode 100644 index 0000000000..3b9db4d4c2 --- /dev/null +++ b/CotEditor.help/Contents/Resources/en.lproj/xpgs/xencoding.html @@ -0,0 +1,34 @@ + + + + + + + + + + +text encoding + + + + + +

    text encoding

    + + + + diff --git a/CotEditor.help/Contents/Resources/en.lproj/xpgs/xfaq.html b/CotEditor.help/Contents/Resources/en.lproj/xpgs/xfaq.html new file mode 100644 index 0000000000..0f02e18493 --- /dev/null +++ b/CotEditor.help/Contents/Resources/en.lproj/xpgs/xfaq.html @@ -0,0 +1,37 @@ + + + + + + + + + + +solving problems + + + + + +

    solving problems

    + + + + diff --git a/CotEditor.help/Contents/Resources/en.lproj/xpgs/xfiledrop.html b/CotEditor.help/Contents/Resources/en.lproj/xpgs/xfiledrop.html new file mode 100644 index 0000000000..798fb389a4 --- /dev/null +++ b/CotEditor.help/Contents/Resources/en.lproj/xpgs/xfiledrop.html @@ -0,0 +1,31 @@ + + + + + + + + + + +file drop + + + + + +

    file drop

    + + + + diff --git a/CotEditor.help/Contents/Resources/en.lproj/xpgs/xhowto.html b/CotEditor.help/Contents/Resources/en.lproj/xpgs/xhowto.html new file mode 100644 index 0000000000..7535b1459b --- /dev/null +++ b/CotEditor.help/Contents/Resources/en.lproj/xpgs/xhowto.html @@ -0,0 +1,38 @@ + + + + + + + + + + +tips + + + + + +

    tips

    + + + + diff --git a/CotEditor.help/Contents/Resources/en.lproj/xpgs/xoutlinemenu.html b/CotEditor.help/Contents/Resources/en.lproj/xpgs/xoutlinemenu.html new file mode 100644 index 0000000000..0472884e1b --- /dev/null +++ b/CotEditor.help/Contents/Resources/en.lproj/xpgs/xoutlinemenu.html @@ -0,0 +1,31 @@ + + + + + + + + + + +outline menu + + + + + +

    outline menu

    + + + + diff --git a/CotEditor.help/Contents/Resources/en.lproj/xpgs/xpreferences.html b/CotEditor.help/Contents/Resources/en.lproj/xpgs/xpreferences.html new file mode 100644 index 0000000000..8c7985a72f --- /dev/null +++ b/CotEditor.help/Contents/Resources/en.lproj/xpgs/xpreferences.html @@ -0,0 +1,36 @@ + + + + + + + + + + +preferences + + + + + +

    preferences

    + + + + diff --git a/CotEditor.help/Contents/Resources/en.lproj/xpgs/xprint.html b/CotEditor.help/Contents/Resources/en.lproj/xpgs/xprint.html new file mode 100644 index 0000000000..4278926ea3 --- /dev/null +++ b/CotEditor.help/Contents/Resources/en.lproj/xpgs/xprint.html @@ -0,0 +1,30 @@ + + + + + + + + + + +printing + + + + + +

    printing

    +
    +

    Click a topic below.

    + +
    + + + diff --git a/CotEditor.help/Contents/Resources/en.lproj/xpgs/xscriptmenu.html b/CotEditor.help/Contents/Resources/en.lproj/xpgs/xscriptmenu.html new file mode 100644 index 0000000000..3706a1d559 --- /dev/null +++ b/CotEditor.help/Contents/Resources/en.lproj/xpgs/xscriptmenu.html @@ -0,0 +1,32 @@ + + + + + + + + + + +script menu + + + + + +

    script menu

    + + + + diff --git a/CotEditor.help/Contents/Resources/en.lproj/xpgs/xsyntax.html b/CotEditor.help/Contents/Resources/en.lproj/xpgs/xsyntax.html new file mode 100644 index 0000000000..11d6529994 --- /dev/null +++ b/CotEditor.help/Contents/Resources/en.lproj/xpgs/xsyntax.html @@ -0,0 +1,33 @@ + + + + + + + + + + +syntax styles + + + + + +

    syntax styles

    + + + + diff --git a/CotEditor.help/Contents/Resources/ja.lproj/CotEditorHelp.helpindex b/CotEditor.help/Contents/Resources/ja.lproj/CotEditorHelp.helpindex new file mode 100644 index 0000000000..59e0dca2e4 Binary files /dev/null and b/CotEditor.help/Contents/Resources/ja.lproj/CotEditorHelp.helpindex differ diff --git a/CotEditor.help/Contents/Resources/ja.lproj/CotEditorHelp.html b/CotEditor.help/Contents/Resources/ja.lproj/CotEditorHelp.html new file mode 100644 index 0000000000..786c569633 --- /dev/null +++ b/CotEditor.help/Contents/Resources/ja.lproj/CotEditorHelp.html @@ -0,0 +1,35 @@ + + + + + + + + + + + + +CotEditor ヘルプ + + +
    +


    CotEditor ヘルプ

    +
    coteditor.github.io
    +
    + + + diff --git a/CotEditor.help/Contents/Resources/ja.lproj/InfoPlist.strings b/CotEditor.help/Contents/Resources/ja.lproj/InfoPlist.strings new file mode 100644 index 0000000000..549bcfaad1 --- /dev/null +++ b/CotEditor.help/Contents/Resources/ja.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ +HPDBookTitle = “CotEditor ヘルプ"; diff --git a/CotEditor.help/Contents/Resources/ja.lproj/gfx/ov_color.png b/CotEditor.help/Contents/Resources/ja.lproj/gfx/ov_color.png new file mode 100644 index 0000000000..de594882f9 Binary files /dev/null and b/CotEditor.help/Contents/Resources/ja.lproj/gfx/ov_color.png differ diff --git a/CotEditor.help/Contents/Resources/ja.lproj/gfx/ov_complete.png b/CotEditor.help/Contents/Resources/ja.lproj/gfx/ov_complete.png new file mode 100644 index 0000000000..86c4564e9f Binary files /dev/null and b/CotEditor.help/Contents/Resources/ja.lproj/gfx/ov_complete.png differ diff --git a/CotEditor.help/Contents/Resources/ja.lproj/gfx/ov_find.png b/CotEditor.help/Contents/Resources/ja.lproj/gfx/ov_find.png new file mode 100644 index 0000000000..e80f81c867 Binary files /dev/null and b/CotEditor.help/Contents/Resources/ja.lproj/gfx/ov_find.png differ diff --git a/CotEditor.help/Contents/Resources/ja.lproj/gfx/ov_outline.png b/CotEditor.help/Contents/Resources/ja.lproj/gfx/ov_outline.png new file mode 100644 index 0000000000..01f804a2b6 Binary files /dev/null and b/CotEditor.help/Contents/Resources/ja.lproj/gfx/ov_outline.png differ diff --git a/CotEditor.help/Contents/Resources/ja.lproj/gfx/ov_scriptmenu.png b/CotEditor.help/Contents/Resources/ja.lproj/gfx/ov_scriptmenu.png new file mode 100644 index 0000000000..574a352ca8 Binary files /dev/null and b/CotEditor.help/Contents/Resources/ja.lproj/gfx/ov_scriptmenu.png differ diff --git a/CotEditor.help/Contents/Resources/ja.lproj/gfx/split_editor.png b/CotEditor.help/Contents/Resources/ja.lproj/gfx/split_editor.png new file mode 100644 index 0000000000..76c09da98a Binary files /dev/null and b/CotEditor.help/Contents/Resources/ja.lproj/gfx/split_editor.png differ diff --git a/CotEditor.help/Contents/Resources/ja.lproj/gfx/wind_encoding.png b/CotEditor.help/Contents/Resources/ja.lproj/gfx/wind_encoding.png new file mode 100644 index 0000000000..17d6908277 Binary files /dev/null and b/CotEditor.help/Contents/Resources/ja.lproj/gfx/wind_encoding.png differ diff --git a/CotEditor.help/Contents/Resources/ja.lproj/pgs/about_applescript.html b/CotEditor.help/Contents/Resources/ja.lproj/pgs/about_applescript.html new file mode 100644 index 0000000000..8f2d2029f6 --- /dev/null +++ b/CotEditor.help/Contents/Resources/ja.lproj/pgs/about_applescript.html @@ -0,0 +1,39 @@ + + + + + + + + + +AppleScript との連携 + + + + + +
    +

    AppleScript との連携

    +

    CotEditor は AppleScript をサポートしています。CotEditor でサポートされているクラス・コマンドについては、用語説明を参照してください。用語説明を参照するには、次のようにします。

    + +
      +
    1. ヘルプメニューの「AppleScript辞書」を選択します。
    2. +
    +
      +
    • クラス・コマンドの詳細や例文は「~/Library/Application Support/CotEditor/ScriptMenu/AppleScript/AboutAppleScript-jp.rtf」を参照してください。
    • +
    + +

    関連項目

    + +
    + + + diff --git a/CotEditor.help/Contents/Resources/ja.lproj/pgs/about_autodetect_charset.html b/CotEditor.help/Contents/Resources/ja.lproj/pgs/about_autodetect_charset.html new file mode 100644 index 0000000000..7382ff4486 --- /dev/null +++ b/CotEditor.help/Contents/Resources/ja.lproj/pgs/about_autodetect_charset.html @@ -0,0 +1,39 @@ + + + + + + + + + +「charset=」「encoding=」「@charset」タグによる自動認識 + + + + + +
    +

    「charset=」「encoding=」「@charset」タグによる自動認識

    +

    環境設定「フォーマット」の「エンコーディング指定タグを参照する」が有効で、文字エンコーディングの自動認識が有効な場合、書類中の「charset=」「encoding=」「@charset」タグを読み取ります。記述に矛盾がなければ、このタグの記述が優先されます。

    +

    これらの記述はコメントの中であっても有効ですし、地の文として書かれていても読み取られます。もし、書類の文字エンコーディングでないものを「charset=」などのエンコーディング指定タグとともに記述する必要がある場合には、その記述よりも前に実際の文字エンコーディングを書き込むか、環境設定「フォーマット」の「エンコーディング指定タグを参照する」のチェックを外してください。

    +
      +
    • 「charset」「encoding」の直後にスペースなど「=」以外の文字があってはいけません。
    • +
    • 「charset=」「encoding=」の後ろは、「"」で囲っていなくても認識します。
    • +
    • 複数の記述がある時は、一番最初のものを読み取ります。
    • +
    • 「charset="Shift_JIS"」の場合は、「日本語 (Shift JIS)」と「日本語 (Shift JIS X0213)」のうち、優先されている方(メニューで上にある方)として認識されます。
      +=> 文字エンコードの認識順序を調整する
    • +
    + +

    関連項目

    + +
    + + + diff --git a/CotEditor.help/Contents/Resources/ja.lproj/pgs/about_coloring_priority.html b/CotEditor.help/Contents/Resources/ja.lproj/pgs/about_coloring_priority.html new file mode 100644 index 0000000000..d35a48b2b8 --- /dev/null +++ b/CotEditor.help/Contents/Resources/ja.lproj/pgs/about_coloring_priority.html @@ -0,0 +1,28 @@ + + + + + + + + + +シンタックスカラーリングの適用順序 + + + + + +
    +

    シンタックスカラーリングの適用順序

    +
      +
    • キーワード>コマンド>値>数値>文字列>文字>コメント の順で色付けられます。
    • +
    • もし、同一の項目で複数の定義にマッチする場合は、後のカラーリングで上塗りされます。
    • +
    +
    + + + diff --git a/CotEditor.help/Contents/Resources/ja.lproj/pgs/about_complist_settings.html b/CotEditor.help/Contents/Resources/ja.lproj/pgs/about_complist_settings.html new file mode 100644 index 0000000000..d14271efaa --- /dev/null +++ b/CotEditor.help/Contents/Resources/ja.lproj/pgs/about_complist_settings.html @@ -0,0 +1,35 @@ + + + + + + + + + +入力補完文字リスト設定 + + + + + +
    +

    入力補完文字リスト設定

    +

    シンタックススタイルごとに、入力補完文字リストを設定することができます。シンタックススタイルを選択し、編集ボタンを押下(シンタックススタイルを設定する参照)したら、プルダウンメニューから「入力補完文字リスト」を選択します。

    + + +
    入力補完文字ここで設定した文字列が入力補完候補として使用されます。この項目は必須です。
    +

    このリストが設定されていない場合、入力補完文字リストはカラーリング設定から自動生成されます。

    + +

    関連項目

    + +
    + + + diff --git a/CotEditor.help/Contents/Resources/ja.lproj/pgs/about_filedrop.html b/CotEditor.help/Contents/Resources/ja.lproj/pgs/about_filedrop.html new file mode 100644 index 0000000000..95ecca51be --- /dev/null +++ b/CotEditor.help/Contents/Resources/ja.lproj/pgs/about_filedrop.html @@ -0,0 +1,54 @@ + + + + + + + + + +ファイルドロップの定型文字列 + + + + + +
    +

    ファイルドロップの定型文字列

    +

    ファイルドロップの「フォーマット」で使用できる定型文字列と、使用例を示します。

    + + + + + + + + + + + + + +
    定型文字列置換される値
    <<<ABSOLUTE-PATH>>>ドロップ元ファイルの絶対パス
    <<<RELATIVE-PATH>>>ドロップ先ファイルからドロップ元ファイルへの相対パス
    <<<FILENAME>>>ドロップ元ファイルの、拡張子を含むファイル名
    <<<FILENAME-NOSUFFIX>>>ドロップ元ファイルの名前から拡張子を削除した文字列
    <<<FILEEXTENSION>>>ドロップ元ファイルの拡張子
    <<<FILEEXTENSION-LOWER>>>ドロップ元ファイルの拡張子(小文字)
    <<<FILEEXTENSION-UPPER>>>ドロップ元ファイルの拡張子(大文字)
    <<<DIRECTORY>>>ドロップ元ファイルのあるディレクトリ名
    <<<IMAGEWIDTH>>>画像の幅(ドロップ元ファイルが画像ファイルのときのみ有効)
    <<<IMAGEHEIGHT>>>画像の高さ(ドロップ元ファイルが画像ファイルのときのみ有効)
    + +

    下記に使用例を示します。

    + + + + + + + +
    例 1) hoge.html をドロップした場合:
    フォーマット<a href="<<<RELATIVE-PATH>>>"></a>
    挿入文字列<a href="hoge.html"></a>
    例 2) hoge.jpg をドロップした場合:
    フォーマット<img src="<<<FILENAME>>>" width="<<<IMAGEWIDTH>>>" height="<<<IMAGEHEIGHT>>>" />
    挿入文字列<img src="hoge.jpg" width="160" height="80" />
    + +

    関連項目

    + +
    + + + diff --git a/CotEditor.help/Contents/Resources/ja.lproj/pgs/about_move_menu.html b/CotEditor.help/Contents/Resources/ja.lproj/pgs/about_move_menu.html new file mode 100644 index 0000000000..54a319ba83 --- /dev/null +++ b/CotEditor.help/Contents/Resources/ja.lproj/pgs/about_move_menu.html @@ -0,0 +1,37 @@ + + + + + + + + + +「移動...」メニュー + + + + + +
    +

    「移動...」メニュー

    +

    「検索」メニューの「移動...」(Cmd + L)で移動パネルが開き、移動先の範囲指定が可能です。

    +

    移動パネルでは「行」「文字」ラジオボタンを選択し、選択したい数値を入力して「選択」ボタンをクリックします。 +

      +
    • 「行」ラジオボタンを選択して「3」を入力
      +
      => 3行目全体が選択される
    • +
    • 「行」ラジオボタンを選択して「3:2」と入力
      +
      => (「3行目からの2行を選択」という意味になり)3・4行目が選択される
    • +
    • 「行」ラジオボタンを選択して「3:-1」を入力
      +
      => (「3行目から、終わりから1行目を残して選択」という意味になり)全部で10行ならば、3〜9行目まで選択される
    • +
    + +

    「文字」ラジオボタンが選択されている時も、同様に意味付けられ、選択移動します。

    +

    また、移動パネル表示中に Cmd + L を押下すると、「行」「文字」選択をトグルに切り替えることができます。 +

    + + + diff --git a/CotEditor.help/Contents/Resources/ja.lproj/pgs/about_outlinemenu_settings.html b/CotEditor.help/Contents/Resources/ja.lproj/pgs/about_outlinemenu_settings.html new file mode 100644 index 0000000000..9ba001e946 --- /dev/null +++ b/CotEditor.help/Contents/Resources/ja.lproj/pgs/about_outlinemenu_settings.html @@ -0,0 +1,46 @@ + + + + + + + + + +アウトラインメニュー設定 + + + + + +
    +

    アウトラインメニュー設定

    +

    アウトラインメニュー設定の各項目の内容は次の通りです。

    + + + +
    正規表現ここで設定した正規表現にマッチする部分がアウトラインメニューとしてリストアップされます。この項目は必須です。
    ICチェックがオンの場合、大文字小文字を区別しません(Ignore Case の略)。例えば、開始文字列を「abc」として「IC」にチェックを入れると、「ABC」「abc」「Abc」などにマッチします。
    メニュー
    タイトル
    パターン
    メニュータイトルの書式を設定します。「正規表現」でマッチした文字列とこのパターンからメニュータイトルが決定されます。
    +

    「メニュータイトルパターン」で使えるメタ文字は下記の通りです。

    + + + + + + +
    (記述なし)「正規表現」でマッチしたすべての文字列
    $0, $&「正規表現」でマッチしたすべての文字列
    $1 〜 $9「正規表現」でマッチした部分文字列のうち、最初〜9番目にマッチした部分
    $LN「正規表現」でマッチした部分の最初の文字がある行番号
    -メニューの区切り
    (「-」のみ記入、他の文字があった場合には無効となります)
    +
      +
    • 「$0」などのメタ文字をそのままメニューに表示させるには、「$」の直前に「\(半角バックスラッシュ)」を置いてください。メニュー項目では「\」は表示されません。
    • +
    + +

    関連項目

    + +
    + + + diff --git a/CotEditor.help/Contents/Resources/ja.lproj/pgs/about_script_name.html b/CotEditor.help/Contents/Resources/ja.lproj/pgs/about_script_name.html new file mode 100644 index 0000000000..66c87b418f --- /dev/null +++ b/CotEditor.help/Contents/Resources/ja.lproj/pgs/about_script_name.html @@ -0,0 +1,81 @@ + + + + + + + + + +CotEditor スクリプトのファイル名規則 + + + + + +
    +

    CotEditor スクリプトのファイル名規則

    +

    このページでは CotEditror スクリプトのファイル名規則を説明します。

    +
    +
    表示順
    +
    ファイル名の先頭に『「数字」+「)」』をつけると、数字順に並べることができます。
    +『「数字」+「)」』の部分は、メニュー項目では表示されません。 + + + + +
    例 1.
    ファイル名01)Open File.scpt
    メニュータイトルOpen File
    +
    +
    + +
    +
    キーボードショートカット
    +
    ファイル名の拡張子の直前に『「.」+「モディファイヤキー」+「ショートカットキー」』を追加すると、キーボードショートカットを割り当てることができます。 + + + + + + + +
    例 2.
    ファイル名Insert String.@e.scpt
    メニュータイトルInsert String (Command + E)
    例 3.
    ファイル名03)Insert Date.@~Y.scpt
    メニュータイトルInsert Date (Command + Option + Shift + Y)
    +
    +
    モディファイヤキーの記述方法
    +
    + + + + + + +
    表記キー
    ^Ctrl(コントロール)
    $Shift(シフト)
    ~Option(オプション)
    @Command(コマンド)
    +
    +
    +
    +
    + + +
      +
    • ショートカットキー(モディファイヤキーでないキー、例 2での「e」)は、通常小文字で記述します。大文字の場合は「シフトキーも同時に押す」として認識されます。
    • +
    • ショートカットキーは、モディファイヤキーのあとに書かなければなりません。また、1文字だけ指定できます。また、ファイル名に使えないキー(「F1」や「Delete」など)は割り当てられません。
    • +
    • 指定したキーバインドがすでに他の機能に割り当てられている場合、スクリプトのキーバインドは無視されます。
    • +
    + +
    +
    セパレータ
    +
    「-」という名前のフォルダは、メニューのセパレータとして認識されます。さらにフォルダ名の先頭に『「数字」+「)」』をつけることで、メニュー項目の間に挿入されます。
    +
    + +

    関連項目

    + +
    + + + diff --git a/CotEditor.help/Contents/Resources/ja.lproj/pgs/about_script_spec.html b/CotEditor.help/Contents/Resources/ja.lproj/pgs/about_script_spec.html new file mode 100644 index 0000000000..38e6e9fcdf --- /dev/null +++ b/CotEditor.help/Contents/Resources/ja.lproj/pgs/about_script_spec.html @@ -0,0 +1,73 @@ + + + + + + + + + +UNIX スクリプトとの連携 + + + + + +
    +

    UNIX スクリプトとの連携

    +

    このページではスクリプトメニューから実行する UNIX スクリプトに CotEditor で編集中の書類の情報やテキストを渡したり、スクリプトの実行結果を書類に反映する方法を説明します。

    + +
      +
    • スクリプトメニューに登録できるスクリプトの拡張子は .sh .pl .php .rb .py です(言語は関係ありません)。
    • +
    • スクリプトには実行権限がなければなりません。スクリプトに実行権限を付与するには、ターミナルを使用するか、または「Extras」フォルダに同梱の「chmod-755.app」をお使いください。
    • +
    • スクリプト内の行末コード(改行コード)は LF でなければなりません。
    • +
    + +

    スクリプトにテキストを渡す

    + +

    スクリプトに CotEditor からデータを渡すには、スクリプトの冒頭にコメントを置き、固定文字列「%%%{CotEditorXInput=xxxx}%%%」を埋め込みます。「xxxx」で、受け渡すデータを指定します。

    + + + + + +
    Selection現在選択しているテキスト
    AllText書類のすべてのテキスト
    None何も渡さない(デフォルト)
    + +
      +
    • コメントを記述しなかった場合、「None」となります。
    • +
    • CotEditor からのテキストは標準入力に渡されます。
    • +
    • スクリプトに渡されるテキストの文字エンコーディングは UTF-8 です。
    • +
    + +

    スクリプトの出力を受け取る

    + +

    CotEditor でスクリプトの出力を受け取るには、スクリプトの冒頭にコメントを置き、固定文字列「%%%{CotEditorXOutput=xxxx}%%%」を埋め込みます。「xxxx」で、受け取った後の処理を指定します。

    + + + + + + + + +
    ReplaceSelection現在選択しているテキストを出力内容で置き換えます。
    ReplaceAllText書類のすべてのテキストを出力内容で置き換えます。
    InsertAfterSelection選択範囲の直後に出力内容を挿入します。
    AppendToAllText書類の末尾に出力内容を挿入します。
    Pasteboard putsクリップボードに出力内容を格納します。
    Discard何もしない(デフォルト)
    + +
      +
    • コメントを記述しなかった場合、「Discard」となります。
    • +
    • CotEditor に渡すテキストは、標準出力としてください。。
    • +
    • CotEditor に返すテキストの文字エンコーディングは UTF-8 でなければなりません。
    • +
    + +

    関連項目

    + +
    + + + diff --git a/CotEditor.help/Contents/Resources/ja.lproj/pgs/about_shiftjis.html b/CotEditor.help/Contents/Resources/ja.lproj/pgs/about_shiftjis.html new file mode 100644 index 0000000000..7de3617e90 --- /dev/null +++ b/CotEditor.help/Contents/Resources/ja.lproj/pgs/about_shiftjis.html @@ -0,0 +1,47 @@ + + + + + + + + + +Shift JIS 系のエンコーディングの違い + + + + + +
    +

    Shift JIS 系のエンコーディングの違い

    +

    4 種類の日本語 Shift JIS 系エンコーディングには、下記のような違いがあります。

    + + + + + +
    (Shift JIS)最も基本的な Shift JIS。漢字第一、第二水準をサポートします。
    (Mac OS)Mac 独自の機種依存文字などを加えたもので Mac OS 9 以前で使われています。
    (Windows, DOS)Windows 独自の機種依存文字などを加えたものです。
    (Shift JIS X0213)文字コード規格 JIS X0213(第一 〜 第四水準)が扱えます。
    +

    適切なエンコーディングは場合によって異なりますが、一般には「日本語(Shift JIS)」が無難です。ただし、一部の文字の取り扱いについて下記のような違いがありますので、これらの文字を使う場合には注意してください。

    + + + + + + +
    半角円マーク (¥)半角バック
    スラッシュ (\)
    半角チルダ (~)
    (Shift JIS)使用可全角バックスラッシュに置換使用不可
    (Mac OS)使用可使用可使用可
    (Windows, DOS)半角バックスラッシュに置換使用可使用可
    (Shift JIS X0213)使用可全角バックスラッシュに置換全角チルダに置換
    +
      +
    • これらの文字が含まれていないかどうか「非互換文字を表示」で確認できます。
    • +
    + +

    関連項目

    + +
    + + + diff --git a/CotEditor.help/Contents/Resources/ja.lproj/pgs/about_syntaxstyle.html b/CotEditor.help/Contents/Resources/ja.lproj/pgs/about_syntaxstyle.html new file mode 100644 index 0000000000..53673efd6b --- /dev/null +++ b/CotEditor.help/Contents/Resources/ja.lproj/pgs/about_syntaxstyle.html @@ -0,0 +1,41 @@ + + + + + + + + + +シンタックススタイルの設定項目 + + + + + +
    +

    シンタックススタイルの設定項目

    +

    シンタックススタイルの設定項目の内容は次の通りです。

    + + + + + +
    開始文字列パターンの開始を示す文字列です。この項目は必須です。
    終了文字列パターンの終了を示す文字列です。この項目は空でも構いません。
    ICチェックがオンの場合、大文字小文字を区別しません(Ignore Case の略)。例えば、開始文字列を「abc」として「IC」にチェックを入れると、「ABC」「abc」「Abc」などにマッチします。
    REチェックがオンの場合、開始文字列および終了文字列に入力されている文字列を正規表現として扱います(Regular Expression の略)。
    +
      +
    • 開始文字列に何も入力せず、終了文字列のみ入力されている定義は無視されます。
    • +
    • 「RE」がチェックされておらず、終了文字列が入力されていない定義は、入力補完候補としても使われます。
    • +
    • 開始文字列・終了文字列には正規表現が使えますが、「両方とも正規表現」または「両方とも通常の文字列」でなければなりません。
    • +
    + +

    関連項目

    + +
    + + + diff --git a/CotEditor.help/Contents/Resources/ja.lproj/pgs/about_syntaxtargets.html b/CotEditor.help/Contents/Resources/ja.lproj/pgs/about_syntaxtargets.html new file mode 100644 index 0000000000..9f8edd0aa3 --- /dev/null +++ b/CotEditor.help/Contents/Resources/ja.lproj/pgs/about_syntaxtargets.html @@ -0,0 +1,40 @@ + + + + + + + + + +シンタックススタイルの設定箇所 + + + + + +
    +

    シンタックススタイルの設定箇所

    +

    シンタックススタイルを設定できる箇所は次の通りです。

    + + + + + + + + +
    キーワードプログラミング言語の予約語などfor, while, if など
    コマンドプログラムの関数やコマンドexit, break, do など
    プログラミング言語の固定値Null, True, False など
    数値数値型のデータInt i = 0;
    文字列文字列型のデータString s = "Hello World"
    文字文字型のデータChar c = 'a'
    コメントプログラム中のコメント/* 〜 */, # 〜
    + +

    関連項目

    + +
    + + + diff --git a/CotEditor.help/Contents/Resources/ja.lproj/pgs/faq_about_yen_backslash.html b/CotEditor.help/Contents/Resources/ja.lproj/pgs/faq_about_yen_backslash.html new file mode 100644 index 0000000000..8d6dc25f20 --- /dev/null +++ b/CotEditor.help/Contents/Resources/ja.lproj/pgs/faq_about_yen_backslash.html @@ -0,0 +1,33 @@ + + + + + + + + + +「円マーク」が「バックススラッシュ」に変わる + + + + + +
    +

    「円マーク」が「バックススラッシュ」に変わる

    +

    下記の文字エンコーディングを使用した場合、半角円マーク(¥)は入力直後には「¥」と表示されますが、エンコーディングを変えたりファイル保存して開き直した後は、バックスラッシュ「\」として表示されます。

    + + + + + + + +
    日本語 (Windows, DOS) アラビア語 (Mac OS)中欧 (ISO Latin 2)
    日本語 (EUC)ヘブライ語 (Mac OS)西欧 (ISO Latin 3)
    繁体字中国語 (EUC)ギリシャ語 (ISO 8859-7)中欧 (ISO Latin 4)
    簡体字中国語 (EUC)キリル文字 (Mac OS)Latin-US (DOS)
    韓国語 (EUC)キリル文字 (ISO 8859-5)中欧 (Windows Latin 2)
    韓国語 (Windows, DOS)中欧 (Mac OS)
    +
    + + + diff --git a/CotEditor.help/Contents/Resources/ja.lproj/pgs/faq_cannot_display.html b/CotEditor.help/Contents/Resources/ja.lproj/pgs/faq_cannot_display.html new file mode 100644 index 0000000000..ae2abe0b49 --- /dev/null +++ b/CotEditor.help/Contents/Resources/ja.lproj/pgs/faq_cannot_display.html @@ -0,0 +1,54 @@ + + + + + + + + + +文字化けする + + + + + +
    +

    文字化けする

    +

    文字化けは、ファイルの文字エンコーディングを CotEditor が正しく認識できなかった場合に発生します。次の手順で文字エンコーディングを変更してください。

    +
      +
    1. 「フォーマット」メニューの「エンコーディング」を開き、適切な文字エンコーディングを選択します。
    2. +
    3. 「再解釈」をクリックします。
    4. +
    +

    +

    ダイアログのボタンの動作は、次の通りです。

    +
    +
    再解釈
    +
    指定されたエンコーディングでファイルを開き直します。
    +
    変換
    +
    現在のテキストを指定されたエンコーディングに変換します。
    +
    キャンセル
    +
    操作を取り消します。書類には何も変更は加えられません。
    +
    + +
      +
    • 文字エンコーディングの変更は、ツールバーの「エンコーディング」からも行うことができます。
    • +
    • 自動認識する際の文字エンコーディングの認識順序を調整することで、文字化けが発生する頻度をより少なくできます。
      +=> 文字エンコードの認識順序を調整する
    • +
    • 自動認識する際、環境設定で「エンコーディング指定タグを参照する」がオンになっていると、書類中にある「charset=」「encoding=」「@charset」タグに記述されているエンコーディングが優先されます。
      +=> 「charset=」「encoding=」「@charset」タグによる自動認識
    • +
    + +

    関連項目

    + +
    + + + diff --git a/CotEditor.help/Contents/Resources/ja.lproj/pgs/faq_cannot_save.html b/CotEditor.help/Contents/Resources/ja.lproj/pgs/faq_cannot_save.html new file mode 100644 index 0000000000..b79441c365 --- /dev/null +++ b/CotEditor.help/Contents/Resources/ja.lproj/pgs/faq_cannot_save.html @@ -0,0 +1,29 @@ + + + + + + + + + +ファイルを保存できない + + + + + +
    +

    ファイルを保存できない

    +

    次のような場合には、ファイルを保存できません。別名で保存するか、Finder やターミナルを使用してファイルのアクセス権を変更してください。

    +
      +
    • ファイルの「オーナー」とファイルを開いたユーザが異なっている
    • +
    • 保存しようとしたファイルにロックがかかっている
    • +
    +
    + + + diff --git a/CotEditor.help/Contents/Resources/ja.lproj/pgs/faq_crash.html b/CotEditor.help/Contents/Resources/ja.lproj/pgs/faq_crash.html new file mode 100644 index 0000000000..828c1db9cd --- /dev/null +++ b/CotEditor.help/Contents/Resources/ja.lproj/pgs/faq_crash.html @@ -0,0 +1,38 @@ + + + + + + + + + +CotEditor がクラッシュする + + + + + +
    +

    CotEditor がクラッシュする

    +

    ATOK を使用している場合、CotEditor にデフォルトで設定されている Shift + Return キーバインドが ATOK のキー設定とぶつかり、クラッシュすることがあります。
    +ATOK または CotEditor いずれかの設定を変更してください。
    + => CotEditor のキーバインドの変更方法

    +
    +

    CotEditor が頻繁に特定の状況でクラッシュする場合には、クラッシュログを下記へ送ってください。

    + +

    なお、クラッシュログを送る際には、下記の情報もあわせてご連絡ください。

    +
      +
    • クラッシュした直前に行っていた操作
    • +
    • OS、CotEditor のバージョン、機種などの環境情報
    • +
    +

    クラッシュログは、クラッシュ直後に表示されるダイアログで「レポートを送信...」または「レポート...」をクリックすると表示されます(クラッシュログをアップルに送っても意味はありませんので、ログをコピーしたらウインドウを閉じて構いません)。

    +
    + + + diff --git a/CotEditor.help/Contents/Resources/ja.lproj/pgs/faq_keybinding.html b/CotEditor.help/Contents/Resources/ja.lproj/pgs/faq_keybinding.html new file mode 100644 index 0000000000..1c1515ec7c --- /dev/null +++ b/CotEditor.help/Contents/Resources/ja.lproj/pgs/faq_keybinding.html @@ -0,0 +1,35 @@ + + + + + + + + + +キーボードショートカットを変更後、予期しない動作をする + + + + + +
    +

    キーボードショートカットを変更後、予期しない動作をする

    +

    キーボードショートカットを変更した後に予期しない動作をする場合、次のような原因が考えられます。

    +
      +
    • 設定したキーボードショートカットがすでにほかの機能に割り当てられている可能性があります。
    • +
    • 標準のキーバインドと CotEditor の「追加テキストキーバインド」に同一のキーバインドを設定した場合、CotEditor の「追加テキストキーバインド」が優先されます。
    • +
    + +

    関連項目

    + +
    + + + diff --git a/CotEditor.help/Contents/Resources/ja.lproj/pgs/faq_known_probrems.html b/CotEditor.help/Contents/Resources/ja.lproj/pgs/faq_known_probrems.html new file mode 100644 index 0000000000..72e78059df --- /dev/null +++ b/CotEditor.help/Contents/Resources/ja.lproj/pgs/faq_known_probrems.html @@ -0,0 +1,31 @@ + + + + + + + + + +既知の問題 + + + + + +
    +

    既知の問題

    +

    下記は、現在のところ解決されていない問題です。これらは将来のリリースで解決したいと考えていますが、まだメドは立っていません。

    +
      +
    • ツールバーの「行末コード」アイテムのメニューをポップアップさせた時、選択項目にチェックマークが表示されない
    • +
    • 行間を「0」より大きくしていると、日本語入力時のIMの変換中を示すアンダーラインが通常よりも下に離れて表示される
    • +
    • 「複合フォントでも行高を固定する」をオンにしていると、選択範囲の行間に白線が表示される(背景色が透けて見える)ことがある
    • +
    • 保存時に authopen の認証画面でキャンセルすると、コンソールにエラーログが表示される(「authopen」とは、CotEditor から起動されるヘルパーアプリケーションの名前です)。
    • +
    +
    + + + diff --git a/CotEditor.help/Contents/Resources/ja.lproj/pgs/faq_not_find_solution.html b/CotEditor.help/Contents/Resources/ja.lproj/pgs/faq_not_find_solution.html new file mode 100644 index 0000000000..6c615cb3d1 --- /dev/null +++ b/CotEditor.help/Contents/Resources/ja.lproj/pgs/faq_not_find_solution.html @@ -0,0 +1,34 @@ + + + + + + + + + +解決方法が見つからない場合 + + + + + +
    +

    解決方法が見つからない場合

    +

    問題が解決しない場合は、作者までお問い合わせください。ただし、質問する前に以下のことを必ず実行してください:

    +
      +
    • OS、CotEditor のバージョン、機種などの環境情報を明記する。
    • +
    • トラブルの内容を具体的に、かつ分かりやすく説明する。
    • +
    • すでに自分で試した対処法があれば書く。
    • +
    +

    ご質問の送り先は下記の通りです。

    + +
    + + + diff --git a/CotEditor.help/Contents/Resources/ja.lproj/pgs/faq_re_coloring.html b/CotEditor.help/Contents/Resources/ja.lproj/pgs/faq_re_coloring.html new file mode 100644 index 0000000000..179a1f95fd --- /dev/null +++ b/CotEditor.help/Contents/Resources/ja.lproj/pgs/faq_re_coloring.html @@ -0,0 +1,38 @@ + + + + + + + + + +カラーリングがおかしくなった + + + + + +
    +

    カラーリングがおかしくなった

    +

    カラーリングがおかしくなった場合は、次の手順を試してみてください。

    +
      +
    1. 「フォーマット」メニューの「カラーリング」を開き、「再カラーリング」を選択します。
    2. +
    +

    解決しない場合は、次のような原因が考えられます。

    +
      +
    • テキストの記述に不備がある(プログラム言語の場合、文法が間違っているなど)
    • +
    • シンタックススタイルに不具合がある
    • +
    + +

    関連項目

    + +
    + + + diff --git a/CotEditor.help/Contents/Resources/ja.lproj/pgs/howto_complete.html b/CotEditor.help/Contents/Resources/ja.lproj/pgs/howto_complete.html new file mode 100644 index 0000000000..b06c4129e1 --- /dev/null +++ b/CotEditor.help/Contents/Resources/ja.lproj/pgs/howto_complete.html @@ -0,0 +1,41 @@ + + + + + + + + + +入力補完を行う + + + + + +
    +

    入力補完を行う

    +

    入力補完機能を使用してテキストを入力するには次のようにします。

    +
      +
    1. テキストの最初の数文字を入力します。
    2. +
    3. F5 または ESC キーを押下します。
    4. +
    5. 候補の中から入力したい語句を選択します。
    6. +
    +
      +
    • 入力補完機能は英語入力時にのみ働きます。日本語入力時には使用できません。
    • +
    • 入力候補ウインドウを閉じるには ESC を押下します。
    • +
    • 環境設定の「入力補完候補リスト」で、表示する入力補完候補をカラーリングスタイルで定義された語句のみとするか、一般的な単語も含めるかを選択できます。
    • +
    + +

    関連項目

    + +
    + + + diff --git a/CotEditor.help/Contents/Resources/ja.lproj/pgs/howto_customize_complete.html b/CotEditor.help/Contents/Resources/ja.lproj/pgs/howto_customize_complete.html new file mode 100644 index 0000000000..894308f8cf --- /dev/null +++ b/CotEditor.help/Contents/Resources/ja.lproj/pgs/howto_customize_complete.html @@ -0,0 +1,36 @@ + + + + + + + + + +入力補完候補リストをカスタマイズする + + + + + +
    +

    入力補完候補リストをカスタマイズする

    +

    入力補完候補に表示する単語をカラーリングスタイルで定義された語句のみにするか、一般的な単語も含めるかを選択できます。

    +
      +
    1. CotEditor メニューの「環境設定...」を開きます。
    2. +
    3. 「一般」タブをクリックします。
    4. +
    5. 「入力補完候補リスト」の中から表示したい範囲を選択します。
    6. +
    + +

    関連項目

    + +
    + + + diff --git a/CotEditor.help/Contents/Resources/ja.lproj/pgs/howto_customize_encoding_order.html b/CotEditor.help/Contents/Resources/ja.lproj/pgs/howto_customize_encoding_order.html new file mode 100644 index 0000000000..d4de2608f0 --- /dev/null +++ b/CotEditor.help/Contents/Resources/ja.lproj/pgs/howto_customize_encoding_order.html @@ -0,0 +1,38 @@ + + + + + + + + + +文字エンコードの認識順序を調整する + + + + + +
    +

    文字エンコードの認識順序を調整する

    +

    文字エンコーディングの自動認識順序を調整するには次のようにします。

    +
      +
    1. CotEditor メニューの「環境設定...」を開きます。
    2. +
    3. 「フォーマット」タブをクリックします。
    4. +
    5. 「エンコーディング」の「リストを編集...」ボタンをクリックします。
    6. +
    7. エンコーディングの優先順位を指定します。よく使うエンコーディングを上に移動させ、その後に UTF-16 を置きます。
      +(UTF-16 ではほとんどの文字列が解釈されるため、「使うもののうちの一番下」に配置します)
    8. +
    +

    エンコーディングの並び順は変更できますが、削除はできません。使用しないエンコーディングは下に移動させてください。

    + +

    関連項目

    + +
    + + + diff --git a/CotEditor.help/Contents/Resources/ja.lproj/pgs/howto_customize_font_color.html b/CotEditor.help/Contents/Resources/ja.lproj/pgs/howto_customize_font_color.html new file mode 100644 index 0000000000..e5959e419a --- /dev/null +++ b/CotEditor.help/Contents/Resources/ja.lproj/pgs/howto_customize_font_color.html @@ -0,0 +1,39 @@ + + + + + + + + + +フォント・カラーをカスタマイズする + + + + + +
    +

    フォント・カラーをカスタマイズする

    +

    書類ウインドウのフォント・カラーをカスタマイズできます。

    +
      +
    1. 「フォーマット」メニュー>「フォント」の「フォントパネルを表示...」を選びます。 +
    2. フォントやカラーを好みに設定します。 +
    +
      +
    • この設定は、現在のウインドウにのみ適用されます。すべてのウインドウに適用するには、環境設定の「表示」で設定します。
    • +
    • シンタックスカラーリングによるカラーの設定は、環境設定の「シンタックス」で設定します。
    • +
    + +

    関連項目

    + +
    + + + diff --git a/CotEditor.help/Contents/Resources/ja.lproj/pgs/howto_customize_keybinding.html b/CotEditor.help/Contents/Resources/ja.lproj/pgs/howto_customize_keybinding.html new file mode 100644 index 0000000000..e5a50a46cf --- /dev/null +++ b/CotEditor.help/Contents/Resources/ja.lproj/pgs/howto_customize_keybinding.html @@ -0,0 +1,42 @@ + + + + + + + + + +キーバインドをカスタマイズする + + + + + +
    +

    キーバインドをカスタマイズする

    +

    CotEditor のキーボードショートカットを変更できます。また、テキスト編集時に任意の文字列を入力するキーバインドも追加/変更でき、デフォルトではShift + Return で「<br />」と行末コードの入力が設定されています。
    +変更するには、次のようにします。

    +
      +
    1. CotEditor メニューの「環境設定...」を開きます。
    2. +
    3. 「キーバインド」タブをクリックします。
    4. +
    5. 「編集...」ボタンをクリックし、お好みのキーバインドを設定します。
    6. +
    + +
      +
    • 「メニューキーバインド」はコマンドキーが含まれている必要があります。
    • +
    • 「追加テキストキーバインド」はコマンドキーが含まれていてはいけません。
    • +
    • 既に使われているキーバインド(スクリプトメニューのショートカットやバインディングリストに表示されないメニュー項目も含みます)と重複するものは、設定できません。
    • +
    + +

    関連項目

    + +
    + + + diff --git a/CotEditor.help/Contents/Resources/ja.lproj/pgs/howto_customize_scriptmenu.html b/CotEditor.help/Contents/Resources/ja.lproj/pgs/howto_customize_scriptmenu.html new file mode 100644 index 0000000000..7d6580774b --- /dev/null +++ b/CotEditor.help/Contents/Resources/ja.lproj/pgs/howto_customize_scriptmenu.html @@ -0,0 +1,45 @@ + + + + + + + + + +スクリプトメニューをカスタマイズする + + + + + +
    +

    スクリプトメニューをカスタマイズする

    +

    スクリプトメニューに項目を追加したり、削除するには次のようにします。

    +
      +
    1. Finder を起動し、次のフォルダを開きます:
      + ~/ライブラリ/Application Support/CotEditor/ScriptMenu
    2. +
    3. このフォルダに作成したスクリプトを置く、また不要なスクリプトを削除します。
    4. +
    5. CotEditor のスクリプトメニューから「スクリプトメニューを更新...」を選択します。
    6. +
    +
      +
    • CotEditor は次の拡張子を持つファイルをスクリプトファイルとして認識します:.applescript .scpt .sh .pl .php .rb .py
    • +
    • スクリプトのファイル名にある特定の文字列を含めることで、表示順を変更したりキーボードショートカットを設定できます。
      +詳しくは「CotEditor スクリプトのファイル名規則」を参照してください。
    • +
    • ScriptMenu フォルダにはフォルダも置くことができます。フォルダはサブメニューとして表示されます。
    • +
    • ScriptMenu フォルダの変更は起動時に自動的に反映されます。CotEditor が起動していない場合には「スクリプトメニューを更新...」は実行する必要はありません。
    • +
    + +

    関連項目

    + +
    + + + diff --git a/CotEditor.help/Contents/Resources/ja.lproj/pgs/howto_customize_syntaxstyle.html b/CotEditor.help/Contents/Resources/ja.lproj/pgs/howto_customize_syntaxstyle.html new file mode 100644 index 0000000000..2d2ad08ad4 --- /dev/null +++ b/CotEditor.help/Contents/Resources/ja.lproj/pgs/howto_customize_syntaxstyle.html @@ -0,0 +1,43 @@ + + + + + + + + + +シンタックススタイルを設定する + + + + + +
    +

    シンタックススタイルを設定する

    +

    シンタックススタイルは、カラーリング・アウトラインメニュー・入力補完候補を定義するものです。シンタックススタイルを設定する手順は次の通りです。

    +
      +
    1. CotEditor メニューの「環境設定...」を選びます。
    2. +
    3. 「シンタックス」タブを開きます。
    4. +
    5. 「シンタックススタイルを設定」の「スタイルを選択...」から設定したいスタイルを選択します。
    6. +
    7. 「編集」ボタンをクリックします。
    8. +
    +
      +
    • 既存のシンタックススタイルを参考にして独自のスタイルを作成するには、「スタイルを選択...」で元となるスタイルを選択して「コピー」ボタンをクリックします。
    • +
    + +

    関連項目

    + +
    + + + diff --git a/CotEditor.help/Contents/Resources/ja.lproj/pgs/howto_customize_toolbar.html b/CotEditor.help/Contents/Resources/ja.lproj/pgs/howto_customize_toolbar.html new file mode 100644 index 0000000000..1a09de4b3b --- /dev/null +++ b/CotEditor.help/Contents/Resources/ja.lproj/pgs/howto_customize_toolbar.html @@ -0,0 +1 @@ + ツールバーをカスタマイズする

    ツールバーをカスタマイズする

    Finder や他の多くの Cocoa アプリケーションと同様に、ツールバーを自由にカスタマイズできます。

    • ツールバーをカスタマイズするには、「表示」メニューの「ツールバーをカスタマイズ...」を選びます。
    \ No newline at end of file diff --git a/CotEditor.help/Contents/Resources/ja.lproj/pgs/howto_filedrop.html b/CotEditor.help/Contents/Resources/ja.lproj/pgs/howto_filedrop.html new file mode 100644 index 0000000000..1e880a77cf --- /dev/null +++ b/CotEditor.help/Contents/Resources/ja.lproj/pgs/howto_filedrop.html @@ -0,0 +1,35 @@ + + + + + + + + + +ファイルドロップを使用する + + + + + +
    +

    ファイルドロップを使用する

    +

    ファイルドロップを使用するには、ファイルを書類ウインドウにドロップします。

    +
      +
    • あらかじめ、挿入する文字列を設定しておく必要があります。
    • +
    • ファイルドロップの設定は、環境設定の「ファイルドロップ」で行います。
    • +
    + +

    関連項目

    + +
    + + + diff --git a/CotEditor.help/Contents/Resources/ja.lproj/pgs/howto_find_newline.html b/CotEditor.help/Contents/Resources/ja.lproj/pgs/howto_find_newline.html new file mode 100644 index 0000000000..345b24a748 --- /dev/null +++ b/CotEditor.help/Contents/Resources/ja.lproj/pgs/howto_find_newline.html @@ -0,0 +1,30 @@ + + + + + + + + + +改行/タブ文字を検索する + + + + + +
    +

    改行/タブ文字を検索する

    +

    改行/タブ文字を検索するには、正規表現を使用するか、または検索フィールドに「Option + Return」/「Option + Tab」を入力することで検索できます。

    + + + + +
    正規表現キーボード入力
    改行\nOption + Return
    タブ\tOption + Tab
    +
    + + + diff --git a/CotEditor.help/Contents/Resources/ja.lproj/pgs/howto_inspect_fileinfo.html b/CotEditor.help/Contents/Resources/ja.lproj/pgs/howto_inspect_fileinfo.html new file mode 100644 index 0000000000..74031007c2 --- /dev/null +++ b/CotEditor.help/Contents/Resources/ja.lproj/pgs/howto_inspect_fileinfo.html @@ -0,0 +1,44 @@ + + + + + + + + + +書類の情報を見る + + + + + +
    +

    書類の情報を見る

    +

    書類に関する様々な情報を見ることができます。

    +
      +
    1. 「ファイル」メニューの「情報を見る」(Cmd + I)を選びます。
    2. +
    3. ドロワーを消すには、閉じるボタンをクリックするかもう一度「情報を見る」メニューを選択します。
    4. +
    +

    書類の情報は、ツールバーの「情報を見る」でも表示できます。

    +

    ドロワーに表示される情報は下記の通りです。

    + + + + + + + + + + + + +
    クリエータクリエータは、ファイルを作成したアプリケーションを表すコードです。
    タイプタイプは、書類の種類を表すコードです。
    作成日ファイルが作成された日時です。
    変更日ファイルが最後に更新された日時です。
    オーナーこのファイルの所有者のユーザ名です。
    アクセス権このファイルのアクセス権を UNIX 形式で表示します。
    Finder ロックこのファイルがロックされている場合は「ON」、されていない場合「-」が表示されます。
    現在キャレットがある行を先頭からの行数で表します。
    文字現在キャレットがある位置を先頭からの文字数で表します。
    (選択範囲)テキストが選択されている場合、選択範囲内の文字数を表示します。
    UnicodeUnicodeの16進コード(UTF-16)を表示します。1文字だけを選択している時に表示されます。
    +
    + + + diff --git a/CotEditor.help/Contents/Resources/ja.lproj/pgs/howto_inspect_usedchar.html b/CotEditor.help/Contents/Resources/ja.lproj/pgs/howto_inspect_usedchar.html new file mode 100644 index 0000000000..28839ed3a7 --- /dev/null +++ b/CotEditor.help/Contents/Resources/ja.lproj/pgs/howto_inspect_usedchar.html @@ -0,0 +1,30 @@ + + + + + + + + + +非互換の文字が含まれていないか確認する + + + + + +
    +

    非互換の文字が含まれていないか確認する

    +

    書類のエンコーディングと非互換の文字が入力されていると、その書類を保存し、再度開いた時に正しい文字では表示されません。この機能は、保存の前に非互換文字をチェックし、その種のトラブルを防止します。

    +

    同様に、文字エンコーディングを変換したときに非互換の文字が含まれていると、正しく表示できなくなります。「日本語 (Mac OS)」から「日本語 (Windows, DOS)」あるいは Unicode から各国語などサポートされる文字セットが異なる文字エンコーディング間の変換を行う場合に有用です。

    +
      +
    1. 「ファイル」メニューの「非互換文字を表示」を選びます。
    2. +
    3. ドロワーを消すには、閉じるボタンをクリックするかもう一度「非互換文字を表示」メニューを選択します。
    4. +
    +
    + + + diff --git a/CotEditor.help/Contents/Resources/ja.lproj/pgs/howto_open_hidden_file.html b/CotEditor.help/Contents/Resources/ja.lproj/pgs/howto_open_hidden_file.html new file mode 100644 index 0000000000..843471cdc8 --- /dev/null +++ b/CotEditor.help/Contents/Resources/ja.lproj/pgs/howto_open_hidden_file.html @@ -0,0 +1,33 @@ + + + + + + + + + +不可視ファイルを開く + + + + + +
    +

    不可視ファイルを開く

    +

    Finder に表示されない不可視ファイルを開くには次のようにします。

    +
      +
    1. Shift キーを押しながらファイルメニューを開きます。
    2. +
    3. 「非表示ファイルを開く...」を選択します。
    4. +
    +
      +
    • ファイルメニューを開いた後に Shift キーを押すと、メニュー項目「開く...」が「非表示ファイルを開く...」に変わります。
    • +
    • キーボードショートカット「Command + Shift + O」でも同様です。
    • +
    +
    + + + diff --git a/CotEditor.help/Contents/Resources/ja.lproj/pgs/howto_print.html b/CotEditor.help/Contents/Resources/ja.lproj/pgs/howto_print.html new file mode 100644 index 0000000000..5d171e3521 --- /dev/null +++ b/CotEditor.help/Contents/Resources/ja.lproj/pgs/howto_print.html @@ -0,0 +1,29 @@ + + + + + + + + + +書類を印刷する + + + + + +
    +

    書類を印刷する

    +

    書類を印刷するには、「ファイル」メニューの「プリント...」を選びます。

    +
      +
    • あらかじめ環境設定の「印刷」から設定されたオプションが有効になります。
    • +
    • 印刷シートの「印刷部数と印刷ページ」ポップアップメニューをプルダウンすると「CotEditor」という項目があり、ここで一時的な印刷設定変更が可能です(ただしここでは、フォント設定変更はできません)。
    • +
    +
    + + + diff --git a/CotEditor.help/Contents/Resources/ja.lproj/pgs/howto_rectangularSelection.html b/CotEditor.help/Contents/Resources/ja.lproj/pgs/howto_rectangularSelection.html new file mode 100644 index 0000000000..1cb273b9e3 --- /dev/null +++ b/CotEditor.help/Contents/Resources/ja.lproj/pgs/howto_rectangularSelection.html @@ -0,0 +1,25 @@ + + + + + + + + + +矩形選択する + + + + + +
    +

    テキストを矩形選択する

    +

    テキストを矩形選択するには、Option キーを押しながらマウスをドラッグして、テキストを選択します。

    +
    + + + diff --git a/CotEditor.help/Contents/Resources/ja.lproj/pgs/howto_show_outlinemenu.html b/CotEditor.help/Contents/Resources/ja.lproj/pgs/howto_show_outlinemenu.html new file mode 100644 index 0000000000..7582fbd911 --- /dev/null +++ b/CotEditor.help/Contents/Resources/ja.lproj/pgs/howto_show_outlinemenu.html @@ -0,0 +1,36 @@ + + + + + + + + + +アウトラインメニューを表示する + + + + + +
    +

    アウトラインメニューを表示する

    +

    アウトラインメニューは、シンタックス定義の「アウトラインメニュー設定」に従って書類の該当する部分をメニューとして表示します。メニューはウィンドウ上部のツールバーの下に表示されます。メニューの項目を選択すると、書類の相対する部分に選択移動します。

    +
      +
    • アウトラインメニューを表示するには、「表示」メニューの「ナビゲーションバーを表示」を選択します。
    • +
    • アウトラインメニューを利用するには、シンタックスカラーリングが有効でなければなりません。
    • +
    +

    アウトラインメニューに表示する項目およびメニュータイトルの設定は、シンタックススタイル設定の「アウトラインメニュー設定」で行います。

    + +

    関連項目

    + +
    + + + diff --git a/CotEditor.help/Contents/Resources/ja.lproj/pgs/howto_split.html b/CotEditor.help/Contents/Resources/ja.lproj/pgs/howto_split.html new file mode 100644 index 0000000000..dce4c7cf8c --- /dev/null +++ b/CotEditor.help/Contents/Resources/ja.lproj/pgs/howto_split.html @@ -0,0 +1,27 @@ + + + + + + + + + +エディタを分割する + + + + + +
    +

    エディタを分割する

    +

    エディタを分割するには、「表示」メニューの「エディタを分割」を選択するか、アウトラインメニュー右端のアイコンをクリックします。

    +

    分割されたエディタを閉じるときは、「表示」メニューの「分割エディタを閉じる」を選択するか、アウトラインメニューの右に追加されるアイコンをクリックします。

    +

    +
    + + + diff --git a/CotEditor.help/Contents/Resources/ja.lproj/pgs/howto_uninstall.html b/CotEditor.help/Contents/Resources/ja.lproj/pgs/howto_uninstall.html new file mode 100644 index 0000000000..0f3cd0ba44 --- /dev/null +++ b/CotEditor.help/Contents/Resources/ja.lproj/pgs/howto_uninstall.html @@ -0,0 +1,31 @@ + + + + + + + + + +CotEditor をアンインストールする + + + + + +
    +

    CotEditor をアンインストールする

    +

    CotEditor をアンインストールするには、次のファイル・フォルダをゴミ箱に捨てます。

    +
      +
    • /アプリケーション/CotEditor
    • +
    • ~/ライブラリ/Application Support/CotEditor
    • +
    • ~/ライブラリ/Preferences/com.aynimac.CotEditor.plist
    • +
    +

    「~」はお使いのユーザの「ホーム」フォルダを、「/」はフォルダの区切りをあらわす記号です。

    +
    + + + diff --git a/CotEditor.help/Contents/Resources/ja.lproj/pgs/overview.html b/CotEditor.help/Contents/Resources/ja.lproj/pgs/overview.html new file mode 100644 index 0000000000..e30fbc1b40 --- /dev/null +++ b/CotEditor.help/Contents/Resources/ja.lproj/pgs/overview.html @@ -0,0 +1,95 @@ + + + + + + + + + + +CotEditor について + + + + + +
    +

    CotEditor について

    +

    CotEditor は Web ページ (HTML)、Perl や Ruby などのプログラム、TeX のソースといったプレーンテキストの編集に特化したテキストエディタです。CotEditor には Mac OS X 付属のテキストエディットにはない多くの便利な機能があります。このページではその一部をご紹介しましょう。

    + +
    +

    強力な検索/置換機能

    +

    ov_find.pngCotEditor には OgreKit [ウェブサイト]による非常に強力な検索/置換パネルが実装されています。

    +

    正規表現のサポートはもちろん、検索結果をまとめて一覧表示したり、ファイル中のマッチした箇所をハイライト表示したりすることもできます。

    +
    + +
    +

    シンタックスカラーリング

    +

    ov_color.pngプログラム言語の予約語や、TeX のコマンド、HTML の要素など特定のキーワードに色をつけて見やすくします。

    +

    CotEditor にはあらかじめいくつかのカラーリング定義がプリセットされていますが、ユーザが自由に登録/変更できます。また、カラーリング定義は単語だけではなく、正規表現によるパターン指定も可能です。

    + +
    + +
    +

    アウトラインメニュー

    +

    ov_outline.png書類から特定のキーワードを含む箇所をリストアップして、メニューとして表示します。メニューをクリックすると、書類の該当する個所へ移動します。

    +

    メニューに表示する名前や項目はシンタックススタイルをカスタマイズすることで自由に設定できます。

    + +
    + +
    +

    入力補完

    +

    ov_complete.pngプログラム言語の予約語や、HTML の要素などのキーワードの入力を省略する機能です。

    +

    最初の数文字を入力して、ESC または F5 キーを押すと候補が表示され、一覧から選択して入力できます。表示する候補はカスタマイズできます。

    + +
    + +
    +

    スクリプトメニュー

    +

    ov_complete.pngスクリプトメニューに登録されたスクリプトを実行して、編集中の書類を加工したり、外部のプログラムを起動したりできます。

    +

    AppleScript のほか、Perl や PHP、Ruby、UNIX シェルスクリプトも利用できます。

    + +
    + +
    +

    その他の機能

    +
    +
    ファイルドロップ
    +
    ファイルをドロップしたとき、あらかじめ指定しておいた定型文字列を挿入する機能です。例えば「HTML 書類に画像をドロップしたときに IMG タグを挿入する」といった使い方ができます。
    +
    キーバインドのカスタマイズ
    +
    CotEditor 独自の機能のキーバインドをカスタマイズできます。
    +
    AppleScript との連携
    +
    AppleScript により、作業の自動化が可能です。また、スクリプトメニューに組み込むこともできます。
    +
    外部エディタプロトコルのサポート
    +
    Cyberduck [ウェブサイト] や Interarchy [ウェブサイト]、RBrowser [ウェブサイト] など、外部エディタプロトコルをサポートするアプリケーションと連携できます。サーバ上のファイルを直接開いたり、変更保存内容を直ちにアップロード更新できます。
    +
    行番号表示
    +
    テキストファイルの行番号を表示します。プログラムの開発とデバッグの際に便利です。
    +
    ウインドウの透明度設定
    +
    ウインドウを半透明にできます。多数のウインドウを開いたときに探しやすくなります。
    +
    行間変更
    +
    行間の広さを変更設定できます。
    +
    非互換文字の表示
    +
    指定されたエンコーディングで保存できない文字をチェックできます。
    +
    エディタを分割
    +
    エディタを分割し、文書の異なる部分を同時に表示できます。
    +
    +
    + +
    + + diff --git a/CotEditor.help/Contents/Resources/ja.lproj/pgs/pref_appearance.html b/CotEditor.help/Contents/Resources/ja.lproj/pgs/pref_appearance.html new file mode 100644 index 0000000000..8108c67203 --- /dev/null +++ b/CotEditor.help/Contents/Resources/ja.lproj/pgs/pref_appearance.html @@ -0,0 +1,44 @@ + + + + + + + + + +環境設定:表示 + + + + + + +
    +

    環境設定:表示

    +

    文字のカラーや不可視文字の代替表示など書類のデフォルトの書式を設定します。
    +変更は新規書類から適用されます。

    +
    +
    基本カラーリング
    +
    シンタックスカラーリングの対象にならない個所のカラーを設定します。
    +シンタックスカラーリングによるカラーの設定は、「シンタックス」タブで行います。
    +
    +
    +
    不可視文字の表示
    +
    スペース、タブ、改行文字、制御文字など見えない文字を「・」やその他の記号で代替して表示します。ポップアップから代替表示する文字を選択してください。
    +テキスト表示に使うデフォルトのフォントは、「フォーマット」タブで設定します。
    +
    + +

    関連項目

    + +
    + + + diff --git a/CotEditor.help/Contents/Resources/ja.lproj/pgs/pref_filedrop.html b/CotEditor.help/Contents/Resources/ja.lproj/pgs/pref_filedrop.html new file mode 100644 index 0000000000..508cfccdc9 --- /dev/null +++ b/CotEditor.help/Contents/Resources/ja.lproj/pgs/pref_filedrop.html @@ -0,0 +1,49 @@ + + + + + + + + + +環境設定:ファイルドロップ + + + + + + +
    +

    環境設定:ファイルドロップ

    +

    ファイルドロップは、ファイルをドロップしたとき、あらかじめ指定しておいた定型文字列を挿入する機能です。例えば HTML 書類に画像をドロップしたときに IMG タグを挿入するといった使い方ができます。

    +
    +
    適用するファイル拡張子
    +
    ドロップするファイルの拡張子を入力します。
    +
    +
    +
    挿入文字列のフォーマット
    +
    テキストに挿入する文字列を設定します。 +
    +
    定型文字列を挿入
    +
    定型文字列をフォーマットに追加します。
    +
    +
    +
    + +
      +
    • 「定型文字列」は、ドロップしたファイル固有の情報に置換される特別なキーワードです。
    • +
    + +

    関連項目

    + + +
    + + diff --git a/CotEditor.help/Contents/Resources/ja.lproj/pgs/pref_format.html b/CotEditor.help/Contents/Resources/ja.lproj/pgs/pref_format.html new file mode 100644 index 0000000000..2f90023bf6 --- /dev/null +++ b/CotEditor.help/Contents/Resources/ja.lproj/pgs/pref_format.html @@ -0,0 +1,107 @@ + + + + + + + + + +環境設定:フォーマット + + + + + + +
    +

    環境設定:フォーマット

    +

    フォントや新規書類のデフォルトのフォーマットを設定します。
    +変更は新規書類から適用されます。

    +
    +
    □ 行を折り返す
    +
    オンの場合、テキストがウインドウの幅に収まらないとき折り返して表示します。オフの場合は横スクロールバーが表示されます。
    +
    +
    +
    □ 自動インデント
    +
    オンの場合、Return または Enter キーを入力したとき直前の行の開始位置に合わせてインデントを挿入します。
    +
    +
    +
    □ 複合フォントでも行高を固定する
    +
    オンの場合、表示フォントや入力文字にかかわらず、強制的に行高を固定します。
    +オンにした場合には、オフの場合に比較して行高になります。
    +
    +
    +
    行間:
    +
    行間を、指数で指定します。0 から 10.0 の間を指定してください。
    +(実際に確保される行間は、ここで指定された数値とフォントのポイント数の積です)
    +
    +
    +
    +
    +
    □ タブを空白に自動的に変換
    +
    オンの場合、タブを入力したときタブの代わりに空白を入力します。
    +
    +
    +
    □ タブとインデント幅
    +
    タブを入力したときに置き換える空白文字の数を設定します。通常は 4 または 8 です。
    +
    +
    +
    +
    +
    新規書類の行末コード
    +
    新規作成する書類のデフォルトの行末コードを設定します。
    +
    +
    +
    エンコーディング
    +
    +
    +
    新規書類
    +
    新規作成する書類のデフォルトの文字エンコーディングを設定します。
    +
    既存のファイル
    +
    既存のファイルを開くときに使用する文字エンコーディングを設定します。通常は「自動認識」でよいでしょう。
    +
    +
    +
    □ UTF-8のときBOMも保存(非推奨/取扱注意)
    +
    エンコーディングを「UTF-8」で保存するとき、冒頭に識別のための「BOM」を追加します。
    +用途によっては読み込めないなどの問題が起きることがありますので取扱には注意してください。特に必要がなければオフのままの使用をお勧めします。
    +
    □ エンコーディング指定タグを参照する
    +
    テキスト中に書かれたエンコーディング指定タグを参照します。
    +認識できるのは、優先順位順で "charset=" 、"encoding=" 、"@charset" です。
    +くわしくは「charset=」「encoding=」「@charset」タグによる自動認識を参照してください。 +
    +
    +
    +
    リストを編集...
    +
    メニューおよびツールバーの文字エンコードポップアップに表示するエンコーディングの並び順をカスタマイズできます。この並び順は、エンコーディングの自動認識時にも使用され、上から順に適用をテストされます。くわしくは文字エンコードの認識順序を調整するを参照してください。
    +
    +
    +
    + +
      +
    • 「既存のファイルの文字エンコーディング」で「自動認識」以外の文字エンコーディングを選択した場合にファイルの文字エンコーディングと一致しないときは、開いた後に手動で変更して再解釈させる必要があります。
    • +
    + +
    +
    フォント
    +
    テキストの表示に使うデフォルトのフォントと文字サイズを設定します。
    +
    +
    +
    □ アンチエイリアス適用
    +
    オンの場合、フォントのアンチエイリアス表示が有効になります。
    +
    +
    +
    + +

    関連項目

    + +
    + + + diff --git a/CotEditor.help/Contents/Resources/ja.lproj/pgs/pref_general.html b/CotEditor.help/Contents/Resources/ja.lproj/pgs/pref_general.html new file mode 100644 index 0000000000..09932558e2 --- /dev/null +++ b/CotEditor.help/Contents/Resources/ja.lproj/pgs/pref_general.html @@ -0,0 +1,104 @@ + + + + + + + + + +環境設定:一般 + + + + + + +
    +

    環境設定:一般

    +

    起動時や編集時の動作など CotEditor の全体的な設定を行います。

    +
    +
    □ 起動時に新規書類を開く
    +
    オンの場合、起動時に空の書類ウインドウが開かれます。
    +
    +
    +
    □ リオープンイベントで新規書類を開く
    +
    オンの場合、Dock の CotEditor アイコンをクリックしたときに書類が開かれていなければ、空の書類ウインドウを開きます。
    +
    +
    +
    □ スマートインサート/スマートデリート
    +
    オンの場合、単語をペーストまたはドラッグ&ドロップにより単語間に挿入したとき、単語の前または後に半角スペースが自動挿入されます。スマートデリートは逆に、単語を削除したときに余分な半角スペースが自動削除されます。(英文において意味のある機能です)
    +
    +
    +
    □ 入力中に自動スペルチェック
    +
    オンの場合、テキスト入力中に自動的にスペルチェックされます。
    +
    +
    +
    □ Carbon のように、選択テキストをすぐにドラッグ開始
    +
    通常、選択したテキストをドラッグするには0.3秒以上マウスボタンをプレスし続けてからでないとドラッグできませんが、この設定をオンにすると「選択からドラッグ開始」にかかる時間を短縮して直ちにドラッグを開始できるようにします(実験的実装です)。
    +
    +
    +
    □ "¥" と "\" キー入力を入れ替える
    +
    オンの場合、"¥" と "\" キーの入力を相互に入れ替えます。
    +
    +
    +
    □ 対応するカッコ"( )" "[ ]" "{ }"をハイライト表示
    +
    オンの場合、閉じるカッコの位置にキャレットがあるとき、開始のカッコをハイライト表示します。
    +
    +
    +
    □ "< >"をハイライト表示
    +
    オンの場合、">"の位置にキャレットがあるとき、対応する"<"をハイライト表示します。
    +
    +
    +
    +
    +
    □ 行末コードを文字としてカウントする
    +
    オンにすると、書類情報及びステータスバー上に表示する文字数は行末コードを含んだものになります。
    +
    +
    +
    □ 検索文字列を他のアプリと同期
    +
    オンにすると、他の Cocoa アプリケーションで検索された文字列を検索パネルへ取り込みます。
    +
    +
    +
    □ コンテキストメニューに、スクリプトメニューをインラインに追加
    +
    オンにすると、スクリプトメニュー項目を展開してコンテキストメニューに追加します。
    +
    +
    +
    ファイルとクリエータの保存
    +
    ファイルを保存するときに CotEditor のクリエータとファイルタイプを付加するかどうかを選択します。 +
    +
    ○ オリジナルを保持
    +
    何も設定されていない場合にのみ CotEditor のクリエータとファイルタイプを設定します。設定されている場合はそのままです。
    +
    ○ 常に CotEditor のコードをセット
    +
    ファイル保存時に必ず CotEditor のクリエータとファイルタイプを設定します。ほかのアプリケーションで作成された書類の場合、CotEditor 書類に変更されます。
    +
    ○ コードをセットしない
    +
    クリエータとファイルタイプを一切設定/変更しません。
    +
    +
    +
    +
    +
    入力補完候補リスト
    +
    入力補完するときに表示する候補を設定します。
    +
    +
    +
    ○ ファイルに出現する単語のみ
    +
    ファイル内にある単語だけをリストアップします。
    +
    ○ ファイルに出現する単語 + カラーリングスタイルからの候補
    +
    ファイル内にある単語に加え、カラーリングスタイルで設定された入力補完文字リスト(設定されていなければカラーリング設定から生成)を表示します。
    +
    ○ ファイルに出現する単語 + カラーリングスタイル + 一般英単語
    +
    上記に加え、一般英単語を表示します。
    +
    +
    +
    + +

    関連項目

    + +
    + + + diff --git a/CotEditor.help/Contents/Resources/ja.lproj/pgs/pref_keybinding.html b/CotEditor.help/Contents/Resources/ja.lproj/pgs/pref_keybinding.html new file mode 100644 index 0000000000..a42be742b9 --- /dev/null +++ b/CotEditor.help/Contents/Resources/ja.lproj/pgs/pref_keybinding.html @@ -0,0 +1,48 @@ + + + + + + + + + +環境設定:キーバインド + + + + + + +
    +

    環境設定:キーバインド

    +

    メニューのいくつかの機能はキーボードショートカットでも行うことができます。CotEditor ではメニューに割り当てられているキーボードショートカットを変更することができます。また、任意の文字列を入力するための「追加テキストキーバインド」も設定できます。

    +
    +
    メニューキーバインド
    +
    メニューに割り当てられているキーバインドをお好みのキーボードショートカットに変更します。
    +
    +
      +
    • 「メニューキーバインド」はコマンドキーが含まれている必要があります。
    • +
    +
    +
    追加テキストキーバインド
    +
    CotEditor 固有のテキスト編集コマンドにお好みのキーボードショートカットを設定します。
    +
    +
      +
    • 「追加テキストキーバインド」はコマンドキーが含まれていてはいけません
    • +
    • 「追加テキストキーバインド」が設定できるのは CotEditor 固有のテキスト編集コマンドに限られます。Cocoa アプリ標準のキーバインドの変更など詳細は、下記の Apple の文書を参照してください。
      +OS X のキーボードショートカット (Apple サポート)
    • +
    + +

    関連項目

    + + +
    + + + diff --git a/CotEditor.help/Contents/Resources/ja.lproj/pgs/pref_print.html b/CotEditor.help/Contents/Resources/ja.lproj/pgs/pref_print.html new file mode 100644 index 0000000000..a0768f58eb --- /dev/null +++ b/CotEditor.help/Contents/Resources/ja.lproj/pgs/pref_print.html @@ -0,0 +1,53 @@ + + + + + + + + + +環境設定:プリント + + + + + + +
    +

    環境設定:プリント

    +

    印刷の設定を行います。
    +変更は新規書類から適用されます。

    +
    +
    カラー
    +
    シンタックスのカラーリングも印刷するには、「書類の設定と同じ」を選択します。
    +
    +
    +
    行番号
    +
    プリントしない/書類の設定と同じ/プリントするから選択できます。
    +
    +
    +
    不可視文字
    +
    プリントしない/書類の設定と同じ/プリントするから選択できます。
    +
    +
    +
    プリント用フォント
    +
    書類の設定と同じか、独自のフォントを設定できます。
    +
    +
    +
    ヘッダ、フッタ
    +
    印字の有無、印字内容、区切り線の印字の有無、印字位置を設定できます。
    +
    + +

    関連項目

    + + +
    + + + diff --git a/CotEditor.help/Contents/Resources/ja.lproj/pgs/pref_syntax.html b/CotEditor.help/Contents/Resources/ja.lproj/pgs/pref_syntax.html new file mode 100644 index 0000000000..a211549de0 --- /dev/null +++ b/CotEditor.help/Contents/Resources/ja.lproj/pgs/pref_syntax.html @@ -0,0 +1,72 @@ + + + + + + + + + +環境設定:シンタックス + + + + + + +
    +

    環境設定:シンタックス

    +

    シンタックスカラーリングの設定やシンタックススタイルの定義を変更できます。

    +
    +
    □ 書類をカラーリングする
    +
    オンの場合、ファイルの種類に応じて書類をカラーリングします。
    +
    +
    +
    初期設定シンタックスカラーリングスタイル名
    +
    開いたファイルの拡張子にひも付けられたシンタックススタイルが無い場合に適用するスタイルを選択します。
    +この設定は、新規書類にも適用されます。
    +
    □ 遅延カラーリング
    +
    オンの場合、キー入力が終わってしばらくした後に、カラーリングします。オフの場合は、1 文字入力するごとにカラーリングされます。
    +
    +
    +
    +
    +
    拡張カラーリング
    +
    カラーリングするときのカラーを設定します。
    +カラーは、キーワード・コマンド・値・数値・文字列・文字・コメント について設定できます。
    +
    +
    +
    シンタックススタイルをカスタマイズ
    +
    既存のスタイルを編集したり、独自のスタイルを追加することができます。
    +
    +
    +
    拡張子エラーを表示...
    +
    1 つの拡張子に対して、複数のスタイルが割り当てられていないかチェックします。
    +
    削除
    +
    選択されているスタイルを削除します。
    +
    編集
    +
    選択されているスタイルを編集します。スタイルはユーザごとに保存されているため、ここで編集した結果はお使いのユーザのスタイルにしか反映されません。
    +
    コピー
    +
    選択されているスタイルをコピーして、独自のスタイルを作成します。
    +
    新規
    +
    新しいスタイルを作成します。
    +
    書き出し
    +
    選択されたスタイルを別のコンピュータで使うときに使用します。「書き出し」で保存したファイルを利用するには「読み込み」を使います。
    +
    読み込み
    +
    ほかのコンピュータで作成したスタイルを使えるようにします。「読み込み」をクリックした後、スタイルファイルを選択してください。
    +
    +
    +
    + +

    関連項目

    + +
    + + + diff --git a/CotEditor.help/Contents/Resources/ja.lproj/pgs/pref_window.html b/CotEditor.help/Contents/Resources/ja.lproj/pgs/pref_window.html new file mode 100644 index 0000000000..02987ea905 --- /dev/null +++ b/CotEditor.help/Contents/Resources/ja.lproj/pgs/pref_window.html @@ -0,0 +1,82 @@ + + + + + + +環境設定:ウインドウ + + + + + + + + + +
    +

    環境設定:ウインドウ

    +

    ウインドウの大きさや行番号を表示するかなど、ウインドウのデフォルトの表示状態を設定します。
    +変更は新規書類から適用されます。

    +
    +
    □ ナビゲーションバーを表示
    +
    オンの場合、ツールバーの下にナビゲーションバーを表示します。
    +
    +
    +
    □ 行番号を表示
    +
    オンの場合、ウインドウの左に行番号を表示します。
    +
    +
    +
    □ 折り返した行にマークを表示
    +
    オンの場合、折り返した行(ラップしている行)にマークを表示します。オフでは何も表示しません。
    +
    +
    +
    +
    +
    □ ステータスバーを表示
    +
    オンの場合、ウインドウの下部にステータスバーを表示します。
    +
    +
    +
    □ 桁区切り記号を表示
    +
    文字数など表示される数値に桁区切り記号を挿入します。
    +
    +
    +
    +
    +
    □ ページガイドを表示
    +
    オンの場合、テキスト表示エリア内にページガイドを表示します。
    +
    +
    +
    表示する列:
    +
    ページガイドを表示する位置を指定します。設定されているフォントによって位置が変わります。
    +フォントの指定は「フォーマット」タブにあります。
    +
    +
    +
    +
    +
    ウインドウの大きさ
    +
    ウインドウのデフォルトサイズを設定できます。「ウインドウから取得...」ボタンをクリックすると、幅と高さを実際のウインドウを使って設定できます。
    +
    +
    +
    ウインドウの透明度
    +
    スライダーを動かすと、ウインドウを透明にできます。
    +
    +
    +
    □ テキストビューのみ
    +
    オンの場合、テキストビューのみが透明になります。オフの場合、タイトルバーやスクロールバーなどを含むウインドウのすべての部分が透明になります。
    +
    +
    +
    + +

    関連項目

    + +
    + + + diff --git a/CotEditor.help/Contents/Resources/ja.lproj/xpgs/xall.html b/CotEditor.help/Contents/Resources/ja.lproj/xpgs/xall.html new file mode 100644 index 0000000000..82f4353241 --- /dev/null +++ b/CotEditor.help/Contents/Resources/ja.lproj/xpgs/xall.html @@ -0,0 +1,39 @@ + + + + + + + + + + +索引 + + + + + +

    索引

    + + + + diff --git a/CotEditor.help/Contents/Resources/ja.lproj/xpgs/xcomplete.html b/CotEditor.help/Contents/Resources/ja.lproj/xpgs/xcomplete.html new file mode 100644 index 0000000000..8978dd81a7 --- /dev/null +++ b/CotEditor.help/Contents/Resources/ja.lproj/xpgs/xcomplete.html @@ -0,0 +1,30 @@ + + + + + + + + + + +入力補完 + + + + + +

    入力補完

    +
    +

    下のトピックをクリックしてください。

    + +
    + + + diff --git a/CotEditor.help/Contents/Resources/ja.lproj/xpgs/xconfiguration.html b/CotEditor.help/Contents/Resources/ja.lproj/xpgs/xconfiguration.html new file mode 100644 index 0000000000..0a486f06ed --- /dev/null +++ b/CotEditor.help/Contents/Resources/ja.lproj/xpgs/xconfiguration.html @@ -0,0 +1,33 @@ + + + + + + + + + + +設定する + + + + + +

    設定する

    +
    +

    下のトピックをクリックしてください。

    + + +
    + + + diff --git a/CotEditor.help/Contents/Resources/ja.lproj/xpgs/xcustomize.html b/CotEditor.help/Contents/Resources/ja.lproj/xpgs/xcustomize.html new file mode 100644 index 0000000000..295b9d99be --- /dev/null +++ b/CotEditor.help/Contents/Resources/ja.lproj/xpgs/xcustomize.html @@ -0,0 +1,31 @@ + + + + + + + + + +カスタマイズする + + + + + +

    カスタマイズする

    + + + + diff --git a/CotEditor.help/Contents/Resources/ja.lproj/xpgs/xencoding.html b/CotEditor.help/Contents/Resources/ja.lproj/xpgs/xencoding.html new file mode 100644 index 0000000000..0cf6539182 --- /dev/null +++ b/CotEditor.help/Contents/Resources/ja.lproj/xpgs/xencoding.html @@ -0,0 +1,33 @@ + + + + + + + + + + +文字エンコーディング + + + + + +

    文字エンコーディング

    + + + + diff --git a/CotEditor.help/Contents/Resources/ja.lproj/xpgs/xfaq.html b/CotEditor.help/Contents/Resources/ja.lproj/xpgs/xfaq.html new file mode 100644 index 0000000000..2c38ef4c67 --- /dev/null +++ b/CotEditor.help/Contents/Resources/ja.lproj/xpgs/xfaq.html @@ -0,0 +1,37 @@ + + + + + + + + + + +問題を解決する + + + + + +

    問題を解決する

    + + + + diff --git a/CotEditor.help/Contents/Resources/ja.lproj/xpgs/xfiledrop.html b/CotEditor.help/Contents/Resources/ja.lproj/xpgs/xfiledrop.html new file mode 100644 index 0000000000..0adb4560b3 --- /dev/null +++ b/CotEditor.help/Contents/Resources/ja.lproj/xpgs/xfiledrop.html @@ -0,0 +1,31 @@ + + + + + + + + + + +ファイルドロップ + + + + + +

    ファイルドロップ

    + + + + diff --git a/CotEditor.help/Contents/Resources/ja.lproj/xpgs/xhowto.html b/CotEditor.help/Contents/Resources/ja.lproj/xpgs/xhowto.html new file mode 100644 index 0000000000..5441373e6e --- /dev/null +++ b/CotEditor.help/Contents/Resources/ja.lproj/xpgs/xhowto.html @@ -0,0 +1,38 @@ + + + + + + + + + + +使い方のヒント + + + + + +

    使い方のヒント

    + + + + diff --git a/CotEditor.help/Contents/Resources/ja.lproj/xpgs/xoutlinemenu.html b/CotEditor.help/Contents/Resources/ja.lproj/xpgs/xoutlinemenu.html new file mode 100644 index 0000000000..94b14a7feb --- /dev/null +++ b/CotEditor.help/Contents/Resources/ja.lproj/xpgs/xoutlinemenu.html @@ -0,0 +1,31 @@ + + + + + + + + + + +アウトラインメニュー + + + + + +

    アウトラインメニュー

    + + + + diff --git a/CotEditor.help/Contents/Resources/ja.lproj/xpgs/xpreferences.html b/CotEditor.help/Contents/Resources/ja.lproj/xpgs/xpreferences.html new file mode 100644 index 0000000000..10093143c6 --- /dev/null +++ b/CotEditor.help/Contents/Resources/ja.lproj/xpgs/xpreferences.html @@ -0,0 +1,36 @@ + + + + + + + + + + +環境設定 + + + + + +

    環境設定

    +
    +

    環境設定パネルの設定項目について説明します。

    + +
    + + + diff --git a/CotEditor.help/Contents/Resources/ja.lproj/xpgs/xprint.html b/CotEditor.help/Contents/Resources/ja.lproj/xpgs/xprint.html new file mode 100644 index 0000000000..970a485d48 --- /dev/null +++ b/CotEditor.help/Contents/Resources/ja.lproj/xpgs/xprint.html @@ -0,0 +1,30 @@ + + + + + + + + + + +プリント + + + + + +

    プリント

    +
    +

    下のトピックをクリックしてください。

    + +
    + + + diff --git a/CotEditor.help/Contents/Resources/ja.lproj/xpgs/xscriptmenu.html b/CotEditor.help/Contents/Resources/ja.lproj/xpgs/xscriptmenu.html new file mode 100644 index 0000000000..83f39022ec --- /dev/null +++ b/CotEditor.help/Contents/Resources/ja.lproj/xpgs/xscriptmenu.html @@ -0,0 +1,32 @@ + + + + + + + + + + +スクリプトメニュー + + + + + +

    スクリプトメニュー

    + + + + diff --git a/CotEditor.help/Contents/Resources/ja.lproj/xpgs/xsyntax.html b/CotEditor.help/Contents/Resources/ja.lproj/xpgs/xsyntax.html new file mode 100644 index 0000000000..8cbbd0aba5 --- /dev/null +++ b/CotEditor.help/Contents/Resources/ja.lproj/xpgs/xsyntax.html @@ -0,0 +1,33 @@ + + + + + + + + + + +シンタックススタイル + + + + + +

    シンタックススタイル

    + + + + diff --git a/CotEditor.xcodeproj/project.pbxproj b/CotEditor.xcodeproj/project.pbxproj index 96b16ecb93..964969e6b3 100644 --- a/CotEditor.xcodeproj/project.pbxproj +++ b/CotEditor.xcodeproj/project.pbxproj @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 45; + objectVersion = 46; objects = { /* Begin PBXBuildFile section */ @@ -12,16 +12,16 @@ 2585914D080F503A0038F387 /* openDictionary.applescript in Resources */ = {isa = PBXBuildFile; fileRef = 2585914B080F503A0038F387 /* openDictionary.applescript */; }; 25859DB3076D65310020F779 /* CEAppController.m in Sources */ = {isa = PBXBuildFile; fileRef = 25859DB1076D65310020F779 /* CEAppController.m */; }; 25859DEE076D75BC0020F779 /* CEWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = 25859DEC076D75BC0020F779 /* CEWindowController.m */; }; - 25859EA7076D8EE80020F779 /* Preferences.nib in Resources */ = {isa = PBXBuildFile; fileRef = 25859EA5076D8EE80020F779 /* Preferences.nib */; }; + 25859EA7076D8EE80020F779 /* Preferences.xib in Resources */ = {isa = PBXBuildFile; fileRef = 25859EA5076D8EE80020F779 /* Preferences.xib */; }; 25859EC1076D92D60020F779 /* CEPreferences.m in Sources */ = {isa = PBXBuildFile; fileRef = 25859EBF076D92D60020F779 /* CEPreferences.m */; }; 258700E6077BAD2200E541BB /* CESyntaxManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 258700E4077BAD2200E541BB /* CESyntaxManager.m */; }; 2588E9C007C47ACC0060021D /* CEEditorView.m in Sources */ = {isa = PBXBuildFile; fileRef = 2588E9BE07C47ACC0060021D /* CEEditorView.m */; }; - 2588E9CE07C4851C0060021D /* Indicator.nib in Resources */ = {isa = PBXBuildFile; fileRef = 2588E9CC07C4851C0060021D /* Indicator.nib */; }; + 2588E9CE07C4851C0060021D /* Indicator.xib in Resources */ = {isa = PBXBuildFile; fileRef = 2588E9CC07C4851C0060021D /* Indicator.xib */; }; 258998F507CEED3400098762 /* defaultSyntaxStyle_HTML.plist in Resources */ = {isa = PBXBuildFile; fileRef = 258998F407CEED3400098762 /* defaultSyntaxStyle_HTML.plist */; }; 2589EF5307F247AD003BF861 /* defaultSyntaxStyle_CSS.plist in Resources */ = {isa = PBXBuildFile; fileRef = 2589EF5207F247AD003BF861 /* defaultSyntaxStyle_CSS.plist */; }; 258A14D107F3C6BC008E5FA1 /* CEFlippedView.m in Sources */ = {isa = PBXBuildFile; fileRef = 258A14CF07F3C6BC008E5FA1 /* CEFlippedView.m */; }; 258D708A07D456DF0062A3E5 /* CETextSelection.m in Sources */ = {isa = PBXBuildFile; fileRef = 258D708807D456DF0062A3E5 /* CETextSelection.m */; }; - 258EF2FA077FEDD000011E52 /* SyntaxManager.nib in Resources */ = {isa = PBXBuildFile; fileRef = 258EF2F8077FEDD000011E52 /* SyntaxManager.nib */; }; + 258EF2FA077FEDD000011E52 /* SyntaxManager.xib in Resources */ = {isa = PBXBuildFile; fileRef = 258EF2F8077FEDD000011E52 /* SyntaxManager.xib */; }; 259BFDCE076EBF7E00A5A6D0 /* CEDocumentController.m in Sources */ = {isa = PBXBuildFile; fileRef = 259BFDCC076EBF7E00A5A6D0 /* CEDocumentController.m */; }; 259C2318077678DE00BA61C5 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 259C2316077678DE00BA61C5 /* Localizable.strings */; }; 25A1DE2F07A0A06500C49AAA /* defaultSyntaxStyle_Plain Text.plist in Resources */ = {isa = PBXBuildFile; fileRef = 25A1DE2E07A0A06500C49AAA /* defaultSyntaxStyle_Plain Text.plist */; }; @@ -29,10 +29,36 @@ 25B2C23707FA667400F4EFC7 /* CELineNumView.m in Sources */ = {isa = PBXBuildFile; fileRef = 25B2C23507FA667400F4EFC7 /* CELineNumView.m */; }; 25B2C24407FA68D100F4EFC7 /* CEStatusBarView.m in Sources */ = {isa = PBXBuildFile; fileRef = 25B2C24207FA68D100F4EFC7 /* CEStatusBarView.m */; }; 25B2C24D07FA6BC400F4EFC7 /* CETextViewCore.m in Sources */ = {isa = PBXBuildFile; fileRef = 25B2C24B07FA6BC400F4EFC7 /* CETextViewCore.m */; }; - 6C4216A612DDB9180037690E /* Docs in Resources */ = {isa = PBXBuildFile; fileRef = 6C42169512DDB9180037690E /* Docs */; }; - 6C4216BD12DDB9EB0037690E /* Docs_for_src in Resources */ = {isa = PBXBuildFile; fileRef = 6C4216B512DDB9EB0037690E /* Docs_for_src */; }; + 2A067B9A18D52F5200546280 /* Acknowledgements.rtf in Resources */ = {isa = PBXBuildFile; fileRef = 2A067B9818D52F5200546280 /* Acknowledgements.rtf */; }; + 2A0722F316D3CF2E00F49864 /* scriptMenuIcon.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 2A0722F216D3CF2E00F49864 /* scriptMenuIcon.pdf */; }; + 2A07230616D3CF4F00F49864 /* addButtonImg.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 2A0722F416D3CF4F00F49864 /* addButtonImg.pdf */; }; + 2A07230716D3CF4F00F49864 /* centerButtonImg.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 2A0722F516D3CF4F00F49864 /* centerButtonImg.pdf */; }; + 2A07230816D3CF4F00F49864 /* clearButtonImg.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 2A0722F616D3CF4F00F49864 /* clearButtonImg.pdf */; }; + 2A07230916D3CF4F00F49864 /* closeSplitButtonImg.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 2A0722F716D3CF4F00F49864 /* closeSplitButtonImg.pdf */; }; + 2A07230A16D3CF4F00F49864 /* editButtonImg.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 2A0722F816D3CF4F00F49864 /* editButtonImg.pdf */; }; + 2A07230B16D3CF4F00F49864 /* leftButtonImg.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 2A0722F916D3CF4F00F49864 /* leftButtonImg.pdf */; }; + 2A07230C16D3CF4F00F49864 /* lockOnImg.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 2A0722FA16D3CF4F00F49864 /* lockOnImg.pdf */; }; + 2A07230D16D3CF4F00F49864 /* nextButtonImg.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 2A0722FB16D3CF4F00F49864 /* nextButtonImg.pdf */; }; + 2A07230E16D3CF4F00F49864 /* openSplitButtonImg.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 2A0722FC16D3CF4F00F49864 /* openSplitButtonImg.pdf */; }; + 2A07230F16D3CF4F00F49864 /* pageGuide.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 2A0722FD16D3CF4F00F49864 /* pageGuide.pdf */; }; + 2A07231016D3CF4F00F49864 /* popUpButtonArrow.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 2A0722FE16D3CF4F00F49864 /* popUpButtonArrow.pdf */; }; + 2A07231116D3CF4F00F49864 /* popUpButtonBG_center.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 2A0722FF16D3CF4F00F49864 /* popUpButtonBG_center.pdf */; }; + 2A07231216D3CF4F00F49864 /* popUpButtonBG_left.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 2A07230016D3CF4F00F49864 /* popUpButtonBG_left.pdf */; }; + 2A07231316D3CF4F00F49864 /* prevButtonImg.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 2A07230116D3CF4F00F49864 /* prevButtonImg.pdf */; }; + 2A07231416D3CF4F00F49864 /* removeButtonImg.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 2A07230216D3CF4F00F49864 /* removeButtonImg.pdf */; }; + 2A07231516D3CF4F00F49864 /* rightButtonImg.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 2A07230316D3CF4F00F49864 /* rightButtonImg.pdf */; }; + 2A07231616D3CF4F00F49864 /* swapArrow.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 2A07230416D3CF4F00F49864 /* swapArrow.pdf */; }; + 2A07231716D3CF4F00F49864 /* transparencyGuide.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 2A07230516D3CF4F00F49864 /* transparencyGuide.pdf */; }; + 2A6394DA18B0BFA0008D304D /* defaultSyntaxStyle_XML.plist in Resources */ = {isa = PBXBuildFile; fileRef = 2A6394D918B0BFA0008D304D /* defaultSyntaxStyle_XML.plist */; }; + 2A6394DC18B0BFA7008D304D /* defaultSyntaxStyle_Apache.plist in Resources */ = {isa = PBXBuildFile; fileRef = 2A6394DB18B0BFA7008D304D /* defaultSyntaxStyle_Apache.plist */; }; + 2A6394DE18B0BFAE008D304D /* defaultSyntaxStyle_Markdown.plist in Resources */ = {isa = PBXBuildFile; fileRef = 2A6394DD18B0BFAE008D304D /* defaultSyntaxStyle_Markdown.plist */; }; + 2A6394E018B0BFB9008D304D /* defaultSyntaxStyle_Scala.plist in Resources */ = {isa = PBXBuildFile; fileRef = 2A6394DF18B0BFB9008D304D /* defaultSyntaxStyle_Scala.plist */; }; + 2A7572BF18B3BBAE00878F66 /* CotEditor.help in Resources */ = {isa = PBXBuildFile; fileRef = 2A7572BE18B3BBAE00878F66 /* CotEditor.help */; }; + 2A8663AE18C93D2200A6F9CC /* ReadMe.rtf in Resources */ = {isa = PBXBuildFile; fileRef = 2A8663B018C93D2200A6F9CC /* ReadMe.rtf */; }; + 2A8663C918C93FEB00A6F9CC /* Version History.rtf in Resources */ = {isa = PBXBuildFile; fileRef = 2A8663CB18C93FEB00A6F9CC /* Version History.rtf */; }; + 2A8663DD18C9F6B700A6F9CC /* NSData+MD5.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A8663DC18C9F6B700A6F9CC /* NSData+MD5.m */; }; + 2A9A144B18B67846001080D6 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 2A9A144A18B67846001080D6 /* Images.xcassets */; }; 6C6DAE3E13833C0E007F2326 /* dsa_pub.pem in Resources */ = {isa = PBXBuildFile; fileRef = 6C6DAE3D13833C0E007F2326 /* dsa_pub.pem */; }; - 6C9BF21D12F62D3A0097BFE7 /* CotEditorHelp in Resources */ = {isa = PBXBuildFile; fileRef = 6C9BF21C12F62D3A0097BFE7 /* CotEditorHelp */; }; 6CA3B3E312E3B59B0019AB2E /* Script in Resources */ = {isa = PBXBuildFile; fileRef = 6CA3B36012E3B59B0019AB2E /* Script */; }; 6CB074A21373A03B001D0243 /* Sparkle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6CB074A11373A03B001D0243 /* Sparkle.framework */; }; 6CB074B11373A0C3001D0243 /* Sparkle.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = 6CB074A11373A03B001D0243 /* Sparkle.framework */; }; @@ -44,40 +70,28 @@ 8C1305B20DC4B83000975AC6 /* RKLMatchEnumerator.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C1305B10DC4B83000975AC6 /* RKLMatchEnumerator.m */; }; 8C13A5650A038ABC001EA22F /* defaultSyntaxStyle_eRuby.plist in Resources */ = {isa = PBXBuildFile; fileRef = 8C13A5640A038ABC001EA22F /* defaultSyntaxStyle_eRuby.plist */; }; 8C13A5670A038B74001EA22F /* defaultSyntaxStyle_Java.plist in Resources */ = {isa = PBXBuildFile; fileRef = 8C13A5660A038B74001EA22F /* defaultSyntaxStyle_Java.plist */; }; - 8C18347808D5B29600E8AEE2 /* clearButtonImg.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8C18347608D5B29600E8AEE2 /* clearButtonImg.tiff */; }; - 8C18347908D5B29600E8AEE2 /* editButtonImg.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8C18347708D5B29600E8AEE2 /* editButtonImg.tiff */; }; - 8C1FC69D08BDCA6100E4A6EA /* popUpButtonBG_center.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8C1FC69B08BDCA6100E4A6EA /* popUpButtonBG_center.tiff */; }; - 8C1FC69E08BDCA6100E4A6EA /* popUpButtonBG_left.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8C1FC69C08BDCA6100E4A6EA /* popUpButtonBG_left.tiff */; }; 8C2790FC07D18A6700103A53 /* CotEditor.scriptTerminology in Resources */ = {isa = PBXBuildFile; fileRef = 8C2790FB07D18A6700103A53 /* CotEditor.scriptTerminology */; }; 8C27910007D18AC300103A53 /* CotEditor.scriptSuite in Resources */ = {isa = PBXBuildFile; fileRef = 8C2790FF07D18AC300103A53 /* CotEditor.scriptSuite */; }; - 8C28CD2E081101A300733DA7 /* ScriptManager.nib in Resources */ = {isa = PBXBuildFile; fileRef = 8C28CD2C081101A300733DA7 /* ScriptManager.nib */; }; - 8C28CD7808110E4A00733DA7 /* cleanButtonIcon.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8C28CD7708110E4A00733DA7 /* cleanButtonIcon.tiff */; }; + 8C28CD2E081101A300733DA7 /* ScriptManager.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8C28CD2C081101A300733DA7 /* ScriptManager.xib */; }; + 8C28CD7808110E4A00733DA7 /* Script_CleanButton.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8C28CD7708110E4A00733DA7 /* Script_CleanButton.tiff */; }; 8C3289F007A21422001CA481 /* OgreKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8C3289EF07A21422001CA481 /* OgreKit.framework */; }; 8C3289F207A2146B001CA481 /* OgreKit.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = 8C3289EF07A21422001CA481 /* OgreKit.framework */; }; - 8C3763A80887CBDB0085C207 /* swapArrow.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8C3763A70887CBDB0085C207 /* swapArrow.tiff */; }; 8C3840930D16B75C00F76A4C /* UKXattrMetadataStore.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C3840920D16B75C00F76A4C /* UKXattrMetadataStore.m */; }; 8C38409B0D16B7AC00F76A4C /* UKXattrMetadataStore.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 8C3840910D16B75C00F76A4C /* UKXattrMetadataStore.h */; }; 8C3A7DEA0867EC9C00ECE052 /* startup.applescript in Resources */ = {isa = PBXBuildFile; fileRef = 8C3A7DD80867EA9A00ECE052 /* startup.applescript */; }; - 8C3AB31B08C16B3900F2B81F /* prevButtonImg.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8C3AB31A08C16B3900F2B81F /* prevButtonImg.tiff */; }; - 8C3AB34608C1715800F2B81F /* nextButtonImg.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8C3AB34508C1715800F2B81F /* nextButtonImg.tiff */; }; 8C3BEA2808BDBCA800BC2067 /* CEOutlineMenuButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C3BEA2608BDBCA800BC2067 /* CEOutlineMenuButton.m */; }; 8C3E2D500808E203009894D1 /* LineNumber_Hide.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8C3E2D480808E203009894D1 /* LineNumber_Hide.tiff */; }; 8C3E2D510808E203009894D1 /* LineNumber_Show.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8C3E2D490808E203009894D1 /* LineNumber_Show.tiff */; }; - 8C3E2D520808E203009894D1 /* PageSetup.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8C3E2D4A0808E203009894D1 /* PageSetup.tiff */; }; - 8C3E2D530808E203009894D1 /* Preferences.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8C3E2D4B0808E203009894D1 /* Preferences.tiff */; }; - 8C3E2D540808E203009894D1 /* Save.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8C3E2D4C0808E203009894D1 /* Save.tiff */; }; - 8C3E2D550808E203009894D1 /* SaveAs.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8C3E2D4D0808E203009894D1 /* SaveAs.tiff */; }; 8C3E2D560808E203009894D1 /* Shift_Left.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8C3E2D4E0808E203009894D1 /* Shift_Left.tiff */; }; 8C3E2D570808E203009894D1 /* Shift_Right.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8C3E2D4F0808E203009894D1 /* Shift_Right.tiff */; }; 8C3E2D5E0808E210009894D1 /* StatusArea_Hide.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8C3E2D590808E210009894D1 /* StatusArea_Hide.tiff */; }; 8C3E2D5F0808E210009894D1 /* StatusArea_Show.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8C3E2D5A0808E210009894D1 /* StatusArea_Show.tiff */; }; - 8C3E2D600808E210009894D1 /* TransparencyPanel.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8C3E2D5B0808E210009894D1 /* TransparencyPanel.tiff */; }; 8C3E2D610808E210009894D1 /* WrapLines_Off.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8C3E2D5C0808E210009894D1 /* WrapLines_Off.tiff */; }; 8C3E2D620808E210009894D1 /* WrapLines_On.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8C3E2D5D0808E210009894D1 /* WrapLines_On.tiff */; }; 8C4186C0088648CA0039FBFC /* CEHCCManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C4186BE088648CA0039FBFC /* CEHCCManager.m */; }; - 8C4186D008864B3E0039FBFC /* HCCManager.nib in Resources */ = {isa = PBXBuildFile; fileRef = 8C4186CE08864B3E0039FBFC /* HCCManager.nib */; }; + 8C4186D008864B3E0039FBFC /* HCCManager.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8C4186CE08864B3E0039FBFC /* HCCManager.xib */; }; 8C418721088655E00039FBFC /* CEHexColorTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C41871F088655E00039FBFC /* CEHexColorTransformer.m */; }; - 8C49092D07F43DCA0072AAE9 /* NSEventAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C49092B07F43DCA0072AAE9 /* NSEventAdditions.m */; }; + 8C49092D07F43DCA0072AAE9 /* NSEvent+CarbonModFlag.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C49092B07F43DCA0072AAE9 /* NSEvent+CarbonModFlag.m */; }; 8C49094607F441510072AAE9 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8C49094507F441510072AAE9 /* Carbon.framework */; }; 8C4BC92F0895BD3C00F5263E /* EditHexAsBG.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8C4BC92D0895BD3C00F5263E /* EditHexAsBG.tiff */; }; 8C4BC9300895BD3C00F5263E /* EditHexAsFore.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8C4BC92E0895BD3C00F5263E /* EditHexAsFore.tiff */; }; @@ -85,23 +99,16 @@ 8C5684CA0C48A36200346FB0 /* defaultSyntaxStyle_Python.plist in Resources */ = {isa = PBXBuildFile; fileRef = 8C5684C90C48A36200346FB0 /* defaultSyntaxStyle_Python.plist */; }; 8C5853360903C1ED0085BC4F /* CETabItemView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C5853340903C1ED0085BC4F /* CETabItemView.m */; }; 8C65C0E807927D0F0028D94A /* CELayoutManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C65C0E607927D0F0028D94A /* CELayoutManager.m */; }; - 8C7400A408C6D93900683672 /* KeyBindingManager.nib in Resources */ = {isa = PBXBuildFile; fileRef = 8C7400A208C6D93900683672 /* KeyBindingManager.nib */; }; + 8C7400A408C6D93900683672 /* KeyBindingManager.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8C7400A208C6D93900683672 /* KeyBindingManager.xib */; }; 8C7400A908C6D96D00683672 /* CEKeyBindingManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C7400A708C6D96D00683672 /* CEKeyBindingManager.m */; }; 8C74017708C7364400683672 /* defaultSyntaxStyle_LaTeX.plist in Resources */ = {isa = PBXBuildFile; fileRef = 8C74017608C7364400683672 /* defaultSyntaxStyle_LaTeX.plist */; }; 8C78824708ED5A03003EFE02 /* defaultSyntaxStyle_Ruby.plist in Resources */ = {isa = PBXBuildFile; fileRef = 8C78824608ED5A03003EFE02 /* defaultSyntaxStyle_Ruby.plist */; }; 8C7D7DB30BE71A3000C2C7E3 /* defaultSyntaxStyle_Haskell.plist in Resources */ = {isa = PBXBuildFile; fileRef = 8C7D7DB20BE71A3000C2C7E3 /* defaultSyntaxStyle_Haskell.plist */; }; 8C7F74EC091C738C005C7598 /* ODBEditorSuite.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 8C7F74EB091C738C005C7598 /* ODBEditorSuite.h */; }; - 8C7F74EF091C74B7005C7598 /* UKKQueue.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 8C7F74ED091C74B7005C7598 /* UKKQueue.h */; }; - 8C7F74F0091C74B7005C7598 /* UKKQueue.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C7F74EE091C74B7005C7598 /* UKKQueue.m */; }; - 8C7F74FC091C7575005C7598 /* UKFileWatcher.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 8C7F74FB091C7575005C7598 /* UKFileWatcher.h */; }; - 8C7F7503091C7596005C7598 /* UKMainThreadProxy.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 8C7F7501091C7596005C7598 /* UKMainThreadProxy.h */; }; - 8C7F7504091C7596005C7598 /* UKMainThreadProxy.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C7F7502091C7596005C7598 /* UKMainThreadProxy.m */; }; 8C83A48309485F27004E48A8 /* CEATSTypesetter.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C83A48109485F27004E48A8 /* CEATSTypesetter.m */; }; 8C8971360902620D0013FA27 /* CEPreferencesTabController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C8971340902620D0013FA27 /* CEPreferencesTabController.m */; }; 8C89772B0DCD8B4000DC32FF /* libicucore.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 8C8977240DCD8AD000DC32FF /* libicucore.dylib */; }; 8C8CCCB109D6803400A008E5 /* CESplitView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C8CCCAF09D6803400A008E5 /* CESplitView.m */; }; - 8C982DDF07FAE57700AA36F0 /* addButtonImg.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8C982DDD07FAE57700AA36F0 /* addButtonImg.tiff */; }; - 8C982DE007FAE57700AA36F0 /* removeButtonImg.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8C982DDE07FAE57700AA36F0 /* removeButtonImg.tiff */; }; 8C98366708C0211D00746F92 /* IncompatibleChar.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8C98366608C0211D00746F92 /* IncompatibleChar.tiff */; }; 8C9997C10873DB73003F4294 /* defaultSyntaxStyle_Perl.plist in Resources */ = {isa = PBXBuildFile; fileRef = 8C9997C00873DB73003F4294 /* defaultSyntaxStyle_Perl.plist */; }; 8C9997DD0873EDF6003F4294 /* defaultSyntaxStyle_Shell Script.plist in Resources */ = {isa = PBXBuildFile; fileRef = 8C9997DC0873EDF6003F4294 /* defaultSyntaxStyle_Shell Script.plist */; }; @@ -111,22 +118,12 @@ 8CA71BCE07D2A79100C146B0 /* biggerFont.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8CA71BCC07D2A79100C146B0 /* biggerFont.tiff */; }; 8CA71BCF07D2A79100C146B0 /* smallerFont.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8CA71BCD07D2A79100C146B0 /* smallerFont.tiff */; }; 8CB0122E07CA0EFA00221EDC /* CEToolbarController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CB0122C07CA0EFA00221EDC /* CEToolbarController.m */; }; - 8CB056B707E3D07A0027D866 /* scriptMenuIcon.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8CB056B607E3D07A0027D866 /* scriptMenuIcon.tiff */; }; - 8CB10E2A07C4D36200E73342 /* transparencyGuide.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8CB10E2907C4D36200E73342 /* transparencyGuide.tiff */; }; 8CB3AF69087F9335004BFDDD /* defaultSyntaxStyle_JavaScript.plist in Resources */ = {isa = PBXBuildFile; fileRef = 8CB3AF68087F9335004BFDDD /* defaultSyntaxStyle_JavaScript.plist */; }; - 8CBCA8AA0941D67400B258D8 /* pageGuide.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8CBCA8A90941D67400B258D8 /* pageGuide.tiff */; }; 8CBFD5F40DC42B1200EC093D /* CEPrivateMutableArray.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CBFD5F30DC42B1200EC093D /* CEPrivateMutableArray.m */; }; - 8CC1925707E2D84500B54AE4 /* CEDocumentAppleScript.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CC1925507E2D84500B54AE4 /* CEDocumentAppleScript.m */; }; + 8CC1925707E2D84500B54AE4 /* CEDocument+ScriptingSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CC1925507E2D84500B54AE4 /* CEDocument+ScriptingSupport.m */; }; 8CC1961D07E2E54E00B54AE4 /* CEScriptManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CC1961B07E2E54E00B54AE4 /* CEScriptManager.m */; }; 8CC5044508EE829500A525A6 /* CEPrintView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CC5044308EE829500A525A6 /* CEPrintView.m */; }; 8CC6EBB108CED0F700508369 /* DefaultMenuKeyBindings.plist in Resources */ = {isa = PBXBuildFile; fileRef = 8CC6EBB008CED0F700508369 /* DefaultMenuKeyBindings.plist */; }; - 8CC98A8808BD9A02008BEC7B /* popUpButtonArrow.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8CC98A8708BD9A02008BEC7B /* popUpButtonArrow.tiff */; }; - 8CCB26DA08E6D042007137D7 /* centerButtonImg.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8CCB26D908E6D042007137D7 /* centerButtonImg.tiff */; }; - 8CCB26DC08E6D048007137D7 /* leftButtonImg.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8CCB26DB08E6D048007137D7 /* leftButtonImg.tiff */; }; - 8CCB26DE08E6D055007137D7 /* rightButtonImg.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8CCB26DD08E6D055007137D7 /* rightButtonImg.tiff */; }; - 8CCB5C36083F1F3C0022BA2A /* Credits.rtf in Resources */ = {isa = PBXBuildFile; fileRef = 8CCB5C35083F1F3C0022BA2A /* Credits.rtf */; }; - 8CD5D80707BD044A00BAA31F /* docIcon.icns in Resources */ = {isa = PBXBuildFile; fileRef = 8CD5D80607BD044A00BAA31F /* docIcon.icns */; }; - 8CD5D80A07BD046900BAA31F /* appIcon.icns in Resources */ = {isa = PBXBuildFile; fileRef = 8CD5D80907BD046900BAA31F /* appIcon.icns */; }; 8CD7A93C09CBDDDC00739513 /* CESubSplitView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CD7A93A09CBDDDC00739513 /* CESubSplitView.m */; }; 8CE4859908CD617B004817E1 /* CEApplication.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CE4859708CD617B004817E1 /* CEApplication.m */; }; 8CE570B508A6E047004A8924 /* defaultSyntaxStyle_C, C++, Objective-C.plist in Resources */ = {isa = PBXBuildFile; fileRef = 8CE570B408A6E047004A8924 /* defaultSyntaxStyle_C, C++, Objective-C.plist */; }; @@ -143,11 +140,8 @@ 8CEF66C60995E4A700C65A84 /* PageGuide_Hide.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8CEF66C40995E4A700C65A84 /* PageGuide_Hide.tiff */; }; 8CEF66C70995E4A700C65A84 /* PageGuide_Show.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8CEF66C50995E4A700C65A84 /* PageGuide_Show.tiff */; }; 8CF02E1608B9B9F8004044EB /* CENavigationBarView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CF02E1408B9B9F8004044EB /* CENavigationBarView.m */; }; - 8CF7930009F518CB001BDFF7 /* openSplitButtonImg.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8CF792FF09F518CB001BDFF7 /* openSplitButtonImg.tiff */; }; - 8CF7930209F518D7001BDFF7 /* closeSplitButtonImg.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8CF7930109F518D7001BDFF7 /* closeSplitButtonImg.tiff */; }; - 8CFB565D0885087000AF0816 /* lockOnImg.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8CFB565C0885087000AF0816 /* lockOnImg.tiff */; }; - 8D15AC2D0486D014006FF6A4 /* MainMenu.nib in Resources */ = {isa = PBXBuildFile; fileRef = 2A37F4B6FDCFA73011CA2CEA /* MainMenu.nib */; }; - 8D15AC2E0486D014006FF6A4 /* DocWindow.nib in Resources */ = {isa = PBXBuildFile; fileRef = 2A37F4B4FDCFA73011CA2CEA /* DocWindow.nib */; }; + 8D15AC2D0486D014006FF6A4 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 2A37F4B6FDCFA73011CA2CEA /* MainMenu.xib */; }; + 8D15AC2E0486D014006FF6A4 /* DocWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 2A37F4B4FDCFA73011CA2CEA /* DocWindow.xib */; }; 8D15AC2F0486D014006FF6A4 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165FFE840EACC02AAC07 /* InfoPlist.strings */; }; 8D15AC310486D014006FF6A4 /* CEDocument.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A37F4ACFDCFA73011CA2CEA /* CEDocument.m */; settings = {ATTRIBUTES = (); }; }; 8D15AC320486D014006FF6A4 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A37F4B0FDCFA73011CA2CEA /* main.m */; settings = {ATTRIBUTES = (); }; }; @@ -163,9 +157,6 @@ files = ( 8C3289F207A2146B001CA481 /* OgreKit.framework in CopyFiles */, 8C7F74EC091C738C005C7598 /* ODBEditorSuite.h in CopyFiles */, - 8C7F74EF091C74B7005C7598 /* UKKQueue.h in CopyFiles */, - 8C7F74FC091C7575005C7598 /* UKFileWatcher.h in CopyFiles */, - 8C7F7503091C7596005C7598 /* UKMainThreadProxy.h in CopyFiles */, 8C38409B0D16B7AC00F76A4C /* UKXattrMetadataStore.h in CopyFiles */, 6CB074B11373A0C3001D0243 /* Sparkle.framework in CopyFiles */, ); @@ -174,7 +165,7 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 089C1660FE840EACC02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = ""; }; + 089C1660FE840EACC02AAC07 /* en */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; 1058C7A7FEA54F5311CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = ""; }; 258225FE07794C2A00A0F8D3 /* CESyntax.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CESyntax.h; sourceTree = ""; }; 258225FF07794C2A00A0F8D3 /* CESyntax.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CESyntax.m; sourceTree = ""; }; @@ -185,24 +176,24 @@ 25859DEB076D75BC0020F779 /* CEWindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CEWindowController.h; sourceTree = ""; }; 25859DEC076D75BC0020F779 /* CEWindowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CEWindowController.m; sourceTree = ""; }; 25859E90076D88ED0020F779 /* constants.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = constants.h; sourceTree = SOURCE_ROOT; }; - 25859EA6076D8EE80020F779 /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/Preferences.nib; sourceTree = ""; }; + 25859EA6076D8EE80020F779 /* en */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xib; name = en; path = en.lproj/Preferences.xib; sourceTree = ""; }; 25859EBE076D92D60020F779 /* CEPreferences.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CEPreferences.h; sourceTree = ""; }; 25859EBF076D92D60020F779 /* CEPreferences.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CEPreferences.m; sourceTree = ""; }; 258700E3077BAD2200E541BB /* CESyntaxManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CESyntaxManager.h; sourceTree = ""; }; 258700E4077BAD2200E541BB /* CESyntaxManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CESyntaxManager.m; sourceTree = ""; }; 2588E9BD07C47ACC0060021D /* CEEditorView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CEEditorView.h; sourceTree = ""; }; 2588E9BE07C47ACC0060021D /* CEEditorView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = CEEditorView.m; sourceTree = ""; }; - 2588E9CD07C4851C0060021D /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/Indicator.nib; sourceTree = ""; }; + 2588E9CD07C4851C0060021D /* en */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xib; name = en; path = en.lproj/Indicator.xib; sourceTree = ""; }; 258998F407CEED3400098762 /* defaultSyntaxStyle_HTML.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = defaultSyntaxStyle_HTML.plist; path = SyntaxColorings/defaultSyntaxStyle_HTML.plist; sourceTree = ""; }; 2589EF5207F247AD003BF861 /* defaultSyntaxStyle_CSS.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = defaultSyntaxStyle_CSS.plist; path = SyntaxColorings/defaultSyntaxStyle_CSS.plist; sourceTree = ""; }; 258A14CE07F3C6BC008E5FA1 /* CEFlippedView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CEFlippedView.h; sourceTree = ""; }; 258A14CF07F3C6BC008E5FA1 /* CEFlippedView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CEFlippedView.m; sourceTree = ""; }; 258D708707D456DF0062A3E5 /* CETextSelection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CETextSelection.h; sourceTree = ""; }; 258D708807D456DF0062A3E5 /* CETextSelection.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CETextSelection.m; sourceTree = ""; }; - 258EF2F9077FEDD000011E52 /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/SyntaxManager.nib; sourceTree = ""; }; + 258EF2F9077FEDD000011E52 /* en */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xib; name = en; path = en.lproj/SyntaxManager.xib; sourceTree = ""; }; 259BFDCB076EBF7E00A5A6D0 /* CEDocumentController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CEDocumentController.h; sourceTree = ""; }; 259BFDCC076EBF7E00A5A6D0 /* CEDocumentController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CEDocumentController.m; sourceTree = ""; }; - 259C2317077678DE00BA61C5 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/Localizable.strings; sourceTree = ""; }; + 259C2317077678DE00BA61C5 /* en */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = ""; }; 25A1DE2E07A0A06500C49AAA /* defaultSyntaxStyle_Plain Text.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = "defaultSyntaxStyle_Plain Text.plist"; path = "SyntaxColorings/defaultSyntaxStyle_Plain Text.plist"; sourceTree = ""; }; 25AC0919077190EB00B0C91C /* CEPrefEncodingDataSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CEPrefEncodingDataSource.h; sourceTree = ""; }; 25AC091A077190EB00B0C91C /* CEPrefEncodingDataSource.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CEPrefEncodingDataSource.m; sourceTree = ""; }; @@ -212,78 +203,95 @@ 25B2C24207FA68D100F4EFC7 /* CEStatusBarView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CEStatusBarView.m; sourceTree = ""; }; 25B2C24A07FA6BC400F4EFC7 /* CETextViewCore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CETextViewCore.h; sourceTree = ""; }; 25B2C24B07FA6BC400F4EFC7 /* CETextViewCore.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = CETextViewCore.m; sourceTree = ""; }; + 2A067B9918D52F5200546280 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = en; path = en.lproj/Acknowledgements.rtf; sourceTree = ""; }; + 2A067B9B18D52F5700546280 /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = ja; path = ja.lproj/Acknowledgements.rtf; sourceTree = ""; }; + 2A0722F216D3CF2E00F49864 /* scriptMenuIcon.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; name = scriptMenuIcon.pdf; path = images/scriptMenuIcon.pdf; sourceTree = ""; }; + 2A0722F416D3CF4F00F49864 /* addButtonImg.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; name = addButtonImg.pdf; path = images/addButtonImg.pdf; sourceTree = ""; }; + 2A0722F516D3CF4F00F49864 /* centerButtonImg.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; name = centerButtonImg.pdf; path = images/centerButtonImg.pdf; sourceTree = ""; }; + 2A0722F616D3CF4F00F49864 /* clearButtonImg.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; name = clearButtonImg.pdf; path = images/clearButtonImg.pdf; sourceTree = ""; }; + 2A0722F716D3CF4F00F49864 /* closeSplitButtonImg.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; name = closeSplitButtonImg.pdf; path = images/closeSplitButtonImg.pdf; sourceTree = ""; }; + 2A0722F816D3CF4F00F49864 /* editButtonImg.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; name = editButtonImg.pdf; path = images/editButtonImg.pdf; sourceTree = ""; }; + 2A0722F916D3CF4F00F49864 /* leftButtonImg.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; name = leftButtonImg.pdf; path = images/leftButtonImg.pdf; sourceTree = ""; }; + 2A0722FA16D3CF4F00F49864 /* lockOnImg.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; name = lockOnImg.pdf; path = images/lockOnImg.pdf; sourceTree = ""; }; + 2A0722FB16D3CF4F00F49864 /* nextButtonImg.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; name = nextButtonImg.pdf; path = images/nextButtonImg.pdf; sourceTree = ""; }; + 2A0722FC16D3CF4F00F49864 /* openSplitButtonImg.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; name = openSplitButtonImg.pdf; path = images/openSplitButtonImg.pdf; sourceTree = ""; }; + 2A0722FD16D3CF4F00F49864 /* pageGuide.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; name = pageGuide.pdf; path = images/pageGuide.pdf; sourceTree = ""; }; + 2A0722FE16D3CF4F00F49864 /* popUpButtonArrow.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; name = popUpButtonArrow.pdf; path = images/popUpButtonArrow.pdf; sourceTree = ""; }; + 2A0722FF16D3CF4F00F49864 /* popUpButtonBG_center.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; name = popUpButtonBG_center.pdf; path = images/popUpButtonBG_center.pdf; sourceTree = ""; }; + 2A07230016D3CF4F00F49864 /* popUpButtonBG_left.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; name = popUpButtonBG_left.pdf; path = images/popUpButtonBG_left.pdf; sourceTree = ""; }; + 2A07230116D3CF4F00F49864 /* prevButtonImg.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; name = prevButtonImg.pdf; path = images/prevButtonImg.pdf; sourceTree = ""; }; + 2A07230216D3CF4F00F49864 /* removeButtonImg.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; name = removeButtonImg.pdf; path = images/removeButtonImg.pdf; sourceTree = ""; }; + 2A07230316D3CF4F00F49864 /* rightButtonImg.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; name = rightButtonImg.pdf; path = images/rightButtonImg.pdf; sourceTree = ""; }; + 2A07230416D3CF4F00F49864 /* swapArrow.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; name = swapArrow.pdf; path = images/swapArrow.pdf; sourceTree = ""; }; + 2A07230516D3CF4F00F49864 /* transparencyGuide.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; name = transparencyGuide.pdf; path = images/transparencyGuide.pdf; sourceTree = ""; }; 2A37F4ACFDCFA73011CA2CEA /* CEDocument.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = CEDocument.m; sourceTree = ""; }; 2A37F4AEFDCFA73011CA2CEA /* CEDocument.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CEDocument.h; sourceTree = ""; }; 2A37F4B0FDCFA73011CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; - 2A37F4B5FDCFA73011CA2CEA /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/DocWindow.nib; sourceTree = ""; }; - 2A37F4B7FDCFA73011CA2CEA /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/MainMenu.nib; sourceTree = ""; }; + 2A37F4B5FDCFA73011CA2CEA /* en */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xib; name = en; path = en.lproj/DocWindow.xib; sourceTree = ""; }; + 2A37F4B7FDCFA73011CA2CEA /* en */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xib; name = en; path = en.lproj/MainMenu.xib; sourceTree = ""; }; 2A37F4C4FDCFA73011CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = ""; }; 2A37F4C5FDCFA73011CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = ""; }; + 2A47A70B18CC8A7C0076B49A /* ja */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ja; path = ja.lproj/ScriptManager.xib; sourceTree = ""; }; + 2A6394D918B0BFA0008D304D /* defaultSyntaxStyle_XML.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = defaultSyntaxStyle_XML.plist; path = SyntaxColorings/defaultSyntaxStyle_XML.plist; sourceTree = ""; }; + 2A6394DB18B0BFA7008D304D /* defaultSyntaxStyle_Apache.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = defaultSyntaxStyle_Apache.plist; path = SyntaxColorings/defaultSyntaxStyle_Apache.plist; sourceTree = ""; }; + 2A6394DD18B0BFAE008D304D /* defaultSyntaxStyle_Markdown.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = defaultSyntaxStyle_Markdown.plist; path = SyntaxColorings/defaultSyntaxStyle_Markdown.plist; sourceTree = ""; }; + 2A6394DF18B0BFB9008D304D /* defaultSyntaxStyle_Scala.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = defaultSyntaxStyle_Scala.plist; path = SyntaxColorings/defaultSyntaxStyle_Scala.plist; sourceTree = ""; }; + 2A7572BE18B3BBAE00878F66 /* CotEditor.help */ = {isa = PBXFileReference; lastKnownFileType = folder; path = CotEditor.help; sourceTree = ""; }; + 2A8663AF18C93D2200A6F9CC /* en */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = en; path = en.lproj/ReadMe.rtf; sourceTree = ""; }; + 2A8663B118C93D2500A6F9CC /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = ja; path = ja.lproj/ReadMe.rtf; sourceTree = ""; }; + 2A8663CA18C93FEB00A6F9CC /* en */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = en; path = "en.lproj/Version History.rtf"; sourceTree = ""; }; + 2A8663CF18C93FF200A6F9CC /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = ja; path = "ja.lproj/Version History.rtf"; sourceTree = ""; }; + 2A8663DB18C9F6B600A6F9CC /* NSData+MD5.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSData+MD5.h"; sourceTree = ""; }; + 2A8663DC18C9F6B700A6F9CC /* NSData+MD5.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSData+MD5.m"; sourceTree = ""; }; + 2A9A144A18B67846001080D6 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; 32DBCF750370BD2300C91783 /* CotEditor_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CotEditor_Prefix.pch; sourceTree = ""; }; - 6C1E211F12C9E65600194313 /* Japanese */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = Japanese; path = Japanese.lproj/DocWindow.nib; sourceTree = ""; }; - 6C1E212012C9E65600194313 /* Japanese */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = Japanese; path = Japanese.lproj/HCCManager.nib; sourceTree = ""; }; - 6C1E212112C9E65600194313 /* Japanese */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = Japanese; path = Japanese.lproj/Indicator.nib; sourceTree = ""; }; - 6C1E212212C9E65600194313 /* Japanese */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = Japanese; path = Japanese.lproj/InfoPlist.strings; sourceTree = ""; }; - 6C1E212312C9E65600194313 /* Japanese */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = Japanese; path = Japanese.lproj/KeyBindingManager.nib; sourceTree = ""; }; - 6C1E212412C9E65600194313 /* Japanese */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = Japanese; path = Japanese.lproj/Localizable.strings; sourceTree = ""; }; - 6C1E212512C9E65600194313 /* Japanese */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = Japanese; path = Japanese.lproj/MainMenu.nib; sourceTree = ""; }; - 6C1E212612C9E65600194313 /* Japanese */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = Japanese; path = Japanese.lproj/Preferences.nib; sourceTree = ""; }; - 6C1E212712C9E65600194313 /* Japanese */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = Japanese; path = Japanese.lproj/ScriptManager.nib; sourceTree = ""; }; - 6C1E212812C9E65600194313 /* Japanese */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = Japanese; path = Japanese.lproj/SyntaxManager.nib; sourceTree = ""; }; - 6C42169512DDB9180037690E /* Docs */ = {isa = PBXFileReference; lastKnownFileType = folder; path = Docs; sourceTree = ""; }; - 6C4216B512DDB9EB0037690E /* Docs_for_src */ = {isa = PBXFileReference; lastKnownFileType = folder; path = Docs_for_src; sourceTree = ""; }; + 6C1E211F12C9E65600194313 /* ja */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xib; name = ja; path = ja.lproj/DocWindow.xib; sourceTree = ""; }; + 6C1E212012C9E65600194313 /* ja */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xib; name = ja; path = ja.lproj/HCCManager.xib; sourceTree = ""; }; + 6C1E212112C9E65600194313 /* ja */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xib; name = ja; path = ja.lproj/Indicator.xib; sourceTree = ""; }; + 6C1E212212C9E65600194313 /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/InfoPlist.strings; sourceTree = ""; }; + 6C1E212312C9E65600194313 /* ja */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xib; name = ja; path = ja.lproj/KeyBindingManager.xib; sourceTree = ""; }; + 6C1E212412C9E65600194313 /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/Localizable.strings; sourceTree = ""; }; + 6C1E212512C9E65600194313 /* ja */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xib; name = ja; path = ja.lproj/MainMenu.xib; sourceTree = ""; }; + 6C1E212612C9E65600194313 /* ja */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xib; name = ja; path = ja.lproj/Preferences.xib; sourceTree = ""; }; + 6C1E212812C9E65600194313 /* ja */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xib; name = ja; path = ja.lproj/SyntaxManager.xib; sourceTree = ""; }; 6C6DAE3D13833C0E007F2326 /* dsa_pub.pem */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = dsa_pub.pem; sourceTree = ""; }; - 6C9BF1C412F62D310097BFE7 /* English */ = {isa = PBXFileReference; lastKnownFileType = folder; name = English; path = English.lproj/CotEditorHelp; sourceTree = ""; }; - 6C9BF27412F62E210097BFE7 /* Japanese */ = {isa = PBXFileReference; lastKnownFileType = folder; name = Japanese; path = Japanese.lproj/CotEditorHelp; sourceTree = ""; }; 6CA3B36012E3B59B0019AB2E /* Script */ = {isa = PBXFileReference; lastKnownFileType = folder; path = Script; sourceTree = ""; }; 6CB074A11373A03B001D0243 /* Sparkle.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Sparkle.framework; sourceTree = ""; }; 8C081B4A07D0A85A0060191A /* getInfo.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = getInfo.tiff; path = toolbarIcons/getInfo.tiff; sourceTree = ""; }; 8C0A063C0F748B9900D32B56 /* defaultSyntaxStyle_PHP.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = defaultSyntaxStyle_PHP.plist; path = SyntaxColorings/defaultSyntaxStyle_PHP.plist; sourceTree = ""; }; 8C0F52600871861C00ABD124 /* openScriptMenu.applescript */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.applescript; name = openScriptMenu.applescript; path = internalScript/openScriptMenu.applescript; sourceTree = ""; }; 8C0FE15908D7FDAA00B2B71B /* DefaultTextKeyBindings.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = DefaultTextKeyBindings.plist; path = KeyBindings/DefaultTextKeyBindings.plist; sourceTree = ""; }; - 8C1305AD0DC4B71D00975AC6 /* RegexKitLite.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RegexKitLite.h; sourceTree = ""; }; - 8C1305AE0DC4B71D00975AC6 /* RegexKitLite.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RegexKitLite.m; sourceTree = ""; }; - 8C1305B00DC4B83000975AC6 /* RKLMatchEnumerator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RKLMatchEnumerator.h; sourceTree = ""; }; - 8C1305B10DC4B83000975AC6 /* RKLMatchEnumerator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RKLMatchEnumerator.m; sourceTree = ""; }; + 8C1305AD0DC4B71D00975AC6 /* RegexKitLite.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RegexKitLite.h; path = ImportSources/RegexKitLite.h; sourceTree = ""; }; + 8C1305AE0DC4B71D00975AC6 /* RegexKitLite.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = RegexKitLite.m; path = ImportSources/RegexKitLite.m; sourceTree = ""; }; + 8C1305B00DC4B83000975AC6 /* RKLMatchEnumerator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RKLMatchEnumerator.h; path = ImportSources/RKLMatchEnumerator.h; sourceTree = ""; }; + 8C1305B10DC4B83000975AC6 /* RKLMatchEnumerator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = RKLMatchEnumerator.m; path = ImportSources/RKLMatchEnumerator.m; sourceTree = ""; }; 8C13A5640A038ABC001EA22F /* defaultSyntaxStyle_eRuby.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = defaultSyntaxStyle_eRuby.plist; path = SyntaxColorings/defaultSyntaxStyle_eRuby.plist; sourceTree = ""; }; 8C13A5660A038B74001EA22F /* defaultSyntaxStyle_Java.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = defaultSyntaxStyle_Java.plist; path = SyntaxColorings/defaultSyntaxStyle_Java.plist; sourceTree = ""; }; - 8C18347608D5B29600E8AEE2 /* clearButtonImg.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = clearButtonImg.tiff; path = images/clearButtonImg.tiff; sourceTree = ""; }; - 8C18347708D5B29600E8AEE2 /* editButtonImg.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = editButtonImg.tiff; path = images/editButtonImg.tiff; sourceTree = ""; }; - 8C1FC69B08BDCA6100E4A6EA /* popUpButtonBG_center.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = popUpButtonBG_center.tiff; path = images/popUpButtonBG_center.tiff; sourceTree = ""; }; - 8C1FC69C08BDCA6100E4A6EA /* popUpButtonBG_left.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = popUpButtonBG_left.tiff; path = images/popUpButtonBG_left.tiff; sourceTree = ""; }; 8C2790FB07D18A6700103A53 /* CotEditor.scriptTerminology */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.scriptTerminology; path = CotEditor.scriptTerminology; sourceTree = ""; }; 8C2790FF07D18AC300103A53 /* CotEditor.scriptSuite */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.scriptSuite; path = CotEditor.scriptSuite; sourceTree = ""; }; - 8C28CD2D081101A300733DA7 /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/ScriptManager.nib; sourceTree = ""; }; - 8C28CD7708110E4A00733DA7 /* cleanButtonIcon.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = cleanButtonIcon.tiff; path = icons/cleanButtonIcon.tiff; sourceTree = ""; }; + 8C28CD2D081101A300733DA7 /* en */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xib; name = en; path = en.lproj/ScriptManager.xib; sourceTree = ""; }; + 8C28CD7708110E4A00733DA7 /* Script_CleanButton.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = Script_CleanButton.tiff; path = toolbarIcons/Script_CleanButton.tiff; sourceTree = ""; }; 8C3289EF07A21422001CA481 /* OgreKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = OgreKit.framework; sourceTree = ""; }; - 8C3763A70887CBDB0085C207 /* swapArrow.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = swapArrow.tiff; path = images/swapArrow.tiff; sourceTree = ""; }; 8C3840910D16B75C00F76A4C /* UKXattrMetadataStore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = UKXattrMetadataStore.h; path = ImportSources/UKXattrMetadataStore.h; sourceTree = ""; }; 8C3840920D16B75C00F76A4C /* UKXattrMetadataStore.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = UKXattrMetadataStore.m; path = ImportSources/UKXattrMetadataStore.m; sourceTree = ""; }; 8C3A7DD80867EA9A00ECE052 /* startup.applescript */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.applescript; name = startup.applescript; path = internalScript/startup.applescript; sourceTree = ""; }; - 8C3AB31A08C16B3900F2B81F /* prevButtonImg.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = prevButtonImg.tiff; path = images/prevButtonImg.tiff; sourceTree = ""; }; - 8C3AB34508C1715800F2B81F /* nextButtonImg.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = nextButtonImg.tiff; path = images/nextButtonImg.tiff; sourceTree = ""; }; 8C3BEA2508BDBCA800BC2067 /* CEOutlineMenuButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CEOutlineMenuButton.h; sourceTree = ""; }; 8C3BEA2608BDBCA800BC2067 /* CEOutlineMenuButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CEOutlineMenuButton.m; sourceTree = ""; }; 8C3E2D480808E203009894D1 /* LineNumber_Hide.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = LineNumber_Hide.tiff; path = toolbarIcons/LineNumber_Hide.tiff; sourceTree = ""; }; 8C3E2D490808E203009894D1 /* LineNumber_Show.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = LineNumber_Show.tiff; path = toolbarIcons/LineNumber_Show.tiff; sourceTree = ""; }; - 8C3E2D4A0808E203009894D1 /* PageSetup.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = PageSetup.tiff; path = toolbarIcons/PageSetup.tiff; sourceTree = ""; }; - 8C3E2D4B0808E203009894D1 /* Preferences.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = Preferences.tiff; path = toolbarIcons/Preferences.tiff; sourceTree = ""; }; - 8C3E2D4C0808E203009894D1 /* Save.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = Save.tiff; path = toolbarIcons/Save.tiff; sourceTree = ""; }; - 8C3E2D4D0808E203009894D1 /* SaveAs.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = SaveAs.tiff; path = toolbarIcons/SaveAs.tiff; sourceTree = ""; }; 8C3E2D4E0808E203009894D1 /* Shift_Left.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = Shift_Left.tiff; path = toolbarIcons/Shift_Left.tiff; sourceTree = ""; }; 8C3E2D4F0808E203009894D1 /* Shift_Right.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = Shift_Right.tiff; path = toolbarIcons/Shift_Right.tiff; sourceTree = ""; }; 8C3E2D590808E210009894D1 /* StatusArea_Hide.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = StatusArea_Hide.tiff; path = toolbarIcons/StatusArea_Hide.tiff; sourceTree = ""; }; 8C3E2D5A0808E210009894D1 /* StatusArea_Show.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = StatusArea_Show.tiff; path = toolbarIcons/StatusArea_Show.tiff; sourceTree = ""; }; - 8C3E2D5B0808E210009894D1 /* TransparencyPanel.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = TransparencyPanel.tiff; path = toolbarIcons/TransparencyPanel.tiff; sourceTree = ""; }; 8C3E2D5C0808E210009894D1 /* WrapLines_Off.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = WrapLines_Off.tiff; path = toolbarIcons/WrapLines_Off.tiff; sourceTree = ""; }; 8C3E2D5D0808E210009894D1 /* WrapLines_On.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = WrapLines_On.tiff; path = toolbarIcons/WrapLines_On.tiff; sourceTree = ""; }; 8C4186BD088648CA0039FBFC /* CEHCCManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CEHCCManager.h; sourceTree = ""; }; 8C4186BE088648CA0039FBFC /* CEHCCManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CEHCCManager.m; sourceTree = ""; }; - 8C4186CF08864B3E0039FBFC /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/HCCManager.nib; sourceTree = ""; }; + 8C4186CF08864B3E0039FBFC /* en */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xib; name = en; path = en.lproj/HCCManager.xib; sourceTree = ""; }; 8C41871E088655E00039FBFC /* CEHexColorTransformer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CEHexColorTransformer.h; sourceTree = ""; }; 8C41871F088655E00039FBFC /* CEHexColorTransformer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CEHexColorTransformer.m; sourceTree = ""; }; - 8C49092A07F43DCA0072AAE9 /* NSEventAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSEventAdditions.h; sourceTree = ""; }; - 8C49092B07F43DCA0072AAE9 /* NSEventAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSEventAdditions.m; sourceTree = ""; }; + 8C49092A07F43DCA0072AAE9 /* NSEvent+CarbonModFlag.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSEvent+CarbonModFlag.h"; sourceTree = ""; }; + 8C49092B07F43DCA0072AAE9 /* NSEvent+CarbonModFlag.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSEvent+CarbonModFlag.m"; sourceTree = ""; }; 8C49094507F441510072AAE9 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = ""; }; 8C4BC92D0895BD3C00F5263E /* EditHexAsBG.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = EditHexAsBG.tiff; path = toolbarIcons/EditHexAsBG.tiff; sourceTree = ""; }; 8C4BC92E0895BD3C00F5263E /* EditHexAsFore.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = EditHexAsFore.tiff; path = toolbarIcons/EditHexAsFore.tiff; sourceTree = ""; }; @@ -293,27 +301,20 @@ 8C5853340903C1ED0085BC4F /* CETabItemView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CETabItemView.m; sourceTree = ""; }; 8C65C0E507927D0F0028D94A /* CELayoutManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CELayoutManager.h; sourceTree = ""; }; 8C65C0E607927D0F0028D94A /* CELayoutManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = CELayoutManager.m; sourceTree = ""; wrapsLines = 1; }; - 8C7400A308C6D93900683672 /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/KeyBindingManager.nib; sourceTree = ""; }; + 8C7400A308C6D93900683672 /* en */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xib; name = en; path = en.lproj/KeyBindingManager.xib; sourceTree = ""; }; 8C7400A608C6D96D00683672 /* CEKeyBindingManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CEKeyBindingManager.h; sourceTree = ""; }; 8C7400A708C6D96D00683672 /* CEKeyBindingManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CEKeyBindingManager.m; sourceTree = ""; }; 8C74017608C7364400683672 /* defaultSyntaxStyle_LaTeX.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = defaultSyntaxStyle_LaTeX.plist; path = SyntaxColorings/defaultSyntaxStyle_LaTeX.plist; sourceTree = ""; }; 8C78824608ED5A03003EFE02 /* defaultSyntaxStyle_Ruby.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = defaultSyntaxStyle_Ruby.plist; path = SyntaxColorings/defaultSyntaxStyle_Ruby.plist; sourceTree = ""; }; 8C7D7DB20BE71A3000C2C7E3 /* defaultSyntaxStyle_Haskell.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = defaultSyntaxStyle_Haskell.plist; path = SyntaxColorings/defaultSyntaxStyle_Haskell.plist; sourceTree = ""; }; 8C7F74EB091C738C005C7598 /* ODBEditorSuite.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ODBEditorSuite.h; path = ImportSources/ODBEditorSuite.h; sourceTree = ""; }; - 8C7F74ED091C74B7005C7598 /* UKKQueue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = UKKQueue.h; path = ImportSources/UKKQueue.h; sourceTree = ""; }; - 8C7F74EE091C74B7005C7598 /* UKKQueue.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = UKKQueue.m; path = ImportSources/UKKQueue.m; sourceTree = ""; }; - 8C7F74FB091C7575005C7598 /* UKFileWatcher.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = UKFileWatcher.h; path = ImportSources/UKFileWatcher.h; sourceTree = ""; }; - 8C7F7501091C7596005C7598 /* UKMainThreadProxy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = UKMainThreadProxy.h; path = ImportSources/UKMainThreadProxy.h; sourceTree = ""; }; - 8C7F7502091C7596005C7598 /* UKMainThreadProxy.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = UKMainThreadProxy.m; path = ImportSources/UKMainThreadProxy.m; sourceTree = ""; }; 8C83A48009485F27004E48A8 /* CEATSTypesetter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = CEATSTypesetter.h; sourceTree = ""; }; 8C83A48109485F27004E48A8 /* CEATSTypesetter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = CEATSTypesetter.m; sourceTree = ""; }; 8C8971330902620D0013FA27 /* CEPreferencesTabController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CEPreferencesTabController.h; sourceTree = ""; }; 8C8971340902620D0013FA27 /* CEPreferencesTabController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CEPreferencesTabController.m; sourceTree = ""; }; - 8C8977240DCD8AD000DC32FF /* libicucore.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; name = libicucore.dylib; path = /Developer/SDKs/MacOSX10.4u.sdk/usr/lib/libicucore.dylib; sourceTree = ""; }; + 8C8977240DCD8AD000DC32FF /* libicucore.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; name = libicucore.dylib; path = usr/lib/libicucore.dylib; sourceTree = SDKROOT; }; 8C8CCCAE09D6803400A008E5 /* CESplitView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = CESplitView.h; sourceTree = ""; }; 8C8CCCAF09D6803400A008E5 /* CESplitView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = CESplitView.m; sourceTree = ""; }; - 8C982DDD07FAE57700AA36F0 /* addButtonImg.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = addButtonImg.tiff; path = images/addButtonImg.tiff; sourceTree = ""; }; - 8C982DDE07FAE57700AA36F0 /* removeButtonImg.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = removeButtonImg.tiff; path = images/removeButtonImg.tiff; sourceTree = ""; }; 8C98366608C0211D00746F92 /* IncompatibleChar.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = IncompatibleChar.tiff; path = toolbarIcons/IncompatibleChar.tiff; sourceTree = ""; }; 8C9997C00873DB73003F4294 /* defaultSyntaxStyle_Perl.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = defaultSyntaxStyle_Perl.plist; path = SyntaxColorings/defaultSyntaxStyle_Perl.plist; sourceTree = ""; }; 8C9997DC0873EDF6003F4294 /* defaultSyntaxStyle_Shell Script.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = "defaultSyntaxStyle_Shell Script.plist"; path = "SyntaxColorings/defaultSyntaxStyle_Shell Script.plist"; sourceTree = ""; }; @@ -325,26 +326,16 @@ 8CA71BCD07D2A79100C146B0 /* smallerFont.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = smallerFont.tiff; path = toolbarIcons/smallerFont.tiff; sourceTree = ""; }; 8CB0122B07CA0EFA00221EDC /* CEToolbarController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CEToolbarController.h; sourceTree = ""; }; 8CB0122C07CA0EFA00221EDC /* CEToolbarController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CEToolbarController.m; sourceTree = ""; }; - 8CB056B607E3D07A0027D866 /* scriptMenuIcon.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = scriptMenuIcon.tiff; path = icons/scriptMenuIcon.tiff; sourceTree = ""; }; - 8CB10E2907C4D36200E73342 /* transparencyGuide.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = transparencyGuide.tiff; path = images/transparencyGuide.tiff; sourceTree = ""; }; 8CB3AF68087F9335004BFDDD /* defaultSyntaxStyle_JavaScript.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = defaultSyntaxStyle_JavaScript.plist; path = SyntaxColorings/defaultSyntaxStyle_JavaScript.plist; sourceTree = ""; }; - 8CBCA8A90941D67400B258D8 /* pageGuide.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = pageGuide.tiff; path = images/pageGuide.tiff; sourceTree = ""; }; 8CBFD5F20DC42B1200EC093D /* CEPrivateMutableArray.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CEPrivateMutableArray.h; sourceTree = ""; }; 8CBFD5F30DC42B1200EC093D /* CEPrivateMutableArray.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CEPrivateMutableArray.m; sourceTree = ""; }; - 8CC1925407E2D84500B54AE4 /* CEDocumentAppleScript.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CEDocumentAppleScript.h; sourceTree = ""; }; - 8CC1925507E2D84500B54AE4 /* CEDocumentAppleScript.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CEDocumentAppleScript.m; sourceTree = ""; }; + 8CC1925407E2D84500B54AE4 /* CEDocument+ScriptingSupport.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "CEDocument+ScriptingSupport.h"; sourceTree = ""; }; + 8CC1925507E2D84500B54AE4 /* CEDocument+ScriptingSupport.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "CEDocument+ScriptingSupport.m"; sourceTree = ""; }; 8CC1961A07E2E54E00B54AE4 /* CEScriptManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CEScriptManager.h; sourceTree = ""; }; 8CC1961B07E2E54E00B54AE4 /* CEScriptManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CEScriptManager.m; sourceTree = ""; }; 8CC5044208EE829500A525A6 /* CEPrintView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CEPrintView.h; sourceTree = ""; }; 8CC5044308EE829500A525A6 /* CEPrintView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CEPrintView.m; sourceTree = ""; }; 8CC6EBB008CED0F700508369 /* DefaultMenuKeyBindings.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = DefaultMenuKeyBindings.plist; path = KeyBindings/DefaultMenuKeyBindings.plist; sourceTree = ""; }; - 8CC98A8708BD9A02008BEC7B /* popUpButtonArrow.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = popUpButtonArrow.tiff; path = images/popUpButtonArrow.tiff; sourceTree = ""; }; - 8CCB26D908E6D042007137D7 /* centerButtonImg.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = centerButtonImg.tiff; path = images/centerButtonImg.tiff; sourceTree = ""; }; - 8CCB26DB08E6D048007137D7 /* leftButtonImg.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = leftButtonImg.tiff; path = images/leftButtonImg.tiff; sourceTree = ""; }; - 8CCB26DD08E6D055007137D7 /* rightButtonImg.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = rightButtonImg.tiff; path = images/rightButtonImg.tiff; sourceTree = ""; }; - 8CCB5C35083F1F3C0022BA2A /* Credits.rtf */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = Credits.rtf; path = credits/Credits.rtf; sourceTree = ""; }; - 8CD5D80607BD044A00BAA31F /* docIcon.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; name = docIcon.icns; path = icons/docIcon.icns; sourceTree = ""; }; - 8CD5D80907BD046900BAA31F /* appIcon.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; name = appIcon.icns; path = icons/appIcon.icns; sourceTree = ""; }; 8CD7A93909CBDDDC00739513 /* CESubSplitView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CESubSplitView.h; sourceTree = ""; }; 8CD7A93A09CBDDDC00739513 /* CESubSplitView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CESubSplitView.m; sourceTree = ""; }; 8CE4859608CD617B004817E1 /* CEApplication.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CEApplication.h; sourceTree = ""; }; @@ -365,9 +356,6 @@ 8CEF66C50995E4A700C65A84 /* PageGuide_Show.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = PageGuide_Show.tiff; path = toolbarIcons/PageGuide_Show.tiff; sourceTree = ""; }; 8CF02E1308B9B9F8004044EB /* CENavigationBarView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CENavigationBarView.h; sourceTree = ""; }; 8CF02E1408B9B9F8004044EB /* CENavigationBarView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CENavigationBarView.m; sourceTree = ""; }; - 8CF792FF09F518CB001BDFF7 /* openSplitButtonImg.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = openSplitButtonImg.tiff; path = images/openSplitButtonImg.tiff; sourceTree = ""; }; - 8CF7930109F518D7001BDFF7 /* closeSplitButtonImg.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = closeSplitButtonImg.tiff; path = images/closeSplitButtonImg.tiff; sourceTree = ""; }; - 8CFB565C0885087000AF0816 /* lockOnImg.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = lockOnImg.tiff; path = images/lockOnImg.tiff; sourceTree = ""; }; 8D15AC360486D014006FF6A4 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; 8D15AC370486D014006FF6A4 /* CotEditor.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = CotEditor.app; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ @@ -417,6 +405,7 @@ 2559AD13079F9A4C0064C718 /* SyntaxColorings */ = { isa = PBXGroup; children = ( + 2A6394DB18B0BFA7008D304D /* defaultSyntaxStyle_Apache.plist */, 8CE570B408A6E047004A8924 /* defaultSyntaxStyle_C, C++, Objective-C.plist */, 2589EF5207F247AD003BF861 /* defaultSyntaxStyle_CSS.plist */, 8C13A5640A038ABC001EA22F /* defaultSyntaxStyle_eRuby.plist */, @@ -425,12 +414,15 @@ 8C13A5660A038B74001EA22F /* defaultSyntaxStyle_Java.plist */, 8CB3AF68087F9335004BFDDD /* defaultSyntaxStyle_JavaScript.plist */, 8C74017608C7364400683672 /* defaultSyntaxStyle_LaTeX.plist */, + 2A6394DD18B0BFAE008D304D /* defaultSyntaxStyle_Markdown.plist */, 8C9997C00873DB73003F4294 /* defaultSyntaxStyle_Perl.plist */, 8C0A063C0F748B9900D32B56 /* defaultSyntaxStyle_PHP.plist */, 25A1DE2E07A0A06500C49AAA /* defaultSyntaxStyle_Plain Text.plist */, 8C5684C90C48A36200346FB0 /* defaultSyntaxStyle_Python.plist */, 8C78824608ED5A03003EFE02 /* defaultSyntaxStyle_Ruby.plist */, + 2A6394DF18B0BFB9008D304D /* defaultSyntaxStyle_Scala.plist */, 8C9997DC0873EDF6003F4294 /* defaultSyntaxStyle_Shell Script.plist */, + 2A6394D918B0BFA0008D304D /* defaultSyntaxStyle_XML.plist */, ); name = SyntaxColorings; sourceTree = ""; @@ -438,24 +430,25 @@ 25972A7107B87293005EB175 /* images */ = { isa = PBXGroup; children = ( - 8C982DDD07FAE57700AA36F0 /* addButtonImg.tiff */, - 8CF792FF09F518CB001BDFF7 /* openSplitButtonImg.tiff */, - 8CCB26D908E6D042007137D7 /* centerButtonImg.tiff */, - 8C18347608D5B29600E8AEE2 /* clearButtonImg.tiff */, - 8CF7930109F518D7001BDFF7 /* closeSplitButtonImg.tiff */, - 8C18347708D5B29600E8AEE2 /* editButtonImg.tiff */, - 8CCB26DB08E6D048007137D7 /* leftButtonImg.tiff */, - 8CFB565C0885087000AF0816 /* lockOnImg.tiff */, - 8C3AB34508C1715800F2B81F /* nextButtonImg.tiff */, - 8CBCA8A90941D67400B258D8 /* pageGuide.tiff */, - 8CC98A8708BD9A02008BEC7B /* popUpButtonArrow.tiff */, - 8C1FC69B08BDCA6100E4A6EA /* popUpButtonBG_center.tiff */, - 8C1FC69C08BDCA6100E4A6EA /* popUpButtonBG_left.tiff */, - 8C3AB31A08C16B3900F2B81F /* prevButtonImg.tiff */, - 8C982DDE07FAE57700AA36F0 /* removeButtonImg.tiff */, - 8CCB26DD08E6D055007137D7 /* rightButtonImg.tiff */, - 8C3763A70887CBDB0085C207 /* swapArrow.tiff */, - 8CB10E2907C4D36200E73342 /* transparencyGuide.tiff */, + 2A0722F216D3CF2E00F49864 /* scriptMenuIcon.pdf */, + 2A0722F416D3CF4F00F49864 /* addButtonImg.pdf */, + 2A0722F516D3CF4F00F49864 /* centerButtonImg.pdf */, + 2A0722F616D3CF4F00F49864 /* clearButtonImg.pdf */, + 2A0722F716D3CF4F00F49864 /* closeSplitButtonImg.pdf */, + 2A0722F816D3CF4F00F49864 /* editButtonImg.pdf */, + 2A0722F916D3CF4F00F49864 /* leftButtonImg.pdf */, + 2A0722FA16D3CF4F00F49864 /* lockOnImg.pdf */, + 2A0722FB16D3CF4F00F49864 /* nextButtonImg.pdf */, + 2A0722FC16D3CF4F00F49864 /* openSplitButtonImg.pdf */, + 2A0722FD16D3CF4F00F49864 /* pageGuide.pdf */, + 2A0722FE16D3CF4F00F49864 /* popUpButtonArrow.pdf */, + 2A0722FF16D3CF4F00F49864 /* popUpButtonBG_center.pdf */, + 2A07230016D3CF4F00F49864 /* popUpButtonBG_left.pdf */, + 2A07230116D3CF4F00F49864 /* prevButtonImg.pdf */, + 2A07230216D3CF4F00F49864 /* removeButtonImg.pdf */, + 2A07230316D3CF4F00F49864 /* rightButtonImg.pdf */, + 2A07230416D3CF4F00F49864 /* swapArrow.pdf */, + 2A07230516D3CF4F00F49864 /* transparencyGuide.pdf */, ); name = images; sourceTree = ""; @@ -471,17 +464,6 @@ name = InternalScript; sourceTree = ""; }; - 25D4C01C07B87595007CB113 /* icons */ = { - isa = PBXGroup; - children = ( - 8CD5D80907BD046900BAA31F /* appIcon.icns */, - 8CD5D80607BD044A00BAA31F /* docIcon.icns */, - 8CB056B607E3D07A0027D866 /* scriptMenuIcon.tiff */, - 8C28CD7708110E4A00733DA7 /* cleanButtonIcon.tiff */, - ); - name = icons; - sourceTree = ""; - }; 2A37F4AAFDCFA73011CA2CEA /* CotEditor */ = { isa = PBXGroup; children = ( @@ -514,12 +496,10 @@ 258D708807D456DF0062A3E5 /* CETextSelection.m */, 8CC1961A07E2E54E00B54AE4 /* CEScriptManager.h */, 8CC1961B07E2E54E00B54AE4 /* CEScriptManager.m */, - 8C49092A07F43DCA0072AAE9 /* NSEventAdditions.h */, - 8C49092B07F43DCA0072AAE9 /* NSEventAdditions.m */, 2A37F4AEFDCFA73011CA2CEA /* CEDocument.h */, 2A37F4ACFDCFA73011CA2CEA /* CEDocument.m */, - 8CC1925407E2D84500B54AE4 /* CEDocumentAppleScript.h */, - 8CC1925507E2D84500B54AE4 /* CEDocumentAppleScript.m */, + 8CC1925407E2D84500B54AE4 /* CEDocument+ScriptingSupport.h */, + 8CC1925507E2D84500B54AE4 /* CEDocument+ScriptingSupport.m */, 8C65C0E507927D0F0028D94A /* CELayoutManager.h */, 8C65C0E607927D0F0028D94A /* CELayoutManager.m */, 8C83A48009485F27004E48A8 /* CEATSTypesetter.h */, @@ -566,6 +546,10 @@ 8CEA5AC3086F9255002CDFAB /* DEBUG_macro.h */, 8CBFD5F20DC42B1200EC093D /* CEPrivateMutableArray.h */, 8CBFD5F30DC42B1200EC093D /* CEPrivateMutableArray.m */, + 8C49092A07F43DCA0072AAE9 /* NSEvent+CarbonModFlag.h */, + 8C49092B07F43DCA0072AAE9 /* NSEvent+CarbonModFlag.m */, + 2A8663DB18C9F6B600A6F9CC /* NSData+MD5.h */, + 2A8663DC18C9F6B700A6F9CC /* NSData+MD5.m */, ); name = Classes; sourceTree = ""; @@ -582,31 +566,29 @@ 2A37F4B8FDCFA73011CA2CEA /* Resources */ = { isa = PBXGroup; children = ( - 8CCB5C35083F1F3C0022BA2A /* Credits.rtf */, - 2A37F4B6FDCFA73011CA2CEA /* MainMenu.nib */, - 2A37F4B4FDCFA73011CA2CEA /* DocWindow.nib */, - 8C7400A208C6D93900683672 /* KeyBindingManager.nib */, - 25859EA5076D8EE80020F779 /* Preferences.nib */, - 258EF2F8077FEDD000011E52 /* SyntaxManager.nib */, - 2588E9CC07C4851C0060021D /* Indicator.nib */, - 8C28CD2C081101A300733DA7 /* ScriptManager.nib */, - 8C4186CE08864B3E0039FBFC /* HCCManager.nib */, - 25D4C01C07B87595007CB113 /* icons */, + 2A37F4B6FDCFA73011CA2CEA /* MainMenu.xib */, + 2A37F4B4FDCFA73011CA2CEA /* DocWindow.xib */, + 8C7400A208C6D93900683672 /* KeyBindingManager.xib */, + 25859EA5076D8EE80020F779 /* Preferences.xib */, + 258EF2F8077FEDD000011E52 /* SyntaxManager.xib */, + 2588E9CC07C4851C0060021D /* Indicator.xib */, + 8C28CD2C081101A300733DA7 /* ScriptManager.xib */, + 8C4186CE08864B3E0039FBFC /* HCCManager.xib */, + 2A9A144A18B67846001080D6 /* Images.xcassets */, 8CB0122007CA0CCD00221EDC /* toolbarIcons */, 25972A7107B87293005EB175 /* images */, + 2A8663B218C93D5700A6F9CC /* Documents */, 6C6DAE3D13833C0E007F2326 /* dsa_pub.pem */, 8D15AC360486D014006FF6A4 /* Info.plist */, 259C2316077678DE00BA61C5 /* Localizable.strings */, 089C165FFE840EACC02AAC07 /* InfoPlist.strings */, 8C2790FF07D18AC300103A53 /* CotEditor.scriptSuite */, 8C2790FB07D18A6700103A53 /* CotEditor.scriptTerminology */, + 2A7572BE18B3BBAE00878F66 /* CotEditor.help */, 8C74014C08C7041A00683672 /* KeyBindings */, 2559AD13079F9A4C0064C718 /* SyntaxColorings */, 259B181207E530DA00C5FD26 /* InternalScript */, 6CA3B36012E3B59B0019AB2E /* Script */, - 6C9BF21C12F62D3A0097BFE7 /* CotEditorHelp */, - 6C42169512DDB9180037690E /* Docs */, - 6C4216B512DDB9EB0037690E /* Docs_for_src */, ); name = Resources; sourceTree = ""; @@ -623,6 +605,16 @@ name = Frameworks; sourceTree = ""; }; + 2A8663B218C93D5700A6F9CC /* Documents */ = { + isa = PBXGroup; + children = ( + 2A067B9818D52F5200546280 /* Acknowledgements.rtf */, + 2A8663B018C93D2200A6F9CC /* ReadMe.rtf */, + 2A8663CB18C93FEB00A6F9CC /* Version History.rtf */, + ); + name = Documents; + sourceTree = ""; + }; 8C74014C08C7041A00683672 /* KeyBindings */ = { isa = PBXGroup; children = ( @@ -640,11 +632,6 @@ 8C1305AE0DC4B71D00975AC6 /* RegexKitLite.m */, 8C1305B00DC4B83000975AC6 /* RKLMatchEnumerator.h */, 8C1305B10DC4B83000975AC6 /* RKLMatchEnumerator.m */, - 8C7F74FB091C7575005C7598 /* UKFileWatcher.h */, - 8C7F74ED091C74B7005C7598 /* UKKQueue.h */, - 8C7F74EE091C74B7005C7598 /* UKKQueue.m */, - 8C7F7501091C7596005C7598 /* UKMainThreadProxy.h */, - 8C7F7502091C7596005C7598 /* UKMainThreadProxy.m */, 8C3840910D16B75C00F76A4C /* UKXattrMetadataStore.h */, 8C3840920D16B75C00F76A4C /* UKXattrMetadataStore.m */, ); @@ -668,16 +655,11 @@ 8C99DD5008BD561B001F618C /* NaviBar_Show.tiff */, 8CEF66C40995E4A700C65A84 /* PageGuide_Hide.tiff */, 8CEF66C50995E4A700C65A84 /* PageGuide_Show.tiff */, - 8C3E2D4A0808E203009894D1 /* PageSetup.tiff */, - 8C3E2D4B0808E203009894D1 /* Preferences.tiff */, 8C5208090880BAAF005734F2 /* RecolorAll.tiff */, - 8C3E2D4C0808E203009894D1 /* Save.tiff */, - 8C3E2D4D0808E203009894D1 /* SaveAs.tiff */, 8C3E2D4E0808E203009894D1 /* Shift_Left.tiff */, 8C3E2D4F0808E203009894D1 /* Shift_Right.tiff */, 8C3E2D590808E210009894D1 /* StatusArea_Hide.tiff */, 8C3E2D5A0808E210009894D1 /* StatusArea_Show.tiff */, - 8C3E2D5B0808E210009894D1 /* TransparencyPanel.tiff */, 8C3E2D5C0808E210009894D1 /* WrapLines_Off.tiff */, 8C3E2D5D0808E210009894D1 /* WrapLines_On.tiff */, 8CE68101090A1C6900D50390 /* Pref_FileDrop.tiff */, @@ -688,6 +670,7 @@ 8CE68105090A1C6900D50390 /* Pref_Syntax.tiff */, 8CE68100090A1C6900D50390 /* Pref_View.tiff */, 8CE68106090A1C6900D50390 /* Pref_Window.tiff */, + 8C28CD7708110E4A00733DA7 /* Script_CleanButton.tiff */, ); name = toolbarIcons; sourceTree = ""; @@ -721,16 +704,19 @@ isa = PBXProject; attributes = { BuildIndependentTargetsInParallel = YES; + LastUpgradeCheck = 0500; }; buildConfigurationList = 8C71D95708640EDF00C9C0BD /* Build configuration list for PBXProject "CotEditor" */; - compatibilityVersion = "Xcode 3.1"; - developmentRegion = English; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = en; hasScannedForEncodings = 1; knownRegions = ( English, Japanese, French, German, + en, + ja, ); mainGroup = 2A37F4AAFDCFA73011CA2CEA /* CotEditor */; projectDirPath = ""; @@ -746,74 +732,54 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 8D15AC2D0486D014006FF6A4 /* MainMenu.nib in Resources */, - 8D15AC2E0486D014006FF6A4 /* DocWindow.nib in Resources */, - 25859EA7076D8EE80020F779 /* Preferences.nib in Resources */, - 258EF2FA077FEDD000011E52 /* SyntaxManager.nib in Resources */, - 2588E9CE07C4851C0060021D /* Indicator.nib in Resources */, - 8C28CD2E081101A300733DA7 /* ScriptManager.nib in Resources */, - 8C4186D008864B3E0039FBFC /* HCCManager.nib in Resources */, - 8C7400A408C6D93900683672 /* KeyBindingManager.nib in Resources */, + 8D15AC2D0486D014006FF6A4 /* MainMenu.xib in Resources */, + 8D15AC2E0486D014006FF6A4 /* DocWindow.xib in Resources */, + 25859EA7076D8EE80020F779 /* Preferences.xib in Resources */, + 258EF2FA077FEDD000011E52 /* SyntaxManager.xib in Resources */, + 2588E9CE07C4851C0060021D /* Indicator.xib in Resources */, + 8C28CD2E081101A300733DA7 /* ScriptManager.xib in Resources */, + 8C4186D008864B3E0039FBFC /* HCCManager.xib in Resources */, + 8C7400A408C6D93900683672 /* KeyBindingManager.xib in Resources */, + 2A6394DE18B0BFAE008D304D /* defaultSyntaxStyle_Markdown.plist in Resources */, 8D15AC2F0486D014006FF6A4 /* InfoPlist.strings in Resources */, 259C2318077678DE00BA61C5 /* Localizable.strings in Resources */, 25A1DE2F07A0A06500C49AAA /* defaultSyntaxStyle_Plain Text.plist in Resources */, - 8CD5D80707BD044A00BAA31F /* docIcon.icns in Resources */, - 8CD5D80A07BD046900BAA31F /* appIcon.icns in Resources */, - 8CB10E2A07C4D36200E73342 /* transparencyGuide.tiff in Resources */, 258998F507CEED3400098762 /* defaultSyntaxStyle_HTML.plist in Resources */, 8C081B4B07D0A85A0060191A /* getInfo.tiff in Resources */, 8C2790FC07D18A6700103A53 /* CotEditor.scriptTerminology in Resources */, 8C27910007D18AC300103A53 /* CotEditor.scriptSuite in Resources */, 8CA71BCE07D2A79100C146B0 /* biggerFont.tiff in Resources */, 8CA71BCF07D2A79100C146B0 /* smallerFont.tiff in Resources */, - 8CB056B707E3D07A0027D866 /* scriptMenuIcon.tiff in Resources */, 2589EF5307F247AD003BF861 /* defaultSyntaxStyle_CSS.plist in Resources */, - 8C982DDF07FAE57700AA36F0 /* addButtonImg.tiff in Resources */, - 8C982DE007FAE57700AA36F0 /* removeButtonImg.tiff in Resources */, 8C3E2D500808E203009894D1 /* LineNumber_Hide.tiff in Resources */, + 2A6394E018B0BFB9008D304D /* defaultSyntaxStyle_Scala.plist in Resources */, 8C3E2D510808E203009894D1 /* LineNumber_Show.tiff in Resources */, - 8C3E2D520808E203009894D1 /* PageSetup.tiff in Resources */, - 8C3E2D530808E203009894D1 /* Preferences.tiff in Resources */, - 8C3E2D540808E203009894D1 /* Save.tiff in Resources */, - 8C3E2D550808E203009894D1 /* SaveAs.tiff in Resources */, 8C3E2D560808E203009894D1 /* Shift_Left.tiff in Resources */, + 2A8663C918C93FEB00A6F9CC /* Version History.rtf in Resources */, 8C3E2D570808E203009894D1 /* Shift_Right.tiff in Resources */, 8C3E2D5E0808E210009894D1 /* StatusArea_Hide.tiff in Resources */, 8C3E2D5F0808E210009894D1 /* StatusArea_Show.tiff in Resources */, - 8C3E2D600808E210009894D1 /* TransparencyPanel.tiff in Resources */, 8C3E2D610808E210009894D1 /* WrapLines_Off.tiff in Resources */, 8C3E2D620808E210009894D1 /* WrapLines_On.tiff in Resources */, 2585914C080F503A0038F387 /* _aboutScriptFolder.rtf in Resources */, 8C3A7DEA0867EC9C00ECE052 /* startup.applescript in Resources */, 2585914D080F503A0038F387 /* openDictionary.applescript in Resources */, 8C0F52610871861C00ABD124 /* openScriptMenu.applescript in Resources */, - 8C28CD7808110E4A00733DA7 /* cleanButtonIcon.tiff in Resources */, - 8CCB5C36083F1F3C0022BA2A /* Credits.rtf in Resources */, + 8C28CD7808110E4A00733DA7 /* Script_CleanButton.tiff in Resources */, 8C9997C10873DB73003F4294 /* defaultSyntaxStyle_Perl.plist in Resources */, 8C9997DD0873EDF6003F4294 /* defaultSyntaxStyle_Shell Script.plist in Resources */, 8CB3AF69087F9335004BFDDD /* defaultSyntaxStyle_JavaScript.plist in Resources */, 8C52080A0880BAAF005734F2 /* RecolorAll.tiff in Resources */, - 8CFB565D0885087000AF0816 /* lockOnImg.tiff in Resources */, - 8C3763A80887CBDB0085C207 /* swapArrow.tiff in Resources */, 8C4BC92F0895BD3C00F5263E /* EditHexAsBG.tiff in Resources */, 8C4BC9300895BD3C00F5263E /* EditHexAsFore.tiff in Resources */, 8CE570B508A6E047004A8924 /* defaultSyntaxStyle_C, C++, Objective-C.plist in Resources */, 8C99DD5108BD561B001F618C /* NaviBar_Hide.tiff in Resources */, 8C99DD5208BD561B001F618C /* NaviBar_Show.tiff in Resources */, - 8CC98A8808BD9A02008BEC7B /* popUpButtonArrow.tiff in Resources */, - 8C1FC69D08BDCA6100E4A6EA /* popUpButtonBG_center.tiff in Resources */, - 8C1FC69E08BDCA6100E4A6EA /* popUpButtonBG_left.tiff in Resources */, 8C98366708C0211D00746F92 /* IncompatibleChar.tiff in Resources */, - 8C3AB31B08C16B3900F2B81F /* prevButtonImg.tiff in Resources */, - 8C3AB34608C1715800F2B81F /* nextButtonImg.tiff in Resources */, 8C74017708C7364400683672 /* defaultSyntaxStyle_LaTeX.plist in Resources */, 8CC6EBB108CED0F700508369 /* DefaultMenuKeyBindings.plist in Resources */, - 8C18347808D5B29600E8AEE2 /* clearButtonImg.tiff in Resources */, - 8C18347908D5B29600E8AEE2 /* editButtonImg.tiff in Resources */, 8C0FE15A08D7FDAA00B2B71B /* DefaultTextKeyBindings.plist in Resources */, - 8CCB26DA08E6D042007137D7 /* centerButtonImg.tiff in Resources */, - 8CCB26DC08E6D048007137D7 /* leftButtonImg.tiff in Resources */, - 8CCB26DE08E6D055007137D7 /* rightButtonImg.tiff in Resources */, + 2A067B9A18D52F5200546280 /* Acknowledgements.rtf in Resources */, 8C78824708ED5A03003EFE02 /* defaultSyntaxStyle_Ruby.plist in Resources */, 8CE68107090A1C6900D50390 /* Pref_View.tiff in Resources */, 8CE68108090A1C6900D50390 /* Pref_FileDrop.tiff in Resources */, @@ -822,24 +788,42 @@ 8CE6810B090A1C6900D50390 /* Pref_KeyBinding.tiff in Resources */, 8CE6810C090A1C6900D50390 /* Pref_Syntax.tiff in Resources */, 8CE6810D090A1C6900D50390 /* Pref_Window.tiff in Resources */, - 8CBCA8AA0941D67400B258D8 /* pageGuide.tiff in Resources */, 8CEF66C20995E47F00C65A84 /* InvisibleChar_Hide.tiff in Resources */, 8CEF66C30995E47F00C65A84 /* InvisibleChar_Show.tiff in Resources */, 8CEF66C60995E4A700C65A84 /* PageGuide_Hide.tiff in Resources */, 8CEF66C70995E4A700C65A84 /* PageGuide_Show.tiff in Resources */, - 8CF7930009F518CB001BDFF7 /* openSplitButtonImg.tiff in Resources */, - 8CF7930209F518D7001BDFF7 /* closeSplitButtonImg.tiff in Resources */, 8C13A5650A038ABC001EA22F /* defaultSyntaxStyle_eRuby.plist in Resources */, 8C13A5670A038B74001EA22F /* defaultSyntaxStyle_Java.plist in Resources */, 8CE5D6C80AC80A31005F5FDB /* Pref_Print.tiff in Resources */, + 2A6394DA18B0BFA0008D304D /* defaultSyntaxStyle_XML.plist in Resources */, 8C7D7DB30BE71A3000C2C7E3 /* defaultSyntaxStyle_Haskell.plist in Resources */, 8C5684CA0C48A36200346FB0 /* defaultSyntaxStyle_Python.plist in Resources */, 8C0A063D0F748B9900D32B56 /* defaultSyntaxStyle_PHP.plist in Resources */, 6CA3B3E312E3B59B0019AB2E /* Script in Resources */, - 6C4216A612DDB9180037690E /* Docs in Resources */, - 6C4216BD12DDB9EB0037690E /* Docs_for_src in Resources */, - 6C9BF21D12F62D3A0097BFE7 /* CotEditorHelp in Resources */, 6C6DAE3E13833C0E007F2326 /* dsa_pub.pem in Resources */, + 2A0722F316D3CF2E00F49864 /* scriptMenuIcon.pdf in Resources */, + 2A07230616D3CF4F00F49864 /* addButtonImg.pdf in Resources */, + 2A07230716D3CF4F00F49864 /* centerButtonImg.pdf in Resources */, + 2A07230816D3CF4F00F49864 /* clearButtonImg.pdf in Resources */, + 2A9A144B18B67846001080D6 /* Images.xcassets in Resources */, + 2A07230916D3CF4F00F49864 /* closeSplitButtonImg.pdf in Resources */, + 2A07230A16D3CF4F00F49864 /* editButtonImg.pdf in Resources */, + 2A07230B16D3CF4F00F49864 /* leftButtonImg.pdf in Resources */, + 2A7572BF18B3BBAE00878F66 /* CotEditor.help in Resources */, + 2A8663AE18C93D2200A6F9CC /* ReadMe.rtf in Resources */, + 2A07230C16D3CF4F00F49864 /* lockOnImg.pdf in Resources */, + 2A07230D16D3CF4F00F49864 /* nextButtonImg.pdf in Resources */, + 2A07230E16D3CF4F00F49864 /* openSplitButtonImg.pdf in Resources */, + 2A07230F16D3CF4F00F49864 /* pageGuide.pdf in Resources */, + 2A6394DC18B0BFA7008D304D /* defaultSyntaxStyle_Apache.plist in Resources */, + 2A07231016D3CF4F00F49864 /* popUpButtonArrow.pdf in Resources */, + 2A07231116D3CF4F00F49864 /* popUpButtonBG_center.pdf in Resources */, + 2A07231216D3CF4F00F49864 /* popUpButtonBG_left.pdf in Resources */, + 2A07231316D3CF4F00F49864 /* prevButtonImg.pdf in Resources */, + 2A07231416D3CF4F00F49864 /* removeButtonImg.pdf in Resources */, + 2A07231516D3CF4F00F49864 /* rightButtonImg.pdf in Resources */, + 2A07231616D3CF4F00F49864 /* swapArrow.pdf in Resources */, + 2A07231716D3CF4F00F49864 /* transparencyGuide.pdf in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -863,10 +847,11 @@ 2588E9C007C47ACC0060021D /* CEEditorView.m in Sources */, 8CB0122E07CA0EFA00221EDC /* CEToolbarController.m in Sources */, 258D708A07D456DF0062A3E5 /* CETextSelection.m in Sources */, - 8CC1925707E2D84500B54AE4 /* CEDocumentAppleScript.m in Sources */, + 8CC1925707E2D84500B54AE4 /* CEDocument+ScriptingSupport.m in Sources */, 8CC1961D07E2E54E00B54AE4 /* CEScriptManager.m in Sources */, + 2A8663DD18C9F6B700A6F9CC /* NSData+MD5.m in Sources */, 258A14D107F3C6BC008E5FA1 /* CEFlippedView.m in Sources */, - 8C49092D07F43DCA0072AAE9 /* NSEventAdditions.m in Sources */, + 8C49092D07F43DCA0072AAE9 /* NSEvent+CarbonModFlag.m in Sources */, 25B2C23707FA667400F4EFC7 /* CELineNumView.m in Sources */, 25B2C24407FA68D100F4EFC7 /* CEStatusBarView.m in Sources */, 25B2C24D07FA6BC400F4EFC7 /* CETextViewCore.m in Sources */, @@ -880,8 +865,6 @@ 8CC5044508EE829500A525A6 /* CEPrintView.m in Sources */, 8C8971360902620D0013FA27 /* CEPreferencesTabController.m in Sources */, 8C5853360903C1ED0085BC4F /* CETabItemView.m in Sources */, - 8C7F74F0091C74B7005C7598 /* UKKQueue.m in Sources */, - 8C7F7504091C7596005C7598 /* UKMainThreadProxy.m in Sources */, 8C83A48309485F27004E48A8 /* CEATSTypesetter.m in Sources */, 8CD7A93C09CBDDDC00739513 /* CESubSplitView.m in Sources */, 8C8CCCB109D6803400A008E5 /* CESplitView.m in Sources */, @@ -898,100 +881,118 @@ 089C165FFE840EACC02AAC07 /* InfoPlist.strings */ = { isa = PBXVariantGroup; children = ( - 089C1660FE840EACC02AAC07 /* English */, - 6C1E212212C9E65600194313 /* Japanese */, + 089C1660FE840EACC02AAC07 /* en */, + 6C1E212212C9E65600194313 /* ja */, ); name = InfoPlist.strings; sourceTree = ""; }; - 25859EA5076D8EE80020F779 /* Preferences.nib */ = { + 25859EA5076D8EE80020F779 /* Preferences.xib */ = { isa = PBXVariantGroup; children = ( - 25859EA6076D8EE80020F779 /* English */, - 6C1E212612C9E65600194313 /* Japanese */, + 25859EA6076D8EE80020F779 /* en */, + 6C1E212612C9E65600194313 /* ja */, ); - name = Preferences.nib; + name = Preferences.xib; sourceTree = SOURCE_ROOT; }; - 2588E9CC07C4851C0060021D /* Indicator.nib */ = { + 2588E9CC07C4851C0060021D /* Indicator.xib */ = { isa = PBXVariantGroup; children = ( - 2588E9CD07C4851C0060021D /* English */, - 6C1E212112C9E65600194313 /* Japanese */, + 2588E9CD07C4851C0060021D /* en */, + 6C1E212112C9E65600194313 /* ja */, ); - name = Indicator.nib; + name = Indicator.xib; sourceTree = ""; }; - 258EF2F8077FEDD000011E52 /* SyntaxManager.nib */ = { + 258EF2F8077FEDD000011E52 /* SyntaxManager.xib */ = { isa = PBXVariantGroup; children = ( - 258EF2F9077FEDD000011E52 /* English */, - 6C1E212812C9E65600194313 /* Japanese */, + 258EF2F9077FEDD000011E52 /* en */, + 6C1E212812C9E65600194313 /* ja */, ); - name = SyntaxManager.nib; + name = SyntaxManager.xib; sourceTree = ""; }; 259C2316077678DE00BA61C5 /* Localizable.strings */ = { isa = PBXVariantGroup; children = ( - 259C2317077678DE00BA61C5 /* English */, - 6C1E212412C9E65600194313 /* Japanese */, + 259C2317077678DE00BA61C5 /* en */, + 6C1E212412C9E65600194313 /* ja */, ); name = Localizable.strings; sourceTree = ""; }; - 2A37F4B4FDCFA73011CA2CEA /* DocWindow.nib */ = { + 2A067B9818D52F5200546280 /* Acknowledgements.rtf */ = { + isa = PBXVariantGroup; + children = ( + 2A067B9918D52F5200546280 /* en */, + 2A067B9B18D52F5700546280 /* ja */, + ); + name = Acknowledgements.rtf; + sourceTree = ""; + }; + 2A37F4B4FDCFA73011CA2CEA /* DocWindow.xib */ = { + isa = PBXVariantGroup; + children = ( + 2A37F4B5FDCFA73011CA2CEA /* en */, + 6C1E211F12C9E65600194313 /* ja */, + ); + name = DocWindow.xib; + sourceTree = ""; + }; + 2A37F4B6FDCFA73011CA2CEA /* MainMenu.xib */ = { isa = PBXVariantGroup; children = ( - 2A37F4B5FDCFA73011CA2CEA /* English */, - 6C1E211F12C9E65600194313 /* Japanese */, + 2A37F4B7FDCFA73011CA2CEA /* en */, + 6C1E212512C9E65600194313 /* ja */, ); - name = DocWindow.nib; + name = MainMenu.xib; sourceTree = ""; }; - 2A37F4B6FDCFA73011CA2CEA /* MainMenu.nib */ = { + 2A8663B018C93D2200A6F9CC /* ReadMe.rtf */ = { isa = PBXVariantGroup; children = ( - 2A37F4B7FDCFA73011CA2CEA /* English */, - 6C1E212512C9E65600194313 /* Japanese */, + 2A8663AF18C93D2200A6F9CC /* en */, + 2A8663B118C93D2500A6F9CC /* ja */, ); - name = MainMenu.nib; + name = ReadMe.rtf; sourceTree = ""; }; - 6C9BF21C12F62D3A0097BFE7 /* CotEditorHelp */ = { + 2A8663CB18C93FEB00A6F9CC /* Version History.rtf */ = { isa = PBXVariantGroup; children = ( - 6C9BF1C412F62D310097BFE7 /* English */, - 6C9BF27412F62E210097BFE7 /* Japanese */, + 2A8663CA18C93FEB00A6F9CC /* en */, + 2A8663CF18C93FF200A6F9CC /* ja */, ); - name = CotEditorHelp; + name = "Version History.rtf"; sourceTree = ""; }; - 8C28CD2C081101A300733DA7 /* ScriptManager.nib */ = { + 8C28CD2C081101A300733DA7 /* ScriptManager.xib */ = { isa = PBXVariantGroup; children = ( - 8C28CD2D081101A300733DA7 /* English */, - 6C1E212712C9E65600194313 /* Japanese */, + 8C28CD2D081101A300733DA7 /* en */, + 2A47A70B18CC8A7C0076B49A /* ja */, ); - name = ScriptManager.nib; + name = ScriptManager.xib; sourceTree = ""; }; - 8C4186CE08864B3E0039FBFC /* HCCManager.nib */ = { + 8C4186CE08864B3E0039FBFC /* HCCManager.xib */ = { isa = PBXVariantGroup; children = ( - 8C4186CF08864B3E0039FBFC /* English */, - 6C1E212012C9E65600194313 /* Japanese */, + 8C4186CF08864B3E0039FBFC /* en */, + 6C1E212012C9E65600194313 /* ja */, ); - name = HCCManager.nib; + name = HCCManager.xib; sourceTree = ""; }; - 8C7400A208C6D93900683672 /* KeyBindingManager.nib */ = { + 8C7400A208C6D93900683672 /* KeyBindingManager.xib */ = { isa = PBXVariantGroup; children = ( - 8C7400A308C6D93900683672 /* English */, - 6C1E212312C9E65600194313 /* Japanese */, + 8C7400A308C6D93900683672 /* en */, + 6C1E212312C9E65600194313 /* ja */, ); - name = KeyBindingManager.nib; + name = KeyBindingManager.xib; sourceTree = ""; }; /* End PBXVariantGroup section */ @@ -1000,7 +1001,8 @@ 8C71D95408640EDF00C9C0BD /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_BIT)"; + ASSETCATALOG_COMPILER_APPICON_NAME = appIcon; + COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = NO; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; FRAMEWORK_SEARCH_PATHS = ( @@ -1015,21 +1017,21 @@ GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = CotEditor_Prefix.pch; GCC_PREPROCESSOR_DEFINITIONS = "\"DEBUGGING\""; - GCC_VERSION = 4.0; + GCC_VERSION = ""; GCC_WARN_ABOUT_POINTER_SIGNEDNESS = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES; INFOPLIST_FILE = Info.plist; - MACOSX_DEPLOYMENT_TARGET = 10.4; PRODUCT_NAME = CotEditor; - SDKROOT = macosx10.4; - VALID_ARCHS = "i386 ppc"; + SDKROOT = macosx; + VALID_ARCHS = "i386 x86_64"; }; name = Debug; }; 8C71D95508640EDF00C9C0BD /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_BIT)"; + ASSETCATALOG_COMPILER_APPICON_NAME = appIcon; + COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = YES; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; FRAMEWORK_SEARCH_PATHS = ( @@ -1042,37 +1044,35 @@ GCC_OPTIMIZATION_LEVEL = s; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = CotEditor_Prefix.pch; - GCC_VERSION = 4.0; + GCC_VERSION = ""; GCC_WARN_ABOUT_RETURN_TYPE = YES; INFOPLIST_FILE = Info.plist; - MACOSX_DEPLOYMENT_TARGET = 10.4; PRODUCT_NAME = CotEditor; - SDKROOT = macosx10.4; - VALID_ARCHS = "i386 ppc"; + SDKROOT = macosx; + VALID_ARCHS = "i386 x86_64"; }; name = Release; }; 8C71D95808640EDF00C9C0BD /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_BIT)"; GCC_MODEL_TUNING = G3; - GCC_VERSION = 4.0; - MACOSX_DEPLOYMENT_TARGET = 10.4; + GCC_VERSION = ""; + MACOSX_DEPLOYMENT_TARGET = 10.7; + ONLY_ACTIVE_ARCH = YES; PREBINDING = NO; - SDKROOT = macosx10.4; + SDKROOT = macosx; }; name = Debug; }; 8C71D95908640EDF00C9C0BD /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_BIT)"; GCC_MODEL_TUNING = G3; - GCC_VERSION = 4.0; - MACOSX_DEPLOYMENT_TARGET = 10.4; + GCC_VERSION = ""; + MACOSX_DEPLOYMENT_TARGET = 10.7; PREBINDING = NO; - SDKROOT = macosx10.4; + SDKROOT = macosx; }; name = Release; }; diff --git a/CotEditor.xcodeproj/xcshareddata/xcschemes/CotEditor.xcscheme b/CotEditor.xcodeproj/xcshareddata/xcschemes/CotEditor.xcscheme new file mode 100644 index 0000000000..b5a9b92f41 --- /dev/null +++ b/CotEditor.xcodeproj/xcshareddata/xcschemes/CotEditor.xcscheme @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/CotEditor_Lion.xcodeproj/project.pbxproj b/CotEditor_Lion.xcodeproj/project.pbxproj deleted file mode 100644 index b1ddcba021..0000000000 --- a/CotEditor_Lion.xcodeproj/project.pbxproj +++ /dev/null @@ -1,1078 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 2582260107794C2A00A0F8D3 /* CESyntax.m in Sources */ = {isa = PBXBuildFile; fileRef = 258225FF07794C2A00A0F8D3 /* CESyntax.m */; }; - 2585914C080F503A0038F387 /* _aboutScriptFolder.rtf in Resources */ = {isa = PBXBuildFile; fileRef = 2585914A080F503A0038F387 /* _aboutScriptFolder.rtf */; }; - 2585914D080F503A0038F387 /* openDictionary.applescript in Resources */ = {isa = PBXBuildFile; fileRef = 2585914B080F503A0038F387 /* openDictionary.applescript */; }; - 25859DB3076D65310020F779 /* CEAppController.m in Sources */ = {isa = PBXBuildFile; fileRef = 25859DB1076D65310020F779 /* CEAppController.m */; }; - 25859DEE076D75BC0020F779 /* CEWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = 25859DEC076D75BC0020F779 /* CEWindowController.m */; }; - 25859EA7076D8EE80020F779 /* Preferences.nib in Resources */ = {isa = PBXBuildFile; fileRef = 25859EA5076D8EE80020F779 /* Preferences.nib */; }; - 25859EC1076D92D60020F779 /* CEPreferences.m in Sources */ = {isa = PBXBuildFile; fileRef = 25859EBF076D92D60020F779 /* CEPreferences.m */; }; - 258700E6077BAD2200E541BB /* CESyntaxManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 258700E4077BAD2200E541BB /* CESyntaxManager.m */; }; - 2588E9C007C47ACC0060021D /* CEEditorView.m in Sources */ = {isa = PBXBuildFile; fileRef = 2588E9BE07C47ACC0060021D /* CEEditorView.m */; }; - 2588E9CE07C4851C0060021D /* Indicator.nib in Resources */ = {isa = PBXBuildFile; fileRef = 2588E9CC07C4851C0060021D /* Indicator.nib */; }; - 258998F507CEED3400098762 /* defaultSyntaxStyle_HTML.plist in Resources */ = {isa = PBXBuildFile; fileRef = 258998F407CEED3400098762 /* defaultSyntaxStyle_HTML.plist */; }; - 2589EF5307F247AD003BF861 /* defaultSyntaxStyle_CSS.plist in Resources */ = {isa = PBXBuildFile; fileRef = 2589EF5207F247AD003BF861 /* defaultSyntaxStyle_CSS.plist */; }; - 258A14D107F3C6BC008E5FA1 /* CEFlippedView.m in Sources */ = {isa = PBXBuildFile; fileRef = 258A14CF07F3C6BC008E5FA1 /* CEFlippedView.m */; }; - 258D708A07D456DF0062A3E5 /* CETextSelection.m in Sources */ = {isa = PBXBuildFile; fileRef = 258D708807D456DF0062A3E5 /* CETextSelection.m */; }; - 258EF2FA077FEDD000011E52 /* SyntaxManager.nib in Resources */ = {isa = PBXBuildFile; fileRef = 258EF2F8077FEDD000011E52 /* SyntaxManager.nib */; }; - 259BFDCE076EBF7E00A5A6D0 /* CEDocumentController.m in Sources */ = {isa = PBXBuildFile; fileRef = 259BFDCC076EBF7E00A5A6D0 /* CEDocumentController.m */; }; - 259C2318077678DE00BA61C5 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 259C2316077678DE00BA61C5 /* Localizable.strings */; }; - 25A1DE2F07A0A06500C49AAA /* defaultSyntaxStyle_Plain Text.plist in Resources */ = {isa = PBXBuildFile; fileRef = 25A1DE2E07A0A06500C49AAA /* defaultSyntaxStyle_Plain Text.plist */; }; - 25AC091C077190EB00B0C91C /* CEPrefEncodingDataSource.m in Sources */ = {isa = PBXBuildFile; fileRef = 25AC091A077190EB00B0C91C /* CEPrefEncodingDataSource.m */; }; - 25B2C23707FA667400F4EFC7 /* CELineNumView.m in Sources */ = {isa = PBXBuildFile; fileRef = 25B2C23507FA667400F4EFC7 /* CELineNumView.m */; }; - 25B2C24407FA68D100F4EFC7 /* CEStatusBarView.m in Sources */ = {isa = PBXBuildFile; fileRef = 25B2C24207FA68D100F4EFC7 /* CEStatusBarView.m */; }; - 25B2C24D07FA6BC400F4EFC7 /* CETextViewCore.m in Sources */ = {isa = PBXBuildFile; fileRef = 25B2C24B07FA6BC400F4EFC7 /* CETextViewCore.m */; }; - 6C4216A612DDB9180037690E /* Docs in Resources */ = {isa = PBXBuildFile; fileRef = 6C42169512DDB9180037690E /* Docs */; }; - 6C4216BD12DDB9EB0037690E /* Docs_for_src in Resources */ = {isa = PBXBuildFile; fileRef = 6C4216B512DDB9EB0037690E /* Docs_for_src */; }; - 6C6DAE3E13833C0E007F2326 /* dsa_pub.pem in Resources */ = {isa = PBXBuildFile; fileRef = 6C6DAE3D13833C0E007F2326 /* dsa_pub.pem */; }; - 6C9BF21D12F62D3A0097BFE7 /* CotEditorHelp in Resources */ = {isa = PBXBuildFile; fileRef = 6C9BF21C12F62D3A0097BFE7 /* CotEditorHelp */; }; - 6CA3B3E312E3B59B0019AB2E /* Script in Resources */ = {isa = PBXBuildFile; fileRef = 6CA3B36012E3B59B0019AB2E /* Script */; }; - 6CB074A21373A03B001D0243 /* Sparkle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6CB074A11373A03B001D0243 /* Sparkle.framework */; }; - 6CB074B11373A0C3001D0243 /* Sparkle.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = 6CB074A11373A03B001D0243 /* Sparkle.framework */; }; - 8C081B4B07D0A85A0060191A /* getInfo.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8C081B4A07D0A85A0060191A /* getInfo.tiff */; }; - 8C0A063D0F748B9900D32B56 /* defaultSyntaxStyle_PHP.plist in Resources */ = {isa = PBXBuildFile; fileRef = 8C0A063C0F748B9900D32B56 /* defaultSyntaxStyle_PHP.plist */; }; - 8C0F52610871861C00ABD124 /* openScriptMenu.applescript in Resources */ = {isa = PBXBuildFile; fileRef = 8C0F52600871861C00ABD124 /* openScriptMenu.applescript */; }; - 8C0FE15A08D7FDAA00B2B71B /* DefaultTextKeyBindings.plist in Resources */ = {isa = PBXBuildFile; fileRef = 8C0FE15908D7FDAA00B2B71B /* DefaultTextKeyBindings.plist */; }; - 8C1305AF0DC4B71D00975AC6 /* RegexKitLite.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C1305AE0DC4B71D00975AC6 /* RegexKitLite.m */; }; - 8C1305B20DC4B83000975AC6 /* RKLMatchEnumerator.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C1305B10DC4B83000975AC6 /* RKLMatchEnumerator.m */; }; - 8C13A5650A038ABC001EA22F /* defaultSyntaxStyle_eRuby.plist in Resources */ = {isa = PBXBuildFile; fileRef = 8C13A5640A038ABC001EA22F /* defaultSyntaxStyle_eRuby.plist */; }; - 8C13A5670A038B74001EA22F /* defaultSyntaxStyle_Java.plist in Resources */ = {isa = PBXBuildFile; fileRef = 8C13A5660A038B74001EA22F /* defaultSyntaxStyle_Java.plist */; }; - 8C18347808D5B29600E8AEE2 /* clearButtonImg.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8C18347608D5B29600E8AEE2 /* clearButtonImg.tiff */; }; - 8C18347908D5B29600E8AEE2 /* editButtonImg.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8C18347708D5B29600E8AEE2 /* editButtonImg.tiff */; }; - 8C1FC69D08BDCA6100E4A6EA /* popUpButtonBG_center.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8C1FC69B08BDCA6100E4A6EA /* popUpButtonBG_center.tiff */; }; - 8C1FC69E08BDCA6100E4A6EA /* popUpButtonBG_left.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8C1FC69C08BDCA6100E4A6EA /* popUpButtonBG_left.tiff */; }; - 8C2790FC07D18A6700103A53 /* CotEditor.scriptTerminology in Resources */ = {isa = PBXBuildFile; fileRef = 8C2790FB07D18A6700103A53 /* CotEditor.scriptTerminology */; }; - 8C27910007D18AC300103A53 /* CotEditor.scriptSuite in Resources */ = {isa = PBXBuildFile; fileRef = 8C2790FF07D18AC300103A53 /* CotEditor.scriptSuite */; }; - 8C28CD2E081101A300733DA7 /* ScriptManager.nib in Resources */ = {isa = PBXBuildFile; fileRef = 8C28CD2C081101A300733DA7 /* ScriptManager.nib */; }; - 8C28CD7808110E4A00733DA7 /* cleanButtonIcon.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8C28CD7708110E4A00733DA7 /* cleanButtonIcon.tiff */; }; - 8C3289F007A21422001CA481 /* OgreKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8C3289EF07A21422001CA481 /* OgreKit.framework */; }; - 8C3289F207A2146B001CA481 /* OgreKit.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = 8C3289EF07A21422001CA481 /* OgreKit.framework */; }; - 8C3763A80887CBDB0085C207 /* swapArrow.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8C3763A70887CBDB0085C207 /* swapArrow.tiff */; }; - 8C3840930D16B75C00F76A4C /* UKXattrMetadataStore.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C3840920D16B75C00F76A4C /* UKXattrMetadataStore.m */; }; - 8C38409B0D16B7AC00F76A4C /* UKXattrMetadataStore.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 8C3840910D16B75C00F76A4C /* UKXattrMetadataStore.h */; }; - 8C3A7DEA0867EC9C00ECE052 /* startup.applescript in Resources */ = {isa = PBXBuildFile; fileRef = 8C3A7DD80867EA9A00ECE052 /* startup.applescript */; }; - 8C3AB31B08C16B3900F2B81F /* prevButtonImg.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8C3AB31A08C16B3900F2B81F /* prevButtonImg.tiff */; }; - 8C3AB34608C1715800F2B81F /* nextButtonImg.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8C3AB34508C1715800F2B81F /* nextButtonImg.tiff */; }; - 8C3BEA2808BDBCA800BC2067 /* CEOutlineMenuButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C3BEA2608BDBCA800BC2067 /* CEOutlineMenuButton.m */; }; - 8C3E2D500808E203009894D1 /* LineNumber_Hide.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8C3E2D480808E203009894D1 /* LineNumber_Hide.tiff */; }; - 8C3E2D510808E203009894D1 /* LineNumber_Show.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8C3E2D490808E203009894D1 /* LineNumber_Show.tiff */; }; - 8C3E2D520808E203009894D1 /* PageSetup.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8C3E2D4A0808E203009894D1 /* PageSetup.tiff */; }; - 8C3E2D530808E203009894D1 /* Preferences.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8C3E2D4B0808E203009894D1 /* Preferences.tiff */; }; - 8C3E2D540808E203009894D1 /* Save.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8C3E2D4C0808E203009894D1 /* Save.tiff */; }; - 8C3E2D550808E203009894D1 /* SaveAs.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8C3E2D4D0808E203009894D1 /* SaveAs.tiff */; }; - 8C3E2D560808E203009894D1 /* Shift_Left.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8C3E2D4E0808E203009894D1 /* Shift_Left.tiff */; }; - 8C3E2D570808E203009894D1 /* Shift_Right.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8C3E2D4F0808E203009894D1 /* Shift_Right.tiff */; }; - 8C3E2D5E0808E210009894D1 /* StatusArea_Hide.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8C3E2D590808E210009894D1 /* StatusArea_Hide.tiff */; }; - 8C3E2D5F0808E210009894D1 /* StatusArea_Show.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8C3E2D5A0808E210009894D1 /* StatusArea_Show.tiff */; }; - 8C3E2D600808E210009894D1 /* TransparencyPanel.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8C3E2D5B0808E210009894D1 /* TransparencyPanel.tiff */; }; - 8C3E2D610808E210009894D1 /* WrapLines_Off.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8C3E2D5C0808E210009894D1 /* WrapLines_Off.tiff */; }; - 8C3E2D620808E210009894D1 /* WrapLines_On.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8C3E2D5D0808E210009894D1 /* WrapLines_On.tiff */; }; - 8C4186C0088648CA0039FBFC /* CEHCCManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C4186BE088648CA0039FBFC /* CEHCCManager.m */; }; - 8C4186D008864B3E0039FBFC /* HCCManager.nib in Resources */ = {isa = PBXBuildFile; fileRef = 8C4186CE08864B3E0039FBFC /* HCCManager.nib */; }; - 8C418721088655E00039FBFC /* CEHexColorTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C41871F088655E00039FBFC /* CEHexColorTransformer.m */; }; - 8C49092D07F43DCA0072AAE9 /* NSEventAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C49092B07F43DCA0072AAE9 /* NSEventAdditions.m */; }; - 8C49094607F441510072AAE9 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8C49094507F441510072AAE9 /* Carbon.framework */; }; - 8C4BC92F0895BD3C00F5263E /* EditHexAsBG.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8C4BC92D0895BD3C00F5263E /* EditHexAsBG.tiff */; }; - 8C4BC9300895BD3C00F5263E /* EditHexAsFore.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8C4BC92E0895BD3C00F5263E /* EditHexAsFore.tiff */; }; - 8C52080A0880BAAF005734F2 /* RecolorAll.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8C5208090880BAAF005734F2 /* RecolorAll.tiff */; }; - 8C5684CA0C48A36200346FB0 /* defaultSyntaxStyle_Python.plist in Resources */ = {isa = PBXBuildFile; fileRef = 8C5684C90C48A36200346FB0 /* defaultSyntaxStyle_Python.plist */; }; - 8C5853360903C1ED0085BC4F /* CETabItemView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C5853340903C1ED0085BC4F /* CETabItemView.m */; }; - 8C65C0E807927D0F0028D94A /* CELayoutManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C65C0E607927D0F0028D94A /* CELayoutManager.m */; }; - 8C7400A408C6D93900683672 /* KeyBindingManager.nib in Resources */ = {isa = PBXBuildFile; fileRef = 8C7400A208C6D93900683672 /* KeyBindingManager.nib */; }; - 8C7400A908C6D96D00683672 /* CEKeyBindingManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C7400A708C6D96D00683672 /* CEKeyBindingManager.m */; }; - 8C74017708C7364400683672 /* defaultSyntaxStyle_LaTeX.plist in Resources */ = {isa = PBXBuildFile; fileRef = 8C74017608C7364400683672 /* defaultSyntaxStyle_LaTeX.plist */; }; - 8C78824708ED5A03003EFE02 /* defaultSyntaxStyle_Ruby.plist in Resources */ = {isa = PBXBuildFile; fileRef = 8C78824608ED5A03003EFE02 /* defaultSyntaxStyle_Ruby.plist */; }; - 8C7D7DB30BE71A3000C2C7E3 /* defaultSyntaxStyle_Haskell.plist in Resources */ = {isa = PBXBuildFile; fileRef = 8C7D7DB20BE71A3000C2C7E3 /* defaultSyntaxStyle_Haskell.plist */; }; - 8C7F74EC091C738C005C7598 /* ODBEditorSuite.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 8C7F74EB091C738C005C7598 /* ODBEditorSuite.h */; }; - 8C7F74EF091C74B7005C7598 /* UKKQueue.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 8C7F74ED091C74B7005C7598 /* UKKQueue.h */; }; - 8C7F74F0091C74B7005C7598 /* UKKQueue.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C7F74EE091C74B7005C7598 /* UKKQueue.m */; }; - 8C7F74FC091C7575005C7598 /* UKFileWatcher.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 8C7F74FB091C7575005C7598 /* UKFileWatcher.h */; }; - 8C7F7503091C7596005C7598 /* UKMainThreadProxy.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 8C7F7501091C7596005C7598 /* UKMainThreadProxy.h */; }; - 8C7F7504091C7596005C7598 /* UKMainThreadProxy.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C7F7502091C7596005C7598 /* UKMainThreadProxy.m */; }; - 8C83A48309485F27004E48A8 /* CEATSTypesetter.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C83A48109485F27004E48A8 /* CEATSTypesetter.m */; }; - 8C8971360902620D0013FA27 /* CEPreferencesTabController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C8971340902620D0013FA27 /* CEPreferencesTabController.m */; }; - 8C89772B0DCD8B4000DC32FF /* libicucore.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 8C8977240DCD8AD000DC32FF /* libicucore.dylib */; }; - 8C8CCCB109D6803400A008E5 /* CESplitView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C8CCCAF09D6803400A008E5 /* CESplitView.m */; }; - 8C982DDF07FAE57700AA36F0 /* addButtonImg.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8C982DDD07FAE57700AA36F0 /* addButtonImg.tiff */; }; - 8C982DE007FAE57700AA36F0 /* removeButtonImg.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8C982DDE07FAE57700AA36F0 /* removeButtonImg.tiff */; }; - 8C98366708C0211D00746F92 /* IncompatibleChar.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8C98366608C0211D00746F92 /* IncompatibleChar.tiff */; }; - 8C9997C10873DB73003F4294 /* defaultSyntaxStyle_Perl.plist in Resources */ = {isa = PBXBuildFile; fileRef = 8C9997C00873DB73003F4294 /* defaultSyntaxStyle_Perl.plist */; }; - 8C9997DD0873EDF6003F4294 /* defaultSyntaxStyle_Shell Script.plist in Resources */ = {isa = PBXBuildFile; fileRef = 8C9997DC0873EDF6003F4294 /* defaultSyntaxStyle_Shell Script.plist */; }; - 8C99DD5108BD561B001F618C /* NaviBar_Hide.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8C99DD4F08BD561B001F618C /* NaviBar_Hide.tiff */; }; - 8C99DD5208BD561B001F618C /* NaviBar_Show.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8C99DD5008BD561B001F618C /* NaviBar_Show.tiff */; }; - 8C99DDFB08BD8940001F618C /* CEOutlineMenuButtonCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C99DDF908BD8940001F618C /* CEOutlineMenuButtonCell.m */; }; - 8CA71BCE07D2A79100C146B0 /* biggerFont.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8CA71BCC07D2A79100C146B0 /* biggerFont.tiff */; }; - 8CA71BCF07D2A79100C146B0 /* smallerFont.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8CA71BCD07D2A79100C146B0 /* smallerFont.tiff */; }; - 8CB0122E07CA0EFA00221EDC /* CEToolbarController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CB0122C07CA0EFA00221EDC /* CEToolbarController.m */; }; - 8CB056B707E3D07A0027D866 /* scriptMenuIcon.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8CB056B607E3D07A0027D866 /* scriptMenuIcon.tiff */; }; - 8CB10E2A07C4D36200E73342 /* transparencyGuide.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8CB10E2907C4D36200E73342 /* transparencyGuide.tiff */; }; - 8CB3AF69087F9335004BFDDD /* defaultSyntaxStyle_JavaScript.plist in Resources */ = {isa = PBXBuildFile; fileRef = 8CB3AF68087F9335004BFDDD /* defaultSyntaxStyle_JavaScript.plist */; }; - 8CBCA8AA0941D67400B258D8 /* pageGuide.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8CBCA8A90941D67400B258D8 /* pageGuide.tiff */; }; - 8CBFD5F40DC42B1200EC093D /* CEPrivateMutableArray.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CBFD5F30DC42B1200EC093D /* CEPrivateMutableArray.m */; }; - 8CC1925707E2D84500B54AE4 /* CEDocumentAppleScript.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CC1925507E2D84500B54AE4 /* CEDocumentAppleScript.m */; }; - 8CC1961D07E2E54E00B54AE4 /* CEScriptManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CC1961B07E2E54E00B54AE4 /* CEScriptManager.m */; }; - 8CC5044508EE829500A525A6 /* CEPrintView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CC5044308EE829500A525A6 /* CEPrintView.m */; }; - 8CC6EBB108CED0F700508369 /* DefaultMenuKeyBindings.plist in Resources */ = {isa = PBXBuildFile; fileRef = 8CC6EBB008CED0F700508369 /* DefaultMenuKeyBindings.plist */; }; - 8CC98A8808BD9A02008BEC7B /* popUpButtonArrow.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8CC98A8708BD9A02008BEC7B /* popUpButtonArrow.tiff */; }; - 8CCB26DA08E6D042007137D7 /* centerButtonImg.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8CCB26D908E6D042007137D7 /* centerButtonImg.tiff */; }; - 8CCB26DC08E6D048007137D7 /* leftButtonImg.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8CCB26DB08E6D048007137D7 /* leftButtonImg.tiff */; }; - 8CCB26DE08E6D055007137D7 /* rightButtonImg.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8CCB26DD08E6D055007137D7 /* rightButtonImg.tiff */; }; - 8CCB5C36083F1F3C0022BA2A /* Credits.rtf in Resources */ = {isa = PBXBuildFile; fileRef = 8CCB5C35083F1F3C0022BA2A /* Credits.rtf */; }; - 8CD5D80707BD044A00BAA31F /* docIcon.icns in Resources */ = {isa = PBXBuildFile; fileRef = 8CD5D80607BD044A00BAA31F /* docIcon.icns */; }; - 8CD5D80A07BD046900BAA31F /* appIcon.icns in Resources */ = {isa = PBXBuildFile; fileRef = 8CD5D80907BD046900BAA31F /* appIcon.icns */; }; - 8CD7A93C09CBDDDC00739513 /* CESubSplitView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CD7A93A09CBDDDC00739513 /* CESubSplitView.m */; }; - 8CE4859908CD617B004817E1 /* CEApplication.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CE4859708CD617B004817E1 /* CEApplication.m */; }; - 8CE570B508A6E047004A8924 /* defaultSyntaxStyle_C, C++, Objective-C.plist in Resources */ = {isa = PBXBuildFile; fileRef = 8CE570B408A6E047004A8924 /* defaultSyntaxStyle_C, C++, Objective-C.plist */; }; - 8CE5D6C80AC80A31005F5FDB /* Pref_Print.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8CE5D6C70AC80A31005F5FDB /* Pref_Print.tiff */; }; - 8CE68107090A1C6900D50390 /* Pref_View.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8CE68100090A1C6900D50390 /* Pref_View.tiff */; }; - 8CE68108090A1C6900D50390 /* Pref_FileDrop.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8CE68101090A1C6900D50390 /* Pref_FileDrop.tiff */; }; - 8CE68109090A1C6900D50390 /* Pref_Format.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8CE68102090A1C6900D50390 /* Pref_Format.tiff */; }; - 8CE6810A090A1C6900D50390 /* Pref_General.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8CE68103090A1C6900D50390 /* Pref_General.tiff */; }; - 8CE6810B090A1C6900D50390 /* Pref_KeyBinding.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8CE68104090A1C6900D50390 /* Pref_KeyBinding.tiff */; }; - 8CE6810C090A1C6900D50390 /* Pref_Syntax.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8CE68105090A1C6900D50390 /* Pref_Syntax.tiff */; }; - 8CE6810D090A1C6900D50390 /* Pref_Window.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8CE68106090A1C6900D50390 /* Pref_Window.tiff */; }; - 8CEF66C20995E47F00C65A84 /* InvisibleChar_Hide.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8CEF66C00995E47F00C65A84 /* InvisibleChar_Hide.tiff */; }; - 8CEF66C30995E47F00C65A84 /* InvisibleChar_Show.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8CEF66C10995E47F00C65A84 /* InvisibleChar_Show.tiff */; }; - 8CEF66C60995E4A700C65A84 /* PageGuide_Hide.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8CEF66C40995E4A700C65A84 /* PageGuide_Hide.tiff */; }; - 8CEF66C70995E4A700C65A84 /* PageGuide_Show.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8CEF66C50995E4A700C65A84 /* PageGuide_Show.tiff */; }; - 8CF02E1608B9B9F8004044EB /* CENavigationBarView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CF02E1408B9B9F8004044EB /* CENavigationBarView.m */; }; - 8CF7930009F518CB001BDFF7 /* openSplitButtonImg.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8CF792FF09F518CB001BDFF7 /* openSplitButtonImg.tiff */; }; - 8CF7930209F518D7001BDFF7 /* closeSplitButtonImg.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8CF7930109F518D7001BDFF7 /* closeSplitButtonImg.tiff */; }; - 8CFB565D0885087000AF0816 /* lockOnImg.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8CFB565C0885087000AF0816 /* lockOnImg.tiff */; }; - 8D15AC2D0486D014006FF6A4 /* MainMenu.nib in Resources */ = {isa = PBXBuildFile; fileRef = 2A37F4B6FDCFA73011CA2CEA /* MainMenu.nib */; }; - 8D15AC2E0486D014006FF6A4 /* DocWindow.nib in Resources */ = {isa = PBXBuildFile; fileRef = 2A37F4B4FDCFA73011CA2CEA /* DocWindow.nib */; }; - 8D15AC2F0486D014006FF6A4 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165FFE840EACC02AAC07 /* InfoPlist.strings */; }; - 8D15AC310486D014006FF6A4 /* CEDocument.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A37F4ACFDCFA73011CA2CEA /* CEDocument.m */; settings = {ATTRIBUTES = (); }; }; - 8D15AC320486D014006FF6A4 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A37F4B0FDCFA73011CA2CEA /* main.m */; settings = {ATTRIBUTES = (); }; }; - 8D15AC340486D014006FF6A4 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A7FEA54F5311CA2CBB /* Cocoa.framework */; }; -/* End PBXBuildFile section */ - -/* Begin PBXCopyFilesBuildPhase section */ - 8C3996C0076ACBD100F6FF8D /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - 8C3289F207A2146B001CA481 /* OgreKit.framework in CopyFiles */, - 8C7F74EC091C738C005C7598 /* ODBEditorSuite.h in CopyFiles */, - 8C7F74EF091C74B7005C7598 /* UKKQueue.h in CopyFiles */, - 8C7F74FC091C7575005C7598 /* UKFileWatcher.h in CopyFiles */, - 8C7F7503091C7596005C7598 /* UKMainThreadProxy.h in CopyFiles */, - 8C38409B0D16B7AC00F76A4C /* UKXattrMetadataStore.h in CopyFiles */, - 6CB074B11373A0C3001D0243 /* Sparkle.framework in CopyFiles */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - 089C1660FE840EACC02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = ""; }; - 1058C7A7FEA54F5311CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = ""; }; - 258225FE07794C2A00A0F8D3 /* CESyntax.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CESyntax.h; sourceTree = ""; }; - 258225FF07794C2A00A0F8D3 /* CESyntax.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CESyntax.m; sourceTree = ""; }; - 2585914A080F503A0038F387 /* _aboutScriptFolder.rtf */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = _aboutScriptFolder.rtf; path = internalScript/_aboutScriptFolder.rtf; sourceTree = ""; }; - 2585914B080F503A0038F387 /* openDictionary.applescript */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.applescript; name = openDictionary.applescript; path = internalScript/openDictionary.applescript; sourceTree = ""; }; - 25859DB1076D65310020F779 /* CEAppController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = CEAppController.m; sourceTree = ""; }; - 25859DB2076D65310020F779 /* CEAppController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CEAppController.h; sourceTree = ""; }; - 25859DEB076D75BC0020F779 /* CEWindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CEWindowController.h; sourceTree = ""; }; - 25859DEC076D75BC0020F779 /* CEWindowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CEWindowController.m; sourceTree = ""; }; - 25859E90076D88ED0020F779 /* constants.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = constants.h; sourceTree = SOURCE_ROOT; }; - 25859EA6076D8EE80020F779 /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/Preferences.nib; sourceTree = ""; }; - 25859EBE076D92D60020F779 /* CEPreferences.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CEPreferences.h; sourceTree = ""; }; - 25859EBF076D92D60020F779 /* CEPreferences.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CEPreferences.m; sourceTree = ""; }; - 258700E3077BAD2200E541BB /* CESyntaxManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CESyntaxManager.h; sourceTree = ""; }; - 258700E4077BAD2200E541BB /* CESyntaxManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CESyntaxManager.m; sourceTree = ""; }; - 2588E9BD07C47ACC0060021D /* CEEditorView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CEEditorView.h; sourceTree = ""; }; - 2588E9BE07C47ACC0060021D /* CEEditorView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = CEEditorView.m; sourceTree = ""; }; - 2588E9CD07C4851C0060021D /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/Indicator.nib; sourceTree = ""; }; - 258998F407CEED3400098762 /* defaultSyntaxStyle_HTML.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = defaultSyntaxStyle_HTML.plist; path = SyntaxColorings/defaultSyntaxStyle_HTML.plist; sourceTree = ""; }; - 2589EF5207F247AD003BF861 /* defaultSyntaxStyle_CSS.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = defaultSyntaxStyle_CSS.plist; path = SyntaxColorings/defaultSyntaxStyle_CSS.plist; sourceTree = ""; }; - 258A14CE07F3C6BC008E5FA1 /* CEFlippedView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CEFlippedView.h; sourceTree = ""; }; - 258A14CF07F3C6BC008E5FA1 /* CEFlippedView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CEFlippedView.m; sourceTree = ""; }; - 258D708707D456DF0062A3E5 /* CETextSelection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CETextSelection.h; sourceTree = ""; }; - 258D708807D456DF0062A3E5 /* CETextSelection.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CETextSelection.m; sourceTree = ""; }; - 258EF2F9077FEDD000011E52 /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/SyntaxManager.nib; sourceTree = ""; }; - 259BFDCB076EBF7E00A5A6D0 /* CEDocumentController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CEDocumentController.h; sourceTree = ""; }; - 259BFDCC076EBF7E00A5A6D0 /* CEDocumentController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CEDocumentController.m; sourceTree = ""; }; - 259C2317077678DE00BA61C5 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/Localizable.strings; sourceTree = ""; }; - 25A1DE2E07A0A06500C49AAA /* defaultSyntaxStyle_Plain Text.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = "defaultSyntaxStyle_Plain Text.plist"; path = "SyntaxColorings/defaultSyntaxStyle_Plain Text.plist"; sourceTree = ""; }; - 25AC0919077190EB00B0C91C /* CEPrefEncodingDataSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CEPrefEncodingDataSource.h; sourceTree = ""; }; - 25AC091A077190EB00B0C91C /* CEPrefEncodingDataSource.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CEPrefEncodingDataSource.m; sourceTree = ""; }; - 25B2C23407FA667400F4EFC7 /* CELineNumView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CELineNumView.h; sourceTree = ""; }; - 25B2C23507FA667400F4EFC7 /* CELineNumView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CELineNumView.m; sourceTree = ""; }; - 25B2C24107FA68D100F4EFC7 /* CEStatusBarView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CEStatusBarView.h; sourceTree = ""; }; - 25B2C24207FA68D100F4EFC7 /* CEStatusBarView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CEStatusBarView.m; sourceTree = ""; }; - 25B2C24A07FA6BC400F4EFC7 /* CETextViewCore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CETextViewCore.h; sourceTree = ""; }; - 25B2C24B07FA6BC400F4EFC7 /* CETextViewCore.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = CETextViewCore.m; sourceTree = ""; }; - 2A37F4ACFDCFA73011CA2CEA /* CEDocument.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = CEDocument.m; sourceTree = ""; }; - 2A37F4AEFDCFA73011CA2CEA /* CEDocument.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CEDocument.h; sourceTree = ""; }; - 2A37F4B0FDCFA73011CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; - 2A37F4B5FDCFA73011CA2CEA /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/DocWindow.nib; sourceTree = ""; }; - 2A37F4B7FDCFA73011CA2CEA /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/MainMenu.nib; sourceTree = ""; }; - 2A37F4C4FDCFA73011CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = ""; }; - 2A37F4C5FDCFA73011CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = ""; }; - 32DBCF750370BD2300C91783 /* CotEditor_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CotEditor_Prefix.pch; sourceTree = ""; }; - 6C1E211F12C9E65600194313 /* Japanese */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = Japanese; path = Japanese.lproj/DocWindow.nib; sourceTree = ""; }; - 6C1E212012C9E65600194313 /* Japanese */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = Japanese; path = Japanese.lproj/HCCManager.nib; sourceTree = ""; }; - 6C1E212112C9E65600194313 /* Japanese */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = Japanese; path = Japanese.lproj/Indicator.nib; sourceTree = ""; }; - 6C1E212212C9E65600194313 /* Japanese */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = Japanese; path = Japanese.lproj/InfoPlist.strings; sourceTree = ""; }; - 6C1E212312C9E65600194313 /* Japanese */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = Japanese; path = Japanese.lproj/KeyBindingManager.nib; sourceTree = ""; }; - 6C1E212412C9E65600194313 /* Japanese */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = Japanese; path = Japanese.lproj/Localizable.strings; sourceTree = ""; }; - 6C1E212512C9E65600194313 /* Japanese */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = Japanese; path = Japanese.lproj/MainMenu.nib; sourceTree = ""; }; - 6C1E212612C9E65600194313 /* Japanese */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = Japanese; path = Japanese.lproj/Preferences.nib; sourceTree = ""; }; - 6C1E212712C9E65600194313 /* Japanese */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = Japanese; path = Japanese.lproj/ScriptManager.nib; sourceTree = ""; }; - 6C1E212812C9E65600194313 /* Japanese */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = Japanese; path = Japanese.lproj/SyntaxManager.nib; sourceTree = ""; }; - 6C42169512DDB9180037690E /* Docs */ = {isa = PBXFileReference; lastKnownFileType = folder; path = Docs; sourceTree = ""; }; - 6C4216B512DDB9EB0037690E /* Docs_for_src */ = {isa = PBXFileReference; lastKnownFileType = folder; path = Docs_for_src; sourceTree = ""; }; - 6C6DAE3D13833C0E007F2326 /* dsa_pub.pem */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = dsa_pub.pem; sourceTree = ""; }; - 6C9BF1C412F62D310097BFE7 /* English */ = {isa = PBXFileReference; lastKnownFileType = folder; name = English; path = English.lproj/CotEditorHelp; sourceTree = ""; }; - 6C9BF27412F62E210097BFE7 /* Japanese */ = {isa = PBXFileReference; lastKnownFileType = folder; name = Japanese; path = Japanese.lproj/CotEditorHelp; sourceTree = ""; }; - 6CA3B36012E3B59B0019AB2E /* Script */ = {isa = PBXFileReference; lastKnownFileType = folder; path = Script; sourceTree = ""; }; - 6CB074A11373A03B001D0243 /* Sparkle.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Sparkle.framework; sourceTree = ""; }; - 8C081B4A07D0A85A0060191A /* getInfo.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = getInfo.tiff; path = toolbarIcons/getInfo.tiff; sourceTree = ""; }; - 8C0A063C0F748B9900D32B56 /* defaultSyntaxStyle_PHP.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = defaultSyntaxStyle_PHP.plist; path = SyntaxColorings/defaultSyntaxStyle_PHP.plist; sourceTree = ""; }; - 8C0F52600871861C00ABD124 /* openScriptMenu.applescript */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.applescript; name = openScriptMenu.applescript; path = internalScript/openScriptMenu.applescript; sourceTree = ""; }; - 8C0FE15908D7FDAA00B2B71B /* DefaultTextKeyBindings.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = DefaultTextKeyBindings.plist; path = KeyBindings/DefaultTextKeyBindings.plist; sourceTree = ""; }; - 8C1305AD0DC4B71D00975AC6 /* RegexKitLite.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RegexKitLite.h; sourceTree = ""; }; - 8C1305AE0DC4B71D00975AC6 /* RegexKitLite.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RegexKitLite.m; sourceTree = ""; }; - 8C1305B00DC4B83000975AC6 /* RKLMatchEnumerator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RKLMatchEnumerator.h; sourceTree = ""; }; - 8C1305B10DC4B83000975AC6 /* RKLMatchEnumerator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RKLMatchEnumerator.m; sourceTree = ""; }; - 8C13A5640A038ABC001EA22F /* defaultSyntaxStyle_eRuby.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = defaultSyntaxStyle_eRuby.plist; path = SyntaxColorings/defaultSyntaxStyle_eRuby.plist; sourceTree = ""; }; - 8C13A5660A038B74001EA22F /* defaultSyntaxStyle_Java.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = defaultSyntaxStyle_Java.plist; path = SyntaxColorings/defaultSyntaxStyle_Java.plist; sourceTree = ""; }; - 8C18347608D5B29600E8AEE2 /* clearButtonImg.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = clearButtonImg.tiff; path = images/clearButtonImg.tiff; sourceTree = ""; }; - 8C18347708D5B29600E8AEE2 /* editButtonImg.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = editButtonImg.tiff; path = images/editButtonImg.tiff; sourceTree = ""; }; - 8C1FC69B08BDCA6100E4A6EA /* popUpButtonBG_center.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = popUpButtonBG_center.tiff; path = images/popUpButtonBG_center.tiff; sourceTree = ""; }; - 8C1FC69C08BDCA6100E4A6EA /* popUpButtonBG_left.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = popUpButtonBG_left.tiff; path = images/popUpButtonBG_left.tiff; sourceTree = ""; }; - 8C2790FB07D18A6700103A53 /* CotEditor.scriptTerminology */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.scriptTerminology; path = CotEditor.scriptTerminology; sourceTree = ""; }; - 8C2790FF07D18AC300103A53 /* CotEditor.scriptSuite */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.scriptSuite; path = CotEditor.scriptSuite; sourceTree = ""; }; - 8C28CD2D081101A300733DA7 /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/ScriptManager.nib; sourceTree = ""; }; - 8C28CD7708110E4A00733DA7 /* cleanButtonIcon.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = cleanButtonIcon.tiff; path = icons/cleanButtonIcon.tiff; sourceTree = ""; }; - 8C3289EF07A21422001CA481 /* OgreKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = OgreKit.framework; sourceTree = ""; }; - 8C3763A70887CBDB0085C207 /* swapArrow.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = swapArrow.tiff; path = images/swapArrow.tiff; sourceTree = ""; }; - 8C3840910D16B75C00F76A4C /* UKXattrMetadataStore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = UKXattrMetadataStore.h; path = ImportSources/UKXattrMetadataStore.h; sourceTree = ""; }; - 8C3840920D16B75C00F76A4C /* UKXattrMetadataStore.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = UKXattrMetadataStore.m; path = ImportSources/UKXattrMetadataStore.m; sourceTree = ""; }; - 8C3A7DD80867EA9A00ECE052 /* startup.applescript */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.applescript; name = startup.applescript; path = internalScript/startup.applescript; sourceTree = ""; }; - 8C3AB31A08C16B3900F2B81F /* prevButtonImg.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = prevButtonImg.tiff; path = images/prevButtonImg.tiff; sourceTree = ""; }; - 8C3AB34508C1715800F2B81F /* nextButtonImg.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = nextButtonImg.tiff; path = images/nextButtonImg.tiff; sourceTree = ""; }; - 8C3BEA2508BDBCA800BC2067 /* CEOutlineMenuButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CEOutlineMenuButton.h; sourceTree = ""; }; - 8C3BEA2608BDBCA800BC2067 /* CEOutlineMenuButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CEOutlineMenuButton.m; sourceTree = ""; }; - 8C3E2D480808E203009894D1 /* LineNumber_Hide.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = LineNumber_Hide.tiff; path = toolbarIcons/LineNumber_Hide.tiff; sourceTree = ""; }; - 8C3E2D490808E203009894D1 /* LineNumber_Show.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = LineNumber_Show.tiff; path = toolbarIcons/LineNumber_Show.tiff; sourceTree = ""; }; - 8C3E2D4A0808E203009894D1 /* PageSetup.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = PageSetup.tiff; path = toolbarIcons/PageSetup.tiff; sourceTree = ""; }; - 8C3E2D4B0808E203009894D1 /* Preferences.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = Preferences.tiff; path = toolbarIcons/Preferences.tiff; sourceTree = ""; }; - 8C3E2D4C0808E203009894D1 /* Save.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = Save.tiff; path = toolbarIcons/Save.tiff; sourceTree = ""; }; - 8C3E2D4D0808E203009894D1 /* SaveAs.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = SaveAs.tiff; path = toolbarIcons/SaveAs.tiff; sourceTree = ""; }; - 8C3E2D4E0808E203009894D1 /* Shift_Left.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = Shift_Left.tiff; path = toolbarIcons/Shift_Left.tiff; sourceTree = ""; }; - 8C3E2D4F0808E203009894D1 /* Shift_Right.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = Shift_Right.tiff; path = toolbarIcons/Shift_Right.tiff; sourceTree = ""; }; - 8C3E2D590808E210009894D1 /* StatusArea_Hide.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = StatusArea_Hide.tiff; path = toolbarIcons/StatusArea_Hide.tiff; sourceTree = ""; }; - 8C3E2D5A0808E210009894D1 /* StatusArea_Show.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = StatusArea_Show.tiff; path = toolbarIcons/StatusArea_Show.tiff; sourceTree = ""; }; - 8C3E2D5B0808E210009894D1 /* TransparencyPanel.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = TransparencyPanel.tiff; path = toolbarIcons/TransparencyPanel.tiff; sourceTree = ""; }; - 8C3E2D5C0808E210009894D1 /* WrapLines_Off.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = WrapLines_Off.tiff; path = toolbarIcons/WrapLines_Off.tiff; sourceTree = ""; }; - 8C3E2D5D0808E210009894D1 /* WrapLines_On.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = WrapLines_On.tiff; path = toolbarIcons/WrapLines_On.tiff; sourceTree = ""; }; - 8C4186BD088648CA0039FBFC /* CEHCCManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CEHCCManager.h; sourceTree = ""; }; - 8C4186BE088648CA0039FBFC /* CEHCCManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CEHCCManager.m; sourceTree = ""; }; - 8C4186CF08864B3E0039FBFC /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/HCCManager.nib; sourceTree = ""; }; - 8C41871E088655E00039FBFC /* CEHexColorTransformer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CEHexColorTransformer.h; sourceTree = ""; }; - 8C41871F088655E00039FBFC /* CEHexColorTransformer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CEHexColorTransformer.m; sourceTree = ""; }; - 8C49092A07F43DCA0072AAE9 /* NSEventAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSEventAdditions.h; sourceTree = ""; }; - 8C49092B07F43DCA0072AAE9 /* NSEventAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSEventAdditions.m; sourceTree = ""; }; - 8C49094507F441510072AAE9 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = ""; }; - 8C4BC92D0895BD3C00F5263E /* EditHexAsBG.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = EditHexAsBG.tiff; path = toolbarIcons/EditHexAsBG.tiff; sourceTree = ""; }; - 8C4BC92E0895BD3C00F5263E /* EditHexAsFore.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = EditHexAsFore.tiff; path = toolbarIcons/EditHexAsFore.tiff; sourceTree = ""; }; - 8C5208090880BAAF005734F2 /* RecolorAll.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = RecolorAll.tiff; path = toolbarIcons/RecolorAll.tiff; sourceTree = ""; }; - 8C5684C90C48A36200346FB0 /* defaultSyntaxStyle_Python.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = defaultSyntaxStyle_Python.plist; path = SyntaxColorings/defaultSyntaxStyle_Python.plist; sourceTree = ""; }; - 8C5853330903C1ED0085BC4F /* CETabItemView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CETabItemView.h; sourceTree = ""; }; - 8C5853340903C1ED0085BC4F /* CETabItemView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CETabItemView.m; sourceTree = ""; }; - 8C65C0E507927D0F0028D94A /* CELayoutManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CELayoutManager.h; sourceTree = ""; }; - 8C65C0E607927D0F0028D94A /* CELayoutManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = CELayoutManager.m; sourceTree = ""; wrapsLines = 1; }; - 8C7400A308C6D93900683672 /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/KeyBindingManager.nib; sourceTree = ""; }; - 8C7400A608C6D96D00683672 /* CEKeyBindingManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CEKeyBindingManager.h; sourceTree = ""; }; - 8C7400A708C6D96D00683672 /* CEKeyBindingManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CEKeyBindingManager.m; sourceTree = ""; }; - 8C74017608C7364400683672 /* defaultSyntaxStyle_LaTeX.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = defaultSyntaxStyle_LaTeX.plist; path = SyntaxColorings/defaultSyntaxStyle_LaTeX.plist; sourceTree = ""; }; - 8C78824608ED5A03003EFE02 /* defaultSyntaxStyle_Ruby.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = defaultSyntaxStyle_Ruby.plist; path = SyntaxColorings/defaultSyntaxStyle_Ruby.plist; sourceTree = ""; }; - 8C7D7DB20BE71A3000C2C7E3 /* defaultSyntaxStyle_Haskell.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = defaultSyntaxStyle_Haskell.plist; path = SyntaxColorings/defaultSyntaxStyle_Haskell.plist; sourceTree = ""; }; - 8C7F74EB091C738C005C7598 /* ODBEditorSuite.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ODBEditorSuite.h; path = ImportSources/ODBEditorSuite.h; sourceTree = ""; }; - 8C7F74ED091C74B7005C7598 /* UKKQueue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = UKKQueue.h; path = ImportSources/UKKQueue.h; sourceTree = ""; }; - 8C7F74EE091C74B7005C7598 /* UKKQueue.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = UKKQueue.m; path = ImportSources/UKKQueue.m; sourceTree = ""; }; - 8C7F74FB091C7575005C7598 /* UKFileWatcher.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = UKFileWatcher.h; path = ImportSources/UKFileWatcher.h; sourceTree = ""; }; - 8C7F7501091C7596005C7598 /* UKMainThreadProxy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = UKMainThreadProxy.h; path = ImportSources/UKMainThreadProxy.h; sourceTree = ""; }; - 8C7F7502091C7596005C7598 /* UKMainThreadProxy.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = UKMainThreadProxy.m; path = ImportSources/UKMainThreadProxy.m; sourceTree = ""; }; - 8C83A48009485F27004E48A8 /* CEATSTypesetter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = CEATSTypesetter.h; sourceTree = ""; }; - 8C83A48109485F27004E48A8 /* CEATSTypesetter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = CEATSTypesetter.m; sourceTree = ""; }; - 8C8971330902620D0013FA27 /* CEPreferencesTabController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CEPreferencesTabController.h; sourceTree = ""; }; - 8C8971340902620D0013FA27 /* CEPreferencesTabController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CEPreferencesTabController.m; sourceTree = ""; }; - 8C8977240DCD8AD000DC32FF /* libicucore.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; name = libicucore.dylib; path = /Developer/SDKs/MacOSX10.4u.sdk/usr/lib/libicucore.dylib; sourceTree = ""; }; - 8C8CCCAE09D6803400A008E5 /* CESplitView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = CESplitView.h; sourceTree = ""; }; - 8C8CCCAF09D6803400A008E5 /* CESplitView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = CESplitView.m; sourceTree = ""; }; - 8C982DDD07FAE57700AA36F0 /* addButtonImg.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = addButtonImg.tiff; path = images/addButtonImg.tiff; sourceTree = ""; }; - 8C982DDE07FAE57700AA36F0 /* removeButtonImg.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = removeButtonImg.tiff; path = images/removeButtonImg.tiff; sourceTree = ""; }; - 8C98366608C0211D00746F92 /* IncompatibleChar.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = IncompatibleChar.tiff; path = toolbarIcons/IncompatibleChar.tiff; sourceTree = ""; }; - 8C9997C00873DB73003F4294 /* defaultSyntaxStyle_Perl.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = defaultSyntaxStyle_Perl.plist; path = SyntaxColorings/defaultSyntaxStyle_Perl.plist; sourceTree = ""; }; - 8C9997DC0873EDF6003F4294 /* defaultSyntaxStyle_Shell Script.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = "defaultSyntaxStyle_Shell Script.plist"; path = "SyntaxColorings/defaultSyntaxStyle_Shell Script.plist"; sourceTree = ""; }; - 8C99DD4F08BD561B001F618C /* NaviBar_Hide.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = NaviBar_Hide.tiff; path = toolbarIcons/NaviBar_Hide.tiff; sourceTree = ""; }; - 8C99DD5008BD561B001F618C /* NaviBar_Show.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = NaviBar_Show.tiff; path = toolbarIcons/NaviBar_Show.tiff; sourceTree = ""; }; - 8C99DDF808BD8940001F618C /* CEOutlineMenuButtonCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CEOutlineMenuButtonCell.h; sourceTree = ""; }; - 8C99DDF908BD8940001F618C /* CEOutlineMenuButtonCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CEOutlineMenuButtonCell.m; sourceTree = ""; }; - 8CA71BCC07D2A79100C146B0 /* biggerFont.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = biggerFont.tiff; path = toolbarIcons/biggerFont.tiff; sourceTree = ""; }; - 8CA71BCD07D2A79100C146B0 /* smallerFont.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = smallerFont.tiff; path = toolbarIcons/smallerFont.tiff; sourceTree = ""; }; - 8CB0122B07CA0EFA00221EDC /* CEToolbarController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CEToolbarController.h; sourceTree = ""; }; - 8CB0122C07CA0EFA00221EDC /* CEToolbarController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CEToolbarController.m; sourceTree = ""; }; - 8CB056B607E3D07A0027D866 /* scriptMenuIcon.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = scriptMenuIcon.tiff; path = icons/scriptMenuIcon.tiff; sourceTree = ""; }; - 8CB10E2907C4D36200E73342 /* transparencyGuide.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = transparencyGuide.tiff; path = images/transparencyGuide.tiff; sourceTree = ""; }; - 8CB3AF68087F9335004BFDDD /* defaultSyntaxStyle_JavaScript.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = defaultSyntaxStyle_JavaScript.plist; path = SyntaxColorings/defaultSyntaxStyle_JavaScript.plist; sourceTree = ""; }; - 8CBCA8A90941D67400B258D8 /* pageGuide.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = pageGuide.tiff; path = images/pageGuide.tiff; sourceTree = ""; }; - 8CBFD5F20DC42B1200EC093D /* CEPrivateMutableArray.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CEPrivateMutableArray.h; sourceTree = ""; }; - 8CBFD5F30DC42B1200EC093D /* CEPrivateMutableArray.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CEPrivateMutableArray.m; sourceTree = ""; }; - 8CC1925407E2D84500B54AE4 /* CEDocumentAppleScript.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CEDocumentAppleScript.h; sourceTree = ""; }; - 8CC1925507E2D84500B54AE4 /* CEDocumentAppleScript.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CEDocumentAppleScript.m; sourceTree = ""; }; - 8CC1961A07E2E54E00B54AE4 /* CEScriptManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CEScriptManager.h; sourceTree = ""; }; - 8CC1961B07E2E54E00B54AE4 /* CEScriptManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CEScriptManager.m; sourceTree = ""; }; - 8CC5044208EE829500A525A6 /* CEPrintView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CEPrintView.h; sourceTree = ""; }; - 8CC5044308EE829500A525A6 /* CEPrintView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CEPrintView.m; sourceTree = ""; }; - 8CC6EBB008CED0F700508369 /* DefaultMenuKeyBindings.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = DefaultMenuKeyBindings.plist; path = KeyBindings/DefaultMenuKeyBindings.plist; sourceTree = ""; }; - 8CC98A8708BD9A02008BEC7B /* popUpButtonArrow.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = popUpButtonArrow.tiff; path = images/popUpButtonArrow.tiff; sourceTree = ""; }; - 8CCB26D908E6D042007137D7 /* centerButtonImg.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = centerButtonImg.tiff; path = images/centerButtonImg.tiff; sourceTree = ""; }; - 8CCB26DB08E6D048007137D7 /* leftButtonImg.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = leftButtonImg.tiff; path = images/leftButtonImg.tiff; sourceTree = ""; }; - 8CCB26DD08E6D055007137D7 /* rightButtonImg.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = rightButtonImg.tiff; path = images/rightButtonImg.tiff; sourceTree = ""; }; - 8CCB5C35083F1F3C0022BA2A /* Credits.rtf */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = Credits.rtf; path = credits/Credits.rtf; sourceTree = ""; }; - 8CD5D80607BD044A00BAA31F /* docIcon.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; name = docIcon.icns; path = icons/docIcon.icns; sourceTree = ""; }; - 8CD5D80907BD046900BAA31F /* appIcon.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; name = appIcon.icns; path = icons/appIcon.icns; sourceTree = ""; }; - 8CD7A93909CBDDDC00739513 /* CESubSplitView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CESubSplitView.h; sourceTree = ""; }; - 8CD7A93A09CBDDDC00739513 /* CESubSplitView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CESubSplitView.m; sourceTree = ""; }; - 8CE4859608CD617B004817E1 /* CEApplication.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CEApplication.h; sourceTree = ""; }; - 8CE4859708CD617B004817E1 /* CEApplication.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = CEApplication.m; sourceTree = ""; }; - 8CE570B408A6E047004A8924 /* defaultSyntaxStyle_C, C++, Objective-C.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = "defaultSyntaxStyle_C, C++, Objective-C.plist"; path = "SyntaxColorings/defaultSyntaxStyle_C, C++, Objective-C.plist"; sourceTree = ""; }; - 8CE5D6C70AC80A31005F5FDB /* Pref_Print.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = Pref_Print.tiff; path = toolbarIcons/Pref_Print.tiff; sourceTree = ""; }; - 8CE68100090A1C6900D50390 /* Pref_View.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = Pref_View.tiff; path = toolbarIcons/Pref_View.tiff; sourceTree = ""; }; - 8CE68101090A1C6900D50390 /* Pref_FileDrop.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = Pref_FileDrop.tiff; path = toolbarIcons/Pref_FileDrop.tiff; sourceTree = ""; }; - 8CE68102090A1C6900D50390 /* Pref_Format.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = Pref_Format.tiff; path = toolbarIcons/Pref_Format.tiff; sourceTree = ""; }; - 8CE68103090A1C6900D50390 /* Pref_General.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = Pref_General.tiff; path = toolbarIcons/Pref_General.tiff; sourceTree = ""; }; - 8CE68104090A1C6900D50390 /* Pref_KeyBinding.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = Pref_KeyBinding.tiff; path = toolbarIcons/Pref_KeyBinding.tiff; sourceTree = ""; }; - 8CE68105090A1C6900D50390 /* Pref_Syntax.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = Pref_Syntax.tiff; path = toolbarIcons/Pref_Syntax.tiff; sourceTree = ""; }; - 8CE68106090A1C6900D50390 /* Pref_Window.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = Pref_Window.tiff; path = toolbarIcons/Pref_Window.tiff; sourceTree = ""; }; - 8CEA5AC3086F9255002CDFAB /* DEBUG_macro.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DEBUG_macro.h; sourceTree = ""; }; - 8CEF66C00995E47F00C65A84 /* InvisibleChar_Hide.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = InvisibleChar_Hide.tiff; path = toolbarIcons/InvisibleChar_Hide.tiff; sourceTree = ""; }; - 8CEF66C10995E47F00C65A84 /* InvisibleChar_Show.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = InvisibleChar_Show.tiff; path = toolbarIcons/InvisibleChar_Show.tiff; sourceTree = ""; }; - 8CEF66C40995E4A700C65A84 /* PageGuide_Hide.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = PageGuide_Hide.tiff; path = toolbarIcons/PageGuide_Hide.tiff; sourceTree = ""; }; - 8CEF66C50995E4A700C65A84 /* PageGuide_Show.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = PageGuide_Show.tiff; path = toolbarIcons/PageGuide_Show.tiff; sourceTree = ""; }; - 8CF02E1308B9B9F8004044EB /* CENavigationBarView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CENavigationBarView.h; sourceTree = ""; }; - 8CF02E1408B9B9F8004044EB /* CENavigationBarView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CENavigationBarView.m; sourceTree = ""; }; - 8CF792FF09F518CB001BDFF7 /* openSplitButtonImg.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = openSplitButtonImg.tiff; path = images/openSplitButtonImg.tiff; sourceTree = ""; }; - 8CF7930109F518D7001BDFF7 /* closeSplitButtonImg.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = closeSplitButtonImg.tiff; path = images/closeSplitButtonImg.tiff; sourceTree = ""; }; - 8CFB565C0885087000AF0816 /* lockOnImg.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = lockOnImg.tiff; path = images/lockOnImg.tiff; sourceTree = ""; }; - 8D15AC360486D014006FF6A4 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; - 8D15AC370486D014006FF6A4 /* CotEditor.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = CotEditor.app; sourceTree = BUILT_PRODUCTS_DIR; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 8D15AC330486D014006FF6A4 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 8C89772B0DCD8B4000DC32FF /* libicucore.dylib in Frameworks */, - 8D15AC340486D014006FF6A4 /* Cocoa.framework in Frameworks */, - 8C3289F007A21422001CA481 /* OgreKit.framework in Frameworks */, - 8C49094607F441510072AAE9 /* Carbon.framework in Frameworks */, - 6CB074A21373A03B001D0243 /* Sparkle.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 1058C7A6FEA54F5311CA2CBB /* Linked Frameworks */ = { - isa = PBXGroup; - children = ( - 1058C7A7FEA54F5311CA2CBB /* Cocoa.framework */, - 6CB074A11373A03B001D0243 /* Sparkle.framework */, - ); - name = "Linked Frameworks"; - sourceTree = ""; - }; - 1058C7A8FEA54F5311CA2CBB /* Other Frameworks */ = { - isa = PBXGroup; - children = ( - 2A37F4C5FDCFA73011CA2CEA /* Foundation.framework */, - 2A37F4C4FDCFA73011CA2CEA /* AppKit.framework */, - ); - name = "Other Frameworks"; - sourceTree = ""; - }; - 19C28FB0FE9D524F11CA2CBB /* Products */ = { - isa = PBXGroup; - children = ( - 8D15AC370486D014006FF6A4 /* CotEditor.app */, - ); - name = Products; - sourceTree = ""; - }; - 2559AD13079F9A4C0064C718 /* SyntaxColorings */ = { - isa = PBXGroup; - children = ( - 8CE570B408A6E047004A8924 /* defaultSyntaxStyle_C, C++, Objective-C.plist */, - 2589EF5207F247AD003BF861 /* defaultSyntaxStyle_CSS.plist */, - 8C13A5640A038ABC001EA22F /* defaultSyntaxStyle_eRuby.plist */, - 8C7D7DB20BE71A3000C2C7E3 /* defaultSyntaxStyle_Haskell.plist */, - 258998F407CEED3400098762 /* defaultSyntaxStyle_HTML.plist */, - 8C13A5660A038B74001EA22F /* defaultSyntaxStyle_Java.plist */, - 8CB3AF68087F9335004BFDDD /* defaultSyntaxStyle_JavaScript.plist */, - 8C74017608C7364400683672 /* defaultSyntaxStyle_LaTeX.plist */, - 8C9997C00873DB73003F4294 /* defaultSyntaxStyle_Perl.plist */, - 8C0A063C0F748B9900D32B56 /* defaultSyntaxStyle_PHP.plist */, - 25A1DE2E07A0A06500C49AAA /* defaultSyntaxStyle_Plain Text.plist */, - 8C5684C90C48A36200346FB0 /* defaultSyntaxStyle_Python.plist */, - 8C78824608ED5A03003EFE02 /* defaultSyntaxStyle_Ruby.plist */, - 8C9997DC0873EDF6003F4294 /* defaultSyntaxStyle_Shell Script.plist */, - ); - name = SyntaxColorings; - sourceTree = ""; - }; - 25972A7107B87293005EB175 /* images */ = { - isa = PBXGroup; - children = ( - 8C982DDD07FAE57700AA36F0 /* addButtonImg.tiff */, - 8CF792FF09F518CB001BDFF7 /* openSplitButtonImg.tiff */, - 8CCB26D908E6D042007137D7 /* centerButtonImg.tiff */, - 8C18347608D5B29600E8AEE2 /* clearButtonImg.tiff */, - 8CF7930109F518D7001BDFF7 /* closeSplitButtonImg.tiff */, - 8C18347708D5B29600E8AEE2 /* editButtonImg.tiff */, - 8CCB26DB08E6D048007137D7 /* leftButtonImg.tiff */, - 8CFB565C0885087000AF0816 /* lockOnImg.tiff */, - 8C3AB34508C1715800F2B81F /* nextButtonImg.tiff */, - 8CBCA8A90941D67400B258D8 /* pageGuide.tiff */, - 8CC98A8708BD9A02008BEC7B /* popUpButtonArrow.tiff */, - 8C1FC69B08BDCA6100E4A6EA /* popUpButtonBG_center.tiff */, - 8C1FC69C08BDCA6100E4A6EA /* popUpButtonBG_left.tiff */, - 8C3AB31A08C16B3900F2B81F /* prevButtonImg.tiff */, - 8C982DDE07FAE57700AA36F0 /* removeButtonImg.tiff */, - 8CCB26DD08E6D055007137D7 /* rightButtonImg.tiff */, - 8C3763A70887CBDB0085C207 /* swapArrow.tiff */, - 8CB10E2907C4D36200E73342 /* transparencyGuide.tiff */, - ); - name = images; - sourceTree = ""; - }; - 259B181207E530DA00C5FD26 /* InternalScript */ = { - isa = PBXGroup; - children = ( - 2585914A080F503A0038F387 /* _aboutScriptFolder.rtf */, - 8C3A7DD80867EA9A00ECE052 /* startup.applescript */, - 2585914B080F503A0038F387 /* openDictionary.applescript */, - 8C0F52600871861C00ABD124 /* openScriptMenu.applescript */, - ); - name = InternalScript; - sourceTree = ""; - }; - 25D4C01C07B87595007CB113 /* icons */ = { - isa = PBXGroup; - children = ( - 8CD5D80907BD046900BAA31F /* appIcon.icns */, - 8CD5D80607BD044A00BAA31F /* docIcon.icns */, - 8CB056B607E3D07A0027D866 /* scriptMenuIcon.tiff */, - 8C28CD7708110E4A00733DA7 /* cleanButtonIcon.tiff */, - ); - name = icons; - sourceTree = ""; - }; - 2A37F4AAFDCFA73011CA2CEA /* CotEditor */ = { - isa = PBXGroup; - children = ( - 2A37F4ABFDCFA73011CA2CEA /* Classes */, - 8C7F74E8091C7344005C7598 /* Import Sources */, - 2A37F4AFFDCFA73011CA2CEA /* Other Sources */, - 2A37F4B8FDCFA73011CA2CEA /* Resources */, - 2A37F4C3FDCFA73011CA2CEA /* Frameworks */, - 19C28FB0FE9D524F11CA2CBB /* Products */, - ); - name = CotEditor; - sourceTree = ""; - }; - 2A37F4ABFDCFA73011CA2CEA /* Classes */ = { - isa = PBXGroup; - children = ( - 8CE4859608CD617B004817E1 /* CEApplication.h */, - 8CE4859708CD617B004817E1 /* CEApplication.m */, - 25859DB2076D65310020F779 /* CEAppController.h */, - 25859DB1076D65310020F779 /* CEAppController.m */, - 258700E3077BAD2200E541BB /* CESyntaxManager.h */, - 258700E4077BAD2200E541BB /* CESyntaxManager.m */, - 8C4186BD088648CA0039FBFC /* CEHCCManager.h */, - 8C4186BE088648CA0039FBFC /* CEHCCManager.m */, - 8C7400A608C6D96D00683672 /* CEKeyBindingManager.h */, - 8C7400A708C6D96D00683672 /* CEKeyBindingManager.m */, - 259BFDCB076EBF7E00A5A6D0 /* CEDocumentController.h */, - 259BFDCC076EBF7E00A5A6D0 /* CEDocumentController.m */, - 258D708707D456DF0062A3E5 /* CETextSelection.h */, - 258D708807D456DF0062A3E5 /* CETextSelection.m */, - 8CC1961A07E2E54E00B54AE4 /* CEScriptManager.h */, - 8CC1961B07E2E54E00B54AE4 /* CEScriptManager.m */, - 8C49092A07F43DCA0072AAE9 /* NSEventAdditions.h */, - 8C49092B07F43DCA0072AAE9 /* NSEventAdditions.m */, - 2A37F4AEFDCFA73011CA2CEA /* CEDocument.h */, - 2A37F4ACFDCFA73011CA2CEA /* CEDocument.m */, - 8CC1925407E2D84500B54AE4 /* CEDocumentAppleScript.h */, - 8CC1925507E2D84500B54AE4 /* CEDocumentAppleScript.m */, - 8C65C0E507927D0F0028D94A /* CELayoutManager.h */, - 8C65C0E607927D0F0028D94A /* CELayoutManager.m */, - 8C83A48009485F27004E48A8 /* CEATSTypesetter.h */, - 8C83A48109485F27004E48A8 /* CEATSTypesetter.m */, - 25859DEB076D75BC0020F779 /* CEWindowController.h */, - 25859DEC076D75BC0020F779 /* CEWindowController.m */, - 8CB0122B07CA0EFA00221EDC /* CEToolbarController.h */, - 8CB0122C07CA0EFA00221EDC /* CEToolbarController.m */, - 2588E9BD07C47ACC0060021D /* CEEditorView.h */, - 2588E9BE07C47ACC0060021D /* CEEditorView.m */, - 8C8CCCAE09D6803400A008E5 /* CESplitView.h */, - 8C8CCCAF09D6803400A008E5 /* CESplitView.m */, - 8CD7A93909CBDDDC00739513 /* CESubSplitView.h */, - 8CD7A93A09CBDDDC00739513 /* CESubSplitView.m */, - 25B2C24A07FA6BC400F4EFC7 /* CETextViewCore.h */, - 25B2C24B07FA6BC400F4EFC7 /* CETextViewCore.m */, - 25B2C23407FA667400F4EFC7 /* CELineNumView.h */, - 25B2C23507FA667400F4EFC7 /* CELineNumView.m */, - 25B2C24107FA68D100F4EFC7 /* CEStatusBarView.h */, - 25B2C24207FA68D100F4EFC7 /* CEStatusBarView.m */, - 8CF02E1308B9B9F8004044EB /* CENavigationBarView.h */, - 8CF02E1408B9B9F8004044EB /* CENavigationBarView.m */, - 258225FE07794C2A00A0F8D3 /* CESyntax.h */, - 258225FF07794C2A00A0F8D3 /* CESyntax.m */, - 8CC5044208EE829500A525A6 /* CEPrintView.h */, - 8CC5044308EE829500A525A6 /* CEPrintView.m */, - 258A14CE07F3C6BC008E5FA1 /* CEFlippedView.h */, - 258A14CF07F3C6BC008E5FA1 /* CEFlippedView.m */, - 25859EBE076D92D60020F779 /* CEPreferences.h */, - 25859EBF076D92D60020F779 /* CEPreferences.m */, - 8C8971330902620D0013FA27 /* CEPreferencesTabController.h */, - 8C8971340902620D0013FA27 /* CEPreferencesTabController.m */, - 8C5853330903C1ED0085BC4F /* CETabItemView.h */, - 8C5853340903C1ED0085BC4F /* CETabItemView.m */, - 25AC0919077190EB00B0C91C /* CEPrefEncodingDataSource.h */, - 25AC091A077190EB00B0C91C /* CEPrefEncodingDataSource.m */, - 8C41871E088655E00039FBFC /* CEHexColorTransformer.h */, - 8C41871F088655E00039FBFC /* CEHexColorTransformer.m */, - 8C3BEA2508BDBCA800BC2067 /* CEOutlineMenuButton.h */, - 8C3BEA2608BDBCA800BC2067 /* CEOutlineMenuButton.m */, - 8C99DDF808BD8940001F618C /* CEOutlineMenuButtonCell.h */, - 8C99DDF908BD8940001F618C /* CEOutlineMenuButtonCell.m */, - 25859E90076D88ED0020F779 /* constants.h */, - 8CEA5AC3086F9255002CDFAB /* DEBUG_macro.h */, - 8CBFD5F20DC42B1200EC093D /* CEPrivateMutableArray.h */, - 8CBFD5F30DC42B1200EC093D /* CEPrivateMutableArray.m */, - ); - name = Classes; - sourceTree = ""; - }; - 2A37F4AFFDCFA73011CA2CEA /* Other Sources */ = { - isa = PBXGroup; - children = ( - 32DBCF750370BD2300C91783 /* CotEditor_Prefix.pch */, - 2A37F4B0FDCFA73011CA2CEA /* main.m */, - ); - name = "Other Sources"; - sourceTree = ""; - }; - 2A37F4B8FDCFA73011CA2CEA /* Resources */ = { - isa = PBXGroup; - children = ( - 8CCB5C35083F1F3C0022BA2A /* Credits.rtf */, - 2A37F4B6FDCFA73011CA2CEA /* MainMenu.nib */, - 2A37F4B4FDCFA73011CA2CEA /* DocWindow.nib */, - 8C7400A208C6D93900683672 /* KeyBindingManager.nib */, - 25859EA5076D8EE80020F779 /* Preferences.nib */, - 258EF2F8077FEDD000011E52 /* SyntaxManager.nib */, - 2588E9CC07C4851C0060021D /* Indicator.nib */, - 8C28CD2C081101A300733DA7 /* ScriptManager.nib */, - 8C4186CE08864B3E0039FBFC /* HCCManager.nib */, - 25D4C01C07B87595007CB113 /* icons */, - 8CB0122007CA0CCD00221EDC /* toolbarIcons */, - 25972A7107B87293005EB175 /* images */, - 6C6DAE3D13833C0E007F2326 /* dsa_pub.pem */, - 8D15AC360486D014006FF6A4 /* Info.plist */, - 259C2316077678DE00BA61C5 /* Localizable.strings */, - 089C165FFE840EACC02AAC07 /* InfoPlist.strings */, - 8C2790FF07D18AC300103A53 /* CotEditor.scriptSuite */, - 8C2790FB07D18A6700103A53 /* CotEditor.scriptTerminology */, - 8C74014C08C7041A00683672 /* KeyBindings */, - 2559AD13079F9A4C0064C718 /* SyntaxColorings */, - 259B181207E530DA00C5FD26 /* InternalScript */, - 6CA3B36012E3B59B0019AB2E /* Script */, - 6C9BF21C12F62D3A0097BFE7 /* CotEditorHelp */, - 6C42169512DDB9180037690E /* Docs */, - 6C4216B512DDB9EB0037690E /* Docs_for_src */, - ); - name = Resources; - sourceTree = ""; - }; - 2A37F4C3FDCFA73011CA2CEA /* Frameworks */ = { - isa = PBXGroup; - children = ( - 8C8977240DCD8AD000DC32FF /* libicucore.dylib */, - 8C3289EF07A21422001CA481 /* OgreKit.framework */, - 8C49094507F441510072AAE9 /* Carbon.framework */, - 1058C7A6FEA54F5311CA2CBB /* Linked Frameworks */, - 1058C7A8FEA54F5311CA2CBB /* Other Frameworks */, - ); - name = Frameworks; - sourceTree = ""; - }; - 8C74014C08C7041A00683672 /* KeyBindings */ = { - isa = PBXGroup; - children = ( - 8CC6EBB008CED0F700508369 /* DefaultMenuKeyBindings.plist */, - 8C0FE15908D7FDAA00B2B71B /* DefaultTextKeyBindings.plist */, - ); - name = KeyBindings; - sourceTree = ""; - }; - 8C7F74E8091C7344005C7598 /* Import Sources */ = { - isa = PBXGroup; - children = ( - 8C7F74EB091C738C005C7598 /* ODBEditorSuite.h */, - 8C1305AD0DC4B71D00975AC6 /* RegexKitLite.h */, - 8C1305AE0DC4B71D00975AC6 /* RegexKitLite.m */, - 8C1305B00DC4B83000975AC6 /* RKLMatchEnumerator.h */, - 8C1305B10DC4B83000975AC6 /* RKLMatchEnumerator.m */, - 8C7F74FB091C7575005C7598 /* UKFileWatcher.h */, - 8C7F74ED091C74B7005C7598 /* UKKQueue.h */, - 8C7F74EE091C74B7005C7598 /* UKKQueue.m */, - 8C7F7501091C7596005C7598 /* UKMainThreadProxy.h */, - 8C7F7502091C7596005C7598 /* UKMainThreadProxy.m */, - 8C3840910D16B75C00F76A4C /* UKXattrMetadataStore.h */, - 8C3840920D16B75C00F76A4C /* UKXattrMetadataStore.m */, - ); - name = "Import Sources"; - sourceTree = ""; - }; - 8CB0122007CA0CCD00221EDC /* toolbarIcons */ = { - isa = PBXGroup; - children = ( - 8C081B4A07D0A85A0060191A /* getInfo.tiff */, - 8C98366608C0211D00746F92 /* IncompatibleChar.tiff */, - 8CA71BCC07D2A79100C146B0 /* biggerFont.tiff */, - 8CA71BCD07D2A79100C146B0 /* smallerFont.tiff */, - 8C4BC92D0895BD3C00F5263E /* EditHexAsBG.tiff */, - 8C4BC92E0895BD3C00F5263E /* EditHexAsFore.tiff */, - 8CEF66C00995E47F00C65A84 /* InvisibleChar_Hide.tiff */, - 8CEF66C10995E47F00C65A84 /* InvisibleChar_Show.tiff */, - 8C3E2D480808E203009894D1 /* LineNumber_Hide.tiff */, - 8C3E2D490808E203009894D1 /* LineNumber_Show.tiff */, - 8C99DD4F08BD561B001F618C /* NaviBar_Hide.tiff */, - 8C99DD5008BD561B001F618C /* NaviBar_Show.tiff */, - 8CEF66C40995E4A700C65A84 /* PageGuide_Hide.tiff */, - 8CEF66C50995E4A700C65A84 /* PageGuide_Show.tiff */, - 8C3E2D4A0808E203009894D1 /* PageSetup.tiff */, - 8C3E2D4B0808E203009894D1 /* Preferences.tiff */, - 8C5208090880BAAF005734F2 /* RecolorAll.tiff */, - 8C3E2D4C0808E203009894D1 /* Save.tiff */, - 8C3E2D4D0808E203009894D1 /* SaveAs.tiff */, - 8C3E2D4E0808E203009894D1 /* Shift_Left.tiff */, - 8C3E2D4F0808E203009894D1 /* Shift_Right.tiff */, - 8C3E2D590808E210009894D1 /* StatusArea_Hide.tiff */, - 8C3E2D5A0808E210009894D1 /* StatusArea_Show.tiff */, - 8C3E2D5B0808E210009894D1 /* TransparencyPanel.tiff */, - 8C3E2D5C0808E210009894D1 /* WrapLines_Off.tiff */, - 8C3E2D5D0808E210009894D1 /* WrapLines_On.tiff */, - 8CE68101090A1C6900D50390 /* Pref_FileDrop.tiff */, - 8CE68102090A1C6900D50390 /* Pref_Format.tiff */, - 8CE68103090A1C6900D50390 /* Pref_General.tiff */, - 8CE68104090A1C6900D50390 /* Pref_KeyBinding.tiff */, - 8CE5D6C70AC80A31005F5FDB /* Pref_Print.tiff */, - 8CE68105090A1C6900D50390 /* Pref_Syntax.tiff */, - 8CE68100090A1C6900D50390 /* Pref_View.tiff */, - 8CE68106090A1C6900D50390 /* Pref_Window.tiff */, - ); - name = toolbarIcons; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 8D15AC270486D014006FF6A4 /* CotEditor */ = { - isa = PBXNativeTarget; - buildConfigurationList = 8C71D95308640EDF00C9C0BD /* Build configuration list for PBXNativeTarget "CotEditor" */; - buildPhases = ( - 8D15AC2B0486D014006FF6A4 /* Resources */, - 8D15AC300486D014006FF6A4 /* Sources */, - 8D15AC330486D014006FF6A4 /* Frameworks */, - 8C3996C0076ACBD100F6FF8D /* CopyFiles */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = CotEditor; - productInstallPath = "$(HOME)/Applications"; - productName = CotEditor; - productReference = 8D15AC370486D014006FF6A4 /* CotEditor.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 2A37F4A9FDCFA73011CA2CEA /* Project object */ = { - isa = PBXProject; - attributes = { - BuildIndependentTargetsInParallel = YES; - LastUpgradeCheck = 0420; - }; - buildConfigurationList = 8C71D95708640EDF00C9C0BD /* Build configuration list for PBXProject "CotEditor_Lion" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 1; - knownRegions = ( - English, - Japanese, - French, - German, - ); - mainGroup = 2A37F4AAFDCFA73011CA2CEA /* CotEditor */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 8D15AC270486D014006FF6A4 /* CotEditor */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 8D15AC2B0486D014006FF6A4 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 8D15AC2D0486D014006FF6A4 /* MainMenu.nib in Resources */, - 8D15AC2E0486D014006FF6A4 /* DocWindow.nib in Resources */, - 25859EA7076D8EE80020F779 /* Preferences.nib in Resources */, - 258EF2FA077FEDD000011E52 /* SyntaxManager.nib in Resources */, - 2588E9CE07C4851C0060021D /* Indicator.nib in Resources */, - 8C28CD2E081101A300733DA7 /* ScriptManager.nib in Resources */, - 8C4186D008864B3E0039FBFC /* HCCManager.nib in Resources */, - 8C7400A408C6D93900683672 /* KeyBindingManager.nib in Resources */, - 8D15AC2F0486D014006FF6A4 /* InfoPlist.strings in Resources */, - 259C2318077678DE00BA61C5 /* Localizable.strings in Resources */, - 25A1DE2F07A0A06500C49AAA /* defaultSyntaxStyle_Plain Text.plist in Resources */, - 8CD5D80707BD044A00BAA31F /* docIcon.icns in Resources */, - 8CD5D80A07BD046900BAA31F /* appIcon.icns in Resources */, - 8CB10E2A07C4D36200E73342 /* transparencyGuide.tiff in Resources */, - 258998F507CEED3400098762 /* defaultSyntaxStyle_HTML.plist in Resources */, - 8C081B4B07D0A85A0060191A /* getInfo.tiff in Resources */, - 8C2790FC07D18A6700103A53 /* CotEditor.scriptTerminology in Resources */, - 8C27910007D18AC300103A53 /* CotEditor.scriptSuite in Resources */, - 8CA71BCE07D2A79100C146B0 /* biggerFont.tiff in Resources */, - 8CA71BCF07D2A79100C146B0 /* smallerFont.tiff in Resources */, - 8CB056B707E3D07A0027D866 /* scriptMenuIcon.tiff in Resources */, - 2589EF5307F247AD003BF861 /* defaultSyntaxStyle_CSS.plist in Resources */, - 8C982DDF07FAE57700AA36F0 /* addButtonImg.tiff in Resources */, - 8C982DE007FAE57700AA36F0 /* removeButtonImg.tiff in Resources */, - 8C3E2D500808E203009894D1 /* LineNumber_Hide.tiff in Resources */, - 8C3E2D510808E203009894D1 /* LineNumber_Show.tiff in Resources */, - 8C3E2D520808E203009894D1 /* PageSetup.tiff in Resources */, - 8C3E2D530808E203009894D1 /* Preferences.tiff in Resources */, - 8C3E2D540808E203009894D1 /* Save.tiff in Resources */, - 8C3E2D550808E203009894D1 /* SaveAs.tiff in Resources */, - 8C3E2D560808E203009894D1 /* Shift_Left.tiff in Resources */, - 8C3E2D570808E203009894D1 /* Shift_Right.tiff in Resources */, - 8C3E2D5E0808E210009894D1 /* StatusArea_Hide.tiff in Resources */, - 8C3E2D5F0808E210009894D1 /* StatusArea_Show.tiff in Resources */, - 8C3E2D600808E210009894D1 /* TransparencyPanel.tiff in Resources */, - 8C3E2D610808E210009894D1 /* WrapLines_Off.tiff in Resources */, - 8C3E2D620808E210009894D1 /* WrapLines_On.tiff in Resources */, - 2585914C080F503A0038F387 /* _aboutScriptFolder.rtf in Resources */, - 8C3A7DEA0867EC9C00ECE052 /* startup.applescript in Resources */, - 2585914D080F503A0038F387 /* openDictionary.applescript in Resources */, - 8C0F52610871861C00ABD124 /* openScriptMenu.applescript in Resources */, - 8C28CD7808110E4A00733DA7 /* cleanButtonIcon.tiff in Resources */, - 8CCB5C36083F1F3C0022BA2A /* Credits.rtf in Resources */, - 8C9997C10873DB73003F4294 /* defaultSyntaxStyle_Perl.plist in Resources */, - 8C9997DD0873EDF6003F4294 /* defaultSyntaxStyle_Shell Script.plist in Resources */, - 8CB3AF69087F9335004BFDDD /* defaultSyntaxStyle_JavaScript.plist in Resources */, - 8C52080A0880BAAF005734F2 /* RecolorAll.tiff in Resources */, - 8CFB565D0885087000AF0816 /* lockOnImg.tiff in Resources */, - 8C3763A80887CBDB0085C207 /* swapArrow.tiff in Resources */, - 8C4BC92F0895BD3C00F5263E /* EditHexAsBG.tiff in Resources */, - 8C4BC9300895BD3C00F5263E /* EditHexAsFore.tiff in Resources */, - 8CE570B508A6E047004A8924 /* defaultSyntaxStyle_C, C++, Objective-C.plist in Resources */, - 8C99DD5108BD561B001F618C /* NaviBar_Hide.tiff in Resources */, - 8C99DD5208BD561B001F618C /* NaviBar_Show.tiff in Resources */, - 8CC98A8808BD9A02008BEC7B /* popUpButtonArrow.tiff in Resources */, - 8C1FC69D08BDCA6100E4A6EA /* popUpButtonBG_center.tiff in Resources */, - 8C1FC69E08BDCA6100E4A6EA /* popUpButtonBG_left.tiff in Resources */, - 8C98366708C0211D00746F92 /* IncompatibleChar.tiff in Resources */, - 8C3AB31B08C16B3900F2B81F /* prevButtonImg.tiff in Resources */, - 8C3AB34608C1715800F2B81F /* nextButtonImg.tiff in Resources */, - 8C74017708C7364400683672 /* defaultSyntaxStyle_LaTeX.plist in Resources */, - 8CC6EBB108CED0F700508369 /* DefaultMenuKeyBindings.plist in Resources */, - 8C18347808D5B29600E8AEE2 /* clearButtonImg.tiff in Resources */, - 8C18347908D5B29600E8AEE2 /* editButtonImg.tiff in Resources */, - 8C0FE15A08D7FDAA00B2B71B /* DefaultTextKeyBindings.plist in Resources */, - 8CCB26DA08E6D042007137D7 /* centerButtonImg.tiff in Resources */, - 8CCB26DC08E6D048007137D7 /* leftButtonImg.tiff in Resources */, - 8CCB26DE08E6D055007137D7 /* rightButtonImg.tiff in Resources */, - 8C78824708ED5A03003EFE02 /* defaultSyntaxStyle_Ruby.plist in Resources */, - 8CE68107090A1C6900D50390 /* Pref_View.tiff in Resources */, - 8CE68108090A1C6900D50390 /* Pref_FileDrop.tiff in Resources */, - 8CE68109090A1C6900D50390 /* Pref_Format.tiff in Resources */, - 8CE6810A090A1C6900D50390 /* Pref_General.tiff in Resources */, - 8CE6810B090A1C6900D50390 /* Pref_KeyBinding.tiff in Resources */, - 8CE6810C090A1C6900D50390 /* Pref_Syntax.tiff in Resources */, - 8CE6810D090A1C6900D50390 /* Pref_Window.tiff in Resources */, - 8CBCA8AA0941D67400B258D8 /* pageGuide.tiff in Resources */, - 8CEF66C20995E47F00C65A84 /* InvisibleChar_Hide.tiff in Resources */, - 8CEF66C30995E47F00C65A84 /* InvisibleChar_Show.tiff in Resources */, - 8CEF66C60995E4A700C65A84 /* PageGuide_Hide.tiff in Resources */, - 8CEF66C70995E4A700C65A84 /* PageGuide_Show.tiff in Resources */, - 8CF7930009F518CB001BDFF7 /* openSplitButtonImg.tiff in Resources */, - 8CF7930209F518D7001BDFF7 /* closeSplitButtonImg.tiff in Resources */, - 8C13A5650A038ABC001EA22F /* defaultSyntaxStyle_eRuby.plist in Resources */, - 8C13A5670A038B74001EA22F /* defaultSyntaxStyle_Java.plist in Resources */, - 8CE5D6C80AC80A31005F5FDB /* Pref_Print.tiff in Resources */, - 8C7D7DB30BE71A3000C2C7E3 /* defaultSyntaxStyle_Haskell.plist in Resources */, - 8C5684CA0C48A36200346FB0 /* defaultSyntaxStyle_Python.plist in Resources */, - 8C0A063D0F748B9900D32B56 /* defaultSyntaxStyle_PHP.plist in Resources */, - 6CA3B3E312E3B59B0019AB2E /* Script in Resources */, - 6C4216A612DDB9180037690E /* Docs in Resources */, - 6C4216BD12DDB9EB0037690E /* Docs_for_src in Resources */, - 6C9BF21D12F62D3A0097BFE7 /* CotEditorHelp in Resources */, - 6C6DAE3E13833C0E007F2326 /* dsa_pub.pem in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 8D15AC300486D014006FF6A4 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 8D15AC310486D014006FF6A4 /* CEDocument.m in Sources */, - 8D15AC320486D014006FF6A4 /* main.m in Sources */, - 25859DB3076D65310020F779 /* CEAppController.m in Sources */, - 25859DEE076D75BC0020F779 /* CEWindowController.m in Sources */, - 25859EC1076D92D60020F779 /* CEPreferences.m in Sources */, - 259BFDCE076EBF7E00A5A6D0 /* CEDocumentController.m in Sources */, - 25AC091C077190EB00B0C91C /* CEPrefEncodingDataSource.m in Sources */, - 2582260107794C2A00A0F8D3 /* CESyntax.m in Sources */, - 258700E6077BAD2200E541BB /* CESyntaxManager.m in Sources */, - 8C65C0E807927D0F0028D94A /* CELayoutManager.m in Sources */, - 2588E9C007C47ACC0060021D /* CEEditorView.m in Sources */, - 8CB0122E07CA0EFA00221EDC /* CEToolbarController.m in Sources */, - 258D708A07D456DF0062A3E5 /* CETextSelection.m in Sources */, - 8CC1925707E2D84500B54AE4 /* CEDocumentAppleScript.m in Sources */, - 8CC1961D07E2E54E00B54AE4 /* CEScriptManager.m in Sources */, - 258A14D107F3C6BC008E5FA1 /* CEFlippedView.m in Sources */, - 8C49092D07F43DCA0072AAE9 /* NSEventAdditions.m in Sources */, - 25B2C23707FA667400F4EFC7 /* CELineNumView.m in Sources */, - 25B2C24407FA68D100F4EFC7 /* CEStatusBarView.m in Sources */, - 25B2C24D07FA6BC400F4EFC7 /* CETextViewCore.m in Sources */, - 8C4186C0088648CA0039FBFC /* CEHCCManager.m in Sources */, - 8C418721088655E00039FBFC /* CEHexColorTransformer.m in Sources */, - 8CF02E1608B9B9F8004044EB /* CENavigationBarView.m in Sources */, - 8C99DDFB08BD8940001F618C /* CEOutlineMenuButtonCell.m in Sources */, - 8C3BEA2808BDBCA800BC2067 /* CEOutlineMenuButton.m in Sources */, - 8C7400A908C6D96D00683672 /* CEKeyBindingManager.m in Sources */, - 8CE4859908CD617B004817E1 /* CEApplication.m in Sources */, - 8CC5044508EE829500A525A6 /* CEPrintView.m in Sources */, - 8C8971360902620D0013FA27 /* CEPreferencesTabController.m in Sources */, - 8C5853360903C1ED0085BC4F /* CETabItemView.m in Sources */, - 8C7F74F0091C74B7005C7598 /* UKKQueue.m in Sources */, - 8C7F7504091C7596005C7598 /* UKMainThreadProxy.m in Sources */, - 8C83A48309485F27004E48A8 /* CEATSTypesetter.m in Sources */, - 8CD7A93C09CBDDDC00739513 /* CESubSplitView.m in Sources */, - 8C8CCCB109D6803400A008E5 /* CESplitView.m in Sources */, - 8C3840930D16B75C00F76A4C /* UKXattrMetadataStore.m in Sources */, - 8CBFD5F40DC42B1200EC093D /* CEPrivateMutableArray.m in Sources */, - 8C1305AF0DC4B71D00975AC6 /* RegexKitLite.m in Sources */, - 8C1305B20DC4B83000975AC6 /* RKLMatchEnumerator.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXVariantGroup section */ - 089C165FFE840EACC02AAC07 /* InfoPlist.strings */ = { - isa = PBXVariantGroup; - children = ( - 089C1660FE840EACC02AAC07 /* English */, - 6C1E212212C9E65600194313 /* Japanese */, - ); - name = InfoPlist.strings; - sourceTree = ""; - }; - 25859EA5076D8EE80020F779 /* Preferences.nib */ = { - isa = PBXVariantGroup; - children = ( - 25859EA6076D8EE80020F779 /* English */, - 6C1E212612C9E65600194313 /* Japanese */, - ); - name = Preferences.nib; - sourceTree = SOURCE_ROOT; - }; - 2588E9CC07C4851C0060021D /* Indicator.nib */ = { - isa = PBXVariantGroup; - children = ( - 2588E9CD07C4851C0060021D /* English */, - 6C1E212112C9E65600194313 /* Japanese */, - ); - name = Indicator.nib; - sourceTree = ""; - }; - 258EF2F8077FEDD000011E52 /* SyntaxManager.nib */ = { - isa = PBXVariantGroup; - children = ( - 258EF2F9077FEDD000011E52 /* English */, - 6C1E212812C9E65600194313 /* Japanese */, - ); - name = SyntaxManager.nib; - sourceTree = ""; - }; - 259C2316077678DE00BA61C5 /* Localizable.strings */ = { - isa = PBXVariantGroup; - children = ( - 259C2317077678DE00BA61C5 /* English */, - 6C1E212412C9E65600194313 /* Japanese */, - ); - name = Localizable.strings; - sourceTree = ""; - }; - 2A37F4B4FDCFA73011CA2CEA /* DocWindow.nib */ = { - isa = PBXVariantGroup; - children = ( - 2A37F4B5FDCFA73011CA2CEA /* English */, - 6C1E211F12C9E65600194313 /* Japanese */, - ); - name = DocWindow.nib; - sourceTree = ""; - }; - 2A37F4B6FDCFA73011CA2CEA /* MainMenu.nib */ = { - isa = PBXVariantGroup; - children = ( - 2A37F4B7FDCFA73011CA2CEA /* English */, - 6C1E212512C9E65600194313 /* Japanese */, - ); - name = MainMenu.nib; - sourceTree = ""; - }; - 6C9BF21C12F62D3A0097BFE7 /* CotEditorHelp */ = { - isa = PBXVariantGroup; - children = ( - 6C9BF1C412F62D310097BFE7 /* English */, - 6C9BF27412F62E210097BFE7 /* Japanese */, - ); - name = CotEditorHelp; - sourceTree = ""; - }; - 8C28CD2C081101A300733DA7 /* ScriptManager.nib */ = { - isa = PBXVariantGroup; - children = ( - 8C28CD2D081101A300733DA7 /* English */, - 6C1E212712C9E65600194313 /* Japanese */, - ); - name = ScriptManager.nib; - sourceTree = ""; - }; - 8C4186CE08864B3E0039FBFC /* HCCManager.nib */ = { - isa = PBXVariantGroup; - children = ( - 8C4186CF08864B3E0039FBFC /* English */, - 6C1E212012C9E65600194313 /* Japanese */, - ); - name = HCCManager.nib; - sourceTree = ""; - }; - 8C7400A208C6D93900683672 /* KeyBindingManager.nib */ = { - isa = PBXVariantGroup; - children = ( - 8C7400A308C6D93900683672 /* English */, - 6C1E212312C9E65600194313 /* Japanese */, - ); - name = KeyBindingManager.nib; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 8C71D95408640EDF00C9C0BD /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - FRAMEWORK_SEARCH_PATHS = ( - ., - "\"$(SRCROOT)\"", - ); - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = CotEditor_Prefix.pch; - GCC_PREPROCESSOR_DEFINITIONS = "\"DEBUGGING\""; - INFOPLIST_FILE = Info.plist; - MACOSX_DEPLOYMENT_TARGET = 10.7; - PRODUCT_NAME = CotEditor; - }; - name = Debug; - }; - 8C71D95508640EDF00C9C0BD /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - FRAMEWORK_SEARCH_PATHS = ( - ., - "\"$(SRCROOT)\"", - ); - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = CotEditor_Prefix.pch; - INFOPLIST_FILE = Info.plist; - MACOSX_DEPLOYMENT_TARGET = 10.7; - PRODUCT_NAME = CotEditor; - }; - name = Release; - }; - 8C71D95808640EDF00C9C0BD /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_BIT)"; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - MACOSX_DEPLOYMENT_TARGET = 10.7; - SDKROOT = macosx; - }; - name = Debug; - }; - 8C71D95908640EDF00C9C0BD /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_BIT)"; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - MACOSX_DEPLOYMENT_TARGET = 10.7; - SDKROOT = macosx; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 8C71D95308640EDF00C9C0BD /* Build configuration list for PBXNativeTarget "CotEditor" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 8C71D95408640EDF00C9C0BD /* Debug */, - 8C71D95508640EDF00C9C0BD /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 8C71D95708640EDF00C9C0BD /* Build configuration list for PBXProject "CotEditor_Lion" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 8C71D95808640EDF00C9C0BD /* Debug */, - 8C71D95908640EDF00C9C0BD /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 2A37F4A9FDCFA73011CA2CEA /* Project object */; -} diff --git a/Docs/EN/Known_problems-en.rtf b/Docs/EN/Known_problems-en.rtf deleted file mode 100644 index 7867e98408..0000000000 --- a/Docs/EN/Known_problems-en.rtf +++ /dev/null @@ -1,29 +0,0 @@ -{\rtf1\ansi\ansicpg932\cocoartf949\cocoasubrtf430 -\readonlydoc1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} -{\colortbl;\red255\green255\blue255;} -\paperw11905\paperh16837\margl1440\margr1440\vieww9000\viewh8400\viewkind0 -\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural - -\f0\b\fs32 \cf0 Known problems with CotEditor -\b0\fs24 \ -\ -\ -* When the \'93Line Endings\'94 drop-down menu on the toolbar is opened, no check mark appears next to the selected item.\ -\ -\ -* When Line Spacing is set larger than 0, the underlines, that Japanese input methods show during Kana-Kanji conversion, are displayed lower than usual.\ -\ -\ -* When saving a file which requires \'91write\'92 privilege, canceling the authentication outputs an error log \'93AuthorizationCreate failed with -60006\'94 to console.\ -\ -\ -* On 10.3.9, print previewing outputs an error \'93Can't create CMap Adobe-Identity-UCS2.\'94 to console.\ -\ -\ -* When completing words on 10.3.9, after typing only one letter and showing the completion list (usually by pressing F5), pressing Enter doesn't select an item.\ -* When completing words on 10.3.9, pressing ESC doesn't pop up the completion list.\ -(These seem to be due to OS limitations. I'm still seeking solutions, but these issues don't occur on OS X 10.4.x.)\ -\ -\ -## If CotEditor often fails to detect the correct character encoding, try customizing the encoding list. See application's Help for the instruction.\ -} \ No newline at end of file diff --git a/Docs/EN/ReadMe-en.rtf b/Docs/EN/ReadMe-en.rtf deleted file mode 100644 index 5b19f0cf5a..0000000000 --- a/Docs/EN/ReadMe-en.rtf +++ /dev/null @@ -1,150 +0,0 @@ -{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf320 -\readonlydoc1{\fonttbl\f0\fswiss\fcharset0 Helvetica;\f1\fnil\fcharset128 HiraKakuProN-W3;} -{\colortbl;\red255\green255\blue255;} -\vieww13460\viewh13880\viewkind0 -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 - -\f0\b\fs30 \cf0 CotEditor 1.3.1\ -ReadMe\ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802\qr - -\b0\fs24 \cf0 2012.02.12\ -\ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 - -\b \cf0 About Regular Expression Syntax For Coloring\ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 - -\b0 \cf0 From version 0.9.5, CotEditor's syntax coloring function uses RegexKitLite instead of OgreKit for its regular expression search in order to improve coloring speed (the Find or Outline Menu functions use OgreKit as before). Their regular expression syntax are slightly different from each other.\ -The default coloring rules are not affected by the differences, but if you have your own rules, see the following references to make sure they work properly.\ -\ -Oniguruma Regular Expressions (used by OgreKit)\ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 -{\field{\*\fldinst{HYPERLINK "http://www.geocities.jp/kosako3/oniguruma/doc/RE.txt"}}{\fldrslt \cf0 http://www.geocities.jp/kosako3/oniguruma/doc/RE.txt}}\ -\ -ICU Regular Expressions (used by RegexKitLite)\ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 -{\field{\*\fldinst{HYPERLINK "http://regexkit.sourceforge.net/RegexKitLite/#ICURegularExpressionSyntax"}}{\fldrslt \cf0 http://regexkit.sourceforge.net/RegexKitLite/#ICURegularExpressionSyntax}} -\b \ -\ -\ -Requirements -\b0 \ -Mac OS X 10.4+\ -\ -\ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 - -\b \cf0 License -\b0 \ -GPL (GNU GENERAL PUBLIC LICENSE)\ -# This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.\ -# This program 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.\ -# Further information is available in the bundled documentation.\ -# OgreKit (http://www8.ocn.ne.jp/~sonoisa/OgreKit/) and Oniguruma (http://www.geocities.jp/kosako3/oniguruma/), the framework and library that CotEditor uses, are under the OgreKit License. -\f1 -\f0 See the bundled \'93OgreKit License.txt\'94 for details.\ -\ -\ - -\b About Source Code -\b0 \ -# CotEditor source code is available for download at the following site (see the \'93Distribution Site\'94 section below).\ -# CotEditor is written in Objective-C (UTF-8).\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720 -\cf0 \ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 -\cf0 \ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 - -\b \cf0 Development Environment -\b0 \ -(For 10.7)\ -MacBook Air (Late 2010)\ -Mac OS X 10.7.3\ -Xcode 4.2.1\ -\ -(For 10.4/10.5/10.6)\ -MacBook (Early 2008)\ -Mac OS X 10.6.8\ -Xcode 3.2.5\ -\ -\ - -\b Distribution Site -\b0 \ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 -{\field{\*\fldinst{HYPERLINK "http://sourceforge.jp/projects/coteditor/"}}{\fldrslt \cf0 http://sourceforge.jp/projects/coteditor/}}\ -\ -\ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 - -\b \cf0 Copyrights -\b0 \ -CotEditor\ -Copyright (c) 2005 nakamuxu\ -Copyright (c) 2011 usami-k\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720 -\cf0 All rights reserved.\ -\ -OgreKit ({\field{\*\fldinst{HYPERLINK "http://www8.ocn.ne.jp/~sonoisa/OgreKit/"}}{\fldrslt http://www8.ocn.ne.jp/~sonoisa/OgreKit/}})\ -Copyright (c) 2003 Isao Sonobe\ - All rights reserved.\ -\ -Oniguruma ({\field{\*\fldinst{HYPERLINK "http://www.geocities.jp/kosako3/oniguruma/"}}{\fldrslt http://www.geocities.jp/kosako3/oniguruma/}})\ -Copyright (c) 2002 K.Kosako\ - All rights reserved.\ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 -\cf0 \ -Smultron ({\field{\*\fldinst{HYPERLINK "http://smultron.sourceforge.net/"}}{\fldrslt http://smultron.sourceforge.net/}})\ -Copyright (c) 2004 Peter Borg\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720 -\cf0 All rights reserved.\ -\ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 -\cf0 UKKQuete ({\field{\*\fldinst{HYPERLINK "http://www.zathras.de/angelweb/sourcecode.htm"}}{\fldrslt http://www.zathras.de/angelweb/sourcecode.htm}})\ -Copyright (c) 2003-06 M. Uli Kusterer\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720 -\cf0 All rights reserved.\ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 -\cf0 \ -FJDDetectEncoding ({\field{\*\fldinst{HYPERLINK "http://blogs.dion.ne.jp/fujidana/archives/4169016.html"}}{\fldrslt http://blogs.dion.ne.jp/fujidana/archives/4169016.html}})\ -Copyright (c) 2006 FUJIDANA\ - All rights reserved.\ -\ -RegexKitLite ({\field{\*\fldinst{HYPERLINK "http://regexkit.sourceforge.net/RegexKitLite/"}}{\fldrslt http://regexkit.sourceforge.net/RegexKitLite/}})\ -Copyright (c) 2008 John Engelhart\ - All rights reserved.\ -\ -\ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 - -\b \cf0 Acknowledgments -\b0 \ -I'm deeply grateful for those who let me use their valuable programs/information for making CotEditor.\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720 -\cf0 * Thanks to kaz ({\field{\*\fldinst{HYPERLINK "http://pbx.homeunix.org/jam_log/"}}{\fldrslt http://pbx.homeunix.org/jam_log/}}) for providing the application/document icon, and for creating the syntax definition file for PHP.\ -* Thanks to Y.Yamamoto for providing the toolbar/preferences icons, and for translating documentation and help files into English.\ -* Thanks to s.sawada ({\field{\*\fldinst{HYPERLINK "http://www.mouseup.net/diary/"}}{\fldrslt http://www.mouseup.net/diary/}}) for providing the Ruby sample script.\ -* Thanks to Yuhei Kuratomi ({\field{\*\fldinst{HYPERLINK "http://www.tomapd.net/blog"}}{\fldrslt http://www.tomapd.net/blog}}) for providing the Python sample script, and for creating the syntax definition file for LaTeX.\ -* Thanks to yosito for providing the utility scripts written in Ruby.\ -* Thanks to hiroto sakai ({\field{\*\fldinst{HYPERLINK "http://www.fan.gr.jp/~sakai/"}}{\fldrslt http://www.fan.gr.jp/~sakai/}}) for providing technical information and dictionary files regarding Japanese localization, and for creating syntax definition files for C/C++/Objective-C/Java, and also for creating the Japanese help file.\ -* Thanks to hetima ({\field{\*\fldinst{HYPERLINK "http://hetima.com/"}}{\fldrslt http://hetima.com/}}) for enhancing line number display, and for providing the method for getting modifier key presses ({\field{\*\fldinst{HYPERLINK "http://hetima.com/pblog/article.php?id=48"}}{\fldrslt http://hetima.com/pblog/article.php?id=48}}).\ -* Thanks to Haruka Kataoka ({\field{\*\fldinst{HYPERLINK "http://drumsoft.com/"}}{\fldrslt http://drumsoft.com/}}) for enhancing word completion.\ -* Thanks to Y.Tokutomi ({\field{\*\fldinst{HYPERLINK "http://d.hatena.ne.jp/Tommy1/"}}{\fldrslt http://d.hatena.ne.jp/Tommy1/}}) for creating the syntax definition files for Ruby/eRuby.\ -* Thanks to konn ({\field{\*\fldinst{HYPERLINK "http://d.hatena.ne.jp/mr_konn/"}}{\fldrslt http://d.hatena.ne.jp/mr_konn/}}) for creating the syntax definition file for Haskell.\ -* Thanks to nanasiya ({\field{\*\fldinst{HYPERLINK "http://mahonet.info/~nanasiya/"}}{\fldrslt http://mahonet.info/~nanasiya/}}) for creating the syntax definition file for Python.\ -* Thanks to OgreKit by Isao Sonobe ({\field{\*\fldinst{HYPERLINK "http://www8.ocn.ne.jp/~sonoisa/OgreKit/"}}{\fldrslt http://www8.ocn.ne.jp/~sonoisa/OgreKit/}}) and Oniguruma by K.Kosako ({\field{\*\fldinst{HYPERLINK "http://www.geocities.jp/kosako3/oniguruma/"}}{\fldrslt http://www.geocities.jp/kosako3/oniguruma/}}). CotEditor uses partially modified versions of them. They have been distributed under the OgreKit License and the OniGuruma LICENSE respectively.\ -* Thanks to JSDTextView by James S. Derry ({\field{\*\fldinst{HYPERLINK "http://www.balthisar.com"}}{\fldrslt http://www.balthisar.com}}) on which CotEditor's line number display is based. JSDTextView has been distributed in the public domain.\ -* Thanks to Smultron by Peter Borg ({\field{\*\fldinst{HYPERLINK "http://smultron.sourceforge.net/"}}{\fldrslt http://smultron.sourceforge.net/}}) on which CotEditor's functions, such as customizing the tab width, showing invisible characters, supporting the External Editor Protocol, are based. Smultron has been distributed under the BSD license (version 2.0 or later).\ -* Thanks to UKKQueue by M. Uli Kusterer ({\field{\*\fldinst{HYPERLINK "http://www.zathras.de/angelweb/sourcecode.htm#UKKQueue"}}{\fldrslt http://www.zathras.de/angelweb/sourcecode.htm#UKKQueue}}) on which CotEditor's file change notification is based. UKKQueue has been distributed as source code under its original license.\ -Also, thanks to the information regarding the use of UKKQueue by kimura wataru ({\field{\*\fldinst{HYPERLINK "http://homepage3.nifty.com/kimuraw/misc/ukkqueue.html"}}{\fldrslt http://homepage3.nifty.com/kimuraw/misc/ukkqueue.html}} and {\field{\*\fldinst{HYPERLINK "http://homepage3.nifty.com/kimuraw/d/2004/11.html#04_t1"}}{\fldrslt http://homepage3.nifty.com/kimuraw/d/2004/11.html#04_t1}}).\ -* Thanks to UKXattrMetadataStore by M. Uli Kusterer ({\field{\*\fldinst{HYPERLINK "http://www.zathras.de/angelweb/sourcecode.htm#UKXattrMetadataStore"}}{\fldrslt http://www.zathras.de/angelweb/sourcecode.htm#UKXattrMetadataStore}}) which enables CotEditor to read/write the encoding of a file via the \'93com.apple.TextEncoding\'94 extended attribute (Mac OS X 10.5 or later required). UKXattrMetadataStore has been distributed under the MIT license.\ -* Thanks to FJDDetectEncoding by FUJIDANA ({\field{\*\fldinst{HYPERLINK "http://blogs.dion.ne.jp/fujidana/archives/4169016.html"}}{\fldrslt http://blogs.dion.ne.jp/fujidana/archives/4169016.html}}) on which CotEditor's encoding auto-detection (ISO 2022-JP, UTF-8, UTF-16) is based. FJDDetectEncoding has been released under the BSD license.\ -* Thanks to RegexKitLite by John Engelhart ({\field{\*\fldinst{HYPERLINK "http://regexkit.sourceforge.net/RegexKitLite/"}}{\fldrslt http://regexkit.sourceforge.net/RegexKitLite/}}). RegexKitLite has been released under the BSD license.\ -* Thanks to the web site HMDT ({\field{\*\fldinst{HYPERLINK "http://hmdt.jp/"}}{\fldrslt http://hmdt.jp/}}) for a lot of useful information.\ -* Thanks to the web site Cocoabuilder ({\field{\*\fldinst{HYPERLINK "http://www.cocoabuilder.com/"}}{\fldrslt http://www.cocoabuilder.com/}}) for a lot of useful information.\ -* Thanks to mi by Daisuke Kamiyama ({\field{\*\fldinst{HYPERLINK "http://www.mimikaki.net/"}}{\fldrslt http://www.mimikaki.net/}}) on which the pre-formatted strings of CotEditor's File Drop function are based.\ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 -\cf0 \ -} \ No newline at end of file diff --git a/Docs/JP/Known_problems-jp.rtf b/Docs/JP/Known_problems-jp.rtf deleted file mode 100644 index eb968c78c1..0000000000 --- a/Docs/JP/Known_problems-jp.rtf +++ /dev/null @@ -1,51 +0,0 @@ -{\rtf1\ansi\ansicpg932\cocoartf949\cocoasubrtf430 -\readonlydoc1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;\f1\fswiss\fcharset0 Helvetica;} -{\colortbl;\red255\green255\blue255;} -\paperw11905\paperh16837\margl1440\margr1440\vieww9000\viewh8400\viewkind0 -\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural - -\f0\fs24 \cf0 CotEditor \'82\'cc\'8a\'f9\'92\'6d\'82\'cc\'96\'e2\'91\'e8 -\f1 \ -\ -\ -* -\f0 \'83\'63\'81\'5b\'83\'8b\'83\'6f\'81\'5b\'82\'cc\'81\'75\'8d\'73\'96\'96\'83\'52\'81\'5b\'83\'68\'81\'76\'83\'41\'83\'43\'83\'65\'83\'80\'82\'cc\'83\'81\'83\'6a\'83\'85\'81\'5b\'82\'f0\'83\'7c\'83\'62\'83\'76\'83\'41\'83\'62\'83\'76\'82\'b3\'82\'b9\'82\'bd\'8e\'9e\'81\'41\'91\'49\'91\'f0\'8d\'80\'96\'da\'82\'c9\'83\'60\'83\'46\'83\'62\'83\'4e\'83\'7d\'81\'5b\'83\'4e\'82\'aa\'95\'5c\'8e\'a6\'82\'b3\'82\'ea\'82\'c8\'82\'a2\ -\'81\'84 \'82\'b3\'82\'dc\'82\'b4\'82\'dc\'82\'c9\'8e\'8e\'82\'b5\'82\'bd\'82\'cc\'82\'c5\'82\'b7\'82\'aa\'81\'41\'91\'ce\'8d\'f4\'82\'c5\'82\'ab\'82\'c4\'82\'a2\'82\'dc\'82\'b9\'82\'f1\'81\'42\'8e\'8e\'8d\'73\'8d\'f6\'8c\'eb\'92\'86\'81\'42\ -\ -\ - -\f1 * -\f0 \'8d\'73\'8a\'d4\'82\'f0\'81\'75 -\f1 0 -\f0 \'81\'76\'82\'e6\'82\'e8\'91\'e5\'82\'ab\'82\'ad\'82\'b5\'82\'c4\'82\'a2\'82\'e9\'82\'c6\'81\'41\'93\'fa\'96\'7b\'8c\'ea\'93\'fc\'97\'cd\'8e\'9e\'82\'cc -\f1 IM -\f0 \'82\'cc\'95\'cf\'8a\'b7\'92\'86\'82\'f0\'8e\'a6\'82\'b7\'83\'41\'83\'93\'83\'5f\'81\'5b\'83\'89\'83\'43\'83\'93\'82\'aa\'92\'ca\'8f\'ed\'82\'e6\'82\'e8\'82\'e0\'89\'ba\'82\'c9\'97\'a3\'82\'ea\'82\'c4\'95\'5c\'8e\'a6\'82\'b3\'82\'ea\'82\'e9\ -\'81\'84 \'91\'ce\'8d\'f4\'82\'f0\'96\'cd\'8d\'f5\'92\'86\ - -\f1 \ -\ -* -\f0 \'8f\'91\'82\'ab\'8d\'9e\'82\'dd\'82\'c9\'94\'46\'8f\'d8\'82\'aa\'95\'4b\'97\'76\'82\'c8\'83\'74\'83\'40\'83\'43\'83\'8b\'82\'f0\'95\'db\'91\'b6\'82\'b7\'82\'e9\'8e\'9e\'81\'41 -\f1 authopen -\f0 \'82\'cc\'94\'46\'8f\'d8\'89\'e6\'96\'ca\'82\'c5\'83\'4c\'83\'83\'83\'93\'83\'5a\'83\'8b\'82\'b7\'82\'e9\'82\'c6\'83\'52\'83\'93\'83\'5c\'81\'5b\'83\'8b\'82\'c9\'89\'ba\'8b\'4c\'82\'cc\'83\'47\'83\'89\'81\'5b\'82\'aa\'95\'5c\'8e\'a6\'82\'b3\'82\'ea\'82\'e9\ -AuthorizationCreate failed with -60006\ -\'81\'84 \'91\'ce\'8d\'f4\'82\'f0\'96\'cd\'8d\'f5\'92\'86\ - -\f1 \ -\ -* 10.3.9 -\f0 \'8a\'c2\'8b\'ab\'82\'c5\'88\'f3\'8d\'fc\'83\'76\'83\'8c\'83\'72\'83\'85\'81\'5b\'82\'b7\'82\'e9\'82\'c6\'81\'41\'83\'52\'83\'93\'83\'5c\'81\'5b\'83\'8b\'82\'c9\'89\'ba\'8b\'4c\'82\'cc\'83\'47\'83\'89\'81\'5b\'82\'aa\'95\'5c\'8e\'a6\'82\'b3\'82\'ea\'82\'e9\ -Can't create CMap Adobe-Identity-UCS2.\ -\'81\'84 \'91\'ce\'8d\'f4\'82\'f0\'96\'cd\'8d\'f5\'92\'86\ - -\f1 \ -\ -* 10.3.9 -\f0 \'8a\'c2\'8b\'ab\'82\'c5\'82\'cc\'93\'fc\'97\'cd\'95\'e2\'8a\'ae\'8e\'9e\'82\'c91\'95\'b6\'8e\'9a\'82\'be\'82\'af\'82\'f0\'93\'fc\'97\'cd\'82\'b5\'82\'c4\'83\'8a\'83\'58\'83\'67\'82\'f0\'95\'5c\'8e\'a6\'81\'69\'95\'57\'8f\'80\'82\'c5\'82\'cd F5\'81\'6a\'82\'b3\'82\'b9\'82\'bd\'82\'a0\'82\'c6 Enter \'83\'4c\'81\'5b\'82\'c5\'8a\'6d\'92\'e8\'82\'c5\'82\'ab\'82\'c8\'82\'a2\ - -\f1 * 10.3.9 -\f0 \'8a\'c2\'8b\'ab\'82\'c5\'82\'cc\'93\'fc\'97\'cd\'95\'e2\'8a\'ae\'8e\'9e\'82\'c9ESC \'83\'4c\'81\'5b\'82\'c5\'93\'fc\'97\'cd\'95\'e2\'8a\'ae\'8c\'f3\'95\'e2\'83\'8a\'83\'58\'83\'67\'82\'f0\'95\'5c\'8e\'a6\'82\'c5\'82\'ab\'82\'c8\'82\'a2\ -\'81\'84 \'82\'b1\'82\'ea\'82\'e7\'82\'cd\'82\'a2\'82\'b8\'82\'ea\'82\'e0 OS \'82\'cc\'90\'a7\'8c\'c0\'82\'c9\'82\'e6\'82\'e9\'82\'c6\'8e\'76\'82\'ed\'82\'ea\'82\'dc\'82\'b7\'81\'42\'91\'ce\'8f\'88\'95\'fb\'96\'40\'82\'f0\'8c\'9f\'93\'a2\'92\'86\'82\'c5\'82\'b7\'82\'aa\'81\'4110.4.x \'8a\'c2\'8b\'ab\'82\'c5\'82\'cd\'94\'ad\'90\'b6\'82\'b5\'82\'dc\'82\'b9\'82\'f1\'81\'42\ -\ -\ -## \'83\'47\'83\'93\'83\'52\'81\'5b\'83\'66\'83\'42\'83\'93\'83\'4f\'82\'cc\'89\'f0\'8e\'df\'82\'c9\'8e\'b8\'94\'73\'82\'b7\'82\'e9\'82\'b1\'82\'c6\'82\'aa\'91\'bd\'82\'a2\'8f\'ea\'8d\'87\'81\'41\'83\'47\'83\'93\'83\'52\'81\'5b\'83\'66\'83\'42\'83\'93\'83\'4f\'83\'8a\'83\'58\'83\'67\'82\'cc\'95\'d2\'8f\'57\'82\'f0\'8d\'73\'82\'a4\'82\'b1\'82\'c6\'82\'f0\'82\'a8\'8a\'a9\'82\'df\'82\'b5\'82\'dc\'82\'b7\'81\'42\'95\'fb\'96\'40\'82\'c9\'82\'c2\'82\'a2\'82\'c4\'82\'cd\'83\'41\'83\'76\'83\'8a\'83\'50\'81\'5b\'83\'56\'83\'87\'83\'93\'82\'cc\'83\'77\'83\'8b\'83\'76\'82\'f0\'82\'b2\'97\'97\'82\'ad\'82\'be\'82\'b3\'82\'a2\'81\'42} \ No newline at end of file diff --git a/Docs/JP/ReadMe-jp.rtf b/Docs/JP/ReadMe-jp.rtf deleted file mode 100644 index 345be5e566..0000000000 --- a/Docs/JP/ReadMe-jp.rtf +++ /dev/null @@ -1,356 +0,0 @@ -{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf320 -\readonlydoc1{\fonttbl\f0\fswiss\fcharset0 Helvetica;\f1\fnil\fcharset128 HiraKakuPro-W3;\f2\fnil\fcharset128 HiraKakuProN-W3; -\f3\fnil\fcharset0 LucidaGrande;} -{\colortbl;\red255\green255\blue255;} -\vieww13460\viewh13880\viewkind0 -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 - -\f0\b\fs30 \cf0 CotEditor 1.3.1\ -ReadMe\ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802\qr - -\b0\fs24 \cf0 2012.02.12\ -\ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 - -\f1\b \cf0 \'83\'4a\'83\'89\'81\'5b\'83\'8a\'83\'93\'83\'4f\'82\'cc\'90\'b3\'8b\'4b\'95\'5c\'8c\'bb\'8d\'5c\'95\'b6\'82\'c9\'82\'c2\'82\'a2\'82\'c4\'81\'46 -\f0\b0 \ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 - -\f2 \cf0 \'83\'6f\'81\'5b\'83\'57\'83\'87\'83\'93 -\f0 0.9.5 -\f2 \'82\'a9\'82\'e7\'81\'41\'8f\'88\'97\'9d\'91\'ac\'93\'78\'89\'fc\'91\'50\'82\'cc\'82\'bd\'82\'df\'82\'c9\'83\'4a\'83\'89\'81\'5b\'83\'8a\'83\'93\'83\'4f\'82\'cc\'90\'b3\'8b\'4b\'95\'5c\'8c\'bb\'92\'e8\'8b\'60\'82\'cc\'8c\'9f\'8d\'f5\'82\'c9 -\f0 RegexKitLite -\f2 \'82\'f0\'8d\'cc\'97\'70\'82\'b5\'82\'dc\'82\'b5\'82\'bd\'81\'42\'92\'ca\'8f\'ed\'82\'cc\'8c\'9f\'8d\'f5\'82\'e2\'83\'41\'83\'45\'83\'67\'83\'89\'83\'43\'83\'93\'83\'81\'83\'6a\'83\'85\'81\'5b\'82\'cd\'8f\'5d\'97\'88\'92\'ca\'82\'e8 -\f0 OgreKit -\f2 \'82\'f0\'8e\'67\'97\'70\'82\'b5\'82\'c4\'82\'a2\'82\'dc\'82\'b7\'82\'aa\'81\'41\'82\'bb\'82\'ea\'82\'bc\'82\'ea\'82\'cc\'90\'b3\'8b\'4b\'95\'5c\'8c\'bb\'8d\'5c\'95\'b6\'82\'c9\'88\'d9\'82\'c8\'82\'e9\'95\'94\'95\'aa\'82\'aa\'82\'a0\'82\'e8\'82\'dc\'82\'b7\'81\'42\ -\'83\'66\'83\'74\'83\'48\'83\'8b\'83\'67\'82\'c5\'90\'dd\'92\'e8\'82\'b3\'82\'ea\'82\'c4\'82\'a2\'82\'e9\'83\'4a\'83\'89\'81\'5b\'83\'8a\'83\'93\'83\'4f\'92\'e8\'8b\'60\'82\'cd\'96\'e2\'91\'e8\'82\'a0\'82\'e8\'82\'dc\'82\'b9\'82\'f1\'82\'aa\'81\'41\'93\'c6\'8e\'a9\'82\'cc\'92\'e8\'8b\'60\'82\'f0\'92\'c7\'89\'c1\'82\'b5\'82\'c4\'82\'a2\'82\'e9\'8f\'ea\'8d\'87\'82\'c8\'82\'c7\'82\'cd\'82\'b2\'92\'8d\'88\'d3\'82\'ad\'82\'be\'82\'b3\'82\'a2\'81\'42\ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 - -\f0 \cf0 OgreKit -\f2 \'82\'c5\'8e\'67\'97\'70\'82\'b5\'82\'c4\'82\'a2\'82\'e9 -\f0 Oniguruma -\f2 \'82\'cc\'8d\'5c\'95\'b6\'92\'e8\'8b\'60\ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 -{\field{\*\fldinst{HYPERLINK "http://www.geocities.jp/kosako3/oniguruma/doc/RE.ja.txt"}}{\fldrslt -\f0 \cf0 http://www.geocities.jp/kosako3/oniguruma/doc/RE.ja.txt}} -\f0 \ -\ -RegexkitLite -\f2 \'82\'c5\'8e\'67\'97\'70\'82\'b5\'82\'c4\'82\'a2\'82\'e9 -\f0 ICU -\f2 \'82\'cc\'8d\'5c\'95\'b6\'92\'e8\'8b\'60\ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 -{\field{\*\fldinst{HYPERLINK "http://regexkit.sourceforge.net/RegexKitLite/#ICURegularExpressionSyntax"}}{\fldrslt -\f0 \cf0 http://regexkit.sourceforge.net/RegexKitLite/#ICURegularExpressionSyntax}} -\f0 \ -\ -\ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 - -\f1\b \cf0 \'93\'ae\'8d\'ec\'8a\'c2\'8b\'ab -\b0 : -\f0 \ -Mac OS X 10.4+\ -\ -\ - -\f1\b \'83\'89\'83\'43\'83\'5a\'83\'93\'83\'58 -\f0\b0 :\ -GPL (GNU GENERAL PUBLIC LICENSE)\ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 - -\f1 \cf0 # \'96\'7b\'83\'76\'83\'8d\'83\'4f\'83\'89\'83\'80\'82\'cd\'83\'74\'83\'8a\'81\'5b\'81\'45\'83\'5c\'83\'74\'83\'67\'83\'45\'83\'46\'83\'41\'82\'c5\'82\'b7\'81\'42\'82\'a0\'82\'c8\'82\'bd\'82\'cd\'81\'41Free Software Foundation \'82\'aa\'8c\'f6\'95\'5c\'82\'b5\'82\'bdGNU \'88\'ea\'94\'ca\'8c\'f6\'97\'4c\'8e\'67\'97\'70\'8b\'96\'91\'f8\'82\'cc\'81\'75\'83\'6f\'81\'5b\'83\'57\'83\'87\'83\'93\'82\'51\'81\'76\'88\'bd\'82\'a2\'82\'cd\'82\'bb\'82\'ea\'88\'c8\'8d\'7e\'82\'cc\'8a\'65\'83\'6f\'81\'5b\'83\'57\'83\'87\'83\'93\'82\'cc\'92\'86\'82\'a9\'82\'e7\'82\'a2\'82\'b8\'82\'ea\'82\'a9\'82\'f0\'91\'49\'91\'f0\'82\'b5\'81\'41\'82\'bb\'82\'cc\'83\'6f\'81\'5b\'83\'57\'83\'87\'83\'93\'82\'aa\'92\'e8\'82\'df\'82\'e9\'8f\'f0\'8d\'80\'82\'c9\'8f\'5d\'82\'c1\'82\'c4\'96\'7b\'83\'76\'83\'8d\'83\'4f\'83\'89\'83\'80\'82\'f0\'8d\'c4\'94\'d0\'95\'7a\'82\'dc\'82\'bd\'82\'cd\'95\'cf\'8d\'58\'82\'b7\'82\'e9\'82\'b1\'82\'c6\'82\'aa\'82\'c5\'82\'ab\'82\'dc\'82\'b7\'81\'42\ -# \'96\'7b\'83\'76\'83\'8d\'83\'4f\'83\'89\'83\'80\'82\'cd\'97\'4c\'97\'70\'82\'c6\'82\'cd\'8e\'76\'82\'a2\'82\'dc\'82\'b7\'82\'aa\'81\'41\'94\'d0\'95\'7a\'82\'c9\'82\'a0\'82\'bd\'82\'c1\'82\'c4\'82\'cd\'81\'41\'8e\'73\'8f\'ea\'90\'ab\'8b\'79\'82\'d1\'93\'c1\'92\'e8\'96\'da\'93\'49\'93\'4b\'8d\'87\'90\'ab\'82\'c9\'82\'c2\'82\'a2\'82\'c4\'82\'cc\'88\'c3\'96\'d9\'82\'cc\'95\'db\'8f\'d8\'82\'f0\'8a\'dc\'82\'df\'82\'c4\'81\'41\'82\'a2\'82\'a9\'82\'c8\'82\'e9\'95\'db\'8f\'d8\'82\'e0\'8d\'73\'82\'c8\'82\'a2\'82\'dc\'82\'b9\'82\'f1\'81\'42\ -# \'83\'89\'83\'43\'83\'5a\'83\'93\'83\'58\'82\'cc\'8f\'da\'8d\'d7\'82\'cd\'81\'41\'93\'59\'95\'74\'8f\'91\'97\'de\'82\'f0\'82\'b2\'97\'97\'82\'ad\'82\'be\'82\'b3\'82\'a2\'81\'42\ -# \'8e\'67\'97\'70\'82\'b5\'82\'c4\'82\'a2\'82\'e9\'83\'74\'83\'8c\'81\'5b\'83\'80\'83\'8f\'81\'5b\'83\'4e OgreKit ( -\f0 http://www8.ocn.ne.jp/~sonoisa/OgreKit/ -\f1 ) \'82\'c6\'83\'89\'83\'43\'83\'75\'83\'89\'83\'8a Oniguruma ( -\f0 http://www.geocities.jp/kosako3/oniguruma/) -\f1 \'82\'cd -\f0 OgreKit License -\f1 \'82\'c5\'94\'7a\'95\'7a\'82\'b3\'82\'ea\'82\'c4\'82\'a2\'82\'dc\'82\'b7\'81\'42OgreKit \'82\'cc\'83\'89\'83\'43\'83\'5a\'83\'93\'83\'58\'82\'cc\'8f\'da\'8d\'d7\'82\'cd\'93\'59\'95\'74\'82\'cc\'81\'75 -\f0 OgreKit License.txt -\f1 \'81\'76\'82\'f0\'82\'b2\'97\'97\'82\'ad\'82\'be\'82\'b3\'82\'a2\'81\'42\ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 - -\f0 \cf0 \ -\ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 - -\f1\b \cf0 \'83\'5c\'81\'5b\'83\'58\'83\'52\'81\'5b\'83\'68\'82\'c9\'82\'c2\'82\'a2\'82\'c4 -\f0\b0 : -\f1 \ -# CotEditor \'82\'cc\'83\'5c\'81\'5b\'83\'58\'83\'52\'81\'5b\'83\'68\'82\'cd\'81\'41\'89\'ba\'8b\'4c\'82\'cc\'81\'75\'94\'7a\'95\'7a\'83\'79\'81\'5b\'83\'57:\'81\'76\'82\'a9\'82\'e7\'8e\'e6\'93\'be\'89\'c2\'94\'5c\'82\'c5\'82\'b7\'81\'42\ -# \'8c\'be\'8c\'ea\'82\'cd Objective - C\'81\'41\'95\'b6\'8e\'9a\'83\'52\'81\'5b\'83\'68\'82\'cd UTF-8 \'82\'c5\'8f\'91\'82\'a9\'82\'ea\'82\'c4\'82\'a2\'82\'dc\'82\'b7\'81\'42\ -# \'8a\'4a\'94\'ad\'8a\'c2\'8b\'ab\'82\'cd\'89\'ba\'8b\'4c\'82\'cc\'93\'96\'8a\'59\'95\'94\'95\'aa\'82\'f0\'82\'b2\'97\'97\'82\'ad\'82\'be\'82\'b3\'82\'a2\'81\'42\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720 - -\f0 \cf0 \ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 -\cf0 \ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 - -\f1\b \cf0 \'8a\'4a\'94\'ad\'8a\'c2\'8b\'ab -\f0\b0 :\ -(For 10.7)\ -MacBook Air (Late 2010)\ -Mac OS X 10.7.3\ -Xcode 4.2.1\ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 - -\f1 \cf0 \ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 - -\f0 \cf0 (For 10.4/10.5/10.6)\ -MacBook (Early 2008)\ -Mac OS X 10.6.8\ -Xcode 3.2.5\ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 - -\f1 \cf0 \ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 - -\f0 \cf0 \ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 - -\f1\b \cf0 \'94\'7a\'95\'7a\'83\'79\'81\'5b\'83\'57 -\b0 :\ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 -{\field{\*\fldinst{HYPERLINK "http://sourceforge.jp/projects/coteditor/"}}{\fldrslt -\f0 \cf0 http://sourceforge.jp/projects/coteditor/}}\ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 - -\f0 \cf0 \ -\ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 - -\f1\b \cf0 \'92\'98\'8d\'ec\'8c\'a0\'95\'5c\'8e\'a6 -\b0 :\ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 - -\f0 \cf0 CotEditor\ -Copyright (c) 2005 nakamuxu\ -Copyright (c) 2011 usami-k\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720 -\cf0 All rights reserved.\ -\ -OgreKit ({\field{\*\fldinst{HYPERLINK "http://www8.ocn.ne.jp/~sonoisa/OgreKit/"}}{\fldrslt http://www8.ocn.ne.jp/~sonoisa/OgreKit/}})\ -Copyright (c) 2003 Isao Sonobe\ - All rights reserved.\ -\ -Oniguruma ({\field{\*\fldinst{HYPERLINK "http://www.geocities.jp/kosako3/oniguruma/"}}{\fldrslt http://www.geocities.jp/kosako3/oniguruma/}})\ -Copyright (c) 2002 K.Kosako\ - All rights reserved.\ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 -\cf0 \ -Smultron ({\field{\*\fldinst{HYPERLINK "http://smultron.sourceforge.net/"}}{\fldrslt http://smultron.sourceforge.net/}})\ -Copyright (c) 2004 Peter Borg\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720 -\cf0 All rights reserved.\ -\ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 -\cf0 UKKQuete, UKXattrMetadataStore ({\field{\*\fldinst{HYPERLINK "http://www.zathras.de/angelweb/sourcecode.htm"}}{\fldrslt http://www.zathras.de/angelweb/sourcecode.htm}})\ -Copyright (c) 2003-06 M. Uli Kusterer\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720 -\cf0 All rights reserved.\ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 -\cf0 \ -FJDDetectEncoding ({\field{\*\fldinst{HYPERLINK "http://blogs.dion.ne.jp/fujidana/archives/4169016.html"}}{\fldrslt http://blogs.dion.ne.jp/fujidana/archives/4169016.html}})\ -Copyright (c) 2006 FUJIDANA\ - All rights reserved.\ -\ -RegexKitLite ({\field{\*\fldinst{HYPERLINK "http://regexkit.sourceforge.net/RegexKitLite/"}}{\fldrslt http://regexkit.sourceforge.net/RegexKitLite/}})\ -Copyright (c) 2008 John Engelhart\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720 -\cf0 All rights reserved.\ -\ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 -\cf0 \ -\ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 - -\f1\b \cf0 \'8e\'d3\'8e\'ab -\b0 :\ -\'8d\'ec\'90\'ac\'82\'c9\'82\'a0\'82\'bd\'82\'c1\'82\'c4\'81\'41\'8e\'67\'82\'ed\'82\'b9\'82\'c4\'82\'a2\'82\'bd\'82\'be\'82\'a2\'82\'bd\'97\'4c\'89\'76\'82\'c8\'83\'5c\'83\'74\'83\'67\'83\'45\'83\'46\'83\'41\'81\'5e\'8f\'ee\'95\'f1\'82\'cc\'8c\'f6\'8a\'4a\'82\'c6\'92\'f1\'8b\'9f\'82\'c9\'90\'5b\'82\'ad\'8a\'b4\'8e\'d3\'82\'a2\'82\'bd\'82\'b5\'82\'dc\'82\'b7\'81\'42\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720 - -\f0 \cf0 *. -\f1 \'83\'41\'83\'76\'83\'8a\'83\'50\'81\'5b\'83\'56\'83\'87\'83\'93\'83\'41\'83\'43\'83\'52\'83\'93\'81\'41\'8f\'91\'97\'de\'83\'41\'83\'43\'83\'52\'83\'93\'82\'a8\'82\'e6\'82\'d1 -\f0 PHP -\f1 \'82\'cc\'83\'58\'83\'5e\'83\'43\'83\'8b\'92\'e8\'8b\'60\'83\'74\'83\'40\'83\'43\'83\'8b\'82\'f0 [ -\f0 JAM LOG] -\f1 ({\field{\*\fldinst{HYPERLINK "http://pbx.homeunix.org/jam_log/"}}{\fldrslt -\f0 http://pbx.homeunix.org/jam_log/}}) \'82\'cc -\f0 kaz -\f1 \'82\'b3\'82\'f1\'82\'c9\'8d\'ec\'90\'ac\'82\'b5\'82\'c4\'82\'a2\'82\'bd\'82\'be\'82\'ab\'82\'dc\'82\'b5\'82\'bd\'81\'42 -\f0 \ -*. -\f1 \'8f\'91\'97\'de\'83\'45\'83\'42\'83\'93\'83\'68\'83\'45\'82\'cc\'83\'63\'81\'5b\'83\'8b\'83\'6f\'81\'5b\'83\'41\'83\'43\'83\'52\'83\'93\'82\'a8\'82\'e6\'82\'d1\'8a\'c2\'8b\'ab\'90\'dd\'92\'e8\'83\'70\'83\'6c\'83\'8b\'82\'cc\'83\'5e\'83\'75\'83\'41\'83\'43\'83\'52\'83\'93\'81\'41\'93\'59\'95\'74\'83\'74\'83\'40\'83\'43\'83\'8b\'82\'c6\'83\'77\'83\'8b\'83\'76\'83\'74\'83\'40\'83\'43\'83\'8b\'82\'cc\'89\'70\'96\'f3\'82\'f0 -\f0 Y.Yamamoto -\f1 \'82\'b3\'82\'f1\'82\'c9\'8d\'ec\'90\'ac\'82\'b5\'82\'c4\'82\'a2\'82\'bd\'82\'be\'82\'ab\'82\'dc\'82\'b5\'82\'bd\'81\'42 -\f0 \ -*. Ruby -\f1 \'83\'54\'83\'93\'83\'76\'83\'8b\'83\'58\'83\'4e\'83\'8a\'83\'76\'83\'67\'82\'f0 [\'93\'fa\'82\'b1\'82\'ea]({\field{\*\fldinst{HYPERLINK "http://www.mouseup.net/diary/"}}{\fldrslt -\f0 http://www.mouseup.net/diary/}}) \'82\'cc -\f0 s.sawada -\f1 \'82\'b3\'82\'f1\'82\'c9\'92\'f1\'8b\'9f\'82\'b5\'82\'c4\'82\'a2\'82\'bd\'82\'be\'82\'ab\'82\'dc\'82\'b5\'82\'bd\'81\'42 -\f0 \ -*. Python -\f1 \'83\'54\'83\'93\'83\'76\'83\'8b\'83\'58\'83\'4e\'83\'8a\'83\'76\'83\'67\'82\'f0 [Be Cloudy or Clear?]({\field{\*\fldinst{HYPERLINK "http://www.tomapd.net/blog"}}{\fldrslt -\f0 http://www.tomapd.net/blog}}) \'82\'cc -\f0 Yuhei Kuratomi -\f1 \'82\'b3\'82\'f1\'82\'c9\'92\'f1\'8b\'9f\'82\'b5\'82\'c4\'82\'a2\'82\'bd\'82\'be\'82\'ab\'82\'dc\'82\'b5\'82\'bd\'81\'42 -\f0 \ -*. -\f2 \'93\'59\'95\'74 -\f0 Ruby -\f1 \'83\'58\'83\'4e\'83\'8a\'83\'76\'83\'67( -\f2 Ruby_scripts -\f1 \'83\'74\'83\'48\'83\'8b\'83\'5f\'93\'e0)\'82\'f0 -\f0 yosito -\f1 \'82\'b3\'82\'f1\'82\'c9\'92\'f1\'8b\'9f\'82\'b5\'82\'c4\'82\'a2\'82\'bd\'82\'be\'82\'ab\'82\'dc\'82\'b5\'82\'bd\'81\'42 -\f0 \ -*. -\f1 \'83\'41\'83\'76\'83\'8a\'83\'50\'81\'5b\'83\'56\'83\'87\'83\'93\'82\'cc\'83\'8d\'81\'5b\'83\'4a\'83\'89\'83\'43\'83\'59\'8d\'ec\'8b\'c6\'82\'c9\'82\'c2\'82\'a2\'82\'c4\'8b\'5a\'8f\'70\'8f\'ee\'95\'f1\'95\'c0\'82\'d1\'82\'c9\'83\'78\'81\'5b\'83\'58\'93\'fa\'96\'7b\'8c\'ea\'89\'bb\'8e\'ab\'8f\'91\'81\'41 -\f0 C, C++, Objective-C -\f3\fs20 -\f1\fs24 \'82\'a8\'82\'e6\'82\'d1 -\f0 Java -\f1 \'82\'cc\'83\'58\'83\'5e\'83\'43\'83\'8b\'92\'e8\'8b\'60\'83\'74\'83\'40\'83\'43\'83\'8b\'81\'41\'93\'fa\'96\'7b\'8c\'ea\'83\'77\'83\'8b\'83\'76\'83\'74\'83\'40\'83\'43\'83\'8b\'82\'f0 [hiroto sakai's site -\f0 ]({\field{\*\fldinst{HYPERLINK "http://www.fan.gr.jp/~sakai/"}}{\fldrslt http://www.fan.gr.jp/~sakai/}})\uc0\u65279 -\f1 \'82\'cc\'8d\'e2\'88\'e4\'8d\'5f\'90\'6c\'82\'b3\'82\'f1\'82\'c9\'92\'f1\'8b\'9f\'82\'b5\'82\'c4\'82\'a2\'82\'bd\'82\'be\'82\'ab\'82\'dc\'82\'b5\'82\'bd\'81\'42\ -*. \'8d\'73\'94\'d4\'8d\'86\'95\'5c\'8e\'a6\'8b\'40\'94\'5c\'82\'f0 [\'83\'77\'83\'60\'83\'7d\'83\'52\'83\'93\'83\'73\'83\'85\'81\'5b\'83\'5e]({\field{\*\fldinst{HYPERLINK "http://hetima.com/"}}{\fldrslt -\f0 http://hetima.com/}} -\f0 ) -\f1 \'82\'cc\'83\'77\'83\'60\'83\'7d\'82\'b3\'82\'f1\'82\'c9\'8b\'ad\'89\'bb\'82\'b5\'82\'c4\'82\'a2\'82\'bd\'82\'be\'82\'ab\'82\'dc\'82\'b5\'82\'bd\'81\'42\'82\'dc\'82\'bd\'81\'41\'93\'af\'83\'54\'83\'43\'83\'67\'82\'c5\'8c\'f6\'8a\'4a\'82\'b3\'82\'ea\'82\'c4\'82\'a2\'82\'e9\'83\'81\'83\'6a\'83\'85\'81\'5b\'83\'4e\'83\'8a\'83\'62\'83\'4e\'8e\'9e\'82\'cc\'83\'82\'83\'66\'83\'42\'83\'74\'83\'40\'83\'43\'83\'41\'83\'4c\'81\'5b\'8e\'e6\'93\'be\'8b\'40\'94\'5c ({\field{\*\fldinst{HYPERLINK "http://hetima.com/pblog/article.php?id=48"}}{\fldrslt -\f0 http://hetima.com/pblog/article.php?id=48}} -\f0 ) -\f1 \'82\'f0\'8e\'67\'97\'70\'82\'b3\'82\'b9\'82\'c4\'82\'a2\'82\'bd\'82\'be\'82\'a2\'82\'c4\'82\'dc\'82\'b7\'81\'42\ -*. \'93\'fc\'97\'cd\'95\'e2\'8a\'ae\'8b\'40\'94\'5c\'82\'f0 [ -\f0 DRUMSOFT.com -\f1 ]({\field{\*\fldinst{HYPERLINK "http://drumsoft.com/"}}{\fldrslt -\f0 http://drumsoft.com/}}) \'82\'cc\'95\'d0\'89\'aa\'83\'6e\'83\'8b\'83\'4a\'82\'b3\'82\'f1\'82\'c9\'8b\'ad\'89\'bb\'82\'b5\'82\'c4\'82\'a2\'82\'bd\'82\'be\'82\'ab\'82\'dc\'82\'b5\'82\'bd\'81\'42\ -*. -\f0 LaTeX -\f1 \'82\'cc\'83\'58\'83\'5e\'83\'43\'83\'8b\'92\'e8\'8b\'60\'83\'74\'83\'40\'83\'43\'83\'8b\'82\'f0 [ -\f0 Be Cloudy or Clear? -\f1 ]({\field{\*\fldinst{HYPERLINK "http://www.tomapd.net/blog"}}{\fldrslt -\f0 http://www.tomapd.net/blog}}) -\f0 -\f1 \'82\'cc -\f0 Yuhei Kuratomi -\f1 \'82\'b3\'82\'f1\'82\'c9\'8d\'ec\'90\'ac\'82\'b5\'82\'c4\'82\'a2\'82\'bd\'82\'be\'82\'ab\'82\'dc\'82\'b5\'82\'bd\'81\'42 -\f0 \ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720 - -\f1 \cf0 *. -\f0 Ruby -\f1 \'82\'a8\'82\'e6\'82\'d1 -\f0 eRuby -\f1 \'82\'cc\'83\'58\'83\'5e\'83\'43\'83\'8b\'92\'e8\'8b\'60\'83\'74\'83\'40\'83\'43\'83\'8b\'82\'f0 [ -\f0 Tommy Heartbeat 2nd -\f1 ]({\field{\*\fldinst{HYPERLINK "http://d.hatena.ne.jp/Tommy1/"}}{\fldrslt -\f0 http://d.hatena.ne.jp/Tommy1/}}) -\f0 -\f1 \'82\'cc -\f0 Y.Tokutomi -\f1 \'82\'b3\'82\'f1\'82\'c9\'8d\'ec\'90\'ac\'82\'b5\'82\'c4\'82\'a2\'82\'bd\'82\'be\'82\'ab\'82\'dc\'82\'b5\'82\'bd\'81\'42 -\f0 \ - -\f1 *. -\f0 Haskell -\f1 \'82\'cc\'83\'58\'83\'5e\'83\'43\'83\'8b\'92\'e8\'8b\'60\'83\'74\'83\'40\'83\'43\'83\'8b\'82\'f0 [\'82\'cd\'82\'c4\'82\'c8\'8e\'67\'82\'c1\'82\'bd\'82\'e7\'95\'89\'82\'af\'82\'be\'82\'c6\'8e\'76\'82\'c1\'82\'c4\'82\'a2\'82\'e9]({\field{\*\fldinst{HYPERLINK "http://d.hatena.ne.jp/mr_konn/"}}{\fldrslt -\f0 http://d.hatena.ne.jp/mr_konn/}}) -\f0 -\f1 \'82\'cc -\f0 konn -\f1 \'82\'b3\'82\'f1\'82\'c9\'8d\'ec\'90\'ac\'82\'b5\'82\'c4\'82\'a2\'82\'bd\'82\'be\'82\'ab\'82\'dc\'82\'b5\'82\'bd\'81\'42 -\f0 \ - -\f1 *. -\f0 Python -\f1 \'82\'cc\'83\'58\'83\'5e\'83\'43\'83\'8b\'92\'e8\'8b\'60\'83\'74\'83\'40\'83\'43\'83\'8b\'82\'f0 {\field{\*\fldinst{HYPERLINK "http://mahonet.info/~nanasiya/"}}{\fldrslt -\f0 http://mahonet.info/~nanasiya/}} -\f0 -\f1 \'82\'cc -\f0 nanasiya -\f1 \'82\'b3\'82\'f1\'82\'c9\'8d\'ec\'90\'ac\'82\'b5\'82\'c4\'82\'a2\'82\'bd\'82\'be\'82\'ab\'82\'dc\'82\'b5\'82\'bd\'81\'42 -\f0 \ -*. OgreKit (written by Isao Sonobe \'96 {\field{\*\fldinst{HYPERLINK "http://www8.ocn.ne.jp/~sonoisa/OgreKit/"}}{\fldrslt http://www8.ocn.ne.jp/~sonoisa/OgreKit/}}) -\f1 \'82\'c8\'82\'e7\'82\'d1\'82\'c9 -\f0 Oniguruma (written by K.Kosako \'96 {\field{\*\fldinst{HYPERLINK "http://www.geocities.jp/kosako3/oniguruma/"}}{\fldrslt http://www.geocities.jp/kosako3/oniguruma/}}) -\f1 \'82\'f0\'88\'ea\'95\'94\'82\'f0\'8f\'43\'90\'b3\'82\'b5\'82\'c4\'8e\'67\'97\'70\'82\'b3\'82\'b9\'82\'c4\'82\'a2\'82\'bd\'82\'be\'82\'ab\'82\'dc\'82\'b5\'82\'bd\'81\'42\'82\'bb\'82\'ea\'82\'bc\'82\'ea -\f0 OgreKit License -\f1 \'82\'c8\'82\'e7\'82\'d1\'82\'c9 -\f0 OniGuruma LICENSE -\f1 \'82\'c5\'94\'7a\'95\'7a\'82\'b3\'82\'ea\'82\'c4\'82\'a2\'82\'dc\'82\'b7\'81\'42\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720 - -\f0 \cf0 *. -\f1 \'8d\'73\'94\'d4\'8d\'86\'95\'5c\'8e\'a6\'8b\'40\'94\'5c\'82\'cd -\f0 JSDTextView (written by James S. Derry \'96 {\field{\*\fldinst{HYPERLINK "http://www.balthisar.com"}}{\fldrslt http://www.balthisar.com}}) -\f1 \'82\'f0\'83\'78\'81\'5b\'83\'58\'82\'c9\'8e\'67\'82\'ed\'82\'b9\'82\'c4\'82\'a2\'82\'bd\'82\'be\'82\'ab\'82\'dc\'82\'b5\'82\'bd\'81\'42 -\f0 JSDTextView -\f1 \'82\'cd\'83\'70\'83\'75\'83\'8a\'83\'62\'83\'4e\'83\'68\'83\'81\'83\'43\'83\'93\'82\'c5\'94\'7a\'95\'7a\'82\'b3\'82\'ea\'82\'c4\'82\'a2\'82\'dc\'82\'b7\'81\'42\ -*. \'83\'5e\'83\'75\'95\'9d\'82\'cc\'90\'dd\'92\'e8\'81\'5e\'95\'73\'89\'c2\'8e\'8b\'95\'b6\'8e\'9a\'82\'cc\'95\'5c\'8e\'a6\'8b\'40\'94\'5c\'81\'5e\'8a\'4f\'95\'94\'83\'47\'83\'66\'83\'42\'83\'5e\'83\'76\'83\'8d\'83\'67\'83\'52\'83\'8b\'82\'cc\'8e\'c0\'91\'95\'82\'c8\'82\'c7\'82\'cd -\f0 Smultron (written by Peter Borg \'96 {\field{\*\fldinst{HYPERLINK "http://smultron.sourceforge.net/"}}{\fldrslt http://smultron.sourceforge.net/}}) -\f1 \'82\'f0\'8e\'51\'8d\'6c\'82\'c9\'82\'b3\'82\'b9\'82\'c4\'82\'a2\'82\'bd\'82\'be\'82\'ab\'82\'dc\'82\'b5\'82\'bd\'81\'42 -\f0 Smultron -\f1 \'82\'cd\'81\'412.0\'88\'c8\'8d\'7e\'82\'cd -\f0 BSD -\f1 \'83\'89\'83\'43\'83\'5a\'83\'93\'83\'58\'82\'c5\'94\'7a\'95\'7a\'82\'b3\'82\'ea\'82\'c4\'82\'a2\'82\'dc\'82\'b7\'81\'42\ -*. \'83\'74\'83\'40\'83\'43\'83\'8b\'82\'cc\'95\'cf\'8d\'58\'8a\'c4\'8e\'8b\'8b\'40\'94\'5c\'82\'c9 -\f0 UKKQueue (written by M. Uli Kusterer \'96 {\field{\*\fldinst{HYPERLINK "http://www.zathras.de/angelweb/sourcecode.htm#UKKQueue"}}{\fldrslt http://www.zathras.de/angelweb/sourcecode.htm#UKKQueue}}) -\f1 \'82\'f0\'8e\'67\'97\'70\'82\'b3\'82\'b9\'82\'c4\'82\'a2\'82\'bd\'82\'be\'82\'ab\'82\'dc\'82\'b5\'82\'bd\'81\'42 -\f0 UKKQueue -\f1 \'82\'cd\'92\'98\'8d\'ec\'8c\'a0\'95\'5c\'8e\'a6\'82\'c8\'82\'c7\'82\'f0\'8f\'f0\'8c\'8f\'82\'c9\'8e\'a9\'97\'52\'82\'c9\'8e\'67\'82\'a6\'82\'e9\'83\'89\'83\'43\'83\'5a\'83\'93\'83\'58 -\fs22 \'81\'69\'83\'89\'83\'43\'83\'5a\'83\'93\'83\'58\'82\'cc\'8f\'da\'8d\'d7\'82\'cd\'92\'bc\'90\'da\'82\'b2\'8a\'6d\'94\'46\'82\'ad\'82\'be\'82\'b3\'82\'a2\'81\'6a -\fs24 \'82\'c9\'82\'e6\'82\'e8\'83\'5c\'81\'5b\'83\'58\'83\'52\'81\'5b\'83\'68\'82\'cc\'8f\'f3\'91\'d4\'82\'c5\'94\'7a\'95\'7a\'82\'b3\'82\'ea\'82\'c4\'82\'a2\'82\'dc\'82\'b7\'81\'42\ -\'82\'dc\'82\'bd\'81\'41 -\f0 UKKQueue -\f1 \'82\'cc\'8e\'67\'97\'70\'95\'fb\'96\'40\'82\'c8\'82\'c7\'82\'c9\'82\'c2\'82\'a2\'82\'c4\'96\'d8\'91\'ba\'93\'6e\'82\'b3\'82\'f1\'82\'cc\'83\'54\'83\'93\'83\'76\'83\'8b\'83\'5c\'83\'74\'83\'67\'82\'a8\'82\'e6\'82\'d1\'83\'54\'83\'43\'83\'67\'82\'cc\'8f\'ee\'95\'f1 ({\field{\*\fldinst{HYPERLINK "http://homepage3.nifty.com/kimuraw/misc/ukkqueue.html"}}{\fldrslt -\f0 http://homepage3.nifty.com/kimuraw/misc/ukkqueue.html}} \'82\'c8\'82\'e7\'82\'d1\'82\'c9 {\field{\*\fldinst{HYPERLINK "http://homepage3.nifty.com/kimuraw/d/2004/11.html#04_t1"}}{\fldrslt -\f0 http://homepage3.nifty.com/kimuraw/d/2004/11.html#04_t1}}\'81\'6a\'82\'f0\'8e\'51\'8d\'6c\'82\'c9\'82\'b3\'82\'b9\'82\'c4\'82\'a2\'82\'bd\'82\'be\'82\'ab\'82\'dc\'82\'b5\'82\'bd\'81\'42\ -*. \'83\'65\'83\'4c\'83\'58\'83\'67\'83\'47\'83\'93\'83\'52\'81\'5b\'83\'66\'83\'42\'83\'93\'83\'4f\'82\'cc\'83\'74\'83\'40\'83\'43\'83\'8b\'8a\'67\'92\'a3\'91\'ae\'90\'ab\'82\'d6\'82\'cc\'95\'db\'91\'b6\'81\'5e\'93\'c7\'82\'dd\'8d\'9e\'82\'dd\'8b\'40\'94\'5c(10.5\'88\'c8\'8d\'7e)\'82\'c9 -\f0 UKXattrMetadataStore (written by M. Uli Kusterer \'96 {\field{\*\fldinst{HYPERLINK "http://www.zathras.de/angelweb/sourcecode.htm#UKXattrMetadataStore"}}{\fldrslt http://www.zathras.de/angelweb/sourcecode.htm#UKXattrMetadataStore}}) -\f1 \'82\'f0\'8e\'67\'97\'70\'82\'b3\'82\'b9\'82\'c4\'82\'a2\'82\'bd\'82\'be\'82\'ab\'82\'dc\'82\'b5\'82\'bd\'81\'42 -\f0 UKXattrMetadataStore -\f1 \'82\'cd -\f0 MIT -\f1 \'83\'89\'83\'43\'83\'5a\'83\'93\'83\'58\'82\'c5\'94\'7a\'95\'7a\'82\'b3\'82\'ea\'82\'c4\'82\'a2\'82\'dc\'82\'b7\'81\'42\ -*. \'83\'65\'83\'4c\'83\'58\'83\'67\'83\'47\'83\'93\'83\'52\'81\'5b\'83\'66\'83\'42\'83\'93\'83\'4f\'82\'cc\'8e\'a9\'93\'ae\'94\'46\'8e\'af\'82\'c5\'82\'cc ISO 2022-JP\'81\'41UTF-8 \'82\'a8\'82\'e6\'82\'d1 UTF-16 \'82\'cc\'94\'bb\'92\'e8\'83\'52\'81\'5b\'83\'68\'82\'cd\'81\'41[\'93\'a1\'92\'49\'8d\'48\'96\'5b\'95\'ca\'93\'8f \'81\'7c\'93\'6b\'91\'52\'81\'7c] -\f0 ({\field{\*\fldinst{HYPERLINK "http://blogs.dion.ne.jp/fujidana/"}}{\fldrslt http://blogs.dion.ne.jp/fujidana/}}) -\f1 \'82\'cc\'8b\'4c\'8e\'96\'81\'75Cocoa\'82\'c5\'95\'b6\'8e\'9a\'83\'47\'83\'93\'83\'52\'81\'5b\'83\'66\'83\'42\'83\'93\'83\'4f\'82\'cc\'8e\'a9\'93\'ae\'94\'bb\'95\'ca\'83\'76\'83\'8d\'83\'4f\'83\'89\'83\'80\'82\'f0\'8f\'91\'82\'a2\'82\'c4\'82\'dd\'82\'dc\'82\'b5\'82\'bd\'81\'69{\field{\*\fldinst{HYPERLINK "http://blogs.dion.ne.jp/fujidana/archives/4169016.html"}}{\fldrslt -\f0 http://blogs.dion.ne.jp/fujidana/archives/4169016.html}}\'81\'6a\'81\'76\'82\'c5\'8c\'f6\'8a\'4a\'82\'b3\'82\'ea\'82\'c4\'82\'a2\'82\'e9 -\f0 FJDDetectEncoding -\f1 \'82\'f0\'8e\'51\'8d\'6c\'82\'c9\'82\'b3\'82\'b9\'82\'c4\'82\'a2\'82\'bd\'82\'be\'82\'ab\'82\'dc\'82\'b5\'82\'bd\'81\'42 -\f0 FJDDetectEncoding -\f1 \'82\'cd -\f0 BSD -\f1 \'83\'89\'83\'43\'83\'5a\'83\'93\'83\'58\'82\'c5\'8c\'f6\'8a\'4a\'82\'b3\'82\'ea\'82\'c4\'82\'a2\'82\'dc\'82\'b7\'81\'42\ -*. -\f0 RegexKitLite (written by John Engelhart \'96 {\field{\*\fldinst{HYPERLINK "http://regexkit.sourceforge.net/RegexKitLite/"}}{\fldrslt http://regexkit.sourceforge.net/RegexKitLite/}}) -\f2 \'82\'f0\'8e\'67\'97\'70\'82\'b3\'82\'b9\'82\'c4\'82\'a2\'82\'bd\'82\'be\'82\'ab\'82\'dc\'82\'b5\'82\'bd\'81\'42 -\f0 RegexKitLite -\f1 \'82\'cd -\f0 BSD -\f1 \'83\'89\'83\'43\'83\'5a\'83\'93\'83\'58\'82\'c5\'8c\'f6\'8a\'4a\'82\'b3\'82\'ea\'82\'c4\'82\'a2\'82\'dc\'82\'b7\'81\'42\ -*. \'83\'45\'83\'46\'83\'75\'83\'54\'83\'43\'83\'67 [ -\f0 HMDT]({\field{\*\fldinst{HYPERLINK "http://hmdt.jp/"}}{\fldrslt http://hmdt.jp/}}) -\f1 \'82\'c5\'82\'cc\'8f\'ee\'95\'f1\'82\'f0\'95\'9d\'8d\'4c\'82\'ad\'8e\'51\'8d\'6c\'82\'c9\'82\'b3\'82\'b9\'82\'c4\'82\'a2\'82\'bd\'82\'be\'82\'ab\'82\'dc\'82\'b5\'82\'bd\'81\'42 -\f0 \ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720 - -\f1 \cf0 *. \'83\'45\'83\'46\'83\'75\'83\'54\'83\'43\'83\'67 [ -\f0 Cocoabuilder]({\field{\*\fldinst{HYPERLINK "http://www.cocoabuilder.com/"}}{\fldrslt http://www.cocoabuilder.com/}}) -\f1 \'82\'c5\'82\'cc\'8f\'ee\'95\'f1\'82\'f0\'95\'9d\'8d\'4c\'82\'ad\'8e\'51\'8d\'6c\'82\'c9\'82\'b3\'82\'b9\'82\'c4\'82\'a2\'82\'bd\'82\'be\'82\'ab\'82\'dc\'82\'b5\'82\'bd\'81\'42\ -*. \'83\'74\'83\'40\'83\'43\'83\'8b\'83\'68\'83\'8d\'83\'62\'83\'76\'82\'c5\'82\'cc\'95\'b6\'8e\'9a\'97\'f1\'91\'7d\'93\'fc\'8b\'40\'94\'5c\'82\'cc\'81\'41\'90\'b6\'90\'ac\'92\'e8\'8b\'60\'95\'b6\'8e\'9a\'97\'f1\'82\'cd -\f0 mi -\f1 ( -\f0 written by Daisuke Kamiyama \'96 {\field{\*\fldinst{HYPERLINK "http://www.mimikaki.net/"}}{\fldrslt http://www.mimikaki.net/}} -\f1 ) \'82\'cc\'91\'7d\'93\'fc\'95\'b6\'8e\'9a\'97\'f1\'92\'e8\'8b\'60\'83\'74\'83\'48\'81\'5b\'83\'7d\'83\'62\'83\'67\'82\'f0\'8e\'51\'8d\'6c\'82\'c9\'82\'b3\'82\'b9\'82\'c4\'82\'a2\'82\'bd\'82\'be\'82\'a2\'82\'c4\'82\'dc\'82\'b7\'81\'42 -\f0 \ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 -\cf0 \ -} \ No newline at end of file diff --git a/Docs/JP/To_0.7.x_Users-jp.rtf b/Docs/JP/To_0.7.x_Users-jp.rtf deleted file mode 100644 index d32e4e60a6..0000000000 --- a/Docs/JP/To_0.7.x_Users-jp.rtf +++ /dev/null @@ -1,42 +0,0 @@ -{\rtf1\mac\ansicpg10001\cocoartf824\cocoasubrtf110 -\readonlydoc1{\fonttbl\f0\fnil\fcharset78 HiraKakuPro-W6;\f1\fswiss\fcharset77 Helvetica-Bold;\f2\fswiss\fcharset77 Helvetica; -\f3\fnil\fcharset78 HiraKakuPro-W3;} -{\colortbl;\red255\green255\blue255;} -\paperw11904\paperh16836\margl1440\margr1440\vieww13000\viewh10140\viewkind0 -\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural - -\f0\b\fs32 \cf0 \'83\'6f\'81\'5b\'83\'57\'83\'87\'83\'93 -\f1 0.7.x -\f0 \'88\'c8\'91\'4f\'82\'cc\'83\'86\'81\'5b\'83\'55\'82\'cc\'95\'fb\'82\'d6 -\f2\b0\fs24 \ -\ -\ -\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural - -\f0\b \cf0 \'83\'47\'83\'93\'83\'52\'81\'5b\'83\'66\'83\'42\'83\'93\'83\'4f\'82\'c9\'82\'c2\'82\'a2\'82\'c4\'81\'41\'93\'59\'95\'74\'83\'68\'83\'4c\'83\'85\'83\'81\'83\'93\'83\'67\'81\'75AboutCotEditor\'81\'76\'82\'c9\'82\'cd -\f1 0.7.x -\f0 \'82\'dc\'82\'c5\'8a\'d4\'88\'e1\'82\'c1\'82\'bd\'93\'e0\'97\'65\'82\'aa\'8b\'4c\'82\'b3\'82\'ea\'82\'c4\'82\'a2\'82\'dc\'82\'b5\'82\'bd\'81\'42\ -\'82\'dc\'82\'bd\'81\'41\'83\'41\'83\'76\'83\'8a\'83\'50\'81\'5b\'83\'56\'83\'87\'83\'93\'82\'cc\'83\'66\'83\'74\'83\'48\'83\'8b\'83\'67\'90\'dd\'92\'e8\'82\'c9\'82\'c2\'82\'a2\'82\'c4\'82\'e0\'8c\'eb\'82\'c1\'82\'bd\'8a\'ee\'8f\'80\'82\'c9\'89\'88\'82\'c1\'82\'c4\'82\'a2\'82\'dc\'82\'b5\'82\'bd\'82\'cc\'82\'c5\'81\'41\'82\'bb\'82\'ea\'82\'bc\'82\'ea\'83\'6f\'81\'5b\'83\'57\'83\'87\'83\'930.8.0\'82\'c5\'95\'cf\'8d\'58\'82\'b5\'82\'c4\'82\'a2\'82\'dc\'82\'b7\'81\'42\ - -\f3\b0 \'93\'59\'95\'74\'83\'68\'83\'4c\'83\'85\'83\'81\'83\'93\'83\'67\'81\'75AboutCotEditor\'81\'76\'82\'cc\'81\'75\'83\'47\'83\'93\'83\'52\'81\'5b\'83\'66\'83\'42\'83\'93\'83\'4f\'83\'81\'83\'6a\'83\'85\'81\'5b\'82\'c9\'82\'c2\'82\'a2\'82\'c4\'81\'76\'82\'f0\'8d\'87\'82\'ed\'82\'b9\'82\'c4\'82\'b2\'97\'97\'82\'ad\'82\'be\'82\'b3\'82\'a2\'81\'42\ -\ - -\f0\b \'81\'9c. \'93\'59\'95\'74\'83\'68\'83\'4c\'83\'85\'83\'81\'83\'93\'83\'67\'82\'cc\'8b\'4c\'8d\'da\'82\'c9\'82\'c2\'82\'a2\'82\'c4 -\f3\b0 \ -\'8d\'ec\'8b\'c6\'82\'cc\'93\'e0\'97\'65\'82\'c9\'82\'e6\'82\'e8\'93\'4b\'82\'b7\'82\'e9\'83\'47\'83\'93\'83\'52\'81\'5b\'83\'66\'83\'42\'83\'93\'83\'4f\'82\'cd\'88\'d9\'82\'c8\'82\'e9\'82\'e0\'82\'cc\'82\'cc\'81\'41\'88\'ea\'94\'ca\'93\'49\'82\'c8\'8d\'ec\'8b\'c6\'82\'c5\'82\'cd\'81\'75\'93\'fa\'96\'7b\'8c\'ea\'81\'69Shift JIS\'81\'6a\'81\'76\'82\'aa\'96\'b3\'93\'ef\'82\'be\'82\'c6\'8e\'76\'82\'ed\'82\'ea\'82\'dc\'82\'b7\'81\'42\'82\'b5\'82\'bd\'82\'aa\'82\'c1\'82\'c4\'81\'410.7.x \'82\'dc\'82\'c5\'82\'cc\'93\'59\'95\'74\'83\'68\'83\'4c\'83\'85\'83\'81\'83\'93\'83\'67\'82\'c9\'8f\'91\'82\'a9\'82\'ea\'82\'c4\'82\'a2\'82\'bd\'81\'75\'88\'ea\'94\'ca\'93\'49\'82\'c8 Shift-JIS \'82\'cd\'81\'77\'93\'fa\'96\'7b\'8c\'ea\'81\'69Windows, DOS\'81\'6a\'81\'78\'82\'c5\'82\'a0\'82\'e9\'81\'76\'82\'c6\'82\'a2\'82\'a4\'82\'cc\'82\'cd\'81\'41\ul \'90\'b3\'82\'b5\'82\'ad\'82\'a0\'82\'e8\'82\'dc\'82\'b9\'82\'f1\ulnone \'82\'c5\'82\'b5\'82\'bd\'81\'42\ -\ -\'83\'6f\'81\'5b\'83\'57\'83\'87\'83\'93 0.7.x \'82\'dc\'82\'c5\'82\'cc\'93\'59\'95\'74\'83\'68\'83\'4c\'83\'85\'83\'81\'83\'93\'83\'67\'82\'cc\'8b\'4c\'8f\'71\'82\'f0\'92\'f9\'90\'b3\'82\'a2\'82\'bd\'82\'b5\'82\'dc\'82\'b7\'81\'42\ -\ -\ - -\f0\b \'81\'9c. \'83\'66\'83\'74\'83\'48\'83\'8b\'83\'67\'90\'dd\'92\'e8\'82\'cc\'95\'cf\'8d\'58\'82\'c9\'82\'c2\'82\'a2\'82\'c4 -\f3\b0 \ -\'83\'6f\'81\'5b\'83\'57\'83\'87\'83\'93 0.8.0 \'82\'c5\'88\'ea\'94\'d4\'97\'44\'90\'e6\'82\'b3\'82\'ea\'82\'e9\'83\'47\'83\'93\'83\'52\'81\'5b\'83\'66\'83\'42\'83\'93\'83\'4f\'82\'f0\'81\'75\'93\'fa\'96\'7b\'8c\'ea\'81\'69Shift JIS\'81\'6a\'81\'76\'82\'c9\'95\'cf\'8d\'58\'82\'b5\'82\'dc\'82\'b5\'82\'bd\'81\'42\'82\'dc\'82\'bd\'81\'41\'90\'56\'82\'bd\'82\'c9\'8e\'e6\'82\'e8\'88\'b5\'82\'a6\'82\'e9\'83\'47\'83\'93\'83\'52\'81\'5b\'83\'66\'83\'42\'83\'93\'83\'4f\'82\'cc\'92\'c7\'89\'c1\'82\'e0\'8d\'73\'82\'c1\'82\'c4\'82\'a2\'82\'dc\'82\'b7\'82\'cc\'82\'c5\'81\'41\'89\'ba\'8b\'4c\'82\'cc\'8e\'e8\'8f\'87\'82\'c9\'82\'e6\'82\'e8\'8a\'c2\'8b\'ab\'90\'dd\'92\'e8\'83\'74\'83\'40\'83\'43\'83\'8b\'82\'cc\'8d\'58\'90\'56\'82\'f0\'82\'a8\'8a\'e8\'82\'a2\'82\'b5\'82\'dc\'82\'b7\'81\'42\ -# \'83\'47\'83\'93\'83\'52\'81\'5b\'83\'66\'83\'42\'83\'93\'83\'4f\'83\'8a\'83\'58\'83\'67\'82\'f0\'83\'4a\'83\'58\'83\'5e\'83\'7d\'83\'43\'83\'59\'82\'b5\'82\'c4\'82\'a2\'82\'e9\'8f\'ea\'8d\'87\'81\'41\'8f\'e3\'8f\'91\'82\'ab\'82\'b3\'82\'ea\'82\'dc\'82\'b7\'81\'42\'95\'4b\'97\'76\'82\'c8\'82\'e7\'82\'ce\'81\'41\'89\'ba\'8b\'4c\'82\'cc\'8d\'ec\'8b\'c6\'82\'f0\'8d\'73\'82\'a4\'91\'4f\'82\'c9\'83\'58\'83\'4e\'83\'8a\'81\'5b\'83\'93\'83\'56\'83\'87\'83\'62\'83\'67\'82\'f0\'8e\'42\'82\'e9\'82\'c8\'82\'c7\'82\'b5\'82\'c4\'82\'a8\'82\'a2\'82\'c4\'82\'ad\'82\'be\'82\'b3\'82\'a2\'81\'42\ -\'8d\'ec\'8b\'c6\'8e\'e8\'8f\'87\'81\'46\ -1. \'8a\'c2\'8b\'ab\'90\'dd\'92\'e8\'82\'f0\'8a\'4a\'82\'ab\'81\'41\'81\'75\'83\'74\'83\'48\'81\'5b\'83\'7d\'83\'62\'83\'67\'81\'76\'83\'5e\'83\'75\'82\'f0\'91\'49\'91\'f0\ -2. \'81\'75\'83\'47\'83\'93\'83\'52\'81\'5b\'83\'66\'83\'42\'83\'93\'83\'4f\'81\'76\'83\'5a\'83\'4e\'83\'56\'83\'87\'83\'93\'82\'cc\'89\'45\'89\'ba\'81\'75\'83\'8a\'83\'58\'83\'67\'82\'f0\'95\'d2\'8f\'57...\'81\'76\'83\'7b\'83\'5e\'83\'93\'82\'f0\'83\'4e\'83\'8a\'83\'62\'83\'4e\ -3. \'8a\'4a\'82\'a2\'82\'bd\'83\'56\'81\'5b\'83\'67\'82\'cc\'8d\'b6\'89\'ba\'81\'75\'8f\'6f\'89\'d7\'8e\'9e\'82\'cc\'83\'66\'83\'74\'83\'48\'83\'8b\'83\'67\'82\'c9\'96\'df\'82\'b7\'81\'76\'83\'7b\'83\'5e\'83\'93\'82\'aa\'97\'4c\'8c\'f8\'82\'c5\'82\'a0\'82\'ea\'82\'ce\'81\'41\'82\'b1\'82\'ea\'82\'f0\'83\'4e\'83\'8a\'83\'62\'83\'4e\ -4. \'81\'75OK\'81\'76\'83\'7b\'83\'5e\'83\'93\'82\'f0\'89\'9f\'82\'b7\ -\ -} \ No newline at end of file diff --git a/Docs/JP/To_ATOK_Users-jp.rtf b/Docs/JP/To_ATOK_Users-jp.rtf deleted file mode 100644 index f661422213..0000000000 --- a/Docs/JP/To_ATOK_Users-jp.rtf +++ /dev/null @@ -1,28 +0,0 @@ -{\rtf1\mac\ansicpg10001\cocoartf824\cocoasubrtf330 -\readonlydoc1{\fonttbl\f0\fnil\fcharset78 HiraKakuPro-W6;\f1\fswiss\fcharset77 Helvetica;\f2\fnil\fcharset78 HiraKakuPro-W3; -\f3\fnil\fcharset77 LucidaGrande;} -{\colortbl;\red255\green255\blue255;} -\paperw11904\paperh16836\margl1440\margr1440\vieww11200\viewh7160\viewkind0 -\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural - -\f0\b\fs20 \cf0 \ - -\fs32 ATOK\'83\'86\'81\'5b\'83\'55\'82\'cc\'95\'fb\'82\'d6 -\f1\b0\fs24 \ -\ -\ -\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural - -\f2 \cf0 CotEditor \'82\'c9\'82\'cd\'94\'43\'88\'d3\'82\'cc\'83\'4c\'81\'5b\'93\'fc\'97\'cd\'82\'cc\'91\'67\'82\'dd\'8d\'87\'82\'ed\'82\'b9\'82\'c5\'93\'c1\'92\'e8\'82\'cc\'95\'b6\'8e\'9a\'97\'f1\'82\'f0\'91\'7d\'93\'fc\'82\'b7\'82\'e9\'8b\'40\'94\'5c\'81\'69\'92\'c7\'89\'c1\'83\'65\'83\'4c\'83\'58\'83\'67\'83\'4c\'81\'5b\'83\'6f\'83\'43\'83\'93\'83\'66\'83\'42\'83\'93\'83\'4f\'81\'6a\'82\'aa\'82\'a0\'82\'e8\'82\'dc\'82\'b7\'81\'42\'83\'54\'83\'93\'83\'76\'83\'8b\'82\'c6\'82\'b5\'82\'c4\'81\'41\'83\'66\'83\'74\'83\'48\'83\'8b\'83\'67\'82\'c5\'81\'75Shift + Return \'83\'4c\'81\'5b\'81\'76\'89\'9f\'89\'ba\'82\'c5\'81\'75
    \'89\'fc\'8d\'73\'81\'76\'82\'f0\'91\'7d\'93\'fc\'82\'b7\'82\'e9\'90\'dd\'92\'e8\'82\'f0\'8e\'9d\'82\'bd\'82\'b9\'82\'c4\'82\'a2\'82\'dc\'82\'b7\'82\'aa\'81\'41\'82\'b1\'82\'cc\'81\'75Shift + Return \'83\'4c\'81\'5b\'81\'76\'82\'aa\'81\'41ATOK \'82\'cc\'8e\'9d\'82\'c2\'83\'4c\'81\'5b\'90\'dd\'92\'e8\'82\'c6\'8f\'d5\'93\'cb\'82\'b5\'82\'dc\'82\'b7\'81\'42\ -\ -\'82\'bb\'82\'cc\'82\'dc\'82\'dc\'8e\'67\'82\'a4\'82\'c6 CotEditor \'82\'aa\'83\'4e\'83\'89\'83\'62\'83\'56\'83\'85\'82\'b5\'82\'dc\'82\'b7\'82\'cc\'82\'c5\'81\'41\ul CotEditor \'82\'dc\'82\'bd\'82\'cd ATOK \'82\'cc\'82\'c7\'82\'bf\'82\'e7\'82\'a9\'82\'cc\'81\'75Shift + Return \'83\'4c\'81\'5b\'81\'76\'93\'fc\'97\'cd\'90\'dd\'92\'e8\'82\'f0\'95\'cf\'8d\'58\ulnone \'82\'b5\'82\'c4\'82\'ad\'82\'be\'82\'b3\'82\'a2\'81\'42\ -\ -\ - -\f0\b CotEditor \'82\'c5\'82\'cc\'83\'4c\'81\'5b\'83\'6f\'83\'43\'83\'93\'83\'66\'83\'42\'83\'93\'83\'4f\'82\'cc\'95\'cf\'8d\'58\'95\'fb\'96\'40\'81\'46 -\f2\b0 \ -1. \'8a\'c2\'8b\'ab\'90\'dd\'92\'e8\'82\'cc\'81\'75\'83\'4c\'81\'5b\'83\'6f\'83\'43\'83\'93\'83\'66\'83\'42\'83\'93\'83\'4f\'81\'76\'83\'5e\'83\'75\'82\'c9\'82\'a0\'82\'e9\'81\'75\'92\'c7\'89\'c1\'83\'65\'83\'4c\'83\'58\'83\'67\'83\'4c\'81\'5b\'83\'6f\'83\'43\'83\'93\'83\'66\'83\'42\'83\'93\'83\'4f\'81\'76\'82\'cc\'81\'75\'95\'d2\'8f\'57\'81\'76\'83\'7b\'83\'5e\'83\'93\'82\'f0\'89\'9f\'89\'ba\'82\'b5\'82\'dc\'82\'b7\ -2. \'95\'5c\'8e\'a6\'82\'b3\'82\'ea\'82\'bd\'83\'56\'81\'5b\'83\'67\'82\'c5\'81\'75\'83\'4c\'81\'5b\'81\'76\'97\'f1\'82\'aa\'81\'75 -\f3 \uc0\u8679 \u8617 -\f2 \'81\'76\'82\'cc\'8d\'73\'82\'f0\'83\'5f\'83\'75\'83\'8b\'83\'4e\'83\'8a\'83\'62\'83\'4e\'82\'b5\'81\'41\'90\'56\'82\'bd\'82\'c8\'83\'4c\'81\'5b\'82\'cc\'91\'67\'82\'dd\'8d\'87\'82\'ed\'82\'b9\'82\'f0\'93\'fc\'97\'cd\'82\'b7\'82\'e9\'82\'a9\'81\'41\'8f\'e3\'95\'fb\'82\'cc\'81\'75X\'81\'76\'83\'7b\'83\'5e\'83\'93\'82\'f0\'89\'9f\'82\'b5\'82\'c4\'8d\'ed\'8f\'9c\'82\'b5\'82\'dc\'82\'b7\'81\'42\ -3. \'81\'75OK\'81\'76\'83\'7b\'83\'5e\'83\'93\'82\'f0\'89\'9f\'89\'ba\'82\'b5\'82\'c4\'81\'41\'8a\'6d\'92\'e8\'82\'b5\'82\'dc\'82\'b7} \ No newline at end of file diff --git a/Docs/OgreKit License.txt b/Docs/OgreKit License.txt deleted file mode 100644 index 4aae6558c1..0000000000 --- a/Docs/OgreKit License.txt +++ /dev/null @@ -1,69 +0,0 @@ - -This software is powered by OgreKit. - ------------------------------------------------------------------------------ -OgreKit License ---------------- - -The license of OgreKit follows that of OniGuruma. -It follows the BSD license in the case of the one except for it. - -/* - * Copyright (c) 2003 Isao Sonobe - * 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. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND 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 THE AUTHOR OR 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. - */ - ------------------------------------------------------------------------------ -OniGuruma LICENSE ------------------ - -When this software is partly used or it is distributed with Ruby, -this of Ruby follows the license of Ruby. -It follows the BSD license in the case of the one except for it. - -/*- - * Copyright (c) 2002 K.Kosako - * 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. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND 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 THE AUTHOR OR 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. - */ diff --git a/Docs_for_src/EN/ReadMe_src-en.rtf b/Docs_for_src/EN/ReadMe_src-en.rtf deleted file mode 100644 index c4e5fafd88..0000000000 --- a/Docs_for_src/EN/ReadMe_src-en.rtf +++ /dev/null @@ -1,83 +0,0 @@ -{\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf350 -\readonlydoc1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;\f1\fswiss\fcharset0 Helvetica;} -{\colortbl;\red255\green255\blue255;} -\paperw11900\paperh16840\margl1440\margr1440\vieww10840\viewh8820\viewkind0 -\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural - -\f0\b\fs24 \cf0 About CotEditor Source Code -\f1\b0 \ -\ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802\ql\qnatural -\cf0 # The source code is distributed under the terms of the GNU General Public License. See the bundled \'93GPL.txt\'94 for details.\ -# OgreKit (http://www8.ocn.ne.jp/~sonoisa/OgreKit/) and Oniguruma (http://www.geocities.jp/kosako3/oniguruma/), the framework and library that CotEditor uses, are distributed under the OgreKit License. See the bundled \'93OgreKit License.txt\'94 for details.\ -# The source code is written in Objective-C (UTF-8).\ -\ul # In the case you get some build errors, try cleaning. -\f0 \ulnone \ -\ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802\ql\qnatural - -\b \cf0 Development Environment -\f1\b0 \ -MacBook Air (Late 2010)\ -Mac OS X 10.6.6\ -Xcode 3.2.5\ -\ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802\ql\qnatural - -\f0 \cf0 \ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802\ql\qnatural - -\b \cf0 Distribution Site -\b0 \ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802\ql\qnatural -{\field{\*\fldinst{HYPERLINK "http://sourceforge.jp/projects/coteditor/"}}{\fldrslt -\f1 \cf0 http://sourceforge.jp/projects/coteditor/}}\ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802\ql\qnatural - -\f1 \cf0 \ -\ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802\ql\qnatural - -\f0\b \cf0 Copyrights -\b0 \ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802\ql\qnatural - -\f1 \cf0 CotEditor\ -Copyright (c) 2005 nakamuxu\ -Copyright (c) 2011 usami-k\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural -\cf0 All rights reserved.\ -\ -OgreKit ({\field{\*\fldinst{HYPERLINK "http://www8.ocn.ne.jp/~sonoisa/OgreKit/"}}{\fldrslt http://www8.ocn.ne.jp/~sonoisa/OgreKit/}})\ -Copyright (c) 2003 Isao Sonobe\ - All rights reserved.\ -\ -Oniguruma ({\field{\*\fldinst{HYPERLINK "http://www.geocities.jp/kosako3/oniguruma/"}}{\fldrslt http://www.geocities.jp/kosako3/oniguruma/}})\ -Copyright (c) 2002 K.Kosako\ - All rights reserved.\ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802\ql\qnatural -\cf0 \ -Smultron ({\field{\*\fldinst{HYPERLINK "http://smultron.sourceforge.net/"}}{\fldrslt http://smultron.sourceforge.net/}})\ -Copyright (c) 2004 Peter Borg\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural -\cf0 All rights reserved.\ -\ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802\ql\qnatural -\cf0 UKKQuete, UKXattrMetadataStore ({\field{\*\fldinst{HYPERLINK "http://www.zathras.de/angelweb/sourcecode.htm"}}{\fldrslt http://www.zathras.de/angelweb/sourcecode.htm}})\ -Copyright (c) 2003-06 M. Uli Kusterer\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural -\cf0 All rights reserved.\ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802\ql\qnatural -\cf0 \ -FJDDetectEncoding ({\field{\*\fldinst{HYPERLINK "http://blogs.dion.ne.jp/fujidana/archives/4169016.html"}}{\fldrslt http://blogs.dion.ne.jp/fujidana/archives/4169016.html}})\ -Copyright (c) 2006 FUJIDANA\ - All rights reserved.\ -\ -RegexKitLite ({\field{\*\fldinst{HYPERLINK "http://regexkit.sourceforge.net/RegexKitLite/"}}{\fldrslt http://regexkit.sourceforge.net/RegexKitLite/}})\ -Copyright (c) 2008 John Engelhart\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural -\cf0 All rights reserved.\ -\ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802\ql\qnatural -\cf0 \ -} \ No newline at end of file diff --git a/Docs_for_src/JP/AboutHelp-jp.rtf b/Docs_for_src/JP/AboutHelp-jp.rtf deleted file mode 100644 index 29f2d771ad..0000000000 --- a/Docs_for_src/JP/AboutHelp-jp.rtf +++ /dev/null @@ -1,77 +0,0 @@ -{\rtf1\mac\ansicpg10001\cocoartf824\cocoasubrtf410 -{\fonttbl\f0\fnil\fcharset78 HiraKakuPro-W6;\f1\fnil\fcharset78 HiraKakuPro-W3;\f2\fswiss\fcharset77 Helvetica; -} -{\colortbl;\red255\green255\blue255;} -\paperw11900\paperh16840\margl1440\margr1440\vieww11040\viewh9000\viewkind0 -\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural - -\f0\b\fs28 \cf0 \ -\'81\'75CotEditor \'83\'77\'83\'8b\'83\'76\'83\'74\'83\'40\'83\'43\'83\'8b\'81\'76\'82\'c9\'82\'c2\'82\'a2\'82\'c4 -\f1\b0\fs24 \ -\ -\ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802\ql\qnatural -\cf0 # -\f2 GPL -\f1 \'83\'89\'83\'43\'83\'5a\'83\'93\'83\'58\'82\'c5\'82\'b7\'81\'42\'83\'89\'83\'43\'83\'5a\'83\'93\'83\'58\'82\'c9\'8a\'ee\'82\'c3\'82\'a2\'82\'bd\'8e\'e6\'82\'e8\'88\'b5\'82\'a2\'82\'f0\'82\'a8\'8a\'e8\'82\'a2\'82\'b5\'82\'dc\'82\'b7\'81\'42\ -# \'83\'89\'83\'43\'83\'5a\'83\'93\'83\'58\'82\'c9\'8a\'d6\'82\'b7\'82\'e9\'8f\'da\'8d\'d7\'82\'cd\'81\'41\'93\'59\'95\'74\'82\'cc\'83\'68\'83\'4c\'83\'85\'83\'81\'83\'93\'83\'67\'81\'75GPL.txt\'81\'76\'82\'dc\'82\'bd\'82\'cd\'81\'75GPL-euc-JP.txt\'81\'76\'82\'f0\'82\'b2\'97\'97\'82\'ad\'82\'be\'82\'b3\'82\'a2\'81\'42\ -\ -\ -\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural -\cf0 \ -\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural - -\f0\b \cf0 \'91\'ce\'89\'9e\'8c\'be\'8c\'ea\'81\'69\'92\'98\'8d\'ec\'8e\'d2 -\f1\b0 \'8c\'68\'8f\'cc\'97\'aa -\f0\b \'81\'6a\'81\'46 -\f1\b0 \ -\'93\'fa\'96\'7b\'8c\'ea\'81\'69{\field{\*\fldinst{HYPERLINK "http://www.aynimac.com/"}}{\fldrslt nakamuxu}}\'81\'41\'8c\'b4\'92\'98\'8d\'ec\'8e\'d2\'81\'46{\field{\*\fldinst{HYPERLINK "http://www.fan.gr.jp/~sakai/"}}{\fldrslt \'8d\'e2\'88\'e4\'8d\'5f\'90\'6c}}\'81\'6a\ -\ -\ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802\ql\qnatural - -\f0\b \cf0 \'94\'7a\'95\'7a\'83\'79\'81\'5b\'83\'57 -\f1\b0 :\ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802\ql\qnatural -{\field{\*\fldinst{HYPERLINK "http://www.aynimac.com/"}}{\fldrslt \cf0 http://www.aynimac.com/}}\ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802\ql\qnatural - -\f2 \cf0 \ -\ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802\ql\qnatural - -\f0\b \cf0 \'8d\'ec\'8e\'d2\'98\'41\'97\'8d\'90\'e6 -\f2\b0 :\ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802\ql\qnatural - -\f1 \cf0 \'8f\'e3\'8b\'4c\'81\'75\'94\'7a\'95\'7a\'83\'79\'81\'5b\'83\'57\'81\'76\'82\'c9\'82\'a0\'82\'e9\'83\'81\'81\'5b\'83\'8b\'83\'41\'83\'68\'83\'8c\'83\'58 -\f2 \ -\ -\ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802\ql\qnatural - -\f0\b \cf0 \'8e\'d3\'8e\'ab -\f1\b0 :\ -hiroto sakai's site ({\field{\*\fldinst{HYPERLINK "http://www.fan.gr.jp/~sakai/"}}{\fldrslt http://www.fan.gr.jp/~sakai/}})\uc0\u65279 \'82\'cc\'8d\'e2\'88\'e4\'8d\'5f\'90\'6c\'82\'b3\'82\'f1\'82\'c9\'93\'fa\'96\'7b\'8c\'ea\'94\'c5\'83\'77\'83\'8b\'83\'76\'83\'74\'83\'40\'83\'43\'83\'8b\'82\'f0\'8d\'ec\'90\'ac\'81\'5e\'92\'f1\'8b\'9f\'82\'b5\'82\'c4\'82\'a2\'82\'bd\'82\'be\'82\'ab\'82\'dc\'82\'b5\'82\'bd\'81\'69\'92\'f1\'8b\'9f\'82\'f0\'82\'a2\'82\'bd\'82\'be\'82\'a2\'82\'c4\'82\'a9\'82\'e7\'82\'cc\'83\'6f\'81\'5b\'83\'57\'83\'87\'83\'93\'83\'41\'83\'62\'83\'76\'95\'94\'95\'aa\'82\'cd nakamuxu \'82\'aa\'89\'c1\'95\'4d\'82\'b5\'81\'41\'83\'6f\'81\'5b\'83\'57\'83\'87\'83\'930.9.2\'82\'c5\'93\'59\'95\'74\'82\'f0\'8a\'4a\'8e\'6e\'82\'b5\'82\'dc\'82\'b5\'82\'bd\'81\'6a\'81\'42\ -\'8b\'4c\'82\'b5\'82\'c4\'81\'41\'8a\'b4\'8e\'d3\'90\'5c\'82\'b5\'8f\'e3\'82\'b0\'82\'dc\'82\'b7\'81\'42 -\f2 \ -\ -\ -\ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802\ql\qnatural - -\f1 \cf0 ----\ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802\ql\qnatural - -\f0\b \cf0 \'83\'77\'83\'8b\'83\'76\'83\'74\'83\'40\'83\'43\'83\'8b\'82\'cc\'93\'59\'95\'74\'81\'46 -\f2\b0 \ -\ - -\f0\b \'8d\'ec\'8b\'c6\'8e\'e8\'8f\'87\'81\'46\ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802\ql\qnatural - -\f1\b0 \cf0 1. CotEditor \'82\'f0 Finder \'8f\'e3\'82\'c5\'89\'45\'83\'4e\'83\'8a\'83\'62\'83\'4e\'82\'b5\'81\'41\'81\'75\'83\'70\'83\'62\'83\'50\'81\'5b\'83\'57\'82\'cc\'93\'e0\'97\'65\'82\'f0\'95\'5c\'8e\'a6\'81\'76\'82\'f0\'91\'49\'91\'f0\ -2. \'83\'77\'83\'8b\'83\'76\'83\'74\'83\'40\'83\'43\'83\'8b\'82\'c9\'8d\'87\'92\'76\'82\'b5\'82\'bd\'8c\'be\'8c\'ea\'82\'cc\'83\'8d\'81\'5b\'83\'4a\'83\'89\'83\'43\'83\'59\'83\'8a\'83\'5c\'81\'5b\'83\'58\'83\'74\'83\'48\'83\'8b\'83\'5f\'82\'c9\'81\'41\'81\'75CotEditorHelp\'81\'76\'83\'74\'83\'48\'83\'8b\'83\'5f\'82\'f0\'93\'fc\'82\'ea\'82\'dc\'82\'b7\ -3. \'93\'af\'97\'6c\'82\'c9\'81\'41\'81\'75InfoPlist.strings\'81\'76\'83\'74\'83\'40\'83\'43\'83\'8b\'82\'f0\'83\'8d\'81\'5b\'83\'4a\'83\'89\'83\'43\'83\'59\'83\'8a\'83\'5c\'81\'5b\'83\'58\'83\'74\'83\'48\'83\'8b\'83\'5f\'82\'c9\'93\'fc\'82\'ea\'81\'41\'8f\'e3\'8f\'91\'82\'ab\'82\'b5\'82\'dc\'82\'b7\'81\'42\ -\ -} \ No newline at end of file diff --git a/Docs_for_src/JP/ReadMe_src-jp.rtf b/Docs_for_src/JP/ReadMe_src-jp.rtf deleted file mode 100644 index c002a4e55b..0000000000 --- a/Docs_for_src/JP/ReadMe_src-jp.rtf +++ /dev/null @@ -1,98 +0,0 @@ -{\rtf1\ansi\ansicpg932\cocoartf1038\cocoasubrtf350 -\readonlydoc1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;\f1\fswiss\fcharset0 Helvetica;} -{\colortbl;\red255\green255\blue255;} -\paperw11900\paperh16840\margl1440\margr1440\vieww10840\viewh8820\viewkind0 -\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural - -\f0\b\fs24 \cf0 CotEditor \'82\'cc\'83\'5c\'81\'5b\'83\'58\'83\'52\'81\'5b\'83\'68\'82\'c9\'82\'c2\'82\'a2\'82\'c4 -\f1\b0 \ -\ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802\ql\qnatural - -\f0 \cf0 # -\f1 GPL -\f0 \'83\'89\'83\'43\'83\'5a\'83\'93\'83\'58\'82\'c5\'82\'b7\'81\'42\'83\'89\'83\'43\'83\'5a\'83\'93\'83\'58\'82\'c9\'8a\'ee\'82\'c3\'82\'a2\'82\'bd\'8e\'e6\'82\'e8\'88\'b5\'82\'a2\'82\'f0\'82\'a8\'8a\'e8\'82\'a2\'82\'b5\'82\'dc\'82\'b7\'81\'42\ -\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural -\cf0 \'83\'89\'83\'43\'83\'5a\'83\'93\'83\'58\'82\'c9\'8a\'d6\'82\'b7\'82\'e9\'8f\'da\'8d\'d7\'82\'cd\'81\'41\'93\'59\'95\'74\'82\'cc\'83\'68\'83\'4c\'83\'85\'83\'81\'83\'93\'83\'67\'81\'75GPL.txt\'81\'76\'82\'dc\'82\'bd\'82\'cd\'81\'75GPL-euc-JP.txt\'81\'76\'82\'f0\'82\'b2\'97\'97\'82\'ad\'82\'be\'82\'b3\'82\'a2\'81\'42\ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802\ql\qnatural -\cf0 # \'8e\'67\'97\'70\'82\'b5\'82\'c4\'82\'a2\'82\'e9\'83\'74\'83\'8c\'81\'5b\'83\'80\'83\'8f\'81\'5b\'83\'4e OgreKit ( -\f1 http://www8.ocn.ne.jp/~sonoisa/OgreKit/ -\f0 ) \'82\'c6\'83\'89\'83\'43\'83\'75\'83\'89\'83\'8a Oniguruma ( -\f1 http://www.geocities.jp/kosako3/oniguruma/) -\f0 \'82\'cd OgreKit License \'82\'c5\'82\'b7\'81\'42\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural -\cf0 OgreKit \'82\'c8\'82\'e7\'82\'d1\'82\'c9 Oniguruma \'82\'cc\'83\'89\'83\'43\'83\'5a\'83\'93\'83\'58\'82\'cc\'8f\'da\'8d\'d7\'82\'cd\'93\'59\'95\'74\'82\'cc\'81\'75 -\f1 OgreKit Lisense.txt -\f0 \'81\'76\'82\'f0\'82\'b2\'97\'97\'82\'ad\'82\'be\'82\'b3\'82\'a2\'81\'42\ -\ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802\ql\qnatural -\cf0 # \'8c\'be\'8c\'ea\'82\'cd Objective - C\'81\'41\'95\'b6\'8e\'9a\'83\'52\'81\'5b\'83\'68\'82\'cd UTF-8 \'82\'c5\'8f\'91\'82\'a9\'82\'ea\'82\'c4\'82\'a2\'82\'dc\'82\'b7\'81\'42\ -# \ul \'83\'47\'83\'89\'81\'5b\'82\'aa\'8f\'6f\'82\'c4\'83\'72\'83\'8b\'83\'68\'82\'c5\'82\'ab\'82\'c8\'82\'a2\'8e\'9e\'82\'cd\'81\'41\'83\'4e\'83\'8a\'81\'5b\'83\'6a\'83\'93\'83\'4f\'82\'b5\'82\'c4\'82\'dd\'82\'c4\'82\'ad\'82\'be\'82\'b3\'82\'a2\'81\'42\ulnone \ -\ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802\ql\qnatural - -\b \cf0 \'8a\'4a\'94\'ad\'8a\'c2\'8b\'ab -\f1\b0 :\ -MacBook Air (Late 2010)\ -Mac OS X 10.6.6\ -Xcode 3.2.5\ -\ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802\ql\qnatural - -\f0 \cf0 \ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802\ql\qnatural - -\b \cf0 \'94\'7a\'95\'7a\'83\'79\'81\'5b\'83\'57 -\b0 :\ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802\ql\qnatural -{\field{\*\fldinst{HYPERLINK "http://sourceforge.jp/projects/coteditor/"}}{\fldrslt -\f1 \cf0 http://sourceforge.jp/projects/coteditor/}}\ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802\ql\qnatural - -\f1 \cf0 \ -\ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802\ql\qnatural - -\f0\b \cf0 \'92\'98\'8d\'ec\'8c\'a0\'95\'5c\'8e\'a6 -\b0 :\ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802\ql\qnatural - -\f1 \cf0 CotEditor\ -Copyright (c) 2005 nakamuxu\ -Copyright (c) 2011 usami-k\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural -\cf0 All rights reserved.\ -\ -OgreKit ({\field{\*\fldinst{HYPERLINK "http://www8.ocn.ne.jp/~sonoisa/OgreKit/"}}{\fldrslt http://www8.ocn.ne.jp/~sonoisa/OgreKit/}})\ -Copyright (c) 2003 Isao Sonobe\ - All rights reserved.\ -\ -Oniguruma ({\field{\*\fldinst{HYPERLINK "http://www.geocities.jp/kosako3/oniguruma/"}}{\fldrslt http://www.geocities.jp/kosako3/oniguruma/}})\ -Copyright (c) 2002 K.Kosako\ - All rights reserved.\ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802\ql\qnatural -\cf0 \ -Smultron ({\field{\*\fldinst{HYPERLINK "http://smultron.sourceforge.net/"}}{\fldrslt http://smultron.sourceforge.net/}})\ -Copyright (c) 2004 Peter Borg\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural -\cf0 All rights reserved.\ -\ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802\ql\qnatural -\cf0 UKKQuete, UKXattrMetadataStore ({\field{\*\fldinst{HYPERLINK "http://www.zathras.de/angelweb/sourcecode.htm"}}{\fldrslt http://www.zathras.de/angelweb/sourcecode.htm}})\ -Copyright (c) 2003-06 M. Uli Kusterer\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural -\cf0 All rights reserved.\ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802\ql\qnatural -\cf0 \ -FJDDetectEncoding ({\field{\*\fldinst{HYPERLINK "http://blogs.dion.ne.jp/fujidana/archives/4169016.html"}}{\fldrslt http://blogs.dion.ne.jp/fujidana/archives/4169016.html}})\ -Copyright (c) 2006 FUJIDANA\ - All rights reserved.\ -\ -RegexKitLite ({\field{\*\fldinst{HYPERLINK "http://regexkit.sourceforge.net/RegexKitLite/"}}{\fldrslt http://regexkit.sourceforge.net/RegexKitLite/}})\ -Copyright (c) 2008 John Engelhart\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural -\cf0 All rights reserved.\ -\ -\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802\ql\qnatural -\cf0 \ -} \ No newline at end of file diff --git a/English.lproj/CotEditorHelp/CotEditorHelp idx b/English.lproj/CotEditorHelp/CotEditorHelp idx deleted file mode 100644 index 206153a240..0000000000 Binary files a/English.lproj/CotEditorHelp/CotEditorHelp idx and /dev/null differ diff --git a/English.lproj/CotEditorHelp/CotEditorHelp.helpindex b/English.lproj/CotEditorHelp/CotEditorHelp.helpindex deleted file mode 100644 index ccd225c5f1..0000000000 Binary files a/English.lproj/CotEditorHelp/CotEditorHelp.helpindex and /dev/null differ diff --git a/English.lproj/CotEditorHelp/CotEditorHelp.html b/English.lproj/CotEditorHelp/CotEditorHelp.html deleted file mode 100644 index 0a655ec1e1..0000000000 --- a/English.lproj/CotEditorHelp/CotEditorHelp.html +++ /dev/null @@ -1 +0,0 @@ - CotEditor Help


    CotEditor Help

    www.aynimac.com
    \ No newline at end of file diff --git a/English.lproj/CotEditorHelp/gfx/icon128.png b/English.lproj/CotEditorHelp/gfx/icon128.png deleted file mode 100644 index 266e951d18..0000000000 Binary files a/English.lproj/CotEditorHelp/gfx/icon128.png and /dev/null differ diff --git a/English.lproj/CotEditorHelp/gfx/icon16.png b/English.lproj/CotEditorHelp/gfx/icon16.png deleted file mode 100644 index 99dbbca14e..0000000000 Binary files a/English.lproj/CotEditorHelp/gfx/icon16.png and /dev/null differ diff --git a/English.lproj/CotEditorHelp/gfx/icon32.png b/English.lproj/CotEditorHelp/gfx/icon32.png deleted file mode 100644 index 555c115197..0000000000 Binary files a/English.lproj/CotEditorHelp/gfx/icon32.png and /dev/null differ diff --git a/English.lproj/CotEditorHelp/gfx/ov_color.png b/English.lproj/CotEditorHelp/gfx/ov_color.png deleted file mode 100644 index f0afe2675c..0000000000 Binary files a/English.lproj/CotEditorHelp/gfx/ov_color.png and /dev/null differ diff --git a/English.lproj/CotEditorHelp/gfx/ov_complete.png b/English.lproj/CotEditorHelp/gfx/ov_complete.png deleted file mode 100644 index 141eff81e0..0000000000 Binary files a/English.lproj/CotEditorHelp/gfx/ov_complete.png and /dev/null differ diff --git a/English.lproj/CotEditorHelp/gfx/ov_find.png b/English.lproj/CotEditorHelp/gfx/ov_find.png deleted file mode 100644 index 6d93e02d64..0000000000 Binary files a/English.lproj/CotEditorHelp/gfx/ov_find.png and /dev/null differ diff --git a/English.lproj/CotEditorHelp/gfx/ov_outline.png b/English.lproj/CotEditorHelp/gfx/ov_outline.png deleted file mode 100644 index 6caa8c3bfe..0000000000 Binary files a/English.lproj/CotEditorHelp/gfx/ov_outline.png and /dev/null differ diff --git a/English.lproj/CotEditorHelp/gfx/ov_scriptmenu.png b/English.lproj/CotEditorHelp/gfx/ov_scriptmenu.png deleted file mode 100644 index bdd89836ff..0000000000 Binary files a/English.lproj/CotEditorHelp/gfx/ov_scriptmenu.png and /dev/null differ diff --git a/English.lproj/CotEditorHelp/gfx/split_editor.png b/English.lproj/CotEditorHelp/gfx/split_editor.png deleted file mode 100644 index 3fb4ba284e..0000000000 Binary files a/English.lproj/CotEditorHelp/gfx/split_editor.png and /dev/null differ diff --git a/English.lproj/CotEditorHelp/gfx/wind_encoding.png b/English.lproj/CotEditorHelp/gfx/wind_encoding.png deleted file mode 100644 index d1b12ac8b3..0000000000 Binary files a/English.lproj/CotEditorHelp/gfx/wind_encoding.png and /dev/null differ diff --git a/English.lproj/CotEditorHelp/pgs/about_applescript.html b/English.lproj/CotEditorHelp/pgs/about_applescript.html deleted file mode 100644 index a97fcfb69c..0000000000 --- a/English.lproj/CotEditorHelp/pgs/about_applescript.html +++ /dev/null @@ -1 +0,0 @@ - Working with AppleScript

    Working with AppleScript

    CotEditor supports AppleScript and has own AppleScript dictionary so that you can look up the classes or commands available with CotEditor. To open the dictionay:

    1. Choose Help > Open Dictionary.
    • Details and examples of AppleScript classes or commands can be found in the bundled documentation: /Script/AppleScript/AboutAppleScript-en.rtf

    See also

    \ No newline at end of file diff --git a/English.lproj/CotEditorHelp/pgs/about_autodetect_charset.html b/English.lproj/CotEditorHelp/pgs/about_autodetect_charset.html deleted file mode 100644 index 517f98b2ac..0000000000 --- a/English.lproj/CotEditorHelp/pgs/about_autodetect_charset.html +++ /dev/null @@ -1 +0,0 @@ - Using encoding declarations (charset=, encoding=, @charset) for auto-detection

    Using encoding declarations (charset=, encoding=, @charset) for auto-detection

    When both “Auto-Detect” and “Refer to encoding declaration” are activated in the Format preferences pane, CotEditor reads the following types of encoding declarations (if present) — charset=, encoding=, @charset — when opening a file. If written properly, these declarations will be used to determine the file's character encoding.

    A declaration can be anywhere in the document, the one either in comment area or in a plain sentence is detected. When you want to use a phrase such as “charset=UTF-8” even though your document's encoding is not UTF-8, you need to put an actual encoding declaration prior to the phrase, or, turn off “Refer to encoding declaration” in the Format preferences.

    • To make auto-detection of character encoding work, you have to put an equal character (“=”, no other characters) right after “charset” or “encoding.”
    • The encoding name which comes after “charset=” or “encoding=” can be without double-quotes (") around.
    • In the case there are multiple encoding declarations in your document, CotEditor uses the first one to determine the character encoding.
    • When the encoding is declared as Shift JIS (written like charset="Shift_JIS"), CotEditor chooses the prioritized one (the upper one in the encoding list) between Japanese (Shift JIS) and Japanese (Shift JIS X0213).
      => Setting the priority of encoding auto-detection

    See also

    \ No newline at end of file diff --git a/English.lproj/CotEditorHelp/pgs/about_coloring_priority.html b/English.lproj/CotEditorHelp/pgs/about_coloring_priority.html deleted file mode 100644 index a81e5c69d6..0000000000 --- a/English.lproj/CotEditorHelp/pgs/about_coloring_priority.html +++ /dev/null @@ -1 +0,0 @@ - Syntax coloring order

    Syntax coloring order

    • When performing syntax coloring, CotEditor colors the code elements in the following order: 1)Keywords, 2)Commands, 3)Values, 4)Numbers, 5)Strings, 6)Characters, 7)Comments
    • When your document contains an item to be colored which matches multiple categories (e.g. Keywords AND Commands), the color of the latter in the order will overwrite the former's.
    \ No newline at end of file diff --git a/English.lproj/CotEditorHelp/pgs/about_complist_settings.html b/English.lproj/CotEditorHelp/pgs/about_complist_settings.html deleted file mode 100644 index 40fb7608d9..0000000000 --- a/English.lproj/CotEditorHelp/pgs/about_complist_settings.html +++ /dev/null @@ -1 +0,0 @@ - Setting up the completion list

    Setting up the completion list

    You can create your own completion list by customizing the corresponding syntax style. After choosing a style and clicking Edit (see About syntax styles), select Completion List Setting from the drop-down menu.

    CompletionsThe words you put here appear in the completion list.

    If no words here, the words generated by your syntax coloring rule will appear in the list.

    See also

    \ No newline at end of file diff --git a/English.lproj/CotEditorHelp/pgs/about_filedrop.html b/English.lproj/CotEditorHelp/pgs/about_filedrop.html deleted file mode 100644 index 4fa1ccbede..0000000000 --- a/English.lproj/CotEditorHelp/pgs/about_filedrop.html +++ /dev/null @@ -1 +0,0 @@ - Pre-formatted strings for File Drop

    Pre-formatted strings for File Drop

    CotEditor has the following pre-formatted strings for the use of File Drop.

    Pre-formatted stringWill be replaced with
    <<<ABSOLUTE-PATH>>>The absolute path of the dropped file (i.e. source file).
    <<<RELATIVE-PATH>>>The relative path from your document to the dropped file.
    <<<FILENAME>>>The name of the dropped file with extension.
    <<<FILENAME-NOSUFFIX>>>The name of the dropped file without extension.
    <<<FILEEXTENSION>>>The file extension of the dropped file.
    <<<FILEEXTENSION-LOWER>>>The file extension of the dropped file (lowercase).
    <<<FILEEXTENSION-UPPER>>>The file extension of the dropped file (uppercase).
    <<<DIRECTORY>>>The directory of the dropped file.
    <<<IMAGEWIDTH>>>The image width (works only when you drop an image file).
    <<<IMAGEHEIGHT>>>The image height (works only when you drop an image file).

    Here are a few examples of what it's like to use pre-formatted strings.

    example 1) When you drop foo.html:
    Insertion format you set<a href="<<<RELATIVE-PATH>>>"></a>
    The string actually inserted<a href="foo.html"></a>
    example 2) When you drop foo.jpg:
    Insertion format you set<img src="<<<FILENAME>>>" width="<<<IMAGEWIDTH>>>" height="<<<IMAGEHEIGHT>>>" />
    The string actually inserted<img src="foo.jpg" width="160" height="80" />

    See also

    \ No newline at end of file diff --git a/English.lproj/CotEditorHelp/pgs/about_move_menu.html b/English.lproj/CotEditorHelp/pgs/about_move_menu.html deleted file mode 100644 index 5408aaa29a..0000000000 --- a/English.lproj/CotEditorHelp/pgs/about_move_menu.html +++ /dev/null @@ -1 +0,0 @@ - Using Go To

    Using Go To

    When you choose Go To in the Find menu, or press Command-L, CotEditor displays the Go To dialog box to give you quick access to the character(s) or the line(s) you want to see.

    In the dialog box, choose either Character or Line, enter the character/line number, and click Select.

    • If you choose Line and type in “3”:
      => The line 3 (the third line from the top) will be selected.
    • If you choose Line and type in “3:2”:
      => What this indicates is “starting from line 3, select 2 lines.” Thus, the line 3 and 4 will be selected.
    • If you choose Line and type in “3:-1”:
      => What this indicates is “starting from line 3, select the rest lines except the last 1 line.” Thus, if the document has 10 lines, the lines from the line 3 to 9 will be selected.

    The same applies when you choose Character.

    You can toggle between Character and Line by pressing Command-L while the Go To dialog box is open.

    \ No newline at end of file diff --git a/English.lproj/CotEditorHelp/pgs/about_outlinemenu_settings.html b/English.lproj/CotEditorHelp/pgs/about_outlinemenu_settings.html deleted file mode 100644 index c10e9d12ab..0000000000 --- a/English.lproj/CotEditorHelp/pgs/about_outlinemenu_settings.html +++ /dev/null @@ -1 +0,0 @@ - Outline Menu settings

    Outline Menu settings

    The settings for customizing Outline Menu are as follows:

    RE stringThe in-document strings matched by the regular expressions you set here will appear in the drop-down menu. This setting is required in order to search the items to be listed (RE stands for Regular Expression).
    ICIf this is selected, case will be ignored during the search. For example, the expression “abc” matches “ABC” or “abc” or “Abc” in your document (IC stands for Ignore Case).
    Menu Title PatternHere, you can format the titles of the Outline Menu items. Both the “RE string” setting and the setting here determine how the corresponding item is titled in the menu.

    The meta characters you can use in Menu Title Pattern are as follows:

    (blank)The whole string matched by your regular expression.
    $0, $&The whole string matched by your regular expression.
    $1 ... $9The string matched by the first through ninth parenthesized subexpression in your regular expression.
    $LNThe line number of a line which contains the first character of the string matched by your regular expression.
    -A separator of the menu (invalid when other letters than “-” are included).
    • To show a meta character such as “$0” in the menu, you need to put a backslash (\) in front of it. You won't see that backslash (\) in the menu.

    See also

    \ No newline at end of file diff --git a/English.lproj/CotEditorHelp/pgs/about_script_name.html b/English.lproj/CotEditorHelp/pgs/about_script_name.html deleted file mode 100644 index ce6e56ad74..0000000000 --- a/English.lproj/CotEditorHelp/pgs/about_script_name.html +++ /dev/null @@ -1 +0,0 @@ - File naming rules for CotEditor scripts

    File naming rules for CotEditor scripts

    This page explains the rules for naming script files.

    Order of appearance
    By adding “number + closing parenthesis ())” at the head of the name, you can line up the files in numerical order.
    The part “number + )” won't be shown in the menu.
    example 1.
    File name01)Open File.scpt
    Appearance in the menuOpen File
    Keyboard shortcuts
    By adding “dot (.) + modifier-key + shortcut-key” in front of the extension, you can assign a keyboard shortcut to the file.
    example 2.
    File nameInsert String.@e.scpt
    Appearance in the menuInsert String (Command-E)
    example 3.
    File name03)Insert Date.@~Y.scpt
    Appearance in the menuInsert Date (Option-Shift-Command-Y)
    Modifier-key notations
    NotationEquivalent key
    ^Control
    $Shift
    ~Option
    @Command
    • Shortcut-keys (e.g. “e” in the example 2) are case sensitive. The one in uppercase indicates that “the Shift key should be pressed together” as in the example 3.
    • A shortcut-key must come after modifier-keys, and must be one letter. Thus, you can't assign the keys such as F1 or Delete to scripts.
    • When the keyboard shortcut you set is already taken by another function, the shortcut for the script will be ignored.
    Separators
    A folder named “-” appears as a separator line in the menu. By adding “number + closing parenthesis ())” at the head of the folder name, you can put a separator between the menu items.

    See also

    \ No newline at end of file diff --git a/English.lproj/CotEditorHelp/pgs/about_script_spec.html b/English.lproj/CotEditorHelp/pgs/about_script_spec.html deleted file mode 100644 index eefc45f4be..0000000000 --- a/English.lproj/CotEditorHelp/pgs/about_script_spec.html +++ /dev/null @@ -1 +0,0 @@ - Working with UNIX scripts

    Working with UNIX scripts

    This page explains how to pass your document's text to UNIX scripts that are executable via the Script menu, or how to receive the outputs from them.

    • The file extensions of the scripts you can add to the Script menu are: .sh .pl .php .rb .py (regardless of their languages)
    • In order to run a script, you need to set execute permission for the script file. To do so, use Terminal.app (located in Applications/Utilities) or chmod-755.app which is bundled in the Extras folder.
    • Line endings in your script must be LF.

    Passing text data to a script

    To pass text data from CotEditor to your script, you need to put a comment at the beginning of the script and write “%%%{CotEditorXInput=xxxx}%%%” inside. Replace “xxxx” with one of the parameters below.

    SelectionTo pass the text you are currently selecting.
    AllTextTo pass the whole text of your document.
    NoneTo pass nothing (default).
    • With no parameters, CotEditor passes nothing just like when you put “None.”
    • A script should capture CotEditor's text data on STDIN (standard in).
    • CotEditor passes text data with UTF-8 encoding.

    Receiving output data from a script

    To make CotEditor receive output data from a script, you need to put a comment at the beginning of the script and write “%%%{CotEditorXOutput=xxxx}%%%” inside. Replace “xxxx” with one of the parameters below.

    ReplaceSelectionTo replace the current selection with the contents of the output data.
    ReplaceAllTextTo replace the whole text of your document with the contents of the output data.
    InsertAfterSelectionTo insert the contents of the output data right after the current selection.
    AppendToAllTextTo insert the contents of the output data at the end of your document.
    PasteboardputsTo store the contents of the output data in clipboard.
    DiscardTo do nothing (default).
    • With no parameters, CotEditor does nothing just like when you put “Discard.”
    • A script should output the text data for CotEditor on STDOUT (standard out).
    • The character encoding of the text that CotEditor receives must be UTF-8.

    See also

    \ No newline at end of file diff --git a/English.lproj/CotEditorHelp/pgs/about_shiftjis.html b/English.lproj/CotEditorHelp/pgs/about_shiftjis.html deleted file mode 100644 index ccc3216132..0000000000 --- a/English.lproj/CotEditorHelp/pgs/about_shiftjis.html +++ /dev/null @@ -1 +0,0 @@ - What is the difference between the four kinds of Shift JIS?

    What is the difference between the four kinds of Shift JIS?

    The four kinds of Shift JIS are different from each other as described below:

    (Shift JIS)The most basic Shift JIS, support for JIS level 1 and 2 Kanji characters.
    (Mac OS)Based on Shift JIS, with extended support for such as Mac-dependent characters. Being used in OS 9 and earlier.
    (Windows, DOS)Based on Shift JIS, with extended support for such as Windows-dependent characters.
    (Shift JIS X0213)Support for JIS X 0213 character sets, which include JIS level 1 through 4 Kanji characters.

    Though choosing an appropriate encoding varies from case to case, it is normally safer to use Japanese (Shift JIS). However, note that there are differences between these encodings in the way of dealing with particular characters as below:

    Halfwidth Yen sign (¥)Halfwidth backslash (\)Halfwidth tilde (~)
    (Shift JIS)AvailableReplaced with fullwidth backslashNot available
    (Mac OS)AvailableAvailableAvailable
    (Windows, DOS)Replaced with halfwidth backslashAvailableAvailable
    (Shift JIS X0213)AvailableReplaced with fullwidth backslashReplaced with fullwidth tilde
    • You can check whether such encoding problematic characters are included in your document by choosing Show Incompatible Char via the File menu.

    See also

    \ No newline at end of file diff --git a/English.lproj/CotEditorHelp/pgs/about_syntaxstyle.html b/English.lproj/CotEditorHelp/pgs/about_syntaxstyle.html deleted file mode 100644 index 0954f60ecf..0000000000 --- a/English.lproj/CotEditorHelp/pgs/about_syntaxstyle.html +++ /dev/null @@ -1 +0,0 @@ - Customizing syntax coloring rules

    Customizing syntax coloring rules

    Syntax coloring rules are determined by the following settings:

    Begin-stringA string which denotes the beginning of the search pattern. This is required in order to search the code elements you want to be colored.
    End-stringA string which denotes the end of the search pattern. This can be left blank.
    ICIf this option is selected, case will be ignored during the search (IC stands for Ignore Case). For example, if you set “abc” as Begin-string and check IC, “ABC” or “abc” or “Abc” in your document will be matched.
    REIf this option is selected, both Begin-string and End-string will be considered as regular expressions (RE stands for Regular Expression).
    • A definition whose Begin-string is blank will be ignored.
    • A definition whose End-string is blank and RE is turned off will be used for defining the completion list as well.
    • The RE setting affects both Begin-string and End-string, which means they should be written in regular expression or plain form both together.

    See also

    \ No newline at end of file diff --git a/English.lproj/CotEditorHelp/pgs/about_syntaxtargets.html b/English.lproj/CotEditorHelp/pgs/about_syntaxtargets.html deleted file mode 100644 index 3f3994b938..0000000000 --- a/English.lproj/CotEditorHelp/pgs/about_syntaxtargets.html +++ /dev/null @@ -1 +0,0 @@ - Syntax coloring objects

    Syntax coloring objects

    The code elements that CotEditor's syntax coloring supports are as follows:

    KeywordsKeywords in source code such as reserved words of programming languages.e.g. for, while, if
    CommandsFunctions or commands in source code.e.g. exit, break, do
    ValuesValue constants in source code.e.g. Null, True, False
    NumbersNumeric constants in source code.e.g. Int i = 0;
    StringsString constants in source code.e.g. String s = "Hello World"
    CharactersCharacter constants in source code.e.g. Char c = 'a'
    CommentsComments in source code.e.g. /* 〜 */, # 〜

    See also

    \ No newline at end of file diff --git a/English.lproj/CotEditorHelp/pgs/faq_about_yen_backslash.html b/English.lproj/CotEditorHelp/pgs/faq_about_yen_backslash.html deleted file mode 100644 index 99835b3140..0000000000 --- a/English.lproj/CotEditorHelp/pgs/faq_about_yen_backslash.html +++ /dev/null @@ -1 +0,0 @@ - The Yen sign appears as a backslash

    The Yen sign appears as a backslash

    With one of the character encodings listed below, a halfwidth Yen character (¥) is displayed as is when you type, but if you change the encoding, or, if you save and reopen the file, it will be displayed as a backslash (\).

    Japanese (Windows, DOS)Arabic (Mac OS)Central European (ISO Latin 2)
    Japanese (EUC)Hebrew (Mac OS)Western (ISO Latin 3)
    Traditional Chinese (EUC)Greek (ISO 8859-7)Central European (ISO Latin 4)
    Simplified Chinese (EUC)Cyrillic (Mac OS)Latin-US (DOS)
    Korean (EUC)Cyrillic (ISO 8859-5)Central European (Windows Latin 2)
    Korean (Windows, DOS)Central European (Mac OS)
    \ No newline at end of file diff --git a/English.lproj/CotEditorHelp/pgs/faq_cannot_display.html b/English.lproj/CotEditorHelp/pgs/faq_cannot_display.html deleted file mode 100644 index 432b9f7a0e..0000000000 --- a/English.lproj/CotEditorHelp/pgs/faq_cannot_display.html +++ /dev/null @@ -1 +0,0 @@ - Characters aren't displayed correctly

    Characters aren't displayed correctly

    Characters can be garbled if CotEditor fails to detect the file's encoding correctly. In such cases, change the character encoding as described below:

    1. Choose Format > File Encoding, and select an encoding from the list.
    2. When a dialog appears, click Reinterpret.

    The behavior of each button in this dialog is as follows:

    Reinterpret
    Reopens the file with the new encoding.
    Convert
    Converts the text from the current encoding to the new one.
    Cancel
    Cancels the operation. The document is left unmodified.

    See also

    \ No newline at end of file diff --git a/English.lproj/CotEditorHelp/pgs/faq_cannot_save.html b/English.lproj/CotEditorHelp/pgs/faq_cannot_save.html deleted file mode 100644 index 1ce51f1433..0000000000 --- a/English.lproj/CotEditorHelp/pgs/faq_cannot_save.html +++ /dev/null @@ -1 +0,0 @@ - I can't save a file

    I can't save a file

    In the cases described below, you can't save the file you're working on. What you need to do then is save it with another name, or change the file permission using Finder or Terminal.

    • You are not the owner of the file.
    • The file is locked.
    \ No newline at end of file diff --git a/English.lproj/CotEditorHelp/pgs/faq_crash.html b/English.lproj/CotEditorHelp/pgs/faq_crash.html deleted file mode 100644 index 6dad792cfd..0000000000 --- a/English.lproj/CotEditorHelp/pgs/faq_crash.html +++ /dev/null @@ -1 +0,0 @@ - CotEditor crashes

    CotEditor crashes

    In the case you are using ATOK, Shift-Return, which is one of the CotEditor's default key bindings, would conflict with ATOK's key binding and cause an application crash.
    To solve this problem, you need to change the key binding of ATOK or CotEditor.
    => Key Bindings preferences


    If you get frequent crashes of CotEditor under certain circumstances, please email a crash log to the following address:

    When you send a crash log, don't forget to include the following information:

    • The operation you performed just before the crash.
    • Your environment information such as the version of OS, the version of CotEditor, your machine model, and so on.

    You can display a crash log by clicking Report (on 10.4) or Submit Report (on 10.3) in the dialog which appears on the crash. (There is no point to send the crash log to Apple, so just close the window after copying the log.)

    \ No newline at end of file diff --git a/English.lproj/CotEditorHelp/pgs/faq_keybinding.html b/English.lproj/CotEditorHelp/pgs/faq_keybinding.html deleted file mode 100644 index 78f6bfa4a7..0000000000 --- a/English.lproj/CotEditorHelp/pgs/faq_keybinding.html +++ /dev/null @@ -1 +0,0 @@ - My own key bindings don't work as I expect

    My own key bindings don't work as I expect

    If a key binding you set doesn't work properly chances are that:

    • The key binding is already taken by another function.
    • You have set the key binding in the Menu Key Bindings setting, but the same key binding exists in the Additional Text Key Bindings setting. In this case, the latter takes precedence.

    See also

    \ No newline at end of file diff --git a/English.lproj/CotEditorHelp/pgs/faq_known_probrems.html b/English.lproj/CotEditorHelp/pgs/faq_known_probrems.html deleted file mode 100644 index 988aaab497..0000000000 --- a/English.lproj/CotEditorHelp/pgs/faq_known_probrems.html +++ /dev/null @@ -1 +0,0 @@ - Are there any known issues?

    Are there any known issues?

    There are some known issues as listed below. These should be taken care of in the future releases, but solutions to them are not yet in sight.

    • When the Line Endings drop-down menu on the toolbar is opened, no check mark appears next to the selected item.
    • When Line Spacing is set bigger than 0, the underlines, that Japanese input methods show during Kana-Kanji conversion, are displayed lower than usual.
    • When “Fix line height with composite font” is turned on, white lines may appear between the lines inside the selection (i.e. the background-color can be seen through).
    • If you selected Cancel in the authentication window of “authopen” when saving, error logs are output to console. (“authopen” is the name of a helper application which is launched by CotEditor.)
    • When print previewing on 10.3.9, an error saying that “Can't create CMap Adobe-Identity-UCS2.” is output to console.
    • When completing words on 10.3.9, after typing only one letter and showing the completion list (usually by pressing F5), pressing Enter doesn't select an item.
    • When completing words on 10.3.9, pressing ESC doesn't pop up the completion list.
    \ No newline at end of file diff --git a/English.lproj/CotEditorHelp/pgs/faq_not_find_solution.html b/English.lproj/CotEditorHelp/pgs/faq_not_find_solution.html deleted file mode 100644 index 7b42badb0a..0000000000 --- a/English.lproj/CotEditorHelp/pgs/faq_not_find_solution.html +++ /dev/null @@ -1 +0,0 @@ - I can't find a solution

    I can't find a solution

    If you couldn't find any answer to your problem, please inquire by email. In doing so, make sure to include the following information:

    • Your environment information such as the version of OS, the version of CotEditor, your machine model, and so on.
    • What the problem is, in clear and concrete words.
    • What you've already tried to fix it, if any.

    The email address you should send to is:

    \ No newline at end of file diff --git a/English.lproj/CotEditorHelp/pgs/faq_re_coloring.html b/English.lproj/CotEditorHelp/pgs/faq_re_coloring.html deleted file mode 100644 index 7f77c2faee..0000000000 --- a/English.lproj/CotEditorHelp/pgs/faq_re_coloring.html +++ /dev/null @@ -1 +0,0 @@ - Syntax coloring seems not working properly

    Syntax coloring seems not working properly

    When syntax coloring seems not working properly, try the following procedure:

    1. Choose Format > Syntax Coloring, and select Re-color All.

    If it doesn't help, the possible causes are:

    • There is something inadequate in your text (e.g. inadequate programming syntax).
    • There is something inadequate in your syntax coloring rule.

    See also

    \ No newline at end of file diff --git a/English.lproj/CotEditorHelp/pgs/howto_complete.html b/English.lproj/CotEditorHelp/pgs/howto_complete.html deleted file mode 100644 index 0e47394bf3..0000000000 --- a/English.lproj/CotEditorHelp/pgs/howto_complete.html +++ /dev/null @@ -1 +0,0 @@ - How to complete words

    How to complete words

    To complete words, follow the instruction below:

    1. Type the first few letters of a word.
    2. Press F5 or ESC.
    3. Choose the word you want to input from the pop-up list.
    • To close the list, press ESC.
    • Under the Completion List section in the General preferences pane, you can change the range of possible completions that appear in the list. For example, the list can include only the words in your document, or the words specified by your syntax style additionally.

    See also

    \ No newline at end of file diff --git a/English.lproj/CotEditorHelp/pgs/howto_customize_complete.html b/English.lproj/CotEditorHelp/pgs/howto_customize_complete.html deleted file mode 100644 index e95908c3b7..0000000000 --- a/English.lproj/CotEditorHelp/pgs/howto_customize_complete.html +++ /dev/null @@ -1 +0,0 @@ - Changing the range of possible completions

    Changing the range of possible completions

    You can expand/limit the range of possible completions. The completion list can show only the words in your document, or additionally, the words specified by your syntax style, or along with them all, standard English words.

    1. Choose CotEditor > Preferences.
    2. Click General.
    3. Under Completion List, select the range of your choice.

    See also

    \ No newline at end of file diff --git a/English.lproj/CotEditorHelp/pgs/howto_customize_encoding_order.html b/English.lproj/CotEditorHelp/pgs/howto_customize_encoding_order.html deleted file mode 100644 index 3fac9ed3ce..0000000000 --- a/English.lproj/CotEditorHelp/pgs/howto_customize_encoding_order.html +++ /dev/null @@ -1 +0,0 @@ - Setting the priority of encoding auto-detection

    Setting the priority of encoding auto-detection

    To set the priority of encoding auto-detection:

    1. Choose CotEditor > Preferences.
    2. Click Format.
    3. In the File Encoding section, click Edit Encoding List.
    4. Move up the encodings you use frequently, and place UTF-16 right under them.
      (As UTF-16 is able to encode most characters, you need to put it at the bottom of often-used encodings.)

    Though you can change the order of encodings, you cannot delete them. Just move down the encodings you don't use.

    See also

    \ No newline at end of file diff --git a/English.lproj/CotEditorHelp/pgs/howto_customize_font_color.html b/English.lproj/CotEditorHelp/pgs/howto_customize_font_color.html deleted file mode 100644 index 95d7ef080c..0000000000 --- a/English.lproj/CotEditorHelp/pgs/howto_customize_font_color.html +++ /dev/null @@ -1 +0,0 @@ - Changing font type and color

    Changing font type and color

    You can change your document's font type and color.

    1. Choose Format > Font > Show Fonts.
    2. Select the font and color of your choice using the Font panel.
    • These changes apply only to the window currently active. To change the default font for all new documents, choose CotEditor > Preferences > Format. To change the default text color, choose CotEditor > Preferences > View.
    • To change the colors for syntax coloring, choose CotEditor > Preferences > Syntax.

    See also

    \ No newline at end of file diff --git a/English.lproj/CotEditorHelp/pgs/howto_customize_keybinding.html b/English.lproj/CotEditorHelp/pgs/howto_customize_keybinding.html deleted file mode 100644 index 01fb91e2c1..0000000000 --- a/English.lproj/CotEditorHelp/pgs/howto_customize_keybinding.html +++ /dev/null @@ -1 +0,0 @@ - Customizing key bindings

    Customizing key bindings

    You can fully customize CotEditor's menu key bindings. Also, you can store text snippets which have your preferred key bindings assigned. By default, you can insert “<br />” (with a line ending) by pressing Shift-Return. To create your own key bindings:

    1. Choose CotEditor > Preferences.
    2. Click Key Bindings.
    3. Click Edit, and modify/add the key bindings as you like.
    • Menu Key Bindings must include Command key.
    • Additional Text Key Bindings must exclude Command key.
    • You cannot set the key bindings that are already taken (e.g. shortcuts for your script files or menu items that don't appear in the Menu Key Bindings list).

    See also

    \ No newline at end of file diff --git a/English.lproj/CotEditorHelp/pgs/howto_customize_scriptmenu.html b/English.lproj/CotEditorHelp/pgs/howto_customize_scriptmenu.html deleted file mode 100644 index 64f9606ef1..0000000000 --- a/English.lproj/CotEditorHelp/pgs/howto_customize_scriptmenu.html +++ /dev/null @@ -1 +0,0 @@ - Customizing the Script menu

    Customizing the Script menu

    To add scripts to or remove scripts from the Script menu, follow the instruction below:

    1. In Finder, go to the folder:
      ~/Library/Application Support/CotEditor/ScriptMenu
    2. Put your script files in this folder, or remove from there.
    3. In CotEditor, choose Script > Update Script Menu.
    • CotEditor recognizes scripts only when their file extensions are: .applescript .scpt .sh .pl .php .rb .py
    • You can change the order of appearance or assign keyboard shortcuts by modifying the names of your script files.
      See File naming rules for CotEditor scripts for more details.
    • You can create subfolders in the ScriptMenu folder. They will appear as submenus.
    • The changes you made inside the ScriptMenu folder will be automatically reflected when CotEditor launches. Thus, you need to perform “Update Script Menu” only when you made modifications during CotEditor is running.

    See also

    \ No newline at end of file diff --git a/English.lproj/CotEditorHelp/pgs/howto_customize_syntaxstyle.html b/English.lproj/CotEditorHelp/pgs/howto_customize_syntaxstyle.html deleted file mode 100644 index 80f690ed8e..0000000000 --- a/English.lproj/CotEditorHelp/pgs/howto_customize_syntaxstyle.html +++ /dev/null @@ -1 +0,0 @@ - About syntax styles

    About syntax styles

    CotEditor's syntax styles control syntax coloring, Outline Menu, and the completion list, all together. To customize styles:

    1. Choose CotEditor > Preferences.
    2. Click Syntax.
    3. Under the Syntax Style section, click “Choose style” and select the one you want to customize from the drop-down menu.
    4. Click Edit.
    • To use an existing style as a guide for creating your own, click Copy instead.

    See also

    \ No newline at end of file diff --git a/English.lproj/CotEditorHelp/pgs/howto_customize_toolbar.html b/English.lproj/CotEditorHelp/pgs/howto_customize_toolbar.html deleted file mode 100644 index 595afd87ac..0000000000 --- a/English.lproj/CotEditorHelp/pgs/howto_customize_toolbar.html +++ /dev/null @@ -1 +0,0 @@ - Customizing the toolbar

    Customizing the toolbar

    As Finder or many Cocoa applications, CotEditor allows you to customize the toolbar. To do that:

    • Choose View > Customize Toolbar.
    \ No newline at end of file diff --git a/English.lproj/CotEditorHelp/pgs/howto_filedrop.html b/English.lproj/CotEditorHelp/pgs/howto_filedrop.html deleted file mode 100644 index 6604ba0d55..0000000000 --- a/English.lproj/CotEditorHelp/pgs/howto_filedrop.html +++ /dev/null @@ -1 +0,0 @@ - Using File Drop

    Using File Drop

    To use File Drop, drag and drop a file onto your document window.

    • You need to set in advance the string to be inserted when you drop a file.
    • To configure the behavior of File Drop, choose CotEditor > Preferences > File Drop.

    See also

    \ No newline at end of file diff --git a/English.lproj/CotEditorHelp/pgs/howto_find_newline.html b/English.lproj/CotEditorHelp/pgs/howto_find_newline.html deleted file mode 100644 index 6894b12a4c..0000000000 --- a/English.lproj/CotEditorHelp/pgs/howto_find_newline.html +++ /dev/null @@ -1 +0,0 @@ - Finding a line ending or a tab

    Finding a line ending or a tab

    To search a line ending or a tab character using the Find panel, you can either write the corresponding regular expression, or use the following key combinations to input them in the Find field.

    Regular expressionKey combination
    A line ending character\nOption-Return
    A tab character\tOption-Tab
    \ No newline at end of file diff --git a/English.lproj/CotEditorHelp/pgs/howto_inspect_fileinfo.html b/English.lproj/CotEditorHelp/pgs/howto_inspect_fileinfo.html deleted file mode 100644 index 96083ebff4..0000000000 --- a/English.lproj/CotEditorHelp/pgs/howto_inspect_fileinfo.html +++ /dev/null @@ -1 +0,0 @@ - Getting information about documents

    Getting information about documents

    In the Get Info drawer, you can view various information concerning your document.

    1. Choose File > Get Info.
    2. To close the drawer, click the Close button, or choose File > Get Info again.

    Clicking the Get Info icon on the toolbar also opens the same drawer.

    The information displayed in the drawer is as follows:

    CreatorThe code identifying the application which created the file.
    TypeThe code identifying the file type.
    CreatedThe file creation date and time.
    ModifiedThe file modification date and time.
    OwnerThe user name of the owner of the file.
    PermissionThe file privilege (in UNIX-style).
    Finder's Lock“ON” indicates the file is locked, “-” indicates not.
    LineThe line number of the line containing the caret.
    CharThe caret-position described in the number of characters.
    (Selected)The number of characters in the selection, if any.
    UnicodeThe Unicode hexadecimal code (UTF-16) for the character (displayed only when one character is selected).
    \ No newline at end of file diff --git a/English.lproj/CotEditorHelp/pgs/howto_inspect_usedchar.html b/English.lproj/CotEditorHelp/pgs/howto_inspect_usedchar.html deleted file mode 100644 index 0c826683ff..0000000000 --- a/English.lproj/CotEditorHelp/pgs/howto_inspect_usedchar.html +++ /dev/null @@ -1 +0,0 @@ - Checking whether incompatible characters are included

    Checking whether incompatible characters are included

    If you input a character which is incompatible with your document's current encoding, it can appear garbled when you save and reopen the file. This function helps to prevent that kind of problem. You can check if there are any such problematic characters in your document, before closing it.

    Also, this function is useful when you are going to convert between the two encodings whose character repertoires are different from each other, for example, from Japanese (Mac OS) to Japanese (Windows, DOS) or from Unicode to a local encoding.

    To show incompatible characters:

    1. Choose File > Show Incompatible Char.
    2. To close the drawer, click Close, or choose File > Show Incompatible Char again.
    \ No newline at end of file diff --git a/English.lproj/CotEditorHelp/pgs/howto_open_hidden_file.html b/English.lproj/CotEditorHelp/pgs/howto_open_hidden_file.html deleted file mode 100644 index f44f9534fb..0000000000 --- a/English.lproj/CotEditorHelp/pgs/howto_open_hidden_file.html +++ /dev/null @@ -1 +0,0 @@ - Opening hidden files

    Opening hidden files

    You can open files that are invisible in Finder.

    1. Whie holding down the Shift key, choose File.
    2. Select Open Hidden.
    • If you press the Shift key while showing the File menu, Open will turn into Open Hidden.
    • Pressing Command-Shift-O gives you the same result.
    \ No newline at end of file diff --git a/English.lproj/CotEditorHelp/pgs/howto_print.html b/English.lproj/CotEditorHelp/pgs/howto_print.html deleted file mode 100644 index 02da9e015a..0000000000 --- a/English.lproj/CotEditorHelp/pgs/howto_print.html +++ /dev/null @@ -1 +0,0 @@ - Printing a document

    Printing a document

    To print your document, choose File > Print.

    • The options you've set in the Print preferences pane are in effect when you print.
    • In the print dialog, you can click Copies & Pages and select the CotEditor option from the drop-down menu, then you can temporarily modify your print settings (you cannot change the font setting there).
    \ No newline at end of file diff --git a/English.lproj/CotEditorHelp/pgs/howto_rectangularSelection.html b/English.lproj/CotEditorHelp/pgs/howto_rectangularSelection.html deleted file mode 100644 index 32dc794ec4..0000000000 --- a/English.lproj/CotEditorHelp/pgs/howto_rectangularSelection.html +++ /dev/null @@ -1 +0,0 @@ - Selecting rectangular area (10.4 or later)

    Selecting rectangular area (10.4 or later)

    You can select rectangular area in your document. To do so, drag and select text while holding down the Option key.

    • This function requires Mac OS X 10.4 or later.
    \ No newline at end of file diff --git a/English.lproj/CotEditorHelp/pgs/howto_show_outlinemenu.html b/English.lproj/CotEditorHelp/pgs/howto_show_outlinemenu.html deleted file mode 100644 index 6eebabe855..0000000000 --- a/English.lproj/CotEditorHelp/pgs/howto_show_outlinemenu.html +++ /dev/null @@ -1 +0,0 @@ - How to show Outline Menu

    How to show Outline Menu

    Outline Menu generates a drop-down menu listing specific parts of your document according to the Outline Menu settings of your syntax style. The menu is displayed beneath the toolbar. By clicking on an item in the menu, you can easily go and select the corresponding part.

    • To show Outline Menu, choose View > Show Navigation Bar.
    • You need to make syntax coloring active in order to use Outline Menu.

    The Outline Menu settings, where you can configure what items should appear and how they should be titled in the menu, are included in the Syntax Style settings.

    See also

    \ No newline at end of file diff --git a/English.lproj/CotEditorHelp/pgs/howto_split.html b/English.lproj/CotEditorHelp/pgs/howto_split.html deleted file mode 100644 index 8d66968ef4..0000000000 --- a/English.lproj/CotEditorHelp/pgs/howto_split.html +++ /dev/null @@ -1 +0,0 @@ - Splitting a document window

    Splitting a document window

    To split a document window into multiple panes, choose View > Split View, or, click the icon on the right edge of the navigation bar.

    To close a split view, choose View > Close Split View, or, click the second icon from the right edge of the navigation bar.

    \ No newline at end of file diff --git a/English.lproj/CotEditorHelp/pgs/howto_uninstall.html b/English.lproj/CotEditorHelp/pgs/howto_uninstall.html deleted file mode 100644 index b9fd776dc4..0000000000 --- a/English.lproj/CotEditorHelp/pgs/howto_uninstall.html +++ /dev/null @@ -1 +0,0 @@ - Uninstalling CotEditor

    Uninstalling CotEditor

    To uninstall CotEditor, delete the following files and folders:

    • /Applications/CotEditor
    • ~/Library/Application Support/CotEditor
    • ~/Library/Preferences/com.aynimac.CotEditor.plist

    Here, the tilde (~) represents the user's home folder and the slash (/) means the folder separator.

    \ No newline at end of file diff --git a/English.lproj/CotEditorHelp/pgs/overview.html b/English.lproj/CotEditorHelp/pgs/overview.html deleted file mode 100644 index 033ac3adc0..0000000000 --- a/English.lproj/CotEditorHelp/pgs/overview.html +++ /dev/null @@ -1 +0,0 @@ - Discover CotEditor

    Discover CotEditor

    CotEditor is a Cocoa text editor designed for editing plain text files such as web pages (HTML), program source codes (Perl, Ruby, etc.), or TeX sources. CotEditor offers a lot of useful features that are not available in Mac OS X's TextEdit. You'll find some of them below.

    Powerful find and replace

    ov_find.pngCotEditor has a very powerful find and replace using OgreKit [website].

    In addition to the support for regular expression search, you can display a list of search results, or highlight matched words in your document.

    Syntax coloring

    ov_color.pngCotEditor can colorize particular strings such as reserved words of programming languages, TeX commands, and HTML elements.

    Coloring rules for major programming languages are built in by default, and you can add or customize styles as you like. You can also define the strings to be colored by regular expression patterns, not only by words.

    Outline Menu

    ov_outline.pngCotEditor's Outline Menu extracts predefined keywords from the document and displays them in a drop-down menu. By clicking on a listed item, you can go directly to the corresponding part of your document.

    You can set what items should appear and how they should be titled in the menu by customizing the corresponding syntax style.

    Word completion

    ov_complete.pngWord completion assists you to input words faster, such as when typing reserved words of programming languages or HTML elements.

    If you press the ESC or F5 key after typing the first few letters of a word, a list of possible completions shows up. You only need to select the one you want to input from the list. The range of completions can be expanded or limited.

    Script menu

    ov_complete.pngThe Script menu lets you run scripts to manipulate your document or launch external programs.

    You can use AppleSctipt scripts, Perl, PHP, Ruby, and UNIX shell scripts as well.

    Other features

    File Drop
    File Drop lets you insert a specified string when you drop a file onto your document window. For example, you can insert the IMG tag into your HTML document by dropping an image file on it.
    Key bindings
    CotEditor's original key bindings are fully customizable.
    AppleScript compatible
    AppleScript can automate your workflow. You can call your scripts via the Script menu.
    Support for the External Editor Protocol
    CotEditor supports the External Editor Protocol in order to act as an external editor for applications implementing this protocol such as Cyberduck [website] or Interarchy [website] or RBrowser [website]. In those applications you can choose CotEditor to edit a file on a server.
    Line numbers
    CotEditor can display line numbers. This is useful such as when you develop and debug programs.
    Window transparency
    You can change a window's transparency. When you have many documents opened, this will help you find the one you need.
    Line spacing
    You can set space between lines as you see fit.
    Incompatible characters
    There are some characters you cannot save with a particular encoding. This feature enables you to check if those characters are included in your document.
    Split view
    You can split a single window into multiple panes to view different parts of your document at the same time.
    \ No newline at end of file diff --git a/English.lproj/CotEditorHelp/pgs/pref_appearance.html b/English.lproj/CotEditorHelp/pgs/pref_appearance.html deleted file mode 100644 index 803a1eadd2..0000000000 --- a/English.lproj/CotEditorHelp/pgs/pref_appearance.html +++ /dev/null @@ -1 +0,0 @@ - View preferences

    View preferences

    The View preferences let you set the default appearance of documents, including text color and invisible characters' alternatives.
    Changes you make here will take effect when you next create/open a document.

    Basic Coloring
    The configurations for basic coloring other than syntax coloring go here. Included are the color of text, selection, insertion point, and background.
    You can customize the syntax coloring rules in the Syntax preferences pane.
    Show Invisible Characters
    You can transform invisible characters — space, tab, line ending, control character — into alternative symbols in order to make them viewable. Select the symbol you wish to use from the drop-down menu.
    The default font you set in the Format pane applies to these symbols as well.

    See also

    \ No newline at end of file diff --git a/English.lproj/CotEditorHelp/pgs/pref_filedrop.html b/English.lproj/CotEditorHelp/pgs/pref_filedrop.html deleted file mode 100644 index 77dc32fd65..0000000000 --- a/English.lproj/CotEditorHelp/pgs/pref_filedrop.html +++ /dev/null @@ -1 +0,0 @@ - File Drop preferences

    File Drop preferences

    File Drop allows you to insert a fixed text when you drop a file onto your document window. For example, you can automatically insert the IMG tag into your HTML document by dropping an image file from Finder.

    File extensions
    Here, enter the file extensions of files being dropped.
    Insertion format
    Here, format the string as you want it to be inserted.
    Pre-formatted string
    You can use CotEditor's pre-formatted strings in an insertion format.
    • Pre-formatted strings are going to be replaced with the corresponding information of the dropped file.

    See also

    \ No newline at end of file diff --git a/English.lproj/CotEditorHelp/pgs/pref_format.html b/English.lproj/CotEditorHelp/pgs/pref_format.html deleted file mode 100644 index 9dcaf775d0..0000000000 --- a/English.lproj/CotEditorHelp/pgs/pref_format.html +++ /dev/null @@ -1 +0,0 @@ - Format preferences

    Format preferences

    You can set the default format such as font type or file encoding for new documents.
    Changes you make here will take effect when you next create/open a document.

    □ Soft wrap lines
    When this option is turned on, CotEditor soft-wraps long lines so that you can view them within the window width. Otherwise, CotEditor shows horizontal scroll bar without wrapping text.
    □ Auto indent
    When this option is selected, CotEditor automatically indents each line you create by hitting the Return/Enter key. The new line will begin at the same indentation point as the previous line.
    □ Fix line height with composite font
    With this option turned on, CotEditor forces the line height to be fixed regardless of the font you use or the character you input.
    The line height gets larger than when this option is off.
    Line spacing:
    You can adjust line spacing with a value indicating the number of lines. The range you can set is from 0.00 to 10.00 (lines).
    (The actual height of space between lines is the product of the value you set here and the point size of the font)
    □ Auto expand tabs to spaces
    With this option turned on, CotEditor automatically converts tab characters to spaces as you type.
    □ Tab/Indent width:
    You can specify the number of spaces to which a tab character is expanded. 4 or 8 spaces are typically used.
    Line endings for new documents:
    You can set the default line ending style used when creating a new document.
    File Encoding
    When creating a file:
    You can set the default character encoding used when creating a new document.
    When opening a file:
    You can set the default character encoding used when opening an existing file. Auto-Detect will do fine for most cases.
    □ Save UTF-8 files with a BOM (not recommended)
    Turn this option on if you want to add a BOM (Byte Order Mark) to any file you save as UTF-8.
    UTF-8 with BOM can be problematic in some cases, so use this option with care. Leaving this option off is recommended unless you have a specific need for it.
    □ Refer to encoding declaration
    When this option is selected, CotEditor respects the encoding declaration written in your document.
    CotEditor can detect charset=, encoding=, and @charset (in order of precedence).
    See Using encoding declarations (charset=, encoding=, @charset) for auto-detection for more details.
    Edit Encoding List
    You can customize the order of encodings that appear in the File Encoding submenu of the Format menu and the File Encoding drop-down list on the toolbar. This order is also used for encoding auto-detection and CotEditor tries each encoding from the top of the list. See Setting the priority of encoding auto-detection for more details.
    • In the case you've selected anything other than Auto-Detect for “When opening a file,” if CotEditor opened a file with a different encoding from the one used to create the file, you need to manually make CotEditor reinterpret it.
    Font
    You can set the default font type and size.
    □ Anti-aliasing
    With this option selected, CotEditor displays text anti-aliased.

    See also

    \ No newline at end of file diff --git a/English.lproj/CotEditorHelp/pgs/pref_general.html b/English.lproj/CotEditorHelp/pgs/pref_general.html deleted file mode 100644 index 08e296b56a..0000000000 --- a/English.lproj/CotEditorHelp/pgs/pref_general.html +++ /dev/null @@ -1 +0,0 @@ - General preferences

    General preferences

    The General preferences control various overall behaviors of CotEditor.

    □ Create a new document on startup
    When this option is selected, a new blank document will be opened when you launch CotEditor.
    □ Open blank window with a reopen AppleEvent
    With this option selected, you can open a blank document by clicking CotEditor's icon in the Dock, provided you had no window already open.
    □ Smart insert and delete
    With this option turned on, when you paste or drag a word in between other words, a halfwidth space will be automatically added between the words to maintain that boundary. Meanwhile, any extra spaces will be automatically removed when you cut/delete a word. (This function only has meaning when you edit in English.)
    □ Check spelling as you type
    This option allows you to automatically check your spelling as you type.
    □ Drag selected text immediately (just like in Carbon applications)
    In order to drag selected text, you need to hold the mouse button pressed more than 0.3 seconds before starting dragging, but with this option turned on, you can reduce the waiting time and start dragging immediately. (This is an experimental implementation.)
    □ Swap "¥" and "\" keys
    With this option selected, you can input a backslash (\) using the key binding for the Yen sign (¥), and vice versa.
    □ Highlight matching braces "( )" "[ ]" "{ }"
    With this option turned on, CotEditor briefly highlights the corresponding opening brace when you write a closing brace.
    □ Highlight "< >"
    If this is on, highlighting will apply to angle brackets “< >” as well.
    □ Count each line ending as one character
    With this option selected, the character count displayed in the Get Info drawer and the status bar includes line endings.
    □ Sync Find strings with other applications
    With this option selected, the Find panel automatically retrieves the latest Find string searched in another Cocoa application.
    □ Inline Script menu items into contextual menu
    With this option turned on, the contents of the Script menu items, which are in the Script submenu by default, appear inlined in the contextual menu.
    Type and Creator on Saving
    Here, you can control how CotEditor sets its type and creator codes when saving a file.
    ○ Keep the originals (if any, otherwise set CotEditor's codes)
    If the file already has its type and creator codes, CotEditor leaves them as is. Otherwise, CotEditor sets its own codes.
    ○ Always set CotEditor's codes
    CotEditor always sets its type and creator codes. If the file you are saving had been created by another application, the codes will be replaced.
    ○ Set no codes
    CotEditor never sets or modifies the codes.
    Completion List
    Here, you can change the range of possible completions that appear in the completion list.
    ○ Show Document's words only
    The list shows only the words appear in your document.
    ○ Show Document's words + Syntax Style's words
    In addition to the in-document words, the words defined by your syntax style appear in the list (in the case you've not specified any completions, the words generated by the syntax coloring rule appear).
    ○ Show Document's words + Syntax Style's words + Standard words
    In addition to all of the above, the list shows standard English words as well.

    See also

    \ No newline at end of file diff --git a/English.lproj/CotEditorHelp/pgs/pref_keybinding.html b/English.lproj/CotEditorHelp/pgs/pref_keybinding.html deleted file mode 100644 index 27da8d9619..0000000000 --- a/English.lproj/CotEditorHelp/pgs/pref_keybinding.html +++ /dev/null @@ -1 +0,0 @@ - Key Bindings preferences

    Key Bindings preferences

    Some of the CotEditor's menu items can be executed using keyboard shortcuts. CotEditor allows you to customize those key bindings. Also, CotEditor lets you store some text snippets you use frequently along with your preferred keyboard shortcuts.

    Menu Key Bindings
    You can change the key bindings for CotEditor's menu items.
    • The key bindings you set here must include Command key.
    Additional Text Key Bindings
    You can add text snippets along with your preferred keyboard shortcuts.
    • The key bindings you set here must exclude Command key.
    • Here, you can set only the key bindings for CotEditor's own text handling commands. For more details about customizing the standard key bindings of Cocoa applications, see Apple's documentation (external link):
      Text System Defaults and Key Bindings:Key bindings

    See also

    \ No newline at end of file diff --git a/English.lproj/CotEditorHelp/pgs/pref_print.html b/English.lproj/CotEditorHelp/pgs/pref_print.html deleted file mode 100644 index 5bdf5f30ff..0000000000 --- a/English.lproj/CotEditorHelp/pgs/pref_print.html +++ /dev/null @@ -1 +0,0 @@ - Print preferences

    Print preferences

    You can change the default print options here.
    Changes you make here will take effect when you next create/open a document.

    Color
    To print a file with syntax coloring enabled, select the “Same as document's setting” option here.
    Line numbers
    You can choose between No Print, Same as document's setting, and Print.
    Invisible Chars
    You can choose between No Print, Same as document's setting, and Print All.
    Print Font
    You can either use the document's font or specify another font for printing purpose.
    Header and Footer
    You can configure whether to print, what to print, whether to add separators, and where to print.

    See also

    \ No newline at end of file diff --git a/English.lproj/CotEditorHelp/pgs/pref_syntax.html b/English.lproj/CotEditorHelp/pgs/pref_syntax.html deleted file mode 100644 index a4861e6d51..0000000000 --- a/English.lproj/CotEditorHelp/pgs/pref_syntax.html +++ /dev/null @@ -1 +0,0 @@ - Syntax preferences

    Syntax preferences

    The Syntax preferences allow you to modify the syntax coloring settings, or set up your own syntax styles.

    □ Do syntax coloring for new/current document
    If this option is turned on, CotEditor colors your document according to its kind.
    Default syntax style for coloring
    If there is no syntax style associated with the extension of the file you opened, the one you specified here will be used for coloring.
    This setting applies to a newly created document as well.
    □ Delay coloring
    When this option is on, CotEditor starts coloring shortly after you complete typing. With this option off, coloring begins as you type.
    Extended Coloring
    You can set the colors for syntax coloring here.
    The code elements CotEditor colors are: Keywords, Commands, Values, Numbers, Strings, Characters, Comments.
    Syntax Style
    Here, you can edit an existing style or add your own style.
    Show Extension Error
    You can check if multiple styles are associated with an extension.
    Delete
    You can remove the selected style.
    Edit
    You can edit the selected style. Note that CotEditor saves the syntax style configurations per user, which means only the current user's styles will reflect the changes you make here.
    Copy
    You can copy the selected style in order to make your own.
    New
    You can create a new style.
    Export
    This allows you to export the selected style so that you can use it on another computer. To use the exported file, click Import.
    Import
    This allows you to use a style created on another computer. After clicking Import, select an exported style file.

    See also

    \ No newline at end of file diff --git a/English.lproj/CotEditorHelp/pgs/pref_window.html b/English.lproj/CotEditorHelp/pgs/pref_window.html deleted file mode 100644 index 516c71379c..0000000000 --- a/English.lproj/CotEditorHelp/pgs/pref_window.html +++ /dev/null @@ -1 +0,0 @@ - Window preferences

    Window preferences

    The Window preferences allow you to set the default window appearance such as widow size or line number display.
    Changes you make here will take effect when you next create/open a document.

    □ Show navigation bar
    With this option turned on, CotEditor's navigation bar appears beneath the toolbar.
    □ Show line numbers
    With this option turned on, CotEditor shows line numbers on the left side of the window.
    □ Show wrapped-line mark
    With this option turned on, you'll see a mark indicating that the line next to it is being wrapped. When this option is off, nothing is displayed.
    □ Show status bar
    With this option turned on, CotEditor shows a status bar at the bottom of the window.
    □ Show thousands separator
    With this option selected, numbers are displayed with thousands separators.
    □ Show page guide
    When this is turned on, a page guide (a vertical gray line) is displayed in the window's text view area.
    Display at column:
    You can specify the column at which you want the page guide displayed. Note that the display position will differ according to your font setting.
    The default font type can be changed in the Format preferences.
    Window Size
    You can set the default window size. Clicking “Get from sample window” opens a sample window so that you can set the width and height visually.
    Window Transparency
    You can set the default window tranparency using the slider.
    □ Text view only
    When this option is selected, the transparency setting affects only the text view area. Otherwise, it affects the whole window including such as the title bar and the scroll bar.

    See also

    \ No newline at end of file diff --git a/English.lproj/CotEditorHelp/sty/index.css b/English.lproj/CotEditorHelp/sty/index.css deleted file mode 100644 index 6d54e1998a..0000000000 --- a/English.lproj/CotEditorHelp/sty/index.css +++ /dev/null @@ -1 +0,0 @@ -/* * CotEditor Help Standard Style Sheet for index page * $Id$ */ div.terms { margin: 3em 1.5em 0 1.5em; } div.terms p { clear: both; } div.terms ul { margin: 0; padding: 0; background: none; border: none; list-style-type: none; } div.terms li { border-bottom: 1px solid #cccccc; } h1#letters { margin: 0; padding: 0 0 0.5em 15px; width: 90%; float: left; clear: both; } \ No newline at end of file diff --git a/English.lproj/CotEditorHelp/sty/standard.css b/English.lproj/CotEditorHelp/sty/standard.css deleted file mode 100644 index b668a81a89..0000000000 --- a/English.lproj/CotEditorHelp/sty/standard.css +++ /dev/null @@ -1 +0,0 @@ -/* * CotEditor Help Standard Style Sheet * $Id$ */ body { margin: 0 0 1em 0; padding: 0; font-family: "Lucida Grande"; font-size: 9pt; line-height: 130%; } a { text-decoration: none; } a:hover { text-decoration: underline; } #contents { margin: 3em 1.5em 0 1.5em; } h1 { font-size: 130%; margin: 1em 0; } h2 { font-size: 110%; line-height: 110%; margin-top: 1.5em; margin-bottom: 0.5em; clear: both; } h3 { font-size: 100%; line-height: 110%; } ol, ul, pre { padding: 1em 2em 0.5em 2em; margin: 0; border: 1px solid #cccccc; background-color: #e6edff; clear: both; } ul { list-style-type: square; } li { margin-bottom: 0.5em; } ul ul, ul ol { padding: 0 3em; margin: 0.5em 0; border: none; } ul + ul, ol + ol, ul + ol, ol + ul { margin-top: 1em; } ul.topicbox { background-color: white; border: 1px dotted #999999; } ul.rel_items { list-style-type: none; padding: 0; margin: 0; border: none; background-color: white; font-size: 90%; } p.point { padding: 1em 2em 1em 1.5em; margin: auto -1%; border: 1px solid #cccccc; background-color: #e6edff; } em { font-weight: bold; font-style: normal; } p#relbar { text-align: right; } .figmarker { font-weight: bold; color: red; } #navbar { position: fixed; top: 0; left: 0; width: 100%; padding: -2px 6px 0; border-bottom: 1px solid #bfbfbf; background-color: #f2f2f2; background-repeat: no-repeat; float: left; font-size: 85%; } #home { position: absolute; top: 2px; left: 10px; } #index { top: 2px; right: 12px; width: auto; padding: 2px 25px 1px 8px; background-color: #f2f2f2; border-left: 1px solid #bfbfbf; float: right; } img.snapshot { float: left; margin: 0 1em 1em 0; } img#h1icon { margin: 0 8px -8px 0; } dt { font-weight: bold; margin-left: 0.5em; } dd { margin-left: 2.5em; } table { border-collapse: collapse; empty-cells: show; } th, td { border: 1px solid #cccccc; margin: 0; padding: 3px; } th { background-color: #e6edff; font-weight: normal; white-space: nowrap; } th.lh { text-align: left; } tt, pre { font-family: "Courier", "Courier New", monotype; } \ No newline at end of file diff --git a/English.lproj/CotEditorHelp/sty/top.css b/English.lproj/CotEditorHelp/sty/top.css deleted file mode 100644 index 76ac0c8894..0000000000 --- a/English.lproj/CotEditorHelp/sty/top.css +++ /dev/null @@ -1 +0,0 @@ -/* * CotEditor Help Style Sheet for CotEditor.html * $Id$ */ body { margin: 0; padding: 0; font-family: "Lucida Grande"; } a { text-decoration: none; } a:hover { text-decoration: underline; } div { float: left; margin-top: 30px; } #leftbox { width: 190px; text-align: center; padding-left: 20px; padding-right: 20px; } #rightbox { width: 220px; padding-left: 30px; border-left: 1px solid #999999; } img { margin: 20px 0; } h1 { font-size: 16pt; font-weight: normal; } address { font-size: 8pt; font-style: normal; } dt { font-size: 11pt; font-weight: normal; margin-top: 1em; } dd { font-size: 9pt; margin-left: 0; } \ No newline at end of file diff --git a/English.lproj/CotEditorHelp/sty/topicbox.css b/English.lproj/CotEditorHelp/sty/topicbox.css deleted file mode 100644 index a69448d104..0000000000 --- a/English.lproj/CotEditorHelp/sty/topicbox.css +++ /dev/null @@ -1 +0,0 @@ -/* * CotEditor Help Style Sheet for topic_box * $Id$ */ div.topic_box { padding: 0; min-height: 180px; border: dotted 1px #cccccc; margin-bottom: 1.5em; } div.topic_box h2 { margin: 0; padding: 3px; background-color: #e6edff; } div.topic_box p { margin-top: 0.5em; margin-left: 0.5em; margin-right: 0.5em; } div.topic_box img { width: 160px; } div.topic_box ul, div.topic_box ol { margin-top: 1em; margin-left: 170px; /* img 160px + 10px */ padding-top: 0; clear: none; background: none; border: none; } \ No newline at end of file diff --git a/English.lproj/CotEditorHelp/xpgs/xall.html b/English.lproj/CotEditorHelp/xpgs/xall.html deleted file mode 100644 index f53bc23645..0000000000 --- a/English.lproj/CotEditorHelp/xpgs/xall.html +++ /dev/null @@ -1 +0,0 @@ - Index

    Index

    \ No newline at end of file diff --git a/English.lproj/CotEditorHelp/xpgs/xcomplete.html b/English.lproj/CotEditorHelp/xpgs/xcomplete.html deleted file mode 100644 index 5f9448d2b7..0000000000 --- a/English.lproj/CotEditorHelp/xpgs/xcomplete.html +++ /dev/null @@ -1 +0,0 @@ - word completion

    word completion

    \ No newline at end of file diff --git a/English.lproj/CotEditorHelp/xpgs/xconfiguration.html b/English.lproj/CotEditorHelp/xpgs/xconfiguration.html deleted file mode 100644 index 4eb60edc15..0000000000 --- a/English.lproj/CotEditorHelp/xpgs/xconfiguration.html +++ /dev/null @@ -1 +0,0 @@ - setting up

    setting up

    \ No newline at end of file diff --git a/English.lproj/CotEditorHelp/xpgs/xcustomize.html b/English.lproj/CotEditorHelp/xpgs/xcustomize.html deleted file mode 100644 index aadd05a061..0000000000 --- a/English.lproj/CotEditorHelp/xpgs/xcustomize.html +++ /dev/null @@ -1 +0,0 @@ - customizing

    customizing

    \ No newline at end of file diff --git a/English.lproj/CotEditorHelp/xpgs/xencoding.html b/English.lproj/CotEditorHelp/xpgs/xencoding.html deleted file mode 100644 index 483ad1f955..0000000000 --- a/English.lproj/CotEditorHelp/xpgs/xencoding.html +++ /dev/null @@ -1 +0,0 @@ - text encoding

    text encoding

    \ No newline at end of file diff --git a/English.lproj/CotEditorHelp/xpgs/xfaq.html b/English.lproj/CotEditorHelp/xpgs/xfaq.html deleted file mode 100644 index 0ed7259068..0000000000 --- a/English.lproj/CotEditorHelp/xpgs/xfaq.html +++ /dev/null @@ -1 +0,0 @@ - solving problems

    solving problems

    \ No newline at end of file diff --git a/English.lproj/CotEditorHelp/xpgs/xfiledrop.html b/English.lproj/CotEditorHelp/xpgs/xfiledrop.html deleted file mode 100644 index 74bde3598d..0000000000 --- a/English.lproj/CotEditorHelp/xpgs/xfiledrop.html +++ /dev/null @@ -1 +0,0 @@ - file drop

    file drop

    \ No newline at end of file diff --git a/English.lproj/CotEditorHelp/xpgs/xhowto.html b/English.lproj/CotEditorHelp/xpgs/xhowto.html deleted file mode 100644 index 25e9778d2e..0000000000 --- a/English.lproj/CotEditorHelp/xpgs/xhowto.html +++ /dev/null @@ -1 +0,0 @@ - tips

    tips

    \ No newline at end of file diff --git a/English.lproj/CotEditorHelp/xpgs/xoutlinemenu.html b/English.lproj/CotEditorHelp/xpgs/xoutlinemenu.html deleted file mode 100644 index 46f2b21e46..0000000000 --- a/English.lproj/CotEditorHelp/xpgs/xoutlinemenu.html +++ /dev/null @@ -1 +0,0 @@ - outline menu

    outline menu

    \ No newline at end of file diff --git a/English.lproj/CotEditorHelp/xpgs/xpreferences.html b/English.lproj/CotEditorHelp/xpgs/xpreferences.html deleted file mode 100644 index f04f6d40a0..0000000000 --- a/English.lproj/CotEditorHelp/xpgs/xpreferences.html +++ /dev/null @@ -1 +0,0 @@ - preferences

    preferences

    \ No newline at end of file diff --git a/English.lproj/CotEditorHelp/xpgs/xprint.html b/English.lproj/CotEditorHelp/xpgs/xprint.html deleted file mode 100644 index 0546abb11c..0000000000 --- a/English.lproj/CotEditorHelp/xpgs/xprint.html +++ /dev/null @@ -1 +0,0 @@ - printing

    printing

    Click a topic below.

    \ No newline at end of file diff --git a/English.lproj/CotEditorHelp/xpgs/xscriptmenu.html b/English.lproj/CotEditorHelp/xpgs/xscriptmenu.html deleted file mode 100644 index 6a8e86852f..0000000000 --- a/English.lproj/CotEditorHelp/xpgs/xscriptmenu.html +++ /dev/null @@ -1 +0,0 @@ - script menu

    script menu

    \ No newline at end of file diff --git a/English.lproj/CotEditorHelp/xpgs/xsyntax.html b/English.lproj/CotEditorHelp/xpgs/xsyntax.html deleted file mode 100644 index fc07d3f145..0000000000 --- a/English.lproj/CotEditorHelp/xpgs/xsyntax.html +++ /dev/null @@ -1 +0,0 @@ - syntax styles

    syntax styles

    \ No newline at end of file diff --git a/English.lproj/DocWindow.nib/designable.nib b/English.lproj/DocWindow.nib/designable.nib deleted file mode 100644 index 05f8fb1295..0000000000 --- a/English.lproj/DocWindow.nib/designable.nib +++ /dev/null @@ -1,5596 +0,0 @@ - - - - 1050 - 11B26 - 1617 - 1138 - 566.00 - - com.apple.InterfaceBuilder.CocoaPlugin - 1617 - - - NSMenuItem - NSScroller - NSMenu - NSTableHeaderView - NSButton - NSMatrix - NSCustomObject - NSArrayController - NSTableView - NSCustomView - NSTextField - NSWindowTemplate - NSTextFieldCell - NSButtonCell - NSTableColumn - NSBox - NSPopUpButtonCell - NSView - NSObjectController - NSScrollView - NSTabViewItem - NSPopUpButton - NSTabView - NSDrawer - - - com.apple.InterfaceBuilder.CocoaPlugin - - - - - CEWindowController - - - FirstResponder - - - NSApplication - - - 15 - 2 - {{7, 567}, {507, 413}} - 1886912512 - Window - NSWindow - View - - {400, 200} - - - 256 - - - - 274 - {507, 413} - - - CEEditorView - NSView - - - {507, 413} - - - - {{0, 0}, {1366, 768}} - {400, 222} - {10000000000000, 10000000000000} - 128 - YES - - - - {200, 381} - {200, 50} - {600, 400} - 2 - 0.0 - 15 - - - - - - 274 - - - - 274 - {{0, 37}, {230, 408}} - - - - info - - - 256 - - - - 274 - - - - 2048 - - - - 266 - - - - 268 - {{0, 258}, {48, 14}} - - YES - - 67239424 - 4194304 - Line: - - LucidaGrande - 11 - 3100 - - - - 6 - System - controlColor - - 3 - MC42NjY2NjY2NjY3AA - - - - 6 - System - controlTextColor - - 3 - MAA - - - - - - - 268 - {{0, 6}, {82, 14}} - - YES - - 67239424 - 4194304 - Creator: - - - - - - - - - 266 - {{88, 4}, {122, 18}} - - YES - - 75628032 - 4194304 - - - - - - - - - - 266 - {{88, 25}, {122, 18}} - - YES - - 75628032 - 4194304 - - - - - - - - - - 268 - {{0, 27}, {82, 14}} - - YES - - 67239424 - 4194304 - Type: - - - - - - - - - 266 - {{60, 256}, {150, 18}} - - YES - - 75628032 - 71303168 - - - - - - - - - - 266 - {{60, 277}, {150, 18}} - - YES - - 75628032 - 71303168 - - - - - - - - - - 266 - {{40, 191}, {154, 5}} - - {0, 0} - - 67239424 - 0 - Box - - LucidaGrande - 13 - 1044 - - - 6 - System - textBackgroundColor - - 3 - MQA - - - - 3 - MCAwLjgwMDAwMDAxAA - - - 3 - 2 - 0 - NO - - - - 266 - {{99, 319}, {111, 18}} - - YES - - 75628032 - 71303168 - - - - - - - - - - 268 - {{0, 321}, {87, 14}} - - YES - - 67239424 - 4194304 - [Selected:] - - - - - - - - - 268 - {{0, 49}, {171, 14}} - - YES - - 67239424 - 4194304 - Created: - - - - - - - - - 266 - {{33, 63}, {177, 18}} - - YES - - 75628032 - 4194304 - - - - - - - - - - 266 - {{33, 101}, {177, 18}} - - YES - - 75628032 - 4194304 - - - - - - - - - - 268 - {{0, 86}, {171, 14}} - - YES - - 67239424 - 4194304 - Modified: - - - - - - - - - 266 - {{107, 147}, {103, 18}} - - YES - - 75628032 - 138412032 - - - - - - - - - - 268 - {{0, 149}, {89, 14}} - - YES - - 67239424 - 4194304 - Permission: - - - - - - - - - 268 - {{0, 280}, {48, 14}} - - YES - - 67239424 - 4194304 - Char: - - - - - - - - - 266 - {{112, 168}, {98, 18}} - - YES - - 75628032 - 138412032 - - - - - - 6 - System - textColor - - - - - - - 268 - {{0, 170}, {89, 14}} - - YES - - 67239424 - 4194304 - Finder's Lock: - - - - - - - - - 266 - {{77, 126}, {133, 18}} - - YES - - 75628032 - 138412032 - - - - - - - - - - 268 - {{0, 128}, {65, 14}} - - YES - - 67239424 - 4194304 - Owner: - - - - - - - - - 266 - {{88, 340}, {122, 18}} - - YES - - 75628032 - 71303168 - - - - - - - - - - 268 - {{0, 342}, {76, 14}} - - YES - - 67239424 - 4194304 - Unicode: - - - - - - - - - 268 - {{0, 203}, {94, 14}} - - YES - - 67239424 - 4194304 - Encoding: - - LucidaGrande - 10 - 16 - - - - - - - - - 266 - {{93, 201}, {117, 18}} - - YES - - 75628032 - 4194304 - - - - - - - - - - 268 - {{0, 224}, {87, 14}} - - YES - - 67239424 - 4194304 - Line Endings: - - - - - - - - - 266 - {{99, 222}, {111, 18}} - - YES - - 75628032 - 4194304 - - - - - - - - - - 256 - {{40, 246}, {148, 5}} - - {0, 0} - - 67239424 - 0 - Box - - - - 3 - MCAwLjgwMDAwMDAxAA - - - 3 - 2 - 0 - NO - - - - 268 - {{0, 300}, {87, 14}} - - YES - - 67239424 - 4194304 - (in Line:) - - - - - - - - - 266 - {{99, 298}, {111, 18}} - - YES - - 75628032 - 71303168 - - - - - - - - - {211, 365} - - CEFlippedView - NSView - - - {211, 388} - - - - - 2 - - - - -2147483392 - {{196, 0}, {11, 380}} - - 256 - - _doScroller: - 1 - 0.99736839532852173 - - - - -2147483392 - {{-100, -100}, {194, 11}} - - 257 - - _doScroller: - 0.90909093618392944 - 0.94634145498275757 - - - {211, 388} - - - 133648 - - - - - - {{10, 7}, {210, 388}} - - - - - - - incompatibleChar - - - 256 - - - - 274 - - - - 2304 - - - - 256 - {197, 320} - - YES - - - 256 - {197, 17} - - - - - - 256 - {{198, 0}, {12, 17}} - - - - - 40 - 20 - 1000 - - 75628096 - 2048 - Line - - - 3 - MC4zMzMzMzI5OQA - - - 6 - System - headerTextColor - - - - - 337772096 - 2048 - - - - 6 - System - controlBackgroundColor - - - - - 3 - YES - - - - 74 - 40 - 1000 - - 75628096 - 2048 - Char - - - - - - 337772096 - 2048 - - - - - - 3 - YES - - - - 74 - 10 - 1000 - - 75628096 - 2048 - Converted - - - 6 - System - headerColor - - - - - - 337772096 - 2048 - - - - - - 3 - YES - - - - 3 - 2 - - - 6 - System - gridColor - - 3 - MC41AA - - - 17 - -700448768 - - - 4 - 15 - 0 - YES - 0 - 1 - - - {{1, 17}, {197, 320}} - - - - - 4 - - - - 256 - {{198, 17}, {11, 320}} - - 256 - - _doScroller: - 0.19473683834075928 - - - - 256 - {{1, 337}, {197, 11}} - - 257 - - _doScroller: - 0.97524750232696533 - - - - 2304 - - - - {{1, 0}, {197, 17}} - - - - - 4 - - - - {{0, 31}, {210, 349}} - - - 133170 - - - - - QSAAAEEgAABBmAAAQZgAAA - - - - 274 - {{2, 31}, {197, 319}} - - YES - - 67239424 - 272629760 - Sorry, can not mark and list up the incompatible char(s). - - - - - 1 - MC43ODQzMTM3NCAwIDAAA - - - - - {{10, 7}, {210, 388}} - - - - - - - - LucidaGrande - 13 - 1558 - - 4 - YES - - - - - - - 289 - {{111, 4}, {100, 32}} - - YES - - 67239424 - 134217728 - Close - - - -2038284033 - 1 - - - - - - 200 - 25 - - - - - 266 - {{17, 442}, {196, 26}} - - YES - - -2076049856 - 2048 - - - 109199615 - 1 - - LucidaGrande - 13 - 16 - - - - - - 400 - 75 - - - Doc Info - - 1048576 - 2147483647 - 1 - - NSImage - NSMenuCheckmark - - - NSImage - NSMenuMixedState - - _popUpItemAction: - - - YES - - - OtherViews - - - - - - Incompatible Char - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 3 - YES - YES - 1 - - - - {230, 470} - NSView - NSResponder - - - CEToolbarController - - - - 256 - - - - 256 - {{17, 16}, {77, 22}} - - YES - - -2076049856 - 132096 - - - 109199615 - 1 - - LucidaGrande - 11 - 16 - - - - - - - - 400 - 75 - - - LF - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - - - - CR - - 1048576 - 2147483647 - - - _popUpItemAction: - 1 - - - - - CR/LF - - 1048576 - 2147483647 - - - _popUpItemAction: - 2 - - - - - 3 - YES - YES - 1 - - - - - 256 - {{135, 16}, {140, 22}} - - YES - - -2076049856 - 132096 - - - 109199615 - 1 - - - - - - - - 400 - 75 - - - IA - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - - - - 3 - YES - YES - 1 - - - - - 256 - {{307, 16}, {109, 22}} - - YES - - -2076049856 - 132096 - - - 109199615 - 1 - - - - - - - - 400 - 75 - - - IA - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - - - - 3 - YES - YES - 1 - - - - {505, 60} - - NSView - - NSResponder - - - - lineNumber - incompatibleChar - convertedChar - - YES - - YES - YES - YES - YES - YES - - - - 256 - - - - 256 - - - - 274 - - - - 256 - {{106, 69}, {215, 26}} - - YES - - -2076049856 - 2048 - - - 109199615 - 1 - - - - - - 400 - 75 - - - (No print) - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - - - - YES - YES - - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - Document Name - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - File Path - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - Print Date - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - Page number - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 3 - YES - YES - 1 - - - - - 256 - {{339, 72}, {77, 23}} - - YES - 1 - 3 - - - -2080244224 - 134217728 - - - - 922501375 - 6 - - NSImage - leftButtonImg - - - - - - 200 - 25 - - - 67239424 - 134217728 - - - - 921977087 - 6 - - NSImage - centerButtonImg - - - - 400 - 75 - - - 67239424 - 134217728 - - - - 921977087 - 6 - - NSImage - rightButtonImg - - - - 400 - 75 - - - {23, 23} - {4, 2} - 1143472128 - NSActionCell - - 67239424 - 0 - Radio - - 1211912703 - 0 - - NSRadioButton - - - - 400 - 75 - - - - - - - - - 256 - {{26, 11}, {330, 18}} - - YES - - 67239424 - 0 - Print separator line at the bottom of header - - - 1211912703 - 2 - - NSImage - NSSwitch - - - NSSwitch - - - - 200 - 25 - - - - - 256 - {{339, 42}, {77, 23}} - - YES - 1 - 3 - - - -2080244224 - 134217728 - - - - 922501375 - 6 - - - - - - 200 - 25 - - - 67239424 - 134217728 - - - - 921977087 - 6 - - - - 400 - 75 - - - 67239424 - 134217728 - - - - 921977087 - 6 - - - - 400 - 75 - - - {23, 23} - {4, 2} - 1143472128 - NSActionCell - - 67239424 - 0 - Radio - - 1211912703 - 0 - - 549453824 - {18, 18} - - - - - - TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXw -IyMjyRwcHIsJCQk8AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/ -29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZGRl5 -dXV198PDw//8/Pz////////////////////////////U1NT/fHx89yUlJXkAAAAFAAAAAAAAAAAAAAAA -AAAAAxEREUZqamrmtbW1/+3t7f/+/v7//v7+//7+/v/9/f3//f39//39/f/39/f/xMTE/3d3d+YZGRlG -AAAAAwAAAAAAAAAAAAAACkJCQqGtra3/xsbG/+vr6//y8vL/9fX1//X19f/z8/P/9fX1//Ly8v/u7u7/ -0tLS/6+vr/9KSkqhAAAACgAAAAAAAAAAAAAAF3h4eN2/v7//z8/P/93d3f/q6ur/7+/v/+/v7//w8PD/ -7e3t/+3t7f/i4uL/zs7O/8XFxf98fHzdAAAAFwAAAAAAAAADAAAAJKSkpPjOzs7/2dnZ/+Dg4P/i4uL/ -5eXl/+bm5v/n5+f/5eXl/+Li4v/e3t7/2tra/9DQ0P+srKz4AAAAJAAAAAMAAAADAAAALrCwsPrW1tb/ -3t7e/+Tk5P/p6en/6+vr/+zs7P/p6en/6+vr/+fn5//k5OT/4ODg/9nZ2f+zs7P6AAAALgAAAAMAAAAD -AAAALp2dnezg4OD/5eXl/+rq6v/u7u7/8PDw//Dw8P/x8fH/8PDw/+7u7v/q6ur/5ubm/+Hh4f+ZmZns -AAAALgAAAAMAAAADAAAAJG5ubs/l5eX/6enp/+/v7//y8vL/9vb2//r6+v/5+fn/9/f3//b29v/x8fH/ -6+vr/+Tk5P9ra2vPAAAAJAAAAAMAAAAAAAAAFy4uLpPCwsL67Ozs//Pz8//5+fn//v7+//7+/v/+/v7/ -/v7+//v7+//19fX/8PDw/8LCwvosLCyTAAAAFwAAAAAAAAAAAAAACgAAAENfX1/S5OTk/vn5+f/+/v7/ -///////////////////////////8/Pz/5ubm/l9fX9IAAABDAAAACgAAAAAAAAAAAAAAAwAAABcAAABl -YmJi3NLS0v3////////////////////////////////V1dX9ZGRk3AAAAGUAAAAXAAAAAwAAAAAAAAAA -AAAAAAAAAAUAAAAfAAAAZTMzM8KAgIDwv7+//O3t7f/t7e3/v7+//ICAgPAzMzPCAAAAZQAAAB8AAAAF -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAFwAAAEMAAAB3AAAAnwAAALMAAACzAAAAnwAAAHcAAABD -AAAAFwAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAoAAAAXAAAAJAAAAC4AAAAu -AAAAJAAAABcAAAAKAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQEAAAMAAAABABIAAAEB -AAMAAAABABIAAAECAAMAAAAEAAAFugEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES -AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS -AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA - - - - - - 3 - MCAwAA - - - - 400 - 75 - - - - - - - - - 256 - {{23, 74}, {81, 17}} - - YES - - 67239424 - 71303168 - Line 1: - - - - - - - - - 256 - {{23, 45}, {81, 17}} - - YES - - 67239424 - 71303168 - Line 2: - - - - - - - - - 256 - {{26, 98}, {185, 18}} - - YES - - 67239424 - 0 - Print Header: - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 256 - {{106, 39}, {215, 26}} - - YES - - -2076049856 - 2048 - - - 109199615 - 1 - - - - - - 400 - 75 - - - (No print) - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - - - - YES - YES - - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - Document Name - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - File Path - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - Print Date - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - Page number - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 3 - YES - YES - 1 - - - - {{2, 2}, {454, 122}} - - - - {{41, 170}, {458, 139}} - - {0, 0} - - 67239424 - 0 - Header: - - - - 3 - MCAwLjgwMDAwMDAxAA - - - - 3 - 0 - 2 - NO - - - - 256 - - - - 274 - - - - 256 - {{339, 72}, {77, 23}} - - YES - 1 - 3 - - - -2080244224 - 134217728 - - - - 922501375 - 6 - - - - - - 200 - 25 - - - 67239424 - 134217728 - - - - 921977087 - 6 - - - - 400 - 75 - - - 67239424 - 134217728 - - - - 921977087 - 6 - - - - 400 - 75 - - - {23, 23} - {4, 2} - 1143472128 - NSActionCell - - 67239424 - 0 - Radio - - 1211912703 - 0 - - 549453824 - {18, 18} - - - - - - TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXw -IyMjyRwcHIsJCQk8AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/ -29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZGRl5 -dXV198PDw//8/Pz////////////////////////////U1NT/fHx89yUlJXkAAAAFAAAAAAAAAAAAAAAA -AAAAAxEREUZqamrmtbW1/+3t7f/+/v7//v7+//7+/v/9/f3//f39//39/f/39/f/xMTE/3d3d+YZGRlG -AAAAAwAAAAAAAAAAAAAACkJCQqGtra3/xsbG/+vr6//y8vL/9fX1//X19f/z8/P/9fX1//Ly8v/u7u7/ -0tLS/6+vr/9KSkqhAAAACgAAAAAAAAAAAAAAF3h4eN2/v7//z8/P/93d3f/q6ur/7+/v/+/v7//w8PD/ -7e3t/+3t7f/i4uL/zs7O/8XFxf98fHzdAAAAFwAAAAAAAAADAAAAJKSkpPjOzs7/2dnZ/+Dg4P/i4uL/ -5eXl/+bm5v/n5+f/5eXl/+Li4v/e3t7/2tra/9DQ0P+srKz4AAAAJAAAAAMAAAADAAAALrCwsPrW1tb/ -3t7e/+Tk5P/p6en/6+vr/+zs7P/p6en/6+vr/+fn5//k5OT/4ODg/9nZ2f+zs7P6AAAALgAAAAMAAAAD -AAAALp2dnezg4OD/5eXl/+rq6v/u7u7/8PDw//Dw8P/x8fH/8PDw/+7u7v/q6ur/5ubm/+Hh4f+ZmZns -AAAALgAAAAMAAAADAAAAJG5ubs/l5eX/6enp/+/v7//y8vL/9vb2//r6+v/5+fn/9/f3//b29v/x8fH/ -6+vr/+Tk5P9ra2vPAAAAJAAAAAMAAAAAAAAAFy4uLpPCwsL67Ozs//Pz8//5+fn//v7+//7+/v/+/v7/ -/v7+//v7+//19fX/8PDw/8LCwvosLCyTAAAAFwAAAAAAAAAAAAAACgAAAENfX1/S5OTk/vn5+f/+/v7/ -///////////////////////////8/Pz/5ubm/l9fX9IAAABDAAAACgAAAAAAAAAAAAAAAwAAABcAAABl -YmJi3NLS0v3////////////////////////////////V1dX9ZGRk3AAAAGUAAAAXAAAAAwAAAAAAAAAA -AAAAAAAAAAUAAAAfAAAAZTMzM8KAgIDwv7+//O3t7f/t7e3/v7+//ICAgPAzMzPCAAAAZQAAAB8AAAAF -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAFwAAAEMAAAB3AAAAnwAAALMAAACzAAAAnwAAAHcAAABD -AAAAFwAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAoAAAAXAAAAJAAAAC4AAAAu -AAAAJAAAABcAAAAKAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQEAAAMAAAABABIAAAEB -AAMAAAABABIAAAECAAMAAAAEAAAFugEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES -AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS -AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA - - - - - - - - 400 - 75 - - - - - - - - - 256 - {{26, 11}, {330, 18}} - - YES - - 67239424 - 0 - Print separator line at the top of footer - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 256 - {{339, 42}, {77, 23}} - - YES - 1 - 3 - - - -2080244224 - 134217728 - - - - 922501375 - 6 - - - - - - 200 - 25 - - - 67239424 - 134217728 - - - - 921977087 - 6 - - - - 400 - 75 - - - 67239424 - 134217728 - - - - 921977087 - 6 - - - - 400 - 75 - - - {23, 23} - {4, 2} - 1143472128 - NSActionCell - - 67239424 - 0 - Radio - - 1211912703 - 0 - - 549453824 - {18, 18} - - - - - - TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXw -IyMjyRwcHIsJCQk8AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/ -29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZGRl5 -dXV198PDw//8/Pz////////////////////////////U1NT/fHx89yUlJXkAAAAFAAAAAAAAAAAAAAAA -AAAAAxEREUZqamrmtbW1/+3t7f/+/v7//v7+//7+/v/9/f3//f39//39/f/39/f/xMTE/3d3d+YZGRlG -AAAAAwAAAAAAAAAAAAAACkJCQqGtra3/xsbG/+vr6//y8vL/9fX1//X19f/z8/P/9fX1//Ly8v/u7u7/ -0tLS/6+vr/9KSkqhAAAACgAAAAAAAAAAAAAAF3h4eN2/v7//z8/P/93d3f/q6ur/7+/v/+/v7//w8PD/ -7e3t/+3t7f/i4uL/zs7O/8XFxf98fHzdAAAAFwAAAAAAAAADAAAAJKSkpPjOzs7/2dnZ/+Dg4P/i4uL/ -5eXl/+bm5v/n5+f/5eXl/+Li4v/e3t7/2tra/9DQ0P+srKz4AAAAJAAAAAMAAAADAAAALrCwsPrW1tb/ -3t7e/+Tk5P/p6en/6+vr/+zs7P/p6en/6+vr/+fn5//k5OT/4ODg/9nZ2f+zs7P6AAAALgAAAAMAAAAD -AAAALp2dnezg4OD/5eXl/+rq6v/u7u7/8PDw//Dw8P/x8fH/8PDw/+7u7v/q6ur/5ubm/+Hh4f+ZmZns -AAAALgAAAAMAAAADAAAAJG5ubs/l5eX/6enp/+/v7//y8vL/9vb2//r6+v/5+fn/9/f3//b29v/x8fH/ -6+vr/+Tk5P9ra2vPAAAAJAAAAAMAAAAAAAAAFy4uLpPCwsL67Ozs//Pz8//5+fn//v7+//7+/v/+/v7/ -/v7+//v7+//19fX/8PDw/8LCwvosLCyTAAAAFwAAAAAAAAAAAAAACgAAAENfX1/S5OTk/vn5+f/+/v7/ -///////////////////////////8/Pz/5ubm/l9fX9IAAABDAAAACgAAAAAAAAAAAAAAAwAAABcAAABl -YmJi3NLS0v3////////////////////////////////V1dX9ZGRk3AAAAGUAAAAXAAAAAwAAAAAAAAAA -AAAAAAAAAAUAAAAfAAAAZTMzM8KAgIDwv7+//O3t7f/t7e3/v7+//ICAgPAzMzPCAAAAZQAAAB8AAAAF -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAFwAAAEMAAAB3AAAAnwAAALMAAACzAAAAnwAAAHcAAABD -AAAAFwAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAoAAAAXAAAAJAAAAC4AAAAu -AAAAJAAAABcAAAAKAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQEAAAMAAAABABIAAAEB -AAMAAAABABIAAAECAAMAAAAEAAAFugEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES -AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS -AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA - - - - - - - - 400 - 75 - - - - - - - - - 256 - {{23, 76}, {81, 17}} - - YES - - 67239424 - 71303168 - Line 1: - - - - - - - - - 256 - {{23, 45}, {81, 17}} - - YES - - 67239424 - 71303168 - Line 2: - - - - - - - - - 256 - {{26, 98}, {192, 18}} - - YES - - 67239424 - 0 - Print Footer: - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 256 - {{106, 69}, {215, 26}} - - YES - - -2076049856 - 2048 - - - 109199615 - 1 - - - - - - 400 - 75 - - - (No print) - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - - - - YES - YES - - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - Document Name - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - File Path - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - Print Date - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - Page number - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 3 - YES - YES - 1 - - - - - 256 - {{106, 39}, {215, 26}} - - YES - - -2076049856 - 2048 - - - 109199615 - 1 - - - - - - 400 - 75 - - - (No print) - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - - - - YES - YES - - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - Document Name - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - File Path - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - Print Date - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - Page number - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 3 - YES - YES - 1 - - - - {{2, 2}, {454, 122}} - - - - {{41, 16}, {458, 139}} - - {0, 0} - - 67239424 - 0 - Footer: - - - - 3 - MCAwLjgwMDAwMDAxAA - - - - 3 - 0 - 2 - NO - - - - 256 - {{70, 347}, {114, 17}} - - YES - - 67239424 - 272629760 - Line numbers: - - - - - - - - - 256 - {{186, 341}, {215, 26}} - - YES - - -2076049856 - 2048 - - - 109199615 - 1 - - - - - - 400 - 75 - - - (No print) - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - - - - Same as document's setting - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - Print - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 3 - YES - YES - 1 - - - - - 256 - {{70, 317}, {114, 17}} - - YES - - 67239424 - 272629760 - Invisible Chars: - - - - - - - - - 256 - {{186, 311}, {215, 26}} - - YES - - -2076049856 - 2048 - - - 109199615 - 1 - - - - - - 400 - 75 - - - (No print) - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - - - - Same as document's setting - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - Print All - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 3 - YES - YES - 1 - - - - - 256 - {{44, 414}, {458, 17}} - - YES - - 67239424 - 4194304 - # You cannot change the print font here. - - - - - - - - - 256 - {{70, 377}, {114, 17}} - - YES - - 67239424 - 272629760 - Color: - - - - - - - - - 256 - {{186, 371}, {215, 26}} - - YES - - -2076049856 - 2048 - - - 109199615 - 1 - - - - - - 400 - 75 - - - Black text - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - - - - Same as document's setting - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 3 - YES - YES - 1 - - - - {540, 451} - NSView - NSResponder - - - - printHeader - headerOneStringIndex - headerTwoStringIndex - headerOneAlignIndex - headerTwoAlignIndex - printHeaderSeparator - printFooter - footerOneStringIndex - footerTwoStringIndex - footerOneAlignIndex - footerTwoAlignIndex - printFooterSeparator - printLineNumIndex - printInvisibleCharIndex - setPrintFont - printColorIndex - - YES - - - - - 256 - {125, 1} - - - - 256 - {125, 1} - - - - - - - delegate - - - - 17 - - - - _editorView - - - - 30 - - - - window - - - - 31 - - - - parentWindow - - - - 33 - - - - contentView - - - - 37 - - - - _drawer - - - - 38 - - - - _infoCreatorField - - - - 52 - - - - _infoCharsField - - - - 53 - - - - _infoLinesField - - - - 54 - - - - _infoTypeField - - - - 55 - - - - _infoSelectField - - - - 58 - - - - _infoCreatedField - - - - 64 - - - - _infoModifiedField - - - - 65 - - - - _mainWindow - - - - 72 - - - - _toolbarController - - - - 73 - - - - _lineEndingPopupButton - - - - 80 - - - - _encodingPopupButton - - - - 92 - - - - _syntaxPopupButton - - - - 98 - - - - _infoPermissionField - - - - 103 - - - - _infoFinderLockField - - - - 113 - - - - _listController - - - - 132 - - - - _tabView - - - - 133 - - - - value: arrangedObjects.lineNumber - - - - - - value: arrangedObjects.lineNumber - value - arrangedObjects.lineNumber - 2 - - - 134 - - - - value: arrangedObjects.incompatibleChar - - - - - - value: arrangedObjects.incompatibleChar - value - arrangedObjects.incompatibleChar - 2 - - - 135 - - - - delegate - - - - 136 - - - - close: - - - - 141 - - - - delegate - - - - 151 - - - - selectedIndex: _tabViewSelectedIndex - - - - - - selectedIndex: _tabViewSelectedIndex - selectedIndex - _tabViewSelectedIndex - 2 - - - 182 - - - - selectedIndex: _tabViewSelectedIndex - - - - - - selectedIndex: _tabViewSelectedIndex - selectedIndex - _tabViewSelectedIndex - 2 - - - 184 - - - - _tabViewSelectionPopUpButton - - - - 185 - - - - value: arrangedObjects.convertedChar - - - - - - value: arrangedObjects.convertedChar - value - arrangedObjects.convertedChar - - NSConditionallySetsEditable - - - 2 - - - 187 - - - - _listTableView - - - - 192 - - - - _listErrorTextField - - - - 193 - - - - _printAccessoryView - - - - 237 - - - - _infoOwnerField - - - - 414 - - - - _infoSingleCharField - - - - 447 - - - - _printSettingController - - - - 449 - - - - value: selection.printHeader - - - - - - value: selection.printHeader - value - selection.printHeader - 2 - - - 450 - - - - selectedIndex: selection.headerOneStringIndex - - - - - - selectedIndex: selection.headerOneStringIndex - selectedIndex - selection.headerOneStringIndex - 2 - - - 451 - - - - selectedIndex: selection.headerTwoStringIndex - - - - - - selectedIndex: selection.headerTwoStringIndex - selectedIndex - selection.headerTwoStringIndex - 2 - - - 452 - - - - enabled: selection.printHeader - - - - - - enabled: selection.printHeader - enabled - selection.printHeader - 2 - - - 453 - - - - enabled: selection.printHeader - - - - - - enabled: selection.printHeader - enabled - selection.printHeader - 2 - - - 454 - - - - enabled: selection.printHeader - - - - - - enabled: selection.printHeader - enabled - selection.printHeader - 2 - - - 455 - - - - enabled2: selection.headerOneStringIndex - - - - - - enabled2: selection.headerOneStringIndex - enabled2 - selection.headerOneStringIndex - - - - - - - - 2 - - - 457 - - - - selectedIndex: selection.headerOneAlignIndex - - - - - - selectedIndex: selection.headerOneAlignIndex - selectedIndex - selection.headerOneAlignIndex - 2 - - - 458 - - - - selectedIndex: selection.headerTwoAlignIndex - - - - - - selectedIndex: selection.headerTwoAlignIndex - selectedIndex - selection.headerTwoAlignIndex - 2 - - - 459 - - - - enabled: selection.printHeader - - - - - - enabled: selection.printHeader - enabled - selection.printHeader - 2 - - - 460 - - - - enabled2: selection.headerTwoStringIndex - - - - - - enabled2: selection.headerTwoStringIndex - enabled2 - selection.headerTwoStringIndex - - - - - - - - 2 - - - 462 - - - - value: selection.printFooter - - - - - - value: selection.printFooter - value - selection.printFooter - 2 - - - 463 - - - - selectedIndex: selection.footerOneStringIndex - - - - - - selectedIndex: selection.footerOneStringIndex - selectedIndex - selection.footerOneStringIndex - 2 - - - 464 - - - - selectedIndex: selection.footerTwoStringIndex - - - - - - selectedIndex: selection.footerTwoStringIndex - selectedIndex - selection.footerTwoStringIndex - 2 - - - 465 - - - - enabled: selection.printFooter - - - - - - enabled: selection.printFooter - enabled - selection.printFooter - 2 - - - 466 - - - - enabled: selection.printFooter - - - - - - enabled: selection.printFooter - enabled - selection.printFooter - 2 - - - 467 - - - - selectedIndex: selection.footerOneAlignIndex - - - - - - selectedIndex: selection.footerOneAlignIndex - selectedIndex - selection.footerOneAlignIndex - 2 - - - 468 - - - - selectedIndex: selection.footerTwoAlignIndex - - - - - - selectedIndex: selection.footerTwoAlignIndex - selectedIndex - selection.footerTwoAlignIndex - 2 - - - 469 - - - - enabled: selection.printFooter - - - - - - enabled: selection.printFooter - enabled - selection.printFooter - 2 - - - 470 - - - - enabled2: selection.footerTwoStringIndex - - - - - - enabled2: selection.footerTwoStringIndex - enabled2 - selection.footerTwoStringIndex - - - - - - - - 2 - - - 472 - - - - enabled: selection.printFooter - - - - - - enabled: selection.printFooter - enabled - selection.printFooter - 2 - - - 473 - - - - enabled2: selection.footerOneStringIndex - - - - - - enabled2: selection.footerOneStringIndex - enabled2 - selection.footerOneStringIndex - - - - - - - - 2 - - - 475 - - - - value: selection.printFooterSeparator - - - - - - value: selection.printFooterSeparator - value - selection.printFooterSeparator - 2 - - - 476 - - - - selectedIndex: selection.printLineNumIndex - - - - - - selectedIndex: selection.printLineNumIndex - selectedIndex - selection.printLineNumIndex - 2 - - - 477 - - - - selectedIndex: selection.printInvisibleCharIndex - - - - - - selectedIndex: selection.printInvisibleCharIndex - selectedIndex - selection.printInvisibleCharIndex - 2 - - - 478 - - - - value: selection.printHeaderSeparator - - - - - - value: selection.printHeaderSeparator - value - selection.printHeaderSeparator - 2 - - - 479 - - - - _infoEncodingField - - - - 513 - - - - _infoLineEndingsField - - - - 514 - - - - setLineEndingChar: - - - - 519 - - - - setLineEndingChar: - - - - 520 - - - - setLineEndingChar: - - - - 521 - - - - selectedIndex: selection.printColorIndex - - - - - - selectedIndex: selection.printColorIndex - selectedIndex - selection.printColorIndex - 2 - - - 592 - - - - _infoInLineField - - - - 665 - - - - - - 0 - - - - - - -2 - - - File's Owner - - - -1 - - - First Responder - - - -3 - - - Application - - - 5 - - - - - - Window - - - 6 - - - - - - - - 27 - - - - - 32 - - - InfoDrawer - - - 34 - - - - - - - - InfoView - - - 115 - - - - - - - - - 116 - - - - - - - - 118 - - - - - - - - 411 - - - - - - - - - - 108 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 39 - - - - - - - - 40 - - - - - - - - 41 - - - - - - - - 42 - - - - - - - - 43 - - - - - - - - 47 - - - - - - - - 48 - - - - - - - - 49 - - - - - - - - 50 - - - - - - 56 - - - - - - - - 57 - - - - - - - - 59 - - - - - - - - 60 - - - - - - - - 61 - - - - - - - - 62 - - - - - - - - 101 - - - - - - - - 102 - - - - - - - - 110 - - - - - - - - 114 - - - - - - - - 412 - - - - - - - - 413 - - - - - - - - 445 - - - - - - - - 446 - - - - - - - - 507 - - - - - - - - 508 - - - - - - - - 509 - - - - - - - - 510 - - - - - - - - 511 - - - - - - 661 - - - - - - - - 662 - - - - - - - - 117 - - - - - - - - 119 - - - - - - - - - 121 - - - - - - - - - - - 122 - - - - - - - - - - 123 - - - - - - - - 124 - - - - - - - - 186 - - - - - - - - 150 - - - - - - - - 140 - - - - - - - - 142 - - - - - - - - 71 - - - CEToolbarController - - - 74 - - - - - - - - toolbarItems - - - 77 - - - - - - - - 90 - - - - - - - - 96 - - - - - - - - 127 - - - listController - - - 196 - - - - - - - - - - - - - - printAccessoryView - - - 297 - - - - - - - - - - - - - - - 299 - - - - - - - - - - - - - - - 415 - - - - - - - - 416 - - - - - - - - 423 - - - - - - - - 424 - - - - - - - - 493 - - - - - - - - 584 - - - - - - - - 585 - - - - - - - - 448 - - - printSettingController - - - 670 - - - - - 671 - - - - - 672 - - - - - 673 - - - - - 674 - - - - - 675 - - - - - 676 - - - - - 677 - - - - - 678 - - - - - 679 - - - - - 680 - - - - - 681 - - - - - 682 - - - - - 683 - - - - - 684 - - - - - 685 - - - - - 686 - - - - - 687 - - - - - 688 - - - - - 689 - - - - - 690 - - - - - 691 - - - - - 692 - - - - - 693 - - - - - 694 - - - - - 695 - - - - - 696 - - - - - 697 - - - - - 698 - - - - - 699 - - - - - 700 - - - - - - - - 701 - - - - - - - - 702 - - - - - - - - 703 - - - - - - - - 716 - - - - - 717 - - - - - - - - 718 - - - - - 719 - - - - - - - - 720 - - - - - 721 - - - - - 722 - - - - - - - - 727 - - - - - 728 - - - - - 729 - - - - - 143 - - - - - - - - - 145 - - - - - 144 - - - - - 76 - - - - - - - - - - 441 - - - - - 440 - - - - - 75 - - - - - 88 - - - - - - - - 87 - - - - - 93 - - - - - - - - 95 - - - - - 417 - - - - - - - - - - 420 - - - - - 419 - - - - - 418 - - - - - 425 - - - - - - - - - - 428 - - - - - 427 - - - - - 426 - - - - - 587 - - - - - - - - - 590 - - - - - 589 - - - - - 730 - - - - - 731 - - - - - 732 - - - - - 733 - - - - - 734 - - - - - 198 - - - - - - - - 704 - - - - - - - - 199 - - - - - - - - - - - - - 200 - - - - - 202 - - - - - 203 - - - - - 206 - - - - - 393 - - - - - 394 - - - - - 212 - - - - - - - - - - - 723 - - - - - 215 - - - - - 214 - - - - - 213 - - - - - 216 - - - - - - - - 705 - - - - - 252 - - - - - - - - - - - 724 - - - - - 255 - - - - - 254 - - - - - 253 - - - - - 256 - - - - - - - - 706 - - - - - 257 - - - - - - - - 707 - - - - - 303 - - - - - - - - 708 - - - - - 305 - - - - - - - - 709 - - - - - - - - 306 - - - - - - - - - - - - - 307 - - - - - 310 - - - - - 311 - - - - - 312 - - - - - 395 - - - - - 396 - - - - - 272 - - - - - - - - - - - 725 - - - - - 275 - - - - - 274 - - - - - 273 - - - - - 276 - - - - - - - - 710 - - - - - 291 - - - - - - - - - - - 726 - - - - - 294 - - - - - 293 - - - - - 292 - - - - - 295 - - - - - - - - 711 - - - - - 296 - - - - - - - - 712 - - - - - 304 - - - - - - - - 713 - - - - - 313 - - - - - - - - 714 - - - - - - - - 314 - - - - - - - - - - - - - 315 - - - - - 318 - - - - - 319 - - - - - 320 - - - - - 397 - - - - - 398 - - - - - 321 - - - - - - - - 715 - - - - - - - - 322 - - - - - - - - - - - - - 323 - - - - - 326 - - - - - 327 - - - - - 328 - - - - - 399 - - - - - 400 - - - - - 51 - - - - - 512 - - - - - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - - - - - 734 - - - - - CEDocument - NSDocument - - id - id - id - id - id - id - id - id - id - id - id - id - id - id - - - - insertIANACharSetName: - id - - - insertIANACharSetNameWithCharset: - id - - - insertIANACharSetNameWithEncoding: - id - - - recoloringAllStringOfDocument: - id - - - selectNextItemOfOutlineMenu: - id - - - selectPrevItemOfOutlineMenu: - id - - - setEncoding: - id - - - setLineEndingChar: - id - - - setLineEndingCharToCR: - id - - - setLineEndingCharToCRLF: - id - - - setLineEndingCharToLF: - id - - - setSyntaxStyle: - id - - - setTransparencyOnlyTextView: - id - - - setWindowAlpha: - id - - - - IBProjectSource - ./Classes/CEDocument.h - - - - CEEditorView - NSView - - id - id - id - id - id - id - id - id - id - id - id - - - - closeSplitTextView: - id - - - focusNextSplitTextView: - id - - - focusPrevSplitTextView: - id - - - openSplitTextView: - id - - - toggleShowInvisibleChars: - id - - - toggleShowLineNum: - id - - - toggleShowNavigationBar: - id - - - toggleShowPageGuide: - id - - - toggleShowStatusBar: - id - - - toggleUseAntialias: - id - - - toggleWrapLines: - id - - - - IBProjectSource - ./Classes/CEEditorView.h - - - - CEFlippedView - NSView - - IBProjectSource - ./Classes/CEFlippedView.h - - - - CEToolbarController - NSObject - - id - id - id - id - id - - - - _encodingPopupButton - id - - - _lineEndingPopupButton - id - - - _mainWindow - id - - - _searchMenu - id - - - _syntaxPopupButton - id - - - - IBProjectSource - ./Classes/CEToolbarController.h - - - - CEWindowController - NSWindowController - - id - id - id - - - - getInfo: - id - - - selectIncompatibleRange: - id - - - toggleIncompatibleCharList: - id - - - - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - - - - _drawer - id - - - _editorView - id - - - _infoCharsField - id - - - _infoCreatedField - id - - - _infoCreatorField - id - - - _infoEncodingField - id - - - _infoFinderLockField - id - - - _infoInLineField - id - - - _infoLineEndingsField - id - - - _infoLinesField - id - - - _infoModifiedField - id - - - _infoOwnerField - id - - - _infoPermissionField - id - - - _infoSelectField - id - - - _infoSingleCharField - id - - - _infoTypeField - id - - - _listController - id - - - _listErrorTextField - id - - - _listTableView - id - - - _printAccessoryView - id - - - _printSettingController - id - - - _tabView - id - - - _tabViewSelectionPopUpButton - id - - - _toolbarController - id - - - - IBProjectSource - ./Classes/CEWindowController.h - - - - NSDocument - - id - id - id - id - id - id - - - - printDocument: - id - - - revertDocumentToSaved: - id - - - runPageLayout: - id - - - saveDocument: - id - - - saveDocumentAs: - id - - - saveDocumentTo: - id - - - - IBProjectSource - ./Classes/NSDocument.h - - - - - 0 - IBCocoaFramework - - com.apple.InterfaceBuilder.CocoaPlugin.macosx - - - YES - 3 - - {9, 8} - {7, 2} - {15, 15} - {16, 16} - {16, 16} - {16, 16} - - - diff --git a/English.lproj/DocWindow.nib/keyedobjects.nib b/English.lproj/DocWindow.nib/keyedobjects.nib deleted file mode 100644 index 248888ccde..0000000000 Binary files a/English.lproj/DocWindow.nib/keyedobjects.nib and /dev/null differ diff --git a/English.lproj/HCCManager.nib/classes.nib b/English.lproj/HCCManager.nib/classes.nib deleted file mode 100644 index 88a7fb112c..0000000000 --- a/English.lproj/HCCManager.nib/classes.nib +++ /dev/null @@ -1,33 +0,0 @@ -{ - IBClasses = ( - { - ACTIONS = { - addComboBoxDataCurrentString = id; - exportHexColorCode = id; - swapColor = id; - toggleDisclosureButton = id; - }; - CLASS = CEHCCManager; - LANGUAGE = ObjC; - OUTLETS = { - "_backColorDataController" = id; - "_backgroundColorComboBox" = id; - "_backgroundColorWell" = id; - "_disclosureButton" = id; - "_foreColorComboBox" = id; - "_foreColorDataController" = id; - "_foreColorWell" = id; - "_optionView" = id; - "_sampleTextField" = id; - }; - SUPERCLASS = NSObject; - }, - { - ACTIONS = {"" = id; }; - CLASS = FirstResponder; - LANGUAGE = ObjC; - SUPERCLASS = NSObject; - } - ); - IBVersion = 1; -} \ No newline at end of file diff --git a/English.lproj/HCCManager.nib/info.nib b/English.lproj/HCCManager.nib/info.nib deleted file mode 100644 index 7ef0707e40..0000000000 --- a/English.lproj/HCCManager.nib/info.nib +++ /dev/null @@ -1,16 +0,0 @@ - - - - - IBDocumentLocation - 69 10 356 240 0 0 1280 1002 - IBFramework Version - 439.0 - IBOpenObjects - - 5 - - IBSystem Version - 8C46 - - diff --git a/English.lproj/HCCManager.nib/keyedobjects.nib b/English.lproj/HCCManager.nib/keyedobjects.nib deleted file mode 100644 index 0b29edef14..0000000000 Binary files a/English.lproj/HCCManager.nib/keyedobjects.nib and /dev/null differ diff --git a/English.lproj/Indicator.nib/classes.nib b/English.lproj/Indicator.nib/classes.nib deleted file mode 100644 index cdbbf12e88..0000000000 --- a/English.lproj/Indicator.nib/classes.nib +++ /dev/null @@ -1,45 +0,0 @@ - - - - - IBClasses - - - CLASS - FirstResponder - LANGUAGE - ObjC - SUPERCLASS - NSObject - - - CLASS - NSObject - LANGUAGE - ObjC - - - ACTIONS - - cancelColoring - id - - CLASS - CESyntax - LANGUAGE - ObjC - OUTLETS - - _coloringCaption - id - _coloringIndicator - id - - SUPERCLASS - NSObject - - - IBVersion - 1 - - diff --git a/English.lproj/Indicator.nib/info.nib b/English.lproj/Indicator.nib/info.nib deleted file mode 100644 index cc142cd267..0000000000 --- a/English.lproj/Indicator.nib/info.nib +++ /dev/null @@ -1,18 +0,0 @@ - - - - - IBFramework Version - 629 - IBLastKnownRelativeProjectPath - ../../CotEditor.xcodeproj - IBOldestOS - 3 - IBOpenObjects - - IBSystem Version - 9B18 - targetFramework - IBCocoaFramework - - diff --git a/English.lproj/Indicator.nib/keyedobjects.nib b/English.lproj/Indicator.nib/keyedobjects.nib deleted file mode 100644 index c422f36588..0000000000 Binary files a/English.lproj/Indicator.nib/keyedobjects.nib and /dev/null differ diff --git a/English.lproj/InfoPlist.strings b/English.lproj/InfoPlist.strings deleted file mode 100644 index d6ef07d453..0000000000 Binary files a/English.lproj/InfoPlist.strings and /dev/null differ diff --git a/English.lproj/KeyBindingManager.nib/classes.nib b/English.lproj/KeyBindingManager.nib/classes.nib deleted file mode 100644 index a6ff0daafe..0000000000 --- a/English.lproj/KeyBindingManager.nib/classes.nib +++ /dev/null @@ -1,40 +0,0 @@ -{ - IBClasses = ( - { - ACTIONS = { - closeKeyBindingEditSheet = id; - deleteKeyBindingKey = id; - editKeyBindingKey = id; - resetOutlineDataArrayToFactoryDefaults = id; - }; - CLASS = CEKeyBindingManager; - LANGUAGE = ObjC; - OUTLETS = { - "_menuDeleteKeyButton" = id; - "_menuDuplicateTextField" = id; - "_menuEditKeyButton" = id; - "_menuEditSheet" = id; - "_menuFactoryDefaultsButton" = id; - "_menuOkButton" = id; - "_menuOutlineView" = id; - "_textDeleteKeyButton" = id; - "_textDuplicateTextField" = id; - "_textEditKeyButton" = id; - "_textEditSheet" = id; - "_textFactoryDefaultsButton" = id; - "_textInsertStringArrayController" = id; - "_textInsertStringTextView" = id; - "_textOkButton" = id; - "_textOutlineView" = id; - }; - SUPERCLASS = NSObject; - }, - { - ACTIONS = {"" = id; }; - CLASS = FirstResponder; - LANGUAGE = ObjC; - SUPERCLASS = NSObject; - } - ); - IBVersion = 1; -} \ No newline at end of file diff --git a/English.lproj/KeyBindingManager.nib/info.nib b/English.lproj/KeyBindingManager.nib/info.nib deleted file mode 100644 index 40049ef0c8..0000000000 --- a/English.lproj/KeyBindingManager.nib/info.nib +++ /dev/null @@ -1,19 +0,0 @@ - - - - - IBDocumentLocation - 69 10 356 240 0 0 1280 1002 - IBFramework Version - 446.1 - IBOldestOS - 3 - IBOpenObjects - - 5 - 54 - - IBSystem Version - 8P135 - - diff --git a/English.lproj/KeyBindingManager.nib/keyedobjects.nib b/English.lproj/KeyBindingManager.nib/keyedobjects.nib deleted file mode 100644 index cd67116936..0000000000 Binary files a/English.lproj/KeyBindingManager.nib/keyedobjects.nib and /dev/null differ diff --git a/English.lproj/Localizable.strings b/English.lproj/Localizable.strings deleted file mode 100644 index e9edaf448e..0000000000 Binary files a/English.lproj/Localizable.strings and /dev/null differ diff --git a/English.lproj/MainMenu.nib/designable.nib b/English.lproj/MainMenu.nib/designable.nib deleted file mode 100644 index 7867747f48..0000000000 --- a/English.lproj/MainMenu.nib/designable.nib +++ /dev/null @@ -1,8094 +0,0 @@ - - - - 1050 - 10J869 - 823 - 1038.35 - 461.00 - - com.apple.InterfaceBuilder.CocoaPlugin - 823 - - - YES - - - YES - com.apple.InterfaceBuilder.CocoaPlugin - - - PluginDependencyRecalculationVersion - - - - YES - - CEApplication - - - FirstResponder - - - NSApplication - - - MainMenu - - YES - - - CotEditor - - 1048576 - 2147483647 - - NSImage - NSMenuCheckmark - - - NSImage - NSMenuMixedState - - submenuAction: - - CotEditor - - YES - - - About CotEditor - - 2147483647 - - - - - - Check for Updates... - - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Preferences… - , - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Services - - 1048576 - 2147483647 - - - submenuAction: - 999 - - Services - - YES - - _NSServicesMenu - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Hide CotEditor - h - 1048576 - 2147483647 - - - - - - Hide Others - h - 1572864 - 2147483647 - - - - - - Show All - - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Quit CotEditor - q - 1048576 - 2147483647 - - - - - _NSAppleMenu - - - - - File - - 1048576 - 2147483647 - - - submenuAction: - - - File - - - YES - - - New - n - 1048576 - 2147483647 - - - 100 - - - - Open… - o - 1048576 - 2147483647 - - - 101 - - - - YES - Open Hidden… - O - 1048576 - 2147483647 - - - 102 - - - - Open Recent - - 1048576 - 2147483647 - - - submenuAction: - 102 - - Open Recent - - YES - - - Clear Menu - - 1048576 - 2147483647 - - - - - _NSRecentDocumentsMenu - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Get Info - i - 1048576 - 2147483647 - - - - - - Show Incompatible Char - I - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Close - w - 1048576 - 2147483647 - - - - - - Save - s - 1048576 - 2147483647 - - - - - - Save As… - S - 1048576 - 2147483647 - - - - - - Revert - - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Page Setup… - P - 1048576 - 2147483647 - - - - - - Print… - p - 1048576 - 2147483647 - - - - - - - - - Edit - - 1048576 - 2147483647 - - - submenuAction: - - - Edit - - - YES - - - Undo - z - 1048576 - 2147483647 - - - - - - Redo - Z - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Cut - x - 1048576 - 2147483647 - - - - - - Copy - c - 1048576 - 2147483647 - - - - - - Paste - v - 1048576 - 2147483647 - - - - - - Delete - - 1048576 - 2147483647 - - - - - - Select All - a - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Input BackSlash - ¥ - 1048576 - 2147483647 - - - 209 - - - - Input YenMark - y - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Insert Encoding Name - - 1048576 - 2147483647 - - - submenuAction: - - Insert Encoding Name - - YES - - - as IANA Charset - - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - with "charset=" - - 1048576 - 2147483647 - - - - - - with "encoding=" - - 1048576 - 2147483647 - - - - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Spelling - - 1048576 - 2147483647 - - - submenuAction: - - Spelling - - YES - - - Spelling… - : - 1048576 - 2147483647 - - - - - - Check Spelling - ; - 1048576 - 2147483647 - - - - - - Check Spelling as You Type - - 1048576 - 2147483647 - - - - - - - - - - - - View - - 1048576 - 2147483647 - - - submenuAction: - - View - - YES - - - Show Navigation Bar - - 1048576 - 2147483647 - - - - - - Show Line Numbers - - 1048576 - 2147483647 - - - - - - Show Status Bar - - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Show Invisible Characters - - 1048576 - 2147483647 - - - 304 - - - - Show Page Guide - - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Split View - " - 1048576 - 2147483647 - - - - - - Focus on Next Split View - - 1835008 - 2147483647 - - - - - - Focus on Prev Split View - - 1835008 - 2147483647 - - - - - - Close Split View - ' - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Set Window Transparency... - T - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Hide Toolbar - - 1048576 - 2147483647 - - - - - - Customize Toolbar... - - 1048576 - 2147483647 - - - - - - - - - Format - - 1048576 - 2147483647 - - - submenuAction: - - - Format - - - YES - - - Font - - 1048576 - 2147483647 - - - submenuAction: - - - Font - - - YES - - - Show Fonts - t - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Bigger - + - 1048576 - 2147483647 - - - 3 - - - - Smaller - - - 1048576 - 2147483647 - - - 4 - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Reset to Default - = - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Anti-aliasing - - 1048576 - 2147483647 - - - - - _NSFontMenu - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Wrap Lines - - 1048576 - 2147483647 - - - - - - Line Spacing - - 1048576 - 2147483647 - - - submenuAction: - - Line Spacing - - YES - - - 0 - - 1048576 - 2147483647 - - - - - - 0.25 - - 1048576 - 2147483647 - - - - - - 0.5 - - 1048576 - 2147483647 - - - - - - 0.75 - - 1048576 - 2147483647 - - - - - - 1.0 - - 1048576 - 2147483647 - - - - - - 1.25 - - 1048576 - 2147483647 - - - - - - 1.5 - - 1048576 - 2147483647 - - - - - - 1.75 - - 1048576 - 2147483647 - - - - - - 2.0 - - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Custom... - - 1048576 - 2147483647 - - - - - - - - - Line Endings - - 1048576 - 2147483647 - - - submenuAction: - 100 - - Line Endings - - YES - - - Unix (LF) - - 1048576 - 2147483647 - - - - - - Macintosh (CR) - - 1048576 - 2147483647 - - - 1 - - - - Windows (CR/LF) - - 1048576 - 2147483647 - - - 2 - - - - - - - File Encoding - - 1048576 - 2147483647 - - - submenuAction: - 4001 - - File Encoding - - YES - - - Item - - 1048576 - 2147483647 - - - - - - - - - Syntax Coloring - - 1048576 - 2147483647 - - - submenuAction: - 4002 - - Syntax Coloring - - YES - - - Item - - 1048576 - 2147483647 - - - - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Shift Right - ] - 1048576 - 2147483647 - - - - - - Shift Left - [ - 1048576 - 2147483647 - - - - - - - - - Find - - 1048576 - 2147483647 - - - submenuAction: - - - Find - - - YES - - - Find… - f - 1048576 - 2147483647 - - - 1 - - - - Find Next - g - 1048576 - 2147483647 - - - 2 - - - - Find Previous - G - 1048576 - 2147483647 - - - 3 - - - - Use Selection for Find - e - 1048576 - 2147483647 - - - 7 - - - - Jump to Selection - j - 1048576 - 2147483647 - - - - - - - - - Utility - - 1048576 - 2147483647 - - - submenuAction: - - Utility - - YES - - - Lowercase - - 1048576 - 2147483647 - - - - - - - - - Uppercase - - 1048576 - 2147483647 - - - - - - - - - Capitalize - - 1048576 - 2147483647 - - - - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - ASCII to Fullwidth ASCII - - 1048576 - 2147483647 - - - - - - - - - Fullwidth ASCII to ASCII - - 1048576 - 2147483647 - - - - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Hiragana to Katakana (jp) - - 1048576 - 2147483647 - - - - - - Katakana to Hiragana (jp) - - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Unicode Normalization - - 1048576 - 2147483647 - - - submenuAction: - - Unicode Normalization - - YES - - - NFD - - 1048576 - 2147483647 - - - - - - NFC - - 1048576 - 2147483647 - - - 1 - - - - NFKD - - 1048576 - 2147483647 - - - 2 - - - - NFKC - - 1048576 - 2147483647 - - - 3 - - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Edit HexColorCode as Fore... - h - 1310720 - 2147483647 - - - - - - Edit HexColorCode as BG... - H - 1310720 - 2147483647 - - - - - - - - - - - - Window - - 1048576 - 2147483647 - - - submenuAction: - - - Window - - - YES - - - Zoom - - 1048576 - 2147483647 - - - - - - Minimize - m - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Bring All to Front - - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Panels - - 1048576 - 2147483647 - - - submenuAction: - 7999 - - Panels - - YES - - - Transparency - 1 - 1048576 - 2147483647 - - - - - - GoTo - 2 - 1048576 - 2147483647 - - - - - - Hex Color Code Editor - 3 - 1048576 - 2147483647 - - - - - - Script Error Window - 4 - 1048576 - 2147483647 - - - - - - - - _NSWindowsMenu - - - - - Scripts - - 1048576 - 2147483647 - - - submenuAction: - 800 - - Scripts - - YES - - - Item - - 1048576 - 2147483647 - - - - - - - - - Help - - 1048576 - 2147483647 - - - submenuAction: - - - Help - - - YES - - - CotEditor Help - ? - 1048576 - 2147483647 - - - - - - Documents - - 2147483647 - - - submenuAction: - - Documents - - YES - - - ReadMe - - 2147483647 - - - 200 - - - - Version History - - 2147483647 - - - 201 - - - - Known Problems - - 2147483647 - - - 202 - - - - YES - YES - - - 2147483647 - - - - - - License - - 2147483647 - - - 100 - - - - OgreKit License - - 2147483647 - - - 101 - - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Open Dictionary... - - 1048576 - 2147483647 - - - - - - - - _NSMainMenu - - - OgreTextFinder - - - CEAppController - - - CEDocumentController - - - - 258 - - YES - - - 260 - {{167, 8}, {233, 26}} - - YES - - -2076049856 - 1024 - - LucidaGrande - 13 - 1044 - - - 109199615 - 1 - - - - - - - - 400 - 75 - - - Auto-Detect - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - YES - - - - YES - YES - - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 3 - YES - YES - 1 - - - - - 260 - {{25, 14}, {140, 17}} - - YES - - 67239424 - 71303168 - Encoding: - - - - 6 - System - controlColor - - 3 - MC42NjY2NjY2NjY3AA - - - - 6 - System - controlTextColor - - 3 - MAA - - - - - - {435, 43} - - NSView - - NSResponder - - - 19 - 2 - {{21, 309}, {296, 113}} - -260571136 - Window Transparency - NSPanel - - View - - {1.79769e+308, 1.79769e+308} - {213, 113} - - - 256 - - YES - - - 256 - {{61, 58}, {174, 26}} - - YES - - 604372736 - 0 - - - - - Helvetica - 12 - 16 - - - 1 - 0.20000000000000001 - 1 - 0.0 - 17 - 1 - YES - NO - - - - - 256 - {{128, 89}, {40, 18}} - - YES - - -2068709823 - 71435264 - - 0 - 1 - NO - YES - 1 - AQAAAAAAAAAAAAAAAAAAAA - - - LucidaGrande - 11 - 3100 - - - - YES - - YES - allowsFloats - attributedStringForNil - attributedStringForNotANumber - attributedStringForZero - decimalSeparator - formatterBehavior - groupingSeparator - locale - negativeFormat - positiveFormat - usesGroupingSeparator - - - YES - - - - - - NaN - - YES - - YES - - - YES - - - - - 0.00 - - - . - - , - - - - -0.00 - 0.00 - - - - 0.00 - -0.00 - - - - - - - 0 - 0 - YES - NO - 1 - AAAAAAAAAAAAAAAAAAAAAA - - - - . - , - NO - NO - YES - - - - 6 - System - textBackgroundColor - - 3 - MQA - - - - 6 - System - disabledControlTextColor - - 3 - MC4zMzMzMzMzMzMzAA - - - - - - - 256 - {{60, 36}, {178, 18}} - - YES - - 604110336 - 131072 - Text view only - - - 1211912703 - 2 - - NSSwitch - - - - 200 - 25 - - - - - 256 - {{164, 14}, {113, 16}} - - YES - - 604110336 - 134479872 - Set All Windows - - LucidaGrande - 9 - 3614 - - - -2038284033 - 1 - - LucidaGrande - 9 - 16 - - - - - - 200 - 25 - - - - {{1, 1}, {296, 113}} - - {{0, 0}, {1280, 1002}} - {213, 129} - {1.79769e+308, 1.79769e+308} - transparencyPanel - - - - YES - curWindowAlpha - curAlphaOnlyTextView - - YES - - - - NSFontManager - - - 19 - 2 - {{97, 646}, {258, 113}} - -260571136 - Go To - NSPanel - - View - - {1.79769e+308, 1.79769e+308} - {213, 113} - - - 256 - - YES - - - 256 - {{18, 57}, {92, 38}} - - YES - 2 - 1 - - YES - - -2080244224 - 0 - Character - - - 1211912703 - 0 - - NSRadioButton - - - - - - 200 - 25 - - - 67239424 - 0 - Line - - - 1 - 1211912703 - 0 - - - - 200 - 25 - - - {92, 18} - {4, 2} - 1143472128 - NSActionCell - - 67239424 - 0 - Radio - - 1211912703 - 0 - - - 400 - 75 - - - - - - - - - 256 - {{116, 66}, {122, 22}} - - YES - - -1267597759 - 4195328 - - - - YES - - - 6 - System - textColor - - - - - - - 256 - {{134, 18}, {100, 32}} - - YES - - 604110336 - 134217728 - Select - - - -2038284033 - 1 - - - DQ - 200 - 25 - - - - {{1, 9}, {258, 113}} - - {{0, 0}, {1280, 1002}} - {213, 129} - {1.79769e+308, 1.79769e+308} - gotoWindow - - - YES - - - 19 - 2 - {{396, 383}, {226, 121}} - -260571136 - Line Spacing (Custom) - - NSPanel - - - View - - {1.79769e+308, 1.79769e+308} - {213, 113} - - - 256 - - YES - - - 256 - {{140, 74}, {64, 14}} - - YES - - 67239424 - 272629760 - line(s) - - - - - - - - - 256 - {{51, 72}, {84, 22}} - - YES - - -1804468671 - 272630784 - - - - YES - - - - - - - 256 - {{112, 12}, {100, 32}} - - YES - - 67239424 - 134217728 - OK - - - -2038284033 - 1 - - - DQ - 200 - 25 - - - - - 256 - {{14, 12}, {100, 32}} - - YES - - 67239424 - 134217728 - Cancel - - - -2038284033 - 1 - - - Gw - 200 - 25 - - - - - 256 - {{51, 57}, {84, 13}} - - YES - - 67239424 - 138412032 - ( 0 - 10.0 ) - - LucidaGrande - 10 - 2843 - - - - - - - - {{1, 1}, {226, 121}} - - {{0, 0}, {1280, 1002}} - {213, 129} - {1.79769e+308, 1.79769e+308} - lineSpacingPanel - - - SUUpdater - - - - - YES - - - performMiniaturize: - - - - 37 - - - - arrangeInFront: - - - - 39 - - - - runPageLayout: - - - - 87 - - - - showHelp: - - - - 122 - - - - clearRecentDocuments: - - - - 127 - - - - terminate: - - - - 139 - - - - orderFrontStandardAboutPanel: - - - - 142 - - - - hideOtherApplications: - - - - 146 - - - - hide: - - - - 152 - - - - unhideAllApplications: - - - - 153 - - - - cut: - - - - 175 - - - - paste: - - - - 176 - - - - redo: - - - - 178 - - - - selectAll: - - - - 179 - - - - undo: - - - - 180 - - - - copy: - - - - 181 - - - - showGuessPanel: - - - - 188 - - - - checkSpelling: - - - - 190 - - - - toggleContinuousSpellChecking: - - - - 192 - - - - performClose: - - - - 193 - - - - newDocument: - - - - 194 - - - - openDocument: - - - - 195 - - - - saveDocument: - - - - 196 - - - - saveDocumentAs: - - - - 197 - - - - revertDocumentToSaved: - - - - 198 - - - - printDocument: - - - - 200 - - - - delete: - - - - 201 - - - - performZoom: - - - - 204 - - - - toggleWrapLines: - - - - 288 - - - - delegate - - - - 291 - - - - openPrefWindow: - - - - 293 - - - - toggleShowLineNum: - - - - 326 - - - - _openPanelAccessoryView - - - - 348 - - - - _appController - - - - 350 - - - - toggleShowStatusBar: - - - - 356 - - - - _accessoryEncodingMenu - - - - 357 - - - - _windowAlphaField - - - - 383 - - - - _windowAlphaSetButton - - - - 384 - - - - _windowAlphaSlider - - - - 385 - - - - value: selection.curWindowAlpha - - - - - - value: selection.curWindowAlpha - value - selection.curWindowAlpha - 2 - - - 387 - - - - _transparencyController - - - - 389 - - - - value: selection.curWindowAlpha - - - - - - value: selection.curWindowAlpha - value - selection.curWindowAlpha - - YES - - YES - NSConditionallySetsEditable - NSNoSelectionPlaceholder - - - YES - - IA - - - 2 - - - 395 - - - - orderFrontFontPanel: - - - - 431 - - - - modifyFont: - - - - 439 - - - - modifyFont: - - - - 449 - - - - shiftRight: - - - - 456 - - - - shiftLeft: - - - - 457 - - - - performFindPanelAction: - - - - 539 - - - - performFindPanelAction: - - - - 540 - - - - performFindPanelAction: - - - - 541 - - - - centerSelectionInVisibleArea: - - - - 542 - - - - performFindPanelAction: - - - - 543 - - - - selectedIndex: values.gotoObjectMenuIndex - - - - - - selectedIndex: values.gotoObjectMenuIndex - selectedIndex - values.gotoObjectMenuIndex - 2 - - - 556 - - - - setWindowAlpha: - - - - 557 - - - - _gotoIndexField - - - - 558 - - - - setAllWindowAlpha: - - - - 559 - - - - gotoCharacterOrLine: - - - - 562 - - - - _gotoSelectButton - - - - 563 - - - - getInfo: - - - - 565 - - - - value: selection.curAlphaOnlyTextView - - - - - - value: selection.curAlphaOnlyTextView - value - selection.curAlphaOnlyTextView - 2 - - - 571 - - - - setTransparencyOnlyTextView: - - - - 572 - - - - _windowAlphaTextViewOnlyButton - - - - 573 - - - - resetFont: - - - - 575 - - - - exchangeLowercase: - - - - 580 - - - - exchangeUppercase: - - - - 582 - - - - exchangeCapitalized: - - - - 584 - - - - exchangeFullwidthRoman: - - - - 587 - - - - exchangeHalfwidthRoman: - - - - 590 - - - - exchangeKatakana: - - - - 593 - - - - exchangeHiragana: - - - - 596 - - - - unicodeNormalizationNFD: - - - - 604 - - - - setLineEndingCharToLF: - - - - 608 - - - - toggleToolbarShown: - - - - 614 - - - - runToolbarCustomizationPalette: - - - - 615 - - - - openAppleScriptDictionary: - - - - 621 - - - - _gotoCharLineMatrix - - - - 629 - - - - inputYenMark: - - - - 634 - - - - inputBackSlash: - - - - 635 - - - - editHexColorCodeAsForeColor: - - - - 642 - - - - editHexColorCodeAsBGColor: - - - - 647 - - - - openHexColorCodeEditor: - - - - 652 - - - - openScriptErrorWindow: - - - - 654 - - - - openTransparencyPanel: - - - - 657 - - - - openGotoPanel: - - - - 658 - - - - openTransparencyPanel: - - - - 659 - - - - insertIANACharSetName: - - - - 666 - - - - insertIANACharSetNameWithCharset: - - - - 668 - - - - insertIANACharSetNameWithEncoding: - - - - 669 - - - - toggleIncompatibleCharList: - - - - 680 - - - - toggleShowNavigationBar: - - - - 682 - - - - setLineEndingCharToCR: - - - - 683 - - - - setLineEndingCharToCRLF: - - - - 684 - - - - unicodeNormalizationNFC: - - - - 685 - - - - unicodeNormalizationNFKD: - - - - 686 - - - - unicodeNormalizationNFKC: - - - - 687 - - - - openHiddenDocument: - - - - 690 - - - - toggleUseAntialias: - - - - 747 - - - - toggleShowPageGuide: - - - - 750 - - - - setLineSpacingFromMenu: - - - - 760 - - - - setLineSpacingFromMenu: - - - - 761 - - - - setLineSpacingFromMenu: - - - - 762 - - - - setLineSpacingFromMenu: - - - - 763 - - - - setLineSpacingFromMenu: - - - - 764 - - - - setLineSpacingFromMenu: - - - - 765 - - - - setLineSpacingFromMenu: - - - - 766 - - - - setLineSpacingFromMenu: - - - - 768 - - - - setLineSpacingFromMenu: - - - - 770 - - - - initialFirstResponder - - - - 781 - - - - _lineSpacingField - - - - 782 - - - - setCustomLineSpacing: - - - - 783 - - - - openLineSpacingPanel: - - - - 784 - - - - closeLineSpacingPanel: - - - - 785 - - - - toggleShowInvisibleChars: - - - - 791 - - - - openSplitTextView: - - - - 797 - - - - closeSplitTextView: - - - - 798 - - - - focusNextSplitTextView: - - - - 799 - - - - focusPrevSplitTextView: - - - - 800 - - - - openBundledDocument: - - - - 825 - - - - openBundledDocument: - - - - 826 - - - - openBundledDocument: - - - - 827 - - - - openBundledDocument: - - - - 828 - - - - openBundledDocument: - - - - 829 - - - - checkForUpdates: - - - - 833 - - - - - YES - - 0 - - - - - - -2 - - - File's Owner - - - -1 - - - First Responder - - - -3 - - - Application - - - 29 - - - YES - - - - - - - - - - - - - MainMenu - - - 19 - - - YES - - - - - - 24 - - - YES - - - - - - - - - - - 5 - - - - - 23 - - - - - 92 - - - - - 203 - - - - - 622 - - - - - 649 - - - YES - - - - - - 650 - - - YES - - - - - - - - - 651 - - - - - 653 - - - - - 655 - - - - - 656 - - - - - 56 - - - YES - - - - - - 57 - - - YES - - - - - - - - - - - - - - - - - 58 - - - - - 129 - - - - - 131 - - - YES - - - - - - 130 - - - - - 134 - - - - - 136 - - - - - 143 - - - - - 144 - - - - - 145 - - - - - 149 - - - - - 150 - - - - - 202 - - - - - 83 - - - YES - - - - - - 81 - - - YES - - - - - - - - - - - - - - - - - - - - 72 - - - - - 73 - - - - - 74 - - - - - 75 - - - - - 77 - - - - - 78 - - - - - 79 - - - - - 80 - - - - - 82 - - - - - 112 - - - - - 124 - - - YES - - - - - - 125 - - - YES - - - - - - 126 - - - - - 335 - - - - - 564 - - - - - 679 - - - - - 688 - - - - - 103 - - - YES - - - - - - 106 - - - YES - - - - - - - - - 111 - - - - - 619 - - - - - 620 - - - - - 163 - - - YES - - - - - - 169 - - - YES - - - - - - - - - - - - - - - - - - - - 156 - - - - - 157 - - - - - 158 - - - - - 160 - - - - - 164 - - - - - 171 - - - - - 172 - - - - - 173 - - - - - 174 - - - - - 184 - - - YES - - - - - - 185 - - - YES - - - - - - - - 187 - - - - - 189 - - - - - 191 - - - - - 630 - - - - - 631 - - - - - 633 - - - - - 660 - - - - - 661 - - - YES - - - - - - 662 - - - YES - - - - - - - - - 663 - - - - - 664 - - - - - 665 - - - - - 667 - - - - - 247 - - - YES - - - - - - 246 - - - YES - - - - - - - - - - - - - - - 286 - - - - - 294 - - - YES - - - - - - 296 - - - YES - - - - - - - - 295 - - - - - 297 - - - - - 298 - - - - - 299 - - - YES - - - - - - 300 - - - YES - - - - - - 301 - - - - - 302 - - - YES - - - - - - 304 - - - YES - - - - - - 458 - - - - - 397 - - - - - 410 - - - YES - - - - - - 418 - - - YES - - - - - - - - - - - - - 398 - - - - - 404 - - - - - 405 - - - - - 424 - - - - - 574 - - - - - 576 - - - - - 745 - - - - - 746 - - - - - 453 - - - - - 454 - - - - - 455 - - - - - 751 - - - YES - - - - - - 752 - - - YES - - - - - - - - - - - - - - - - 753 - - - - - 754 - - - - - 755 - - - - - 756 - - - - - 757 - - - - - 758 - - - - - 759 - - - - - 767 - - - - - 769 - - - - - 771 - - - - - 772 - - - - - 322 - - - YES - - - - - - 324 - - - YES - - - - - - - - - - - - - - - - - - - - - 323 - - - - - 325 - - - - - 366 - - - - - 367 - - - - - 611 - - - - - 612 - - - - - 613 - - - - - 681 - - - - - 748 - - - - - 749 - - - - - 788 - - - - - 792 - - - - - 793 - - - - - 794 - - - - - 795 - - - - - 796 - - - - - 538 - - - YES - - - - - - 535 - - - YES - - - - - - - - - - 532 - - - - - 533 - - - - - 534 - - - - - 536 - - - - - 537 - - - - - 579 - - - YES - - - - - - 578 - - - YES - - - - - - - - - - - - - - - - - - - 577 - - - - - 581 - - - - - 583 - - - - - 585 - - - - - 586 - - - - - 588 - - - - - 591 - - - - - 592 - - - - - 594 - - - - - 597 - - - - - 599 - - - YES - - - - - - 600 - - - YES - - - - - - - - - 598 - - - - - 601 - - - - - 602 - - - - - 603 - - - - - 640 - - - - - 641 - - - - - 645 - - - - - 617 - - - YES - - - - - - 616 - - - YES - - - - - - 618 - - - - - 289 - - - OgreTextFinder - - - 290 - - - CEAppController - - - 329 - - - CEDocumentController - - - 339 - - - YES - - - - - openPanelAccessoryView - - - 343 - - - YES - - - - - - 347 - - - YES - - - - - - 360 - - - YES - - - - TransparencyPanel - - - 359 - - - YES - - - - - - - - - 361 - - - YES - - - - - - 363 - - - YES - - - - - - 371 - - - YES - - - - - - 566 - - - YES - - - - - - 386 - - - TransparencyController - - - 432 - - - Font Manager - - - 547 - - - YES - - - - gotoPanel - - - 546 - - - YES - - - - - - - - 549 - - - YES - - - - - - - - 548 - - - - - 550 - - - - - 551 - - - YES - - - - - - 552 - - - YES - - - - - - 554 - - - Shared Defaults - - - 773 - - - YES - - - - LineSpacingPanel - - - 774 - - - YES - - - - - - - - - - 777 - - - YES - - - - - - 778 - - - YES - - - - - - 779 - - - YES - - - - - - 780 - - - YES - - - - - - 787 - - - YES - - - - - - 804 - - - YES - - - - - - 805 - - - - - 806 - - - - - 807 - - - - - 808 - - - YES - - - - - - 809 - - - - - 810 - - - - - 811 - - - - - 812 - - - - - 813 - - - - - 814 - - - - - 815 - - - - - 816 - - - - - 817 - - - - - 372 - - - - - 344 - - - YES - - - - - - - 351 - - - - - 340 - - - - - 818 - - - YES - - - - - - 819 - - - YES - - - - - - - - - - - 820 - - - - - 821 - - - - - 822 - - - - - 823 - - - - - 824 - - - - - 830 - - - - - 831 - - - - - 832 - - - - - - - YES - - YES - -3.IBPluginDependency - -3.ImportedFromIB2 - 103.IBPluginDependency - 103.ImportedFromIB2 - 106.IBEditorWindowLastContentRect - 106.IBPluginDependency - 106.ImportedFromIB2 - 111.IBPluginDependency - 111.ImportedFromIB2 - 112.IBPluginDependency - 112.ImportedFromIB2 - 124.IBPluginDependency - 124.ImportedFromIB2 - 125.IBPluginDependency - 125.ImportedFromIB2 - 126.IBPluginDependency - 126.ImportedFromIB2 - 129.IBPluginDependency - 129.ImportedFromIB2 - 130.IBPluginDependency - 130.ImportedFromIB2 - 131.IBPluginDependency - 131.ImportedFromIB2 - 134.IBPluginDependency - 134.ImportedFromIB2 - 136.IBPluginDependency - 136.ImportedFromIB2 - 143.IBPluginDependency - 143.ImportedFromIB2 - 144.IBPluginDependency - 144.ImportedFromIB2 - 145.IBPluginDependency - 145.ImportedFromIB2 - 149.IBPluginDependency - 149.ImportedFromIB2 - 150.IBPluginDependency - 150.ImportedFromIB2 - 156.IBPluginDependency - 156.ImportedFromIB2 - 157.IBPluginDependency - 157.ImportedFromIB2 - 158.IBPluginDependency - 158.ImportedFromIB2 - 160.IBPluginDependency - 160.ImportedFromIB2 - 163.IBPluginDependency - 163.ImportedFromIB2 - 164.IBPluginDependency - 164.ImportedFromIB2 - 169.IBPluginDependency - 169.ImportedFromIB2 - 171.IBPluginDependency - 171.ImportedFromIB2 - 172.IBPluginDependency - 172.ImportedFromIB2 - 173.IBPluginDependency - 173.ImportedFromIB2 - 174.IBPluginDependency - 174.ImportedFromIB2 - 184.IBPluginDependency - 184.ImportedFromIB2 - 185.IBPluginDependency - 185.ImportedFromIB2 - 187.IBPluginDependency - 187.ImportedFromIB2 - 189.IBPluginDependency - 189.ImportedFromIB2 - 19.IBPluginDependency - 19.ImportedFromIB2 - 191.IBPluginDependency - 191.ImportedFromIB2 - 202.IBPluginDependency - 202.ImportedFromIB2 - 203.IBPluginDependency - 203.ImportedFromIB2 - 23.IBPluginDependency - 23.ImportedFromIB2 - 24.IBPluginDependency - 24.ImportedFromIB2 - 246.IBPluginDependency - 246.ImportedFromIB2 - 247.IBPluginDependency - 247.ImportedFromIB2 - 286.IBPluginDependency - 286.ImportedFromIB2 - 289.ImportedFromIB2 - 29.IBEditorWindowLastContentRect - 29.IBPluginDependency - 29.ImportedFromIB2 - 290.ImportedFromIB2 - 294.IBPluginDependency - 294.ImportedFromIB2 - 295.IBPluginDependency - 295.ImportedFromIB2 - 296.IBPluginDependency - 296.ImportedFromIB2 - 297.IBPluginDependency - 297.ImportedFromIB2 - 298.IBPluginDependency - 298.ImportedFromIB2 - 299.IBPluginDependency - 299.ImportedFromIB2 - 300.IBPluginDependency - 300.ImportedFromIB2 - 301.IBPluginDependency - 301.ImportedFromIB2 - 302.IBPluginDependency - 302.ImportedFromIB2 - 304.IBPluginDependency - 304.ImportedFromIB2 - 322.IBPluginDependency - 322.ImportedFromIB2 - 323.IBPluginDependency - 323.ImportedFromIB2 - 324.IBPluginDependency - 324.ImportedFromIB2 - 325.IBPluginDependency - 325.ImportedFromIB2 - 329.ImportedFromIB2 - 335.IBPluginDependency - 335.ImportedFromIB2 - 339.IBPluginDependency - 339.ImportedFromIB2 - 340.IBPluginDependency - 340.ImportedFromIB2 - 343.IBPluginDependency - 343.ImportedFromIB2 - 344.IBPluginDependency - 344.ImportedFromIB2 - 347.IBPluginDependency - 347.ImportedFromIB2 - 351.IBPluginDependency - 351.ImportedFromIB2 - 359.IBPluginDependency - 359.ImportedFromIB2 - 360.IBPluginDependency - 360.ImportedFromIB2 - 360.windowTemplate.hasMinSize - 360.windowTemplate.minSize - 361.IBPluginDependency - 361.ImportedFromIB2 - 363.IBPluginDependency - 363.ImportedFromIB2 - 366.IBPluginDependency - 366.ImportedFromIB2 - 367.IBPluginDependency - 367.ImportedFromIB2 - 371.IBPluginDependency - 371.ImportedFromIB2 - 372.IBPluginDependency - 372.ImportedFromIB2 - 386.IBPluginDependency - 386.ImportedFromIB2 - 397.IBPluginDependency - 397.ImportedFromIB2 - 398.IBPluginDependency - 398.ImportedFromIB2 - 404.IBPluginDependency - 404.ImportedFromIB2 - 405.IBPluginDependency - 405.ImportedFromIB2 - 410.IBPluginDependency - 410.ImportedFromIB2 - 418.IBPluginDependency - 418.ImportedFromIB2 - 424.IBPluginDependency - 424.ImportedFromIB2 - 432.ImportedFromIB2 - 453.IBPluginDependency - 453.ImportedFromIB2 - 454.IBPluginDependency - 454.ImportedFromIB2 - 455.IBPluginDependency - 455.ImportedFromIB2 - 458.IBPluginDependency - 458.ImportedFromIB2 - 5.IBPluginDependency - 5.ImportedFromIB2 - 532.IBPluginDependency - 532.ImportedFromIB2 - 533.IBPluginDependency - 533.ImportedFromIB2 - 534.IBPluginDependency - 534.ImportedFromIB2 - 535.IBPluginDependency - 535.ImportedFromIB2 - 536.IBPluginDependency - 536.ImportedFromIB2 - 537.IBPluginDependency - 537.ImportedFromIB2 - 538.IBPluginDependency - 538.ImportedFromIB2 - 546.IBPluginDependency - 546.ImportedFromIB2 - 547.IBPluginDependency - 547.ImportedFromIB2 - 547.windowTemplate.hasMinSize - 547.windowTemplate.minSize - 548.IBPluginDependency - 548.ImportedFromIB2 - 549.IBPluginDependency - 549.ImportedFromIB2 - 550.IBPluginDependency - 550.ImportedFromIB2 - 551.IBPluginDependency - 551.ImportedFromIB2 - 552.IBPluginDependency - 552.ImportedFromIB2 - 554.IBPluginDependency - 554.ImportedFromIB2 - 56.IBPluginDependency - 56.ImportedFromIB2 - 564.IBPluginDependency - 564.ImportedFromIB2 - 566.IBPluginDependency - 566.ImportedFromIB2 - 57.IBEditorWindowLastContentRect - 57.IBPluginDependency - 57.ImportedFromIB2 - 574.IBPluginDependency - 574.ImportedFromIB2 - 576.IBPluginDependency - 576.ImportedFromIB2 - 577.IBPluginDependency - 577.ImportedFromIB2 - 578.IBPluginDependency - 578.ImportedFromIB2 - 579.IBPluginDependency - 579.ImportedFromIB2 - 58.IBPluginDependency - 58.ImportedFromIB2 - 581.IBPluginDependency - 581.ImportedFromIB2 - 583.IBPluginDependency - 583.ImportedFromIB2 - 585.IBPluginDependency - 585.ImportedFromIB2 - 586.IBPluginDependency - 586.ImportedFromIB2 - 588.IBPluginDependency - 588.ImportedFromIB2 - 591.IBPluginDependency - 591.ImportedFromIB2 - 592.IBPluginDependency - 592.ImportedFromIB2 - 594.IBPluginDependency - 594.ImportedFromIB2 - 597.IBPluginDependency - 597.ImportedFromIB2 - 598.IBPluginDependency - 598.ImportedFromIB2 - 599.IBPluginDependency - 599.ImportedFromIB2 - 600.IBPluginDependency - 600.ImportedFromIB2 - 601.IBPluginDependency - 601.ImportedFromIB2 - 602.IBPluginDependency - 602.ImportedFromIB2 - 603.IBPluginDependency - 603.ImportedFromIB2 - 611.IBPluginDependency - 611.ImportedFromIB2 - 612.IBPluginDependency - 612.ImportedFromIB2 - 613.IBPluginDependency - 613.ImportedFromIB2 - 616.IBEditorWindowLastContentRect - 616.IBPluginDependency - 616.ImportedFromIB2 - 617.IBPluginDependency - 617.ImportedFromIB2 - 618.IBPluginDependency - 618.ImportedFromIB2 - 619.IBPluginDependency - 619.ImportedFromIB2 - 620.IBPluginDependency - 620.ImportedFromIB2 - 622.IBPluginDependency - 622.ImportedFromIB2 - 630.IBPluginDependency - 630.ImportedFromIB2 - 631.IBAttributePlaceholdersKey - 631.IBPluginDependency - 631.ImportedFromIB2 - 633.IBPluginDependency - 633.ImportedFromIB2 - 640.IBPluginDependency - 640.ImportedFromIB2 - 641.IBPluginDependency - 641.ImportedFromIB2 - 645.IBPluginDependency - 645.ImportedFromIB2 - 649.IBPluginDependency - 649.ImportedFromIB2 - 650.IBPluginDependency - 650.ImportedFromIB2 - 651.IBPluginDependency - 651.ImportedFromIB2 - 653.IBPluginDependency - 653.ImportedFromIB2 - 655.IBPluginDependency - 655.ImportedFromIB2 - 656.IBPluginDependency - 656.ImportedFromIB2 - 660.IBPluginDependency - 660.ImportedFromIB2 - 661.IBPluginDependency - 661.ImportedFromIB2 - 662.IBPluginDependency - 662.ImportedFromIB2 - 663.IBPluginDependency - 663.ImportedFromIB2 - 664.IBPluginDependency - 664.ImportedFromIB2 - 665.IBPluginDependency - 665.ImportedFromIB2 - 667.IBPluginDependency - 667.ImportedFromIB2 - 679.IBPluginDependency - 679.ImportedFromIB2 - 681.IBPluginDependency - 681.ImportedFromIB2 - 688.IBPluginDependency - 688.ImportedFromIB2 - 72.IBPluginDependency - 72.ImportedFromIB2 - 73.IBPluginDependency - 73.ImportedFromIB2 - 74.IBPluginDependency - 74.ImportedFromIB2 - 745.IBPluginDependency - 745.ImportedFromIB2 - 746.IBPluginDependency - 746.ImportedFromIB2 - 748.IBPluginDependency - 748.ImportedFromIB2 - 749.IBPluginDependency - 749.ImportedFromIB2 - 75.IBPluginDependency - 75.ImportedFromIB2 - 751.IBPluginDependency - 751.ImportedFromIB2 - 752.IBPluginDependency - 752.ImportedFromIB2 - 753.IBPluginDependency - 753.ImportedFromIB2 - 754.IBPluginDependency - 754.ImportedFromIB2 - 755.IBPluginDependency - 755.ImportedFromIB2 - 756.IBPluginDependency - 756.ImportedFromIB2 - 757.IBPluginDependency - 757.ImportedFromIB2 - 758.IBPluginDependency - 758.ImportedFromIB2 - 759.IBPluginDependency - 759.ImportedFromIB2 - 767.IBPluginDependency - 767.ImportedFromIB2 - 769.IBPluginDependency - 769.ImportedFromIB2 - 77.IBPluginDependency - 77.ImportedFromIB2 - 771.IBPluginDependency - 771.ImportedFromIB2 - 772.IBPluginDependency - 772.ImportedFromIB2 - 773.IBPluginDependency - 773.ImportedFromIB2 - 773.windowTemplate.hasMinSize - 773.windowTemplate.minSize - 774.IBPluginDependency - 774.ImportedFromIB2 - 777.IBPluginDependency - 777.ImportedFromIB2 - 778.IBPluginDependency - 778.ImportedFromIB2 - 779.IBPluginDependency - 779.ImportedFromIB2 - 78.IBPluginDependency - 78.ImportedFromIB2 - 780.IBPluginDependency - 780.ImportedFromIB2 - 787.IBPluginDependency - 787.ImportedFromIB2 - 788.IBPluginDependency - 788.ImportedFromIB2 - 79.IBPluginDependency - 79.ImportedFromIB2 - 792.IBPluginDependency - 792.ImportedFromIB2 - 793.IBPluginDependency - 793.ImportedFromIB2 - 794.IBPluginDependency - 794.ImportedFromIB2 - 795.IBPluginDependency - 795.ImportedFromIB2 - 796.IBPluginDependency - 796.ImportedFromIB2 - 80.IBPluginDependency - 80.ImportedFromIB2 - 81.IBPluginDependency - 81.ImportedFromIB2 - 818.IBPluginDependency - 819.IBEditorWindowLastContentRect - 819.IBPluginDependency - 82.IBPluginDependency - 82.ImportedFromIB2 - 820.IBPluginDependency - 821.IBPluginDependency - 822.IBPluginDependency - 823.IBPluginDependency - 824.IBPluginDependency - 83.IBPluginDependency - 83.ImportedFromIB2 - 830.IBPluginDependency - 831.IBPluginDependency - 832.IBPluginDependency - 92.IBPluginDependency - 92.ImportedFromIB2 - - - YES - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - {{719, 631}, {194, 73}} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - - {{329, 704}, {602, 20}} - com.apple.InterfaceBuilder.CocoaPlugin - - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - - {213, 113} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - - {213, 113} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - {{341, 501}, {229, 203}} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - {{620, 681}, {97, 23}} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - - ToolTip - - ToolTip - - Opt + ¥ - - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - - {213, 113} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - {{913, 571}, {166, 113}} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - - - - YES - - - YES - - - - - YES - - - YES - - - - 833 - - - - YES - - CEAppController - NSObject - - YES - - YES - newInDockMenu: - openAppleScriptDictionary: - openBundledDocument: - openHexColorCodeEditor: - openInDockMenu: - openPrefWindow: - openScriptErrorWindow: - - - YES - id - id - id - id - id - id - id - - - - YES - - YES - newInDockMenu: - openAppleScriptDictionary: - openBundledDocument: - openHexColorCodeEditor: - openInDockMenu: - openPrefWindow: - openScriptErrorWindow: - - - YES - - newInDockMenu: - id - - - openAppleScriptDictionary: - id - - - openBundledDocument: - id - - - openHexColorCodeEditor: - id - - - openInDockMenu: - id - - - openPrefWindow: - id - - - openScriptErrorWindow: - id - - - - - IBProjectSource - CEAppController.h - - - - CEAppController - NSObject - - YES - - YES - changeFont: - openNotConvertedCharList: - - - YES - id - id - - - - YES - - YES - changeFont: - openNotConvertedCharList: - - - YES - - changeFont: - id - - - openNotConvertedCharList: - id - - - - - IBUserSource - - - - - CEApplication - NSApplication - - IBProjectSource - CEApplication.h - - - - CEApplication - NSApplication - - IBUserSource - - - - - CEDocument - NSDocument - - YES - - YES - insertIANACharSetName: - insertIANACharSetNameWithCharset: - insertIANACharSetNameWithEncoding: - recoloringAllStringOfDocument: - selectNextItemOfOutlineMenu: - selectPrevItemOfOutlineMenu: - setEncoding: - setLineEndingChar: - setLineEndingCharToCR: - setLineEndingCharToCRLF: - setLineEndingCharToLF: - setSyntaxStyle: - setTransparencyOnlyTextView: - setWindowAlpha: - - - YES - id - id - id - id - id - id - id - id - id - id - id - id - id - id - - - - YES - - YES - insertIANACharSetName: - insertIANACharSetNameWithCharset: - insertIANACharSetNameWithEncoding: - recoloringAllStringOfDocument: - selectNextItemOfOutlineMenu: - selectPrevItemOfOutlineMenu: - setEncoding: - setLineEndingChar: - setLineEndingCharToCR: - setLineEndingCharToCRLF: - setLineEndingCharToLF: - setSyntaxStyle: - setTransparencyOnlyTextView: - setWindowAlpha: - - - YES - - insertIANACharSetName: - id - - - insertIANACharSetNameWithCharset: - id - - - insertIANACharSetNameWithEncoding: - id - - - recoloringAllStringOfDocument: - id - - - selectNextItemOfOutlineMenu: - id - - - selectPrevItemOfOutlineMenu: - id - - - setEncoding: - id - - - setLineEndingChar: - id - - - setLineEndingCharToCR: - id - - - setLineEndingCharToCRLF: - id - - - setLineEndingCharToLF: - id - - - setSyntaxStyle: - id - - - setTransparencyOnlyTextView: - id - - - setWindowAlpha: - id - - - - - IBProjectSource - CEDocument.h - - - - CEDocument - - IBProjectSource - CEDocumentAppleScript.h - - - - CEDocument - NSDocument - - IBUserSource - - - - - CEDocumentController - NSDocumentController - - YES - - YES - closeLineSpacingPanel: - gotoCharacterOrLine: - openGotoPanel: - openHiddenDocument: - openLineSpacingPanel: - openTransparencyPanel: - setAllWindowAlpha: - setCustomLineSpacing: - setSelectAccessoryEncodingMenuToDefault: - setSmartInsertAndDeleteToAllTextView: - - - YES - id - id - id - id - id - id - id - id - id - id - - - - YES - - YES - closeLineSpacingPanel: - gotoCharacterOrLine: - openGotoPanel: - openHiddenDocument: - openLineSpacingPanel: - openTransparencyPanel: - setAllWindowAlpha: - setCustomLineSpacing: - setSelectAccessoryEncodingMenuToDefault: - setSmartInsertAndDeleteToAllTextView: - - - YES - - closeLineSpacingPanel: - id - - - gotoCharacterOrLine: - id - - - openGotoPanel: - id - - - openHiddenDocument: - id - - - openLineSpacingPanel: - id - - - openTransparencyPanel: - id - - - setAllWindowAlpha: - id - - - setCustomLineSpacing: - id - - - setSelectAccessoryEncodingMenuToDefault: - id - - - setSmartInsertAndDeleteToAllTextView: - id - - - - - YES - - YES - _accessoryEncodingMenu - _appController - _gotoCharLineMatrix - _gotoIndexField - _gotoSelectButton - _lineSpacingField - _openPanelAccessoryView - _transparencyController - _windowAlphaField - _windowAlphaSetButton - _windowAlphaSlider - _windowAlphaTextViewOnlyButton - - - YES - id - id - id - id - id - id - id - id - id - id - id - id - - - - YES - - YES - _accessoryEncodingMenu - _appController - _gotoCharLineMatrix - _gotoIndexField - _gotoSelectButton - _lineSpacingField - _openPanelAccessoryView - _transparencyController - _windowAlphaField - _windowAlphaSetButton - _windowAlphaSlider - _windowAlphaTextViewOnlyButton - - - YES - - _accessoryEncodingMenu - id - - - _appController - id - - - _gotoCharLineMatrix - id - - - _gotoIndexField - id - - - _gotoSelectButton - id - - - _lineSpacingField - id - - - _openPanelAccessoryView - id - - - _transparencyController - id - - - _windowAlphaField - id - - - _windowAlphaSetButton - id - - - _windowAlphaSlider - id - - - _windowAlphaTextViewOnlyButton - id - - - - - IBProjectSource - CEDocumentController.h - - - - CEDocumentController - NSDocumentController - - IBUserSource - - - - - CEEditorView - NSView - - YES - - YES - closeSplitTextView: - focusNextSplitTextView: - focusPrevSplitTextView: - openSplitTextView: - toggleShowInvisibleChars: - toggleShowLineNum: - toggleShowNavigationBar: - toggleShowPageGuide: - toggleShowStatusBar: - toggleUseAntialias: - toggleWrapLines: - - - YES - id - id - id - id - id - id - id - id - id - id - id - - - - YES - - YES - closeSplitTextView: - focusNextSplitTextView: - focusPrevSplitTextView: - openSplitTextView: - toggleShowInvisibleChars: - toggleShowLineNum: - toggleShowNavigationBar: - toggleShowPageGuide: - toggleShowStatusBar: - toggleUseAntialias: - toggleWrapLines: - - - YES - - closeSplitTextView: - id - - - focusNextSplitTextView: - id - - - focusPrevSplitTextView: - id - - - openSplitTextView: - id - - - toggleShowInvisibleChars: - id - - - toggleShowLineNum: - id - - - toggleShowNavigationBar: - id - - - toggleShowPageGuide: - id - - - toggleShowStatusBar: - id - - - toggleUseAntialias: - id - - - toggleWrapLines: - id - - - - - IBProjectSource - CEEditorView.h - - - - CEEditorView - NSView - - IBUserSource - - - - - CETextViewCore - NSTextView - - YES - - YES - editHexColorCodeAsBGColor: - editHexColorCodeAsForeColor: - exchangeCapitalized: - exchangeFullwidthRoman: - exchangeHalfwidthRoman: - exchangeHiragana: - exchangeKatakana: - exchangeLowercase: - exchangeUppercase: - inputBackSlash: - inputYenMark: - resetFont: - setLineSpacingFromMenu: - setSelectedRangeWithNSValue: - shiftLeft: - shiftRight: - unicodeNormalization: - unicodeNormalizationNFC: - unicodeNormalizationNFD: - unicodeNormalizationNFKC: - unicodeNormalizationNFKD: - - - YES - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - - - - YES - - YES - editHexColorCodeAsBGColor: - editHexColorCodeAsForeColor: - exchangeCapitalized: - exchangeFullwidthRoman: - exchangeHalfwidthRoman: - exchangeHiragana: - exchangeKatakana: - exchangeLowercase: - exchangeUppercase: - inputBackSlash: - inputYenMark: - resetFont: - setLineSpacingFromMenu: - setSelectedRangeWithNSValue: - shiftLeft: - shiftRight: - unicodeNormalization: - unicodeNormalizationNFC: - unicodeNormalizationNFD: - unicodeNormalizationNFKC: - unicodeNormalizationNFKD: - - - YES - - editHexColorCodeAsBGColor: - id - - - editHexColorCodeAsForeColor: - id - - - exchangeCapitalized: - id - - - exchangeFullwidthRoman: - id - - - exchangeHalfwidthRoman: - id - - - exchangeHiragana: - id - - - exchangeKatakana: - id - - - exchangeLowercase: - id - - - exchangeUppercase: - id - - - inputBackSlash: - id - - - inputYenMark: - id - - - resetFont: - id - - - setLineSpacingFromMenu: - id - - - setSelectedRangeWithNSValue: - id - - - shiftLeft: - id - - - shiftRight: - id - - - unicodeNormalization: - id - - - unicodeNormalizationNFC: - id - - - unicodeNormalizationNFD: - id - - - unicodeNormalizationNFKC: - id - - - unicodeNormalizationNFKD: - id - - - - - IBProjectSource - CETextViewCore.h - - - - CETextViewCore - NSTextView - - IBUserSource - - - - - CEWindowController - NSWindowController - - YES - - YES - getInfo: - selectIncompatibleRange: - toggleIncompatibleCharList: - - - YES - id - id - id - - - - YES - - YES - getInfo: - selectIncompatibleRange: - toggleIncompatibleCharList: - - - YES - - getInfo: - id - - - selectIncompatibleRange: - id - - - toggleIncompatibleCharList: - id - - - - - YES - - YES - _drawer - _editorView - _infoCharsField - _infoCreatedField - _infoCreatorField - _infoEncodingField - _infoFinderLockField - _infoInLineField - _infoLineEndingsField - _infoLinesField - _infoModifiedField - _infoOwnerField - _infoPermissionField - _infoSelectField - _infoSingleCharField - _infoTypeField - _listController - _listErrorTextField - _listTableView - _printAccessoryView - _printSettingController - _tabView - _tabViewSelectionPopUpButton - _toolbarController - - - YES - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - - - - YES - - YES - _drawer - _editorView - _infoCharsField - _infoCreatedField - _infoCreatorField - _infoEncodingField - _infoFinderLockField - _infoInLineField - _infoLineEndingsField - _infoLinesField - _infoModifiedField - _infoOwnerField - _infoPermissionField - _infoSelectField - _infoSingleCharField - _infoTypeField - _listController - _listErrorTextField - _listTableView - _printAccessoryView - _printSettingController - _tabView - _tabViewSelectionPopUpButton - _toolbarController - - - YES - - _drawer - id - - - _editorView - id - - - _infoCharsField - id - - - _infoCreatedField - id - - - _infoCreatorField - id - - - _infoEncodingField - id - - - _infoFinderLockField - id - - - _infoInLineField - id - - - _infoLineEndingsField - id - - - _infoLinesField - id - - - _infoModifiedField - id - - - _infoOwnerField - id - - - _infoPermissionField - id - - - _infoSelectField - id - - - _infoSingleCharField - id - - - _infoTypeField - id - - - _listController - id - - - _listErrorTextField - id - - - _listTableView - id - - - _printAccessoryView - id - - - _printSettingController - id - - - _tabView - id - - - _tabViewSelectionPopUpButton - id - - - _toolbarController - id - - - - - IBProjectSource - CEWindowController.h - - - - CEWindowController - NSWindowController - - IBUserSource - - - - - FirstResponder - NSObject - - YES - - YES - closeSplitTextView: - editHexColorCodeAsBGColor: - editHexColorCodeAsForeColor: - exchangeCapitalized: - exchangeFullwidthRoman: - exchangeHalfwidthRoman: - exchangeHiragana: - exchangeKatakana: - exchangeLowercase: - exchangeUppercase: - focusNextSplitTextView: - focusPrevSplitTextView: - getInfo: - inputBackSlash: - inputYenMark: - insertIANACharSetName: - insertIANACharSetNameWithCharset: - insertIANACharSetNameWithEncoding: - makeQuickFindFieldToFirstResponder: - myAction: - openHiddenDocument: - openSplitTextView: - quickSearch: - reOpenDocument: - resetFont: - setLineEndingCharToCR: - setLineEndingCharToCRLF: - setLineEndingCharToLF: - setLineSpacingFromMenu: - setSyntaxColoringStyle: - setTransparencyOnlyTextView: - setWindowAlpha: - shiftLeft: - shiftRight: - toggleIncompatibleCharList: - toggleShowInvisibleChars: - toggleShowLineNum: - toggleShowNavigationBar: - toggleShowPageGuide: - toggleShowStatusBar: - toggleUseAntialias: - toggleWrapLines: - unicodeNormalizationNFC: - unicodeNormalizationNFD: - unicodeNormalizationNFKC: - unicodeNormalizationNFKD: - - - YES - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - - - - YES - - YES - closeSplitTextView: - editHexColorCodeAsBGColor: - editHexColorCodeAsForeColor: - exchangeCapitalized: - exchangeFullwidthRoman: - exchangeHalfwidthRoman: - exchangeHiragana: - exchangeKatakana: - exchangeLowercase: - exchangeUppercase: - focusNextSplitTextView: - focusPrevSplitTextView: - getInfo: - inputBackSlash: - inputYenMark: - insertIANACharSetName: - insertIANACharSetNameWithCharset: - insertIANACharSetNameWithEncoding: - makeQuickFindFieldToFirstResponder: - myAction: - openHiddenDocument: - openSplitTextView: - quickSearch: - reOpenDocument: - resetFont: - setLineEndingCharToCR: - setLineEndingCharToCRLF: - setLineEndingCharToLF: - setLineSpacingFromMenu: - setSyntaxColoringStyle: - setTransparencyOnlyTextView: - setWindowAlpha: - shiftLeft: - shiftRight: - toggleIncompatibleCharList: - toggleShowInvisibleChars: - toggleShowLineNum: - toggleShowNavigationBar: - toggleShowPageGuide: - toggleShowStatusBar: - toggleUseAntialias: - toggleWrapLines: - unicodeNormalizationNFC: - unicodeNormalizationNFD: - unicodeNormalizationNFKC: - unicodeNormalizationNFKD: - - - YES - - closeSplitTextView: - id - - - editHexColorCodeAsBGColor: - id - - - editHexColorCodeAsForeColor: - id - - - exchangeCapitalized: - id - - - exchangeFullwidthRoman: - id - - - exchangeHalfwidthRoman: - id - - - exchangeHiragana: - id - - - exchangeKatakana: - id - - - exchangeLowercase: - id - - - exchangeUppercase: - id - - - focusNextSplitTextView: - id - - - focusPrevSplitTextView: - id - - - getInfo: - id - - - inputBackSlash: - id - - - inputYenMark: - id - - - insertIANACharSetName: - id - - - insertIANACharSetNameWithCharset: - id - - - insertIANACharSetNameWithEncoding: - id - - - makeQuickFindFieldToFirstResponder: - id - - - myAction: - id - - - openHiddenDocument: - id - - - openSplitTextView: - id - - - quickSearch: - id - - - reOpenDocument: - id - - - resetFont: - id - - - setLineEndingCharToCR: - id - - - setLineEndingCharToCRLF: - id - - - setLineEndingCharToLF: - id - - - setLineSpacingFromMenu: - id - - - setSyntaxColoringStyle: - id - - - setTransparencyOnlyTextView: - id - - - setWindowAlpha: - id - - - shiftLeft: - id - - - shiftRight: - id - - - toggleIncompatibleCharList: - id - - - toggleShowInvisibleChars: - id - - - toggleShowLineNum: - id - - - toggleShowNavigationBar: - id - - - toggleShowPageGuide: - id - - - toggleShowStatusBar: - id - - - toggleUseAntialias: - id - - - toggleWrapLines: - id - - - unicodeNormalizationNFC: - id - - - unicodeNormalizationNFD: - id - - - unicodeNormalizationNFKC: - id - - - unicodeNormalizationNFKD: - id - - - - - IBUserSource - - - - - NSObject - - IBProjectSource - ImportSources/UKFileWatcher.h - - - - NSObject - - IBProjectSource - ImportSources/UKKQueue.h - - - - NSObject - - IBProjectSource - ImportSources/UKMainThreadProxy.h - - - - NSObject - - IBUserSource - - - - - OgreTextFinder - NSObject - - IBUserSource - - - - - - YES - - NSActionCell - NSCell - - IBFrameworkSource - AppKit.framework/Headers/NSActionCell.h - - - - NSApplication - NSResponder - - IBFrameworkSource - AppKit.framework/Headers/NSApplication.h - - - - NSApplication - - IBFrameworkSource - AppKit.framework/Headers/NSApplicationScripting.h - - - - NSApplication - - IBFrameworkSource - AppKit.framework/Headers/NSColorPanel.h - - - - NSApplication - - IBFrameworkSource - AppKit.framework/Headers/NSHelpManager.h - - - - NSApplication - - IBFrameworkSource - AppKit.framework/Headers/NSPageLayout.h - - - - NSApplication - - IBFrameworkSource - AppKit.framework/Headers/NSUserInterfaceItemSearching.h - - - - NSBrowser - NSControl - - IBFrameworkSource - AppKit.framework/Headers/NSBrowser.h - - - - NSButton - NSControl - - IBFrameworkSource - AppKit.framework/Headers/NSButton.h - - - - NSButtonCell - NSActionCell - - IBFrameworkSource - AppKit.framework/Headers/NSButtonCell.h - - - - NSCell - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSCell.h - - - - NSControl - NSView - - IBFrameworkSource - AppKit.framework/Headers/NSControl.h - - - - NSController - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSController.h - - - - NSDocument - NSObject - - YES - - YES - printDocument: - revertDocumentToSaved: - runPageLayout: - saveDocument: - saveDocumentAs: - saveDocumentTo: - - - YES - id - id - id - id - id - id - - - - YES - - YES - printDocument: - revertDocumentToSaved: - runPageLayout: - saveDocument: - saveDocumentAs: - saveDocumentTo: - - - YES - - printDocument: - id - - - revertDocumentToSaved: - id - - - runPageLayout: - id - - - saveDocument: - id - - - saveDocumentAs: - id - - - saveDocumentTo: - id - - - - - IBFrameworkSource - AppKit.framework/Headers/NSDocument.h - - - - NSDocument - - IBFrameworkSource - AppKit.framework/Headers/NSDocumentScripting.h - - - - NSDocumentController - NSObject - - YES - - YES - clearRecentDocuments: - newDocument: - openDocument: - saveAllDocuments: - - - YES - id - id - id - id - - - - YES - - YES - clearRecentDocuments: - newDocument: - openDocument: - saveAllDocuments: - - - YES - - clearRecentDocuments: - id - - - newDocument: - id - - - openDocument: - id - - - saveAllDocuments: - id - - - - - IBFrameworkSource - AppKit.framework/Headers/NSDocumentController.h - - - - NSFontManager - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSFontManager.h - - - - NSFormatter - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSFormatter.h - - - - NSMatrix - NSControl - - IBFrameworkSource - AppKit.framework/Headers/NSMatrix.h - - - - NSMenu - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSMenu.h - - - - NSMenuItem - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSMenuItem.h - - - - NSMenuItemCell - NSButtonCell - - IBFrameworkSource - AppKit.framework/Headers/NSMenuItemCell.h - - - - NSMovieView - NSView - - IBFrameworkSource - AppKit.framework/Headers/NSMovieView.h - - - - NSNumberFormatter - NSFormatter - - IBFrameworkSource - Foundation.framework/Headers/NSNumberFormatter.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSAccessibility.h - - - - NSObject - - - - NSObject - - - - NSObject - - - - NSObject - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSDictionaryController.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSDragging.h - - - - NSObject - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSFontPanel.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSKeyValueBinding.h - - - - NSObject - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSNibLoading.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSOutlineView.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSPasteboard.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSSavePanel.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSTableView.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSToolbarItem.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSView.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSArchiver.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSClassDescription.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSError.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSFileManager.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSKeyValueCoding.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSKeyValueObserving.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSKeyedArchiver.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSObject.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSObjectScripting.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSPortCoder.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSRunLoop.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSScriptClassDescription.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSScriptKeyValueCoding.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSScriptObjectSpecifiers.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSScriptWhoseTests.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSThread.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSURL.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSURLConnection.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSURLDownload.h - - - - NSObject - - IBFrameworkSource - Sparkle.framework/Headers/SUAppcast.h - - - - NSObject - - IBFrameworkSource - Sparkle.framework/Headers/SUUpdater.h - - - - NSObjectController - NSController - - IBFrameworkSource - AppKit.framework/Headers/NSObjectController.h - - - - NSPanel - NSWindow - - IBFrameworkSource - AppKit.framework/Headers/NSPanel.h - - - - NSPopUpButton - NSButton - - IBFrameworkSource - AppKit.framework/Headers/NSPopUpButton.h - - - - NSPopUpButtonCell - NSMenuItemCell - - IBFrameworkSource - AppKit.framework/Headers/NSPopUpButtonCell.h - - - - NSResponder - - IBFrameworkSource - AppKit.framework/Headers/NSInterfaceStyle.h - - - - NSResponder - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSResponder.h - - - - NSSlider - NSControl - - IBFrameworkSource - AppKit.framework/Headers/NSSlider.h - - - - NSSliderCell - NSActionCell - - IBFrameworkSource - AppKit.framework/Headers/NSSliderCell.h - - - - NSTableView - NSControl - - - - NSText - NSView - - IBFrameworkSource - AppKit.framework/Headers/NSText.h - - - - NSTextField - NSControl - - IBFrameworkSource - AppKit.framework/Headers/NSTextField.h - - - - NSTextFieldCell - NSActionCell - - IBFrameworkSource - AppKit.framework/Headers/NSTextFieldCell.h - - - - NSTextView - NSText - - IBFrameworkSource - AppKit.framework/Headers/NSTextView.h - - - - NSUserDefaultsController - NSController - - IBFrameworkSource - AppKit.framework/Headers/NSUserDefaultsController.h - - - - NSView - - IBFrameworkSource - AppKit.framework/Headers/NSClipView.h - - - - NSView - - - - NSView - - IBFrameworkSource - AppKit.framework/Headers/NSRulerView.h - - - - NSView - NSResponder - - - - NSWindow - - IBFrameworkSource - AppKit.framework/Headers/NSDrawer.h - - - - NSWindow - NSResponder - - IBFrameworkSource - AppKit.framework/Headers/NSWindow.h - - - - NSWindow - - IBFrameworkSource - AppKit.framework/Headers/NSWindowScripting.h - - - - NSWindowController - NSResponder - - showWindow: - id - - - showWindow: - - showWindow: - id - - - - IBFrameworkSource - AppKit.framework/Headers/NSWindowController.h - - - - OgreFindPanelController - NSResponder - - showFindPanel: - id - - - showFindPanel: - - showFindPanel: - id - - - - YES - - YES - findPanel - textFinder - - - YES - NSPanel - OgreTextFinder - - - - YES - - YES - findPanel - textFinder - - - YES - - findPanel - NSPanel - - - textFinder - OgreTextFinder - - - - - IBFrameworkSource - OgreKit.framework/Headers/OgreFindPanelController.h - - - - OgreTextFinder - NSObject - - showFindPanel: - id - - - showFindPanel: - - showFindPanel: - id - - - - YES - - YES - findMenu - findPanelController - - - YES - NSMenu - OgreFindPanelController - - - - YES - - YES - findMenu - findPanelController - - - YES - - findMenu - NSMenu - - - findPanelController - OgreFindPanelController - - - - - IBFrameworkSource - OgreKit.framework/Headers/OgreTextFinder.h - - - - SUUpdater - NSObject - - checkForUpdates: - id - - - checkForUpdates: - - checkForUpdates: - id - - - - delegate - id - - - delegate - - delegate - id - - - - - - - 0 - IBCocoaFramework - - com.apple.InterfaceBuilder.CocoaPlugin.macosx - - - - com.apple.InterfaceBuilder.CocoaPlugin.macosx - - - - com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 - - - YES - ../CotEditor.xcodeproj - 3 - - YES - - YES - NSMenuCheckmark - NSMenuMixedState - - - YES - {9, 8} - {7, 2} - - - - diff --git a/English.lproj/MainMenu.nib/keyedobjects.nib b/English.lproj/MainMenu.nib/keyedobjects.nib deleted file mode 100644 index fa73072896..0000000000 Binary files a/English.lproj/MainMenu.nib/keyedobjects.nib and /dev/null differ diff --git a/English.lproj/Preferences.nib/designable.nib b/English.lproj/Preferences.nib/designable.nib deleted file mode 100644 index bbae083f39..0000000000 --- a/English.lproj/Preferences.nib/designable.nib +++ /dev/null @@ -1,16246 +0,0 @@ - - - - 1050 - 11C74 - 1938 - 1138.23 - 567.00 - - com.apple.InterfaceBuilder.CocoaPlugin - 1938 - - - YES - NSMenuItem - NSScroller - NSMenu - NSColorWell - NSButton - NSMatrix - NSSliderCell - NSCustomObject - NSArrayController - NSSlider - NSTableView - NSCustomView - NSImageView - NSComboBox - NSTextField - NSComboBoxCell - NSNumberFormatter - NSImageCell - NSWindowTemplate - NSTextFieldCell - NSButtonCell - NSTableColumn - NSBox - NSView - NSPopUpButtonCell - NSScrollView - NSUserDefaultsController - NSTabViewItem - NSTextView - NSPopUpButton - NSTabView - - - YES - com.apple.InterfaceBuilder.CocoaPlugin - - - PluginDependencyRecalculationVersion - - - - YES - - CEPreferences - - - FirstResponder - - - NSApplication - - - 7 - 2 - {{39, 165}, {694, 686}} - 1886912512 - CotEditor Preferences - NSWindow - - View - - - {218.03700000000001, 107} - - - 256 - - YES - - - 274 - {{10, 10}, {674, 666}} - - - - - YES - - prefGeneralItemID - - - 256 - - YES - - - 292 - - YES - - - 268 - {{329, 601}, {100, 26}} - - - - YES - - -2076049856 - 2048 - - LucidaGrande - 13 - 1044 - - - 109199615 - 129 - - - 400 - 75 - - - Weekly - - 1048576 - 2147483647 - 1 - - NSImage - NSMenuCheckmark - - - NSImage - NSMenuMixedState - - _popUpItemAction: - 604800 - - - YES - - OtherViews - - YES - - - Hourly - - 1048576 - 2147483647 - - - _popUpItemAction: - 3600 - - - - - Daily - - 1048576 - 2147483647 - - - _popUpItemAction: - 86400 - - - - - - Monthly - - 1048576 - 2147483647 - - - _popUpItemAction: - 2629800 - - - - - - 2 - 1 - YES - YES - 2 - - - - - 268 - {{45, 606}, {383, 18}} - - - - YES - - 67239424 - 0 - Automatically check for updates - - - 1211912703 - 2 - - NSImage - NSSwitch - - - NSSwitch - - - - 200 - 25 - - - - - 256 - {{45, 576}, {383, 18}} - - - - YES - - 67239424 - 0 - Create a new document on startup - - - 1211912703 - 2 - - - - 200 - 25 - - - - - 256 - {{45, 546}, {383, 18}} - - - - YES - - 67239424 - 0 - Open blank window with a reopen AppleEvent - - - 1211912703 - 2 - - - - 200 - 25 - - - - - 256 - {{45, 486}, {383, 18}} - - - - YES - - 67239424 - 0 - Check spelling as you type - - - 1211912703 - 2 - - - - 200 - 25 - - - - - 256 - {{45, 456}, {433, 18}} - - - - YES - - 67239424 - 0 - Drag selected text immediately (just like in Carbon applications) - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 256 - - YES - - - 274 - - YES - - - 256 - {{38, 13}, {410, 68}} - - - - YES - 3 - 1 - - YES - - -2080244224 - 0 - Keep the originals (if any, otherwise set CotEditor's codes) - - - 1211912703 - 0 - - NSRadioButton - - - - - - 200 - 25 - - - 67239424 - 0 - Always set CotEditor's codes - - - 1 - 1211912703 - 0 - - - - 200 - 25 - - - 67239424 - 0 - Set no codes - - - 1211912703 - 0 - - 549453824 - {18, 18} - - YES - - YES - - - - TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXw -IyMjyRwcHIsJCQk8AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/ -29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZGRl5 -dXV198PDw//8/Pz////////////////////////////U1NT/fHx89yUlJXkAAAAFAAAAAAAAAAAAAAAA -AAAAAxEREUZqamrmtbW1/+3t7f/+/v7//v7+//7+/v/9/f3//f39//39/f/39/f/xMTE/3d3d+YZGRlG -AAAAAwAAAAAAAAAAAAAACkJCQqGtra3/xsbG/+vr6//y8vL/9fX1//X19f/z8/P/9fX1//Ly8v/u7u7/ -0tLS/6+vr/9KSkqhAAAACgAAAAAAAAAAAAAAF3h4eN2/v7//z8/P/93d3f/q6ur/7+/v/+/v7//w8PD/ -7e3t/+3t7f/i4uL/zs7O/8XFxf98fHzdAAAAFwAAAAAAAAADAAAAJKSkpPjOzs7/2dnZ/+Dg4P/i4uL/ -5eXl/+bm5v/n5+f/5eXl/+Li4v/e3t7/2tra/9DQ0P+srKz4AAAAJAAAAAMAAAADAAAALrCwsPrW1tb/ -3t7e/+Tk5P/p6en/6+vr/+zs7P/p6en/6+vr/+fn5//k5OT/4ODg/9nZ2f+zs7P6AAAALgAAAAMAAAAD -AAAALp2dnezg4OD/5eXl/+rq6v/u7u7/8PDw//Dw8P/x8fH/8PDw/+7u7v/q6ur/5ubm/+Hh4f+ZmZns -AAAALgAAAAMAAAADAAAAJG5ubs/l5eX/6enp/+/v7//y8vL/9vb2//r6+v/5+fn/9/f3//b29v/x8fH/ -6+vr/+Tk5P9ra2vPAAAAJAAAAAMAAAAAAAAAFy4uLpPCwsL67Ozs//Pz8//5+fn//v7+//7+/v/+/v7/ -/v7+//v7+//19fX/8PDw/8LCwvosLCyTAAAAFwAAAAAAAAAAAAAACgAAAENfX1/S5OTk/vn5+f/+/v7/ -///////////////////////////8/Pz/5ubm/l9fX9IAAABDAAAACgAAAAAAAAAAAAAAAwAAABcAAABl -YmJi3NLS0v3////////////////////////////////V1dX9ZGRk3AAAAGUAAAAXAAAAAwAAAAAAAAAA -AAAAAAAAAAUAAAAfAAAAZTMzM8KAgIDwv7+//O3t7f/t7e3/v7+//ICAgPAzMzPCAAAAZQAAAB8AAAAF -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAFwAAAEMAAAB3AAAAnwAAALMAAACzAAAAnwAAAHcAAABD -AAAAFwAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAoAAAAXAAAAJAAAAC4AAAAu -AAAAJAAAABcAAAAKAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQEAAAMAAAABABIAAAEB -AAMAAAABABIAAAECAAMAAAAEAAAFugEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES -AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS -AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA - - - - - - 3 - MCAwAA - - - - 400 - 75 - - - {410, 21} - {4, 2} - 1143472128 - NSActionCell - - 67239424 - 0 - Radio - - 1211912703 - 0 - - 549453824 - {18, 18} - - YES - - YES - - - - TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXw -IyMjyRwcHIsJCQk8AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/ -29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZGRl5 -dXV198PDw//8/Pz////////////////////////////U1NT/fHx89yUlJXkAAAAFAAAAAAAAAAAAAAAA -AAAAAxEREUZqamrmtbW1/+3t7f/+/v7//v7+//7+/v/9/f3//f39//39/f/39/f/xMTE/3d3d+YZGRlG -AAAAAwAAAAAAAAAAAAAACkJCQqGtra3/xsbG/+vr6//y8vL/9fX1//X19f/z8/P/9fX1//Ly8v/u7u7/ -0tLS/6+vr/9KSkqhAAAACgAAAAAAAAAAAAAAF3h4eN2/v7//z8/P/93d3f/q6ur/7+/v/+/v7//w8PD/ -7e3t/+3t7f/i4uL/zs7O/8XFxf98fHzdAAAAFwAAAAAAAAADAAAAJKSkpPjOzs7/2dnZ/+Dg4P/i4uL/ -5eXl/+bm5v/n5+f/5eXl/+Li4v/e3t7/2tra/9DQ0P+srKz4AAAAJAAAAAMAAAADAAAALrCwsPrW1tb/ -3t7e/+Tk5P/p6en/6+vr/+zs7P/p6en/6+vr/+fn5//k5OT/4ODg/9nZ2f+zs7P6AAAALgAAAAMAAAAD -AAAALp2dnezg4OD/5eXl/+rq6v/u7u7/8PDw//Dw8P/x8fH/8PDw/+7u7v/q6ur/5ubm/+Hh4f+ZmZns -AAAALgAAAAMAAAADAAAAJG5ubs/l5eX/6enp/+/v7//y8vL/9vb2//r6+v/5+fn/9/f3//b29v/x8fH/ -6+vr/+Tk5P9ra2vPAAAAJAAAAAMAAAAAAAAAFy4uLpPCwsL67Ozs//Pz8//5+fn//v7+//7+/v/+/v7/ -/v7+//v7+//19fX/8PDw/8LCwvosLCyTAAAAFwAAAAAAAAAAAAAACgAAAENfX1/S5OTk/vn5+f/+/v7/ -///////////////////////////8/Pz/5ubm/l9fX9IAAABDAAAACgAAAAAAAAAAAAAAAwAAABcAAABl -YmJi3NLS0v3////////////////////////////////V1dX9ZGRk3AAAAGUAAAAXAAAAAwAAAAAAAAAA -AAAAAAAAAAUAAAAfAAAAZTMzM8KAgIDwv7+//O3t7f/t7e3/v7+//ICAgPAzMzPCAAAAZQAAAB8AAAAF -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAFwAAAEMAAAB3AAAAnwAAALMAAACzAAAAnwAAAHcAAABD -AAAAFwAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAoAAAAXAAAAJAAAAC4AAAAu -AAAAJAAAABcAAAAKAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQEAAAMAAAABABIAAAEB -AAMAAAABABIAAAECAAMAAAAEAAAFugEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES -AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS -AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA - - - - - - - - 400 - 75 - - - - 6 - System - controlColor - - 3 - MC42NjY2NjY2NjY3AA - - - - 3 - MQA - - - - - {{2, 2}, {584, 92}} - - - - - - {{17, 158}, {588, 109}} - - - - {0, 0} - - 67239424 - 0 - Type and Creator on Saving - - LucidaGrande - 11 - 3100 - - - 6 - System - textBackgroundColor - - - - 3 - MCAwLjgwMDAwMDAxAA - - - - 3 - 0 - 2 - NO - - - - 256 - {{45, 516}, {383, 18}} - - - - YES - - 67239424 - 0 - Smart insert and delete - - - 1211912703 - 2 - - - - 200 - 25 - - - - - 256 - - YES - - - 274 - - YES - - - 256 - {{38, 12}, {483, 67}} - - - - YES - 3 - 1 - - YES - - -2080244224 - 0 - Show Document's words only - - - 1211912703 - 2 - - - - 200 - 25 - - - 67239424 - 0 - Show Document's words + Syntax Style's words - - - 1 - 1211912703 - 2 - - - - 200 - 25 - - - 67239424 - 0 - Show Document's words + Syntax Style's words + Standard words - - - 1211912703 - 2 - - - 400 - 75 - - - {483, 21} - {4, 2} - 1143472128 - NSActionCell - - 67239424 - 0 - Radio - - 1211912703 - 0 - - 549453824 - {18, 18} - - YES - - YES - - - - TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXw -IyMjyRwcHIsJCQk8AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/ -29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZGRl5 -dXV198PDw//8/Pz////////////////////////////U1NT/fHx89yUlJXkAAAAFAAAAAAAAAAAAAAAA -AAAAAxEREUZqamrmtbW1/+3t7f/+/v7//v7+//7+/v/9/f3//f39//39/f/39/f/xMTE/3d3d+YZGRlG -AAAAAwAAAAAAAAAAAAAACkJCQqGtra3/xsbG/+vr6//y8vL/9fX1//X19f/z8/P/9fX1//Ly8v/u7u7/ -0tLS/6+vr/9KSkqhAAAACgAAAAAAAAAAAAAAF3h4eN2/v7//z8/P/93d3f/q6ur/7+/v/+/v7//w8PD/ -7e3t/+3t7f/i4uL/zs7O/8XFxf98fHzdAAAAFwAAAAAAAAADAAAAJKSkpPjOzs7/2dnZ/+Dg4P/i4uL/ -5eXl/+bm5v/n5+f/5eXl/+Li4v/e3t7/2tra/9DQ0P+srKz4AAAAJAAAAAMAAAADAAAALrCwsPrW1tb/ -3t7e/+Tk5P/p6en/6+vr/+zs7P/p6en/6+vr/+fn5//k5OT/4ODg/9nZ2f+zs7P6AAAALgAAAAMAAAAD -AAAALp2dnezg4OD/5eXl/+rq6v/u7u7/8PDw//Dw8P/x8fH/8PDw/+7u7v/q6ur/5ubm/+Hh4f+ZmZns -AAAALgAAAAMAAAADAAAAJG5ubs/l5eX/6enp/+/v7//y8vL/9vb2//r6+v/5+fn/9/f3//b29v/x8fH/ -6+vr/+Tk5P9ra2vPAAAAJAAAAAMAAAAAAAAAFy4uLpPCwsL67Ozs//Pz8//5+fn//v7+//7+/v/+/v7/ -/v7+//v7+//19fX/8PDw/8LCwvosLCyTAAAAFwAAAAAAAAAAAAAACgAAAENfX1/S5OTk/vn5+f/+/v7/ -///////////////////////////8/Pz/5ubm/l9fX9IAAABDAAAACgAAAAAAAAAAAAAAAwAAABcAAABl -YmJi3NLS0v3////////////////////////////////V1dX9ZGRk3AAAAGUAAAAXAAAAAwAAAAAAAAAA -AAAAAAAAAAUAAAAfAAAAZTMzM8KAgIDwv7+//O3t7f/t7e3/v7+//ICAgPAzMzPCAAAAZQAAAB8AAAAF -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAFwAAAEMAAAB3AAAAnwAAALMAAACzAAAAnwAAAHcAAABD -AAAAFwAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAoAAAAXAAAAJAAAAC4AAAAu -AAAAJAAAABcAAAAKAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQEAAAMAAAABABIAAAEB -AAMAAAABABIAAAECAAMAAAAEAAAFugEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES -AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS -AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA - - - - - - - - 400 - 75 - - - - - - - - {{2, 2}, {584, 87}} - - - - - - {{17, 43}, {588, 104}} - - - - {0, 0} - - 67239424 - 0 - Completion List - - - - 3 - MCAwLjgwMDAwMDAxAA - - - - 3 - 0 - 2 - NO - - - - 256 - {{45, 426}, {383, 18}} - - - - YES - - 67239424 - 0 - Swap "¥" and "\" keys - - - 1211912703 - 2 - - - - 200 - 25 - - - - - 256 - {{45, 396}, {383, 18}} - - - - YES - - 67239424 - 0 - Highlight matching braces "( )" "[ ]" "{ }" - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 256 - {{380, 396}, {180, 18}} - - - - YES - - 67239424 - 0 - Highlight "< >" - - - 1211912703 - 2 - - - - 200 - 25 - - - - - 256 - {{45, 366}, {383, 18}} - - - - YES - - 67239424 - 0 - Count each line ending as one character - - - 1211912703 - 2 - - - - 200 - 25 - - - - - 256 - {{45, 336}, {383, 18}} - - - - YES - - 67239424 - 0 - Sync Find strings with other applications - - - 1211912703 - 2 - - - - 200 - 25 - - - - - 268 - {{579, 11}, {25, 25}} - - - - YES - - 67239424 - 134217728 - - - - -2038415105 - 33 - - - 200 - 25 - - - - - 268 - {{45, 276}, {420, 18}} - - - - YES - - 67239424 - 0 - Append extension "txt" when saving a file - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 268 - {{45, 306}, {420, 18}} - - - - YES - - 67239424 - 0 - Inline Script menu items into contextual menu - - - 1211912703 - 2 - - - - - 200 - 25 - - - - {642, 653} - - - - CETabItemView - NSView - - - {674, 666} - - - - - General - - - - - prefWindowItemID - - - 256 - - YES - - - 292 - - YES - - - 256 - - YES - - - 274 - - YES - - - 256 - {{246, 42}, {46, 20}} - - - YES - - -2068709823 - 71435264 - - 0 - 1 - NO - YES - 1 - AQAAAAAAAAAAAAAAAAAAAA - - - - - YES - - YES - allowsFloats - attributedStringForNil - attributedStringForNotANumber - attributedStringForZero - decimalSeparator - formatterBehavior - groupingSeparator - locale - maximum - minimum - negativeFormat - positiveFormat - usesGroupingSeparator - - - YES - - - - - - NaN - - YES - - YES - - - - - - 0.00 - - - . - - , - - - - - 0 - 1 - NO - YES - 1 - AQAAAAAAAAAAAAAAAAAAAA - - - -1 - 1 - NO - YES - 1 - AgAAAAAAAAAAAAAAAAAAAA - - -0.00 - 0.00 - - - - 0.00 - -0.00 - - - - - - - - - . - , - NO - NO - YES - - - YES - - - 6 - System - controlTextColor - - 3 - MAA - - - - - - - 256 - {{21, 41}, {208, 26}} - - - YES - - 67501824 - 0 - - - - - Helvetica - 12 - 16 - - - 1 - 0.20000000000000001 - 1 - 0.0 - 17 - 1 - YES - NO - - - - - 256 - {{337, 41}, {177, 18}} - - - YES - - 67239424 - 0 - Text view only - - - 1211912703 - 2 - - - - 200 - 25 - - - - - 256 - - YES - - YES - Apple PDF pasteboard type - Apple PICT pasteboard type - Apple PNG pasteboard type - NSFilenamesPboardType - NeXT Encapsulated PostScript v1.2 pasteboard type - NeXT TIFF v4.0 pasteboard type - - - {{41, 23}, {170, 15}} - - - YES - - 130560 - 33554432 - - NSImage - transparencyGuide - - 0 - 1 - 0 - NO - - YES - - - {{2, 2}, {584, 86}} - - - - - {{17, 43}, {588, 103}} - - - {0, 0} - - 67239424 - 0 - Window Transparency - - - - 3 - MCAwLjgwMDAwMDAxAA - - - - 3 - 0 - 2 - NO - - - - 256 - - YES - - - 274 - - YES - - - 256 - {{76, 20}, {70, 22}} - - - YES - - -1804468671 - -2143288320 - - - - - YES - - YES - allowsFloats - attributedStringForNil - attributedStringForNotANumber - attributedStringForZero - decimalSeparator - formatterBehavior - groupingSeparator - locale - maximum - minimum - negativeFormat - positiveFormat - usesGroupingSeparator - - - YES - - - - - - NaN - - - - 0 - - - . - - , - - - 4 - 1 - NO - YES - 1 - AQAAAAAAAAAAAAAAAAAAAA - - - 2 - 1 - NO - YES - 1 - AQAAAAAAAAAAAAAAAAAAAA - - -0 - 0.0 - - - - 0.0 - -0 - - - - - - - - - . - , - NO - NO - YES - - - YES - - - 6 - System - textColor - - - - - - - 256 - {{224, 20}, {70, 22}} - - - YES - - -1804468671 - -2143288320 - - - - - YES - - YES - allowsFloats - attributedStringForNil - attributedStringForNotANumber - attributedStringForZero - decimalSeparator - formatterBehavior - groupingSeparator - locale - maximum - minimum - negativeFormat - positiveFormat - usesGroupingSeparator - - - YES - - - - - - NaN - - - - 0 - - - . - - , - - - 4 - 1 - NO - YES - 1 - AQAAAAAAAAAAAAAAAAAAAA - - - 2 - 1 - NO - YES - 1 - AQAAAAAAAAAAAAAAAAAAAA - - -0 - 0.0 - - - - 0.0 - -0 - - - - - - - - - . - , - NO - NO - YES - - - YES - - - - - - - 256 - {{13, 22}, {58, 14}} - - - YES - - 67239424 - 71303168 - width : - - - - - - - - - 256 - {{161, 22}, {58, 14}} - - - YES - - 67239424 - 71303168 - height : - - - - - - - - - 256 - {{334, 14}, {177, 28}} - - - YES - - 67239424 - 134348800 - Get from sample window... - - - -2038284033 - 1 - - - - - - 200 - 25 - - - - {{2, 2}, {584, 62}} - - - - - {{17, 162}, {588, 79}} - - - {0, 0} - - 67239424 - 0 - Window Size - - - - 3 - MCAwLjgwMDAwMDAxAA - - - - 3 - 0 - 2 - NO - - - - 256 - {{45, 284}, {242, 18}} - - - YES - - 67239424 - 0 - Show status bar - - - 1211912703 - 2 - - - - 200 - 25 - - - - - 256 - {{33, 408}, {518, 17}} - - - YES - - 67239424 - 4194304 - # The following changes apply to Next New document. - - - - - - - - - 256 - {{45, 367}, {242, 18}} - - - YES - - 67239424 - 0 - Show navigation bar - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 256 - {{339, 367}, {218, 18}} - - - YES - - 67239424 - 0 - Show page guide - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 256 - {{357, 342}, {135, 17}} - - - YES - - 67239424 - 272629760 - Display at column: - - - - - - - - - 256 - {{494, 339}, {55, 22}} - - - YES - - -1804468671 - -1874852864 - - - - - YES - - YES - allowsFloats - attributedStringForZero - decimalSeparator - formatterBehavior - groupingSeparator - maximum - minimum - negativeFormat - positiveFormat - usesGroupingSeparator - - - YES - - - 0 - - - . - - , - - 3 - 1 - NO - YES - 1 - AQAAAAAAAAAAAAAAAAAAAA - - - 0 - 1 - NO - YES - 1 - AQAAAAAAAAAAAAAAAAAAAA - - -0 - 0 - - - - 0 - -0 - - - - - - - - NaN - - - - - - . - , - NO - YES - YES - - - YES - - - - - - - 256 - {{308, 261}, {5, 122}} - - - {0, 0} - - 67239424 - 0 - Box - - - - 3 - MCAwLjgwMDAwMDAxAA - - - 3 - 2 - 0 - NO - - - - 256 - {{484, 324}, {76, 13}} - - - YES - - 67239424 - 138412032 - ( 1 - 1000 ) - - LucidaGrande - 10 - 2843 - - - - - - - - - 256 - {{70, 312}, {217, 18}} - - - YES - - 67239424 - 0 - Show wrapped-line mark - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 256 - {{70, 259}, {217, 18}} - - - YES - - 67239424 - 0 - Show thousands separator - - - 1211912703 - 2 - - - - 200 - 25 - - - - - 268 - {{579, 11}, {25, 25}} - - - 1 - YES - - -2080244224 - 134217728 - - - - -2038415105 - 33 - - - 200 - 25 - - - - - 256 - {{45, 337}, {242, 18}} - - - YES - - 67239424 - 0 - Show line numbers - - - 1211912703 - 2 - - - - 200 - 25 - - - - {642, 459} - - - CETabItemView - NSView - - - {674, 666} - - - Window - - - - - prefViewItemID - - - 256 - - YES - - - 292 - - YES - - - 256 - - YES - - - 274 - - YES - - - 256 - - YES - - YES - - NSColor pasteboard type - - - - {{170, 211}, {54, 26}} - - - YES - YES - - 1 - MC4wNTgxMzA0OTkgMC4wNTU1NDE4OTkgMQA - - - - - 256 - {{51, 216}, {115, 17}} - - - YES - - 67239424 - 71303168 - Char Color: - - - - - - - - - 256 - {{55, 107}, {98, 18}} - - - YES - - 67239424 - 0 - Line Ending - - - 1211912703 - 2 - - - - 200 - 25 - - - - - 256 - {{165, 102}, {70, 26}} - - - YES - - -2076049856 - 1024 - - - 109199615 - 1 - - LucidaGrande - 13 - 16 - - - - - - - - 400 - 75 - - - IA - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - YES - - - - 3 - YES - YES - 1 - - - - - 256 - {{55, 179}, {98, 18}} - - - YES - - 67239424 - 0 - Space - - - 1211912703 - 2 - - - - 200 - 25 - - - - - 256 - {{165, 174}, {70, 26}} - - - YES - - -2076049856 - 1024 - - - 109199615 - 1 - - - - - - - - 400 - 75 - - - IA - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - YES - - - - 3 - YES - YES - 1 - - - - - 256 - {{165, 138}, {70, 26}} - - - YES - - -2076049856 - 1024 - - - 109199615 - 1 - - - - - - - - 400 - 75 - - - IA - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - YES - - - - 3 - YES - YES - 1 - - - - - 256 - {{55, 143}, {98, 18}} - - - YES - - 67239424 - 0 - Tab - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 256 - {{165, 46}, {70, 26}} - - - YES - - -2076049856 - 1024 - - - 109199615 - 1 - - - - - - - - 400 - 75 - - - IA - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - YES - - - - 3 - YES - YES - 1 - - - - - 256 - {{55, 71}, {154, 18}} - - - YES - - 67239424 - 0 - Fullwidth-Space (JP) - - - 1211912703 - 2 - - - - 200 - 25 - - - - - 256 - {{55, 17}, {167, 18}} - - - YES - - 67239424 - 0 - Other Invisible Chars - - - 1211912703 - 2 - - - - 200 - 25 - - - - {{2, 2}, {278, 255}} - - - - - {{323, 43}, {282, 272}} - - - {0, 0} - - 67239424 - 0 - Show Invisible Characters - - - - 3 - MCAwLjgwMDAwMDAxAA - - - - 3 - 0 - 2 - NO - - - - 256 - - YES - - - 274 - - YES - - - 256 - - YES - - YES - - NSColor pasteboard type - - - - {{148, 211}, {54, 26}} - - - YES - YES - - 1 - MC4wNTgxMzA0OTkgMC4wNTU1NDE4OTkgMQA - - - - - 256 - {{29, 216}, {114, 17}} - - - YES - - 67239424 - 71303168 - Text: - - - - - - - - - 256 - {{29, 93}, {114, 17}} - - - YES - - 67239424 - 71303168 - Background: - - - - - - - - - 256 - - YES - - YES - - NSColor pasteboard type - - - - {{148, 88}, {54, 26}} - - - YES - YES - - 1 - MC4wNTgxMzA0OTkgMC4wNTU1NDE4OTkgMQA - - - - - 256 - - YES - - YES - - NSColor pasteboard type - - - - {{148, 129}, {54, 26}} - - - YES - YES - - 1 - MC4wNTgxMzA0OTkgMC4wNTU1NDE4OTkgMQA - - - - - 256 - {{29, 134}, {114, 17}} - - - YES - - 67239424 - 71303168 - Insertion Point: - - - - - - - - - 256 - {{29, 175}, {114, 17}} - - - YES - - 67239424 - 71303168 - Selection: - - - - - - - - - 256 - - YES - - YES - - NSColor pasteboard type - - - - {{148, 170}, {54, 26}} - - - YES - YES - - 1 - MC4wNTgxMzA0OTkgMC4wNTU1NDE4OTkgMQA - - - - - 256 - - YES - - YES - - NSColor pasteboard type - - - - {{148, 47}, {54, 26}} - - - YES - YES - - 1 - MC4wNTgxMzA0OTkgMC4wNTU1NDE4OTkgMQA - - - - - 268 - {{37, 50}, {105, 18}} - - - YES - - -2080244224 - 67108864 - Current Line: - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 268 - {{62, 19}, {202, 18}} - - - YES - - -2080244224 - 0 - Include Input Method chars - - - 1211912703 - 2 - - - - - 200 - 25 - - - - {{2, 2}, {278, 255}} - - - - - {{17, 43}, {282, 272}} - - - {0, 0} - - 67239424 - 0 - Basic Coloring - - - - 3 - MCAwLjgwMDAwMDAxAA - - - - 3 - 0 - 2 - NO - - - - 256 - {{33, 334}, {456, 17}} - - - YES - - 67239424 - 4194304 - # The following changes apply to Next New document. - - - - - - - - - 268 - {{579, 11}, {25, 25}} - - - 2 - YES - - 67239424 - 134217728 - - - - -2038415105 - 33 - - - 200 - 25 - - - - {642, 385} - - - CETabItemView - NSView - - - {674, 666} - - - View - - - - - prefFormatItemID - - - 256 - - YES - - - 292 - - YES - - - 256 - - YES - - - 274 - - YES - - - 256 - {{419, 6}, {147, 28}} - - - YES - - 67239424 - 134348800 - Edit Encoding List... - - - -2038284033 - 1 - - - - - - 200 - 25 - - - - - 256 - {{174, 36}, {194, 26}} - - - YES - - -2076049856 - 1024 - - - 109199615 - 1 - - - - - - - - 400 - 75 - - - IA - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - YES - - - - 3 - YES - YES - 1 - - - - - 256 - {{17, 42}, {155, 17}} - - - YES - - 67239424 - 71303168 - When opening a file: - - - - - - - - - 256 - {{17, 81}, {155, 17}} - - - YES - - 67239424 - 71303168 - When creating a file: - - - - - - - - - 256 - {{174, 75}, {194, 26}} - - - YES - - -2076049856 - 1024 - - - 109199615 - 1 - - - - - - - - 400 - 75 - - - IA - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - YES - - - - 3 - YES - YES - 1 - - - - - 256 - {{175, 13}, {243, 18}} - - - YES - - 67239424 - 0 - Refer to encoding declaration - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 268 - {{396, 80}, {174, 18}} - - - YES - - 67239424 - 131072 - Save UTF-8 files with a BOM - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 268 - {{416, 66}, {152, 14}} - - - YES - - 67239488 - 272630784 - (not recommended) - - LucidaGrande - 11 - 16 - - - - - - - - {{2, 2}, {584, 114}} - - - - - {{17, 155}, {588, 131}} - - - {0, 0} - - 67239424 - 0 - File Encoding - - - - 3 - MCAwLjgwMDAwMDAxAA - - - - 3 - 0 - 2 - NO - - - - 256 - {{339, 442}, {234, 18}} - - - YES - - 67239424 - 0 - Auto expand tabs to spaces - - - 1211912703 - 2 - - - - 200 - 25 - - - - - 256 - {{33, 483}, {518, 17}} - - - YES - - 67239424 - 4194304 - # The following changes apply to Next New document. - - - - - - - - - 256 - {{45, 442}, {234, 18}} - - - YES - - 67239424 - 0 - Soft wrap lines - - - 1211912703 - 2 - - - - 200 - 25 - - - - - 256 - {{45, 412}, {234, 18}} - - - YES - - 67239424 - 0 - Auto indent - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 256 - {{505, 412}, {44, 22}} - - - YES - - -1804468671 - -2143288320 - - - - - YES - - YES - allowsFloats - attributedStringForZero - decimalSeparator - formatterBehavior - groupingSeparator - maximum - minimum - negativeFormat - positiveFormat - usesGroupingSeparator - - - YES - - - 0 - - - . - - , - - 0 - 1 - NO - YES - 1 - YwAAAAAAAAAAAAAAAAAAAA - - - 0 - 1 - NO - YES - 1 - AQAAAAAAAAAAAAAAAAAAAA - - -0 - 0 - - - - 0 - -0 - - - - - - - - NaN - - - - - - . - , - NO - YES - YES - - - YES - - - - - - - 256 - {{338, 414}, {162, 17}} - - - YES - - 67239424 - 4194304 - Tab / Indent width: - - - - - - - - - 256 - {{308, 353}, {5, 105}} - - - {0, 0} - - 67239424 - 0 - Box - - - - 3 - MCAwLjgwMDAwMDAxAA - - - 3 - 2 - 0 - NO - - - - 256 - - YES - - - 274 - - YES - - - 256 - {{400, 38}, {88, 28}} - - - YES - - 67239424 - 134348800 - Select... - - - -2038284033 - 1 - - - - - - 200 - 25 - - - - - 256 - {{47, 39}, {333, 27}} - - - YES - - -2075001280 - 138413056 - - - - YES - - 6 - System - controlHighlightColor - - - - - - - - 256 - {{45, 9}, {257, 18}} - - - YES - - 67239424 - 0 - Anti-aliasing - - - 1211912703 - 2 - - - - 200 - 25 - - - - {{2, 2}, {584, 79}} - - - - - {{17, 43}, {588, 96}} - - - {0, 0} - - 67239424 - 0 - Font - - - - 3 - MCAwLjgwMDAwMDAxAA - - - - 3 - 0 - 2 - NO - - - - 256 - {{260, 302}, {155, 26}} - - - YES - - -2076049856 - 1024 - - - 109199615 - 1 - - - - - - - - 400 - 75 - - - Unix (LF) - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - YES - - - - Macintosh (CR) - - 1048576 - 2147483647 - - - _popUpItemAction: - 1 - - - - - Windows (CR/LF) - - 1048576 - 2147483647 - - - _popUpItemAction: - 2 - - - - - 3 - YES - YES - 1 - - - - - 256 - {{44, 308}, {214, 17}} - - - YES - - 67239424 - 4194304 - Line endings for new documents: - - - - - - - - - 256 - {{44, 354}, {102, 17}} - - - YES - - 67239424 - 272629760 - Line spacing: - - - - - - - - - 256 - {{227, 354}, {64, 14}} - - - YES - - 67239424 - 272629760 - line(s) - - - - - - - - - 256 - {{149, 350}, {76, 26}} - - - YES - - 343014976 - 272630784 - 0 - - - YES - - - 9 - YES - - YES - 0 - 0.25 - 0.5 - 0.75 - 1.0 - 1.25 - 1.5 - 1.75 - 2.0 - - - - - 274 - {13, 189} - - - YES - - YES - - 10 - 10 - 1000 - - 75628032 - 0 - - - - - LucidaGrande - 12 - 16 - - - 3 - MC4zMzMzMzI5OQA - - - - - 338820672 - 1024 - - - YES - - 6 - System - controlBackgroundColor - - - - - 3 - YES - - - - 3 - 2 - - - 6 - System - gridColor - - 3 - MC41AA - - - 19 - tableViewAction: - -765427712 - - - - 1 - 15 - 0 - YES - 0 - 1 - - - - - - 256 - {{146, 338}, {76, 13}} - - - YES - - 67239424 - 138412032 - ( 0 - 10.0 ) - - - - - - - - - 256 - {{490, 397}, {76, 13}} - - - YES - - 67239424 - 138412032 - ( 1 - 99 ) - - - - - - - - - 256 - {{45, 382}, {265, 18}} - - - YES - - 67239424 - 0 - Fix line height with composite font - - - 1211912703 - 2 - - - - 200 - 25 - - - - - 268 - {{579, 11}, {25, 25}} - - - 3 - YES - - 67239424 - 134217728 - - - - -2038415105 - 33 - - - 200 - 25 - - - - {642, 534} - - - CETabItemView - NSView - - - {674, 666} - - - Format - - - - - prefSyntaxItemID - - - 256 - - YES - - - 292 - - YES - - - 256 - - YES - - - 274 - - YES - - - 256 - - YES - - YES - - NSColor pasteboard type - - - - {{111, 98}, {54, 26}} - - - YES - YES - - 1 - MC4wNTgxMzA0OTkgMC4wNTU1NDE4OTkgMQA - - - - - 256 - {{16, 103}, {90, 17}} - - - YES - - 67239424 - 71303168 - Keywords: - - - - - - - - - 256 - - YES - - YES - - NSColor pasteboard type - - - - {{111, 58}, {54, 26}} - - - YES - YES - - 1 - MC4wNTgxMzA0OTkgMC4wNTU1NDE4OTkgMQA - - - - - 256 - {{16, 63}, {90, 17}} - - - YES - - 67239424 - 71303168 - Commands: - - - - - - - - - 256 - {{174, 63}, {114, 17}} - - - YES - - 67239424 - 71303168 - Numbers: - - - - - - - - - 256 - - YES - - YES - - NSColor pasteboard type - - - - {{293, 58}, {54, 26}} - - - YES - YES - - 1 - MC4wNTgxMzA0OTkgMC4wNTU1NDE4OTkgMQA - - - - - 256 - - YES - - YES - - NSColor pasteboard type - - - - {{475, 98}, {54, 26}} - - - YES - YES - - 1 - MC4wNTgxMzA0OTkgMC4wNTU1NDE4OTkgMQA - - - - - 256 - {{356, 103}, {114, 17}} - - - YES - - 67239424 - 71303168 - Strings: - - - - - - - - - 256 - {{356, 63}, {114, 17}} - - - YES - - 67239424 - 71303168 - Characters: - - - - - - - - - 256 - - YES - - YES - - NSColor pasteboard type - - - - {{475, 58}, {54, 26}} - - - YES - YES - - 1 - MC4wNTgxMzA0OTkgMC4wNTU1NDE4OTkgMQA - - - - - 256 - - YES - - YES - - NSColor pasteboard type - - - - {{293, 98}, {54, 26}} - - - YES - YES - - 1 - MC4wNTgxMzA0OTkgMC4wNTU1NDE4OTkgMQA - - - - - 256 - {{174, 103}, {114, 17}} - - - YES - - 67239424 - 71303168 - Values: - - - - - - - - - 256 - - YES - - YES - - NSColor pasteboard type - - - - {{475, 18}, {54, 26}} - - - YES - YES - - 1 - MC4wNTgxMzA0OTkgMC4wNTU1NDE4OTkgMQA - - - - - 256 - {{380, 23}, {90, 17}} - - - YES - - 67239424 - 71303168 - Comments: - - - - - - - - {{2, 2}, {584, 138}} - - - - - {{17, 197}, {588, 155}} - - - {0, 0} - - 67239424 - 0 - Extended Coloring - - - - 3 - MCAwLjgwMDAwMDAxAA - - - - 3 - 0 - 2 - NO - - - - 256 - - YES - - - 274 - - YES - - - 256 - {{140, 8}, {100, 32}} - - - YES - - 604110336 - 134217728 - Edit - - - -2038021889 - 1 - - - - - - 200 - 25 - - - - - 256 - {{17, 86}, {220, 26}} - - - YES - - -2076049856 - 1024 - - - 109199615 - 1 - - - - - - - - 400 - 75 - - - IA - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - YES - - - - 3 - YES - YES - 1 - - - - - 256 - {{302, 9}, {93, 28}} - - - YES - - 604110336 - 134348800 - Export - - - -2038284033 - 1 - - - - - - 200 - 25 - - - - - 256 - {{414, 9}, {93, 28}} - - - -1001 - YES - - 67239424 - 134348800 - Import - - - -1001 - -2038284033 - 1 - - - - - - 200 - 25 - - - - - 256 - {{302, 38}, {93, 28}} - - - -100 - YES - - 604110336 - 134348800 - Copy - - - -100 - -2038284033 - 1 - - - - - - 200 - 25 - - - - - 256 - {{414, 38}, {93, 28}} - - - -200 - YES - - 67239424 - 134348800 - New - - - -200 - -2038284033 - 1 - - - - - - 200 - 25 - - - - - 256 - {{19, 14}, {68, 16}} - - - -1000 - YES - - 604110336 - 134479872 - Delete - - LucidaGrande - 9 - 3614 - - - -1000 - -2038284033 - 1 - - LucidaGrande - 9 - 16 - - - - - - 200 - 25 - - - - - 256 - {{428, 90}, {130, 16}} - - - YES - - 67239424 - 134479872 - Show Extension Error... - - - -2038284033 - 1 - - - - - - 200 - 25 - - - - - 256 - {{17, 70}, {378, 14}} - - - YES - - 67239424 - 272629760 - # Including the Outline Menu (in Navigation Bar) setting - - - - - - - - {{2, 2}, {584, 121}} - - - - - {{17, 43}, {588, 138}} - - - {0, 0} - - 67239424 - 0 - Syntax Style - - - - 3 - MCAwLjgwMDAwMDAxAA - - - - 3 - 0 - 2 - NO - - - - 256 - {{45, 437}, {370, 18}} - - - YES - - 67239424 - 0 - Do syntax coloring for new/current document - - - 1211912703 - 2 - - - - 200 - 25 - - - - - 256 - {{64, 377}, {345, 18}} - - - YES - - 67239424 - 0 - Delay coloring - - - 1211912703 - 2 - - - - 200 - 25 - - - - - 256 - {{357, 401}, {229, 26}} - - - YES - - -2076049856 - 1024 - - - 109199615 - 1 - - - - - - - - 400 - 75 - - - IA - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - YES - - - - 3 - YES - YES - 1 - - - - - 256 - {{63, 407}, {299, 17}} - - - YES - - 67239424 - 272629760 - Default syntax style for coloring: - - - - - - - - - 268 - {{579, 11}, {25, 25}} - - - 4 - YES - - 67239424 - 134217728 - - - - -2038415105 - 33 - - - 200 - 25 - - - - {642, 487} - - - CETabItemView - NSView - - - {674, 666} - - - Syntax - - - - - prefFileDropItemID - - - 256 - - YES - - - 292 - - YES - - - 256 - {{22, 418}, {117, 17}} - - - YES - - 67239424 - 4194304 - File extensions: - - - - - - - - - 256 - - YES - - - 2304 - - YES - - - 256 - {484, 110} - - - YES - - - 256 - {{470, 0}, {16, 17}} - - - YES - - extensions - 481 - 40 - 1000 - - 75628096 - 2048 - Extensions - - - 3 - MC4zMzMzMzI5OQA - - - 6 - System - headerTextColor - - - - - 338820672 - 1024 - Text Cell - - - - - - 3 - YES - YES - - - - 3 - 2 - - - 17 - -700416000 - - - 1 - 15 - 0 - YES - 0 - 1 - - - {{1, 1}, {484, 110}} - - - - - 4 - - - - 256 - {{470, 1}, {15, 104}} - - - - _doScroller: - 0.5 - - - - 256 - {{1, 96}, {478, 15}} - - - 1 - - _doScroller: - 0.99047619104385376 - - - {{20, 302}, {486, 112}} - - - 133170 - - - - QSAAAEEgAABBmAAAQZgAAA - - - - 256 - {{22, 273}, {384, 17}} - - - YES - - 67239424 - 4194304 - Insertion format: - - - - - - - - - 256 - {{532, 370}, {47, 25}} - - - YES - - 67239424 - 134217728 - New - - - -2033958657 - 6 - - NSImage - addButtonImg - - - - - - 200 - 25 - - - - - 256 - {{532, 332}, {47, 25}} - - - YES - - 67239424 - 134217728 - Delete - - - -2033958657 - 6 - - NSImage - removeButtonImg - - - - - - 200 - 25 - - - - - 256 - {{155, 418}, {354, 14}} - - - YES - - 67239424 - 4194304 - (comma separated, no dots) - - - - - 6 - System - disabledControlTextColor - - 3 - MC4zMzMzMzMzMzMzAA - - - - - - - 256 - - YES - - - 2304 - - YES - - - 2322 - {580, 128} - - - - - - - - - - - - YES - - - 6 - - - - 580 - 1 - - - 67121123 - 0 - - - - YES - - YES - NSBackgroundColor - NSColor - - - YES - - 6 - System - selectedTextBackgroundColor - - - - 6 - System - selectedTextColor - - - - - - - YES - - YES - NSColor - NSCursor - NSUnderline - - - YES - - 1 - MCAwIDEAA - - - {8, -8} - 13 - - - - - - - 1 - - 6 - {580, 10000000} - {565, 128} - - - - {{1, 1}, {580, 128}} - - - - - - {4, 5} - - 12582912 - - YES - - YES - - - - TU0AKgAAAHCAFUqgBVKsAAAAwdVQUqwaEQeIRGJRGFlYqwWLQ+JxuOQpVRmEx2RROKwOQyOUQSPyaUym -SxqWyKXyeYxyZzWbSuJTScRCbz2Nz+gRKhUOfTqeUai0OSxiWTiBQSHSGFquGwekxyAgAAAOAQAAAwAA -AAEAEAAAAQEAAwAAAAEAEAAAAQIAAwAAAAIACAAIAQMAAwAAAAEABQAAAQYAAwAAAAEAAQAAAREABAAA -AAEAAAAIARIAAwAAAAEAAQAAARUAAwAAAAEAAgAAARYAAwAAAAEAEAAAARcABAAAAAEAAABnARwAAwAA -AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA - - - - - - - - 4 - - - - 256 - {{566, 1}, {15, 128}} - - - - _doScroller: - 1 - - - - -2147483392 - {{-100, -100}, {87, 18}} - - - 1 - - _doScroller: - 1 - 0.94565218687057495 - - - {{20, 140}, {582, 130}} - - - 133138 - - - - - - - 256 - {{444, 268}, {144, 22}} - - - YES - - -2076049856 - 132096 - - - 109199615 - 2 - - - - - - - - 400 - 75 - - - YES - pre-formatted string - - 1048576 - 2147483647 - - - _popUpItemAction: - - - YES - - - OtherViews - - - YES - - - - <<<ABSOLUTE-PATH>>> - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - <<<RELATIVE-PATH>>> - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - <<<FILENAME>>> - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - <<<FILENAME-NOSUFFIX>>> - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - <<<FILEEXTENSION>>> - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - <<<FILEEXTENSION-LOWER>>> - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - <<<FILEEXTENSION-UPPER>>> - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - <<<DIRECTORY>>> - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - YES - YES - - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - - - <<<IMAGEWIDTH>>> - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - <<<IMAGEHEIGHT>>> - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 9 - YES - 3 - YES - YES - 2 - - - - - 256 - - YES - - - 2304 - - YES - - - 2322 - {502, 240} - - - - - - - PDw8QUJTT0xVVEUtUEFUSD4+PgpUaGUgZHJvcHBlZCBmaWxlJ3MgYWJzb2x1dGUgcGF0aC4KPDw8UkVM -QVRJVkUtUEFUSD4+PgpUaGUgcmVsYXRpdmUgcGF0aCBiZXR3ZWVuIHRoZSBkcm9wcGVkIGZpbGUgYW5k -IHRoZSBkb2N1bWVudC4KPDw8RklMRU5BTUU+Pj4KVGhlIGRyb3BwZWQgZmlsZSdzIG5hbWUgd2l0aCBl -eHRlbnNpb24gKGlmIGV4aXN0cykuCjw8PEZJTEVOQU1FLU5PU1VGRklYPj4+ClRoZSBkcm9wcGVkIGZp -bGUncyBuYW1lIHdpdGhvdXQgZXh0ZW5zaW9uLgo8PDxGSUxFRVhURU5TSU9OPj4+ClRoZSBkcm9wcGVk -IGZpbGUncyBleHRlbnNpb24uCjw8PEZJTEVFWFRFTlNJT04tTE9XRVI+Pj4KVGhlIGRyb3BwZWQgZmls -ZSdzIGV4dGVuc2lvbiAoY29udmVydGVkIHRvIGxvd2VyY2FzZSkuCjw8PEZJTEVFWFRFTlNJT04tVVBQ -RVI+Pj4KVGhlIGRyb3BwZWQgZmlsZSdzIGV4dGVuc2lvbiAoY29udmVydGVkIHRvIHVwcGVyY2FzZSku -Cjw8PERJUkVDVE9SWT4+PgpUaGUgcGFyZW50IGRpcmVjdG9yeSBuYW1lIG9mIHRoZSBkcm9wcGVkIGZp -bGUuCjw8PElNQUdFV0lEVEg+Pj4KKGlmIHRoZSBkcm9wcGVkIGZpbGUgaXMgSW1hZ2UpIFRoZSBpbWFn -ZSB3aWR0aC4KPDw8SU1BR0VIRUlHSFQ+Pj4KKGlmIHRoZSBkcm9wcGVkIGZpbGUgaXMgSW1hZ2UpIFRo -ZSBpbWFnZSBoZWlnaHQuA - - - YES - - YES - NSFont - NSParagraphStyle - - - YES - - Helvetica - 10 - 16 - - - 4 - - YES - - 28 - - - 56 - - - 84 - - - 112 - - - 140 - - - 168 - - - 196 - - - 224 - - - 252 - - - 280 - - - 308 - - - 336 - - - - - - - - - YES - - - 6 - - - - 502 - 1 - - - 67120101 - 0 - - - 6 - System - windowBackgroundColor - - - - YES - - YES - NSBackgroundColor - NSColor - - - YES - - - - - - - YES - - YES - NSColor - NSCursor - NSUnderline - - - YES - - - - - - - - 1 - - 6 - {586, 10000000} - {491, 83} - - - - {{1, 1}, {502, 83}} - - - - - - 4 - - - - 256 - {{492, 1}, {11, 83}} - - - YES - 256 - - _doScroller: - 0.34583333333333333 - - - - -2147483392 - {{-100, -100}, {87, 18}} - - - 257 - - _doScroller: - 1 - 0.94565218687057495 - - - {{98, 47}, {504, 85}} - - - 133201 - - - - - - - 256 - {{22, 118}, {71, 14}} - - - YES - - 67239424 - 4194304 - Glossary: - - - - - - - - - 268 - {{579, 11}, {25, 25}} - - - 5 - YES - - 67239424 - 134217728 - - - - -2038415105 - 33 - - - 200 - 25 - - - - {642, 469} - - - CETabItemView - NSView - - - {674, 666} - - - File Drop - - - - - prefKeyBindingsItemID - - - 256 - - YES - - - 292 - - YES - - - 256 - - YES - - - 274 - - YES - - - 256 - {{425, 50}, {100, 32}} - - - YES - - 67239424 - 134217728 - Edit... - - - -2038284033 - 1 - - - - - - 200 - 25 - - - - - 256 - {{23, 60}, {381, 14}} - - - YES - - 67239424 - 272629760 - Key bindings for menu items. - - - - - - - - - 256 - {{13, 96}, {264, 17}} - - - YES - - 67239424 - 272629760 - Menu Key Bindings - - - - - - - - - 256 - {{25, 11}, {381, 41}} - - - YES - - 67239424 - 272629760 - # The Script menu items are not included in this setting. - - - - - - - - {{2, 2}, {584, 126}} - - - - - {{17, 209}, {588, 130}} - - - {0, 0} - - 67239424 - 0 - - - - - 3 - MCAwLjgwMDAwMDAxAA - - - - 3 - 0 - 0 - NO - - - - 256 - - YES - - - 274 - - YES - - - 256 - {{13, 118}, {264, 17}} - - - YES - - 67239424 - 272629760 - Additional Text Key Bindings - - - - - - - - - 256 - {{425, 72}, {100, 32}} - - - 1 - YES - - 67239424 - 134217728 - Edit... - - - 1 - -2038284033 - 1 - - - - - - 200 - 25 - - - - - 256 - {{23, 82}, {381, 14}} - - - YES - - 67239424 - 272629760 - Key bindings for text handling. - - - - - - - - - 256 - {{23, 11}, {381, 63}} - - - YES - - 67239424 - 272629760 - # This setting is NOT for standard Cocoa key bindings but for CotEditor's original methods. - - - - - - - - {{2, 2}, {584, 148}} - - - - - {{17, 43}, {588, 152}} - - - {0, 0} - - 67239424 - 0 - - - - - 3 - MCAwLjgwMDAwMDAxAA - - - - 3 - 0 - 0 - NO - - - - 268 - {{579, 11}, {25, 25}} - - - 6 - YES - - 67239424 - 134217728 - - - - -2038415105 - 33 - - - 200 - 25 - - - - {642, 371} - - - CETabItemView - NSView - - - {674, 666} - - - Key Bindings - - - - - prefPrintItemID - - - 256 - - YES - - - 292 - - YES - - - 256 - - YES - - - 274 - - YES - - - 256 - {{126, 80}, {215, 26}} - - - YES - - -2076049856 - 2048 - - - 109199615 - 1 - - - - - - 400 - 75 - - - (No Print) - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - YES - - - - YES - YES - - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - Document Name - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - File Path - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - Print Date - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - Page Number - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 3 - YES - YES - 1 - - - - - 256 - {{362, 83}, {77, 23}} - - - YES - 1 - 3 - - YES - - -2080244224 - 134217728 - - - - 922501375 - 6 - - NSImage - leftButtonImg - - - - - - 200 - 25 - - - 67239424 - 134217728 - - - - 921977087 - 6 - - NSImage - centerButtonImg - - - - 400 - 75 - - - 67239424 - 134217728 - - - - 921977087 - 6 - - NSImage - rightButtonImg - - - - 400 - 75 - - - {23, 23} - {4, 2} - 1143472128 - NSActionCell - - 67239424 - 0 - Radio - - 1211912703 - 0 - - - - 400 - 75 - - - - - - - - - 256 - {{41, 9}, {330, 18}} - - - YES - - 67239424 - 0 - Print separator line at the bottom of header - - - 1211912703 - 2 - - - - 200 - 25 - - - - - 256 - {{362, 47}, {77, 23}} - - - YES - 1 - 3 - - YES - - -2080244224 - 134217728 - - - - 922501375 - 6 - - - - - - 200 - 25 - - - 67239424 - 134217728 - - - - 921977087 - 6 - - - - 400 - 75 - - - 67239424 - 134217728 - - - - 921977087 - 6 - - - - 400 - 75 - - - {23, 23} - {4, 2} - 1143472128 - NSActionCell - - 67239424 - 0 - Radio - - 1211912703 - 0 - - 549453824 - {18, 18} - - YES - - YES - - - - TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXw -IyMjyRwcHIsJCQk8AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/ -29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZGRl5 -dXV198PDw//8/Pz////////////////////////////U1NT/fHx89yUlJXkAAAAFAAAAAAAAAAAAAAAA -AAAAAxEREUZqamrmtbW1/+3t7f/+/v7//v7+//7+/v/9/f3//f39//39/f/39/f/xMTE/3d3d+YZGRlG -AAAAAwAAAAAAAAAAAAAACkJCQqGtra3/xsbG/+vr6//y8vL/9fX1//X19f/z8/P/9fX1//Ly8v/u7u7/ -0tLS/6+vr/9KSkqhAAAACgAAAAAAAAAAAAAAF3h4eN2/v7//z8/P/93d3f/q6ur/7+/v/+/v7//w8PD/ -7e3t/+3t7f/i4uL/zs7O/8XFxf98fHzdAAAAFwAAAAAAAAADAAAAJKSkpPjOzs7/2dnZ/+Dg4P/i4uL/ -5eXl/+bm5v/n5+f/5eXl/+Li4v/e3t7/2tra/9DQ0P+srKz4AAAAJAAAAAMAAAADAAAALrCwsPrW1tb/ -3t7e/+Tk5P/p6en/6+vr/+zs7P/p6en/6+vr/+fn5//k5OT/4ODg/9nZ2f+zs7P6AAAALgAAAAMAAAAD -AAAALp2dnezg4OD/5eXl/+rq6v/u7u7/8PDw//Dw8P/x8fH/8PDw/+7u7v/q6ur/5ubm/+Hh4f+ZmZns -AAAALgAAAAMAAAADAAAAJG5ubs/l5eX/6enp/+/v7//y8vL/9vb2//r6+v/5+fn/9/f3//b29v/x8fH/ -6+vr/+Tk5P9ra2vPAAAAJAAAAAMAAAAAAAAAFy4uLpPCwsL67Ozs//Pz8//5+fn//v7+//7+/v/+/v7/ -/v7+//v7+//19fX/8PDw/8LCwvosLCyTAAAAFwAAAAAAAAAAAAAACgAAAENfX1/S5OTk/vn5+f/+/v7/ -///////////////////////////8/Pz/5ubm/l9fX9IAAABDAAAACgAAAAAAAAAAAAAAAwAAABcAAABl -YmJi3NLS0v3////////////////////////////////V1dX9ZGRk3AAAAGUAAAAXAAAAAwAAAAAAAAAA -AAAAAAAAAAUAAAAfAAAAZTMzM8KAgIDwv7+//O3t7f/t7e3/v7+//ICAgPAzMzPCAAAAZQAAAB8AAAAF -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAFwAAAEMAAAB3AAAAnwAAALMAAACzAAAAnwAAAHcAAABD -AAAAFwAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAoAAAAXAAAAJAAAAC4AAAAu -AAAAJAAAABcAAAAKAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQEAAAMAAAABABIAAAEB -AAMAAAABABIAAAECAAMAAAAEAAAFugEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES -AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS -AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA - - - - - - - - 400 - 75 - - - - - - - - - 256 - {{40, 87}, {81, 17}} - - - YES - - 67239424 - 71303168 - Line 1: - - - - - - - - - 256 - {{40, 50}, {81, 17}} - - - YES - - 67239424 - 71303168 - Line 2: - - - - - - - - - 256 - {{41, 109}, {185, 18}} - - - YES - - 67239424 - 0 - Print Header: - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 256 - {{126, 44}, {215, 26}} - - - YES - - -2076049856 - 2048 - - - 109199615 - 1 - - - - - - 400 - 75 - - - (No Print) - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - YES - - - - YES - YES - - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - Document Name - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - File Path - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - Print Date - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - Page Number - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 3 - YES - YES - 1 - - - - {{2, 2}, {584, 133}} - - - - - {{17, 202}, {588, 150}} - - - {0, 0} - - 67239424 - 0 - Header: - - - - 3 - MCAwLjgwMDAwMDAxAA - - - - 3 - 0 - 2 - NO - - - - 256 - - YES - - - 274 - - YES - - - 256 - {{362, 81}, {77, 23}} - - - YES - 1 - 3 - - YES - - -2080244224 - 134217728 - - - - 922501375 - 6 - - - - - - 200 - 25 - - - 67239424 - 134217728 - - - - 921977087 - 6 - - - - 400 - 75 - - - 67239424 - 134217728 - - - - 921977087 - 6 - - - - 400 - 75 - - - {23, 23} - {4, 2} - 1143472128 - NSActionCell - - 67239424 - 0 - Radio - - 1211912703 - 0 - - 549453824 - {18, 18} - - YES - - YES - - - - TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXw -IyMjyRwcHIsJCQk8AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/ -29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZGRl5 -dXV198PDw//8/Pz////////////////////////////U1NT/fHx89yUlJXkAAAAFAAAAAAAAAAAAAAAA -AAAAAxEREUZqamrmtbW1/+3t7f/+/v7//v7+//7+/v/9/f3//f39//39/f/39/f/xMTE/3d3d+YZGRlG -AAAAAwAAAAAAAAAAAAAACkJCQqGtra3/xsbG/+vr6//y8vL/9fX1//X19f/z8/P/9fX1//Ly8v/u7u7/ -0tLS/6+vr/9KSkqhAAAACgAAAAAAAAAAAAAAF3h4eN2/v7//z8/P/93d3f/q6ur/7+/v/+/v7//w8PD/ -7e3t/+3t7f/i4uL/zs7O/8XFxf98fHzdAAAAFwAAAAAAAAADAAAAJKSkpPjOzs7/2dnZ/+Dg4P/i4uL/ -5eXl/+bm5v/n5+f/5eXl/+Li4v/e3t7/2tra/9DQ0P+srKz4AAAAJAAAAAMAAAADAAAALrCwsPrW1tb/ -3t7e/+Tk5P/p6en/6+vr/+zs7P/p6en/6+vr/+fn5//k5OT/4ODg/9nZ2f+zs7P6AAAALgAAAAMAAAAD -AAAALp2dnezg4OD/5eXl/+rq6v/u7u7/8PDw//Dw8P/x8fH/8PDw/+7u7v/q6ur/5ubm/+Hh4f+ZmZns -AAAALgAAAAMAAAADAAAAJG5ubs/l5eX/6enp/+/v7//y8vL/9vb2//r6+v/5+fn/9/f3//b29v/x8fH/ -6+vr/+Tk5P9ra2vPAAAAJAAAAAMAAAAAAAAAFy4uLpPCwsL67Ozs//Pz8//5+fn//v7+//7+/v/+/v7/ -/v7+//v7+//19fX/8PDw/8LCwvosLCyTAAAAFwAAAAAAAAAAAAAACgAAAENfX1/S5OTk/vn5+f/+/v7/ -///////////////////////////8/Pz/5ubm/l9fX9IAAABDAAAACgAAAAAAAAAAAAAAAwAAABcAAABl -YmJi3NLS0v3////////////////////////////////V1dX9ZGRk3AAAAGUAAAAXAAAAAwAAAAAAAAAA -AAAAAAAAAAUAAAAfAAAAZTMzM8KAgIDwv7+//O3t7f/t7e3/v7+//ICAgPAzMzPCAAAAZQAAAB8AAAAF -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAFwAAAEMAAAB3AAAAnwAAALMAAACzAAAAnwAAAHcAAABD -AAAAFwAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAoAAAAXAAAAJAAAAC4AAAAu -AAAAJAAAABcAAAAKAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQEAAAMAAAABABIAAAEB -AAMAAAABABIAAAECAAMAAAAEAAAFugEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES -AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS -AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA - - - - - - - - 400 - 75 - - - - - - - - - 256 - {{41, 11}, {330, 18}} - - - YES - - 67239424 - 0 - Print separator line at the top of footer - - - 1211912703 - 2 - - - - 200 - 25 - - - - - 256 - {{362, 45}, {77, 23}} - - - YES - 1 - 3 - - YES - - -2080244224 - 134217728 - - - - 922501375 - 6 - - - - - - 200 - 25 - - - 67239424 - 134217728 - - - - 921977087 - 6 - - - - 400 - 75 - - - 67239424 - 134217728 - - - - 921977087 - 6 - - - - 400 - 75 - - - {23, 23} - {4, 2} - 1143472128 - NSActionCell - - 67239424 - 0 - Radio - - 1211912703 - 0 - - 549453824 - {18, 18} - - YES - - YES - - - - TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXw -IyMjyRwcHIsJCQk8AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/ -29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZGRl5 -dXV198PDw//8/Pz////////////////////////////U1NT/fHx89yUlJXkAAAAFAAAAAAAAAAAAAAAA -AAAAAxEREUZqamrmtbW1/+3t7f/+/v7//v7+//7+/v/9/f3//f39//39/f/39/f/xMTE/3d3d+YZGRlG -AAAAAwAAAAAAAAAAAAAACkJCQqGtra3/xsbG/+vr6//y8vL/9fX1//X19f/z8/P/9fX1//Ly8v/u7u7/ -0tLS/6+vr/9KSkqhAAAACgAAAAAAAAAAAAAAF3h4eN2/v7//z8/P/93d3f/q6ur/7+/v/+/v7//w8PD/ -7e3t/+3t7f/i4uL/zs7O/8XFxf98fHzdAAAAFwAAAAAAAAADAAAAJKSkpPjOzs7/2dnZ/+Dg4P/i4uL/ -5eXl/+bm5v/n5+f/5eXl/+Li4v/e3t7/2tra/9DQ0P+srKz4AAAAJAAAAAMAAAADAAAALrCwsPrW1tb/ -3t7e/+Tk5P/p6en/6+vr/+zs7P/p6en/6+vr/+fn5//k5OT/4ODg/9nZ2f+zs7P6AAAALgAAAAMAAAAD -AAAALp2dnezg4OD/5eXl/+rq6v/u7u7/8PDw//Dw8P/x8fH/8PDw/+7u7v/q6ur/5ubm/+Hh4f+ZmZns -AAAALgAAAAMAAAADAAAAJG5ubs/l5eX/6enp/+/v7//y8vL/9vb2//r6+v/5+fn/9/f3//b29v/x8fH/ -6+vr/+Tk5P9ra2vPAAAAJAAAAAMAAAAAAAAAFy4uLpPCwsL67Ozs//Pz8//5+fn//v7+//7+/v/+/v7/ -/v7+//v7+//19fX/8PDw/8LCwvosLCyTAAAAFwAAAAAAAAAAAAAACgAAAENfX1/S5OTk/vn5+f/+/v7/ -///////////////////////////8/Pz/5ubm/l9fX9IAAABDAAAACgAAAAAAAAAAAAAAAwAAABcAAABl -YmJi3NLS0v3////////////////////////////////V1dX9ZGRk3AAAAGUAAAAXAAAAAwAAAAAAAAAA -AAAAAAAAAAUAAAAfAAAAZTMzM8KAgIDwv7+//O3t7f/t7e3/v7+//ICAgPAzMzPCAAAAZQAAAB8AAAAF -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAFwAAAEMAAAB3AAAAnwAAALMAAACzAAAAnwAAAHcAAABD -AAAAFwAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAoAAAAXAAAAJAAAAC4AAAAu -AAAAJAAAABcAAAAKAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQEAAAMAAAABABIAAAEB -AAMAAAABABIAAAECAAMAAAAEAAAFugEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES -AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS -AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA - - - - - - - - 400 - 75 - - - - - - - - - 256 - {{40, 85}, {81, 17}} - - - YES - - 67239424 - 71303168 - Line 1: - - - - - - - - - 256 - {{40, 48}, {81, 17}} - - - YES - - 67239424 - 71303168 - Line 2: - - - - - - - - - 256 - {{41, 107}, {192, 18}} - - - YES - - 67239424 - 0 - Print Footer: - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 256 - {{126, 78}, {215, 26}} - - - YES - - -2076049856 - 2048 - - - 109199615 - 1 - - - - - - 400 - 75 - - - (No Print) - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - YES - - - - YES - YES - - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - Document Name - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - File Path - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - Print Date - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - Page Number - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 3 - YES - YES - 1 - - - - - 256 - {{126, 42}, {215, 26}} - - - YES - - -2076049856 - 2048 - - - 109199615 - 1 - - - - - - 400 - 75 - - - (No Print) - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - YES - - - - YES - YES - - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - Document Name - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - File Path - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - Print Date - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - Page Number - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 3 - YES - YES - 1 - - - - {{2, 2}, {584, 131}} - - - - - {{17, 43}, {588, 148}} - - - {0, 0} - - 67239424 - 0 - Footer: - - - - 3 - MCAwLjgwMDAwMDAxAA - - - - 3 - 0 - 2 - NO - - - - 256 - {{70, 527}, {114, 17}} - - - YES - - 67239424 - 272629760 - Line numbers: - - - - - - - - - 256 - {{186, 521}, {215, 26}} - - - YES - - -2076049856 - 2048 - - - 109199615 - 1 - - - - - - 400 - 75 - - - (No Print) - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - YES - - - - Same as document's setting - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - Print - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 3 - YES - YES - 1 - - - - - 256 - {{70, 490}, {114, 17}} - - - YES - - 67239424 - 272629760 - Invisible Chars: - - - - - - - - - 256 - {{186, 484}, {215, 26}} - - - YES - - -2076049856 - 2048 - - - 109199615 - 1 - - - - - - 400 - 75 - - - (No Print) - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - YES - - - - Same as document's setting - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - Print All - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 3 - YES - YES - 1 - - - - - 256 - - YES - - - 274 - - YES - - - 256 - {{382, 19}, {88, 28}} - - - YES - - 67239424 - 134348800 - Select... - - - -2038284033 - 1 - - - - - - 200 - 25 - - - - - 256 - {{41, 17}, {318, 66}} - - - YES - 2 - 1 - - YES - - -2080244224 - 0 - Same as document's font - - - 1211912703 - 0 - - - - - - 200 - 25 - - - 67239424 - 0 - - - - 1 - 1211912703 - 0 - - - - 200 - 25 - - - {318, 32} - {4, 2} - 1143472128 - NSActionCell - - 67239424 - 0 - Radio - - 1211912703 - 0 - - 549453824 - {18, 18} - - YES - - YES - - - - TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXw -IyMjyRwcHIsJCQk8AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/ -29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZGRl5 -dXV198PDw//8/Pz////////////////////////////U1NT/fHx89yUlJXkAAAAFAAAAAAAAAAAAAAAA -AAAAAxEREUZqamrmtbW1/+3t7f/+/v7//v7+//7+/v/9/f3//f39//39/f/39/f/xMTE/3d3d+YZGRlG -AAAAAwAAAAAAAAAAAAAACkJCQqGtra3/xsbG/+vr6//y8vL/9fX1//X19f/z8/P/9fX1//Ly8v/u7u7/ -0tLS/6+vr/9KSkqhAAAACgAAAAAAAAAAAAAAF3h4eN2/v7//z8/P/93d3f/q6ur/7+/v/+/v7//w8PD/ -7e3t/+3t7f/i4uL/zs7O/8XFxf98fHzdAAAAFwAAAAAAAAADAAAAJKSkpPjOzs7/2dnZ/+Dg4P/i4uL/ -5eXl/+bm5v/n5+f/5eXl/+Li4v/e3t7/2tra/9DQ0P+srKz4AAAAJAAAAAMAAAADAAAALrCwsPrW1tb/ -3t7e/+Tk5P/p6en/6+vr/+zs7P/p6en/6+vr/+fn5//k5OT/4ODg/9nZ2f+zs7P6AAAALgAAAAMAAAAD -AAAALp2dnezg4OD/5eXl/+rq6v/u7u7/8PDw//Dw8P/x8fH/8PDw/+7u7v/q6ur/5ubm/+Hh4f+ZmZns -AAAALgAAAAMAAAADAAAAJG5ubs/l5eX/6enp/+/v7//y8vL/9vb2//r6+v/5+fn/9/f3//b29v/x8fH/ -6+vr/+Tk5P9ra2vPAAAAJAAAAAMAAAAAAAAAFy4uLpPCwsL67Ozs//Pz8//5+fn//v7+//7+/v/+/v7/ -/v7+//v7+//19fX/8PDw/8LCwvosLCyTAAAAFwAAAAAAAAAAAAAACgAAAENfX1/S5OTk/vn5+f/+/v7/ -///////////////////////////8/Pz/5ubm/l9fX9IAAABDAAAACgAAAAAAAAAAAAAAAwAAABcAAABl -YmJi3NLS0v3////////////////////////////////V1dX9ZGRk3AAAAGUAAAAXAAAAAwAAAAAAAAAA -AAAAAAAAAAUAAAAfAAAAZTMzM8KAgIDwv7+//O3t7f/t7e3/v7+//ICAgPAzMzPCAAAAZQAAAB8AAAAF -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAFwAAAEMAAAB3AAAAnwAAALMAAACzAAAAnwAAAHcAAABD -AAAAFwAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAoAAAAXAAAAJAAAAC4AAAAu -AAAAJAAAABcAAAAKAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgEAAAMAAAABABIAAAEB -AAMAAAABABIAAAECAAMAAAAEAAAFxgEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES -AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS -AAMAAAABAAEAAAFTAAMAAAAEAAAFzodzAAcAAAv0AAAF1gAAAAAACAAIAAgACAABAAEAAQABAAAL9GFw -cGwCAAAAbW50clJHQiBYWVogB9cADAABABIAJAAeYWNzcEFQUEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAPbWAAEAAAAA0y1hcHBsrozGFsRJnOEbbnGffjxJDgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAANclhZWgAAASAAAAAUZ1hZWgAAATQAAAAUYlhZWgAAAUgAAAAUd3RwdAAAAVwAAAAUY2hhZAAA -AXAAAAAsclRSQwAAAZwAAAAOZ1RSQwAAAawAAAAOYlRSQwAAAbwAAAAOdmNndAAAAcwAAAYSbmRpbgAA -B+AAAAMOZGVzYwAACvAAAACsY3BydAAAC5wAAAAtbW1vZAAAC8wAAAAoWFlaIAAAAAAAAHM8AAA/OgAA -AnxYWVogAAAAAAAAXyEAAKmHAAAeplhZWiAAAAAAAAAkeAAAF1oAALICWFlaIAAAAAAAAPNSAAEAAAAB -Fs9zZjMyAAAAAAABDEIAAAXe///zJgAAB5IAAP2R///7ov///aMAAAPcAADAbGN1cnYAAAAAAAAAAQHP -AABjdXJ2AAAAAAAAAAEBzwAAY3VydgAAAAAAAAABAc8AAHZjZ3QAAAAAAAAAAAADAQAAAgAAAm8EkQbD -CLIKnAxxDj0QAhG8E2YU+xaJGBMZkxsDHHEd2R8uIIYh1CMbJGAlmCbUKAEpMSpZK34snS25LtEv5zD6 -MgkzFDQeNSY2LDctODA5LTotOyY8Iz0ZPhM/CD/+QPNB50LdQ85ExEW1RqpHkUhzSVJKIErwS7hMeU0+ -TflOs09wUCdQ3VGXUk1TBFO+VHhVNFXxVrRXeFhAWRJZ5lrAW6Bcgl1hXkJfI2ADYOVhxWKnY4lka2VO -ZjBnFGf3aNtpwWqma41sc21bbkRvLXAZcQRx8XLfc890wHWzdqh3nniXeZF6jXuOfJB9lH6Zf6CAqYGx -grqDxYTRhd2G6Yf3iQaKFYsljDWNRY5Xj2iQepGMkp6TsZTEldaW6Jf7mQ6aH5sxnEGdUp5in3Ggf6GN -opmjpqSwpbqmwafKqM6p1KrVq9is163WrtKvzbDGsbyys7OltJm1h7Z1t2C4SLkwuhK69bvUvLK9j75o -v0PAGsDwwcfCm8NvxELFFcXoxrnHishbySzJ/crNy57McM1BzhPO5s+50IzRYdI30w3T5tS/1ZrWd9dV -2DfZGdn/2ufb0Ny73abekd984GfhU+I/4yvkF+UE5fLm4OfO6L7pruqf65HshO157m7vZfBd8VfyU/NQ -9FD1UPZV91r4ZPlv+n/7kPym/b/+3v//AAACZgRYBlQINAn6C7kNcw8kEMgSXxPvFXoW9xhwGeYbThyy -HhQfZyC6IgUjSSSQJccnAig1KWUqkSu5LN8t/i8eMDUxTzJhM3g0hDWUNp43qzixObk6vTvAPMI9wz7D -P8BAv0G8QrtDtUSzRa5GqkeeSI5JekpbSz9MFUzuTcNOkk9kUC9Q+1HIUpBTWlQkVO1VuFaEV09YHVjt -Wb9alVtuXEpdJV4CXuBfumCXYXFiS2MmY/9k2WWyZoxnZ2hAaRtp9WrPa6tshm1jbkBvHW/8cNxxvXKf -c4J0Z3VNdjZ3IXgNePx57Xrhe9p81H3SftJ/04DWgdqC34PkhOuF84b8iAeJEYodiymMNo1EjlOPYZBw -kYCSkJOglLGVwZbRl+CY8ZoAmw+cHZ0rnjefRaBPoVuiYqNrpHGld6Z6p36ofql9qnqrdqxwrWiuX69S -sEWxNLIisw6z97TgtcO2p7eDuF65NroJuty7q7x3vUW+Db7Vv53AYcEmwenCq8NuxDDE8MWxxnLHMsf0 -yLXJdso4yvrLvsyCzUfODs7Wz6DQa9E50gjS2dOx1InVZdZG1ynYFdkD2fHa4dvR3MHdst6i35TghuF4 -4mvjX+RU5UvmQuc76DXpMeov6y/sMe017jzvRvBU8WTyefOR9K/10vb6+Cn5Xfqd++P9N/6W//8AAAJv -BIYGfghVCiIL6w2vD20RHBKvFEEV0BdSGMoaQRuuHQ8ecR/GIRQiYSOjJOgmISdXKIkpsyrgLAEtKC5D -L2MwdjGPMp4zsTS6Nck2zTfYONo54DrgO+I83z3dPtk/1UDRQcpCx0O+RLpFsEaqR5pIh0lwSk1LLUv/ -TNNNpU5uTzpQA1DJUZJSVlMZU+BUolVnVi1W81e7WIVZUFoeWvBbxFyZXWteP18RX+JgtGGCYlJjI2Px -ZMBlj2ZdZy1n+2jKaZpqaWs6bAts3W2xboVvWnAycQpx5XLBc6B0gXVldkt3NngjeRZ6DXsIfAp9DX4R -fxaAHIEkgiyDNYQ+hUqGVYdiiG+JfoqMi5yMrI29js6P4JDykgWTF5QqlT2WUZdkmHeZipqem7GcxJ3W -nuif+aEKohqjKaQ3pUWmUqdeqGipcap5q4Cshq2Kro2vjrCOsYuyibOBtHu1cbZnt1u4Tbk/ui67HrwK -vPe94r7Nv7fAoMGJwm/DV8Q9xSLGCMbtx9LItsmayn7LYcxFzSjOC87vz9LQttGa0n7TYtRH1SzWEtb4 -19/Yx9mw2pnbg9xu3VreRd8y4B7hCeH24uHjzeS55aXmked+6GvpV+pD6zDsHu0L7fnu5+/V8MTxs/Kj -85P0hPV19mf3WvhM+UD6NPsp/B/9Fv4N/wb//wAAbmRpbgAAAAAAAAMGAAChRwAAWZkAAEzMAACR6wAA -JcMAABYEAABQDQAAVDkAAgplAAIEsAACAd8AAwB4AAIAAAACAAkAEwAjADcAUABuAJEAuwDrASIBYAGm -AfQCTAKsAxcDjAQMBJcFLwXTBoMHQQgLCOMJyAq6C7kMxQ3cDv8QLBF7EvYUmRZeGDwaKhwdHgkf3yGm -I3clUyc5KSgrHy0eLyQxMDNANVU3bDmEO5w9sz/FQddD60YESB9KP0xiTopQt1LoVSBXXVmhW+tePmCZ -Yv5lbWfmamxs/2+gclB1EXfkest9xoDYhAeHU4q7jj2R15WGmUedGKD3pOCoz6zCsLS0obiGvF7AJcPn -x7HLgc9X0zHXDdrq3sXinuZx6j7uAvG79Wb5AfyL//8AAAACAAoAFgAnAD4AWgB8AKMA0QEGAUEBhAHO -AiECfALhA08DxwRJBNYFbgYSBsIHfQhFCRgJ+ArkC9wM4A3uDwcQKhFlEr8UNhXIF3EZLBr0HMUeliBh -IjIkEiYAJ/sqASwSLi0wTzJ4NKU21jkGOzU9YD+DQaFDwEXiSAdKLkxZTohQulLyVS5XcFm5XApeYmDE -YzBlp2grarxtXHANctB1pniSe5V+sYHrhVGI4YyXkG+UZZhznJagxqT/qTutcrGetbi5tr2SwUbE98iv -zGvQKtPq16fbYd8T4rzmWenm7WHwxvQS90L6Uf08//8AAAACAAkAFQAmADwAVwB3AJ0AygD9ATcBeAHB -AhICbALQAzwDswQ1BMIFWgX9Bq0HaQgyCQcJ6ArWC9EM1w3oDwQQKxFqEssUSxXoF5wZZRs8HRse+yDW -IsAkvCbIKOIrCi09L3oxvTQENks4kDrPPQQ/K0FCQ1tFd0eXSbpL4E4KUDhSalShVt1ZH1tmXbRgCGJk -ZMlnNmmubDBuvXFYdAB2tnl9fFV/QII/hU+IcoumjuqSPpWhmRKcj6AZo62nS6ryrp+yUrYJucK9fME2 -xPbIv8yQ0GnUSNgv3BvgDOQD5/3r+u/58/r3/Pv+//8AAGRlc2MAAAAAAAAAHkFwcGxlIFN0dWRpbyBE -aXNwbGF5IDIwMDcxMjAxAAAAAAAAAAAaAEEAcABwAGwAZQAgAFMAdAB1AGQAaQBvACAARABpAHMAcABs -AGEAeQAgiNxrY24IMH8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSBDb21wdXRlciwg -SW5jLiwgMjAwMwAAAABtbW9kAAAAAAAABhAAAJIXAv5NwrtMuwAAAAAAAAAAAAAAAAAAAAAAA - - - - - - - - 400 - 75 - - - - - - - - - 256 - {{60, 20}, {310, 27}} - - - YES - - -2075001280 - 138413056 - - - - YES - - - - - - {{2, 2}, {584, 88}} - - - - - {{17, 363}, {588, 105}} - - - {0, 0} - - 67239424 - 0 - Print Font: - - - - 3 - MCAwLjgwMDAwMDAxAA - - - - 3 - 0 - 2 - NO - - - - 256 - {{31, 591}, {434, 17}} - - - YES - - 67239424 - 4194304 - # The following changes apply to Next New document. - - - - - - - - - 256 - {{186, 558}, {215, 26}} - - - YES - - -2076049856 - 2048 - - - 109199615 - 1 - - - - - - 400 - 75 - - - Black text - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - - - - YES - - - OtherViews - - - YES - - - - Same as document's setting - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 3 - YES - YES - 1 - - - - - 256 - {{70, 564}, {114, 17}} - - - YES - - 67239424 - 272629760 - Color: - - - - - - - - - 268 - {{579, 11}, {25, 25}} - - - 7 - YES - - 67239424 - 134217728 - - - - -2038415105 - 33 - - - 200 - 25 - - - - {642, 639} - - - CETabItemView - NSView - - - {674, 666} - - - Print - - - - - - - 6 - YES - - YES - - - - - {694, 686} - - - - - {{0, 0}, {1366, 746}} - {218.03700000000001, 129} - {10000000000000, 10000000000000} - YES - - - YES - - - 9 - 2 - {{247, 236}, {401, 350}} - 1886912512 - Encoding List - NSWindow - - View - - - {350, 320} - - - 256 - - YES - - - 274 - - YES - - - 2304 - - YES - - - 256 - {255, 218} - - - YES - - - 256 - {{212, 0}, {16, 17}} - - - YES - - 252 - 40 - 1000 - - 75628096 - 2048 - - - - 3 - MC4zMzMzMzI5OQA - - - - - 338820672 - 1024 - - - - - - 3 - YES - YES - - - - 3 - 2 - - - 17 - -633307136 - - - 1 - 15 - 0 - YES - 0 - 1 - - - {{1, 1}, {255, 218}} - - - - - 4 - - - - -2147483392 - {{-30, 1}, {15, 195}} - - - - _doScroller: - 0.94210523366928101 - - - - -2147483392 - {{1, -30}, {210, 15}} - - - 1 - - _doScroller: - 0.99047619104385376 - - - {{20, 59}, {257, 220}} - - - 133682 - - - - QSAAAEEgAABBmAAAQZgAAA - - - - 289 - {{185, 12}, {100, 32}} - - - YES - - 67239424 - 134217728 - Cancel - - - -2038284033 - 1 - - - Gw - 200 - 25 - - - - - 289 - {{285, 12}, {100, 32}} - - - 100 - YES - - 67239424 - 134217728 - OK - - - 100 - -2038284033 - 1 - - - DQ - 200 - 25 - - - - - 265 - {{285, 249}, {97, 16}} - - - YES - - 67239424 - 134479872 - Add separator - - - -2038284033 - 1 - - - - - - 200 - 25 - - - - - 265 - {{285, 199}, {97, 16}} - - - YES - - 604110336 - 134479872 - Delete separator - - - -2038284033 - 1 - - - - - - 200 - 25 - - - - - 266 - {{17, 285}, {367, 30}} - - - YES - - 67239424 - 138412032 - VGhpcyBsaXN0IGlzIGZvciBBdXRvLURldGVjdCBhbmQgdGhlIEZpbGUgRW5jb2RpbmcgbWVudS4KQXV0 -by1EZXRlY3QgdHJpZXMgdGhlc2UgZW5jb2RpbmdzIGZyb20gdGhlIHRvcCBvZiB0aGUgbGlzdC4 - - - - - - - - - 266 - {{17, 321}, {367, 17}} - - - YES - - 67239424 - 138412032 - Drag encodings to change the order. - - LucidaGrande-Bold - 13 - 2072 - - - YES - - 6 - System - selectedInactiveColor - - - - - - - - 292 - {{15, 31}, {164, 26}} - - - YES - - 604110336 - 134348800 - Set to Factory Defaults - - - -2038021889 - 2 - - - - 400 - 75 - - - - {401, 350} - - - - {{0, 0}, {1366, 746}} - {350, 342} - {10000000000000, 10000000000000} - encodingList - YES - - - CEPrefEncodingDataSource - - - 9 - 2 - {{192, 280}, {480, 360}} - 1886912512 - Sample Window for Size - NSWindow - - View - - - {400, 200} - - - 256 - - YES - - - 289 - {{366, 22}, {100, 32}} - - - 100 - YES - - 67239424 - 134217728 - OK - - - 100 - -2038284033 - 1 - - - DQ - 200 - 25 - - - - - 289 - {{258, 22}, {100, 32}} - - - YES - - 67239424 - 134217728 - Cancel - - - -2038284033 - 1 - - - Gw - 200 - 25 - - - - - 266 - {{17, 276}, {446, 64}} - - - YES - - 67239424 - 4194304 - WW91IGNhbiByZXNpemUgdGhpcyB3aW5kb3cuCkFuZCBwcmVzcyAiT0siIGJ1dHRvbiwgdGhpcyB3aW5k -b3cgc2l6ZSB3aWxsIGJlIHNldCB0byBkZWZhdWx0Lg - - - - - - - - - 265 - {{250, 249}, {63, 19}} - - - YES - - -1804468672 - -2076048384 - - - - - YES - - YES - allowsFloats - attributedStringForNil - attributedStringForNotANumber - attributedStringForZero - decimalSeparator - formatterBehavior - groupingSeparator - locale - maximum - minimum - negativeFormat - positiveFormat - usesGroupingSeparator - - - YES - - - - - - NaN - - - - 0 - - - . - - , - - - 4 - 1 - NO - YES - 1 - AQAAAAAAAAAAAAAAAAAAAA - - - 2 - 1 - NO - YES - 1 - AQAAAAAAAAAAAAAAAAAAAA - - -0 - 0.0 - - - - 0.0 - -0 - - - - - - - - - . - , - NO - NO - YES - - - YES - - - - - - - 265 - {{383, 249}, {63, 19}} - - - YES - - -1804468672 - -2076048384 - - - - - YES - - YES - allowsFloats - attributedStringForNil - attributedStringForNotANumber - attributedStringForZero - decimalSeparator - formatterBehavior - groupingSeparator - locale - maximum - minimum - negativeFormat - positiveFormat - usesGroupingSeparator - - - YES - - - - - - NaN - - - - 0 - - - . - - , - - - 4 - 1 - NO - YES - 1 - AQAAAAAAAAAAAAAAAAAAAA - - - 2 - 1 - NO - YES - 1 - AQAAAAAAAAAAAAAAAAAAAA - - -0 - 0.0 - - - - 0.0 - -0 - - - - - - - - - . - , - NO - NO - YES - - - YES - - - - - - - 265 - {{203, 251}, {42, 14}} - - - YES - - 67239424 - 4194304 - width: - - - - - - - - - 265 - {{336, 251}, {42, 14}} - - - YES - - 67239424 - 4194304 - height: - - - - - - - - - 290 - {{17, 32}, {228, 17}} - - - YES - - 67239424 - 71303168 - Press button, stop modal >>> - - - - - - - - {480, 360} - - - - {{0, 0}, {1366, 746}} - {400, 222} - {10000000000000, 10000000000000} - YES - - - - YES - extensions - formatString - windowHeight - footerOneAlignIndex - - YES - - YES - YES - YES - YES - - - CEPreferencesTabController - - - SUUpdater - - - - 256 - {1, 111} - - - - 256 - {1, 111} - - - - - YES - - - _prefWindow - - - - 29 - - - - _encodingWindow - - - - 45 - - - - openEncodingEditSheet: - - - - 46 - - - - closeEncodingEditSheet: - - - - 49 - - - - closeEncodingEditSheet: - - - - 50 - - - - _encodingDataSource - - - - 58 - - - - _encodingMenuInOpen - - - - 101 - - - - _encodingMenuInNew - - - - 102 - - - - _sizeSampleWindow - - - - 132 - - - - setWindowContentSizeToDefault: - - - - 133 - - - - setWindowContentSizeToDefault: - - - - 134 - - - - openSyntaxEditSheet: - - - - 169 - - - - _invisibleNewLinePopup - - - - 228 - - - - _invisibleSpacePopup - - - - 237 - - - - _invisibleTabPopup - - - - 245 - - - - _invisibleFullwidthSpacePopup - - - - 250 - - - - _syntaxStylesPopup - - - - 341 - - - - _syntaxStyleEditButton - - - - 342 - - - - _syntaxStyleExportButton - - - - 343 - - - - changedSyntaxStylesPopup: - - - - 344 - - - - _syntaxStyleCopyButton - - - - 347 - - - - openSyntaxEditSheet: - - - - 349 - - - - openSyntaxEditSheet: - - - - 350 - - - - deleteSyntaxStyle: - - - - 352 - - - - _syntaxStyleDeleteButton - - - - 353 - - - - importSyntaxStyle: - - - - 354 - - - - exportSyntaxStyle: - - - - 355 - - - - openSyntaxExtensionErrorSheet: - - - - 357 - - - - showFonts: - - - - 389 - - - - _prefFontFamilyNameSize - - - - 390 - - - - _fileDropController - - - - 455 - - - - addNewFileDropSetting: - - - - 517 - - - - deleteFileDropSetting: - - - - 518 - - - - _fileDropTableView - - - - 519 - - - - _fileDropTextView - - - - 554 - - - - insertFormatStringInFileDrop: - - - - 555 - - - - insertFormatStringInFileDrop: - - - - 556 - - - - insertFormatStringInFileDrop: - - - - 557 - - - - insertFormatStringInFileDrop: - - - - 558 - - - - insertFormatStringInFileDrop: - - - - 559 - - - - insertFormatStringInFileDrop: - - - - 560 - - - - insertFormatStringInFileDrop: - - - - 561 - - - - _syntaxStyleXtsnErrButton - - - - 604 - - - - openSizeSampleWindow: - - - - 642 - - - - changedSyntaxStylesPopup: - - - - 677 - - - - insertFormatStringInFileDrop: - - - - 697 - - - - insertFormatStringInFileDrop: - - - - 698 - - - - insertFormatStringInFileDrop: - - - - 699 - - - - openKeyBindingEditSheet: - - - - 723 - - - - openKeyBindingEditSheet: - - - - 725 - - - - _syntaxStylesDefaultPopup - - - - 730 - - - - setupCustomLineSpacing: - - - - 834 - - - - _prefTabView - - - - 999 - - - - showFonts: - - - - 1009 - - - - _printFontFamilyNameSize - - - - 1010 - - - - openPrefHelp: - - - - 1992 - - - - openPrefHelp: - - - - 2153 - - - - openPrefHelp: - - - - 2156 - - - - openPrefHelp: - - - - 2159 - - - - openPrefHelp: - - - - 2162 - - - - openPrefHelp: - - - - 2353 - - - - openPrefHelp: - - - - 2358 - - - - openPrefHelp: - - - - 2361 - - - - _fileDropGlossaryTextView - - - - 3080 - - - - setSmartInsertAndDeleteToAllTextView: - - - - 647 - - - - setSelectAccessoryEncodingMenuToDefault: - - - - 778 - - - - delegate - - - - 196 - - - - delegate - - - - 742 - - - - selectedTag: values.defaultLineEndCharCode - - - - - - selectedTag: values.defaultLineEndCharCode - selectedTag - values.defaultLineEndCharCode - 2 - - - 28 - - - - dataSource - - - - 48 - - - - delegate - - - - 65 - - - - _tableView - - - - 59 - - - - addSeparator: - - - - 63 - - - - deleteSeparator: - - - - 64 - - - - _delSeparatorButton - - - - 66 - - - - revertDefaultEncodings: - - - - 701 - - - - _revertButton - - - - 702 - - - - value: values.wrapLines - - - - - - value: values.wrapLines - value - values.wrapLines - 2 - - - 90 - - - - selectedTag: values.encodingInOpen - - - - - - selectedTag: values.encodingInOpen - selectedTag - values.encodingInOpen - 2 - - - 98 - - - - selectedTag: values.encodingInNew - - - - - - selectedTag: values.encodingInNew - selectedTag - values.encodingInNew - 2 - - - 100 - - - - value: values.createNewAtStartup - - - - - - value: values.createNewAtStartup - value - values.createNewAtStartup - 2 - - - 157 - - - - contentHeight: sampleHeight - - - - - - contentHeight: sampleHeight - contentHeight - sampleHeight - 2 - - - 149 - - - - contentWidth: sampleWidth - - - - - - contentWidth: sampleWidth - contentWidth - sampleWidth - - 2 - - - 151 - - - - value: sampleWidth - - - - - - value: sampleWidth - value - sampleWidth - 2 - - - 152 - - - - value: sampleHeight - - - - - - value: sampleHeight - value - sampleHeight - 2 - - - 153 - - - - value: values.autoExpandTab - - - - - - value: values.autoExpandTab - value - values.autoExpandTab - 2 - - - 163 - - - - value: values.autoIndent - - - - - - value: values.autoIndent - value - values.autoIndent - 2 - - - 210 - - - - value: values.invisibleCharactersColor - - - - - - value: values.invisibleCharactersColor - value - values.invisibleCharactersColor - - NSValueTransformerName - NSUnarchiveFromData - - 2 - - - 219 - - - - value: values.showInvisibleNewLine - - - - - - value: values.showInvisibleNewLine - value - values.showInvisibleNewLine - 2 - - - 227 - - - - enabled: values.showInvisibleNewLine - - - - - - enabled: values.showInvisibleNewLine - enabled - values.showInvisibleNewLine - 2 - - - 230 - - - - selectedIndex: values.invisibleNewLine - - - - - - selectedIndex: values.invisibleNewLine - selectedIndex - values.invisibleNewLine - 2 - - - 232 - - - - value: values.showInvisibleSpace - - - - - - value: values.showInvisibleSpace - value - values.showInvisibleSpace - 2 - - - 238 - - - - enabled: values.showInvisibleSpace - - - - - - enabled: values.showInvisibleSpace - enabled - values.showInvisibleSpace - 2 - - - 239 - - - - selectedIndex: values.invisibleSpace - - - - - - selectedIndex: values.invisibleSpace - selectedIndex - values.invisibleSpace - 2 - - - 240 - - - - enabled: values.showInvisibleTab - - - - - - enabled: values.showInvisibleTab - enabled - values.showInvisibleTab - 2 - - - 252 - - - - selectedIndex: values.invisibleTab - - - - - - selectedIndex: values.invisibleTab - selectedIndex - values.invisibleTab - 2 - - - 253 - - - - value: values.showInvisibleTab - - - - - - value: values.showInvisibleTab - value - values.showInvisibleTab - 2 - - - 251 - - - - enabled: values.showInvisibleZenkakuSpace - - - - - - enabled: values.showInvisibleZenkakuSpace - enabled - values.showInvisibleZenkakuSpace - 2 - - - 255 - - - - selectedIndex: values.invisibleZenkakuSpace - - - - - - selectedIndex: values.invisibleZenkakuSpace - selectedIndex - values.invisibleZenkakuSpace - 2 - - - 256 - - - - value: values.showInvisibleZenkakuSpace - - - - - - value: values.showInvisibleZenkakuSpace - value - values.showInvisibleZenkakuSpace - 2 - - - 254 - - - - value: values.tabWidth - - - - - - value: values.tabWidth - value - values.tabWidth - 2 - - - 284 - - - - value: values.keywordsColor - - - - - - value: values.keywordsColor - value - values.keywordsColor - - NSValueTransformerName - NSUnarchiveFromData - - 2 - - - 327 - - - - enabled: values.doSyntaxColoring - - - - - - enabled: values.doSyntaxColoring - enabled - values.doSyntaxColoring - 2 - - - 649 - - - - value: values.commandsColor - - - - - - value: values.commandsColor - value - values.commandsColor - - NSValueTransformerName - NSUnarchiveFromData - - 2 - - - 329 - - - - enabled: values.doSyntaxColoring - - - - - - enabled: values.doSyntaxColoring - enabled - values.doSyntaxColoring - 2 - - - 652 - - - - value: values.numbersColor - - - - - - value: values.numbersColor - value - values.numbersColor - - NSValueTransformerName - NSUnarchiveFromData - - 2 - - - 332 - - - - enabled: values.doSyntaxColoring - - - - - - enabled: values.doSyntaxColoring - enabled - values.doSyntaxColoring - 2 - - - 653 - - - - value: values.stringsColor - - - - - - value: values.stringsColor - value - values.stringsColor - - NSValueTransformerName - NSUnarchiveFromData - - 2 - - - 414 - - - - enabled: values.doSyntaxColoring - - - - - - enabled: values.doSyntaxColoring - enabled - values.doSyntaxColoring - 2 - - - 651 - - - - value: values.charactersColor - - - - - - value: values.charactersColor - value - values.charactersColor - - NSValueTransformerName - NSUnarchiveFromData - - 2 - - - 415 - - - - enabled: values.doSyntaxColoring - - - - - - enabled: values.doSyntaxColoring - enabled - values.doSyntaxColoring - 2 - - - 654 - - - - value: values.valuesColor - - - - - - value: values.valuesColor - value - values.valuesColor - - NSValueTransformerName - NSUnarchiveFromData - - 2 - - - 334 - - - - enabled: values.doSyntaxColoring - - - - - - enabled: values.doSyntaxColoring - enabled - values.doSyntaxColoring - 2 - - - 650 - - - - value: values.commentsColor - - - - - - value: values.commentsColor - value - values.commentsColor - - NSValueTransformerName - NSUnarchiveFromData - - 2 - - - 340 - - - - enabled: values.doSyntaxColoring - - - - - - enabled: values.doSyntaxColoring - enabled - values.doSyntaxColoring - 2 - - - 655 - - - - selectedIndex: values.saveTypeCreator - - - - - - selectedIndex: values.saveTypeCreator - selectedIndex - values.saveTypeCreator - 2 - - - 380 - - - - value: values.textColor - - - - - - value: values.textColor - value - values.textColor - - NSValueTransformerName - NSUnarchiveFromData - - 2 - - - 427 - - - - value: values.insertionPointColor - - - - - - value: values.insertionPointColor - value - values.insertionPointColor - - NSValueTransformerName - NSUnarchiveFromData - - 2 - - - 429 - - - - value: values.backgroundColor - - - - - - value: values.backgroundColor - value - values.backgroundColor - - NSValueTransformerName - NSUnarchiveFromData - - 2 - - - 428 - - - - value: values.doSyntaxColoring - - - - - - value: values.doSyntaxColoring - value - values.doSyntaxColoring - 2 - - - 431 - - - - delegate - - - - 584 - - - - value: arrangedObjects.extensions - - - - - - value: arrangedObjects.extensions - value - arrangedObjects.extensions - 2 - - - 582 - - - - enabled: canAdd - - - - - - enabled: canAdd - enabled - canAdd - 2 - - - 463 - - - - enabled: canRemove - - - - - - enabled: canRemove - enabled - canRemove - 2 - - - 461 - - - - delegate - - - - 585 - - - - value: selection.formatString - - - - - - value: selection.formatString - value - selection.formatString - 2 - - - 593 - - - - value: values.reopenBlankWindow - - - - - - value: values.reopenBlankWindow - value - values.reopenBlankWindow - 2 - - - 595 - - - - value: values.checkSpellingAsType - - - - - - value: values.checkSpellingAsType - value - values.checkSpellingAsType - 2 - - - 597 - - - - value: values.NSDragAndDropTextDelay - - - - - - value: values.NSDragAndDropTextDelay - value - values.NSDragAndDropTextDelay - 2 - - - 601 - - - - value: values.alphaOnlyTextView - - - - - - value: values.alphaOnlyTextView - value - values.alphaOnlyTextView - 2 - - - 638 - - - - value: values.windowAlpha - - - - - - value: values.windowAlpha - value - values.windowAlpha - 2 - - - 636 - - - - value: values.windowAlpha - - - - - - value: values.windowAlpha - value - values.windowAlpha - 2 - - - 634 - - - - value: values.windowWidth - - - - - - value: values.windowWidth - value - values.windowWidth - 2 - - - 640 - - - - value: values.windowHeight - - - - - - value: values.windowHeight - value - values.windowHeight - 2 - - - 643 - - - - value: values.showLineNumbers - - - - - - value: values.showLineNumbers - value - values.showLineNumbers - 2 - - - 630 - - - - value: values.showStatusArea - - - - - - value: values.showStatusArea - value - values.showStatusArea - 2 - - - 632 - - - - value: values.smartInsertAndDelete - - - - - - value: values.smartInsertAndDelete - value - values.smartInsertAndDelete - 2 - - - 646 - - - - selectedIndex: values.completeAddStandardWords - - - - - - selectedIndex: values.completeAddStandardWords - selectedIndex - values.completeAddStandardWords - 2 - - - 693 - - - - value: values.delayColoring - - - - - - value: values.delayColoring - value - values.delayColoring - 2 - - - 705 - - - - enabled: values.doSyntaxColoring - - - - - - enabled: values.doSyntaxColoring - enabled - values.doSyntaxColoring - 2 - - - 706 - - - - value: values.showNavigationBar - - - - - - value: values.showNavigationBar - value - values.showNavigationBar - 2 - - - 709 - - - - enabled: values.doSyntaxColoring - - - - - - enabled: values.doSyntaxColoring - enabled - values.doSyntaxColoring - 2 - - - 732 - - - - selectedValue: values.defaultColoringStyleName - - - - - - selectedValue: values.defaultColoringStyleName - selectedValue - values.defaultColoringStyleName - 2 - - - 733 - - - - enabled: values.doSyntaxColoring - - - - - - enabled: values.doSyntaxColoring - enabled - values.doSyntaxColoring - 2 - - - 736 - - - - _prefWindow - - - - 738 - - - - _tabView - - - - 739 - - - - value: values.showPageGuide - - - - - - value: values.showPageGuide - value - values.showPageGuide - 2 - - - 805 - - - - enabled: values.showPageGuide - - - - - - enabled: values.showPageGuide - enabled - values.showPageGuide - 2 - - - 807 - - - - value: values.pageGuideColumn - - - - - - value: values.pageGuideColumn - value - values.pageGuideColumn - 2 - - - 808 - - - - value: values.shouldAntialias - - - - - - value: values.shouldAntialias - value - values.shouldAntialias - 2 - - - 811 - - - - value: values.lineSpacing - - - - - - value: values.lineSpacing - value - values.lineSpacing - 2 - - - 829 - - - - value: values.swapYenAndBackSlashKey - - - - - - value: values.swapYenAndBackSlashKey - value - values.swapYenAndBackSlashKey - 2 - - - 846 - - - - value: values.selectionColor - - - - - - value: values.selectionColor - value - values.selectionColor - - NSValueTransformerName - NSUnarchiveFromData - - 2 - - - 851 - - - - value: values.showWrappedLineMark - - - - - - value: values.showWrappedLineMark - value - values.showWrappedLineMark - 2 - - - 858 - - - - enabled: values.showLineNumbers - - - - - - enabled: values.showLineNumbers - enabled - values.showLineNumbers - 2 - - - 859 - - - - value: values.fixLineHeight - - - - - - value: values.fixLineHeight - value - values.fixLineHeight - 2 - - - 862 - - - - value: values.showStatusThousSeparator - - - - - - value: values.showStatusThousSeparator - value - values.showStatusThousSeparator - 2 - - - 865 - - - - enabled: values.showStatusArea - - - - - - enabled: values.showStatusArea - enabled - values.showStatusArea - 2 - - - 866 - - - - value: values.highlightBraces - - - - - - value: values.highlightBraces - value - values.highlightBraces - 2 - - - 869 - - - - enabled: values.highlightBraces - - - - - - enabled: values.highlightBraces - enabled - values.highlightBraces - 2 - - - 872 - - - - value: values.highlightLtGt - - - - - - value: values.highlightLtGt - value - values.highlightLtGt - 2 - - - 873 - - - - value: values.showOtherInvisibleChars - - - - - - value: values.showOtherInvisibleChars - value - values.showOtherInvisibleChars - 2 - - - 876 - - - - value: values.referToEncodingTag - - - - - - value: values.referToEncodingTag - value - values.referToEncodingTag - 2 - - - 879 - - - - selectedIndex: values.headerOneAlignIndex - - - - - - selectedIndex: values.headerOneAlignIndex - selectedIndex - values.headerOneAlignIndex - 2 - - - 966 - - - - enabled: values.printHeader - - - - - - enabled: values.printHeader - enabled - values.printHeader - 2 - - - 967 - - - - enabled2: values.headerOneStringIndex - - - - - - enabled2: values.headerOneStringIndex - enabled2 - values.headerOneStringIndex - - YES - - YES - NSMultipleValuesPlaceholder - NSNoSelectionPlaceholder - NSNotApplicablePlaceholder - NSNullPlaceholder - - - YES - - - - - - - - 2 - - - 968 - - - - value: values.printHeader - - - - - - value: values.printHeader - value - values.printHeader - 2 - - - 956 - - - - selectedIndex: values.headerOneStringIndex - - - - - - selectedIndex: values.headerOneStringIndex - selectedIndex - values.headerOneStringIndex - 2 - - - 958 - - - - enabled: values.printHeader - - - - - - enabled: values.printHeader - enabled - values.printHeader - 2 - - - 962 - - - - value: values.printHeaderSeparator - - - - - - value: values.printHeaderSeparator - value - values.printHeaderSeparator - 2 - - - 964 - - - - selectedIndex: values.headerTwoStringIndex - - - - - - selectedIndex: values.headerTwoStringIndex - selectedIndex - values.headerTwoStringIndex - 2 - - - 960 - - - - enabled: values.printHeader - - - - - - enabled: values.printHeader - enabled - values.printHeader - 2 - - - 961 - - - - selectedIndex: values.headerTwoAlignIndex - - - - - - selectedIndex: values.headerTwoAlignIndex - selectedIndex - values.headerTwoAlignIndex - 2 - - - 970 - - - - enabled: values.printHeader - - - - - - enabled: values.printHeader - enabled - values.printHeader - 2 - - - 971 - - - - enabled2: values.headerTwoStringIndex - - - - - - enabled2: values.headerTwoStringIndex - enabled2 - values.headerTwoStringIndex - - YES - - YES - NSMultipleValuesPlaceholder - NSNoSelectionPlaceholder - NSNotApplicablePlaceholder - NSNullPlaceholder - - - YES - - - - - - - - 2 - - - 972 - - - - value: values.printFooterSeparator - - - - - - value: values.printFooterSeparator - value - values.printFooterSeparator - 2 - - - 982 - - - - value: values.printFooter - - - - - - value: values.printFooter - value - values.printFooter - 2 - - - 974 - - - - enabled: values.printFooter - - - - - - enabled: values.printFooter - enabled - values.printFooter - 2 - - - 985 - - - - enabled2: values.footerOneStringIndex - - - - - - enabled2: values.footerOneStringIndex - enabled2 - values.footerOneStringIndex - - YES - - YES - NSMultipleValuesPlaceholder - NSNoSelectionPlaceholder - NSNotApplicablePlaceholder - NSNullPlaceholder - - - YES - - - - - - - - 2 - - - 986 - - - - selectedIndex: values.footerOneAlignIndex - - - - - - selectedIndex: values.footerOneAlignIndex - selectedIndex - values.footerOneAlignIndex - 2 - - - 987 - - - - selectedIndex: values.footerTwoAlignIndex - - - - - - selectedIndex: values.footerTwoAlignIndex - selectedIndex - values.footerTwoAlignIndex - 2 - - - 989 - - - - enabled: values.printFooter - - - - - - enabled: values.printFooter - enabled - values.printFooter - 2 - - - 990 - - - - enabled2: values.footerTwoStringIndex - - - - - - enabled2: values.footerTwoStringIndex - enabled2 - values.footerTwoStringIndex - - YES - - YES - NSMultipleValuesPlaceholder - NSNoSelectionPlaceholder - NSNotApplicablePlaceholder - NSNullPlaceholder - - - YES - - - - - - - - 2 - - - 991 - - - - selectedIndex: values.footerTwoStringIndex - - - - - - selectedIndex: values.footerTwoStringIndex - selectedIndex - values.footerTwoStringIndex - 2 - - - 979 - - - - enabled: values.printFooter - - - - - - enabled: values.printFooter - enabled - values.printFooter - 2 - - - 980 - - - - selectedIndex: values.footerOneStringIndex - - - - - - selectedIndex: values.footerOneStringIndex - selectedIndex - values.footerOneStringIndex - 2 - - - 976 - - - - enabled: values.printFooter - - - - - - enabled: values.printFooter - enabled - values.printFooter - 2 - - - 977 - - - - selectedIndex: values.printLineNumIndex - - - - - - selectedIndex: values.printLineNumIndex - selectedIndex - values.printLineNumIndex - 2 - - - 993 - - - - selectedIndex: values.printInvisibleCharIndex - - - - - - selectedIndex: values.printInvisibleCharIndex - selectedIndex - values.printInvisibleCharIndex - 2 - - - 995 - - - - enabled: values.setPrintFont - - - - - - enabled: values.setPrintFont - enabled - values.setPrintFont - 2 - - - 1021 - - - - enabled: values.setPrintFont - - - - - - enabled: values.setPrintFont - enabled - values.setPrintFont - 2 - - - 1022 - - - - selectedIndex: values.setPrintFont - - - - - - selectedIndex: values.setPrintFont - selectedIndex - values.setPrintFont - 2 - - - 1020 - - - - value: values.countLineEndingAsChar - - - - - - value: values.countLineEndingAsChar - value - values.countLineEndingAsChar - 2 - - - 1032 - - - - value: values.syncFindPboard - - - - - - value: values.syncFindPboard - value - values.syncFindPboard - 2 - - - 1194 - - - - selectedIndex: values.printColorIndex - - - - - - selectedIndex: values.printColorIndex - selectedIndex - values.printColorIndex - 2 - - - 1674 - - - - value: values.highlightLineColor - - - - - - value: values.highlightLineColor - value - values.highlightLineColor - - NSValueTransformerName - NSUnarchiveFromData - - 2 - - - 2567 - - - - enabled: values.highlightCurrentLine - - - - - - enabled: values.highlightCurrentLine - enabled - values.highlightCurrentLine - 2 - - - 2569 - - - - value: values.highlightCurrentLine - - - - - - value: values.highlightCurrentLine - value - values.highlightCurrentLine - 2 - - - 2564 - - - - value: values.setHiliteLineColorToIMChars - - - - - - value: values.setHiliteLineColorToIMChars - value - values.setHiliteLineColorToIMChars - 2 - - - 2565 - - - - enabled: values.highlightCurrentLine - - - - - - enabled: values.highlightCurrentLine - enabled - values.highlightCurrentLine - 2 - - - 2571 - - - - value: values.inlineContextualScriptMenu - - - - - - value: values.inlineContextualScriptMenu - value - values.inlineContextualScriptMenu - 2 - - - 2741 - - - - value: values.saveUTF8BOM - - - - - - value: values.saveUTF8BOM - value - values.saveUTF8BOM - 2 - - - 3250 - - - - value: automaticallyChecksForUpdates - - - - - - value: automaticallyChecksForUpdates - value - automaticallyChecksForUpdates - 2 - - - 3432 - - - - selectedTag: updateCheckInterval - - - - - - selectedTag: updateCheckInterval - selectedTag - updateCheckInterval - 2 - - - 3436 - - - - enabled: automaticallyChecksForUpdates - - - - - - enabled: automaticallyChecksForUpdates - enabled - automaticallyChecksForUpdates - 2 - - - 3438 - - - - value: values.appendExtensionAtSaving - - - - - - value: values.appendExtensionAtSaving - value - values.appendExtensionAtSaving - 2 - - - 3442 - - - - - YES - - 0 - - - - - - -2 - - - File's Owner - - - -1 - - - First Responder - - - -3 - - - Application - - - 6 - - - YES - - - - prefWindow - - - 5 - - - YES - - - - - - 10 - - - YES - - - - - - - - - - - - - 9 - - - YES - - - - - - 7 - - - YES - - - - - - 744 - - - YES - - - - - - - - - 280 - - - YES - - - - - - - - - - - - - - - - 418 - - - YES - - - - - - - - - - - - - - - - 812 - - - YES - - - - - - 2154 - - - YES - - - - - - 11 - - - YES - - - - - - 8 - - - YES - - - - - - 745 - - - YES - - - - - - - - - - - - - - - - - - - - - - - 13 - - - YES - - - - - - 17 - - - YES - - - - - - 69 - - - YES - - - - - - 70 - - - YES - - - - - - - - - - - - - 160 - - - YES - - - - - - 198 - - - YES - - - - - - 209 - - - YES - - - - - - 282 - - - YES - - - - - - 283 - - - YES - - - - - - 383 - - - YES - - - - - 388 - - - YES - - - - - - - - 813 - - - YES - - - - - - 824 - - - YES - - - - - - 827 - - - YES - - - - - - 833 - - - YES - - - - - - 840 - - - YES - - - - - - 860 - - - YES - - - - - - 2157 - - - YES - - - - - - 103 - - - YES - - - - - - 104 - - - YES - - - - - - 743 - - - YES - - - - - - - - - - - - - - - - - - - - - - 106 - - - YES - - - - - - 594 - - - YES - - - - - - 596 - - - YES - - - - - - 598 - - - YES - - - - - - 602 - - - YES - - - - - - 644 - - - YES - - - - - - 681 - - - YES - - - - - - 844 - - - YES - - - - - - 867 - - - YES - - - - - - 870 - - - YES - - - - - - 1030 - - - YES - - - - - - 1036 - - - YES - - - - - - 1832 - - - YES - - - - - - 2739 - - - YES - - - - - - 164 - - - YES - - - - - - 165 - - - YES - - - - - - 746 - - - YES - - - - - - - - - - - - 307 - - - YES - - - - - - - - - - - - - - - - - - - 315 - - - YES - - - - - - - - - - - - - - 430 - - - YES - - - - - - 703 - - - YES - - - - - - 727 - - - YES - - - - - - 734 - - - YES - - - - - - 2160 - - - YES - - - - - - 432 - - - YES - - - - - - 433 - - - YES - - - - - - 747 - - - YES - - - - - - - - - - - - - - - - 434 - - - YES - - - - - - 446 - - - YES - - - - - - - - 447 - - - YES - - - - - - 448 - - - YES - - - - - - 456 - - - YES - - - - - - 457 - - - YES - - - - - - 458 - - - YES - - - - - - 466 - - - YES - - - - - - 531 - - - YES - - - - - - - - 532 - - - - - 536 - - - YES - - - - - - 587 - - - YES - - - - - - - - 586 - - - - - 589 - - - YES - - - - - - 2351 - - - YES - - - - - - 608 - - - YES - - - - - - 609 - - - YES - - - - - - 741 - - - YES - - - - - - - - - - - - - - - - - - - 610 - - - YES - - - - - - - - - 617 - - - YES - - - - - - - - - - 626 - - - YES - - - - - - 627 - - - YES - - - - - - 628 - - - YES - - - - - - 707 - - - YES - - - - - - 798 - - - YES - - - - - - 799 - - - YES - - - - - - 800 - - - YES - - - - - - 802 - - - YES - - - - - 836 - - - YES - - - - - - 856 - - - YES - - - - - - 863 - - - YES - - - - - - 2151 - - - YES - - - - - - 711 - - - YES - - - - - - 712 - - - YES - - - - - - 748 - - - YES - - - - - - - - 716 - - - YES - - - - - - - - - 718 - - - YES - - - - - - - - - 2356 - - - YES - - - - - - 880 - - - YES - - - - - - 881 - - - YES - - - - - - 882 - - - YES - - - - - - - - - - - - - - - - 883 - - - YES - - - - - - - - - - - - - 913 - - - YES - - - - - - - - - - - - - 943 - - - YES - - - - - - 944 - - - YES - - - - - - 949 - - - YES - - - - - - 950 - - - YES - - - - - - 1005 - - - YES - - - - - - - - 1023 - - - YES - - - - - - 1350 - - - YES - - - - - - 1356 - - - YES - - - - - - 2359 - - - YES - - - - - - 26 - - - Shared Defaults - - - 36 - - - YES - - - - encodingWindow - - - 37 - - - YES - - - - - - - - - - - - - 38 - - - YES - - - - - - - - 39 - - - YES - - - - - - 40 - - - YES - - - - - - 42 - - - YES - - - - - - 43 - - - YES - - - - - - 54 - - - YES - - - - - - 55 - - - YES - - - - - - 56 - - - YES - - - - - - 62 - - - YES - - - - - - 700 - - - YES - - - - - - 47 - - - CEPrefEncodingDataSource - - - 127 - - - YES - - - - sampleWindow - - - 126 - - - YES - - - - - - - - - - - - - 128 - - - YES - - - - - - 129 - - - YES - - - - - - 130 - - - YES - - - - - - 136 - - - YES - - - - - - 138 - - - YES - - - - - - 140 - - - YES - - - - - - 141 - - - YES - - - - - - 154 - - - YES - - - - - - 451 - - - FileDropController - - - 737 - - - CEPreferencesTabController - - - 3270 - - - - - 3271 - - - - - 3272 - - - YES - - - - - - 3273 - - - - - 3274 - - - - - 3283 - - - - - 3284 - - - - - 3285 - - - - - 3286 - - - YES - - - - - - 3287 - - - - - 3291 - - - - - 3292 - - - - - 3293 - - - - - 3294 - - - - - 3295 - - - - - 3296 - - - - - 3297 - - - - - 3298 - - - - - 3299 - - - - - 3300 - - - - - 3301 - - - - - 3302 - - - - - 3303 - - - - - 3304 - - - - - 3305 - - - - - 3306 - - - - - 3307 - - - - - 3308 - - - - - 3309 - - - - - 3326 - - - - - 3327 - - - - - 3328 - - - YES - - - - - - 3329 - - - - - 3330 - - - - - 3331 - - - - - 3332 - - - - - 3333 - - - - - 3334 - - - - - 3335 - - - - - 3336 - - - YES - - - - - - 3337 - - - - - 3338 - - - - - 3348 - - - - - 3349 - - - - - 3350 - - - - - 3351 - - - - - 3352 - - - - - 3353 - - - - - 3354 - - - YES - - - - - - 3355 - - - - - 3356 - - - - - 3357 - - - - - 3358 - - - - - 3367 - - - - - 3380 - - - - - 3381 - - - YES - - - - - - 3382 - - - - - 3383 - - - YES - - - - - - 3386 - - - - - 3387 - - - YES - - - - - - 3388 - - - - - 3389 - - - - - 3390 - - - - - 3391 - - - - - 3392 - - - - - 3393 - - - - - 3394 - - - - - 3395 - - - - - 3396 - - - - - 3397 - - - - - 3398 - - - - - 3399 - - - - - 3400 - - - YES - - - - - - 3401 - - - YES - - - - - - 3402 - - - - - 3403 - - - - - 3404 - - - - - 3412 - - - - - 3413 - - - - - 839 - - - - - 838 - - - - - 155 - - - - - 156 - - - - - 16 - - - YES - - - - - - - - 15 - - - - - 14 - - - - - 12 - - - - - 728 - - - YES - - - - - - 729 - - - - - 543 - - - YES - - - - - - - - - - - - - - - - - 696 - - - - - 695 - - - - - 694 - - - - - 546 - - - - - 545 - - - - - 544 - - - - - 542 - - - - - 541 - - - - - 540 - - - - - 539 - - - - - 538 - - - - - 537 - - - - - 945 - - - YES - - - - - - - - 948 - - - - - 947 - - - - - 946 - - - - - 951 - - - YES - - - - - - - - 954 - - - - - 953 - - - - - 952 - - - - - 1352 - - - YES - - - - - - - 1354 - - - - - 1353 - - - - - 3414 - - - - - 3415 - - - - - 3416 - - - - - 3417 - - - - - 3418 - - - - - 3419 - - - - - 3420 - - - - - 3421 - - - - - 216 - - - - - 220 - - - YES - - - - - - 3254 - - - - - 221 - - - YES - - - - - - 3255 - - - - - 224 - - - YES - - - - - - 3256 - - - YES - - - - - - 225 - - - YES - - - - - - 222 - - - - - 235 - - - YES - - - - - - 3257 - - - - - 236 - - - YES - - - - - - 3258 - - - YES - - - - - - 233 - - - YES - - - - - - 234 - - - - - 243 - - - YES - - - - - - 3259 - - - YES - - - - - - 241 - - - YES - - - - - - 242 - - - - - 244 - - - YES - - - - - - 3260 - - - - - 247 - - - YES - - - - - - 3261 - - - YES - - - - - - 248 - - - YES - - - - - - 246 - - - - - 249 - - - YES - - - - - - 3262 - - - - - 874 - - - YES - - - - - - 3263 - - - - - 421 - - - - - 416 - - - YES - - - - - - 3264 - - - - - 419 - - - YES - - - - - - 3266 - - - - - 423 - - - - - 422 - - - - - 417 - - - YES - - - - - - 3265 - - - - - 847 - - - YES - - - - - - 3267 - - - - - 848 - - - - - 2553 - - - - - 2554 - - - YES - - - - - - 3268 - - - - - 2562 - - - YES - - - - - - 3269 - - - - - 44 - - - YES - - - - - - 3275 - - - - - 76 - - - YES - - - - - - 3276 - - - YES - - - - - - 72 - - - YES - - - - - - 73 - - - - - 77 - - - YES - - - - - - 3277 - - - - - 79 - - - YES - - - - - - 3278 - - - - - 80 - - - YES - - - - - - 3279 - - - YES - - - - - - 81 - - - YES - - - - - - 78 - - - - - 877 - - - YES - - - - - - 3280 - - - - - 3248 - - - YES - - - - - - 3281 - - - - - 3251 - - - YES - - - - - - 3282 - - - - - 387 - - - YES - - - - - - 3289 - - - - - 385 - - - YES - - - - - - 3288 - - - - - 809 - - - YES - - - - - - 3290 - - - - - 374 - - - YES - - - - - - - - - 3405 - - - - - 378 - - - - - 377 - - - - - 376 - - - - - 686 - - - YES - - - - - - - - - 3406 - - - - - 691 - - - - - 690 - - - - - 689 - - - - - 287 - - - - - 288 - - - YES - - - - - - 3310 - - - - - 289 - - - - - 290 - - - YES - - - - - - 3311 - - - - - 291 - - - YES - - - - - - 3312 - - - - - 292 - - - - - 293 - - - - - 294 - - - YES - - - - - - 3313 - - - - - 295 - - - YES - - - - - - 3314 - - - - - 296 - - - - - 297 - - - - - 298 - - - YES - - - - - - 3315 - - - - - 299 - - - - - 300 - - - YES - - - - - - 3316 - - - - - 166 - - - YES - - - - - - 3317 - - - - - 312 - - - YES - - - - - - 3318 - - - YES - - - - - - 310 - - - YES - - - - - - 345 - - - - - 317 - - - YES - - - - - - 3319 - - - - - 318 - - - YES - - - - - - 3320 - - - - - 346 - - - YES - - - - - - 3321 - - - - - 348 - - - YES - - - - - - 3322 - - - - - 351 - - - YES - - - - - - 3323 - - - - - 356 - - - YES - - - - - - 3324 - - - - - 710 - - - YES - - - - - - 3325 - - - - - 614 - - - YES - - - - - - 3341 - - - YES - - - - - - 615 - - - - - 616 - - - YES - - - - - - 3342 - - - - - 612 - - - YES - - - - - - 3339 - - - - - 613 - - - YES - - - - - - 3340 - - - - - 620 - - - YES - - - - - - 3344 - - - YES - - - - - - 621 - - - - - 624 - - - YES - - - - - - 3347 - - - YES - - - - - - 625 - - - - - 622 - - - YES - - - - - - 3345 - - - - - 619 - - - YES - - - - - - 3343 - - - - - 623 - - - YES - - - - - - 3346 - - - - - 714 - - - YES - - - - - - 3360 - - - - - 715 - - - YES - - - - - - 3361 - - - - - 713 - - - YES - - - - - - 3359 - - - - - 835 - - - YES - - - - - - 3362 - - - - - 720 - - - YES - - - - - - 3363 - - - - - 722 - - - YES - - - - - - 3365 - - - - - 721 - - - YES - - - - - - 3364 - - - - - 726 - - - YES - - - - - - 3366 - - - - - 891 - - - YES - - - - - - 3370 - - - YES - - - - - - 892 - - - YES - - - - - - - - - - - 893 - - - - - 894 - - - - - 895 - - - - - 896 - - - - - 897 - - - - - 898 - - - - - 885 - - - YES - - - - - - - - - 3407 - - - - - 888 - - - - - 887 - - - - - 886 - - - - - 899 - - - YES - - - - - - 3371 - - - - - 908 - - - YES - - - - - - - - - 3408 - - - - - 911 - - - - - 910 - - - - - 909 - - - - - 890 - - - YES - - - - - - 3369 - - - - - 912 - - - YES - - - - - - 3373 - - - - - 889 - - - YES - - - - - - 3368 - - - - - 900 - - - YES - - - - - - 3372 - - - YES - - - - - - 901 - - - YES - - - - - - - - - - - 902 - - - - - 903 - - - - - 904 - - - - - 905 - - - - - 906 - - - - - 907 - - - - - 917 - - - YES - - - - - - - - - 3409 - - - - - 920 - - - - - 919 - - - - - 918 - - - - - 915 - - - YES - - - - - - 3374 - - - - - 921 - - - YES - - - - - - - - - 3410 - - - - - 924 - - - - - 923 - - - - - 922 - - - - - 942 - - - YES - - - - - - 3379 - - - - - 933 - - - YES - - - - - - 3377 - - - - - 916 - - - YES - - - - - - 3375 - - - - - 934 - - - YES - - - - - - 3378 - - - YES - - - - - - 935 - - - YES - - - - - - - - - - - 936 - - - - - 937 - - - - - 938 - - - - - 939 - - - - - 940 - - - - - 941 - - - - - 925 - - - YES - - - - - - 3376 - - - YES - - - - - - 926 - - - YES - - - - - - - - - - - 927 - - - - - 928 - - - - - 929 - - - - - 930 - - - - - 931 - - - - - 932 - - - - - 1008 - - - YES - - - - - - 3385 - - - - - 1011 - - - YES - - - - - - - - 3411 - - - - - 1013 - - - - - 1012 - - - - - 1007 - - - YES - - - - - - 3384 - - - - - 3422 - - - YES - - - - - - 3423 - - - - - 3424 - - - YES - - - - - - 3425 - - - YES - - - - - - 3426 - - - YES - - - - - - - - - 3427 - - - - - 3428 - - - - - 3429 - - - - - 3430 - - - - - 3433 - - - - - 384 - - - - - 803 - - - - - 3439 - - - YES - - - - - - 3440 - - - - - - - YES - - YES - -1.IBPluginDependency - -2.IBPluginDependency - -3.IBPluginDependency - 10.IBPluginDependency - 1005.IBPluginDependency - 1007.IBPluginDependency - 1008.IBPluginDependency - 1011.IBPluginDependency - 1012.IBPluginDependency - 1013.IBPluginDependency - 1023.IBPluginDependency - 103.IBPluginDependency - 1030.IBPluginDependency - 1036.IBPluginDependency - 104.IBPluginDependency - 106.IBPluginDependency - 11.IBPluginDependency - 12.IBPluginDependency - 126.IBPluginDependency - 127.IBPluginDependency - 128.IBPluginDependency - 129.IBPluginDependency - 13.IBPluginDependency - 130.IBPluginDependency - 1350.IBPluginDependency - 1352.IBPluginDependency - 1353.IBPluginDependency - 1354.IBPluginDependency - 1356.IBPluginDependency - 136.IBPluginDependency - 138.IBPluginDependency - 14.IBPluginDependency - 140.IBPluginDependency - 141.IBPluginDependency - 15.IBPluginDependency - 154.IBPluginDependency - 155.IBPluginDependency - 156.IBPluginDependency - 16.IBPluginDependency - 160.IBPluginDependency - 164.IBPluginDependency - 165.IBPluginDependency - 166.IBPluginDependency - 17.IBPluginDependency - 1832.IBPluginDependency - 198.IBPluginDependency - 209.IBPluginDependency - 2151.IBPluginDependency - 2154.IBPluginDependency - 2157.IBPluginDependency - 216.IBPluginDependency - 2160.IBPluginDependency - 220.IBPluginDependency - 221.IBPluginDependency - 222.IBPluginDependency - 224.IBPluginDependency - 225.IBPluginDependency - 233.IBPluginDependency - 234.IBPluginDependency - 235.IBPluginDependency - 2351.IBPluginDependency - 2356.IBPluginDependency - 2359.IBPluginDependency - 236.IBPluginDependency - 241.IBPluginDependency - 242.IBPluginDependency - 243.IBPluginDependency - 244.IBPluginDependency - 246.IBPluginDependency - 247.IBPluginDependency - 248.IBPluginDependency - 249.IBPluginDependency - 2553.IBPluginDependency - 2554.IBPluginDependency - 2562.IBPluginDependency - 26.IBPluginDependency - 2739.IBPluginDependency - 280.IBPluginDependency - 282.IBPluginDependency - 283.IBPluginDependency - 287.IBPluginDependency - 288.IBPluginDependency - 289.IBPluginDependency - 290.IBPluginDependency - 291.IBPluginDependency - 292.IBPluginDependency - 293.IBPluginDependency - 294.IBPluginDependency - 295.IBPluginDependency - 296.IBPluginDependency - 297.IBPluginDependency - 298.IBPluginDependency - 299.IBPluginDependency - 300.IBPluginDependency - 307.IBPluginDependency - 310.IBPluginDependency - 312.IBPluginDependency - 315.IBPluginDependency - 317.IBPluginDependency - 318.IBPluginDependency - 3248.IBPluginDependency - 3251.IBPluginDependency - 3254.IBPluginDependency - 3255.IBPluginDependency - 3256.IBPluginDependency - 3257.IBPluginDependency - 3258.IBPluginDependency - 3259.IBPluginDependency - 3260.IBPluginDependency - 3261.IBPluginDependency - 3262.IBPluginDependency - 3263.IBPluginDependency - 3264.IBPluginDependency - 3265.IBPluginDependency - 3266.IBPluginDependency - 3267.IBPluginDependency - 3268.IBPluginDependency - 3269.IBPluginDependency - 3270.IBPluginDependency - 3271.IBPluginDependency - 3272.IBPluginDependency - 3273.IBPluginDependency - 3274.IBPluginDependency - 3275.IBPluginDependency - 3276.IBPluginDependency - 3277.IBPluginDependency - 3278.IBPluginDependency - 3279.IBPluginDependency - 3280.IBPluginDependency - 3281.IBPluginDependency - 3282.IBPluginDependency - 3283.IBPluginDependency - 3284.IBPluginDependency - 3285.IBPluginDependency - 3286.IBPluginDependency - 3287.IBPluginDependency - 3288.IBPluginDependency - 3289.IBPluginDependency - 3290.IBPluginDependency - 3291.IBPluginDependency - 3292.IBPluginDependency - 3293.IBPluginDependency - 3294.IBPluginDependency - 3295.IBPluginDependency - 3296.IBPluginDependency - 3297.IBPluginDependency - 3298.IBPluginDependency - 3299.IBPluginDependency - 3300.IBPluginDependency - 3301.IBPluginDependency - 3302.IBPluginDependency - 3303.IBPluginDependency - 3304.IBPluginDependency - 3305.IBPluginDependency - 3306.IBPluginDependency - 3307.IBPluginDependency - 3308.IBPluginDependency - 3309.IBPluginDependency - 3310.IBPluginDependency - 3311.IBPluginDependency - 3312.IBPluginDependency - 3313.IBPluginDependency - 3314.IBPluginDependency - 3315.IBPluginDependency - 3316.IBPluginDependency - 3317.IBPluginDependency - 3318.IBPluginDependency - 3319.IBPluginDependency - 3320.IBPluginDependency - 3321.IBPluginDependency - 3322.IBPluginDependency - 3323.IBPluginDependency - 3324.IBPluginDependency - 3325.IBPluginDependency - 3326.IBPluginDependency - 3327.IBPluginDependency - 3328.IBPluginDependency - 3329.IBPluginDependency - 3330.IBPluginDependency - 3331.IBPluginDependency - 3332.IBPluginDependency - 3333.IBPluginDependency - 3334.IBPluginDependency - 3335.IBPluginDependency - 3336.IBPluginDependency - 3337.IBPluginDependency - 3338.IBPluginDependency - 3339.IBPluginDependency - 3340.IBPluginDependency - 3341.IBPluginDependency - 3342.IBPluginDependency - 3343.IBPluginDependency - 3344.IBPluginDependency - 3345.IBPluginDependency - 3346.IBPluginDependency - 3347.IBPluginDependency - 3348.IBPluginDependency - 3349.IBPluginDependency - 3350.IBPluginDependency - 3351.IBPluginDependency - 3352.IBPluginDependency - 3353.IBPluginDependency - 3354.IBPluginDependency - 3355.IBPluginDependency - 3356.IBPluginDependency - 3357.IBPluginDependency - 3358.IBPluginDependency - 3359.IBPluginDependency - 3360.IBPluginDependency - 3361.IBPluginDependency - 3362.IBPluginDependency - 3363.IBPluginDependency - 3364.IBPluginDependency - 3365.IBPluginDependency - 3366.IBPluginDependency - 3367.IBPluginDependency - 3368.IBPluginDependency - 3369.IBPluginDependency - 3370.IBPluginDependency - 3371.IBPluginDependency - 3372.IBPluginDependency - 3373.IBPluginDependency - 3374.IBPluginDependency - 3375.IBPluginDependency - 3376.IBPluginDependency - 3377.IBPluginDependency - 3378.IBPluginDependency - 3379.IBPluginDependency - 3380.IBPluginDependency - 3381.IBPluginDependency - 3382.IBPluginDependency - 3383.IBPluginDependency - 3384.IBPluginDependency - 3385.IBPluginDependency - 3386.IBPluginDependency - 3387.IBPluginDependency - 3388.IBPluginDependency - 3389.IBPluginDependency - 3390.IBPluginDependency - 3391.IBPluginDependency - 3392.IBPluginDependency - 3393.IBPluginDependency - 3394.IBPluginDependency - 3395.IBPluginDependency - 3396.IBPluginDependency - 3397.IBPluginDependency - 3398.IBPluginDependency - 3399.IBPluginDependency - 3400.IBPluginDependency - 3401.IBPluginDependency - 3402.IBPluginDependency - 3403.IBPluginDependency - 3404.IBPluginDependency - 3405.IBPluginDependency - 3406.IBPluginDependency - 3407.IBPluginDependency - 3408.IBPluginDependency - 3409.IBPluginDependency - 3410.IBPluginDependency - 3411.IBPluginDependency - 3412.IBPluginDependency - 3412.IBShouldRemoveOnLegacySave - 3413.IBPluginDependency - 3413.IBShouldRemoveOnLegacySave - 3414.IBPluginDependency - 3414.IBShouldRemoveOnLegacySave - 3415.IBPluginDependency - 3415.IBShouldRemoveOnLegacySave - 3416.IBPluginDependency - 3416.IBShouldRemoveOnLegacySave - 3417.IBPluginDependency - 3417.IBShouldRemoveOnLegacySave - 3418.IBPluginDependency - 3418.IBShouldRemoveOnLegacySave - 3419.IBPluginDependency - 3419.IBShouldRemoveOnLegacySave - 3420.IBPluginDependency - 3420.IBShouldRemoveOnLegacySave - 3421.IBPluginDependency - 3421.IBShouldRemoveOnLegacySave - 3422.IBPluginDependency - 3423.IBPluginDependency - 3424.IBPluginDependency - 3425.IBPluginDependency - 3426.IBPluginDependency - 3427.IBPluginDependency - 3428.IBPluginDependency - 3429.IBPluginDependency - 3430.IBPluginDependency - 3433.IBPluginDependency - 3439.IBPluginDependency - 3440.IBPluginDependency - 345.IBPluginDependency - 346.IBPluginDependency - 348.IBPluginDependency - 351.IBPluginDependency - 356.IBPluginDependency - 36.IBPluginDependency - 37.IBPluginDependency - 374.IBPluginDependency - 376.IBPluginDependency - 377.IBPluginDependency - 378.IBPluginDependency - 38.IBPluginDependency - 383.IBPluginDependency - 384.IBPluginDependency - 385.IBPluginDependency - 387.IBPluginDependency - 388.IBPluginDependency - 39.IBPluginDependency - 40.IBPluginDependency - 416.IBPluginDependency - 417.IBPluginDependency - 418.IBPluginDependency - 419.IBPluginDependency - 42.IBPluginDependency - 421.IBPluginDependency - 422.IBPluginDependency - 423.IBPluginDependency - 43.IBPluginDependency - 430.IBPluginDependency - 432.IBPluginDependency - 433.IBPluginDependency - 434.IBPluginDependency - 44.IBPluginDependency - 446.IBPluginDependency - 447.IBPluginDependency - 448.IBPluginDependency - 451.IBPluginDependency - 456.IBPluginDependency - 457.IBPluginDependency - 458.IBPluginDependency - 466.IBPluginDependency - 47.IBPluginDependency - 5.IBPluginDependency - 531.IBPluginDependency - 532.IBPluginDependency - 536.IBPluginDependency - 537.IBAttributePlaceholdersKey - 537.IBPluginDependency - 538.IBAttributePlaceholdersKey - 538.IBPluginDependency - 539.IBAttributePlaceholdersKey - 539.IBPluginDependency - 54.IBPluginDependency - 540.IBAttributePlaceholdersKey - 540.IBPluginDependency - 541.IBPluginDependency - 542.IBAttributePlaceholdersKey - 542.IBPluginDependency - 543.IBPluginDependency - 544.IBAttributePlaceholdersKey - 544.IBPluginDependency - 545.IBPluginDependency - 546.IBAttributePlaceholdersKey - 546.IBPluginDependency - 55.IBPluginDependency - 56.IBPluginDependency - 586.IBPluginDependency - 587.IBPluginDependency - 589.IBPluginDependency - 594.IBPluginDependency - 596.IBPluginDependency - 598.IBPluginDependency - 6.IBPluginDependency - 6.IBWindowTemplateEditedContentRect - 602.IBPluginDependency - 608.IBPluginDependency - 609.IBPluginDependency - 610.IBPluginDependency - 612.IBPluginDependency - 613.IBPluginDependency - 614.IBPluginDependency - 615.IBPluginDependency - 616.IBPluginDependency - 617.IBPluginDependency - 619.IBPluginDependency - 62.IBPluginDependency - 620.IBPluginDependency - 621.IBPluginDependency - 622.IBPluginDependency - 623.IBPluginDependency - 624.IBPluginDependency - 625.IBPluginDependency - 626.IBPluginDependency - 627.IBPluginDependency - 628.IBPluginDependency - 644.IBPluginDependency - 681.IBPluginDependency - 686.IBPluginDependency - 689.IBPluginDependency - 69.IBPluginDependency - 690.IBPluginDependency - 691.IBPluginDependency - 694.IBAttributePlaceholdersKey - 694.IBPluginDependency - 695.IBAttributePlaceholdersKey - 695.IBPluginDependency - 696.IBAttributePlaceholdersKey - 696.IBPluginDependency - 7.IBPluginDependency - 70.IBPluginDependency - 700.IBPluginDependency - 703.IBPluginDependency - 707.IBPluginDependency - 710.IBPluginDependency - 711.IBPluginDependency - 712.IBPluginDependency - 713.IBPluginDependency - 714.IBPluginDependency - 715.IBPluginDependency - 716.IBPluginDependency - 718.IBPluginDependency - 72.IBPluginDependency - 720.IBPluginDependency - 721.IBPluginDependency - 722.IBPluginDependency - 726.IBPluginDependency - 727.IBPluginDependency - 728.IBPluginDependency - 729.IBPluginDependency - 73.IBPluginDependency - 734.IBPluginDependency - 737.IBPluginDependency - 741.IBPluginDependency - 743.IBPluginDependency - 744.IBPluginDependency - 745.IBPluginDependency - 746.IBPluginDependency - 747.IBPluginDependency - 748.IBPluginDependency - 76.IBPluginDependency - 77.IBPluginDependency - 78.IBPluginDependency - 79.IBPluginDependency - 798.IBPluginDependency - 799.IBPluginDependency - 8.IBPluginDependency - 80.IBPluginDependency - 800.IBPluginDependency - 802.IBPluginDependency - 803.IBPluginDependency - 809.IBPluginDependency - 81.IBPluginDependency - 812.IBPluginDependency - 813.IBPluginDependency - 824.IBPluginDependency - 827.IBPluginDependency - 833.IBPluginDependency - 835.IBPluginDependency - 836.IBPluginDependency - 838.IBPluginDependency - 839.IBPluginDependency - 840.IBPluginDependency - 844.IBPluginDependency - 847.IBPluginDependency - 848.IBPluginDependency - 856.IBPluginDependency - 860.IBPluginDependency - 863.IBPluginDependency - 867.IBPluginDependency - 870.IBPluginDependency - 874.IBPluginDependency - 877.IBPluginDependency - 880.IBPluginDependency - 881.IBPluginDependency - 882.IBPluginDependency - 883.IBPluginDependency - 885.IBPluginDependency - 886.IBPluginDependency - 887.IBPluginDependency - 888.IBPluginDependency - 889.IBPluginDependency - 890.IBPluginDependency - 891.IBPluginDependency - 892.IBPluginDependency - 893.IBPluginDependency - 894.IBPluginDependency - 895.IBPluginDependency - 896.IBPluginDependency - 897.IBPluginDependency - 898.IBPluginDependency - 899.IBPluginDependency - 9.IBPluginDependency - 900.IBPluginDependency - 901.IBPluginDependency - 902.IBPluginDependency - 903.IBPluginDependency - 904.IBPluginDependency - 905.IBPluginDependency - 906.IBPluginDependency - 907.IBPluginDependency - 908.IBPluginDependency - 909.IBPluginDependency - 910.IBPluginDependency - 911.IBPluginDependency - 912.IBPluginDependency - 913.IBPluginDependency - 915.IBPluginDependency - 916.IBPluginDependency - 917.IBPluginDependency - 918.IBPluginDependency - 919.IBPluginDependency - 920.IBPluginDependency - 921.IBPluginDependency - 922.IBPluginDependency - 923.IBPluginDependency - 924.IBPluginDependency - 925.IBPluginDependency - 926.IBPluginDependency - 927.IBPluginDependency - 928.IBPluginDependency - 929.IBPluginDependency - 930.IBPluginDependency - 931.IBPluginDependency - 932.IBPluginDependency - 933.IBPluginDependency - 934.IBPluginDependency - 935.IBPluginDependency - 936.IBPluginDependency - 937.IBPluginDependency - 938.IBPluginDependency - 939.IBPluginDependency - 940.IBPluginDependency - 941.IBPluginDependency - 942.IBPluginDependency - 943.IBPluginDependency - 944.IBPluginDependency - 945.IBPluginDependency - 946.IBPluginDependency - 947.IBPluginDependency - 948.IBPluginDependency - 949.IBPluginDependency - 950.IBPluginDependency - 951.IBPluginDependency - 952.IBPluginDependency - 953.IBPluginDependency - 954.IBPluginDependency - - - YES - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - (if the dropped file is Image) image height. - - - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - The dropped file name without extension. - - - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - The parent directory name of dropped file. - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - (if the dropped file is Image) image width. - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - The dropped file name include extension (if exists). - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - The dropped file absolute path. - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - The relative path between dropped file and the document. - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{367, 38}, {694, 686}} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - The dropped file's extension. - - - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - The dropped file's extension (converted to lowercase). - - - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - The dropped file's extension (converted to uppercase). - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - - - YES - - - - - - YES - - - - - 3442 - - - - YES - - CEDocumentController - NSDocumentController - - YES - - YES - closeLineSpacingPanel: - gotoCharacterOrLine: - openGotoPanel: - openHiddenDocument: - openLineSpacingPanel: - openTransparencyPanel: - setAllWindowAlpha: - setCustomLineSpacing: - setSelectAccessoryEncodingMenuToDefault: - setSmartInsertAndDeleteToAllTextView: - - - YES - id - id - id - id - id - id - id - id - id - id - - - - YES - - YES - closeLineSpacingPanel: - gotoCharacterOrLine: - openGotoPanel: - openHiddenDocument: - openLineSpacingPanel: - openTransparencyPanel: - setAllWindowAlpha: - setCustomLineSpacing: - setSelectAccessoryEncodingMenuToDefault: - setSmartInsertAndDeleteToAllTextView: - - - YES - - closeLineSpacingPanel: - id - - - gotoCharacterOrLine: - id - - - openGotoPanel: - id - - - openHiddenDocument: - id - - - openLineSpacingPanel: - id - - - openTransparencyPanel: - id - - - setAllWindowAlpha: - id - - - setCustomLineSpacing: - id - - - setSelectAccessoryEncodingMenuToDefault: - id - - - setSmartInsertAndDeleteToAllTextView: - id - - - - - YES - - YES - _accessoryEncodingMenu - _appController - _gotoCharLineMatrix - _gotoIndexField - _gotoSelectButton - _lineSpacingField - _openPanelAccessoryView - _transparencyController - _windowAlphaField - _windowAlphaSetButton - _windowAlphaSlider - _windowAlphaTextViewOnlyButton - - - YES - id - id - id - id - id - id - id - id - id - id - id - id - - - - YES - - YES - _accessoryEncodingMenu - _appController - _gotoCharLineMatrix - _gotoIndexField - _gotoSelectButton - _lineSpacingField - _openPanelAccessoryView - _transparencyController - _windowAlphaField - _windowAlphaSetButton - _windowAlphaSlider - _windowAlphaTextViewOnlyButton - - - YES - - _accessoryEncodingMenu - id - - - _appController - id - - - _gotoCharLineMatrix - id - - - _gotoIndexField - id - - - _gotoSelectButton - id - - - _lineSpacingField - id - - - _openPanelAccessoryView - id - - - _transparencyController - id - - - _windowAlphaField - id - - - _windowAlphaSetButton - id - - - _windowAlphaSlider - id - - - _windowAlphaTextViewOnlyButton - id - - - - - IBProjectSource - ./Classes/CEDocumentController.h - - - - CEPrefEncodingDataSource - NSObject - - YES - - YES - addSeparator: - deleteSeparator: - revertDefaultEncodings: - - - YES - id - id - id - - - - YES - - YES - addSeparator: - deleteSeparator: - revertDefaultEncodings: - - - YES - - addSeparator: - id - - - deleteSeparator: - id - - - revertDefaultEncodings: - id - - - - - YES - - YES - _delSeparatorButton - _revertButton - _tableView - - - YES - id - id - id - - - - YES - - YES - _delSeparatorButton - _revertButton - _tableView - - - YES - - _delSeparatorButton - id - - - _revertButton - id - - - _tableView - id - - - - - IBProjectSource - ./Classes/CEPrefEncodingDataSource.h - - - - CEPreferences - NSObject - - YES - - YES - addNewFileDropSetting: - changedSyntaxStylesPopup: - closeEncodingEditSheet: - deleteFileDropSetting: - deleteSyntaxStyle: - exportSyntaxStyle: - importSyntaxStyle: - insertFormatStringInFileDrop: - openEncodingEditSheet: - openKeyBindingEditSheet: - openPrefHelp: - openSizeSampleWindow: - openSyntaxEditSheet: - openSyntaxExtensionErrorSheet: - setWindowContentSizeToDefault: - setupCustomLineSpacing: - showFonts: - - - YES - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - - - - YES - - YES - addNewFileDropSetting: - changedSyntaxStylesPopup: - closeEncodingEditSheet: - deleteFileDropSetting: - deleteSyntaxStyle: - exportSyntaxStyle: - importSyntaxStyle: - insertFormatStringInFileDrop: - openEncodingEditSheet: - openKeyBindingEditSheet: - openPrefHelp: - openSizeSampleWindow: - openSyntaxEditSheet: - openSyntaxExtensionErrorSheet: - setWindowContentSizeToDefault: - setupCustomLineSpacing: - showFonts: - - - YES - - addNewFileDropSetting: - id - - - changedSyntaxStylesPopup: - id - - - closeEncodingEditSheet: - id - - - deleteFileDropSetting: - id - - - deleteSyntaxStyle: - id - - - exportSyntaxStyle: - id - - - importSyntaxStyle: - id - - - insertFormatStringInFileDrop: - id - - - openEncodingEditSheet: - id - - - openKeyBindingEditSheet: - id - - - openPrefHelp: - id - - - openSizeSampleWindow: - id - - - openSyntaxEditSheet: - id - - - openSyntaxExtensionErrorSheet: - id - - - setWindowContentSizeToDefault: - id - - - setupCustomLineSpacing: - id - - - showFonts: - id - - - - - YES - - YES - _encodingDataSource - _encodingMenuInNew - _encodingMenuInOpen - _encodingWindow - _fileDropController - _fileDropGlossaryTextView - _fileDropTableView - _fileDropTextView - _invisibleFullwidthSpacePopup - _invisibleNewLinePopup - _invisibleSpacePopup - _invisibleTabPopup - _prefFontFamilyNameSize - _prefTabView - _prefWindow - _printFontFamilyNameSize - _sizeSampleWindow - _syntaxStyleCopyButton - _syntaxStyleDeleteButton - _syntaxStyleEditButton - _syntaxStyleExportButton - _syntaxStyleXtsnErrButton - _syntaxStylesDefaultPopup - _syntaxStylesPopup - - - YES - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - - - - YES - - YES - _encodingDataSource - _encodingMenuInNew - _encodingMenuInOpen - _encodingWindow - _fileDropController - _fileDropGlossaryTextView - _fileDropTableView - _fileDropTextView - _invisibleFullwidthSpacePopup - _invisibleNewLinePopup - _invisibleSpacePopup - _invisibleTabPopup - _prefFontFamilyNameSize - _prefTabView - _prefWindow - _printFontFamilyNameSize - _sizeSampleWindow - _syntaxStyleCopyButton - _syntaxStyleDeleteButton - _syntaxStyleEditButton - _syntaxStyleExportButton - _syntaxStyleXtsnErrButton - _syntaxStylesDefaultPopup - _syntaxStylesPopup - - - YES - - _encodingDataSource - id - - - _encodingMenuInNew - id - - - _encodingMenuInOpen - id - - - _encodingWindow - id - - - _fileDropController - id - - - _fileDropGlossaryTextView - id - - - _fileDropTableView - id - - - _fileDropTextView - id - - - _invisibleFullwidthSpacePopup - id - - - _invisibleNewLinePopup - id - - - _invisibleSpacePopup - id - - - _invisibleTabPopup - id - - - _prefFontFamilyNameSize - id - - - _prefTabView - id - - - _prefWindow - id - - - _printFontFamilyNameSize - id - - - _sizeSampleWindow - id - - - _syntaxStyleCopyButton - id - - - _syntaxStyleDeleteButton - id - - - _syntaxStyleEditButton - id - - - _syntaxStyleExportButton - id - - - _syntaxStyleXtsnErrButton - id - - - _syntaxStylesDefaultPopup - id - - - _syntaxStylesPopup - id - - - - - IBProjectSource - ./Classes/CEPreferences.h - - - - CEPreferencesTabController - NSObject - - YES - - YES - _prefWindow - _tabView - - - YES - id - id - - - - YES - - YES - _prefWindow - _tabView - - - YES - - _prefWindow - id - - - _tabView - id - - - - - IBProjectSource - ./Classes/CEPreferencesTabController.h - - - - CETabItemView - NSView - - IBProjectSource - ./Classes/CETabItemView.h - - - - FirstResponder - - YES - - YES - : - setSelectAccessoryEncodingMenuToDefault: - setSmartInsertAndDeleteToAllTextView: - - - YES - id - id - id - - - - YES - - YES - : - setSelectAccessoryEncodingMenuToDefault: - setSmartInsertAndDeleteToAllTextView: - - - YES - - : - id - - - setSelectAccessoryEncodingMenuToDefault: - id - - - setSmartInsertAndDeleteToAllTextView: - id - - - - - IBUserSource - - - - - SUUpdater - NSObject - - checkForUpdates: - id - - - checkForUpdates: - - checkForUpdates: - id - - - - delegate - id - - - delegate - - delegate - id - - - - IBProjectSource - ./Classes/SUUpdater.h - - - - - 0 - IBCocoaFramework - - com.apple.InterfaceBuilder.CocoaPlugin.macosx - - - - com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 - - - YES - 3 - - YES - - YES - NSMenuCheckmark - NSMenuMixedState - NSSwitch - addButtonImg - centerButtonImg - leftButtonImg - removeButtonImg - rightButtonImg - transparencyGuide - - - YES - {9, 8} - {7, 2} - {15, 15} - {16, 16} - {16, 16} - {16, 16} - {16, 16} - {16, 16} - {135, 13} - - - - diff --git a/English.lproj/Preferences.nib/keyedobjects.nib b/English.lproj/Preferences.nib/keyedobjects.nib deleted file mode 100644 index a59c1ec727..0000000000 Binary files a/English.lproj/Preferences.nib/keyedobjects.nib and /dev/null differ diff --git a/English.lproj/ScriptManager.nib/classes.nib b/English.lproj/ScriptManager.nib/classes.nib deleted file mode 100644 index b468640eb4..0000000000 --- a/English.lproj/ScriptManager.nib/classes.nib +++ /dev/null @@ -1,19 +0,0 @@ -{ - IBClasses = ( - { - ACTIONS = { - buildScriptMenu = id; - cleanScriptError = id; - launchScript = id; - openScriptErrorWindow = id; - openScriptFolder = id; - }; - CLASS = CEScriptManager; - LANGUAGE = ObjC; - OUTLETS = {"_errorTextView" = id; }; - SUPERCLASS = NSObject; - }, - {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; } - ); - IBVersion = 1; -} \ No newline at end of file diff --git a/English.lproj/ScriptManager.nib/info.nib b/English.lproj/ScriptManager.nib/info.nib deleted file mode 100644 index f72eb7fb67..0000000000 --- a/English.lproj/ScriptManager.nib/info.nib +++ /dev/null @@ -1,16 +0,0 @@ - - - - - IBDocumentLocation - 69 10 356 240 0 0 1280 1002 - IBFramework Version - 439.0 - IBOpenObjects - - 6 - - IBSystem Version - 8C46 - - diff --git a/English.lproj/ScriptManager.nib/keyedobjects.nib b/English.lproj/ScriptManager.nib/keyedobjects.nib deleted file mode 100644 index 12d78a4594..0000000000 Binary files a/English.lproj/ScriptManager.nib/keyedobjects.nib and /dev/null differ diff --git a/English.lproj/SyntaxManager.nib/classes.nib b/English.lproj/SyntaxManager.nib/classes.nib deleted file mode 100644 index 0aa76ef7fc..0000000000 --- a/English.lproj/SyntaxManager.nib/classes.nib +++ /dev/null @@ -1,55 +0,0 @@ - - - - - IBClasses - - - ACTIONS - - closeSyntaxEditSheet - id - closeSyntaxExtensionErrorSheet - id - setToFactoryDefaults - id - startSyntaxElementCheck - id - - CLASS - CESyntaxManager - LANGUAGE - ObjC - OUTLETS - - _editWindow - id - _elementPopUpButton - id - _extensionErrorTextView - id - _factoryDefaultsButton - id - _messageField - id - _styleController - id - _styleNameField - id - _syntaxElementCheckTextView - id - - SUPERCLASS - NSObject - - - CLASS - NSObject - LANGUAGE - ObjC - - - IBVersion - 1 - - diff --git a/English.lproj/SyntaxManager.nib/info.nib b/English.lproj/SyntaxManager.nib/info.nib deleted file mode 100644 index 33a60200f9..0000000000 --- a/English.lproj/SyntaxManager.nib/info.nib +++ /dev/null @@ -1,16 +0,0 @@ - - - - - IBFramework Version - 629 - IBOldestOS - 5 - IBOpenObjects - - IBSystem Version - 9D34 - targetFramework - IBCocoaFramework - - diff --git a/English.lproj/SyntaxManager.nib/keyedobjects.nib b/English.lproj/SyntaxManager.nib/keyedobjects.nib deleted file mode 100644 index 22d06fd50f..0000000000 Binary files a/English.lproj/SyntaxManager.nib/keyedobjects.nib and /dev/null differ diff --git a/Images.xcassets/appIcon.appiconset/Contents.json b/Images.xcassets/appIcon.appiconset/Contents.json new file mode 100644 index 0000000000..7cd4f8e120 --- /dev/null +++ b/Images.xcassets/appIcon.appiconset/Contents.json @@ -0,0 +1,68 @@ +{ + "images" : [ + { + "size" : "16x16", + "idiom" : "mac", + "filename" : "icon_16x16.png", + "scale" : "1x" + }, + { + "size" : "16x16", + "idiom" : "mac", + "filename" : "icon_16x16@2x.png", + "scale" : "2x" + }, + { + "size" : "32x32", + "idiom" : "mac", + "filename" : "icon_32x32.png", + "scale" : "1x" + }, + { + "size" : "32x32", + "idiom" : "mac", + "filename" : "icon_32x32@2x.png", + "scale" : "2x" + }, + { + "size" : "128x128", + "idiom" : "mac", + "filename" : "icon_128x128.png", + "scale" : "1x" + }, + { + "size" : "128x128", + "idiom" : "mac", + "filename" : "icon_128x128@2x.png", + "scale" : "2x" + }, + { + "size" : "256x256", + "idiom" : "mac", + "filename" : "icon_256x256.png", + "scale" : "1x" + }, + { + "size" : "256x256", + "idiom" : "mac", + "filename" : "icon_256x256@2x.png", + "scale" : "2x" + }, + { + "size" : "512x512", + "idiom" : "mac", + "filename" : "icon_512x512.png", + "scale" : "1x" + }, + { + "size" : "512x512", + "idiom" : "mac", + "filename" : "icon_512x512@2x.png", + "scale" : "2x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Images.xcassets/appIcon.appiconset/icon_128x128.png b/Images.xcassets/appIcon.appiconset/icon_128x128.png new file mode 100644 index 0000000000..caf3ab22ad Binary files /dev/null and b/Images.xcassets/appIcon.appiconset/icon_128x128.png differ diff --git a/Images.xcassets/appIcon.appiconset/icon_128x128@2x.png b/Images.xcassets/appIcon.appiconset/icon_128x128@2x.png new file mode 100644 index 0000000000..4b0d372722 Binary files /dev/null and b/Images.xcassets/appIcon.appiconset/icon_128x128@2x.png differ diff --git a/Images.xcassets/appIcon.appiconset/icon_16x16.png b/Images.xcassets/appIcon.appiconset/icon_16x16.png new file mode 100644 index 0000000000..b7128200a4 Binary files /dev/null and b/Images.xcassets/appIcon.appiconset/icon_16x16.png differ diff --git a/Images.xcassets/appIcon.appiconset/icon_16x16@2x.png b/Images.xcassets/appIcon.appiconset/icon_16x16@2x.png new file mode 100644 index 0000000000..d29158eb1e Binary files /dev/null and b/Images.xcassets/appIcon.appiconset/icon_16x16@2x.png differ diff --git a/Images.xcassets/appIcon.appiconset/icon_256x256.png b/Images.xcassets/appIcon.appiconset/icon_256x256.png new file mode 100644 index 0000000000..4b0d372722 Binary files /dev/null and b/Images.xcassets/appIcon.appiconset/icon_256x256.png differ diff --git a/Images.xcassets/appIcon.appiconset/icon_256x256@2x.png b/Images.xcassets/appIcon.appiconset/icon_256x256@2x.png new file mode 100644 index 0000000000..d9a9ccecfc Binary files /dev/null and b/Images.xcassets/appIcon.appiconset/icon_256x256@2x.png differ diff --git a/Images.xcassets/appIcon.appiconset/icon_32x32.png b/Images.xcassets/appIcon.appiconset/icon_32x32.png new file mode 100644 index 0000000000..d29158eb1e Binary files /dev/null and b/Images.xcassets/appIcon.appiconset/icon_32x32.png differ diff --git a/Images.xcassets/appIcon.appiconset/icon_32x32@2x.png b/Images.xcassets/appIcon.appiconset/icon_32x32@2x.png new file mode 100644 index 0000000000..f58904b4c6 Binary files /dev/null and b/Images.xcassets/appIcon.appiconset/icon_32x32@2x.png differ diff --git a/Images.xcassets/appIcon.appiconset/icon_512x512.png b/Images.xcassets/appIcon.appiconset/icon_512x512.png new file mode 100644 index 0000000000..d9a9ccecfc Binary files /dev/null and b/Images.xcassets/appIcon.appiconset/icon_512x512.png differ diff --git a/Images.xcassets/appIcon.appiconset/icon_512x512@2x.png b/Images.xcassets/appIcon.appiconset/icon_512x512@2x.png new file mode 100644 index 0000000000..9946941791 Binary files /dev/null and b/Images.xcassets/appIcon.appiconset/icon_512x512@2x.png differ diff --git a/Images.xcassets/docIcon.iconset/icon_128x128.png b/Images.xcassets/docIcon.iconset/icon_128x128.png new file mode 100644 index 0000000000..0329892416 Binary files /dev/null and b/Images.xcassets/docIcon.iconset/icon_128x128.png differ diff --git a/Images.xcassets/docIcon.iconset/icon_128x128@2x.png b/Images.xcassets/docIcon.iconset/icon_128x128@2x.png new file mode 100644 index 0000000000..df7dd267ed Binary files /dev/null and b/Images.xcassets/docIcon.iconset/icon_128x128@2x.png differ diff --git a/Images.xcassets/docIcon.iconset/icon_16x16.png b/Images.xcassets/docIcon.iconset/icon_16x16.png new file mode 100644 index 0000000000..f6011ca5e5 Binary files /dev/null and b/Images.xcassets/docIcon.iconset/icon_16x16.png differ diff --git a/Images.xcassets/docIcon.iconset/icon_16x16@2x.png b/Images.xcassets/docIcon.iconset/icon_16x16@2x.png new file mode 100644 index 0000000000..c0ad67b63e Binary files /dev/null and b/Images.xcassets/docIcon.iconset/icon_16x16@2x.png differ diff --git a/Images.xcassets/docIcon.iconset/icon_256x256.png b/Images.xcassets/docIcon.iconset/icon_256x256.png new file mode 100644 index 0000000000..df7dd267ed Binary files /dev/null and b/Images.xcassets/docIcon.iconset/icon_256x256.png differ diff --git a/Images.xcassets/docIcon.iconset/icon_256x256@2x.png b/Images.xcassets/docIcon.iconset/icon_256x256@2x.png new file mode 100644 index 0000000000..9d2be345f7 Binary files /dev/null and b/Images.xcassets/docIcon.iconset/icon_256x256@2x.png differ diff --git a/Images.xcassets/docIcon.iconset/icon_32x32.png b/Images.xcassets/docIcon.iconset/icon_32x32.png new file mode 100644 index 0000000000..c0ad67b63e Binary files /dev/null and b/Images.xcassets/docIcon.iconset/icon_32x32.png differ diff --git a/Images.xcassets/docIcon.iconset/icon_32x32@2x.png b/Images.xcassets/docIcon.iconset/icon_32x32@2x.png new file mode 100644 index 0000000000..f15badb783 Binary files /dev/null and b/Images.xcassets/docIcon.iconset/icon_32x32@2x.png differ diff --git a/Images.xcassets/docIcon.iconset/icon_512x512.png b/Images.xcassets/docIcon.iconset/icon_512x512.png new file mode 100644 index 0000000000..9d2be345f7 Binary files /dev/null and b/Images.xcassets/docIcon.iconset/icon_512x512.png differ diff --git a/Images.xcassets/docIcon.iconset/icon_512x512@2x.png b/Images.xcassets/docIcon.iconset/icon_512x512@2x.png new file mode 100644 index 0000000000..972f98d2cc Binary files /dev/null and b/Images.xcassets/docIcon.iconset/icon_512x512@2x.png differ diff --git a/ImportSources/RKLMatchEnumerator.h b/ImportSources/RKLMatchEnumerator.h index 110100a141..4a5c3afb39 100644 --- a/ImportSources/RKLMatchEnumerator.h +++ b/ImportSources/RKLMatchEnumerator.h @@ -1,7 +1,14 @@ +/* + RegexKitLite-2.1/examples/RKLMatchEnumerator.h(BSDライセンス)を改造しています。 +*/ #import #import #import @interface NSString (RegexKitLiteEnumeratorAdditions) -- (NSEnumerator *)matchEnumeratorWithRegex:(NSString *)regex; +- (NSEnumerator *)matchEnumeratorWithRegex:(NSString *)regexString; +// edited by nakamuxu for CotEditor. +// オプションを使えるメソッドを追加 +// 2008.05.01. +- (NSEnumerator *)matchEnumeratorWithRegex:(NSString *)regexString options:(RKLRegexOptions)inOptions; @end diff --git a/ImportSources/RKLMatchEnumerator.m b/ImportSources/RKLMatchEnumerator.m index 26d885a2b7..1c700a59d2 100644 --- a/ImportSources/RKLMatchEnumerator.m +++ b/ImportSources/RKLMatchEnumerator.m @@ -1,3 +1,7 @@ +/* + RegexKitLite-2.1/examples/RKLMatchEnumerator.m(BSDライセンス)を改造しています。 +*/ + #import #import #import "RegexKitLite.h" @@ -7,10 +11,16 @@ @interface RKLMatchEnumerator : NSEnumerator { NSString *string; NSString *regex; NSUInteger location; + RKLRegexOptions _options; } - (id)initWithString:(NSString *)initString regex:(NSString *)initRegex; +// edited by nakamuxu for CotEditor. +// オプションを使えるメソッドを追加 +// 2008.05.01. +- (id)initWithString:(NSString *)initString regex:(NSString *)initRegex options:(RKLRegexOptions)inOptions; + @end @implementation RKLMatchEnumerator @@ -23,16 +33,28 @@ - (id)initWithString:(NSString *)initString regex:(NSString *)initRegex return(self); } +- (id)initWithString:(NSString *)initString regex:(NSString *)initRegex options:(RKLRegexOptions)inOptions +{ + if((self = [self init]) == NULL) { return(NULL); } + string = [initString copy]; + regex = [initRegex copy]; + _options = inOptions; + return(self); +} + - (id)nextObject +// edited by nakamuxu for CotEditor. +// マッチした範囲のNSValueを返すように変更 +// 2008.05.01. { if(location != NSNotFound) { NSRange searchRange = NSMakeRange(location, [string length] - location); - NSRange matchedRange = [string rangeOfRegex:regex inRange:searchRange]; + NSRange matchedRange = [string rangeOfRegex:regex options:_options inRange:searchRange capture:0 error:NULL]; location = NSMaxRange(matchedRange) + ((matchedRange.length == 0) ? 1 : 0); if(matchedRange.location != NSNotFound) { - return([string substringWithRange:matchedRange]); + return [NSValue valueWithRange:matchedRange]; } } return(NULL); @@ -49,9 +71,17 @@ - (void) dealloc @implementation NSString (RegexKitLiteEnumeratorAdditions) -- (NSEnumerator *)matchEnumeratorWithRegex:(NSString *)regex +- (NSEnumerator *)matchEnumeratorWithRegex:(NSString *)regexString +{ + return([[[RKLMatchEnumerator alloc] initWithString:self regex:regexString] autorelease]); +} + +// edited by nakamuxu for CotEditor. +// オプションを使えるメソッドを追加 +// 2008.05.01. +- (NSEnumerator *)matchEnumeratorWithRegex:(NSString *)regexString options:(RKLRegexOptions)inOptions { - return([[[RKLMatchEnumerator alloc] initWithString:self regex:regex] autorelease]); + return([[[RKLMatchEnumerator alloc] initWithString:self regex:regexString options:inOptions] autorelease]); } @end diff --git a/ImportSources/RegexKitLite.h b/ImportSources/RegexKitLite.h index f69021b8c8..d467702f6d 100644 --- a/ImportSources/RegexKitLite.h +++ b/ImportSources/RegexKitLite.h @@ -5,7 +5,7 @@ // /* - Copyright (c) 2008, John Engelhart + Copyright (c) 2008-2010, John Engelhart All rights reserved. @@ -34,9 +34,11 @@ 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. -*/ +*/ #ifdef __OBJC__ +#import +#import #import #import #import @@ -45,49 +47,63 @@ #include #include #include +#include +#include -#ifndef REGEXKITLITE_VERSION_DEFINED -#define REGEXKITLITE_VERSION_DEFINED - -#define REGEXKITLITE_VERSION_MAJOR 2 -#define REGEXKITLITE_VERSION_MINOR 2 - -#define REGEXKITLITE_VERSION_CSTRING _RKL_VERSION_STRING(REGEXKITLITE_VERSION_MAJOR, REGEXKITLITE_VERSION_MINOR) -#define REGEXKITLITE_VERSION_NSSTRING @REGEXKITLITE_VERSION_CSTRING +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef REGEXKITLITE_VERSION_DEFINED +#define REGEXKITLITE_VERSION_DEFINED #define _RKL__STRINGIFY(b) #b #define _RKL_STRINGIFY(a) _RKL__STRINGIFY(a) #define _RKL_JOIN_VERSION(a,b) _RKL_STRINGIFY(a##.##b) #define _RKL_VERSION_STRING(a,b) _RKL_JOIN_VERSION(a,b) +#define REGEXKITLITE_VERSION_MAJOR 4 +#define REGEXKITLITE_VERSION_MINOR 0 + +#define REGEXKITLITE_VERSION_CSTRING _RKL_VERSION_STRING(REGEXKITLITE_VERSION_MAJOR, REGEXKITLITE_VERSION_MINOR) +#define REGEXKITLITE_VERSION_NSSTRING @REGEXKITLITE_VERSION_CSTRING + #endif // REGEXKITLITE_VERSION_DEFINED -#ifdef __cplusplus -extern "C" { +#if !defined(RKL_BLOCKS) && defined(NS_BLOCKS_AVAILABLE) && (NS_BLOCKS_AVAILABLE == 1) +#define RKL_BLOCKS 1 #endif + +#if defined(RKL_BLOCKS) && (RKL_BLOCKS == 1) +#define _RKL_BLOCKS_ENABLED 1 +#endif // defined(RKL_BLOCKS) && (RKL_BLOCKS == 1) + +#if defined(_RKL_BLOCKS_ENABLED) && !defined(__BLOCKS__) +#warning RegexKitLite support for Blocks is enabled, but __BLOCKS__ is not defined. This compiler may not support Blocks, in which case the behavior is undefined. This will probably cause numerous compiler errors. +#endif // defined(_RKL_BLOCKS_ENABLED) && !defined(__BLOCKS__) // For Mac OS X < 10.5. -#ifndef NSINTEGER_DEFINED -#define NSINTEGER_DEFINED -#ifdef __LP64__ || NS_BUILD_32_LIKE_64 +#ifndef NSINTEGER_DEFINED +#define NSINTEGER_DEFINED +#if defined(__LP64__) || defined(NS_BUILD_32_LIKE_64) typedef long NSInteger; typedef unsigned long NSUInteger; #define NSIntegerMin LONG_MIN #define NSIntegerMax LONG_MAX #define NSUIntegerMax ULONG_MAX -#else // 32-bit +#else // defined(__LP64__) || defined(NS_BUILD_32_LIKE_64) typedef int NSInteger; typedef unsigned int NSUInteger; #define NSIntegerMin INT_MIN #define NSIntegerMax INT_MAX #define NSUIntegerMax UINT_MAX -#endif // __LP64__ || NS_BUILD_32_LIKE_64 +#endif // defined(__LP64__) || defined(NS_BUILD_32_LIKE_64) #endif // NSINTEGER_DEFINED -#ifndef RKLREGEXOPTIONS_DEFINED -#define RKLREGEXOPTIONS_DEFINED +#ifndef RKLREGEXOPTIONS_DEFINED +#define RKLREGEXOPTIONS_DEFINED -// These must be idential to their ICU regex counterparts. See http://www.icu-project.org/userguide/regexp.html +// These must be identical to their ICU regex counterparts. See http://www.icu-project.org/userguide/regexp.html enum { RKLNoOptions = 0, RKLCaseless = 2, @@ -96,16 +112,56 @@ enum { RKLMultiline = 8, RKLUnicodeWordBoundaries = 256 }; -typedef uint32_t RKLRegexOptions; +typedef uint32_t RKLRegexOptions; // This must be identical to the ICU 'flags' argument type. #endif // RKLREGEXOPTIONS_DEFINED +#ifndef RKLREGEXENUMERATIONOPTIONS_DEFINED +#define RKLREGEXENUMERATIONOPTIONS_DEFINED + +enum { + RKLRegexEnumerationNoOptions = 0UL, + RKLRegexEnumerationCapturedStringsNotRequired = 1UL << 9, + RKLRegexEnumerationReleaseStringReturnedByReplacementBlock = 1UL << 10, + RKLRegexEnumerationFastCapturedStringsXXX = 1UL << 11, +}; +typedef NSUInteger RKLRegexEnumerationOptions; + +#endif // RKLREGEXENUMERATIONOPTIONS_DEFINED + #ifndef _REGEXKITLITE_H_ #define _REGEXKITLITE_H_ -#ifdef __OBJC__ +#if defined(__GNUC__) && (__GNUC__ >= 4) && defined(__APPLE_CC__) && (__APPLE_CC__ >= 5465) +#define RKL_DEPRECATED_ATTRIBUTE __attribute__((deprecated)) +#else +#define RKL_DEPRECATED_ATTRIBUTE +#endif + +#if defined(NS_REQUIRES_NIL_TERMINATION) +#define RKL_REQUIRES_NIL_TERMINATION NS_REQUIRES_NIL_TERMINATION +#else // defined(NS_REQUIRES_NIL_TERMINATION) +#define RKL_REQUIRES_NIL_TERMINATION +#endif // defined(NS_REQUIRES_NIL_TERMINATION) + +// This requires a few levels of rewriting to get the desired results. +#define _RKL_CONCAT_2(c,d) c ## d +#define _RKL_CONCAT(a,b) _RKL_CONCAT_2(a,b) + +#ifdef RKL_PREPEND_TO_METHODS +#define RKL_METHOD_PREPEND(x) _RKL_CONCAT(RKL_PREPEND_TO_METHODS, x) +#else // RKL_PREPEND_TO_METHODS +#define RKL_METHOD_PREPEND(x) x +#endif // RKL_PREPEND_TO_METHODS + +// If it looks like low memory notifications might be available, add code to register and respond to them. +// This is (should be) harmless if it turns out that this isn't the case, since the notification that we register for, +// UIApplicationDidReceiveMemoryWarningNotification, is dynamically looked up via dlsym(). +#if ((defined(TARGET_OS_EMBEDDED) && (TARGET_OS_EMBEDDED != 0)) || (defined(TARGET_OS_IPHONE) && (TARGET_OS_IPHONE != 0))) && (!defined(RKL_REGISTER_FOR_IPHONE_LOWMEM_NOTIFICATIONS) || (RKL_REGISTER_FOR_IPHONE_LOWMEM_NOTIFICATIONS != 0)) +#define RKL_REGISTER_FOR_IPHONE_LOWMEM_NOTIFICATIONS 1 +#endif -@class NSError; +#ifdef __OBJC__ // NSException exception name. extern NSString * const RKLICURegexException; @@ -113,6 +169,7 @@ extern NSString * const RKLICURegexException; // NSError error domains and user info keys. extern NSString * const RKLICURegexErrorDomain; +extern NSString * const RKLICURegexEnumerationOptionsErrorKey; extern NSString * const RKLICURegexErrorCodeErrorKey; extern NSString * const RKLICURegexErrorNameErrorKey; extern NSString * const RKLICURegexLineErrorKey; @@ -121,29 +178,19 @@ extern NSString * const RKLICURegexPreContextErrorKey; extern NSString * const RKLICURegexPostContextErrorKey; extern NSString * const RKLICURegexRegexErrorKey; extern NSString * const RKLICURegexRegexOptionsErrorKey; - -// If it looks like low memory notifications might be available, add code to register and respond to them. -// This is (should be) harmless if it turns out that this isn't the case, since the notification that we register for, -// UIApplicationDidReceiveMemoryWarningNotification, is dynamically looked up via dlsym(). -#if (TARGET_OS_EMBEDDED || TARGET_OS_IPHONE) && (!defined(RKL_REGISTER_FOR_IPHONE_LOWMEM_NOTIFICATIONS) || (RKL_REGISTER_FOR_IPHONE_LOWMEM_NOTIFICATIONS != 0)) -#define RKL_REGISTER_FOR_IPHONE_LOWMEM_NOTIFICATIONS 1 -#endif - -#ifdef RKL_PREPEND_TO_METHODS -// This requires a few levels of rewriting to get the desired results. -#define RKL_METHOD_PREPEND_2(c,d) c ## d -#define RKL_METHOD_PREPEND_1(a,b) RKL_METHOD_PREPEND_2(a,b) -#define RKL_METHOD_PREPEND(x) RKL_METHOD_PREPEND_1(RKL_PREPEND_TO_METHODS, x) -#else -#define RKL_METHOD_PREPEND(x) x -#endif - +extern NSString * const RKLICURegexReplacedCountErrorKey; +extern NSString * const RKLICURegexReplacedStringErrorKey; +extern NSString * const RKLICURegexReplacementStringErrorKey; +extern NSString * const RKLICURegexSubjectRangeErrorKey; +extern NSString * const RKLICURegexSubjectStringErrorKey; + @interface NSString (RegexKitLiteAdditions) + (void)RKL_METHOD_PREPEND(clearStringCache); -+ (NSInteger)RKL_METHOD_PREPEND(captureCountForRegex):(NSString *)regex; -+ (NSInteger)RKL_METHOD_PREPEND(captureCountForRegex):(NSString *)regex options:(RKLRegexOptions)options error:(NSError **)error; +// Although these are marked as deprecated, a bug in GCC prevents a warning from being issues for + class methods. Filed bug with Apple, #6736857. ++ (NSInteger)RKL_METHOD_PREPEND(captureCountForRegex):(NSString *)regex RKL_DEPRECATED_ATTRIBUTE; ++ (NSInteger)RKL_METHOD_PREPEND(captureCountForRegex):(NSString *)regex options:(RKLRegexOptions)options error:(NSError **)error RKL_DEPRECATED_ATTRIBUTE; - (NSArray *)RKL_METHOD_PREPEND(componentsSeparatedByRegex):(NSString *)regex; - (NSArray *)RKL_METHOD_PREPEND(componentsSeparatedByRegex):(NSString *)regex range:(NSRange)range; @@ -167,13 +214,75 @@ extern NSString * const RKLICURegexRegexOptionsErrorKey; - (NSString *)RKL_METHOD_PREPEND(stringByReplacingOccurrencesOfRegex):(NSString *)regex withString:(NSString *)replacement range:(NSRange)searchRange; - (NSString *)RKL_METHOD_PREPEND(stringByReplacingOccurrencesOfRegex):(NSString *)regex withString:(NSString *)replacement options:(RKLRegexOptions)options range:(NSRange)searchRange error:(NSError **)error; + //// >= 3.0 + +- (NSInteger)RKL_METHOD_PREPEND(captureCount); +- (NSInteger)RKL_METHOD_PREPEND(captureCountWithOptions):(RKLRegexOptions)options error:(NSError **)error; + +- (BOOL)RKL_METHOD_PREPEND(isRegexValid); +- (BOOL)RKL_METHOD_PREPEND(isRegexValidWithOptions):(RKLRegexOptions)options error:(NSError **)error; + +- (void)RKL_METHOD_PREPEND(flushCachedRegexData); + +- (NSArray *)RKL_METHOD_PREPEND(componentsMatchedByRegex):(NSString *)regex; +- (NSArray *)RKL_METHOD_PREPEND(componentsMatchedByRegex):(NSString *)regex capture:(NSInteger)capture; +- (NSArray *)RKL_METHOD_PREPEND(componentsMatchedByRegex):(NSString *)regex range:(NSRange)range; +- (NSArray *)RKL_METHOD_PREPEND(componentsMatchedByRegex):(NSString *)regex options:(RKLRegexOptions)options range:(NSRange)range capture:(NSInteger)capture error:(NSError **)error; + + +- (NSArray *)RKL_METHOD_PREPEND(captureComponentsMatchedByRegex):(NSString *)regex; +- (NSArray *)RKL_METHOD_PREPEND(captureComponentsMatchedByRegex):(NSString *)regex range:(NSRange)range; +- (NSArray *)RKL_METHOD_PREPEND(captureComponentsMatchedByRegex):(NSString *)regex options:(RKLRegexOptions)options range:(NSRange)range error:(NSError **)error; + +- (NSArray *)RKL_METHOD_PREPEND(arrayOfCaptureComponentsMatchedByRegex):(NSString *)regex; +- (NSArray *)RKL_METHOD_PREPEND(arrayOfCaptureComponentsMatchedByRegex):(NSString *)regex range:(NSRange)range; +- (NSArray *)RKL_METHOD_PREPEND(arrayOfCaptureComponentsMatchedByRegex):(NSString *)regex options:(RKLRegexOptions)options range:(NSRange)range error:(NSError **)error; + + //// >= 4.0 + +- (NSArray *)RKL_METHOD_PREPEND(arrayOfDictionariesByMatchingRegex):(NSString *)regex withKeysAndCaptures:(id)firstKey, ... RKL_REQUIRES_NIL_TERMINATION; +- (NSArray *)RKL_METHOD_PREPEND(arrayOfDictionariesByMatchingRegex):(NSString *)regex range:(NSRange)range withKeysAndCaptures:(id)firstKey, ... RKL_REQUIRES_NIL_TERMINATION; +- (NSArray *)RKL_METHOD_PREPEND(arrayOfDictionariesByMatchingRegex):(NSString *)regex options:(RKLRegexOptions)options range:(NSRange)range error:(NSError **)error withKeysAndCaptures:(id)firstKey, ... RKL_REQUIRES_NIL_TERMINATION; +- (NSArray *)RKL_METHOD_PREPEND(arrayOfDictionariesByMatchingRegex):(NSString *)regex options:(RKLRegexOptions)options range:(NSRange)range error:(NSError **)error withFirstKey:(id)firstKey arguments:(va_list)varArgsList; + +- (NSArray *)RKL_METHOD_PREPEND(arrayOfDictionariesByMatchingRegex):(NSString *)regex options:(RKLRegexOptions)options range:(NSRange)range error:(NSError **)error withKeys:(id *)keys forCaptures:(int *)captures count:(NSUInteger)count; + +- (NSDictionary *)RKL_METHOD_PREPEND(dictionaryByMatchingRegex):(NSString *)regex withKeysAndCaptures:(id)firstKey, ... RKL_REQUIRES_NIL_TERMINATION; +- (NSDictionary *)RKL_METHOD_PREPEND(dictionaryByMatchingRegex):(NSString *)regex range:(NSRange)range withKeysAndCaptures:(id)firstKey, ... RKL_REQUIRES_NIL_TERMINATION; +- (NSDictionary *)RKL_METHOD_PREPEND(dictionaryByMatchingRegex):(NSString *)regex options:(RKLRegexOptions)options range:(NSRange)range error:(NSError **)error withKeysAndCaptures:(id)firstKey, ... RKL_REQUIRES_NIL_TERMINATION; +- (NSDictionary *)RKL_METHOD_PREPEND(dictionaryByMatchingRegex):(NSString *)regex options:(RKLRegexOptions)options range:(NSRange)range error:(NSError **)error withFirstKey:(id)firstKey arguments:(va_list)varArgsList; + +- (NSDictionary *)RKL_METHOD_PREPEND(dictionaryByMatchingRegex):(NSString *)regex options:(RKLRegexOptions)options range:(NSRange)range error:(NSError **)error withKeys:(id *)keys forCaptures:(int *)captures count:(NSUInteger)count; + +#ifdef _RKL_BLOCKS_ENABLED + +- (BOOL)RKL_METHOD_PREPEND(enumerateStringsMatchedByRegex):(NSString *)regex usingBlock:(void (^)(NSInteger captureCount, NSString * const capturedStrings[captureCount], const NSRange capturedRanges[captureCount], volatile BOOL * const stop))block; +- (BOOL)RKL_METHOD_PREPEND(enumerateStringsMatchedByRegex):(NSString *)regex options:(RKLRegexOptions)options inRange:(NSRange)range error:(NSError **)error enumerationOptions:(RKLRegexEnumerationOptions)enumerationOptions usingBlock:(void (^)(NSInteger captureCount, NSString * const capturedStrings[captureCount], const NSRange capturedRanges[captureCount], volatile BOOL * const stop))block; + +- (BOOL)RKL_METHOD_PREPEND(enumerateStringsSeparatedByRegex):(NSString *)regex usingBlock:(void (^)(NSInteger captureCount, NSString * const capturedStrings[captureCount], const NSRange capturedRanges[captureCount], volatile BOOL * const stop))block; +- (BOOL)RKL_METHOD_PREPEND(enumerateStringsSeparatedByRegex):(NSString *)regex options:(RKLRegexOptions)options inRange:(NSRange)range error:(NSError **)error enumerationOptions:(RKLRegexEnumerationOptions)enumerationOptions usingBlock:(void (^)(NSInteger captureCount, NSString * const capturedStrings[captureCount], const NSRange capturedRanges[captureCount], volatile BOOL * const stop))block; + +- (NSString *)RKL_METHOD_PREPEND(stringByReplacingOccurrencesOfRegex):(NSString *)regex usingBlock:(NSString *(^)(NSInteger captureCount, NSString * const capturedStrings[captureCount], const NSRange capturedRanges[captureCount], volatile BOOL * const stop))block; +- (NSString *)RKL_METHOD_PREPEND(stringByReplacingOccurrencesOfRegex):(NSString *)regex options:(RKLRegexOptions)options inRange:(NSRange)range error:(NSError **)error enumerationOptions:(RKLRegexEnumerationOptions)enumerationOptions usingBlock:(NSString *(^)(NSInteger captureCount, NSString * const capturedStrings[captureCount], const NSRange capturedRanges[captureCount], volatile BOOL * const stop))block; + +#endif // _RKL_BLOCKS_ENABLED + @end @interface NSMutableString (RegexKitLiteAdditions) -- (NSUInteger)RKL_METHOD_PREPEND(replaceOccurrencesOfRegex):(NSString *)regex withString:(NSString *)replacement; -- (NSUInteger)RKL_METHOD_PREPEND(replaceOccurrencesOfRegex):(NSString *)regex withString:(NSString *)replacement range:(NSRange)searchRange; -- (NSUInteger)RKL_METHOD_PREPEND(replaceOccurrencesOfRegex):(NSString *)regex withString:(NSString *)replacement options:(RKLRegexOptions)options range:(NSRange)searchRange error:(NSError **)error; +- (NSInteger)RKL_METHOD_PREPEND(replaceOccurrencesOfRegex):(NSString *)regex withString:(NSString *)replacement; +- (NSInteger)RKL_METHOD_PREPEND(replaceOccurrencesOfRegex):(NSString *)regex withString:(NSString *)replacement range:(NSRange)searchRange; +- (NSInteger)RKL_METHOD_PREPEND(replaceOccurrencesOfRegex):(NSString *)regex withString:(NSString *)replacement options:(RKLRegexOptions)options range:(NSRange)searchRange error:(NSError **)error; + + //// >= 4.0 + +#ifdef _RKL_BLOCKS_ENABLED + +- (NSInteger)RKL_METHOD_PREPEND(replaceOccurrencesOfRegex):(NSString *)regex usingBlock:(NSString *(^)(NSInteger captureCount, NSString * const capturedStrings[captureCount], const NSRange capturedRanges[captureCount], volatile BOOL * const stop))block; +- (NSInteger)RKL_METHOD_PREPEND(replaceOccurrencesOfRegex):(NSString *)regex options:(RKLRegexOptions)options inRange:(NSRange)range error:(NSError **)error enumerationOptions:(RKLRegexEnumerationOptions)enumerationOptions usingBlock:(NSString *(^)(NSInteger captureCount, NSString * const capturedStrings[captureCount], const NSRange capturedRanges[captureCount], volatile BOOL * const stop))block; + +#endif // _RKL_BLOCKS_ENABLED @end diff --git a/ImportSources/RegexKitLite.m b/ImportSources/RegexKitLite.m index 6bf66af371..20f6e21324 100644 --- a/ImportSources/RegexKitLite.m +++ b/ImportSources/RegexKitLite.m @@ -5,7 +5,7 @@ // /* - Copyright (c) 2008, John Engelhart + Copyright (c) 2008-2010, John Engelhart All rights reserved. @@ -34,980 +34,2603 @@ 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 -#import -#import +#include +#include +#include #import #import #import #import #import #import -#ifdef __OBJC_GC__ +#ifdef __OBJC_GC__ #import +#define RKL_STRONG_REF __strong +#define RKL_GC_VOLATILE volatile +#else // __OBJC_GC__ +#define RKL_STRONG_REF +#define RKL_GC_VOLATILE +#endif // __OBJC_GC__ + +#if (defined(TARGET_OS_EMBEDDED) && (TARGET_OS_EMBEDDED != 0)) || (defined(TARGET_OS_IPHONE) && (TARGET_OS_IPHONE != 0)) || (defined(MAC_OS_X_VERSION_MIN_REQUIRED) && (MAC_OS_X_VERSION_MIN_REQUIRED >= 1050)) +#include +#else +#include #endif -#import -#import -#import -#import -#import -#import + +#include +#include +#include +#include +#include +#include +#include +#include + #import "RegexKitLite.h" -// Compile time tuneables. +// If the gcc flag -mmacosx-version-min is used with, for example, '=10.2', give a warning that the libicucore.dylib is only available on >= 10.3. +// If you are reading this comment because of this warning, this is to let you know that linking to /usr/lib/libicucore.dylib will cause your executable to fail on < 10.3. +// You will need to build your own version of the ICU library and link to that in order for RegexKitLite to work successfully on < 10.3. This is not simple. + +#if MAC_OS_X_VERSION_MIN_REQUIRED < 1030 +#warning The ICU dynamic shared library, /usr/lib/libicucore.dylib, is only available on Mac OS X 10.3 and later. +#warning You will need to supply a version of the ICU library to use RegexKitLite on Mac OS X 10.2 and earlier. +#endif + +//////////// +#pragma mark Compile time tunables #ifndef RKL_CACHE_SIZE -#define RKL_CACHE_SIZE 23 +#define RKL_CACHE_SIZE (13UL) #endif +#if RKL_CACHE_SIZE < 1 +#error RKL_CACHE_SIZE must be a non-negative number greater than 0. +#endif // RKL_CACHE_SIZE < 1 + #ifndef RKL_FIXED_LENGTH -#define RKL_FIXED_LENGTH 2048 +#define RKL_FIXED_LENGTH (2048UL) #endif +#if RKL_FIXED_LENGTH < 1 +#error RKL_FIXED_LENGTH must be a non-negative number greater than 0. +#endif // RKL_FIXED_LENGTH < 1 + #ifndef RKL_STACK_LIMIT -#define RKL_STACK_LIMIT (128 * 1024) +#define RKL_STACK_LIMIT (128UL * 1024UL) #endif -#define SCRATCH_BUFFERS 4 +#if RKL_STACK_LIMIT < 0 +#error RKL_STACK_LIMIT must be a non-negative number. +#endif // RKL_STACK_LIMIT < 0 + +#ifdef RKL_APPEND_TO_ICU_FUNCTIONS +#define RKL_ICU_FUNCTION_APPEND(x) _RKL_CONCAT(x, RKL_APPEND_TO_ICU_FUNCTIONS) +#else // RKL_APPEND_TO_ICU_FUNCTIONS +#define RKL_ICU_FUNCTION_APPEND(x) x +#endif // RKL_APPEND_TO_ICU_FUNCTIONS + +#if defined(RKL_DTRACE) && (RKL_DTRACE != 0) +#define _RKL_DTRACE_ENABLED 1 +#endif // defined(RKL_DTRACE) && (RKL_DTRACE != 0) + +// These are internal, non-public tunables. +#define _RKL_FIXED_LENGTH ((NSUInteger)RKL_FIXED_LENGTH) +#define _RKL_STACK_LIMIT ((NSUInteger)RKL_STACK_LIMIT) +#define _RKL_SCRATCH_BUFFERS (5UL) +#if _RKL_SCRATCH_BUFFERS != 5 +#error _RKL_SCRATCH_BUFFERS is not tunable, it must be set to 5. +#endif // _RKL_SCRATCH_BUFFERS != 5 +#define _RKL_PREFETCH_SIZE (64UL) +#define _RKL_DTRACE_REGEXUTF8_SIZE (64UL) + +// A LRU Cache Set holds 4 lines, and the LRU algorithm uses 4 bits per line. +// A LRU Cache Set has a type of RKLLRUCacheSet_t and is 16 bits wide (4 lines * 4 bits per line). +// RKLLRUCacheSet_t must be initialized to a value of 0x0137 in order to work correctly. +typedef uint16_t RKLLRUCacheSet_t; +#define _RKL_LRU_CACHE_SET_INIT ((RKLLRUCacheSet_t)0x0137U) +#define _RKL_LRU_CACHE_SET_WAYS (4UL) +#if _RKL_LRU_CACHE_SET_WAYS != 4 +#error _RKL_LRU_CACHE_SET_WAYS is not tunable, it must be set to 4. +#endif // _RKL_LRU_CACHE_SET_WAYS != 4 + +#define _RKL_REGEX_LRU_CACHE_SETS ((NSUInteger)(RKL_CACHE_SIZE)) +#define _RKL_REGEX_CACHE_LINES ((NSUInteger)((NSUInteger)(_RKL_REGEX_LRU_CACHE_SETS) * (NSUInteger)(_RKL_LRU_CACHE_SET_WAYS))) + +// Regex String Lookaside Cache parameters. +#define _RKL_REGEX_LOOKASIDE_CACHE_BITS (6UL) +#if _RKL_REGEX_LOOKASIDE_CACHE_BITS < 0 +#error _RKL_REGEX_LOOKASIDE_CACHE_BITS must be a non-negative number and is not intended to be user tunable. +#endif // _RKL_REGEX_LOOKASIDE_CACHE_BITS < 0 +#define _RKL_REGEX_LOOKASIDE_CACHE_SIZE (1LU << _RKL_REGEX_LOOKASIDE_CACHE_BITS) +#define _RKL_REGEX_LOOKASIDE_CACHE_MASK ((1LU << _RKL_REGEX_LOOKASIDE_CACHE_BITS) - 1LU) +// RKLLookasideCache_t should be large enough to to hold the maximum number of cached regexes, or (RKL_CACHE_SIZE * _RKL_LRU_CACHE_SET_WAYS). +#if (RKL_CACHE_SIZE * _RKL_LRU_CACHE_SET_WAYS) <= (1 << 8) +typedef uint8_t RKLLookasideCache_t; +#elif (RKL_CACHE_SIZE * _RKL_LRU_CACHE_SET_WAYS) <= (1 << 16) +typedef uint16_t RKLLookasideCache_t; +#else // (RKL_CACHE_SIZE * _RKL_LRU_CACHE_SET_WAYS) > (1 << 16) +typedef uint32_t RKLLookasideCache_t; +#endif // (RKL_CACHE_SIZE * _RKL_LRU_CACHE_SET_WAYS) + +////////////// +#pragma mark - +#pragma mark GCC / Compiler macros + +#if defined (__GNUC__) && (__GNUC__ >= 4) +#define RKL_ATTRIBUTES(attr, ...) __attribute__((attr, ##__VA_ARGS__)) +#define RKL_EXPECTED(cond, expect) __builtin_expect((long)(cond), (expect)) +#define RKL_PREFETCH(ptr) __builtin_prefetch(ptr) +#define RKL_PREFETCH_UNICHAR(ptr, off) { const char *p = ((const char *)(ptr)) + ((off) * sizeof(UniChar)) + _RKL_PREFETCH_SIZE; RKL_PREFETCH(p); RKL_PREFETCH(p + _RKL_PREFETCH_SIZE); } +#define RKL_HAVE_CLEANUP +#define RKL_CLEANUP(func) RKL_ATTRIBUTES(cleanup(func)) +#else // defined (__GNUC__) && (__GNUC__ >= 4) +#define RKL_ATTRIBUTES(attr, ...) +#define RKL_EXPECTED(cond, expect) (cond) +#define RKL_PREFETCH(ptr) +#define RKL_PREFETCH_UNICHAR(ptr, off) +#define RKL_CLEANUP(func) +#endif // defined (__GNUC__) && (__GNUC__ >= 4) + +#define RKL_STATIC_INLINE static __inline__ RKL_ATTRIBUTES(always_inline) +#define RKL_ALIGNED(arg) RKL_ATTRIBUTES(aligned(arg)) +#define RKL_UNUSED_ARG RKL_ATTRIBUTES(unused) +#define RKL_WARN_UNUSED RKL_ATTRIBUTES(warn_unused_result) +#define RKL_WARN_UNUSED_CONST RKL_ATTRIBUTES(warn_unused_result, const) +#define RKL_WARN_UNUSED_PURE RKL_ATTRIBUTES(warn_unused_result, pure) +#define RKL_WARN_UNUSED_SENTINEL RKL_ATTRIBUTES(warn_unused_result, sentinel) +#define RKL_NONNULL_ARGS(arg, ...) RKL_ATTRIBUTES(nonnull(arg, ##__VA_ARGS__)) +#define RKL_WARN_UNUSED_NONNULL_ARGS(arg, ...) RKL_ATTRIBUTES(warn_unused_result, nonnull(arg, ##__VA_ARGS__)) +#define RKL_WARN_UNUSED_CONST_NONNULL_ARGS(arg, ...) RKL_ATTRIBUTES(warn_unused_result, const, nonnull(arg, ##__VA_ARGS__)) +#define RKL_WARN_UNUSED_PURE_NONNULL_ARGS(arg, ...) RKL_ATTRIBUTES(warn_unused_result, pure, nonnull(arg, ##__VA_ARGS__)) + +#if defined (__GNUC__) && (__GNUC__ >= 4) && (__GNUC_MINOR__ >= 3) +#define RKL_ALLOC_SIZE_NON_NULL_ARGS_WARN_UNUSED(as, nn, ...) RKL_ATTRIBUTES(warn_unused_result, nonnull(nn, ##__VA_ARGS__), alloc_size(as)) +#else // defined (__GNUC__) && (__GNUC__ >= 4) && (__GNUC_MINOR__ >= 3) +#define RKL_ALLOC_SIZE_NON_NULL_ARGS_WARN_UNUSED(as, nn, ...) RKL_ATTRIBUTES(warn_unused_result, nonnull(nn, ##__VA_ARGS__)) +#endif // defined (__GNUC__) && (__GNUC__ >= 4) && (__GNUC_MINOR__ >= 3) + +#ifdef _RKL_DTRACE_ENABLED +#define RKL_UNUSED_DTRACE_ARG +#else // _RKL_DTRACE_ENABLED +#define RKL_UNUSED_DTRACE_ARG RKL_ATTRIBUTES(unused) +#endif // _RKL_DTRACE_ENABLED + +//////////// +#pragma mark - +#pragma mark Assertion macros // These macros are nearly identical to their NSCParameterAssert siblings. -// This is required because nearly everything is done while cacheSpinLock is locked. +// This is required because nearly everything is done while rkl_cacheSpinLock is locked. // We need to safely unlock before throwing any of these exceptions. // @try {} @finally {} significantly slows things down so it's not used. -#define RKLCAssert(d, ...) RKLCAssertDictionary(__PRETTY_FUNCTION__, __FILE__, __LINE__, (d), ##__VA_ARGS__) -#ifdef NS_BLOCK_ASSERTIONS -#define _RKLCDelayedAssertBody(c, e, g, d, ...) -#else -#define _RKLCDelayedAssertBody(c, e, g, d, ...) do { id *_e=(e); if(*_e!=NULL) { goto g; } if(!(c)) { *_e = RKLCAssert((d), ##__VA_ARGS__); goto g; } } while(0) -#endif // NS_BLOCK_ASSERTIONS -#define RKLCDelayedAssert(c, e, g) _RKLCDelayedAssertBody(c, e, g, @"Invalid parameter not satisfying: %s", #c) - -#define RKLRaiseException(e, f, ...) [[NSException exceptionWithName:(e) reason:RKLStringFromClassAndMethod((self), (_cmd), (f), ##__VA_ARGS__) userInfo:NULL] raise] - -// Ugly macros to keep other parts clean. - -#define NSMaxRange(r) ((r).location + (r).length) -#define NSRangeInsideRange(in, win) (((((in).location - (win).location) <= (win).length) && ((NSMaxRange(in) - (win).location) <= (win).length))) -#define NSEqualRanges(r1, r2) ((((r1).location == (r2).location) && ((r1).length == (r2).length))) -#define NSMakeRange(loc, len) ((NSRange){(NSUInteger)(loc), (NSUInteger)(len)}) -#define CFMakeRange(loc, len) ((CFRange){ (CFIndex)(loc), (CFIndex)(len)}) -#define NSNotFoundRange ((NSRange){NSNotFound, 0 }) -#define NSMaxiumRange ((NSRange){ 0, NSUIntegerMax}) - -#if defined (__GNUC__) && (__GNUC__ >= 4) -#define RKL_PREFETCH(ptr, off) { const char *p = ((const char *)(ptr)) + ((off) + 64); __builtin_prefetch(p); __builtin_prefetch(p + 64); } -#else -#define RKL_PREFETCH(ptr, off) -#endif - -// If the gcc flag -mmacosx-version-min is used with, for example, '=10.2', give a warning that the libicucore.dylib is only available on >= 10.3. -// If you are reading this comment because of this warning, this is to let you know that linking to /usr/lib/libicucore.dylib will cause your executable to fail on < 10.3. -// You will need to build your own version of the ICU library and link to that in order for RegexKitLite to work successfully on < 10.3. This is not simple. - -#if MAC_OS_X_VERSION_MIN_REQUIRED < 1030 -#warning The ICU dynamic shared library, /usr/lib/libicucore.dylib, is only available on Mac OS X 10.3 and later. -#warning You will need to supply a version of the ICU library to use RegexKitLite on Mac OS X 10.2 and earlier. -#endif -#define RKLGetRangeForCapture(re, s, c, r) ({ int32_t start = uregex_start((re), (int32_t)(c), (s)); if(start == -1) { r = NSNotFoundRange; } else { r.location = (NSUInteger)start; r.length = (NSUInteger)uregex_end((re), (int32_t)(c), (s)) - r.location; } *(s); }) +#define RKLCHardAbortAssert(c) do { int _c=(c); if(RKL_EXPECTED(!_c, 0L)) { NSLog(@"%@:%ld: Invalid parameter not satisfying: %s\n", [NSString stringWithUTF8String:__FILE__], (long)__LINE__, #c); abort(); } } while(0) +#define RKLCAssertDictionary(d, ...) rkl_makeAssertDictionary(__PRETTY_FUNCTION__, __FILE__, __LINE__, (d), ##__VA_ARGS__) +#define RKLCDelayedHardAssert(c, e, g) do { id *_e=(e); int _c=(c); if(RKL_EXPECTED(_e == NULL, 0L) || RKL_EXPECTED(*_e != NULL, 0L)) { goto g; } if(RKL_EXPECTED(!_c, 0L)) { *_e = RKLCAssertDictionary(@"Invalid parameter not satisfying: %s", #c); goto g; } } while(0) + +#ifdef NS_BLOCK_ASSERTIONS +#define RKLCAbortAssert(c) +#define RKLCDelayedAssert(c, e, g) +#define RKL_UNUSED_ASSERTION_ARG RKL_ATTRIBUTES(unused) +#else // NS_BLOCK_ASSERTIONS +#define RKLCAbortAssert(c) RKLCHardAbortAssert(c) +#define RKLCDelayedAssert(c, e, g) RKLCDelayedHardAssert(c, e, g) +#define RKL_UNUSED_ASSERTION_ARG +#endif // NS_BLOCK_ASSERTIONS -// Exported symbols. Exception names, error domains, keys, etc. -NSString * const RKLICURegexException = @"RKLICURegexException"; +#define RKL_EXCEPTION(e, f, ...) [NSException exceptionWithName:(e) reason:rkl_stringFromClassAndMethod((self), (_cmd), (f), ##__VA_ARGS__) userInfo:NULL] +#define RKL_RAISE_EXCEPTION(e, f, ...) [RKL_EXCEPTION(e, f, ##__VA_ARGS__) raise] + +//////////// +#pragma mark - +#pragma mark Utility functions and macros + +RKL_STATIC_INLINE BOOL NSRangeInsideRange(NSRange cin, NSRange win) RKL_WARN_UNUSED; +RKL_STATIC_INLINE BOOL NSRangeInsideRange(NSRange cin, NSRange win) { return((((cin.location - win.location) <= win.length) && ((NSMaxRange(cin) - win.location) <= win.length)) ? YES : NO); } + +#define NSMakeRange(loc, len) ((NSRange){.location=(NSUInteger)(loc), .length=(NSUInteger)(len)}) +#define CFMakeRange(loc, len) ((CFRange){.location= (CFIndex)(loc), .length= (CFIndex)(len)}) +#define NSNotFoundRange ((NSRange){.location=(NSUInteger)NSNotFound, .length= 0UL}) +#define NSMaxiumRange ((NSRange){.location= 0UL, .length= NSUIntegerMax}) +// These values are used to help tickle improper usage. +#define RKLIllegalRange ((NSRange){.location= NSIntegerMax, .length= NSIntegerMax}) +#define RKLIllegalPointer ((void * RKL_GC_VOLATILE)0xBAD0C0DE) + +//////////// +#pragma mark - +#pragma mark Exported NSString symbols for exception names, error domains, error keys, etc + +NSString * const RKLICURegexException = @"RKLICURegexException"; + +NSString * const RKLICURegexErrorDomain = @"RKLICURegexErrorDomain"; + +NSString * const RKLICURegexEnumerationOptionsErrorKey = @"RKLICURegexEnumerationOptions"; +NSString * const RKLICURegexErrorCodeErrorKey = @"RKLICURegexErrorCode"; +NSString * const RKLICURegexErrorNameErrorKey = @"RKLICURegexErrorName"; +NSString * const RKLICURegexLineErrorKey = @"RKLICURegexLine"; +NSString * const RKLICURegexOffsetErrorKey = @"RKLICURegexOffset"; +NSString * const RKLICURegexPreContextErrorKey = @"RKLICURegexPreContext"; +NSString * const RKLICURegexPostContextErrorKey = @"RKLICURegexPostContext"; +NSString * const RKLICURegexRegexErrorKey = @"RKLICURegexRegex"; +NSString * const RKLICURegexRegexOptionsErrorKey = @"RKLICURegexRegexOptions"; +NSString * const RKLICURegexReplacedCountErrorKey = @"RKLICURegexReplacedCount"; +NSString * const RKLICURegexReplacedStringErrorKey = @"RKLICURegexReplacedString"; +NSString * const RKLICURegexReplacementStringErrorKey = @"RKLICURegexReplacementString"; +NSString * const RKLICURegexSubjectRangeErrorKey = @"RKLICURegexSubjectRange"; +NSString * const RKLICURegexSubjectStringErrorKey = @"RKLICURegexSubjectString"; + +// Used internally by rkl_userInfoDictionary to specify which arguments should be set in the NSError userInfo dictionary. +enum { + RKLUserInfoNone = 0UL, + RKLUserInfoSubjectRange = 1UL << 0, + RKLUserInfoReplacedCount = 1UL << 1, + RKLUserInfoRegexEnumerationOptions = 1UL << 2, +}; +typedef NSUInteger RKLUserInfoOptions; -NSString * const RKLICURegexErrorDomain = @"RKLICURegexErrorDomain"; +//////////// +#pragma mark - +#pragma mark Type / struct definitions -NSString * const RKLICURegexErrorCodeErrorKey = @"RKLICURegexErrorCode"; -NSString * const RKLICURegexErrorNameErrorKey = @"RKLICURegexErrorName"; -NSString * const RKLICURegexLineErrorKey = @"RKLICURegexLine"; -NSString * const RKLICURegexOffsetErrorKey = @"RKLICURegexOffset"; -NSString * const RKLICURegexPreContextErrorKey = @"RKLICURegexPreContext"; -NSString * const RKLICURegexPostContextErrorKey = @"RKLICURegexPostContext"; -NSString * const RKLICURegexRegexErrorKey = @"RKLICURegexRegex"; -NSString * const RKLICURegexRegexOptionsErrorKey = @"RKLICURegexRegexOptions"; +// In general, the ICU bits and pieces here must exactly match the definition in the ICU sources. -// Type / struct definitions +#define U_STRING_NOT_TERMINATED_WARNING -124 +#define U_ZERO_ERROR 0 +#define U_INDEX_OUTOFBOUNDS_ERROR 8 +#define U_BUFFER_OVERFLOW_ERROR 15 +#define U_PARSE_CONTEXT_LEN 16 typedef struct uregex uregex; // Opaque ICU regex type. -#define U_BUFFER_OVERFLOW_ERROR 15 - -#define U_PARSE_CONTEXT_LEN 16 - -typedef struct UParseError { +typedef struct UParseError { // This must be exactly the same as the 'real' ICU declaration. int32_t line; int32_t offset; UniChar preContext[U_PARSE_CONTEXT_LEN]; UniChar postContext[U_PARSE_CONTEXT_LEN]; } UParseError; +// For use with GCC's cleanup() __attribute__. +enum { + RKLLockedCacheSpinLock = 1UL << 0, + RKLUnlockedCacheSpinLock = 1UL << 1, +}; + enum { - RKLSplitOp = 1, - RKLReplaceOp = 2, - RKLRangeOp = 3, - RKLMaskOp = 0xf, - RKLReplaceMutable = 1 << 4, + RKLSplitOp = 1UL, + RKLReplaceOp = 2UL, + RKLRangeOp = 3UL, + RKLArrayOfStringsOp = 4UL, + RKLArrayOfCapturesOp = 5UL, + RKLCapturesArrayOp = 6UL, + RKLDictionaryOfCapturesOp = 7UL, + RKLArrayOfDictionariesOfCapturesOp = 8UL, + RKLMaskOp = 0xFUL, + RKLReplaceMutable = 1UL << 4, + RKLSubcapturesArray = 1UL << 5, }; typedef NSUInteger RKLRegexOp; +enum { + RKLBlockEnumerationMatchOp = 1UL, + RKLBlockEnumerationReplaceOp = 2UL, +}; +typedef NSUInteger RKLBlockEnumerationOp; + +typedef struct { + RKL_STRONG_REF NSRange * RKL_GC_VOLATILE ranges; + NSRange findInRange, remainingRange; + NSInteger capacity, found, findUpTo, capture, addedSplitRanges; + size_t size, stackUsed; + RKL_STRONG_REF void ** RKL_GC_VOLATILE rangesScratchBuffer; + RKL_STRONG_REF void ** RKL_GC_VOLATILE stringsScratchBuffer; + RKL_STRONG_REF void ** RKL_GC_VOLATILE arraysScratchBuffer; + RKL_STRONG_REF void ** RKL_GC_VOLATILE dictionariesScratchBuffer; + RKL_STRONG_REF void ** RKL_GC_VOLATILE keysScratchBuffer; +} RKLFindAll; + typedef struct { - CFStringRef string; - CFHashCode hash; - CFIndex length; - UniChar *uniChar; + CFStringRef string; + CFHashCode hash; + CFIndex length; + RKL_STRONG_REF UniChar * RKL_GC_VOLATILE uniChar; } RKLBuffer; typedef struct { - CFStringRef regexString; - RKLRegexOptions options; - uregex *icu_regex; - NSInteger captureCount; - - CFStringRef setToString; - CFHashCode setToHash; - CFIndex setToLength; - NSUInteger setToIsImmutable:1; - NSUInteger setToNeedsConversion:1; - const UniChar *setToUniChar; - NSRange setToRange, lastFindRange, lastMatchRange; - NSUInteger pad[1]; // For 32 bits, this makes the struct 64 bytes exactly, which is good for cache line alignment. -} RKLCacheSlot; + CFStringRef regexString; + CFHashCode regexHash; + RKLRegexOptions options; + uregex *icu_regex; + NSInteger captureCount; + + CFStringRef setToString; + CFHashCode setToHash; + CFIndex setToLength; + NSUInteger setToIsImmutable:1; + NSUInteger setToNeedsConversion:1; + RKL_STRONG_REF const UniChar * RKL_GC_VOLATILE setToUniChar; + NSRange setToRange, lastFindRange, lastMatchRange; + + RKLBuffer *buffer; +} RKLCachedRegex; + +//////////// +#pragma mark - +#pragma mark Translation unit scope global variables + +static RKLLRUCacheSet_t rkl_lruFixedBufferCacheSet = _RKL_LRU_CACHE_SET_INIT, rkl_lruDynamicBufferCacheSet = _RKL_LRU_CACHE_SET_INIT; +static RKLBuffer rkl_lruDynamicBuffer[_RKL_LRU_CACHE_SET_WAYS]; +static UniChar rkl_lruFixedUniChar[_RKL_LRU_CACHE_SET_WAYS][_RKL_FIXED_LENGTH]; // This is the fixed sized UTF-16 conversion buffer. +static RKLBuffer rkl_lruFixedBuffer[_RKL_LRU_CACHE_SET_WAYS] = {{NULL, 0UL, 0L, &rkl_lruFixedUniChar[0][0]}, {NULL, 0UL, 0L, &rkl_lruFixedUniChar[1][0]}, {NULL, 0UL, 0L, &rkl_lruFixedUniChar[2][0]}, {NULL, 0UL, 0L, &rkl_lruFixedUniChar[3][0]}}; +static RKLCachedRegex rkl_cachedRegexes[_RKL_REGEX_CACHE_LINES]; +#if defined(__GNUC__) && (__GNUC__ == 4) && defined(__GNUC_MINOR__) && (__GNUC_MINOR__ == 2) +static RKLCachedRegex * volatile rkl_lastCachedRegex; // XXX This is a work around for what appears to be a optimizer code generation bug in GCC 4.2. +#else +static RKLCachedRegex *rkl_lastCachedRegex; +#endif // defined(__GNUC__) && (__GNUC__ == 4) && defined(__GNUC_MINOR__) && (__GNUC_MINOR__ == 2) +static RKLLRUCacheSet_t rkl_cachedRegexCacheSets[_RKL_REGEX_LRU_CACHE_SETS] = { [0 ... (_RKL_REGEX_LRU_CACHE_SETS - 1UL)] = _RKL_LRU_CACHE_SET_INIT }; +static RKLLookasideCache_t rkl_regexLookasideCache[_RKL_REGEX_LOOKASIDE_CACHE_SIZE] RKL_ALIGNED(64); +static OSSpinLock rkl_cacheSpinLock = OS_SPINLOCK_INIT; +static const UniChar rkl_emptyUniCharString[1]; // For safety, icu_regexes are 'set' to this when the string they were searched is cleared. +static RKL_STRONG_REF void * RKL_GC_VOLATILE rkl_scratchBuffer[_RKL_SCRATCH_BUFFERS]; // Used to hold temporary allocations that are allocated via reallocf(). + +//////////// +#pragma mark - +#pragma mark CFArray and CFDictionary call backs -// ICU functions. See http://www.icu-project.org/apiref/icu4c/uregex_8h.html Tweaked slightly from the originals, but functionally identical. -const char *u_errorName (int32_t status); -int32_t u_strlen (const UniChar *s); -int32_t uregex_appendReplacement (uregex *regexp, const UniChar *replacementText, int32_t replacementLength, UniChar **destBuf, int32_t *destCapacity, int32_t *status); -int32_t uregex_appendTail (uregex *regexp, UniChar **destBuf, int32_t *destCapacity, int32_t *status); -void uregex_close (uregex *regexp); -int32_t uregex_end (uregex *regexp, int32_t groupNum, int32_t *status); -BOOL uregex_find (uregex *regexp, int32_t location, int32_t *status); -BOOL uregex_findNext (uregex *regexp, int32_t *status); -int32_t uregex_groupCount (uregex *regexp, int32_t *status); -uregex *uregex_open (const UniChar *pattern, int32_t patternLength, RKLRegexOptions flags, UParseError *parseError, int32_t *status); -void uregex_reset (uregex *regexp, int32_t newIndex, int32_t *status); -void uregex_setText (uregex *regexp, const UniChar *text, int32_t textLength, int32_t *status); -int32_t uregex_split (uregex *regexp, UniChar *destBuf, int32_t destCapacity, int32_t *requiredCapacity, UniChar *destFields[], int32_t destFieldsCapacity, int32_t *status); -int32_t uregex_start (uregex *regexp, int32_t groupNum, int32_t *status); - - -static RKLCacheSlot *getCachedRegex (NSString *regexString, RKLRegexOptions options, NSError **error, id *exception); -static BOOL setCacheSlotToString (RKLCacheSlot *cacheSlot, const NSRange *range, int32_t *status, id *exception); -static RKLCacheSlot *getCachedRegexSetToString (NSString *regexString, RKLRegexOptions options, NSString *matchString, NSUInteger *matchLengthPtr, NSRange *matchRange, NSError **error, id *exception, int32_t *status); -static id performRegexOp (id self, SEL _cmd, RKLRegexOp doRegexOp, NSString *regexString, RKLRegexOptions options, NSInteger capture, id matchString, NSRange *matchRange, NSString *replacementString, NSError **error, void **result); - -static void rkl_find (RKLCacheSlot *cacheSlot, NSInteger capture, NSRange searchRange, NSRange *resultRange, id *exception, int32_t *status); -static NSArray *rkl_splitArray (RKLCacheSlot *cacheSlot, id *exception, int32_t *status); -static NSString *rkl_replaceString (RKLCacheSlot *cacheSlot, id searchString, NSUInteger searchU16Length, NSString *replacementString, NSUInteger replacementU16Length, NSUInteger *replacedCount, int replaceMutable, id *exception, int32_t *status); -static int32_t rkl_replaceAll (RKLCacheSlot *cacheSlot, const UniChar *replacementUniChar, int32_t replacementU16Length, UniChar *replacedUniChar, int32_t replacedU16Capacity, NSUInteger *replacedCount, id *exception, int32_t *status); - -static void rkl_clearStringCache (void); -static void clearBuffer (RKLBuffer *buffer, int freeDynamicBuffer); -static void clearCacheSlotRegex (RKLCacheSlot *cacheSlot); -static void clearCacheSlotSetTo (RKLCacheSlot *cacheSlot); - -static NSDictionary *userInfoDictionary (NSString *regexString, RKLRegexOptions options, const UParseError *parseError, int status, ...); -static NSError *RKLNSErrorForRegex (NSString *regexString, RKLRegexOptions options, const UParseError *parseError, int status); -static NSException *RKLNSExceptionForRegex (NSString *regexString, RKLRegexOptions options, const UParseError *parseError, int status); -static NSDictionary *RKLCAssertDictionary (const char *function, const char *file, int line, NSString *format, ...); -static NSString *RKLStringFromClassAndMethod(id object, SEL selector, NSString *format, ...); - -#ifdef __OBJC_GC__ +// These are used when running under manual memory management for the array that rkl_splitArray creates. +// The split strings are created, but not autoreleased. The (immutable) array is created using these callbacks, which skips the CFRetain() call, effectively transferring ownership to the CFArray object. +// For each split string this saves the overhead of an autorelease, then an array retain, then an NSAutoreleasePool release. This is good for a ~30% speed increase. + +static void rkl_CFCallbackRelease(CFAllocatorRef allocator RKL_UNUSED_ARG, const void *ptr) { CFRelease((CFTypeRef)ptr); } +static const CFArrayCallBacks rkl_transferOwnershipArrayCallBacks = { (CFIndex)0L, NULL, rkl_CFCallbackRelease, CFCopyDescription, CFEqual }; +static const CFDictionaryKeyCallBacks rkl_transferOwnershipDictionaryKeyCallBacks = { (CFIndex)0L, NULL, rkl_CFCallbackRelease, CFCopyDescription, CFEqual, CFHash }; +static const CFDictionaryValueCallBacks rkl_transferOwnershipDictionaryValueCallBacks = { (CFIndex)0L, NULL, rkl_CFCallbackRelease, CFCopyDescription, CFEqual }; + +#ifdef __OBJC_GC__ +//////////// +#pragma mark - +#pragma mark Low-level Garbage Collection aware memory/resource allocation utilities // If compiled with Garbage Collection, we need to be able to do a few things slightly differently. // The basic premiss is that under GC we use a trampoline function pointer which is set to a _start function to catch the first invocation. // The _start function checks if GC is running and then overwrites the function pointer with the appropriate routine. Think of it as 'lazy linking'. +enum { RKLScannedOption = NSScannedOption }; + // rkl_collectingEnabled uses objc_getClass() to get the NSGarbageCollector class, which doesn't exist on earlier systems. // This allows for graceful failure should we find ourselves running on an earlier version of the OS without NSGarbageCollector. static BOOL rkl_collectingEnabled_first (void); static BOOL rkl_collectingEnabled_yes (void) { return(YES); } -static BOOL rkl_collectingEnabled_no (void) { return(NO); } +static BOOL rkl_collectingEnabled_no (void) { return(NO); } static BOOL(*rkl_collectingEnabled) (void) = rkl_collectingEnabled_first; -static BOOL rkl_collectingEnabled_first (void) { return((([objc_getClass("NSGarbageCollector") defaultCollector]!=NULL) ? (rkl_collectingEnabled=rkl_collectingEnabled_yes) : (rkl_collectingEnabled=rkl_collectingEnabled_no))()); } - -static void *rkl_realloc_first (void **ptr, size_t size, NSUInteger flags); -static void *rkl_realloc_std (void **ptr, size_t size, NSUInteger flags) { flags=flags; /*unused*/ return((*ptr = reallocf(*ptr, size))); } -static void *rkl_realloc_gc (void **ptr, size_t size, NSUInteger flags) { void *p=NULL; if(flags!=0) { p=NSAllocateCollectable((NSUInteger)size,flags); if(*ptr!=NULL) { free(*ptr); *ptr=NULL; } } else { p=*ptr=reallocf(*ptr, size); } return(p); } -static void *(*rkl_realloc) (void **ptr, size_t size, NSUInteger flags) = rkl_realloc_first; -static void *rkl_realloc_first (void **ptr, size_t size, NSUInteger flags) { return(((rkl_collectingEnabled()==YES) ? (rkl_realloc=rkl_realloc_gc) : (rkl_realloc=rkl_realloc_std))(ptr, size, flags)); } +static BOOL rkl_collectingEnabled_first (void) { + BOOL gcEnabled = ([objc_getClass("NSGarbageCollector") defaultCollector] != NULL) ? YES : NO; + if(gcEnabled == YES) { + // This section of code is required due to what I consider to be a fundamental design flaw in Cocoas GC system. + // Earlier versions of "Garbage Collection Programming Guide" stated that (paraphrased) "all globals are automatically roots". + // Current versions of the guide now include the following warning: + // "You may pass addresses of strong globals or statics into routines expecting pointers to object pointers (such as id* or NSError**) + // only if they have first been assigned to directly, rather than through a pointer dereference." + // This is a surprisingly non-trivial condition to actually meet in practice and is a recipe for impossible to debug race condition bugs. + // We just happen to be very, very, very lucky in the fact that we can initialize our root set before the first use. + NSUInteger x = 0UL; + for(x = 0UL; x < _RKL_SCRATCH_BUFFERS; x++) { rkl_scratchBuffer[x] = NSAllocateCollectable(16UL, 0UL); rkl_scratchBuffer[x] = NULL; } + for(x = 0UL; x < _RKL_LRU_CACHE_SET_WAYS; x++) { rkl_lruDynamicBuffer[x].uniChar = NSAllocateCollectable(16UL, 0UL); rkl_lruDynamicBuffer[x].uniChar = NULL; } + } + return((rkl_collectingEnabled = (gcEnabled == YES) ? rkl_collectingEnabled_yes : rkl_collectingEnabled_no)()); +} +// rkl_realloc() +static void *rkl_realloc_first (RKL_STRONG_REF void ** RKL_GC_VOLATILE ptr, size_t size, NSUInteger flags); +static void *rkl_realloc_std (RKL_STRONG_REF void ** RKL_GC_VOLATILE ptr, size_t size, NSUInteger flags RKL_UNUSED_ARG) { return((*ptr = reallocf(*ptr, size))); } +static void *rkl_realloc_gc (RKL_STRONG_REF void ** RKL_GC_VOLATILE ptr, size_t size, NSUInteger flags) { return((*ptr = NSReallocateCollectable(*ptr, (NSUInteger)size, flags))); } +static void *(*rkl_realloc) (RKL_STRONG_REF void ** RKL_GC_VOLATILE ptr, size_t size, NSUInteger flags) RKL_ALLOC_SIZE_NON_NULL_ARGS_WARN_UNUSED(2,1) = rkl_realloc_first; +static void *rkl_realloc_first (RKL_STRONG_REF void ** RKL_GC_VOLATILE ptr, size_t size, NSUInteger flags) { if(rkl_collectingEnabled()==YES) { rkl_realloc = rkl_realloc_gc; } else { rkl_realloc = rkl_realloc_std; } return(rkl_realloc(ptr, size, flags)); } + +// rkl_free() +static void * rkl_free_first (RKL_STRONG_REF void ** RKL_GC_VOLATILE ptr); +static void * rkl_free_std (RKL_STRONG_REF void ** RKL_GC_VOLATILE ptr) { if(*ptr != NULL) { free(*ptr); *ptr = NULL; } return(NULL); } +static void * rkl_free_gc (RKL_STRONG_REF void ** RKL_GC_VOLATILE ptr) { if(*ptr != NULL) { *ptr = NULL; } return(NULL); } +static void *(*rkl_free) (RKL_STRONG_REF void ** RKL_GC_VOLATILE ptr) RKL_NONNULL_ARGS(1) = rkl_free_first; +static void *rkl_free_first (RKL_STRONG_REF void ** RKL_GC_VOLATILE ptr) { if(rkl_collectingEnabled()==YES) { rkl_free = rkl_free_gc; } else { rkl_free = rkl_free_std; } return(rkl_free(ptr)); } + +// rkl_CFAutorelease() static id rkl_CFAutorelease_first (CFTypeRef obj); -static id rkl_CFAutorelease_std (CFTypeRef obj) { return([(id)obj autorelease]); } -static id rkl_CFAutorelease_gc (CFTypeRef obj) { return((id)CFMakeCollectable(obj)); } +static id rkl_CFAutorelease_std (CFTypeRef obj) { return([(id)obj autorelease]); } +static id rkl_CFAutorelease_gc (CFTypeRef obj) { return(NSMakeCollectable(obj)); } static id(*rkl_CFAutorelease) (CFTypeRef obj) = rkl_CFAutorelease_first; -static id rkl_CFAutorelease_first (CFTypeRef obj) { return(((rkl_collectingEnabled()==YES) ? (rkl_CFAutorelease=rkl_CFAutorelease_gc) : (rkl_CFAutorelease=rkl_CFAutorelease_std))(obj)); } +static id rkl_CFAutorelease_first (CFTypeRef obj) { return((rkl_CFAutorelease = (rkl_collectingEnabled()==YES) ? rkl_CFAutorelease_gc : rkl_CFAutorelease_std)(obj)); } + +// rkl_CreateStringWithSubstring() +static id rkl_CreateStringWithSubstring_first (id string, NSRange range); +static id rkl_CreateStringWithSubstring_std (id string, NSRange range) { return((id)CFStringCreateWithSubstring(NULL, (CFStringRef)string, CFMakeRange((CFIndex)range.location, (CFIndex)range.length))); } +static id rkl_CreateStringWithSubstring_gc (id string, NSRange range) { return([string substringWithRange:range]); } +static id(*rkl_CreateStringWithSubstring) (id string, NSRange range) RKL_WARN_UNUSED_NONNULL_ARGS(1) = rkl_CreateStringWithSubstring_first; +static id rkl_CreateStringWithSubstring_first (id string, NSRange range) { return((rkl_CreateStringWithSubstring = (rkl_collectingEnabled()==YES) ? rkl_CreateStringWithSubstring_gc : rkl_CreateStringWithSubstring_std)(string, range)); } + +// rkl_ReleaseObject() +static id rkl_ReleaseObject_first (id obj); +static id rkl_ReleaseObject_std (id obj) { CFRelease((CFTypeRef)obj); return(NULL); } +static id rkl_ReleaseObject_gc (id obj RKL_UNUSED_ARG) { return(NULL); } +static id (*rkl_ReleaseObject) (id obj) RKL_NONNULL_ARGS(1) = rkl_ReleaseObject_first; +static id rkl_ReleaseObject_first (id obj) { return((rkl_ReleaseObject = (rkl_collectingEnabled()==YES) ? rkl_ReleaseObject_gc : rkl_ReleaseObject_std)(obj)); } + +// rkl_CreateArrayWithObjects() +static id rkl_CreateArrayWithObjects_first (void **objects, NSUInteger count); +static id rkl_CreateArrayWithObjects_std (void **objects, NSUInteger count) { return((id)CFArrayCreate(NULL, (const void **)objects, (CFIndex)count, &rkl_transferOwnershipArrayCallBacks)); } +static id rkl_CreateArrayWithObjects_gc (void **objects, NSUInteger count) { return([NSArray arrayWithObjects:(const id *)objects count:count]); } +static id(*rkl_CreateArrayWithObjects) (void **objects, NSUInteger count) RKL_WARN_UNUSED_NONNULL_ARGS(1) = rkl_CreateArrayWithObjects_first; +static id rkl_CreateArrayWithObjects_first (void **objects, NSUInteger count) { return((rkl_CreateArrayWithObjects = (rkl_collectingEnabled()==YES) ? rkl_CreateArrayWithObjects_gc : rkl_CreateArrayWithObjects_std)(objects, count)); } + +// rkl_CreateAutoreleasedArray() +static id rkl_CreateAutoreleasedArray_first (void **objects, NSUInteger count); +static id rkl_CreateAutoreleasedArray_std (void **objects, NSUInteger count) { return((id)rkl_CFAutorelease(rkl_CreateArrayWithObjects(objects, count))); } +static id rkl_CreateAutoreleasedArray_gc (void **objects, NSUInteger count) { return( rkl_CreateArrayWithObjects(objects, count) ); } +static id(*rkl_CreateAutoreleasedArray) (void **objects, NSUInteger count) RKL_WARN_UNUSED_NONNULL_ARGS(1) = rkl_CreateAutoreleasedArray_first; +static id rkl_CreateAutoreleasedArray_first (void **objects, NSUInteger count) { return((rkl_CreateAutoreleasedArray = (rkl_collectingEnabled()==YES) ? rkl_CreateAutoreleasedArray_gc : rkl_CreateAutoreleasedArray_std)(objects, count)); } #else // __OBJC_GC__ not defined - -static void *rkl_realloc (void **ptr, size_t size, NSUInteger flags) { flags=flags; /*unused*/ return((*ptr = reallocf(*ptr, size))); } -static id rkl_CFAutorelease (CFTypeRef obj) { return([(id)obj autorelease]); } +//////////// +#pragma mark - +#pragma mark Low-level explicit memory/resource allocation utilities + +enum { RKLScannedOption = 0 }; + +#define rkl_collectingEnabled() (NO) + +RKL_STATIC_INLINE void *rkl_realloc (void **ptr, size_t size, NSUInteger flags) RKL_ALLOC_SIZE_NON_NULL_ARGS_WARN_UNUSED(2,1); +RKL_STATIC_INLINE void *rkl_free (void **ptr) RKL_NONNULL_ARGS(1); +RKL_STATIC_INLINE id rkl_CFAutorelease (CFTypeRef obj) RKL_WARN_UNUSED_NONNULL_ARGS(1); +RKL_STATIC_INLINE id rkl_CreateAutoreleasedArray (void **objects, NSUInteger count) RKL_WARN_UNUSED_NONNULL_ARGS(1); +RKL_STATIC_INLINE id rkl_CreateArrayWithObjects (void **objects, NSUInteger count) RKL_WARN_UNUSED_NONNULL_ARGS(1); +RKL_STATIC_INLINE id rkl_CreateStringWithSubstring (id string, NSRange range) RKL_WARN_UNUSED_NONNULL_ARGS(1); +RKL_STATIC_INLINE id rkl_ReleaseObject (id obj) RKL_NONNULL_ARGS(1); + +RKL_STATIC_INLINE void *rkl_realloc (void **ptr, size_t size, NSUInteger flags RKL_UNUSED_ARG) { return((*ptr = reallocf(*ptr, size))); } +RKL_STATIC_INLINE void *rkl_free (void **ptr) { if(*ptr != NULL) { free(*ptr); *ptr = NULL; } return(NULL); } +RKL_STATIC_INLINE id rkl_CFAutorelease (CFTypeRef obj) { return([(id)obj autorelease]); } +RKL_STATIC_INLINE id rkl_CreateArrayWithObjects (void **objects, NSUInteger count) { return((id)CFArrayCreate(NULL, (const void **)objects, (CFIndex)count, &rkl_transferOwnershipArrayCallBacks)); } +RKL_STATIC_INLINE id rkl_CreateAutoreleasedArray (void **objects, NSUInteger count) { return(rkl_CFAutorelease(rkl_CreateArrayWithObjects(objects, count))); } +RKL_STATIC_INLINE id rkl_CreateStringWithSubstring (id string, NSRange range) { return((id)CFStringCreateWithSubstring(NULL, (CFStringRef)string, CFMakeRange((CFIndex)range.location, (CFIndex)range.length))); } +RKL_STATIC_INLINE id rkl_ReleaseObject (id obj) { CFRelease((CFTypeRef)obj); return(NULL); } #endif // __OBJC_GC__ +//////////// +#pragma mark - +#pragma mark ICU function prototypes + +// ICU functions. See http://www.icu-project.org/apiref/icu4c/uregex_8h.html Tweaked slightly from the originals, but functionally identical. +const char *RKL_ICU_FUNCTION_APPEND(u_errorName) ( int32_t status) RKL_WARN_UNUSED_PURE; +int32_t RKL_ICU_FUNCTION_APPEND(u_strlen) (const UniChar *s) RKL_WARN_UNUSED_PURE_NONNULL_ARGS(1); +int32_t RKL_ICU_FUNCTION_APPEND(uregex_appendReplacement) ( uregex *regexp, const UniChar *replacementText, int32_t replacementLength, UniChar **destBuf, int32_t *destCapacity, int32_t *status) RKL_WARN_UNUSED_NONNULL_ARGS(1,2,4,5,6); +int32_t RKL_ICU_FUNCTION_APPEND(uregex_appendTail) ( uregex *regexp, UniChar **destBuf, int32_t *destCapacity, int32_t *status) RKL_WARN_UNUSED_NONNULL_ARGS(1,2,3,4); +void RKL_ICU_FUNCTION_APPEND(uregex_close) ( uregex *regexp) RKL_NONNULL_ARGS(1); +int32_t RKL_ICU_FUNCTION_APPEND(uregex_end) ( uregex *regexp, int32_t groupNum, int32_t *status) RKL_WARN_UNUSED_NONNULL_ARGS(1,3); +BOOL RKL_ICU_FUNCTION_APPEND(uregex_find) ( uregex *regexp, int32_t location, int32_t *status) RKL_WARN_UNUSED_NONNULL_ARGS(1,3); +BOOL RKL_ICU_FUNCTION_APPEND(uregex_findNext) ( uregex *regexp, int32_t *status) RKL_WARN_UNUSED_NONNULL_ARGS(1,2); +int32_t RKL_ICU_FUNCTION_APPEND(uregex_groupCount) ( uregex *regexp, int32_t *status) RKL_WARN_UNUSED_NONNULL_ARGS(1,2); +uregex *RKL_ICU_FUNCTION_APPEND(uregex_open) (const UniChar *pattern, int32_t patternLength, RKLRegexOptions flags, UParseError *parseError, int32_t *status) RKL_WARN_UNUSED_NONNULL_ARGS(1,4,5); +void RKL_ICU_FUNCTION_APPEND(uregex_reset) ( uregex *regexp, int32_t newIndex, int32_t *status) RKL_NONNULL_ARGS(1,3); +void RKL_ICU_FUNCTION_APPEND(uregex_setText) ( uregex *regexp, const UniChar *text, int32_t textLength, int32_t *status) RKL_NONNULL_ARGS(1,2,4); +int32_t RKL_ICU_FUNCTION_APPEND(uregex_start) ( uregex *regexp, int32_t groupNum, int32_t *status) RKL_WARN_UNUSED_NONNULL_ARGS(1,3); +uregex *RKL_ICU_FUNCTION_APPEND(uregex_clone) (const uregex *regexp, int32_t *status) RKL_WARN_UNUSED_NONNULL_ARGS(1,2); + +//////////// +#pragma mark - +#pragma mark RegexKitLite internal, private function prototypes + +// Functions used for managing the 4-way set associative LRU cache and regex string hash lookaside cache. +RKL_STATIC_INLINE NSUInteger rkl_leastRecentlyUsedWayInSet ( NSUInteger cacheSetsCount, const RKLLRUCacheSet_t cacheSetsArray[cacheSetsCount], NSUInteger set) RKL_WARN_UNUSED_NONNULL_ARGS(2); +RKL_STATIC_INLINE void rkl_accessCacheSetWay ( NSUInteger cacheSetsCount, RKLLRUCacheSet_t cacheSetsArray[cacheSetsCount], NSUInteger set, NSUInteger way) RKL_NONNULL_ARGS(2); +RKL_STATIC_INLINE NSUInteger rkl_regexLookasideCacheIndexForPointerAndOptions (const void *ptr, RKLRegexOptions options) RKL_WARN_UNUSED_NONNULL_ARGS(1); +RKL_STATIC_INLINE void rkl_setRegexLookasideCacheToCachedRegexForPointer (const RKLCachedRegex *cachedRegex, const void *ptr) RKL_NONNULL_ARGS(1,2); +RKL_STATIC_INLINE RKLCachedRegex *rkl_cachedRegexFromRegexLookasideCacheForString (const void *ptr, RKLRegexOptions options) RKL_WARN_UNUSED_NONNULL_ARGS(1); +RKL_STATIC_INLINE NSUInteger rkl_makeCacheSetHash ( CFHashCode regexHash, RKLRegexOptions options) RKL_WARN_UNUSED; +RKL_STATIC_INLINE NSUInteger rkl_cacheSetForRegexHashAndOptions ( CFHashCode regexHash, RKLRegexOptions options) RKL_WARN_UNUSED; +RKL_STATIC_INLINE NSUInteger rkl_cacheWayForCachedRegex (const RKLCachedRegex *cachedRegex) RKL_WARN_UNUSED_NONNULL_ARGS(1); +RKL_STATIC_INLINE NSUInteger rkl_cacheSetForCachedRegex (const RKLCachedRegex *cachedRegex) RKL_WARN_UNUSED_NONNULL_ARGS(1); +RKL_STATIC_INLINE RKLCachedRegex *rkl_cachedRegexForCacheSetAndWay ( NSUInteger cacheSet, NSUInteger cacheWay) RKL_WARN_UNUSED; +RKL_STATIC_INLINE RKLCachedRegex *rkl_cachedRegexForRegexHashAndOptionsAndWay ( CFHashCode regexHash, RKLRegexOptions options, NSUInteger cacheWay) RKL_WARN_UNUSED; +RKL_STATIC_INLINE void rkl_updateCachesWithCachedRegex ( RKLCachedRegex *cachedRegex, const void *ptr, int hitOrMiss RKL_UNUSED_DTRACE_ARG, int status RKL_UNUSED_DTRACE_ARG) RKL_NONNULL_ARGS(1,2); +RKL_STATIC_INLINE RKLCachedRegex *rkl_leastRecentlyUsedCachedRegexForRegexHashAndOptions ( CFHashCode regexHash, RKLRegexOptions options) RKL_WARN_UNUSED; + +static RKLCachedRegex *rkl_getCachedRegex (NSString *regexString, RKLRegexOptions options, NSError **error, id *exception) RKL_WARN_UNUSED_NONNULL_ARGS(1,4); +static NSUInteger rkl_setCachedRegexToString (RKLCachedRegex *cachedRegex, const NSRange *range, int32_t *status, id *exception RKL_UNUSED_ASSERTION_ARG) RKL_WARN_UNUSED_NONNULL_ARGS(1,2,3,4); +static RKLCachedRegex *rkl_getCachedRegexSetToString (NSString *regexString, RKLRegexOptions options, NSString *matchString, NSUInteger *matchLengthPtr, NSRange *matchRange, NSError **error, id *exception, int32_t *status) RKL_WARN_UNUSED_NONNULL_ARGS(1,3,4,5,7,8); +static id rkl_performDictionaryVarArgsOp(id self, SEL _cmd, RKLRegexOp regexOp, NSString *regexString, RKLRegexOptions options, NSInteger capture, id matchString, NSRange *matchRange, NSString *replacementString, NSError **error, void *result, id firstKey, va_list varArgsList) RKL_NONNULL_ARGS(1,2); +static id rkl_performRegexOp (id self, SEL _cmd, RKLRegexOp regexOp, NSString *regexString, RKLRegexOptions options, NSInteger capture, id matchString, NSRange *matchRange, NSString *replacementString, NSError **error, void *result, NSUInteger captureKeysCount, id captureKeys[captureKeysCount], const int captureKeyIndexes[captureKeysCount]) RKL_NONNULL_ARGS(1,2); +static void rkl_handleDelayedAssert (id self, SEL _cmd, id exception) RKL_NONNULL_ARGS(3); + +static NSUInteger rkl_search (RKLCachedRegex *cachedRegex, NSRange *searchRange, NSUInteger updateSearchRange, id *exception RKL_UNUSED_ASSERTION_ARG, int32_t *status) RKL_WARN_UNUSED_NONNULL_ARGS(1,2,4,5); + +static BOOL rkl_findRanges (RKLCachedRegex *cachedRegex, RKLRegexOp regexOp, RKLFindAll *findAll, id *exception, int32_t *status) RKL_WARN_UNUSED_NONNULL_ARGS(1,3,4,5); +static NSUInteger rkl_growFindRanges (RKLCachedRegex *cachedRegex, NSUInteger lastLocation, RKLFindAll *findAll, id *exception RKL_UNUSED_ASSERTION_ARG) RKL_WARN_UNUSED_NONNULL_ARGS(1,3,4); +static NSArray *rkl_makeArray (RKLCachedRegex *cachedRegex, RKLRegexOp regexOp, RKLFindAll *findAll, id *exception RKL_UNUSED_ASSERTION_ARG) RKL_WARN_UNUSED_NONNULL_ARGS(1,3,4); +static id rkl_makeDictionary (RKLCachedRegex *cachedRegex, RKLRegexOp regexOp, RKLFindAll *findAll, NSUInteger captureKeysCount, id captureKeys[captureKeysCount], const int captureKeyIndexes[captureKeysCount], id *exception RKL_UNUSED_ASSERTION_ARG) RKL_WARN_UNUSED_NONNULL_ARGS(1,3,5,6); + +static NSString *rkl_replaceString (RKLCachedRegex *cachedRegex, id searchString, NSUInteger searchU16Length, NSString *replacementString, NSUInteger replacementU16Length, NSInteger *replacedCount, NSUInteger replaceMutable, id *exception, int32_t *status) RKL_WARN_UNUSED_NONNULL_ARGS(1,2,4,8,9); +static int32_t rkl_replaceAll (RKLCachedRegex *cachedRegex, RKL_STRONG_REF const UniChar * RKL_GC_VOLATILE replacementUniChar, int32_t replacementU16Length, UniChar *replacedUniChar, int32_t replacedU16Capacity, NSInteger *replacedCount, int32_t *needU16Capacity, id *exception RKL_UNUSED_ASSERTION_ARG, int32_t *status) RKL_WARN_UNUSED_NONNULL_ARGS(1,2,4,6,7,8,9); + +static NSUInteger rkl_isRegexValid (id self, SEL _cmd, NSString *regex, RKLRegexOptions options, NSInteger *captureCountPtr, NSError **error) RKL_NONNULL_ARGS(1,2); + +static void rkl_clearStringCache (void); +static void rkl_clearBuffer (RKLBuffer *buffer, NSUInteger freeDynamicBuffer) RKL_NONNULL_ARGS(1); +static void rkl_clearCachedRegex (RKLCachedRegex *cachedRegex) RKL_NONNULL_ARGS(1); +static void rkl_clearCachedRegexSetTo (RKLCachedRegex *cachedRegex) RKL_NONNULL_ARGS(1); + +static NSDictionary *rkl_userInfoDictionary (RKLUserInfoOptions userInfoOptions, NSString *regexString, RKLRegexOptions options, const UParseError *parseError, int32_t status, NSString *matchString, NSRange matchRange, NSString *replacementString, NSString *replacedString, NSInteger replacedCount, RKLRegexEnumerationOptions enumerationOptions, ...) RKL_WARN_UNUSED_SENTINEL; +static NSError *rkl_makeNSError (RKLUserInfoOptions userInfoOptions, NSString *regexString, RKLRegexOptions options, const UParseError *parseError, int32_t status, NSString *matchString, NSRange matchRange, NSString *replacementString, NSString *replacedString, NSInteger replacedCount, RKLRegexEnumerationOptions enumerationOptions, NSString *errorDescription) RKL_WARN_UNUSED; + +static NSException *rkl_NSExceptionForRegex (NSString *regexString, RKLRegexOptions options, const UParseError *parseError, int32_t status) RKL_WARN_UNUSED_NONNULL_ARGS(1); +static NSDictionary *rkl_makeAssertDictionary (const char *function, const char *file, int line, NSString *format, ...) RKL_WARN_UNUSED_NONNULL_ARGS(1,2,4); +static NSString *rkl_stringFromClassAndMethod (id object, SEL selector, NSString *format, ...) RKL_WARN_UNUSED_NONNULL_ARGS(3); + +RKL_STATIC_INLINE int32_t rkl_getRangeForCapture(RKLCachedRegex *cr, int32_t *s, int32_t c, NSRange *r) RKL_WARN_UNUSED_NONNULL_ARGS(1,2,4); +RKL_STATIC_INLINE int32_t rkl_getRangeForCapture(RKLCachedRegex *cr, int32_t *s, int32_t c, NSRange *r) { uregex *re = cr->icu_regex; int32_t start = RKL_ICU_FUNCTION_APPEND(uregex_start)(re, c, s); if(RKL_EXPECTED((*s > U_ZERO_ERROR), 0L) || (start == -1)) { *r = NSNotFoundRange; } else { r->location = (NSUInteger)start; r->length = (NSUInteger)RKL_ICU_FUNCTION_APPEND(uregex_end)(re, c, s) - r->location; r->location += cr->setToRange.location; } return(*s); } + +RKL_STATIC_INLINE RKLFindAll rkl_makeFindAll(RKL_STRONG_REF NSRange * RKL_GC_VOLATILE r, NSRange fir, NSInteger c, size_t s, size_t su, RKL_STRONG_REF void ** RKL_GC_VOLATILE rsb, RKL_STRONG_REF void ** RKL_GC_VOLATILE ssb, RKL_STRONG_REF void ** RKL_GC_VOLATILE asb, RKL_STRONG_REF void ** RKL_GC_VOLATILE dsb, RKL_STRONG_REF void ** RKL_GC_VOLATILE ksb, NSInteger f, NSInteger cap, NSInteger fut) RKL_WARN_UNUSED_CONST; +RKL_STATIC_INLINE RKLFindAll rkl_makeFindAll(RKL_STRONG_REF NSRange * RKL_GC_VOLATILE r, NSRange fir, NSInteger c, size_t s, size_t su, RKL_STRONG_REF void ** RKL_GC_VOLATILE rsb, RKL_STRONG_REF void ** RKL_GC_VOLATILE ssb, RKL_STRONG_REF void ** RKL_GC_VOLATILE asb, RKL_STRONG_REF void ** RKL_GC_VOLATILE dsb, RKL_STRONG_REF void ** RKL_GC_VOLATILE ksb, NSInteger f, NSInteger cap, NSInteger fut) { return(((RKLFindAll){ .ranges=r, .findInRange=fir, .remainingRange=fir, .capacity=c, .found=f, .findUpTo=fut, .capture=cap, .addedSplitRanges=0L, .size=s, .stackUsed=su, .rangesScratchBuffer=rsb, .stringsScratchBuffer=ssb, .arraysScratchBuffer=asb, .dictionariesScratchBuffer=dsb, .keysScratchBuffer=ksb})); } + +//////////// +#pragma mark - +#pragma mark RKL_FAST_MUTABLE_CHECK implementation + #ifdef RKL_FAST_MUTABLE_CHECK // We use a trampoline function pointer to check at run time if the function __CFStringIsMutable is available. // If it is, the trampoline function pointer is replaced with the address of that function. -// Otherwise, we assume the worst case that ever string is mutable. +// Otherwise, we assume the worst case that every string is mutable. // This hopefully helps to protect us since we're using an undocumented, non-public API call. // We will keep on working if it ever does go away, just with a bit less performance due to the overhead of mutable checks. + static BOOL rkl_CFStringIsMutable_first (CFStringRef str); -static BOOL rkl_CFStringIsMutable_yes (CFStringRef str) { str=str; /*unused*/ return(YES); } +static BOOL rkl_CFStringIsMutable_yes (CFStringRef str RKL_UNUSED_ARG) { return(YES); } static BOOL(*rkl_CFStringIsMutable) (CFStringRef str) = rkl_CFStringIsMutable_first; -static BOOL rkl_CFStringIsMutable_first (CFStringRef str) { if((rkl_CFStringIsMutable = dlsym(RTLD_DEFAULT, "__CFStringIsMutable")) == NULL) { rkl_CFStringIsMutable = rkl_CFStringIsMutable_yes; } return(rkl_CFStringIsMutable(str)); } -#else // RKL_FAST_MUTABLE_CHECK is not defined. Assume that all strings are potentially mutable. +static BOOL rkl_CFStringIsMutable_first (CFStringRef str) { if((rkl_CFStringIsMutable = (BOOL(*)(CFStringRef))dlsym(RTLD_DEFAULT, "__CFStringIsMutable")) == NULL) { rkl_CFStringIsMutable = rkl_CFStringIsMutable_yes; } return(rkl_CFStringIsMutable(str)); } +#else // RKL_FAST_MUTABLE_CHECK is not defined. Assume that all strings are potentially mutable. #define rkl_CFStringIsMutable(s) (YES) -#endif -BOOL __CFStringIsMutable(CFStringRef str); - -// Translation unit scope global variables. +#endif // RKL_FAST_MUTABLE_CHECK -static UniChar fixedUniChar[(RKL_FIXED_LENGTH)]; // This is the fixed sized UTF-16 conversion buffer. -static RKLCacheSlot RKLCache[(RKL_CACHE_SIZE)], *lastCacheSlot; -static OSSpinLock cacheSpinLock = OS_SPINLOCK_INIT; -static RKLBuffer dynamicBuffer, fixedBuffer = {NULL, 0UL, 0L, &fixedUniChar[0]}; -static const UniChar emptyUniCharString[1]; // For safety, icu_regexes are 'set' to this when the string they were searched is cleared. -static void *scratchBuffer[(SCRATCH_BUFFERS)]; // Used to hold temporary allocations that are allocated via reallocf(). - -// These are used when running under manual memory management for the array that rkl_splitArray creates. -// The split strings are created, but not autoreleased. The (immutable) array is created using these callbacks, which skips the CFRetain() call. -// For each split string this saves the overhead of an autorelease, then an array retain, then a autoreleasepool release. This is good for a ~30% speed increase. -static Boolean RKLCFArrayEqualCallBack (const void *value1, const void *value2) { return(CFEqual(value1, value2)); } -static void RKLCFArrayRelease (CFAllocatorRef allocator, const void *ptr) { allocator=allocator;/*unused*/ CFRelease(ptr); } -static CFArrayCallBacks transferOwnershipArrayCallBacks = { 0, NULL, RKLCFArrayRelease, NULL, RKLCFArrayEqualCallBack }; +//////////// +#pragma mark - +#pragma mark iPhone / iPod touch low memory notification handler -#if defined(RKL_REGISTER_FOR_IPHONE_LOWMEM_NOTIFICATIONS) && (RKL_REGISTER_FOR_IPHONE_LOWMEM_NOTIFICATIONS == 1) +#if defined(RKL_REGISTER_FOR_IPHONE_LOWMEM_NOTIFICATIONS) && (RKL_REGISTER_FOR_IPHONE_LOWMEM_NOTIFICATIONS == 1) // The next few lines are specifically for the iPhone to catch low memory conditions. // The basic idea is that rkl_RegisterForLowMemoryNotifications() is set to be run once by the linker at load time via __attribute((constructor)). // rkl_RegisterForLowMemoryNotifications() tries to find the iPhone low memory notification symbol. If it can find it, // it registers with the default NSNotificationCenter to call the RKLLowMemoryWarningObserver class method +lowMemoryWarning:. -// rkl_RegisterForLowMemoryNotifications() uses an atomic compare and swap to guarentee that it initalizes exactly once. +// rkl_RegisterForLowMemoryNotifications() uses an atomic compare and swap to guarantee that it initializes exactly once. // +lowMemoryWarning tries to acquire the cache lock. If it gets the lock, it clears the cache. If it can't, it calls performSelector: // with a delay of half a second to try again. This will hopefully prevent any deadlocks, such as a RegexKitLite request for -// memory triggering a notifcation while the lock is held. +// memory triggering a notification while the lock is held. -static void rkl_RegisterForLowMemoryNotifications(void); +static void rkl_RegisterForLowMemoryNotifications(void) RKL_ATTRIBUTES(used); @interface RKLLowMemoryWarningObserver : NSObject +(void)lowMemoryWarning:(id)notification; @end -@implementation RKLLowMemoryWarningObserver +@implementation RKLLowMemoryWarningObserver +(void)lowMemoryWarning:(id)notification { - if(OSSpinLockTry(&cacheSpinLock)) { rkl_clearStringCache(); OSSpinLockUnlock(&cacheSpinLock); } - else { [[RKLLowMemoryWarningObserver class] performSelector:@selector(lowMemoryWarning:) withObject:NULL afterDelay:0.5]; } + if(OSSpinLockTry(&rkl_cacheSpinLock)) { rkl_clearStringCache(); OSSpinLockUnlock(&rkl_cacheSpinLock); } + else { [[RKLLowMemoryWarningObserver class] performSelector:@selector(lowMemoryWarning:) withObject:notification afterDelay:(NSTimeInterval)0.1]; } } @end -static int rkl_HaveRegisteredForLowMemoryNotifications = 0; +static volatile int rkl_HaveRegisteredForLowMemoryNotifications = 0; __attribute__((constructor)) static void rkl_RegisterForLowMemoryNotifications(void) { - void **memoryWarningNotification = NULL; + _Bool didSwap = false; + void **memoryWarningNotification = NULL; - if(OSAtomicCompareAndSwapIntBarrier(0, 1, &rkl_HaveRegisteredForLowMemoryNotifications)) { - if((memoryWarningNotification = dlsym(RTLD_DEFAULT, "UIApplicationDidReceiveMemoryWarningNotification")) != NULL) { - [[NSNotificationCenter defaultCenter] addObserver:[RKLLowMemoryWarningObserver class] selector:@selector(lowMemoryWarning:) name:*memoryWarningNotification object:NULL]; + while((rkl_HaveRegisteredForLowMemoryNotifications == 0) && ((didSwap = OSAtomicCompareAndSwapIntBarrier(0, 1, &rkl_HaveRegisteredForLowMemoryNotifications)) == false)) { /* Allows for spurious CAS failures. */ } + if(didSwap == true) { + if((memoryWarningNotification = (void **)dlsym(RTLD_DEFAULT, "UIApplicationDidReceiveMemoryWarningNotification")) != NULL) { + [[NSNotificationCenter defaultCenter] addObserver:[RKLLowMemoryWarningObserver class] selector:@selector(lowMemoryWarning:) name:(NSString *)*memoryWarningNotification object:NULL]; } } } -#endif - -// IMPORTANT! This code is critical path code. Because of this, it has been written for speed, not clarity. -// IMPORTANT! Should only be called with cacheSpinLock already locked! -// ---------- +#endif // defined(RKL_REGISTER_FOR_IPHONE_LOWMEM_NOTIFICATIONS) && (RKL_REGISTER_FOR_IPHONE_LOWMEM_NOTIFICATIONS == 1) -static RKLCacheSlot *getCachedRegex(NSString *regexString, RKLRegexOptions options, NSError **error, id *exception) { - RKLCacheSlot *cacheSlot = NULL; - CFHashCode regexHash = 0; - int32_t status = 0; +//////////// +#pragma mark - +#pragma mark DTrace functionality - RKLCDelayedAssert(regexString != NULL, exception, exitNow); +#ifdef _RKL_DTRACE_ENABLED - // Fast path the common case where this regex is exactly the same one used last time. - if((lastCacheSlot != NULL) && (lastCacheSlot->options == options) && (lastCacheSlot->icu_regex != NULL) && (lastCacheSlot->regexString != NULL) && (lastCacheSlot->regexString == (CFStringRef)regexString)) { return(lastCacheSlot); } +// compiledRegexCache(unsigned long eventID, const char *regexUTF8, int options, int captures, int hitMiss, int icuStatusCode, const char *icuErrorMessage, double *hitRate); +// utf16ConversionCache(unsigned long eventID, unsigned int lookupResultFlags, double *hitRate, const void *string, unsigned long NSRange.location, unsigned long NSRange.length, long length); - regexHash = CFHash((CFTypeRef)regexString); - cacheSlot = &RKLCache[(regexHash % RKL_CACHE_SIZE)]; // Retrieve the cache slot for this regex. +/* +provider RegexKitLite { + probe compiledRegexCache(unsigned long, const char *, unsigned int, int, int, int, const char *, double *); + probe utf16ConversionCache(unsigned long, unsigned int, double *, const void *, unsigned long, unsigned long, long); +}; + +#pragma D attributes Unstable/Unstable/Common provider RegexKitLite provider +#pragma D attributes Private/Private/Common provider RegexKitLite module +#pragma D attributes Private/Private/Common provider RegexKitLite function +#pragma D attributes Unstable/Unstable/Common provider RegexKitLite name +#pragma D attributes Unstable/Unstable/Common provider RegexKitLite args +*/ + +#define REGEXKITLITE_STABILITY "___dtrace_stability$RegexKitLite$v1$4_4_5_1_1_5_1_1_5_4_4_5_4_4_5" +#define REGEXKITLITE_TYPEDEFS "___dtrace_typedefs$RegexKitLite$v1" +#define REGEXKITLITE_COMPILEDREGEXCACHE(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7) { __asm__ volatile(".reference " REGEXKITLITE_TYPEDEFS); __dtrace_probe$RegexKitLite$compiledRegexCache$v1$756e7369676e6564206c6f6e67$63686172202a$756e7369676e656420696e74$696e74$696e74$696e74$63686172202a$646f75626c65202a(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7); __asm__ volatile(".reference " REGEXKITLITE_STABILITY); } +#define REGEXKITLITE_COMPILEDREGEXCACHE_ENABLED() __dtrace_isenabled$RegexKitLite$compiledRegexCache$v1() +#define REGEXKITLITE_CONVERTEDSTRINGU16CACHE(arg0, arg1, arg2, arg3, arg4, arg5, arg6) { __asm__ volatile(".reference " REGEXKITLITE_TYPEDEFS); __dtrace_probe$RegexKitLite$utf16ConversionCache$v1$756e7369676e6564206c6f6e67$756e7369676e656420696e74$646f75626c65202a$766f6964202a$756e7369676e6564206c6f6e67$756e7369676e6564206c6f6e67$6c6f6e67(arg0, arg1, arg2, arg3, arg4, arg5, arg6); __asm__ volatile(".reference " REGEXKITLITE_STABILITY); } +#define REGEXKITLITE_CONVERTEDSTRINGU16CACHE_ENABLED() __dtrace_isenabled$RegexKitLite$utf16ConversionCache$v1() + +extern void __dtrace_probe$RegexKitLite$compiledRegexCache$v1$756e7369676e6564206c6f6e67$63686172202a$756e7369676e656420696e74$696e74$696e74$696e74$63686172202a$646f75626c65202a(unsigned long, const char *, unsigned int, int, int, int, const char *, double *); +extern int __dtrace_isenabled$RegexKitLite$compiledRegexCache$v1(void); +extern void __dtrace_probe$RegexKitLite$utf16ConversionCache$v1$756e7369676e6564206c6f6e67$756e7369676e656420696e74$646f75626c65202a$766f6964202a$756e7369676e6564206c6f6e67$756e7369676e6564206c6f6e67$6c6f6e67(unsigned long, unsigned int, double *, const void *, unsigned long, unsigned long, long); +extern int __dtrace_isenabled$RegexKitLite$utf16ConversionCache$v1(void); + +//////////////////////////// - // Return the cached entry if it's a match, otherwise clear the slot and create a new ICU regex in its place. - if((cacheSlot->options == options) && (cacheSlot->icu_regex != NULL) && (cacheSlot->regexString != NULL) && ((cacheSlot->regexString == (CFStringRef)regexString) || (CFEqual((CFTypeRef)regexString, cacheSlot->regexString) == YES))) { lastCacheSlot = cacheSlot; return(cacheSlot); } +enum { + RKLCacheHitLookupFlag = 1 << 0, + RKLConversionRequiredLookupFlag = 1 << 1, + RKLSetTextLookupFlag = 1 << 2, + RKLDynamicBufferLookupFlag = 1 << 3, + RKLErrorLookupFlag = 1 << 4, + RKLEnumerationBufferLookupFlag = 1 << 5, +}; - clearCacheSlotRegex(cacheSlot); +#define rkl_dtrace_addLookupFlag(a,b) do { a |= (unsigned int)(b); } while(0) - if((cacheSlot->regexString = CFStringCreateCopy(NULL, (CFStringRef)regexString)) == NULL) { goto exitNow; } ; // Get a cheap immutable copy. - cacheSlot->options = options; +static char rkl_dtrace_regexUTF8[_RKL_REGEX_CACHE_LINES + 1UL][_RKL_DTRACE_REGEXUTF8_SIZE]; +static NSUInteger rkl_dtrace_eventID, rkl_dtrace_compiledCacheLookups, rkl_dtrace_compiledCacheHits, rkl_dtrace_conversionBufferLookups, rkl_dtrace_conversionBufferHits; - CFIndex regexStringU16Length = CFStringGetLength(cacheSlot->regexString); // In UTF16 code units. - UParseError parseError = (UParseError){-1, -1, {0}, {0}}; - UniChar *regexUniChar = NULL; +#define rkl_dtrace_incrementEventID() do { rkl_dtrace_eventID++; } while(0) +#define rkl_dtrace_incrementAndGetEventID(v) do { rkl_dtrace_eventID++; v = rkl_dtrace_eventID; } while(0) +#define rkl_dtrace_compiledRegexCache(a0, a1, a2, a3, a4, a5) do { int _a3 = (a3); rkl_dtrace_compiledCacheLookups++; if(_a3 == 1) { rkl_dtrace_compiledCacheHits++; } if(RKL_EXPECTED(REGEXKITLITE_COMPILEDREGEXCACHE_ENABLED(), 0L)) { double hitRate = 0.0; if(rkl_dtrace_compiledCacheLookups > 0UL) { hitRate = ((double)rkl_dtrace_compiledCacheHits / (double)rkl_dtrace_compiledCacheLookups) * 100.0; } REGEXKITLITE_COMPILEDREGEXCACHE(rkl_dtrace_eventID, a0, a1, a2, _a3, a4, a5, &hitRate); } } while(0) +#define rkl_dtrace_utf16ConversionCache(a0, a1, a2, a3, a4) do { unsigned int _a0 = (a0); if((_a0 & RKLConversionRequiredLookupFlag) != 0U) { rkl_dtrace_conversionBufferLookups++; if((_a0 & RKLCacheHitLookupFlag) != 0U) { rkl_dtrace_conversionBufferHits++; } } if(RKL_EXPECTED(REGEXKITLITE_CONVERTEDSTRINGU16CACHE_ENABLED(), 0L)) { double hitRate = 0.0; if(rkl_dtrace_conversionBufferLookups > 0UL) { hitRate = ((double)rkl_dtrace_conversionBufferHits / (double)rkl_dtrace_conversionBufferLookups) * 100.0; } REGEXKITLITE_CONVERTEDSTRINGU16CACHE(rkl_dtrace_eventID, _a0, &hitRate, a1, a2, a3, a4); } } while(0) +#define rkl_dtrace_utf16ConversionCacheWithEventID(c0, a0, a1, a2, a3, a4) do { unsigned int _a0 = (a0); if((_a0 & RKLConversionRequiredLookupFlag) != 0U) { rkl_dtrace_conversionBufferLookups++; if((_a0 & RKLCacheHitLookupFlag) != 0U) { rkl_dtrace_conversionBufferHits++; } } if(RKL_EXPECTED(REGEXKITLITE_CONVERTEDSTRINGU16CACHE_ENABLED(), 0L)) { double hitRate = 0.0; if(rkl_dtrace_conversionBufferLookups > 0UL) { hitRate = ((double)rkl_dtrace_conversionBufferHits / (double)rkl_dtrace_conversionBufferLookups) * 100.0; } REGEXKITLITE_CONVERTEDSTRINGU16CACHE(c0, _a0, &hitRate, a1, a2, a3, a4); } } while(0) - // Try to quickly obtain regexString in UTF16 format. - if((regexUniChar = (UniChar *)CFStringGetCharactersPtr(cacheSlot->regexString)) == NULL) { // We didn't get the UTF16 pointer quickly and need to perform a full conversion in a temp buffer. - if((regexStringU16Length * sizeof(UniChar)) < RKL_STACK_LIMIT) { if((regexUniChar = alloca(regexStringU16Length * sizeof(UniChar))) == NULL) { goto exitNow; } } // Try to use the stack. - else { if((regexUniChar = rkl_realloc(&scratchBuffer[0], regexStringU16Length * sizeof(UniChar), 0UL)) == NULL) { goto exitNow; } } // Otherwise use the heap. - CFStringGetCharacters(cacheSlot->regexString, CFMakeRange(0, regexStringU16Length), (UniChar *)regexUniChar); // Convert regexString to UTF16. - } - // Create the ICU regex. - if((cacheSlot->icu_regex = uregex_open(regexUniChar, (int32_t)regexStringU16Length, options, &parseError, &status)) == NULL) { goto exitNow; } - if(status <= 0) { cacheSlot->captureCount = (NSInteger)uregex_groupCount(cacheSlot->icu_regex, &status); } - if(status <= 0) { lastCacheSlot = cacheSlot; } +// \342\200\246 == UTF8 for HORIZONTAL ELLIPSIS, aka triple dots '...' +#define RKL_UTF8_ELLIPSE "\342\200\246" - exitNow: - if(scratchBuffer[0] != NULL) { free(scratchBuffer[0]); scratchBuffer[0] = NULL; } - if(status > 0) { cacheSlot = NULL; if(error != NULL) { *error = RKLNSErrorForRegex(regexString, options, &parseError, status); } } - return(cacheSlot); +// rkl_dtrace_getRegexUTF8 will copy the str argument to utf8Buffer using UTF8 as the string encoding. +// If the utf8 encoding would take up more bytes than the utf8Buffers length, then the unicode character 'HORIZONTAL ELLIPSIS' ('...') is appended to indicate truncation occurred. +static void rkl_dtrace_getRegexUTF8(CFStringRef str, char *utf8Buffer) RKL_NONNULL_ARGS(2); +static void rkl_dtrace_getRegexUTF8(CFStringRef str, char *utf8Buffer) { + if((str == NULL) || (utf8Buffer == NULL)) { return; } + CFIndex maxLength = ((CFIndex)_RKL_DTRACE_REGEXUTF8_SIZE - 2L), maxBytes = (maxLength - (CFIndex)sizeof(RKL_UTF8_ELLIPSE) - 1L), stringU16Length = CFStringGetLength(str), usedBytes = 0L; + CFStringGetBytes(str, CFMakeRange(0L, ((stringU16Length < maxLength) ? stringU16Length : maxLength)), kCFStringEncodingUTF8, (UInt8)'?', (Boolean)0, (UInt8 *)utf8Buffer, maxBytes, &usedBytes); + if(usedBytes == maxBytes) { strncpy(utf8Buffer + usedBytes, RKL_UTF8_ELLIPSE, ((size_t)_RKL_DTRACE_REGEXUTF8_SIZE - (size_t)usedBytes) - 2UL); } else { utf8Buffer[usedBytes] = (char)0; } } -// IMPORTANT! This code is critical path code. Because of this, it has been written for speed, not clarity. -// IMPORTANT! Should only be called with cacheSpinLock already locked! -// ---------- - -static BOOL setCacheSlotToString(RKLCacheSlot *cacheSlot, const NSRange *range, int32_t *status, id *exception) { - RKLCDelayedAssert((cacheSlot != NULL) && (cacheSlot->setToString != NULL) && (range != NULL) && (status != NULL), exception, exitNow); +#else // _RKL_DTRACE_ENABLED - if(cacheSlot->setToNeedsConversion == NO) { goto setRegexText; } +#define rkl_dtrace_incrementEventID() +#define rkl_dtrace_incrementAndGetEventID(v) +#define rkl_dtrace_compiledRegexCache(a0, a1, a2, a3, a4, a5) +#define rkl_dtrace_utf16ConversionCache(a0, a1, a2, a3, a4) +#define rkl_dtrace_utf16ConversionCacheWithEventID(c0, a0, a1, a2, a3, a4) +#define rkl_dtrace_getRegexUTF8(str, buf) +#define rkl_dtrace_addLookupFlag(a,b) - RKLBuffer *buffer = (cacheSlot->setToLength < RKL_FIXED_LENGTH) ? &fixedBuffer : &dynamicBuffer; - if((cacheSlot->setToUniChar != NULL) && ((cacheSlot->setToString == buffer->string) || ((cacheSlot->setToLength == buffer->length) && (cacheSlot->setToHash == buffer->hash)))) { goto setRegexText; } +#endif // _RKL_DTRACE_ENABLED - clearBuffer(buffer, NO); +//////////// +#pragma mark - +#pragma mark RegexKitLite low-level internal functions +#pragma mark - - if(cacheSlot->setToLength >= RKL_FIXED_LENGTH) { - RKLCDelayedAssert(buffer == &dynamicBuffer, exception, exitNow); - if((dynamicBuffer.uniChar = rkl_realloc((void *)&dynamicBuffer.uniChar, (cacheSlot->setToLength * sizeof(UniChar)), 0UL)) == NULL) { return(NO); } // Resize the buffer. - } - RKLCDelayedAssert(buffer->uniChar != NULL, exception, exitNow); - CFStringGetCharacters(cacheSlot->setToString, CFMakeRange(0, cacheSlot->setToLength), (UniChar *)buffer->uniChar); // Convert to a UTF16 string. - - if((buffer->string = CFRetain(cacheSlot->setToString)) == NULL) { return(NO); } - buffer->hash = cacheSlot->setToHash; - buffer->length = cacheSlot->setToLength; +// The 4-way set associative LRU logic comes from Henry S. Warren Jr.'s Hacker's Delight, "revisions", 7-7 An LRU Algorithm: +// http://www.hackersdelight.org/revisions.pdf +// The functions rkl_leastRecentlyUsedWayInSet() and rkl_accessCacheSetWay() implement the cache functionality and are used +// from a number of different places that need to perform caching (i.e., cached regex, cached UTF16 conversions, etc) - cacheSlot->setToUniChar = buffer->uniChar; - cacheSlot->setToRange = NSNotFoundRange; +#pragma mark 4-way set associative LRU functions - setRegexText: +RKL_STATIC_INLINE NSUInteger rkl_leastRecentlyUsedWayInSet(NSUInteger cacheSetsCount, const RKLLRUCacheSet_t cacheSetsArray[cacheSetsCount], NSUInteger set) { + RKLCAbortAssert((cacheSetsArray != NULL) && ((NSInteger)cacheSetsCount > 0L) && (set < cacheSetsCount) && ((cacheSetsArray == rkl_cachedRegexCacheSets) ? set < _RKL_REGEX_LRU_CACHE_SETS : 1) && (((sizeof(unsigned int) - sizeof(RKLLRUCacheSet_t)) * 8) < (sizeof(unsigned int) * 8))); + unsigned int cacheSet = (((unsigned int)cacheSetsArray[set]) << ((sizeof(unsigned int) - sizeof(RKLLRUCacheSet_t)) * 8)); // __builtin_clz takes an 'unsigned int' argument. The rest is to ensure bit alignment regardless of 32/64/whatever. + NSUInteger leastRecentlyUsed = ((NSUInteger)(3LU - (NSUInteger)((__builtin_clz((~(((cacheSet & 0x77777777U) + 0x77777777U) | cacheSet | 0x77777777U))) ) >> 2))); + RKLCAbortAssert(leastRecentlyUsed < _RKL_LRU_CACHE_SET_WAYS); + return(leastRecentlyUsed); +} - if(NSEqualRanges(cacheSlot->setToRange, *range) == NO) { - RKLCDelayedAssert((cacheSlot->icu_regex != NULL) && (cacheSlot->setToUniChar != NULL) && (NSMaxRange(*range) <= (NSUInteger)cacheSlot->setToLength), exception, exitNow); - cacheSlot->lastFindRange = cacheSlot->lastMatchRange = NSNotFoundRange; - cacheSlot->setToRange = *range; - uregex_setText(cacheSlot->icu_regex, cacheSlot->setToUniChar + cacheSlot->setToRange.location, (int32_t)cacheSlot->setToRange.length, status); - if(*status > 0) { return(NO); } - } +RKL_STATIC_INLINE void rkl_accessCacheSetWay(NSUInteger cacheSetsCount, RKLLRUCacheSet_t cacheSetsArray[cacheSetsCount], NSUInteger cacheSet, NSUInteger cacheWay) { + RKLCAbortAssert((cacheSetsArray != NULL) && ((NSInteger)cacheSetsCount > 0L) && (cacheSet < cacheSetsCount) && (cacheWay < _RKL_LRU_CACHE_SET_WAYS) && ((cacheSetsArray == rkl_cachedRegexCacheSets) ? cacheSet < _RKL_REGEX_LRU_CACHE_SETS : 1)); + cacheSetsArray[cacheSet] = (RKLLRUCacheSet_t)(((cacheSetsArray[cacheSet] & (RKLLRUCacheSet_t)0xFFFFU) | (((RKLLRUCacheSet_t)0xFU) << (cacheWay * 4U))) & (~(((RKLLRUCacheSet_t)0x1111U) << (3U - cacheWay)))); +} - return(YES); +#pragma mark Common, macro'ish compiled regular expression cache logic + +// These functions consolidate bits and pieces of code used to maintain, update, and access the 4-way set associative LRU cache and Regex Lookaside Cache. +RKL_STATIC_INLINE NSUInteger rkl_regexLookasideCacheIndexForPointerAndOptions (const void *ptr, RKLRegexOptions options) { return(((((NSUInteger)(ptr)) >> 4) + options + (options >> 4)) & _RKL_REGEX_LOOKASIDE_CACHE_MASK); } +RKL_STATIC_INLINE void rkl_setRegexLookasideCacheToCachedRegexForPointer (const RKLCachedRegex *cachedRegex, const void *ptr) { rkl_regexLookasideCache[rkl_regexLookasideCacheIndexForPointerAndOptions(ptr, cachedRegex->options)] = (cachedRegex - rkl_cachedRegexes); } +RKL_STATIC_INLINE RKLCachedRegex *rkl_cachedRegexFromRegexLookasideCacheForString (const void *ptr, RKLRegexOptions options) { return(&rkl_cachedRegexes[rkl_regexLookasideCache[rkl_regexLookasideCacheIndexForPointerAndOptions(ptr, options)]]); } +RKL_STATIC_INLINE NSUInteger rkl_makeCacheSetHash ( CFHashCode regexHash, RKLRegexOptions options) { return((NSUInteger)regexHash ^ (NSUInteger)options); } +RKL_STATIC_INLINE NSUInteger rkl_cacheSetForRegexHashAndOptions ( CFHashCode regexHash, RKLRegexOptions options) { return((rkl_makeCacheSetHash(regexHash, options) % _RKL_REGEX_LRU_CACHE_SETS)); } +RKL_STATIC_INLINE NSUInteger rkl_cacheWayForCachedRegex (const RKLCachedRegex *cachedRegex) { return((cachedRegex - rkl_cachedRegexes) % _RKL_LRU_CACHE_SET_WAYS); } +RKL_STATIC_INLINE NSUInteger rkl_cacheSetForCachedRegex (const RKLCachedRegex *cachedRegex) { return(rkl_cacheSetForRegexHashAndOptions(cachedRegex->regexHash, cachedRegex->options)); } +RKL_STATIC_INLINE RKLCachedRegex *rkl_cachedRegexForCacheSetAndWay ( NSUInteger cacheSet, NSUInteger cacheWay) { return(&rkl_cachedRegexes[((cacheSet * _RKL_LRU_CACHE_SET_WAYS) + cacheWay)]); } +RKL_STATIC_INLINE RKLCachedRegex *rkl_cachedRegexForRegexHashAndOptionsAndWay ( CFHashCode regexHash, RKLRegexOptions options, NSUInteger cacheWay) { return(rkl_cachedRegexForCacheSetAndWay(rkl_cacheSetForRegexHashAndOptions(regexHash, options), cacheWay)); } + +RKL_STATIC_INLINE void rkl_updateCachesWithCachedRegex(RKLCachedRegex *cachedRegex, const void *ptr, int hitOrMiss RKL_UNUSED_DTRACE_ARG, int status RKL_UNUSED_DTRACE_ARG) { + rkl_lastCachedRegex = cachedRegex; + rkl_setRegexLookasideCacheToCachedRegexForPointer(cachedRegex, ptr); + rkl_accessCacheSetWay(_RKL_REGEX_LRU_CACHE_SETS, rkl_cachedRegexCacheSets, rkl_cacheSetForCachedRegex(cachedRegex), rkl_cacheWayForCachedRegex(cachedRegex)); // Set the matching line as the most recently used. + rkl_dtrace_compiledRegexCache(&rkl_dtrace_regexUTF8[(cachedRegex - rkl_cachedRegexes)][0], cachedRegex->options, (int)cachedRegex->captureCount, hitOrMiss, status, NULL); +} - exitNow: - return(NO); +RKL_STATIC_INLINE RKLCachedRegex *rkl_leastRecentlyUsedCachedRegexForRegexHashAndOptions(CFHashCode regexHash, RKLRegexOptions options) { + NSUInteger cacheSet = rkl_cacheSetForRegexHashAndOptions(regexHash, options); + return(rkl_cachedRegexForCacheSetAndWay(cacheSet, rkl_leastRecentlyUsedWayInSet(_RKL_REGEX_LRU_CACHE_SETS, rkl_cachedRegexCacheSets, cacheSet))); } +#pragma mark Regular expression lookup function + // IMPORTANT! This code is critical path code. Because of this, it has been written for speed, not clarity. -// IMPORTANT! Should only be called with cacheSpinLock already locked! +// IMPORTANT! Should only be called with rkl_cacheSpinLock already locked! // ---------- -static RKLCacheSlot *getCachedRegexSetToString(NSString *regexString, RKLRegexOptions options, NSString *matchString, NSUInteger *matchLengthPtr, NSRange *matchRange, NSError **error, id *exception, int32_t *status) { - RKLCacheSlot *cacheSlot = NULL; - RKLCDelayedAssert((regexString != NULL) && (exception != NULL) && (status != NULL), exception, exitNow); +static RKLCachedRegex *rkl_getCachedRegex(NSString *regexString, RKLRegexOptions options, NSError **error, id *exception) { + // ---------- vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv + // IMPORTANT! This section of code is called almost every single time that any RegexKitLite functionality is used! It /MUST/ be very fast! + // ---------- vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv + + RKLCachedRegex *cachedRegex = NULL; + CFHashCode regexHash = 0UL; + int32_t status = 0; + RKLCDelayedAssert((rkl_cacheSpinLock != (OSSpinLock)0) && (regexString != NULL), exception, exitNow); + // Fast path the common case where this regex is exactly the same one used last time. - if((lastCacheSlot != NULL) && (lastCacheSlot->regexString == (CFStringRef)regexString) && (lastCacheSlot->options == options)) { cacheSlot = lastCacheSlot; } - else { if((cacheSlot = getCachedRegex(regexString, options, error, exception)) == NULL) { goto exitNow; } } - - // Optimize the case where the string to search (matchString) is immutable and the setToString immutable copy is the same string with its reference count incremented. - BOOL isSetTo = ((cacheSlot->setToString != NULL) && (cacheSlot->setToString == (CFStringRef)matchString)) ? YES : NO; - CFIndex matchLength = ((isSetTo == YES) && (cacheSlot->setToIsImmutable == YES)) ? cacheSlot->setToLength : CFStringGetLength((CFStringRef)matchString); - - *matchLengthPtr = (NSUInteger)matchLength; - if(matchRange->length == NSUIntegerMax) { matchRange->length = matchLength; } // For convenience, allow NSUIntegerMax == string length. - - if((NSUInteger)matchLength < NSMaxRange(*matchRange)) { *exception = [NSException exceptionWithName:NSRangeException reason:@"Range or index out of bounds" userInfo:NULL]; goto exitNow; } - - if((cacheSlot->setToIsImmutable == NO) && (cacheSlot->setToString != NULL) && ((cacheSlot->setToLength != CFStringGetLength(cacheSlot->setToString)) || (cacheSlot->setToHash != CFHash(cacheSlot->setToString)))) { isSetTo = NO; } - else { // If the first pointer equality check failed, check the hash and length. - if(((isSetTo == NO) || (cacheSlot->setToIsImmutable == NO)) && (cacheSlot->setToString != NULL)) { isSetTo = ((cacheSlot->setToLength == matchLength) && (cacheSlot->setToHash == CFHash((CFStringRef)(matchString)))); } + // The pointer equality test is valid under these circumstances since the cachedRegex->regexString is an immutable copy. + // If the regexString argument is mutable, this test will fail, and we'll use the the slow path cache check below. + if(RKL_EXPECTED(rkl_lastCachedRegex != NULL, 1L) && RKL_EXPECTED(rkl_lastCachedRegex->regexString == (CFStringRef)regexString, 1L) && RKL_EXPECTED(rkl_lastCachedRegex->options == options, 1L) && RKL_EXPECTED(rkl_lastCachedRegex->icu_regex != NULL, 1L)) { + rkl_dtrace_compiledRegexCache(&rkl_dtrace_regexUTF8[(rkl_lastCachedRegex - rkl_cachedRegexes)][0], rkl_lastCachedRegex->options, (int)rkl_lastCachedRegex->captureCount, 1, 0, NULL); + return(rkl_lastCachedRegex); + } - if((isSetTo == YES)) { // Make sure that the UTF16 conversion cache is set to this string, if conversion is required. - if((cacheSlot->setToNeedsConversion == YES) && (setCacheSlotToString(cacheSlot, matchRange, status, exception) == NO)) { *exception = RKLCAssert(@"Failed to set up UTF16 buffer."); goto exitNow; } - if(NSEqualRanges(cacheSlot->setToRange, *matchRange) == YES) { goto exitNow; } // Verify that the range to search is what the cached regex was prepped for last time. + rkl_lastCachedRegex = NULL; // Make sure that rkl_lastCachedRegex is NULL in case there is some kind of error. + cachedRegex = rkl_cachedRegexFromRegexLookasideCacheForString(regexString, options); // Check the Regex Lookaside Cache to see if we can quickly find the correct Cached Regex for this regexString pointer + options. + if((RKL_EXPECTED(cachedRegex->regexString == (CFStringRef)regexString, 1L) || (RKL_EXPECTED(cachedRegex->regexString != NULL, 1L) && RKL_EXPECTED(CFEqual((CFTypeRef)regexString, (CFTypeRef)cachedRegex->regexString) == YES, 1L))) && RKL_EXPECTED(cachedRegex->options == options, 1L) && RKL_EXPECTED(cachedRegex->icu_regex != NULL, 1L)) { goto foundMatch; } // There was a Regex Lookaside Cache hit, jump to foundMatch: to quickly return the result. A Regex Lookaside Cache hit allows us to bypass calling CFHash(), which is a decent performance win. + else { cachedRegex = NULL; regexHash = CFHash((CFTypeRef)regexString); } // Regex Lookaside Cache miss. We need to call CFHash() to determine the cache set for this regex. + + NSInteger cacheWay = 0L; // Check each way of the set that this regex belongs to. + for(cacheWay = ((NSInteger)_RKL_LRU_CACHE_SET_WAYS - 1L); cacheWay > 0L; cacheWay--) { // Checking the ways in reverse (3, 2, 1, 0) finds a match "sooner" on average. + cachedRegex = rkl_cachedRegexForRegexHashAndOptionsAndWay(regexHash, options, (NSUInteger)cacheWay); + // Return the cached entry if it's a match. If regexString is mutable, the pointer equality test will fail, and CFEqual() is used to determine true equality with the immutable cachedRegex copy. CFEqual() performs a slow character by character check. + if(RKL_EXPECTED(cachedRegex->regexHash == regexHash, 0UL) && ((cachedRegex->regexString == (CFStringRef)regexString) || (RKL_EXPECTED(cachedRegex->regexString != NULL, 1L) && RKL_EXPECTED(CFEqual((CFTypeRef)regexString, (CFTypeRef)cachedRegex->regexString) == YES, 1L))) && RKL_EXPECTED(cachedRegex->options == options, 1L) && RKL_EXPECTED(cachedRegex->icu_regex != NULL, 1L)) { + foundMatch: // Control can transfer here (from above) via a Regex Lookaside Cache hit. + rkl_updateCachesWithCachedRegex(cachedRegex, regexString, 1, 0); + return(cachedRegex); } } - // Sometimes the range that the regex is set to isn't right, in which case we don't want to clear the cache slot. Otherwise, flush it out. - if((cacheSlot->setToString != NULL) && (isSetTo == NO)) { clearCacheSlotSetTo(cacheSlot); } + // ---------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + // IMPORTANT! This section of code is called almost every single time that any RegexKitLite functionality is used! It /MUST/ be very fast! + // ---------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - if(cacheSlot->setToString == NULL) { - cacheSlot->setToString = CFRetain(matchString); - RKLCDelayedAssert(cacheSlot->setToString != NULL, exception, exitNow); - cacheSlot->setToUniChar = CFStringGetCharactersPtr(cacheSlot->setToString); - cacheSlot->setToNeedsConversion = (cacheSlot->setToUniChar == NULL) ? YES : NO; - cacheSlot->setToIsImmutable = !rkl_CFStringIsMutable(cacheSlot->setToString); // If RKL_FAST_MUTABLE_CHECK is not defined then the result is '0', or in other words mutable.. - cacheSlot->setToHash = CFHash(cacheSlot->setToString); - cacheSlot->setToRange = NSNotFoundRange; - cacheSlot->setToLength = matchLength; - } - - if(setCacheSlotToString(cacheSlot, matchRange, status, exception) == NO) { cacheSlot = NULL; goto exitNow; } + // Code below this point is not as sensitive to speed since compiling a regular expression is an extremely expensive operation. + // The regex was not found in the cache. Get the cached regex for the least recently used line in the set, then clear the cached regex and create a new ICU regex in its place. + cachedRegex = rkl_leastRecentlyUsedCachedRegexForRegexHashAndOptions(regexHash, options); + rkl_clearCachedRegex(cachedRegex); + + if(RKL_EXPECTED((cachedRegex->regexString = CFStringCreateCopy(NULL, (CFStringRef)regexString)) == NULL, 0L)) { goto exitNow; } ; // Get a cheap immutable copy. + rkl_dtrace_getRegexUTF8(cachedRegex->regexString, &rkl_dtrace_regexUTF8[(cachedRegex - rkl_cachedRegexes)][0]); + cachedRegex->regexHash = regexHash; + cachedRegex->options = options; + + CFIndex regexStringU16Length = CFStringGetLength(cachedRegex->regexString); // In UTF16 code units. + UParseError parseError = (UParseError){-1, -1, {0}, {0}}; + RKL_STRONG_REF const UniChar * RKL_GC_VOLATILE regexUniChar = NULL; + + if(RKL_EXPECTED(regexStringU16Length >= (CFIndex)INT_MAX, 0L)) { *exception = [NSException exceptionWithName:NSRangeException reason:@"Regex string length exceeds INT_MAX" userInfo:NULL]; goto exitNow; } - exitNow: - return(cacheSlot); + // Try to quickly obtain regexString in UTF16 format. + if((regexUniChar = CFStringGetCharactersPtr(cachedRegex->regexString)) == NULL) { // We didn't get the UTF16 pointer quickly and need to perform a full conversion in a temp buffer. + RKL_STRONG_REF UniChar * RKL_GC_VOLATILE uniCharBuffer = NULL; + if(((size_t)regexStringU16Length * sizeof(UniChar)) < (size_t)_RKL_STACK_LIMIT) { if(RKL_EXPECTED((uniCharBuffer = (RKL_STRONG_REF UniChar * RKL_GC_VOLATILE)alloca( (size_t)regexStringU16Length * sizeof(UniChar) )) == NULL, 0L)) { goto exitNow; } } // Try to use the stack. + else { if(RKL_EXPECTED((uniCharBuffer = (RKL_STRONG_REF UniChar * RKL_GC_VOLATILE)rkl_realloc(&rkl_scratchBuffer[0], (size_t)regexStringU16Length * sizeof(UniChar), 0UL)) == NULL, 0L)) { goto exitNow; } } // Otherwise use the heap. + CFStringGetCharacters(cachedRegex->regexString, CFMakeRange(0L, regexStringU16Length), uniCharBuffer); // Convert regexString to UTF16. + regexUniChar = uniCharBuffer; + } + + // Create the ICU regex. + if(RKL_EXPECTED((cachedRegex->icu_regex = RKL_ICU_FUNCTION_APPEND(uregex_open)(regexUniChar, (int32_t)regexStringU16Length, options, &parseError, &status)) == NULL, 0L)) { goto exitNow; } + if(RKL_EXPECTED(status <= U_ZERO_ERROR, 1L)) { cachedRegex->captureCount = (NSInteger)RKL_ICU_FUNCTION_APPEND(uregex_groupCount)(cachedRegex->icu_regex, &status); } + if(RKL_EXPECTED(status <= U_ZERO_ERROR, 1L)) { rkl_updateCachesWithCachedRegex(cachedRegex, regexString, 0, status); } + +exitNow: + if(RKL_EXPECTED(rkl_scratchBuffer[0] != NULL, 0L)) { rkl_scratchBuffer[0] = rkl_free(&rkl_scratchBuffer[0]); } + if(RKL_EXPECTED(status > U_ZERO_ERROR, 0L)) { rkl_clearCachedRegex(cachedRegex); cachedRegex = rkl_lastCachedRegex = NULL; if(error != NULL) { *error = rkl_makeNSError((RKLUserInfoOptions)RKLUserInfoNone, regexString, options, &parseError, status, NULL, NSNotFoundRange, NULL, NULL, 0L, (RKLRegexEnumerationOptions)RKLRegexEnumerationNoOptions, @"There was an error compiling the regular expression."); } } + +#ifdef _RKL_DTRACE_ENABLED + if(RKL_EXPECTED(cachedRegex == NULL, 1L)) { char regexUTF8[_RKL_DTRACE_REGEXUTF8_SIZE]; const char *err = NULL; if(status != U_ZERO_ERROR) { err = RKL_ICU_FUNCTION_APPEND(u_errorName)(status); } rkl_dtrace_getRegexUTF8((CFStringRef)regexString, regexUTF8); rkl_dtrace_compiledRegexCache(regexUTF8, options, -1, -1, status, err); } +#endif // _RKL_DTRACE_ENABLED + + return(cachedRegex); } // IMPORTANT! This code is critical path code. Because of this, it has been written for speed, not clarity. +// IMPORTANT! Should only be called with rkl_cacheSpinLock already locked! // ---------- -static id performRegexOp(id self, SEL _cmd, RKLRegexOp doRegexOp, NSString *regexString, RKLRegexOptions options, NSInteger capture, id matchString, NSRange *matchRange, NSString *replacementString, NSError **error, void **result) { - BOOL replaceMutable = ((doRegexOp & RKLReplaceMutable) != 0) ? YES : NO; - RKLRegexOp regexOp = (doRegexOp & RKLMaskOp); +#pragma mark Set a cached regular expression to a NSStrings UTF-16 text - if((error != NULL) && (*error != NULL)) { *error = NULL; } +static NSUInteger rkl_setCachedRegexToString(RKLCachedRegex *cachedRegex, const NSRange *range, int32_t *status, id *exception RKL_UNUSED_ASSERTION_ARG) { + // ---------- vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv + // IMPORTANT! This section of code is called almost every single time that any RegexKitLite functionality is used! It /MUST/ be very fast! + // ---------- vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv + + RKLCDelayedAssert((cachedRegex != NULL) && (cachedRegex->setToString != NULL) && ((range != NULL) && (NSEqualRanges(*range, NSNotFoundRange) == NO)) && (status != NULL), exception, exitNow); + RKL_STRONG_REF const UniChar * RKL_GC_VOLATILE stringUniChar = NULL; +#ifdef _RKL_DTRACE_ENABLED + unsigned int lookupResultFlags = 0U; +#endif + + NSUInteger useFixedBuffer = (cachedRegex->setToLength < (CFIndex)_RKL_FIXED_LENGTH) ? 1UL : 0UL; + RKLBuffer *buffer = NULL; + + if(cachedRegex->setToNeedsConversion == 0U) { + RKLCDelayedAssert((cachedRegex->setToUniChar != NULL) && (cachedRegex->buffer == NULL), exception, exitNow); + if(RKL_EXPECTED((stringUniChar = (RKL_STRONG_REF const UniChar * RKL_GC_VOLATILE)CFStringGetCharactersPtr(cachedRegex->setToString)) == NULL, 0L)) { cachedRegex->setToUniChar = NULL; cachedRegex->setToRange = NSNotFoundRange; cachedRegex->setToNeedsConversion = 1U; } + else { if(RKL_EXPECTED(cachedRegex->setToUniChar != stringUniChar, 0L)) { cachedRegex->setToRange = NSNotFoundRange; cachedRegex->setToUniChar = stringUniChar; } goto setRegexText; } + } - if(regexString == NULL) { RKLRaiseException(NSInvalidArgumentException, @"The regular expression argument is NULL."); } - if(matchString == NULL) { RKLRaiseException(NSInternalInconsistencyException, @"The match string argument is NULL."); } - if((regexOp == RKLReplaceOp) && (replacementString == NULL)) { RKLRaiseException(NSInvalidArgumentException, @"The replacement string argument is NULL."); } + buffer = cachedRegex->buffer; - NSUInteger stringU16Length = 0UL, replacementU16Length = (NSUInteger)((replacementString != NULL) ? CFStringGetLength((CFStringRef)replacementString) : 0); // In UTF16 code units. - NSRange stringRange = NSMakeRange(0, NSUIntegerMax), searchRange = (matchRange != NULL) ? *matchRange : NSNotFoundRange; - RKLCacheSlot *cacheSlot = NULL; - id exception = NULL; - id resultObject = NULL; - int32_t status = 0; + RKLCDelayedAssert((buffer == NULL) ? 1 : (((buffer == &rkl_lruFixedBuffer[0]) || (buffer == &rkl_lruFixedBuffer[1]) || (buffer == &rkl_lruFixedBuffer[2]) || (buffer == &rkl_lruFixedBuffer[3])) || + ((buffer == &rkl_lruDynamicBuffer[0]) || (buffer == &rkl_lruDynamicBuffer[1]) || (buffer == &rkl_lruDynamicBuffer[2]) || (buffer == &rkl_lruDynamicBuffer[3]))), exception, exitNow); + + if((buffer != NULL) && RKL_EXPECTED(cachedRegex->setToString == buffer->string, 1L) && RKL_EXPECTED(cachedRegex->setToHash == buffer->hash, 1L) && RKL_EXPECTED(cachedRegex->setToLength == buffer->length, 1L)) { + RKLCDelayedAssert((buffer->uniChar != NULL), exception, exitNow); + rkl_dtrace_addLookupFlag(lookupResultFlags, RKLCacheHitLookupFlag | RKLConversionRequiredLookupFlag | (useFixedBuffer ? 0U : RKLDynamicBufferLookupFlag)); + if(cachedRegex->setToUniChar != buffer->uniChar) { cachedRegex->setToRange = NSNotFoundRange; cachedRegex->setToUniChar = buffer->uniChar; } + goto setRegexText; + } - // IMPORTANT! Once we have obtained the lock, code MUST exit via 'goto exitNow;' to unlock the lock! NO EXCEPTIONS! - // ---------- - OSSpinLockLock(&cacheSpinLock); // Grab the lock and get cache entry. + buffer = NULL; + cachedRegex->buffer = NULL; + + NSInteger cacheWay = 0L; + for(cacheWay = ((NSInteger)_RKL_LRU_CACHE_SET_WAYS - 1L); cacheWay > 0L; cacheWay--) { + if(useFixedBuffer) { buffer = &rkl_lruFixedBuffer[cacheWay]; } else { buffer = &rkl_lruDynamicBuffer[cacheWay]; } + if(RKL_EXPECTED(cachedRegex->setToString == buffer->string, 1L) && RKL_EXPECTED(cachedRegex->setToHash == buffer->hash, 1L) && RKL_EXPECTED(cachedRegex->setToLength == buffer->length, 1L)) { + RKLCDelayedAssert((buffer->uniChar != NULL), exception, exitNow); + rkl_dtrace_addLookupFlag(lookupResultFlags, RKLCacheHitLookupFlag | RKLConversionRequiredLookupFlag | (useFixedBuffer ? 0U : RKLDynamicBufferLookupFlag)); + if(cachedRegex->setToUniChar != buffer->uniChar) { cachedRegex->setToRange = NSNotFoundRange; cachedRegex->setToUniChar = buffer->uniChar; } + cachedRegex->buffer = buffer; + goto setRegexText; + } + } - if(((cacheSlot = getCachedRegexSetToString(regexString, options, matchString, &stringU16Length, (regexOp == RKLRangeOp) ? &stringRange : &searchRange, error, &exception, &status)) == NULL) || (exception != NULL) || (status > 0)) { goto exitNow; } + buffer = NULL; + cachedRegex->setToUniChar = NULL; + cachedRegex->setToRange = NSNotFoundRange; + cachedRegex->buffer = NULL; + + RKLCDelayedAssert((cachedRegex->setToNeedsConversion == 1U) && (cachedRegex->buffer == NULL), exception, exitNow); + if(RKL_EXPECTED(cachedRegex->setToNeedsConversion == 1U, 1L) && RKL_EXPECTED((cachedRegex->setToUniChar = (RKL_STRONG_REF const UniChar * RKL_GC_VOLATILE)CFStringGetCharactersPtr(cachedRegex->setToString)) != NULL, 0L)) { cachedRegex->setToNeedsConversion = 0U; cachedRegex->setToRange = NSNotFoundRange; goto setRegexText; } + + rkl_dtrace_addLookupFlag(lookupResultFlags, RKLConversionRequiredLookupFlag | (useFixedBuffer ? 0U : RKLDynamicBufferLookupFlag)); - if(searchRange.length == NSUIntegerMax) { searchRange.length = stringU16Length; } // For convenience. - if(stringU16Length < NSMaxRange(searchRange)) { exception = [NSException exceptionWithName:NSRangeException reason:@"Range or index out of bounds" userInfo:NULL]; goto exitNow; } + if(useFixedBuffer) { buffer = &rkl_lruFixedBuffer [rkl_leastRecentlyUsedWayInSet(1UL, &rkl_lruFixedBufferCacheSet, 0UL)]; } + else { buffer = &rkl_lruDynamicBuffer[rkl_leastRecentlyUsedWayInSet(1UL, &rkl_lruDynamicBufferCacheSet, 0UL)]; } - RKLCDelayedAssert((cacheSlot->icu_regex != NULL) && (exception == NULL), &exception, exitNow); + RKLCDelayedAssert((useFixedBuffer) ? ((buffer == &rkl_lruFixedBuffer[0]) || (buffer == &rkl_lruFixedBuffer[1]) || (buffer == &rkl_lruFixedBuffer[2]) || (buffer == &rkl_lruFixedBuffer[3])) : + ((buffer == &rkl_lruDynamicBuffer[0]) || (buffer == &rkl_lruDynamicBuffer[1]) || (buffer == &rkl_lruDynamicBuffer[2]) || (buffer == &rkl_lruDynamicBuffer[3])), exception, exitNow); + + rkl_clearBuffer(buffer, 0UL); - if(cacheSlot->setToNeedsConversion != 0) { - RKLBuffer *buffer = (cacheSlot->setToLength < RKL_FIXED_LENGTH) ? &fixedBuffer : &dynamicBuffer; - RKLCDelayedAssert((cacheSlot->setToHash == buffer->hash) && (cacheSlot->setToLength == buffer->length) && (cacheSlot->setToUniChar == buffer->uniChar), &exception, exitNow); + RKLCDelayedAssert((buffer->string == NULL) && (cachedRegex->setToString != NULL), exception, exitNow); + if(RKL_EXPECTED((buffer->string = (CFStringRef)CFRetain((CFTypeRef)cachedRegex->setToString)) == NULL, 0L)) { goto exitNow; } + buffer->hash = cachedRegex->setToHash; + buffer->length = cachedRegex->setToLength; + + if(useFixedBuffer == 0UL) { + RKL_STRONG_REF void * RKL_GC_VOLATILE p = (RKL_STRONG_REF void * RKL_GC_VOLATILE)buffer->uniChar; + if(RKL_EXPECTED((buffer->uniChar = (RKL_STRONG_REF UniChar * RKL_GC_VOLATILE)rkl_realloc(&p, ((size_t)buffer->length * sizeof(UniChar)), 0UL)) == NULL, 0L)) { goto exitNow; } // Resize the buffer. } - - switch(regexOp) { - case RKLRangeOp: rkl_find(cacheSlot, capture, searchRange, (NSRange *)result, &exception, &status); break; - case RKLSplitOp: resultObject = rkl_splitArray(cacheSlot, &exception, &status); break; - case RKLReplaceOp: resultObject = rkl_replaceString(cacheSlot, matchString, stringU16Length, replacementString, replacementU16Length, (NSUInteger *)result, replaceMutable, &exception, &status); break; - default: exception = RKLCAssert(@"Unknown regexOp code."); break; + + RKLCDelayedAssert((buffer->string != NULL) && (buffer->uniChar != NULL), exception, exitNow); + CFStringGetCharacters(buffer->string, CFMakeRange(0L, buffer->length), (UniChar *)buffer->uniChar); // Convert to a UTF16 string. + + cachedRegex->setToUniChar = buffer->uniChar; + cachedRegex->setToRange = NSNotFoundRange; + cachedRegex->buffer = buffer; + +setRegexText: + if(buffer != NULL) { if(useFixedBuffer == 1UL) { rkl_accessCacheSetWay(1UL, &rkl_lruFixedBufferCacheSet, 0UL, (NSUInteger)(buffer - rkl_lruFixedBuffer)); } else { rkl_accessCacheSetWay(1UL, &rkl_lruDynamicBufferCacheSet, 0UL, (NSUInteger)(buffer - rkl_lruDynamicBuffer)); } } + + if(NSEqualRanges(cachedRegex->setToRange, *range) == NO) { + RKLCDelayedAssert((cachedRegex->icu_regex != NULL) && (cachedRegex->setToUniChar != NULL) && (NSMaxRange(*range) <= (NSUInteger)cachedRegex->setToLength) && (cachedRegex->setToRange.length <= INT_MAX), exception, exitNow); + cachedRegex->lastFindRange = cachedRegex->lastMatchRange = NSNotFoundRange; + cachedRegex->setToRange = *range; + RKL_ICU_FUNCTION_APPEND(uregex_setText)(cachedRegex->icu_regex, cachedRegex->setToUniChar + cachedRegex->setToRange.location, (int32_t)cachedRegex->setToRange.length, status); + rkl_dtrace_addLookupFlag(lookupResultFlags, RKLSetTextLookupFlag); + if(RKL_EXPECTED(*status > U_ZERO_ERROR, 0L)) { rkl_dtrace_addLookupFlag(lookupResultFlags, RKLErrorLookupFlag); goto exitNow; } } + + rkl_dtrace_utf16ConversionCache(lookupResultFlags, cachedRegex->setToString, cachedRegex->setToRange.location, cachedRegex->setToRange.length, cachedRegex->setToLength); - exitNow: - OSSpinLockUnlock(&cacheSpinLock); - - if((status > 0) && (exception == NULL)) { exception = RKLNSExceptionForRegex(regexString, options, NULL, status); } // If we had a problem, throw an exception. - if(exception != NULL) { - if([exception isKindOfClass:[NSException class]]) { [[NSException exceptionWithName:[exception name] reason:RKLStringFromClassAndMethod(self, _cmd, [exception reason]) userInfo:[exception userInfo]] raise]; } - else { [[NSAssertionHandler currentHandler] handleFailureInFunction:[exception objectForKey:@"function"] file:[exception objectForKey:@"file"] lineNumber:[[exception objectForKey:@"line"] longValue] description:[exception objectForKey:@"description"]]; } - } - if(replaceMutable == YES) { // We're working on a mutable string and if there were successfull matches with replaced text we still have work to do. Done outside the cache lock. - if(*((NSUInteger *)result) > 0) { NSCParameterAssert(resultObject != NULL); [matchString replaceCharactersInRange:searchRange withString:resultObject]; } - } + return(1UL); - return(resultObject); + // ---------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + // IMPORTANT! This section of code is called almost every single time that any RegexKitLite functionality is used! It /MUST/ be very fast! + // ---------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +exitNow: +#ifdef _RKL_DTRACE_ENABLED + rkl_dtrace_addLookupFlag(lookupResultFlags, RKLErrorLookupFlag); + if(cachedRegex != NULL) { rkl_dtrace_utf16ConversionCache(lookupResultFlags, cachedRegex->setToString, cachedRegex->setToRange.location, cachedRegex->setToRange.length, cachedRegex->setToLength); } +#endif // _RKL_DTRACE_ENABLED + if(cachedRegex != NULL) { cachedRegex->buffer = NULL; cachedRegex->setToRange = NSNotFoundRange; cachedRegex->lastFindRange = NSNotFoundRange; cachedRegex->lastMatchRange = NSNotFoundRange; } + return(0UL); } // IMPORTANT! This code is critical path code. Because of this, it has been written for speed, not clarity. -// IMPORTANT! Should only be called from performRegexOp(). +// IMPORTANT! Should only be called with rkl_cacheSpinLock already locked! // ---------- -static void rkl_find(RKLCacheSlot *cacheSlot, NSInteger capture, NSRange searchRange, NSRange *resultRange, id *exception, int32_t *status) { - NSRange captureRange = NSNotFoundRange; +#pragma mark Get a regular expression and set it to a NSStrings UTF-16 text - RKLCDelayedAssert((cacheSlot != NULL) && (resultRange != NULL) && (exception != NULL) && (status != NULL), exception, exitNow); +static RKLCachedRegex *rkl_getCachedRegexSetToString(NSString *regexString, RKLRegexOptions options, NSString *matchString, NSUInteger *matchLengthPtr, NSRange *matchRange, NSError **error, id *exception, int32_t *status) { + // ---------- vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv + // IMPORTANT! This section of code is called almost every single time that any RegexKitLite functionality is used! It /MUST/ be very fast! + // ---------- vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv + + RKLCachedRegex *cachedRegex = NULL; + RKLCDelayedAssert((regexString != NULL) && (matchString != NULL) && (exception != NULL) && (status != NULL) && (matchLengthPtr != NULL), exception, exitNow); + + if(RKL_EXPECTED((cachedRegex = rkl_getCachedRegex(regexString, options, error, exception)) == NULL, 0L)) { goto exitNow; } + RKLCDelayedAssert(((cachedRegex >= rkl_cachedRegexes) && ((cachedRegex - rkl_cachedRegexes) < (ssize_t)_RKL_REGEX_CACHE_LINES)) && (cachedRegex != NULL) && (cachedRegex->icu_regex != NULL) && (cachedRegex->regexString != NULL) && (cachedRegex->captureCount >= 0L) && (cachedRegex == rkl_lastCachedRegex), exception, exitNow); + + // Optimize the case where the string to search (matchString) is immutable and the setToString immutable copy is the same string with its reference count incremented. + NSUInteger isSetTo = ((cachedRegex->setToString == (CFStringRef)matchString)) ? 1UL : 0UL; + CFIndex matchLength = ((cachedRegex->setToIsImmutable == 1U) && (isSetTo == 1UL)) ? cachedRegex->setToLength : CFStringGetLength((CFStringRef)matchString); - if((capture < 0) || (capture > cacheSlot->captureCount)) { *exception = [NSException exceptionWithName:NSInvalidArgumentException reason:@"The capture argument is not valid." userInfo:NULL]; goto exitNow; } + *matchLengthPtr = (NSUInteger)matchLength; + if(matchRange->length == NSUIntegerMax) { matchRange->length = (NSUInteger)matchLength; } // For convenience, allow NSUIntegerMax == string length. - if((NSEqualRanges(searchRange, cacheSlot->lastFindRange) == NO)) { // Only perform an expensive 'find' operation iff the current find range is different than the last find range. - RKL_PREFETCH(cacheSlot->setToUniChar, searchRange.location << 1); // Spool up the CPU caches. + if(RKL_EXPECTED((NSUInteger)matchLength < NSMaxRange(*matchRange), 0L)) { goto exitNow; } // The match range is out of bounds for the string. performRegexOp will catch and report the problem. - // Using uregex_findNext can be a slight performance win. - BOOL useFindNext = (searchRange.location == (NSMaxRange(cacheSlot->lastMatchRange) + ((cacheSlot->lastMatchRange.length == 0) ? 1 : 0))) ? YES : NO; - - cacheSlot->lastFindRange = NSNotFoundRange; // Cleared the cached search/find range. - if(useFindNext == NO) { if((uregex_find (cacheSlot->icu_regex, (int32_t)searchRange.location, status) == NO) || (*status > 0)) { goto exitNow; } } - else { if((uregex_findNext(cacheSlot->icu_regex, status) == NO) || (*status > 0)) { goto exitNow; } } + RKLCDelayedAssert((isSetTo == 1UL) ? (cachedRegex->setToString != NULL) : 1, exception, exitNow); + + if(((cachedRegex->setToIsImmutable == 1U) ? isSetTo : (NSUInteger)((isSetTo == 1UL) && (cachedRegex->setToLength == matchLength) && (cachedRegex->setToHash == CFHash((CFTypeRef)matchString)))) == 0UL) { + if(cachedRegex->setToString != NULL) { rkl_clearCachedRegexSetTo(cachedRegex); } - if(RKLGetRangeForCapture(cacheSlot->icu_regex, status, 0, cacheSlot->lastMatchRange) != 0) { goto exitNow; } - if(NSRangeInsideRange(cacheSlot->lastMatchRange, searchRange) == NO) { goto exitNow; } // If the regex matched outside the requested range, exit. + cachedRegex->setToString = (CFStringRef)CFRetain((CFTypeRef)matchString); + RKLCDelayedAssert(cachedRegex->setToString != NULL, exception, exitNow); + cachedRegex->setToUniChar = CFStringGetCharactersPtr(cachedRegex->setToString); + cachedRegex->setToNeedsConversion = (cachedRegex->setToUniChar == NULL) ? 1U : 0U; + cachedRegex->setToIsImmutable = (rkl_CFStringIsMutable(cachedRegex->setToString) == YES) ? 0U : 1U; // If RKL_FAST_MUTABLE_CHECK is not defined then setToIsImmutable will always be set to '0', or in other words mutable.. + cachedRegex->setToHash = CFHash((CFTypeRef)cachedRegex->setToString); + cachedRegex->setToRange = NSNotFoundRange; + cachedRegex->setToLength = matchLength; - cacheSlot->lastFindRange = searchRange; // Cache the successful search/find range. } - if(capture == 0) { captureRange = cacheSlot->lastMatchRange; } else { RKLGetRangeForCapture(cacheSlot->icu_regex, status, capture, captureRange); } - - exitNow: - *resultRange = captureRange; + if(RKL_EXPECTED(rkl_setCachedRegexToString(cachedRegex, matchRange, status, exception) == 0UL, 0L)) { cachedRegex = NULL; if(*exception == NULL) { *exception = (id)RKLCAssertDictionary(@"Failed to set up UTF16 buffer."); } goto exitNow; } + +exitNow: + return(cachedRegex); + // ---------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + // IMPORTANT! This section of code is called almost every single time that any RegexKitLite functionality is used! It /MUST/ be very fast! + // ---------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ } -// IMPORTANT! This code is critical path code. Because of this, it has been written for speed, not clarity. -// IMPORTANT! Should only be called from performRegexOp(). -// ---------- - -static NSArray *rkl_splitArray(RKLCacheSlot *cacheSlot, id *exception, int32_t *status) { - NSArray *resultArray = NULL; - - RKLCDelayedAssert((cacheSlot != NULL) && (status != NULL), exception, exitNow); - - const char *setToUniCharChar = (const char *)(cacheSlot->setToUniChar + cacheSlot->setToRange.location); - NSUInteger splitRangesCapacity = ((((RKL_STACK_LIMIT / sizeof(NSRange)) / 4) + ((cacheSlot->captureCount + 1) * 2)) + 2), splitRangesIndex = 0, lastLocation = 0, x = 0; - size_t splitRangesSize = (splitRangesCapacity * sizeof(NSRange)), stackUsed = 0; - NSInteger captureCount = cacheSlot->captureCount; - uregex *icu_regex = cacheSlot->icu_regex; - NSRange *splitRanges = NULL; - BOOL copiedStackToHeap = NO; - - if(cacheSlot->setToLength == 0) { resultArray = [NSArray array]; goto exitNow; } // Return an empty array when there is nothing to search. - - if(splitRangesSize < RKL_STACK_LIMIT) { if((splitRanges = alloca(splitRangesSize)) == NULL) { goto exitNow; } stackUsed += splitRangesSize; } - else { if((splitRanges = rkl_realloc(&scratchBuffer[0], splitRangesSize, 0UL)) == NULL) { goto exitNow; } } - - cacheSlot->lastFindRange = cacheSlot->lastMatchRange = NSNotFoundRange; // Clear the cached find information for this regex so a subsequent find works correctly. - uregex_reset(icu_regex, 0, status); // Reset the regex to the start of the string. - - for(splitRangesIndex = 0; splitRangesIndex < splitRangesCapacity; splitRangesIndex++) { - - if(splitRangesIndex >= ((splitRangesCapacity - ((captureCount + 1) * 2)) - 1)) { // Check if we need to grow our NSRanges buffer. - NSUInteger newCapacity = (((splitRangesCapacity + (splitRangesCapacity / 2)) + ((captureCount + 1) * 2)) + 2); - size_t newSize = (newCapacity * sizeof(NSRange)); - NSRange *newRanges = NULL; +#pragma mark GCC cleanup __attribute__ functions that ensure the global rkl_cacheSpinLock is properly unlocked +#ifdef RKL_HAVE_CLEANUP - if((newRanges = rkl_realloc(&scratchBuffer[0], newSize, 0UL)) == NULL) { goto exitNow; } // We only try to use the stack the first time, after that, we use the heap. - if((stackUsed > 0) && (copiedStackToHeap == NO)) { memcpy(newRanges, splitRanges, splitRangesSize); copiedStackToHeap = YES; } +// rkl_cleanup_cacheSpinLockStatus takes advantage of GCC's 'cleanup' variable attribute. When an 'auto' variable with the 'cleanup' attribute goes out of scope, +// GCC arranges to have the designated function called. In this case, we make sure that if rkl_cacheSpinLock was locked that it was also unlocked. +// If rkl_cacheSpinLock was locked, but the rkl_cacheSpinLockStatus unlocked flag was not set, we force rkl_cacheSpinLock unlocked with a call to OSSpinLockUnlock. +// This is not a panacea for preventing mutex usage errors. Old style ObjC exceptions will bypass the cleanup call, but newer C++ style ObjC exceptions should cause the cleanup function to be called during the stack unwind. - splitRangesCapacity = newCapacity; - splitRangesSize = newSize; - splitRanges = newRanges; - } - - RKL_PREFETCH(setToUniCharChar, lastLocation << 1); // Spool up the CPU caches. +// We do not depend on this cleanup function being called. It is used only as an extra safety net. It is probably a bug in RegexKitLite if it is ever invoked and forced to take some kind of protective action. - NSUInteger baseMatchIndex = splitRangesIndex; - NSRange tempRange; +volatile NSUInteger rkl_debugCacheSpinLockCount = 0UL; - if((uregex_findNext(icu_regex, status) == NO) || (*status > 0)) { break; } - if(RKLGetRangeForCapture(icu_regex, status, 0, tempRange) > 0) { goto exitNow; } +void rkl_debugCacheSpinLock (void) RKL_ATTRIBUTES(used, noinline, visibility("default")); +static void rkl_cleanup_cacheSpinLockStatus (volatile NSUInteger *rkl_cacheSpinLockStatusPtr) RKL_ATTRIBUTES(used); - splitRanges[splitRangesIndex] = NSMakeRange(lastLocation, tempRange.location - lastLocation); - lastLocation = NSMaxRange(tempRange); +void rkl_debugCacheSpinLock(void) { + rkl_debugCacheSpinLockCount++; // This is here primarily to prevent the optimizer from optimizing away the function. +} - int32_t capture; - for(capture = 1; capture <= captureCount; capture++) { - RKLCDelayedAssert(splitRangesIndex < (splitRangesCapacity - 2), exception, exitNow); - splitRangesIndex++; - - if(RKLGetRangeForCapture(icu_regex, status, capture, splitRanges[splitRangesIndex]) > 0) { goto exitNow; } - if(splitRanges[splitRangesIndex].location == NSNotFound) { splitRanges[splitRangesIndex] = NSMakeRange(splitRanges[baseMatchIndex].location, 0); } +static void rkl_cleanup_cacheSpinLockStatus(volatile NSUInteger *rkl_cacheSpinLockStatusPtr) { + static NSUInteger didPrintForcedUnlockWarning = 0UL, didPrintNotLockedWarning = 0UL; + NSUInteger rkl_cacheSpinLockStatus = *rkl_cacheSpinLockStatusPtr; + + if(RKL_EXPECTED((rkl_cacheSpinLockStatus & RKLUnlockedCacheSpinLock) == 0UL, 0L) && RKL_EXPECTED((rkl_cacheSpinLockStatus & RKLLockedCacheSpinLock) != 0UL, 1L)) { + if(rkl_cacheSpinLock != (OSSpinLock)0) { + if(didPrintForcedUnlockWarning == 0UL) { didPrintForcedUnlockWarning = 1UL; NSLog(@"[RegexKitLite] Unusual condition detected: Recorded that rkl_cacheSpinLock was locked, but for some reason it was not unlocked. Forcibly unlocking rkl_cacheSpinLock. Set a breakpoint at rkl_debugCacheSpinLock to debug. This warning is only printed once."); } + rkl_debugCacheSpinLock(); // Since this is an unusual condition, offer an attempt to catch it before we unlock. + OSSpinLockUnlock(&rkl_cacheSpinLock); + } else { + if(didPrintNotLockedWarning == 0UL) { didPrintNotLockedWarning = 1UL; NSLog(@"[RegexKitLite] Unusual condition detected: Recorded that rkl_cacheSpinLock was locked, but for some reason it was not unlocked, yet rkl_cacheSpinLock is currently not locked? Set a breakpoint at rkl_debugCacheSpinLock to debug. This warning is only printed once."); } + rkl_debugCacheSpinLock(); } } +} - RKLCDelayedAssert(splitRangesIndex < (splitRangesCapacity - 2), exception, exitNow); - splitRanges[splitRangesIndex] = NSMakeRange(lastLocation, (NSMaxRange(cacheSlot->setToRange) - cacheSlot->setToRange.location) - lastLocation); - splitRangesIndex++; +#endif // RKL_HAVE_CLEANUP - CFIndex setToLocation = cacheSlot->setToRange.location; - CFStringRef setToString = cacheSlot->setToString; - size_t splitStringsSize = (splitRangesIndex * sizeof(id)); - id *splitStrings = NULL; +// rkl_performDictionaryVarArgsOp is a front end to rkl_performRegexOp which converts a ', ...' varargs key/captures list and converts it in to a form that rkl_performRegexOp can use. +// All error checking of arguments is handled by rkl_performRegexOp. - if((stackUsed + splitStringsSize) < RKL_STACK_LIMIT) { if((splitStrings = alloca(splitStringsSize)) == NULL) { goto exitNow; } stackUsed += splitStringsSize; } -#ifdef __OBJC_GC__ - else { if((splitStrings = rkl_realloc(&scratchBuffer[1], splitStringsSize, (NSUInteger)NSScannedOption)) == NULL) { goto exitNow; } } -#else - // http://sourceforge.net/tracker/index.php?func=detail&aid=2050825&group_id=204582&atid=990188 - // This is to get around an iPhone quirk. For whatever reason, the iPhone NSZone.h explicitly removes all NSAllocateCollectable() - // bits and pieces using #if pre-processor conditions. Since NSScannedOption is only really used when the compiler has -fobjc-gc enabled, - // we just chop it out here. - else { if((splitStrings = rkl_realloc(&scratchBuffer[1], splitStringsSize, 0)) == NULL) { goto exitNow; } } -#endif +#pragma mark Front end function that handles varargs and calls rkl_performRegexOp with the marshaled results -#ifdef __OBJC_GC__ - if(rkl_collectingEnabled() == YES) { // I just don't trust the GC system with the faster CF way of doing things... It never seems to work quite the way you expect it to. - for(x = 0; x < splitRangesIndex; x++) { // Optimize the case where the length == 0 by substituting the string @"". - splitStrings[x] = (splitRanges[x].length == 0) ? @"" : [(id)setToString substringWithRange:NSMakeRange(setToLocation + splitRanges[x].location, splitRanges[x].length)]; - } - resultArray = [NSArray arrayWithObjects:splitStrings count:splitRangesIndex]; - } else -#endif - { // This block of code is always compiled in. It is used when not compiled with GC or when compiled with GC but the collector is not enabled. - for(x = 0; x < splitRangesIndex; x++) { // Optimize the case where the length == 0 by substituting the string @"". - splitStrings[x] = (splitRanges[x].length == 0) ? @"" : (id)CFStringCreateWithSubstring(NULL, setToString, CFMakeRange(setToLocation + splitRanges[x].location, (CFIndex)splitRanges[x].length)); +static id rkl_performDictionaryVarArgsOp(id self, SEL _cmd, RKLRegexOp regexOp, NSString *regexString, RKLRegexOptions options, NSInteger capture, id matchString, NSRange *matchRange, NSString *replacementString, NSError **error, void *result, id firstKey, va_list varArgsList) { + id captureKeys[64]; + int captureKeyIndexes[64]; + NSUInteger captureKeysCount = 0UL; + + if(varArgsList != NULL) { + while(captureKeysCount < 62UL) { + id thisCaptureKey = (captureKeysCount == 0) ? firstKey : va_arg(varArgsList, id); + if(RKL_EXPECTED(thisCaptureKey == NULL, 0L)) { break; } + int thisCaptureKeyIndex = va_arg(varArgsList, int); + captureKeys[captureKeysCount] = thisCaptureKey; + captureKeyIndexes[captureKeysCount] = thisCaptureKeyIndex; + captureKeysCount++; } - resultArray = rkl_CFAutorelease(CFArrayCreate(NULL, (const void **)splitStrings, (CFIndex)splitRangesIndex, &transferOwnershipArrayCallBacks)); // Create the CF/NSArray of the split strings. } - exitNow: - if(scratchBuffer[0] != NULL) { free(scratchBuffer[0]); scratchBuffer[0] = NULL; } - if(scratchBuffer[1] != NULL) { free(scratchBuffer[1]); scratchBuffer[1] = NULL; } - - return(resultArray); + return(rkl_performRegexOp(self, _cmd, regexOp, regexString, options, capture, matchString, matchRange, replacementString, error, result, captureKeysCount, captureKeys, captureKeyIndexes)); } // IMPORTANT! This code is critical path code. Because of this, it has been written for speed, not clarity. -// IMPORTANT! Should only be called from performRegexOp(). // ---------- -static NSString *rkl_replaceString(RKLCacheSlot *cacheSlot, id searchString, NSUInteger searchU16Length, NSString *replacementString, NSUInteger replacementU16Length, NSUInteger *replacedCountPtr, int replaceMutable, id *exception, int32_t *status) { - int32_t resultU16Length = 0, tempUniCharBufferU16Capacity = 0; - UniChar *tempUniCharBuffer = NULL; - const UniChar *replacementUniChar = NULL; - id resultObject = NULL; - NSUInteger replacedCount = 0; - - // Zero order approximation of the buffer sizes for holding the replaced string or split strings and split strings pointer offsets. As UTF16 code units. - tempUniCharBufferU16Capacity = (int32_t)(16 + (searchU16Length + (searchU16Length >> 1)) + (replacementU16Length * 2)); +#pragma mark Primary internal function that Objective-C methods call to perform regular expression operations - // Buffer sizes converted from native units to bytes. - size_t stackSize = 0, replacementSize = (replacementU16Length * sizeof(UniChar)), tempUniCharBufferSize = (tempUniCharBufferU16Capacity * sizeof(UniChar)); +static id rkl_performRegexOp(id self, SEL _cmd, RKLRegexOp regexOp, NSString *regexString, RKLRegexOptions options, NSInteger capture, id matchString, NSRange *matchRange, NSString *replacementString, NSError **error, void *result, NSUInteger captureKeysCount, id captureKeys[captureKeysCount], const int captureKeyIndexes[captureKeysCount]) { + volatile NSUInteger RKL_CLEANUP(rkl_cleanup_cacheSpinLockStatus) rkl_cacheSpinLockStatus = 0UL; - // For the various buffers we require, we first try to allocate from the stack if we're not over the RKL_STACK_LIMIT. If we are, switch to using the heap for the buffer. + NSUInteger replaceMutable = 0UL; + RKLRegexOp maskedRegexOp = (regexOp & RKLMaskOp); + BOOL dictionaryOp = ((maskedRegexOp == RKLDictionaryOfCapturesOp) || (maskedRegexOp == RKLArrayOfDictionariesOfCapturesOp)) ? YES : NO; - if((stackSize + tempUniCharBufferSize) < RKL_STACK_LIMIT) { if((tempUniCharBuffer = alloca(tempUniCharBufferSize)) == NULL) { goto exitNow; } stackSize += tempUniCharBufferSize; } - else { if((tempUniCharBuffer = rkl_realloc(&scratchBuffer[0], tempUniCharBufferSize, 0UL)) == NULL) { goto exitNow; } } + if((error != NULL) && (*error != NULL)) { *error = NULL; } - // Try to get the pointer to the replacement strings UTF16 data. If we can't, allocate some buffer space, then covert to UTF16. - if((replacementUniChar = CFStringGetCharactersPtr((CFStringRef)replacementString)) == NULL) { - if((stackSize + replacementSize) < RKL_STACK_LIMIT) { if((replacementUniChar = alloca(replacementSize)) == NULL) { goto exitNow; } stackSize += replacementSize; } - else { if((replacementUniChar = rkl_realloc(&scratchBuffer[1], replacementSize, 0UL)) == NULL) { goto exitNow; } } - CFStringGetCharacters((CFStringRef)replacementString, CFMakeRange(0, replacementU16Length), (UniChar *)replacementUniChar); // Convert to a UTF16 string. - } + if(RKL_EXPECTED(regexString == NULL, 0L)) { RKL_RAISE_EXCEPTION(NSInvalidArgumentException, @"The regular expression argument is NULL."); } + if(RKL_EXPECTED(matchString == NULL, 0L)) { RKL_RAISE_EXCEPTION(NSInternalInconsistencyException, @"The match string argument is NULL."); } + if(RKL_EXPECTED(matchRange == NULL, 0L)) { RKL_RAISE_EXCEPTION(NSInternalInconsistencyException, @"The match range argument is NULL."); } + if((maskedRegexOp == RKLReplaceOp) && RKL_EXPECTED(replacementString == NULL, 0L)) { RKL_RAISE_EXCEPTION(NSInvalidArgumentException, @"The replacement string argument is NULL."); } + if((dictionaryOp == YES) && RKL_EXPECTED(captureKeys == NULL, 0L)) { RKL_RAISE_EXCEPTION(NSInvalidArgumentException, @"The keys argument is NULL."); } + if((dictionaryOp == YES) && RKL_EXPECTED(captureKeyIndexes == NULL, 0L)) { RKL_RAISE_EXCEPTION(NSInvalidArgumentException, @"The captures argument is NULL."); } - cacheSlot->lastFindRange = cacheSlot->lastMatchRange = NSNotFoundRange; // Clear the cached find information for this regex so a subsequent find works correctly. + id resultObject = NULL, exception = NULL; + int32_t status = U_ZERO_ERROR; + RKLCachedRegex *cachedRegex = NULL; + NSUInteger stringU16Length = 0UL, tmpIdx = 0UL; + NSRange stackRanges[2048]; + RKLFindAll findAll; - resultU16Length = rkl_replaceAll(cacheSlot, replacementUniChar, (int32_t)replacementU16Length, tempUniCharBuffer, tempUniCharBufferU16Capacity, &replacedCount, exception, status); + // IMPORTANT! Once we have obtained the lock, code MUST exit via 'goto exitNow;' to unlock the lock! NO EXCEPTIONS! + // ---------- + OSSpinLockLock(&rkl_cacheSpinLock); // Grab the lock and get cache entry. + rkl_cacheSpinLockStatus |= RKLLockedCacheSpinLock; + rkl_dtrace_incrementEventID(); - if(*status == U_BUFFER_OVERFLOW_ERROR) { // Our buffer guess(es) were too small. Resize the buffers and try again. - tempUniCharBufferSize = ((tempUniCharBufferU16Capacity = resultU16Length + 4) * sizeof(UniChar)); - if((stackSize + tempUniCharBufferSize) < RKL_STACK_LIMIT) { if((tempUniCharBuffer = alloca(tempUniCharBufferSize)) == NULL) { goto exitNow; } stackSize += tempUniCharBufferSize; } - else { if((tempUniCharBuffer = rkl_realloc(&scratchBuffer[0], tempUniCharBufferSize, 0UL)) == NULL) { goto exitNow; } } - - *status = 0; // Make sure the status var is cleared and try again. - resultU16Length = rkl_replaceAll(cacheSlot, replacementUniChar, (int32_t)replacementU16Length, tempUniCharBuffer, tempUniCharBufferU16Capacity, &replacedCount, exception, status); + if(RKL_EXPECTED((cachedRegex = rkl_getCachedRegexSetToString(regexString, options, matchString, &stringU16Length, matchRange, error, &exception, &status)) == NULL, 0L)) { stringU16Length = (NSUInteger)CFStringGetLength((CFStringRef)matchString); } + if(RKL_EXPECTED(matchRange->length == NSUIntegerMax, 0L)) { matchRange->length = stringU16Length; } // For convenience. + if(RKL_EXPECTED(stringU16Length < NSMaxRange(*matchRange), 0L) && RKL_EXPECTED(exception == NULL, 1L)) { exception = (id)RKL_EXCEPTION(NSRangeException, @"Range or index out of bounds."); goto exitNow; } + if(RKL_EXPECTED(stringU16Length >= (NSUInteger)INT_MAX, 0L) && RKL_EXPECTED(exception == NULL, 1L)) { exception = (id)RKL_EXCEPTION(NSRangeException, @"String length exceeds INT_MAX."); goto exitNow; } + if(((maskedRegexOp == RKLRangeOp) || (maskedRegexOp == RKLArrayOfStringsOp)) && RKL_EXPECTED(cachedRegex != NULL, 1L) && (RKL_EXPECTED(capture < 0L, 0L) || RKL_EXPECTED(capture > cachedRegex->captureCount, 0L)) && RKL_EXPECTED(exception == NULL, 1L)) { exception = (id)RKL_EXCEPTION(NSInvalidArgumentException, @"The capture argument is not valid."); goto exitNow; } + + if((dictionaryOp == YES) && RKL_EXPECTED(cachedRegex != NULL, 1L) && RKL_EXPECTED(exception == NULL, 1L)) { + for(tmpIdx = 0UL; tmpIdx < captureKeysCount; tmpIdx++) { + if(RKL_EXPECTED(captureKeys[tmpIdx] == NULL, 0L)) { exception = (id)RKL_EXCEPTION(NSInvalidArgumentException, @"The capture key (key %lu of %lu) is NULL.", (unsigned long)(tmpIdx + 1UL), (unsigned long)captureKeysCount); break; } + if((RKL_EXPECTED(captureKeyIndexes[tmpIdx] < 0, 0L) || RKL_EXPECTED(captureKeyIndexes[tmpIdx] > cachedRegex->captureCount, 0L))) { exception = (id)RKL_EXCEPTION(NSInvalidArgumentException, @"The capture argument %d (capture %lu of %lu) for key '%@' is not valid.", captureKeyIndexes[tmpIdx], (unsigned long)(tmpIdx + 1UL), (unsigned long)captureKeysCount, captureKeys[tmpIdx]); break; } + } } + + if(RKL_EXPECTED(cachedRegex == NULL, 0L) || RKL_EXPECTED(status > U_ZERO_ERROR, 0L) || RKL_EXPECTED(exception != NULL, 0L)) { goto exitNow; } - if(*status > 0) { goto exitNow; } // Something went wrong. - - if(resultU16Length == 0) { resultObject = @""; } // Optimize the case where the replaced text length == 0 with a @"" string. - else if(((NSUInteger)resultU16Length == searchU16Length) && (replacedCount == 0)) { // Optimize the case where the replacement == original by creating a copy. Very fast if self is immutable. - if(replaceMutable == NO) { resultObject = rkl_CFAutorelease(CFStringCreateCopy(NULL, (CFStringRef)searchString)); } // .. but only if this is not replacing a mutable self. - } else { resultObject = rkl_CFAutorelease(CFStringCreateWithCharacters(NULL, tempUniCharBuffer, (CFIndex)resultU16Length)); } // otherwise, create a new string. + RKLCDelayedAssert(((cachedRegex >= rkl_cachedRegexes) && ((cachedRegex - rkl_cachedRegexes) < (ssize_t)_RKL_REGEX_CACHE_LINES)) && (cachedRegex != NULL) && (cachedRegex->icu_regex != NULL) && (cachedRegex->regexString != NULL) && (cachedRegex->captureCount >= 0L) && (cachedRegex->setToString != NULL) && (cachedRegex->setToLength >= 0L) && (cachedRegex->setToUniChar != NULL) && ((CFIndex)NSMaxRange(cachedRegex->setToRange) <= cachedRegex->setToLength), &exception, exitNow); + RKLCDelayedAssert((cachedRegex->setToNeedsConversion == 0U) ? ((cachedRegex->setToNeedsConversion == 0U) && (cachedRegex->setToUniChar == CFStringGetCharactersPtr(cachedRegex->setToString))) : ((cachedRegex->buffer != NULL) && (cachedRegex->setToHash == cachedRegex->buffer->hash) && (cachedRegex->setToLength == cachedRegex->buffer->length) && (cachedRegex->setToUniChar == cachedRegex->buffer->uniChar)), &exception, exitNow); - // If replaceMutable == YES, we don't do the replacement here. We wait until after we return and unlock the cache lock. - // This is because we may be trying to mutate an immutable string object. - if((replacedCount > 0) && (replaceMutable == YES)) { // We're working on a mutable string and there were successfull matches with replaced text, so there's work to do. - clearBuffer((cacheSlot->setToLength < RKL_FIXED_LENGTH) ? &fixedBuffer : &dynamicBuffer, NO); - clearCacheSlotSetTo(cacheSlot); // Flush any cached information about this string since it will mutate. - } - - exitNow: - if(scratchBuffer[0] != NULL) { free(scratchBuffer[0]); scratchBuffer[0] = NULL; } - if(scratchBuffer[1] != NULL) { free(scratchBuffer[1]); scratchBuffer[1] = NULL; } - if(replacedCountPtr != NULL) { *replacedCountPtr = replacedCount; } - return(resultObject); -} + switch(maskedRegexOp) { + case RKLRangeOp: + if((RKL_EXPECTED(rkl_search(cachedRegex, matchRange, 0UL, &exception, &status) == NO, 0L)) || (RKL_EXPECTED(status > U_ZERO_ERROR, 0L))) { *(NSRange *)result = NSNotFoundRange; goto exitNow; } + if(RKL_EXPECTED(capture == 0L, 1L)) { *(NSRange *)result = cachedRegex->lastMatchRange; } else { if(RKL_EXPECTED(rkl_getRangeForCapture(cachedRegex, &status, (int32_t)capture, (NSRange *)result) > U_ZERO_ERROR, 0L)) { goto exitNow; } } + break; + + case RKLSplitOp: // Fall-thru... + case RKLArrayOfStringsOp: // Fall-thru... + case RKLCapturesArrayOp: // Fall-thru... + case RKLArrayOfCapturesOp: // Fall-thru... + case RKLDictionaryOfCapturesOp: // Fall-thru... + case RKLArrayOfDictionariesOfCapturesOp: + findAll = rkl_makeFindAll(stackRanges, *matchRange, 2048L, (2048UL * sizeof(NSRange)), 0UL, &rkl_scratchBuffer[0], &rkl_scratchBuffer[1], &rkl_scratchBuffer[2], &rkl_scratchBuffer[3], &rkl_scratchBuffer[4], 0L, capture, (((maskedRegexOp == RKLCapturesArrayOp) || (maskedRegexOp == RKLDictionaryOfCapturesOp)) ? 1L : NSIntegerMax)); + + if(RKL_EXPECTED(rkl_findRanges(cachedRegex, regexOp, &findAll, &exception, &status) == NO, 1L)) { + if(RKL_EXPECTED(findAll.found == 0L, 0L)) { resultObject = (maskedRegexOp == RKLDictionaryOfCapturesOp) ? [NSDictionary dictionary] : [NSArray array]; } + else { + if(dictionaryOp == YES) { resultObject = rkl_makeDictionary (cachedRegex, regexOp, &findAll, captureKeysCount, captureKeys, captureKeyIndexes, &exception); } + else { resultObject = rkl_makeArray (cachedRegex, regexOp, &findAll, &exception); } + } + } + + for(tmpIdx = 0UL; tmpIdx < _RKL_SCRATCH_BUFFERS; tmpIdx++) { if(RKL_EXPECTED(rkl_scratchBuffer[tmpIdx] != NULL, 0L)) { rkl_scratchBuffer[tmpIdx] = rkl_free(&rkl_scratchBuffer[tmpIdx]); } } -// Modified version of the ICU libraries uregex_replaceAll() that keeps count of the number of replacements made. -static int32_t rkl_replaceAll(RKLCacheSlot *cacheSlot, const UniChar *replacementUniChar, int32_t replacementU16Length, UniChar *replacedUniChar, int32_t replacedU16Capacity, NSUInteger *replacedCount, id *exception, int32_t *status) { - NSUInteger replaced = 0; - int32_t u16Length = 0; - RKLCDelayedAssert((cacheSlot != NULL) && (replacementUniChar != NULL) && (replacedUniChar != NULL) && (status != NULL), exception, exitNow); - - uregex_reset(cacheSlot->icu_regex, 0, status); + break; - // Work around for ICU uregex_reset() bug, see http://bugs.icu-project.org/trac/ticket/6545 - // http://sourceforge.net/tracker/index.php?func=detail&aid=2105213&group_id=204582&atid=990188 - if((cacheSlot->setToLength == 0) && (*status == 8)) { *status = 0; } + case RKLReplaceOp: resultObject = rkl_replaceString(cachedRegex, matchString, stringU16Length, replacementString, (NSUInteger)CFStringGetLength((CFStringRef)replacementString), (NSInteger *)result, (replaceMutable = (((regexOp & RKLReplaceMutable) != 0) ? 1UL : 0UL)), &exception, &status); break; - while(uregex_findNext(cacheSlot->icu_regex, status)) { - replaced++; - u16Length += uregex_appendReplacement(cacheSlot->icu_regex, replacementUniChar, replacementU16Length, &replacedUniChar, &replacedU16Capacity, status); + default: exception = RKLCAssertDictionary(@"Unknown regexOp code."); break; } - u16Length += uregex_appendTail(cacheSlot->icu_regex, &replacedUniChar, &replacedU16Capacity, status); - - if(replacedCount != 0) { *replacedCount = replaced; } - exitNow: - return(u16Length); + +exitNow: + OSSpinLockUnlock(&rkl_cacheSpinLock); + rkl_cacheSpinLockStatus |= RKLUnlockedCacheSpinLock; // Warning about rkl_cacheSpinLockStatus never being read can be safely ignored. + + if(RKL_EXPECTED(status > U_ZERO_ERROR, 0L) && RKL_EXPECTED(exception == NULL, 0L)) { exception = rkl_NSExceptionForRegex(regexString, options, NULL, status); } // If we had a problem, prepare an exception to be thrown. + if(RKL_EXPECTED(exception != NULL, 0L)) { rkl_handleDelayedAssert(self, _cmd, exception); } // If there is an exception, throw it at this point. + // If we're working on a mutable string and there were successful matches/replacements, then we still have work to do. + // This is done outside the cache lock and with the objc replaceCharactersInRange:withString: method because Core Foundation + // does not assert that the string we are attempting to update is actually a mutable string, whereas Foundation ensures + // the object receiving the message is a mutable string and throws an exception if we're attempting to modify an immutable string. + if(RKL_EXPECTED(replaceMutable == 1UL, 0L) && RKL_EXPECTED(*((NSInteger *)result) > 0L, 1L) && RKL_EXPECTED(status == U_ZERO_ERROR, 1L) && RKL_EXPECTED(resultObject != NULL, 1L)) { [matchString replaceCharactersInRange:*matchRange withString:resultObject]; } + // If status < U_ZERO_ERROR, consider it an error, even though status < U_ZERO_ERROR is a 'warning' in ICU nomenclature. + // status > U_ZERO_ERROR are an exception and handled above. + // http://sourceforge.net/tracker/?func=detail&atid=990188&aid=2890810&group_id=204582 + if(RKL_EXPECTED(status < U_ZERO_ERROR, 0L) && RKL_EXPECTED(resultObject == NULL, 0L) && (error != NULL)) { + NSString *replacedString = NULL; + NSInteger replacedCount = 0L; + RKLUserInfoOptions userInfoOptions = RKLUserInfoNone; + if((maskedRegexOp == RKLReplaceOp) && (result != NULL)) { userInfoOptions |= RKLUserInfoReplacedCount; replacedString = resultObject; replacedCount = *((NSInteger *)result); } + if(matchRange != NULL) { userInfoOptions |= RKLUserInfoSubjectRange; } + *error = rkl_makeNSError(userInfoOptions, regexString, options, NULL, status, matchString, (matchRange != NULL) ? *matchRange : NSNotFoundRange, replacementString, replacedString, replacedCount, (RKLRegexEnumerationOptions)RKLRegexEnumerationNoOptions, @"The ICU library returned an unexpected error."); + } + return(resultObject); } -static void rkl_clearStringCache(void) { - NSCParameterAssert(cacheSpinLock != 0); - lastCacheSlot = NULL; - NSUInteger x = 0; - for(x = 0; x < SCRATCH_BUFFERS; x++) { if(scratchBuffer[x] != NULL) { free(scratchBuffer[x]); scratchBuffer[x] = NULL; } } - for(x = 0; x < RKL_CACHE_SIZE; x++) { clearCacheSlotRegex(&RKLCache[x]); clearCacheSlotSetTo(&RKLCache[x]); } - clearBuffer(&fixedBuffer, NO); - clearBuffer(&dynamicBuffer, YES); -} - -static void clearBuffer(RKLBuffer *buffer, int freeDynamicBuffer) { - if(buffer == NULL) { return; } - if((freeDynamicBuffer == YES) && (buffer->uniChar != NULL) && (buffer == &dynamicBuffer)) { free(dynamicBuffer.uniChar); dynamicBuffer.uniChar = NULL; } - if(buffer->string != NULL) { CFRelease(buffer->string); buffer->string = NULL; } - buffer->length = 0L; - buffer->hash = 0UL; +static void rkl_handleDelayedAssert(id self, SEL _cmd, id exception) { + if(RKL_EXPECTED(exception != NULL, 1L)) { + if([exception isKindOfClass:[NSException class]]) { [[NSException exceptionWithName:[exception name] reason:rkl_stringFromClassAndMethod(self, _cmd, [exception reason]) userInfo:[exception userInfo]] raise]; } + else { + id functionString = [exception objectForKey:@"function"], fileString = [exception objectForKey:@"file"], descriptionString = [exception objectForKey:@"description"], lineNumber = [exception objectForKey:@"line"]; + RKLCHardAbortAssert((functionString != NULL) && (fileString != NULL) && (descriptionString != NULL) && (lineNumber != NULL)); + [[NSAssertionHandler currentHandler] handleFailureInFunction:functionString file:fileString lineNumber:(NSInteger)[lineNumber longValue] description:@"%@", descriptionString]; + } + } } -static void clearCacheSlotRegex(RKLCacheSlot *cacheSlot) { - if(cacheSlot == NULL) { return; } - if(cacheSlot->regexString != NULL) { CFRelease(cacheSlot->regexString); cacheSlot->regexString = NULL; cacheSlot->options = 0U; } - if(cacheSlot->icu_regex != NULL) { uregex_close(cacheSlot->icu_regex); cacheSlot->icu_regex = NULL; cacheSlot->captureCount = -1L; } - if(cacheSlot->setToString != NULL) { clearCacheSlotSetTo(cacheSlot); } -} +// IMPORTANT! This code is critical path code. Because of this, it has been written for speed, not clarity. +// IMPORTANT! Should only be called from rkl_performRegexOp() or rkl_findRanges(). +// ---------- -static void clearCacheSlotSetTo(RKLCacheSlot *cacheSlot) { - if(cacheSlot == NULL) { return; } - if(cacheSlot->icu_regex != NULL) { int32_t status = 0; uregex_setText(cacheSlot->icu_regex, &emptyUniCharString[0], 0, &status); } - if(cacheSlot->setToString != NULL) { CFRelease(cacheSlot->setToString); cacheSlot->setToString = NULL; } - cacheSlot->setToLength = 0L; - cacheSlot->setToHash = 0UL; - cacheSlot->setToIsImmutable = cacheSlot->setToNeedsConversion = 0UL; - cacheSlot->lastFindRange = cacheSlot->lastMatchRange = cacheSlot->setToRange = NSNotFoundRange; - cacheSlot->setToUniChar = NULL; -} +#pragma mark Primary means of performing a search with a regular expression -// Helps to keep things tidy. -#define addKeyAndObject(objs, keys, i, k, o) ({id _o=(o), _k=(k); if((_o != NULL) && (_k != NULL)) { objs[i] = _o; keys[i] = _k; i++; } }) +static NSUInteger rkl_search(RKLCachedRegex *cachedRegex, NSRange *searchRange, NSUInteger updateSearchRange, id *exception RKL_UNUSED_ASSERTION_ARG, int32_t *status) { + NSUInteger foundMatch = 0UL; -static NSDictionary *userInfoDictionary(NSString *regexString, RKLRegexOptions options, const UParseError *parseError, int status, ...) { - va_list varArgsList; - va_start(varArgsList, status); + if((NSEqualRanges(*searchRange, cachedRegex->lastFindRange) == YES) && ((cachedRegex->lastMatchRange.length > 0UL) || (cachedRegex->lastMatchRange.location == (NSUInteger)NSNotFound))) { foundMatch = ((cachedRegex->lastMatchRange.location == (NSUInteger)NSNotFound) ? 0UL : 1UL);} + else { // Only perform an expensive 'find' operation iff the current find range is different than the last find range. + NSUInteger findLocation = (searchRange->location - cachedRegex->setToRange.location); + RKLCDelayedAssert(((searchRange->location >= cachedRegex->setToRange.location)) && (NSRangeInsideRange(*searchRange, cachedRegex->setToRange) == YES) && (findLocation < INT_MAX) && (findLocation <= cachedRegex->setToRange.length), exception, exitNow); + + RKL_PREFETCH_UNICHAR(cachedRegex->setToUniChar, searchRange->location); // Spool up the CPU caches. + + // Using uregex_findNext can be a slight performance win. + NSUInteger useFindNext = (RKL_EXPECTED(searchRange->location == (NSMaxRange(cachedRegex->lastMatchRange) + ((RKL_EXPECTED(cachedRegex->lastMatchRange.length == 0UL, 0L) && RKL_EXPECTED(cachedRegex->lastMatchRange.location < NSMaxRange(cachedRegex->setToRange), 0L)) ? 1UL : 0UL)), 1L) ? 1UL : 0UL); - if(regexString == NULL) { return(NULL); } + cachedRegex->lastFindRange = *searchRange; + if(RKL_EXPECTED(useFindNext == 0UL, 0L)) { if(RKL_EXPECTED((RKL_ICU_FUNCTION_APPEND(uregex_find) (cachedRegex->icu_regex, (int32_t)findLocation, status) == NO), 0L) || RKL_EXPECTED(*status > U_ZERO_ERROR, 0L)) { goto finishedFind; } } + else { if(RKL_EXPECTED((RKL_ICU_FUNCTION_APPEND(uregex_findNext)(cachedRegex->icu_regex, status) == NO), 0L) || RKL_EXPECTED(*status > U_ZERO_ERROR, 0L)) { goto finishedFind; } } + foundMatch = 1UL; + + if(RKL_EXPECTED(rkl_getRangeForCapture(cachedRegex, status, 0, &cachedRegex->lastMatchRange) > U_ZERO_ERROR, 0L)) { goto finishedFind; } + RKLCDelayedAssert(NSRangeInsideRange(cachedRegex->lastMatchRange, *searchRange) == YES, exception, exitNow); + } + +finishedFind: + if(RKL_EXPECTED(*status > U_ZERO_ERROR, 0L)) { foundMatch = 0UL; cachedRegex->lastFindRange = NSNotFoundRange; } + + if(RKL_EXPECTED(foundMatch == 0UL, 0L)) { cachedRegex->lastFindRange = NSNotFoundRange; cachedRegex->lastMatchRange = NSNotFoundRange; if(RKL_EXPECTED(updateSearchRange == 1UL, 1L)) { *searchRange = NSMakeRange(NSMaxRange(*searchRange), 0UL); } } + else { + RKLCDelayedAssert(NSRangeInsideRange(cachedRegex->lastMatchRange, *searchRange) == YES, exception, exitNow); + if(RKL_EXPECTED(updateSearchRange == 1UL, 1L)) { + NSUInteger nextLocation = (NSMaxRange(cachedRegex->lastMatchRange) + ((RKL_EXPECTED(cachedRegex->lastMatchRange.length == 0UL, 0L) && RKL_EXPECTED(cachedRegex->lastMatchRange.location < NSMaxRange(cachedRegex->setToRange), 1L)) ? 1UL : 0UL)), locationDiff = nextLocation - searchRange->location; + RKLCDelayedAssert((((locationDiff > 0UL) || ((locationDiff == 0UL) && (cachedRegex->lastMatchRange.location == NSMaxRange(cachedRegex->setToRange)))) && (locationDiff <= searchRange->length)), exception, exitNow); + searchRange->location = nextLocation; + searchRange->length -= locationDiff; + } + } + +#ifndef NS_BLOCK_ASSERTIONS +exitNow: +#endif + return(foundMatch); +} - id objects[64], keys[64]; - NSUInteger count = 0; +// IMPORTANT! This code is critical path code. Because of this, it has been written for speed, not clarity. +// IMPORTANT! Should only be called from rkl_performRegexOp() or rkl_performEnumerationUsingBlock(). +// ---------- - NSString *errorNameString = [NSString stringWithUTF8String:u_errorName(status)]; +#pragma mark Used to perform multiple searches at once and return the NSRange results in bulk - addKeyAndObject(objects, keys, count, RKLICURegexRegexErrorKey, regexString); - addKeyAndObject(objects, keys, count, RKLICURegexRegexOptionsErrorKey, [NSNumber numberWithUnsignedInt:options]); - addKeyAndObject(objects, keys, count, RKLICURegexErrorCodeErrorKey, [NSNumber numberWithInt:status]); - addKeyAndObject(objects, keys, count, RKLICURegexErrorNameErrorKey, errorNameString); +static BOOL rkl_findRanges(RKLCachedRegex *cachedRegex, RKLRegexOp regexOp, RKLFindAll *findAll, id *exception, int32_t *status) { + BOOL returnWithError = YES; + RKLCDelayedAssert((((cachedRegex != NULL) && (cachedRegex->icu_regex != NULL) && (cachedRegex->setToUniChar != NULL) && (cachedRegex->captureCount >= 0L) && (cachedRegex->setToRange.location != (NSUInteger)NSNotFound)) && (status != NULL) && ((findAll != NULL) && (findAll->found == 0L) && (findAll->addedSplitRanges == 0L) && ((findAll->capacity >= 0L) && (((findAll->capacity > 0L) || (findAll->size > 0UL)) ? ((findAll->ranges != NULL) && (findAll->capacity > 0L) && (findAll->size > 0UL)) : 1)) && ((findAll->capture >= 0L) && (findAll->capture <= cachedRegex->captureCount)))), exception, exitNow); + + NSInteger captureCount = cachedRegex->captureCount, findAllRangeIndexOfLastNonZeroLength = 0L; + NSUInteger lastLocation = findAll->findInRange.location; + RKLRegexOp maskedRegexOp = (regexOp & RKLMaskOp); + NSRange searchRange = findAll->findInRange; - if((parseError != NULL) && (parseError->line != -1)) { - NSString *preContextString = [NSString stringWithCharacters:&parseError->preContext[0] length:(NSUInteger)u_strlen(&parseError->preContext[0])]; - NSString *postContextString = [NSString stringWithCharacters:&parseError->postContext[0] length:(NSUInteger)u_strlen(&parseError->postContext[0])]; + for(findAll->found = 0L; (findAll->found < findAll->findUpTo) && ((findAll->found < findAll->capacity) || (findAll->found == 0L)); findAll->found++) { + NSInteger loopCapture, shouldBreak = 0L; - addKeyAndObject(objects, keys, count, RKLICURegexLineErrorKey, [NSNumber numberWithInt:parseError->line]); - addKeyAndObject(objects, keys, count, RKLICURegexOffsetErrorKey, [NSNumber numberWithInt:parseError->offset]); - addKeyAndObject(objects, keys, count, RKLICURegexPreContextErrorKey, preContextString); - addKeyAndObject(objects, keys, count, RKLICURegexPostContextErrorKey, postContextString); - addKeyAndObject(objects, keys, count, @"NSLocalizedFailureReason", ([NSString stringWithFormat:@"The error %@ occurred at line %d, column %d: %@<>%@", errorNameString, parseError->line, parseError->offset, preContextString, postContextString])); - } else { - addKeyAndObject(objects, keys, count, @"NSLocalizedFailureReason", ([NSString stringWithFormat:@"The error %@ occurred.", errorNameString])); + if(RKL_EXPECTED(findAll->found >= ((findAll->capacity - ((captureCount + 2L) * 4L)) - 4L), 0L)) { if(RKL_EXPECTED(rkl_growFindRanges(cachedRegex, lastLocation, findAll, exception) == 0UL, 0L)) { goto exitNow; } } + + RKLCDelayedAssert((searchRange.location != (NSUInteger)NSNotFound) && (NSRangeInsideRange(searchRange, cachedRegex->setToRange) == YES) && (NSRangeInsideRange(findAll->findInRange, cachedRegex->setToRange) == YES), exception, exitNow); + + // This fixes a 'bug' that is also present in ICU's uregex_split(). 'Bug', in this case, means that the results of a split operation can differ from those that perl's split() creates for the same input. + // "I|at|ice I eat rice" split using the regex "\b\s*" demonstrates the problem. ICU bug http://bugs.icu-project.org/trac/ticket/6826 + // ICU : "", "I", "|", "at", "|", "ice", "", "I", "", "eat", "", "rice" <- Results that RegexKitLite used to produce. + // PERL: "I", "|", "at", "|", "ice", "I", "eat", "rice" <- Results that RegexKitLite now produces. + do { if((rkl_search(cachedRegex, &searchRange, 1UL, exception, status) == NO) || (RKL_EXPECTED(*status > U_ZERO_ERROR, 0L))) { shouldBreak = 1L; } findAll->remainingRange = searchRange; } + while(RKL_EXPECTED((cachedRegex->lastMatchRange.location - lastLocation) == 0UL, 0L) && RKL_EXPECTED(cachedRegex->lastMatchRange.length == 0UL, 0L) && (maskedRegexOp == RKLSplitOp) && RKL_EXPECTED(shouldBreak == 0L, 1L)); + if(RKL_EXPECTED(shouldBreak == 1L, 0L)) { break; } + + RKLCDelayedAssert((searchRange.location != (NSUInteger)NSNotFound) && (NSRangeInsideRange(searchRange, cachedRegex->setToRange) == YES) && (NSRangeInsideRange(findAll->findInRange, cachedRegex->setToRange) == YES) && (NSRangeInsideRange(searchRange, findAll->findInRange) == YES), exception, exitNow); + RKLCDelayedAssert((NSRangeInsideRange(cachedRegex->lastFindRange, cachedRegex->setToRange) == YES) && (NSRangeInsideRange(cachedRegex->lastMatchRange, cachedRegex->setToRange) == YES) && (NSRangeInsideRange(cachedRegex->lastMatchRange, findAll->findInRange) == YES), exception, exitNow); + RKLCDelayedAssert((findAll->ranges != NULL) && (findAll->found >= 0L) && (findAll->capacity >= 0L) && ((findAll->found + (captureCount + 3L) + 1L) < (findAll->capacity - 2L)), exception, exitNow); + + NSInteger findAllRangesIndexForCapture0 = findAll->found; + switch(maskedRegexOp) { + case RKLArrayOfStringsOp: + if(findAll->capture == 0L) { findAll->ranges[findAll->found] = cachedRegex->lastMatchRange; } else { if(RKL_EXPECTED(rkl_getRangeForCapture(cachedRegex, status, (int32_t)findAll->capture, &findAll->ranges[findAll->found]) > U_ZERO_ERROR, 0L)) { goto exitNow; } } + break; + + case RKLSplitOp: // Fall-thru... + case RKLCapturesArrayOp: // Fall-thru... + case RKLDictionaryOfCapturesOp: // Fall-thru... + case RKLArrayOfDictionariesOfCapturesOp: // Fall-thru... + case RKLArrayOfCapturesOp: + findAll->ranges[findAll->found] = ((maskedRegexOp == RKLSplitOp) ? NSMakeRange(lastLocation, cachedRegex->lastMatchRange.location - lastLocation) : cachedRegex->lastMatchRange); + + for(loopCapture = 1L; loopCapture <= captureCount; loopCapture++) { + RKLCDelayedAssert((findAll->found >= 0L) && (findAll->found < (findAll->capacity - 2L)) && (loopCapture < INT_MAX), exception, exitNow); + if(RKL_EXPECTED(rkl_getRangeForCapture(cachedRegex, status, (int32_t)loopCapture, &findAll->ranges[++findAll->found]) > U_ZERO_ERROR, 0L)) { goto exitNow; } + } + break; + + default: if(*exception == NULL) { *exception = RKLCAssertDictionary(@"Unknown regexOp."); } goto exitNow; break; + } + + if(findAll->ranges[findAllRangesIndexForCapture0].length > 0UL) { findAllRangeIndexOfLastNonZeroLength = findAll->found + 1UL; } + lastLocation = NSMaxRange(cachedRegex->lastMatchRange); + } + + if(RKL_EXPECTED(*status > U_ZERO_ERROR, 0L)) { goto exitNow; } + + RKLCDelayedAssert((findAll->ranges != NULL) && (findAll->found >= 0L) && (findAll->found < (findAll->capacity - 2L)), exception, exitNow); + if(maskedRegexOp == RKLSplitOp) { + if(lastLocation != NSMaxRange(findAll->findInRange)) { findAll->addedSplitRanges++; findAll->ranges[findAll->found++] = NSMakeRange(lastLocation, NSMaxRange(findAll->findInRange) - lastLocation); findAllRangeIndexOfLastNonZeroLength = findAll->found; } + findAll->found = findAllRangeIndexOfLastNonZeroLength; } + + RKLCDelayedAssert((findAll->ranges != NULL) && (findAll->found >= 0L) && (findAll->found < (findAll->capacity - 2L)), exception, exitNow); + returnWithError = NO; + +exitNow: + return(returnWithError); +} - while(count < 62) { id obj = va_arg(varArgsList, id), key = va_arg(varArgsList, id); if((obj != NULL) && (key != NULL)) { addKeyAndObject(objects, keys, count, key, obj); } else { break; } } +// IMPORTANT! This code is critical path code. Because of this, it has been written for speed, not clarity. +// IMPORTANT! Should only be called from rkl_findRanges(). +// ---------- - return([NSDictionary dictionaryWithObjects:&objects[0] forKeys:&keys[0] count:count]); +static NSUInteger rkl_growFindRanges(RKLCachedRegex *cachedRegex, NSUInteger lastLocation, RKLFindAll *findAll, id *exception RKL_UNUSED_ASSERTION_ARG) { + NSUInteger didGrowRanges = 0UL; + RKLCDelayedAssert((((cachedRegex != NULL) && (cachedRegex->captureCount >= 0L)) && ((findAll != NULL) && (findAll->capacity >= 0L) && (findAll->rangesScratchBuffer != NULL) && (findAll->found >= 0L) && (((findAll->capacity > 0L) || (findAll->size > 0UL) || (findAll->ranges != NULL)) ? ((findAll->capacity > 0L) && (findAll->size > 0UL) && (findAll->ranges != NULL) && (((size_t)findAll->capacity * sizeof(NSRange)) == findAll->size)) : 1))), exception, exitNow); + + // Attempt to guesstimate the required capacity based on: the total length needed to search / (length we've searched so far / ranges found so far). + NSInteger newCapacity = (findAll->capacity + (findAll->capacity / 2L)), estimate = (NSInteger)((float)cachedRegex->setToLength / (((float)lastLocation + 1.0f) / ((float)findAll->found + 1.0f))); + newCapacity = (((newCapacity + ((estimate > newCapacity) ? estimate : newCapacity)) / 2L) + ((cachedRegex->captureCount + 2L) * 4L) + 4L); + + NSUInteger needToCopy = ((*findAll->rangesScratchBuffer != findAll->ranges) && (findAll->ranges != NULL)) ? 1UL : 0UL; // If findAll->ranges is set to a stack allocation then we need to manually copy the data from the stack to the new heap allocation. + size_t newSize = ((size_t)newCapacity * sizeof(NSRange)); + RKL_STRONG_REF NSRange * RKL_GC_VOLATILE newRanges = NULL; + + if(RKL_EXPECTED((newRanges = (RKL_STRONG_REF NSRange * RKL_GC_VOLATILE)rkl_realloc((RKL_STRONG_REF void ** RKL_GC_VOLATILE)findAll->rangesScratchBuffer, newSize, 0UL)) == NULL, 0L)) { findAll->capacity = 0L; findAll->size = 0UL; findAll->ranges = NULL; *findAll->rangesScratchBuffer = rkl_free((RKL_STRONG_REF void ** RKL_GC_VOLATILE)findAll->rangesScratchBuffer); goto exitNow; } else { didGrowRanges = 1UL; } + if(needToCopy == 1UL) { memcpy(newRanges, findAll->ranges, findAll->size); } // If necessary, copy the existing data to the new heap allocation. + + findAll->capacity = newCapacity; + findAll->size = newSize; + findAll->ranges = newRanges; + +exitNow: + return(didGrowRanges); } -static NSError *RKLNSErrorForRegex(NSString *regexString, RKLRegexOptions options, const UParseError *parseError, int status) { - return([NSError errorWithDomain:RKLICURegexErrorDomain code:(NSInteger)status userInfo:userInfoDictionary(regexString, options, parseError, status, @"There was an error compiling the regular expression.", @"NSLocalizedDescription", NULL)]); -} +// IMPORTANT! This code is critical path code. Because of this, it has been written for speed, not clarity. +// IMPORTANT! Should only be called from rkl_performRegexOp(). +// ---------- + +#pragma mark Convert bulk results from rkl_findRanges in to various NSArray types + +static NSArray *rkl_makeArray(RKLCachedRegex *cachedRegex, RKLRegexOp regexOp, RKLFindAll *findAll, id *exception RKL_UNUSED_ASSERTION_ARG) { + NSUInteger createdStringsCount = 0UL, createdArraysCount = 0UL, transferredStringsCount = 0UL; + id * RKL_GC_VOLATILE matchedStrings = NULL, * RKL_GC_VOLATILE subcaptureArrays = NULL, emptyString = @""; + NSArray * RKL_GC_VOLATILE resultArray = NULL; + + RKLCDelayedAssert((cachedRegex != NULL) && ((findAll != NULL) && (findAll->found >= 0L) && (findAll->stringsScratchBuffer != NULL) && (findAll->arraysScratchBuffer != NULL)), exception, exitNow); + + size_t matchedStringsSize = ((size_t)findAll->found * sizeof(id)); + CFStringRef setToString = cachedRegex->setToString; + + if((findAll->stackUsed + matchedStringsSize) < (size_t)_RKL_STACK_LIMIT) { if(RKL_EXPECTED((matchedStrings = (id * RKL_GC_VOLATILE)alloca(matchedStringsSize)) == NULL, 0L)) { goto exitNow; } findAll->stackUsed += matchedStringsSize; } + else { if(RKL_EXPECTED((matchedStrings = (id * RKL_GC_VOLATILE)rkl_realloc(findAll->stringsScratchBuffer, matchedStringsSize, (NSUInteger)RKLScannedOption)) == NULL, 0L)) { goto exitNow; } } + + { // This sub-block (and its local variables) is here for the benefit of the optimizer. + NSUInteger found = (NSUInteger)findAll->found; + const NSRange *rangePtr = findAll->ranges; + id *matchedStringsPtr = matchedStrings; + + for(createdStringsCount = 0UL; createdStringsCount < found; createdStringsCount++) { + NSRange range = *rangePtr++; + if(RKL_EXPECTED(((*matchedStringsPtr++ = RKL_EXPECTED(range.length == 0UL, 0L) ? emptyString : rkl_CreateStringWithSubstring((id)setToString, range)) == NULL), 0L)) { goto exitNow; } + } + } + + NSUInteger arrayCount = createdStringsCount; + id * RKL_GC_VOLATILE arrayObjects = matchedStrings; + + if((regexOp & RKLSubcapturesArray) != 0UL) { + RKLCDelayedAssert(((createdStringsCount % ((NSUInteger)cachedRegex->captureCount + 1UL)) == 0UL) && (createdArraysCount == 0UL), exception, exitNow); + + NSUInteger captureCount = ((NSUInteger)cachedRegex->captureCount + 1UL); + NSUInteger subcaptureArraysCount = (createdStringsCount / captureCount); + size_t subcaptureArraysSize = ((size_t)subcaptureArraysCount * sizeof(id)); + + if((findAll->stackUsed + subcaptureArraysSize) < (size_t)_RKL_STACK_LIMIT) { if(RKL_EXPECTED((subcaptureArrays = (id * RKL_GC_VOLATILE)alloca(subcaptureArraysSize)) == NULL, 0L)) { goto exitNow; } findAll->stackUsed += subcaptureArraysSize; } + else { if(RKL_EXPECTED((subcaptureArrays = (id * RKL_GC_VOLATILE)rkl_realloc(findAll->arraysScratchBuffer, subcaptureArraysSize, (NSUInteger)RKLScannedOption)) == NULL, 0L)) { goto exitNow; } } + + { // This sub-block (and its local variables) is here for the benefit of the optimizer. + id *subcaptureArraysPtr = subcaptureArrays; + id *matchedStringsPtr = matchedStrings; + + for(createdArraysCount = 0UL; createdArraysCount < subcaptureArraysCount; createdArraysCount++) { + if(RKL_EXPECTED((*subcaptureArraysPtr++ = rkl_CreateArrayWithObjects((void **)matchedStringsPtr, captureCount)) == NULL, 0L)) { goto exitNow; } + matchedStringsPtr += captureCount; + transferredStringsCount += captureCount; + } + } + + RKLCDelayedAssert((transferredStringsCount == createdStringsCount), exception, exitNow); + arrayCount = createdArraysCount; + arrayObjects = subcaptureArrays; + } + + RKLCDelayedAssert((arrayObjects != NULL), exception, exitNow); + resultArray = rkl_CreateAutoreleasedArray((void **)arrayObjects, (NSUInteger)arrayCount); + +exitNow: + if(RKL_EXPECTED(resultArray == NULL, 0L) && (rkl_collectingEnabled() == NO)) { // If we did not create an array then we need to make sure that we release any objects we created. + NSUInteger x; + if(matchedStrings != NULL) { for(x = transferredStringsCount; x < createdStringsCount; x++) { if((matchedStrings[x] != NULL) && (matchedStrings[x] != emptyString)) { matchedStrings[x] = rkl_ReleaseObject(matchedStrings[x]); } } } + if(subcaptureArrays != NULL) { for(x = 0UL; x < createdArraysCount; x++) { if(subcaptureArrays[x] != NULL) { subcaptureArrays[x] = rkl_ReleaseObject(subcaptureArrays[x]); } } } + } + + return(resultArray); +} + +// IMPORTANT! This code is critical path code. Because of this, it has been written for speed, not clarity. +// IMPORTANT! Should only be called from rkl_performRegexOp(). +// ---------- -static NSException *RKLNSExceptionForRegex(NSString *regexString, RKLRegexOptions options, const UParseError *parseError, int status) { - return([NSException exceptionWithName:RKLICURegexException reason:[NSString stringWithFormat:@"ICU regular expression error #%d, %s", status, u_errorName(status)] userInfo:userInfoDictionary(regexString, options, parseError, status, NULL)]); +#pragma mark Convert bulk results from rkl_findRanges in to various NSDictionary types + +static id rkl_makeDictionary(RKLCachedRegex *cachedRegex, RKLRegexOp regexOp, RKLFindAll *findAll, NSUInteger captureKeysCount, id captureKeys[captureKeysCount], const int captureKeyIndexes[captureKeysCount], id *exception RKL_UNUSED_ASSERTION_ARG) { + NSUInteger matchedStringIndex = 0UL, createdStringsCount = 0UL, createdDictionariesCount = 0UL, matchedDictionariesCount = (findAll->found / (cachedRegex->captureCount + 1UL)), transferredDictionariesCount = 0UL; + id * RKL_GC_VOLATILE matchedStrings = NULL, * RKL_GC_VOLATILE matchedKeys = NULL, emptyString = @""; + id RKL_GC_VOLATILE returnObject = NULL; + NSDictionary ** RKL_GC_VOLATILE matchedDictionaries = NULL; + + RKLCDelayedAssert((cachedRegex != NULL) && ((findAll != NULL) && (findAll->found >= 0L) && (findAll->stringsScratchBuffer != NULL) && (findAll->dictionariesScratchBuffer != NULL) && (findAll->keysScratchBuffer != NULL) && (captureKeyIndexes != NULL)), exception, exitNow); + + CFStringRef setToString = cachedRegex->setToString; + + size_t matchedStringsSize = ((size_t)captureKeysCount * sizeof(void *)); + if((findAll->stackUsed + matchedStringsSize) < (size_t)_RKL_STACK_LIMIT) { if(RKL_EXPECTED((matchedStrings = (id * RKL_GC_VOLATILE)alloca(matchedStringsSize)) == NULL, 0L)) { goto exitNow; } findAll->stackUsed += matchedStringsSize; } + else { if(RKL_EXPECTED((matchedStrings = (id * RKL_GC_VOLATILE)rkl_realloc(findAll->stringsScratchBuffer, matchedStringsSize, (NSUInteger)RKLScannedOption)) == NULL, 0L)) { goto exitNow; } } + + size_t matchedKeysSize = ((size_t)captureKeysCount * sizeof(void *)); + if((findAll->stackUsed + matchedKeysSize) < (size_t)_RKL_STACK_LIMIT) { if(RKL_EXPECTED((matchedKeys = (id * RKL_GC_VOLATILE)alloca(matchedKeysSize)) == NULL, 0L)) { goto exitNow; } findAll->stackUsed += matchedKeysSize; } + else { if(RKL_EXPECTED((matchedKeys = (id * RKL_GC_VOLATILE)rkl_realloc(findAll->keysScratchBuffer, matchedKeysSize, (NSUInteger)RKLScannedOption)) == NULL, 0L)) { goto exitNow; } } + + size_t matchedDictionariesSize = ((size_t)matchedDictionariesCount * sizeof(NSDictionary *)); + if((findAll->stackUsed + matchedDictionariesSize) < (size_t)_RKL_STACK_LIMIT) { if(RKL_EXPECTED((matchedDictionaries = (NSDictionary ** RKL_GC_VOLATILE)alloca(matchedDictionariesSize)) == NULL, 0L)) { goto exitNow; } findAll->stackUsed += matchedDictionariesSize; } + else { if(RKL_EXPECTED((matchedDictionaries = (NSDictionary ** RKL_GC_VOLATILE)rkl_realloc(findAll->dictionariesScratchBuffer, matchedDictionariesSize, (NSUInteger)RKLScannedOption)) == NULL, 0L)) { goto exitNow; } } + + { // This sub-block (and its local variables) is here for the benefit of the optimizer. + NSUInteger captureCount = cachedRegex->captureCount; + NSDictionary **matchedDictionariesPtr = matchedDictionaries; + + for(createdDictionariesCount = 0UL; createdDictionariesCount < matchedDictionariesCount; createdDictionariesCount++) { + RKLCDelayedAssert(((createdDictionariesCount * captureCount) < (NSUInteger)findAll->found), exception, exitNow); + RKL_STRONG_REF const NSRange * RKL_GC_VOLATILE rangePtr = &findAll->ranges[(createdDictionariesCount * (captureCount + 1UL))]; + for(matchedStringIndex = 0UL; matchedStringIndex < captureKeysCount; matchedStringIndex++) { + NSRange range = rangePtr[captureKeyIndexes[matchedStringIndex]]; + if(RKL_EXPECTED(range.location != NSNotFound, 0L)) { + if(RKL_EXPECTED(((matchedStrings[createdStringsCount] = RKL_EXPECTED(range.length == 0UL, 0L) ? emptyString : rkl_CreateStringWithSubstring((id)setToString, range)) == NULL), 0L)) { goto exitNow; } + matchedKeys[createdStringsCount] = captureKeys[createdStringsCount]; + createdStringsCount++; + } + } + RKLCDelayedAssert((matchedStringIndex <= captureCount), exception, exitNow); + if(RKL_EXPECTED(((*matchedDictionariesPtr++ = (NSDictionary * RKL_GC_VOLATILE)CFDictionaryCreate(NULL, (const void **)matchedKeys, (const void **)matchedStrings, (CFIndex)createdStringsCount, &rkl_transferOwnershipDictionaryKeyCallBacks, &rkl_transferOwnershipDictionaryValueCallBacks)) == NULL), 0L)) { goto exitNow; } + createdStringsCount = 0UL; + } + } + + if(createdDictionariesCount > 0UL) { + if((regexOp & RKLMaskOp) == RKLArrayOfDictionariesOfCapturesOp) { + RKLCDelayedAssert((matchedDictionaries != NULL) && (createdDictionariesCount > 0UL), exception, exitNow); + if((returnObject = rkl_CreateAutoreleasedArray((void **)matchedDictionaries, createdDictionariesCount)) == NULL) { goto exitNow; } + transferredDictionariesCount = createdDictionariesCount; + } else { + RKLCDelayedAssert((matchedDictionaries != NULL) && (createdDictionariesCount == 1UL), exception, exitNow); + if((returnObject = rkl_CFAutorelease(matchedDictionaries[0])) == NULL) { goto exitNow; } + transferredDictionariesCount = 1UL; + } + } + +exitNow: + RKLCDelayedAssert((createdDictionariesCount <= transferredDictionariesCount) && ((transferredDictionariesCount > 0UL) ? (createdStringsCount == 0UL) : 1), exception, exitNow2); +#ifndef NS_BLOCK_ASSERTIONS +exitNow2: +#endif + + if(rkl_collectingEnabled() == NO) { // Release any objects, if necessary. + NSUInteger x; + if(matchedStrings != NULL) { for(x = 0UL; x < createdStringsCount; x++) { if((matchedStrings[x] != NULL) && (matchedStrings[x] != emptyString)) { matchedStrings[x] = rkl_ReleaseObject(matchedStrings[x]); } } } + if(matchedDictionaries != NULL) { for(x = transferredDictionariesCount; x < createdDictionariesCount; x++) { if((matchedDictionaries[x] != NULL)) { matchedDictionaries[x] = rkl_ReleaseObject(matchedDictionaries[x]); } } } + } + + return(returnObject); +} + +// IMPORTANT! This code is critical path code. Because of this, it has been written for speed, not clarity. +// IMPORTANT! Should only be called from rkl_performRegexOp(). +// ---------- + +#pragma mark Perform "search and replace" operations on strings using ICUs uregex_*replace* functions + +static NSString *rkl_replaceString(RKLCachedRegex *cachedRegex, id searchString, NSUInteger searchU16Length, NSString *replacementString, NSUInteger replacementU16Length, NSInteger *replacedCountPtr, NSUInteger replaceMutable, id *exception, int32_t *status) { + RKL_STRONG_REF UniChar * RKL_GC_VOLATILE tempUniCharBuffer = NULL; + RKL_STRONG_REF const UniChar * RKL_GC_VOLATILE replacementUniChar = NULL; + uint64_t searchU16Length64 = (uint64_t)searchU16Length, replacementU16Length64 = (uint64_t)replacementU16Length; + int32_t resultU16Length = 0, tempUniCharBufferU16Capacity = 0, needU16Capacity = 0; + id RKL_GC_VOLATILE resultObject = NULL; + NSInteger replacedCount = -1L; + + if((RKL_EXPECTED(replacementU16Length64 >= (uint64_t)INT_MAX, 0L) || RKL_EXPECTED(((searchU16Length64 / 2ULL) + (replacementU16Length64 * 2ULL)) >= (uint64_t)INT_MAX, 0L))) { *exception = [NSException exceptionWithName:NSRangeException reason:@"Replacement string length exceeds INT_MAX." userInfo:NULL]; goto exitNow; } + + RKLCDelayedAssert((searchU16Length64 < (uint64_t)INT_MAX) && (replacementU16Length64 < (uint64_t)INT_MAX) && (((searchU16Length64 / 2ULL) + (replacementU16Length64 * 2ULL)) < (uint64_t)INT_MAX), exception, exitNow); + + // Zero order approximation of the buffer sizes for holding the replaced string or split strings and split strings pointer offsets. As UTF16 code units. + tempUniCharBufferU16Capacity = (int32_t)(16UL + (searchU16Length + (searchU16Length / 2UL)) + (replacementU16Length * 2UL)); + RKLCDelayedAssert((tempUniCharBufferU16Capacity < INT_MAX) && (tempUniCharBufferU16Capacity > 0), exception, exitNow); + + // Buffer sizes converted from native units to bytes. + size_t stackSize = 0UL, replacementSize = ((size_t)replacementU16Length * sizeof(UniChar)), tempUniCharBufferSize = ((size_t)tempUniCharBufferU16Capacity * sizeof(UniChar)); + + // For the various buffers we require, we first try to allocate from the stack if we're not over the RKL_STACK_LIMIT. If we are, switch to using the heap for the buffer. + if((stackSize + tempUniCharBufferSize) < (size_t)_RKL_STACK_LIMIT) { if(RKL_EXPECTED((tempUniCharBuffer = (RKL_STRONG_REF UniChar * RKL_GC_VOLATILE)alloca(tempUniCharBufferSize)) == NULL, 0L)) { goto exitNow; } stackSize += tempUniCharBufferSize; } + else { if(RKL_EXPECTED((tempUniCharBuffer = (RKL_STRONG_REF UniChar * RKL_GC_VOLATILE)rkl_realloc(&rkl_scratchBuffer[0], tempUniCharBufferSize, 0UL)) == NULL, 0L)) { goto exitNow; } } + + // Try to get the pointer to the replacement strings UTF16 data. If we can't, allocate some buffer space, then covert to UTF16. + if((replacementUniChar = CFStringGetCharactersPtr((CFStringRef)replacementString)) == NULL) { + RKL_STRONG_REF UniChar * RKL_GC_VOLATILE uniCharBuffer = NULL; + if((stackSize + replacementSize) < (size_t)_RKL_STACK_LIMIT) { if(RKL_EXPECTED((uniCharBuffer = (RKL_STRONG_REF UniChar * RKL_GC_VOLATILE)alloca(replacementSize)) == NULL, 0L)) { goto exitNow; } stackSize += replacementSize; } + else { if(RKL_EXPECTED((uniCharBuffer = (RKL_STRONG_REF UniChar * RKL_GC_VOLATILE)rkl_realloc(&rkl_scratchBuffer[1], replacementSize, 0UL)) == NULL, 0L)) { goto exitNow; } } + CFStringGetCharacters((CFStringRef)replacementString, CFMakeRange(0L, replacementU16Length), uniCharBuffer); // Convert to a UTF16 string. + replacementUniChar = uniCharBuffer; + } + + resultU16Length = rkl_replaceAll(cachedRegex, replacementUniChar, (int32_t)replacementU16Length, tempUniCharBuffer, tempUniCharBufferU16Capacity, &replacedCount, &needU16Capacity, exception, status); + RKLCDelayedAssert((resultU16Length <= tempUniCharBufferU16Capacity) && (needU16Capacity >= resultU16Length) && (needU16Capacity >= 0), exception, exitNow); + if(RKL_EXPECTED((needU16Capacity + 4) >= INT_MAX, 0L)) { *exception = [NSException exceptionWithName:NSInternalInconsistencyException reason:@"Replaced string length exceeds INT_MAX." userInfo:NULL]; goto exitNow; } + + if(RKL_EXPECTED(*status == U_BUFFER_OVERFLOW_ERROR, 0L)) { // Our buffer guess(es) were too small. Resize the buffers and try again. + // rkl_replaceAll will turn a status of U_STRING_NOT_TERMINATED_WARNING in to a U_BUFFER_OVERFLOW_ERROR. + // As an extra precaution, we pad out the amount needed by an extra four characters "just in case". + // http://lists.apple.com/archives/Cocoa-dev/2010/Jan/msg01011.html + needU16Capacity += 4; + tempUniCharBufferSize = ((size_t)(tempUniCharBufferU16Capacity = needU16Capacity + 4) * sizeof(UniChar)); // Use needU16Capacity. Bug 2890810. + if((stackSize + tempUniCharBufferSize) < (size_t)_RKL_STACK_LIMIT) { if(RKL_EXPECTED((tempUniCharBuffer = (RKL_STRONG_REF UniChar * RKL_GC_VOLATILE)alloca(tempUniCharBufferSize)) == NULL, 0L)) { goto exitNow; } stackSize += tempUniCharBufferSize; } // Warning about stackSize can be safely ignored. + else { if(RKL_EXPECTED((tempUniCharBuffer = (RKL_STRONG_REF UniChar * RKL_GC_VOLATILE)rkl_realloc(&rkl_scratchBuffer[0], tempUniCharBufferSize, 0UL)) == NULL, 0L)) { goto exitNow; } } + + *status = U_ZERO_ERROR; // Make sure the status var is cleared and try again. + resultU16Length = rkl_replaceAll(cachedRegex, replacementUniChar, (int32_t)replacementU16Length, tempUniCharBuffer, tempUniCharBufferU16Capacity, &replacedCount, &needU16Capacity, exception, status); + RKLCDelayedAssert((resultU16Length <= tempUniCharBufferU16Capacity) && (needU16Capacity >= resultU16Length) && (needU16Capacity >= 0), exception, exitNow); + } + + // If status != U_ZERO_ERROR, consider it an error, even though status < U_ZERO_ERROR is a 'warning' in ICU nomenclature. + // http://sourceforge.net/tracker/?func=detail&atid=990188&aid=2890810&group_id=204582 + if(RKL_EXPECTED(*status != U_ZERO_ERROR, 0L)) { goto exitNow; } // Something went wrong. + + RKLCDelayedAssert((replacedCount >= 0L), exception, exitNow); + if(RKL_EXPECTED(resultU16Length == 0, 0L)) { resultObject = @""; } // Optimize the case where the replaced text length == 0 with a @"" string. + else if(RKL_EXPECTED((NSUInteger)resultU16Length == searchU16Length, 0L) && RKL_EXPECTED(replacedCount == 0L, 1L)) { // Optimize the case where the replacement == original by creating a copy. Very fast if self is immutable. + if(replaceMutable == 0UL) { resultObject = rkl_CFAutorelease(CFStringCreateCopy(NULL, (CFStringRef)searchString)); } // .. but only if this is not replacing a mutable self. Warning about potential leak can be safely ignored. + } else { resultObject = rkl_CFAutorelease(CFStringCreateWithCharacters(NULL, tempUniCharBuffer, (CFIndex)resultU16Length)); } // otherwise, create a new string. Warning about potential leak can be safely ignored. + + // If replaceMutable == 1UL, we don't do the replacement here. We wait until after we return and unlock the cache lock. + // This is because we may be trying to mutate an immutable string object. + if((replaceMutable == 1UL) && RKL_EXPECTED(replacedCount > 0L, 1L)) { // We're working on a mutable string and there were successful matches with replaced text, so there's work to do. + if(cachedRegex->buffer != NULL) { rkl_clearBuffer(cachedRegex->buffer, 0UL); cachedRegex->buffer = NULL; } + NSUInteger idx = 0UL; + for(idx = 0UL; idx < _RKL_LRU_CACHE_SET_WAYS; idx++) { + RKLBuffer *buffer = ((NSUInteger)cachedRegex->setToLength < _RKL_FIXED_LENGTH) ? &rkl_lruFixedBuffer[idx] : &rkl_lruDynamicBuffer[idx]; + if(RKL_EXPECTED(cachedRegex->setToString == buffer->string, 0L) && (cachedRegex->setToLength == buffer->length) && (cachedRegex->setToHash == buffer->hash)) { rkl_clearBuffer(buffer, 0UL); } + } + rkl_clearCachedRegexSetTo(cachedRegex); // Flush any cached information about this string since it will mutate. + } + +exitNow: + if(RKL_EXPECTED(status == NULL, 0L) || RKL_EXPECTED(*status != U_ZERO_ERROR, 0L) || RKL_EXPECTED(exception == NULL, 0L) || RKL_EXPECTED(*exception != NULL, 0L)) { replacedCount = -1L; } + if(rkl_scratchBuffer[0] != NULL) { rkl_scratchBuffer[0] = rkl_free(&rkl_scratchBuffer[0]); } + if(rkl_scratchBuffer[1] != NULL) { rkl_scratchBuffer[1] = rkl_free(&rkl_scratchBuffer[1]); } + if(replacedCountPtr != NULL) { *replacedCountPtr = replacedCount; } + return(resultObject); +} // The two warnings about potential leaks can be safely ignored. + +// IMPORTANT! Should only be called from rkl_replaceString(). +// ---------- +// Modified version of the ICU libraries uregex_replaceAll() that keeps count of the number of replacements made. + +static int32_t rkl_replaceAll(RKLCachedRegex *cachedRegex, RKL_STRONG_REF const UniChar * RKL_GC_VOLATILE replacementUniChar, int32_t replacementU16Length, UniChar *replacedUniChar, int32_t replacedU16Capacity, NSInteger *replacedCount, int32_t *needU16Capacity, id *exception RKL_UNUSED_ASSERTION_ARG, int32_t *status) { + int32_t u16Length = 0, initialReplacedU16Capacity = replacedU16Capacity; + NSUInteger bufferOverflowed = 0UL; + NSInteger replaced = -1L; + RKLCDelayedAssert((cachedRegex != NULL) && (replacementUniChar != NULL) && (replacedUniChar != NULL) && (replacedCount != NULL) && (needU16Capacity != NULL) && (status != NULL) && (replacementU16Length >= 0) && (replacedU16Capacity >= 0), exception, exitNow); + + cachedRegex->lastFindRange = cachedRegex->lastMatchRange = NSNotFoundRange; // Clear the cached find information for this regex so a subsequent find works correctly. + RKL_ICU_FUNCTION_APPEND(uregex_reset)(cachedRegex->icu_regex, 0, status); + + // Work around for ICU uregex_reset() bug, see http://bugs.icu-project.org/trac/ticket/6545 + // http://sourceforge.net/tracker/index.php?func=detail&aid=2105213&group_id=204582&atid=990188 + if(RKL_EXPECTED(cachedRegex->setToRange.length == 0UL, 0L) && (*status == U_INDEX_OUTOFBOUNDS_ERROR)) { *status = U_ZERO_ERROR; } + replaced = 0L; + // This loop originally came from ICU source/i18n/uregex.cpp, uregex_replaceAll. + // There is a bug in that code which causes the size of the buffer required for the replaced text to not be calculated correctly. + // This contains a work around using the variable bufferOverflowed. + // ICU bug: http://bugs.icu-project.org/trac/ticket/6656 + // http://sourceforge.net/tracker/index.php?func=detail&aid=2408447&group_id=204582&atid=990188 + while(RKL_ICU_FUNCTION_APPEND(uregex_findNext)(cachedRegex->icu_regex, status)) { + replaced++; + u16Length += RKL_ICU_FUNCTION_APPEND(uregex_appendReplacement)(cachedRegex->icu_regex, replacementUniChar, replacementU16Length, &replacedUniChar, &replacedU16Capacity, status); + if(RKL_EXPECTED(*status == U_BUFFER_OVERFLOW_ERROR, 0L)) { bufferOverflowed = 1UL; *status = U_ZERO_ERROR; } + } + if(RKL_EXPECTED(*status == U_BUFFER_OVERFLOW_ERROR, 0L)) { bufferOverflowed = 1UL; *status = U_ZERO_ERROR; } + if(RKL_EXPECTED(*status <= U_ZERO_ERROR, 1L)) { u16Length += RKL_ICU_FUNCTION_APPEND(uregex_appendTail)(cachedRegex->icu_regex, &replacedUniChar, &replacedU16Capacity, status); } + + // Try to work around a status of U_STRING_NOT_TERMINATED_WARNING. For now, we treat it as a "Buffer Overflow" error. + // As an extra precaution, in rkl_replaceString, we pad out the amount needed by an extra four characters "just in case". + // http://lists.apple.com/archives/Cocoa-dev/2010/Jan/msg01011.html + if(RKL_EXPECTED(*status == U_STRING_NOT_TERMINATED_WARNING, 0L)) { *status = U_BUFFER_OVERFLOW_ERROR; } + + // Check for status <= U_ZERO_ERROR (a 'warning' in ICU nomenclature) rather than just status == U_ZERO_ERROR. + // Under just the right circumstances, status might be equal to U_STRING_NOT_TERMINATED_WARNING. When this occurred, + // rkl_replaceString would never get the U_BUFFER_OVERFLOW_ERROR status, and thus never grow the buffer to the size needed. + // http://sourceforge.net/tracker/?func=detail&atid=990188&aid=2890810&group_id=204582 + if(RKL_EXPECTED(bufferOverflowed == 1UL, 0L) && RKL_EXPECTED(*status <= U_ZERO_ERROR, 1L)) { *status = U_BUFFER_OVERFLOW_ERROR; } + +#ifndef NS_BLOCK_ASSERTIONS +exitNow: +#endif // NS_BLOCK_ASSERTIONS + if(RKL_EXPECTED(replacedCount != NULL, 1L)) { *replacedCount = replaced; } + if(RKL_EXPECTED(needU16Capacity != NULL, 1L)) { *needU16Capacity = u16Length; } // Use needU16Capacity to return the number of characters that are needed for the completely replaced string. Bug 2890810. + return(initialReplacedU16Capacity - replacedU16Capacity); // Return the number of characters of replacedUniChar that were used. +} + +#pragma mark Internal function used to check if a regular expression is valid. + +static NSUInteger rkl_isRegexValid(id self, SEL _cmd, NSString *regex, RKLRegexOptions options, NSInteger *captureCountPtr, NSError **error) { + volatile NSUInteger RKL_CLEANUP(rkl_cleanup_cacheSpinLockStatus) rkl_cacheSpinLockStatus = 0UL; + + RKLCachedRegex *cachedRegex = NULL; + NSUInteger gotCachedRegex = 0UL; + NSInteger captureCount = -1L; + id exception = NULL; + + if((error != NULL) && (*error != NULL)) { *error = NULL; } + if(RKL_EXPECTED(regex == NULL, 0L)) { RKL_RAISE_EXCEPTION(NSInvalidArgumentException, @"The regular expression argument is NULL."); } + + OSSpinLockLock(&rkl_cacheSpinLock); + rkl_cacheSpinLockStatus |= RKLLockedCacheSpinLock; + rkl_dtrace_incrementEventID(); + if(RKL_EXPECTED((cachedRegex = rkl_getCachedRegex(regex, options, error, &exception)) != NULL, 1L)) { gotCachedRegex = 1UL; captureCount = cachedRegex->captureCount; } + cachedRegex = NULL; + OSSpinLockUnlock(&rkl_cacheSpinLock); + rkl_cacheSpinLockStatus |= RKLUnlockedCacheSpinLock; // Warning about rkl_cacheSpinLockStatus never being read can be safely ignored. + + if(captureCountPtr != NULL) { *captureCountPtr = captureCount; } + if(RKL_EXPECTED(exception != NULL, 0L)) { rkl_handleDelayedAssert(self, _cmd, exception); } + return(gotCachedRegex); +} + +#pragma mark Functions used for clearing and releasing resources for various internal data structures + +static void rkl_clearStringCache(void) { + RKLCAbortAssert(rkl_cacheSpinLock != (OSSpinLock)0); + rkl_lastCachedRegex = NULL; + NSUInteger x = 0UL; + for(x = 0UL; x < _RKL_SCRATCH_BUFFERS; x++) { if(rkl_scratchBuffer[x] != NULL) { rkl_scratchBuffer[x] = rkl_free(&rkl_scratchBuffer[x]); } } + for(x = 0UL; x < _RKL_REGEX_CACHE_LINES; x++) { rkl_clearCachedRegex(&rkl_cachedRegexes[x]); } + for(x = 0UL; x < _RKL_LRU_CACHE_SET_WAYS; x++) { rkl_clearBuffer(&rkl_lruFixedBuffer[x], 0UL); rkl_clearBuffer(&rkl_lruDynamicBuffer[x], 1UL); } } -static NSDictionary *RKLCAssertDictionary(const char *function, const char *file, int line, NSString *format, ...) { +static void rkl_clearBuffer(RKLBuffer *buffer, NSUInteger freeDynamicBuffer) { + RKLCAbortAssert(buffer != NULL); + if(RKL_EXPECTED(buffer == NULL, 0L)) { return; } + if(RKL_EXPECTED(freeDynamicBuffer == 1UL, 0L) && RKL_EXPECTED(buffer->uniChar != NULL, 1L)) { RKL_STRONG_REF void * RKL_GC_VOLATILE p = (RKL_STRONG_REF void * RKL_GC_VOLATILE)buffer->uniChar; buffer->uniChar = (RKL_STRONG_REF UniChar * RKL_GC_VOLATILE)rkl_free(&p); } + if(RKL_EXPECTED(buffer->string != NULL, 1L)) { CFRelease((CFTypeRef)buffer->string); buffer->string = NULL; } + buffer->length = 0L; + buffer->hash = 0UL; +} + +static void rkl_clearCachedRegex(RKLCachedRegex *cachedRegex) { + RKLCAbortAssert(cachedRegex != NULL); + if(RKL_EXPECTED(cachedRegex == NULL, 0L)) { return; } + rkl_clearCachedRegexSetTo(cachedRegex); + if(rkl_lastCachedRegex == cachedRegex) { rkl_lastCachedRegex = NULL; } + if(cachedRegex->icu_regex != NULL) { RKL_ICU_FUNCTION_APPEND(uregex_close)(cachedRegex->icu_regex); cachedRegex->icu_regex = NULL; cachedRegex->captureCount = -1L; } + if(cachedRegex->regexString != NULL) { CFRelease((CFTypeRef)cachedRegex->regexString); cachedRegex->regexString = NULL; cachedRegex->options = 0U; cachedRegex->regexHash = 0UL; } +} + +static void rkl_clearCachedRegexSetTo(RKLCachedRegex *cachedRegex) { + RKLCAbortAssert(cachedRegex != NULL); + if(RKL_EXPECTED(cachedRegex == NULL, 0L)) { return; } + if(RKL_EXPECTED(cachedRegex->icu_regex != NULL, 1L)) { int32_t status = 0; RKL_ICU_FUNCTION_APPEND(uregex_setText)(cachedRegex->icu_regex, &rkl_emptyUniCharString[0], 0, &status); } + if(RKL_EXPECTED(cachedRegex->setToString != NULL, 1L)) { CFRelease((CFTypeRef)cachedRegex->setToString); cachedRegex->setToString = NULL; } + cachedRegex->lastFindRange = cachedRegex->lastMatchRange = cachedRegex->setToRange = NSNotFoundRange; + cachedRegex->setToIsImmutable = cachedRegex->setToNeedsConversion = 0U; + cachedRegex->setToUniChar = NULL; + cachedRegex->setToHash = 0UL; + cachedRegex->setToLength = 0L; + cachedRegex->buffer = NULL; +} + +#pragma mark Internal functions used to implement NSException and NSError functionality and userInfo NSDictionaries + +// Helps to keep things tidy. +#define addKeyAndObject(objs, keys, i, k, o) ({id _o=(o), _k=(k); if((_o != NULL) && (_k != NULL)) { objs[i] = _o; keys[i] = _k; i++; } }) + +static NSDictionary *rkl_userInfoDictionary(RKLUserInfoOptions userInfoOptions, NSString *regexString, RKLRegexOptions options, const UParseError *parseError, int32_t status, NSString *matchString, NSRange matchRange, NSString *replacementString, NSString *replacedString, NSInteger replacedCount, RKLRegexEnumerationOptions enumerationOptions, ...) { + va_list varArgsList; + va_start(varArgsList, enumerationOptions); + if(regexString == NULL) { regexString = @""; } + + id objects[64], keys[64]; + NSUInteger count = 0UL; + + NSString * RKL_GC_VOLATILE errorNameString = [NSString stringWithUTF8String:RKL_ICU_FUNCTION_APPEND(u_errorName)(status)]; + + addKeyAndObject(objects, keys, count, RKLICURegexRegexErrorKey, regexString); + addKeyAndObject(objects, keys, count, RKLICURegexRegexOptionsErrorKey, [NSNumber numberWithUnsignedInt:options]); + addKeyAndObject(objects, keys, count, RKLICURegexErrorCodeErrorKey, [NSNumber numberWithInt:status]); + addKeyAndObject(objects, keys, count, RKLICURegexErrorNameErrorKey, errorNameString); + + if(matchString != NULL) { addKeyAndObject(objects, keys, count, RKLICURegexSubjectStringErrorKey, matchString); } + if((userInfoOptions & RKLUserInfoSubjectRange) != 0UL) { addKeyAndObject(objects, keys, count, RKLICURegexSubjectRangeErrorKey, [NSValue valueWithRange:matchRange]); } + if(replacementString != NULL) { addKeyAndObject(objects, keys, count, RKLICURegexReplacementStringErrorKey, replacementString); } + if(replacedString != NULL) { addKeyAndObject(objects, keys, count, RKLICURegexReplacedStringErrorKey, replacedString); } + if((userInfoOptions & RKLUserInfoReplacedCount) != 0UL) { addKeyAndObject(objects, keys, count, RKLICURegexReplacedCountErrorKey, [NSNumber numberWithInteger:replacedCount]); } + if((userInfoOptions & RKLUserInfoRegexEnumerationOptions) != 0UL) { addKeyAndObject(objects, keys, count, RKLICURegexEnumerationOptionsErrorKey, [NSNumber numberWithUnsignedInteger:enumerationOptions]); } + + if((parseError != NULL) && (parseError->line != -1)) { + NSString *preContextString = [NSString stringWithCharacters:&parseError->preContext[0] length:(NSUInteger)RKL_ICU_FUNCTION_APPEND(u_strlen)(&parseError->preContext[0])]; + NSString *postContextString = [NSString stringWithCharacters:&parseError->postContext[0] length:(NSUInteger)RKL_ICU_FUNCTION_APPEND(u_strlen)(&parseError->postContext[0])]; + + addKeyAndObject(objects, keys, count, RKLICURegexLineErrorKey, [NSNumber numberWithInt:parseError->line]); + addKeyAndObject(objects, keys, count, RKLICURegexOffsetErrorKey, [NSNumber numberWithInt:parseError->offset]); + addKeyAndObject(objects, keys, count, RKLICURegexPreContextErrorKey, preContextString); + addKeyAndObject(objects, keys, count, RKLICURegexPostContextErrorKey, postContextString); + addKeyAndObject(objects, keys, count, @"NSLocalizedFailureReason", ([NSString stringWithFormat:@"The error %@ occurred at line %d, column %d: %@<>%@", errorNameString, parseError->line, parseError->offset, preContextString, postContextString])); + } else { + addKeyAndObject(objects, keys, count, @"NSLocalizedFailureReason", ([NSString stringWithFormat:@"The error %@ occurred.", errorNameString])); + } + + while(count < 62UL) { id obj = va_arg(varArgsList, id), key = va_arg(varArgsList, id); if((obj != NULL) && (key != NULL)) { addKeyAndObject(objects, keys, count, key, obj); } else { break; } } + va_end(varArgsList); + + return([NSDictionary dictionaryWithObjects:&objects[0] forKeys:&keys[0] count:count]); +} + +static NSError *rkl_makeNSError(RKLUserInfoOptions userInfoOptions, NSString *regexString, RKLRegexOptions options, const UParseError *parseError, int32_t status, NSString *matchString, NSRange matchRange, NSString *replacementString, NSString *replacedString, NSInteger replacedCount, RKLRegexEnumerationOptions enumerationOptions, NSString *errorDescription) { + if(errorDescription == NULL) { errorDescription = (status == U_ZERO_ERROR) ? @"No description of this error is available." : [NSString stringWithFormat:@"ICU regular expression error #%d, %s.", status, RKL_ICU_FUNCTION_APPEND(u_errorName)(status)]; } + return([NSError errorWithDomain:RKLICURegexErrorDomain code:(NSInteger)status userInfo:rkl_userInfoDictionary(userInfoOptions, regexString, options, parseError, status, matchString, matchRange, replacementString, replacedString, replacedCount, enumerationOptions, errorDescription, @"NSLocalizedDescription", NULL)]); +} + +static NSException *rkl_NSExceptionForRegex(NSString *regexString, RKLRegexOptions options, const UParseError *parseError, int32_t status) { + return([NSException exceptionWithName:RKLICURegexException reason:[NSString stringWithFormat:@"ICU regular expression error #%d, %s.", status, RKL_ICU_FUNCTION_APPEND(u_errorName)(status)] userInfo:rkl_userInfoDictionary((RKLUserInfoOptions)RKLUserInfoNone, regexString, options, parseError, status, NULL, NSNotFoundRange, NULL, NULL, 0L, (RKLRegexEnumerationOptions)RKLRegexEnumerationNoOptions, NULL)]); +} + +static NSDictionary *rkl_makeAssertDictionary(const char *function, const char *file, int line, NSString *format, ...) { va_list varArgsList; va_start(varArgsList, format); - NSString *formatString = [[[NSString alloc] initWithFormat:format arguments:varArgsList] autorelease]; + NSString * RKL_GC_VOLATILE formatString = [[[NSString alloc] initWithFormat:format arguments:varArgsList] autorelease]; va_end(varArgsList); - NSString *functionString = [NSString stringWithUTF8String:function], *fileString = [NSString stringWithUTF8String:file]; + NSString * RKL_GC_VOLATILE functionString = [NSString stringWithUTF8String:function], *fileString = [NSString stringWithUTF8String:file]; return([NSDictionary dictionaryWithObjectsAndKeys:formatString, @"description", functionString, @"function", fileString, @"file", [NSNumber numberWithInt:line], @"line", NSInternalInconsistencyException, @"exceptionName", NULL]); } -static NSString *RKLStringFromClassAndMethod(id object, SEL selector, NSString *format, ...) { +static NSString *rkl_stringFromClassAndMethod(id object, SEL selector, NSString *format, ...) { va_list varArgsList; va_start(varArgsList, format); - NSString *formatString = [[[NSString alloc] initWithFormat:format arguments:varArgsList] autorelease]; + NSString * RKL_GC_VOLATILE formatString = [[[NSString alloc] initWithFormat:format arguments:varArgsList] autorelease]; va_end(varArgsList); - Class objectsClass = [object class]; - return([NSString stringWithFormat:@"*** %c[%@ %@]: %@", (object == objectsClass) ? '+' : '-', NSStringFromClass(objectsClass), NSStringFromSelector(selector), formatString]); + Class objectsClass = (object == NULL) ? NULL : [object class]; + return([NSString stringWithFormat:@"*** %c[%@ %@]: %@", (object == objectsClass) ? '+' : '-', (objectsClass == NULL) ? @"" : NSStringFromClass(objectsClass), (selector == NULL) ? @":NULL:" : NSStringFromSelector(selector), formatString]); +} + +#ifdef _RKL_BLOCKS_ENABLED + +//////////// +#pragma mark - +#pragma mark Objective-C ^Blocks Support +#pragma mark - +//////////// + +// Prototypes + +static id rkl_performEnumerationUsingBlock(id self, SEL _cmd, + RKLRegexOp regexOp, NSString *regexString, RKLRegexOptions options, + id matchString, NSRange matchRange, + RKLBlockEnumerationOp blockEnumerationOp, RKLRegexEnumerationOptions enumerationOptions, + NSInteger *replacedCountPtr, NSUInteger *errorFreePtr, + NSError **error, + void (^stringsAndRangesBlock)(NSInteger capturedCount, NSString * const capturedStrings[capturedCount], const NSRange capturedStringRanges[capturedCount], volatile BOOL * const stop), + NSString *(^replaceStringsAndRangesBlock)(NSInteger capturedCount, NSString * const capturedStrings[capturedCount], const NSRange capturedStringRanges[capturedCount], volatile BOOL * const stop) + ) RKL_NONNULL_ARGS(1,2,4,6); + +// This is an object meant for internal use only. It wraps and abstracts various functionality to simplify ^Blocks support. + +@interface RKLBlockEnumerationHelper : NSObject { + @public + RKLCachedRegex cachedRegex; + RKLBuffer buffer; + RKL_STRONG_REF void * RKL_GC_VOLATILE scratchBuffer[_RKL_SCRATCH_BUFFERS]; + NSUInteger needToFreeBufferUniChar:1; +} +- (id)initWithRegex:(NSString *)initRegexString options:(RKLRegexOptions)initOptions string:(NSString *)initString range:(NSRange)initRange error:(NSError **)initError; +@end + +@implementation RKLBlockEnumerationHelper + +- (id)initWithRegex:(NSString *)initRegexString options:(RKLRegexOptions)initOptions string:(NSString *)initString range:(NSRange)initRange error:(NSError **)initError +{ + volatile NSUInteger RKL_CLEANUP(rkl_cleanup_cacheSpinLockStatus) rkl_cacheSpinLockStatus = 0UL; + + int32_t status = U_ZERO_ERROR; + id exception = NULL; + RKLCachedRegex *retrievedCachedRegex = NULL; + +#ifdef _RKL_DTRACE_ENABLED + NSUInteger thisDTraceEventID = 0UL; + unsigned int lookupResultFlags = 0U; +#endif + + if(RKL_EXPECTED((self = [super init]) == NULL, 0L)) { goto errorExit; } + + RKLCDelayedAssert((initRegexString != NULL) && (initString != NULL), &exception, errorExit); + + // IMPORTANT! Once we have obtained the lock, code MUST exit via 'goto exitNow;' to unlock the lock! NO EXCEPTIONS! + // ---------- + OSSpinLockLock(&rkl_cacheSpinLock); // Grab the lock and get cache entry. + rkl_cacheSpinLockStatus |= RKLLockedCacheSpinLock; + rkl_dtrace_incrementAndGetEventID(thisDTraceEventID); + + if(RKL_EXPECTED((retrievedCachedRegex = rkl_getCachedRegex(initRegexString, initOptions, initError, &exception)) == NULL, 0L)) { goto exitNow; } + RKLCDelayedAssert(((retrievedCachedRegex >= rkl_cachedRegexes) && ((retrievedCachedRegex - &rkl_cachedRegexes[0]) < (ssize_t)_RKL_REGEX_CACHE_LINES)) && (retrievedCachedRegex != NULL) && (retrievedCachedRegex->icu_regex != NULL) && (retrievedCachedRegex->regexString != NULL) && (retrievedCachedRegex->captureCount >= 0L) && (retrievedCachedRegex == rkl_lastCachedRegex), &exception, exitNow); + + if(RKL_EXPECTED(retrievedCachedRegex == NULL, 0L) || RKL_EXPECTED(status > U_ZERO_ERROR, 0L) || RKL_EXPECTED(exception != NULL, 0L)) { goto exitNow; } + + if(RKL_EXPECTED((cachedRegex.icu_regex = RKL_ICU_FUNCTION_APPEND(uregex_clone)(retrievedCachedRegex->icu_regex, &status)) == NULL, 0L) || RKL_EXPECTED(status != U_ZERO_ERROR, 0L)) { goto exitNow; } + if(RKL_EXPECTED((cachedRegex.regexString = (CFStringRef)CFRetain((CFTypeRef)retrievedCachedRegex->regexString)) == NULL, 0L)) { goto exitNow; } + cachedRegex.options = initOptions; + cachedRegex.captureCount = retrievedCachedRegex->captureCount; + cachedRegex.regexHash = retrievedCachedRegex->regexHash; + + RKLCDelayedAssert((cachedRegex.icu_regex != NULL) && (cachedRegex.regexString != NULL) && (cachedRegex.captureCount >= 0L), &exception, exitNow); + +exitNow: + if((rkl_cacheSpinLockStatus & RKLLockedCacheSpinLock) != 0UL) { // In case we arrive at exitNow: without obtaining the rkl_cacheSpinLock. + OSSpinLockUnlock(&rkl_cacheSpinLock); + rkl_cacheSpinLockStatus |= RKLUnlockedCacheSpinLock; // Warning about rkl_cacheSpinLockStatus never being read can be safely ignored. + } + + if(RKL_EXPECTED(self == NULL, 0L) || RKL_EXPECTED(retrievedCachedRegex == NULL, 0L) || RKL_EXPECTED(cachedRegex.icu_regex == NULL, 0L) || RKL_EXPECTED(status != U_ZERO_ERROR, 0L) || RKL_EXPECTED(exception != NULL, 0L)) { goto errorExit; } + retrievedCachedRegex = NULL; // Since we no longer hold the lock, ensure that nothing accesses the retrieved cache regex after this point. + + rkl_dtrace_addLookupFlag(lookupResultFlags, RKLEnumerationBufferLookupFlag); + + if(RKL_EXPECTED((buffer.string = CFStringCreateCopy(NULL, (CFStringRef)initString)) == NULL, 0L)) { goto errorExit; } + buffer.hash = CFHash((CFTypeRef)buffer.string); + buffer.length = CFStringGetLength(buffer.string); + + if((buffer.uniChar = (UniChar *)CFStringGetCharactersPtr(buffer.string)) == NULL) { + rkl_dtrace_addLookupFlag(lookupResultFlags, RKLConversionRequiredLookupFlag); + if(RKL_EXPECTED((buffer.uniChar = (RKL_STRONG_REF UniChar * RKL_GC_VOLATILE)rkl_realloc((RKL_STRONG_REF void ** RKL_GC_VOLATILE)&buffer.uniChar, ((size_t)buffer.length * sizeof(UniChar)), 0UL)) == NULL, 0L)) { goto errorExit; } // Resize the buffer. + needToFreeBufferUniChar = rkl_collectingEnabled() ? 0U : 1U; + CFStringGetCharacters(buffer.string, CFMakeRange(0L, buffer.length), (UniChar *)buffer.uniChar); // Convert to a UTF16 string. + } + + if(RKL_EXPECTED((cachedRegex.setToString = (CFStringRef)CFRetain((CFTypeRef)buffer.string)) == NULL, 0L)) { goto errorExit; } + cachedRegex.setToHash = buffer.hash; + cachedRegex.setToLength = buffer.length; + cachedRegex.setToUniChar = buffer.uniChar; + cachedRegex.buffer = &buffer; + + RKLCDelayedAssert((cachedRegex.icu_regex != NULL) && (cachedRegex.setToUniChar != NULL) && (cachedRegex.setToLength < INT_MAX) && (NSMaxRange(initRange) <= (NSUInteger)cachedRegex.setToLength) && (NSMaxRange(initRange) < INT_MAX), &exception, errorExit); + cachedRegex.lastFindRange = cachedRegex.lastMatchRange = NSNotFoundRange; + cachedRegex.setToRange = initRange; + RKL_ICU_FUNCTION_APPEND(uregex_setText)(cachedRegex.icu_regex, cachedRegex.setToUniChar + cachedRegex.setToRange.location, (int32_t)cachedRegex.setToRange.length, &status); + if(RKL_EXPECTED(status > U_ZERO_ERROR, 0L)) { goto errorExit; } + + rkl_dtrace_addLookupFlag(lookupResultFlags, RKLSetTextLookupFlag); + rkl_dtrace_utf16ConversionCacheWithEventID(thisDTraceEventID, lookupResultFlags, initString, cachedRegex.setToRange.location, cachedRegex.setToRange.length, cachedRegex.setToLength); + + return(self); + +errorExit: + if(RKL_EXPECTED(self != NULL, 1L)) { [self autorelease]; } + if(RKL_EXPECTED(status > U_ZERO_ERROR, 0L) && RKL_EXPECTED(exception == NULL, 0L)) { exception = rkl_NSExceptionForRegex(initRegexString, initOptions, NULL, status); } // If we had a problem, prepare an exception to be thrown. + if(RKL_EXPECTED(status < U_ZERO_ERROR, 0L) && (initError != NULL)) { *initError = rkl_makeNSError((RKLUserInfoOptions)RKLUserInfoNone, initRegexString, initOptions, NULL, status, initString, initRange, NULL, NULL, 0L, (RKLRegexEnumerationOptions)RKLRegexEnumerationNoOptions, @"The ICU library returned an unexpected error."); } + if(RKL_EXPECTED(exception != NULL, 0L)) { rkl_handleDelayedAssert(self, _cmd, exception); } + + return(NULL); +} + +#ifdef __OBJC_GC__ +- (void)finalize +{ + rkl_clearCachedRegex(&cachedRegex); + rkl_clearBuffer(&buffer, (needToFreeBufferUniChar != 0U) ? 1LU : 0LU); + NSUInteger tmpIdx = 0UL; // The rkl_free() below is "probably" a no-op when GC is on, but better to be safe than sorry... + for(tmpIdx = 0UL; tmpIdx < _RKL_SCRATCH_BUFFERS; tmpIdx++) { if(RKL_EXPECTED(scratchBuffer[tmpIdx] != NULL, 0L)) { scratchBuffer[tmpIdx] = rkl_free(&scratchBuffer[tmpIdx]); } } + [super finalize]; +} +#endif // __OBJC_GC__ + +- (void)dealloc +{ + rkl_clearCachedRegex(&cachedRegex); + rkl_clearBuffer(&buffer, (needToFreeBufferUniChar != 0U) ? 1LU : 0LU); + NSUInteger tmpIdx = 0UL; + for(tmpIdx = 0UL; tmpIdx < _RKL_SCRATCH_BUFFERS; tmpIdx++) { if(RKL_EXPECTED(scratchBuffer[tmpIdx] != NULL, 0L)) { scratchBuffer[tmpIdx] = rkl_free(&scratchBuffer[tmpIdx]); } } + [super dealloc]; } +@end + +// IMPORTANT! This code is critical path code. Because of this, it has been written for speed, not clarity. +// ---------- +// +// Return value: BOOL. Per "Error Handling Programming Guide" wrt/ NSError, return NO on error / failure, and set *error to an NSError object. +// +// rkl_performEnumerationUsingBlock reference counted / manual memory management notes: +// +// When running using reference counting, rkl_performEnumerationUsingBlock() creates a CFMutableArray called autoreleaseArray, which is -autoreleased. +// autoreleaseArray uses the rkl_transferOwnershipArrayCallBacks CFArray callbacks which do not perform a -retain/CFRetain() when objects are added, but do perform a -release/CFRelease() when an object is removed. +// +// A special class, RKLBlockEnumerationHelper, is used to manage the details of creating a private instantiation of the ICU regex (via uregex_clone()) and setting up the details of the UTF-16 buffer required by the ICU regex engine. +// The instantiated RKLBlockEnumerationHelper is not autoreleased, but added to autoreleaseArray. When rkl_performEnumerationUsingBlock() exits, it calls CFArrayRemoveAllValues(autoreleaseArray), which empties the array. +// This has the effect of immediately -releasing the instantiated RKLBlockEnumerationHelper object, and all the memory used to hold the ICU regex and UTF-16 conversion buffer. +// This means the memory is reclaimed immediately and we do not have to wait until the autorelease pool pops. +// +// If we are performing a "string replacement" operation, we create a temporary NSMutableString named mutableReplacementString to hold the replaced strings results. mutableReplacementString is also added to autoreleaseArray so that it +// can be properly released on an error. +// +// Temporary strings that are created during the enumeration of matches are added to autoreleaseArray. +// The strings are added by doing a CFArrayReplaceValues(), which simultaneously releases the previous iterations temporary strings while adding the current iterations temporary strings to the array. +// +// autoreleaseArray always has a reference to any "live" and in use objects. If anything "Goes Wrong", at any point, for any reason (ie, exception is thrown), autoreleaseArray is in the current NSAutoreleasePool +// and will automatically be released when that pool pops. This ensures that we don't leak anything even when things go seriously sideways. This also allows us to keep the total amount of memory in use +// down to a minimum, which can be substantial if the user is enumerating a large string, for example a regex of '\w+' on a 500K+ text file. +// +// The only 'caveat' is that the user needs to -retain any strings that they want to use past the point at which their ^block returns. Logically, it is as if the following takes place: +// +// for(eachMatchOfRegexInStringToSearch) { +// NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; +// callUsersBlock(capturedCount, capturedStrings, capturedStringRanges, stop); +// [pool release]; +// } +// +// But in reality, no NSAutoreleasePool is created, it's all slight of hand done via the CFMutableArray autoreleaseArray. +// +// rkl_performEnumerationUsingBlock garbage collected / automatic memory management notes: +// +// When RegexKitLite is built with -fobjc-gc or -fobjc-gc-only, and (in the case of -fobjc-gc) RegexKitLite determines that GC is active at execution time, then rkl_performEnumerationUsingBlock essentially +// skips all of the above reference counted autoreleaseArray stuff. +// +// rkl_performEnumerationUsingBlock and RKLRegexEnumerationReleaseStringReturnedByReplacementBlock notes +// +// Under reference counting, this enumeration option allows the user to return a non-autoreleased string, and then have RegexKitLite send the object a -release message once it's done with it. +// The primary reason to do this is to immediately reclaim the memory used by the string holding the replacement text. +// Just in case the user returns one of the strings we passed via capturedStrings[], we check to see if the string return by the block is any of the strings we created and passed via capturedStrings[]. +// If it is one of our strings, we do not send the string a -release since that would over release it. It is assumed that the user will /NOT/ add a -retain to our strings in this case. +// Under GC, RKLRegexEnumerationReleaseStringReturnedByReplacementBlock is ignored and no -release messages are sent. +// + +#pragma mark Primary internal function that Objective-C ^Blocks related methods call to perform regular expression operations + +static id rkl_performEnumerationUsingBlock(id self, SEL _cmd, + RKLRegexOp regexOp, NSString *regexString, RKLRegexOptions options, + id matchString, NSRange matchRange, + RKLBlockEnumerationOp blockEnumerationOp, RKLRegexEnumerationOptions enumerationOptions, + NSInteger *replacedCountPtr, NSUInteger *errorFreePtr, + NSError **error, + void (^stringsAndRangesBlock)(NSInteger capturedCount, NSString * const capturedStrings[capturedCount], const NSRange capturedStringRanges[capturedCount], volatile BOOL * const stop), + NSString *(^replaceStringsAndRangesBlock)(NSInteger capturedCount, NSString * const capturedStrings[capturedCount], const NSRange capturedStringRanges[capturedCount], volatile BOOL * const stop)) { + NSMutableArray * RKL_GC_VOLATILE autoreleaseArray = NULL; + RKLBlockEnumerationHelper * RKL_GC_VOLATILE blockEnumerationHelper = NULL; + NSMutableString * RKL_GC_VOLATILE mutableReplacementString = NULL; + RKL_STRONG_REF UniChar * RKL_GC_VOLATILE blockEnumerationHelperUniChar = NULL; + NSUInteger errorFree = NO; + id exception = NULL, returnObject = NULL; + CFRange autoreleaseReplaceRange = CFMakeRange(0L, 0L); + int32_t status = U_ZERO_ERROR; + RKLRegexOp maskedRegexOp = (regexOp & RKLMaskOp); + volatile BOOL shouldStop = NO; + NSInteger replacedCount = -1L; + NSRange lastMatchedRange = NSNotFoundRange; + NSUInteger stringU16Length = 0UL; + + BOOL performStringReplacement = (blockEnumerationOp == RKLBlockEnumerationReplaceOp) ? YES : NO; + + if((error != NULL) && (*error != NULL)) { *error = NULL; } + + if(RKL_EXPECTED(regexString == NULL, 0L)) { exception = (id)RKL_EXCEPTION(NSInvalidArgumentException, @"The regular expression argument is NULL."); goto exitNow; } + if(RKL_EXPECTED(matchString == NULL, 0L)) { exception = (id)RKL_EXCEPTION(NSInternalInconsistencyException, @"The match string argument is NULL."); goto exitNow; } + + if((((enumerationOptions & RKLRegexEnumerationCapturedStringsNotRequired) != 0UL) && ((enumerationOptions & RKLRegexEnumerationFastCapturedStringsXXX) != 0UL)) || + (((enumerationOptions & RKLRegexEnumerationReleaseStringReturnedByReplacementBlock) != 0UL) && (blockEnumerationOp != RKLBlockEnumerationReplaceOp)) || + ((enumerationOptions & (~((RKLRegexEnumerationOptions)(RKLRegexEnumerationCapturedStringsNotRequired | RKLRegexEnumerationReleaseStringReturnedByReplacementBlock | RKLRegexEnumerationFastCapturedStringsXXX)))) != 0UL)) { + exception = (id)RKL_EXCEPTION(NSInvalidArgumentException, @"The RKLRegexEnumerationOptions argument is not valid."); + goto exitNow; + } + + stringU16Length = (NSUInteger)CFStringGetLength((CFStringRef)matchString); + + if(RKL_EXPECTED(matchRange.length == NSUIntegerMax, 1L)) { matchRange.length = stringU16Length; } // For convenience. + if(RKL_EXPECTED(stringU16Length < NSMaxRange(matchRange), 0L)) { exception = (id)RKL_EXCEPTION(NSRangeException, @"Range or index out of bounds."); goto exitNow; } + if(RKL_EXPECTED(stringU16Length >= (NSUInteger)INT_MAX, 0L)) { exception = (id)RKL_EXCEPTION(NSRangeException, @"String length exceeds INT_MAX."); goto exitNow; } + + RKLCDelayedAssert((self != NULL) && (_cmd != NULL) && ((blockEnumerationOp == RKLBlockEnumerationMatchOp) ? (((regexOp == RKLCapturesArrayOp) || (regexOp == RKLSplitOp)) && (stringsAndRangesBlock != NULL) && (replaceStringsAndRangesBlock == NULL)) : 1) && ((blockEnumerationOp == RKLBlockEnumerationReplaceOp) ? ((regexOp == RKLCapturesArrayOp) && (stringsAndRangesBlock == NULL) && (replaceStringsAndRangesBlock != NULL)) : 1) , &exception, exitNow); + + if((rkl_collectingEnabled() == NO) && RKL_EXPECTED((autoreleaseArray = rkl_CFAutorelease(CFArrayCreateMutable(NULL, 0L, &rkl_transferOwnershipArrayCallBacks))) == NULL, 0L)) { goto exitNow; } // Warning about potential leak of Core Foundation object can be safely ignored. + if(RKL_EXPECTED((blockEnumerationHelper = [[RKLBlockEnumerationHelper alloc] initWithRegex:regexString options:options string:matchString range:matchRange error:error]) == NULL, 0L)) { goto exitNow; } // Warning about potential leak of blockEnumerationHelper can be safely ignored. + if(autoreleaseArray != NULL) { CFArrayAppendValue((CFMutableArrayRef)autoreleaseArray, blockEnumerationHelper); autoreleaseReplaceRange.location++; } // We do not autorelease blockEnumerationHelper, but instead add it to autoreleaseArray. + + if(performStringReplacement == YES) { + if(RKL_EXPECTED((mutableReplacementString = [[NSMutableString alloc] init]) == NULL, 0L)) { goto exitNow; } // Warning about potential leak of mutableReplacementString can be safely ignored. + if(autoreleaseArray != NULL) { CFArrayAppendValue((CFMutableArrayRef)autoreleaseArray, mutableReplacementString); autoreleaseReplaceRange.location++; } // We do not autorelease mutableReplacementString, but instead add it to autoreleaseArray. + } + + // RKLBlockEnumerationHelper creates an immutable copy of the string to match (matchString) which we reference via blockEnumerationHelperString. We use blockEnumerationHelperString when creating the captured strings from a match. + // This protects us against the user mutating matchString while we are in the middle of enumerating matches. + NSString * RKL_GC_VOLATILE blockEnumerationHelperString = (NSString *)blockEnumerationHelper->buffer.string, ** RKL_GC_VOLATILE capturedStrings = NULL, *emptyString = @""; + CFMutableStringRef * RKL_GC_VOLATILE fastCapturedStrings = NULL; + NSInteger captureCountBlockArgument = (blockEnumerationHelper->cachedRegex.captureCount + 1L); + size_t capturedStringsCapacity = ((size_t)captureCountBlockArgument + 4UL); + size_t capturedRangesCapacity = (((size_t)captureCountBlockArgument + 4UL) * 5UL); + NSRange *capturedRanges = NULL; + + lastMatchedRange = NSMakeRange(matchRange.location, 0UL); + blockEnumerationHelperUniChar = blockEnumerationHelper->buffer.uniChar; + + RKLCDelayedAssert((blockEnumerationHelperString != NULL) && (blockEnumerationHelperUniChar != NULL) && (captureCountBlockArgument > 0L) && (capturedStringsCapacity > 0UL) && (capturedRangesCapacity > 0UL), &exception, exitNow); + + if((capturedStrings = (NSString ** RKL_GC_VOLATILE)alloca(sizeof(NSString *) * capturedStringsCapacity)) == NULL) { goto exitNow; } // Space to hold the captured strings from a match. + if((capturedRanges = (NSRange *) alloca(sizeof(NSRange) * capturedRangesCapacity)) == NULL) { goto exitNow; } // Space to hold the NSRanges of the captured strings from a match. + +#ifdef NS_BLOCK_ASSERTIONS + { // Initialize the padded capturedStrings and capturedRanges to values that should tickle a fault if they are ever used. + size_t idx = 0UL; + for(idx = captureCountBlockArgument; idx < capturedStringsCapacity; idx++) { capturedStrings[idx] = (NSString *)RKLIllegalPointer; } + for(idx = captureCountBlockArgument; idx < capturedRangesCapacity; idx++) { capturedRanges[idx] = RKLIllegalRange; } + } +#else + { // Initialize all of the capturedStrings and capturedRanges to values that should tickle a fault if they are ever used. + size_t idx = 0UL; + for(idx = 0UL; idx < capturedStringsCapacity; idx++) { capturedStrings[idx] = (NSString *)RKLIllegalPointer; } + for(idx = 0UL; idx < capturedRangesCapacity; idx++) { capturedRanges[idx] = RKLIllegalRange; } + } +#endif + + if((enumerationOptions & RKLRegexEnumerationFastCapturedStringsXXX) != 0UL) { + RKLCDelayedAssert(((enumerationOptions & RKLRegexEnumerationCapturedStringsNotRequired) == 0UL), &exception, exitNow); + size_t idx = 0UL; + if((fastCapturedStrings = (CFMutableStringRef * RKL_GC_VOLATILE)alloca(sizeof(NSString *) * capturedStringsCapacity)) == NULL) { goto exitNow; } // Space to hold the "fast" captured strings from a match. + + for(idx = 0UL; idx < (size_t)captureCountBlockArgument; idx++) { + if((fastCapturedStrings[idx] = CFStringCreateMutableWithExternalCharactersNoCopy(NULL, NULL, 0L, 0L, kCFAllocatorNull)) == NULL) { goto exitNow; } + if(autoreleaseArray != NULL) { CFArrayAppendValue((CFMutableArrayRef)autoreleaseArray, fastCapturedStrings[idx]); autoreleaseReplaceRange.location++; } // We do not autorelease mutableReplacementString, but instead add it to autoreleaseArray. + capturedStrings[idx] = (NSString *)fastCapturedStrings[idx]; + } + } + + RKLFindAll findAll = rkl_makeFindAll(capturedRanges, matchRange, (NSInteger)capturedRangesCapacity, (capturedRangesCapacity * sizeof(NSRange)), 0UL, &blockEnumerationHelper->scratchBuffer[0], &blockEnumerationHelper->scratchBuffer[1], &blockEnumerationHelper->scratchBuffer[2], &blockEnumerationHelper->scratchBuffer[3], &blockEnumerationHelper->scratchBuffer[4], 0L, 0L, 1L); + + NSString ** RKL_GC_VOLATILE capturedStringsBlockArgument = NULL; // capturedStringsBlockArgument is what we pass to the 'capturedStrings[]' argument of the users ^block. Will pass NULL if the user doesn't want the captured strings created automatically. + if((enumerationOptions & RKLRegexEnumerationCapturedStringsNotRequired) == 0UL) { capturedStringsBlockArgument = capturedStrings; } // If the user wants the captured strings automatically created, set to capturedStrings. + + replacedCount = 0L; + while(RKL_EXPECTED(rkl_findRanges(&blockEnumerationHelper->cachedRegex, regexOp, &findAll, &exception, &status) == NO, 1L) && RKL_EXPECTED(findAll.found > 0L, 1L) && RKL_EXPECTED(exception == NULL, 1L) && RKL_EXPECTED(status == U_ZERO_ERROR, 1L)) { + if(performStringReplacement == YES) { + NSUInteger lastMatchedMaxLocation = (lastMatchedRange.location + lastMatchedRange.length); + NSRange previousUnmatchedRange = NSMakeRange(lastMatchedMaxLocation, findAll.ranges[0].location - lastMatchedMaxLocation); + RKLCDelayedAssert((NSMaxRange(previousUnmatchedRange) <= stringU16Length) && (NSRangeInsideRange(previousUnmatchedRange, matchRange) == YES), &exception, exitNow); + if(RKL_EXPECTED(previousUnmatchedRange.length > 0UL, 1L)) { CFStringAppendCharacters((CFMutableStringRef)mutableReplacementString, blockEnumerationHelperUniChar + previousUnmatchedRange.location, (CFIndex)previousUnmatchedRange.length); } + } + + findAll.found -= findAll.addedSplitRanges; + + NSInteger passCaptureCountBlockArgument = ((findAll.found == 0L) && (findAll.addedSplitRanges == 1L) && (maskedRegexOp == RKLSplitOp)) ? 1L : findAll.found, capturedStringsIdx = passCaptureCountBlockArgument; + RKLCDelayedHardAssert(passCaptureCountBlockArgument <= captureCountBlockArgument, &exception, exitNow); + if(capturedStringsBlockArgument != NULL) { // Only create the captured strings if the user has requested them. + BOOL hadError = NO; // Loop over all the strings rkl_findRanges found. If rkl_CreateStringWithSubstring() returns NULL due to an error, set returnBool to NO, and break out of the for() loop. + + for(capturedStringsIdx = 0L; capturedStringsIdx < passCaptureCountBlockArgument; capturedStringsIdx++) { + RKLCDelayedHardAssert(capturedStringsIdx < captureCountBlockArgument, &exception, exitNow); + if((enumerationOptions & RKLRegexEnumerationFastCapturedStringsXXX) != 0UL) { + // Analyzer report of "Dereference of null pointer" can be safely ignored for the next line. Bug filed: http://llvm.org/bugs/show_bug.cgi?id=6150 + CFStringSetExternalCharactersNoCopy(fastCapturedStrings[capturedStringsIdx], &blockEnumerationHelperUniChar[findAll.ranges[capturedStringsIdx].location], (CFIndex)findAll.ranges[capturedStringsIdx].length, (CFIndex)findAll.ranges[capturedStringsIdx].length); + } else { + if((capturedStrings[capturedStringsIdx] = (findAll.ranges[capturedStringsIdx].length == 0UL) ? emptyString : rkl_CreateStringWithSubstring(blockEnumerationHelperString, findAll.ranges[capturedStringsIdx])) == NULL) { hadError = YES; break; } + } + } + if(((enumerationOptions & RKLRegexEnumerationFastCapturedStringsXXX) == 0UL) && RKL_EXPECTED(autoreleaseArray != NULL, 1L)) { CFArrayReplaceValues((CFMutableArrayRef)autoreleaseArray, autoreleaseReplaceRange, (const void **)capturedStrings, capturedStringsIdx); autoreleaseReplaceRange.length = capturedStringsIdx; } // Add to autoreleaseArray all the strings the for() loop created. + if(RKL_EXPECTED(hadError == YES, 0L)) { goto exitNow; } // hadError == YES will be set if rkl_CreateStringWithSubstring() returned NULL. + } + // For safety, set any capturedRanges and capturedStrings up to captureCountBlockArgument + 1 to values that indicate that they are not valid. + // These values are chosen such that they should tickle any misuse by users. + // capturedStringsIdx is initialized to passCaptureCountBlockArgument, but if capturedStringsBlockArgument != NULL, it is reset to 0 by the loop that creates strings. + // If the loop that creates strings has an error, execution should transfer to exitNow and this will never get run. + // Again, this is for safety for users that do not check the passed block argument 'captureCount' and instead depend on something like [regex captureCount]. + for(; capturedStringsIdx < captureCountBlockArgument + 1L; capturedStringsIdx++) { RKLCDelayedAssert((capturedStringsIdx < (NSInteger)capturedStringsCapacity) && (capturedStringsIdx < (NSInteger)capturedRangesCapacity), &exception, exitNow); capturedRanges[capturedStringsIdx] = RKLIllegalRange; capturedStrings[capturedStringsIdx] = (NSString *)RKLIllegalPointer; } + + RKLCDelayedAssert((passCaptureCountBlockArgument > 0L) && (NSMaxRange(capturedRanges[0]) <= stringU16Length) && (capturedRanges[0].location < NSIntegerMax) && (capturedRanges[0].length < NSIntegerMax), &exception, exitNow); + + switch(blockEnumerationOp) { + case RKLBlockEnumerationMatchOp: stringsAndRangesBlock(passCaptureCountBlockArgument, capturedStringsBlockArgument, capturedRanges, &shouldStop); break; + + case RKLBlockEnumerationReplaceOp: { + NSString *blockReturnedReplacementString = replaceStringsAndRangesBlock(passCaptureCountBlockArgument, capturedStringsBlockArgument, capturedRanges, &shouldStop); + + if(RKL_EXPECTED(blockReturnedReplacementString != NULL, 1L)) { + CFStringAppend((CFMutableStringRef)mutableReplacementString, (CFStringRef)blockReturnedReplacementString); + BOOL shouldRelease = (((enumerationOptions & RKLRegexEnumerationReleaseStringReturnedByReplacementBlock) != 0UL) && (capturedStringsBlockArgument != NULL) && (rkl_collectingEnabled() == NO)) ? YES : NO; + if(shouldRelease == YES) { NSInteger idx = 0L; for(idx = 0L; idx < passCaptureCountBlockArgument; idx++) { if(capturedStrings[idx] == blockReturnedReplacementString) { shouldRelease = NO; break; } } } + if(shouldRelease == YES) { [blockReturnedReplacementString release]; } + } + } + break; + + default: exception = RKLCAssertDictionary(@"Unknown blockEnumerationOp code."); goto exitNow; break; + } + + replacedCount++; + findAll.addedSplitRanges = 0L; // rkl_findRanges() expects findAll.addedSplitRanges to be 0 on entry. + findAll.found = 0L; // rkl_findRanges() expects findAll.found to be 0 on entry. + findAll.findInRange = findAll.remainingRange; // Ask rkl_findRanges() to search the part of the string after the current match. + lastMatchedRange = findAll.ranges[0]; + + if(RKL_EXPECTED(shouldStop != NO, 0L)) { break; } + } + errorFree = YES; + +exitNow: + if(RKL_EXPECTED(errorFree == NO, 0L)) { replacedCount = -1L; } + if((blockEnumerationOp == RKLBlockEnumerationReplaceOp) && RKL_EXPECTED(errorFree == YES, 1L)) { + RKLCDelayedAssert(replacedCount >= 0L, &exception, exitNow2); + if(RKL_EXPECTED(replacedCount == 0UL, 0L)) { + RKLCDelayedAssert((blockEnumerationHelper != NULL) && (blockEnumerationHelper->buffer.string != NULL), &exception, exitNow2); + returnObject = rkl_CreateStringWithSubstring((id)blockEnumerationHelper->buffer.string, matchRange); + if(rkl_collectingEnabled() == NO) { returnObject = rkl_CFAutorelease(returnObject); } + } + else { + NSUInteger lastMatchedMaxLocation = (lastMatchedRange.location + lastMatchedRange.length); + NSRange previousUnmatchedRange = NSMakeRange(lastMatchedMaxLocation, NSMaxRange(matchRange) - lastMatchedMaxLocation); + RKLCDelayedAssert((NSMaxRange(previousUnmatchedRange) <= stringU16Length) && (NSRangeInsideRange(previousUnmatchedRange, matchRange) == YES), &exception, exitNow2); + + if(RKL_EXPECTED(previousUnmatchedRange.length > 0UL, 1L)) { CFStringAppendCharacters((CFMutableStringRef)mutableReplacementString, blockEnumerationHelperUniChar + previousUnmatchedRange.location, (CFIndex)previousUnmatchedRange.length); } + returnObject = rkl_CFAutorelease(CFStringCreateCopy(NULL, (CFStringRef)mutableReplacementString)); // Warning about potential leak of Core Foundation object can be safely ignored. + } + } + +#ifndef NS_BLOCK_ASSERTIONS +exitNow2: +#endif // NS_BLOCK_ASSERTIONS + if(RKL_EXPECTED(autoreleaseArray != NULL, 1L)) { CFArrayRemoveAllValues((CFMutableArrayRef)autoreleaseArray); } // Causes blockEnumerationHelper to be released immediately, freeing all of its resources (such as a large UTF-16 conversion buffer). + if(RKL_EXPECTED(exception != NULL, 0L)) { rkl_handleDelayedAssert(self, _cmd, exception); } // If there is an exception, throw it at this point. + if(((errorFree == NO) || ((errorFree == YES) && (returnObject == NULL))) && (error != NULL) && (*error == NULL)) { + RKLUserInfoOptions userInfoOptions = (RKLUserInfoSubjectRange | RKLUserInfoRegexEnumerationOptions); + NSString *replacedString = NULL; + if(blockEnumerationOp == RKLBlockEnumerationReplaceOp) { userInfoOptions |= RKLUserInfoReplacedCount; if(RKL_EXPECTED(errorFree == YES, 1L)) { replacedString = returnObject; } } + *error = rkl_makeNSError(userInfoOptions, regexString, options, NULL, status, (blockEnumerationHelper != NULL) ? (blockEnumerationHelper->buffer.string != NULL) ? (NSString *)blockEnumerationHelper->buffer.string : matchString : matchString, matchRange, NULL, replacedString, replacedCount, enumerationOptions, @"An unexpected error occurred."); + } + if(replacedCountPtr != NULL) { *replacedCountPtr = replacedCount; } + if(errorFreePtr != NULL) { *errorFreePtr = errorFree; } + return(returnObject); +} // The two warnings about potential leaks can be safely ignored. + +#endif // _RKL_BLOCKS_ENABLED + +//////////// +#pragma mark - +#pragma mark Objective-C Public Interface +#pragma mark - +//////////// + @implementation NSString (RegexKitLiteAdditions) -// Class methods +#pragma mark +clearStringCache + (void)RKL_METHOD_PREPEND(clearStringCache) { - OSSpinLockLock(&cacheSpinLock); + volatile NSUInteger RKL_CLEANUP(rkl_cleanup_cacheSpinLockStatus) rkl_cacheSpinLockStatus = 0UL; + OSSpinLockLock(&rkl_cacheSpinLock); + rkl_cacheSpinLockStatus |= RKLLockedCacheSpinLock; rkl_clearStringCache(); - OSSpinLockUnlock(&cacheSpinLock); + OSSpinLockUnlock(&rkl_cacheSpinLock); + rkl_cacheSpinLockStatus |= RKLUnlockedCacheSpinLock; // Warning about rkl_cacheSpinLockStatus never being read can be safely ignored. } -// captureCountForRegex: +#pragma mark +captureCountForRegex: + (NSInteger)RKL_METHOD_PREPEND(captureCountForRegex):(NSString *)regex { - return([self RKL_METHOD_PREPEND(captureCountForRegex):regex options:RKLNoOptions error:NULL]); + NSInteger captureCount = -1L; + rkl_isRegexValid(self, _cmd, regex, RKLNoOptions, &captureCount, NULL); + return(captureCount); } + (NSInteger)RKL_METHOD_PREPEND(captureCountForRegex):(NSString *)regex options:(RKLRegexOptions)options error:(NSError **)error { - if((error != NULL) && (*error != NULL)) { *error = NULL; } - if(regex == NULL) { RKLRaiseException(NSInvalidArgumentException, @"The regular expression argument is NULL."); } - - NSException *exception = NULL; - RKLCacheSlot *cacheSlot = NULL; - NSInteger captureCount = -1; + NSInteger captureCount = -1L; + rkl_isRegexValid(self, _cmd, regex, options, &captureCount, error); + return(captureCount); +} - OSSpinLockLock(&cacheSpinLock); - if((cacheSlot = getCachedRegex(regex, options, error, &exception)) != NULL) { captureCount = cacheSlot->captureCount; } - OSSpinLockUnlock(&cacheSpinLock); +#pragma mark -captureCount: - if(exception != NULL) { [exception raise]; } +- (NSInteger)RKL_METHOD_PREPEND(captureCount) +{ + NSInteger captureCount = -1L; + rkl_isRegexValid(self, _cmd, self, RKLNoOptions, &captureCount, NULL); return(captureCount); } -// Instance methods +- (NSInteger)RKL_METHOD_PREPEND(captureCountWithOptions):(RKLRegexOptions)options error:(NSError **)error +{ + NSInteger captureCount = -1L; + rkl_isRegexValid(self, _cmd, self, options, &captureCount, error); + return(captureCount); +} -// componentsSeparatedByRegex: +#pragma mark -componentsSeparatedByRegex: - (NSArray *)RKL_METHOD_PREPEND(componentsSeparatedByRegex):(NSString *)regex { NSRange range = NSMaxiumRange; - return(performRegexOp(self, _cmd, (RKLRegexOp)RKLSplitOp, regex, 0, 0L, self, &range, NULL, NULL, NULL)); + return(rkl_performRegexOp(self, _cmd, (RKLRegexOp)RKLSplitOp, regex, RKLNoOptions, 0L, self, &range, NULL, NULL, NULL, 0UL, NULL, NULL)); } - (NSArray *)RKL_METHOD_PREPEND(componentsSeparatedByRegex):(NSString *)regex range:(NSRange)range { - return(performRegexOp(self, _cmd, (RKLRegexOp)RKLSplitOp, regex, 0, 0L, self, &range, NULL, NULL, NULL)); + return(rkl_performRegexOp(self, _cmd, (RKLRegexOp)RKLSplitOp, regex, RKLNoOptions, 0L, self, &range, NULL, NULL, NULL, 0UL, NULL, NULL)); } - (NSArray *)RKL_METHOD_PREPEND(componentsSeparatedByRegex):(NSString *)regex options:(RKLRegexOptions)options range:(NSRange)range error:(NSError **)error { - return(performRegexOp(self, _cmd, (RKLRegexOp)RKLSplitOp, regex, options, 0L, self, &range, NULL, error, NULL)); + return(rkl_performRegexOp(self, _cmd, (RKLRegexOp)RKLSplitOp, regex, options, 0L, self, &range, NULL, error, NULL, 0UL, NULL, NULL)); } -// isMatchedByRegex: +#pragma mark -isMatchedByRegex: - (BOOL)RKL_METHOD_PREPEND(isMatchedByRegex):(NSString *)regex { NSRange result = NSNotFoundRange, range = NSMaxiumRange; - performRegexOp(self, _cmd, (RKLRegexOp)RKLRangeOp, regex, 0, 0L, self, &range, NULL, NULL, (void **)((void *)&result)); - return((result.location == NSNotFound) ? NO : YES); + rkl_performRegexOp(self, _cmd, (RKLRegexOp)RKLRangeOp, regex, RKLNoOptions, 0L, self, &range, NULL, NULL, &result, 0UL, NULL, NULL); + return((result.location == (NSUInteger)NSNotFound) ? NO : YES); } - (BOOL)RKL_METHOD_PREPEND(isMatchedByRegex):(NSString *)regex inRange:(NSRange)range { NSRange result = NSNotFoundRange; - performRegexOp(self, _cmd, (RKLRegexOp)RKLRangeOp, regex, 0, 0L, self, &range, NULL, NULL, (void **)((void *)&result)); - return((result.location == NSNotFound) ? NO : YES); + rkl_performRegexOp(self, _cmd, (RKLRegexOp)RKLRangeOp, regex, RKLNoOptions, 0L, self, &range, NULL, NULL, &result, 0UL, NULL, NULL); + return((result.location == (NSUInteger)NSNotFound) ? NO : YES); } - (BOOL)RKL_METHOD_PREPEND(isMatchedByRegex):(NSString *)regex options:(RKLRegexOptions)options inRange:(NSRange)range error:(NSError **)error { NSRange result = NSNotFoundRange; - performRegexOp(self, _cmd, (RKLRegexOp)RKLRangeOp, regex, options, 0L, self, &range, NULL, error, (void **)((void *)&result)); - return((result.location == NSNotFound) ? NO : YES); + rkl_performRegexOp(self, _cmd, (RKLRegexOp)RKLRangeOp, regex, options, 0L, self, &range, NULL, error, &result, 0UL, NULL, NULL); + return((result.location == (NSUInteger)NSNotFound) ? NO : YES); } -// rangeOfRegex: +#pragma mark -isRegexValid + +- (BOOL)RKL_METHOD_PREPEND(isRegexValid) +{ + return(rkl_isRegexValid(self, _cmd, self, RKLNoOptions, NULL, NULL) == 1UL ? YES : NO); +} + +- (BOOL)RKL_METHOD_PREPEND(isRegexValidWithOptions):(RKLRegexOptions)options error:(NSError **)error +{ + return(rkl_isRegexValid(self, _cmd, self, options, NULL, error) == 1UL ? YES : NO); +} + +#pragma mark -flushCachedRegexData + +- (void)RKL_METHOD_PREPEND(flushCachedRegexData) +{ + volatile NSUInteger RKL_CLEANUP(rkl_cleanup_cacheSpinLockStatus) rkl_cacheSpinLockStatus = 0UL; + + CFIndex selfLength = CFStringGetLength((CFStringRef)self); + CFHashCode selfHash = CFHash((CFTypeRef)self); + + OSSpinLockLock(&rkl_cacheSpinLock); + rkl_cacheSpinLockStatus |= RKLLockedCacheSpinLock; + rkl_dtrace_incrementEventID(); + + NSUInteger idx; + for(idx = 0UL; idx < _RKL_REGEX_CACHE_LINES; idx++) { + RKLCachedRegex *cachedRegex = &rkl_cachedRegexes[idx]; + if((cachedRegex->setToString != NULL) && ( (cachedRegex->setToString == (CFStringRef)self) || ((cachedRegex->setToLength == selfLength) && (cachedRegex->setToHash == selfHash)) ) ) { rkl_clearCachedRegexSetTo(cachedRegex); } + } + for(idx = 0UL; idx < _RKL_LRU_CACHE_SET_WAYS; idx++) { RKLBuffer *buffer = &rkl_lruFixedBuffer[idx]; if((buffer->string != NULL) && ((buffer->string == (CFStringRef)self) || ((buffer->length == selfLength) && (buffer->hash == selfHash)))) { rkl_clearBuffer(buffer, 0UL); } } + for(idx = 0UL; idx < _RKL_LRU_CACHE_SET_WAYS; idx++) { RKLBuffer *buffer = &rkl_lruDynamicBuffer[idx]; if((buffer->string != NULL) && ((buffer->string == (CFStringRef)self) || ((buffer->length == selfLength) && (buffer->hash == selfHash)))) { rkl_clearBuffer(buffer, 0UL); } } + + OSSpinLockUnlock(&rkl_cacheSpinLock); + rkl_cacheSpinLockStatus |= RKLUnlockedCacheSpinLock; // Warning about rkl_cacheSpinLockStatus never being read can be safely ignored. +} + +#pragma mark -rangeOfRegex: - (NSRange)RKL_METHOD_PREPEND(rangeOfRegex):(NSString *)regex { NSRange result = NSNotFoundRange, range = NSMaxiumRange; - performRegexOp(self, _cmd, (RKLRegexOp)RKLRangeOp, regex, 0, 0L, self, &range, NULL, NULL, (void **)((void *)&result)); + rkl_performRegexOp(self, _cmd, (RKLRegexOp)RKLRangeOp, regex, RKLNoOptions, 0L, self, &range, NULL, NULL, &result, 0UL, NULL, NULL); return(result); } - (NSRange)RKL_METHOD_PREPEND(rangeOfRegex):(NSString *)regex capture:(NSInteger)capture { NSRange result = NSNotFoundRange, range = NSMaxiumRange; - performRegexOp(self, _cmd, (RKLRegexOp)RKLRangeOp, regex, 0, capture, self, &range, NULL, NULL, (void **)((void *)&result)); + rkl_performRegexOp(self, _cmd, (RKLRegexOp)RKLRangeOp, regex, RKLNoOptions, capture, self, &range, NULL, NULL, &result, 0UL, NULL, NULL); return(result); } - (NSRange)RKL_METHOD_PREPEND(rangeOfRegex):(NSString *)regex inRange:(NSRange)range { NSRange result = NSNotFoundRange; - performRegexOp(self, _cmd, (RKLRegexOp)RKLRangeOp, regex, 0, 0L, self, &range, NULL, NULL, (void **)((void *)&result)); + rkl_performRegexOp(self, _cmd, (RKLRegexOp)RKLRangeOp, regex, RKLNoOptions, 0L, self, &range, NULL, NULL, &result, 0UL, NULL, NULL); return(result); } - (NSRange)RKL_METHOD_PREPEND(rangeOfRegex):(NSString *)regex options:(RKLRegexOptions)options inRange:(NSRange)range capture:(NSInteger)capture error:(NSError **)error { NSRange result = NSNotFoundRange; - performRegexOp(self, _cmd, (RKLRegexOp)RKLRangeOp, regex, options, capture, self, &range, NULL, error, (void **)((void *)&result)); + rkl_performRegexOp(self, _cmd, (RKLRegexOp)RKLRangeOp, regex, options, capture, self, &range, NULL, error, &result, 0UL, NULL, NULL); return(result); } -// stringByMatching: +#pragma mark -stringByMatching: - (NSString *)RKL_METHOD_PREPEND(stringByMatching):(NSString *)regex { - return([self RKL_METHOD_PREPEND(stringByMatching):regex options:RKLNoOptions inRange:NSMaxiumRange capture:0L error:NULL]); -} + NSRange matchedRange = NSNotFoundRange, range = NSMaxiumRange; + rkl_performRegexOp(self, _cmd, (RKLRegexOp)RKLRangeOp, regex, RKLNoOptions, 0L, self, &range, NULL, NULL, &matchedRange, 0UL, NULL, NULL); + return((matchedRange.location == (NSUInteger)NSNotFound) ? NULL : rkl_CFAutorelease(CFStringCreateWithSubstring(NULL, (CFStringRef)self, CFMakeRange(matchedRange.location, matchedRange.length)))); // Warning about potential leak can be safely ignored. +} // Warning about potential leak can be safely ignored. - (NSString *)RKL_METHOD_PREPEND(stringByMatching):(NSString *)regex capture:(NSInteger)capture { - return([self RKL_METHOD_PREPEND(stringByMatching):regex options:RKLNoOptions inRange:NSMaxiumRange capture:capture error:NULL]); -} + NSRange matchedRange = NSNotFoundRange, range = NSMaxiumRange; + rkl_performRegexOp(self, _cmd, (RKLRegexOp)RKLRangeOp, regex, RKLNoOptions, capture, self, &range, NULL, NULL, &matchedRange, 0UL, NULL, NULL); + return((matchedRange.location == (NSUInteger)NSNotFound) ? NULL : rkl_CFAutorelease(CFStringCreateWithSubstring(NULL, (CFStringRef)self, CFMakeRange(matchedRange.location, matchedRange.length)))); // Warning about potential leak can be safely ignored. +} // Warning about potential leak can be safely ignored. - (NSString *)RKL_METHOD_PREPEND(stringByMatching):(NSString *)regex inRange:(NSRange)range { - return([self RKL_METHOD_PREPEND(stringByMatching):regex options:RKLNoOptions inRange:range capture:0L error:NULL]); -} + NSRange matchedRange = NSNotFoundRange; + rkl_performRegexOp(self, _cmd, (RKLRegexOp)RKLRangeOp, regex, RKLNoOptions, 0L, self, &range, NULL, NULL, &matchedRange, 0UL, NULL, NULL); + return((matchedRange.location == (NSUInteger)NSNotFound) ? NULL : rkl_CFAutorelease(CFStringCreateWithSubstring(NULL, (CFStringRef)self, CFMakeRange(matchedRange.location, matchedRange.length)))); // Warning about potential leak can be safely ignored. +} // Warning about potential leak can be safely ignored. - (NSString *)RKL_METHOD_PREPEND(stringByMatching):(NSString *)regex options:(RKLRegexOptions)options inRange:(NSRange)range capture:(NSInteger)capture error:(NSError **)error { - NSRange matchedRange = [self RKL_METHOD_PREPEND(rangeOfRegex):regex options:options inRange:range capture:capture error:error]; - return((matchedRange.location == NSNotFound) ? NULL : rkl_CFAutorelease(CFStringCreateWithSubstring(NULL, (CFStringRef)self, CFMakeRange(matchedRange.location, matchedRange.length)))); -} + NSRange matchedRange = NSNotFoundRange; + rkl_performRegexOp(self, _cmd, (RKLRegexOp)RKLRangeOp, regex, options, capture, self, &range, NULL, error, &matchedRange, 0UL, NULL, NULL); + return((matchedRange.location == (NSUInteger)NSNotFound) ? NULL : rkl_CFAutorelease(CFStringCreateWithSubstring(NULL, (CFStringRef)self, CFMakeRange(matchedRange.location, matchedRange.length)))); // Warning about potential leak can be safely ignored. +} // Warning about potential leak can be safely ignored. -// stringByReplacingOccurrencesOfRegex: +#pragma mark -stringByReplacingOccurrencesOfRegex: - (NSString *)RKL_METHOD_PREPEND(stringByReplacingOccurrencesOfRegex):(NSString *)regex withString:(NSString *)replacement { NSRange searchRange = NSMaxiumRange; - return(performRegexOp(self, _cmd, (RKLRegexOp)RKLReplaceOp, regex, 0, 0L, self, &searchRange, replacement, NULL, NULL)); + return(rkl_performRegexOp(self, _cmd, (RKLRegexOp)RKLReplaceOp, regex, RKLNoOptions, 0L, self, &searchRange, replacement, NULL, NULL, 0UL, NULL, NULL)); } - (NSString *)RKL_METHOD_PREPEND(stringByReplacingOccurrencesOfRegex):(NSString *)regex withString:(NSString *)replacement range:(NSRange)searchRange { - return(performRegexOp(self, _cmd, (RKLRegexOp)RKLReplaceOp, regex, 0, 0L, self, &searchRange, replacement, NULL, NULL)); + return(rkl_performRegexOp(self, _cmd, (RKLRegexOp)RKLReplaceOp, regex, RKLNoOptions, 0L, self, &searchRange, replacement, NULL, NULL, 0UL, NULL, NULL)); } - (NSString *)RKL_METHOD_PREPEND(stringByReplacingOccurrencesOfRegex):(NSString *)regex withString:(NSString *)replacement options:(RKLRegexOptions)options range:(NSRange)searchRange error:(NSError **)error { - return(performRegexOp(self, _cmd, (RKLRegexOp)RKLReplaceOp, regex, options, 0L, self, &searchRange, replacement, error, NULL)); + return(rkl_performRegexOp(self, _cmd, (RKLRegexOp)RKLReplaceOp, regex, options, 0L, self, &searchRange, replacement, error, NULL, 0UL, NULL, NULL)); } -@end +#pragma mark -componentsMatchedByRegex: + +- (NSArray *)RKL_METHOD_PREPEND(componentsMatchedByRegex):(NSString *)regex +{ + NSRange searchRange = NSMaxiumRange; + return(rkl_performRegexOp(self, _cmd, (RKLRegexOp)RKLArrayOfStringsOp, regex, RKLNoOptions, 0L, self, &searchRange, NULL, NULL, NULL, 0UL, NULL, NULL)); +} + +- (NSArray *)RKL_METHOD_PREPEND(componentsMatchedByRegex):(NSString *)regex capture:(NSInteger)capture +{ + NSRange searchRange = NSMaxiumRange; + return(rkl_performRegexOp(self, _cmd, (RKLRegexOp)RKLArrayOfStringsOp, regex, RKLNoOptions, capture, self, &searchRange, NULL, NULL, NULL, 0UL, NULL, NULL)); +} + +- (NSArray *)RKL_METHOD_PREPEND(componentsMatchedByRegex):(NSString *)regex range:(NSRange)range +{ + return(rkl_performRegexOp(self, _cmd, (RKLRegexOp)RKLArrayOfStringsOp, regex, RKLNoOptions, 0L, self, &range, NULL, NULL, NULL, 0UL, NULL, NULL)); +} + +- (NSArray *)RKL_METHOD_PREPEND(componentsMatchedByRegex):(NSString *)regex options:(RKLRegexOptions)options range:(NSRange)range capture:(NSInteger)capture error:(NSError **)error +{ + return(rkl_performRegexOp(self, _cmd, (RKLRegexOp)RKLArrayOfStringsOp, regex, options, capture, self, &range, NULL, error, NULL, 0UL, NULL, NULL)); +} + +#pragma mark -captureComponentsMatchedByRegex: + +- (NSArray *)RKL_METHOD_PREPEND(captureComponentsMatchedByRegex):(NSString *)regex +{ + NSRange searchRange = NSMaxiumRange; + return(rkl_performRegexOp(self, _cmd, (RKLRegexOp)RKLCapturesArrayOp, regex, RKLNoOptions, 0L, self, &searchRange, NULL, NULL, NULL, 0UL, NULL, NULL)); +} + +- (NSArray *)RKL_METHOD_PREPEND(captureComponentsMatchedByRegex):(NSString *)regex range:(NSRange)range +{ + return(rkl_performRegexOp(self, _cmd, (RKLRegexOp)RKLCapturesArrayOp, regex, RKLNoOptions, 0L, self, &range, NULL, NULL, NULL, 0UL, NULL, NULL)); +} + +- (NSArray *)RKL_METHOD_PREPEND(captureComponentsMatchedByRegex):(NSString *)regex options:(RKLRegexOptions)options range:(NSRange)range error:(NSError **)error +{ + return(rkl_performRegexOp(self, _cmd, (RKLRegexOp)RKLCapturesArrayOp, regex, options, 0L, self, &range, NULL, error, NULL, 0UL, NULL, NULL)); +} + +#pragma mark -arrayOfCaptureComponentsMatchedByRegex: + +- (NSArray *)RKL_METHOD_PREPEND(arrayOfCaptureComponentsMatchedByRegex):(NSString *)regex +{ + NSRange searchRange = NSMaxiumRange; + return(rkl_performRegexOp(self, _cmd, (RKLRegexOp)(RKLArrayOfCapturesOp | RKLSubcapturesArray), regex, RKLNoOptions, 0L, self, &searchRange, NULL, NULL, NULL, 0UL, NULL, NULL)); +} + +- (NSArray *)RKL_METHOD_PREPEND(arrayOfCaptureComponentsMatchedByRegex):(NSString *)regex range:(NSRange)range +{ + return(rkl_performRegexOp(self, _cmd, (RKLRegexOp)(RKLArrayOfCapturesOp | RKLSubcapturesArray), regex, RKLNoOptions, 0L, self, &range, NULL, NULL, NULL, 0UL, NULL, NULL)); +} + +- (NSArray *)RKL_METHOD_PREPEND(arrayOfCaptureComponentsMatchedByRegex):(NSString *)regex options:(RKLRegexOptions)options range:(NSRange)range error:(NSError **)error +{ + return(rkl_performRegexOp(self, _cmd, (RKLRegexOp)(RKLArrayOfCapturesOp | RKLSubcapturesArray), regex, options, 0L, self, &range, NULL, error, NULL, 0UL, NULL, NULL)); +} + +#pragma mark -dictionaryByMatchingRegex: + +- (NSDictionary *)RKL_METHOD_PREPEND(dictionaryByMatchingRegex):(NSString *)regex withKeysAndCaptures:(id)firstKey, ... +{ + NSRange searchRange = NSMaxiumRange; + id returnObject = NULL; + va_list varArgsList; + va_start(varArgsList, firstKey); + returnObject = rkl_performDictionaryVarArgsOp(self, _cmd, (RKLRegexOp)RKLDictionaryOfCapturesOp, regex, (RKLRegexOptions)RKLNoOptions, 0L, self, &searchRange, NULL, NULL, NULL, firstKey, varArgsList); + va_end(varArgsList); + return(returnObject); +} + +- (NSDictionary *)RKL_METHOD_PREPEND(dictionaryByMatchingRegex):(NSString *)regex range:(NSRange)range withKeysAndCaptures:(id)firstKey, ... +{ + id returnObject = NULL; + va_list varArgsList; + va_start(varArgsList, firstKey); + returnObject = rkl_performDictionaryVarArgsOp(self, _cmd, (RKLRegexOp)RKLDictionaryOfCapturesOp, regex, (RKLRegexOptions)RKLNoOptions, 0L, self, &range, NULL, NULL, NULL, firstKey, varArgsList); + va_end(varArgsList); + return(returnObject); +} + +- (NSDictionary *)RKL_METHOD_PREPEND(dictionaryByMatchingRegex):(NSString *)regex options:(RKLRegexOptions)options range:(NSRange)range error:(NSError **)error withKeysAndCaptures:(id)firstKey, ... +{ + id returnObject = NULL; + va_list varArgsList; + va_start(varArgsList, firstKey); + returnObject = rkl_performDictionaryVarArgsOp(self, _cmd, (RKLRegexOp)RKLDictionaryOfCapturesOp, regex, options, 0L, self, &range, NULL, error, NULL, firstKey, varArgsList); + va_end(varArgsList); + return(returnObject); +} + +- (NSDictionary *)RKL_METHOD_PREPEND(dictionaryByMatchingRegex):(NSString *)regex options:(RKLRegexOptions)options range:(NSRange)range error:(NSError **)error withFirstKey:(id)firstKey arguments:(va_list)varArgsList +{ + return(rkl_performDictionaryVarArgsOp(self, _cmd, (RKLRegexOp)RKLDictionaryOfCapturesOp, regex, options, 0L, self, &range, NULL, error, NULL, firstKey, varArgsList)); +} + +- (NSDictionary *)RKL_METHOD_PREPEND(dictionaryByMatchingRegex):(NSString *)regex options:(RKLRegexOptions)options range:(NSRange)range error:(NSError **)error withKeys:(id *)keys forCaptures:(int *)captures count:(NSUInteger)count +{ + return(rkl_performRegexOp(self, _cmd, (RKLRegexOp)RKLDictionaryOfCapturesOp, regex, options, 0L, self, &range, NULL, error, NULL, count, keys, captures)); +} + +#pragma mark -arrayOfDictionariesByMatchingRegex: + +- (NSArray *)RKL_METHOD_PREPEND(arrayOfDictionariesByMatchingRegex):(NSString *)regex withKeysAndCaptures:(id)firstKey, ... +{ + NSRange searchRange = NSMaxiumRange; + id returnObject = NULL; + va_list varArgsList; + va_start(varArgsList, firstKey); + returnObject = rkl_performDictionaryVarArgsOp(self, _cmd, (RKLRegexOp)RKLArrayOfDictionariesOfCapturesOp, regex, (RKLRegexOptions)RKLNoOptions, 0L, self, &searchRange, NULL, NULL, NULL, firstKey, varArgsList); + va_end(varArgsList); + return(returnObject); +} + +- (NSArray *)RKL_METHOD_PREPEND(arrayOfDictionariesByMatchingRegex):(NSString *)regex range:(NSRange)range withKeysAndCaptures:(id)firstKey, ... +{ + id returnObject = NULL; + va_list varArgsList; + va_start(varArgsList, firstKey); + returnObject = rkl_performDictionaryVarArgsOp(self, _cmd, (RKLRegexOp)RKLArrayOfDictionariesOfCapturesOp, regex, (RKLRegexOptions)RKLNoOptions, 0L, self, &range, NULL, NULL, NULL, firstKey, varArgsList); + va_end(varArgsList); + return(returnObject); +} +- (NSArray *)RKL_METHOD_PREPEND(arrayOfDictionariesByMatchingRegex):(NSString *)regex options:(RKLRegexOptions)options range:(NSRange)range error:(NSError **)error withKeysAndCaptures:(id)firstKey, ... +{ + id returnObject = NULL; + va_list varArgsList; + va_start(varArgsList, firstKey); + returnObject = rkl_performDictionaryVarArgsOp(self, _cmd, (RKLRegexOp)RKLArrayOfDictionariesOfCapturesOp, regex, options, 0L, self, &range, NULL, error, NULL, firstKey, varArgsList); + va_end(varArgsList); + return(returnObject); +} + +- (NSArray *)RKL_METHOD_PREPEND(arrayOfDictionariesByMatchingRegex):(NSString *)regex options:(RKLRegexOptions)options range:(NSRange)range error:(NSError **)error withFirstKey:(id)firstKey arguments:(va_list)varArgsList +{ + return(rkl_performDictionaryVarArgsOp(self, _cmd, (RKLRegexOp)RKLArrayOfDictionariesOfCapturesOp, regex, options, 0L, self, &range, NULL, error, NULL, firstKey, varArgsList)); +} + +- (NSArray *)RKL_METHOD_PREPEND(arrayOfDictionariesByMatchingRegex):(NSString *)regex options:(RKLRegexOptions)options range:(NSRange)range error:(NSError **)error withKeys:(id *)keys forCaptures:(int *)captures count:(NSUInteger)count +{ + return(rkl_performRegexOp(self, _cmd, (RKLRegexOp)RKLArrayOfDictionariesOfCapturesOp, regex, options, 0L, self, &range, NULL, error, NULL, count, keys, captures)); +} + +#ifdef _RKL_BLOCKS_ENABLED + +//////////// +#pragma mark - +#pragma mark ^Blocks Related NSString Methods + +#pragma mark -enumerateStringsMatchedByRegex:usingBlock: +- (BOOL)RKL_METHOD_PREPEND(enumerateStringsMatchedByRegex):(NSString *)regex usingBlock:(void (^)(NSInteger captureCount, NSString * const capturedStrings[captureCount], const NSRange capturedRanges[captureCount], volatile BOOL * const stop))block +{ + NSUInteger errorFree = NO; + rkl_performEnumerationUsingBlock(self, _cmd, (RKLRegexOp)RKLCapturesArrayOp, regex, (RKLRegexOptions)RKLNoOptions, self, NSMaxiumRange, (RKLBlockEnumerationOp)RKLBlockEnumerationMatchOp, 0UL, NULL, &errorFree, NULL, block, NULL); + return(errorFree == NO ? NO : YES); +} + +- (BOOL)RKL_METHOD_PREPEND(enumerateStringsMatchedByRegex):(NSString *)regex options:(RKLRegexOptions)options inRange:(NSRange)range error:(NSError **)error enumerationOptions:(RKLRegexEnumerationOptions)enumerationOptions usingBlock:(void (^)(NSInteger captureCount, NSString * const capturedStrings[captureCount], const NSRange capturedRanges[captureCount], volatile BOOL * const stop))block +{ + NSUInteger errorFree = NO; + rkl_performEnumerationUsingBlock(self, _cmd, (RKLRegexOp)RKLCapturesArrayOp, regex, options, self, range, (RKLBlockEnumerationOp)RKLBlockEnumerationMatchOp, enumerationOptions, NULL, &errorFree, error, block, NULL); + return(errorFree == NO ? NO : YES); +} + +#pragma mark -enumerateStringsSeparatedByRegex:usingBlock: + +- (BOOL)RKL_METHOD_PREPEND(enumerateStringsSeparatedByRegex):(NSString *)regex usingBlock:(void (^)(NSInteger captureCount, NSString * const capturedStrings[captureCount], const NSRange capturedRanges[captureCount], volatile BOOL * const stop))block +{ + NSUInteger errorFree = NO; + rkl_performEnumerationUsingBlock(self, _cmd, (RKLRegexOp)RKLSplitOp, regex, (RKLRegexOptions)RKLNoOptions, self, NSMaxiumRange, (RKLBlockEnumerationOp)RKLBlockEnumerationMatchOp, 0UL, NULL, &errorFree, NULL, block, NULL); + return(errorFree == NO ? NO : YES); +} + +- (BOOL)RKL_METHOD_PREPEND(enumerateStringsSeparatedByRegex):(NSString *)regex options:(RKLRegexOptions)options inRange:(NSRange)range error:(NSError **)error enumerationOptions:(RKLRegexEnumerationOptions)enumerationOptions usingBlock:(void (^)(NSInteger captureCount, NSString * const capturedStrings[captureCount], const NSRange capturedRanges[captureCount], volatile BOOL * const stop))block +{ + NSUInteger errorFree = NO; + rkl_performEnumerationUsingBlock(self, _cmd, (RKLRegexOp)RKLSplitOp, regex, options, self, range, (RKLBlockEnumerationOp)RKLBlockEnumerationMatchOp, enumerationOptions, NULL, &errorFree, error, block, NULL); + return(errorFree == NO ? NO : YES); +} + +#pragma mark -stringByReplacingOccurrencesOfRegex:usingBlock: + +- (NSString *)RKL_METHOD_PREPEND(stringByReplacingOccurrencesOfRegex):(NSString *)regex usingBlock:(NSString *(^)(NSInteger captureCount, NSString * const capturedStrings[captureCount], const NSRange capturedRanges[captureCount], volatile BOOL * const stop))block +{ + return(rkl_performEnumerationUsingBlock(self, _cmd, (RKLRegexOp)RKLCapturesArrayOp, regex, (RKLRegexOptions)RKLNoOptions, self, NSMaxiumRange, (RKLBlockEnumerationOp)RKLBlockEnumerationReplaceOp, 0UL, NULL, NULL, NULL, NULL, block)); +} + +- (NSString *)RKL_METHOD_PREPEND(stringByReplacingOccurrencesOfRegex):(NSString *)regex options:(RKLRegexOptions)options inRange:(NSRange)range error:(NSError **)error enumerationOptions:(RKLRegexEnumerationOptions)enumerationOptions usingBlock:(NSString *(^)(NSInteger captureCount, NSString * const capturedStrings[captureCount], const NSRange capturedRanges[captureCount], volatile BOOL * const stop))block +{ + return(rkl_performEnumerationUsingBlock(self, _cmd, (RKLRegexOp)RKLCapturesArrayOp, regex, options, self, range, (RKLBlockEnumerationOp)RKLBlockEnumerationReplaceOp, enumerationOptions, NULL, NULL, error, NULL, block)); +} + +#endif // _RKL_BLOCKS_ENABLED + +@end + +//////////// +#pragma mark - @implementation NSMutableString (RegexKitLiteAdditions) -// replaceOccurrencesOfRegex: +#pragma mark -replaceOccurrencesOfRegex: -- (NSUInteger)RKL_METHOD_PREPEND(replaceOccurrencesOfRegex):(NSString *)regex withString:(NSString *)replacement +- (NSInteger)RKL_METHOD_PREPEND(replaceOccurrencesOfRegex):(NSString *)regex withString:(NSString *)replacement { NSRange searchRange = NSMaxiumRange; - NSUInteger replacedCount = 0; - performRegexOp(self, _cmd, (RKLRegexOp)(RKLReplaceOp | RKLReplaceMutable), regex, 0, 0L, self, &searchRange, replacement, NULL, (void **)((void *)&replacedCount)); + NSInteger replacedCount = -1L; + rkl_performRegexOp(self, _cmd, (RKLRegexOp)(RKLReplaceOp | RKLReplaceMutable), regex, RKLNoOptions, 0L, self, &searchRange, replacement, NULL, (void **)((void *)&replacedCount), 0UL, NULL, NULL); return(replacedCount); } -- (NSUInteger)RKL_METHOD_PREPEND(replaceOccurrencesOfRegex):(NSString *)regex withString:(NSString *)replacement range:(NSRange)searchRange +- (NSInteger)RKL_METHOD_PREPEND(replaceOccurrencesOfRegex):(NSString *)regex withString:(NSString *)replacement range:(NSRange)searchRange { - NSUInteger replacedCount = 0; - performRegexOp(self, _cmd, (RKLRegexOp)(RKLReplaceOp | RKLReplaceMutable), regex, 0, 0L, self, &searchRange, replacement, NULL, (void **)((void *)&replacedCount)); + NSInteger replacedCount = -1L; + rkl_performRegexOp(self, _cmd, (RKLRegexOp)(RKLReplaceOp | RKLReplaceMutable), regex, RKLNoOptions, 0L, self, &searchRange, replacement, NULL, (void **)((void *)&replacedCount), 0UL, NULL, NULL); return(replacedCount); } -- (NSUInteger)RKL_METHOD_PREPEND(replaceOccurrencesOfRegex):(NSString *)regex withString:(NSString *)replacement options:(RKLRegexOptions)options range:(NSRange)searchRange error:(NSError **)error +- (NSInteger)RKL_METHOD_PREPEND(replaceOccurrencesOfRegex):(NSString *)regex withString:(NSString *)replacement options:(RKLRegexOptions)options range:(NSRange)searchRange error:(NSError **)error { - NSUInteger replacedCount = 0; - performRegexOp(self, _cmd, (RKLRegexOp)(RKLReplaceOp | RKLReplaceMutable), regex, options, 0L, self, &searchRange, replacement, error, (void **)((void *)&replacedCount)); + NSInteger replacedCount = -1L; + rkl_performRegexOp(self, _cmd, (RKLRegexOp)(RKLReplaceOp | RKLReplaceMutable), regex, options, 0L, self, &searchRange, replacement, error, (void **)((void *)&replacedCount), 0UL, NULL, NULL); return(replacedCount); } -@end +#ifdef _RKL_BLOCKS_ENABLED +//////////// +#pragma mark - +#pragma mark ^Blocks Related NSMutableString Methods + +#pragma mark -replaceOccurrencesOfRegex:usingBlock: + +- (NSInteger)RKL_METHOD_PREPEND(replaceOccurrencesOfRegex):(NSString *)regex usingBlock:(NSString *(^)(NSInteger captureCount, NSString * const capturedStrings[captureCount], const NSRange capturedRanges[captureCount], volatile BOOL * const stop))block +{ + NSUInteger errorFree = 0UL; + NSInteger replacedCount = -1L; + NSString *replacedString = rkl_performEnumerationUsingBlock(self, _cmd, (RKLRegexOp)RKLCapturesArrayOp, regex, RKLNoOptions, self, NSMaxiumRange, (RKLBlockEnumerationOp)RKLBlockEnumerationReplaceOp, 0UL, &replacedCount, &errorFree, NULL, NULL, block); + if((errorFree == YES) && (replacedCount > 0L)) { [self replaceCharactersInRange:NSMakeRange(0UL, [self length]) withString:replacedString]; } + return(replacedCount); +} + +- (NSInteger)RKL_METHOD_PREPEND(replaceOccurrencesOfRegex):(NSString *)regex options:(RKLRegexOptions)options inRange:(NSRange)range error:(NSError **)error enumerationOptions:(RKLRegexEnumerationOptions)enumerationOptions usingBlock:(NSString *(^)(NSInteger captureCount, NSString * const capturedStrings[captureCount], const NSRange capturedRanges[captureCount], volatile BOOL * const stop))block +{ + NSUInteger errorFree = 0UL; + NSInteger replacedCount = -1L; + NSString *replacedString = rkl_performEnumerationUsingBlock(self, _cmd, (RKLRegexOp)RKLCapturesArrayOp, regex, options, self, range, (RKLBlockEnumerationOp)RKLBlockEnumerationReplaceOp, enumerationOptions, &replacedCount, &errorFree, error, NULL, block); + if((errorFree == YES) && (replacedCount > 0L)) { [self replaceCharactersInRange:range withString:replacedString]; } + return(replacedCount); +} + +#endif // _RKL_BLOCKS_ENABLED + +@end diff --git a/ImportSources/UKFileWatcher.h b/ImportSources/UKFileWatcher.h deleted file mode 100644 index 59ea48087a..0000000000 --- a/ImportSources/UKFileWatcher.h +++ /dev/null @@ -1,57 +0,0 @@ -/* ============================================================================= - FILE: UKFileWatcher.h - PROJECT: Filie - - COPYRIGHT: (c) 2005 M. Uli Kusterer, all rights reserved. - - AUTHORS: M. Uli Kusterer - UK - - LICENSES: GPL, Modified BSD - - REVISIONS: - 2005-02-25 UK Created. - ========================================================================== */ - -/* - This is a protocol that file change notification classes should adopt. - That way, no matter whether you use Carbon's FNNotify/FNSubscribe, BSD's - kqueue or whatever, the object being notified can react to change - notifications the same way, and you can easily swap one out for the other - to cater to different OS versions, target volumes etc. -*/ - -// ----------------------------------------------------------------------------- -// Protocol: -// ----------------------------------------------------------------------------- - -@protocol UKFileWatcher - --(void) addPath: (NSString*)path; --(void) removePath: (NSString*)path; - --(id) delegate; --(void) setDelegate: (id)newDelegate; - -@end - -// ----------------------------------------------------------------------------- -// Methods delegates need to provide: -// ----------------------------------------------------------------------------- - -@interface NSObject (UKFileWatcherDelegate) - --(void) watcher: (id)kq receivedNotification: (NSString*)nm forPath: (NSString*)fpath; - -@end - - -// Notifications this sends: -// (object is the file path registered with, and these are sent via the workspace notification center) -#define UKFileWatcherRenameNotification @"UKKQueueFileRenamedNotification" -#define UKFileWatcherWriteNotification @"UKKQueueFileWrittenToNotification" -#define UKFileWatcherDeleteNotification @"UKKQueueFileDeletedNotification" -#define UKFileWatcherAttributeChangeNotification @"UKKQueueFileAttributesChangedNotification" -#define UKFileWatcherSizeIncreaseNotification @"UKKQueueFileSizeIncreasedNotification" -#define UKFileWatcherLinkCountChangeNotification @"UKKQueueFileLinkCountChangedNotification" -#define UKFileWatcherAccessRevocationNotification @"UKKQueueFileAccessRevocationNotification" - diff --git a/ImportSources/UKKQueue.h b/ImportSources/UKKQueue.h deleted file mode 100644 index 5ec7015c04..0000000000 --- a/ImportSources/UKKQueue.h +++ /dev/null @@ -1,100 +0,0 @@ -/* ============================================================================= - FILE: UKKQueue.h - PROJECT: Filie - - COPYRIGHT: (c) 2003 M. Uli Kusterer, all rights reserved. - - AUTHORS: M. Uli Kusterer - UK - - LICENSES: GPL, Modified BSD - - REVISIONS: - 2003-12-21 UK Created. - ========================================================================== */ - -// ----------------------------------------------------------------------------- -// Headers: -// ----------------------------------------------------------------------------- - -#import -#include -#include -#import "UKFileWatcher.h" - - -// ----------------------------------------------------------------------------- -// Constants: -// ----------------------------------------------------------------------------- - -#ifndef UKKQUEUE_BACKWARDS_COMPATIBLE -#define UKKQUEUE_BACKWARDS_COMPATIBLE 1 // 1 to send old-style kqueue:receivedNotification:forFile: messages to objects that accept them. -#endif - -// Flags for notifyingAbout: -#define UKKQueueNotifyAboutRename NOTE_RENAME // Item was renamed. -#define UKKQueueNotifyAboutWrite NOTE_WRITE // Item contents changed (also folder contents changed). -#define UKKQueueNotifyAboutDelete NOTE_DELETE // item was removed. -#define UKKQueueNotifyAboutAttributeChange NOTE_ATTRIB // Item attributes changed. -#define UKKQueueNotifyAboutSizeIncrease NOTE_EXTEND // Item size increased. -#define UKKQueueNotifyAboutLinkCountChanged NOTE_LINK // Item's link count changed. -#define UKKQueueNotifyAboutAccessRevocation NOTE_REVOKE // Access to item was revoked. - -// Notifications this sends: -// (see UKFileWatcher) -// Old names: *deprecated* -#define UKKQueueFileRenamedNotification UKFileWatcherRenameNotification -#define UKKQueueFileWrittenToNotification UKFileWatcherWriteNotification -#define UKKQueueFileDeletedNotification UKFileWatcherDeleteNotification -#define UKKQueueFileAttributesChangedNotification UKFileWatcherAttributeChangeNotification -#define UKKQueueFileSizeIncreasedNotification UKFileWatcherSizeIncreaseNotification -#define UKKQueueFileLinkCountChangedNotification UKFileWatcherLinkCountChangeNotification -#define UKKQueueFileAccessRevocationNotification UKFileWatcherAccessRevocationNotification - - -// ----------------------------------------------------------------------------- -// UKKQueue: -// ----------------------------------------------------------------------------- - -@interface UKKQueue : NSObject -{ - int queueFD; // The actual queue ID. - NSMutableArray* watchedPaths; // List of NSStrings containing the paths we're watching. - NSMutableArray* watchedFDs; // List of NSNumbers containing the file descriptors we're watching. - id delegate; // Gets messages about changes instead of notification center, if specified. - id delegateProxy; // Proxy object to which we send messages so they reach delegate on the main thread. - BOOL alwaysNotify; // Send notifications even if we have a delegate? Defaults to NO. - BOOL keepThreadRunning; // Termination criterion of our thread. -} - -+(UKKQueue*) sharedQueue; // Returns a singleton, a shared kqueue object Handy if you're subscribing to the notifications. Use this, or just create separate objects using alloc/init. Whatever floats your boat. - --(int) queueFD; // I know you unix geeks want this... - -// High-level file watching: (use UKFileWatcher protocol methods instead, where possible!) --(void) addPathToQueue: (NSString*)path; --(void) addPathToQueue: (NSString*)path notifyingAbout: (u_int)fflags; --(void) removePathFromQueue: (NSString*)path; - --(id) delegate; --(void) setDelegate: (id)newDelegate; - --(BOOL) alwaysNotify; --(void) setAlwaysNotify: (BOOL)n; - -// private: --(void) watcherThread: (id)sender; --(void) postNotification: (NSString*)nm forFile: (NSString*)fp; // Message-posting bottleneck. - -@end - - -// ----------------------------------------------------------------------------- -// Methods delegates need to provide: -// * DEPRECATED * use UKFileWatcher delegate methods instead! -// ----------------------------------------------------------------------------- - -@interface NSObject (UKKQueueDelegate) - --(void) kqueue: (UKKQueue*)kq receivedNotification: (NSString*)nm forFile: (NSString*)fpath; - -@end diff --git a/ImportSources/UKKQueue.m b/ImportSources/UKKQueue.m deleted file mode 100644 index d7c3261b2b..0000000000 --- a/ImportSources/UKKQueue.m +++ /dev/null @@ -1,463 +0,0 @@ -/* ============================================================================= - FILE: UKKQueue.m - PROJECT: Filie - - COPYRIGHT: (c) 2003 M. Uli Kusterer, all rights reserved. - - AUTHORS: M. Uli Kusterer - UK - - LICENSES: GPL, Modified BSD - - REVISIONS: - 2004-12-28 UK Several threading fixes. - 2003-12-21 UK Created. - ========================================================================== */ - -// ----------------------------------------------------------------------------- -// Headers: -// ----------------------------------------------------------------------------- - -#import "UKKQueue.h" -#import "UKMainThreadProxy.h" -#import -#import - - -// ----------------------------------------------------------------------------- -// Macros: -// ----------------------------------------------------------------------------- - -// @synchronized isn't available prior to 10.3, so we use a typedef so -// this class is thread-safe on Panther but still compiles on older OSs. - -#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_3 -#define AT_SYNCHRONIZED(n) @synchronized(n) -#else -#define AT_SYNCHRONIZED(n) -#endif - - -// ----------------------------------------------------------------------------- -// Globals: -// ----------------------------------------------------------------------------- - -static UKKQueue * gUKKQueueSharedQueueSingleton = nil; - - -@implementation UKKQueue - -// ----------------------------------------------------------------------------- -// sharedQueue: -// Returns a singleton queue object. In many apps (especially those that -// subscribe to the notifications) there will only be one kqueue instance, -// and in that case you can use this. -// -// For all other cases, feel free to create additional instances to use -// independently. -// -// REVISIONS: -// 2005-07-02 UK Created. -// ----------------------------------------------------------------------------- - -+(UKKQueue*) sharedQueue -{ - AT_SYNCHRONIZED( self ) - { - if( !gUKKQueueSharedQueueSingleton ) - gUKKQueueSharedQueueSingleton = [[UKKQueue alloc] init]; // This is a singleton, and thus an intentional "leak". - } - - return gUKKQueueSharedQueueSingleton; -} - - -// ----------------------------------------------------------------------------- -// * CONSTRUCTOR: -// Creates a new KQueue and starts that thread we use for our -// notifications. -// -// REVISIONS: -// 2004-11-12 UK Doesn't pass self as parameter to watcherThread anymore, -// because detachNewThreadSelector retains target and args, -// which would cause us to never be released. -// 2004-03-13 UK Documented. -// ----------------------------------------------------------------------------- - --(id) init -{ - self = [super init]; - if( self ) - { - queueFD = kqueue(); - if( queueFD == -1 ) - { - [self release]; - return nil; - } - - watchedPaths = [[NSMutableArray alloc] init]; - watchedFDs = [[NSMutableArray alloc] init]; - - // Start new thread that fetches and processes our events: - keepThreadRunning = YES; - [NSThread detachNewThreadSelector:@selector(watcherThread:) toTarget:self withObject:nil]; - } - - return self; -} - - -// ----------------------------------------------------------------------------- -// release: -// Since NSThread retains its target, we need this method to terminate the -// thread when we reach a retain-count of two. The thread is terminated by -// setting keepThreadRunning to NO. -// -// REVISIONS: -// 2004-11-12 UK Created. -// ----------------------------------------------------------------------------- - --(oneway void) release -{ - AT_SYNCHRONIZED(self) - { - //NSLog(@"%@ (%d)", self, [self retainCount]); - if( [self retainCount] == 2 && keepThreadRunning ) - keepThreadRunning = NO; - } - - [super release]; -} - -// ----------------------------------------------------------------------------- -// * DESTRUCTOR: -// Releases the kqueue again. -// -// REVISIONS: -// 2004-03-13 UK Documented. -// ----------------------------------------------------------------------------- - --(void) dealloc -{ - delegate = nil; - [delegateProxy release]; - - if( keepThreadRunning ) - keepThreadRunning = NO; - - // Close all our file descriptors so the files can be deleted: - NSEnumerator* enny = [watchedFDs objectEnumerator]; - NSNumber* fdNum; - while( (fdNum = [enny nextObject]) ) - { - if( close( [fdNum intValue] ) == -1 ) - NSLog(@"dealloc: Couldn't close file descriptor (%d)", errno); - } - - [watchedPaths release]; - watchedPaths = nil; - [watchedFDs release]; - watchedFDs = nil; - - [super dealloc]; - - //NSLog(@"kqueue released."); -} - - -// ----------------------------------------------------------------------------- -// queueFD: -// Returns a Unix file descriptor for the KQueue this uses. The descriptor -// is owned by this object. Do not close it! -// -// REVISIONS: -// 2004-03-13 UK Documented. -// ----------------------------------------------------------------------------- - --(int) queueFD -{ - return queueFD; -} - - -// ----------------------------------------------------------------------------- -// addPathToQueue: -// Tell this queue to listen for all interesting notifications sent for -// the object at the specified path. If you want more control, use the -// addPathToQueue:notifyingAbout: variant instead. -// -// REVISIONS: -// 2004-03-13 UK Documented. -// ----------------------------------------------------------------------------- - --(void) addPathToQueue: (NSString*)path -{ - [self addPathToQueue: path notifyingAbout: UKKQueueNotifyAboutRename - | UKKQueueNotifyAboutWrite - | UKKQueueNotifyAboutDelete - | UKKQueueNotifyAboutAttributeChange]; -} - - --(void) addPath: (NSString*)path -{ - [self addPathToQueue: path notifyingAbout: UKKQueueNotifyAboutRename - | UKKQueueNotifyAboutWrite - | UKKQueueNotifyAboutDelete - | UKKQueueNotifyAboutAttributeChange]; -} - - -// ----------------------------------------------------------------------------- -// addPathToQueue:notfyingAbout: -// Tell this queue to listen for the specified notifications sent for -// the object at the specified path. -// -// REVISIONS: -// 2005-06-29 UK Files are now opened using O_EVTONLY instead of O_RDONLY -// which allows ejecting or deleting watched files/folders. -// Thanks to Phil Hargett for finding this flag in the docs. -// 2004-03-13 UK Documented. -// ----------------------------------------------------------------------------- - --(void) addPathToQueue: (NSString*)path notifyingAbout: (u_int)fflags -{ - struct timespec nullts = { 0, 0 }; - struct kevent ev; - int fd = open( [path fileSystemRepresentation], O_EVTONLY, 0 ); - - if( fd >= 0 ) - { - EV_SET( &ev, fd, EVFILT_VNODE, - EV_ADD | EV_ENABLE | EV_CLEAR, - fflags, 0, (void*)path ); - - AT_SYNCHRONIZED( self ) - { - [watchedPaths addObject: path]; - [watchedFDs addObject: [NSNumber numberWithInt: fd]]; - kevent( queueFD, &ev, 1, NULL, 0, &nullts ); - } - } -} - - --(void) removePath: (NSString*)path -{ - [self removePathFromQueue: path]; -} - - -// ----------------------------------------------------------------------------- -// removePathFromQueue: -// Stop listening for changes to the specified path. This removes all -// notifications. Use this to balance both addPathToQueue:notfyingAbout: -// as well as addPathToQueue:. -// -// REVISIONS: -// 2004-03-13 UK Documented. -// ----------------------------------------------------------------------------- - --(void) removePathFromQueue: (NSString*)path -{ - int index = 0; - int fd = -1; - - AT_SYNCHRONIZED( self ) - { - index = [watchedPaths indexOfObject: path]; - - if( index == NSNotFound ) - return; - - fd = [[watchedFDs objectAtIndex: index] intValue]; - - [watchedFDs removeObjectAtIndex: index]; - [watchedPaths removeObjectAtIndex: index]; - } - - if( close( fd ) == -1 ) - NSLog(@"removePathFromQueue: Couldn't close file descriptor (%d)", errno); -} - - -// ----------------------------------------------------------------------------- -// removeAllPathsFromQueue: -// Stop listening for changes to all paths. This removes all -// notifications. -// -// REVISIONS: -// 2004-12-28 UK Added as suggested by bbum. -// ----------------------------------------------------------------------------- - --(void) removeAllPathsFromQueue; -{ - AT_SYNCHRONIZED( self ) - { - NSEnumerator * fdEnumerator = [watchedFDs objectEnumerator]; - NSNumber * anFD; - - while( (anFD = [fdEnumerator nextObject]) != nil ) - close( [anFD intValue] ); - - [watchedFDs removeAllObjects]; - [watchedPaths removeAllObjects]; - } -} - - -// ----------------------------------------------------------------------------- -// watcherThread: -// This method is called by our NSThread to loop and poll for any file -// changes that our kqueue wants to tell us about. This sends separate -// notifications for the different kinds of changes that can happen. -// All messages are sent via the postNotification:forFile: main bottleneck. -// -// This also calls sharedWorkspace's noteFileSystemChanged. -// -// To terminate this method (and its thread), set keepThreadRunning to NO. -// -// REVISIONS: -// 2005-08-27 UK Changed to use keepThreadRunning instead of kqueueFD -// being -1 as termination criterion, and to close the -// queue in this thread so the main thread isn't blocked. -// 2004-11-12 UK Fixed docs to include termination criterion, added -// timeout to make sure the bugger gets disposed. -// 2004-03-13 UK Documented. -// ----------------------------------------------------------------------------- - --(void) watcherThread: (id)sender -{ - int n; - struct kevent ev; - struct timespec timeout = { 5, 0 }; // 5 seconds timeout. - int theFD = queueFD; // So we don't have to risk accessing iVars when the thread is terminated. - - while( keepThreadRunning ) - { - NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; - - NS_DURING - n = kevent( queueFD, NULL, 0, &ev, 1, &timeout ); - if( n > 0 ) - { - if( ev.filter == EVFILT_VNODE ) - { - if( ev.fflags ) - { - NSString* fpath = [[(NSString *)ev.udata retain] autorelease]; // In case one of the notified folks removes the path. - //NSLog(@"UKKQueue: Detected file change: %@", fpath); - [[NSWorkspace sharedWorkspace] noteFileSystemChanged: fpath]; - - if( (ev.fflags & NOTE_RENAME) == NOTE_RENAME ) - [self postNotification: UKKQueueFileRenamedNotification forFile: fpath]; - if( (ev.fflags & NOTE_WRITE) == NOTE_WRITE ) - [self postNotification: UKKQueueFileWrittenToNotification forFile: fpath]; - if( (ev.fflags & NOTE_DELETE) == NOTE_DELETE ) - [self postNotification: UKKQueueFileDeletedNotification forFile: fpath]; - if( (ev.fflags & NOTE_ATTRIB) == NOTE_ATTRIB ) - [self postNotification: UKKQueueFileAttributesChangedNotification forFile: fpath]; - if( (ev.fflags & NOTE_EXTEND) == NOTE_EXTEND ) - [self postNotification: UKKQueueFileSizeIncreasedNotification forFile: fpath]; - if( (ev.fflags & NOTE_LINK) == NOTE_LINK ) - [self postNotification: UKKQueueFileLinkCountChangedNotification forFile: fpath]; - if( (ev.fflags & NOTE_REVOKE) == NOTE_REVOKE ) - [self postNotification: UKKQueueFileAccessRevocationNotification forFile: fpath]; - } - } - } - NS_HANDLER - NSLog(@"Error in UKKQueue watcherThread: %@",localException); - NS_ENDHANDLER - - [pool release]; - } - - // Close our kqueue's file descriptor: - if( close( theFD ) == -1 ) - NSLog(@"release: Couldn't close main kqueue (%d)", errno); - - //NSLog(@"exiting kqueue watcher thread."); -} - - -// ----------------------------------------------------------------------------- -// postNotification:forFile: -// This is the main bottleneck for posting notifications. If you don't want -// the notifications to go through NSWorkspace, override this method and -// send them elsewhere. -// -// REVISIONS: -// 2004-02-27 UK Changed this to send new notification, and the old one -// only to objects that respond to it. The old category on -// NSObject could cause problems with the proxy itself. -// 2004-10-31 UK Helloween fun: Make this use a mainThreadProxy and -// allow sending the notification even if we have a -// delegate. -// 2004-03-13 UK Documented. -// ----------------------------------------------------------------------------- - --(void) postNotification: (NSString*)nm forFile: (NSString*)fp -{ - if( delegateProxy ) - { - #if UKKQUEUE_BACKWARDS_COMPATIBLE - if( ![delegateProxy respondsToSelector: @selector(watcher:receivedNotification:forPath:)] ) - [delegateProxy kqueue: self receivedNotification: nm forFile: fp]; - else - #endif - [delegateProxy watcher: self receivedNotification: nm forPath: fp]; - } - - if( !delegateProxy || alwaysNotify ) - [[[NSWorkspace sharedWorkspace] notificationCenter] postNotificationName: nm object: fp]; - //NSLog(@"Notification: %@ (%@)", nm, fp); -} - --(id) delegate -{ - return delegate; -} - --(void) setDelegate: (id)newDelegate -{ - id oldProxy = delegateProxy; - delegate = newDelegate; - delegateProxy = [delegate copyMainThreadProxy]; - [oldProxy release]; -} - -// ----------------------------------------------------------------------------- -// Flag to send a notification even if we have a delegate: -// ----------------------------------------------------------------------------- - --(BOOL) alwaysNotify -{ - return alwaysNotify; -} - - --(void) setAlwaysNotify: (BOOL)n -{ - alwaysNotify = n; -} - - -// ----------------------------------------------------------------------------- -// description: -// This method can be used to help in debugging. It provides the value -// used by NSLog & co. when you request to print this object using the -// %@ format specifier. -// -// REVISIONS: -// 2004-11-12 UK Created. -// ----------------------------------------------------------------------------- - --(NSString*) description -{ - return [NSString stringWithFormat: @"%@ { watchedPaths = %@, alwaysNotify = %@ }", NSStringFromClass([self class]), watchedPaths, (alwaysNotify? @"YES" : @"NO") ]; -} - -@end - - diff --git a/ImportSources/UKMainThreadProxy.h b/ImportSources/UKMainThreadProxy.h deleted file mode 100644 index 725d5bcd81..0000000000 --- a/ImportSources/UKMainThreadProxy.h +++ /dev/null @@ -1,55 +0,0 @@ -/* ============================================================================= - FILE: UKMainThreadProxy.h - PROJECT: UKMainThreadProxy - - PURPOSE: Send a message to object theObject to [theObject mainThreadProxy] - instead and the message will be received on the main thread by - theObject. - - COPYRIGHT: (c) 2004 M. Uli Kusterer, all rights reserved. - - AUTHORS: M. Uli Kusterer - UK - - LICENSES: GPL, Modified BSD - - REVISIONS: - 2004-10-14 UK Created. - ========================================================================== */ - -// ----------------------------------------------------------------------------- -// Headers: -// ----------------------------------------------------------------------------- - -#import - - -// ----------------------------------------------------------------------------- -// Categories: -// ----------------------------------------------------------------------------- - -@interface NSObject (UKMainThreadProxy) - --(id) mainThreadProxy; // You can't init or release this object. --(id) copyMainThreadProxy; // Gives you a retained version. - -@end - - -// ----------------------------------------------------------------------------- -// Classes: -// ----------------------------------------------------------------------------- - -/* - This object is created as a proxy in a second thread for an existing object. - All messages you send to this object will automatically be sent to the other - object on the main thread, except NSObject methods like retain/release etc. -*/ - -@interface UKMainThreadProxy : NSObject -{ - IBOutlet id target; -} - --(id) initWithTarget: (id)targ; - -@end diff --git a/ImportSources/UKMainThreadProxy.m b/ImportSources/UKMainThreadProxy.m deleted file mode 100644 index 32b6df40a1..0000000000 --- a/ImportSources/UKMainThreadProxy.m +++ /dev/null @@ -1,136 +0,0 @@ -/* ============================================================================= - FILE: UKMainThreadProxy.h - PROJECT: UKMainThreadProxy - - PURPOSE: Send a message to object theObject to [theObject mainThreadProxy] - instead and the message will be received on the main thread by - theObject. - - COPYRIGHT: (c) 2004 M. Uli Kusterer, all rights reserved. - - AUTHORS: M. Uli Kusterer - UK - - LICENSES: GPL, Modified BSD - - REVISIONS: - 2004-10-14 UK Created. - ========================================================================== */ - -// ----------------------------------------------------------------------------- -// Headers: -// ----------------------------------------------------------------------------- - -#import "UKMainThreadProxy.h" - - -@implementation UKMainThreadProxy - --(id) initWithTarget: (id)targ -{ - self = [super init]; - if( self ) - target = targ; - - return self; -} - --(id) performSelector: (SEL)itemAction -{ - BOOL does = [super respondsToSelector: itemAction]; - if( does ) - return [super performSelector: itemAction]; - - if( ![target respondsToSelector: itemAction] ) - [self doesNotRecognizeSelector: itemAction]; - - [target retain]; - [target performSelectorOnMainThread: itemAction withObject: nil waitUntilDone: YES]; - [target release]; - - return nil; -} - - --(id) performSelector: (SEL)itemAction withObject: (id)obj -{ - BOOL does = [super respondsToSelector: itemAction]; - if( does ) - return [super performSelector: itemAction withObject: obj]; - - if( ![target respondsToSelector: itemAction] ) - [self doesNotRecognizeSelector: itemAction]; - - [target retain]; - [obj retain]; - [target performSelectorOnMainThread: itemAction withObject: obj waitUntilDone: YES]; - [obj release]; - [target release]; - - return nil; -} - --(BOOL) respondsToSelector: (SEL)itemAction -{ - BOOL does = [super respondsToSelector: itemAction]; - - return( does || [target respondsToSelector: itemAction] ); -} - - -// ----------------------------------------------------------------------------- -// Forwarding unknown methods to the target: -// ----------------------------------------------------------------------------- - --(NSMethodSignature*) methodSignatureForSelector: (SEL)itemAction -{ - NSMethodSignature* sig = [super methodSignatureForSelector: itemAction]; - - if( sig ) - return sig; - - return [target methodSignatureForSelector: itemAction]; -} - --(void) forwardInvocation: (NSInvocation*)invocation -{ - SEL itemAction = [invocation selector]; - - if( [target respondsToSelector: itemAction] ) - { - [invocation retainArguments]; - [target retain]; - [invocation performSelectorOnMainThread: @selector(invokeWithTarget:) withObject: target waitUntilDone: YES]; - [target release]; - } - else - [self doesNotRecognizeSelector: itemAction]; -} - - --(id) mainThreadProxy // Just in case someone accidentally sends this message to a main thread proxy. -{ - return self; -} - --(id) copyMainThreadProxy // Just in case someone accidentally sends this message to a main thread proxy. -{ - return [self retain]; -} - -@end - - -@implementation NSObject (UKMainThreadProxy) - --(id) mainThreadProxy -{ - return [[[UKMainThreadProxy alloc] initWithTarget: self] autorelease]; -} - --(id) copyMainThreadProxy -{ - return [[UKMainThreadProxy alloc] initWithTarget: self]; -} - -@end - diff --git a/Info.plist b/Info.plist index bfc83d58ac..d278a30057 100644 --- a/Info.plist +++ b/Info.plist @@ -2,8 +2,12 @@ + CFBundleName + CotEditor + NSHumanReadableCopyright + © nakamuxu, 2005-2009 © usami-k, 2011, 2014 © 1024jp, 2014 CFBundleDevelopmentRegion - English + en CFBundleDocumentTypes @@ -30,6 +34,12 @@ php3 rb sh + py + markdown + md + xml + scala + conf CFBundleTypeIconFile docIcon.icns @@ -54,20 +64,24 @@ CFBundleExecutable CotEditor + CFBundleHelpBookFolder + CotEditor.help + CFBundleHelpBookName + com.aynimac.CotEditor.help CFBundleIconFile appIcon - CFBundleShortVersionString - 1.3.1 CFBundleIdentifier com.aynimac.CotEditor CFBundleInfoDictionaryVersion 6.0 CFBundlePackageType APPL + CFBundleShortVersionString + 1.4 CFBundleSignature cEd1 CFBundleVersion - 1.3.1 + 1.4 NSAppleScriptEnabled NSMainNibFile @@ -75,7 +89,7 @@ NSPrincipalClass CEApplication SUFeedURL - http://coteditor.sourceforge.jp/appcast.xml + http://coteditor.github.io/appcast.xml SUPublicDSAKeyFile dsa_pub.pem diff --git a/Japanese.lproj/CotEditorHelp/CotEditorHelp idx b/Japanese.lproj/CotEditorHelp/CotEditorHelp idx deleted file mode 100644 index bdaded64b4..0000000000 Binary files a/Japanese.lproj/CotEditorHelp/CotEditorHelp idx and /dev/null differ diff --git a/Japanese.lproj/CotEditorHelp/CotEditorHelp.helpindex b/Japanese.lproj/CotEditorHelp/CotEditorHelp.helpindex deleted file mode 100644 index b1af2397d0..0000000000 Binary files a/Japanese.lproj/CotEditorHelp/CotEditorHelp.helpindex and /dev/null differ diff --git a/Japanese.lproj/CotEditorHelp/CotEditorHelp.html b/Japanese.lproj/CotEditorHelp/CotEditorHelp.html deleted file mode 100644 index f64025983b..0000000000 --- a/Japanese.lproj/CotEditorHelp/CotEditorHelp.html +++ /dev/null @@ -1 +0,0 @@ - CotEditor wv


    CotEditor wv

    www.aynimac.com
    \ No newline at end of file diff --git a/Japanese.lproj/CotEditorHelp/gfx/icon128.png b/Japanese.lproj/CotEditorHelp/gfx/icon128.png deleted file mode 100644 index 266e951d18..0000000000 Binary files a/Japanese.lproj/CotEditorHelp/gfx/icon128.png and /dev/null differ diff --git a/Japanese.lproj/CotEditorHelp/gfx/icon16.png b/Japanese.lproj/CotEditorHelp/gfx/icon16.png deleted file mode 100644 index 99dbbca14e..0000000000 Binary files a/Japanese.lproj/CotEditorHelp/gfx/icon16.png and /dev/null differ diff --git a/Japanese.lproj/CotEditorHelp/gfx/icon32.png b/Japanese.lproj/CotEditorHelp/gfx/icon32.png deleted file mode 100644 index 555c115197..0000000000 Binary files a/Japanese.lproj/CotEditorHelp/gfx/icon32.png and /dev/null differ diff --git a/Japanese.lproj/CotEditorHelp/gfx/ov_color.png b/Japanese.lproj/CotEditorHelp/gfx/ov_color.png deleted file mode 100644 index f0afe2675c..0000000000 Binary files a/Japanese.lproj/CotEditorHelp/gfx/ov_color.png and /dev/null differ diff --git a/Japanese.lproj/CotEditorHelp/gfx/ov_complete.png b/Japanese.lproj/CotEditorHelp/gfx/ov_complete.png deleted file mode 100644 index 141eff81e0..0000000000 Binary files a/Japanese.lproj/CotEditorHelp/gfx/ov_complete.png and /dev/null differ diff --git a/Japanese.lproj/CotEditorHelp/gfx/ov_find.png b/Japanese.lproj/CotEditorHelp/gfx/ov_find.png deleted file mode 100644 index 6d93e02d64..0000000000 Binary files a/Japanese.lproj/CotEditorHelp/gfx/ov_find.png and /dev/null differ diff --git a/Japanese.lproj/CotEditorHelp/gfx/ov_outline.png b/Japanese.lproj/CotEditorHelp/gfx/ov_outline.png deleted file mode 100644 index 6caa8c3bfe..0000000000 Binary files a/Japanese.lproj/CotEditorHelp/gfx/ov_outline.png and /dev/null differ diff --git a/Japanese.lproj/CotEditorHelp/gfx/ov_scriptmenu.png b/Japanese.lproj/CotEditorHelp/gfx/ov_scriptmenu.png deleted file mode 100644 index bdd89836ff..0000000000 Binary files a/Japanese.lproj/CotEditorHelp/gfx/ov_scriptmenu.png and /dev/null differ diff --git a/Japanese.lproj/CotEditorHelp/gfx/split_editor.png b/Japanese.lproj/CotEditorHelp/gfx/split_editor.png deleted file mode 100644 index 3fb4ba284e..0000000000 Binary files a/Japanese.lproj/CotEditorHelp/gfx/split_editor.png and /dev/null differ diff --git a/Japanese.lproj/CotEditorHelp/gfx/wind_encoding.png b/Japanese.lproj/CotEditorHelp/gfx/wind_encoding.png deleted file mode 100644 index d1b12ac8b3..0000000000 Binary files a/Japanese.lproj/CotEditorHelp/gfx/wind_encoding.png and /dev/null differ diff --git a/Japanese.lproj/CotEditorHelp/pgs/about_applescript.html b/Japanese.lproj/CotEditorHelp/pgs/about_applescript.html deleted file mode 100644 index fda3785545..0000000000 --- a/Japanese.lproj/CotEditorHelp/pgs/about_applescript.html +++ /dev/null @@ -1 +0,0 @@ - AppleScript Ƃ̘Ag

    AppleScript Ƃ̘Ag

    CotEditor AppleScript T|[gĂ܂BCotEditor ŃT|[gĂNXER}hɂ‚ẮApQƂĂBpQƂɂ́Â悤ɂ܂B

    1. wvj[́upJ...vI܂B
    • NXER}h̏ڍׂᕶ́AYt́u/Script/AppleScript/AboutAppleScript-jp.rtfvQƂĂB

    ֘A

    \ No newline at end of file diff --git a/Japanese.lproj/CotEditorHelp/pgs/about_autodetect_charset.html b/Japanese.lproj/CotEditorHelp/pgs/about_autodetect_charset.html deleted file mode 100644 index 244932faf1..0000000000 --- a/Japanese.lproj/CotEditorHelp/pgs/about_autodetect_charset.html +++ /dev/null @@ -1 +0,0 @@ - ucharset=vuencoding=vu@charsetv^Oɂ鎩F

    ucharset=vuencoding=vu@charsetv^Oɂ鎩F

    ‹ݒutH[}bgv́uGR[fBOw^OQƂvLŁAGR[fBO̎FLȏꍇAޒ́ucharset=vuencoding=vu@charsetv^Oǂݎ܂BLqɖȂ΁Ã^ŐLqD悳܂B

    ̋Lq̓Rg̒łĂLłAn̕ƂďĂĂǂݎ܂BAނ̕GR[fBOłȂ̂ucharset=vȂǂ̃GR[fBOw^OƂƂɋLqKvꍇɂ́A̋LqOɎۂ̕GR[fBOނA‹ݒutH[}bgv́uGR[fBOw^OQƂṽ`FbNOĂB

    • ucharsetvuencodingv̒ɃXy[XȂǁu=vȊO̕Ă͂܂B
    • ucharset=vuencoding=v̌́Au"vň͂ĂȂĂF܂B
    • ̋Lq鎞́Aԍŏ̂̂ǂݎ܂B
    • ucharset="Shift_JIS"v̏ꍇ́Au{ (Shift JIS)vƁu{ (Shift JIS X0213)v̂AD悳Ăij[ŏɂjƂĔF܂B
      => GR[h̔F𒲐

    ֘A

    \ No newline at end of file diff --git a/Japanese.lproj/CotEditorHelp/pgs/about_coloring_priority.html b/Japanese.lproj/CotEditorHelp/pgs/about_coloring_priority.html deleted file mode 100644 index 1b79f8b472..0000000000 --- a/Japanese.lproj/CotEditorHelp/pgs/about_coloring_priority.html +++ /dev/null @@ -1 +0,0 @@ - V^bNXJ[O̓Kp

    V^bNXJ[O̓Kp

    • L[[hR}hll񁄕Rg ̏ŐFt܂B
    • A̍ڂŕ̒`Ƀ}b`ꍇ́ÃJ[Oŏh肳܂B
    \ No newline at end of file diff --git a/Japanese.lproj/CotEditorHelp/pgs/about_complist_settings.html b/Japanese.lproj/CotEditorHelp/pgs/about_complist_settings.html deleted file mode 100644 index a8c7a632fe..0000000000 --- a/Japanese.lproj/CotEditorHelp/pgs/about_complist_settings.html +++ /dev/null @@ -1 +0,0 @@ - ͕⊮Xgݒ

    ͕⊮Xgݒ

    V^bNXX^CƂɁA͕⊮Xgݒ肷邱Ƃł܂BV^bNXX^CIAҏW{^iV^bNXX^Cݒ肷QƁjAv_Ej[u͕⊮XgvI܂B

    ͕⊮Őݒ肵񂪓͕⊮ƂĎgp܂B̍ڂ͕K{łB

    ̃Xgݒ肳ĂȂꍇA͕⊮Xg̓J[Oݒ肩玩܂B

    ֘A

    \ No newline at end of file diff --git a/Japanese.lproj/CotEditorHelp/pgs/about_filedrop.html b/Japanese.lproj/CotEditorHelp/pgs/about_filedrop.html deleted file mode 100644 index a637866634..0000000000 --- a/Japanese.lproj/CotEditorHelp/pgs/about_filedrop.html +++ /dev/null @@ -1 +0,0 @@ - t@Chbv̒^

    t@Chbv̒^

    t@Chbv́utH[}bgvŎgpł^ƁAgp܂B

    ^ul
    <<<ABSOLUTE-PATH>>>hbvt@C̐΃pX
    <<<RELATIVE-PATH>>>hbvt@Chbvt@Cւ̑΃pX
    <<<FILENAME>>>hbvt@ĆAgq܂ރt@C
    <<<FILENAME-NOSUFFIX>>>hbvt@C̖Ogq폜
    <<<FILEEXTENSION>>>hbvt@C̊gq
    <<<FILEEXTENSION-LOWER>>>hbvt@C̊gqij
    <<<FILEEXTENSION-UPPER>>>hbvt@C̊gqi啶j
    <<<DIRECTORY>>>hbvt@ĈfBNg
    <<<IMAGEWIDTH>>>摜̕ihbvt@C摜t@ĈƂ̂ݗLj
    <<<IMAGEHEIGHT>>>摜̍ihbvt@C摜t@ĈƂ̂ݗLj

    LɎgp܂B

    1) hoge.html hbvꍇF
    tH[}bg<a href="<<<RELATIVE-PATH>>>"></a>
    }<a href="hoge.html"></a>
    2) hoge.jpg hbvꍇF
    tH[}bg<img src="<<<FILENAME>>>" width="<<<IMAGEWIDTH>>>" height="<<<IMAGEHEIGHT>>>" />
    }<img src="hoge.jpg" width="160" height="80" />

    ֘A

    \ No newline at end of file diff --git a/Japanese.lproj/CotEditorHelp/pgs/about_move_menu.html b/Japanese.lproj/CotEditorHelp/pgs/about_move_menu.html deleted file mode 100644 index b69c6e29be..0000000000 --- a/Japanese.lproj/CotEditorHelp/pgs/about_move_menu.html +++ /dev/null @@ -1 +0,0 @@ - uړ...vj[

    uړ...vj[

    uvj[́uړ...viCmd + LjňړplJAړ͈͎̔w肪”\łB

    ړplł́usvuvWI{^IAIl͂āuIv{^NbN܂B

    • usvWI{^Iāu3v
      => 3sڑŜI
    • usvWI{^Iāu3:2vƓ
      => iu3sڂ2sIvƂӖɂȂj3E4sڂI
    • usvWI{^Iāu3:-1v
      => iu3sڂAI肩1sڂcđIvƂӖɂȂjS10sȂ΁A3`9sڂ܂őI

    uvWI{^IĂ鎞AlɈӖtAIړ܂B

    ܂Aړpl\ Cmd + L ƁAusvuvIgOɐ؂ւ邱Ƃł܂B

    \ No newline at end of file diff --git a/Japanese.lproj/CotEditorHelp/pgs/about_outlinemenu_settings.html b/Japanese.lproj/CotEditorHelp/pgs/about_outlinemenu_settings.html deleted file mode 100644 index 635f8928c3..0000000000 --- a/Japanese.lproj/CotEditorHelp/pgs/about_outlinemenu_settings.html +++ /dev/null @@ -1 +0,0 @@ - AEgCj[ݒ

    AEgCj[ݒ

    AEgCj[ݒ̊eڂ̓e͎̒ʂłB

    K\Őݒ肵K\Ƀ}b`镔AEgCj[ƂăXgAbv܂B̍ڂ͕K{łB
    IC`FbNȈꍇA啶ʂ܂iIgnore Case ̗jBႦ΁AJnuabcvƂāuICvɃ`FbNƁAuABCvuabcvuAbcvȂǂɃ}b`܂B
    j[
    ^Cg
    p^[
    j[^Cg̏ݒ肵܂BuK\vŃ}b`Ƃ̃p^[烁j[^Cg肳܂B

    uj[^Cgp^[vŎg郁^͉L̒ʂłB

    iLqȂjuK\vŃ}b`ׂĂ̕
    $0, $&uK\vŃ}b`ׂĂ̕
    $1 ` $9uK\vŃ}b`̂Aŏ`9ԖڂɃ}b`
    $LNuK\vŃ}b`̍ŏ̕sԍ
    -j[̋؂
    iu-v̂݋LA̕ꍇɂ͖ƂȂ܂j
    • u$0vȂǂ̃^̂܂܃j[ɕ\ɂ́Au$v̒OɁu\ipobNXbVjvuĂBj[ڂł́u\v͕\܂B

    ֘A

    \ No newline at end of file diff --git a/Japanese.lproj/CotEditorHelp/pgs/about_script_name.html b/Japanese.lproj/CotEditorHelp/pgs/about_script_name.html deleted file mode 100644 index 54993488d6..0000000000 --- a/Japanese.lproj/CotEditorHelp/pgs/about_script_name.html +++ /dev/null @@ -1 +0,0 @@ - CotEditor XNvg̃t@CK

    CotEditor XNvg̃t@CK

    ̃y[Wł CotEditror XNvg̃t@CK܂B

    \
    t@C̐擪Ɂwuv+u)vx‚ƁAɕׂ邱Ƃł܂B
    wuv+u)vx́̕Aj[ڂł͕\܂B
    1.
    t@C01)Open File.scpt
    j[^CgOpen File
    L[{[hV[gJbg
    t@C̊gq̒OɁwu.v+ufBt@CL[v+uV[gJbgL[vxljƁAL[{[hV[gJbg蓖Ă邱Ƃł܂B
    2.
    t@CInsert String.@e.scpt
    j[^CgInsert String (Command + E)
    3.
    t@C03)Insert Date.@~Y.scpt
    j[^CgInsert Date (Command + Option + Shift + Y)
    fBt@CL[̋Lq@
    \LL[
    ^CtrliRg[j
    $ShiftiVtgj
    ~OptioniIvVj
    @CommandiR}hj
    • V[gJbgL[ifBt@CL[łȂL[A 2ł́uevj́Aʏ포ŋLq܂B啶̏ꍇ́uVtgL[ɉvƂĔF܂B
    • V[gJbgL[́AfBt@CL[̂ƂɏȂ΂Ȃ܂B܂A1wł܂B܂At@CɎgȂL[iuF1vuDeletevȂǁj͊蓖Ă܂B
    • w肵L[oChłɑ̋@\Ɋ蓖ĂĂꍇAXNvg̃L[oCh͖܂B
    Zp[^
    u-vƂÕtH_́Aj[̃Zp[^ƂĔF܂BɃtH_̐擪Ɂwuv+u)vx‚邱ƂŁAj[ڂ̊Ԃɑ}܂B

    ֘A

    \ No newline at end of file diff --git a/Japanese.lproj/CotEditorHelp/pgs/about_script_spec.html b/Japanese.lproj/CotEditorHelp/pgs/about_script_spec.html deleted file mode 100644 index b157d5255a..0000000000 --- a/Japanese.lproj/CotEditorHelp/pgs/about_script_spec.html +++ /dev/null @@ -1 +0,0 @@ - UNIX XNvgƂ̘Ag

    UNIX XNvgƂ̘Ag

    ̃y[Wł̓XNvgj[s UNIX XNvg CotEditor ŕҏW̏ނ̏eLXgnAXNvg̎sʂނɔf@܂B

    • XNvgj[ɓo^łXNvg̊gq .sh .pl .php .rb .py łi͊֌W܂jB
    • XNvgɂ͎sȂ΂Ȃ܂BXNvgɎst^ɂ́A^[~igp邩A܂́uExtrasvtH_ɓ́uchmod-755.appvgB
    • XNvg̍sR[hisR[hj LF łȂ΂Ȃ܂B

    XNvgɃeLXgn

    XNvg CotEditor f[^nɂ́AXNvg̖`ɃRguAŒ蕶u%%%{CotEditorXInput=xxxx}%%%v𖄂ߍ݂܂BuxxxxvŁA󂯓nf[^w肵܂B

    SelectionݑIĂeLXg
    AllTextނׂ̂ẴeLXg
    NonenȂiftHgj
    • RgLqȂꍇAuNonevƂȂ܂B
    • CotEditor ̃eLXg͕W͂ɓn܂B
    • XNvgɓneLXg̕GR[fBO UTF-8 łB

    XNvg̏o͂󂯎

    CotEditor ŃXNvg̏o͂󂯎ɂ́AXNvg̖`ɃRguAŒ蕶u%%%{CotEditorXOutput=xxxx}%%%v𖄂ߍ݂܂BuxxxxvŁA󂯎̏w肵܂B

    ReplaceSelectionݑIĂeLXgo͓eŒu܂B
    ReplaceAllTextނׂ̂ẴeLXgo͓eŒu܂B
    InsertAfterSelectionI͈͂̒ɏo͓e}܂B
    AppendToAllTextނ̖ɏo͓e}܂B
    Pasteboard putsNbv{[hɏo͓ei[܂B
    DiscardȂiftHgj
    • RgLqȂꍇAuDiscardvƂȂ܂B
    • CotEditor ɓneLXǵAWo͂ƂĂBB
    • CotEditor ɕԂeLXg̕GR[fBO UTF-8 łȂ΂Ȃ܂B

    ֘A

    \ No newline at end of file diff --git a/Japanese.lproj/CotEditorHelp/pgs/about_shiftjis.html b/Japanese.lproj/CotEditorHelp/pgs/about_shiftjis.html deleted file mode 100644 index 20f542c563..0000000000 --- a/Japanese.lproj/CotEditorHelp/pgs/about_shiftjis.html +++ /dev/null @@ -1 +0,0 @@ - Shift JIS ñGR[fBÖႢ

    Shift JIS ñGR[fBÖႢ

    4 ނ̓{ Shift JIS nGR[fBOɂ́AL̂悤ȈႢ܂B

    (Shift JIS)ł{I Shift JISBA񐅏T|[g܂B
    (Mac OS)Mac Ǝ̋@ˑȂǂ̂ Mac OS 9 ȑOŎgĂ܂B
    (Windows, DOS)Windows Ǝ̋@ˑȂǂ̂łB
    (Shift JIS X0213)R[hKi JIS X0213i ` lj܂B

    K؂ȃGR[fBO͏ꍇɂĈقȂ܂Aʂɂ́u{iShift JISjvłBAꕔ̎̕舵ɂ‚ĉL̂悤ȈႢ܂̂ŁA̕gꍇɂ͒ӂĂB

    p~}[N (¥)pobN
    XbV (\)
    p`_ (~)
    (Shift JIS)gpSpobNXbVɒugps
    (Mac OS)gpgpgp
    (Windows, DOS)pobNXbVɒugpgp
    (Shift JIS X0213)gpSpobNXbVɒuSp`_ɒu
    • ̕܂܂ĂȂǂu݊\vŊmFł܂B

    ֘A

    \ No newline at end of file diff --git a/Japanese.lproj/CotEditorHelp/pgs/about_syntaxstyle.html b/Japanese.lproj/CotEditorHelp/pgs/about_syntaxstyle.html deleted file mode 100644 index 90593df309..0000000000 --- a/Japanese.lproj/CotEditorHelp/pgs/about_syntaxstyle.html +++ /dev/null @@ -1 +0,0 @@ - V^bNXX^C̐ݒ荀

    V^bNXX^C̐ݒ荀

    V^bNXX^C̐ݒ荀ڂ̓e͎̒ʂłB

    Jnp^[̊JnłB̍ڂ͕K{łB
    Ip^[̏IłB̍ڂ͋ł\܂B
    IC`FbNȈꍇA啶ʂ܂iIgnore Case ̗jBႦ΁AJnuabcvƂāuICvɃ`FbNƁAuABCvuabcvuAbcvȂǂɃ}b`܂B
    RE`FbNȈꍇAJn񂨂яIɓ͂Ă镶𐳋K\ƂĈ܂iRegular Expression ̗jB
    • Jnɉ͂AÎݓ͂Ă`͖܂B
    • uREv`FbNĂ炸AI񂪓͂ĂȂ`́A͕⊮ƂĂg܂B
    • JnEIɂ͐K\g܂AuƂK\v܂́uƂʏ̕vłȂ΂Ȃ܂B

    ֘A

    \ No newline at end of file diff --git a/Japanese.lproj/CotEditorHelp/pgs/about_syntaxtargets.html b/Japanese.lproj/CotEditorHelp/pgs/about_syntaxtargets.html deleted file mode 100644 index 9cc06cb0c0..0000000000 --- a/Japanese.lproj/CotEditorHelp/pgs/about_syntaxtargets.html +++ /dev/null @@ -1 +0,0 @@ - V^bNXX^C̐ݒӏ

    V^bNXX^C̐ݒӏ

    V^bNXX^Cݒłӏ͎̒ʂłB

    L[[hvO~O̗\Ȃfor, while, if Ȃ
    R}hvO̊֐R}hexit, break, do Ȃ
    lvO~ǑŒlNull, True, False Ȃ
    ll^̃f[^Int i = 0;
    ^̃f[^String s = "Hello World"
    ^̃f[^Char c = 'a'
    RgvÕRg/* ` */, # `

    ֘A

    \ No newline at end of file diff --git a/Japanese.lproj/CotEditorHelp/pgs/faq_about_yen_backslash.html b/Japanese.lproj/CotEditorHelp/pgs/faq_about_yen_backslash.html deleted file mode 100644 index 464a656b8e..0000000000 --- a/Japanese.lproj/CotEditorHelp/pgs/faq_about_yen_backslash.html +++ /dev/null @@ -1 +0,0 @@ - u~}[NvuobNXXbVvɕς

    u~}[NvuobNXXbVvɕς

    L̕GR[fBOgpꍇAp~}[Ni¥j͓͒ɂ́u¥vƕ\܂AGR[fBOςt@CۑĊJ́AobNXbVu\vƂĕ\܂B

    { (Windows, DOS) ArA (Mac OS) (ISO Latin 2)
    { (EUC)wuC (Mac OS) (ISO Latin 3)
    ɑ̎ (EUC)MV (ISO 8859-7) (ISO Latin 4)
    ȑ̎ (EUC)L (Mac OS)Latin-US (DOS)
    ؍ (EUC)L (ISO 8859-5) (Windows Latin 2)
    ؍ (Windows, DOS) (Mac OS)
    \ No newline at end of file diff --git a/Japanese.lproj/CotEditorHelp/pgs/faq_cannot_display.html b/Japanese.lproj/CotEditorHelp/pgs/faq_cannot_display.html deleted file mode 100644 index fb61f35594..0000000000 --- a/Japanese.lproj/CotEditorHelp/pgs/faq_cannot_display.html +++ /dev/null @@ -1 +0,0 @@ -

    ́At@C̕GR[fBO CotEditor FłȂꍇɔ܂B̎菇ŕGR[fBOύXĂB

    1. utH[}bgvj[́uGR[fBOvJAK؂ȕGR[fBOI܂B
    2. uĉ߁vNbN܂B

    _CAÕ{^̓́A̒ʂłB

    ĉ
    w肳ꂽGR[fBOŃt@CJ܂B
    ϊ
    ݂̃eLXgw肳ꂽGR[fBOɕϊ܂B
    LZ
    ܂Bނɂ͉ύX͉܂B

    ֘A

    \ No newline at end of file diff --git a/Japanese.lproj/CotEditorHelp/pgs/faq_cannot_save.html b/Japanese.lproj/CotEditorHelp/pgs/faq_cannot_save.html deleted file mode 100644 index c3a47c5b46..0000000000 --- a/Japanese.lproj/CotEditorHelp/pgs/faq_cannot_save.html +++ /dev/null @@ -1 +0,0 @@ - t@CۑłȂ

    t@CۑłȂ

    ̂悤ȏꍇɂ́At@Cۑł܂Bʖŕۑ邩AFinder ^[~igpăt@C̃ANZXύXĂB

    • t@ĆuI[i[vƃt@CJ[UقȂĂ
    • ۑ悤Ƃt@CɃbNĂ
    \ No newline at end of file diff --git a/Japanese.lproj/CotEditorHelp/pgs/faq_crash.html b/Japanese.lproj/CotEditorHelp/pgs/faq_crash.html deleted file mode 100644 index c393b4a7bf..0000000000 --- a/Japanese.lproj/CotEditorHelp/pgs/faq_crash.html +++ /dev/null @@ -1 +0,0 @@ - CotEditor NbV

    CotEditor NbV

    ATOK gpĂꍇACotEditor ɃftHgŐݒ肳Ă Shift + Return L[oCh ATOK ̃L[ݒƂԂ‚ANbV邱Ƃ܂B
    ATOK ܂ CotEditor ꂩ̐ݒύXĂB
    => CotEditor ̃L[oCh̕ύX@


    CotEditor pɂɓ̏󋵂ŃNbVꍇɂ́ANbVO[ʼnL֑ĂB

    ȂANbVO𑗂ۂɂ́AL̏킹ĂAB

    • NbVOɍsĂ
    • OSACotEditor ̃o[WA@Ȃǂ̊‹

    NbVÓANbVɕ\_CAOŁu|[g𑗐M...v܂́u|[g...vNbNƕ\܂iNbVOAbvɑĂӖ͂܂̂ŁAORs[EChE‚č\܂jB

    \ No newline at end of file diff --git a/Japanese.lproj/CotEditorHelp/pgs/faq_keybinding.html b/Japanese.lproj/CotEditorHelp/pgs/faq_keybinding.html deleted file mode 100644 index 57af66cf81..0000000000 --- a/Japanese.lproj/CotEditorHelp/pgs/faq_keybinding.html +++ /dev/null @@ -1 +0,0 @@ - L[{[hV[gJbgύXA\Ȃ

    L[{[hV[gJbgύXA\Ȃ

    L[{[hV[gJbgύXɗ\ȂꍇÂ悤Ȍl܂B

    • ݒ肵L[{[hV[gJbgłɂق̋@\Ɋ蓖ĂÔ\܂B
    • W̃L[oCh CotEditor ́uljeLXgL[oChvɓ̃L[oChݒ肵ꍇACotEditor ́uljeLXgL[oChvD悳܂B

    ֘A

    \ No newline at end of file diff --git a/Japanese.lproj/CotEditorHelp/pgs/faq_known_probrems.html b/Japanese.lproj/CotEditorHelp/pgs/faq_known_probrems.html deleted file mode 100644 index 91e3a04be8..0000000000 --- a/Japanese.lproj/CotEditorHelp/pgs/faq_known_probrems.html +++ /dev/null @@ -1 +0,0 @@ -

    ĹÂ݂ƂĂȂłB͏̃[XʼnƍlĂ܂A܂h͗Ă܂B

    • c[o[́usR[hvACẽj[|bvAbvAIڂɃ`FbN}[N\Ȃ
    • sԂu0v傫ĂƁA{͎IM̕ϊA_[Cʏɗĕ\
    • utHgłsŒ肷vIɂĂƁAI͈͂̍sԂɔ\iwiFČjƂ
    • ۑ authopen ̔F؉ʂŃLZƁAR\[ɃG[O\iuauthopenvƂ́ACotEditor Nwp[AvP[V̖OłjB
    • 10.3.9 ‹ňvr[ƁAR\[ɁuCan't create CMap Adobe-Identity-UCS2.vƃG[\
    • 10.3.9 ‹ł͕̓⊮1͂ăXg\iWł F5j Enter L[ŊmłȂ
    • 10.3.9 ‹ł͕̓⊮ ESC L[œ͕⊮⃊Xg\łȂ
    \ No newline at end of file diff --git a/Japanese.lproj/CotEditorHelp/pgs/faq_not_find_solution.html b/Japanese.lproj/CotEditorHelp/pgs/faq_not_find_solution.html deleted file mode 100644 index f7e2280ea0..0000000000 --- a/Japanese.lproj/CotEditorHelp/pgs/faq_not_find_solution.html +++ /dev/null @@ -1 +0,0 @@ - @‚Ȃꍇ

    @‚Ȃꍇ

    肪Ȃꍇ́A҂܂ł₢킹BA₷OɈȉ̂ƂKsĂF

    • OSACotEditor ̃o[WA@Ȃǂ̊‹𖾋LB
    • gu̓e̓IɁA•₷B
    • łɎŎΏ@ΏB

    ͉̑L̒ʂłB

    \ No newline at end of file diff --git a/Japanese.lproj/CotEditorHelp/pgs/faq_re_coloring.html b/Japanese.lproj/CotEditorHelp/pgs/faq_re_coloring.html deleted file mode 100644 index 0da04db168..0000000000 --- a/Japanese.lproj/CotEditorHelp/pgs/faq_re_coloring.html +++ /dev/null @@ -1 +0,0 @@ - J[OȂ

    J[OȂ

    J[OȂꍇ́A̎菇Ă݂ĂB

    1. utH[}bgvj[́uJ[OvJAuăJ[OvI܂B

    Ȃꍇ́Â悤Ȍl܂B

    • eLXg̋LqɕsivȌꍇA@ԈĂȂǁj
    • V^bNXX^Cɕs

    ֘A

    \ No newline at end of file diff --git a/Japanese.lproj/CotEditorHelp/pgs/howto_complete.html b/Japanese.lproj/CotEditorHelp/pgs/howto_complete.html deleted file mode 100644 index 28569bcf0c..0000000000 --- a/Japanese.lproj/CotEditorHelp/pgs/howto_complete.html +++ /dev/null @@ -1 +0,0 @@ - ͕⊮s

    ͕⊮s

    ͕⊮@\gpăeLXg͂ɂ͎̂悤ɂ܂B

    1. eLXg̍ŏ̐͂܂B
    2. F5 ܂ ESC L[܂B
    3. ̒͂I܂B
    • ͕⊮@\͉p͎ɂ̂ݓ܂B{͎ɂ͎gpł܂B
    • ͌EChE‚ɂ ESC ܂B
    • ‹ݒ́u͕⊮⃊XgvŁA\͕⊮J[OX^CŒ`ꂽ݂̂Ƃ邩AʓIȒP܂߂邩Ił܂B

    ֘A

    \ No newline at end of file diff --git a/Japanese.lproj/CotEditorHelp/pgs/howto_customize_complete.html b/Japanese.lproj/CotEditorHelp/pgs/howto_customize_complete.html deleted file mode 100644 index 582b05477f..0000000000 --- a/Japanese.lproj/CotEditorHelp/pgs/howto_customize_complete.html +++ /dev/null @@ -1 +0,0 @@ - ͕⊮⃊XgJX^}CY

    ͕⊮⃊XgJX^}CY

    ͕⊮ɕ\PJ[OX^CŒ`ꂽ݂̂ɂ邩AʓIȒP܂߂邩Ił܂B

    1. CotEditor j[́u‹ݒ...vJ܂B
    2. uʁv^uNbN܂B
    3. u͕⊮⃊Xgv̒\͈͂I܂B

    ֘A

    \ No newline at end of file diff --git a/Japanese.lproj/CotEditorHelp/pgs/howto_customize_encoding_order.html b/Japanese.lproj/CotEditorHelp/pgs/howto_customize_encoding_order.html deleted file mode 100644 index 7c77dca378..0000000000 --- a/Japanese.lproj/CotEditorHelp/pgs/howto_customize_encoding_order.html +++ /dev/null @@ -1 +0,0 @@ - GR[h̔F𒲐

    GR[h̔F𒲐

    GR[fBO̎F𒲐ɂ͎̂悤ɂ܂B

    1. CotEditor j[́u‹ݒ...vJ܂B
    2. utH[}bgv^uNbN܂B
    3. uGR[fBOv́uXgҏW...v{^NbN܂B
    4. GR[fBO̗D揇ʂw肵܂B悭gGR[fBOɈړǍ UTF-16 u܂B
      iUTF-16 ł͂قƂǂ̕񂪉߂邽߁Auĝ̂̈ԉvɔzu܂j

    GR[fBO̕я͕ύXł܂A폜͂ł܂BgpȂGR[fBO͉ɈړĂB

    ֘A

    \ No newline at end of file diff --git a/Japanese.lproj/CotEditorHelp/pgs/howto_customize_font_color.html b/Japanese.lproj/CotEditorHelp/pgs/howto_customize_font_color.html deleted file mode 100644 index fc969d830d..0000000000 --- a/Japanese.lproj/CotEditorHelp/pgs/howto_customize_font_color.html +++ /dev/null @@ -1 +0,0 @@ - tHgEJ[JX^}CY

    tHgEJ[JX^}CY

    ރEChẼtHgEJ[JX^}CYł܂B

    1. utH[}bgvj[utHgv́utHgpl\...vIт܂B
    2. tHgJ[D݂ɐݒ肵܂B
    • ̐ݒ́Ã݂EChEɂ̂ݓKp܂BׂẴEChEɓKpɂ́A‹ݒ́u\vŐݒ肵܂B
    • V^bNXJ[OɂJ[̐ݒ́A‹ݒ́uV^bNXvŐݒ肵܂B

    ֘A

    \ No newline at end of file diff --git a/Japanese.lproj/CotEditorHelp/pgs/howto_customize_keybinding.html b/Japanese.lproj/CotEditorHelp/pgs/howto_customize_keybinding.html deleted file mode 100644 index 7ef79dbf77..0000000000 --- a/Japanese.lproj/CotEditorHelp/pgs/howto_customize_keybinding.html +++ /dev/null @@ -1 +0,0 @@ - L[oChJX^}CY

    L[oChJX^}CY

    CotEditor ̃L[{[hV[gJbgύXł܂B܂AeLXgҏWɔCӂ͂̕L[oChlj^ύXłAftHgłShift + Return Łu<br />vƍsR[h̓͂ݒ肳Ă܂B
    ύXɂ́Â悤ɂ܂B

    1. CotEditor j[́u‹ݒ...vJ܂B
    2. uL[oChv^uNbN܂B
    3. uҏW...v{^NbNAD݂̃L[oChݒ肵܂B
    • uj[L[oChv̓R}hL[܂܂ĂKv܂B
    • uljeLXgL[oChv̓R}hL[܂܂ĂĂ͂܂B
    • ɎgĂL[oChiXNvgj[̃V[gJbgoCfBOXgɕ\Ȃj[ڂ܂݂܂jƏd̂́Aݒł܂B

    ֘A

    \ No newline at end of file diff --git a/Japanese.lproj/CotEditorHelp/pgs/howto_customize_scriptmenu.html b/Japanese.lproj/CotEditorHelp/pgs/howto_customize_scriptmenu.html deleted file mode 100644 index d4a1b369e4..0000000000 --- a/Japanese.lproj/CotEditorHelp/pgs/howto_customize_scriptmenu.html +++ /dev/null @@ -1 +0,0 @@ - XNvgj[JX^}CY

    XNvgj[JX^}CY

    XNvgj[ɍڂljA폜ɂ͎̂悤ɂ܂B

    1. Finder NÃtH_J܂F
      ~/Cu/Application Support/CotEditor/ScriptMenu
    2. ̃tH_ɍ쐬XNvguA܂svȃXNvg폜܂B
    3. CotEditor ̃XNvgj[uXNvgj[XV...vI܂B
    • CotEditor ͎̊gqƒt@CXNvgt@CƂĔF܂F.applescript .scpt .sh .pl .php .rb .py
    • XNvg̃t@Cɂ̕܂߂邱ƂŁA\ύXL[{[hV[gJbgݒł܂B
      ڂ́uCotEditor XNvg̃t@CKvQƂĂB
    • ScriptMenu tH_ɂ̓tH_uƂł܂BtH_̓Tuj[Ƃĕ\܂B
    • ScriptMenu tH_̕ύX͋NɎIɔf܂BCotEditor NĂȂꍇɂ́uXNvgj[XV...v͎sKv͂܂B

    ֘A

    \ No newline at end of file diff --git a/Japanese.lproj/CotEditorHelp/pgs/howto_customize_syntaxstyle.html b/Japanese.lproj/CotEditorHelp/pgs/howto_customize_syntaxstyle.html deleted file mode 100644 index dc9764aa37..0000000000 --- a/Japanese.lproj/CotEditorHelp/pgs/howto_customize_syntaxstyle.html +++ /dev/null @@ -1 +0,0 @@ - V^bNXX^Cݒ肷

    V^bNXX^Cݒ肷

    V^bNXX^ĆAJ[OEAEgCj[E͕⊮`̂łBV^bNXX^Cݒ肷菇͎̒ʂłB

    1. CotEditor j[́u‹ݒ...vIт܂B
    2. uV^bNXv^uJ܂B
    3. uV^bNXX^Cݒv́uX^CI...vݒ肵X^CI܂B
    4. uҏWv{^NbN܂B
    • ̃V^bNXX^CQlɂēƎ̃X^C쐬ɂ́AuX^CI...vŌƂȂX^CIāuRs[v{^NbN܂B

    ֘A

    \ No newline at end of file diff --git a/Japanese.lproj/CotEditorHelp/pgs/howto_customize_toolbar.html b/Japanese.lproj/CotEditorHelp/pgs/howto_customize_toolbar.html deleted file mode 100644 index 02c57975d3..0000000000 --- a/Japanese.lproj/CotEditorHelp/pgs/howto_customize_toolbar.html +++ /dev/null @@ -1 +0,0 @@ - c[o[JX^}CY

    c[o[JX^}CY

    Finder ⑼̑ Cocoa AvP[VƓlɁAc[o[RɃJX^}CYł܂B

    • c[o[JX^}CYɂ́Au\vj[́uc[o[JX^}CY...vIт܂B
    \ No newline at end of file diff --git a/Japanese.lproj/CotEditorHelp/pgs/howto_filedrop.html b/Japanese.lproj/CotEditorHelp/pgs/howto_filedrop.html deleted file mode 100644 index d82fdcf609..0000000000 --- a/Japanese.lproj/CotEditorHelp/pgs/howto_filedrop.html +++ /dev/null @@ -1 +0,0 @@ - t@Chbvgp

    t@Chbvgp

    t@Chbvgpɂ́At@CރEChEɃhbv܂B

    • 炩߁A}镶ݒ肵ĂKv܂B
    • t@Chbv̐ݒ́A‹ݒ́ut@Chbvvōs܂B

    ֘A

    \ No newline at end of file diff --git a/Japanese.lproj/CotEditorHelp/pgs/howto_find_newline.html b/Japanese.lproj/CotEditorHelp/pgs/howto_find_newline.html deleted file mode 100644 index 24cacd8e35..0000000000 --- a/Japanese.lproj/CotEditorHelp/pgs/howto_find_newline.html +++ /dev/null @@ -1 +0,0 @@ - s^^u

    s^^u

    s^^uɂ́AK\gp邩A܂͌tB[hɁuOption + Returnv^uOption + Tabv͂邱ƂŌł܂B

    K\L[{[h
    s\nOption + Return
    ^u\tOption + Tab
    \ No newline at end of file diff --git a/Japanese.lproj/CotEditorHelp/pgs/howto_inspect_fileinfo.html b/Japanese.lproj/CotEditorHelp/pgs/howto_inspect_fileinfo.html deleted file mode 100644 index c236f952d6..0000000000 --- a/Japanese.lproj/CotEditorHelp/pgs/howto_inspect_fileinfo.html +++ /dev/null @@ -1 +0,0 @@ - ނ̏

    ނ̏

    ނɊւlXȏ邱Ƃł܂B

    1. ut@Cvj[́uviCmd + IjIт܂B
    2. h[ɂ́A‚{^NbN邩xuvj[I܂B

    ނ̏́Ac[o[́uvł\ł܂B

    h[ɕ\͉L̒ʂłB

    NG[^NG[^́At@C쐬AvP[V\R[hłB
    ^Cv^Cv́Aނ̎ނ\R[hłB
    t@C쐬ꂽłB
    ύXt@CŌɍXVꂽłB
    I[i[̃t@C̏L҂̃[UłB
    ANZX̃t@C̃ANZX UNIX `ŕ\܂B
    Finder bÑt@CbNĂꍇ́uONvAĂȂꍇu-v\܂B
    s݃Lbgs擪̍sŕ\܂B
    ݃Lbgʒu擪̕ŕ\܂B
    iÍ͈jeLXgIĂꍇAI͈͓̕\܂B
    UnicodeUnicode16iR[hiUTF-16j\܂B1IĂ鎞ɕ\܂B
    \ No newline at end of file diff --git a/Japanese.lproj/CotEditorHelp/pgs/howto_inspect_usedchar.html b/Japanese.lproj/CotEditorHelp/pgs/howto_inspect_usedchar.html deleted file mode 100644 index 2bf1ff1893..0000000000 --- a/Japanese.lproj/CotEditorHelp/pgs/howto_inspect_usedchar.html +++ /dev/null @@ -1 +0,0 @@ - ݊̕܂܂ĂȂmF

    ݊̕܂܂ĂȂmF

    ނ̃GR[fBOƔ݊͂̕ĂƁȀނۑAēxJɐł͕\܂B̋@\́Aۑ̑Oɔ݊`FbNA̎̃guh~܂B

    lɁAGR[fBOϊƂɔ݊̕܂܂ĂƁA\łȂȂ܂Bu{ (Mac OS)vu{ (Windows, DOS)v邢 Unicode eȂǃT|[g镶ZbgقȂ镶GR[fBOԂ̕ϊsꍇɗLpłB

    1. ut@Cvj[́u݊\vIт܂B
    2. h[ɂ́A‚{^NbN邩xu݊\vj[I܂B
    \ No newline at end of file diff --git a/Japanese.lproj/CotEditorHelp/pgs/howto_open_hidden_file.html b/Japanese.lproj/CotEditorHelp/pgs/howto_open_hidden_file.html deleted file mode 100644 index 4221424f8f..0000000000 --- a/Japanese.lproj/CotEditorHelp/pgs/howto_open_hidden_file.html +++ /dev/null @@ -1 +0,0 @@ - sŽt@CJ

    sŽt@CJ

    Finder ɕ\ȂsŽt@CJɂ͎̂悤ɂ܂B

    1. Shift L[Ȃt@Cj[J܂B
    2. u\t@CJ...vI܂B
    • t@Cj[J Shift L[ƁAj[ځuJ...vu\t@CJ...vɕς܂B
    • L[{[hV[gJbguCommand + Shift + OvłlłB
    \ No newline at end of file diff --git a/Japanese.lproj/CotEditorHelp/pgs/howto_print.html b/Japanese.lproj/CotEditorHelp/pgs/howto_print.html deleted file mode 100644 index 983ee226a3..0000000000 --- a/Japanese.lproj/CotEditorHelp/pgs/howto_print.html +++ /dev/null @@ -1 +0,0 @@ - ނ

    ނ

    ނɂ́Aut@Cvj[́uvg...vIт܂B

    • 炩ߊ‹ݒ́uvݒ肳ꂽIvVLɂȂ܂B
    • V[ǵuƈy[Wv|bvAbvj[v_EƁuCotEditorvƂڂAňꎞIȈݒύX”\łił́AtHgݒύX͂ł܂jB
    \ No newline at end of file diff --git a/Japanese.lproj/CotEditorHelp/pgs/howto_rectangularSelection.html b/Japanese.lproj/CotEditorHelp/pgs/howto_rectangularSelection.html deleted file mode 100644 index 25a302bae4..0000000000 --- a/Japanese.lproj/CotEditorHelp/pgs/howto_rectangularSelection.html +++ /dev/null @@ -1 +0,0 @@ - `Ii10.4ȏj

    eLXg`Ii10.4ȏj

    eLXg`Iɂ́AOption L[Ȃ}EXhbOāAeLXgI܂B

    • ̋@\́AMac OS 10.4 ȏłȂƂ͂炫܂B
    \ No newline at end of file diff --git a/Japanese.lproj/CotEditorHelp/pgs/howto_show_outlinemenu.html b/Japanese.lproj/CotEditorHelp/pgs/howto_show_outlinemenu.html deleted file mode 100644 index 2b5ac988ee..0000000000 --- a/Japanese.lproj/CotEditorHelp/pgs/howto_show_outlinemenu.html +++ /dev/null @@ -1 +0,0 @@ - AEgCj[\

    AEgCj[\

    AEgCj[́AV^bNX`́uAEgCj[ݒvɏ]ďނ̊Y镔j[Ƃĕ\܂Bj[̓EBhE㕔̃c[o[̉ɕ\܂Bj[̍ڂIƁAނ̑΂镔ɑIړ܂B

    • AEgCj[\ɂ́Au\vj[́uirQ[Vo[\vI܂B
    • AEgCj[𗘗pɂ́AV^bNXJ[OLłȂ΂Ȃ܂B

    AEgCj[ɕ\鍀ڂуj[^Cg̐ݒ́AV^bNXX^Cݒ́uAEgCj[ݒvōs܂B

    ֘A

    \ No newline at end of file diff --git a/Japanese.lproj/CotEditorHelp/pgs/howto_split.html b/Japanese.lproj/CotEditorHelp/pgs/howto_split.html deleted file mode 100644 index 75314f5bb0..0000000000 --- a/Japanese.lproj/CotEditorHelp/pgs/howto_split.html +++ /dev/null @@ -1 +0,0 @@ - GfB^𕪊

    GfB^𕪊

    GfB^𕪊ɂ́Au\vj[́uGfB^𕪊vI邩AAEgCj[E[̃ACRNbN܂B

    ꂽGfB^‚Ƃ́Au\vj[́uGfB^‚vI邩AAEgCj[̉EɒljACRNbN܂B

    \ No newline at end of file diff --git a/Japanese.lproj/CotEditorHelp/pgs/howto_uninstall.html b/Japanese.lproj/CotEditorHelp/pgs/howto_uninstall.html deleted file mode 100644 index 2c5d4d74b9..0000000000 --- a/Japanese.lproj/CotEditorHelp/pgs/howto_uninstall.html +++ /dev/null @@ -1 +0,0 @@ - CotEditor ACXg[

    CotEditor ACXg[

    CotEditor ACXg[ɂ́Ãt@CEtH_S~Ɏ̂Ă܂B

    • /AvP[V/CotEditor
    • ~/Cu/Application Support/CotEditor
    • ~/Cu/Preferences/com.aynimac.CotEditor.plist

    u~v͂g̃[Úuz[vtH_Au/v̓tH_̋؂킷LłB

    \ No newline at end of file diff --git a/Japanese.lproj/CotEditorHelp/pgs/overview.html b/Japanese.lproj/CotEditorHelp/pgs/overview.html deleted file mode 100644 index eb0b5af79e..0000000000 --- a/Japanese.lproj/CotEditorHelp/pgs/overview.html +++ /dev/null @@ -1 +0,0 @@ - CotEditor ɂ‚

    CotEditor ɂ‚

    CotEditor Web y[W (HTML)APerl Ruby Ȃǂ̃vOATeX ̃\[XƂv[eLXg̕ҏWɓeLXgGfB^łBCotEditor ɂ Mac OS X t̃eLXgGfBbgɂ͂Ȃ֗̕ȋ@\܂B̃y[Wł͂̈ꕔЉ܂傤B

    ͂Ȍ^u@\

    ov_find.pngCotEditor ɂ OgreKit [EFuTCg]ɂɋ͂Ȍ^uplĂ܂B

    K\̃T|[g͂Aʂ܂Ƃ߂Ĉꗗ\At@C̃}b`ӏnCCg\肷邱Ƃł܂B

    V^bNXJ[O

    ov_color.pngvO̗\ATeX ̃R}hAHTML ̗vfȂǓ̃L[[hɐF‚Č₷܂B

    CotEditor ɂ͂炩߂‚̃J[O`vZbgĂ܂A[URɓo^^ύXł܂B܂AJ[O`͒Pꂾł͂ȂAK\ɂp^[w”\łB

    AEgCj[

    ov_outline.pngނ̃L[[h܂މӏXgAbvāAj[Ƃĕ\܂Bj[NbNƁAނ̊Yֈړ܂B

    j[ɕ\閼O⍀ڂ̓V^bNXX^CJX^}CY邱ƂŎRɐݒł܂B

    ͕⊮

    ov_complete.pngvO̗\AHTML ̗vfȂǂ̃L[[h̓͂ȗ@\łB

    ŏ̐͂āAESC ܂ F5 L[ƌ₪\AꗗIē͂ł܂B\̓JX^}CYł܂B

    XNvgj[

    ov_complete.pngXNvgj[ɓo^ꂽXNvgsāAҏW̏ނHAÕvONł܂B

    AppleScript ̂قAPerl PHPARubyAUNIX VFXNvgpł܂B

    ̑̋@\

    t@Chbv
    t@ChbvƂA炩ߎw肵Ă^}@\łBႦ΁uHTML ނɉ摜hbvƂ IMG ^O}vƂgł܂B
    L[oCh̃JX^}CY
    CotEditor Ǝ̋@\̃L[oChJX^}CYł܂B
    AppleScript Ƃ̘Ag
    AppleScript ɂAƂ̎”\łB܂AXNvgj[ɑgݍނƂł܂B
    OGfB^vgR̃T|[g
    Cyberduck [EFuTCg] Interarchy [EFuTCg]ARBrowser [EFuTCg] ȂǁAOGfB^vgRT|[gAvP[VƘAgł܂BT[õt@C𒼐ڊJAύXۑe𒼂ɃAbv[hXVł܂B
    sԍ\
    eLXgt@C̍sԍ\܂BvO̊JƃfobO̍ۂɕ֗łB
    EChE̓xݒ
    EChE𔼓ɂł܂B̃EChEJƂɒT₷Ȃ܂B
    sԕύX
    sԂ̍LύXݒł܂B
    ݊̕\
    w肳ꂽGR[fBOŕۑłȂ`FbNł܂B
    GfB^𕪊
    GfB^𕪊ÄقȂ镔𓯎ɕ\ł܂B
    \ No newline at end of file diff --git a/Japanese.lproj/CotEditorHelp/pgs/pref_appearance.html b/Japanese.lproj/CotEditorHelp/pgs/pref_appearance.html deleted file mode 100644 index 54a391b73c..0000000000 --- a/Japanese.lproj/CotEditorHelp/pgs/pref_appearance.html +++ /dev/null @@ -1 +0,0 @@ - ‹ݒF\

    ‹ݒF\

    ̃J[sŽ̑֕\ȂǏނ̃ftHg̏ݒ肵܂B
    ύX͐VKނKp܂B

    {J[O
    V^bNXJ[ȎΏۂɂȂȂ̃J[ݒ肵܂B
    V^bNXJ[OɂJ[̐ݒ́AuV^bNXv^uōs܂B
    sŽ̕\
    Xy[XA^uAsA䕶ȂnjȂuEv₻̑̋Lőւĕ\܂B|bvAbv֕\镶IĂB
    eLXg\ɎgftHg̃tHǵAutH[}bgv^uŐݒ肵܂B

    ֘A

    \ No newline at end of file diff --git a/Japanese.lproj/CotEditorHelp/pgs/pref_filedrop.html b/Japanese.lproj/CotEditorHelp/pgs/pref_filedrop.html deleted file mode 100644 index ad9b1952c4..0000000000 --- a/Japanese.lproj/CotEditorHelp/pgs/pref_filedrop.html +++ /dev/null @@ -1 +0,0 @@ - ‹ݒFt@Chbv

    ‹ݒFt@Chbv

    t@Chbv́At@ChbvƂA炩ߎw肵Ă^}@\łBႦ HTML ނɉ摜hbvƂ IMG ^O}Ƃgł܂B

    Kpt@Cgq
    hbvt@C̊gq͂܂B
    }̃tH[}bg
    eLXgɑ}镶ݒ肵܂B
    ^}
    ^tH[}bgɒlj܂B
    • u^v́Ahbvt@CŗL̏ɒuʂȃL[[hłB

    ֘A

    \ No newline at end of file diff --git a/Japanese.lproj/CotEditorHelp/pgs/pref_format.html b/Japanese.lproj/CotEditorHelp/pgs/pref_format.html deleted file mode 100644 index d06be5c4e7..0000000000 --- a/Japanese.lproj/CotEditorHelp/pgs/pref_format.html +++ /dev/null @@ -1 +0,0 @@ - ‹ݒFtH[}bg

    ‹ݒFtH[}bg

    tHgVKނ̃ftHg̃tH[}bgݒ肵܂B
    ύX͐VKނKp܂B

    s܂Ԃ
    ȈꍇAeLXgEChE̕Ɏ܂ȂƂ܂Ԃĕ\܂BIt̏ꍇ͉XN[o[\܂B
    Cfg
    ȈꍇAReturn ܂ Enter L[͂ƂO̍s̊Jnʒuɍ킹ăCfg}܂B
    tHgłsŒ肷
    ȈꍇA\tHg͕ɂ炸AIɍsŒ肵܂B
    Iɂꍇɂ́AIt̏ꍇɔrčsɂȂ܂B
    sԁF
    sԂAwŎw肵܂B0 10.0 ̊Ԃw肵ĂB
    iۂɊmۂsԂ́AŎw肳ꂽlƃtHg̃|Cg̐ςłj
    ^u󔒂ɎIɕϊ
    ȈꍇA^u͂Ƃ^ȗɋ󔒂͂܂B
    ^uƃCfg
    ^u͂Ƃɒu󔒕̐ݒ肵܂Bʏ 4 ܂ 8 łB
    VKނ̍sR[h
    VK쐬鏑ނ̃ftHg̍sR[hݒ肵܂B
    GR[fBO
    VK
    VK쐬鏑ނ̃ftHg̕GR[fBOݒ肵܂B
    ̃t@C
    ̃t@CJƂɎgp镶GR[fBOݒ肵܂Bʏ́uFvł悢ł傤B
    UTF-8̂ƂBOMۑi񐄏^戵Ӂj
    GR[fBOuUTF-8vŕۑƂA`Ɏʂ̂߂́uBOMvlj܂B
    prɂĂ͓ǂݍ߂ȂȂǂ̖肪N邱Ƃ܂̂Ŏ戵ɂ͒ӂĂBɕKvȂ΃It̂܂܂̎gp߂܂B
    GR[fBOw^OQƂ
    eLXgɏꂽGR[fBOw^OQƂ܂B
    Fł̂́AD揇ʏ "charset=" A"encoding=" A"@charset" łB
    ucharset=vuencoding=vu@charsetv^Oɂ鎩FQƂĂB
    XgҏW...
    j[уc[o[̕GR[h|bvAbvɕ\GR[fBO̕яJX^}CYł܂B̕я́AGR[fBO̎FɂgpAォ珇ɓKpeXg܂B킵GR[h̔F𒲐QƂĂB
    • ũt@C̕GR[fBOvŁuFvȊO̕GR[fBOIꍇɃt@C̕GR[fBOƈvȂƂ́AJɎ蓮ŕύXčĉ߂Kv܂B
    tHg
    eLXg̕\ɎgftHg̃tHgƕTCYݒ肵܂B
    A`GCAXKp
    ȈꍇAtHg̃A`GCAX\LɂȂ܂B

    ֘A

    \ No newline at end of file diff --git a/Japanese.lproj/CotEditorHelp/pgs/pref_general.html b/Japanese.lproj/CotEditorHelp/pgs/pref_general.html deleted file mode 100644 index 2cb1882565..0000000000 --- a/Japanese.lproj/CotEditorHelp/pgs/pref_general.html +++ /dev/null @@ -1 +0,0 @@ - ‹ݒF

    ‹ݒF

    NҏW̓Ȃ CotEditor ̑S̓IȐݒs܂B

    NɐVKނJ
    ȈꍇANɋ̏ރEChEJ܂B
    I[vCxgŐVKނJ
    ȈꍇADock CotEditor ACRNbNƂɏނJĂȂ΁ȀރEChEJ܂B
    X}[gCT[g^X}[gf[g
    ȈꍇAPy[Xg܂̓hbOhbvɂPԂɑ}ƂAP̑O܂͌ɔpXy[X}܂BX}[gf[g͋tɁAP폜Ƃɗ]ȔpXy[X폜܂BipɂĈӖ̂@\łj
    ͒ɎXy`FbN
    ȈꍇAeLXg͒ɎIɃXy`FbN܂B
    Carbon ̂悤ɁAIeLXgɃhbOJn
    ʏAIeLXghbOɂ0.3bȏ}EX{^vXĂłȂƃhbOł܂񂪁A̐ݒIɂƁuIhbOJnvɂ鎞ԂZkĒɃhbOJnł悤ɂ܂iIłjB
    "¥" "_" L[͂ւ
    ȈꍇA"¥" "_" L[̓͂𑊌݂ɓւ܂B
    ΉJbR"( )" "[ ]" "{ }"nCCg\
    ȈꍇA‚JbR̈ʒuɃLbgƂAJñJbRnCCg\܂B
    "< >"nCCg\
    ȈꍇA">"̈ʒuɃLbgƂAΉ"<"nCCg\܂B
    sR[h𕶎ƂăJEg
    IɂƁAޏyуXe[^Xo[ɕ\镶͍sR[h܂񂾂̂ɂȂ܂B
    𑼂̃AvƓ
    IɂƁA Cocoa AvP[VŌꂽpl֎荞݂܂B
    ReLXgj[ɁAXNvgj[CCɒlj
    IɂƁAXNvgj[ڂWJăReLXgj[ɒlj܂B
    t@CƃNG[^̕ۑ
    t@CۑƂ CotEditor ̃NG[^ƃt@C^Cvt邩ǂI܂B
    IWiێ
    ݒ肳ĂȂꍇɂ̂ CotEditor ̃NG[^ƃt@C^Cvݒ肵܂Bݒ肳Ăꍇ͂̂܂܂łB
    CotEditor ̃R[hZbg
    t@CۑɕK CotEditor ̃NG[^ƃt@C^Cvݒ肵܂Bق̃AvP[Vō쐬ꂽނ̏ꍇACotEditor ނɕύX܂B
    R[hZbgȂ
    NG[^ƃt@C^Cvؐݒ^ύX܂B
    ͕⊮⃊Xg
    ͕⊮Ƃɕ\ݒ肵܂B
    t@CɏoP̂
    t@CɂPꂾXgAbv܂B
    t@CɏoP + J[OX^Č
    t@CɂPɉAJ[OX^CŐݒ肳ꂽ͕⊮Xgiݒ肳ĂȂ΃J[Oݒ肩琶j\܂B
    t@CɏoP + J[OX^C + ʉpP
    LɉAʉpP\܂B

    ֘A

    \ No newline at end of file diff --git a/Japanese.lproj/CotEditorHelp/pgs/pref_keybinding.html b/Japanese.lproj/CotEditorHelp/pgs/pref_keybinding.html deleted file mode 100644 index 1abdc0c35a..0000000000 --- a/Japanese.lproj/CotEditorHelp/pgs/pref_keybinding.html +++ /dev/null @@ -1 +0,0 @@ - ‹ݒFL[oCh

    ‹ݒFL[oCh

    j[̂‚̋@\̓L[{[hV[gJbgłsƂł܂BCotEditor ł̓j[Ɋ蓖ĂĂL[{[hV[gJbgύX邱Ƃł܂B܂ACӂ͂̕邽߂́uljeLXgL[oChvݒł܂B

    j[L[oCh
    j[Ɋ蓖ĂĂL[oChD݂̃L[{[hV[gJbgɕύX܂B
    • uj[L[oChv̓R}hL[܂܂Kv܂B
    ljeLXgL[oCh
    CotEditor ŗL̃eLXgҏWR}hɂD݂̃L[{[hV[gJbgݒ肵܂B

    ֘A

    \ No newline at end of file diff --git a/Japanese.lproj/CotEditorHelp/pgs/pref_print.html b/Japanese.lproj/CotEditorHelp/pgs/pref_print.html deleted file mode 100644 index af1a197b25..0000000000 --- a/Japanese.lproj/CotEditorHelp/pgs/pref_print.html +++ /dev/null @@ -1 +0,0 @@ - ‹ݒFvg

    ‹ݒFvg

    ̐ݒs܂B
    ύX͐VKނKp܂B

    J[
    V^bNX̃J[Oɂ́Auނ̐ݒƓvI܂B
    vgȂ^ނ̐ݒƓ^vg邩Ił܂B
    vgȂ^ނ̐ݒƓ^vg邩Ił܂B
    vgptHg
    ނ̐ݒƓAƎ̃tHgݒł܂B
    wb_Atb^
    󎚂̗LA󎚓eA؂̈󎚂̗LA󎚈ʒuݒł܂B

    ֘A

    \ No newline at end of file diff --git a/Japanese.lproj/CotEditorHelp/pgs/pref_syntax.html b/Japanese.lproj/CotEditorHelp/pgs/pref_syntax.html deleted file mode 100644 index 5da4ba4083..0000000000 --- a/Japanese.lproj/CotEditorHelp/pgs/pref_syntax.html +++ /dev/null @@ -1 +0,0 @@ - ‹ݒFV^bNX

    ‹ݒFV^bNX

    V^bNXJ[O̐ݒV^bNXX^C̒`ύXł܂B

    ނJ[O
    ȈꍇAt@C̎ނɉďނJ[O܂B
    ݒV^bNXJ[OX^C
    Jt@C̊gqɂЂtꂽV^bNXX^CꍇɓKpX^CI܂B
    ̐ݒ́AVKނɂKp܂B
    xJ[O
    ȈꍇAL[͂IĂ΂炭ɁAJ[O܂BIt̏ꍇ́A1 ͂邲ƂɃJ[O܂B
    gJ[O
    J[OƂ̃J[ݒ肵܂B
    J[́AL[[hER}hElElEEERg ɂ‚Đݒł܂B
    V^bNXX^CJX^}CY
    ̃X^CҏWAƎ̃X^Clj邱Ƃł܂B
    gqG[\...
    1 ‚̊gqɑ΂āÃX^C蓖ĂĂȂ`FbN܂B
    IĂX^C폜܂B
    ҏW
    IĂX^CҏW܂BX^C̓[UƂɕۑĂ邽߁AŕҏWʂ͂g̃[ŨX^Cɂf܂B
    Rs[
    IĂX^CRs[āAƎ̃X^C쐬܂B
    VK
    VX^C쐬܂B
    o
    IꂽX^Cʂ̃Rs[^ŎgƂɎgp܂Buovŕۑt@C𗘗pɂ́uǂݍ݁vg܂B
    ǂݍ
    ق̃Rs[^ō쐬X^Cg悤ɂ܂Buǂݍ݁vNbNAX^Ct@CIĂB

    ֘A

    \ No newline at end of file diff --git a/Japanese.lproj/CotEditorHelp/pgs/pref_window.html b/Japanese.lproj/CotEditorHelp/pgs/pref_window.html deleted file mode 100644 index 9b31ce8bf9..0000000000 --- a/Japanese.lproj/CotEditorHelp/pgs/pref_window.html +++ /dev/null @@ -1 +0,0 @@ - ‹ݒFEChE

    ‹ݒFEChE

    EChȆ傫sԍ\邩ȂǁAEChẼftHg̕\Ԃݒ肵܂B
    ύX͐VKނKp܂B

    irQ[Vo[\
    ȈꍇAc[o[̉ɃirQ[Vo[\܂B
    sԍ\
    ȈꍇAEChE̍ɍsԍ\܂B
    ܂ԂsɃ}[N\
    ȈꍇA܂ԂsibvĂsjɃ}[N\܂BItł͉\܂B
    Xe[^Xo[\
    ȈꍇAEChẺɃXe[^Xo[\܂B
    ؂L\
    ȂǕ\鐔lɌ؂L}܂B
    y[WKCh\
    ȈꍇAeLXg\GAɃy[WKCh\܂B
    \F
    y[WKCh\ʒuw肵܂Bݒ肳ĂtHgɂĈʒuς܂B
    tHg̎wutH[}bgv^uɂ܂B
    EChȆ傫
    EChẼftHgTCYݒł܂BuEChE擾...v{^NbNƁAƍۂ̃EChEgĐݒł܂B
    EChE̓x
    XC_[𓮂ƁAEChE𓧖ɂł܂B
    eLXgr[̂
    ȈꍇAeLXgr[݂̂ɂȂ܂BIt̏ꍇA^Cgo[XN[o[Ȃǂ܂ރEChÊׂĂ̕ɂȂ܂B

    ֘A

    \ No newline at end of file diff --git a/Japanese.lproj/CotEditorHelp/sty/index.css b/Japanese.lproj/CotEditorHelp/sty/index.css deleted file mode 100644 index 6d54e1998a..0000000000 --- a/Japanese.lproj/CotEditorHelp/sty/index.css +++ /dev/null @@ -1 +0,0 @@ -/* * CotEditor Help Standard Style Sheet for index page * $Id$ */ div.terms { margin: 3em 1.5em 0 1.5em; } div.terms p { clear: both; } div.terms ul { margin: 0; padding: 0; background: none; border: none; list-style-type: none; } div.terms li { border-bottom: 1px solid #cccccc; } h1#letters { margin: 0; padding: 0 0 0.5em 15px; width: 90%; float: left; clear: both; } \ No newline at end of file diff --git a/Japanese.lproj/CotEditorHelp/sty/standard.css b/Japanese.lproj/CotEditorHelp/sty/standard.css deleted file mode 100644 index b668a81a89..0000000000 --- a/Japanese.lproj/CotEditorHelp/sty/standard.css +++ /dev/null @@ -1 +0,0 @@ -/* * CotEditor Help Standard Style Sheet * $Id$ */ body { margin: 0 0 1em 0; padding: 0; font-family: "Lucida Grande"; font-size: 9pt; line-height: 130%; } a { text-decoration: none; } a:hover { text-decoration: underline; } #contents { margin: 3em 1.5em 0 1.5em; } h1 { font-size: 130%; margin: 1em 0; } h2 { font-size: 110%; line-height: 110%; margin-top: 1.5em; margin-bottom: 0.5em; clear: both; } h3 { font-size: 100%; line-height: 110%; } ol, ul, pre { padding: 1em 2em 0.5em 2em; margin: 0; border: 1px solid #cccccc; background-color: #e6edff; clear: both; } ul { list-style-type: square; } li { margin-bottom: 0.5em; } ul ul, ul ol { padding: 0 3em; margin: 0.5em 0; border: none; } ul + ul, ol + ol, ul + ol, ol + ul { margin-top: 1em; } ul.topicbox { background-color: white; border: 1px dotted #999999; } ul.rel_items { list-style-type: none; padding: 0; margin: 0; border: none; background-color: white; font-size: 90%; } p.point { padding: 1em 2em 1em 1.5em; margin: auto -1%; border: 1px solid #cccccc; background-color: #e6edff; } em { font-weight: bold; font-style: normal; } p#relbar { text-align: right; } .figmarker { font-weight: bold; color: red; } #navbar { position: fixed; top: 0; left: 0; width: 100%; padding: -2px 6px 0; border-bottom: 1px solid #bfbfbf; background-color: #f2f2f2; background-repeat: no-repeat; float: left; font-size: 85%; } #home { position: absolute; top: 2px; left: 10px; } #index { top: 2px; right: 12px; width: auto; padding: 2px 25px 1px 8px; background-color: #f2f2f2; border-left: 1px solid #bfbfbf; float: right; } img.snapshot { float: left; margin: 0 1em 1em 0; } img#h1icon { margin: 0 8px -8px 0; } dt { font-weight: bold; margin-left: 0.5em; } dd { margin-left: 2.5em; } table { border-collapse: collapse; empty-cells: show; } th, td { border: 1px solid #cccccc; margin: 0; padding: 3px; } th { background-color: #e6edff; font-weight: normal; white-space: nowrap; } th.lh { text-align: left; } tt, pre { font-family: "Courier", "Courier New", monotype; } \ No newline at end of file diff --git a/Japanese.lproj/CotEditorHelp/sty/top.css b/Japanese.lproj/CotEditorHelp/sty/top.css deleted file mode 100644 index 76ac0c8894..0000000000 --- a/Japanese.lproj/CotEditorHelp/sty/top.css +++ /dev/null @@ -1 +0,0 @@ -/* * CotEditor Help Style Sheet for CotEditor.html * $Id$ */ body { margin: 0; padding: 0; font-family: "Lucida Grande"; } a { text-decoration: none; } a:hover { text-decoration: underline; } div { float: left; margin-top: 30px; } #leftbox { width: 190px; text-align: center; padding-left: 20px; padding-right: 20px; } #rightbox { width: 220px; padding-left: 30px; border-left: 1px solid #999999; } img { margin: 20px 0; } h1 { font-size: 16pt; font-weight: normal; } address { font-size: 8pt; font-style: normal; } dt { font-size: 11pt; font-weight: normal; margin-top: 1em; } dd { font-size: 9pt; margin-left: 0; } \ No newline at end of file diff --git a/Japanese.lproj/CotEditorHelp/sty/topicbox.css b/Japanese.lproj/CotEditorHelp/sty/topicbox.css deleted file mode 100644 index a69448d104..0000000000 --- a/Japanese.lproj/CotEditorHelp/sty/topicbox.css +++ /dev/null @@ -1 +0,0 @@ -/* * CotEditor Help Style Sheet for topic_box * $Id$ */ div.topic_box { padding: 0; min-height: 180px; border: dotted 1px #cccccc; margin-bottom: 1.5em; } div.topic_box h2 { margin: 0; padding: 3px; background-color: #e6edff; } div.topic_box p { margin-top: 0.5em; margin-left: 0.5em; margin-right: 0.5em; } div.topic_box img { width: 160px; } div.topic_box ul, div.topic_box ol { margin-top: 1em; margin-left: 170px; /* img 160px + 10px */ padding-top: 0; clear: none; background: none; border: none; } \ No newline at end of file diff --git a/Japanese.lproj/CotEditorHelp/xpgs/xall.html b/Japanese.lproj/CotEditorHelp/xpgs/xall.html deleted file mode 100644 index 5f52832396..0000000000 --- a/Japanese.lproj/CotEditorHelp/xpgs/xall.html +++ /dev/null @@ -1 +0,0 @@ -

    \ No newline at end of file diff --git a/Japanese.lproj/CotEditorHelp/xpgs/xcomplete.html b/Japanese.lproj/CotEditorHelp/xpgs/xcomplete.html deleted file mode 100644 index 38d44e0005..0000000000 --- a/Japanese.lproj/CotEditorHelp/xpgs/xcomplete.html +++ /dev/null @@ -1 +0,0 @@ - ͕⊮

    ͕⊮

    ̃gsbNNbNĂB

    \ No newline at end of file diff --git a/Japanese.lproj/CotEditorHelp/xpgs/xconfiguration.html b/Japanese.lproj/CotEditorHelp/xpgs/xconfiguration.html deleted file mode 100644 index 28d8721633..0000000000 --- a/Japanese.lproj/CotEditorHelp/xpgs/xconfiguration.html +++ /dev/null @@ -1 +0,0 @@ - ݒ肷

    ݒ肷

    \ No newline at end of file diff --git a/Japanese.lproj/CotEditorHelp/xpgs/xcustomize.html b/Japanese.lproj/CotEditorHelp/xpgs/xcustomize.html deleted file mode 100644 index 4bdbac05b4..0000000000 --- a/Japanese.lproj/CotEditorHelp/xpgs/xcustomize.html +++ /dev/null @@ -1 +0,0 @@ - JX^}CY

    JX^}CY

    \ No newline at end of file diff --git a/Japanese.lproj/CotEditorHelp/xpgs/xencoding.html b/Japanese.lproj/CotEditorHelp/xpgs/xencoding.html deleted file mode 100644 index 1aa41d77d3..0000000000 --- a/Japanese.lproj/CotEditorHelp/xpgs/xencoding.html +++ /dev/null @@ -1 +0,0 @@ - GR[fBO

    GR[fBO

    \ No newline at end of file diff --git a/Japanese.lproj/CotEditorHelp/xpgs/xfaq.html b/Japanese.lproj/CotEditorHelp/xpgs/xfaq.html deleted file mode 100644 index 9f56c5ce61..0000000000 --- a/Japanese.lproj/CotEditorHelp/xpgs/xfaq.html +++ /dev/null @@ -1 +0,0 @@ -

    \ No newline at end of file diff --git a/Japanese.lproj/CotEditorHelp/xpgs/xfiledrop.html b/Japanese.lproj/CotEditorHelp/xpgs/xfiledrop.html deleted file mode 100644 index ac7f1f4e28..0000000000 --- a/Japanese.lproj/CotEditorHelp/xpgs/xfiledrop.html +++ /dev/null @@ -1 +0,0 @@ - t@Chbv

    t@Chbv

    \ No newline at end of file diff --git a/Japanese.lproj/CotEditorHelp/xpgs/xhowto.html b/Japanese.lproj/CotEditorHelp/xpgs/xhowto.html deleted file mode 100644 index d9e73fc55a..0000000000 --- a/Japanese.lproj/CotEditorHelp/xpgs/xhowto.html +++ /dev/null @@ -1 +0,0 @@ - g̃qg

    g̃qg

    \ No newline at end of file diff --git a/Japanese.lproj/CotEditorHelp/xpgs/xoutlinemenu.html b/Japanese.lproj/CotEditorHelp/xpgs/xoutlinemenu.html deleted file mode 100644 index 3cabdbc332..0000000000 --- a/Japanese.lproj/CotEditorHelp/xpgs/xoutlinemenu.html +++ /dev/null @@ -1 +0,0 @@ - AEgCj[

    AEgCj[

    \ No newline at end of file diff --git a/Japanese.lproj/CotEditorHelp/xpgs/xpreferences.html b/Japanese.lproj/CotEditorHelp/xpgs/xpreferences.html deleted file mode 100644 index fc8d9baffb..0000000000 --- a/Japanese.lproj/CotEditorHelp/xpgs/xpreferences.html +++ /dev/null @@ -1 +0,0 @@ - ‹ݒ

    ‹ݒ

    ‹ݒpl̐ݒ荀ڂɂ‚Đ܂B

    \ No newline at end of file diff --git a/Japanese.lproj/CotEditorHelp/xpgs/xprint.html b/Japanese.lproj/CotEditorHelp/xpgs/xprint.html deleted file mode 100644 index 6756291faa..0000000000 --- a/Japanese.lproj/CotEditorHelp/xpgs/xprint.html +++ /dev/null @@ -1 +0,0 @@ - vg

    vg

    ̃gsbNNbNĂB

    \ No newline at end of file diff --git a/Japanese.lproj/CotEditorHelp/xpgs/xscriptmenu.html b/Japanese.lproj/CotEditorHelp/xpgs/xscriptmenu.html deleted file mode 100644 index de08c0eca8..0000000000 --- a/Japanese.lproj/CotEditorHelp/xpgs/xscriptmenu.html +++ /dev/null @@ -1 +0,0 @@ - XNvgj[

    XNvgj[

    \ No newline at end of file diff --git a/Japanese.lproj/CotEditorHelp/xpgs/xsyntax.html b/Japanese.lproj/CotEditorHelp/xpgs/xsyntax.html deleted file mode 100644 index 9123112732..0000000000 --- a/Japanese.lproj/CotEditorHelp/xpgs/xsyntax.html +++ /dev/null @@ -1 +0,0 @@ - V^bNXX^C

    V^bNXX^C

    \ No newline at end of file diff --git a/Japanese.lproj/DocWindow.nib/designable.nib b/Japanese.lproj/DocWindow.nib/designable.nib deleted file mode 100644 index 2f4e4d704d..0000000000 --- a/Japanese.lproj/DocWindow.nib/designable.nib +++ /dev/null @@ -1,5098 +0,0 @@ - - - - 1050 - 11B26 - 1617 - 1138 - 566.00 - - com.apple.InterfaceBuilder.CocoaPlugin - 1617 - - - NSMenuItem - NSScroller - NSMenu - NSTableHeaderView - NSButton - NSMatrix - NSCustomObject - NSArrayController - NSTableView - NSCustomView - NSTextField - NSWindowTemplate - NSTextFieldCell - NSButtonCell - NSTableColumn - NSBox - NSPopUpButtonCell - NSView - NSObjectController - NSScrollView - NSTabViewItem - NSPopUpButton - NSTabView - NSDrawer - - - com.apple.InterfaceBuilder.CocoaPlugin - - - - - CEWindowController - - - FirstResponder - - - NSApplication - - - 15 - 2 - {{7, 567}, {507, 413}} - 1886912512 - Window - NSWindow - View - - {400, 200} - - - 256 - - - - 274 - {507, 413} - - - CEEditorView - NSView - - - {507, 413} - - - - {{0, 0}, {1366, 768}} - {400, 222} - {10000000000000, 10000000000000} - 128 - YES - - - - {200, 381} - {200, 50} - {600, 400} - 2 - 0.0 - 15 - - - - - - 274 - - - - 274 - {{0, 37}, {230, 408}} - - - - info - - - 256 - - - - 274 - - - - 2048 - - - - 266 - - - - 268 - {{0, 258}, {48, 14}} - - YES - - 67239424 - 4194304 - 行: - - LucidaGrande - 11 - 3100 - - - - 6 - System - controlColor - - 3 - MC42NjY2NjY2NjY3AA - - - - 6 - System - controlTextColor - - 3 - MAA - - - - - - - 268 - {{0, 6}, {82, 14}} - - YES - - 67239424 - 4194304 - クリエータ: - - - - - - - - - 266 - {{88, 4}, {122, 18}} - - YES - - 75628032 - 4194304 - - - - - - - - - - 266 - {{88, 25}, {122, 18}} - - YES - - 75628032 - 4194304 - - - - - - - - - - 268 - {{0, 27}, {82, 14}} - - YES - - 67239424 - 4194304 - タイプ: - - - - - - - - - 266 - {{60, 256}, {150, 18}} - - YES - - 75628032 - 71303168 - - - - - - - - - - 266 - {{60, 277}, {150, 18}} - - YES - - 75628032 - 71303168 - - - - - - - - - - 266 - {{40, 191}, {154, 5}} - - {0, 0} - - 67239424 - 0 - Box - - LucidaGrande - 13 - 1044 - - - 6 - System - textBackgroundColor - - 3 - MQA - - - - 3 - MCAwLjgwMDAwMDAxAA - - - 3 - 2 - 0 - NO - - - - 266 - {{99, 319}, {111, 18}} - - YES - - 75628032 - 71303168 - - - - - - - - - - 268 - {{0, 321}, {87, 14}} - - YES - - 67239424 - 4194304 - [選択範囲:] - - - - - - - - - 268 - {{0, 49}, {171, 14}} - - YES - - 67239424 - 4194304 - 作成日時: - - - - - - - - - 266 - {{33, 63}, {177, 18}} - - YES - - 75628032 - 4194304 - - - - - - - - - - 266 - {{33, 101}, {177, 18}} - - YES - - 75628032 - 4194304 - - - - - - - - - - 268 - {{0, 86}, {171, 14}} - - YES - - 67239424 - 4194304 - 変更日時: - - - - - - - - - 266 - {{107, 147}, {103, 18}} - - YES - - 75628032 - 138412032 - - - - - - - - - - 268 - {{0, 149}, {89, 14}} - - YES - - 67239424 - 4194304 - アクセス権: - - - - - - - - - 268 - {{0, 280}, {48, 14}} - - YES - - 67239424 - 4194304 - 文字: - - - - - - - - - 266 - {{112, 168}, {98, 18}} - - YES - - 75628032 - 138412032 - - - - - - 6 - System - textColor - - - - - - - 268 - {{0, 170}, {89, 14}} - - YES - - 67239424 - 4194304 - Finderロック: - - - - - - - - - 266 - {{77, 126}, {133, 18}} - - YES - - 75628032 - 138412032 - - - - - - - - - - 268 - {{0, 128}, {65, 14}} - - YES - - 67239424 - 4194304 - オーナー: - - - - - - - - - 266 - {{88, 340}, {122, 18}} - - YES - - 75628032 - 71303168 - - - - - - - - - - 268 - {{0, 342}, {76, 14}} - - YES - - 67239424 - 4194304 - Unicode: - - - - - - - - - 268 - {{0, 203}, {94, 14}} - - YES - - 67239424 - 4194304 - エンコーディング: - - LucidaGrande - 10 - 16 - - - - - - - - - 266 - {{93, 201}, {117, 18}} - - YES - - 75628032 - 4194304 - - - - - - - - - - 268 - {{0, 224}, {87, 14}} - - YES - - 67239424 - 4194304 - 行末コード: - - - - - - - - - 266 - {{99, 222}, {111, 18}} - - YES - - 75628032 - 4194304 - - - - - - - - - - 256 - {{40, 246}, {148, 5}} - - {0, 0} - - 67239424 - 0 - Box - - - - 3 - MCAwLjgwMDAwMDAxAA - - - 3 - 2 - 0 - NO - - - - 268 - {{0, 300}, {87, 14}} - - YES - - 67239424 - 4194304 - (行頭から:) - - - - - - - - - 266 - {{99, 298}, {111, 18}} - - YES - - 75628032 - 71303168 - - - - - - - - - {211, 365} - - CEFlippedView - NSView - - - {211, 388} - - - - - 2 - - - - -2147483392 - {{196, 0}, {11, 380}} - - 256 - - _doScroller: - 1 - 0.99736839532852173 - - - - -2147483392 - {{-100, -100}, {194, 11}} - - 257 - - _doScroller: - 0.90909093618392944 - 0.94634145498275757 - - - {211, 388} - - - 133648 - - - - - - {{10, 7}, {210, 388}} - - - - - - - incompatibleChar - - - 256 - - - - 274 - - - - 2304 - - - - 256 - {197, 320} - - YES - - - 256 - {197, 17} - - - - - - 256 - {{198, 0}, {12, 17}} - - - - - 40 - 20 - 1000 - - 75628096 - 2048 - - - - 3 - MC4zMzMzMzI5OQA - - - 6 - System - headerTextColor - - - - - 337772096 - 2048 - - - - 6 - System - controlBackgroundColor - - - - - 3 - YES - - - - 74 - 40 - 1000 - - 75628096 - 2048 - 文字 - - - - - - 337772096 - 2048 - - - - - - 3 - YES - - - - 74 - 10 - 1000 - - 75628096 - 2048 - 変換後 - - - 6 - System - headerColor - - - - - - 337772096 - 2048 - - - - - - 3 - YES - - - - 3 - 2 - - - 6 - System - gridColor - - 3 - MC41AA - - - 17 - -700448768 - - - 4 - 15 - 0 - YES - 0 - 1 - - - {{1, 17}, {197, 320}} - - - - - 4 - - - - 256 - {{198, 17}, {11, 320}} - - 256 - - _doScroller: - 0.19473683834075928 - - - - 256 - {{1, 337}, {197, 11}} - - 257 - - _doScroller: - 0.97524750232696533 - - - - 2304 - - - - {{1, 0}, {197, 17}} - - - - - 4 - - - - {{0, 31}, {210, 349}} - - - 133170 - - - - - QSAAAEEgAABBmAAAQZgAAA - - - - 274 - {{2, 31}, {197, 319}} - - YES - - 67239424 - 272629760 - 非互換文字をリストアップ出来ませんでした。 - - - - - 1 - MC43ODQzMTM3NCAwIDAAA - - - - - {{10, 7}, {210, 388}} - - - - - - - - LucidaGrande - 13 - 1558 - - 4 - YES - - - - - - - 289 - {{111, 4}, {100, 32}} - - YES - - 67239424 - 134217728 - 閉じる - - - -2038284033 - 1 - - - - - - 200 - 25 - - - - - 266 - {{17, 442}, {196, 26}} - - YES - - -2076049856 - 2048 - - - 109199615 - 1 - - LucidaGrande - 13 - 16 - - - - - - 400 - 75 - - - 書類情報 - - 1048576 - 2147483647 - 1 - - NSImage - NSMenuCheckmark - - - NSImage - NSMenuMixedState - - _popUpItemAction: - - - YES - - - OtherViews - - - - - - 非互換文字 - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 3 - YES - YES - 1 - - - - {230, 470} - NSView - NSResponder - - - CEToolbarController - - - - 256 - - - - 256 - {{17, 16}, {77, 22}} - - YES - - -2076049856 - 132096 - - - 109199615 - 1 - - LucidaGrande - 11 - 16 - - - - - - - - 400 - 75 - - - LF - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - - - - CR - - 1048576 - 2147483647 - - - _popUpItemAction: - 1 - - - - - CR/LF - - 1048576 - 2147483647 - - - _popUpItemAction: - 2 - - - - - 3 - YES - YES - 1 - - - - - 256 - {{135, 16}, {140, 22}} - - YES - - -2076049856 - 132096 - - - 109199615 - 1 - - - - - - - - 400 - 75 - - - IA - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - - - - 3 - YES - YES - 1 - - - - - 256 - {{307, 16}, {109, 22}} - - YES - - -2076049856 - 132096 - - - 109199615 - 1 - - - - - - - - 400 - 75 - - - IA - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - - - - 3 - YES - YES - 1 - - - - {505, 60} - - NSView - - NSResponder - - - - lineNumber - incompatibleChar - convertedChar - - YES - - YES - YES - YES - YES - YES - - - - 256 - - - - 256 - - - - 274 - - - - 256 - {{106, 69}, {215, 26}} - - YES - - -2076049856 - 2048 - - - 109199615 - 1 - - - - - - 400 - 75 - - - (プリントしない) - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - - - - YES - YES - - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 書類名 - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - ファイルパス - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - プリント日時 - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - ページ番号 - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 3 - YES - YES - 1 - - - - - 256 - {{339, 72}, {77, 23}} - - YES - 1 - 3 - - - -2080244224 - 134217728 - - - - 922501375 - 6 - - NSImage - leftButtonImg - - - - - - 200 - 25 - - - 67239424 - 134217728 - - - - 921977087 - 6 - - NSImage - centerButtonImg - - - - 400 - 75 - - - 67239424 - 134217728 - - - - 921977087 - 6 - - NSImage - rightButtonImg - - - - 400 - 75 - - - {23, 23} - {4, 2} - 1143472128 - NSActionCell - - 67239424 - 0 - Radio - - 1211912703 - 0 - - NSImage - NSRadioButton - - - NSRadioButton - - - - 400 - 75 - - - - - - - - - 256 - {{26, 11}, {330, 18}} - - YES - - 67239424 - 0 - ヘッダの下に区切り線を印字 - - - 1211912703 - 2 - - NSImage - NSSwitch - - - NSSwitch - - - - 200 - 25 - - - - - 256 - {{339, 42}, {77, 23}} - - YES - 1 - 3 - - - -2080244224 - 134217728 - - - - 922501375 - 6 - - - - - - 200 - 25 - - - 67239424 - 134217728 - - - - 921977087 - 6 - - - - 400 - 75 - - - 67239424 - 134217728 - - - - 921977087 - 6 - - - - 400 - 75 - - - {23, 23} - {4, 2} - 1143472128 - NSActionCell - - 67239424 - 0 - Radio - - 1211912703 - 0 - - - - 400 - 75 - - - - - - - - - 256 - {{23, 74}, {81, 17}} - - YES - - 67239424 - 71303168 - 行1: - - - - - - - - - 256 - {{23, 45}, {81, 17}} - - YES - - 67239424 - 71303168 - 行2: - - - - - - - - - 256 - {{26, 98}, {185, 18}} - - YES - - 67239424 - 0 - ヘッダを印字: - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 256 - {{106, 39}, {215, 26}} - - YES - - -2076049856 - 2048 - - - 109199615 - 1 - - - - - - 400 - 75 - - - (プリントしない) - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - - - - YES - YES - - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 書類名 - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - ファイルパス - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - プリント日時 - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - ページ番号 - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 3 - YES - YES - 1 - - - - {{2, 2}, {454, 122}} - - - - {{41, 170}, {458, 139}} - - {0, 0} - - 67239424 - 0 - ヘッダ: - - - - 3 - MCAwLjgwMDAwMDAxAA - - - - 3 - 0 - 2 - NO - - - - 256 - - - - 274 - - - - 256 - {{339, 72}, {77, 23}} - - YES - 1 - 3 - - - -2080244224 - 134217728 - - - - 922501375 - 6 - - - - - - 200 - 25 - - - 67239424 - 134217728 - - - - 921977087 - 6 - - - - 400 - 75 - - - 67239424 - 134217728 - - - - 921977087 - 6 - - - - 400 - 75 - - - {23, 23} - {4, 2} - 1143472128 - NSActionCell - - 67239424 - 0 - Radio - - 1211912703 - 0 - - - - 400 - 75 - - - - - - - - - 256 - {{26, 11}, {330, 18}} - - YES - - 67239424 - 0 - ヘッダの上に区切り線を印字 - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 256 - {{339, 42}, {77, 23}} - - YES - 1 - 3 - - - -2080244224 - 134217728 - - - - 922501375 - 6 - - - - - - 200 - 25 - - - 67239424 - 134217728 - - - - 921977087 - 6 - - - - 400 - 75 - - - 67239424 - 134217728 - - - - 921977087 - 6 - - - - 400 - 75 - - - {23, 23} - {4, 2} - 1143472128 - NSActionCell - - 67239424 - 0 - Radio - - 1211912703 - 0 - - - - 400 - 75 - - - - - - - - - 256 - {{23, 76}, {81, 17}} - - YES - - 67239424 - 71303168 - 行1: - - - - - - - - - 256 - {{23, 45}, {81, 17}} - - YES - - 67239424 - 71303168 - 行2: - - - - - - - - - 256 - {{26, 98}, {192, 18}} - - YES - - 67239424 - 0 - フッタを印字: - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 256 - {{106, 69}, {215, 26}} - - YES - - -2076049856 - 2048 - - - 109199615 - 1 - - - - - - 400 - 75 - - - (プリントしない) - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - - - - YES - YES - - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 書類名 - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - ファイルパス - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - プリント日時 - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - ページ番号 - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 3 - YES - YES - 1 - - - - - 256 - {{106, 39}, {215, 26}} - - YES - - -2076049856 - 2048 - - - 109199615 - 1 - - - - - - 400 - 75 - - - (プリントしない) - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - - - - YES - YES - - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 書類名 - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - ファイルパス - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - プリント日時 - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - ページ番号 - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 3 - YES - YES - 1 - - - - {{2, 2}, {454, 122}} - - - - {{41, 16}, {458, 139}} - - {0, 0} - - 67239424 - 0 - フッタ: - - - - 3 - MCAwLjgwMDAwMDAxAA - - - - 3 - 0 - 2 - NO - - - - 256 - {{70, 347}, {114, 17}} - - YES - - 67239424 - 272629760 - 行番号: - - - - - - - - - 256 - {{186, 341}, {215, 26}} - - YES - - -2076049856 - 2048 - - - 109199615 - 1 - - - - - - 400 - 75 - - - (プリントしない) - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - - - - 書類の設定と同じ - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - プリント - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 3 - YES - YES - 1 - - - - - 256 - {{70, 317}, {114, 17}} - - YES - - 67239424 - 272629760 - 不可視文字: - - - - - - - - - 256 - {{186, 311}, {215, 26}} - - YES - - -2076049856 - 2048 - - - 109199615 - 1 - - - - - - 400 - 75 - - - (プリントしない) - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - - - - 書類の設定と同じ - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 全てプリント - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 3 - YES - YES - 1 - - - - - 256 - {{44, 414}, {458, 17}} - - YES - - 67239424 - 4194304 - *プリント用フォントはここでは設定できません - - - - - - - - - 256 - {{70, 377}, {114, 17}} - - YES - - 67239424 - 272629760 - カラー: - - - - - - - - - 256 - {{186, 371}, {215, 26}} - - YES - - -2076049856 - 2048 - - - 109199615 - 1 - - - - - - 400 - 75 - - - テキストを黒 - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - - - - 書類の設定と同じ - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 3 - YES - YES - 1 - - - - {540, 451} - NSView - NSResponder - - - - printHeader - headerOneStringIndex - headerTwoStringIndex - headerOneAlignIndex - headerTwoAlignIndex - printHeaderSeparator - printFooter - footerOneStringIndex - footerTwoStringIndex - footerOneAlignIndex - footerTwoAlignIndex - printFooterSeparator - printLineNumIndex - printInvisibleCharIndex - setPrintFont - printColorIndex - - YES - - - - - 256 - {125, 1} - - - - 256 - {125, 1} - - - - - - - delegate - - - - 17 - - - - _editorView - - - - 30 - - - - window - - - - 31 - - - - parentWindow - - - - 33 - - - - contentView - - - - 37 - - - - _drawer - - - - 38 - - - - _infoCreatorField - - - - 52 - - - - _infoCharsField - - - - 53 - - - - _infoLinesField - - - - 54 - - - - _infoTypeField - - - - 55 - - - - _infoSelectField - - - - 58 - - - - _infoCreatedField - - - - 64 - - - - _infoModifiedField - - - - 65 - - - - _mainWindow - - - - 72 - - - - _toolbarController - - - - 73 - - - - _lineEndingPopupButton - - - - 80 - - - - _encodingPopupButton - - - - 92 - - - - _syntaxPopupButton - - - - 98 - - - - _infoPermissionField - - - - 103 - - - - _infoFinderLockField - - - - 113 - - - - _listController - - - - 132 - - - - _tabView - - - - 133 - - - - value: arrangedObjects.lineNumber - - - - - - value: arrangedObjects.lineNumber - value - arrangedObjects.lineNumber - 2 - - - 134 - - - - value: arrangedObjects.incompatibleChar - - - - - - value: arrangedObjects.incompatibleChar - value - arrangedObjects.incompatibleChar - 2 - - - 135 - - - - delegate - - - - 136 - - - - close: - - - - 141 - - - - delegate - - - - 151 - - - - selectedIndex: _tabViewSelectedIndex - - - - - - selectedIndex: _tabViewSelectedIndex - selectedIndex - _tabViewSelectedIndex - 2 - - - 182 - - - - selectedIndex: _tabViewSelectedIndex - - - - - - selectedIndex: _tabViewSelectedIndex - selectedIndex - _tabViewSelectedIndex - 2 - - - 184 - - - - _tabViewSelectionPopUpButton - - - - 185 - - - - value: arrangedObjects.convertedChar - - - - - - value: arrangedObjects.convertedChar - value - arrangedObjects.convertedChar - - NSConditionallySetsEditable - - - 2 - - - 187 - - - - _listTableView - - - - 192 - - - - _listErrorTextField - - - - 193 - - - - _printAccessoryView - - - - 237 - - - - _infoOwnerField - - - - 414 - - - - _infoSingleCharField - - - - 447 - - - - _printSettingController - - - - 449 - - - - value: selection.printHeader - - - - - - value: selection.printHeader - value - selection.printHeader - 2 - - - 450 - - - - selectedIndex: selection.headerOneStringIndex - - - - - - selectedIndex: selection.headerOneStringIndex - selectedIndex - selection.headerOneStringIndex - 2 - - - 451 - - - - selectedIndex: selection.headerTwoStringIndex - - - - - - selectedIndex: selection.headerTwoStringIndex - selectedIndex - selection.headerTwoStringIndex - 2 - - - 452 - - - - enabled: selection.printHeader - - - - - - enabled: selection.printHeader - enabled - selection.printHeader - 2 - - - 453 - - - - enabled: selection.printHeader - - - - - - enabled: selection.printHeader - enabled - selection.printHeader - 2 - - - 454 - - - - enabled: selection.printHeader - - - - - - enabled: selection.printHeader - enabled - selection.printHeader - 2 - - - 455 - - - - enabled2: selection.headerOneStringIndex - - - - - - enabled2: selection.headerOneStringIndex - enabled2 - selection.headerOneStringIndex - - - - - - - - 2 - - - 457 - - - - selectedIndex: selection.headerOneAlignIndex - - - - - - selectedIndex: selection.headerOneAlignIndex - selectedIndex - selection.headerOneAlignIndex - 2 - - - 458 - - - - selectedIndex: selection.headerTwoAlignIndex - - - - - - selectedIndex: selection.headerTwoAlignIndex - selectedIndex - selection.headerTwoAlignIndex - 2 - - - 459 - - - - enabled: selection.printHeader - - - - - - enabled: selection.printHeader - enabled - selection.printHeader - 2 - - - 460 - - - - enabled2: selection.headerTwoStringIndex - - - - - - enabled2: selection.headerTwoStringIndex - enabled2 - selection.headerTwoStringIndex - - - - - - - - 2 - - - 462 - - - - value: selection.printFooter - - - - - - value: selection.printFooter - value - selection.printFooter - 2 - - - 463 - - - - selectedIndex: selection.footerOneStringIndex - - - - - - selectedIndex: selection.footerOneStringIndex - selectedIndex - selection.footerOneStringIndex - 2 - - - 464 - - - - selectedIndex: selection.footerTwoStringIndex - - - - - - selectedIndex: selection.footerTwoStringIndex - selectedIndex - selection.footerTwoStringIndex - 2 - - - 465 - - - - enabled: selection.printFooter - - - - - - enabled: selection.printFooter - enabled - selection.printFooter - 2 - - - 466 - - - - enabled: selection.printFooter - - - - - - enabled: selection.printFooter - enabled - selection.printFooter - 2 - - - 467 - - - - selectedIndex: selection.footerOneAlignIndex - - - - - - selectedIndex: selection.footerOneAlignIndex - selectedIndex - selection.footerOneAlignIndex - 2 - - - 468 - - - - selectedIndex: selection.footerTwoAlignIndex - - - - - - selectedIndex: selection.footerTwoAlignIndex - selectedIndex - selection.footerTwoAlignIndex - 2 - - - 469 - - - - enabled: selection.printFooter - - - - - - enabled: selection.printFooter - enabled - selection.printFooter - 2 - - - 470 - - - - enabled2: selection.footerTwoStringIndex - - - - - - enabled2: selection.footerTwoStringIndex - enabled2 - selection.footerTwoStringIndex - - - - - - - - 2 - - - 472 - - - - enabled: selection.printFooter - - - - - - enabled: selection.printFooter - enabled - selection.printFooter - 2 - - - 473 - - - - enabled2: selection.footerOneStringIndex - - - - - - enabled2: selection.footerOneStringIndex - enabled2 - selection.footerOneStringIndex - - - - - - - - 2 - - - 475 - - - - value: selection.printFooterSeparator - - - - - - value: selection.printFooterSeparator - value - selection.printFooterSeparator - 2 - - - 476 - - - - selectedIndex: selection.printLineNumIndex - - - - - - selectedIndex: selection.printLineNumIndex - selectedIndex - selection.printLineNumIndex - 2 - - - 477 - - - - selectedIndex: selection.printInvisibleCharIndex - - - - - - selectedIndex: selection.printInvisibleCharIndex - selectedIndex - selection.printInvisibleCharIndex - 2 - - - 478 - - - - value: selection.printHeaderSeparator - - - - - - value: selection.printHeaderSeparator - value - selection.printHeaderSeparator - 2 - - - 479 - - - - _infoEncodingField - - - - 513 - - - - _infoLineEndingsField - - - - 514 - - - - setLineEndingChar: - - - - 519 - - - - setLineEndingChar: - - - - 520 - - - - setLineEndingChar: - - - - 521 - - - - selectedIndex: selection.printColorIndex - - - - - - selectedIndex: selection.printColorIndex - selectedIndex - selection.printColorIndex - 2 - - - 592 - - - - _infoInLineField - - - - 665 - - - - - - 0 - - - - - - -2 - - - File's Owner - - - -1 - - - First Responder - - - -3 - - - Application - - - 5 - - - - - - Window - - - 6 - - - - - - - - 27 - - - - - 32 - - - InfoDrawer - - - 34 - - - - - - - - InfoView - - - 115 - - - - - - - - - 116 - - - - - - - - 118 - - - - - - - - 411 - - - - - - - - - - 108 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 39 - - - - - - - - 40 - - - - - - - - 41 - - - - - - - - 42 - - - - - - - - 43 - - - - - - - - 47 - - - - - - - - 48 - - - - - - - - 49 - - - - - - - - 50 - - - - - - 56 - - - - - - - - 57 - - - - - - - - 59 - - - - - - - - 60 - - - - - - - - 61 - - - - - - - - 62 - - - - - - - - 101 - - - - - - - - 102 - - - - - - - - 110 - - - - - - - - 114 - - - - - - - - 412 - - - - - - - - 413 - - - - - - - - 445 - - - - - - - - 446 - - - - - - - - 507 - - - - - - - - 508 - - - - - - - - 509 - - - - - - - - 510 - - - - - - - - 511 - - - - - - 661 - - - - - - - - 662 - - - - - - - - 117 - - - - - - - - 119 - - - - - - - - - 121 - - - - - - - - - - - 122 - - - - - - - - - - 123 - - - - - - - - 124 - - - - - - - - 186 - - - - - - - - 150 - - - - - - - - 140 - - - - - - - - 142 - - - - - - - - 71 - - - CEToolbarController - - - 74 - - - - - - - - toolbarItems - - - 77 - - - - - - - - 90 - - - - - - - - 96 - - - - - - - - 127 - - - listController - - - 196 - - - - - - - - - - - - - - printAccessoryView - - - 297 - - - - - - - - - - - - - - - 299 - - - - - - - - - - - - - - - 415 - - - - - - - - 416 - - - - - - - - 423 - - - - - - - - 424 - - - - - - - - 493 - - - - - - - - 584 - - - - - - - - 585 - - - - - - - - 448 - - - printSettingController - - - 670 - - - - - 671 - - - - - 672 - - - - - 673 - - - - - 674 - - - - - 675 - - - - - 676 - - - - - 677 - - - - - 678 - - - - - 679 - - - - - 680 - - - - - 681 - - - - - 682 - - - - - 683 - - - - - 684 - - - - - 685 - - - - - 686 - - - - - 687 - - - - - 688 - - - - - 689 - - - - - 690 - - - - - 691 - - - - - 692 - - - - - 693 - - - - - 694 - - - - - 695 - - - - - 696 - - - - - 697 - - - - - 698 - - - - - 699 - - - - - 700 - - - - - - - - 701 - - - - - - - - 702 - - - - - - - - 703 - - - - - - - - 716 - - - - - 717 - - - - - - - - 718 - - - - - 719 - - - - - - - - 720 - - - - - 721 - - - - - 722 - - - - - - - - 727 - - - - - 728 - - - - - 729 - - - - - 143 - - - - - - - - - 145 - - - - - 144 - - - - - 76 - - - - - - - - - - 441 - - - - - 440 - - - - - 75 - - - - - 88 - - - - - - - - 87 - - - - - 93 - - - - - - - - 95 - - - - - 417 - - - - - - - - - - 420 - - - - - 419 - - - - - 418 - - - - - 425 - - - - - - - - - - 428 - - - - - 427 - - - - - 426 - - - - - 587 - - - - - - - - - 590 - - - - - 589 - - - - - 730 - - - - - 731 - - - - - 732 - - - - - 733 - - - - - 734 - - - - - 198 - - - - - - - - 704 - - - - - - - - 199 - - - - - - - - - - - - - 200 - - - - - 202 - - - - - 203 - - - - - 206 - - - - - 393 - - - - - 394 - - - - - 212 - - - - - - - - - - - 723 - - - - - 215 - - - - - 214 - - - - - 213 - - - - - 216 - - - - - - - - 705 - - - - - 252 - - - - - - - - - - - 724 - - - - - 255 - - - - - 254 - - - - - 253 - - - - - 256 - - - - - - - - 706 - - - - - 257 - - - - - - - - 707 - - - - - 303 - - - - - - - - 708 - - - - - 305 - - - - - - - - 709 - - - - - - - - 306 - - - - - - - - - - - - - 307 - - - - - 310 - - - - - 311 - - - - - 312 - - - - - 395 - - - - - 396 - - - - - 272 - - - - - - - - - - - 725 - - - - - 275 - - - - - 274 - - - - - 273 - - - - - 276 - - - - - - - - 710 - - - - - 291 - - - - - - - - - - - 726 - - - - - 294 - - - - - 293 - - - - - 292 - - - - - 295 - - - - - - - - 711 - - - - - 296 - - - - - - - - 712 - - - - - 304 - - - - - - - - 713 - - - - - 313 - - - - - - - - 714 - - - - - - - - 314 - - - - - - - - - - - - - 315 - - - - - 318 - - - - - 319 - - - - - 320 - - - - - 397 - - - - - 398 - - - - - 321 - - - - - - - - 715 - - - - - - - - 322 - - - - - - - - - - - - - 323 - - - - - 326 - - - - - 327 - - - - - 328 - - - - - 399 - - - - - 400 - - - - - 51 - - - - - 512 - - - - - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - - - - - 734 - - - 0 - IBCocoaFramework - - com.apple.InterfaceBuilder.CocoaPlugin.macosx - - - YES - 3 - - {9, 8} - {7, 2} - {16, 15} - {15, 15} - {16, 16} - {16, 16} - {16, 16} - - - diff --git a/Japanese.lproj/DocWindow.nib/keyedobjects.nib b/Japanese.lproj/DocWindow.nib/keyedobjects.nib deleted file mode 100644 index adb0b44791..0000000000 Binary files a/Japanese.lproj/DocWindow.nib/keyedobjects.nib and /dev/null differ diff --git a/Japanese.lproj/HCCManager.nib/classes.nib b/Japanese.lproj/HCCManager.nib/classes.nib deleted file mode 100644 index ad7aec337d..0000000000 --- a/Japanese.lproj/HCCManager.nib/classes.nib +++ /dev/null @@ -1,64 +0,0 @@ - - - - - IBClasses - - - ACTIONS - - addComboBoxDataCurrentString - id - exportHexColorCode - id - swapColor - id - toggleDisclosureButton - id - - CLASS - CEHCCManager - LANGUAGE - ObjC - OUTLETS - - _backColorDataController - id - _backgroundColorComboBox - id - _backgroundColorWell - id - _disclosureButton - id - _foreColorComboBox - id - _foreColorDataController - id - _foreColorWell - id - _optionView - id - _sampleTextField - id - - SUPERCLASS - NSObject - - - ACTIONS - - - id - - CLASS - FirstResponder - LANGUAGE - ObjC - SUPERCLASS - NSObject - - - IBVersion - 1 - - diff --git a/Japanese.lproj/HCCManager.nib/info.nib b/Japanese.lproj/HCCManager.nib/info.nib deleted file mode 100644 index 5cf7cdef1f..0000000000 --- a/Japanese.lproj/HCCManager.nib/info.nib +++ /dev/null @@ -1,16 +0,0 @@ - - - - - IBFramework Version - 677 - IBOldestOS - 5 - IBOpenObjects - - IBSystem Version - 9G55 - targetFramework - IBCocoaFramework - - diff --git a/Japanese.lproj/HCCManager.nib/keyedobjects.nib b/Japanese.lproj/HCCManager.nib/keyedobjects.nib deleted file mode 100644 index e20616c4c9..0000000000 Binary files a/Japanese.lproj/HCCManager.nib/keyedobjects.nib and /dev/null differ diff --git a/Japanese.lproj/Indicator.nib/classes.nib b/Japanese.lproj/Indicator.nib/classes.nib deleted file mode 100644 index 12b450626c..0000000000 --- a/Japanese.lproj/Indicator.nib/classes.nib +++ /dev/null @@ -1,45 +0,0 @@ - - - - - IBClasses - - - CLASS - NSObject - LANGUAGE - ObjC - - - ACTIONS - - cancelColoring - id - - CLASS - CESyntax - LANGUAGE - ObjC - OUTLETS - - _coloringCaption - id - _coloringIndicator - id - - SUPERCLASS - NSObject - - - CLASS - FirstResponder - LANGUAGE - ObjC - SUPERCLASS - NSObject - - - IBVersion - 1 - - diff --git a/Japanese.lproj/Indicator.nib/info.nib b/Japanese.lproj/Indicator.nib/info.nib deleted file mode 100644 index 9acae11af6..0000000000 --- a/Japanese.lproj/Indicator.nib/info.nib +++ /dev/null @@ -1,18 +0,0 @@ - - - - - IBFramework Version - 677 - IBLastKnownRelativeProjectPath - ../../CotEditor.xcodeproj - IBOldestOS - 3 - IBOpenObjects - - IBSystem Version - 9G55 - targetFramework - IBCocoaFramework - - diff --git a/Japanese.lproj/Indicator.nib/keyedobjects.nib b/Japanese.lproj/Indicator.nib/keyedobjects.nib deleted file mode 100644 index 4fd6478c31..0000000000 Binary files a/Japanese.lproj/Indicator.nib/keyedobjects.nib and /dev/null differ diff --git a/Japanese.lproj/InfoPlist.strings b/Japanese.lproj/InfoPlist.strings deleted file mode 100644 index 35aff5feab..0000000000 Binary files a/Japanese.lproj/InfoPlist.strings and /dev/null differ diff --git a/Japanese.lproj/KeyBindingManager.nib/classes.nib b/Japanese.lproj/KeyBindingManager.nib/classes.nib deleted file mode 100644 index 28e34396c7..0000000000 --- a/Japanese.lproj/KeyBindingManager.nib/classes.nib +++ /dev/null @@ -1,78 +0,0 @@ - - - - - IBClasses - - - ACTIONS - - closeKeyBindingEditSheet - id - deleteKeyBindingKey - id - editKeyBindingKey - id - resetOutlineDataArrayToFactoryDefaults - id - - CLASS - CEKeyBindingManager - LANGUAGE - ObjC - OUTLETS - - _menuDeleteKeyButton - id - _menuDuplicateTextField - id - _menuEditKeyButton - id - _menuEditSheet - id - _menuFactoryDefaultsButton - id - _menuOkButton - id - _menuOutlineView - id - _textDeleteKeyButton - id - _textDuplicateTextField - id - _textEditKeyButton - id - _textEditSheet - id - _textFactoryDefaultsButton - id - _textInsertStringArrayController - id - _textInsertStringTextView - id - _textOkButton - id - _textOutlineView - id - - SUPERCLASS - NSObject - - - ACTIONS - - - id - - CLASS - FirstResponder - LANGUAGE - ObjC - SUPERCLASS - NSObject - - - IBVersion - 1 - - diff --git a/Japanese.lproj/KeyBindingManager.nib/info.nib b/Japanese.lproj/KeyBindingManager.nib/info.nib deleted file mode 100644 index 89b060e5c8..0000000000 --- a/Japanese.lproj/KeyBindingManager.nib/info.nib +++ /dev/null @@ -1,16 +0,0 @@ - - - - - IBFramework Version - 677 - IBOldestOS - 3 - IBOpenObjects - - IBSystem Version - 9G55 - targetFramework - IBCocoaFramework - - diff --git a/Japanese.lproj/KeyBindingManager.nib/keyedobjects.nib b/Japanese.lproj/KeyBindingManager.nib/keyedobjects.nib deleted file mode 100644 index b217468e71..0000000000 Binary files a/Japanese.lproj/KeyBindingManager.nib/keyedobjects.nib and /dev/null differ diff --git a/Japanese.lproj/Localizable.strings b/Japanese.lproj/Localizable.strings deleted file mode 100644 index 8b0e21f07a..0000000000 Binary files a/Japanese.lproj/Localizable.strings and /dev/null differ diff --git a/Japanese.lproj/MainMenu.nib/designable.nib b/Japanese.lproj/MainMenu.nib/designable.nib deleted file mode 100644 index 1068125ff5..0000000000 --- a/Japanese.lproj/MainMenu.nib/designable.nib +++ /dev/null @@ -1,8209 +0,0 @@ - - - - 1050 - 10J869 - 823 - 1038.35 - 461.00 - - com.apple.InterfaceBuilder.CocoaPlugin - 823 - - - YES - - - YES - com.apple.InterfaceBuilder.CocoaPlugin - - - PluginDependencyRecalculationVersion - - - - YES - - CEApplication - - - FirstResponder - - - NSApplication - - - MainMenu - - YES - - - CotEditor - - 1048576 - 2147483647 - - NSImage - NSMenuCheckmark - - - NSImage - NSMenuMixedState - - submenuAction: - - CotEditor - - YES - - - CotEditor について - - 2147483647 - - - - - - アップデートを確認... - - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - 環境設定... - , - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - サービス - - 1048576 - 2147483647 - - - submenuAction: - 999 - - サービス - - YES - - _NSServicesMenu - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - CotEditor を隠す - h - 1048576 - 2147483647 - - - - - - ほかを隠す - h - 1572864 - 2147483647 - - - - - - すべてを表示 - - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - CotEditor を終了 - q - 1048576 - 2147483647 - - - - - _NSAppleMenu - - - - - ファイル - - 1048576 - 2147483647 - - - submenuAction: - - ファイル - - YES - - - 新規 - n - 1048576 - 2147483647 - - - 100 - - - - 開く... - o - 1048576 - 2147483647 - - - 101 - - - - YES - 非表示ファイルを開く... - O - 1048576 - 2147483647 - - - 102 - - - - 最近使った項目を開く - - 1048576 - 2147483647 - - - submenuAction: - 102 - - 最近使った項目を開く - - YES - - - メニューを消去 - - 1048576 - 2147483647 - - - - - _NSRecentDocumentsMenu - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - 情報を見る - i - 1048576 - 2147483647 - - - - - - 非互換文字を表示 - I - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - 閉じる - w - 1048576 - 2147483647 - - - - - - 保存 - s - 1048576 - 2147483647 - - - - - - 別名で保存... - S - 1048576 - 2147483647 - - - - - - 元に戻す - - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - ページ設定... - P - 1048576 - 2147483647 - - - - - - プリント... - p - 1048576 - 2147483647 - - - - - - - - - 編集 - - 1048576 - 2147483647 - - - submenuAction: - - 編集 - - YES - - - 取り消し - z - 1048576 - 2147483647 - - - - - - やり直し - Z - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - カット - x - 1048576 - 2147483647 - - - - - - コピー - c - 1048576 - 2147483647 - - - - - - ペースト - v - 1048576 - 2147483647 - - - - - - 削除 - - 1048576 - 2147483647 - - - - - - すべてを選択 - a - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - バックスラッシュを入力 - ¥ - 1048576 - 2147483647 - - - 209 - - - - 半角円マークを入力 - y - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - エンコーディング名を挿入 - - 1048576 - 2147483647 - - - submenuAction: - - エンコーディング名を挿入 - - YES - - - IANA文字コード名 - - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - + "charset=" - - 1048576 - 2147483647 - - - - - - + "encoding=" - - 1048576 - 2147483647 - - - - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - スペル - - 1048576 - 2147483647 - - - submenuAction: - - スペル - - YES - - - スペル... - : - 1048576 - 2147483647 - - - - - - スペルチェック - ; - 1048576 - 2147483647 - - - - - - 入力中に自動スペルチェック - - 1048576 - 2147483647 - - - - - - - - - - - - 表示 - - 1048576 - 2147483647 - - - submenuAction: - - 表示 - - YES - - - ナビゲーションバーを表示 - - 1048576 - 2147483647 - - - - - - 行番号を表示 - - 1048576 - 2147483647 - - - - - - ステータスバーを表示 - - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - 不可視文字を表示 - - 1048576 - 2147483647 - - - 304 - - - - ページガイドを表示 - - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - エディタを分割 - " - 1048576 - 2147483647 - - - - - - フォーカスを次の分割エディタへ - - 1835008 - 2147483647 - - - - - - フォーカスを前の分割エディタへ - - 1835008 - 2147483647 - - - - - - 分割エディタを閉じる - ' - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - ウインドウの透明度... - T - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - ツールバーを隠す - - 1048576 - 2147483647 - - - - - - ツールバーをカスタマイズ... - - 1048576 - 2147483647 - - - - - - - - - フォーマット - - 1048576 - 2147483647 - - - submenuAction: - - フォーマット - - YES - - - フォント - - 1048576 - 2147483647 - - - submenuAction: - - フォント - - YES - - - フォントパネルを表示 - t - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - 大きく - + - 1048576 - 2147483647 - - - 3 - - - - 小さく - - - 1048576 - 2147483647 - - - 4 - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - デフォルトに戻す - = - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - アンチエイリアス適用 - - 1048576 - 2147483647 - - - - - _NSFontMenu - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - 行を折り返す - - 1048576 - 2147483647 - - - - - - 行間 - - 1048576 - 2147483647 - - - submenuAction: - - 行間 - - YES - - - 0 - - 1048576 - 2147483647 - - - - - - 0.25 - - 1048576 - 2147483647 - - - - - - 0.5 - - 1048576 - 2147483647 - - - - - - 0.75 - - 1048576 - 2147483647 - - - - - - 1.0 - - 1048576 - 2147483647 - - - - - - 1.25 - - 1048576 - 2147483647 - - - - - - 1.5 - - 1048576 - 2147483647 - - - - - - 1.75 - - 1048576 - 2147483647 - - - - - - 2.0 - - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - カスタム... - - 1048576 - 2147483647 - - - - - - - - - 行末コード - - 1048576 - 2147483647 - - - submenuAction: - 100 - - 行末コード - - YES - - - Unix(LF) - - 1048576 - 2147483647 - - - - - - Macintosh(CR) - - 1048576 - 2147483647 - - - 1 - - - - Windows(CR/LF) - - 1048576 - 2147483647 - - - 2 - - - - - - - エンコーディング - - 1048576 - 2147483647 - - - submenuAction: - 4001 - - エンコーディング - - YES - - - 項目 - - 1048576 - 2147483647 - - - - - - - - - カラーリング - - 1048576 - 2147483647 - - - submenuAction: - 4002 - - カラーリング - - YES - - - 項目 - - 1048576 - 2147483647 - - - - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - 右へシフト - ] - 1048576 - 2147483647 - - - - - - 左へシフト - [ - 1048576 - 2147483647 - - - - - - - - - 検索 - - 1048576 - 2147483647 - - - submenuAction: - - 検索 - - YES - - - 検索... - f - 1048576 - 2147483647 - - - 1 - - - - 次を検索 - g - 1048576 - 2147483647 - - - 2 - - - - 前を検索 - G - 1048576 - 2147483647 - - - 3 - - - - 選択部分を検索 - e - 1048576 - 2147483647 - - - 7 - - - - 選択部分へジャンプ - j - 1048576 - 2147483647 - - - - - - - - - ユーティリティ - - 1048576 - 2147483647 - - - submenuAction: - - ユーティリティ - - YES - - - 小文字に - - 1048576 - 2147483647 - - - - - - - - - 大文字に - - 1048576 - 2147483647 - - - - - - - - - 先頭の文字を大文字に - - 1048576 - 2147483647 - - - - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - 全角英数に - - 1048576 - 2147483647 - - - - - - - - - 半角英数に - - 1048576 - 2147483647 - - - - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - ひらがなをカタカナに - - 1048576 - 2147483647 - - - - - - カタカナをひらがなに - - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Unicode 正規化 - - 1048576 - 2147483647 - - - submenuAction: - - Unicode 正規化 - - YES - - - NFD - - 1048576 - 2147483647 - - - - - - NFC - - 1048576 - 2147483647 - - - 1 - - - - NFKD - - 1048576 - 2147483647 - - - 2 - - - - NFKC - - 1048576 - 2147483647 - - - 3 - - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - 文字色として編集... - h - 1310720 - 2147483647 - - - - - - 背景色として編集... - H - 1310720 - 2147483647 - - - - - - - - - - - - ウインドウ - - 1048576 - 2147483647 - - - submenuAction: - - ウインドウ - - YES - - - 拡大/縮小 - - 1048576 - 2147483647 - - - - - - しまう - m - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - すべてを手前に移動 - - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - パネル - - 1048576 - 2147483647 - - - submenuAction: - 7999 - - パネル - - YES - - - 透明度パネル - 1 - 1048576 - 2147483647 - - - - - - 移動パネル - 2 - 1048576 - 2147483647 - - - - - - カラーコードエディタ - 3 - 1048576 - 2147483647 - - - - - - スクリプトエラー - 4 - 1048576 - 2147483647 - - - - - - - - _NSWindowsMenu - - - - - スクリプト - - 1048576 - 2147483647 - - - submenuAction: - 800 - - スクリプト - - YES - - - 項目 - - 1048576 - 2147483647 - - - - - - - - - ヘルプ - - 1048576 - 2147483647 - - - submenuAction: - - ヘルプ - - YES - - - CotEditor ヘルプ - ? - 1048576 - 2147483647 - - - - - - 付属ドキュメント - - 2147483647 - - - submenuAction: - - 付属ドキュメント - - YES - - - ReadMe - - 2147483647 - - - 300 - - - - バージョン履歴 - - 2147483647 - - - 301 - - - - 既知の問題 - - 2147483647 - - - 302 - - - - ATOKユーザの方へ - - 2147483647 - - - 303 - - - - バージョン 0.7.x 以前のユーザの方へ - - 2147483647 - - - 304 - - - - YES - YES - - - 2147483647 - - - - - - ライセンス - - 2147483647 - - - 100 - - - - OgreKitライセンス - - 2147483647 - - - 101 - - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - 用語説明を開く... - - 1048576 - 2147483647 - - - - - - - - _NSMainMenu - - - OgreTextFinder - - - CEAppController - - - CEDocumentController - - - - 258 - - YES - - - 260 - {{167, 8}, {233, 26}} - - YES - - -2076049856 - 1024 - - LucidaGrande - 13 - 1044 - - - 109199615 - 1 - - - - - - - - 400 - 75 - - - 自動認識 - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - YES - - - - YES - YES - - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 3 - YES - YES - 1 - - - - - 260 - {{25, 14}, {140, 17}} - - YES - - 67239424 - 71303168 - エンコーディング: - - - - 6 - System - controlColor - - 3 - MC42NjY2NjY2NjY3AA - - - - 6 - System - controlTextColor - - 3 - MAA - - - - - - {435, 43} - - NSView - - NSResponder - - - 19 - 2 - {{21, 309}, {296, 113}} - -260571136 - ウインドウの透明度 - NSPanel - - View - - {1.79769e+308, 1.79769e+308} - {213, 113} - - - 256 - - YES - - - 256 - {{61, 58}, {174, 26}} - - YES - - 604372736 - 0 - - - - - Helvetica - 12 - 16 - - - 1 - 0.20000000000000001 - 1 - 0.0 - 17 - 1 - YES - NO - - - - - 256 - {{128, 89}, {40, 18}} - - YES - - -2068709823 - 71435264 - - 0 - 1 - NO - YES - 1 - AQAAAAAAAAAAAAAAAAAAAA - - - LucidaGrande - 11 - 3100 - - - - YES - - YES - allowsFloats - attributedStringForNil - attributedStringForNotANumber - attributedStringForZero - decimalSeparator - formatterBehavior - groupingSeparator - locale - negativeFormat - positiveFormat - usesGroupingSeparator - - - YES - - - - - - NaN - - YES - - YES - - - YES - - - - - 0.00 - - - . - - , - - - - -0.00 - 0.00 - - - - 0.00 - -0.00 - - - - - - - 0 - 0 - YES - NO - 1 - AAAAAAAAAAAAAAAAAAAAAA - - - - . - , - NO - NO - YES - - - - 6 - System - textBackgroundColor - - 3 - MQA - - - - 6 - System - disabledControlTextColor - - 3 - MC4zMzMzMzMzMzMzAA - - - - - - - 256 - {{60, 36}, {178, 18}} - - YES - - 604110336 - 131072 - テキストビューのみ - - - 1211912703 - 2 - - NSImage - NSSwitch - - - NSSwitch - - - - 200 - 25 - - - - - 256 - {{164, 14}, {113, 16}} - - YES - - 604110336 - 134479872 - 全ウインドウに適用 - - LucidaGrande - 9 - 3614 - - - -2038284033 - 1 - - LucidaGrande - 9 - 16 - - - - - - 200 - 25 - - - - {{1, 1}, {296, 113}} - - {{0, 0}, {1280, 1002}} - {213, 129} - {1.79769e+308, 1.79769e+308} - transparencyPanel - - - - YES - curWindowAlpha - curAlphaOnlyTextView - - YES - - - - NSFontManager - - - 19 - 2 - {{97, 646}, {258, 113}} - -260571136 - 移動 - NSPanel - - View - - {1.79769e+308, 1.79769e+308} - {213, 113} - - - 256 - - YES - - - 256 - {{18, 57}, {92, 38}} - - YES - 2 - 1 - - YES - - -2080244224 - 0 - 文字 - - - 1211912703 - 0 - - NSImage - NSRadioButton - - - NSRadioButton - - - - - - 200 - 25 - - - 67239424 - 0 - - - - 1 - 1211912703 - 0 - - - - - 200 - 25 - - - {92, 18} - {4, 2} - 1143472128 - NSActionCell - - 67239424 - 0 - Radio - - 1211912703 - 0 - - - - - 400 - 75 - - - - - - - - - 256 - {{116, 66}, {122, 22}} - - YES - - -1267597759 - 4195328 - - - - YES - - - 6 - System - textColor - - - - - - - 256 - {{134, 18}, {100, 32}} - - YES - - 604110336 - 134217728 - 選択 - - - -2038284033 - 1 - - - DQ - 200 - 25 - - - - {{1, 9}, {258, 113}} - - {{0, 0}, {1280, 1002}} - {213, 129} - {1.79769e+308, 1.79769e+308} - gotoWindow - - - YES - - - 19 - 2 - {{396, 383}, {226, 121}} - -260571136 - 行間(カスタム) - - NSPanel - - - View - - {1.79769e+308, 1.79769e+308} - {213, 113} - - - 256 - - YES - - - 256 - {{140, 74}, {64, 14}} - - YES - - 67239424 - 272629760 - - - - - - - - - - 256 - {{51, 72}, {84, 22}} - - YES - - -1804468671 - 272630784 - - - - YES - - - - - - - 256 - {{112, 12}, {100, 32}} - - YES - - 67239424 - 134217728 - OK - - - -2038284033 - 1 - - - DQ - 200 - 25 - - - - - 256 - {{14, 12}, {100, 32}} - - YES - - 67239424 - 134217728 - キャンセル - - - -2038284033 - 1 - - - Gw - 200 - 25 - - - - - 256 - {{51, 57}, {84, 13}} - - YES - - 67239424 - 138412032 - ( 0 - 10.0 ) - - LucidaGrande - 10 - 2843 - - - - - - - - {{1, 1}, {226, 121}} - - {{0, 0}, {1280, 1002}} - {213, 129} - {1.79769e+308, 1.79769e+308} - lineSpacingPanel - - - SUUpdater - - - - - YES - - - performMiniaturize: - - - - 37 - - - - arrangeInFront: - - - - 39 - - - - runPageLayout: - - - - 87 - - - - showHelp: - - - - 122 - - - - clearRecentDocuments: - - - - 127 - - - - terminate: - - - - 139 - - - - orderFrontStandardAboutPanel: - - - - 142 - - - - hideOtherApplications: - - - - 146 - - - - hide: - - - - 152 - - - - unhideAllApplications: - - - - 153 - - - - cut: - - - - 175 - - - - paste: - - - - 176 - - - - redo: - - - - 178 - - - - selectAll: - - - - 179 - - - - undo: - - - - 180 - - - - copy: - - - - 181 - - - - showGuessPanel: - - - - 188 - - - - checkSpelling: - - - - 190 - - - - toggleContinuousSpellChecking: - - - - 192 - - - - performClose: - - - - 193 - - - - newDocument: - - - - 194 - - - - openDocument: - - - - 195 - - - - saveDocument: - - - - 196 - - - - saveDocumentAs: - - - - 197 - - - - revertDocumentToSaved: - - - - 198 - - - - printDocument: - - - - 200 - - - - delete: - - - - 201 - - - - performZoom: - - - - 204 - - - - toggleWrapLines: - - - - 288 - - - - delegate - - - - 291 - - - - openPrefWindow: - - - - 293 - - - - toggleShowLineNum: - - - - 326 - - - - _openPanelAccessoryView - - - - 348 - - - - _appController - - - - 350 - - - - toggleShowStatusBar: - - - - 356 - - - - _accessoryEncodingMenu - - - - 357 - - - - _windowAlphaField - - - - 383 - - - - _windowAlphaSetButton - - - - 384 - - - - _windowAlphaSlider - - - - 385 - - - - value: selection.curWindowAlpha - - - - - - value: selection.curWindowAlpha - value - selection.curWindowAlpha - 2 - - - 387 - - - - _transparencyController - - - - 389 - - - - value: selection.curWindowAlpha - - - - - - value: selection.curWindowAlpha - value - selection.curWindowAlpha - - YES - - YES - NSConditionallySetsEditable - NSNoSelectionPlaceholder - - - YES - - IA - - - 2 - - - 395 - - - - orderFrontFontPanel: - - - - 431 - - - - modifyFont: - - - - 439 - - - - modifyFont: - - - - 449 - - - - shiftRight: - - - - 456 - - - - shiftLeft: - - - - 457 - - - - performFindPanelAction: - - - - 539 - - - - performFindPanelAction: - - - - 540 - - - - performFindPanelAction: - - - - 541 - - - - centerSelectionInVisibleArea: - - - - 542 - - - - performFindPanelAction: - - - - 543 - - - - selectedIndex: values.gotoObjectMenuIndex - - - - - - selectedIndex: values.gotoObjectMenuIndex - selectedIndex - values.gotoObjectMenuIndex - 2 - - - 556 - - - - setWindowAlpha: - - - - 557 - - - - _gotoIndexField - - - - 558 - - - - setAllWindowAlpha: - - - - 559 - - - - gotoCharacterOrLine: - - - - 562 - - - - _gotoSelectButton - - - - 563 - - - - getInfo: - - - - 565 - - - - value: selection.curAlphaOnlyTextView - - - - - - value: selection.curAlphaOnlyTextView - value - selection.curAlphaOnlyTextView - 2 - - - 571 - - - - setTransparencyOnlyTextView: - - - - 572 - - - - _windowAlphaTextViewOnlyButton - - - - 573 - - - - resetFont: - - - - 575 - - - - exchangeLowercase: - - - - 580 - - - - exchangeUppercase: - - - - 582 - - - - exchangeCapitalized: - - - - 584 - - - - exchangeFullwidthRoman: - - - - 587 - - - - exchangeHalfwidthRoman: - - - - 590 - - - - exchangeKatakana: - - - - 593 - - - - exchangeHiragana: - - - - 596 - - - - unicodeNormalizationNFD: - - - - 604 - - - - setLineEndingCharToLF: - - - - 608 - - - - toggleToolbarShown: - - - - 614 - - - - runToolbarCustomizationPalette: - - - - 615 - - - - openAppleScriptDictionary: - - - - 621 - - - - _gotoCharLineMatrix - - - - 629 - - - - inputYenMark: - - - - 634 - - - - inputBackSlash: - - - - 635 - - - - editHexColorCodeAsForeColor: - - - - 642 - - - - editHexColorCodeAsBGColor: - - - - 647 - - - - openHexColorCodeEditor: - - - - 652 - - - - openScriptErrorWindow: - - - - 654 - - - - openTransparencyPanel: - - - - 657 - - - - openGotoPanel: - - - - 658 - - - - openTransparencyPanel: - - - - 659 - - - - insertIANACharSetName: - - - - 666 - - - - insertIANACharSetNameWithCharset: - - - - 668 - - - - insertIANACharSetNameWithEncoding: - - - - 669 - - - - toggleIncompatibleCharList: - - - - 680 - - - - toggleShowNavigationBar: - - - - 682 - - - - setLineEndingCharToCR: - - - - 683 - - - - setLineEndingCharToCRLF: - - - - 684 - - - - unicodeNormalizationNFC: - - - - 685 - - - - unicodeNormalizationNFKD: - - - - 686 - - - - unicodeNormalizationNFKC: - - - - 687 - - - - openHiddenDocument: - - - - 690 - - - - toggleUseAntialias: - - - - 747 - - - - toggleShowPageGuide: - - - - 750 - - - - setLineSpacingFromMenu: - - - - 760 - - - - setLineSpacingFromMenu: - - - - 761 - - - - setLineSpacingFromMenu: - - - - 762 - - - - setLineSpacingFromMenu: - - - - 763 - - - - setLineSpacingFromMenu: - - - - 764 - - - - setLineSpacingFromMenu: - - - - 765 - - - - setLineSpacingFromMenu: - - - - 766 - - - - setLineSpacingFromMenu: - - - - 768 - - - - setLineSpacingFromMenu: - - - - 770 - - - - initialFirstResponder - - - - 781 - - - - _lineSpacingField - - - - 782 - - - - setCustomLineSpacing: - - - - 783 - - - - openLineSpacingPanel: - - - - 784 - - - - closeLineSpacingPanel: - - - - 785 - - - - toggleShowInvisibleChars: - - - - 791 - - - - openSplitTextView: - - - - 797 - - - - closeSplitTextView: - - - - 798 - - - - focusNextSplitTextView: - - - - 799 - - - - focusPrevSplitTextView: - - - - 800 - - - - openBundledDocument: - - - - 827 - - - - openBundledDocument: - - - - 828 - - - - openBundledDocument: - - - - 829 - - - - openBundledDocument: - - - - 830 - - - - openBundledDocument: - - - - 831 - - - - openBundledDocument: - - - - 832 - - - - openBundledDocument: - - - - 834 - - - - checkForUpdates: - - - - 838 - - - - - YES - - 0 - - - - - - -2 - - - File's Owner - - - -1 - - - First Responder - - - -3 - - - Application - - - 29 - - - YES - - - - - - - - - - - - - MainMenu - - - 19 - - - YES - - - - - - 24 - - - YES - - - - - - - - - - - 5 - - - - - 23 - - - - - 92 - - - - - 203 - - - - - 622 - - - - - 649 - - - YES - - - - - - 650 - - - YES - - - - - - - - - 651 - - - - - 653 - - - - - 655 - - - - - 656 - - - - - 56 - - - YES - - - - - - 57 - - - YES - - - - - - - - - - - - - - - - - 58 - - - - - 129 - - - - - 131 - - - YES - - - - - - 130 - - - - - 134 - - - - - 136 - - - - - 143 - - - - - 144 - - - - - 145 - - - - - 149 - - - - - 150 - - - - - 202 - - - - - 83 - - - YES - - - - - - 81 - - - YES - - - - - - - - - - - - - - - - - - - - 72 - - - - - 73 - - - - - 74 - - - - - 75 - - - - - 77 - - - - - 78 - - - - - 79 - - - - - 80 - - - - - 82 - - - - - 112 - - - - - 124 - - - YES - - - - - - 125 - - - YES - - - - - - 126 - - - - - 335 - - - - - 564 - - - - - 679 - - - - - 688 - - - - - 103 - - - YES - - - - - - 106 - - - YES - - - - - - - - - 111 - - - - - 619 - - - - - 620 - - - - - 163 - - - YES - - - - - - 169 - - - YES - - - - - - - - - - - - - - - - - - - - 156 - - - - - 157 - - - - - 158 - - - - - 160 - - - - - 164 - - - - - 171 - - - - - 172 - - - - - 173 - - - - - 174 - - - - - 184 - - - YES - - - - - - 185 - - - YES - - - - - - - - 187 - - - - - 189 - - - - - 191 - - - - - 630 - - - - - 631 - - - - - 633 - - - - - 660 - - - - - 661 - - - YES - - - - - - 662 - - - YES - - - - - - - - - 663 - - - - - 664 - - - - - 665 - - - - - 667 - - - - - 247 - - - YES - - - - - - 246 - - - YES - - - - - - - - - - - - - - - 286 - - - - - 294 - - - YES - - - - - - 296 - - - YES - - - - - - - - 295 - - - - - 297 - - - - - 298 - - - - - 299 - - - YES - - - - - - 300 - - - YES - - - - - - 301 - - - - - 302 - - - YES - - - - - - 304 - - - YES - - - - - - 458 - - - - - 397 - - - - - 410 - - - YES - - - - - - 418 - - - YES - - - - - - - - - - - - - 398 - - - - - 404 - - - - - 405 - - - - - 424 - - - - - 574 - - - - - 576 - - - - - 745 - - - - - 746 - - - - - 453 - - - - - 454 - - - - - 455 - - - - - 751 - - - YES - - - - - - 752 - - - YES - - - - - - - - - - - - - - - - 753 - - - - - 754 - - - - - 755 - - - - - 756 - - - - - 757 - - - - - 758 - - - - - 759 - - - - - 767 - - - - - 769 - - - - - 771 - - - - - 772 - - - - - 322 - - - YES - - - - - - 324 - - - YES - - - - - - - - - - - - - - - - - - - - - 323 - - - - - 325 - - - - - 366 - - - - - 367 - - - - - 611 - - - - - 612 - - - - - 613 - - - - - 681 - - - - - 748 - - - - - 749 - - - - - 788 - - - - - 792 - - - - - 793 - - - - - 794 - - - - - 795 - - - - - 796 - - - - - 538 - - - YES - - - - - - 535 - - - YES - - - - - - - - - - 532 - - - - - 533 - - - - - 534 - - - - - 536 - - - - - 537 - - - - - 579 - - - YES - - - - - - 578 - - - YES - - - - - - - - - - - - - - - - - - - 577 - - - - - 581 - - - - - 583 - - - - - 585 - - - - - 586 - - - - - 588 - - - - - 591 - - - - - 592 - - - - - 594 - - - - - 597 - - - - - 599 - - - YES - - - - - - 600 - - - YES - - - - - - - - - 598 - - - - - 601 - - - - - 602 - - - - - 603 - - - - - 640 - - - - - 641 - - - - - 645 - - - - - 617 - - - YES - - - - - - 616 - - - YES - - - - - - 618 - - - - - 289 - - - OgreTextFinder - - - 290 - - - CEAppController - - - 329 - - - CEDocumentController - - - 339 - - - YES - - - - - openPanelAccessoryView - - - 343 - - - YES - - - - - - 347 - - - YES - - - - - - 360 - - - YES - - - - TransparencyPanel - - - 359 - - - YES - - - - - - - - - 361 - - - YES - - - - - - 363 - - - YES - - - - - - 371 - - - YES - - - - - - 566 - - - YES - - - - - - 386 - - - TransparencyController - - - 432 - - - Font Manager - - - 547 - - - YES - - - - gotoPanel - - - 546 - - - YES - - - - - - - - 549 - - - YES - - - - - - - - 548 - - - - - 550 - - - - - 551 - - - YES - - - - - - 552 - - - YES - - - - - - 554 - - - Shared Defaults - - - 773 - - - YES - - - - LineSpacingPanel - - - 774 - - - YES - - - - - - - - - - 777 - - - YES - - - - - - 778 - - - YES - - - - - - 779 - - - YES - - - - - - 780 - - - YES - - - - - - 787 - - - YES - - - - - - 804 - - - YES - - - - - - 805 - - - - - 806 - - - - - 807 - - - - - 808 - - - YES - - - - - - 809 - - - - - 810 - - - - - 811 - - - - - 812 - - - - - 813 - - - - - 814 - - - - - 815 - - - - - 816 - - - - - 817 - - - - - 372 - - - - - 344 - - - YES - - - - - - - 351 - - - - - 340 - - - - - 818 - - - YES - - - - - - 819 - - - YES - - - - - - - - - - - - - 820 - - - - - 822 - - - - - 823 - - - - - 824 - - - - - 825 - - - - - 826 - - - - - 833 - - - - - 835 - - - - - 836 - - - - - 837 - - - - - - - YES - - YES - -3.IBPluginDependency - -3.ImportedFromIB2 - 103.IBPluginDependency - 103.ImportedFromIB2 - 106.IBEditorWindowLastContentRect - 106.IBPluginDependency - 106.ImportedFromIB2 - 111.IBPluginDependency - 111.ImportedFromIB2 - 112.IBPluginDependency - 112.ImportedFromIB2 - 124.IBPluginDependency - 124.ImportedFromIB2 - 125.IBEditorWindowLastContentRect - 125.IBPluginDependency - 125.ImportedFromIB2 - 126.IBPluginDependency - 126.ImportedFromIB2 - 129.IBPluginDependency - 129.ImportedFromIB2 - 130.IBPluginDependency - 130.ImportedFromIB2 - 131.IBPluginDependency - 131.ImportedFromIB2 - 134.IBPluginDependency - 134.ImportedFromIB2 - 136.IBPluginDependency - 136.ImportedFromIB2 - 143.IBPluginDependency - 143.ImportedFromIB2 - 144.IBPluginDependency - 144.ImportedFromIB2 - 145.IBPluginDependency - 145.ImportedFromIB2 - 149.IBPluginDependency - 149.ImportedFromIB2 - 150.IBPluginDependency - 150.ImportedFromIB2 - 156.IBPluginDependency - 156.ImportedFromIB2 - 157.IBPluginDependency - 157.ImportedFromIB2 - 158.IBPluginDependency - 158.ImportedFromIB2 - 160.IBPluginDependency - 160.ImportedFromIB2 - 163.IBPluginDependency - 163.ImportedFromIB2 - 164.IBPluginDependency - 164.ImportedFromIB2 - 169.IBEditorWindowLastContentRect - 169.IBPluginDependency - 169.ImportedFromIB2 - 171.IBPluginDependency - 171.ImportedFromIB2 - 172.IBPluginDependency - 172.ImportedFromIB2 - 173.IBPluginDependency - 173.ImportedFromIB2 - 174.IBPluginDependency - 174.ImportedFromIB2 - 184.IBPluginDependency - 184.ImportedFromIB2 - 185.IBEditorWindowLastContentRect - 185.IBPluginDependency - 185.ImportedFromIB2 - 187.IBPluginDependency - 187.ImportedFromIB2 - 189.IBPluginDependency - 189.ImportedFromIB2 - 19.IBPluginDependency - 19.ImportedFromIB2 - 191.IBPluginDependency - 191.ImportedFromIB2 - 202.IBPluginDependency - 202.ImportedFromIB2 - 203.IBPluginDependency - 203.ImportedFromIB2 - 23.IBPluginDependency - 23.ImportedFromIB2 - 24.IBEditorWindowLastContentRect - 24.IBPluginDependency - 24.ImportedFromIB2 - 246.IBEditorWindowLastContentRect - 246.IBPluginDependency - 246.ImportedFromIB2 - 247.IBPluginDependency - 247.ImportedFromIB2 - 286.IBPluginDependency - 286.ImportedFromIB2 - 289.ImportedFromIB2 - 29.IBEditorWindowLastContentRect - 29.IBPluginDependency - 29.ImportedFromIB2 - 290.ImportedFromIB2 - 294.IBPluginDependency - 294.ImportedFromIB2 - 295.IBPluginDependency - 295.ImportedFromIB2 - 296.IBPluginDependency - 296.ImportedFromIB2 - 297.IBPluginDependency - 297.ImportedFromIB2 - 298.IBPluginDependency - 298.ImportedFromIB2 - 299.IBPluginDependency - 299.ImportedFromIB2 - 300.IBPluginDependency - 300.ImportedFromIB2 - 301.IBPluginDependency - 301.ImportedFromIB2 - 302.IBPluginDependency - 302.ImportedFromIB2 - 304.IBPluginDependency - 304.ImportedFromIB2 - 322.IBPluginDependency - 322.ImportedFromIB2 - 323.IBPluginDependency - 323.ImportedFromIB2 - 324.IBEditorWindowLastContentRect - 324.IBPluginDependency - 324.ImportedFromIB2 - 325.IBPluginDependency - 325.ImportedFromIB2 - 329.ImportedFromIB2 - 335.IBPluginDependency - 335.ImportedFromIB2 - 339.IBPluginDependency - 339.ImportedFromIB2 - 340.IBPluginDependency - 340.ImportedFromIB2 - 343.IBPluginDependency - 343.ImportedFromIB2 - 344.IBPluginDependency - 344.ImportedFromIB2 - 347.IBPluginDependency - 347.ImportedFromIB2 - 351.IBPluginDependency - 351.ImportedFromIB2 - 359.IBPluginDependency - 359.ImportedFromIB2 - 360.IBPluginDependency - 360.ImportedFromIB2 - 360.windowTemplate.hasMinSize - 360.windowTemplate.minSize - 361.IBPluginDependency - 361.ImportedFromIB2 - 363.IBPluginDependency - 363.ImportedFromIB2 - 366.IBPluginDependency - 366.ImportedFromIB2 - 367.IBPluginDependency - 367.ImportedFromIB2 - 371.IBPluginDependency - 371.ImportedFromIB2 - 372.IBPluginDependency - 372.ImportedFromIB2 - 386.IBPluginDependency - 386.ImportedFromIB2 - 397.IBPluginDependency - 397.ImportedFromIB2 - 398.IBPluginDependency - 398.ImportedFromIB2 - 404.IBPluginDependency - 404.ImportedFromIB2 - 405.IBPluginDependency - 405.ImportedFromIB2 - 410.IBPluginDependency - 410.ImportedFromIB2 - 418.IBPluginDependency - 418.ImportedFromIB2 - 424.IBPluginDependency - 424.ImportedFromIB2 - 432.ImportedFromIB2 - 453.IBPluginDependency - 453.ImportedFromIB2 - 454.IBPluginDependency - 454.ImportedFromIB2 - 455.IBPluginDependency - 455.ImportedFromIB2 - 458.IBPluginDependency - 458.ImportedFromIB2 - 5.IBPluginDependency - 5.ImportedFromIB2 - 532.IBPluginDependency - 532.ImportedFromIB2 - 533.IBPluginDependency - 533.ImportedFromIB2 - 534.IBPluginDependency - 534.ImportedFromIB2 - 535.IBEditorWindowLastContentRect - 535.IBPluginDependency - 535.ImportedFromIB2 - 536.IBPluginDependency - 536.ImportedFromIB2 - 537.IBPluginDependency - 537.ImportedFromIB2 - 538.IBPluginDependency - 538.ImportedFromIB2 - 546.IBPluginDependency - 546.ImportedFromIB2 - 547.IBPluginDependency - 547.ImportedFromIB2 - 547.windowTemplate.hasMinSize - 547.windowTemplate.minSize - 548.IBPluginDependency - 548.ImportedFromIB2 - 549.IBPluginDependency - 549.ImportedFromIB2 - 550.IBPluginDependency - 550.ImportedFromIB2 - 551.IBPluginDependency - 551.ImportedFromIB2 - 552.IBPluginDependency - 552.ImportedFromIB2 - 554.IBPluginDependency - 554.ImportedFromIB2 - 56.IBPluginDependency - 56.ImportedFromIB2 - 564.IBPluginDependency - 564.ImportedFromIB2 - 566.IBPluginDependency - 566.ImportedFromIB2 - 57.IBEditorWindowLastContentRect - 57.IBPluginDependency - 57.ImportedFromIB2 - 574.IBPluginDependency - 574.ImportedFromIB2 - 576.IBPluginDependency - 576.ImportedFromIB2 - 577.IBPluginDependency - 577.ImportedFromIB2 - 578.IBEditorWindowLastContentRect - 578.IBPluginDependency - 578.ImportedFromIB2 - 579.IBPluginDependency - 579.ImportedFromIB2 - 58.IBPluginDependency - 58.ImportedFromIB2 - 581.IBPluginDependency - 581.ImportedFromIB2 - 583.IBPluginDependency - 583.ImportedFromIB2 - 585.IBPluginDependency - 585.ImportedFromIB2 - 586.IBPluginDependency - 586.ImportedFromIB2 - 588.IBPluginDependency - 588.ImportedFromIB2 - 591.IBPluginDependency - 591.ImportedFromIB2 - 592.IBPluginDependency - 592.ImportedFromIB2 - 594.IBPluginDependency - 594.ImportedFromIB2 - 597.IBPluginDependency - 597.ImportedFromIB2 - 598.IBPluginDependency - 598.ImportedFromIB2 - 599.IBPluginDependency - 599.ImportedFromIB2 - 600.IBPluginDependency - 600.ImportedFromIB2 - 601.IBPluginDependency - 601.ImportedFromIB2 - 602.IBPluginDependency - 602.ImportedFromIB2 - 603.IBPluginDependency - 603.ImportedFromIB2 - 611.IBPluginDependency - 611.ImportedFromIB2 - 612.IBPluginDependency - 612.ImportedFromIB2 - 613.IBPluginDependency - 613.ImportedFromIB2 - 616.IBEditorWindowLastContentRect - 616.IBPluginDependency - 616.ImportedFromIB2 - 617.IBPluginDependency - 617.ImportedFromIB2 - 618.IBPluginDependency - 618.ImportedFromIB2 - 619.IBPluginDependency - 619.ImportedFromIB2 - 620.IBPluginDependency - 620.ImportedFromIB2 - 622.IBPluginDependency - 622.ImportedFromIB2 - 630.IBPluginDependency - 630.ImportedFromIB2 - 631.IBAttributePlaceholdersKey - 631.IBPluginDependency - 631.ImportedFromIB2 - 633.IBPluginDependency - 633.ImportedFromIB2 - 640.IBPluginDependency - 640.ImportedFromIB2 - 641.IBPluginDependency - 641.ImportedFromIB2 - 645.IBPluginDependency - 645.ImportedFromIB2 - 649.IBPluginDependency - 649.ImportedFromIB2 - 650.IBPluginDependency - 650.ImportedFromIB2 - 651.IBPluginDependency - 651.ImportedFromIB2 - 653.IBPluginDependency - 653.ImportedFromIB2 - 655.IBPluginDependency - 655.ImportedFromIB2 - 656.IBPluginDependency - 656.ImportedFromIB2 - 660.IBPluginDependency - 660.ImportedFromIB2 - 661.IBPluginDependency - 661.ImportedFromIB2 - 662.IBEditorWindowLastContentRect - 662.IBPluginDependency - 662.ImportedFromIB2 - 663.IBPluginDependency - 663.ImportedFromIB2 - 664.IBPluginDependency - 664.ImportedFromIB2 - 665.IBPluginDependency - 665.ImportedFromIB2 - 667.IBPluginDependency - 667.ImportedFromIB2 - 679.IBPluginDependency - 679.ImportedFromIB2 - 681.IBPluginDependency - 681.ImportedFromIB2 - 688.IBPluginDependency - 688.ImportedFromIB2 - 72.IBPluginDependency - 72.ImportedFromIB2 - 73.IBPluginDependency - 73.ImportedFromIB2 - 74.IBPluginDependency - 74.ImportedFromIB2 - 745.IBPluginDependency - 745.ImportedFromIB2 - 746.IBPluginDependency - 746.ImportedFromIB2 - 748.IBPluginDependency - 748.ImportedFromIB2 - 749.IBPluginDependency - 749.ImportedFromIB2 - 75.IBPluginDependency - 75.ImportedFromIB2 - 751.IBPluginDependency - 751.ImportedFromIB2 - 752.IBPluginDependency - 752.ImportedFromIB2 - 753.IBPluginDependency - 753.ImportedFromIB2 - 754.IBPluginDependency - 754.ImportedFromIB2 - 755.IBPluginDependency - 755.ImportedFromIB2 - 756.IBPluginDependency - 756.ImportedFromIB2 - 757.IBPluginDependency - 757.ImportedFromIB2 - 758.IBPluginDependency - 758.ImportedFromIB2 - 759.IBPluginDependency - 759.ImportedFromIB2 - 767.IBPluginDependency - 767.ImportedFromIB2 - 769.IBPluginDependency - 769.ImportedFromIB2 - 77.IBPluginDependency - 77.ImportedFromIB2 - 771.IBPluginDependency - 771.ImportedFromIB2 - 772.IBPluginDependency - 772.ImportedFromIB2 - 773.IBPluginDependency - 773.ImportedFromIB2 - 773.windowTemplate.hasMinSize - 773.windowTemplate.minSize - 774.IBPluginDependency - 774.ImportedFromIB2 - 777.IBPluginDependency - 777.ImportedFromIB2 - 778.IBPluginDependency - 778.ImportedFromIB2 - 779.IBPluginDependency - 779.ImportedFromIB2 - 78.IBPluginDependency - 78.ImportedFromIB2 - 780.IBPluginDependency - 780.ImportedFromIB2 - 787.IBPluginDependency - 787.ImportedFromIB2 - 788.IBPluginDependency - 788.ImportedFromIB2 - 79.IBPluginDependency - 79.ImportedFromIB2 - 792.IBPluginDependency - 792.ImportedFromIB2 - 793.IBPluginDependency - 793.ImportedFromIB2 - 794.IBPluginDependency - 794.ImportedFromIB2 - 795.IBPluginDependency - 795.ImportedFromIB2 - 796.IBPluginDependency - 796.ImportedFromIB2 - 80.IBPluginDependency - 80.ImportedFromIB2 - 81.IBEditorWindowLastContentRect - 81.IBPluginDependency - 81.ImportedFromIB2 - 818.IBPluginDependency - 819.IBEditorWindowLastContentRect - 819.IBPluginDependency - 82.IBPluginDependency - 82.ImportedFromIB2 - 820.IBPluginDependency - 822.IBPluginDependency - 823.IBPluginDependency - 824.IBPluginDependency - 825.IBPluginDependency - 826.IBPluginDependency - 83.IBPluginDependency - 83.ImportedFromIB2 - 833.IBPluginDependency - 835.IBPluginDependency - 836.IBPluginDependency - 837.IBPluginDependency - 92.IBPluginDependency - 92.ImportedFromIB2 - - - YES - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - {{704, 631}, {183, 73}} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - {{538, 621}, {164, 23}} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - {{367, 441}, {257, 263}} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - {{624, 401}, {252, 63}} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - {{723, 601}, {204, 103}} - com.apple.InterfaceBuilder.CocoaPlugin - - {{459, 521}, {182, 183}} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - - {{329, 704}, {776, 20}} - com.apple.InterfaceBuilder.CocoaPlugin - - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - {{413, 421}, {313, 283}} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - - {213, 113} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - {{561, 601}, {216, 103}} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - - {213, 113} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - {{341, 501}, {230, 203}} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - {{607, 461}, {244, 243}} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - {{811, 681}, {94, 23}} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - - ToolTip - - ToolTip - - Opt + ¥ - - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - {{624, 421}, {184, 73}} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - - {213, 113} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - {{293, 431}, {245, 273}} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - {{887, 531}, {292, 153}} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - - - - YES - - - YES - - - - - YES - - - YES - - - - 838 - - - - YES - - CEAppController - NSObject - - YES - - YES - newInDockMenu: - openAppleScriptDictionary: - openBundledDocument: - openHexColorCodeEditor: - openInDockMenu: - openPrefWindow: - openScriptErrorWindow: - - - YES - id - id - id - id - id - id - id - - - - YES - - YES - newInDockMenu: - openAppleScriptDictionary: - openBundledDocument: - openHexColorCodeEditor: - openInDockMenu: - openPrefWindow: - openScriptErrorWindow: - - - YES - - newInDockMenu: - id - - - openAppleScriptDictionary: - id - - - openBundledDocument: - id - - - openHexColorCodeEditor: - id - - - openInDockMenu: - id - - - openPrefWindow: - id - - - openScriptErrorWindow: - id - - - - - IBProjectSource - CEAppController.h - - - - CEAppController - NSObject - - YES - - YES - changeFont: - openNotConvertedCharList: - - - YES - id - id - - - - YES - - YES - changeFont: - openNotConvertedCharList: - - - YES - - changeFont: - id - - - openNotConvertedCharList: - id - - - - - IBUserSource - - - - - CEApplication - NSApplication - - IBProjectSource - CEApplication.h - - - - CEApplication - NSApplication - - IBUserSource - - - - - CEDocument - NSDocument - - YES - - YES - insertIANACharSetName: - insertIANACharSetNameWithCharset: - insertIANACharSetNameWithEncoding: - recoloringAllStringOfDocument: - selectNextItemOfOutlineMenu: - selectPrevItemOfOutlineMenu: - setEncoding: - setLineEndingChar: - setLineEndingCharToCR: - setLineEndingCharToCRLF: - setLineEndingCharToLF: - setSyntaxStyle: - setTransparencyOnlyTextView: - setWindowAlpha: - - - YES - id - id - id - id - id - id - id - id - id - id - id - id - id - id - - - - YES - - YES - insertIANACharSetName: - insertIANACharSetNameWithCharset: - insertIANACharSetNameWithEncoding: - recoloringAllStringOfDocument: - selectNextItemOfOutlineMenu: - selectPrevItemOfOutlineMenu: - setEncoding: - setLineEndingChar: - setLineEndingCharToCR: - setLineEndingCharToCRLF: - setLineEndingCharToLF: - setSyntaxStyle: - setTransparencyOnlyTextView: - setWindowAlpha: - - - YES - - insertIANACharSetName: - id - - - insertIANACharSetNameWithCharset: - id - - - insertIANACharSetNameWithEncoding: - id - - - recoloringAllStringOfDocument: - id - - - selectNextItemOfOutlineMenu: - id - - - selectPrevItemOfOutlineMenu: - id - - - setEncoding: - id - - - setLineEndingChar: - id - - - setLineEndingCharToCR: - id - - - setLineEndingCharToCRLF: - id - - - setLineEndingCharToLF: - id - - - setSyntaxStyle: - id - - - setTransparencyOnlyTextView: - id - - - setWindowAlpha: - id - - - - - IBProjectSource - CEDocument.h - - - - CEDocument - - IBProjectSource - CEDocumentAppleScript.h - - - - CEDocument - NSDocument - - IBUserSource - - - - - CEDocumentController - NSDocumentController - - YES - - YES - closeLineSpacingPanel: - gotoCharacterOrLine: - openGotoPanel: - openHiddenDocument: - openLineSpacingPanel: - openTransparencyPanel: - setAllWindowAlpha: - setCustomLineSpacing: - setSelectAccessoryEncodingMenuToDefault: - setSmartInsertAndDeleteToAllTextView: - - - YES - id - id - id - id - id - id - id - id - id - id - - - - YES - - YES - closeLineSpacingPanel: - gotoCharacterOrLine: - openGotoPanel: - openHiddenDocument: - openLineSpacingPanel: - openTransparencyPanel: - setAllWindowAlpha: - setCustomLineSpacing: - setSelectAccessoryEncodingMenuToDefault: - setSmartInsertAndDeleteToAllTextView: - - - YES - - closeLineSpacingPanel: - id - - - gotoCharacterOrLine: - id - - - openGotoPanel: - id - - - openHiddenDocument: - id - - - openLineSpacingPanel: - id - - - openTransparencyPanel: - id - - - setAllWindowAlpha: - id - - - setCustomLineSpacing: - id - - - setSelectAccessoryEncodingMenuToDefault: - id - - - setSmartInsertAndDeleteToAllTextView: - id - - - - - YES - - YES - _accessoryEncodingMenu - _appController - _gotoCharLineMatrix - _gotoIndexField - _gotoSelectButton - _lineSpacingField - _openPanelAccessoryView - _transparencyController - _windowAlphaField - _windowAlphaSetButton - _windowAlphaSlider - _windowAlphaTextViewOnlyButton - - - YES - id - id - id - id - id - id - id - id - id - id - id - id - - - - YES - - YES - _accessoryEncodingMenu - _appController - _gotoCharLineMatrix - _gotoIndexField - _gotoSelectButton - _lineSpacingField - _openPanelAccessoryView - _transparencyController - _windowAlphaField - _windowAlphaSetButton - _windowAlphaSlider - _windowAlphaTextViewOnlyButton - - - YES - - _accessoryEncodingMenu - id - - - _appController - id - - - _gotoCharLineMatrix - id - - - _gotoIndexField - id - - - _gotoSelectButton - id - - - _lineSpacingField - id - - - _openPanelAccessoryView - id - - - _transparencyController - id - - - _windowAlphaField - id - - - _windowAlphaSetButton - id - - - _windowAlphaSlider - id - - - _windowAlphaTextViewOnlyButton - id - - - - - IBProjectSource - CEDocumentController.h - - - - CEDocumentController - NSDocumentController - - IBUserSource - - - - - CEEditorView - NSView - - YES - - YES - closeSplitTextView: - focusNextSplitTextView: - focusPrevSplitTextView: - openSplitTextView: - toggleShowInvisibleChars: - toggleShowLineNum: - toggleShowNavigationBar: - toggleShowPageGuide: - toggleShowStatusBar: - toggleUseAntialias: - toggleWrapLines: - - - YES - id - id - id - id - id - id - id - id - id - id - id - - - - YES - - YES - closeSplitTextView: - focusNextSplitTextView: - focusPrevSplitTextView: - openSplitTextView: - toggleShowInvisibleChars: - toggleShowLineNum: - toggleShowNavigationBar: - toggleShowPageGuide: - toggleShowStatusBar: - toggleUseAntialias: - toggleWrapLines: - - - YES - - closeSplitTextView: - id - - - focusNextSplitTextView: - id - - - focusPrevSplitTextView: - id - - - openSplitTextView: - id - - - toggleShowInvisibleChars: - id - - - toggleShowLineNum: - id - - - toggleShowNavigationBar: - id - - - toggleShowPageGuide: - id - - - toggleShowStatusBar: - id - - - toggleUseAntialias: - id - - - toggleWrapLines: - id - - - - - IBProjectSource - CEEditorView.h - - - - CEEditorView - NSView - - IBUserSource - - - - - CETextViewCore - NSTextView - - YES - - YES - editHexColorCodeAsBGColor: - editHexColorCodeAsForeColor: - exchangeCapitalized: - exchangeFullwidthRoman: - exchangeHalfwidthRoman: - exchangeHiragana: - exchangeKatakana: - exchangeLowercase: - exchangeUppercase: - inputBackSlash: - inputYenMark: - resetFont: - setLineSpacingFromMenu: - setSelectedRangeWithNSValue: - shiftLeft: - shiftRight: - unicodeNormalization: - unicodeNormalizationNFC: - unicodeNormalizationNFD: - unicodeNormalizationNFKC: - unicodeNormalizationNFKD: - - - YES - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - - - - YES - - YES - editHexColorCodeAsBGColor: - editHexColorCodeAsForeColor: - exchangeCapitalized: - exchangeFullwidthRoman: - exchangeHalfwidthRoman: - exchangeHiragana: - exchangeKatakana: - exchangeLowercase: - exchangeUppercase: - inputBackSlash: - inputYenMark: - resetFont: - setLineSpacingFromMenu: - setSelectedRangeWithNSValue: - shiftLeft: - shiftRight: - unicodeNormalization: - unicodeNormalizationNFC: - unicodeNormalizationNFD: - unicodeNormalizationNFKC: - unicodeNormalizationNFKD: - - - YES - - editHexColorCodeAsBGColor: - id - - - editHexColorCodeAsForeColor: - id - - - exchangeCapitalized: - id - - - exchangeFullwidthRoman: - id - - - exchangeHalfwidthRoman: - id - - - exchangeHiragana: - id - - - exchangeKatakana: - id - - - exchangeLowercase: - id - - - exchangeUppercase: - id - - - inputBackSlash: - id - - - inputYenMark: - id - - - resetFont: - id - - - setLineSpacingFromMenu: - id - - - setSelectedRangeWithNSValue: - id - - - shiftLeft: - id - - - shiftRight: - id - - - unicodeNormalization: - id - - - unicodeNormalizationNFC: - id - - - unicodeNormalizationNFD: - id - - - unicodeNormalizationNFKC: - id - - - unicodeNormalizationNFKD: - id - - - - - IBProjectSource - CETextViewCore.h - - - - CETextViewCore - NSTextView - - IBUserSource - - - - - CEWindowController - NSWindowController - - YES - - YES - getInfo: - selectIncompatibleRange: - toggleIncompatibleCharList: - - - YES - id - id - id - - - - YES - - YES - getInfo: - selectIncompatibleRange: - toggleIncompatibleCharList: - - - YES - - getInfo: - id - - - selectIncompatibleRange: - id - - - toggleIncompatibleCharList: - id - - - - - YES - - YES - _drawer - _editorView - _infoCharsField - _infoCreatedField - _infoCreatorField - _infoEncodingField - _infoFinderLockField - _infoInLineField - _infoLineEndingsField - _infoLinesField - _infoModifiedField - _infoOwnerField - _infoPermissionField - _infoSelectField - _infoSingleCharField - _infoTypeField - _listController - _listErrorTextField - _listTableView - _printAccessoryView - _printSettingController - _tabView - _tabViewSelectionPopUpButton - _toolbarController - - - YES - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - - - - YES - - YES - _drawer - _editorView - _infoCharsField - _infoCreatedField - _infoCreatorField - _infoEncodingField - _infoFinderLockField - _infoInLineField - _infoLineEndingsField - _infoLinesField - _infoModifiedField - _infoOwnerField - _infoPermissionField - _infoSelectField - _infoSingleCharField - _infoTypeField - _listController - _listErrorTextField - _listTableView - _printAccessoryView - _printSettingController - _tabView - _tabViewSelectionPopUpButton - _toolbarController - - - YES - - _drawer - id - - - _editorView - id - - - _infoCharsField - id - - - _infoCreatedField - id - - - _infoCreatorField - id - - - _infoEncodingField - id - - - _infoFinderLockField - id - - - _infoInLineField - id - - - _infoLineEndingsField - id - - - _infoLinesField - id - - - _infoModifiedField - id - - - _infoOwnerField - id - - - _infoPermissionField - id - - - _infoSelectField - id - - - _infoSingleCharField - id - - - _infoTypeField - id - - - _listController - id - - - _listErrorTextField - id - - - _listTableView - id - - - _printAccessoryView - id - - - _printSettingController - id - - - _tabView - id - - - _tabViewSelectionPopUpButton - id - - - _toolbarController - id - - - - - IBProjectSource - CEWindowController.h - - - - CEWindowController - NSWindowController - - IBUserSource - - - - - FirstResponder - NSObject - - YES - - YES - closeSplitTextView: - editHexColorCodeAsBGColor: - editHexColorCodeAsForeColor: - exchangeCapitalized: - exchangeFullwidthRoman: - exchangeHalfwidthRoman: - exchangeHiragana: - exchangeKatakana: - exchangeLowercase: - exchangeUppercase: - focusNextSplitTextView: - focusPrevSplitTextView: - getInfo: - inputBackSlash: - inputYenMark: - insertIANACharSetName: - insertIANACharSetNameWithCharset: - insertIANACharSetNameWithEncoding: - makeQuickFindFieldToFirstResponder: - myAction: - openHiddenDocument: - openSplitTextView: - quickSearch: - reOpenDocument: - resetFont: - setLineEndingCharToCR: - setLineEndingCharToCRLF: - setLineEndingCharToLF: - setLineSpacingFromMenu: - setSyntaxColoringStyle: - setTransparencyOnlyTextView: - setWindowAlpha: - shiftLeft: - shiftRight: - toggleIncompatibleCharList: - toggleShowInvisibleChars: - toggleShowLineNum: - toggleShowNavigationBar: - toggleShowPageGuide: - toggleShowStatusBar: - toggleUseAntialias: - toggleWrapLines: - unicodeNormalizationNFC: - unicodeNormalizationNFD: - unicodeNormalizationNFKC: - unicodeNormalizationNFKD: - - - YES - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - - - - YES - - YES - closeSplitTextView: - editHexColorCodeAsBGColor: - editHexColorCodeAsForeColor: - exchangeCapitalized: - exchangeFullwidthRoman: - exchangeHalfwidthRoman: - exchangeHiragana: - exchangeKatakana: - exchangeLowercase: - exchangeUppercase: - focusNextSplitTextView: - focusPrevSplitTextView: - getInfo: - inputBackSlash: - inputYenMark: - insertIANACharSetName: - insertIANACharSetNameWithCharset: - insertIANACharSetNameWithEncoding: - makeQuickFindFieldToFirstResponder: - myAction: - openHiddenDocument: - openSplitTextView: - quickSearch: - reOpenDocument: - resetFont: - setLineEndingCharToCR: - setLineEndingCharToCRLF: - setLineEndingCharToLF: - setLineSpacingFromMenu: - setSyntaxColoringStyle: - setTransparencyOnlyTextView: - setWindowAlpha: - shiftLeft: - shiftRight: - toggleIncompatibleCharList: - toggleShowInvisibleChars: - toggleShowLineNum: - toggleShowNavigationBar: - toggleShowPageGuide: - toggleShowStatusBar: - toggleUseAntialias: - toggleWrapLines: - unicodeNormalizationNFC: - unicodeNormalizationNFD: - unicodeNormalizationNFKC: - unicodeNormalizationNFKD: - - - YES - - closeSplitTextView: - id - - - editHexColorCodeAsBGColor: - id - - - editHexColorCodeAsForeColor: - id - - - exchangeCapitalized: - id - - - exchangeFullwidthRoman: - id - - - exchangeHalfwidthRoman: - id - - - exchangeHiragana: - id - - - exchangeKatakana: - id - - - exchangeLowercase: - id - - - exchangeUppercase: - id - - - focusNextSplitTextView: - id - - - focusPrevSplitTextView: - id - - - getInfo: - id - - - inputBackSlash: - id - - - inputYenMark: - id - - - insertIANACharSetName: - id - - - insertIANACharSetNameWithCharset: - id - - - insertIANACharSetNameWithEncoding: - id - - - makeQuickFindFieldToFirstResponder: - id - - - myAction: - id - - - openHiddenDocument: - id - - - openSplitTextView: - id - - - quickSearch: - id - - - reOpenDocument: - id - - - resetFont: - id - - - setLineEndingCharToCR: - id - - - setLineEndingCharToCRLF: - id - - - setLineEndingCharToLF: - id - - - setLineSpacingFromMenu: - id - - - setSyntaxColoringStyle: - id - - - setTransparencyOnlyTextView: - id - - - setWindowAlpha: - id - - - shiftLeft: - id - - - shiftRight: - id - - - toggleIncompatibleCharList: - id - - - toggleShowInvisibleChars: - id - - - toggleShowLineNum: - id - - - toggleShowNavigationBar: - id - - - toggleShowPageGuide: - id - - - toggleShowStatusBar: - id - - - toggleUseAntialias: - id - - - toggleWrapLines: - id - - - unicodeNormalizationNFC: - id - - - unicodeNormalizationNFD: - id - - - unicodeNormalizationNFKC: - id - - - unicodeNormalizationNFKD: - id - - - - - IBUserSource - - - - - NSObject - - IBProjectSource - ImportSources/UKFileWatcher.h - - - - NSObject - - IBProjectSource - ImportSources/UKKQueue.h - - - - NSObject - - IBProjectSource - ImportSources/UKMainThreadProxy.h - - - - NSObject - - IBUserSource - - - - - OgreTextFinder - NSObject - - IBUserSource - - - - - - YES - - NSObject - - IBDocumentRelativeSource - ../Sparkle.framework/Versions/A/Headers/SUAppcast.h - - - - NSObject - - IBDocumentRelativeSource - ../Sparkle.framework/Versions/A/Headers/SUUpdater.h - - - - SUUpdater - NSObject - - checkForUpdates: - id - - - checkForUpdates: - - checkForUpdates: - id - - - - delegate - id - - - delegate - - delegate - id - - - - - - - YES - - NSActionCell - NSCell - - IBFrameworkSource - AppKit.framework/Headers/NSActionCell.h - - - - NSApplication - NSResponder - - IBFrameworkSource - AppKit.framework/Headers/NSApplication.h - - - - NSApplication - - IBFrameworkSource - AppKit.framework/Headers/NSApplicationScripting.h - - - - NSApplication - - IBFrameworkSource - AppKit.framework/Headers/NSColorPanel.h - - - - NSApplication - - IBFrameworkSource - AppKit.framework/Headers/NSHelpManager.h - - - - NSApplication - - IBFrameworkSource - AppKit.framework/Headers/NSPageLayout.h - - - - NSApplication - - IBFrameworkSource - AppKit.framework/Headers/NSUserInterfaceItemSearching.h - - - - NSBrowser - NSControl - - IBFrameworkSource - AppKit.framework/Headers/NSBrowser.h - - - - NSButton - NSControl - - IBFrameworkSource - AppKit.framework/Headers/NSButton.h - - - - NSButtonCell - NSActionCell - - IBFrameworkSource - AppKit.framework/Headers/NSButtonCell.h - - - - NSCell - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSCell.h - - - - NSControl - NSView - - IBFrameworkSource - AppKit.framework/Headers/NSControl.h - - - - NSController - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSController.h - - - - NSDocument - NSObject - - YES - - YES - printDocument: - revertDocumentToSaved: - runPageLayout: - saveDocument: - saveDocumentAs: - saveDocumentTo: - - - YES - id - id - id - id - id - id - - - - YES - - YES - printDocument: - revertDocumentToSaved: - runPageLayout: - saveDocument: - saveDocumentAs: - saveDocumentTo: - - - YES - - printDocument: - id - - - revertDocumentToSaved: - id - - - runPageLayout: - id - - - saveDocument: - id - - - saveDocumentAs: - id - - - saveDocumentTo: - id - - - - - IBFrameworkSource - AppKit.framework/Headers/NSDocument.h - - - - NSDocument - - IBFrameworkSource - AppKit.framework/Headers/NSDocumentScripting.h - - - - NSDocumentController - NSObject - - YES - - YES - clearRecentDocuments: - newDocument: - openDocument: - saveAllDocuments: - - - YES - id - id - id - id - - - - YES - - YES - clearRecentDocuments: - newDocument: - openDocument: - saveAllDocuments: - - - YES - - clearRecentDocuments: - id - - - newDocument: - id - - - openDocument: - id - - - saveAllDocuments: - id - - - - - IBFrameworkSource - AppKit.framework/Headers/NSDocumentController.h - - - - NSFontManager - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSFontManager.h - - - - NSFormatter - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSFormatter.h - - - - NSMatrix - NSControl - - IBFrameworkSource - AppKit.framework/Headers/NSMatrix.h - - - - NSMenu - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSMenu.h - - - - NSMenuItem - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSMenuItem.h - - - - NSMenuItemCell - NSButtonCell - - IBFrameworkSource - AppKit.framework/Headers/NSMenuItemCell.h - - - - NSMovieView - NSView - - IBFrameworkSource - AppKit.framework/Headers/NSMovieView.h - - - - NSNumberFormatter - NSFormatter - - IBFrameworkSource - Foundation.framework/Headers/NSNumberFormatter.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSAccessibility.h - - - - NSObject - - - - NSObject - - - - NSObject - - - - NSObject - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSDictionaryController.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSDragging.h - - - - NSObject - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSFontPanel.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSKeyValueBinding.h - - - - NSObject - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSNibLoading.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSOutlineView.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSPasteboard.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSSavePanel.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSTableView.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSToolbarItem.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSView.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSArchiver.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSClassDescription.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSError.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSFileManager.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSKeyValueCoding.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSKeyValueObserving.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSKeyedArchiver.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSObject.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSObjectScripting.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSPortCoder.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSRunLoop.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSScriptClassDescription.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSScriptKeyValueCoding.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSScriptObjectSpecifiers.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSScriptWhoseTests.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSThread.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSURL.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSURLConnection.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSURLDownload.h - - - - NSObject - - IBFrameworkSource - Sparkle.framework/Headers/SUAppcast.h - - - - NSObject - - IBFrameworkSource - Sparkle.framework/Headers/SUUpdater.h - - - - NSObjectController - NSController - - IBFrameworkSource - AppKit.framework/Headers/NSObjectController.h - - - - NSPanel - NSWindow - - IBFrameworkSource - AppKit.framework/Headers/NSPanel.h - - - - NSPopUpButton - NSButton - - IBFrameworkSource - AppKit.framework/Headers/NSPopUpButton.h - - - - NSPopUpButtonCell - NSMenuItemCell - - IBFrameworkSource - AppKit.framework/Headers/NSPopUpButtonCell.h - - - - NSResponder - - IBFrameworkSource - AppKit.framework/Headers/NSInterfaceStyle.h - - - - NSResponder - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSResponder.h - - - - NSSlider - NSControl - - IBFrameworkSource - AppKit.framework/Headers/NSSlider.h - - - - NSSliderCell - NSActionCell - - IBFrameworkSource - AppKit.framework/Headers/NSSliderCell.h - - - - NSTableView - NSControl - - - - NSText - NSView - - IBFrameworkSource - AppKit.framework/Headers/NSText.h - - - - NSTextField - NSControl - - IBFrameworkSource - AppKit.framework/Headers/NSTextField.h - - - - NSTextFieldCell - NSActionCell - - IBFrameworkSource - AppKit.framework/Headers/NSTextFieldCell.h - - - - NSTextView - NSText - - IBFrameworkSource - AppKit.framework/Headers/NSTextView.h - - - - NSUserDefaultsController - NSController - - IBFrameworkSource - AppKit.framework/Headers/NSUserDefaultsController.h - - - - NSView - - IBFrameworkSource - AppKit.framework/Headers/NSClipView.h - - - - NSView - - - - NSView - - IBFrameworkSource - AppKit.framework/Headers/NSRulerView.h - - - - NSView - NSResponder - - - - NSWindow - - IBFrameworkSource - AppKit.framework/Headers/NSDrawer.h - - - - NSWindow - NSResponder - - IBFrameworkSource - AppKit.framework/Headers/NSWindow.h - - - - NSWindow - - IBFrameworkSource - AppKit.framework/Headers/NSWindowScripting.h - - - - NSWindowController - NSResponder - - showWindow: - id - - - showWindow: - - showWindow: - id - - - - IBFrameworkSource - AppKit.framework/Headers/NSWindowController.h - - - - OgreFindPanelController - NSResponder - - showFindPanel: - id - - - showFindPanel: - - showFindPanel: - id - - - - YES - - YES - findPanel - textFinder - - - YES - NSPanel - OgreTextFinder - - - - YES - - YES - findPanel - textFinder - - - YES - - findPanel - NSPanel - - - textFinder - OgreTextFinder - - - - - IBFrameworkSource - OgreKit.framework/Headers/OgreFindPanelController.h - - - - OgreTextFinder - NSObject - - showFindPanel: - id - - - showFindPanel: - - showFindPanel: - id - - - - YES - - YES - findMenu - findPanelController - - - YES - NSMenu - OgreFindPanelController - - - - YES - - YES - findMenu - findPanelController - - - YES - - findMenu - NSMenu - - - findPanelController - OgreFindPanelController - - - - - IBFrameworkSource - OgreKit.framework/Headers/OgreTextFinder.h - - - - SUUpdater - NSObject - - checkForUpdates: - id - - - checkForUpdates: - - checkForUpdates: - id - - - - delegate - id - - - delegate - - delegate - id - - - - - - - 0 - IBCocoaFramework - - com.apple.InterfaceBuilder.CocoaPlugin.macosx - - - - com.apple.InterfaceBuilder.CocoaPlugin.macosx - - - - com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 - - - YES - ../CotEditor.xcodeproj - 3 - - YES - - YES - NSMenuCheckmark - NSMenuMixedState - NSRadioButton - NSSwitch - - - YES - {9, 8} - {7, 2} - {16, 15} - {15, 15} - - - - diff --git a/Japanese.lproj/MainMenu.nib/keyedobjects.nib b/Japanese.lproj/MainMenu.nib/keyedobjects.nib deleted file mode 100644 index 65e17e7480..0000000000 Binary files a/Japanese.lproj/MainMenu.nib/keyedobjects.nib and /dev/null differ diff --git a/Japanese.lproj/Preferences.nib/designable.nib b/Japanese.lproj/Preferences.nib/designable.nib deleted file mode 100644 index d63f30ea5d..0000000000 --- a/Japanese.lproj/Preferences.nib/designable.nib +++ /dev/null @@ -1,15710 +0,0 @@ - - - - 1050 - 11C74 - 1938 - 1138.23 - 567.00 - - com.apple.InterfaceBuilder.CocoaPlugin - 1938 - - - YES - NSMenuItem - NSScroller - NSMenu - NSColorWell - NSButton - NSMatrix - NSSliderCell - NSCustomObject - NSArrayController - NSSlider - NSTableView - NSCustomView - NSImageView - NSComboBox - NSTextField - NSComboBoxCell - NSNumberFormatter - NSImageCell - NSWindowTemplate - NSTextFieldCell - NSButtonCell - NSTableColumn - NSBox - NSView - NSPopUpButtonCell - NSScrollView - NSUserDefaultsController - NSTabViewItem - NSTextView - NSPopUpButton - NSTabView - - - YES - com.apple.InterfaceBuilder.CocoaPlugin - - - PluginDependencyRecalculationVersion - - - - YES - - CEPreferences - - - FirstResponder - - - NSApplication - - - 7 - 2 - {{39, 165}, {694, 686}} - 1886912512 - CotEditor 環境設定 - NSWindow - - View - - - {218.03700000000001, 107} - - - 256 - - YES - - - 274 - {{10, 10}, {674, 666}} - - - - - YES - - prefGeneralItemID - - - 256 - - YES - - - 292 - - YES - - - 268 - {{329, 601}, {100, 26}} - - - - YES - - -2076049856 - 2048 - - LucidaGrande - 13 - 1044 - - - 109199615 - 129 - - - 400 - 75 - - - 1週間ごと - - 1048576 - 2147483647 - 1 - - NSImage - NSMenuCheckmark - - - NSImage - NSMenuMixedState - - _popUpItemAction: - 604800 - - - YES - - OtherViews - - YES - - - 1時間ごと - - 1048576 - 2147483647 - - - _popUpItemAction: - 3600 - - - - - 1日ごと - - 1048576 - 2147483647 - - - _popUpItemAction: - 86400 - - - - - - 1ヶ月ごと - - 1048576 - 2147483647 - - - _popUpItemAction: - 2629800 - - - - - - 2 - 1 - YES - YES - 2 - - - - - 256 - {{45, 606}, {383, 18}} - - - - YES - - 67239424 - 0 - 自動的にアップデートを確認する - - - 1211912703 - 2 - - NSImage - NSSwitch - - - NSSwitch - - - - 200 - 25 - - - - - 256 - {{45, 576}, {383, 18}} - - - - YES - - 67239424 - 0 - 起動時に新規書類を開く - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 256 - {{45, 546}, {383, 18}} - - - - YES - - 67239424 - 0 - リオープンイベントで新規書類を開く - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 256 - {{45, 486}, {383, 18}} - - - - YES - - 67239424 - 0 - 入力中に自動スペルチェック - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 256 - {{45, 456}, {433, 18}} - - - - YES - - 67239424 - 0 - Carbonのように、選択テキストをすぐにドラッグ開始 - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 256 - - YES - - - 274 - - YES - - - 256 - {{38, 13}, {410, 68}} - - - - YES - 3 - 1 - - YES - - -2080244224 - 0 - オリジナルを保持(無ければ CotEditor のコードを使用) - - - 1211912703 - 0 - - NSImage - NSRadioButton - - - NSRadioButton - - - - - - 200 - 25 - - - 67239424 - 0 - 常に CotEditor のコードをセット - - - 1 - 1211912703 - 0 - - - - - 200 - 25 - - - 67239424 - 0 - コードをセットしない - - - 1211912703 - 0 - - - - 400 - 75 - - - {410, 21} - {4, 2} - 1143472128 - NSActionCell - - 67239424 - 0 - Radio - - 1211912703 - 0 - - - - 400 - 75 - - - - 6 - System - controlColor - - 3 - MC42NjY2NjY2NjY3AA - - - - 3 - MQA - - - - - {{2, 2}, {584, 92}} - - - - - - {{17, 158}, {588, 109}} - - - - {0, 0} - - 67239424 - 0 - ファイルタイプとクリエータの保存 - - LucidaGrande - 11 - 3100 - - - 6 - System - textBackgroundColor - - - - 3 - MCAwLjgwMDAwMDAxAA - - - - 3 - 0 - 2 - NO - - - - 256 - {{46, 516}, {383, 18}} - - - - YES - - 67239424 - 0 - スマートインサート/スマートデリート - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 256 - - YES - - - 274 - - YES - - - 256 - {{38, 12}, {483, 67}} - - - - YES - 3 - 1 - - YES - - -2080244224 - 0 - ファイルに出現する単語のみ - - - 1211912703 - 2 - - - - - 200 - 25 - - - 67239424 - 0 - ファイルに出現する単語 + カラーリングスタイルからの候補 - - - 1 - 1211912703 - 2 - - - - - 200 - 25 - - - 67239424 - 0 - ファイルに出現する単語 + カラーリングスタイル + 一般英単語 - - - 1211912703 - 2 - - - - 400 - 75 - - - {483, 21} - {4, 2} - 1143472128 - NSActionCell - - 67239424 - 0 - Radio - - 1211912703 - 0 - - - - 400 - 75 - - - - - - - - {{2, 2}, {584, 87}} - - - - - - {{17, 43}, {588, 104}} - - - - {0, 0} - - 67239424 - 0 - 入力補完候補リスト - - - - 3 - MCAwLjgwMDAwMDAxAA - - - - 3 - 0 - 2 - NO - - - - 256 - {{45, 426}, {383, 18}} - - - - YES - - 67239424 - 0 - "¥" と "\" キーを入れ替える - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 256 - {{45, 396}, {383, 18}} - - - - YES - - 67239424 - 0 - 対応するカッコ"( )" "[ ]" "{ }"をハイライト表示 - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 256 - {{380, 396}, {180, 18}} - - - - YES - - 67239424 - 0 - "< >"をハイライト表示 - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 256 - {{45, 366}, {383, 18}} - - - - YES - - 67239424 - 0 - 行末コードを文字としてカウントする - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 256 - {{45, 336}, {383, 18}} - - - - YES - - 67239424 - 0 - 検索文字列を他のアプリと同期 - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 268 - {{579, 11}, {25, 25}} - - - - YES - - 67239424 - 134217728 - - - - -2038415105 - 33 - - - 200 - 25 - - - - - 268 - {{45, 276}, {420, 18}} - - - - YES - - 67239424 - 0 - ファイル保存時に拡張子 "txt" をつける - - AquaKana - 13 - 16 - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 268 - {{45, 306}, {420, 18}} - - - - YES - - 67239424 - 0 - コンテキストメニューに、スクリプトメニューをインラインに追加 - - - 1211912703 - 2 - - - - - 200 - 25 - - - - {642, 653} - - - - CETabItemView - NSView - - - {674, 666} - - - - - 一般 - - - - - prefWindowItemID - - - 256 - - YES - - - 292 - - YES - - - 256 - - YES - - - 274 - - YES - - - 256 - {{246, 42}, {46, 20}} - - YES - - -2068709823 - 71435264 - - 0 - 1 - NO - YES - 1 - AQAAAAAAAAAAAAAAAAAAAA - - - - - YES - - YES - allowsFloats - attributedStringForNil - attributedStringForNotANumber - attributedStringForZero - decimalSeparator - formatterBehavior - groupingSeparator - locale - maximum - minimum - negativeFormat - positiveFormat - usesGroupingSeparator - - - YES - - - - - - NaN - - YES - - YES - - - - - - 0.00 - - - . - - , - - - - - 0 - 1 - NO - YES - 1 - AQAAAAAAAAAAAAAAAAAAAA - - - -1 - 1 - NO - YES - 1 - AgAAAAAAAAAAAAAAAAAAAA - - -0.00 - 0.00 - - - - 0.00 - -0.00 - - - - - - - - - . - , - NO - NO - YES - - - YES - - - 6 - System - controlTextColor - - 3 - MAA - - - - - - - 256 - {{21, 41}, {208, 26}} - - YES - - 67501824 - 0 - - - - - Helvetica - 12 - 16 - - - 1 - 0.20000000000000001 - 1 - 0.0 - 17 - 1 - YES - NO - - - - - 256 - {{337, 41}, {177, 18}} - - YES - - 67239424 - 0 - テキストビューのみ - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 256 - - YES - - YES - Apple PDF pasteboard type - Apple PICT pasteboard type - Apple PNG pasteboard type - NSFilenamesPboardType - NeXT Encapsulated PostScript v1.2 pasteboard type - NeXT TIFF v4.0 pasteboard type - - - {{41, 23}, {170, 15}} - - YES - - 130560 - 33554432 - - NSImage - transparencyGuide - - 0 - 1 - 0 - NO - - YES - - - {{2, 2}, {584, 86}} - - - - {{17, 43}, {588, 103}} - - {0, 0} - - 67239424 - 0 - ウインドウの透明度 - - - - 3 - MCAwLjgwMDAwMDAxAA - - - - 3 - 0 - 2 - NO - - - - 256 - - YES - - - 274 - - YES - - - 256 - {{76, 20}, {70, 22}} - - YES - - -1804468671 - -2143288320 - - - - - YES - - YES - allowsFloats - attributedStringForNil - attributedStringForNotANumber - attributedStringForZero - decimalSeparator - formatterBehavior - groupingSeparator - locale - maximum - minimum - negativeFormat - positiveFormat - usesGroupingSeparator - - - YES - - - - - - NaN - - - - 0 - - - . - - , - - - 4 - 1 - NO - YES - 1 - AQAAAAAAAAAAAAAAAAAAAA - - - 2 - 1 - NO - YES - 1 - AQAAAAAAAAAAAAAAAAAAAA - - -0 - 0.0 - - - - 0.0 - -0 - - - - - - - - - . - , - NO - NO - YES - - - YES - - - 6 - System - textColor - - - - - - - 256 - {{224, 20}, {70, 22}} - - YES - - -1804468671 - -2143288320 - - - - - YES - - YES - allowsFloats - attributedStringForNil - attributedStringForNotANumber - attributedStringForZero - decimalSeparator - formatterBehavior - groupingSeparator - locale - maximum - minimum - negativeFormat - positiveFormat - usesGroupingSeparator - - - YES - - - - - - NaN - - - - 0 - - - . - - , - - - 4 - 1 - NO - YES - 1 - AQAAAAAAAAAAAAAAAAAAAA - - - 2 - 1 - NO - YES - 1 - AQAAAAAAAAAAAAAAAAAAAA - - -0 - 0.0 - - - - 0.0 - -0 - - - - - - - - - . - , - NO - NO - YES - - - YES - - - - - - - 256 - {{13, 22}, {58, 14}} - - YES - - 67239424 - 71303168 - 幅: - - - - - - - - - 256 - {{161, 22}, {58, 14}} - - YES - - 67239424 - 71303168 - 高さ: - - - - - - - - - 256 - {{334, 14}, {177, 28}} - - YES - - 67239424 - 134348800 - ウインドウから取得... - - - -2038284033 - 1 - - - - - - 200 - 25 - - - - {{2, 2}, {584, 62}} - - - - {{17, 162}, {588, 79}} - - {0, 0} - - 67239424 - 0 - ウインドウの大きさ - - - - 3 - MCAwLjgwMDAwMDAxAA - - - - 3 - 0 - 2 - NO - - - - 256 - {{45, 284}, {242, 18}} - - YES - - 67239424 - 0 - ステータスバーを表示 - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 256 - {{33, 408}, {518, 17}} - - YES - - 67239424 - 4194304 - * ここで設定した内容は、次に開いた書類から適用されます。 - - - - - - - - - 256 - {{45, 367}, {242, 18}} - - YES - - 67239424 - 0 - ナビゲーションバーを表示 - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 256 - {{339, 367}, {218, 18}} - - YES - - 67239424 - 0 - ページガイドを表示 - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 256 - {{357, 342}, {135, 17}} - - YES - - 67239424 - 272629760 - 表示する列: - - - - - - - - - 256 - {{494, 339}, {55, 22}} - - YES - - -1804468671 - -1874852864 - - - - - YES - - YES - allowsFloats - attributedStringForZero - decimalSeparator - formatterBehavior - groupingSeparator - maximum - minimum - negativeFormat - positiveFormat - usesGroupingSeparator - - - YES - - - 0 - - - . - - , - - 3 - 1 - NO - YES - 1 - AQAAAAAAAAAAAAAAAAAAAA - - - 0 - 1 - NO - YES - 1 - AQAAAAAAAAAAAAAAAAAAAA - - -0 - 0 - - - - 0 - -0 - - - - - - - - NaN - - - - - - . - , - NO - YES - YES - - - YES - - - - - - - 256 - {{308, 261}, {5, 122}} - - {0, 0} - - 67239424 - 0 - Box - - - - 3 - MCAwLjgwMDAwMDAxAA - - - 3 - 2 - 0 - NO - - - - 256 - {{484, 324}, {76, 13}} - - YES - - 67239424 - 138412032 - ( 1 - 1000 ) - - LucidaGrande - 10 - 2843 - - - - - - - - - 256 - {{70, 312}, {217, 18}} - - YES - - 67239424 - 0 - 折り返した行にマークを表示 - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 256 - {{70, 259}, {217, 18}} - - YES - - 67239424 - 0 - 桁区切り記号を表示 - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 268 - {{579, 11}, {25, 25}} - - 1 - YES - - -2080244224 - 134217728 - - - - -2038415105 - 33 - - - 200 - 25 - - - - - 256 - {{45, 337}, {242, 18}} - - YES - - 67239424 - 0 - 行番号を表示 - - - 1211912703 - 2 - - - - - 200 - 25 - - - - {642, 459} - - CETabItemView - NSView - - - {{10, 33}, {654, 620}} - - ウインドウ - - - - - prefViewItemID - - - 256 - - YES - - - 292 - - YES - - - 256 - - YES - - - 274 - - YES - - - 256 - - YES - - YES - - NSColor pasteboard type - - - - {{170, 211}, {54, 26}} - - YES - YES - - 1 - MC4wNTgxMzA0OTkgMC4wNTU1NDE4OTkgMQA - - - - - 256 - {{51, 216}, {115, 17}} - - YES - - 67239424 - 71303168 - 文字色: - - - - - - - - - 256 - {{55, 107}, {98, 18}} - - YES - - 67239424 - 0 - 行末コード - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 256 - {{165, 102}, {70, 26}} - - YES - - -2076049856 - 1024 - - - 109199615 - 1 - - LucidaGrande - 13 - 16 - - - - - - - - 400 - 75 - - - IA - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - YES - - - - 3 - YES - YES - 1 - - - - - 256 - {{55, 179}, {98, 18}} - - YES - - 67239424 - 0 - スペース - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 256 - {{165, 174}, {70, 26}} - - YES - - -2076049856 - 1024 - - - 109199615 - 1 - - - - - - - - 400 - 75 - - - IA - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - YES - - - - 3 - YES - YES - 1 - - - - - 256 - {{165, 138}, {70, 26}} - - YES - - -2076049856 - 1024 - - - 109199615 - 1 - - - - - - - - 400 - 75 - - - IA - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - YES - - - - 3 - YES - YES - 1 - - - - - 256 - {{55, 143}, {98, 18}} - - YES - - 67239424 - 0 - タブ - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 256 - {{165, 46}, {70, 26}} - - YES - - -2076049856 - 1024 - - - 109199615 - 1 - - - - - - - - 400 - 75 - - - IA - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - YES - - - - 3 - YES - YES - 1 - - - - - 256 - {{55, 71}, {154, 18}} - - YES - - 67239424 - 0 - 全角スペース - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 256 - {{55, 17}, {167, 18}} - - YES - - 67239424 - 0 - その他の不可視文字 - - - 1211912703 - 2 - - - - - 200 - 25 - - - - {{2, 2}, {278, 255}} - - - - {{323, 43}, {282, 272}} - - {0, 0} - - 67239424 - 0 - 不可視文字の表示 - - - - 3 - MCAwLjgwMDAwMDAxAA - - - - 3 - 0 - 2 - NO - - - - 256 - - YES - - - 274 - - YES - - - 256 - - YES - - YES - - NSColor pasteboard type - - - - {{148, 211}, {54, 26}} - - YES - YES - - 1 - MC4wNTgxMzA0OTkgMC4wNTU1NDE4OTkgMQA - - - - - 256 - {{29, 216}, {114, 17}} - - YES - - 67239424 - 71303168 - 文字色: - - - - - - - - - 256 - {{29, 93}, {114, 17}} - - YES - - 67239424 - 71303168 - 背景色: - - - - - - - - - 256 - - YES - - YES - - NSColor pasteboard type - - - - {{148, 88}, {54, 26}} - - YES - YES - - 1 - MC4wNTgxMzA0OTkgMC4wNTU1NDE4OTkgMQA - - - - - 256 - - YES - - YES - - NSColor pasteboard type - - - - {{148, 129}, {54, 26}} - - YES - YES - - 1 - MC4wNTgxMzA0OTkgMC4wNTU1NDE4OTkgMQA - - - - - 256 - {{29, 134}, {114, 17}} - - YES - - 67239424 - 71303168 - キャレット: - - - - - - - - - 256 - {{29, 175}, {114, 17}} - - YES - - 67239424 - 71303168 - 選択部分: - - - - - - - - - 256 - - YES - - YES - - NSColor pasteboard type - - - - {{148, 170}, {54, 26}} - - YES - YES - - 1 - MC4wNTgxMzA0OTkgMC4wNTU1NDE4OTkgMQA - - - - - 256 - - YES - - YES - - NSColor pasteboard type - - - - {{148, 47}, {54, 26}} - - YES - YES - - 1 - MC4wNTgxMzA0OTkgMC4wNTU1NDE4OTkgMQA - - - - - 268 - {{37, 50}, {105, 18}} - - YES - - -2080244224 - 67108864 - 現在の行: - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 268 - {{62, 19}, {202, 18}} - - YES - - -2080244224 - 0 - IM変換中の文字も含む - - - 1211912703 - 2 - - - - - 200 - 25 - - - - {{2, 2}, {278, 255}} - - - - {{17, 43}, {282, 272}} - - {0, 0} - - 67239424 - 0 - 基本カラーリング - - - - 3 - MCAwLjgwMDAwMDAxAA - - - - 3 - 0 - 2 - NO - - - - 256 - {{33, 334}, {456, 17}} - - YES - - 67239424 - 4194304 - * ここで設定した内容は、次に開いた書類から適用されます。 - - - - - - - - - 268 - {{579, 11}, {25, 25}} - - 2 - YES - - 67239424 - 134217728 - - - - -2038415105 - 33 - - - 200 - 25 - - - - {642, 385} - - CETabItemView - NSView - - - {{10, 33}, {654, 620}} - - 表示 - - - - - prefFormatItemID - - - 256 - - YES - - - 292 - - YES - - - 256 - - YES - - - 274 - - YES - - - 256 - {{419, 6}, {147, 28}} - - YES - - 67239424 - 134348800 - リストを編集... - - - -2038284033 - 1 - - - - - - 200 - 25 - - - - - 256 - {{174, 36}, {194, 26}} - - YES - - -2076049856 - 1024 - - - 109199615 - 1 - - - - - - - - 400 - 75 - - - IA - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - YES - - - - 3 - YES - YES - 1 - - - - - 256 - {{17, 42}, {155, 17}} - - YES - - 67239424 - 71303168 - 既存のファイル: - - - - - - - - - 256 - {{17, 81}, {155, 17}} - - YES - - 67239424 - 71303168 - 新規書類: - - - - - - - - - 256 - {{174, 75}, {194, 26}} - - YES - - -2076049856 - 1024 - - - 109199615 - 1 - - - - - - - - 400 - 75 - - - IA - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - YES - - - - 3 - YES - YES - 1 - - - - - 256 - {{175, 13}, {243, 18}} - - YES - - 67239424 - 0 - エンコーディング宣言を参照する - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 268 - {{396, 80}, {174, 18}} - - YES - - 67239424 - 131072 - UTF-8のときBOMも保存 - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 268 - {{416, 66}, {152, 14}} - - YES - - 67239488 - 272630784 - (非推奨/取扱注意) - - LucidaGrande - 11 - 16 - - - - - - - - {{2, 2}, {584, 114}} - - - - {{17, 155}, {588, 131}} - - {0, 0} - - 67239424 - 0 - エンコーディング - - - - 3 - MCAwLjgwMDAwMDAxAA - - - - 3 - 0 - 2 - NO - - - - 256 - {{339, 442}, {234, 18}} - - YES - - 67239424 - 0 - タブを空白に自動的に変換 - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 256 - {{33, 483}, {518, 17}} - - YES - - 67239424 - 4194304 - * ここで設定した内容は、次に開いた書類から適用されます。 - - - - - - - - - 256 - {{45, 442}, {234, 18}} - - YES - - 67239424 - 0 - 行を折り返す - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 256 - {{45, 412}, {234, 18}} - - YES - - 67239424 - 0 - 自動インデント - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 256 - {{505, 412}, {44, 22}} - - YES - - -1804468671 - -2143288320 - - - - - YES - - YES - allowsFloats - attributedStringForZero - decimalSeparator - formatterBehavior - groupingSeparator - maximum - minimum - negativeFormat - positiveFormat - usesGroupingSeparator - - - YES - - - 0 - - - . - - , - - 0 - 1 - NO - YES - 1 - YwAAAAAAAAAAAAAAAAAAAA - - - 0 - 1 - NO - YES - 1 - AQAAAAAAAAAAAAAAAAAAAA - - -0 - 0 - - - - 0 - -0 - - - - - - - - NaN - - - - - - . - , - NO - YES - YES - - - YES - - - - - - - 256 - {{338, 414}, {162, 17}} - - YES - - 67239424 - 4194304 - タブ/インデント幅: - - - - - - - - - 256 - {{308, 353}, {5, 105}} - - {0, 0} - - 67239424 - 0 - Box - - - - 3 - MCAwLjgwMDAwMDAxAA - - - 3 - 2 - 0 - NO - - - - 256 - - YES - - - 274 - - YES - - - 256 - {{400, 38}, {88, 28}} - - YES - - 67239424 - 134348800 - 選択... - - - -2038284033 - 1 - - - - - - 200 - 25 - - - - - 256 - {{47, 39}, {333, 27}} - - YES - - -2075001280 - 138413056 - - - - YES - - 6 - System - controlHighlightColor - - - - - - - - 256 - {{45, 9}, {257, 18}} - - YES - - 67239424 - 0 - アンチエイリアス適用 - - - 1211912703 - 2 - - - - - 200 - 25 - - - - {{2, 2}, {584, 79}} - - - - {{17, 43}, {588, 96}} - - {0, 0} - - 67239424 - 0 - フォント - - - - 3 - MCAwLjgwMDAwMDAxAA - - - - 3 - 0 - 2 - NO - - - - 256 - {{260, 302}, {155, 26}} - - YES - - -2076049856 - 1024 - - - 109199615 - 1 - - - - - - - - 400 - 75 - - - Unix(LF) - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - YES - - - - Macintosh(CR) - - 1048576 - 2147483647 - - - _popUpItemAction: - 1 - - - - - Windows(CR/LF) - - 1048576 - 2147483647 - - - _popUpItemAction: - 2 - - - - - 3 - YES - YES - 1 - - - - - 256 - {{44, 308}, {214, 17}} - - YES - - 67239424 - 4194304 - 新規書類の行末コード: - - - - - - - - - 256 - {{44, 354}, {102, 17}} - - YES - - 67239424 - 272629760 - 行間: - - - - - - - - - 256 - {{227, 354}, {64, 14}} - - YES - - 67239424 - 272629760 - - - - - - - - - - 256 - {{149, 350}, {76, 26}} - - YES - - 343014976 - 272630784 - 0 - - - YES - - - 9 - YES - - YES - 0 - 0.25 - 0.5 - 0.75 - 1.0 - 1.25 - 1.5 - 1.75 - 2.0 - - - - - 274 - {13, 189} - - - YES - - YES - - 10 - 10 - 1000 - - 75628032 - 0 - - - - - LucidaGrande - 12 - 16 - - - 3 - MC4zMzMzMzI5OQA - - - - - 338820672 - 1024 - - - YES - - 6 - System - controlBackgroundColor - - - - - 3 - YES - - - - 3 - 2 - - - 6 - System - gridColor - - 3 - MC41AA - - - 19 - tableViewAction: - -765427712 - - - - 1 - 15 - 0 - YES - 0 - 1 - - - - - - 256 - {{146, 338}, {76, 13}} - - YES - - 67239424 - 138412032 - ( 0 - 10.0 ) - - - - - - - - - 256 - {{490, 397}, {76, 13}} - - YES - - 67239424 - 138412032 - ( 1 - 99 ) - - - - - - - - - 256 - {{45, 382}, {265, 18}} - - YES - - 67239424 - 0 - 複合フォントでも行高を固定する - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 268 - {{579, 11}, {25, 25}} - - 3 - YES - - 67239424 - 134217728 - - - - -2038415105 - 33 - - - 200 - 25 - - - - {642, 534} - - CETabItemView - NSView - - - {{10, 33}, {654, 620}} - - フォーマット - - - - - prefSyntaxItemID - - - 256 - - YES - - - 292 - - YES - - - 256 - - YES - - - 274 - - YES - - - 256 - - YES - - YES - - NSColor pasteboard type - - - - {{111, 98}, {54, 26}} - - YES - YES - - 1 - MC4wNTgxMzA0OTkgMC4wNTU1NDE4OTkgMQA - - - - - 256 - {{16, 103}, {90, 17}} - - YES - - 67239424 - 71303168 - キーワード: - - - - - - - - - 256 - - YES - - YES - - NSColor pasteboard type - - - - {{111, 58}, {54, 26}} - - YES - YES - - 1 - MC4wNTgxMzA0OTkgMC4wNTU1NDE4OTkgMQA - - - - - 256 - {{16, 63}, {90, 17}} - - YES - - 67239424 - 71303168 - コマンド: - - - - - - - - - 256 - {{174, 63}, {114, 17}} - - YES - - 67239424 - 71303168 - 数値: - - - - - - - - - 256 - - YES - - YES - - NSColor pasteboard type - - - - {{293, 58}, {54, 26}} - - YES - YES - - 1 - MC4wNTgxMzA0OTkgMC4wNTU1NDE4OTkgMQA - - - - - 256 - - YES - - YES - - NSColor pasteboard type - - - - {{475, 98}, {54, 26}} - - YES - YES - - 1 - MC4wNTgxMzA0OTkgMC4wNTU1NDE4OTkgMQA - - - - - 256 - {{356, 103}, {114, 17}} - - YES - - 67239424 - 71303168 - 文字列: - - - - - - - - - 256 - {{356, 63}, {114, 17}} - - YES - - 67239424 - 71303168 - 文字: - - - - - - - - - 256 - - YES - - YES - - NSColor pasteboard type - - - - {{475, 58}, {54, 26}} - - YES - YES - - 1 - MC4wNTgxMzA0OTkgMC4wNTU1NDE4OTkgMQA - - - - - 256 - - YES - - YES - - NSColor pasteboard type - - - - {{293, 98}, {54, 26}} - - YES - YES - - 1 - MC4wNTgxMzA0OTkgMC4wNTU1NDE4OTkgMQA - - - - - 256 - {{174, 103}, {114, 17}} - - YES - - 67239424 - 71303168 - 値: - - - - - - - - - 256 - - YES - - YES - - NSColor pasteboard type - - - - {{475, 18}, {54, 26}} - - YES - YES - - 1 - MC4wNTgxMzA0OTkgMC4wNTU1NDE4OTkgMQA - - - - - 256 - {{380, 23}, {90, 17}} - - YES - - 67239424 - 71303168 - コメント: - - - - - - - - {{2, 2}, {584, 138}} - - - - {{17, 197}, {588, 155}} - - {0, 0} - - 67239424 - 0 - 拡張カラーリング - - - - 3 - MCAwLjgwMDAwMDAxAA - - - - 3 - 0 - 2 - NO - - - - 256 - - YES - - - 274 - - YES - - - 256 - {{140, 8}, {100, 32}} - - YES - - 604110336 - 134217728 - 編集 - - - -2038021889 - 1 - - - - - - 200 - 25 - - - - - 256 - {{17, 86}, {220, 26}} - - YES - - -2076049856 - 1024 - - - 109199615 - 1 - - - - - - - - 400 - 75 - - - IA - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - YES - - - - 3 - YES - YES - 1 - - - - - 256 - {{302, 9}, {93, 28}} - - YES - - 604110336 - 134348800 - 書き出し - - - -2038284033 - 1 - - - - - - 200 - 25 - - - - - 256 - {{414, 9}, {93, 28}} - - -1001 - YES - - 67239424 - 134348800 - 読み込み - - - -1001 - -2038284033 - 1 - - - - - - 200 - 25 - - - - - 256 - {{302, 38}, {93, 28}} - - -100 - YES - - 604110336 - 134348800 - コピー - - - -100 - -2038284033 - 1 - - - - - - 200 - 25 - - - - - 256 - {{414, 38}, {93, 28}} - - -200 - YES - - 67239424 - 134348800 - 新規 - - - -200 - -2038284033 - 1 - - - - - - 200 - 25 - - - - - 256 - {{19, 14}, {68, 16}} - - -1000 - YES - - 604110336 - 134479872 - 削除 - - LucidaGrande - 9 - 3614 - - - -1000 - -2038284033 - 1 - - LucidaGrande - 9 - 16 - - - - - - 200 - 25 - - - - - 256 - {{428, 90}, {130, 16}} - - YES - - 67239424 - 134479872 - 拡張子エラーを表示... - - - -2038284033 - 1 - - - - - - 200 - 25 - - - - - 256 - {{17, 70}, {378, 14}} - - YES - - 67239424 - 272629760 - * アウトラインメニュー (ナビゲーションバー内) 設定を含みます - - - - - - - - {{2, 2}, {584, 121}} - - - - {{17, 43}, {588, 138}} - - {0, 0} - - 67239424 - 0 - シンタックススタイル - - - - 3 - MCAwLjgwMDAwMDAxAA - - - - 3 - 0 - 2 - NO - - - - 256 - {{45, 437}, {370, 18}} - - YES - - 67239424 - 0 - 書類をカラーリングする - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 256 - {{64, 377}, {345, 18}} - - YES - - 67239424 - 0 - 遅延カラーリング - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 256 - {{357, 401}, {229, 26}} - - YES - - -2076049856 - 1024 - - - 109199615 - 1 - - - - - - - - 400 - 75 - - - IA - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - YES - - - - 3 - YES - YES - 1 - - - - - 256 - {{63, 407}, {299, 17}} - - YES - - 67239424 - 272629760 - 初期設定シンタックスカラーリングスタイル名: - - - - - - - - - 268 - {{579, 11}, {25, 25}} - - 4 - YES - - 67239424 - 134217728 - - - - -2038415105 - 33 - - - 200 - 25 - - - - {642, 487} - - CETabItemView - NSView - - - {{10, 33}, {654, 620}} - - シンタックス - - - - - prefFileDropItemID - - - 256 - - YES - - - 292 - - YES - - - 256 - {{22, 418}, {117, 17}} - - YES - - 67239424 - 4194304 - ファイル拡張子: - - - - - - - - - 256 - - YES - - - 2304 - - YES - - - 256 - {469, 95} - - YES - - - 256 - {{470, 0}, {16, 17}} - - - YES - - extensions - 466 - 40 - 1000 - - 75628096 - 2048 - 拡張子 - - - 3 - MC4zMzMzMzI5OQA - - - 6 - System - headerTextColor - - - - - 338820672 - 1024 - Text Cell - - - - - - 3 - YES - YES - - - - 3 - 2 - - - 17 - -700416000 - - - 1 - 15 - 0 - YES - 0 - 1 - - - {{1, 1}, {469, 95}} - - - - - 4 - - - - 256 - {{470, 1}, {15, 95}} - - - _doScroller: - 0.5 - - - - 256 - {{1, 96}, {469, 15}} - - 1 - - _doScroller: - 0.99047619104385376 - - - {{20, 302}, {486, 112}} - - - 133170 - - - - QSAAAEEgAABBmAAAQZgAAA - - - - 256 - {{22, 273}, {384, 17}} - - YES - - 67239424 - 4194304 - 挿入文字列のフォーマット: - - - - - - - - - 256 - {{532, 370}, {47, 25}} - - YES - - 67239424 - 134217728 - 新規 - - - -2033958657 - 6 - - NSImage - addButtonImg - - - - - - 200 - 25 - - - - - 256 - {{532, 332}, {47, 25}} - - YES - - 67239424 - 134217728 - 削除 - - - -2033958657 - 6 - - NSImage - removeButtonImg - - - - - - 200 - 25 - - - - - 256 - {{155, 418}, {354, 14}} - - YES - - 67239424 - 4194304 - (カンマ区切り。拡張子のドットは不要) - - - - - 6 - System - disabledControlTextColor - - 3 - MC4zMzMzMzMzMzMzAA - - - - - - - 256 - - YES - - - 2304 - - YES - - - 2322 - {565, 128} - - - - - - - - - - - YES - - - 6 - - - - 565 - 1 - - - 67121123 - 0 - - - - YES - - YES - NSBackgroundColor - NSColor - - - YES - - 6 - System - selectedTextBackgroundColor - - - - 6 - System - selectedTextColor - - - - - - - YES - - YES - NSColor - NSCursor - NSUnderline - - - YES - - 1 - MCAwIDEAA - - - {8, -8} - 13 - - - - - - - 1 - - 6 - {580, 10000000} - - - - {{1, 1}, {565, 128}} - - - - - - {4, 5} - - 12582912 - - YES - - YES - - - - TU0AKgAAAHCAFUqgBVKsAAAAwdVQUqwaEQeIRGJRGFlYqwWLQ+JxuOQpVRmEx2RROKwOQyOUQSPyaUym -SxqWyKXyeYxyZzWbSuJTScRCbz2Nz+gRKhUOfTqeUai0OSxiWTiBQSHSGFquGwekxyAgAAAOAQAAAwAA -AAEAEAAAAQEAAwAAAAEAEAAAAQIAAwAAAAIACAAIAQMAAwAAAAEABQAAAQYAAwAAAAEAAQAAAREABAAA -AAEAAAAIARIAAwAAAAEAAQAAARUAAwAAAAEAAgAAARYAAwAAAAEAEAAAARcABAAAAAEAAABnARwAAwAA -AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA - - - - - - 3 - MCAwAA - - - - 4 - - - - 256 - {{566, 1}, {15, 128}} - - - _doScroller: - 1 - - - - 256 - {{-100, -100}, {87, 18}} - - 1 - - _doScroller: - 1 - 0.94565218687057495 - - - {{20, 140}, {582, 130}} - - - 133138 - - - - - - - 256 - {{444, 268}, {144, 22}} - - YES - - -2076049856 - 132096 - - - 109199615 - 2 - - - - - - - - 400 - 75 - - - YES - 定型文字列を挿入 - - 1048576 - 2147483647 - - - _popUpItemAction: - - - YES - - - OtherViews - - - YES - - - - <<<ABSOLUTE-PATH>>> - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - <<<RELATIVE-PATH>>> - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - <<<FILENAME>>> - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - <<<FILENAME-NOSUFFIX>>> - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - <<<FILEEXTENSION>>> - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - <<<FILEEXTENSION-LOWER>>> - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - <<<FILEEXTENSION-UPPER>>> - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - <<<DIRECTORY>>> - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - YES - YES - - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - - - <<<IMAGEWIDTH>>> - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - <<<IMAGEHEIGHT>>> - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 9 - YES - 3 - YES - YES - 2 - - - - - 256 - - YES - - - 2304 - - YES - - - 2322 - {491, 252} - - - - - - PDw8QUJTT0xVVEUtUEFUSD4+PgpUaGUgZHJvcHBlZCBmaWxlJ3MgYWJzb2x1dGUgcGF0aC4KPDw8UkVM -QVRJVkUtUEFUSD4+PgpUaGUgcmVsYXRpdmUgcGF0aCBiZXR3ZWVuIHRoZSBkcm9wcGVkIGZpbGUgYW5k -IHRoZSBkb2N1bWVudC4KPDw8RklMRU5BTUU+Pj4KVGhlIGRyb3BwZWQgZmlsZSdzIG5hbWUgd2l0aCBl -eHRlbnNpb24gKGlmIGV4aXN0cykuCjw8PEZJTEVOQU1FLU5PU1VGRklYPj4+ClRoZSBkcm9wcGVkIGZp -bGUncyBuYW1lIHdpdGhvdXQgZXh0ZW5zaW9uLgo8PDxGSUxFRVhURU5TSU9OPj4+ClRoZSBkcm9wcGVk -IGZpbGUncyBleHRlbnNpb24uCjw8PEZJTEVFWFRFTlNJT04tTE9XRVI+Pj4KVGhlIGRyb3BwZWQgZmls -ZSdzIGV4dGVuc2lvbiAoY29udmVydGVkIHRvIGxvd2VyY2FzZSkuCjw8PEZJTEVFWFRFTlNJT04tVVBQ -RVI+Pj4KVGhlIGRyb3BwZWQgZmlsZSdzIGV4dGVuc2lvbiAoY29udmVydGVkIHRvIHVwcGVyY2FzZSku -Cjw8PERJUkVDVE9SWT4+PgpUaGUgcGFyZW50IGRpcmVjdG9yeSBuYW1lIG9mIHRoZSBkcm9wcGVkIGZp -bGUuCjw8PElNQUdFV0lEVEg+Pj4KKGlmIHRoZSBkcm9wcGVkIGZpbGUgaXMgSW1hZ2UpIFRoZSBpbWFn -ZSB3aWR0aC4KPDw8SU1BR0VIRUlHSFQ+Pj4KKGlmIHRoZSBkcm9wcGVkIGZpbGUgaXMgSW1hZ2UpIFRo -ZSBpbWFnZSBoZWlnaHQuCg - - - YES - - YES - NSFont - NSParagraphStyle - - - YES - - Helvetica - 10 - 16 - - - 4 - 36 - - 1 - - - - - - - YES - - - 6 - - - - 491 - 1 - - - 67120101 - 0 - - - 6 - System - windowBackgroundColor - - - - YES - - YES - NSBackgroundColor - NSColor - - - YES - - - - - - - YES - - YES - NSColor - NSCursor - NSUnderline - - - YES - - - - - - - - 1 - - 6 - {586, 10000000} - {491, 83} - - - - {{1, 1}, {491, 83}} - - - - - - 4 - - - - 256 - {{492, 1}, {11, 83}} - - YES - 256 - - _doScroller: - 0.329365074634552 - - - - 256 - {{-100, -100}, {87, 18}} - - 257 - - _doScroller: - 1 - 0.94565218687057495 - - - {{98, 47}, {504, 85}} - - - 133201 - - - - - - - 256 - {{22, 118}, {71, 14}} - - YES - - 67239424 - 4194304 - 用語説明: - - - - - - - - - 268 - {{579, 11}, {25, 25}} - - 5 - YES - - 67239424 - 134217728 - - - - -2038415105 - 33 - - - 200 - 25 - - - - {642, 469} - - CETabItemView - NSView - - - {{10, 33}, {654, 620}} - - ファイルドロップ - - - - - prefKeyBindingsItemID - - - 256 - - YES - - - 292 - - YES - - - 256 - - YES - - - 274 - - YES - - - 256 - {{425, 50}, {100, 32}} - - YES - - 67239424 - 134217728 - 編集... - - - -2038284033 - 1 - - - - - - 200 - 25 - - - - - 256 - {{23, 60}, {381, 14}} - - YES - - 67239424 - 272629760 - メニューアイテムへのキーバインド - - - - - - - - - 256 - {{13, 96}, {264, 17}} - - YES - - 67239424 - 272629760 - メニューキーバインド - - - - - - - - - 256 - {{25, 11}, {381, 41}} - - YES - - 67239424 - 272629760 - * スクリプトメニュー項目はこの設定に含まれていません。 - - - - - - - - {{2, 2}, {584, 126}} - - - - {{17, 209}, {588, 130}} - - {0, 0} - - 67239424 - 0 - - - - - 3 - MCAwLjgwMDAwMDAxAA - - - - 3 - 0 - 0 - NO - - - - 256 - - YES - - - 274 - - YES - - - 256 - {{13, 118}, {264, 17}} - - YES - - 67239424 - 272629760 - 追加テキストキーバインド - - - - - - - - - 256 - {{425, 72}, {100, 32}} - - 1 - YES - - 67239424 - 134217728 - 編集... - - - 1 - -2038284033 - 1 - - - - - - 200 - 25 - - - - - 256 - {{23, 82}, {381, 14}} - - YES - - 67239424 - 272629760 - テキストハンドリングのキーバインド - - - - - - - - - 256 - {{23, 11}, {381, 63}} - - YES - - 67239424 - 272629760 - * この設定は Cocoa 標準のテキストキーバインドを設定するものではなく、CotEditor 独自メソッドのものです。 - - - - - - - - {{2, 2}, {584, 148}} - - - - {{17, 43}, {588, 152}} - - {0, 0} - - 67239424 - 0 - - - - - 3 - MCAwLjgwMDAwMDAxAA - - - - 3 - 0 - 0 - NO - - - - 268 - {{579, 11}, {25, 25}} - - 6 - YES - - 67239424 - 134217728 - - - - -2038415105 - 33 - - - 200 - 25 - - - - {642, 371} - - CETabItemView - NSView - - - {{10, 33}, {654, 620}} - - キーバインド - - - - - prefPrintItemID - - - 256 - - YES - - - 292 - - YES - - - 256 - - YES - - - 274 - - YES - - - 256 - {{126, 80}, {215, 26}} - - YES - - -2076049856 - 2048 - - - 109199615 - 1 - - - - - - 400 - 75 - - - (プリントしない) - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - YES - - - - YES - YES - - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 書類名 - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - ファイルパス - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - プリント日時 - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - ページ番号 - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 3 - YES - YES - 1 - - - - - 256 - {{362, 83}, {77, 23}} - - YES - 1 - 3 - - YES - - -2080244224 - 134217728 - - - - 922501375 - 6 - - NSImage - leftButtonImg - - - - - - 200 - 25 - - - 67239424 - 134217728 - - - - 921977087 - 6 - - NSImage - centerButtonImg - - - - 400 - 75 - - - 67239424 - 134217728 - - - - 921977087 - 6 - - NSImage - rightButtonImg - - - - 400 - 75 - - - {23, 23} - {4, 2} - 1143472128 - NSActionCell - - 67239424 - 0 - Radio - - 1211912703 - 0 - - - - - 400 - 75 - - - - - - - - - 256 - {{41, 9}, {330, 18}} - - YES - - 67239424 - 0 - ヘッダの下に区切り線を印字 - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 256 - {{362, 47}, {77, 23}} - - YES - 1 - 3 - - YES - - -2080244224 - 134217728 - - - - 922501375 - 6 - - - - - - 200 - 25 - - - 67239424 - 134217728 - - - - 921977087 - 6 - - - - 400 - 75 - - - 67239424 - 134217728 - - - - 921977087 - 6 - - - - 400 - 75 - - - {23, 23} - {4, 2} - 1143472128 - NSActionCell - - 67239424 - 0 - Radio - - 1211912703 - 0 - - - - 400 - 75 - - - - - - - - - 256 - {{40, 87}, {81, 17}} - - YES - - 67239424 - 71303168 - 行1: - - - - - - - - - 256 - {{40, 50}, {81, 17}} - - YES - - 67239424 - 71303168 - 行2: - - - - - - - - - 256 - {{41, 109}, {185, 18}} - - YES - - 67239424 - 0 - ヘッダを印字: - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 256 - {{126, 44}, {215, 26}} - - YES - - -2076049856 - 2048 - - - 109199615 - 1 - - - - - - 400 - 75 - - - (プリントしない) - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - YES - - - - YES - YES - - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 書類名 - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - ファイルパス - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - プリント日時 - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - ページ番号 - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 3 - YES - YES - 1 - - - - {{2, 2}, {584, 133}} - - - - {{17, 202}, {588, 150}} - - {0, 0} - - 67239424 - 0 - ヘッダ: - - - - 3 - MCAwLjgwMDAwMDAxAA - - - - 3 - 0 - 2 - NO - - - - 256 - - YES - - - 274 - - YES - - - 256 - {{362, 81}, {77, 23}} - - YES - 1 - 3 - - YES - - -2080244224 - 134217728 - - - - 922501375 - 6 - - - - - - 200 - 25 - - - 67239424 - 134217728 - - - - 921977087 - 6 - - - - 400 - 75 - - - 67239424 - 134217728 - - - - 921977087 - 6 - - - - 400 - 75 - - - {23, 23} - {4, 2} - 1143472128 - NSActionCell - - 67239424 - 0 - Radio - - 1211912703 - 0 - - - - 400 - 75 - - - - - - - - - 256 - {{41, 11}, {330, 18}} - - YES - - 67239424 - 0 - ヘッダの上に区切り線を印字 - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 256 - {{362, 45}, {77, 23}} - - YES - 1 - 3 - - YES - - -2080244224 - 134217728 - - - - 922501375 - 6 - - - - - - 200 - 25 - - - 67239424 - 134217728 - - - - 921977087 - 6 - - - - 400 - 75 - - - 67239424 - 134217728 - - - - 921977087 - 6 - - - - 400 - 75 - - - {23, 23} - {4, 2} - 1143472128 - NSActionCell - - 67239424 - 0 - Radio - - 1211912703 - 0 - - - - 400 - 75 - - - - - - - - - 256 - {{40, 85}, {81, 17}} - - YES - - 67239424 - 71303168 - 行1: - - - - - - - - - 256 - {{40, 48}, {81, 17}} - - YES - - 67239424 - 71303168 - 行2: - - - - - - - - - 256 - {{41, 107}, {192, 18}} - - YES - - 67239424 - 0 - フッタを印字: - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 256 - {{126, 78}, {215, 26}} - - YES - - -2076049856 - 2048 - - - 109199615 - 1 - - - - - - 400 - 75 - - - (プリントしない) - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - YES - - - - YES - YES - - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 書類名 - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - ファイルパス - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - プリント日時 - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - ページ番号 - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 3 - YES - YES - 1 - - - - - 256 - {{126, 42}, {215, 26}} - - YES - - -2076049856 - 2048 - - - 109199615 - 1 - - - - - - 400 - 75 - - - (プリントしない) - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - YES - - - - YES - YES - - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 書類名 - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - ファイルパス - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - プリント日時 - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - ページ番号 - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 3 - YES - YES - 1 - - - - {{2, 2}, {584, 131}} - - - - {{17, 43}, {588, 148}} - - {0, 0} - - 67239424 - 0 - フッタ: - - - - 3 - MCAwLjgwMDAwMDAxAA - - - - 3 - 0 - 2 - NO - - - - 256 - {{70, 527}, {114, 17}} - - YES - - 67239424 - 272629760 - 行番号: - - - - - - - - - 256 - {{186, 521}, {215, 26}} - - YES - - -2076049856 - 2048 - - - 109199615 - 1 - - - - - - 400 - 75 - - - (プリントしない) - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - YES - - - - 書類の設定と同じ - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - プリント - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 3 - YES - YES - 1 - - - - - 256 - {{70, 490}, {114, 17}} - - YES - - 67239424 - 272629760 - 不可視文字: - - - - - - - - - 256 - {{186, 484}, {215, 26}} - - YES - - -2076049856 - 2048 - - - 109199615 - 1 - - - - - - 400 - 75 - - - (プリントしない) - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - YES - - - - 書類の設定と同じ - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 全てプリント - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 3 - YES - YES - 1 - - - - - 256 - - YES - - - 274 - - YES - - - 256 - {{382, 19}, {88, 28}} - - YES - - 67239424 - 134348800 - 選択... - - - -2038284033 - 1 - - - - - - 200 - 25 - - - - - 256 - {{41, 17}, {318, 66}} - - YES - 2 - 1 - - YES - - -2080244224 - 0 - 書類のフォントと同じ - - - 1211912703 - 0 - - - - - - - 200 - 25 - - - 67239424 - 0 - - - - 1 - 1211912703 - 0 - - - - 200 - 25 - - - {318, 32} - {4, 2} - 1143472128 - NSActionCell - - 67239424 - 0 - Radio - - 1211912703 - 0 - - - - 400 - 75 - - - - - - - - - 256 - {{60, 20}, {310, 27}} - - YES - - -2075001280 - 138413056 - - - - YES - - - - - - {{2, 2}, {584, 88}} - - - - {{17, 363}, {588, 105}} - - {0, 0} - - 67239424 - 0 - プリント用フォント: - - - - 3 - MCAwLjgwMDAwMDAxAA - - - - 3 - 0 - 2 - NO - - - - 256 - {{31, 591}, {434, 17}} - - YES - - 67239424 - 4194304 - * ここで設定した内容は、次に開いた書類から適用されます。 - - - - - - - - - 256 - {{186, 558}, {215, 26}} - - YES - - -2076049856 - 2048 - - - 109199615 - 1 - - - - - - 400 - 75 - - - テキストを黒 - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - - - - YES - - - OtherViews - - - YES - - - - 書類の設定と同じ - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 3 - YES - YES - 1 - - - - - 256 - {{70, 564}, {114, 17}} - - YES - - 67239424 - 272629760 - カラー: - - - - - - - - - 268 - {{579, 11}, {25, 25}} - - 7 - YES - - 67239424 - 134217728 - - - - -2038415105 - 33 - - - 200 - 25 - - - - {642, 639} - - CETabItemView - NSView - - - {{10, 33}, {642, 620}} - - プリント - - - - - - - 6 - YES - - YES - - - - - {694, 686} - - - - - {{0, 0}, {1366, 746}} - {218.03700000000001, 129} - {10000000000000, 10000000000000} - YES - - - YES - - - 9 - 2 - {{247, 236}, {401, 350}} - 1886912512 - エンコーディングリスト - NSWindow - - View - - - {350, 320} - - - 256 - - YES - - - 274 - - YES - - - 2304 - - YES - - - 256 - {255, 218} - - YES - - - 256 - {{212, 0}, {16, 17}} - - - YES - - 252 - 40 - 1000 - - 75628096 - 2048 - - - - 3 - MC4zMzMzMzI5OQA - - - - - 338820672 - 1024 - - - - - - 3 - YES - YES - - - - 3 - 2 - - - 17 - -633307136 - - - 1 - 15 - 0 - YES - 0 - 1 - - - {{1, 1}, {255, 218}} - - - - - 4 - - - - -2147483392 - {{-30, 1}, {15, 195}} - - - _doScroller: - 0.94210523366928101 - - - - -2147483392 - {{1, -30}, {210, 15}} - - 1 - - _doScroller: - 0.99047619104385376 - - - {{20, 59}, {257, 220}} - - - 133682 - - - - QSAAAEEgAABBmAAAQZgAAA - - - - 289 - {{185, 12}, {100, 32}} - - YES - - 67239424 - 134217728 - キャンセル - - - -2038284033 - 1 - - - Gw - 200 - 25 - - - - - 289 - {{285, 12}, {100, 32}} - - 100 - YES - - 67239424 - 134217728 - OK - - - 100 - -2038284033 - 1 - - - DQ - 200 - 25 - - - - - 265 - {{285, 249}, {97, 16}} - - YES - - 67239424 - 134479872 - 区切り線を追加 - - - -2038284033 - 1 - - - - - - 200 - 25 - - - - - 265 - {{285, 199}, {97, 16}} - - YES - - 604110336 - 134479872 - 区切り線を削除 - - - -2038284033 - 1 - - - - - - 200 - 25 - - - - - 266 - {{17, 285}, {367, 30}} - - YES - - 67239424 - 138412032 - 44GT44Gu44Oq44K544OI44Gv6Ieq5YuV6KqN6K2Y44KE44Oh44OL44Ol44O844Gn5L2/44KP44KM44G+ -44GZ44CCCuiHquWLleiqjeitmOOBp+OBr+OAgeS4iuOBq+OBguOCi+OCguOBruOBi+OCiemghuOBq+WI -pOWIpeOBl+OBvuOBmeOAgg - - - - - - - - - 266 - {{17, 321}, {367, 17}} - - YES - - 67239424 - 138412032 - ドラッグしてエンコーディングを並び替えてください - - LucidaGrande-Bold - 13 - 2072 - - - YES - - 6 - System - selectedInactiveColor - - - - - - - - 292 - {{15, 31}, {164, 26}} - - YES - - 604110336 - 134348800 - 出荷時のデフォルトに戻す - - - -2038021889 - 2 - - - - 400 - 75 - - - - {{1, 9}, {401, 350}} - - {{0, 0}, {1366, 746}} - {350, 342} - {10000000000000, 10000000000000} - encodingList - YES - - - CEPrefEncodingDataSource - - - 9 - 2 - {{192, 280}, {480, 360}} - 1886912512 - ウインドウサイズを決定 - NSWindow - - View - - - {400, 200} - - - 256 - - YES - - - 289 - {{366, 22}, {100, 32}} - - 100 - YES - - 67239424 - 134217728 - OK - - - 100 - -2038284033 - 1 - - - DQ - 200 - 25 - - - - - 289 - {{258, 22}, {100, 32}} - - YES - - 67239424 - 134217728 - キャンセル - - - -2038284033 - 1 - - - Gw - 200 - 25 - - - - - 266 - {{17, 276}, {446, 64}} - - YES - - 67239424 - 4194304 - ウインドウのサイズを決定し、"OK" ボタンを押すと、このウインドウのサイズが設定されます。 - - - - - - - - - 265 - {{250, 249}, {63, 19}} - - YES - - -1804468672 - -2076048384 - - - - - YES - - YES - allowsFloats - attributedStringForNil - attributedStringForNotANumber - attributedStringForZero - decimalSeparator - formatterBehavior - groupingSeparator - locale - maximum - minimum - negativeFormat - positiveFormat - usesGroupingSeparator - - - YES - - - - - - NaN - - - - 0 - - - . - - , - - - 4 - 1 - NO - YES - 1 - AQAAAAAAAAAAAAAAAAAAAA - - - 2 - 1 - NO - YES - 1 - AQAAAAAAAAAAAAAAAAAAAA - - -0 - 0.0 - - - - 0.0 - -0 - - - - - - - - - . - , - NO - NO - YES - - - YES - - - - - - - 265 - {{383, 249}, {63, 19}} - - YES - - -1804468672 - -2076048384 - - - - - YES - - YES - allowsFloats - attributedStringForNil - attributedStringForNotANumber - attributedStringForZero - decimalSeparator - formatterBehavior - groupingSeparator - locale - maximum - minimum - negativeFormat - positiveFormat - usesGroupingSeparator - - - YES - - - - - - NaN - - - - 0 - - - . - - , - - - 4 - 1 - NO - YES - 1 - AQAAAAAAAAAAAAAAAAAAAA - - - 2 - 1 - NO - YES - 1 - AQAAAAAAAAAAAAAAAAAAAA - - -0 - 0.0 - - - - 0.0 - -0 - - - - - - - - - . - , - NO - NO - YES - - - YES - - - - - - - 265 - {{203, 251}, {42, 14}} - - YES - - 67239424 - 4194304 - 幅: - - - - - - - - - 265 - {{336, 251}, {42, 14}} - - YES - - 67239424 - 4194304 - 高さ: - - - - - - - - - 290 - {{17, 32}, {228, 17}} - - YES - - 67239424 - 71303168 - ボタンを押して、ウインドウを閉じます >>> - - - - - - - - {{1, 9}, {480, 360}} - - {{0, 0}, {1366, 746}} - {400, 222} - {10000000000000, 10000000000000} - YES - - - - YES - extensions - formatString - windowHeight - footerOneAlignIndex - - YES - - YES - YES - YES - YES - - - CEPreferencesTabController - - - SUUpdater - - - - 256 - {1, 111} - - - - 256 - {1, 111} - - - - - YES - - - _prefWindow - - - - 29 - - - - _encodingWindow - - - - 45 - - - - openEncodingEditSheet: - - - - 46 - - - - closeEncodingEditSheet: - - - - 49 - - - - closeEncodingEditSheet: - - - - 50 - - - - _encodingDataSource - - - - 58 - - - - _encodingMenuInOpen - - - - 101 - - - - _encodingMenuInNew - - - - 102 - - - - _sizeSampleWindow - - - - 132 - - - - setWindowContentSizeToDefault: - - - - 133 - - - - setWindowContentSizeToDefault: - - - - 134 - - - - openSyntaxEditSheet: - - - - 169 - - - - _invisibleNewLinePopup - - - - 228 - - - - _invisibleSpacePopup - - - - 237 - - - - _invisibleTabPopup - - - - 245 - - - - _invisibleFullwidthSpacePopup - - - - 250 - - - - _syntaxStylesPopup - - - - 341 - - - - _syntaxStyleEditButton - - - - 342 - - - - _syntaxStyleExportButton - - - - 343 - - - - changedSyntaxStylesPopup: - - - - 344 - - - - _syntaxStyleCopyButton - - - - 347 - - - - openSyntaxEditSheet: - - - - 349 - - - - openSyntaxEditSheet: - - - - 350 - - - - deleteSyntaxStyle: - - - - 352 - - - - _syntaxStyleDeleteButton - - - - 353 - - - - importSyntaxStyle: - - - - 354 - - - - exportSyntaxStyle: - - - - 355 - - - - openSyntaxExtensionErrorSheet: - - - - 357 - - - - showFonts: - - - - 389 - - - - _prefFontFamilyNameSize - - - - 390 - - - - _fileDropController - - - - 455 - - - - addNewFileDropSetting: - - - - 517 - - - - deleteFileDropSetting: - - - - 518 - - - - _fileDropTableView - - - - 519 - - - - _fileDropTextView - - - - 554 - - - - insertFormatStringInFileDrop: - - - - 555 - - - - insertFormatStringInFileDrop: - - - - 556 - - - - insertFormatStringInFileDrop: - - - - 557 - - - - insertFormatStringInFileDrop: - - - - 558 - - - - insertFormatStringInFileDrop: - - - - 559 - - - - insertFormatStringInFileDrop: - - - - 560 - - - - insertFormatStringInFileDrop: - - - - 561 - - - - _syntaxStyleXtsnErrButton - - - - 604 - - - - openSizeSampleWindow: - - - - 642 - - - - changedSyntaxStylesPopup: - - - - 677 - - - - insertFormatStringInFileDrop: - - - - 697 - - - - insertFormatStringInFileDrop: - - - - 698 - - - - insertFormatStringInFileDrop: - - - - 699 - - - - openKeyBindingEditSheet: - - - - 723 - - - - openKeyBindingEditSheet: - - - - 725 - - - - _syntaxStylesDefaultPopup - - - - 730 - - - - setupCustomLineSpacing: - - - - 834 - - - - _prefTabView - - - - 999 - - - - showFonts: - - - - 1009 - - - - _printFontFamilyNameSize - - - - 1010 - - - - openPrefHelp: - - - - 1992 - - - - openPrefHelp: - - - - 2153 - - - - openPrefHelp: - - - - 2156 - - - - openPrefHelp: - - - - 2159 - - - - openPrefHelp: - - - - 2162 - - - - openPrefHelp: - - - - 2353 - - - - openPrefHelp: - - - - 2358 - - - - openPrefHelp: - - - - 2361 - - - - _fileDropGlossaryTextView - - - - 3080 - - - - setSmartInsertAndDeleteToAllTextView: - - - - 647 - - - - setSelectAccessoryEncodingMenuToDefault: - - - - 778 - - - - delegate - - - - 196 - - - - delegate - - - - 742 - - - - selectedTag: values.defaultLineEndCharCode - - - - - - selectedTag: values.defaultLineEndCharCode - selectedTag - values.defaultLineEndCharCode - 2 - - - 28 - - - - dataSource - - - - 48 - - - - delegate - - - - 65 - - - - _tableView - - - - 59 - - - - addSeparator: - - - - 63 - - - - deleteSeparator: - - - - 64 - - - - _delSeparatorButton - - - - 66 - - - - revertDefaultEncodings: - - - - 701 - - - - _revertButton - - - - 702 - - - - value: values.wrapLines - - - - - - value: values.wrapLines - value - values.wrapLines - 2 - - - 90 - - - - selectedTag: values.encodingInOpen - - - - - - selectedTag: values.encodingInOpen - selectedTag - values.encodingInOpen - 2 - - - 98 - - - - selectedTag: values.encodingInNew - - - - - - selectedTag: values.encodingInNew - selectedTag - values.encodingInNew - 2 - - - 100 - - - - value: values.createNewAtStartup - - - - - - value: values.createNewAtStartup - value - values.createNewAtStartup - 2 - - - 157 - - - - contentHeight: sampleHeight - - - - - - contentHeight: sampleHeight - contentHeight - sampleHeight - 2 - - - 149 - - - - contentWidth: sampleWidth - - - - - - contentWidth: sampleWidth - contentWidth - sampleWidth - - 2 - - - 151 - - - - value: sampleWidth - - - - - - value: sampleWidth - value - sampleWidth - 2 - - - 152 - - - - value: sampleHeight - - - - - - value: sampleHeight - value - sampleHeight - 2 - - - 153 - - - - value: values.autoExpandTab - - - - - - value: values.autoExpandTab - value - values.autoExpandTab - 2 - - - 163 - - - - value: values.autoIndent - - - - - - value: values.autoIndent - value - values.autoIndent - 2 - - - 210 - - - - value: values.invisibleCharactersColor - - - - - - value: values.invisibleCharactersColor - value - values.invisibleCharactersColor - - NSValueTransformerName - NSUnarchiveFromData - - 2 - - - 219 - - - - value: values.showInvisibleNewLine - - - - - - value: values.showInvisibleNewLine - value - values.showInvisibleNewLine - 2 - - - 227 - - - - enabled: values.showInvisibleNewLine - - - - - - enabled: values.showInvisibleNewLine - enabled - values.showInvisibleNewLine - 2 - - - 230 - - - - selectedIndex: values.invisibleNewLine - - - - - - selectedIndex: values.invisibleNewLine - selectedIndex - values.invisibleNewLine - 2 - - - 232 - - - - value: values.showInvisibleSpace - - - - - - value: values.showInvisibleSpace - value - values.showInvisibleSpace - 2 - - - 238 - - - - enabled: values.showInvisibleSpace - - - - - - enabled: values.showInvisibleSpace - enabled - values.showInvisibleSpace - 2 - - - 239 - - - - selectedIndex: values.invisibleSpace - - - - - - selectedIndex: values.invisibleSpace - selectedIndex - values.invisibleSpace - 2 - - - 240 - - - - enabled: values.showInvisibleTab - - - - - - enabled: values.showInvisibleTab - enabled - values.showInvisibleTab - 2 - - - 252 - - - - selectedIndex: values.invisibleTab - - - - - - selectedIndex: values.invisibleTab - selectedIndex - values.invisibleTab - 2 - - - 253 - - - - value: values.showInvisibleTab - - - - - - value: values.showInvisibleTab - value - values.showInvisibleTab - 2 - - - 251 - - - - enabled: values.showInvisibleZenkakuSpace - - - - - - enabled: values.showInvisibleZenkakuSpace - enabled - values.showInvisibleZenkakuSpace - 2 - - - 255 - - - - selectedIndex: values.invisibleZenkakuSpace - - - - - - selectedIndex: values.invisibleZenkakuSpace - selectedIndex - values.invisibleZenkakuSpace - 2 - - - 256 - - - - value: values.showInvisibleZenkakuSpace - - - - - - value: values.showInvisibleZenkakuSpace - value - values.showInvisibleZenkakuSpace - 2 - - - 254 - - - - value: values.tabWidth - - - - - - value: values.tabWidth - value - values.tabWidth - 2 - - - 284 - - - - value: values.keywordsColor - - - - - - value: values.keywordsColor - value - values.keywordsColor - - NSValueTransformerName - NSUnarchiveFromData - - 2 - - - 327 - - - - enabled: values.doSyntaxColoring - - - - - - enabled: values.doSyntaxColoring - enabled - values.doSyntaxColoring - 2 - - - 649 - - - - value: values.commandsColor - - - - - - value: values.commandsColor - value - values.commandsColor - - NSValueTransformerName - NSUnarchiveFromData - - 2 - - - 329 - - - - enabled: values.doSyntaxColoring - - - - - - enabled: values.doSyntaxColoring - enabled - values.doSyntaxColoring - 2 - - - 652 - - - - value: values.numbersColor - - - - - - value: values.numbersColor - value - values.numbersColor - - NSValueTransformerName - NSUnarchiveFromData - - 2 - - - 332 - - - - enabled: values.doSyntaxColoring - - - - - - enabled: values.doSyntaxColoring - enabled - values.doSyntaxColoring - 2 - - - 653 - - - - value: values.stringsColor - - - - - - value: values.stringsColor - value - values.stringsColor - - NSValueTransformerName - NSUnarchiveFromData - - 2 - - - 414 - - - - enabled: values.doSyntaxColoring - - - - - - enabled: values.doSyntaxColoring - enabled - values.doSyntaxColoring - 2 - - - 651 - - - - value: values.charactersColor - - - - - - value: values.charactersColor - value - values.charactersColor - - NSValueTransformerName - NSUnarchiveFromData - - 2 - - - 415 - - - - enabled: values.doSyntaxColoring - - - - - - enabled: values.doSyntaxColoring - enabled - values.doSyntaxColoring - 2 - - - 654 - - - - value: values.valuesColor - - - - - - value: values.valuesColor - value - values.valuesColor - - NSValueTransformerName - NSUnarchiveFromData - - 2 - - - 334 - - - - enabled: values.doSyntaxColoring - - - - - - enabled: values.doSyntaxColoring - enabled - values.doSyntaxColoring - 2 - - - 650 - - - - value: values.commentsColor - - - - - - value: values.commentsColor - value - values.commentsColor - - NSValueTransformerName - NSUnarchiveFromData - - 2 - - - 340 - - - - enabled: values.doSyntaxColoring - - - - - - enabled: values.doSyntaxColoring - enabled - values.doSyntaxColoring - 2 - - - 655 - - - - selectedIndex: values.saveTypeCreator - - - - - - selectedIndex: values.saveTypeCreator - selectedIndex - values.saveTypeCreator - 2 - - - 380 - - - - value: values.textColor - - - - - - value: values.textColor - value - values.textColor - - NSValueTransformerName - NSUnarchiveFromData - - 2 - - - 427 - - - - value: values.insertionPointColor - - - - - - value: values.insertionPointColor - value - values.insertionPointColor - - NSValueTransformerName - NSUnarchiveFromData - - 2 - - - 429 - - - - value: values.backgroundColor - - - - - - value: values.backgroundColor - value - values.backgroundColor - - NSValueTransformerName - NSUnarchiveFromData - - 2 - - - 428 - - - - value: values.doSyntaxColoring - - - - - - value: values.doSyntaxColoring - value - values.doSyntaxColoring - 2 - - - 431 - - - - delegate - - - - 584 - - - - value: arrangedObjects.extensions - - - - - - value: arrangedObjects.extensions - value - arrangedObjects.extensions - 2 - - - 582 - - - - enabled: canAdd - - - - - - enabled: canAdd - enabled - canAdd - 2 - - - 463 - - - - enabled: canRemove - - - - - - enabled: canRemove - enabled - canRemove - 2 - - - 461 - - - - delegate - - - - 585 - - - - value: selection.formatString - - - - - - value: selection.formatString - value - selection.formatString - 2 - - - 593 - - - - value: values.reopenBlankWindow - - - - - - value: values.reopenBlankWindow - value - values.reopenBlankWindow - 2 - - - 595 - - - - value: values.checkSpellingAsType - - - - - - value: values.checkSpellingAsType - value - values.checkSpellingAsType - 2 - - - 597 - - - - value: values.NSDragAndDropTextDelay - - - - - - value: values.NSDragAndDropTextDelay - value - values.NSDragAndDropTextDelay - 2 - - - 601 - - - - value: values.alphaOnlyTextView - - - - - - value: values.alphaOnlyTextView - value - values.alphaOnlyTextView - 2 - - - 638 - - - - value: values.windowAlpha - - - - - - value: values.windowAlpha - value - values.windowAlpha - 2 - - - 636 - - - - value: values.windowAlpha - - - - - - value: values.windowAlpha - value - values.windowAlpha - 2 - - - 634 - - - - value: values.windowWidth - - - - - - value: values.windowWidth - value - values.windowWidth - 2 - - - 640 - - - - value: values.windowHeight - - - - - - value: values.windowHeight - value - values.windowHeight - 2 - - - 643 - - - - value: values.showLineNumbers - - - - - - value: values.showLineNumbers - value - values.showLineNumbers - 2 - - - 630 - - - - value: values.showStatusArea - - - - - - value: values.showStatusArea - value - values.showStatusArea - 2 - - - 632 - - - - value: values.smartInsertAndDelete - - - - - - value: values.smartInsertAndDelete - value - values.smartInsertAndDelete - 2 - - - 646 - - - - selectedIndex: values.completeAddStandardWords - - - - - - selectedIndex: values.completeAddStandardWords - selectedIndex - values.completeAddStandardWords - 2 - - - 693 - - - - value: values.delayColoring - - - - - - value: values.delayColoring - value - values.delayColoring - 2 - - - 705 - - - - enabled: values.doSyntaxColoring - - - - - - enabled: values.doSyntaxColoring - enabled - values.doSyntaxColoring - 2 - - - 706 - - - - value: values.showNavigationBar - - - - - - value: values.showNavigationBar - value - values.showNavigationBar - 2 - - - 709 - - - - enabled: values.doSyntaxColoring - - - - - - enabled: values.doSyntaxColoring - enabled - values.doSyntaxColoring - 2 - - - 732 - - - - selectedValue: values.defaultColoringStyleName - - - - - - selectedValue: values.defaultColoringStyleName - selectedValue - values.defaultColoringStyleName - 2 - - - 733 - - - - enabled: values.doSyntaxColoring - - - - - - enabled: values.doSyntaxColoring - enabled - values.doSyntaxColoring - 2 - - - 736 - - - - _prefWindow - - - - 738 - - - - _tabView - - - - 739 - - - - value: values.showPageGuide - - - - - - value: values.showPageGuide - value - values.showPageGuide - 2 - - - 805 - - - - enabled: values.showPageGuide - - - - - - enabled: values.showPageGuide - enabled - values.showPageGuide - 2 - - - 807 - - - - value: values.pageGuideColumn - - - - - - value: values.pageGuideColumn - value - values.pageGuideColumn - 2 - - - 808 - - - - value: values.shouldAntialias - - - - - - value: values.shouldAntialias - value - values.shouldAntialias - 2 - - - 811 - - - - value: values.lineSpacing - - - - - - value: values.lineSpacing - value - values.lineSpacing - 2 - - - 829 - - - - value: values.swapYenAndBackSlashKey - - - - - - value: values.swapYenAndBackSlashKey - value - values.swapYenAndBackSlashKey - 2 - - - 846 - - - - value: values.selectionColor - - - - - - value: values.selectionColor - value - values.selectionColor - - NSValueTransformerName - NSUnarchiveFromData - - 2 - - - 851 - - - - value: values.showWrappedLineMark - - - - - - value: values.showWrappedLineMark - value - values.showWrappedLineMark - 2 - - - 858 - - - - enabled: values.showLineNumbers - - - - - - enabled: values.showLineNumbers - enabled - values.showLineNumbers - 2 - - - 859 - - - - value: values.fixLineHeight - - - - - - value: values.fixLineHeight - value - values.fixLineHeight - 2 - - - 862 - - - - value: values.showStatusThousSeparator - - - - - - value: values.showStatusThousSeparator - value - values.showStatusThousSeparator - 2 - - - 865 - - - - enabled: values.showStatusArea - - - - - - enabled: values.showStatusArea - enabled - values.showStatusArea - 2 - - - 866 - - - - value: values.highlightBraces - - - - - - value: values.highlightBraces - value - values.highlightBraces - 2 - - - 869 - - - - enabled: values.highlightBraces - - - - - - enabled: values.highlightBraces - enabled - values.highlightBraces - 2 - - - 872 - - - - value: values.highlightLtGt - - - - - - value: values.highlightLtGt - value - values.highlightLtGt - 2 - - - 873 - - - - value: values.showOtherInvisibleChars - - - - - - value: values.showOtherInvisibleChars - value - values.showOtherInvisibleChars - 2 - - - 876 - - - - value: values.referToEncodingTag - - - - - - value: values.referToEncodingTag - value - values.referToEncodingTag - 2 - - - 879 - - - - selectedIndex: values.headerOneAlignIndex - - - - - - selectedIndex: values.headerOneAlignIndex - selectedIndex - values.headerOneAlignIndex - 2 - - - 966 - - - - enabled: values.printHeader - - - - - - enabled: values.printHeader - enabled - values.printHeader - 2 - - - 967 - - - - enabled2: values.headerOneStringIndex - - - - - - enabled2: values.headerOneStringIndex - enabled2 - values.headerOneStringIndex - - YES - - YES - NSMultipleValuesPlaceholder - NSNoSelectionPlaceholder - NSNotApplicablePlaceholder - NSNullPlaceholder - - - YES - - - - - - - - 2 - - - 968 - - - - value: values.printHeader - - - - - - value: values.printHeader - value - values.printHeader - 2 - - - 956 - - - - selectedIndex: values.headerOneStringIndex - - - - - - selectedIndex: values.headerOneStringIndex - selectedIndex - values.headerOneStringIndex - 2 - - - 958 - - - - enabled: values.printHeader - - - - - - enabled: values.printHeader - enabled - values.printHeader - 2 - - - 962 - - - - value: values.printHeaderSeparator - - - - - - value: values.printHeaderSeparator - value - values.printHeaderSeparator - 2 - - - 964 - - - - selectedIndex: values.headerTwoStringIndex - - - - - - selectedIndex: values.headerTwoStringIndex - selectedIndex - values.headerTwoStringIndex - 2 - - - 960 - - - - enabled: values.printHeader - - - - - - enabled: values.printHeader - enabled - values.printHeader - 2 - - - 961 - - - - selectedIndex: values.headerTwoAlignIndex - - - - - - selectedIndex: values.headerTwoAlignIndex - selectedIndex - values.headerTwoAlignIndex - 2 - - - 970 - - - - enabled: values.printHeader - - - - - - enabled: values.printHeader - enabled - values.printHeader - 2 - - - 971 - - - - enabled2: values.headerTwoStringIndex - - - - - - enabled2: values.headerTwoStringIndex - enabled2 - values.headerTwoStringIndex - - YES - - YES - NSMultipleValuesPlaceholder - NSNoSelectionPlaceholder - NSNotApplicablePlaceholder - NSNullPlaceholder - - - YES - - - - - - - - 2 - - - 972 - - - - value: values.printFooterSeparator - - - - - - value: values.printFooterSeparator - value - values.printFooterSeparator - 2 - - - 982 - - - - value: values.printFooter - - - - - - value: values.printFooter - value - values.printFooter - 2 - - - 974 - - - - enabled: values.printFooter - - - - - - enabled: values.printFooter - enabled - values.printFooter - 2 - - - 985 - - - - enabled2: values.footerOneStringIndex - - - - - - enabled2: values.footerOneStringIndex - enabled2 - values.footerOneStringIndex - - YES - - YES - NSMultipleValuesPlaceholder - NSNoSelectionPlaceholder - NSNotApplicablePlaceholder - NSNullPlaceholder - - - YES - - - - - - - - 2 - - - 986 - - - - selectedIndex: values.footerOneAlignIndex - - - - - - selectedIndex: values.footerOneAlignIndex - selectedIndex - values.footerOneAlignIndex - 2 - - - 987 - - - - selectedIndex: values.footerTwoAlignIndex - - - - - - selectedIndex: values.footerTwoAlignIndex - selectedIndex - values.footerTwoAlignIndex - 2 - - - 989 - - - - enabled: values.printFooter - - - - - - enabled: values.printFooter - enabled - values.printFooter - 2 - - - 990 - - - - enabled2: values.footerTwoStringIndex - - - - - - enabled2: values.footerTwoStringIndex - enabled2 - values.footerTwoStringIndex - - YES - - YES - NSMultipleValuesPlaceholder - NSNoSelectionPlaceholder - NSNotApplicablePlaceholder - NSNullPlaceholder - - - YES - - - - - - - - 2 - - - 991 - - - - selectedIndex: values.footerTwoStringIndex - - - - - - selectedIndex: values.footerTwoStringIndex - selectedIndex - values.footerTwoStringIndex - 2 - - - 979 - - - - enabled: values.printFooter - - - - - - enabled: values.printFooter - enabled - values.printFooter - 2 - - - 980 - - - - selectedIndex: values.footerOneStringIndex - - - - - - selectedIndex: values.footerOneStringIndex - selectedIndex - values.footerOneStringIndex - 2 - - - 976 - - - - enabled: values.printFooter - - - - - - enabled: values.printFooter - enabled - values.printFooter - 2 - - - 977 - - - - selectedIndex: values.printLineNumIndex - - - - - - selectedIndex: values.printLineNumIndex - selectedIndex - values.printLineNumIndex - 2 - - - 993 - - - - selectedIndex: values.printInvisibleCharIndex - - - - - - selectedIndex: values.printInvisibleCharIndex - selectedIndex - values.printInvisibleCharIndex - 2 - - - 995 - - - - enabled: values.setPrintFont - - - - - - enabled: values.setPrintFont - enabled - values.setPrintFont - 2 - - - 1021 - - - - enabled: values.setPrintFont - - - - - - enabled: values.setPrintFont - enabled - values.setPrintFont - 2 - - - 1022 - - - - selectedIndex: values.setPrintFont - - - - - - selectedIndex: values.setPrintFont - selectedIndex - values.setPrintFont - 2 - - - 1020 - - - - value: values.countLineEndingAsChar - - - - - - value: values.countLineEndingAsChar - value - values.countLineEndingAsChar - 2 - - - 1032 - - - - value: values.syncFindPboard - - - - - - value: values.syncFindPboard - value - values.syncFindPboard - 2 - - - 1194 - - - - selectedIndex: values.printColorIndex - - - - - - selectedIndex: values.printColorIndex - selectedIndex - values.printColorIndex - 2 - - - 1674 - - - - value: values.highlightLineColor - - - - - - value: values.highlightLineColor - value - values.highlightLineColor - - NSValueTransformerName - NSUnarchiveFromData - - 2 - - - 2567 - - - - enabled: values.highlightCurrentLine - - - - - - enabled: values.highlightCurrentLine - enabled - values.highlightCurrentLine - 2 - - - 2569 - - - - value: values.highlightCurrentLine - - - - - - value: values.highlightCurrentLine - value - values.highlightCurrentLine - 2 - - - 2564 - - - - value: values.setHiliteLineColorToIMChars - - - - - - value: values.setHiliteLineColorToIMChars - value - values.setHiliteLineColorToIMChars - 2 - - - 2565 - - - - enabled: values.highlightCurrentLine - - - - - - enabled: values.highlightCurrentLine - enabled - values.highlightCurrentLine - 2 - - - 2571 - - - - value: values.inlineContextualScriptMenu - - - - - - value: values.inlineContextualScriptMenu - value - values.inlineContextualScriptMenu - 2 - - - 2741 - - - - value: values.saveUTF8BOM - - - - - - value: values.saveUTF8BOM - value - values.saveUTF8BOM - 2 - - - 3250 - - - - value: automaticallyChecksForUpdates - - - - - - value: automaticallyChecksForUpdates - value - automaticallyChecksForUpdates - 2 - - - 3429 - - - - selectedTag: updateCheckInterval - - - - - - selectedTag: updateCheckInterval - selectedTag - updateCheckInterval - 2 - - - 3438 - - - - enabled: automaticallyChecksForUpdates - - - - - - enabled: automaticallyChecksForUpdates - enabled - automaticallyChecksForUpdates - 2 - - - 3440 - - - - value: values.appendExtensionAtSaving - - - - - - value: values.appendExtensionAtSaving - value - values.appendExtensionAtSaving - 2 - - - 3446 - - - - - YES - - 0 - - - - - - -2 - - - File's Owner - - - -1 - - - First Responder - - - -3 - - - Application - - - 6 - - - YES - - - - prefWindow - - - 5 - - - YES - - - - - - 10 - - - YES - - - - - - - - - - - - - 9 - - - YES - - - - - - 7 - - - YES - - - - - - 744 - - - YES - - - - - - - - - 280 - - - YES - - - - - - - - - - - - - - - - 418 - - - YES - - - - - - - - - - - - - - - - 812 - - - YES - - - - - - 2154 - - - YES - - - - - - 11 - - - YES - - - - - - 8 - - - YES - - - - - - 745 - - - YES - - - - - - - - - - - - - - - - - - - - - - - 13 - - - YES - - - - - - 17 - - - YES - - - - - - 69 - - - YES - - - - - - 70 - - - YES - - - - - - - - - - - - - 160 - - - YES - - - - - - 198 - - - YES - - - - - - 209 - - - YES - - - - - - 282 - - - YES - - - - - - 283 - - - YES - - - - - - 383 - - - YES - - - - - 388 - - - YES - - - - - - - - 813 - - - YES - - - - - - 824 - - - YES - - - - - - 827 - - - YES - - - - - - 833 - - - YES - - - - - - 840 - - - YES - - - - - - 860 - - - YES - - - - - - 2157 - - - YES - - - - - - 103 - - - YES - - - - - - 104 - - - YES - - - - - - 743 - - - YES - - - - - - - - - - - - - - - - - - - - - - 106 - - - YES - - - - - - 594 - - - YES - - - - - - 596 - - - YES - - - - - - 598 - - - YES - - - - - - 602 - - - YES - - - - - - 644 - - - YES - - - - - - 681 - - - YES - - - - - - 844 - - - YES - - - - - - 867 - - - YES - - - - - - 870 - - - YES - - - - - - 1030 - - - YES - - - - - - 1036 - - - YES - - - - - - 1832 - - - YES - - - - - - 2739 - - - YES - - - - - - 164 - - - YES - - - - - - 165 - - - YES - - - - - - 746 - - - YES - - - - - - - - - - - - 307 - - - YES - - - - - - - - - - - - - - - - - - - 315 - - - YES - - - - - - - - - - - - - - 430 - - - YES - - - - - - 703 - - - YES - - - - - - 727 - - - YES - - - - - - 734 - - - YES - - - - - - 2160 - - - YES - - - - - - 432 - - - YES - - - - - - 433 - - - YES - - - - - - 747 - - - YES - - - - - - - - - - - - - - - - 434 - - - YES - - - - - - 446 - - - YES - - - - - - - - 447 - - - YES - - - - - - 448 - - - YES - - - - - - 456 - - - YES - - - - - - 457 - - - YES - - - - - - 458 - - - YES - - - - - - 466 - - - YES - - - - - - 531 - - - YES - - - - - - - - 532 - - - - - 536 - - - YES - - - - - - 587 - - - YES - - - - - - - - 586 - - - - - 589 - - - YES - - - - - - 2351 - - - YES - - - - - - 608 - - - YES - - - - - - 609 - - - YES - - - - - - 741 - - - YES - - - - - - - - - - - - - - - - - - - 610 - - - YES - - - - - - - - - 617 - - - YES - - - - - - - - - - 626 - - - YES - - - - - - 627 - - - YES - - - - - - 628 - - - YES - - - - - - 707 - - - YES - - - - - - 798 - - - YES - - - - - - 799 - - - YES - - - - - - 800 - - - YES - - - - - - 802 - - - YES - - - - - 836 - - - YES - - - - - - 856 - - - YES - - - - - - 863 - - - YES - - - - - - 2151 - - - YES - - - - - - 711 - - - YES - - - - - - 712 - - - YES - - - - - - 748 - - - YES - - - - - - - - 716 - - - YES - - - - - - - - - 718 - - - YES - - - - - - - - - 2356 - - - YES - - - - - - 880 - - - YES - - - - - - 881 - - - YES - - - - - - 882 - - - YES - - - - - - - - - - - - - - - - 883 - - - YES - - - - - - - - - - - - - 913 - - - YES - - - - - - - - - - - - - 943 - - - YES - - - - - - 944 - - - YES - - - - - - 949 - - - YES - - - - - - 950 - - - YES - - - - - - 1005 - - - YES - - - - - - - - 1023 - - - YES - - - - - - 1350 - - - YES - - - - - - 1356 - - - YES - - - - - - 2359 - - - YES - - - - - - 26 - - - Shared Defaults - - - 36 - - - YES - - - - encodingWindow - - - 37 - - - YES - - - - - - - - - - - - - 38 - - - YES - - - - - - - - 39 - - - YES - - - - - - 40 - - - YES - - - - - - 42 - - - YES - - - - - - 43 - - - YES - - - - - - 54 - - - YES - - - - - - 55 - - - YES - - - - - - 56 - - - YES - - - - - - 62 - - - YES - - - - - - 700 - - - YES - - - - - - 47 - - - CEPrefEncodingDataSource - - - 127 - - - YES - - - - sampleWindow - - - 126 - - - YES - - - - - - - - - - - - - 128 - - - YES - - - - - - 129 - - - YES - - - - - - 130 - - - YES - - - - - - 136 - - - YES - - - - - - 138 - - - YES - - - - - - 140 - - - YES - - - - - - 141 - - - YES - - - - - - 154 - - - YES - - - - - - 451 - - - FileDropController - - - 737 - - - CEPreferencesTabController - - - 3270 - - - - - 3271 - - - - - 3272 - - - YES - - - - - - 3273 - - - - - 3274 - - - - - 3283 - - - - - 3284 - - - - - 3285 - - - - - 3286 - - - YES - - - - - - 3287 - - - - - 3291 - - - - - 3292 - - - - - 3293 - - - - - 3294 - - - - - 3295 - - - - - 3296 - - - - - 3297 - - - - - 3298 - - - - - 3299 - - - - - 3300 - - - - - 3301 - - - - - 3302 - - - - - 3303 - - - - - 3304 - - - - - 3305 - - - - - 3306 - - - - - 3307 - - - - - 3308 - - - - - 3309 - - - - - 3326 - - - - - 3327 - - - - - 3328 - - - YES - - - - - - 3329 - - - - - 3330 - - - - - 3331 - - - - - 3332 - - - - - 3333 - - - - - 3334 - - - - - 3335 - - - - - 3336 - - - YES - - - - - - 3337 - - - - - 3338 - - - - - 3348 - - - - - 3349 - - - - - 3350 - - - - - 3351 - - - - - 3352 - - - - - 3353 - - - - - 3354 - - - YES - - - - - - 3355 - - - - - 3356 - - - - - 3357 - - - - - 3358 - - - - - 3367 - - - - - 3380 - - - - - 3381 - - - YES - - - - - - 3382 - - - - - 3383 - - - YES - - - - - - 3386 - - - - - 3387 - - - YES - - - - - - 3388 - - - - - 3389 - - - - - 3390 - - - - - 3391 - - - - - 3392 - - - - - 3393 - - - - - 3394 - - - - - 3395 - - - - - 3396 - - - - - 3397 - - - - - 3398 - - - - - 3399 - - - - - 3400 - - - YES - - - - - - 3401 - - - YES - - - - - - 3402 - - - - - 3403 - - - - - 3404 - - - - - 3412 - - - - - 3413 - - - - - 839 - - - - - 838 - - - - - 155 - - - - - 156 - - - - - 16 - - - YES - - - - - - - - 15 - - - - - 14 - - - - - 12 - - - - - 728 - - - YES - - - - - - 729 - - - - - 543 - - - YES - - - - - - - - - - - - - - - - - 696 - - - - - 695 - - - - - 694 - - - - - 546 - - - - - 545 - - - - - 544 - - - - - 542 - - - - - 541 - - - - - 540 - - - - - 539 - - - - - 538 - - - - - 537 - - - - - 945 - - - YES - - - - - - - - 948 - - - - - 947 - - - - - 946 - - - - - 951 - - - YES - - - - - - - - 954 - - - - - 953 - - - - - 952 - - - - - 1352 - - - YES - - - - - - - 1354 - - - - - 1353 - - - - - 3414 - - - - - 3415 - - - - - 3416 - - - - - 3417 - - - - - 3418 - - - - - 3419 - - - - - 3420 - - - - - 3421 - - - - - 216 - - - - - 220 - - - YES - - - - - - 3254 - - - - - 221 - - - YES - - - - - - 3255 - - - - - 224 - - - YES - - - - - - 3256 - - - YES - - - - - - 225 - - - YES - - - - - - 222 - - - - - 235 - - - YES - - - - - - 3257 - - - - - 236 - - - YES - - - - - - 3258 - - - YES - - - - - - 233 - - - YES - - - - - - 234 - - - - - 243 - - - YES - - - - - - 3259 - - - YES - - - - - - 241 - - - YES - - - - - - 242 - - - - - 244 - - - YES - - - - - - 3260 - - - - - 247 - - - YES - - - - - - 3261 - - - YES - - - - - - 248 - - - YES - - - - - - 246 - - - - - 249 - - - YES - - - - - - 3262 - - - - - 874 - - - YES - - - - - - 3263 - - - - - 421 - - - - - 416 - - - YES - - - - - - 3264 - - - - - 419 - - - YES - - - - - - 3266 - - - - - 423 - - - - - 422 - - - - - 417 - - - YES - - - - - - 3265 - - - - - 847 - - - YES - - - - - - 3267 - - - - - 848 - - - - - 2553 - - - - - 2554 - - - YES - - - - - - 3268 - - - - - 2562 - - - YES - - - - - - 3269 - - - - - 44 - - - YES - - - - - - 3275 - - - - - 76 - - - YES - - - - - - 3276 - - - YES - - - - - - 72 - - - YES - - - - - - 73 - - - - - 77 - - - YES - - - - - - 3277 - - - - - 79 - - - YES - - - - - - 3278 - - - - - 80 - - - YES - - - - - - 3279 - - - YES - - - - - - 81 - - - YES - - - - - - 78 - - - - - 877 - - - YES - - - - - - 3280 - - - - - 3248 - - - YES - - - - - - 3281 - - - - - 3251 - - - YES - - - - - - 3282 - - - - - 387 - - - YES - - - - - - 3289 - - - - - 385 - - - YES - - - - - - 3288 - - - - - 809 - - - YES - - - - - - 3290 - - - - - 374 - - - YES - - - - - - - - - 3405 - - - - - 378 - - - - - 377 - - - - - 376 - - - - - 686 - - - YES - - - - - - - - - 3406 - - - - - 691 - - - - - 690 - - - - - 689 - - - - - 287 - - - - - 288 - - - YES - - - - - - 3310 - - - - - 289 - - - - - 290 - - - YES - - - - - - 3311 - - - - - 291 - - - YES - - - - - - 3312 - - - - - 292 - - - - - 293 - - - - - 294 - - - YES - - - - - - 3313 - - - - - 295 - - - YES - - - - - - 3314 - - - - - 296 - - - - - 297 - - - - - 298 - - - YES - - - - - - 3315 - - - - - 299 - - - - - 300 - - - YES - - - - - - 3316 - - - - - 166 - - - YES - - - - - - 3317 - - - - - 312 - - - YES - - - - - - 3318 - - - YES - - - - - - 310 - - - YES - - - - - - 345 - - - - - 317 - - - YES - - - - - - 3319 - - - - - 318 - - - YES - - - - - - 3320 - - - - - 346 - - - YES - - - - - - 3321 - - - - - 348 - - - YES - - - - - - 3322 - - - - - 351 - - - YES - - - - - - 3323 - - - - - 356 - - - YES - - - - - - 3324 - - - - - 710 - - - YES - - - - - - 3325 - - - - - 614 - - - YES - - - - - - 3341 - - - YES - - - - - - 615 - - - - - 616 - - - YES - - - - - - 3342 - - - - - 612 - - - YES - - - - - - 3339 - - - - - 613 - - - YES - - - - - - 3340 - - - - - 620 - - - YES - - - - - - 3344 - - - YES - - - - - - 621 - - - - - 624 - - - YES - - - - - - 3347 - - - YES - - - - - - 625 - - - - - 622 - - - YES - - - - - - 3345 - - - - - 619 - - - YES - - - - - - 3343 - - - - - 623 - - - YES - - - - - - 3346 - - - - - 714 - - - YES - - - - - - 3360 - - - - - 715 - - - YES - - - - - - 3361 - - - - - 713 - - - YES - - - - - - 3359 - - - - - 835 - - - YES - - - - - - 3362 - - - - - 720 - - - YES - - - - - - 3363 - - - - - 722 - - - YES - - - - - - 3365 - - - - - 721 - - - YES - - - - - - 3364 - - - - - 726 - - - YES - - - - - - 3366 - - - - - 891 - - - YES - - - - - - 3370 - - - YES - - - - - - 892 - - - YES - - - - - - - - - - - 893 - - - - - 894 - - - - - 895 - - - - - 896 - - - - - 897 - - - - - 898 - - - - - 885 - - - YES - - - - - - - - - 3407 - - - - - 888 - - - - - 887 - - - - - 886 - - - - - 899 - - - YES - - - - - - 3371 - - - - - 908 - - - YES - - - - - - - - - 3408 - - - - - 911 - - - - - 910 - - - - - 909 - - - - - 890 - - - YES - - - - - - 3369 - - - - - 912 - - - YES - - - - - - 3373 - - - - - 889 - - - YES - - - - - - 3368 - - - - - 900 - - - YES - - - - - - 3372 - - - YES - - - - - - 901 - - - YES - - - - - - - - - - - 902 - - - - - 903 - - - - - 904 - - - - - 905 - - - - - 906 - - - - - 907 - - - - - 917 - - - YES - - - - - - - - - 3409 - - - - - 920 - - - - - 919 - - - - - 918 - - - - - 915 - - - YES - - - - - - 3374 - - - - - 921 - - - YES - - - - - - - - - 3410 - - - - - 924 - - - - - 923 - - - - - 922 - - - - - 942 - - - YES - - - - - - 3379 - - - - - 933 - - - YES - - - - - - 3377 - - - - - 916 - - - YES - - - - - - 3375 - - - - - 934 - - - YES - - - - - - 3378 - - - YES - - - - - - 935 - - - YES - - - - - - - - - - - 936 - - - - - 937 - - - - - 938 - - - - - 939 - - - - - 940 - - - - - 941 - - - - - 925 - - - YES - - - - - - 3376 - - - YES - - - - - - 926 - - - YES - - - - - - - - - - - 927 - - - - - 928 - - - - - 929 - - - - - 930 - - - - - 931 - - - - - 932 - - - - - 1008 - - - YES - - - - - - 3385 - - - - - 1011 - - - YES - - - - - - - - 3411 - - - - - 1013 - - - - - 1012 - - - - - 1007 - - - YES - - - - - - 3384 - - - - - 3424 - - - YES - - - - - - 3425 - - - - - 3427 - - - - - 3430 - - - YES - - - - - - 3431 - - - YES - - - - - - 3432 - - - YES - - - - - - - - - 3433 - - - - - 3434 - - - - - 3435 - - - - - 3436 - - - - - 384 - - - - - 803 - - - - - 3441 - - - YES - - - - - - 3442 - - - - - - - YES - - YES - -1.IBPluginDependency - -2.IBPluginDependency - -3.IBPluginDependency - 10.IBPluginDependency - 1005.IBPluginDependency - 1007.IBPluginDependency - 1008.IBPluginDependency - 1011.IBPluginDependency - 1012.IBPluginDependency - 1013.IBPluginDependency - 1023.IBPluginDependency - 103.IBPluginDependency - 1030.IBPluginDependency - 1036.IBPluginDependency - 104.IBPluginDependency - 106.IBPluginDependency - 11.IBPluginDependency - 12.IBPluginDependency - 126.IBPluginDependency - 127.IBPluginDependency - 128.IBPluginDependency - 129.IBPluginDependency - 13.IBPluginDependency - 130.IBPluginDependency - 1350.IBPluginDependency - 1352.IBPluginDependency - 1353.IBPluginDependency - 1354.IBPluginDependency - 1356.IBPluginDependency - 136.IBPluginDependency - 138.IBPluginDependency - 14.IBPluginDependency - 140.IBPluginDependency - 141.IBPluginDependency - 15.IBPluginDependency - 154.IBPluginDependency - 155.IBPluginDependency - 156.IBPluginDependency - 16.IBPluginDependency - 160.IBPluginDependency - 164.IBPluginDependency - 165.IBPluginDependency - 166.IBPluginDependency - 17.IBPluginDependency - 1832.IBPluginDependency - 198.IBPluginDependency - 209.IBPluginDependency - 2151.IBPluginDependency - 2154.IBPluginDependency - 2157.IBPluginDependency - 216.IBPluginDependency - 2160.IBPluginDependency - 220.IBPluginDependency - 221.IBPluginDependency - 222.IBPluginDependency - 224.IBPluginDependency - 225.IBPluginDependency - 233.IBPluginDependency - 234.IBPluginDependency - 235.IBPluginDependency - 2351.IBPluginDependency - 2356.IBPluginDependency - 2359.IBPluginDependency - 236.IBPluginDependency - 241.IBPluginDependency - 242.IBPluginDependency - 243.IBPluginDependency - 244.IBPluginDependency - 246.IBPluginDependency - 247.IBPluginDependency - 248.IBPluginDependency - 249.IBPluginDependency - 2553.IBPluginDependency - 2554.IBPluginDependency - 2562.IBPluginDependency - 26.IBPluginDependency - 2739.IBPluginDependency - 280.IBPluginDependency - 282.IBPluginDependency - 283.IBPluginDependency - 287.IBPluginDependency - 288.IBPluginDependency - 289.IBPluginDependency - 290.IBPluginDependency - 291.IBPluginDependency - 292.IBPluginDependency - 293.IBPluginDependency - 294.IBPluginDependency - 295.IBPluginDependency - 296.IBPluginDependency - 297.IBPluginDependency - 298.IBPluginDependency - 299.IBPluginDependency - 300.IBPluginDependency - 307.IBPluginDependency - 310.IBPluginDependency - 312.IBPluginDependency - 315.IBPluginDependency - 317.IBPluginDependency - 318.IBPluginDependency - 3248.IBPluginDependency - 3251.IBPluginDependency - 3254.IBPluginDependency - 3255.IBPluginDependency - 3256.IBPluginDependency - 3257.IBPluginDependency - 3258.IBPluginDependency - 3259.IBPluginDependency - 3260.IBPluginDependency - 3261.IBPluginDependency - 3262.IBPluginDependency - 3263.IBPluginDependency - 3264.IBPluginDependency - 3265.IBPluginDependency - 3266.IBPluginDependency - 3267.IBPluginDependency - 3268.IBPluginDependency - 3269.IBPluginDependency - 3270.IBPluginDependency - 3271.IBPluginDependency - 3272.IBPluginDependency - 3273.IBPluginDependency - 3274.IBPluginDependency - 3275.IBPluginDependency - 3276.IBPluginDependency - 3277.IBPluginDependency - 3278.IBPluginDependency - 3279.IBPluginDependency - 3280.IBPluginDependency - 3281.IBPluginDependency - 3282.IBPluginDependency - 3283.IBPluginDependency - 3284.IBPluginDependency - 3285.IBPluginDependency - 3286.IBPluginDependency - 3287.IBPluginDependency - 3288.IBPluginDependency - 3289.IBPluginDependency - 3290.IBPluginDependency - 3291.IBPluginDependency - 3292.IBPluginDependency - 3293.IBPluginDependency - 3294.IBPluginDependency - 3295.IBPluginDependency - 3296.IBPluginDependency - 3297.IBPluginDependency - 3298.IBPluginDependency - 3299.IBPluginDependency - 3300.IBPluginDependency - 3301.IBPluginDependency - 3302.IBPluginDependency - 3303.IBPluginDependency - 3304.IBPluginDependency - 3305.IBPluginDependency - 3306.IBPluginDependency - 3307.IBPluginDependency - 3308.IBPluginDependency - 3309.IBPluginDependency - 3310.IBPluginDependency - 3311.IBPluginDependency - 3312.IBPluginDependency - 3313.IBPluginDependency - 3314.IBPluginDependency - 3315.IBPluginDependency - 3316.IBPluginDependency - 3317.IBPluginDependency - 3318.IBPluginDependency - 3319.IBPluginDependency - 3320.IBPluginDependency - 3321.IBPluginDependency - 3322.IBPluginDependency - 3323.IBPluginDependency - 3324.IBPluginDependency - 3325.IBPluginDependency - 3326.IBPluginDependency - 3327.IBPluginDependency - 3328.IBPluginDependency - 3329.IBPluginDependency - 3330.IBPluginDependency - 3331.IBPluginDependency - 3332.IBPluginDependency - 3333.IBPluginDependency - 3334.IBPluginDependency - 3335.IBPluginDependency - 3336.IBPluginDependency - 3337.IBPluginDependency - 3338.IBPluginDependency - 3339.IBPluginDependency - 3340.IBPluginDependency - 3341.IBPluginDependency - 3342.IBPluginDependency - 3343.IBPluginDependency - 3344.IBPluginDependency - 3345.IBPluginDependency - 3346.IBPluginDependency - 3347.IBPluginDependency - 3348.IBPluginDependency - 3349.IBPluginDependency - 3350.IBPluginDependency - 3351.IBPluginDependency - 3352.IBPluginDependency - 3353.IBPluginDependency - 3354.IBPluginDependency - 3355.IBPluginDependency - 3356.IBPluginDependency - 3357.IBPluginDependency - 3358.IBPluginDependency - 3359.IBPluginDependency - 3360.IBPluginDependency - 3361.IBPluginDependency - 3362.IBPluginDependency - 3363.IBPluginDependency - 3364.IBPluginDependency - 3365.IBPluginDependency - 3366.IBPluginDependency - 3367.IBPluginDependency - 3368.IBPluginDependency - 3369.IBPluginDependency - 3370.IBPluginDependency - 3371.IBPluginDependency - 3372.IBPluginDependency - 3373.IBPluginDependency - 3374.IBPluginDependency - 3375.IBPluginDependency - 3376.IBPluginDependency - 3377.IBPluginDependency - 3378.IBPluginDependency - 3379.IBPluginDependency - 3380.IBPluginDependency - 3381.IBPluginDependency - 3382.IBPluginDependency - 3383.IBPluginDependency - 3384.IBPluginDependency - 3385.IBPluginDependency - 3386.IBPluginDependency - 3387.IBPluginDependency - 3388.IBPluginDependency - 3389.IBPluginDependency - 3390.IBPluginDependency - 3391.IBPluginDependency - 3392.IBPluginDependency - 3393.IBPluginDependency - 3394.IBPluginDependency - 3395.IBPluginDependency - 3396.IBPluginDependency - 3397.IBPluginDependency - 3398.IBPluginDependency - 3399.IBPluginDependency - 3400.IBPluginDependency - 3401.IBPluginDependency - 3402.IBPluginDependency - 3403.IBPluginDependency - 3404.IBPluginDependency - 3405.IBPluginDependency - 3406.IBPluginDependency - 3407.IBPluginDependency - 3408.IBPluginDependency - 3409.IBPluginDependency - 3410.IBPluginDependency - 3411.IBPluginDependency - 3412.IBPluginDependency - 3412.IBShouldRemoveOnLegacySave - 3413.IBPluginDependency - 3413.IBShouldRemoveOnLegacySave - 3414.IBPluginDependency - 3414.IBShouldRemoveOnLegacySave - 3415.IBPluginDependency - 3415.IBShouldRemoveOnLegacySave - 3416.IBPluginDependency - 3416.IBShouldRemoveOnLegacySave - 3417.IBPluginDependency - 3417.IBShouldRemoveOnLegacySave - 3418.IBPluginDependency - 3418.IBShouldRemoveOnLegacySave - 3419.IBPluginDependency - 3419.IBShouldRemoveOnLegacySave - 3420.IBPluginDependency - 3420.IBShouldRemoveOnLegacySave - 3421.IBPluginDependency - 3421.IBShouldRemoveOnLegacySave - 3424.IBPluginDependency - 3425.IBPluginDependency - 3427.IBPluginDependency - 3430.IBPluginDependency - 3431.IBPluginDependency - 3432.IBPluginDependency - 3433.IBPluginDependency - 3434.IBPluginDependency - 3435.IBPluginDependency - 3436.IBPluginDependency - 3441.IBPluginDependency - 3442.IBPluginDependency - 345.IBPluginDependency - 346.IBPluginDependency - 348.IBPluginDependency - 351.IBPluginDependency - 356.IBPluginDependency - 36.IBPluginDependency - 37.IBPluginDependency - 374.IBPluginDependency - 376.IBPluginDependency - 377.IBPluginDependency - 378.IBPluginDependency - 38.IBPluginDependency - 383.IBPluginDependency - 384.IBPluginDependency - 385.IBPluginDependency - 387.IBPluginDependency - 388.IBPluginDependency - 39.IBPluginDependency - 40.IBPluginDependency - 416.IBPluginDependency - 417.IBPluginDependency - 418.IBPluginDependency - 419.IBPluginDependency - 42.IBPluginDependency - 421.IBPluginDependency - 422.IBPluginDependency - 423.IBPluginDependency - 43.IBPluginDependency - 430.IBPluginDependency - 432.IBPluginDependency - 433.IBPluginDependency - 434.IBPluginDependency - 44.IBPluginDependency - 446.IBPluginDependency - 447.IBPluginDependency - 448.IBPluginDependency - 451.IBPluginDependency - 456.IBPluginDependency - 457.IBPluginDependency - 458.IBPluginDependency - 466.IBPluginDependency - 47.IBPluginDependency - 5.IBPluginDependency - 531.IBPluginDependency - 532.IBPluginDependency - 536.IBPluginDependency - 537.IBAttributePlaceholdersKey - 537.IBPluginDependency - 538.IBAttributePlaceholdersKey - 538.IBPluginDependency - 539.IBAttributePlaceholdersKey - 539.IBPluginDependency - 54.IBPluginDependency - 540.IBAttributePlaceholdersKey - 540.IBPluginDependency - 541.IBPluginDependency - 542.IBAttributePlaceholdersKey - 542.IBPluginDependency - 543.IBPluginDependency - 544.IBAttributePlaceholdersKey - 544.IBPluginDependency - 545.IBPluginDependency - 546.IBAttributePlaceholdersKey - 546.IBPluginDependency - 55.IBPluginDependency - 56.IBPluginDependency - 586.IBPluginDependency - 587.IBPluginDependency - 589.IBPluginDependency - 594.IBPluginDependency - 596.IBPluginDependency - 598.IBPluginDependency - 6.IBPluginDependency - 6.IBWindowTemplateEditedContentRect - 602.IBPluginDependency - 608.IBPluginDependency - 609.IBPluginDependency - 610.IBPluginDependency - 612.IBPluginDependency - 613.IBPluginDependency - 614.IBPluginDependency - 615.IBPluginDependency - 616.IBPluginDependency - 617.IBPluginDependency - 619.IBPluginDependency - 62.IBPluginDependency - 620.IBPluginDependency - 621.IBPluginDependency - 622.IBPluginDependency - 623.IBPluginDependency - 624.IBPluginDependency - 625.IBPluginDependency - 626.IBPluginDependency - 627.IBPluginDependency - 628.IBPluginDependency - 644.IBPluginDependency - 681.IBPluginDependency - 686.IBPluginDependency - 689.IBPluginDependency - 69.IBPluginDependency - 690.IBPluginDependency - 691.IBPluginDependency - 694.IBAttributePlaceholdersKey - 694.IBPluginDependency - 695.IBAttributePlaceholdersKey - 695.IBPluginDependency - 696.IBAttributePlaceholdersKey - 696.IBPluginDependency - 7.IBPluginDependency - 70.IBPluginDependency - 700.IBPluginDependency - 703.IBPluginDependency - 707.IBPluginDependency - 710.IBPluginDependency - 711.IBPluginDependency - 712.IBPluginDependency - 713.IBPluginDependency - 714.IBPluginDependency - 715.IBPluginDependency - 716.IBPluginDependency - 718.IBPluginDependency - 72.IBPluginDependency - 720.IBPluginDependency - 721.IBPluginDependency - 722.IBPluginDependency - 726.IBPluginDependency - 727.IBPluginDependency - 728.IBPluginDependency - 729.IBPluginDependency - 73.IBPluginDependency - 734.IBPluginDependency - 737.IBPluginDependency - 741.IBPluginDependency - 743.IBPluginDependency - 744.IBPluginDependency - 745.IBPluginDependency - 746.IBPluginDependency - 747.IBPluginDependency - 748.IBPluginDependency - 76.IBPluginDependency - 77.IBPluginDependency - 78.IBPluginDependency - 79.IBPluginDependency - 798.IBPluginDependency - 799.IBPluginDependency - 8.IBPluginDependency - 80.IBPluginDependency - 800.IBPluginDependency - 802.IBPluginDependency - 803.IBPluginDependency - 809.IBPluginDependency - 81.IBPluginDependency - 812.IBPluginDependency - 813.IBPluginDependency - 824.IBPluginDependency - 827.IBPluginDependency - 833.IBPluginDependency - 835.IBPluginDependency - 836.IBPluginDependency - 838.IBPluginDependency - 839.IBPluginDependency - 840.IBPluginDependency - 844.IBPluginDependency - 847.IBPluginDependency - 848.IBPluginDependency - 856.IBPluginDependency - 860.IBPluginDependency - 863.IBPluginDependency - 867.IBPluginDependency - 870.IBPluginDependency - 874.IBPluginDependency - 877.IBPluginDependency - 880.IBPluginDependency - 881.IBPluginDependency - 882.IBPluginDependency - 883.IBPluginDependency - 885.IBPluginDependency - 886.IBPluginDependency - 887.IBPluginDependency - 888.IBPluginDependency - 889.IBPluginDependency - 890.IBPluginDependency - 891.IBPluginDependency - 892.IBPluginDependency - 893.IBPluginDependency - 894.IBPluginDependency - 895.IBPluginDependency - 896.IBPluginDependency - 897.IBPluginDependency - 898.IBPluginDependency - 899.IBPluginDependency - 9.IBPluginDependency - 900.IBPluginDependency - 901.IBPluginDependency - 902.IBPluginDependency - 903.IBPluginDependency - 904.IBPluginDependency - 905.IBPluginDependency - 906.IBPluginDependency - 907.IBPluginDependency - 908.IBPluginDependency - 909.IBPluginDependency - 910.IBPluginDependency - 911.IBPluginDependency - 912.IBPluginDependency - 913.IBPluginDependency - 915.IBPluginDependency - 916.IBPluginDependency - 917.IBPluginDependency - 918.IBPluginDependency - 919.IBPluginDependency - 920.IBPluginDependency - 921.IBPluginDependency - 922.IBPluginDependency - 923.IBPluginDependency - 924.IBPluginDependency - 925.IBPluginDependency - 926.IBPluginDependency - 927.IBPluginDependency - 928.IBPluginDependency - 929.IBPluginDependency - 930.IBPluginDependency - 931.IBPluginDependency - 932.IBPluginDependency - 933.IBPluginDependency - 934.IBPluginDependency - 935.IBPluginDependency - 936.IBPluginDependency - 937.IBPluginDependency - 938.IBPluginDependency - 939.IBPluginDependency - 940.IBPluginDependency - 941.IBPluginDependency - 942.IBPluginDependency - 943.IBPluginDependency - 944.IBPluginDependency - 945.IBPluginDependency - 946.IBPluginDependency - 947.IBPluginDependency - 948.IBPluginDependency - 949.IBPluginDependency - 950.IBPluginDependency - 951.IBPluginDependency - 952.IBPluginDependency - 953.IBPluginDependency - 954.IBPluginDependency - - - YES - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - 画像の高さ(ドロップ元ファイルが画像ファイルのときのみ有効) - - - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - ドロップ元ファイルの名前から拡張子を削除した文字列 - - - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - ドロップ元ファイルの親ディレクトリ名 - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - 画像の幅(ドロップ元ファイルが画像ファイルのときのみ有効) - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - ドロップ元ファイルの、拡張子を含むファイル名 - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - ドロップ元ファイルの絶対パス - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - ドロップ先ファイルからドロップ元ファイルへの相対パス - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{44, 38}, {694, 686}} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - ドロップ元ファイルの拡張子 - - - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - ドロップ元ファイルの拡張子(小文字) - - - com.apple.InterfaceBuilder.CocoaPlugin - - ToolTip - - ToolTip - - ドロップ元ファイルの拡張子(大文字) - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - - - YES - - - - - - YES - - - - - 3446 - - - - YES - - CEDocumentController - NSDocumentController - - YES - - YES - closeLineSpacingPanel: - gotoCharacterOrLine: - openGotoPanel: - openHiddenDocument: - openLineSpacingPanel: - openTransparencyPanel: - setAllWindowAlpha: - setCustomLineSpacing: - setSelectAccessoryEncodingMenuToDefault: - setSmartInsertAndDeleteToAllTextView: - - - YES - id - id - id - id - id - id - id - id - id - id - - - - YES - - YES - closeLineSpacingPanel: - gotoCharacterOrLine: - openGotoPanel: - openHiddenDocument: - openLineSpacingPanel: - openTransparencyPanel: - setAllWindowAlpha: - setCustomLineSpacing: - setSelectAccessoryEncodingMenuToDefault: - setSmartInsertAndDeleteToAllTextView: - - - YES - - closeLineSpacingPanel: - id - - - gotoCharacterOrLine: - id - - - openGotoPanel: - id - - - openHiddenDocument: - id - - - openLineSpacingPanel: - id - - - openTransparencyPanel: - id - - - setAllWindowAlpha: - id - - - setCustomLineSpacing: - id - - - setSelectAccessoryEncodingMenuToDefault: - id - - - setSmartInsertAndDeleteToAllTextView: - id - - - - - YES - - YES - _accessoryEncodingMenu - _appController - _gotoCharLineMatrix - _gotoIndexField - _gotoSelectButton - _lineSpacingField - _openPanelAccessoryView - _transparencyController - _windowAlphaField - _windowAlphaSetButton - _windowAlphaSlider - _windowAlphaTextViewOnlyButton - - - YES - id - id - id - id - id - id - id - id - id - id - id - id - - - - YES - - YES - _accessoryEncodingMenu - _appController - _gotoCharLineMatrix - _gotoIndexField - _gotoSelectButton - _lineSpacingField - _openPanelAccessoryView - _transparencyController - _windowAlphaField - _windowAlphaSetButton - _windowAlphaSlider - _windowAlphaTextViewOnlyButton - - - YES - - _accessoryEncodingMenu - id - - - _appController - id - - - _gotoCharLineMatrix - id - - - _gotoIndexField - id - - - _gotoSelectButton - id - - - _lineSpacingField - id - - - _openPanelAccessoryView - id - - - _transparencyController - id - - - _windowAlphaField - id - - - _windowAlphaSetButton - id - - - _windowAlphaSlider - id - - - _windowAlphaTextViewOnlyButton - id - - - - - IBProjectSource - ./Classes/CEDocumentController.h - - - - CEPrefEncodingDataSource - NSObject - - YES - - YES - addSeparator: - deleteSeparator: - revertDefaultEncodings: - - - YES - id - id - id - - - - YES - - YES - addSeparator: - deleteSeparator: - revertDefaultEncodings: - - - YES - - addSeparator: - id - - - deleteSeparator: - id - - - revertDefaultEncodings: - id - - - - - YES - - YES - _delSeparatorButton - _revertButton - _tableView - - - YES - id - id - id - - - - YES - - YES - _delSeparatorButton - _revertButton - _tableView - - - YES - - _delSeparatorButton - id - - - _revertButton - id - - - _tableView - id - - - - - IBProjectSource - ./Classes/CEPrefEncodingDataSource.h - - - - CEPreferences - NSObject - - YES - - YES - addNewFileDropSetting: - changedSyntaxStylesPopup: - closeEncodingEditSheet: - deleteFileDropSetting: - deleteSyntaxStyle: - exportSyntaxStyle: - importSyntaxStyle: - insertFormatStringInFileDrop: - openEncodingEditSheet: - openKeyBindingEditSheet: - openPrefHelp: - openSizeSampleWindow: - openSyntaxEditSheet: - openSyntaxExtensionErrorSheet: - setWindowContentSizeToDefault: - setupCustomLineSpacing: - showFonts: - - - YES - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - - - - YES - - YES - addNewFileDropSetting: - changedSyntaxStylesPopup: - closeEncodingEditSheet: - deleteFileDropSetting: - deleteSyntaxStyle: - exportSyntaxStyle: - importSyntaxStyle: - insertFormatStringInFileDrop: - openEncodingEditSheet: - openKeyBindingEditSheet: - openPrefHelp: - openSizeSampleWindow: - openSyntaxEditSheet: - openSyntaxExtensionErrorSheet: - setWindowContentSizeToDefault: - setupCustomLineSpacing: - showFonts: - - - YES - - addNewFileDropSetting: - id - - - changedSyntaxStylesPopup: - id - - - closeEncodingEditSheet: - id - - - deleteFileDropSetting: - id - - - deleteSyntaxStyle: - id - - - exportSyntaxStyle: - id - - - importSyntaxStyle: - id - - - insertFormatStringInFileDrop: - id - - - openEncodingEditSheet: - id - - - openKeyBindingEditSheet: - id - - - openPrefHelp: - id - - - openSizeSampleWindow: - id - - - openSyntaxEditSheet: - id - - - openSyntaxExtensionErrorSheet: - id - - - setWindowContentSizeToDefault: - id - - - setupCustomLineSpacing: - id - - - showFonts: - id - - - - - YES - - YES - _encodingDataSource - _encodingMenuInNew - _encodingMenuInOpen - _encodingWindow - _fileDropController - _fileDropGlossaryTextView - _fileDropTableView - _fileDropTextView - _invisibleFullwidthSpacePopup - _invisibleNewLinePopup - _invisibleSpacePopup - _invisibleTabPopup - _prefFontFamilyNameSize - _prefTabView - _prefWindow - _printFontFamilyNameSize - _sizeSampleWindow - _syntaxStyleCopyButton - _syntaxStyleDeleteButton - _syntaxStyleEditButton - _syntaxStyleExportButton - _syntaxStyleXtsnErrButton - _syntaxStylesDefaultPopup - _syntaxStylesPopup - - - YES - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - - - - YES - - YES - _encodingDataSource - _encodingMenuInNew - _encodingMenuInOpen - _encodingWindow - _fileDropController - _fileDropGlossaryTextView - _fileDropTableView - _fileDropTextView - _invisibleFullwidthSpacePopup - _invisibleNewLinePopup - _invisibleSpacePopup - _invisibleTabPopup - _prefFontFamilyNameSize - _prefTabView - _prefWindow - _printFontFamilyNameSize - _sizeSampleWindow - _syntaxStyleCopyButton - _syntaxStyleDeleteButton - _syntaxStyleEditButton - _syntaxStyleExportButton - _syntaxStyleXtsnErrButton - _syntaxStylesDefaultPopup - _syntaxStylesPopup - - - YES - - _encodingDataSource - id - - - _encodingMenuInNew - id - - - _encodingMenuInOpen - id - - - _encodingWindow - id - - - _fileDropController - id - - - _fileDropGlossaryTextView - id - - - _fileDropTableView - id - - - _fileDropTextView - id - - - _invisibleFullwidthSpacePopup - id - - - _invisibleNewLinePopup - id - - - _invisibleSpacePopup - id - - - _invisibleTabPopup - id - - - _prefFontFamilyNameSize - id - - - _prefTabView - id - - - _prefWindow - id - - - _printFontFamilyNameSize - id - - - _sizeSampleWindow - id - - - _syntaxStyleCopyButton - id - - - _syntaxStyleDeleteButton - id - - - _syntaxStyleEditButton - id - - - _syntaxStyleExportButton - id - - - _syntaxStyleXtsnErrButton - id - - - _syntaxStylesDefaultPopup - id - - - _syntaxStylesPopup - id - - - - - IBProjectSource - ./Classes/CEPreferences.h - - - - CEPreferencesTabController - NSObject - - YES - - YES - _prefWindow - _tabView - - - YES - id - id - - - - YES - - YES - _prefWindow - _tabView - - - YES - - _prefWindow - id - - - _tabView - id - - - - - IBProjectSource - ./Classes/CEPreferencesTabController.h - - - - CETabItemView - NSView - - IBProjectSource - ./Classes/CETabItemView.h - - - - FirstResponder - - YES - - YES - : - setSelectAccessoryEncodingMenuToDefault: - setSmartInsertAndDeleteToAllTextView: - - - YES - id - id - id - - - - YES - - YES - : - setSelectAccessoryEncodingMenuToDefault: - setSmartInsertAndDeleteToAllTextView: - - - YES - - : - id - - - setSelectAccessoryEncodingMenuToDefault: - id - - - setSmartInsertAndDeleteToAllTextView: - id - - - - - IBUserSource - - - - - SUUpdater - NSObject - - checkForUpdates: - id - - - checkForUpdates: - - checkForUpdates: - id - - - - delegate - id - - - delegate - - delegate - id - - - - IBProjectSource - ./Classes/SUUpdater.h - - - - - 0 - IBCocoaFramework - - com.apple.InterfaceBuilder.CocoaPlugin.macosx - - - - com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 - - - YES - 3 - - YES - - YES - NSMenuCheckmark - NSMenuMixedState - NSRadioButton - NSSwitch - addButtonImg - centerButtonImg - leftButtonImg - removeButtonImg - rightButtonImg - transparencyGuide - - - YES - {9, 8} - {7, 2} - {16, 15} - {15, 15} - {16, 16} - {16, 16} - {16, 16} - {16, 16} - {16, 16} - {135, 13} - - - - diff --git a/Japanese.lproj/Preferences.nib/keyedobjects.nib b/Japanese.lproj/Preferences.nib/keyedobjects.nib deleted file mode 100644 index 1570c6e76a..0000000000 Binary files a/Japanese.lproj/Preferences.nib/keyedobjects.nib and /dev/null differ diff --git a/Japanese.lproj/ScriptManager.nib/classes.nib b/Japanese.lproj/ScriptManager.nib/classes.nib deleted file mode 100644 index 0fd636b7a9..0000000000 --- a/Japanese.lproj/ScriptManager.nib/classes.nib +++ /dev/null @@ -1,45 +0,0 @@ - - - - - IBClasses - - - ACTIONS - - buildScriptMenu - id - cleanScriptError - id - launchScript - id - openScriptErrorWindow - id - openScriptFolder - id - - CLASS - CEScriptManager - LANGUAGE - ObjC - OUTLETS - - _errorTextView - id - - SUPERCLASS - NSObject - - - CLASS - FirstResponder - LANGUAGE - ObjC - SUPERCLASS - NSObject - - - IBVersion - 1 - - diff --git a/Japanese.lproj/ScriptManager.nib/info.nib b/Japanese.lproj/ScriptManager.nib/info.nib deleted file mode 100644 index 5cf7cdef1f..0000000000 --- a/Japanese.lproj/ScriptManager.nib/info.nib +++ /dev/null @@ -1,16 +0,0 @@ - - - - - IBFramework Version - 677 - IBOldestOS - 5 - IBOpenObjects - - IBSystem Version - 9G55 - targetFramework - IBCocoaFramework - - diff --git a/Japanese.lproj/ScriptManager.nib/keyedobjects.nib b/Japanese.lproj/ScriptManager.nib/keyedobjects.nib deleted file mode 100644 index 280e92b149..0000000000 Binary files a/Japanese.lproj/ScriptManager.nib/keyedobjects.nib and /dev/null differ diff --git a/Japanese.lproj/SyntaxManager.nib/classes.nib b/Japanese.lproj/SyntaxManager.nib/classes.nib deleted file mode 100644 index f74e781490..0000000000 --- a/Japanese.lproj/SyntaxManager.nib/classes.nib +++ /dev/null @@ -1,55 +0,0 @@ - - - - - IBClasses - - - CLASS - NSObject - LANGUAGE - ObjC - - - ACTIONS - - closeSyntaxEditSheet - id - closeSyntaxExtensionErrorSheet - id - setToFactoryDefaults - id - startSyntaxElementCheck - id - - CLASS - CESyntaxManager - LANGUAGE - ObjC - OUTLETS - - _editWindow - id - _elementPopUpButton - id - _extensionErrorTextView - id - _factoryDefaultsButton - id - _messageField - id - _styleController - id - _styleNameField - id - _syntaxElementCheckTextView - id - - SUPERCLASS - NSObject - - - IBVersion - 1 - - diff --git a/Japanese.lproj/SyntaxManager.nib/info.nib b/Japanese.lproj/SyntaxManager.nib/info.nib deleted file mode 100644 index 5cf7cdef1f..0000000000 --- a/Japanese.lproj/SyntaxManager.nib/info.nib +++ /dev/null @@ -1,16 +0,0 @@ - - - - - IBFramework Version - 677 - IBOldestOS - 5 - IBOpenObjects - - IBSystem Version - 9G55 - targetFramework - IBCocoaFramework - - diff --git a/Japanese.lproj/SyntaxManager.nib/keyedobjects.nib b/Japanese.lproj/SyntaxManager.nib/keyedobjects.nib deleted file mode 100644 index 868c450c57..0000000000 Binary files a/Japanese.lproj/SyntaxManager.nib/keyedobjects.nib and /dev/null differ diff --git a/Docs/GPL.txt b/License.txt similarity index 100% rename from Docs/GPL.txt rename to License.txt diff --git a/NSData+MD5.h b/NSData+MD5.h new file mode 100644 index 0000000000..052c8a598d --- /dev/null +++ b/NSData+MD5.h @@ -0,0 +1,44 @@ +/* + ================================================= + NSData+MD5 + (for CotEditor) + + Copyright (C) 2014 CotEditor Project + http://coteditor.github.io + ================================================= + + encoding="UTF-8" + Created:2014-03-07 + + ------------ + This category is from the following blog article by iOS Developer Tips. + We would like to thank for sharing this helpful tip. + http://iosdevelopertips.com/core-services/create-md5-hash-from-nsstring-nsdata-or-file.html + Copyright iOSDeveloperTips.com All rights reserved. + ------------------------------------------------- + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + + ================================================= + */ + +#import + +@interface NSData (MD5) + +- (NSString *)MD5; + +@end diff --git a/NSData+MD5.m b/NSData+MD5.m new file mode 100644 index 0000000000..a6e1a4e41d --- /dev/null +++ b/NSData+MD5.m @@ -0,0 +1,59 @@ +/* + ================================================= + NSData+MD5 + (for CotEditor) + + Copyright (C) 2014 CotEditor Project + http://coteditor.github.io + ================================================= + + encoding="UTF-8" + Created:2014-03-07 + + ------------ + This category is from the following blog article by iOS Developer Tips. + We would like to thank for sharing this helpful tip. + http://iosdevelopertips.com/core-services/create-md5-hash-from-nsstring-nsdata-or-file.html + Copyright iOSDeveloperTips.com All rights reserved. + ------------------------------------------------- + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + + ================================================= + */ + +#import "NSData+MD5.h" +#import + +@implementation NSData (MD5) + +- (NSString*)MD5 +{ + // Create byte array of unsigned chars + unsigned char md5Buffer[CC_MD5_DIGEST_LENGTH]; + + // Create 16 byte MD5 hash value, store in buffer + CC_MD5(self.bytes, self.length, md5Buffer); + + // Convert unsigned char buffer to NSString of hex values + NSMutableString *output = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH * 2]; + for(int i = 0; i < CC_MD5_DIGEST_LENGTH; i++) + [output appendFormat:@"%02x",md5Buffer[i]]; + + return output; +} + +@end diff --git a/NSEventAdditions.h b/NSEvent+CarbonModFlag.h similarity index 87% rename from NSEventAdditions.h rename to NSEvent+CarbonModFlag.h index 579ba4142a..ff74b6b660 100644 --- a/NSEventAdditions.h +++ b/NSEvent+CarbonModFlag.h @@ -1,10 +1,11 @@ /* ================================================= -NSEventAdditions +NSEvent+CarbonModFlag (for CotEditor) -Copyright (C) 2004-2007 nakamuxu. -http://www.aynimac.com/ + Copyright (C) 2004-2007 nakamuxu. + Copyright (C) 2014 CotEditor Project + http://coteditor.github.io ================================================= encoding="UTF-8" @@ -36,6 +37,9 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #import + @interface NSEvent (CarbonModFlag) -+ (unsigned int)currentCarbonModifierFlags; + ++ (NSUInteger)currentCarbonModifierFlags; + @end diff --git a/NSEventAdditions.m b/NSEvent+CarbonModFlag.m similarity index 86% rename from NSEventAdditions.m rename to NSEvent+CarbonModFlag.m index b09e93ee0f..3f6d96e0f3 100644 --- a/NSEventAdditions.m +++ b/NSEvent+CarbonModFlag.m @@ -1,10 +1,11 @@ /* ================================================= -NSEventAdditions +NSEvent+CarbonModFlag (for CotEditor) -Copyright (C) 2004-2007 nakamuxu. -http://www.aynimac.com/ + Copyright (C) 2004-2007 nakamuxu. + Copyright (C) 2014 CotEditor Project + http://coteditor.github.io ================================================= encoding="UTF-8" @@ -34,13 +35,14 @@ ================================================= */ -#import "NSEventAdditions.h" +#import "NSEvent+CarbonModFlag.h" + @implementation NSEvent (CarbonModFlag) -+ (unsigned int)currentCarbonModifierFlags ++ (NSUInteger)currentCarbonModifierFlags { - unsigned int cocoaModFlag = 0; + NSUInteger cocoaModFlag = 0; UInt32 carbonModFlag = GetCurrentEventKeyModifiers(); if (carbonModFlag & cmdKey) cocoaModFlag |= NSCommandKeyMask; diff --git a/OgreKit License.txt b/OgreKit License.txt new file mode 100644 index 0000000000..74f9dfdf59 --- /dev/null +++ b/OgreKit License.txt @@ -0,0 +1,124 @@ + +This software is powered by OgreKit. + +OgreKit License +--------------- + +The license of OgreKit follows that of OniGuruma. +It follows the BSD license in the case of the one except for it. + +/* + * Copyright (c) 2003-2010 Isao Sonobe + * 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. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND 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 THE AUTHOR OR 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. + */ + + + +Onigmo (Oniguruma-mod) LICENSE +------------------------------ + +/*- + * Copyright (c) 2002-2009 K.Kosako + * Copyright (c) 2011-2013 K.Takata + * 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. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND 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 THE AUTHOR OR 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. + */ + + + +Oniguruma LICENSE +----------------- + +/*- + * Copyright (c) 2002-2009 K.Kosako + * 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. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND 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 THE AUTHOR OR 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. + */ + + + +Ruby BSDL +--------- +Copyright (C) 1993-2013 Yukihiro Matsumoto. 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. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND 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 THE AUTHOR OR 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. diff --git a/OgreKit.framework/Versions/A/Headers/oniguruma.h b/OgreKit.framework/Versions/A/Headers/oniguruma.h index 3b557639f1..daa40ee94c 100644 --- a/OgreKit.framework/Versions/A/Headers/oniguruma.h +++ b/OgreKit.framework/Versions/A/Headers/oniguruma.h @@ -1,10 +1,11 @@ #ifndef ONIGURUMA_H #define ONIGURUMA_H /********************************************************************** - oniguruma.h - Oniguruma (regular expression library) + oniguruma.h - Onigmo (Oniguruma-mod) (regular expression library) **********************************************************************/ /*- * Copyright (c) 2002-2009 K.Kosako + * Copyright (c) 2011-2013 K.Takata * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -35,8 +36,8 @@ extern "C" { #define ONIGURUMA #define ONIGURUMA_VERSION_MAJOR 5 -#define ONIGURUMA_VERSION_MINOR 9 -#define ONIGURUMA_VERSION_TEENY 2 +#define ONIGURUMA_VERSION_MINOR 13 +#define ONIGURUMA_VERSION_TEENY 5 #ifdef __cplusplus # ifndef HAVE_PROTOTYPES @@ -90,6 +91,8 @@ extern "C" { #define ONIG_EXTERN extern #endif +#include /* for size_t */ + /* PART: character encoding */ #ifndef ONIG_ESCAPE_UCHAR_COLLISION @@ -97,9 +100,10 @@ extern "C" { #endif typedef unsigned char OnigUChar; -typedef unsigned long OnigCodePoint; +typedef unsigned int OnigCodePoint; typedef unsigned int OnigCtype; -typedef unsigned int OnigDistance; +typedef size_t OnigDistance; +typedef ptrdiff_t OnigPosition; #define ONIG_INFINITE_DISTANCE ~((OnigDistance )0) @@ -139,7 +143,7 @@ typedef struct { OnigCodePoint one_or_more_time; OnigCodePoint anychar_anytime; } OnigMetaCharTableType; - + typedef int (*OnigApplyAllCaseFoldFunc)(OnigCodePoint from, OnigCodePoint* to, int to_len, void* arg); typedef struct OnigEncodingTypeST { @@ -159,6 +163,7 @@ typedef struct OnigEncodingTypeST { int (*get_ctype_code_range)(OnigCtype ctype, OnigCodePoint* sb_out, const OnigCodePoint* ranges[]); OnigUChar* (*left_adjust_char_head)(const OnigUChar* start, const OnigUChar* p); int (*is_allowed_reverse_match)(const OnigUChar* p, const OnigUChar* end); + unsigned int flags; } OnigEncodingType; typedef OnigEncodingType* OnigEncoding; @@ -189,6 +194,7 @@ ONIG_EXTERN OnigEncodingType OnigEncodingEUC_TW; ONIG_EXTERN OnigEncodingType OnigEncodingEUC_KR; ONIG_EXTERN OnigEncodingType OnigEncodingEUC_CN; ONIG_EXTERN OnigEncodingType OnigEncodingSJIS; +ONIG_EXTERN OnigEncodingType OnigEncodingCP932; ONIG_EXTERN OnigEncodingType OnigEncodingKOI8; ONIG_EXTERN OnigEncodingType OnigEncodingKOI8_R; ONIG_EXTERN OnigEncodingType OnigEncodingCP1251; @@ -221,6 +227,7 @@ ONIG_EXTERN OnigEncodingType OnigEncodingGB18030; #define ONIG_ENCODING_EUC_KR (&OnigEncodingEUC_KR) #define ONIG_ENCODING_EUC_CN (&OnigEncodingEUC_CN) #define ONIG_ENCODING_SJIS (&OnigEncodingSJIS) +#define ONIG_ENCODING_CP932 (&OnigEncodingCP932) #define ONIG_ENCODING_KOI8 (&OnigEncodingKOI8) #define ONIG_ENCODING_KOI8_R (&OnigEncodingKOI8_R) #define ONIG_ENCODING_CP1251 (&OnigEncodingCP1251) @@ -253,6 +260,10 @@ ONIG_EXTERN OnigEncodingType OnigEncodingGB18030; #define ONIGENC_CTYPE_ASCII 14 #define ONIGENC_MAX_STD_CTYPE ONIGENC_CTYPE_ASCII +/* flags */ +#define ONIGENC_FLAG_NONE 0U +#define ONIGENC_FLAG_UNICODE 1U + #define onig_enc_len(enc,p,end) ONIGENC_MBC_ENC_LEN(enc,p) @@ -263,6 +274,10 @@ ONIG_EXTERN OnigEncodingType OnigEncodingGB18030; #define ONIGENC_IS_CODE_ASCII(code) ((code) < 128) #define ONIGENC_IS_MBC_WORD(enc,s,end) \ ONIGENC_IS_CODE_WORD(enc,ONIGENC_MBC_TO_CODE(enc,s,end)) +#define ONIGENC_IS_MBC_ASCII_WORD(enc,s,end) \ + onigenc_ascii_is_code_ctype( \ + ONIGENC_MBC_TO_CODE(enc,s,end),ONIGENC_CTYPE_WORD) +#define ONIGENC_IS_UNICODE(enc) ((enc)->flags & ONIGENC_FLAG_UNICODE) #define ONIGENC_NAME(enc) ((enc)->name) @@ -374,6 +389,7 @@ typedef unsigned int OnigOptionType; #define ONIG_OPTION_IGNORECASE 1U #define ONIG_OPTION_EXTEND (ONIG_OPTION_IGNORECASE << 1) #define ONIG_OPTION_MULTILINE (ONIG_OPTION_EXTEND << 1) +#define ONIG_OPTION_DOTALL ONIG_OPTION_MULTILINE #define ONIG_OPTION_SINGLELINE (ONIG_OPTION_MULTILINE << 1) #define ONIG_OPTION_FIND_LONGEST (ONIG_OPTION_SINGLELINE << 1) #define ONIG_OPTION_FIND_NOT_EMPTY (ONIG_OPTION_FIND_LONGEST << 1) @@ -384,7 +400,13 @@ typedef unsigned int OnigOptionType; #define ONIG_OPTION_NOTBOL (ONIG_OPTION_CAPTURE_GROUP << 1) #define ONIG_OPTION_NOTEOL (ONIG_OPTION_NOTBOL << 1) #define ONIG_OPTION_POSIX_REGION (ONIG_OPTION_NOTEOL << 1) -#define ONIG_OPTION_MAXBIT ONIG_OPTION_POSIX_REGION /* limit */ +/* options (ctype range) */ +#define ONIG_OPTION_ASCII_RANGE (ONIG_OPTION_POSIX_REGION << 1) +#define ONIG_OPTION_POSIX_BRACKET_ALL_RANGE (ONIG_OPTION_ASCII_RANGE << 1) +#define ONIG_OPTION_WORD_BOUND_ALL_RANGE (ONIG_OPTION_POSIX_BRACKET_ALL_RANGE << 1) +/* options (newline) */ +#define ONIG_OPTION_NEWLINE_CRLF (ONIG_OPTION_WORD_BOUND_ALL_RANGE << 1) +#define ONIG_OPTION_MAXBIT ONIG_OPTION_NEWLINE_CRLF /* limit */ #define ONIG_OPTION_ON(options,regopt) ((options) |= (regopt)) #define ONIG_OPTION_OFF(options,regopt) ((options) &= ~(regopt)) @@ -406,9 +428,11 @@ ONIG_EXTERN OnigSyntaxType OnigSyntaxEmacs; ONIG_EXTERN OnigSyntaxType OnigSyntaxGrep; ONIG_EXTERN OnigSyntaxType OnigSyntaxGnuRegex; ONIG_EXTERN OnigSyntaxType OnigSyntaxJava; +ONIG_EXTERN OnigSyntaxType OnigSyntaxPerl58; +ONIG_EXTERN OnigSyntaxType OnigSyntaxPerl58_NG; ONIG_EXTERN OnigSyntaxType OnigSyntaxPerl; -ONIG_EXTERN OnigSyntaxType OnigSyntaxPerl_NG; ONIG_EXTERN OnigSyntaxType OnigSyntaxRuby; +ONIG_EXTERN OnigSyntaxType OnigSyntaxPython; /* predefined syntaxes (see regsyntax.c) */ #define ONIG_SYNTAX_ASIS (&OnigSyntaxASIS) @@ -418,9 +442,11 @@ ONIG_EXTERN OnigSyntaxType OnigSyntaxRuby; #define ONIG_SYNTAX_GREP (&OnigSyntaxGrep) #define ONIG_SYNTAX_GNU_REGEX (&OnigSyntaxGnuRegex) #define ONIG_SYNTAX_JAVA (&OnigSyntaxJava) +#define ONIG_SYNTAX_PERL58 (&OnigSyntaxPerl58) +#define ONIG_SYNTAX_PERL58_NG (&OnigSyntaxPerl58_NG) #define ONIG_SYNTAX_PERL (&OnigSyntaxPerl) -#define ONIG_SYNTAX_PERL_NG (&OnigSyntaxPerl_NG) #define ONIG_SYNTAX_RUBY (&OnigSyntaxRuby) +#define ONIG_SYNTAX_PYTHON (&OnigSyntaxPython) /* default syntax */ ONIG_EXTERN OnigSyntaxType* OnigDefaultSyntax; @@ -458,11 +484,12 @@ ONIG_EXTERN OnigSyntaxType* OnigDefaultSyntax; #define ONIG_SYN_OP_ESC_OCTAL3 (1U<<28) /* \OOO */ #define ONIG_SYN_OP_ESC_X_HEX2 (1U<<29) /* \xHH */ #define ONIG_SYN_OP_ESC_X_BRACE_HEX8 (1U<<30) /* \x{7HHHHHHH} */ +#define ONIG_SYN_OP_ESC_O_BRACE_OCTAL (1U<<31) /* \o{OOO} */ /* NOTIMPL */ #define ONIG_SYN_OP2_ESC_CAPITAL_Q_QUOTE (1U<<0) /* \Q...\E */ #define ONIG_SYN_OP2_QMARK_GROUP_EFFECT (1U<<1) /* (?...) */ -#define ONIG_SYN_OP2_OPTION_PERL (1U<<2) /* (?imsx),(?-imsx) */ -#define ONIG_SYN_OP2_OPTION_RUBY (1U<<3) /* (?imx), (?-imx) */ +#define ONIG_SYN_OP2_OPTION_PERL (1U<<2) /* (?imsxadlu), (?-imsx), (?^imsxalu) */ +#define ONIG_SYN_OP2_OPTION_RUBY (1U<<3) /* (?imxadu), (?-imx) */ #define ONIG_SYN_OP2_PLUS_POSSESSIVE_REPEAT (1U<<4) /* ?+,*+,++ */ #define ONIG_SYN_OP2_PLUS_POSSESSIVE_INTERVAL (1U<<5) /* {n,m}+ */ #define ONIG_SYN_OP2_CCLASS_SET_OP (1U<<6) /* [...&&..[..]..] */ @@ -480,6 +507,17 @@ ONIG_EXTERN OnigSyntaxType* OnigDefaultSyntax; /* #define ONIG_SYN_OP2_CHAR_PROPERTY_PREFIX_IS (1U<<18) */ #define ONIG_SYN_OP2_ESC_H_XDIGIT (1U<<19) /* \h, \H */ #define ONIG_SYN_OP2_INEFFECTIVE_ESCAPE (1U<<20) /* \ */ +#define ONIG_SYN_OP2_ESC_CAPITAL_R_LINEBREAK (1U<<21) /* \R as (?>\x0D\x0A|[\x0A-\x0D\x{85}\x{2028}\x{2029}]) */ +#define ONIG_SYN_OP2_ESC_CAPITAL_X_EXTENDED_GRAPHEME_CLUSTER (1U<<22) /* \X as (?>\P{M}\p{M}*) */ +#define ONIG_SYN_OP2_ESC_V_VERTICAL_WHITESPACE (1U<<23) /* \v, \V -- Perl */ /* NOTIMPL */ +#define ONIG_SYN_OP2_ESC_H_HORIZONTAL_WHITESPACE (1U<<24) /* \h, \H -- Perl */ /* NOTIMPL */ +#define ONIG_SYN_OP2_ESC_CAPITAL_K_KEEP (1U<<25) /* \K */ +#define ONIG_SYN_OP2_ESC_G_BRACE_BACKREF (1U<<26) /* \g{name}, \g{n} */ +#define ONIG_SYN_OP2_QMARK_SUBEXP_CALL (1U<<27) /* (?&name), (?n), (?R), (?0) */ +#define ONIG_SYN_OP2_QMARK_VBAR_BRANCH_RESET (1U<<28) /* (?|...) */ /* NOTIMPL */ +#define ONIG_SYN_OP2_QMARK_LPAREN_CONDITION (1U<<29) /* (?(cond)yes...|no...) */ +#define ONIG_SYN_OP2_QMARK_CAPITAL_P_NAMED_GROUP (1U<<30) /* (?P...), (?P=name), (?P>name) -- Python/PCRE */ +#define ONIG_SYN_OP2_OPTION_JAVA (1U<<31) /* (?idmsux), (?-idmsux) */ /* NOTIMPL */ /* syntax (behavior) */ #define ONIG_SYN_CONTEXT_INDEP_ANCHORS (1U<<31) /* not implemented */ @@ -493,6 +531,7 @@ ONIG_EXTERN OnigSyntaxType* OnigDefaultSyntax; #define ONIG_SYN_CAPTURE_ONLY_NAMED_GROUP (1U<<7) /* see doc/RE */ #define ONIG_SYN_ALLOW_MULTIPLEX_DEFINITION_NAME (1U<<8) /* (?)(?) */ #define ONIG_SYN_FIXED_INTERVAL_IS_GREEDY_ONLY (1U<<9) /* a{n}?=(?:a{n})? */ +#define ONIG_SYN_ALLOW_MULTIPLEX_DEFINITION_NAME_CALL (1U<<10) /* (?)(?)(?&x) */ /* syntax (behavior) in char class [...] */ #define ONIG_SYN_NOT_NEWLINE_IN_NEGATIVE_CC (1U<<20) /* [^...] */ @@ -528,10 +567,10 @@ ONIG_EXTERN OnigSyntaxType* OnigDefaultSyntax; #define ONIGERR_UNDEFINED_BYTECODE -13 #define ONIGERR_UNEXPECTED_BYTECODE -14 #define ONIGERR_MATCH_STACK_LIMIT_OVER -15 -#define ONIGERR_DEFAULT_ENCODING_IS_NOT_SETTED -21 +#define ONIGERR_DEFAULT_ENCODING_IS_NOT_SET -21 #define ONIGERR_SPECIFIED_ENCODING_CANT_CONVERT_TO_WIDE_CHAR -22 /* general error */ -#define ONIGERR_INVALID_ARGUMENT -30 +#define ONIGERR_INVALID_ARGUMENT -30 /* syntax error */ #define ONIGERR_END_PATTERN_AT_LEFT_BRACE -100 #define ONIGERR_END_PATTERN_AT_LEFT_BRACKET -101 @@ -555,6 +594,7 @@ ONIG_EXTERN OnigSyntaxType* OnigDefaultSyntax; #define ONIGERR_INVALID_POSIX_BRACKET_TYPE -121 #define ONIGERR_INVALID_LOOK_BEHIND_PATTERN -122 #define ONIGERR_INVALID_REPEAT_RANGE_PATTERN -123 +#define ONIGERR_INVALID_CONDITION_PATTERN -124 /* values error (syntax error) */ #define ONIGERR_TOO_BIG_NUMBER -200 #define ONIGERR_TOO_BIG_NUMBER_FOR_REPEAT_RANGE -201 @@ -566,6 +606,7 @@ ONIG_EXTERN OnigSyntaxType* OnigDefaultSyntax; #define ONIGERR_TOO_BIG_BACKREF_NUMBER -207 #define ONIGERR_INVALID_BACKREF -208 #define ONIGERR_NUMBERED_BACKREF_OR_CALL_NOT_ALLOWED -209 +#define ONIGERR_TOO_SHORT_DIGITS -210 #define ONIGERR_TOO_LONG_WIDE_CHAR_VALUE -212 #define ONIGERR_EMPTY_GROUP_NAME -214 #define ONIGERR_INVALID_GROUP_NAME -215 @@ -594,8 +635,8 @@ ONIG_EXTERN OnigSyntaxType* OnigDefaultSyntax; typedef struct OnigCaptureTreeNodeStruct { int group; /* group number */ - int beg; - int end; + OnigPosition beg; + OnigPosition end; int allocated; int num_childs; struct OnigCaptureTreeNodeStruct** childs; @@ -605,8 +646,8 @@ typedef struct OnigCaptureTreeNodeStruct { struct re_registers { int allocated; int num_regs; - int* beg; - int* end; + OnigPosition* beg; + OnigPosition* end; /* extended */ OnigCaptureTreeNode* history_root; /* capture history tree root */ }; @@ -712,7 +753,7 @@ typedef struct { ONIG_EXTERN int onig_init P_((void)); ONIG_EXTERN -int onig_error_code_to_str PV_((OnigUChar* s, int err_code, ...)); +int onig_error_code_to_str PV_((OnigUChar* s, OnigPosition err_code, ...)); ONIG_EXTERN void onig_set_warn_func P_((OnigWarnFunc f)); ONIG_EXTERN @@ -720,7 +761,8 @@ void onig_set_verb_warn_func P_((OnigWarnFunc f)); ONIG_EXTERN int onig_new P_((OnigRegex*, const OnigUChar* pattern, const OnigUChar* pattern_end, OnigOptionType option, OnigEncoding enc, OnigSyntaxType* syntax, OnigErrorInfo* einfo)); ONIG_EXTERN -int onig_reg_init P_((regex_t* reg, OnigOptionType option, OnigCaseFoldType case_fold_flag, OnigEncoding enc, OnigSyntaxType* syntax)); +int onig_reg_init P_((OnigRegex reg, OnigOptionType option, OnigCaseFoldType case_fold_flag, OnigEncoding enc, OnigSyntaxType* syntax)); +ONIG_EXTERN int onig_new_without_alloc P_((OnigRegex, const OnigUChar* pattern, const OnigUChar* pattern_end, OnigOptionType option, OnigEncoding enc, OnigSyntaxType* syntax, OnigErrorInfo* einfo)); ONIG_EXTERN int onig_new_deluxe P_((OnigRegex* reg, const OnigUChar* pattern, const OnigUChar* pattern_end, OnigCompileInfo* ci, OnigErrorInfo* einfo)); @@ -733,9 +775,11 @@ int onig_recompile P_((OnigRegex, const OnigUChar* pattern, const OnigUChar* pat ONIG_EXTERN int onig_recompile_deluxe P_((OnigRegex reg, const OnigUChar* pattern, const OnigUChar* pattern_end, OnigCompileInfo* ci, OnigErrorInfo* einfo)); ONIG_EXTERN -int onig_search P_((OnigRegex, const OnigUChar* str, const OnigUChar* end, const OnigUChar* start, const OnigUChar* range, OnigRegion* region, OnigOptionType option)); +OnigPosition onig_search P_((OnigRegex, const OnigUChar* str, const OnigUChar* end, const OnigUChar* start, const OnigUChar* range, OnigRegion* region, OnigOptionType option)); +ONIG_EXTERN +OnigPosition onig_search_gpos P_((OnigRegex, const OnigUChar* str, const OnigUChar* end, const OnigUChar* global_pos, const OnigUChar* start, const OnigUChar* range, OnigRegion* region, OnigOptionType option)); ONIG_EXTERN -int onig_match P_((OnigRegex, const OnigUChar* str, const OnigUChar* end, const OnigUChar* at, OnigRegion* region, OnigOptionType option)); +OnigPosition onig_match P_((OnigRegex, const OnigUChar* str, const OnigUChar* end, const OnigUChar* at, OnigRegion* region, OnigOptionType option)); ONIG_EXTERN OnigRegion* onig_region_new P_((void)); ONIG_EXTERN @@ -765,7 +809,7 @@ int onig_number_of_capture_histories P_((OnigRegex reg)); ONIG_EXTERN OnigCaptureTreeNode* onig_get_capture_tree P_((OnigRegion* region)); ONIG_EXTERN -int onig_capture_tree_traverse P_((OnigRegion* region, int at, int(*callback_func)(int,int,int,int,int,void*), void* arg)); +int onig_capture_tree_traverse P_((OnigRegion* region, int at, int(*callback_func)(int,OnigPosition,OnigPosition,int,int,void*), void* arg)); ONIG_EXTERN int onig_noname_group_capture_is_active P_((OnigRegex reg)); ONIG_EXTERN @@ -779,7 +823,7 @@ OnigSyntaxType* onig_get_syntax P_((OnigRegex reg)); ONIG_EXTERN int onig_set_default_syntax P_((OnigSyntaxType* syntax)); ONIG_EXTERN -void onig_copy_syntax P_((OnigSyntaxType* to, OnigSyntaxType* from)); +void onig_copy_syntax P_((OnigSyntaxType* to, const OnigSyntaxType* from)); ONIG_EXTERN unsigned int onig_get_syntax_op P_((OnigSyntaxType* syntax)); ONIG_EXTERN diff --git a/OgreKit.framework/Versions/A/OgreKit b/OgreKit.framework/Versions/A/OgreKit index 3ae80e65e2..232f85e1e5 100755 Binary files a/OgreKit.framework/Versions/A/OgreKit and b/OgreKit.framework/Versions/A/OgreKit differ diff --git a/OgreKit.framework/Versions/A/Resources/Documentation/OniGuruma/API b/OgreKit.framework/Versions/A/Resources/Documentation/OniGuruma/API index f3b88756bc..95fea64e76 100644 --- a/OgreKit.framework/Versions/A/Resources/Documentation/OniGuruma/API +++ b/OgreKit.framework/Versions/A/Resources/Documentation/OniGuruma/API @@ -1,4 +1,4 @@ -Oniguruma API Version 5.9.2 2008/02/19 +Onigmo (Oniguruma-mod) API Version 5.11.4 2011/10/08 #include @@ -10,7 +10,7 @@ Oniguruma API Version 5.9.2 2008/02/19 You don't have to call it explicitly, because it is called in onig_new(). -# int onig_error_code_to_str(UChar* err_buf, int err_code, ...) +# int onig_error_code_to_str(UChar* err_buf, OnigPosition err_code, ...) Get error message string. If this function is used for onig_new(), @@ -64,7 +64,8 @@ Oniguruma API Version 5.9.2 2008/02/19 ONIG_OPTION_NONE no option ONIG_OPTION_SINGLELINE '^' -> '\A', '$' -> '\Z' - ONIG_OPTION_MULTILINE '.' match with newline + ONIG_OPTION_DOTALL '.' match with newline + ONIG_OPTION_MULTILINE same as ONIG_OPTION_DOTALL ONIG_OPTION_IGNORECASE ambiguity match on ONIG_OPTION_EXTEND extended pattern form ONIG_OPTION_FIND_LONGEST find longest match @@ -72,11 +73,18 @@ Oniguruma API Version 5.9.2 2008/02/19 ONIG_OPTION_NEGATE_SINGLELINE clear ONIG_OPTION_SINGLELINE which is enabled on ONIG_SYNTAX_POSIX_BASIC, ONIG_SYNTAX_POSIX_EXTENDED, - ONIG_SYNTAX_PERL, ONIG_SYNTAX_PERL_NG, ONIG_SYNTAX_JAVA + ONIG_SYNTAX_PERL, ONIG_SYNTAX_PERL58, ONIG_SYNTAX_PERL58_NG, + ONIG_SYNTAX_JAVA, ONIG_SYNTAX_PYTHON ONIG_OPTION_DONT_CAPTURE_GROUP only named group captured. ONIG_OPTION_CAPTURE_GROUP named and no-named group captured. + ONIG_OPTION_NEWLINE_CRLF + Treat CR+LF as a newline too. (default: LF only) + To use this option, you must enable the following line in regenc.h. + + /* #define USE_CRNL_AS_LINE_TERMINATOR */ + 5 enc: character encoding. ONIG_ENCODING_ASCII ASCII @@ -121,8 +129,10 @@ Oniguruma API Version 5.9.2 2008/02/19 ONIG_SYNTAX_GREP grep ONIG_SYNTAX_GNU_REGEX GNU regex ONIG_SYNTAX_JAVA Java (Sun java.util.regex) - ONIG_SYNTAX_PERL Perl - ONIG_SYNTAX_PERL_NG Perl + named group + ONIG_SYNTAX_PERL58 Perl 5.8 + ONIG_SYNTAX_PERL58_NG Perl 5.8 + named group + ONIG_SYNTAX_PERL Perl 5.10+ + ONIG_SYNTAX_PYTHON Python ONIG_SYNTAX_RUBY Ruby ONIG_SYNTAX_DEFAULT default (== Ruby) onig_set_default_syntax() @@ -165,7 +175,7 @@ Oniguruma API Version 5.9.2 2008/02/19 ci->target_enc: target string character encoding. ci->syntax: address of pattern syntax definition. ci->option: compile time option. - ci->case_fold_flag: character matching case fold bit flag for + ci->case_fold_flag: character matching case fold bit flag for ONIG_OPTION_IGNORECASE mode. ONIGENC_CASE_FOLD_MIN: minimum @@ -205,8 +215,13 @@ Oniguruma API Version 5.9.2 2008/02/19 1 reg: regex object. -# int onig_search(regex_t* reg, const UChar* str, const UChar* end, const UChar* start, - const UChar* range, OnigRegion* region, OnigOptionType option) +# OnigPosition onig_search(regex_t* reg, const UChar* str, const UChar* end, + const UChar* start, const UChar* range, OnigRegion* region, + OnigOptionType option) +# OnigPosition onig_search_gpos(regex_t* reg, const UChar* str, const UChar* end, + const UChar* global_pos, + const UChar* start, const UChar* range, OnigRegion* region, + OnigOptionType option) Search string and return search result and matching region. @@ -214,23 +229,25 @@ Oniguruma API Version 5.9.2 2008/02/19 not found: ONIG_MISMATCH (< 0) arguments - 1 reg: regex object - 2 str: target string - 3 end: terminate address of target string - 4 start: search start address of target string - 5 range: search terminate address of target string + 1 reg: regex object + 2 str: target string + 3 end: terminate address of target string + 4 global_pos: position of \G + if not need, set same value as str. + 5 start: search start address of target string + 6 range: search terminate address of target string in forward search (start <= searched string < range) in backward search (range <= searched string <= start) - 6 region: address for return group match range info (NULL is allowed) - 7 option: search time option + 7 region: address for return group match range info (NULL is allowed) + 8 option: search time option ONIG_OPTION_NOTBOL string head(str) isn't considered as begin of line ONIG_OPTION_NOTEOL string end (end) isn't considered as end of line ONIG_OPTION_POSIX_REGION region argument is regmatch_t[] of POSIX API. -# int onig_match(regex_t* reg, const UChar* str, const UChar* end, const UChar* at, - OnigRegion* region, OnigOptionType option) +# OnigPosition onig_match(regex_t* reg, const UChar* str, const UChar* end, + const UChar* at, OnigRegion* region, OnigOptionType option) Match string and return result and matching region. @@ -394,7 +411,8 @@ Oniguruma API Version 5.9.2 2008/02/19 # int onig_capture_tree_traverse(OnigRegion* region, int at, - int(*func)(int,int,int,int,int,void*), void* arg) + int(*func)(int,OnigPosition,OnigPosition,int,int,void*), + void* arg) Traverse and callback in capture history data tree. @@ -405,16 +423,16 @@ Oniguruma API Version 5.9.2 2008/02/19 1 region: match region data. 2 at: callback position. - ONIG_TRAVERSE_CALLBACK_AT_FIRST: callback first, then traverse childs. - ONIG_TRAVERSE_CALLBACK_AT_LAST: traverse childs first, then callback. - ONIG_TRAVERSE_CALLBACK_AT_BOTH: callback first, then traverse childs, + ONIG_TRAVERSE_CALLBACK_AT_FIRST: callback first, then traverse children. + ONIG_TRAVERSE_CALLBACK_AT_LAST: traverse children first, then callback. + ONIG_TRAVERSE_CALLBACK_AT_BOTH: callback first, then traverse children, and at last callback again. 3 func: callback function. if func does not return 0, then traverse is stopped. - int func(int group, int beg, int end, int level, int at, - void* arg) + int func(int group, OnigPosition beg, OnigPosition end, + int level, int at, void* arg) group: group number beg: capture start position @@ -500,7 +518,7 @@ Oniguruma API Version 5.9.2 2008/02/19 1 syntax: address of pattern syntax definition. -# void onig_copy_syntax(OnigSyntaxType* to, OnigSyntaxType* from) +# void onig_copy_syntax(OnigSyntaxType* to, const OnigSyntaxType* from) Copy syntax. diff --git a/OgreKit.framework/Versions/A/Resources/Documentation/OniGuruma/COPYING b/OgreKit.framework/Versions/A/Resources/Documentation/OniGuruma/COPYING index 2cee0bbec8..c45e65e877 100644 --- a/OgreKit.framework/Versions/A/Resources/Documentation/OniGuruma/COPYING +++ b/OgreKit.framework/Versions/A/Resources/Documentation/OniGuruma/COPYING @@ -1,8 +1,40 @@ +Onigmo (Oniguruma-mod) LICENSE +------------------------------ + +/*- + * Copyright (c) 2002-2009 K.Kosako + * Copyright (c) 2011-2013 K.Takata + * 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. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND 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 THE AUTHOR OR 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. + */ + + + Oniguruma LICENSE ----------------- /*- - * Copyright (c) 2002-2007 K.Kosako + * Copyright (c) 2002-2009 K.Kosako * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -26,3 +58,30 @@ Oniguruma LICENSE * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ + + + +Ruby BSDL +--------- +Copyright (C) 1993-2013 Yukihiro Matsumoto. 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. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND 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 THE AUTHOR OR 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. diff --git a/OgreKit.framework/Versions/A/Resources/Documentation/OniGuruma/FAQ b/OgreKit.framework/Versions/A/Resources/Documentation/OniGuruma/FAQ index 46a3e0e08b..a59a5e2d70 100644 --- a/OgreKit.framework/Versions/A/Resources/Documentation/OniGuruma/FAQ +++ b/OgreKit.framework/Versions/A/Resources/Documentation/OniGuruma/FAQ @@ -1,6 +1,6 @@ -FAQ 2006/11/14 +FAQ 2011/09/18 -1. Lognest match +1. Longest match You can execute longest match by using ONIG_OPTION_FIND_LONGEST option in onig_new(). @@ -10,7 +10,7 @@ FAQ 2006/11/14 In order to make thread safe, which of (A) or (B) must be done. - (A) Oniguruma Layer + (A) Onigmo Layer Define the macro below in oniguruma/regint.h. @@ -25,13 +25,23 @@ FAQ 2006/11/14 (B) Application Layer - The plural threads should not do simultaneously that making + The plural threads should not do simultaneously that making new regexp objects or re-compiling objects or freeing objects, even if these objects are differ. -3. Mailing list +3. CR + LF - There is no mailing list about Oniguruma. + DOS newline (CR (0x0c) + LF (0x0a) sequence) + + Enable the following line in regenc.h, and use ONIG_OPTION_NEWLINE_CRLF + option in onig_new(). + + /* #define USE_CRNL_AS_LINE_TERMINATOR */ + + +4. Mailing list + + There is no mailing list about Onigmo/Oniguruma. // END diff --git a/OgreKit.framework/Versions/A/Resources/Documentation/OniGuruma/HISTORY b/OgreKit.framework/Versions/A/Resources/Documentation/OniGuruma/HISTORY index 06f38c246a..654684773f 100644 --- a/OgreKit.framework/Versions/A/Resources/Documentation/OniGuruma/HISTORY +++ b/OgreKit.framework/Versions/A/Resources/Documentation/OniGuruma/HISTORY @@ -1,4 +1,321 @@ -History +History of Onigmo (Oniguruma-mod) + +2013/07/03: Version 5.13.5 + +2013/07/03: [dist] update LTVERSION to "5:0:5". +2013/07/02: [bug] (thanks Akinori MUSHA and Ippei Obayashi) + Fix a renumbering bug in condition regexp with a named + capture. + see: https://bugs.ruby-lang.org/issues/8583 +2013/05/30: [dist] Merge Oniguruma 5.9.3 and 5.9.4. + Also change the version of autotools. + (automake 1.11.1, autoconf 2.65, libtool 2.2.6b) +2013/05/29: [spec] (thanks Akinori MUSHA) + Allow ENCLOSE_OPTION in look-behind. +2013/04/10: [bug] fix problem with optimization of \z. + see: http://bugs.ruby-lang.org/issues/8210 + +2013/03/17: Version 5.13.4 + +2013/03/17: [dist] update LTVERSION to "5:0:4". +2013/03/10: [bug] fix lookbehind assertion fails with /m mode enabled. + see: http://bugs.ruby-lang.org/issues/8023 +2013/03/05: [bug] fix \Z matches where it shouldn't. + see: http://bugs.ruby-lang.org/issues/8001 +2013/03/02: [dist] add .editorconfig (see: http://editorconfig.org/) +2013/03/01: [bug] fix character class with ASCII flag. + see: http://bugs.ruby-lang.org/issues/7972 +2013/02/27: [bug] fix case-insensitive group. + see: http://bugs.ruby-lang.org/issues/7974 + +2012/11/03: Version 5.13.3 + +2012/11/03: [dist] update LTVERSION to "5:0:1". +2012/10/18: [dist] Win32: add batch-mode inference rules. +2012/10/17: [bug] merge Ruby r37175. + should match with a hyphen after a range in a character + class. +2012/09/02: [impl] merge Ruby r36440. + remove "found" indirect flag to suppress warnings by + gcc 4.7. +2012/07/11: [dist] tool/enc-unicode.rb: suppress warning of Hash#index on + Ruby 1.9. +2012/07/10: [dist] testpy.py: return the result of test. +2012/07/10: [dist] testpy.py: simplify the method of setting output encoding. +2012/07/03: [dist] testpy.py: error messages are not displayed. +2012/06/16: [impl] merge Ruby r36072 partially. + regparse.c (is_onechar_cclass): restructured to clarify + that c is used if found == 1. +2012/06/16: [dist] merge Ruby r36070. + tool/enc-unicode.rb: add comment why it uses Hash#index. +2012/05/22: [impl] merge Ruby r35724. + enc/sjis.c (code_to_mbclen): return + ONIGERR_INVALID_CODE_POINT_VALUE if the code is invalid. +2012/05/11: [dist] update .gitignore. +2012/04/30: [dist] configure.in: add 'foreign' option in AM_INIT_AUTOMAKE. +2012/04/18: [dist] fix samples to support x64. + NOTE: This is a preliminary fix. It is needed that + additional support for the LLP64 data model such as + Visual C++ x64. +2012/04/14: [dist] update Makefile.{am,in}. + Add new files. + Enable making test[cu].c from test*.rb. +2012/04/14: [dist] update tests. (testc.c, testu.c, etc.) + +2012/03/29: Version 5.13.2 + +2012/03/24: [impl] suppress warnings. +2012/03/24: [impl] remove unnecessary casts. +2012/03/23: [impl] merge Ruby r35107. + suppress warnings. +2012/03/21: [bug] memory leak occurs when char class contains only one char. +2012/03/21: [impl] use actual type to get the size. + see: http://bugs.ruby-lang.org/issues/6144 +2012/03/15: [impl] check the return code of add_ctype_to_cc(). + see: http://bugs.ruby-lang.org/issues/6145 +2012/03/15: [impl] fix error message. +2012/03/15: [bug] broken conditional expressions are allowed. + see: http://bugs.ruby-lang.org/issues/6143 +2012/03/15: [impl] merge Ruby r35027. + adjust style. +2012/03/06: [impl] merge Ruby r34905. + Remove unused variables. +2012/02/29: [bug] unexpected match occurs when a char class contains no char. +2012/02/25: [impl] CaseFolding.py: fix regexp. +2012/02/25: [impl] define the sizes of case folding tables in casefold.h. +2012/02/24: [dist] fix samples to support x64. + NOTE: This is a preliminary fix. +2012/02/23: [impl] merge Ruby r34730. + don't use // comment. +2012/02/20: [impl] merge Ruby r34684, r34688 and r34692. + fix-up warnings. +2012/02/17: [dist] (thanks NARUSE, Yui) + tool/enc-unicode.rb: Don't use \h to work with Ruby 1.8. +2012/02/14: [spec] relative group reference in back reference with nest level + is allowed. + +2012/02/05: Version 5.13.1 + +2012/02/04: [spec] allow \b and \B in look-behind. +2012/02/01: [new] support for Unicode 6.1. + +2012/01/20: Version 5.13.0 + +2012/01/20: [dist] update LTVERSION to "5:0:0". +2012/01/17: [bug] memory leak occurs when xrealloc fails. +2012/01/15: [bug] Calling function "add_code_range" without checking return + value. +2012/01/12: [bug] testpy.py: error messages are not displayed when Python 2.x + is used. +2012/01/11: [bug] memory leak occurs when history_tree_add_child fails. +2012/01/11: [bug] (thanks Masashi Tsuji) + OnigCaptureTreeNode memory leak. +2012/01/09: [spec] ONIG_OPTION_ASCII_RANGE should be enabled in + ONIG_SYNTAX_JAVA. +2012/01/09: [new] support for Ruby 1.9.3 compatible \b, \B and POSIX brackets. + add ONIG_OPTION_WORD_BOUND_ALL_RANGE and + ONIG_OPTION_POSIX_BRACKET_ALL_RANGE. + remove ONIG_SYN_POSIX_BRACKET_ALWAYS_ALL_RANGE. +2011/12/31: [bug] /^ss$/i doesn't match "\x{DF}". +2011/12/30: [new] add ONIG_SYN_POSIX_BRACKET_ALWAYS_ALL_RANGE option. +2011/12/29: [bug] (thanks Nobuyoshi Nakada) + C standard requires va_end() to be placed before return. + quote macro expansions. + +2011/12/28: Version 5.12.1 + +2011/12/24: [new] merge Ruby r23714, r28980 and r34050. + add onig_memsize() and onig_region_memsize(). +2011/12/24: [new] support for Python 3.x. (onig.py and testpy.py) +2011/12/14: [bug] testpy.py doesn't work on Ubuntu. + +2011/12/12: Version 5.12.0 + +2011/12/12: [dist] update LTVERSION to "4:0:0". +2011/12/11: [impl] use ONIGENC_IS_UNICODE to check if the encoding is Unicode + encoding. +2011/12/10: [new] support for Unicode 6.0. + new scripts, ages, blocks (\p{In_XXX}) and case foldings. + tool/enc-unicode.rb is imported from Ruby 1.9.3. +2011/12/10: [spec] \p{Print} shouldn't include newlines. + \p{Print} = \p{Graph} + \p{Space_Separator} +2011/12/10: [bug] \p{NEWLINE} should not be allowed. +2011/12/05: [new] support for PyPy 1.7. (onig.py and testpy.py) +2011/12/01: [bug] /a{2}/i doesn't match 'AA'. +2011/11/21: [impl] use ONIG_LAST_CODE_POINT instead of ~((OnigCodePoint )0). +2011/11/17: [bug] code ranges are not merged properly. +2011/11/17: [bug] /[\x{0}-X]/i doesn't match properly when UTF-16/32 is used. + +2011/10/16: Version 5.11.4 + +2011/10/16: [dist] update LTVERSION to "3:0:2". +2011/10/15: [tune] optimize Sunday's quick search. +2011/10/07: [API] add ONIG_OPTION_DOTALL option as an alias of + ONIG_OPTION_MULTILINE. +2011/10/04: [impl] add Sunday's quick search. + add config USE_SUNDAY_QUICK_SEARCH. +2011/10/04: [impl] add case-insensitive Boyer-Moore-Horspool search. +2011/10/03: [spec] check minimum digits of hexadecimal numbers. + \uHHHH should be exactly four digits. +2011/10/03: [API] rename ONIG_SYN_OP2_QMARK_BAR_BRANCH_RESET to + ONIG_SYN_OP2_QMARK_VBAR_BRANCH_RESET. + +2011/09/18: Version 5.11.3 + +2011/09/18: [dist] update LTVERSION to "3:0:1". +2011/09/18: [spec] \R matches \x85, \x2028 and \x2029 in Unicode encodings. +2011/09/18: [new] add ONIG_OPTION_NEWLINE_CRLF. +2011/09/18: [tune] optimize \x{}. +2011/09/17: [tune] expand a{n,m} to 'a...a' + a{0,m-n}. +2011/09/12: [bug] /.*\Z/ doesn't match properly. + +2011/09/10: Version 5.11.2 + +2011/09/09: [bug] merge Ruby r24546. + fix the first character bigger than sb_out was dropped. +2011/09/09: [bug] merge Ruby r19864. + CCV_SB is only for single byte. +2011/09/09: [bug] merge Ruby r24550. + fix memory leaks. + +2011/09/08: Version 5.11.1 + +2011/09/08: [impl] merge some part of Ruby r29928. (update debug log.) +2011/09/08: [impl] merge Ruby r32544. + Power PC does not allow unaligned word access. +2011/09/07: [bug] \g<0> doesn't work when USE_PERL_SUBEXP_CALL isn't defined. +2011/09/07: [tune] optimize character class. +2011/09/06: [tune] optimize (?a). +2011/09/06: [tune] optimize \R. + +2011/09/03: Version 5.11.0 + +2011/09/03: [dist] update LTVERSION to "3:0:0". +2011/09/01: [new] add OnigPosition. +2011/09/01: [new] (thanks h-tom) + support for x64. +2011/09/01: [new] add ONIG_SYNTAX_PYTHON (onig.py). +2011/08/30: [dist] check _MSC_VER instead of _NMAKE_VER when LTCG is used. +2011/08/25: [tune] reduce conditional branches. + use ONIGENC_IS_IN_RANGE macro to check the code range. +2011/08/18: [dist] add a resource script for onig.dll (win32/onig.rc). + +2011/08/09: Version 5.10.6 + +2011/08/09: [dist] a .def file can be used to export APIs. +2011/08/08: [dist] update win32/Makefile to support LTCG optimization. +2011/08/07: [new] add new test scripts: testpy.py and onig.py +2011/08/07: [new] add a new syntax: ONIG_SYNTAX_PYTHON + +2011/08/03: Version 5.10.5 + +2011/08/03: [dist] update win32/Makefile. +2011/08/03: [dist] update tests to support ONIG_OPTION_ASCII_RANGE option. +2011/07/30: [new] EUC-JP: support for JIS X 0212 (Supplemental Kanji). +2011/07/30: [impl] not to use ONIG_ENCODING_SJIS inside ONIG_ENCODING_CP932. +2011/07/29: [new] Add support for EUC-JIS-2004. + (This feature is not enabled by default.) +2011/07/29: [impl] EUC-JP: check the length more strictly. +2011/07/29: [dist] translate Japanese comments to English. +2011/07/29: [bug] \p{Katakana} doesn't match JIS X 0201 Katakana when EUC-JP + is used. +2011/07/28: [dist] change the encoding of Japanese documents to UTF-8. +2011/07/26: [bug] [^x]*x causes invalid pointer access. +2011/07/19: [spec] allow (?au) in Ruby syntax mode. +2011/07/16: [new] add \g<0> and \g<+n>. + +2011/07/11: Version 5.10.4 + +2011/07/11: [dist] update autotools. + use automake 1.10.3, autoconf 2.68 and libtool 2.4. +2011/07/11: [impl] add typedefs of intptr_t/uintptr_t for old VC++ compilers. +2011/07/11: [impl] include stdint.h and stddef.h for intptr_t/uintptr_t. +2011/07/04: [tune] implicit-anchor optimization +2011/07/04: [bug] onig_search_gpos() may return wrong OnigRegion. +2011/07/04: [bug] fix typo in debug log. +2011/07/04: [tune] enable optimization for .* except look-behind. +2011/07/04: [bug] Revert "enable optimization for .* except look-behind" + +2011/07/03: Version 5.10.3 + +2011/07/01: [tune] implicit-anchor optimization +2011/06/30: [bug] Revert "[tune] implicit-anchor optimization" +2011/06/30: [bug] (?a) doesn't work properly + +2011/06/29: Version 5.10.2 + +2011/06/29: [tune] implicit-anchor optimization +2011/06/28: [impl] remove duplicated debug log. +2011/06/28: [bug] (?a) doesn't work for \d, \h and \s. +2011/06/28: [bug] should not backtrack in \X. + +2011/06/24: Version 5.10.1 + +2011/06/24: [new] add (?(cond)yes) and (?(cond)yes|no). +2011/06/24: [bug] double free in \R and \X. +2011/06/24: [tune] enable optimization for .* except look-behind. +2011/06/21: [spec] number is not allowed in (?&name) and (?P>name). + +2011/06/18: Version 5.10.0 + +2011/06/18: [impl] export onig_new_without_alloc() API. +2011/06/15: [spec] change Ruby syntax options. + add \K, \R and \X. +2011/06/15: [spec] change Perl syntax options. + Rename ONIG_SYNTAX_PERL to ONIG_SYNTAX_PERL58. + Rename ONIG_SYNTAX_PERL_NG to ONIG_SYNTAX_PERL58_NG. + Add ONIG_SYNTAX_PERL as Perl 5.10+ compatible syntax. +2011/06/14: [new] add (?R), (?0) and (?+n). +2011/06/14: [new] add new character properties in EUC-JP: + Han, Latin, Greek and Cyrillic. +2011/06/14: [new] add new encoding: CP932. +2011/06/14: [new] add new character properties in Shift_JIS: + Han, Latin, Greek and Cyrillic. +2011/06/13: [bug] (?-n) doesn't work +2011/06/13: [new] add ONIG_SYN_ALLOW_MULTIPLEX_DEFINITION_NAME_CALL +2011/06/13: [impl] remove unused ONIG_SYN_CAPTURE_LEFT_MOST_NAMED_GROUP flag. +2011/06/13: [bug] (?a) doesn't work with Unicode encodings. +2011/06/12: [new] add EUC-JP case folding. +2011/06/12: [new] add Shift_JIS case folding. +2011/06/12: [spec] add ONIG_OPTION_ASCII_RANGE option to OnigSyntaxRuby. +2011/06/12: [new] add Python/PCRE compatible named group: + (?P...), (?P=name) and (?P>name). +2011/06/11: [new] add \g{n}, \g{-n} and \g{name}. +2011/06/10: [bug] char class may cause memory leak + http://redmine.ruby-lang.org/issues/show/4061 +2011/06/10: [bug] invalid backref number/name + http://redmine.ruby-lang.org/issues/show/2759 +2011/06/10: [bug] /(?<=a).*b/ =~ "aab" doesn't match + http://redmine.ruby-lang.org/issues/show/3568 +2011/06/10: [bug] Case Sensitivity in Regular Expressions with Lookbehind + http://redmine.ruby-lang.org/issues/show/4088 +2011/06/10: [spec] allow any target for quantifiers. + add USE_NO_INVALID_QUANTIFIER. +2011/06/10: [new] add Perl 5.14 compatible character set modifier: + (?adlu) and (?^alu). +2011/06/10: [new] add (?&name), (?n) and (?-n). + add USE_PERL_SUBEXP_CALL. +2011/06/10: [new] add \R, \X and \K. +2011/06/10: [spec] allow negative look behind in look behind. +2011/06/10: [new] add: onig_search_gpos(). + +2011/06/10: fork from Oniguruma 5.9.2. + + +====================================================================== +History of Oniguruma + +2013/04/04: Version 5.9.4 + +2013/04/04: [dev] remove Makefile.in from git repository. +2013/04/04: [dist] add oniguruma.pc.in file. (for pkg-config) + (thanks Giulio Paci) + +2012/10/26: Version 5.9.3 + +2012/10/15: remove warnings "test: =: unary operator expected" in ./configure. + (thanks t_okazaki) +2012/10/15: fix print_tree ENCLOSE_OPTION bug. (thanks Suraj N. Kurapati) 2010/01/09: Version 5.9.2 @@ -169,12 +486,12 @@ History 2006/11/07: [dist] remove test.rb, testconv.rb and testconvu.rb. 2006/11/07: [bug] get_case_fold_codes_by_str() should handle 'Ss' and 'sS' combination for ess-tsett. -2006/11/07: [impl] apply_all_case_fold() doesn't need to return all +2006/11/07: [impl] apply_all_case_fold() doesn't need to return all case character combination for multi-character folding. (ONIGENC_CASE_FOLD_MULTI_CHAR) 2006/11/07: [bug] (thanks Byte) add { 0xa3, 0xb3 } to CaseFoldMap[] for KOI8-R. -2006/11/06: [spec] change ONIG_OPTION_FIND_LONGEST to search all of +2006/11/06: [spec] change ONIG_OPTION_FIND_LONGEST to search all of the string range. add USE_FIND_LONGEST_SEARCH_ALL_OF_RANGE. 2006/11/02: [impl] re-implement expand_case_fold_string() for @@ -264,7 +581,7 @@ History 2006/10/10: [impl] remove OP_WORD_SB and OP_WORD_MB. 2006/10/10: [impl] remove OP_EXACT1_IC and OP_EXACTN_IC from match_at(). 2006/10/10: [impl] should free new_str in expand_case_fold_string(). -2006/10/06: [dist] add test entrys to sample/encode.c. +2006/10/06: [dist] add test entries to sample/encode.c. 2006/10/06: [impl] re-implement caseless match (case-fold). 2006/10/06: [impl] expand string node by case fold variations. add expand_case_fold_string(). @@ -442,7 +759,7 @@ History 2006/05/11: [test] success in ruby 1.9.0 (2006-03-01) [i686-linux]. 2006/05/11: [bug] (thanks Yuji Kaneda) - dead-lock in onig_end(). + dead-lock in onig_end(). 2006/05/11: [dist] update index.html. 2006/05/08: Version 4.0.3 @@ -494,7 +811,7 @@ History use GNU libtool/automake. change configure.in and add Makefile.am, sample/Makefile.am. add AUTHORS file. -2006/01/24: [dist] test programs return exit code -1 when test fails. +2006/01/24: [dist] test programs return exit code -1 when test fails. 2006/01/24: [bug] (thanks KIMURA Koichi) invalid syntax definition in ONIG_SYNTAX_GREP. ONIG_SYN_OP_BRACE_INTERVAL @@ -512,7 +829,7 @@ History 2005/11/24: [test] success in ruby 1.9.0 (2005-08-09) [i686-linux]. 2005/11/21: [test] success in ruby 1.9.0 (2005-11-20) [i386-cygwin]. 2005/11/21: [bug] (thanks Allan Odgaard) - utf-8 character comments in extended mode leads + utf-8 character comments in extended mode leads invalid result. ex. /(?x)(?<= # o\n~) / fix onigenc_unicode_is_code_ctype() and @@ -594,7 +911,7 @@ History add new character encoding ONIG_ENCODING_GB18030. 2005/06/30: [bug] invalid ctype check for multibyte encodings. ("graph", "print") - fix onigenc_mb2/4_is_code_ctype(), + fix onigenc_mb2/4_is_code_ctype(), eucjp_is_code_ctype() and sjis_is_code_ctype(). 2005/06/30: [bug] invalid conversion from code point to mbc in onigenc_mb4_code_to_mbc(). @@ -654,7 +971,7 @@ History 2005/03/08: [impl] (thanks matz) [ruby-dev:25783] should not allocate memory for key data in st.c. move st_*_strend() functions from st.c. fixed some - potential memory leaks. + potential memory leaks. (imported from Ruby 1.9 2005-03-08) 2005/03/07: Version 3.7.1 @@ -669,7 +986,7 @@ History remove oniggnu.h from make 19. 2005/03/01: [bug] (thanks matz) [ruby-dev:25778] uninitialized member (OptEnv.backrefed_status) - was used. + was used. 2005/02/19: Version 3.7.0 @@ -720,7 +1037,7 @@ History 2005/01/19: [bug] (thanks Isao Sonobe) callback function argument name_end of onig_foreach_name() was wrong. - name key of name table should be null terminated for + name key of name table should be null terminated for character encoding length. add strdup_with_null(), rename onig_strdup() to k_strdup(). use e->name_len in i_names(). @@ -833,7 +1150,7 @@ History 2004/11/16: [impl] add get_type_cc_node method to OnigEncodingType. 2004/11/15: [impl] add st.h and st.c from Ruby 1.9. use st-hash always. -2004/11/12: [impl] change menber 'not' of CClassNode to 'flags'. +2004/11/12: [impl] change member 'not' of CClassNode to 'flags'. add flags FLAG_CCLASS_NOT and FLAG_CCLASS_SHARE. 2004/11/12: [impl] add onig_is_in_code_range_array() to enc/unicode.c. 2004/11/12: [impl] fix CRWord in enc/unicode.c and MBWord in enc/utf8.c. @@ -878,7 +1195,7 @@ History 2004/10/18: [impl] (thanks Imai Yasumasa) enclose #include by #ifndef __BORLANDC__. 2004/10/18: [bug] (thanks Imai Yasumasa) - memory acess violation in select_opt_exact_info(). + memory access violation in select_opt_exact_info(). 2004/09/25: [dist] fix doc/API and doc/API.ja. 2004/09/25: [bug] fix OP_SEMI_END_BUF process in match_at() for the case USE_NEWLINE_AT_END_OF_STRING_HAS_EMPTY_LINE @@ -992,7 +1309,7 @@ History RelAddrType, AbsAddrType and LengthType change from short int to int type for the very long string match. 2004/06/14: [bug] (thanks Greg A. Woods) - fix nmatch argument of regexec() is smaller than + fix nmatch argument of regexec() is smaller than reg->num_mem + 1 case. (POSIX API) 2004/06/14: [spec] (thanks Greg A. Woods) set pmatch to NULL if nmatch is 0 in regexec(). (POSIX API) @@ -1089,7 +1406,7 @@ History 2004/04/15: [new] add onig_get_ambig_flag(). 2004/04/14: [bug] (thanks Isao Sonobe) undefined bytecode error happens if ONIG_OPTION_FIND_LONGEST - is setted. + is set. should finish matching process if find-condition is fail at OP_END in match_at(). 2004/04/12: [impl] add ambig_flag to regex_t. @@ -1172,7 +1489,7 @@ History 2004/02/23: [new] support ISO-8859-10. (ONIG_ENCODING_ISO_8859_10) 2004/02/20: [bug] fix iso_8859_4_mbc_is_case_ambig(). 2004/02/20: [new] support ISO-8859-9. (ONIG_ENCODING_ISO_8859_9) -2004/02/19: [bug] correct ctype tables for ISO-8859-3, ISO-8859-4, +2004/02/19: [bug] correct ctype tables for ISO-8859-3, ISO-8859-4, ISO-8859-6, ISO-8859-7, ISO-8859-8, KOI8_R. 2004/02/18: [bug] wrong replaced name OnigSyntaxGnuOnigex. 2004/02/17: [spec] check capture status for empty infinite loop. @@ -1345,7 +1662,7 @@ History 2003/11/11: [spec] add syntax op. REG_SYN_OP_VARIABLE_META_CHARS. 2003/11/11: [spec] rename REG_SYN_OP_ESC_CAPITAL_Q_QUOTE to REG_SYN_OP2_ESC_CAPITAL_Q_QUOTE, - REG_SYN_OP_QMARK_GROUP_EFFECT to + REG_SYN_OP_QMARK_GROUP_EFFECT to REG_SYN_OP2_QMARK_GROUP_EFFECT. 2003/11/06: [impl] define THREAD_PASS as rb_thread_schedule() in Ruby mode. 2003/11/05: [spec] add syntax behavior REG_SYN_WARN_REDUNDANT_NESTED_REPEAT. @@ -1362,7 +1679,7 @@ History 2003/10/03: [bug] (thanks nobu) [ruby-dev:21472] sub-anchor of optimization map info was wrong in concat_left_node_opt_info(). - ex. /^(x?y)/ = "xy" fail. + ex. /^(x?y)/ = "xy" fail. 2003/09/17: Version 1.9.4 @@ -1425,7 +1742,7 @@ History 2003/09/01: [dist] update doc/RE and doc/RE.ja. 2003/08/26: [bug] (thanks Guy Decoux) should not double free node at the case TK_CC_CC_OPEN - in parse_char_class(). + in parse_char_class(). 2003/08/19: Version 1.9.3 @@ -1437,8 +1754,8 @@ History REG_SYN_OP2_ATMARK_CAPTURE_HISTORY. 2003/08/18: [spec] (thanks nobu) don't use IMPORT in oniguruma.h and onigposix.h. -2003/08/18: [impl] (thanks nobu) change error output to stdout in testconv.rb. -2003/08/18: [inst] (thanks nobu) lacked $(srcdir) in Makefile.in. +2003/08/18: [impl] (thanks nobu) change error output to stdout in testconv.rb. +2003/08/18: [inst] (thanks nobu) lacked $(srcdir) in Makefile.in. 2003/08/18: [bug] REG_MBLEN_TABLE[SJIS][0xFD-0xFF] should be 1. 2003/08/18: [bug] (thanks nobu) mbctab_sjis[0x80] should be 0. 2003/08/18: [bug] (thanks nobu) @@ -1467,7 +1784,7 @@ History 2003/07/29: [new] add regex_get_encoding(), regex_get_options() and regex_get_syntax(). 2003/07/25: [spec] (thanks akr) - change group(...) to shy-group(?:...) if named group is + change group(...) to shy-group(?:...) if named group is used in the pattern. add REG_SYN_CAPTURE_ONLY_NAMED_GROUP. 2003/07/24: [spec] rename REG_OPTION_CAPTURE_ONLY_NAMED_GROUP to @@ -1495,7 +1812,7 @@ History set option status to effect memory in optimize_node_left(). 2003/07/07: [impl] add opcode OP_ANYCHAR_ML, OP_ANYCHAR_ML_STAR and OP_ANYCHAR_ML_START_PEEK_NEXT. -2003/07/07: [bug] (thanks nobu) REG_MBLEN_TABLE[SJIS][0x80] should be 1. +2003/07/07: [bug] (thanks nobu) REG_MBLEN_TABLE[SJIS][0x80] should be 1. 2003/07/07: [spec] rename REG_SYN_OP_QUOTE to REG_SYN_OP_ESC_Q_QUOTE. 2003/07/04: Version 1.9.1 @@ -1558,7 +1875,7 @@ History 2003/06/12: [spec] add syntax behavior REG_SYN_WARN_FOR_CC_OP_NOT_ESCAPEED. 2003/06/12: [spec] invalid POSIX bracket should be error. ex. [[:upper :]] 2003/06/11: [new] char-class in char-class (as Java(TM)). -2003/06/11: [spec] change AND operator in char-class from &&[..] to &&. +2003/06/11: [spec] change AND operator in char-class from &&[..] to &&. 2003/06/04: [spec] {n,m}+ should not be possessive operator. ex. a{3}+ should be (?:a{3})+ 2003/06/03: [bug] should compare strings with min-length in is_not_included(). @@ -1647,7 +1964,7 @@ History 2003/03/12: [spec] change named backref and subexp call format. backref: \k, call: \g (thanks akr) 2003/03/11: [inst] add regparse.[ch] in win32/Makefile. -2003/03/11: [bug] if UNALIGNED_WORD_ACCESS isn't setted +2003/03/11: [bug] if UNALIGNED_WORD_ACCESS isn't set then compile error in unset_addr_list_fix(). (thanks knu) 2003/03/10: [impl] divide regcomp.c to regcomp.c, regparse.c and regparse.h. 2003/03/10: [bug] should handle multi-byte code name in fetch_name(). @@ -1714,7 +2031,7 @@ History 2003/02/28: [impl] add opcode OP_CALL, OP_RETURN. add stack type STK_CALL_FRAME, STK_RETURN, STK_MEM_END. 2003/02/26: [spec] add new syntax behavior REG_SYN_STRICT_CHECK_BACKREF_NUMBER. - if it is setted, then error /(\1)/, /\1(..)/ etc... + if it is set, then error /(\1)/, /\1(..)/ etc... 2003/02/26: [spec] if backref number is greater than max group number, then return compile error. (REGERR_INVALID_BACKREF_NUMBER) 2003/02/26: [tune] bad implemented N_ALT case in get_min_match_length(). @@ -1722,8 +2039,8 @@ History 2003/02/26: [impl] add -win option to testconv.rb. 2003/02/25: [spec] allow to assign same name to different group. add OP_BACKREF_MULTI. -2003/02/24: [impl] reduce redundant repeat of empty target. - ex. /()*/ ==> /()?/, /()+/ ==> /()/, /(?:)+/ ==> // +2003/02/24: [impl] reduce redundant repeat of empty target. + ex. /()*/ ==> /()?/, /()+/ ==> /()/, /(?:)+/ ==> // 2003/02/24: [impl] change condition in regex_is_allow_reverse_match(). 2003/02/24: [impl] convert i(/../, ...) functions in testconv.rb. 2003/02/24: [impl] change name table struct. @@ -1791,7 +2108,7 @@ History 2003/02/04: [bug] typo miss in regex_region_copy(). 2003/02/04: [impl] change THREAD_PASS macro. (regint.h) 2003/02/04: [dist] add API document file doc/API. -2003/02/04: [tune] if sub_anchor has ANCHOR_BEGIN_LINE then +2003/02/04: [tune] if sub_anchor has ANCHOR_BEGIN_LINE then set REG_OPTIMIZE_EXACT_BM in set_optimize_exact_info(). 2003/02/04: [spec] reimplement regex_clone() and it is obsoleted. 2003/02/04: [bug] add REGERR_OVER_THREAD_PASS_LIMIT_COUNT @@ -1911,7 +2228,7 @@ History 2002/04/01: [dist] add COPYING. 2002/03/30: [spec] warn redundant nested repeat operator in Ruby verbose mode. ex. (?:a*)? -2002/03/30: [spec] nested repeat operator error check should be +2002/03/30: [spec] nested repeat operator error check should be same with GNU regex. (thanks Guy Decoux) 2002/03/30: [new] add \x{hexadecimal-wide-char}. (thanks matz) 2002/03/27: [bug] MBCTYPE_XXX symbol values should be same with GNU regex. @@ -1974,7 +2291,7 @@ History ex. /(?:abc){10}/ 2002/03/06: [new] add a symbol REG_TRANSTABLE_USE_DEFAULT in regex.h. 2002/03/06: [impl] rename RegDefaultCharCode to RegDefaultCharEncoding. -2002/03/06: [bug] if pattern has NULL(\000) char, infinite loop happens +2002/03/06: [bug] if pattern has NULL(\000) char, infinite loop happens in ScanMakeNode(). (beware of strchr(). thanks Nobu) 2002/03/06: [bug] range argument of ForwardSearchRange() is wrong. ex. /\A.a/, /\G.a/ mismatched with "aa". (thanks Nobu) diff --git a/OgreKit.framework/Versions/A/Resources/Documentation/OniGuruma/RE b/OgreKit.framework/Versions/A/Resources/Documentation/OniGuruma/RE index 21efe531a4..8c635b795e 100644 --- a/OgreKit.framework/Versions/A/Resources/Documentation/OniGuruma/RE +++ b/OgreKit.framework/Versions/A/Resources/Documentation/OniGuruma/RE @@ -1,4 +1,4 @@ -Oniguruma Regular Expressions Version 5.9.1 2007/09/05 +Onigmo (Oniguruma-mod) Regular Expressions Version 5.13.0 2012/01/19 syntax: ONIG_SYNTAX_RUBY (default) @@ -8,7 +8,7 @@ syntax: ONIG_SYNTAX_RUBY (default) \ escape (enable or disable meta character meaning) | alternation (...) group - [...] character class + [...] character class 2. Characters @@ -39,11 +39,14 @@ syntax: ONIG_SYNTAX_RUBY (default) \w word character Not Unicode: - alphanumeric, "_" and multibyte char. + alphanumeric and "_". Unicode: General_Category -- (Letter|Mark|Number|Connector_Punctuation) + It depends on ONIG_OPTION_ASCII_RANGE option that non-ASCII char + includes or not. + \W non word char \s whitespace char @@ -52,17 +55,23 @@ syntax: ONIG_SYNTAX_RUBY (default) \t, \n, \v, \f, \r, \x20 Unicode: - 0009, 000A, 000B, 000C, 000D, 0085(NEL), + 0009, 000A, 000B, 000C, 000D, 0085(NEL), General_Category -- Line_Separator -- Paragraph_Separator -- Space_Separator + It depends on ONIG_OPTION_ASCII_RANGE option that non-ASCII char + includes or not. + \S non whitespace char \d decimal digit char Unicode: General_Category -- Decimal_Number + It depends on ONIG_OPTION_ASCII_RANGE option that non-ASCII char + includes or not. + \D non decimal digit char \h hexadecimal digit char [0-9a-fA-F] @@ -82,23 +91,28 @@ syntax: ONIG_SYNTAX_RUBY (default) Alnum, Alpha, Blank, Cntrl, Digit, Graph, Lower, Print, Punct, Space, Upper, XDigit, Word, ASCII, - + works on EUC_JP, Shift_JIS - Hiragana, Katakana + + works on EUC_JP, Shift_JIS, CP932 + Hiragana, Katakana, Han, Latin, Greek, Cyrillic + works on UTF8, UTF16, UTF32 - Any, Assigned, C, Cc, Cf, Cn, Co, Cs, L, Ll, Lm, Lo, Lt, Lu, - M, Mc, Me, Mn, N, Nd, Nl, No, P, Pc, Pd, Pe, Pf, Pi, Po, Ps, - S, Sc, Sk, Sm, So, Z, Zl, Zp, Zs, - Arabic, Armenian, Bengali, Bopomofo, Braille, Buginese, - Buhid, Canadian_Aboriginal, Cherokee, Common, Coptic, - Cypriot, Cyrillic, Deseret, Devanagari, Ethiopic, Georgian, - Glagolitic, Gothic, Greek, Gujarati, Gurmukhi, Han, Hangul, - Hanunoo, Hebrew, Hiragana, Inherited, Kannada, Katakana, - Kharoshthi, Khmer, Lao, Latin, Limbu, Linear_B, Malayalam, - Mongolian, Myanmar, New_Tai_Lue, Ogham, Old_Italic, Old_Persian, - Oriya, Osmanya, Runic, Shavian, Sinhala, Syloti_Nagri, Syriac, - Tagalog, Tagbanwa, Tai_Le, Tamil, Telugu, Thaana, Thai, Tibetan, - Tifinagh, Ugaritic, Yi + see UnicodeProps.txt + + + \R Linebreak + + Unicode: + (?>\x0D\x0A|[\x0A-\x0D\x{85}\x{2028}\x{2029}]) + + Not Unicode: + (?>\x0D\x0A|[\x0A-\x0D]) + + \X eXtended grapheme cluster + + Unicode: + (?>\P{M}\p{M}*) + + Not Unicode: + (?m:.) @@ -119,7 +133,7 @@ syntax: ONIG_SYNTAX_RUBY (default) ?? 1 or 0 times *? 0 or more times +? 1 or more times - {n,m}? at least n but not more than m times + {n,m}? at least n but not more than m times {n,}? at least n times {,n}? at least 0 but not more than n times (== {0,n}?) @@ -129,7 +143,8 @@ syntax: ONIG_SYNTAX_RUBY (default) *+ 0 or more times ++ 1 or more times - ({n,m}+, {n,}+, {n}+ are possessive op. in ONIG_SYNTAX_JAVA only) + ({n,m}+, {n,}+, {n}+ are possessive op. in ONIG_SYNTAX_JAVA and + ONIG_SYNTAX_PERL only) ex. /a*+/ === /(?>a*)/ @@ -143,7 +158,7 @@ syntax: ONIG_SYNTAX_RUBY (default) \A beginning of string \Z end of string, or before newline at the end \z end of string - \G matching start position + \G matching start position 6. Character class @@ -152,7 +167,7 @@ syntax: ONIG_SYNTAX_RUBY (default) x-y range from x to y [...] set (character class in character class) ..&&.. intersection (low precedence at the next of ^) - + ex. [a-w&&[^c-g]z] ==> ([a-w] AND ([^c-g] OR z)) ==> [abh-w] * If you want to use '[', '-', ']' as a normal character @@ -169,9 +184,9 @@ syntax: ONIG_SYNTAX_RUBY (default) blank \t, \x20 cntrl digit 0-9 - graph include all of multibyte encoded characters + graph \x21-\x7E and all of multibyte encoded characters lower - print include all of multibyte encoded characters + print \x20-\x7E and all of multibyte encoded characters punct space \t, \n, \v, \f, \r, \x20 upper @@ -189,7 +204,7 @@ syntax: ONIG_SYNTAX_RUBY (default) digit Decimal_Number graph [[:^space:]] && ^Control && ^Unassigned && ^Surrogate lower Lowercase_Letter - print [[:graph:]] | [[:space:]] + print [[:graph:]] | Space_Separator punct Connector_Punctuation | Dash_Punctuation | Close_Punctuation | Final_Punctuation | Initial_Punctuation | Other_Punctuation | Open_Punctuation @@ -201,16 +216,38 @@ syntax: ONIG_SYNTAX_RUBY (default) word Letter | Mark | Decimal_Number | Connector_Punctuation + It depends on ONIG_OPTION_ASCII_RANGE option and + ONIG_OPTION_POSIX_BRACKET_ALL_RANGE option that POSIX brackets + match non-ASCII char or not. + + 7. Extended groups (?#...) comment - (?imx-imx) option on/off + (?imxdau-imx) option on/off i: ignore case m: multi-line (dot(.) match newline) x: extended form - (?imx-imx:subexp) option on/off for subexp + + character set option (character range option) + d: Default (compatible with Ruby 1.9.3) + \w, \d and \s doesn't match non-ASCII characters. + \b, \B and POSIX brackets use the each encoding's + rules. + a: ASCII + ONIG_OPTION_ASCII_RANGE option is turned on. + \w, \d, \s and POSIX brackets doesn't match + non-ASCII characters. + \b and \B use the ASCII rules. + u: Unicode + ONIG_OPTION_ASCII_RANGE option is turned off. + \w (\W), \d (\D), \s (\S), \b (\B) and POSIX + brackets use the each encoding's rules. + + (?imxdau-imx:subexp) + option on/off for subexp (?:subexp) not captured group (subexp) captured group @@ -225,9 +262,13 @@ syntax: ONIG_SYNTAX_RUBY (default) alternatives only. ex. (?<=a|bc) is OK. (?<=aaa(?:b|cd)) is not allowed. - In negative-look-behind, captured group isn't allowed, + In negative-look-behind, captured group isn't allowed, but shy group(?:) is allowed. + \K keep + Another expression of look-behind. Keep the stuff left + of the \K, don't include it in the result. + (?>subexp) atomic group don't backtrack in subexp. @@ -241,6 +282,21 @@ syntax: ONIG_SYNTAX_RUBY (default) Assigning the same name as two or more subexps is allowed. In this case, a subexp call can not be performed although the back reference is possible. + (ONIG_SYNTAX_PERL: a subexp call is allowed in this case.) + + (?(cond)yes-subexp), (?(cond)yes-subexp|no-subexp) + conditional expression + Matches yes-subexp if (cond) yields a true value, matches + no-subexp otherwise. + Following (cond) can be used: + + (n) (n >= 1) + Checks if the numbered capturing group has matched + something. + + (), ('name') + Checks if a group with the given name has matched + something. 8. Back reference @@ -257,8 +313,10 @@ syntax: ONIG_SYNTAX_RUBY (default) a subexp with a large number is referred to preferentially. (When not matched, a group of the small number is referred to.) - * Back reference by group number is forbidden if named group is defined - in the pattern and ONIG_OPTION_CAPTURE_GROUP is not setted. + * Back reference by group number is forbidden if named group is defined + in the pattern and ONIG_OPTION_CAPTURE_GROUP is not set. + + * ONIG_SYNTAX_PERL: \g{n}, \g{-n} and \g{name} can also be used. back reference with nest level @@ -269,13 +327,17 @@ syntax: ONIG_SYNTAX_RUBY (default) \k (n >= 1) \k'n+level' (n >= 1) \k'n-level' (n >= 1) + \k<-n+level> (n >= 1) + \k<-n-level> (n >= 1) + \k'-n+level' (n >= 1) + \k'-n-level' (n >= 1) \k \k \k'name+level' \k'name-level' - Destinate relative nest level from back reference position. + Destinate relative nest level from back reference position. ex 1. @@ -302,21 +364,27 @@ syntax: ONIG_SYNTAX_RUBY (default) \g'name' call by group name \g call by group number (n >= 1) \g'n' call by group number (n >= 1) + \g<0> call the whole pattern recursively + \g'0' call the whole pattern recursively \g<-n> call by relative group number (n >= 1) \g'-n' call by relative group number (n >= 1) + \g<+n> call by relative group number (n >= 1) + \g'+n' call by relative group number (n >= 1) * left-most recursive call is not allowed. ex. (?a|\gb) => error (?a|b\gc) => OK * Call by group number is forbidden if named group is defined in the pattern - and ONIG_OPTION_CAPTURE_GROUP is not setted. + and ONIG_OPTION_CAPTURE_GROUP is not set. * If the option status of called group is different from calling position then the group's option is effective. ex. (?-i:\g)(?i:(?a)){0} match to "A" + * ONIG_SYNTAX_PERL: use (?&name), (?n), (?-n), (?+n), (?R) or (?0) instead. + 10. Captured group @@ -355,10 +423,13 @@ A-1. Syntax depend options + ONIG_SYNTAX_RUBY (?m): dot(.) match newline - + ONIG_SYNTAX_PERL and ONIG_SYNTAX_JAVA + + ONIG_SYNTAX_PERL, ONIG_SYNTAX_JAVA and ONIG_SYNTAX_PYTHON (?s): dot(.) match newline (?m): ^ match after newline, $ match before newline + + ONIG_SYNTAX_PERL + (?d), (?l): same as (?u) + A-2. Original extensions @@ -368,13 +439,15 @@ A-2. Original extensions + subexp call \g, \g -A-3. Lacked features compare with perl 5.8.0 +A-3. Lacked features compare with perl 5.14.0 - + \N{name} - + \l,\u,\L,\U, \X, \C + + \N{name}, \N{U+xxxx}, \N + + \l,\u,\L,\U, \C + + \v, \V, \h, \H, \o{xxx} + (?{code}) + (??{code}) - + (?(condition)yes-pat|no-pat) + + (?|...) + + (*VERB:ARG) * \Q...\E This is effective on ONIG_SYNTAX_PERL and ONIG_SYNTAX_JAVA. @@ -390,7 +463,7 @@ A-4. Differences with Japanized GNU regex(version 0.12) of Ruby 1.8 + add operations in character class. [], && ('[' must be escaped as an usual char in character class.) + add named group and subexp call. - + octal or hexadecimal number sequence can be treated as + + octal or hexadecimal number sequence can be treated as a multibyte code char in character class if multibyte encoding is specified. (ex. [\xa1\xa2], [\xa1\xa7-\xa4\xa1]) @@ -401,7 +474,7 @@ A-4. Differences with Japanized GNU regex(version 0.12) of Ruby 1.8 ex. (?:(?i)a|b) is interpreted as (?:(?i:a|b)), not (?:(?i:a)|b). + isolated option is not transparent to previous pattern. ex. a(?i)* is a syntax error pattern. - + allowed incompleted left brace as an usual string. + + allowed incomplete left brace as an usual string. ex. /{/, /({)/, /a{2,3/ etc... + negative POSIX bracket [:^xxxx:] is supported. + POSIX bracket [:ascii:] is added. @@ -411,7 +484,7 @@ A-4. Differences with Japanized GNU regex(version 0.12) of Ruby 1.8 ex. /\x61/i =~ "A" + In the range quantifier, the number of the minimum is omissible. /a{,n}/ == /a{0,n}/ - The simultanious abbreviation of the number of times of the minimum + The simultaneous abbreviation of the number of times of the minimum and the maximum is not allowed. (/a{,}/) + /a{n}?/ is not a non-greedy operator. /a{n}?/ == /(?:a{n})?/ diff --git a/OgreKit.framework/Versions/A/Resources/Documentation/OniGuruma/README b/OgreKit.framework/Versions/A/Resources/Documentation/OniGuruma/README index 8390afd050..52fc70e4f2 100644 --- a/OgreKit.framework/Versions/A/Resources/Documentation/OniGuruma/README +++ b/OgreKit.framework/Versions/A/Resources/Documentation/OniGuruma/README @@ -1,3 +1,55 @@ +README 2013/03/21 + +Onigmo (Oniguruma-mod) -- (C) K.Takata + +https://github.com/k-takata/Onigmo + +Onigmo is a regular expressions library forked from Oniguruma. +Some of new features introduced in Perl 5.10+ can be used. + +Some patches are merged from Ruby 2.0.0. + + +Main New features: + Regular Expressions (depends on the syntax): + \K, \R, \X, (?(cond)yes|no) + (?adlu), \g{name}, \g{n}, (?&name), (?n), (?R), (?0) + (?P...), (?P=name), (?P>name) + + API: + onig_search_gpos (for Perl-compatible \G) + + Encoding: + CP932 + + Syntax: + Python + + +New Source Files: + enc/cp932.c CP932 encoding. + enc/unicode/casefold.h Unicode case folding data. + enc/unicode/name2ctype.h Unicode properties data. + + onig.py onig.dll/libonig.so loader. + testpy.py test program. + + tool/CaseFolding.py generates casefold.h. + tool/convert-name2ctype.sh converts name2ctype.kwd to name2ctypes.h. + tool/enc-unicode.rb generates name2ctype.kwd. + + win32/makedef.py creates onig.def. + win32/onig.rc resource file for onig.dll. + + +ToDo: + * Reduce the size of Unicode Character Data. + * (?|...) + * Improve (?(cond)yes|no). (support look-ahead/behind assertions.) + + +Oniguruma's README follows: +====================================================================== README 2007/05/31 Oniguruma ---- (C) K.Kosako @@ -77,7 +129,7 @@ Usage See doc/API for Oniguruma API. If you want to disable UChar type (== unsigned char) definition - in oniguruma.h, define ONIG_ESCAPE_UCHAR_COLLISION and then + in oniguruma.h, define ONIG_ESCAPE_UCHAR_COLLISION and then include oniguruma.h. If you want to disable regex_t type definition in oniguruma.h, diff --git a/OgreKit.framework/Versions/A/Resources/Dutch.lproj/OgreAPFCLocalizable.strings b/OgreKit.framework/Versions/A/Resources/Dutch.lproj/OgreAPFCLocalizable.strings index 5fd0096056..2597397dcc 100644 Binary files a/OgreKit.framework/Versions/A/Resources/Dutch.lproj/OgreAPFCLocalizable.strings and b/OgreKit.framework/Versions/A/Resources/Dutch.lproj/OgreAPFCLocalizable.strings differ diff --git a/OgreKit.framework/Versions/A/Resources/Dutch.lproj/OgreTextFinderLocalizable.strings b/OgreKit.framework/Versions/A/Resources/Dutch.lproj/OgreTextFinderLocalizable.strings index 38affdce65..3fa1d634be 100644 Binary files a/OgreKit.framework/Versions/A/Resources/Dutch.lproj/OgreTextFinderLocalizable.strings and b/OgreKit.framework/Versions/A/Resources/Dutch.lproj/OgreTextFinderLocalizable.strings differ diff --git a/OgreKit.framework/Versions/A/Resources/English.lproj/InfoPlist.strings b/OgreKit.framework/Versions/A/Resources/English.lproj/InfoPlist.strings index c9040320d2..289bca076b 100644 Binary files a/OgreKit.framework/Versions/A/Resources/English.lproj/InfoPlist.strings and b/OgreKit.framework/Versions/A/Resources/English.lproj/InfoPlist.strings differ diff --git a/OgreKit.framework/Versions/A/Resources/English.lproj/OgreAPFCLocalizable.strings b/OgreKit.framework/Versions/A/Resources/English.lproj/OgreAPFCLocalizable.strings index 5fd0096056..2597397dcc 100644 Binary files a/OgreKit.framework/Versions/A/Resources/English.lproj/OgreAPFCLocalizable.strings and b/OgreKit.framework/Versions/A/Resources/English.lproj/OgreAPFCLocalizable.strings differ diff --git a/OgreKit.framework/Versions/A/Resources/English.lproj/OgreTextFinderLocalizable.strings b/OgreKit.framework/Versions/A/Resources/English.lproj/OgreTextFinderLocalizable.strings index 3e6c3f20fd..086082808d 100644 Binary files a/OgreKit.framework/Versions/A/Resources/English.lproj/OgreTextFinderLocalizable.strings and b/OgreKit.framework/Versions/A/Resources/English.lproj/OgreTextFinderLocalizable.strings differ diff --git a/OgreKit.framework/Versions/A/Resources/French.lproj/OgreAPFCLocalizable.strings b/OgreKit.framework/Versions/A/Resources/French.lproj/OgreAPFCLocalizable.strings index ea65297eef..f6ce2a7d32 100644 Binary files a/OgreKit.framework/Versions/A/Resources/French.lproj/OgreAPFCLocalizable.strings and b/OgreKit.framework/Versions/A/Resources/French.lproj/OgreAPFCLocalizable.strings differ diff --git a/OgreKit.framework/Versions/A/Resources/French.lproj/OgreTextFinderLocalizable.strings b/OgreKit.framework/Versions/A/Resources/French.lproj/OgreTextFinderLocalizable.strings index 61943ecdbf..16cd430c04 100644 Binary files a/OgreKit.framework/Versions/A/Resources/French.lproj/OgreTextFinderLocalizable.strings and b/OgreKit.framework/Versions/A/Resources/French.lproj/OgreTextFinderLocalizable.strings differ diff --git a/OgreKit.framework/Versions/A/Resources/German.lproj/OgreAPFCLocalizable.strings b/OgreKit.framework/Versions/A/Resources/German.lproj/OgreAPFCLocalizable.strings index 76b3a3e209..999c11cd98 100644 Binary files a/OgreKit.framework/Versions/A/Resources/German.lproj/OgreAPFCLocalizable.strings and b/OgreKit.framework/Versions/A/Resources/German.lproj/OgreAPFCLocalizable.strings differ diff --git a/OgreKit.framework/Versions/A/Resources/German.lproj/OgreTextFinderLocalizable.strings b/OgreKit.framework/Versions/A/Resources/German.lproj/OgreTextFinderLocalizable.strings index 79d34d6ca1..90856e1d23 100644 Binary files a/OgreKit.framework/Versions/A/Resources/German.lproj/OgreTextFinderLocalizable.strings and b/OgreKit.framework/Versions/A/Resources/German.lproj/OgreTextFinderLocalizable.strings differ diff --git a/OgreKit.framework/Versions/A/Resources/Info.plist b/OgreKit.framework/Versions/A/Resources/Info.plist index 8f0a9d3060..52ba37463e 100644 --- a/OgreKit.framework/Versions/A/Resources/Info.plist +++ b/OgreKit.framework/Versions/A/Resources/Info.plist @@ -2,6 +2,8 @@ + BuildMachineOSBuild + 13B42 CFBundleDevelopmentRegion English CFBundleExecutable @@ -16,5 +18,19 @@ OGKt CFBundleVersion 2.1.4 + DTCompiler + com.apple.compilers.llvm.clang.1_0 + DTPlatformBuild + 5A3005 + DTPlatformVersion + GM + DTSDKBuild + 13A595 + DTSDKName + macosx10.9 + DTXcode + 0502 + DTXcodeBuild + 5A3005 diff --git a/OgreKit.framework/Versions/A/Resources/Italian.lproj/OgreAPFCLocalizable.strings b/OgreKit.framework/Versions/A/Resources/Italian.lproj/OgreAPFCLocalizable.strings index 5fd0096056..2597397dcc 100644 Binary files a/OgreKit.framework/Versions/A/Resources/Italian.lproj/OgreAPFCLocalizable.strings and b/OgreKit.framework/Versions/A/Resources/Italian.lproj/OgreAPFCLocalizable.strings differ diff --git a/OgreKit.framework/Versions/A/Resources/Italian.lproj/OgreTextFinderLocalizable.strings b/OgreKit.framework/Versions/A/Resources/Italian.lproj/OgreTextFinderLocalizable.strings index 4b349184cd..8325995815 100644 Binary files a/OgreKit.framework/Versions/A/Resources/Italian.lproj/OgreTextFinderLocalizable.strings and b/OgreKit.framework/Versions/A/Resources/Italian.lproj/OgreTextFinderLocalizable.strings differ diff --git a/OgreKit.framework/Versions/A/Resources/Japanese.lproj/OgreAPFCLocalizable.strings b/OgreKit.framework/Versions/A/Resources/Japanese.lproj/OgreAPFCLocalizable.strings index 74ab6d2a33..a4f9a46351 100644 Binary files a/OgreKit.framework/Versions/A/Resources/Japanese.lproj/OgreAPFCLocalizable.strings and b/OgreKit.framework/Versions/A/Resources/Japanese.lproj/OgreAPFCLocalizable.strings differ diff --git a/OgreKit.framework/Versions/A/Resources/Japanese.lproj/OgreTextFinderLocalizable.strings b/OgreKit.framework/Versions/A/Resources/Japanese.lproj/OgreTextFinderLocalizable.strings index 0b4981c456..d519bcc0b2 100644 Binary files a/OgreKit.framework/Versions/A/Resources/Japanese.lproj/OgreTextFinderLocalizable.strings and b/OgreKit.framework/Versions/A/Resources/Japanese.lproj/OgreTextFinderLocalizable.strings differ diff --git a/OgreKit.framework/Versions/A/Resources/Portuguese.lproj/OgreAPFCLocalizable.strings b/OgreKit.framework/Versions/A/Resources/Portuguese.lproj/OgreAPFCLocalizable.strings index 5fd0096056..2597397dcc 100644 Binary files a/OgreKit.framework/Versions/A/Resources/Portuguese.lproj/OgreAPFCLocalizable.strings and b/OgreKit.framework/Versions/A/Resources/Portuguese.lproj/OgreAPFCLocalizable.strings differ diff --git a/OgreKit.framework/Versions/A/Resources/Portuguese.lproj/OgreTextFinderLocalizable.strings b/OgreKit.framework/Versions/A/Resources/Portuguese.lproj/OgreTextFinderLocalizable.strings index 1b2902cf02..ab94d4418d 100644 Binary files a/OgreKit.framework/Versions/A/Resources/Portuguese.lproj/OgreTextFinderLocalizable.strings and b/OgreKit.framework/Versions/A/Resources/Portuguese.lproj/OgreTextFinderLocalizable.strings differ diff --git a/OgreKit.framework/Versions/A/Resources/Romanian.lproj/OgreAPFCLocalizable.strings b/OgreKit.framework/Versions/A/Resources/Romanian.lproj/OgreAPFCLocalizable.strings index 5fd0096056..2597397dcc 100644 Binary files a/OgreKit.framework/Versions/A/Resources/Romanian.lproj/OgreAPFCLocalizable.strings and b/OgreKit.framework/Versions/A/Resources/Romanian.lproj/OgreAPFCLocalizable.strings differ diff --git a/OgreKit.framework/Versions/A/Resources/Romanian.lproj/OgreTextFinderLocalizable.strings b/OgreKit.framework/Versions/A/Resources/Romanian.lproj/OgreTextFinderLocalizable.strings index ab0d639e69..3e5ced362f 100644 Binary files a/OgreKit.framework/Versions/A/Resources/Romanian.lproj/OgreTextFinderLocalizable.strings and b/OgreKit.framework/Versions/A/Resources/Romanian.lproj/OgreTextFinderLocalizable.strings differ diff --git a/OgreKit.framework/Versions/A/Resources/Spanish.lproj/OgreAPFCLocalizable.strings b/OgreKit.framework/Versions/A/Resources/Spanish.lproj/OgreAPFCLocalizable.strings index a1dee4825d..9349cbd675 100644 Binary files a/OgreKit.framework/Versions/A/Resources/Spanish.lproj/OgreAPFCLocalizable.strings and b/OgreKit.framework/Versions/A/Resources/Spanish.lproj/OgreAPFCLocalizable.strings differ diff --git a/OgreKit.framework/Versions/A/Resources/Spanish.lproj/OgreTextFinderLocalizable.strings b/OgreKit.framework/Versions/A/Resources/Spanish.lproj/OgreTextFinderLocalizable.strings index b90dc37b06..9a0d614b14 100644 Binary files a/OgreKit.framework/Versions/A/Resources/Spanish.lproj/OgreTextFinderLocalizable.strings and b/OgreKit.framework/Versions/A/Resources/Spanish.lproj/OgreTextFinderLocalizable.strings differ diff --git a/OgreKit/.gitignore b/OgreKit/.gitignore index f4e84f9a73..510431e9bb 100644 --- a/OgreKit/.gitignore +++ b/OgreKit/.gitignore @@ -1,4 +1,23 @@ +*.mode1 +*.mode1v3 +*.mode2 +*.mode2v3 +*.mode1v3 +*.pbxuser +*.perspective +*.perspectivev3 +*.pyc +*~.nib/ +build/* +RegularExpression/oniguruma/intel +RegularExpression/oniguruma/universal +RegularExpression/oniguruma/x86_64 +*.xcworkspace* +*.xcuserdata* +.DS_Store? +ehthumbs.db +Icon? +Thumbs.db + + .DS_Store -*.xcodeproj/* -!*.pbxproj -build/ diff --git a/OgreKit/FindPanel/Controllers/OgreAdvancedFindPanelController.m b/OgreKit/FindPanel/Controllers/OgreAdvancedFindPanelController.m index c6db8fb4a7..648ffd26ec 100755 --- a/OgreKit/FindPanel/Controllers/OgreAdvancedFindPanelController.m +++ b/OgreKit/FindPanel/Controllers/OgreAdvancedFindPanelController.m @@ -1697,7 +1697,7 @@ - (BOOL)textView:(NSTextView *)textView doCommandBySelector:(SEL)aSelector } else { [findNextButton setAction:@selector(findNext:)]; } - + [findNextButton performClick:self]; // Find Next [findNextButton setAction:@selector(findNext:)]; //[self findNextAndOrderOut:self]; diff --git a/OgreKit/FindPanel/OgreTextFindThread.m b/OgreKit/FindPanel/OgreTextFindThread.m index de536728d5..5db3d21c68 100755 --- a/OgreKit/FindPanel/OgreTextFindThread.m +++ b/OgreKit/FindPanel/OgreTextFindThread.m @@ -19,7 +19,7 @@ @implementation OgreTextFindThread /* Creating and initializing */ -- (id)initWithComponent:(NSObject *)aComponent; +- (id)initWithComponent:(NSObject *)aComponent; { #ifdef DEBUG_OGRE_FIND_PANEL NSLog(@"-initWithComponent: of %@", [self className]); diff --git a/OgreKit/FindPanel/Resources/Dutch.lproj/OgreAPFCLocalizable.strings b/OgreKit/FindPanel/Resources/Dutch.lproj/OgreAPFCLocalizable.strings index 5fd0096056..8f15fa0925 100755 Binary files a/OgreKit/FindPanel/Resources/Dutch.lproj/OgreAPFCLocalizable.strings and b/OgreKit/FindPanel/Resources/Dutch.lproj/OgreAPFCLocalizable.strings differ diff --git a/OgreKit/FindPanel/Resources/Dutch.lproj/OgreTextFinderLocalizable.strings b/OgreKit/FindPanel/Resources/Dutch.lproj/OgreTextFinderLocalizable.strings index 38affdce65..798f4acde3 100755 Binary files a/OgreKit/FindPanel/Resources/Dutch.lproj/OgreTextFinderLocalizable.strings and b/OgreKit/FindPanel/Resources/Dutch.lproj/OgreTextFinderLocalizable.strings differ diff --git a/OgreKit/FindPanel/Resources/English.lproj/OgreAPFCLocalizable.strings b/OgreKit/FindPanel/Resources/English.lproj/OgreAPFCLocalizable.strings index 5fd0096056..8f15fa0925 100755 Binary files a/OgreKit/FindPanel/Resources/English.lproj/OgreAPFCLocalizable.strings and b/OgreKit/FindPanel/Resources/English.lproj/OgreAPFCLocalizable.strings differ diff --git a/OgreKit/FindPanel/Resources/English.lproj/OgreTextFinderLocalizable.strings b/OgreKit/FindPanel/Resources/English.lproj/OgreTextFinderLocalizable.strings index 3e6c3f20fd..41d79c984d 100755 Binary files a/OgreKit/FindPanel/Resources/English.lproj/OgreTextFinderLocalizable.strings and b/OgreKit/FindPanel/Resources/English.lproj/OgreTextFinderLocalizable.strings differ diff --git a/OgreKit/FindPanel/Resources/French.lproj/OgreAPFCLocalizable.strings b/OgreKit/FindPanel/Resources/French.lproj/OgreAPFCLocalizable.strings index ea65297eef..cf30b38b9b 100755 Binary files a/OgreKit/FindPanel/Resources/French.lproj/OgreAPFCLocalizable.strings and b/OgreKit/FindPanel/Resources/French.lproj/OgreAPFCLocalizable.strings differ diff --git a/OgreKit/FindPanel/Resources/French.lproj/OgreTextFinderLocalizable.strings b/OgreKit/FindPanel/Resources/French.lproj/OgreTextFinderLocalizable.strings index 61943ecdbf..9b17ae711b 100755 Binary files a/OgreKit/FindPanel/Resources/French.lproj/OgreTextFinderLocalizable.strings and b/OgreKit/FindPanel/Resources/French.lproj/OgreTextFinderLocalizable.strings differ diff --git a/OgreKit/FindPanel/Resources/German.lproj/OgreAPFCLocalizable.strings b/OgreKit/FindPanel/Resources/German.lproj/OgreAPFCLocalizable.strings index 76b3a3e209..2750d99356 100755 Binary files a/OgreKit/FindPanel/Resources/German.lproj/OgreAPFCLocalizable.strings and b/OgreKit/FindPanel/Resources/German.lproj/OgreAPFCLocalizable.strings differ diff --git a/OgreKit/FindPanel/Resources/German.lproj/OgreTextFinderLocalizable.strings b/OgreKit/FindPanel/Resources/German.lproj/OgreTextFinderLocalizable.strings index 79d34d6ca1..a235a45c72 100755 Binary files a/OgreKit/FindPanel/Resources/German.lproj/OgreTextFinderLocalizable.strings and b/OgreKit/FindPanel/Resources/German.lproj/OgreTextFinderLocalizable.strings differ diff --git a/OgreKit/FindPanel/Resources/Italian.lproj/OgreAPFCLocalizable.strings b/OgreKit/FindPanel/Resources/Italian.lproj/OgreAPFCLocalizable.strings index 5fd0096056..8f15fa0925 100755 Binary files a/OgreKit/FindPanel/Resources/Italian.lproj/OgreAPFCLocalizable.strings and b/OgreKit/FindPanel/Resources/Italian.lproj/OgreAPFCLocalizable.strings differ diff --git a/OgreKit/FindPanel/Resources/Italian.lproj/OgreTextFinderLocalizable.strings b/OgreKit/FindPanel/Resources/Italian.lproj/OgreTextFinderLocalizable.strings index 4b349184cd..1e8a2ef4a4 100755 Binary files a/OgreKit/FindPanel/Resources/Italian.lproj/OgreTextFinderLocalizable.strings and b/OgreKit/FindPanel/Resources/Italian.lproj/OgreTextFinderLocalizable.strings differ diff --git a/OgreKit/FindPanel/Resources/Japanese.lproj/OgreAPFCLocalizable.strings b/OgreKit/FindPanel/Resources/Japanese.lproj/OgreAPFCLocalizable.strings index 74ab6d2a33..867d13293f 100755 Binary files a/OgreKit/FindPanel/Resources/Japanese.lproj/OgreAPFCLocalizable.strings and b/OgreKit/FindPanel/Resources/Japanese.lproj/OgreAPFCLocalizable.strings differ diff --git a/OgreKit/FindPanel/Resources/Japanese.lproj/OgreTextFinderLocalizable.strings b/OgreKit/FindPanel/Resources/Japanese.lproj/OgreTextFinderLocalizable.strings index 0b4981c456..1c390b17e4 100755 Binary files a/OgreKit/FindPanel/Resources/Japanese.lproj/OgreTextFinderLocalizable.strings and b/OgreKit/FindPanel/Resources/Japanese.lproj/OgreTextFinderLocalizable.strings differ diff --git a/OgreKit/FindPanel/Resources/Portuguese.lproj/OgreAPFCLocalizable.strings b/OgreKit/FindPanel/Resources/Portuguese.lproj/OgreAPFCLocalizable.strings index 5fd0096056..8f15fa0925 100755 Binary files a/OgreKit/FindPanel/Resources/Portuguese.lproj/OgreAPFCLocalizable.strings and b/OgreKit/FindPanel/Resources/Portuguese.lproj/OgreAPFCLocalizable.strings differ diff --git a/OgreKit/FindPanel/Resources/Portuguese.lproj/OgreTextFinderLocalizable.strings b/OgreKit/FindPanel/Resources/Portuguese.lproj/OgreTextFinderLocalizable.strings index 1b2902cf02..8d5a623eb8 100755 Binary files a/OgreKit/FindPanel/Resources/Portuguese.lproj/OgreTextFinderLocalizable.strings and b/OgreKit/FindPanel/Resources/Portuguese.lproj/OgreTextFinderLocalizable.strings differ diff --git a/OgreKit/FindPanel/Resources/Romanian.lproj/OgreAPFCLocalizable.strings b/OgreKit/FindPanel/Resources/Romanian.lproj/OgreAPFCLocalizable.strings index 5fd0096056..8f15fa0925 100755 Binary files a/OgreKit/FindPanel/Resources/Romanian.lproj/OgreAPFCLocalizable.strings and b/OgreKit/FindPanel/Resources/Romanian.lproj/OgreAPFCLocalizable.strings differ diff --git a/OgreKit/FindPanel/Resources/Romanian.lproj/OgreTextFinderLocalizable.strings b/OgreKit/FindPanel/Resources/Romanian.lproj/OgreTextFinderLocalizable.strings index ab0d639e69..b93c3222a1 100755 Binary files a/OgreKit/FindPanel/Resources/Romanian.lproj/OgreTextFinderLocalizable.strings and b/OgreKit/FindPanel/Resources/Romanian.lproj/OgreTextFinderLocalizable.strings differ diff --git a/OgreKit/FindPanel/Resources/Spanish.lproj/OgreAPFCLocalizable.strings b/OgreKit/FindPanel/Resources/Spanish.lproj/OgreAPFCLocalizable.strings index a1dee4825d..b394d2dbb6 100755 Binary files a/OgreKit/FindPanel/Resources/Spanish.lproj/OgreAPFCLocalizable.strings and b/OgreKit/FindPanel/Resources/Spanish.lproj/OgreAPFCLocalizable.strings differ diff --git a/OgreKit/FindPanel/Resources/Spanish.lproj/OgreTextFinderLocalizable.strings b/OgreKit/FindPanel/Resources/Spanish.lproj/OgreTextFinderLocalizable.strings index b90dc37b06..489638b16e 100755 Binary files a/OgreKit/FindPanel/Resources/Spanish.lproj/OgreTextFinderLocalizable.strings and b/OgreKit/FindPanel/Resources/Spanish.lproj/OgreTextFinderLocalizable.strings differ diff --git a/OgreKit/FindPanelTest/MyFileWrapper.h b/OgreKit/FindPanelTest/MyFileWrapper.h index 1431236c80..cbd3f34393 100644 --- a/OgreKit/FindPanelTest/MyFileWrapper.h +++ b/OgreKit/FindPanelTest/MyFileWrapper.h @@ -16,7 +16,8 @@ @interface MyFileWrapper : NSObject { - NSString *_name, *_path; + NSString *_name; + NSString *_path; NSMutableString *_info; NSImage *_icon; BOOL _isDirectory; diff --git a/OgreKit/FindPanelTest/MyOutlineDocument.m b/OgreKit/FindPanelTest/MyOutlineDocument.m index 64128a2493..d23bb341a0 100755 --- a/OgreKit/FindPanelTest/MyOutlineDocument.m +++ b/OgreKit/FindPanelTest/MyOutlineDocument.m @@ -52,11 +52,12 @@ - (void)windowControllerDidLoadNib:(NSWindowController*)controller openPanel = [NSOpenPanel openPanel]; [openPanel setCanChooseDirectories:YES]; - result = [openPanel runModalForDirectory:NSHomeDirectory() file:nil types:nil]; + [openPanel setDirectoryURL:[NSURL fileURLWithPath:NSHomeDirectory() isDirectory:YES]]; + result = [openPanel runModal]; if(result == NSOKButton) { - NSString *path = [openPanel filename]; + NSURL *url = [openPanel URL]; //NSLog(@"%@", path); - _fileWrapper = [[MyFileWrapper alloc] initWithName:[path lastPathComponent] path:path parent:self]; + _fileWrapper = [[MyFileWrapper alloc] initWithName:[url lastPathComponent] path:[url absoluteString] parent:self]; //NSLog(@"%@", [_fileWrapper description]); } [myOutlineView reloadData]; diff --git "a/OgreKit/Icon\r" "b/OgreKit/Icon\r" deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/OgreKit/OgreKit.xcodeproj/isao.mode1 b/OgreKit/OgreKit.xcodeproj/isao.mode1 deleted file mode 100644 index 7ac3f8f6da..0000000000 --- a/OgreKit/OgreKit.xcodeproj/isao.mode1 +++ /dev/null @@ -1,1396 +0,0 @@ - - - - - ActivePerspectiveName - Project - AllowedModules - - - BundleLoadPath - - MaxInstances - n - Module - PBXSmartGroupTreeModule - Name - Groups and Files Outline View - - - BundleLoadPath - - MaxInstances - n - Module - PBXNavigatorGroup - Name - Editor - - - BundleLoadPath - - MaxInstances - n - Module - XCTaskListModule - Name - Task List - - - BundleLoadPath - - MaxInstances - n - Module - XCDetailModule - Name - File and Smart Group Detail Viewer - - - BundleLoadPath - - MaxInstances - 1 - Module - PBXBuildResultsModule - Name - Detailed Build Results Viewer - - - BundleLoadPath - - MaxInstances - 1 - Module - PBXProjectFindModule - Name - Project Batch Find Tool - - - BundleLoadPath - - MaxInstances - n - Module - PBXRunSessionModule - Name - Run Log - - - BundleLoadPath - - MaxInstances - n - Module - PBXBookmarksModule - Name - Bookmarks Tool - - - BundleLoadPath - - MaxInstances - n - Module - PBXClassBrowserModule - Name - Class Browser - - - BundleLoadPath - - MaxInstances - n - Module - PBXCVSModule - Name - Source Code Control Tool - - - BundleLoadPath - - MaxInstances - n - Module - PBXDebugBreakpointsModule - Name - Debug Breakpoints Tool - - - BundleLoadPath - - MaxInstances - n - Module - XCDockableInspector - Name - Inspector - - - BundleLoadPath - - MaxInstances - n - Module - PBXOpenQuicklyModule - Name - Open Quickly Tool - - - BundleLoadPath - - MaxInstances - 1 - Module - PBXDebugSessionModule - Name - Debugger - - - BundleLoadPath - - MaxInstances - 1 - Module - PBXDebugCLIModule - Name - Debug Console - - - Description - DefaultDescriptionKey - DockingSystemVisible - - Extension - mode1 - FavBarConfig - - PBXProjectModuleGUID - 4DC40B9E091509DC0029A2A6 - XCBarModuleItemNames - - XCBarModuleItems - - - FirstTimeWindowDisplayed - - Identifier - com.apple.perspectives.project.mode1 - MajorVersion - 31 - MinorVersion - 1 - Name - Default - Notifications - - - XCObserverAutoDisconnectKey - - XCObserverDefintionKey - - XCObserverFactoryKey - XCPerspectivesSpecificationIdentifier - XCObserverGUIDKey - XCObserverProjectIdentifier - XCObserverNotificationKey - PBXStatusBuildStateMessageNotification - XCObserverTargetKey - XCMainBuildResultsModuleGUID - XCObserverTriggerKey - awakenModuleWithObserver: - XCObserverValidationKey - - - - OpenEditors - - PerspectiveWidths - - -1 - -1 - - Perspectives - - - ChosenToolbarItems - - active-target-popup - active-buildstyle-popup - action - NSToolbarFlexibleSpaceItem - buildOrClean - build-and-runOrDebug - com.apple.ide.PBXToolbarStopButton - get-info - toggle-editor - NSToolbarFlexibleSpaceItem - com.apple.pbx.toolbar.searchfield - - ControllerClassBaseName - - IconName - WindowOfProjectWithEditor - Identifier - perspective.project - IsVertical - - Layout - - - ContentConfiguration - - PBXBottomSmartGroupGIDs - - 1C37FBAC04509CD000000102 - 1C37FAAC04509CD000000102 - 1C08E77C0454961000C914BD - 1C37FABC05509CD000000102 - 1C37FABC05539CD112110102 - E2644B35053B69B200211256 - 1C37FABC04509CD000100104 - 1CC0EA4004350EF90044410B - 1CC0EA4004350EF90041110B - - PBXProjectModuleGUID - 1CE0B1FE06471DED0097A5F4 - PBXProjectModuleLabel - Files - PBXProjectStructureProvided - yes - PBXSmartGroupTreeModuleColumnData - - PBXSmartGroupTreeModuleColumnWidthsKey - - 242 - - PBXSmartGroupTreeModuleColumnsKey_v4 - - MainColumn - - - PBXSmartGroupTreeModuleOutlineStateKey_v7 - - PBXSmartGroupTreeModuleOutlineStateExpansionKey - - 0867D691FE84028FC02AAC07 - 4DC40D4909150CEA0029A2A6 - 4DC40D4A09150CEA0029A2A6 - 4DC40DFA09150CF00029A2A6 - 4DC4108009150D640029A2A6 - 1C37FBAC04509CD000000102 - 1C37FABC05509CD000000102 - - PBXSmartGroupTreeModuleOutlineStateSelectionKey - - - 5 - 2 - 1 - 0 - - - PBXSmartGroupTreeModuleOutlineStateVisibleRectKey - {{0, 0}, {242, 788}} - - PBXTopSmartGroupGIDs - - XCIncludePerspectivesSwitch - - XCSharingToken - com.apple.Xcode.GFSharingToken - - GeometryConfiguration - - Frame - {{0, 0}, {259, 806}} - GroupTreeTableConfiguration - - MainColumn - 242 - - RubberWindowFrame - 397 31 1026 847 0 0 1440 878 - - Module - PBXSmartGroupTreeModule - Proportion - 259pt - - - Dock - - - BecomeActive - - ContentConfiguration - - PBXProjectModuleGUID - 1CE0B20306471E060097A5F4 - PBXProjectModuleLabel - History.txt - PBXSplitModuleInNavigatorKey - - Split0 - - PBXProjectModuleGUID - 1CE0B20406471E060097A5F4 - PBXProjectModuleLabel - History.txt - _historyCapacity - 0 - bookmark - 4D98A62F0CAFAB3200C62593 - history - - 4DF530C80915225B00475575 - 4DF530D90915232000475575 - 4DF530EA0915250700475575 - 4D6EA0BA096ACAB90010762A - 4D6EA0F9096AD0BB0010762A - 4DD4315709835B4E008256B3 - 4DD4317D09838E84008256B3 - 4DD4318709838FC8008256B3 - 4D82DCD009B9ECF8007F03B0 - 4D9DBE4109BABE63003DD4A8 - 4DD71FF20CAFA39500E236C1 - 4DD71FF50CAFA39500E236C1 - 4DD71FF60CAFA39500E236C1 - 4D98A6240CAFA97A00C62593 - - prevStack - - 4DF530C90915225B00475575 - 4DF530CA0915225B00475575 - 4DF530CB0915225B00475575 - 4DF530DB0915232000475575 - 4DF530F70915259D00475575 - 4D6EA061096ABBF80010762A - 4D6EA0C0096ACAB90010762A - 4D6EA0C3096ACAB90010762A - 4D6EA0FB096AD0BB0010762A - 4DD4312D098350B7008256B3 - 4DD4315D09835B4E008256B3 - 4D9DBE4509BABE63003DD4A8 - - - SplitCount - 1 - - StatusBarVisibility - - - GeometryConfiguration - - Frame - {{0, 0}, {762, 801}} - RubberWindowFrame - 397 31 1026 847 0 0 1440 878 - - Module - PBXNavigatorGroup - Proportion - 801pt - - - ContentConfiguration - - PBXProjectModuleGUID - 1CE0B20506471E060097A5F4 - PBXProjectModuleLabel - 詳細 - - GeometryConfiguration - - Frame - {{0, 806}, {762, 0}} - RubberWindowFrame - 397 31 1026 847 0 0 1440 878 - - Module - XCDetailModule - Proportion - 0pt - - - Proportion - 762pt - - - Name - Project - ServiceClasses - - XCModuleDock - PBXSmartGroupTreeModule - XCModuleDock - PBXNavigatorGroup - XCDetailModule - - TableOfContents - - 4D98A6300CAFAB3200C62593 - 1CE0B1FE06471DED0097A5F4 - 4D98A6310CAFAB3200C62593 - 1CE0B20306471E060097A5F4 - 1CE0B20506471E060097A5F4 - - ToolbarConfiguration - xcode.toolbar.config.default - - - ControllerClassBaseName - - IconName - WindowOfProject - Identifier - perspective.morph - IsVertical - 0 - Layout - - - BecomeActive - 1 - ContentConfiguration - - PBXBottomSmartGroupGIDs - - 1C37FBAC04509CD000000102 - 1C37FAAC04509CD000000102 - 1C08E77C0454961000C914BD - 1C37FABC05509CD000000102 - 1C37FABC05539CD112110102 - E2644B35053B69B200211256 - 1C37FABC04509CD000100104 - 1CC0EA4004350EF90044410B - 1CC0EA4004350EF90041110B - - PBXProjectModuleGUID - 11E0B1FE06471DED0097A5F4 - PBXProjectModuleLabel - Files - PBXProjectStructureProvided - yes - PBXSmartGroupTreeModuleColumnData - - PBXSmartGroupTreeModuleColumnWidthsKey - - 186 - - PBXSmartGroupTreeModuleColumnsKey_v4 - - MainColumn - - - PBXSmartGroupTreeModuleOutlineStateKey_v7 - - PBXSmartGroupTreeModuleOutlineStateExpansionKey - - 29B97314FDCFA39411CA2CEA - 1C37FABC05509CD000000102 - - PBXSmartGroupTreeModuleOutlineStateSelectionKey - - - 0 - - - PBXSmartGroupTreeModuleOutlineStateVisibleRectKey - {{0, 0}, {186, 337}} - - PBXTopSmartGroupGIDs - - XCIncludePerspectivesSwitch - 1 - XCSharingToken - com.apple.Xcode.GFSharingToken - - GeometryConfiguration - - Frame - {{0, 0}, {203, 355}} - GroupTreeTableConfiguration - - MainColumn - 186 - - RubberWindowFrame - 373 269 690 397 0 0 1440 878 - - Module - PBXSmartGroupTreeModule - Proportion - 100% - - - Name - Morph - PreferredWidth - 300 - ServiceClasses - - XCModuleDock - PBXSmartGroupTreeModule - - TableOfContents - - 11E0B1FE06471DED0097A5F4 - - ToolbarConfiguration - xcode.toolbar.config.default.short - - - PerspectivesBarVisible - - ShelfIsVisible - - SourceDescription - file at '/System/Library/PrivateFrameworks/DevToolsInterface.framework/Versions/A/Resources/XCPerspectivesSpecificationMode1.xcperspec' - StatusbarIsVisible - - TimeStamp - 212839218.56316099 - ToolbarDisplayMode - 2 - ToolbarIsVisible - - ToolbarSizeMode - 2 - Type - Perspectives - UpdateMessage - The Default Workspace in this version of Xcode now includes support to hide and show the detail view (what has been referred to as the "Metro-Morph" feature). You must discard your current Default Workspace settings and update to the latest Default Workspace in order to gain this feature. Do you wish to update to the latest Workspace defaults for project '%@'? - WindowJustification - 5 - WindowOrderList - - 4D98A6220CAFA97500C62593 - /Users/isao/Documents/Development/MySoftware/OgreKit/2_1_3_oniguruma_5_9_0_bug_fix/OgreKit_2_1_3/OgreKit.xcodeproj - - WindowString - 397 31 1026 847 0 0 1440 878 - WindowTools - - - FirstTimeWindowDisplayed - - Identifier - windowTool.build - IsVertical - - Layout - - - Dock - - - ContentConfiguration - - PBXProjectModuleGUID - 1CD0528F0623707200166675 - PBXProjectModuleLabel - - StatusBarVisibility - - - GeometryConfiguration - - Frame - {{0, 0}, {726, 362}} - RubberWindowFrame - 30 32 726 846 0 0 1440 878 - - Module - PBXNavigatorGroup - Proportion - 362pt - - - BecomeActive - - ContentConfiguration - - PBXBuildLogShowsTranscriptDefaultKey - {{0, 120}, {726, 318}} - PBXProjectModuleGUID - XCMainBuildResultsModuleGUID - PBXProjectModuleLabel - ビルド - XCBuildResultsTrigger_Collapse - 1021 - XCBuildResultsTrigger_Open - 1010 - - GeometryConfiguration - - Frame - {{0, 367}, {726, 438}} - RubberWindowFrame - 30 32 726 846 0 0 1440 878 - - Module - PBXBuildResultsModule - Proportion - 438pt - - - Proportion - 805pt - - - Name - Build Results - ServiceClasses - - PBXBuildResultsModule - - StatusbarIsVisible - - TableOfContents - - 4D98A6220CAFA97500C62593 - 4D98A62E0CAFAB2F00C62593 - 1CD0528F0623707200166675 - XCMainBuildResultsModuleGUID - - ToolbarConfiguration - xcode.toolbar.config.build - WindowString - 30 32 726 846 0 0 1440 878 - WindowToolGUID - 4D98A6220CAFA97500C62593 - WindowToolIsVisible - - - - Identifier - windowTool.debugger - Layout - - - Dock - - - ContentConfiguration - - Debugger - - HorizontalSplitView - - _collapsingFrameDimension - 0.0 - _indexOfCollapsedView - 0 - _percentageOfCollapsedView - 0.0 - isCollapsed - yes - sizes - - {{0, 0}, {317, 164}} - {{317, 0}, {377, 164}} - - - VerticalSplitView - - _collapsingFrameDimension - 0.0 - _indexOfCollapsedView - 0 - _percentageOfCollapsedView - 0.0 - isCollapsed - yes - sizes - - {{0, 0}, {694, 164}} - {{0, 164}, {694, 216}} - - - - LauncherConfigVersion - 8 - PBXProjectModuleGUID - 1C162984064C10D400B95A72 - PBXProjectModuleLabel - Debug - GLUTExamples (Underwater) - - GeometryConfiguration - - DebugConsoleDrawerSize - {100, 120} - DebugConsoleVisible - None - DebugConsoleWindowFrame - {{200, 200}, {500, 300}} - DebugSTDIOWindowFrame - {{200, 200}, {500, 300}} - Frame - {{0, 0}, {694, 380}} - RubberWindowFrame - 321 238 694 422 0 0 1440 878 - - Module - PBXDebugSessionModule - Proportion - 100% - - - Proportion - 100% - - - Name - Debugger - ServiceClasses - - PBXDebugSessionModule - - StatusbarIsVisible - 1 - TableOfContents - - 1CD10A99069EF8BA00B06720 - 1C0AD2AB069F1E9B00FABCE6 - 1C162984064C10D400B95A72 - 1C0AD2AC069F1E9B00FABCE6 - - ToolbarConfiguration - xcode.toolbar.config.debug - WindowString - 321 238 694 422 0 0 1440 878 - WindowToolGUID - 1CD10A99069EF8BA00B06720 - WindowToolIsVisible - 0 - - - Identifier - windowTool.find - Layout - - - Dock - - - Dock - - - ContentConfiguration - - PBXProjectModuleGUID - 1CDD528C0622207200134675 - PBXProjectModuleLabel - <No Editor> - PBXSplitModuleInNavigatorKey - - Split0 - - PBXProjectModuleGUID - 1CD0528D0623707200166675 - - SplitCount - 1 - - StatusBarVisibility - 1 - - GeometryConfiguration - - Frame - {{0, 0}, {781, 167}} - RubberWindowFrame - 62 385 781 470 0 0 1440 878 - - Module - PBXNavigatorGroup - Proportion - 781pt - - - Proportion - 50% - - - BecomeActive - 1 - ContentConfiguration - - PBXProjectModuleGUID - 1CD0528E0623707200166675 - PBXProjectModuleLabel - Project Find - - GeometryConfiguration - - Frame - {{8, 0}, {773, 254}} - RubberWindowFrame - 62 385 781 470 0 0 1440 878 - - Module - PBXProjectFindModule - Proportion - 50% - - - Proportion - 428pt - - - Name - Project Find - ServiceClasses - - PBXProjectFindModule - - StatusbarIsVisible - 1 - TableOfContents - - 1C530D57069F1CE1000CFCEE - 1C530D58069F1CE1000CFCEE - 1C530D59069F1CE1000CFCEE - 1CDD528C0622207200134675 - 1C530D5A069F1CE1000CFCEE - 1CE0B1FE06471DED0097A5F4 - 1CD0528E0623707200166675 - - WindowString - 62 385 781 470 0 0 1440 878 - WindowToolGUID - 1C530D57069F1CE1000CFCEE - WindowToolIsVisible - 0 - - - Identifier - MENUSEPARATOR - - - Identifier - windowTool.debuggerConsole - Layout - - - Dock - - - BecomeActive - 1 - ContentConfiguration - - PBXProjectModuleGUID - 1C78EAAC065D492600B07095 - PBXProjectModuleLabel - Debugger Console - - GeometryConfiguration - - Frame - {{0, 0}, {440, 358}} - RubberWindowFrame - 650 41 440 400 0 0 1280 1002 - - Module - PBXDebugCLIModule - Proportion - 358pt - - - Proportion - 358pt - - - Name - Debugger Console - ServiceClasses - - PBXDebugCLIModule - - StatusbarIsVisible - 1 - TableOfContents - - 1C78EAAD065D492600B07095 - 1C78EAAE065D492600B07095 - 1C78EAAC065D492600B07095 - - WindowString - 650 41 440 400 0 0 1280 1002 - - - FirstTimeWindowDisplayed - - Identifier - windowTool.run - IsVertical - - Layout - - - Dock - - - ContentConfiguration - - LauncherConfigVersion - 3 - PBXProjectModuleGUID - 1CD0528B0623707200166675 - PBXProjectModuleLabel - 実行 - Runner - - HorizontalSplitView - - _collapsingFrameDimension - 0.0 - _indexOfCollapsedView - 0 - _percentageOfCollapsedView - 0.0 - isCollapsed - yes - sizes - - {{0, 0}, {366, 168}} - {{0, 173}, {366, 270}} - - - VerticalSplitView - - _collapsingFrameDimension - 0.0 - _indexOfCollapsedView - 0 - _percentageOfCollapsedView - 0.0 - isCollapsed - yes - sizes - - {{0, 0}, {406, 443}} - {{411, 0}, {517, 443}} - - - - - GeometryConfiguration - - Frame - {{0, 0}, {459, 159}} - RubberWindowFrame - 63 650 459 200 0 0 1440 878 - - Module - PBXRunSessionModule - Proportion - 159pt - - - Proportion - 159pt - - - Name - Run Log - ServiceClasses - - PBXRunSessionModule - - StatusbarIsVisible - - TableOfContents - - 1C0AD2B3069F1EA900FABCE6 - 4D98A61C0CAFA95E00C62593 - 1CD0528B0623707200166675 - 4D98A61D0CAFA95E00C62593 - - ToolbarConfiguration - xcode.toolbar.config.run - WindowString - 63 650 459 200 0 0 1440 878 - WindowToolGUID - 1C0AD2B3069F1EA900FABCE6 - WindowToolIsVisible - - - - Identifier - windowTool.scm - Layout - - - Dock - - - ContentConfiguration - - PBXProjectModuleGUID - 1C78EAB2065D492600B07095 - PBXProjectModuleLabel - <No Editor> - PBXSplitModuleInNavigatorKey - - Split0 - - PBXProjectModuleGUID - 1C78EAB3065D492600B07095 - - SplitCount - 1 - - StatusBarVisibility - 1 - - GeometryConfiguration - - Frame - {{0, 0}, {452, 0}} - RubberWindowFrame - 743 379 452 308 0 0 1280 1002 - - Module - PBXNavigatorGroup - Proportion - 0pt - - - BecomeActive - 1 - ContentConfiguration - - PBXProjectModuleGUID - 1CD052920623707200166675 - PBXProjectModuleLabel - SCM - - GeometryConfiguration - - ConsoleFrame - {{0, 259}, {452, 0}} - Frame - {{0, 7}, {452, 259}} - RubberWindowFrame - 743 379 452 308 0 0 1280 1002 - TableConfiguration - - Status - 30 - FileName - 199 - Path - 197.09500122070312 - - TableFrame - {{0, 0}, {452, 250}} - - Module - PBXCVSModule - Proportion - 262pt - - - Proportion - 266pt - - - Name - SCM - ServiceClasses - - PBXCVSModule - - StatusbarIsVisible - 1 - TableOfContents - - 1C78EAB4065D492600B07095 - 1C78EAB5065D492600B07095 - 1C78EAB2065D492600B07095 - 1CD052920623707200166675 - - ToolbarConfiguration - xcode.toolbar.config.scm - WindowString - 743 379 452 308 0 0 1280 1002 - - - Identifier - windowTool.breakpoints - IsVertical - 0 - Layout - - - Dock - - - BecomeActive - 1 - ContentConfiguration - - PBXBottomSmartGroupGIDs - - 1C77FABC04509CD000000102 - - PBXProjectModuleGUID - 1CE0B1FE06471DED0097A5F4 - PBXProjectModuleLabel - Files - PBXProjectStructureProvided - no - PBXSmartGroupTreeModuleColumnData - - PBXSmartGroupTreeModuleColumnWidthsKey - - 168 - - PBXSmartGroupTreeModuleColumnsKey_v4 - - MainColumn - - - PBXSmartGroupTreeModuleOutlineStateKey_v7 - - PBXSmartGroupTreeModuleOutlineStateExpansionKey - - 1C77FABC04509CD000000102 - - PBXSmartGroupTreeModuleOutlineStateSelectionKey - - - 0 - - - PBXSmartGroupTreeModuleOutlineStateVisibleRectKey - {{0, 0}, {168, 350}} - - PBXTopSmartGroupGIDs - - XCIncludePerspectivesSwitch - 0 - - GeometryConfiguration - - Frame - {{0, 0}, {185, 368}} - GroupTreeTableConfiguration - - MainColumn - 168 - - RubberWindowFrame - 315 424 744 409 0 0 1440 878 - - Module - PBXSmartGroupTreeModule - Proportion - 185pt - - - ContentConfiguration - - PBXProjectModuleGUID - 1CA1AED706398EBD00589147 - PBXProjectModuleLabel - Detail - - GeometryConfiguration - - Frame - {{190, 0}, {554, 368}} - RubberWindowFrame - 315 424 744 409 0 0 1440 878 - - Module - XCDetailModule - Proportion - 554pt - - - Proportion - 368pt - - - MajorVersion - 2 - MinorVersion - 0 - Name - Breakpoints - ServiceClasses - - PBXSmartGroupTreeModule - XCDetailModule - - StatusbarIsVisible - 1 - TableOfContents - - 1CDDB66807F98D9800BB5817 - 1CDDB66907F98D9800BB5817 - 1CE0B1FE06471DED0097A5F4 - 1CA1AED706398EBD00589147 - - ToolbarConfiguration - xcode.toolbar.config.breakpoints - WindowString - 315 424 744 409 0 0 1440 878 - WindowToolGUID - 1CDDB66807F98D9800BB5817 - WindowToolIsVisible - 1 - - - Identifier - windowTool.debugAnimator - Layout - - - Dock - - - Module - PBXNavigatorGroup - Proportion - 100% - - - Proportion - 100% - - - Name - Debug Visualizer - ServiceClasses - - PBXNavigatorGroup - - StatusbarIsVisible - 1 - ToolbarConfiguration - xcode.toolbar.config.debugAnimator - WindowString - 100 100 700 500 0 0 1280 1002 - - - Identifier - windowTool.bookmarks - Layout - - - Dock - - - Module - PBXBookmarksModule - Proportion - 100% - - - Proportion - 100% - - - Name - Bookmarks - ServiceClasses - - PBXBookmarksModule - - StatusbarIsVisible - 0 - WindowString - 538 42 401 187 0 0 1280 1002 - - - Identifier - windowTool.classBrowser - Layout - - - Dock - - - BecomeActive - 1 - ContentConfiguration - - OptionsSetName - Hierarchy, all classes - PBXProjectModuleGUID - 1CA6456E063B45B4001379D8 - PBXProjectModuleLabel - Class Browser - NSObject - - GeometryConfiguration - - ClassesFrame - {{0, 0}, {374, 96}} - ClassesTreeTableConfiguration - - PBXClassNameColumnIdentifier - 208 - PBXClassBookColumnIdentifier - 22 - - Frame - {{0, 0}, {630, 331}} - MembersFrame - {{0, 105}, {374, 395}} - MembersTreeTableConfiguration - - PBXMemberTypeIconColumnIdentifier - 22 - PBXMemberNameColumnIdentifier - 216 - PBXMemberTypeColumnIdentifier - 97 - PBXMemberBookColumnIdentifier - 22 - - PBXModuleWindowStatusBarHidden2 - 1 - RubberWindowFrame - 385 179 630 352 0 0 1440 878 - - Module - PBXClassBrowserModule - Proportion - 332pt - - - Proportion - 332pt - - - Name - Class Browser - ServiceClasses - - PBXClassBrowserModule - - StatusbarIsVisible - 0 - TableOfContents - - 1C0AD2AF069F1E9B00FABCE6 - 1C0AD2B0069F1E9B00FABCE6 - 1CA6456E063B45B4001379D8 - - ToolbarConfiguration - xcode.toolbar.config.classbrowser - WindowString - 385 179 630 352 0 0 1440 878 - WindowToolGUID - 1C0AD2AF069F1E9B00FABCE6 - WindowToolIsVisible - 0 - - - - diff --git a/OgreKit/OgreKit.xcodeproj/isao.mode1v3 b/OgreKit/OgreKit.xcodeproj/isao.mode1v3 deleted file mode 100644 index c816194a62..0000000000 --- a/OgreKit/OgreKit.xcodeproj/isao.mode1v3 +++ /dev/null @@ -1,1491 +0,0 @@ - - - - - ActivePerspectiveName - Project - AllowedModules - - - BundleLoadPath - - MaxInstances - n - Module - PBXSmartGroupTreeModule - Name - Groups and Files Outline View - - - BundleLoadPath - - MaxInstances - n - Module - PBXNavigatorGroup - Name - Editor - - - BundleLoadPath - - MaxInstances - n - Module - XCTaskListModule - Name - Task List - - - BundleLoadPath - - MaxInstances - n - Module - XCDetailModule - Name - File and Smart Group Detail Viewer - - - BundleLoadPath - - MaxInstances - 1 - Module - PBXBuildResultsModule - Name - Detailed Build Results Viewer - - - BundleLoadPath - - MaxInstances - 1 - Module - PBXProjectFindModule - Name - Project Batch Find Tool - - - BundleLoadPath - - MaxInstances - n - Module - XCProjectFormatConflictsModule - Name - Project Format Conflicts List - - - BundleLoadPath - - MaxInstances - n - Module - PBXBookmarksModule - Name - Bookmarks Tool - - - BundleLoadPath - - MaxInstances - n - Module - PBXClassBrowserModule - Name - Class Browser - - - BundleLoadPath - - MaxInstances - n - Module - PBXCVSModule - Name - Source Code Control Tool - - - BundleLoadPath - - MaxInstances - n - Module - PBXDebugBreakpointsModule - Name - Debug Breakpoints Tool - - - BundleLoadPath - - MaxInstances - n - Module - XCDockableInspector - Name - Inspector - - - BundleLoadPath - - MaxInstances - n - Module - PBXOpenQuicklyModule - Name - Open Quickly Tool - - - BundleLoadPath - - MaxInstances - 1 - Module - PBXDebugSessionModule - Name - Debugger - - - BundleLoadPath - - MaxInstances - 1 - Module - PBXDebugCLIModule - Name - Debug Console - - - BundleLoadPath - - MaxInstances - n - Module - XCSnapshotModule - Name - Snapshots Tool - - - Description - DefaultDescriptionKey - DockingSystemVisible - - Extension - mode1v3 - FavBarConfig - - PBXProjectModuleGUID - 4D4F1FE41142132300CD9C2F - XCBarModuleItemNames - - XCBarModuleItems - - - FirstTimeWindowDisplayed - - Identifier - com.apple.perspectives.project.mode1v3 - MajorVersion - 33 - MinorVersion - 0 - Name - Default - Notifications - - OpenEditors - - PerspectiveWidths - - -1 - -1 - - Perspectives - - - ChosenToolbarItems - - active-combo-popup - active-executable-popup - action - NSToolbarFlexibleSpaceItem - debugger-enable-breakpoints - buildOrClean - build-and-go - go - clean - com.apple.ide.PBXToolbarStopButton - get-info - NSToolbarFlexibleSpaceItem - servicesModuleRefactoring - servicesModulebuild - com.apple.pbx.toolbar.searchfield - - ControllerClassBaseName - - IconName - WindowOfProjectWithEditor - Identifier - perspective.project - IsVertical - - Layout - - - BecomeActive - - ContentConfiguration - - PBXBottomSmartGroupGIDs - - 1C37FBAC04509CD000000102 - 1C37FAAC04509CD000000102 - 1C37FABC05509CD000000102 - 1C37FABC05539CD112110102 - E2644B35053B69B200211256 - 1C37FABC04509CD000100104 - 1CC0EA4004350EF90044410B - 1CC0EA4004350EF90041110B - - PBXProjectModuleGUID - 1CE0B1FE06471DED0097A5F4 - PBXProjectModuleLabel - Files - PBXProjectStructureProvided - yes - PBXSmartGroupTreeModuleColumnData - - PBXSmartGroupTreeModuleColumnWidthsKey - - 299 - - PBXSmartGroupTreeModuleColumnsKey_v4 - - MainColumn - - - PBXSmartGroupTreeModuleOutlineStateKey_v7 - - PBXSmartGroupTreeModuleOutlineStateExpansionKey - - 0867D691FE84028FC02AAC07 - 4DC40D4909150CEA0029A2A6 - 1C37FBAC04509CD000000102 - - PBXSmartGroupTreeModuleOutlineStateSelectionKey - - - 26 - 18 - - - PBXSmartGroupTreeModuleOutlineStateVisibleRectKey - {{0, 0}, {299, 788}} - - PBXTopSmartGroupGIDs - - XCIncludePerspectivesSwitch - - XCSharingToken - com.apple.Xcode.GFSharingToken - - GeometryConfiguration - - Frame - {{0, 0}, {316, 806}} - GroupTreeTableConfiguration - - MainColumn - 299 - - RubberWindowFrame - 96 31 1311 847 0 0 1440 878 - - Module - PBXSmartGroupTreeModule - Proportion - 316pt - - - Dock - - - ContentConfiguration - - PBXProjectModuleGUID - 1CE0B20306471E060097A5F4 - PBXProjectModuleLabel - OGRegularExpression.h - PBXSplitModuleInNavigatorKey - - Split0 - - PBXProjectModuleGUID - 1CE0B20406471E060097A5F4 - PBXProjectModuleLabel - OGRegularExpression.h - _historyCapacity - 0 - bookmark - 4D5350691142C3B300FCA5A6 - history - - 4D6EA0BA096ACAB90010762A - 4D6EA0F9096AD0BB0010762A - 4DD4317D09838E84008256B3 - 4D82DCD009B9ECF8007F03B0 - 4D4F20381142271900CD9C2F - 4D4F20391142271900CD9C2F - 4D4F209A114239EF00CD9C2F - 4D4F209B114239EF00CD9C2F - 4D4F209C114239EF00CD9C2F - 4D4F20CB114241FB00CD9C2F - 4D4F20CC114241FB00CD9C2F - 4D4F20CD114241FB00CD9C2F - 4D4F211B11424E9400CD9C2F - 4DDD662211426D7A003D4FD7 - 4DDD662511426D7A003D4FD7 - 4DDD662611426D7A003D4FD7 - 4DA73FBC11428A1700E28DA7 - 4DA7401F114299DF00E28DA7 - 4DA74020114299DF00E28DA7 - 4DA74021114299DF00E28DA7 - 4DA74022114299DF00E28DA7 - 4DA74023114299DF00E28DA7 - 4DA74024114299DF00E28DA7 - 4DA74025114299DF00E28DA7 - 4DA74026114299DF00E28DA7 - 4DA74027114299DF00E28DA7 - 4DA74028114299DF00E28DA7 - 4DA74029114299DF00E28DA7 - 4DA7402A114299DF00E28DA7 - 4DA7402B114299DF00E28DA7 - 4DA7402C114299DF00E28DA7 - 4DA7402D114299DF00E28DA7 - 4DA7402E114299DF00E28DA7 - 4DA74030114299DF00E28DA7 - 4DA74031114299DF00E28DA7 - 4DA74033114299DF00E28DA7 - 4DA74034114299DF00E28DA7 - 4DA74035114299DF00E28DA7 - 4DA74036114299DF00E28DA7 - 4DA74037114299DF00E28DA7 - 4DA74038114299DF00E28DA7 - 4DA74039114299DF00E28DA7 - 4DA7404C11429ABD00E28DA7 - 4DA7405811429BAD00E28DA7 - 4DA7405911429BAD00E28DA7 - 4DA7405A11429BAD00E28DA7 - 4DA740751142A18100E28DA7 - 4DA740761142A18100E28DA7 - 4DA740E51142A96900E28DA7 - 4DA740E61142A96900E28DA7 - 4DA740EC1142AF2A00E28DA7 - 4DA740ED1142AF2A00E28DA7 - 4DA740EE1142AF2A00E28DA7 - 4DA740EF1142AF2A00E28DA7 - 4DA741511142B38300E28DA7 - 4DA741841142B6F100E28DA7 - 4DA741861142B6F100E28DA7 - 4DA741871142B6F100E28DA7 - 4DA741881142B6F100E28DA7 - 4DA7419D1142B77100E28DA7 - 4DA741BB1142BB2700E28DA7 - 4DA741BD1142BB2700E28DA7 - 4DA741BF1142BB2700E28DA7 - 4D4FC2961142BFDC0097043F - 4D4FC2971142BFDC0097043F - 4D4FC2981142BFDC0097043F - 4D4FC2991142BFDC0097043F - 4D4FC29A1142BFDC0097043F - 4D4FC29B1142BFDC0097043F - 4D4FC29C1142BFDC0097043F - - - SplitCount - 1 - - StatusBarVisibility - - - GeometryConfiguration - - Frame - {{0, 0}, {990, 555}} - RubberWindowFrame - 96 31 1311 847 0 0 1440 878 - - Module - PBXNavigatorGroup - Proportion - 555pt - - - ContentConfiguration - - PBXProjectModuleGUID - 1CE0B20506471E060097A5F4 - PBXProjectModuleLabel - 詳細 - - GeometryConfiguration - - Frame - {{0, 560}, {990, 246}} - RubberWindowFrame - 96 31 1311 847 0 0 1440 878 - - Module - XCDetailModule - Proportion - 246pt - - - Proportion - 990pt - - - Name - Project - ServiceClasses - - XCModuleDock - PBXSmartGroupTreeModule - XCModuleDock - PBXNavigatorGroup - XCDetailModule - - TableOfContents - - 4D53506A1142C3B300FCA5A6 - 1CE0B1FE06471DED0097A5F4 - 4D53506B1142C3B300FCA5A6 - 1CE0B20306471E060097A5F4 - 1CE0B20506471E060097A5F4 - - ToolbarConfigUserDefaultsMinorVersion - 2 - ToolbarConfiguration - xcode.toolbar.config.defaultV3 - - - ControllerClassBaseName - - IconName - WindowOfProject - Identifier - perspective.morph - IsVertical - - Layout - - - BecomeActive - 1 - ContentConfiguration - - PBXBottomSmartGroupGIDs - - 1C37FBAC04509CD000000102 - 1C37FAAC04509CD000000102 - 1C08E77C0454961000C914BD - 1C37FABC05509CD000000102 - 1C37FABC05539CD112110102 - E2644B35053B69B200211256 - 1C37FABC04509CD000100104 - 1CC0EA4004350EF90044410B - 1CC0EA4004350EF90041110B - - PBXProjectModuleGUID - 11E0B1FE06471DED0097A5F4 - PBXProjectModuleLabel - Files - PBXProjectStructureProvided - yes - PBXSmartGroupTreeModuleColumnData - - PBXSmartGroupTreeModuleColumnWidthsKey - - 186 - - PBXSmartGroupTreeModuleColumnsKey_v4 - - MainColumn - - - PBXSmartGroupTreeModuleOutlineStateKey_v7 - - PBXSmartGroupTreeModuleOutlineStateExpansionKey - - 29B97314FDCFA39411CA2CEA - 1C37FABC05509CD000000102 - - PBXSmartGroupTreeModuleOutlineStateSelectionKey - - - 0 - - - PBXSmartGroupTreeModuleOutlineStateVisibleRectKey - {{0, 0}, {186, 337}} - - PBXTopSmartGroupGIDs - - XCIncludePerspectivesSwitch - 1 - XCSharingToken - com.apple.Xcode.GFSharingToken - - GeometryConfiguration - - Frame - {{0, 0}, {203, 355}} - GroupTreeTableConfiguration - - MainColumn - 186 - - RubberWindowFrame - 373 269 690 397 0 0 1440 878 - - Module - PBXSmartGroupTreeModule - Proportion - 100% - - - Name - Morph - PreferredWidth - 300 - ServiceClasses - - XCModuleDock - PBXSmartGroupTreeModule - - TableOfContents - - 11E0B1FE06471DED0097A5F4 - - ToolbarConfiguration - xcode.toolbar.config.default.shortV3 - - - PerspectivesBarVisible - - ShelfIsVisible - - StatusbarIsVisible - - TimeStamp - 0.0 - ToolbarConfigUserDefaultsMinorVersion - 2 - ToolbarDisplayMode - 2 - ToolbarIsVisible - - ToolbarSizeMode - 2 - Type - Perspectives - UpdateMessage - The Default Workspace in this version of Xcode now includes support to hide and show the detail view (what has been referred to as the "Metro-Morph" feature). You must discard your current Default Workspace settings and update to the latest Default Workspace in order to gain this feature. Do you wish to update to the latest Workspace defaults for project '%@'? - WindowJustification - 5 - WindowOrderList - - 4D4F1FE81142132300CD9C2F - /Users/isao/Documents/Development/MySoftware/OgreKit/2_1_4_oniguruma_5_9_2_x86_64_GC/OgreKit_2_1_4/OgreKit.xcodeproj - - WindowString - 96 31 1311 847 0 0 1440 878 - WindowToolsV3 - - - FirstTimeWindowDisplayed - - Identifier - windowTool.build - IsVertical - - Layout - - - Dock - - - ContentConfiguration - - PBXProjectModuleGUID - 1CD0528F0623707200166675 - PBXProjectModuleLabel - - StatusBarVisibility - - - GeometryConfiguration - - Frame - {{0, 0}, {893, 269}} - RubberWindowFrame - 14 32 893 846 0 0 1440 878 - - Module - PBXNavigatorGroup - Proportion - 269pt - - - ContentConfiguration - - PBXProjectModuleGUID - XCMainBuildResultsModuleGUID - PBXProjectModuleLabel - ビルド結果 - XCBuildResultsTrigger_Collapse - 1021 - XCBuildResultsTrigger_Open - 1011 - - GeometryConfiguration - - Frame - {{0, 274}, {893, 531}} - RubberWindowFrame - 14 32 893 846 0 0 1440 878 - - Module - PBXBuildResultsModule - Proportion - 531pt - - - Proportion - 805pt - - - Name - Build Results - ServiceClasses - - PBXBuildResultsModule - - StatusbarIsVisible - - TableOfContents - - 4D4F1FE81142132300CD9C2F - 4D53506C1142C3B300FCA5A6 - 1CD0528F0623707200166675 - XCMainBuildResultsModuleGUID - - ToolbarConfiguration - xcode.toolbar.config.buildV3 - WindowContentMinSize - 486 300 - WindowString - 14 32 893 846 0 0 1440 878 - WindowToolGUID - 4D4F1FE81142132300CD9C2F - WindowToolIsVisible - - - - FirstTimeWindowDisplayed - - Identifier - windowTool.debugger - IsVertical - - Layout - - - Dock - - - ContentConfiguration - - Debugger - - HorizontalSplitView - - _collapsingFrameDimension - 0.0 - _indexOfCollapsedView - 0 - _percentageOfCollapsedView - 0.0 - isCollapsed - yes - sizes - - {{0, 0}, {532, 413}} - {{532, 0}, {748, 413}} - - - VerticalSplitView - - _collapsingFrameDimension - 0.0 - _indexOfCollapsedView - 0 - _percentageOfCollapsedView - 0.0 - isCollapsed - yes - sizes - - {{0, 0}, {1280, 413}} - {{0, 413}, {1280, 392}} - - - - LauncherConfigVersion - 8 - PBXProjectModuleGUID - 1C162984064C10D400B95A72 - PBXProjectModuleLabel - Debug - GLUTExamples (Underwater) - - GeometryConfiguration - - DebugConsoleVisible - None - DebugConsoleWindowFrame - {{200, 200}, {500, 300}} - DebugSTDIOWindowFrame - {{200, 200}, {500, 300}} - Frame - {{0, 0}, {1280, 805}} - PBXDebugSessionStackFrameViewKey - - DebugVariablesTableConfiguration - - Name - 215 - Value - 85 - Summary - 423 - - Frame - {{532, 0}, {748, 413}} - RubberWindowFrame - 62 32 1280 846 0 0 1440 878 - - RubberWindowFrame - 62 32 1280 846 0 0 1440 878 - - Module - PBXDebugSessionModule - Proportion - 805pt - - - Proportion - 805pt - - - Name - Debugger - ServiceClasses - - PBXDebugSessionModule - - StatusbarIsVisible - - TableOfContents - - 1CD10A99069EF8BA00B06720 - 4D4FC2871142BECC0097043F - 1C162984064C10D400B95A72 - 4D4FC2881142BECC0097043F - 4D4FC2891142BECC0097043F - 4D4FC28A1142BECC0097043F - 4D4FC28B1142BECC0097043F - 4D4FC28C1142BECC0097043F - - ToolbarConfiguration - xcode.toolbar.config.debugV3 - WindowString - 62 32 1280 846 0 0 1440 878 - WindowToolGUID - 1CD10A99069EF8BA00B06720 - WindowToolIsVisible - - - - FirstTimeWindowDisplayed - - Identifier - windowTool.find - IsVertical - - Layout - - - Dock - - - Dock - - - ContentConfiguration - - PBXProjectModuleGUID - 1CDD528C0622207200134675 - PBXProjectModuleLabel - OgreAttachableWindowAcceptor.m - StatusBarVisibility - - - GeometryConfiguration - - Frame - {{0, 0}, {902, 299}} - RubberWindowFrame - 336 38 902 840 0 0 1440 878 - - Module - PBXNavigatorGroup - Proportion - 902pt - - - Proportion - 299pt - - - BecomeActive - - ContentConfiguration - - PBXProjectModuleGUID - 1CD0528E0623707200166675 - PBXProjectModuleLabel - プロジェクトの検索 - - GeometryConfiguration - - Frame - {{0, 304}, {902, 495}} - RubberWindowFrame - 336 38 902 840 0 0 1440 878 - - Module - PBXProjectFindModule - Proportion - 495pt - - - Proportion - 799pt - - - Name - Project Find - ServiceClasses - - PBXProjectFindModule - - StatusbarIsVisible - - TableOfContents - - 1C530D57069F1CE1000CFCEE - 4DA73FCB11428A1700E28DA7 - 4DA73FCC11428A1700E28DA7 - 1CDD528C0622207200134675 - 1CD0528E0623707200166675 - - WindowString - 336 38 902 840 0 0 1440 878 - WindowToolGUID - 1C530D57069F1CE1000CFCEE - WindowToolIsVisible - - - - FirstTimeWindowDisplayed - - Identifier - MENUSEPARATOR - - - FirstTimeWindowDisplayed - - Identifier - windowTool.debuggerConsole - IsVertical - - Layout - - - Dock - - - BecomeActive - - ContentConfiguration - - PBXProjectModuleGUID - 1C78EAAC065D492600B07095 - PBXProjectModuleLabel - Debugger Console - - GeometryConfiguration - - Frame - {{0, 0}, {855, 781}} - RubberWindowFrame - 16 56 855 822 0 0 1440 878 - - Module - PBXDebugCLIModule - Proportion - 781pt - - - Proportion - 781pt - - - Name - Debugger Console - ServiceClasses - - PBXDebugCLIModule - - StatusbarIsVisible - - TableOfContents - - 1C78EAAD065D492600B07095 - 4D4FC28D1142BECC0097043F - 1C78EAAC065D492600B07095 - - ToolbarConfiguration - xcode.toolbar.config.consoleV3 - WindowString - 16 56 855 822 0 0 1440 878 - WindowToolGUID - 1C78EAAD065D492600B07095 - WindowToolIsVisible - - - - Identifier - windowTool.snapshots - Layout - - - Dock - - - Module - XCSnapshotModule - Proportion - 100% - - - Proportion - 100% - - - Name - Snapshots - ServiceClasses - - XCSnapshotModule - - StatusbarIsVisible - Yes - ToolbarConfiguration - xcode.toolbar.config.snapshots - WindowString - 315 824 300 550 0 0 1440 878 - WindowToolIsVisible - Yes - - - FirstTimeWindowDisplayed - - Identifier - windowTool.scm - Layout - - - Dock - - - ContentConfiguration - - PBXProjectModuleGUID - 1C78EAB2065D492600B07095 - PBXProjectModuleLabel - <No Editor> - PBXSplitModuleInNavigatorKey - - Split0 - - PBXProjectModuleGUID - 1C78EAB3065D492600B07095 - - SplitCount - 1 - - StatusBarVisibility - 1 - - GeometryConfiguration - - Frame - {{0, 0}, {452, 0}} - RubberWindowFrame - 743 379 452 308 0 0 1280 1002 - - Module - PBXNavigatorGroup - Proportion - 0pt - - - BecomeActive - 1 - ContentConfiguration - - PBXProjectModuleGUID - 1CD052920623707200166675 - PBXProjectModuleLabel - SCM - - GeometryConfiguration - - ConsoleFrame - {{0, 259}, {452, 0}} - Frame - {{0, 7}, {452, 259}} - RubberWindowFrame - 743 379 452 308 0 0 1280 1002 - TableConfiguration - - Status - 30 - FileName - 199 - Path - 197.09500122070312 - - TableFrame - {{0, 0}, {452, 250}} - - Module - PBXCVSModule - Proportion - 262pt - - - Proportion - 266pt - - - Name - SCM - ServiceClasses - - PBXCVSModule - - StatusbarIsVisible - - TableOfContents - - 1C78EAB4065D492600B07095 - 1C78EAB5065D492600B07095 - 1C78EAB2065D492600B07095 - 1CD052920623707200166675 - - ToolbarConfiguration - xcode.toolbar.config.scm - WindowString - 743 379 452 308 0 0 1280 1002 - - - FirstTimeWindowDisplayed - - Identifier - windowTool.breakpoints - IsVertical - - Layout - - - Dock - - - BecomeActive - 1 - ContentConfiguration - - PBXBottomSmartGroupGIDs - - 1C77FABC04509CD000000102 - - PBXProjectModuleGUID - 1CE0B1FE06471DED0097A5F4 - PBXProjectModuleLabel - Files - PBXProjectStructureProvided - no - PBXSmartGroupTreeModuleColumnData - - PBXSmartGroupTreeModuleColumnWidthsKey - - 168 - - PBXSmartGroupTreeModuleColumnsKey_v4 - - MainColumn - - - PBXSmartGroupTreeModuleOutlineStateKey_v7 - - PBXSmartGroupTreeModuleOutlineStateExpansionKey - - 1C77FABC04509CD000000102 - - PBXSmartGroupTreeModuleOutlineStateSelectionKey - - - 0 - - - PBXSmartGroupTreeModuleOutlineStateVisibleRectKey - {{0, 0}, {168, 350}} - - PBXTopSmartGroupGIDs - - XCIncludePerspectivesSwitch - 0 - - GeometryConfiguration - - Frame - {{0, 0}, {185, 368}} - GroupTreeTableConfiguration - - MainColumn - 168 - - RubberWindowFrame - 315 424 744 409 0 0 1440 878 - - Module - PBXSmartGroupTreeModule - Proportion - 185pt - - - ContentConfiguration - - PBXProjectModuleGUID - 1CA1AED706398EBD00589147 - PBXProjectModuleLabel - Detail - - GeometryConfiguration - - Frame - {{190, 0}, {554, 368}} - RubberWindowFrame - 315 424 744 409 0 0 1440 878 - - Module - XCDetailModule - Proportion - 554pt - - - Proportion - 368pt - - - MajorVersion - 3 - MinorVersion - 0 - Name - Breakpoints - ServiceClasses - - PBXSmartGroupTreeModule - XCDetailModule - - StatusbarIsVisible - - TableOfContents - - 1CDDB66807F98D9800BB5817 - 1CDDB66907F98D9800BB5817 - 1CE0B1FE06471DED0097A5F4 - 1CA1AED706398EBD00589147 - - ToolbarConfiguration - xcode.toolbar.config.breakpointsV3 - WindowString - 315 424 744 409 0 0 1440 878 - WindowToolGUID - 1CDDB66807F98D9800BB5817 - WindowToolIsVisible - - - - FirstTimeWindowDisplayed - - Identifier - windowTool.debugAnimator - Layout - - - Dock - - - Module - PBXNavigatorGroup - Proportion - 100% - - - Proportion - 100% - - - Name - Debug Visualizer - ServiceClasses - - PBXNavigatorGroup - - StatusbarIsVisible - - ToolbarConfiguration - xcode.toolbar.config.debugAnimatorV3 - WindowString - 100 100 700 500 0 0 1280 1002 - - - FirstTimeWindowDisplayed - - Identifier - windowTool.bookmarks - Layout - - - Dock - - - Module - PBXBookmarksModule - Proportion - 100% - - - Proportion - 100% - - - Name - Bookmarks - ServiceClasses - - PBXBookmarksModule - - StatusbarIsVisible - - WindowString - 538 42 401 187 0 0 1280 1002 - - - Identifier - windowTool.projectFormatConflicts - Layout - - - Dock - - - Module - XCProjectFormatConflictsModule - Proportion - 100% - - - Proportion - 100% - - - Name - Project Format Conflicts - ServiceClasses - - XCProjectFormatConflictsModule - - StatusbarIsVisible - - WindowContentMinSize - 450 300 - WindowString - 50 850 472 307 0 0 1440 877 - - - FirstTimeWindowDisplayed - - Identifier - windowTool.classBrowser - Layout - - - Dock - - - BecomeActive - 1 - ContentConfiguration - - OptionsSetName - Hierarchy, all classes - PBXProjectModuleGUID - 1CA6456E063B45B4001379D8 - PBXProjectModuleLabel - Class Browser - NSObject - - GeometryConfiguration - - ClassesFrame - {{0, 0}, {374, 96}} - ClassesTreeTableConfiguration - - PBXClassNameColumnIdentifier - 208 - PBXClassBookColumnIdentifier - 22 - - Frame - {{0, 0}, {630, 331}} - MembersFrame - {{0, 105}, {374, 395}} - MembersTreeTableConfiguration - - PBXMemberTypeIconColumnIdentifier - 22 - PBXMemberNameColumnIdentifier - 216 - PBXMemberTypeColumnIdentifier - 97 - PBXMemberBookColumnIdentifier - 22 - - PBXModuleWindowStatusBarHidden2 - 1 - RubberWindowFrame - 385 179 630 352 0 0 1440 878 - - Module - PBXClassBrowserModule - Proportion - 332pt - - - Proportion - 332pt - - - Name - Class Browser - ServiceClasses - - PBXClassBrowserModule - - StatusbarIsVisible - - TableOfContents - - 1C0AD2AF069F1E9B00FABCE6 - 1C0AD2B0069F1E9B00FABCE6 - 1CA6456E063B45B4001379D8 - - ToolbarConfiguration - xcode.toolbar.config.classbrowser - WindowString - 385 179 630 352 0 0 1440 878 - WindowToolGUID - 1C0AD2AF069F1E9B00FABCE6 - WindowToolIsVisible - - - - FirstTimeWindowDisplayed - - Identifier - windowTool.refactoring - IncludeInToolsMenu - - IsVertical - - Layout - - - Dock - - - ContentConfiguration - - PBXProjectModuleGUID - 4DA740D01142A72400E28DA7 - - GeometryConfiguration - - Frame - {{0, 0}, {766, 670}} - RubberWindowFrame - 49 144 766 711 0 0 1440 878 - XCRefactoringSplitViewLowerHeight - 300 - XCRefactoringSplitViewTotalHeight - 610 - - Module - XCRefactoringModule - Proportion - 670pt - - - Proportion - 670pt - - - Name - Refactoring - ServiceClasses - - XCRefactoringModule - - StatusbarIsVisible - - TableOfContents - - 4DA740D11142A72400E28DA7 - 4DA740D21142A72400E28DA7 - 4DA740D01142A72400E28DA7 - - WindowString - 49 144 766 711 0 0 1440 878 - WindowToolGUID - 4DA740D11142A72400E28DA7 - WindowToolIsVisible - - - - - diff --git a/OgreKit/OgreKit.xcodeproj/isao.pbxuser b/OgreKit/OgreKit.xcodeproj/isao.pbxuser deleted file mode 100644 index 7a470a1f23..0000000000 --- a/OgreKit/OgreKit.xcodeproj/isao.pbxuser +++ /dev/null @@ -1,1994 +0,0 @@ -// !$*UTF8*$! -{ - 0867D690FE84028FC02AAC07 /* Project object */ = { - activeArchitecturePreference = i386; - activeBuildConfigurationName = Release; - activeExecutable = 4DC40C0509150C280029A2A6 /* Regular Expression Test */; - activeSDKPreference = macosx10.6; - activeTarget = 4DC412B3091519A60029A2A6 /* All */; - addToTargets = ( - 4DA7410E1142B26900E28DA7 /* GC Test */, - ); - codeSenseManager = 4DC40BA8091509DC0029A2A6 /* Code sense */; - executables = ( - 4DC40C0509150C280029A2A6 /* Regular Expression Test */, - 4DC40C1009150C3E0029A2A6 /* Find Panel Test */, - 4DC40C1B09150C730029A2A6 /* My Find Panel Example */, - 4DC40C3109150C9E0029A2A6 /* Replace With Attributes Test */, - 4DA741101142B26900E28DA7 /* GC Test */, - ); - perUserDictionary = { - PBXConfiguration.PBXFileTableDataSource3.PBXErrorsWarningsDataSource = { - PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; - PBXFileTableDataSourceColumnSortingKey = PBXErrorsWarningsDataSource_LocationID; - PBXFileTableDataSourceColumnWidthsKey = ( - 20, - 300, - 413, - ); - PBXFileTableDataSourceColumnsKey = ( - PBXErrorsWarningsDataSource_TypeID, - PBXErrorsWarningsDataSource_MessageID, - PBXErrorsWarningsDataSource_LocationID, - ); - }; - PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = { - PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; - PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID; - PBXFileTableDataSourceColumnWidthsKey = ( - 20, - 751, - 20, - 48, - 43, - 43, - 20, - ); - PBXFileTableDataSourceColumnsKey = ( - PBXFileDataSource_FiletypeID, - PBXFileDataSource_Filename_ColumnID, - PBXFileDataSource_Built_ColumnID, - PBXFileDataSource_ObjectSize_ColumnID, - PBXFileDataSource_Errors_ColumnID, - PBXFileDataSource_Warnings_ColumnID, - PBXFileDataSource_Target_ColumnID, - ); - }; - PBXConfiguration.PBXFileTableDataSource3.PBXFindDataSource = { - PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; - PBXFileTableDataSourceColumnSortingKey = PBXFindDataSource_LocationID; - PBXFileTableDataSourceColumnWidthsKey = ( - 200, - 765, - ); - PBXFileTableDataSourceColumnsKey = ( - PBXFindDataSource_MessageID, - PBXFindDataSource_LocationID, - ); - }; - PBXConfiguration.PBXTargetDataSource.PBXTargetDataSource = { - PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; - PBXFileTableDataSourceColumnSortingKey = PBXTargetDataSource_PrimaryAttribute; - PBXFileTableDataSourceColumnWidthsKey = ( - 20, - 711, - 60, - 20, - 48, - 43, - 43, - ); - PBXFileTableDataSourceColumnsKey = ( - PBXFileDataSource_FiletypeID, - PBXFileDataSource_Filename_ColumnID, - PBXTargetDataSource_PrimaryAttribute, - PBXFileDataSource_Built_ColumnID, - PBXFileDataSource_ObjectSize_ColumnID, - PBXFileDataSource_Errors_ColumnID, - PBXFileDataSource_Warnings_ColumnID, - ); - }; - PBXPerProjectTemplateStateSaveDate = 289588122; - PBXWorkspaceStateSaveDate = 289588122; - }; - perUserProjectItems = { - 4D4F20381142271900CD9C2F /* PBXTextBookmark */ = 4D4F20381142271900CD9C2F /* PBXTextBookmark */; - 4D4F20391142271900CD9C2F /* PlistBookmark */ = 4D4F20391142271900CD9C2F /* PlistBookmark */; - 4D4F209A114239EF00CD9C2F /* PBXTextBookmark */ = 4D4F209A114239EF00CD9C2F /* PBXTextBookmark */; - 4D4F209B114239EF00CD9C2F /* PBXTextBookmark */ = 4D4F209B114239EF00CD9C2F /* PBXTextBookmark */; - 4D4F209C114239EF00CD9C2F /* PBXTextBookmark */ = 4D4F209C114239EF00CD9C2F /* PBXTextBookmark */; - 4D4F20CB114241FB00CD9C2F /* PBXTextBookmark */ = 4D4F20CB114241FB00CD9C2F /* PBXTextBookmark */; - 4D4F20CC114241FB00CD9C2F /* PBXTextBookmark */ = 4D4F20CC114241FB00CD9C2F /* PBXTextBookmark */; - 4D4F20CD114241FB00CD9C2F /* PBXTextBookmark */ = 4D4F20CD114241FB00CD9C2F /* PBXTextBookmark */; - 4D4F211B11424E9400CD9C2F /* PBXTextBookmark */ = 4D4F211B11424E9400CD9C2F /* PBXTextBookmark */; - 4D4FC2961142BFDC0097043F /* PBXTextBookmark */ = 4D4FC2961142BFDC0097043F /* PBXTextBookmark */; - 4D4FC2971142BFDC0097043F /* PBXTextBookmark */ = 4D4FC2971142BFDC0097043F /* PBXTextBookmark */; - 4D4FC2981142BFDC0097043F /* PBXTextBookmark */ = 4D4FC2981142BFDC0097043F /* PBXTextBookmark */; - 4D4FC2991142BFDC0097043F /* PBXTextBookmark */ = 4D4FC2991142BFDC0097043F /* PBXTextBookmark */; - 4D4FC29A1142BFDC0097043F /* PBXTextBookmark */ = 4D4FC29A1142BFDC0097043F /* PBXTextBookmark */; - 4D4FC29B1142BFDC0097043F /* PBXTextBookmark */ = 4D4FC29B1142BFDC0097043F /* PBXTextBookmark */; - 4D4FC29C1142BFDC0097043F /* PBXTextBookmark */ = 4D4FC29C1142BFDC0097043F /* PBXTextBookmark */; - 4D5350691142C3B300FCA5A6 /* PBXTextBookmark */ = 4D5350691142C3B300FCA5A6 /* PBXTextBookmark */; - 4D6EA0BA096ACAB90010762A /* PBXTextBookmark */ = 4D6EA0BA096ACAB90010762A /* PBXTextBookmark */; - 4D6EA0F9096AD0BB0010762A /* PBXTextBookmark */ = 4D6EA0F9096AD0BB0010762A /* PBXTextBookmark */; - 4D82DCD009B9ECF8007F03B0 /* PBXTargetBookmark */ = 4D82DCD009B9ECF8007F03B0 /* PBXTargetBookmark */; - 4DA73FBC11428A1700E28DA7 /* PBXTextBookmark */ = 4DA73FBC11428A1700E28DA7 /* PBXTextBookmark */; - 4DA7401F114299DF00E28DA7 /* PBXTextBookmark */ = 4DA7401F114299DF00E28DA7 /* PBXTextBookmark */; - 4DA74020114299DF00E28DA7 /* PBXTextBookmark */ = 4DA74020114299DF00E28DA7 /* PBXTextBookmark */; - 4DA74021114299DF00E28DA7 /* PBXTextBookmark */ = 4DA74021114299DF00E28DA7 /* PBXTextBookmark */; - 4DA74022114299DF00E28DA7 /* PBXTextBookmark */ = 4DA74022114299DF00E28DA7 /* PBXTextBookmark */; - 4DA74023114299DF00E28DA7 /* PBXTextBookmark */ = 4DA74023114299DF00E28DA7 /* PBXTextBookmark */; - 4DA74024114299DF00E28DA7 /* PBXTextBookmark */ = 4DA74024114299DF00E28DA7 /* PBXTextBookmark */; - 4DA74025114299DF00E28DA7 /* PBXTextBookmark */ = 4DA74025114299DF00E28DA7 /* PBXTextBookmark */; - 4DA74026114299DF00E28DA7 /* PBXTextBookmark */ = 4DA74026114299DF00E28DA7 /* PBXTextBookmark */; - 4DA74027114299DF00E28DA7 /* PBXTextBookmark */ = 4DA74027114299DF00E28DA7 /* PBXTextBookmark */; - 4DA74028114299DF00E28DA7 /* PBXTextBookmark */ = 4DA74028114299DF00E28DA7 /* PBXTextBookmark */; - 4DA74029114299DF00E28DA7 /* PBXTextBookmark */ = 4DA74029114299DF00E28DA7 /* PBXTextBookmark */; - 4DA7402A114299DF00E28DA7 /* PBXTextBookmark */ = 4DA7402A114299DF00E28DA7 /* PBXTextBookmark */; - 4DA7402B114299DF00E28DA7 /* PBXTextBookmark */ = 4DA7402B114299DF00E28DA7 /* PBXTextBookmark */; - 4DA7402C114299DF00E28DA7 /* PBXTextBookmark */ = 4DA7402C114299DF00E28DA7 /* PBXTextBookmark */; - 4DA7402D114299DF00E28DA7 /* PBXTextBookmark */ = 4DA7402D114299DF00E28DA7 /* PBXTextBookmark */; - 4DA7402E114299DF00E28DA7 /* PBXTextBookmark */ = 4DA7402E114299DF00E28DA7 /* PBXTextBookmark */; - 4DA74030114299DF00E28DA7 /* PBXTextBookmark */ = 4DA74030114299DF00E28DA7 /* PBXTextBookmark */; - 4DA74031114299DF00E28DA7 /* PBXTextBookmark */ = 4DA74031114299DF00E28DA7 /* PBXTextBookmark */; - 4DA74033114299DF00E28DA7 /* PBXTextBookmark */ = 4DA74033114299DF00E28DA7 /* PBXTextBookmark */; - 4DA74034114299DF00E28DA7 /* PBXTextBookmark */ = 4DA74034114299DF00E28DA7 /* PBXTextBookmark */; - 4DA74035114299DF00E28DA7 /* PBXTextBookmark */ = 4DA74035114299DF00E28DA7 /* PBXTextBookmark */; - 4DA74036114299DF00E28DA7 /* PBXTextBookmark */ = 4DA74036114299DF00E28DA7 /* PBXTextBookmark */; - 4DA74037114299DF00E28DA7 /* PBXTextBookmark */ = 4DA74037114299DF00E28DA7 /* PBXTextBookmark */; - 4DA74038114299DF00E28DA7 /* PBXTextBookmark */ = 4DA74038114299DF00E28DA7 /* PBXTextBookmark */; - 4DA74039114299DF00E28DA7 /* PBXTextBookmark */ = 4DA74039114299DF00E28DA7 /* PBXTextBookmark */; - 4DA7404C11429ABD00E28DA7 /* PBXTextBookmark */ = 4DA7404C11429ABD00E28DA7 /* PBXTextBookmark */; - 4DA7405811429BAD00E28DA7 /* PBXTextBookmark */ = 4DA7405811429BAD00E28DA7 /* PBXTextBookmark */; - 4DA7405911429BAD00E28DA7 /* PBXTextBookmark */ = 4DA7405911429BAD00E28DA7 /* PBXTextBookmark */; - 4DA7405A11429BAD00E28DA7 /* PBXTextBookmark */ = 4DA7405A11429BAD00E28DA7 /* PBXTextBookmark */; - 4DA740751142A18100E28DA7 /* PBXTextBookmark */ = 4DA740751142A18100E28DA7 /* PBXTextBookmark */; - 4DA740761142A18100E28DA7 /* PBXTextBookmark */ = 4DA740761142A18100E28DA7 /* PBXTextBookmark */; - 4DA740E51142A96900E28DA7 /* PBXTextBookmark */ = 4DA740E51142A96900E28DA7 /* PBXTextBookmark */; - 4DA740E61142A96900E28DA7 /* PBXTextBookmark */ = 4DA740E61142A96900E28DA7 /* PBXTextBookmark */; - 4DA740EC1142AF2A00E28DA7 /* PBXTextBookmark */ = 4DA740EC1142AF2A00E28DA7 /* PBXTextBookmark */; - 4DA740ED1142AF2A00E28DA7 /* PBXTextBookmark */ = 4DA740ED1142AF2A00E28DA7 /* PBXTextBookmark */; - 4DA740EE1142AF2A00E28DA7 /* PBXTextBookmark */ = 4DA740EE1142AF2A00E28DA7 /* PBXTextBookmark */; - 4DA740EF1142AF2A00E28DA7 /* PBXTextBookmark */ = 4DA740EF1142AF2A00E28DA7 /* PBXTextBookmark */; - 4DA741511142B38300E28DA7 /* PlistBookmark */ = 4DA741511142B38300E28DA7 /* PlistBookmark */; - 4DA741841142B6F100E28DA7 /* PlistBookmark */ = 4DA741841142B6F100E28DA7 /* PlistBookmark */; - 4DA741861142B6F100E28DA7 /* PBXTextBookmark */ = 4DA741861142B6F100E28DA7 /* PBXTextBookmark */; - 4DA741871142B6F100E28DA7 /* PBXTextBookmark */ = 4DA741871142B6F100E28DA7 /* PBXTextBookmark */; - 4DA741881142B6F100E28DA7 /* PBXTextBookmark */ = 4DA741881142B6F100E28DA7 /* PBXTextBookmark */; - 4DA7419D1142B77100E28DA7 /* PBXTextBookmark */ = 4DA7419D1142B77100E28DA7 /* PBXTextBookmark */; - 4DA741BB1142BB2700E28DA7 /* PBXTextBookmark */ = 4DA741BB1142BB2700E28DA7 /* PBXTextBookmark */; - 4DA741BD1142BB2700E28DA7 /* PBXTextBookmark */ = 4DA741BD1142BB2700E28DA7 /* PBXTextBookmark */; - 4DA741BF1142BB2700E28DA7 /* PBXTextBookmark */ = 4DA741BF1142BB2700E28DA7 /* PBXTextBookmark */; - 4DD4317D09838E84008256B3 /* PBXTextBookmark */ = 4DD4317D09838E84008256B3 /* PBXTextBookmark */; - 4DDD662211426D7A003D4FD7 /* PBXTextBookmark */ = 4DDD662211426D7A003D4FD7 /* PBXTextBookmark */; - 4DDD662511426D7A003D4FD7 /* PBXTextBookmark */ = 4DDD662511426D7A003D4FD7 /* PBXTextBookmark */; - 4DDD662611426D7A003D4FD7 /* PBXTextBookmark */ = 4DDD662611426D7A003D4FD7 /* PBXTextBookmark */; - }; - sourceControlManager = 4DC40BA7091509DC0029A2A6 /* Source Control */; - userBuildSettings = { - }; - }; - 4D4F20381142271900CD9C2F /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 4DC40D6109150CEB0029A2A6 /* OGReplaceExpression.m */; - name = "OGReplaceExpression.m: 140"; - rLen = 0; - rLoc = 4946; - rType = 0; - vrLen = 1371; - vrLoc = 5293; - }; - 4D4F20391142271900CD9C2F /* PlistBookmark */ = { - isa = PlistBookmark; - fRef = 4DF530BE0915221700475575 /* ReplaceWithAttributesTest-Info.plist */; - fallbackIsa = PBXBookmark; - isK = 0; - kPath = ( - ); - name = "/Users/isao/Documents/Development/MySoftware/OgreKit/2_1_4_oniguruma_5_9_2_MacOS10.6/OgreKit_2_1_4/ReplaceWithAttributesTest/ReplaceWithAttributesTest-Info.plist"; - rLen = 0; - rLoc = 2147483647; - }; - 4D4F209A114239EF00CD9C2F /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 4DF530CF0915226200475575 /* English */; - name = "InfoPlist.strings: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 604; - vrLoc = 0; - }; - 4D4F209B114239EF00CD9C2F /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 4DF530BA0915221700475575 /* ReplaceWithAttributesTest_Prefix.h */; - name = "ReplaceWithAttributesTest_Prefix.h: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 386; - vrLoc = 0; - }; - 4D4F209C114239EF00CD9C2F /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 4DC40DE609150CEF0029A2A6 /* OgreFindResultWindowController.m */; - name = "OgreFindResultWindowController.m: 17"; - rLen = 30; - rLoc = 411; - rType = 0; - vrLen = 1084; - vrLoc = 0; - }; - 4D4F20CB114241FB00CD9C2F /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 4DC40DE509150CEF0029A2A6 /* OgreFindResultWindowController.h */; - name = "OgreFindResultWindowController.h: 41"; - rLen = 0; - rLoc = 1125; - rType = 0; - vrLen = 1119; - vrLoc = 58; - }; - 4D4F20CC114241FB00CD9C2F /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 4DC40DE309150CEF0029A2A6 /* OgreTextFindProgressSheet.h */; - name = "OgreTextFindProgressSheet.h: 17"; - rLen = 0; - rLoc = 402; - rType = 0; - vrLen = 1121; - vrLoc = 0; - }; - 4D4F20CD114241FB00CD9C2F /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 4DC40DE409150CEF0029A2A6 /* OgreTextFindProgressSheet.m */; - name = "OgreTextFindProgressSheet.m: 15"; - rLen = 0; - rLoc = 379; - rType = 0; - vrLen = 1095; - vrLoc = 0; - }; - 4D4F211B11424E9400CD9C2F /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 4DC40D7909150CEC0029A2A6 /* OgreTextFinder.m */; - name = "OgreTextFinder.m: 980"; - rLen = 0; - rLoc = 28402; - rType = 0; - vrLen = 1306; - vrLoc = 27471; - }; - 4D4FC25D1142BCCD0097043F /* GC_TestAppDelegate.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1286, 769}}"; - sepNavSelRange = "{951, 0}"; - sepNavVisRange = "{0, 1130}"; - }; - }; - 4D4FC2961142BFDC0097043F /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 4DC40D5B09150CEB0029A2A6 /* OGRegularExpressionMatchPrivate.m */; - name = "OGRegularExpressionMatchPrivate.m: 58"; - rLen = 0; - rLoc = 1503; - rType = 0; - vrLen = 1170; - vrLoc = 845; - }; - 4D4FC2971142BFDC0097043F /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 4D4FC25D1142BCCD0097043F /* GC_TestAppDelegate.m */; - name = "GC_TestAppDelegate.m: 32"; - rLen = 0; - rLoc = 951; - rType = 0; - vrLen = 1130; - vrLoc = 0; - }; - 4D4FC2981142BFDC0097043F /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 4DC40D5909150CEB0029A2A6 /* OGRegularExpressionMatch.m */; - name = "OGRegularExpressionMatch.m: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 2005; - vrLoc = 422; - }; - 4D4FC2991142BFDC0097043F /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 4DC40D5509150CEB0029A2A6 /* OGRegularExpressionEnumerator.m */; - name = "OGRegularExpressionEnumerator.m: 177"; - rLen = 0; - rLoc = 6038; - rType = 0; - vrLen = 1872; - vrLoc = 4103; - }; - 4D4FC29A1142BFDC0097043F /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 4DC40D5709150CEB0029A2A6 /* OGRegularExpressionEnumeratorPrivate.m */; - name = "OGRegularExpressionEnumeratorPrivate.m: 92"; - rLen = 0; - rLoc = 2641; - rType = 0; - vrLen = 2076; - vrLoc = 0; - }; - 4D4FC29B1142BFDC0097043F /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 4DC40D4D09150CEA0029A2A6 /* History.txt */; - name = "History.txt: 29"; - rLen = 0; - rLoc = 640; - rType = 0; - vrLen = 850; - vrLoc = 0; - }; - 4D4FC29C1142BFDC0097043F /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 4DC40D5009150CEB0029A2A6 /* OGRegularExpression.h */; - name = "OGRegularExpression.h: 23"; - rLen = 2; - rLoc = 452; - rType = 0; - vrLen = 1144; - vrLoc = 34; - }; - 4D5350691142C3B300FCA5A6 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 4DC40D5009150CEB0029A2A6 /* OGRegularExpression.h */; - name = "OGRegularExpression.h: 23"; - rLen = 2; - rLoc = 452; - rType = 0; - vrLen = 1144; - vrLoc = 34; - }; - 4D6EA0BA096ACAB90010762A /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 4DC40D8E09150CEC0029A2A6 /* OgreTextFindBranch.h */; - name = "OgreTextFindBranch.h: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 944; - vrLoc = 0; - }; - 4D6EA0F9096AD0BB0010762A /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 4DC4106809150D550029A2A6 /* MyOutlineDocument.m */; - name = "MyOutlineDocument.m: 109"; - rLen = 0; - rLoc = 2887; - rType = 0; - vrLen = 1339; - vrLoc = 2225; - }; - 4D82DCCA09B9ECD1007F03B0 /* Oniguruma */ = { - activeExec = 0; - }; - 4D82DCD009B9ECF8007F03B0 /* PBXTargetBookmark */ = { - isa = PBXTargetBookmark; - trg = 4D82DCCA09B9ECD1007F03B0 /* Oniguruma */; - }; - 4D82DCE209BA0CAF007F03B0 /* oniguruma.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {715, 11508}}"; - sepNavSelRange = "{336, 0}"; - sepNavVisRect = "{{0, 0}, {715, 544}}"; - sepNavWindowFrame = "{{15, 0}, {721, 873}}"; - }; - }; - 4D82DCE509BA0CBF007F03B0 /* COPYING */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {715, 769}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRect = "{{0, 0}, {715, 769}}"; - }; - }; - 4D82DCE909BA0CCE007F03B0 /* API */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {715, 8344}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRect = "{{0, 0}, {715, 769}}"; - }; - }; - 4D82DCEB09BA0CCE007F03B0 /* FAQ */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {715, 769}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRect = "{{0, 0}, {715, 769}}"; - }; - }; - 4D82DCFB09BA0CEF007F03B0 /* HISTORY */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {800, 22148}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRect = "{{0, 0}, {715, 529}}"; - }; - }; - 4D82DCFE09BA0CFC007F03B0 /* README */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {715, 2786}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRect = "{{0, 0}, {715, 529}}"; - }; - }; - 4DA73FB91142894300E28DA7 /* OgreTextFindProgressDelegate.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {929, 769}}"; - sepNavSelRange = "{87, 0}"; - sepNavVisRange = "{0, 934}"; - sepNavWindowFrame = "{{15, 0}, {952, 876}}"; - }; - }; - 4DA73FBC11428A1700E28DA7 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 4DC4106F09150D550029A2A6 /* MyTableDocumentWithCocoaBinding.m */; - name = "MyTableDocumentWithCocoaBinding.m: 21"; - rLen = 0; - rLoc = 548; - rType = 0; - vrLen = 841; - vrLoc = 0; - }; - 4DA7401F114299DF00E28DA7 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 4DC40D7809150CEC0029A2A6 /* OgreTextFinder.h */; - name = "OgreTextFinder.h: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 1262; - vrLoc = 0; - }; - 4DA74020114299DF00E28DA7 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 4DC40DAD09150CED0029A2A6 /* OgreOutlineItemAdapter.h */; - name = "OgreOutlineItemAdapter.h: 29"; - rLen = 0; - rLoc = 697; - rType = 0; - vrLen = 788; - vrLoc = 0; - }; - 4DA74021114299DF00E28DA7 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 4DC40DA409150CED0029A2A6 /* OgreTableColumnAdapter.h */; - name = "OgreTableColumnAdapter.h: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 582; - vrLoc = 0; - }; - 4DA74022114299DF00E28DA7 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 4DC40D8009150CEC0029A2A6 /* OgreReplaceAllThread.h */; - name = "OgreReplaceAllThread.h: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 751; - vrLoc = 0; - }; - 4DA74023114299DF00E28DA7 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 4DC40D8609150CEC0029A2A6 /* OgreFindThread.h */; - name = "OgreFindThread.h: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 1110; - vrLoc = 0; - }; - 4DA74024114299DF00E28DA7 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 4DC40D5E09150CEB0029A2A6 /* OGRegularExpressionCapturePrivate.h */; - name = "OGRegularExpressionCapturePrivate.h: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 760; - vrLoc = 0; - }; - 4DA74025114299DF00E28DA7 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 4DC40D8809150CEC0029A2A6 /* OgreReplaceAndFindThread.h */; - name = "OgreReplaceAndFindThread.h: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 496; - vrLoc = 0; - }; - 4DA74026114299DF00E28DA7 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 4DC40DF509150CF00029A2A6 /* OgreAttachableWindowMediator.h */; - name = "OgreAttachableWindowMediator.h: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 1294; - vrLoc = 0; - }; - 4DA74027114299DF00E28DA7 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 4DC40DA609150CED0029A2A6 /* OgreTableCellAdapter.h */; - name = "OgreTableCellAdapter.h: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 623; - vrLoc = 0; - }; - 4DA74028114299DF00E28DA7 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 4DC40DC209150CEE0029A2A6 /* OgreTableColumnFindResult.h */; - name = "OgreTableColumnFindResult.h: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 614; - vrLoc = 0; - }; - 4DA74029114299DF00E28DA7 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 4DC40DBD09150CEE0029A2A6 /* OgreTextViewMatchFindResult.h */; - name = "OgreTextViewMatchFindResult.h: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 454; - vrLoc = 0; - }; - 4DA7402A114299DF00E28DA7 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 4DC40DAF09150CED0029A2A6 /* OgreOutlineCellAdapter.h */; - name = "OgreOutlineCellAdapter.h: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 526; - vrLoc = 0; - }; - 4DA7402B114299DF00E28DA7 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 4DC40D7209150CEC0029A2A6 /* OGMutableAttributedString.h */; - name = "OGMutableAttributedString.h: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 668; - vrLoc = 0; - }; - 4DA7402C114299DF00E28DA7 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 4DC40DF709150CF00029A2A6 /* OgreAttachableWindowAcceptor.h */; - name = "OgreAttachableWindowAcceptor.h: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 643; - vrLoc = 0; - }; - 4DA7402D114299DF00E28DA7 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 4DC40D8209150CEC0029A2A6 /* OgreHighlightThread.h */; - name = "OgreHighlightThread.h: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 900; - vrLoc = 0; - }; - 4DA7402E114299DF00E28DA7 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 4DC40DF309150CF00029A2A6 /* OgreAttachableWindowAcceptee.h */; - name = "OgreAttachableWindowAcceptee.h: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 872; - vrLoc = 0; - }; - 4DA74030114299DF00E28DA7 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 4DC4106309150D550029A2A6 /* MyTableDocument.m */; - name = "MyTableDocument.m: 195"; - rLen = 0; - rLoc = 7121; - rType = 0; - vrLen = 977; - vrLoc = 6557; - }; - 4DA74031114299DF00E28DA7 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 4DC40D7B09150CEC0029A2A6 /* OgreTextFindThread.h */; - name = "OgreTextFindThread.h: 50"; - rLen = 0; - rLoc = 1631; - rType = 0; - vrLen = 1298; - vrLoc = 1052; - }; - 4DA74033114299DF00E28DA7 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 4DC40DEF09150CEF0029A2A6 /* OgreAdvancedFindPanel.m */; - name = "OgreAdvancedFindPanel.m: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 1183; - vrLoc = 0; - }; - 4DA74034114299DF00E28DA7 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 4DC40DE709150CEF0029A2A6 /* OgreFindPanelController.h */; - name = "OgreFindPanelController.h: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 720; - vrLoc = 0; - }; - 4DA74035114299DF00E28DA7 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 4DC40DE909150CEF0029A2A6 /* OgreAdvancedFindPanelController.h */; - name = "OgreAdvancedFindPanelController.h: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 1427; - vrLoc = 4869; - }; - 4DA74036114299DF00E28DA7 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 4DC40D7F09150CEC0029A2A6 /* OgreFindAllThread.m */; - name = "OgreFindAllThread.m: 25"; - rLen = 0; - rLoc = 620; - rType = 0; - vrLen = 1147; - vrLoc = 368; - }; - 4DA74037114299DF00E28DA7 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 4DC40DE809150CEF0029A2A6 /* OgreFindPanelController.m */; - name = "OgreFindPanelController.m: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 594; - vrLoc = 642; - }; - 4DA74038114299DF00E28DA7 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 4DC40DEA09150CEF0029A2A6 /* OgreAdvancedFindPanelController.m */; - name = "OgreAdvancedFindPanelController.m: 1256"; - rLen = 3; - rLoc = 39123; - rType = 0; - vrLen = 1432; - vrLoc = 38862; - }; - 4DA74039114299DF00E28DA7 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 4DA7403A114299DF00E28DA7 /* objc.h */; - name = "objc.h: 52"; - rLen = 0; - rLoc = 1588; - rType = 0; - vrLen = 749; - vrLoc = 1173; - }; - 4DA7403A114299DF00E28DA7 /* objc.h */ = { - isa = PBXFileReference; - lastKnownFileType = sourcecode.c.h; - name = objc.h; - path = /Developer/SDKs/MacOSX10.4u.sdk/usr/include/objc/objc.h; - sourceTree = ""; - }; - 4DA7404C11429ABD00E28DA7 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 4DC4108409150D640029A2A6 /* MyFindPanelController.h */; - name = "MyFindPanelController.h: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 1067; - vrLoc = 0; - }; - 4DA7405811429BAD00E28DA7 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 4DC4108509150D640029A2A6 /* MyFindPanelController.m */; - name = "MyFindPanelController.m: 153"; - rLen = 0; - rLoc = 3883; - rType = 0; - vrLen = 1142; - vrLoc = 3146; - }; - 4DA7405911429BAD00E28DA7 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 4DC4105809150D550029A2A6 /* OgreFindPanelTest_Prefix.h */; - name = "OgreFindPanelTest_Prefix.h: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 378; - vrLoc = 0; - }; - 4DA7405A11429BAD00E28DA7 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 4DC40D7C09150CEC0029A2A6 /* OgreTextFindThread.m */; - name = "OgreTextFindThread.m: 456"; - rLen = 0; - rLoc = 10534; - rType = 0; - vrLen = 1167; - vrLoc = 0; - }; - 4DA740751142A18100E28DA7 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 4DC4104309150D0E0029A2A6 /* OgreTest_Prefix.h */; - name = "OgreTest_Prefix.h: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 368; - vrLoc = 0; - }; - 4DA740761142A18100E28DA7 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 4DC4104409150D0E0029A2A6 /* main.m */; - name = "main.m: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 387; - vrLoc = 0; - }; - 4DA740E51142A96900E28DA7 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 4DC40DA009150CED0029A2A6 /* OgreTextViewUndoer.m */; - name = "OgreTextViewUndoer.m: 28"; - rLen = 0; - rLoc = 663; - rType = 0; - vrLen = 1131; - vrLoc = 755; - }; - 4DA740E61142A96900E28DA7 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 4DC40DF809150CF00029A2A6 /* OgreAttachableWindowAcceptor.m */; - name = "OgreAttachableWindowAcceptor.m: 31"; - rLen = 8; - rLoc = 732; - rType = 0; - vrLen = 1181; - vrLoc = 351; - }; - 4DA740EC1142AF2A00E28DA7 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 4DC40D5109150CEB0029A2A6 /* OGRegularExpression.m */; - name = "OGRegularExpression.m: 32"; - rLen = 0; - rLoc = 794; - rType = 0; - vrLen = 1610; - vrLoc = 0; - }; - 4DA740ED1142AF2A00E28DA7 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 4DC40D5209150CEB0029A2A6 /* OGRegularExpressionPrivate.h */; - name = "OGRegularExpressionPrivate.h: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 1098; - vrLoc = 0; - }; - 4DA740EE1142AF2A00E28DA7 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 4DC40D5309150CEB0029A2A6 /* OGRegularExpressionPrivate.m */; - name = "OGRegularExpressionPrivate.m: 47"; - rLen = 7; - rLoc = 968; - rType = 0; - vrLen = 943; - vrLoc = 512; - }; - 4DA740EF1142AF2A00E28DA7 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 4DC40D5409150CEB0029A2A6 /* OGRegularExpressionEnumerator.h */; - name = "OGRegularExpressionEnumerator.h: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 1270; - vrLoc = 0; - }; - 4DA7410E1142B26900E28DA7 /* GC Test */ = { - activeExec = 0; - executables = ( - 4DA741101142B26900E28DA7 /* GC Test */, - ); - }; - 4DA741101142B26900E28DA7 /* GC Test */ = { - isa = PBXExecutable; - activeArgIndices = ( - ); - argumentStrings = ( - ); - autoAttachOnCrash = 1; - breakpointsEnabled = 0; - configStateDict = { - }; - customDataFormattersEnabled = 1; - dataTipCustomDataFormattersEnabled = 1; - dataTipShowTypeColumn = 1; - dataTipSortType = 0; - debuggerPlugin = GDBDebugging; - disassemblyDisplayState = 0; - dylibVariantSuffix = ""; - enableDebugStr = 1; - environmentEntries = ( - ); - executableSystemSymbolLevel = 0; - executableUserSymbolLevel = 0; - libgmallocEnabled = 0; - name = "GC Test"; - savedGlobals = { - }; - showTypeColumn = 0; - sourceDirectories = ( - ); - }; - 4DA741511142B38300E28DA7 /* PlistBookmark */ = { - isa = PlistBookmark; - fRef = 4DC40E5809150CF40029A2A6 /* version.plist */; - fallbackIsa = PBXBookmark; - isK = 0; - kPath = ( - ); - name = /Users/isao/Documents/Development/MySoftware/OgreKit/2_1_4_oniguruma_5_9_2_MacOS10.6/OgreKit_2_1_4/RegularExpression/version.plist; - rLen = 0; - rLoc = 2147483647; - }; - 4DA741841142B6F100E28DA7 /* PlistBookmark */ = { - isa = PlistBookmark; - fRef = 4DA741111142B26A00E28DA7 /* GC Test-Info.plist */; - fallbackIsa = PBXBookmark; - isK = 0; - kPath = ( - ); - name = "/Users/isao/Documents/Development/MySoftware/OgreKit/2_1_4_oniguruma_5_9_2_MacOS10.6/OgreKit_2_1_4/GCTest/GC Test-Info.plist"; - rLen = 0; - rLoc = 2147483647; - }; - 4DA741861142B6F100E28DA7 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 4DC4108A09150D640029A2A6 /* MyMenuController.h */; - name = "MyMenuController.h: 1"; - rLen = 289; - rLoc = 0; - rType = 0; - vrLen = 464; - vrLoc = 0; - }; - 4DA741871142B6F100E28DA7 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 4DC4108D09150D650029A2A6 /* MyFindPanelExample_Prefix.h */; - name = "MyFindPanelExample_Prefix.h: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 380; - vrLoc = 0; - }; - 4DA741881142B6F100E28DA7 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 4DA73FB91142894300E28DA7 /* OgreTextFindProgressDelegate.h */; - name = "OgreTextFindProgressDelegate.h: 5"; - rLen = 0; - rLoc = 87; - rType = 0; - vrLen = 934; - vrLoc = 0; - }; - 4DA7419D1142B77100E28DA7 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 4DC4108909150D640029A2A6 /* MyDocument.m */; - name = "MyDocument.m: 64"; - rLen = 0; - rLoc = 1790; - rType = 0; - vrLen = 1819; - vrLoc = 698; - }; - 4DA741BB1142BB2700E28DA7 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 4DC40E5609150CF30029A2A6 /* OgreKit.h */; - name = "OgreKit.h: 18"; - rLen = 0; - rLoc = 356; - rType = 0; - vrLen = 845; - vrLoc = 0; - }; - 4DA741BD1142BB2700E28DA7 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 4DC40D5809150CEB0029A2A6 /* OGRegularExpressionMatch.h */; - name = "OGRegularExpressionMatch.h: 49"; - rLen = 0; - rLoc = 1131; - rType = 0; - vrLen = 1373; - vrLoc = 456; - }; - 4DA741BF1142BB2700E28DA7 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 4DC40E5509150CF30029A2A6 /* OgreKit.h */; - name = "OgreKit.h: 14"; - rLen = 0; - rLoc = 280; - rType = 0; - vrLen = 1688; - vrLoc = 0; - }; - 4DC40BA7091509DC0029A2A6 /* Source Control */ = { - isa = PBXSourceControlManager; - fallbackIsa = XCSourceControlManager; - isSCMEnabled = 0; - scmConfiguration = { - repositoryNamesForRoots = { - "" = ""; - }; - }; - scmType = ""; - }; - 4DC40BA8091509DC0029A2A6 /* Code sense */ = { - isa = PBXCodeSenseManager; - indexTemplatePath = ""; - }; - 4DC40BF209150BDB0029A2A6 /* OgreKit (without Find Panel) */ = { - activeExec = 0; - }; - 4DC40C0309150C280029A2A6 /* Regular Expression Test */ = { - activeExec = 0; - executables = ( - 4DC40C0509150C280029A2A6 /* Regular Expression Test */, - ); - }; - 4DC40C0509150C280029A2A6 /* Regular Expression Test */ = { - isa = PBXExecutable; - activeArgIndices = ( - ); - argumentStrings = ( - ); - autoAttachOnCrash = 1; - breakpointsEnabled = 0; - configStateDict = { - }; - customDataFormattersEnabled = 1; - dataTipCustomDataFormattersEnabled = 1; - dataTipShowTypeColumn = 1; - dataTipSortType = 0; - debuggerPlugin = GDBDebugging; - disassemblyDisplayState = 0; - dylibVariantSuffix = ""; - enableDebugStr = 1; - environmentEntries = ( - ); - executableSystemSymbolLevel = 0; - executableUserSymbolLevel = 0; - libgmallocEnabled = 0; - name = "Regular Expression Test"; - savedGlobals = { - }; - showTypeColumn = 0; - sourceDirectories = ( - ); - variableFormatDictionary = { - }; - }; - 4DC40C0E09150C3E0029A2A6 /* Find Panel Test */ = { - activeExec = 0; - executables = ( - 4DC40C1009150C3E0029A2A6 /* Find Panel Test */, - ); - }; - 4DC40C1009150C3E0029A2A6 /* Find Panel Test */ = { - isa = PBXExecutable; - activeArgIndices = ( - ); - argumentStrings = ( - ); - autoAttachOnCrash = 1; - breakpointsEnabled = 0; - configStateDict = { - }; - customDataFormattersEnabled = 1; - dataTipCustomDataFormattersEnabled = 1; - dataTipShowTypeColumn = 1; - dataTipSortType = 0; - debuggerPlugin = GDBDebugging; - disassemblyDisplayState = 0; - dylibVariantSuffix = ""; - enableDebugStr = 1; - environmentEntries = ( - ); - executableSystemSymbolLevel = 0; - executableUserSymbolLevel = 0; - libgmallocEnabled = 0; - name = "Find Panel Test"; - savedGlobals = { - }; - showTypeColumn = 0; - sourceDirectories = ( - ); - }; - 4DC40C1909150C720029A2A6 /* My Find Panel Example */ = { - activeExec = 0; - executables = ( - 4DC40C1B09150C730029A2A6 /* My Find Panel Example */, - ); - }; - 4DC40C1B09150C730029A2A6 /* My Find Panel Example */ = { - isa = PBXExecutable; - activeArgIndices = ( - ); - argumentStrings = ( - ); - autoAttachOnCrash = 1; - breakpointsEnabled = 0; - configStateDict = { - }; - customDataFormattersEnabled = 1; - dataTipCustomDataFormattersEnabled = 1; - dataTipShowTypeColumn = 1; - dataTipSortType = 0; - debuggerPlugin = GDBDebugging; - disassemblyDisplayState = 0; - dylibVariantSuffix = ""; - enableDebugStr = 1; - environmentEntries = ( - ); - executableSystemSymbolLevel = 0; - executableUserSymbolLevel = 0; - libgmallocEnabled = 0; - name = "My Find Panel Example"; - savedGlobals = { - }; - showTypeColumn = 0; - sourceDirectories = ( - ); - }; - 4DC40C2F09150C9E0029A2A6 /* Replace With Attributes Test */ = { - activeExec = 0; - executables = ( - 4DC40C3109150C9E0029A2A6 /* Replace With Attributes Test */, - ); - }; - 4DC40C3109150C9E0029A2A6 /* Replace With Attributes Test */ = { - isa = PBXExecutable; - activeArgIndices = ( - ); - argumentStrings = ( - ); - autoAttachOnCrash = 1; - breakpointsEnabled = 0; - configStateDict = { - }; - customDataFormattersEnabled = 1; - dataTipCustomDataFormattersEnabled = 1; - dataTipShowTypeColumn = 1; - dataTipSortType = 0; - debuggerPlugin = GDBDebugging; - disassemblyDisplayState = 0; - dylibVariantSuffix = ""; - enableDebugStr = 1; - environmentEntries = ( - ); - executableSystemSymbolLevel = 0; - executableUserSymbolLevel = 0; - libgmallocEnabled = 0; - name = "Replace With Attributes Test"; - savedGlobals = { - }; - showTypeColumn = 0; - sourceDirectories = ( - ); - }; - 4DC40D4B09150CEA0029A2A6 /* ReadMe.rtf */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {581, 581}}"; - sepNavSelRange = "{976, 1}"; - sepNavVisRect = "{{0, 0}, {581, 450}}"; - }; - }; - 4DC40D4C09150CEA0029A2A6 /* License.txt */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {929, 769}}"; - sepNavSelRange = "{1613, 0}"; - sepNavVisRange = "{0, 1613}"; - sepNavVisRect = "{{0, 0}, {715, 784}}"; - }; - }; - 4DC40D4D09150CEA0029A2A6 /* History.txt */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {929, 5096}}"; - sepNavSelRange = "{640, 0}"; - sepNavVisRange = "{0, 850}"; - sepNavVisRect = "{{0, 0}, {715, 784}}"; - sepNavWindowFrame = "{{15, -5}, {817, 746}}"; - }; - }; - 4DC40D5009150CEB0029A2A6 /* OGRegularExpression.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {2098, 7981}}"; - sepNavSelRange = "{452, 2}"; - sepNavVisRange = "{34, 1144}"; - sepNavVisRect = "{{0, 98}, {581, 650}}"; - }; - }; - 4DC40D5109150CEB0029A2A6 /* OGRegularExpression.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {929, 25323}}"; - sepNavSelRange = "{794, 0}"; - sepNavVisRange = "{0, 1610}"; - sepNavVisRect = "{{0, 19543}, {679, 345}}"; - sepNavWindowFrame = "{{194, 2}, {952, 876}}"; - }; - }; - 4DC40D5209150CEB0029A2A6 /* OGRegularExpressionPrivate.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {936, 965}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRange = "{0, 1098}"; - }; - }; - 4DC40D5309150CEB0029A2A6 /* OGRegularExpressionPrivate.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {929, 3735}}"; - sepNavSelRange = "{968, 7}"; - sepNavVisRange = "{512, 943}"; - }; - }; - 4DC40D5409150CEB0029A2A6 /* OGRegularExpressionEnumerator.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {929, 593}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRange = "{0, 1270}"; - }; - }; - 4DC40D5509150CEB0029A2A6 /* OGRegularExpressionEnumerator.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1237, 6071}}"; - sepNavSelRange = "{6038, 0}"; - sepNavVisRange = "{4103, 1872}"; - sepNavVisRect = "{{0, 2472}, {679, 345}}"; - }; - }; - 4DC40D5709150CEB0029A2A6 /* OGRegularExpressionEnumeratorPrivate.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1223, 2010}}"; - sepNavSelRange = "{2641, 0}"; - sepNavVisRange = "{0, 2076}"; - }; - }; - 4DC40D5809150CEB0029A2A6 /* OGRegularExpressionMatch.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {929, 3445}}"; - sepNavSelRange = "{1131, 0}"; - sepNavVisRange = "{456, 1373}"; - }; - }; - 4DC40D5909150CEB0029A2A6 /* OGRegularExpressionMatch.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {929, 11355}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRange = "{422, 2005}"; - }; - }; - 4DC40D5B09150CEB0029A2A6 /* OGRegularExpressionMatchPrivate.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {929, 1248}}"; - sepNavSelRange = "{1503, 0}"; - sepNavVisRange = "{845, 1170}"; - }; - }; - 4DC40D5E09150CEB0029A2A6 /* OGRegularExpressionCapturePrivate.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {929, 529}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRange = "{0, 760}"; - }; - }; - 4DC40D5F09150CEB0029A2A6 /* OGRegularExpressionCapturePrivate.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {841, 650}}"; - sepNavSelRange = "{869, 7}"; - sepNavVisRange = "{631, 381}"; - }; - }; - 4DC40D6109150CEB0029A2A6 /* OGReplaceExpression.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {841, 8246}}"; - sepNavSelRange = "{11954, 0}"; - sepNavVisRange = "{12039, 576}"; - sepNavWindowFrame = "{{15, 0}, {1055, 878}}"; - }; - }; - 4DC40D6509150CEB0029A2A6 /* OGRegularExpressionFormatter.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1083, 3707}}"; - sepNavSelRange = "{6163, 0}"; - sepNavVisRange = "{6125, 302}"; - }; - }; - 4DC40D6909150CEB0029A2A6 /* OGMutableString.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {97, 1722}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRect = "{{0, 0}, {97, 649}}"; - }; - }; - 4DC40D6C09150CEB0029A2A6 /* OGPlainString.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {841, 2110}}"; - sepNavSelRange = "{1521, 7}"; - sepNavVisRange = "{1409, 325}"; - }; - }; - 4DC40D7109150CEC0029A2A6 /* OGAttributedString.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {841, 2292}}"; - sepNavSelRange = "{2095, 7}"; - sepNavVisRange = "{1788, 498}"; - }; - }; - 4DC40D7209150CEC0029A2A6 /* OGMutableAttributedString.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {929, 529}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRange = "{0, 668}"; - }; - }; - 4DC40D7309150CEC0029A2A6 /* OGMutableAttributedString.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {908, 5265}}"; - sepNavSelRange = "{1625, 7}"; - sepNavVisRange = "{1545, 527}"; - }; - }; - 4DC40D7509150CEC0029A2A6 /* NSString_OgreKitAdditions.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {97, 4622}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRect = "{{0, 0}, {97, 649}}"; - }; - }; - 4DC40D7809150CEC0029A2A6 /* OgreTextFinder.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1069, 2494}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRange = "{4125, 1578}"; - }; - }; - 4DC40D7909150CEC0029A2A6 /* OgreTextFinder.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {832, 14326}}"; - sepNavSelRange = "{28323, 36}"; - sepNavVisRange = "{27797, 565}"; - sepNavVisRect = "{{0, 13799}, {581, 450}}"; - sepNavWindowFrame = "{{203, 2}, {952, 876}}"; - }; - }; - 4DC40D7B09150CEC0029A2A6 /* OgreTextFindThread.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {823, 1833}}"; - sepNavSelRange = "{687, 0}"; - sepNavVisRange = "{597, 315}"; - sepNavWindowFrame = "{{35, 2}, {952, 876}}"; - }; - }; - 4DC40D7C09150CEC0029A2A6 /* OgreTextFindThread.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {841, 7384}}"; - sepNavSelRange = "{1347, 7}"; - sepNavVisRange = "{1178, 390}"; - sepNavWindowFrame = "{{15, 0}, {952, 876}}"; - }; - }; - 4DC40D7F09150CEC0029A2A6 /* OgreFindAllThread.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1132, 2772}}"; - sepNavSelRange = "{620, 0}"; - sepNavVisRange = "{368, 1147}"; - }; - }; - 4DC40D8009150CEC0029A2A6 /* OgreReplaceAllThread.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {929, 529}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRange = "{0, 751}"; - }; - }; - 4DC40D8209150CEC0029A2A6 /* OgreHighlightThread.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {929, 529}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRange = "{0, 900}"; - }; - }; - 4DC40D8309150CEC0029A2A6 /* OgreHighlightThread.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {832, 3172}}"; - sepNavSelRange = "{1594, 0}"; - sepNavVisRange = "{1372, 849}"; - sepNavWindowFrame = "{{194, 2}, {952, 876}}"; - }; - }; - 4DC40D8609150CEC0029A2A6 /* OgreFindThread.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {929, 559}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRange = "{0, 1110}"; - }; - }; - 4DC40D8809150CEC0029A2A6 /* OgreReplaceAndFindThread.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {929, 529}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRange = "{0, 496}"; - }; - }; - 4DC40D8D09150CEC0029A2A6 /* OgreTextFindRoot.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {841, 1261}}"; - sepNavSelRange = "{594, 7}"; - sepNavVisRange = "{367, 372}"; - }; - }; - 4DC40D8E09150CEC0029A2A6 /* OgreTextFindBranch.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {581, 650}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRect = "{{0, 0}, {581, 650}}"; - }; - }; - 4DC40D8F09150CED0029A2A6 /* OgreTextFindBranch.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {841, 3172}}"; - sepNavSelRange = "{994, 7}"; - sepNavVisRange = "{804, 445}"; - }; - }; - 4DC40D9109150CED0029A2A6 /* OgreTextFindLeaf.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {841, 3523}}"; - sepNavSelRange = "{478, 8}"; - sepNavVisRange = "{285, 338}"; - }; - }; - 4DC40D9209150CED0029A2A6 /* OgreTextFindComponentEnumerator.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {832, 455}}"; - sepNavSelRange = "{566, 7}"; - sepNavVisRange = "{99, 633}"; - }; - }; - 4DC40D9309150CED0029A2A6 /* OgreTextFindComponentEnumerator.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {841, 1196}}"; - sepNavSelRange = "{1445, 8}"; - sepNavVisRange = "{1388, 353}"; - sepNavWindowFrame = "{{15, 0}, {952, 876}}"; - }; - }; - 4DC40D9509150CED0029A2A6 /* OgreTextFindReverseComponentEnumerator.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {832, 624}}"; - sepNavSelRange = "{855, 0}"; - sepNavVisRange = "{550, 545}"; - }; - }; - 4DC40D9A09150CED0029A2A6 /* OgreTextViewPlainAdapter.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1006, 3006}}"; - sepNavSelRange = "{1068, 7}"; - sepNavVisRange = "{1002, 441}"; - }; - }; - 4DC40D9F09150CED0029A2A6 /* OgreTextViewUndoer.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {832, 420}}"; - sepNavSelRange = "{489, 0}"; - sepNavVisRange = "{0, 729}"; - }; - }; - 4DC40DA009150CED0029A2A6 /* OgreTextViewUndoer.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {832, 1508}}"; - sepNavSelRange = "{663, 0}"; - sepNavVisRange = "{411, 476}"; - }; - }; - 4DC40DA309150CED0029A2A6 /* OgreTableViewAdapter.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {894, 3605}}"; - sepNavSelRange = "{944, 7}"; - sepNavVisRange = "{905, 509}"; - }; - }; - 4DC40DA409150CED0029A2A6 /* OgreTableColumnAdapter.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {929, 529}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRange = "{0, 582}"; - }; - }; - 4DC40DA509150CED0029A2A6 /* OgreTableColumnAdapter.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {873, 2604}}"; - sepNavSelRange = "{932, 7}"; - sepNavVisRange = "{921, 471}"; - }; - }; - 4DC40DA609150CED0029A2A6 /* OgreTableCellAdapter.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {929, 529}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRange = "{0, 623}"; - }; - }; - 4DC40DA709150CED0029A2A6 /* OgreTableCellAdapter.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {841, 2756}}"; - sepNavSelRange = "{894, 7}"; - sepNavVisRange = "{855, 448}"; - }; - }; - 4DC40DAA09150CED0029A2A6 /* OgreOutlineViewAdapter.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {894, 4099}}"; - sepNavSelRange = "{1050, 7}"; - sepNavVisRange = "{1011, 560}"; - }; - }; - 4DC40DAC09150CED0029A2A6 /* OgreOutlineColumnAdapter.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {841, 2444}}"; - sepNavSelRange = "{960, 7}"; - sepNavVisRange = "{664, 481}"; - }; - }; - 4DC40DAD09150CED0029A2A6 /* OgreOutlineItemAdapter.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {929, 529}}"; - sepNavSelRange = "{697, 0}"; - sepNavVisRange = "{0, 788}"; - }; - }; - 4DC40DAE09150CED0029A2A6 /* OgreOutlineItemAdapter.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {957, 3003}}"; - sepNavSelRange = "{997, 7}"; - sepNavVisRange = "{988, 533}"; - }; - }; - 4DC40DAF09150CED0029A2A6 /* OgreOutlineCellAdapter.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {929, 529}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRange = "{0, 526}"; - }; - }; - 4DC40DB209150CEE0029A2A6 /* OgreTextFindResult.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {823, 1482}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRange = "{0, 273}"; - sepNavVisRect = "{{0, 0}, {97, 649}}"; - sepNavWindowFrame = "{{15, 0}, {952, 876}}"; - }; - }; - 4DC40DB309150CEE0029A2A6 /* OgreTextFindResult.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {841, 5156}}"; - sepNavSelRange = "{1257, 0}"; - sepNavVisRange = "{1316, 393}"; - sepNavVisRect = "{{0, 0}, {97, 649}}"; - }; - }; - 4DC40DB509150CEE0029A2A6 /* OgreFindResultRoot.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {841, 689}}"; - sepNavSelRange = "{578, 7}"; - sepNavVisRange = "{447, 424}"; - }; - }; - 4DC40DB809150CEE0029A2A6 /* OgreFindResultLeaf.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {97, 1190}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRect = "{{0, 0}, {97, 649}}"; - }; - }; - 4DC40DBC09150CEE0029A2A6 /* OgreTextViewFindResult.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1160, 7346}}"; - sepNavSelRange = "{2684, 0}"; - sepNavVisRange = "{2527, 406}"; - }; - }; - 4DC40DBD09150CEE0029A2A6 /* OgreTextViewMatchFindResult.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {929, 529}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRange = "{0, 454}"; - }; - }; - 4DC40DC109150CEE0029A2A6 /* OgreTableViewFindResult.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {832, 1716}}"; - sepNavSelRange = "{809, 0}"; - sepNavVisRange = "{0, 462}"; - }; - }; - 4DC40DC209150CEE0029A2A6 /* OgreTableColumnFindResult.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {929, 529}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRange = "{0, 614}"; - }; - }; - 4DC40DC309150CEE0029A2A6 /* OgreTableColumnFindResult.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {841, 1729}}"; - sepNavSelRange = "{836, 7}"; - sepNavVisRange = "{543, 548}"; - }; - }; - 4DC40DC509150CEE0029A2A6 /* OgreTableCellFindResult.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {841, 2210}}"; - sepNavSelRange = "{995, 7}"; - sepNavVisRange = "{699, 506}"; - }; - }; - 4DC40DC909150CEE0029A2A6 /* OgreOutlineViewFindResult.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {97, 980}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRect = "{{0, 0}, {97, 649}}"; - }; - }; - 4DC40DCA09150CEE0029A2A6 /* OgreOutlineViewFindResult.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {841, 1499}}"; - sepNavSelRange = "{847, 0}"; - sepNavVisRange = "{786, 439}"; - }; - }; - 4DC40DCC09150CEE0029A2A6 /* OgreOutlineColumnFindResult.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {841, 1794}}"; - sepNavSelRange = "{814, 7}"; - sepNavVisRange = "{571, 467}"; - }; - }; - 4DC40DCE09150CEE0029A2A6 /* OgreOutlineItemFindResult.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {841, 2704}}"; - sepNavSelRange = "{1002, 7}"; - sepNavVisRange = "{905, 459}"; - }; - }; - 4DC40DCF09150CEE0029A2A6 /* OgreOutlineCellFindResult.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {97, 1776}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRect = "{{0, 0}, {97, 649}}"; - }; - }; - 4DC40DD009150CEE0029A2A6 /* OgreOutlineCellFindResult.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {841, 2431}}"; - sepNavSelRange = "{1002, 7}"; - sepNavVisRange = "{724, 481}"; - }; - }; - 4DC40DD709150CEF0029A2A6 /* OgreTextView.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {971, 1027}}"; - sepNavSelRange = "{1810, 7}"; - sepNavVisRange = "{1793, 685}"; - }; - }; - 4DC40DDA09150CEF0029A2A6 /* OgreTableView.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {841, 1209}}"; - sepNavSelRange = "{1714, 8}"; - sepNavVisRange = "{1674, 584}"; - }; - }; - 4DC40DDC09150CEF0029A2A6 /* OgreTableColumn.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {971, 1521}}"; - sepNavSelRange = "{2298, 7}"; - sepNavVisRange = "{1926, 525}"; - }; - }; - 4DC40DDF09150CEF0029A2A6 /* OgreOutlineView.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {841, 2054}}"; - sepNavSelRange = "{3374, 8}"; - sepNavVisRange = "{3336, 621}"; - }; - }; - 4DC40DE309150CEF0029A2A6 /* OgreTextFindProgressSheet.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {832, 923}}"; - sepNavSelRange = "{453, 28}"; - sepNavVisRange = "{0, 485}"; - sepNavWindowFrame = "{{234, 0}, {1055, 878}}"; - }; - }; - 4DC40DE409150CEF0029A2A6 /* OgreTextFindProgressSheet.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {841, 2838}}"; - sepNavSelRange = "{1936, 0}"; - sepNavVisRange = "{1836, 511}"; - sepNavWindowFrame = "{{125, 0}, {1055, 878}}"; - }; - }; - 4DC40DE509150CEF0029A2A6 /* OgreFindResultWindowController.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {701, 611}}"; - sepNavSelRange = "{1125, 0}"; - sepNavVisRange = "{58, 1119}"; - }; - }; - 4DC40DE609150CEF0029A2A6 /* OgreFindResultWindowController.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {936, 3150}}"; - sepNavSelRange = "{3007, 0}"; - sepNavVisRange = "{2889, 397}"; - sepNavWindowFrame = "{{15, 0}, {952, 876}}"; - }; - }; - 4DC40DE709150CEF0029A2A6 /* OgreFindPanelController.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {929, 504}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRange = "{0, 720}"; - }; - }; - 4DC40DE809150CEF0029A2A6 /* OgreFindPanelController.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {929, 909}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRange = "{642, 594}"; - }; - }; - 4DC40DE909150CEF0029A2A6 /* OgreAdvancedFindPanelController.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {929, 2600}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRange = "{4869, 1427}"; - }; - }; - 4DC40DEA09150CEF0029A2A6 /* OgreAdvancedFindPanelController.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {841, 22559}}"; - sepNavSelRange = "{5832, 7}"; - sepNavVisRange = "{5682, 338}"; - sepNavVisRect = "{{0, 12331}, {581, 650}}"; - }; - }; - 4DC40DEC09150CEF0029A2A6 /* OgreAFPCEscapeCharacterFormatter.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {841, 2067}}"; - sepNavSelRange = "{960, 0}"; - sepNavVisRange = "{673, 406}"; - }; - }; - 4DC40DEF09150CEF0029A2A6 /* OgreAdvancedFindPanel.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {929, 650}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRange = "{0, 1183}"; - }; - }; - 4DC40DF309150CF00029A2A6 /* OgreAttachableWindowAcceptee.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {929, 529}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRange = "{0, 872}"; - sepNavVisRect = "{{0, 0}, {97, 649}}"; - }; - }; - 4DC40DF409150CF00029A2A6 /* OgreAttachableWindowAcceptee.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {97, 2226}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRect = "{{0, 0}, {97, 649}}"; - }; - }; - 4DC40DF509150CF00029A2A6 /* OgreAttachableWindowMediator.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {929, 650}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRange = "{0, 1294}"; - }; - }; - 4DC40DF609150CF00029A2A6 /* OgreAttachableWindowMediator.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {841, 4966}}"; - sepNavSelRange = "{1272, 7}"; - sepNavVisRange = "{1073, 335}"; - sepNavVisRect = "{{0, 4793}, {679, 345}}"; - }; - }; - 4DC40DF709150CF00029A2A6 /* OgreAttachableWindowAcceptor.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {929, 529}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRange = "{0, 643}"; - }; - }; - 4DC40DF809150CF00029A2A6 /* OgreAttachableWindowAcceptor.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {841, 857}}"; - sepNavSelRange = "{732, 8}"; - sepNavVisRange = "{469, 570}"; - }; - }; - 4DC40E5509150CF30029A2A6 /* OgreKit.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {929, 744}}"; - sepNavSelRange = "{280, 0}"; - sepNavVisRange = "{0, 1688}"; - sepNavVisRect = "{{0, 1274}, {97, 649}}"; - }; - }; - 4DC40E5609150CF30029A2A6 /* OgreKit.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {929, 769}}"; - sepNavSelRange = "{356, 0}"; - sepNavVisRange = "{0, 845}"; - sepNavVisRect = "{{0, 0}, {715, 769}}"; - }; - }; - 4DC40E5809150CF40029A2A6 /* version.plist */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {483, 252}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRect = "{{0, 0}, {0, 0}}"; - }; - }; - 4DC4104009150D0D0029A2A6 /* OgreTest.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1181, 4074}}"; - sepNavSelRange = "{6838, 0}"; - sepNavVisRange = "{6794, 529}"; - }; - }; - 4DC4104209150D0E0029A2A6 /* Calc.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1405, 2054}}"; - sepNavSelRange = "{1150, 7}"; - sepNavVisRange = "{1048, 272}"; - sepNavWindowFrame = "{{15, 0}, {952, 876}}"; - }; - }; - 4DC4104309150D0E0029A2A6 /* OgreTest_Prefix.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {929, 593}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRange = "{0, 368}"; - }; - }; - 4DC4104409150D0E0029A2A6 /* main.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {929, 593}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRange = "{0, 387}"; - }; - }; - 4DC4105809150D550029A2A6 /* OgreFindPanelTest_Prefix.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {929, 593}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRange = "{0, 378}"; - }; - }; - 4DC4105E09150D550029A2A6 /* MyTextDocument.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {841, 1688}}"; - sepNavSelRange = "{848, 0}"; - sepNavVisRange = "{823, 235}"; - sepNavWindowFrame = "{{15, 0}, {952, 876}}"; - }; - }; - 4DC4106009150D550029A2A6 /* MyRTFDocument.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {841, 1155}}"; - sepNavSelRange = "{897, 7}"; - sepNavVisRange = "{690, 334}"; - sepNavWindowFrame = "{{15, 0}, {952, 876}}"; - }; - }; - 4DC4106309150D550029A2A6 /* MyTableDocument.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1104, 6264}}"; - sepNavSelRange = "{1040, 7}"; - sepNavVisRange = "{755, 428}"; - sepNavWindowFrame = "{{146, 0}, {1055, 878}}"; - }; - }; - 4DC4106509150D550029A2A6 /* MyTableColumnSheet.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1181, 1092}}"; - sepNavSelRange = "{1344, 7}"; - sepNavVisRange = "{1078, 462}"; - sepNavWindowFrame = "{{402, 2}, {952, 876}}"; - }; - }; - 4DC4106809150D550029A2A6 /* MyOutlineDocument.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1069, 2793}}"; - sepNavSelRange = "{2151, 7}"; - sepNavVisRange = "{1829, 547}"; - sepNavVisRect = "{{0, 1375}, {679, 345}}"; - }; - }; - 4DC4106909150D550029A2A6 /* MyFileWrapper.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {832, 546}}"; - sepNavSelRange = "{790, 0}"; - sepNavVisRange = "{426, 477}"; - sepNavVisRect = "{{0, 243}, {679, 345}}"; - }; - }; - 4DC4106A09150D550029A2A6 /* MyFileWrapper.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1118, 1742}}"; - sepNavSelRange = "{2448, 0}"; - sepNavVisRange = "{2310, 243}"; - sepNavWindowFrame = "{{171, 2}, {952, 876}}"; - }; - }; - 4DC4106F09150D550029A2A6 /* MyTableDocumentWithCocoaBinding.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {841, 991}}"; - sepNavSelRange = "{752, 7}"; - sepNavVisRange = "{595, 298}"; - }; - }; - 4DC4107109150D550029A2A6 /* MyTableRowModel.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {841, 793}}"; - sepNavSelRange = "{624, 0}"; - sepNavVisRange = "{535, 239}"; - sepNavWindowFrame = "{{15, 0}, {952, 876}}"; - }; - }; - 4DC4108409150D640029A2A6 /* MyFindPanelController.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {929, 626}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRange = "{0, 1067}"; - }; - }; - 4DC4108509150D640029A2A6 /* MyFindPanelController.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {841, 3539}}"; - sepNavSelRange = "{945, 7}"; - sepNavVisRange = "{934, 339}"; - }; - }; - 4DC4108909150D640029A2A6 /* MyDocument.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1531, 1214}}"; - sepNavSelRange = "{1790, 0}"; - sepNavVisRange = "{698, 1819}"; - sepNavWindowFrame = "{{15, 0}, {952, 876}}"; - }; - }; - 4DC4108A09150D640029A2A6 /* MyMenuController.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {929, 618}}"; - sepNavSelRange = "{0, 289}"; - sepNavVisRange = "{0, 464}"; - }; - }; - 4DC4108D09150D650029A2A6 /* MyFindPanelExample_Prefix.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {929, 618}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRange = "{0, 380}"; - }; - }; - 4DC412B3091519A60029A2A6 /* All */ = { - activeExec = 0; - }; - 4DD4317D09838E84008256B3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 4DF530BB0915221700475575 /* ReplaceWithAttributesTest.m */; - name = "ReplaceWithAttributesTest.m: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 903; - vrLoc = 0; - }; - 4DDD662211426D7A003D4FD7 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 4DC4104209150D0E0029A2A6 /* Calc.m */; - name = "Calc.m: 17"; - rLen = 0; - rLoc = 343; - rType = 0; - vrLen = 1369; - vrLoc = 0; - }; - 4DDD662511426D7A003D4FD7 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 4DC40D4B09150CEA0029A2A6 /* ReadMe.rtf */; - name = "ReadMe.rtf: 34"; - rLen = 0; - rLoc = 1438; - rType = 0; - vrLen = 1438; - vrLoc = 0; - }; - 4DDD662611426D7A003D4FD7 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 4DC40D4C09150CEA0029A2A6 /* License.txt */; - name = "License.txt: 34"; - rLen = 0; - rLoc = 1613; - rType = 0; - vrLen = 1613; - vrLoc = 0; - }; - 4DF530BA0915221700475575 /* ReplaceWithAttributesTest_Prefix.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {701, 523}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRange = "{0, 386}"; - sepNavVisRect = "{{0, 0}, {679, 345}}"; - }; - }; - 4DF530BB0915221700475575 /* ReplaceWithAttributesTest.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {581, 1218}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRect = "{{0, 0}, {581, 450}}"; - }; - }; - 4DF530BC0915221700475575 /* ReplaceWithAttributesTest.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {679, 490}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRect = "{{0, 0}, {679, 345}}"; - }; - }; - 4DF530CF0915226200475575 /* English */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {701, 523}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRange = "{0, 604}"; - sepNavVisRect = "{{0, 0}, {581, 650}}"; - }; - }; - 8DC2EF4F0486A6940098B216 /* OgreKit (Full Features) */ = { - activeExec = 0; - }; -} diff --git a/OgreKit/OgreKit.xcodeproj/project.pbxproj b/OgreKit/OgreKit.xcodeproj/project.pbxproj index d4b5388418..8dc0c4ad7d 100644 --- a/OgreKit/OgreKit.xcodeproj/project.pbxproj +++ b/OgreKit/OgreKit.xcodeproj/project.pbxproj @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 42; + objectVersion = 46; objects = { /* Begin PBXAggregateTarget section */ @@ -708,29 +708,29 @@ 4DC4116A091514030029A2A6 /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/OgreAdvancedFindPanel.nib; sourceTree = ""; }; 4DC4116C091514030029A2A6 /* English */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/OgreTextFinderLocalizable.strings; sourceTree = ""; }; 4DC41175091514240029A2A6 /* Dutch */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = Dutch; path = Dutch.lproj/OgreAdvancedFindPanel.nib; sourceTree = ""; }; - 4DC411770915142C0029A2A6 /* Dutch */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = Dutch; path = Dutch.lproj/OgreAPFCLocalizable.strings; sourceTree = ""; }; - 4DC411780915142C0029A2A6 /* Dutch */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = Dutch; path = Dutch.lproj/OgreTextFinderLocalizable.strings; sourceTree = ""; }; + 4DC411770915142C0029A2A6 /* Dutch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = Dutch; path = Dutch.lproj/OgreAPFCLocalizable.strings; sourceTree = ""; }; + 4DC411780915142C0029A2A6 /* Dutch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = Dutch; path = Dutch.lproj/OgreTextFinderLocalizable.strings; sourceTree = ""; }; 4DC4117A0915143A0029A2A6 /* French */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = French; path = French.lproj/OgreAdvancedFindPanel.nib; sourceTree = ""; }; - 4DC4117B0915143A0029A2A6 /* French */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = French; path = French.lproj/OgreAPFCLocalizable.strings; sourceTree = ""; }; - 4DC4117C0915143A0029A2A6 /* French */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = French; path = French.lproj/OgreTextFinderLocalizable.strings; sourceTree = ""; }; + 4DC4117B0915143A0029A2A6 /* French */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = French; path = French.lproj/OgreAPFCLocalizable.strings; sourceTree = ""; }; + 4DC4117C0915143A0029A2A6 /* French */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = French; path = French.lproj/OgreTextFinderLocalizable.strings; sourceTree = ""; }; 4DC4117E091514450029A2A6 /* German */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = German; path = German.lproj/OgreAdvancedFindPanel.nib; sourceTree = ""; }; - 4DC4117F091514450029A2A6 /* German */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = German; path = German.lproj/OgreAPFCLocalizable.strings; sourceTree = ""; }; - 4DC41180091514450029A2A6 /* German */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = German; path = German.lproj/OgreTextFinderLocalizable.strings; sourceTree = ""; }; + 4DC4117F091514450029A2A6 /* German */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = German; path = German.lproj/OgreAPFCLocalizable.strings; sourceTree = ""; }; + 4DC41180091514450029A2A6 /* German */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = German; path = German.lproj/OgreTextFinderLocalizable.strings; sourceTree = ""; }; 4DC41182091514510029A2A6 /* Italian */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = Italian; path = Italian.lproj/OgreAdvancedFindPanel.nib; sourceTree = ""; }; - 4DC41183091514510029A2A6 /* Italian */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = Italian; path = Italian.lproj/OgreAPFCLocalizable.strings; sourceTree = ""; }; - 4DC41184091514510029A2A6 /* Italian */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = Italian; path = Italian.lproj/OgreTextFinderLocalizable.strings; sourceTree = ""; }; + 4DC41183091514510029A2A6 /* Italian */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = Italian; path = Italian.lproj/OgreAPFCLocalizable.strings; sourceTree = ""; }; + 4DC41184091514510029A2A6 /* Italian */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = Italian; path = Italian.lproj/OgreTextFinderLocalizable.strings; sourceTree = ""; }; 4DC411860915145D0029A2A6 /* Japanese */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = Japanese; path = Japanese.lproj/OgreAdvancedFindPanel.nib; sourceTree = ""; }; - 4DC411870915145D0029A2A6 /* Japanese */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = Japanese; path = Japanese.lproj/OgreAPFCLocalizable.strings; sourceTree = ""; }; - 4DC411880915145D0029A2A6 /* Japanese */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = Japanese; path = Japanese.lproj/OgreTextFinderLocalizable.strings; sourceTree = ""; }; + 4DC411870915145D0029A2A6 /* Japanese */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = Japanese; path = Japanese.lproj/OgreAPFCLocalizable.strings; sourceTree = ""; }; + 4DC411880915145D0029A2A6 /* Japanese */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = Japanese; path = Japanese.lproj/OgreTextFinderLocalizable.strings; sourceTree = ""; }; 4DC4118A091514680029A2A6 /* Portuguese */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = Portuguese; path = Portuguese.lproj/OgreAdvancedFindPanel.nib; sourceTree = ""; }; - 4DC4118B091514680029A2A6 /* Portuguese */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = Portuguese; path = Portuguese.lproj/OgreAPFCLocalizable.strings; sourceTree = ""; }; - 4DC4118C091514680029A2A6 /* Portuguese */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = Portuguese; path = Portuguese.lproj/OgreTextFinderLocalizable.strings; sourceTree = ""; }; + 4DC4118B091514680029A2A6 /* Portuguese */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = Portuguese; path = Portuguese.lproj/OgreAPFCLocalizable.strings; sourceTree = ""; }; + 4DC4118C091514680029A2A6 /* Portuguese */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = Portuguese; path = Portuguese.lproj/OgreTextFinderLocalizable.strings; sourceTree = ""; }; 4DC4118E091514710029A2A6 /* Romanian */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = Romanian; path = Romanian.lproj/OgreAdvancedFindPanel.nib; sourceTree = ""; }; - 4DC4118F091514710029A2A6 /* Romanian */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = Romanian; path = Romanian.lproj/OgreAPFCLocalizable.strings; sourceTree = ""; }; - 4DC41190091514710029A2A6 /* Romanian */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = Romanian; path = Romanian.lproj/OgreTextFinderLocalizable.strings; sourceTree = ""; }; + 4DC4118F091514710029A2A6 /* Romanian */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = Romanian; path = Romanian.lproj/OgreAPFCLocalizable.strings; sourceTree = ""; }; + 4DC41190091514710029A2A6 /* Romanian */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = Romanian; path = Romanian.lproj/OgreTextFinderLocalizable.strings; sourceTree = ""; }; 4DC411920915147B0029A2A6 /* Spanish */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = Spanish; path = Spanish.lproj/OgreAdvancedFindPanel.nib; sourceTree = ""; }; - 4DC411930915147B0029A2A6 /* Spanish */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = Spanish; path = Spanish.lproj/OgreAPFCLocalizable.strings; sourceTree = ""; }; - 4DC411940915147B0029A2A6 /* Spanish */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = Spanish; path = Spanish.lproj/OgreTextFinderLocalizable.strings; sourceTree = ""; }; + 4DC411930915147B0029A2A6 /* Spanish */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = Spanish; path = Spanish.lproj/OgreAPFCLocalizable.strings; sourceTree = ""; }; + 4DC411940915147B0029A2A6 /* Spanish */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = Spanish; path = Spanish.lproj/OgreTextFinderLocalizable.strings; sourceTree = ""; }; 4DC411C8091514D70029A2A6 /* English */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = English; path = RegularExpression/English.lproj/InfoPlist.strings; sourceTree = ""; }; 4DC4134009151C2D0029A2A6 /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = RegularExpressionTest/English.lproj/MainMenu.nib; sourceTree = ""; }; 4DC4134209151C2E0029A2A6 /* English */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = English; path = RegularExpressionTest/English.lproj/InfoPlist.strings; sourceTree = ""; }; @@ -1766,8 +1766,11 @@ /* Begin PBXProject section */ 0867D690FE84028FC02AAC07 /* Project object */ = { isa = PBXProject; + attributes = { + LastUpgradeCheck = 0500; + }; buildConfigurationList = 4DC40BA3091509DC0029A2A6 /* Build configuration list for PBXProject "OgreKit" */; - compatibilityVersion = "Xcode 2.4"; + compatibilityVersion = "Xcode 3.2"; developmentRegion = English; hasScannedForEncodings = 1; knownRegions = ( @@ -2344,21 +2347,26 @@ 4D82DCD609B9ECF8007F03B0 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = NO; GCC_DYNAMIC_NO_PIC = NO; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_OPTIMIZATION_LEVEL = 0; + MACOSX_DEPLOYMENT_TARGET = 10.6; PRODUCT_NAME = Oniguruma; + SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.8.sdk"; }; name = Debug; }; 4D82DCD709B9ECF8007F03B0 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = YES; - GCC_ENABLE_FIX_AND_CONTINUE = NO; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; + MACOSX_DEPLOYMENT_TARGET = 10.6; PRODUCT_NAME = Oniguruma; + SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.8.sdk"; ZERO_LINK = NO; }; name = Release; @@ -2366,7 +2374,10 @@ 4D82DCD809B9ECF8007F03B0 /* Default */ = { isa = XCBuildConfiguration; buildSettings = { + COMBINE_HIDPI_IMAGES = YES; + MACOSX_DEPLOYMENT_TARGET = 10.6; PRODUCT_NAME = Oniguruma; + SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.8.sdk"; }; name = Default; }; @@ -2374,23 +2385,25 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = NO; GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_FIX_AND_CONTINUE = YES; GCC_MODEL_TUNING = G5; GCC_OPTIMIZATION_LEVEL = 0; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h"; - INFOPLIST_FILE = "GC Test-Info.plist"; + INFOPLIST_FILE = "GCTest/GC Test-Info.plist"; INSTALL_PATH = "$(HOME)/Applications"; + MACOSX_DEPLOYMENT_TARGET = 10.6; OTHER_LDFLAGS = ( "-framework", Foundation, "-framework", AppKit, ); - PREBINDING = NO; - PRODUCT_NAME = "GC Test"; + PRODUCT_NAME = GCTest; + SDKROOT = macosx; }; name = Debug; }; @@ -2398,12 +2411,10 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = "$(ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1)"; - ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "x86_64 i386 ppc"; + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = YES; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - GCC_ENABLE_FIX_AND_CONTINUE = NO; - GCC_ENABLE_OBJC_GC = required; GCC_MODEL_TUNING = G5; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h"; @@ -2416,9 +2427,8 @@ "-framework", AppKit, ); - PREBINDING = NO; PRODUCT_NAME = GCTest; - SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.6.sdk"; + SDKROOT = macosx; ZERO_LINK = NO; }; name = Release; @@ -2427,42 +2437,40 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - GCC_ENABLE_FIX_AND_CONTINUE = YES; + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + COMBINE_HIDPI_IMAGES = YES; GCC_MODEL_TUNING = G5; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h"; - INFOPLIST_FILE = "GC Test-Info.plist"; + INFOPLIST_FILE = "GCTest/GC Test-Info.plist"; INSTALL_PATH = "$(HOME)/Applications"; + MACOSX_DEPLOYMENT_TARGET = 10.6; OTHER_LDFLAGS = ( "-framework", Foundation, "-framework", AppKit, ); - PREBINDING = NO; - PRODUCT_NAME = "GC Test"; + PRODUCT_NAME = GCTest; + SDKROOT = macosx; }; name = Default; }; 4DC40BA0091509DC0029A2A6 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1)"; - ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1 = "ppc i386"; + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = NO; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; FRAMEWORK_VERSION = A; GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_FIX_AND_CONTINUE = YES; - GCC_ENABLE_OBJC_GC = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_MODEL_TUNING = G5; GCC_OPTIMIZATION_LEVEL = 0; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = RegularExpression/OgreKit_Prefix.pch; - GCC_VERSION = 4.0; - GCC_VERSION_ppc = 4.0; GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNUSED_VARIABLE = YES; INFOPLIST_FILE = "RegularExpression/OgreKit-Info.plist"; @@ -2473,16 +2481,13 @@ ); LIBRARY_STYLE = DYNAMIC; MACH_O_TYPE = mh_dylib; - MACOSX_DEPLOYMENT_TARGET = 10.4; - MACOSX_DEPLOYMENT_TARGET_ppc = 10.4; + MACOSX_DEPLOYMENT_TARGET = 10.6; OTHER_LDFLAGS = ( "-seg1addr", 0x32000000, ); - PREBINDING = NO; PRODUCT_NAME = OgreKit; - SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; - SDKROOT_ppc = /Developer/SDKs/MacOSX10.4u.sdk; + SDKROOT = macosx; SKIP_INSTALL = YES; WARNING_CFLAGS = ( "-Wmost", @@ -2497,20 +2502,16 @@ 4DC40BA1091509DC0029A2A6 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1)"; - ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1 = "ppc i386"; + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; FRAMEWORK_VERSION = A; - GCC_ENABLE_FIX_AND_CONTINUE = NO; - GCC_ENABLE_OBJC_GC = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_MODEL_TUNING = G5; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = RegularExpression/OgreKit_Prefix.pch; - GCC_VERSION = 4.0; - GCC_VERSION_ppc = 4.0; GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNUSED_VARIABLE = YES; INFOPLIST_FILE = "RegularExpression/OgreKit-Info.plist"; @@ -2521,16 +2522,13 @@ ); LIBRARY_STYLE = DYNAMIC; MACH_O_TYPE = mh_dylib; - MACOSX_DEPLOYMENT_TARGET = 10.4; - MACOSX_DEPLOYMENT_TARGET_ppc = 10.4; + MACOSX_DEPLOYMENT_TARGET = 10.6; OTHER_LDFLAGS = ( "-seg1addr", 0x32000000, ); - PREBINDING = NO; PRODUCT_NAME = OgreKit; - SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; - SDKROOT_ppc = /Developer/SDKs/MacOSX10.4u.sdk; + SDKROOT = macosx; SKIP_INSTALL = YES; WARNING_CFLAGS = ( "-Wmost", @@ -2545,18 +2543,15 @@ 4DC40BA2091509DC0029A2A6 /* Default */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1)"; - ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1 = "ppc i386"; + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + COMBINE_HIDPI_IMAGES = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; FRAMEWORK_VERSION = A; - GCC_ENABLE_OBJC_GC = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_MODEL_TUNING = G5; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = RegularExpression/OgreKit_Prefix.pch; - GCC_VERSION = 4.0; - GCC_VERSION_ppc = 4.0; GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNUSED_VARIABLE = YES; INFOPLIST_FILE = "RegularExpression/OgreKit-Info.plist"; @@ -2567,16 +2562,13 @@ ); LIBRARY_STYLE = DYNAMIC; MACH_O_TYPE = mh_dylib; - MACOSX_DEPLOYMENT_TARGET = 10.4; - MACOSX_DEPLOYMENT_TARGET_ppc = 10.4; + MACOSX_DEPLOYMENT_TARGET = 10.6; OTHER_LDFLAGS = ( "-seg1addr", 0x32000000, ); - PREBINDING = NO; PRODUCT_NAME = OgreKit; - SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; - SDKROOT_ppc = /Developer/SDKs/MacOSX10.4u.sdk; + SDKROOT = macosx; SKIP_INSTALL = YES; WARNING_CFLAGS = ( "-Wmost", @@ -2590,45 +2582,47 @@ 4DC40BA4091509DC0029A2A6 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - MACOSX_DEPLOYMENT_TARGET = 10.4; - SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + MACOSX_DEPLOYMENT_TARGET = 10.6; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = macosx; }; name = Debug; }; 4DC40BA5091509DC0029A2A6 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - MACOSX_DEPLOYMENT_TARGET = 10.4; - SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + MACOSX_DEPLOYMENT_TARGET = 10.6; + SDKROOT = macosx; }; name = Release; }; 4DC40BA6091509DC0029A2A6 /* Default */ = { isa = XCBuildConfiguration; buildSettings = { - MACOSX_DEPLOYMENT_TARGET = 10.4; - SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + MACOSX_DEPLOYMENT_TARGET = 10.6; + SDKROOT = macosx; }; name = Default; }; 4DC40BF909150BDB0029A2A6 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1)"; - ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "x86_64 i386 ppc"; + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = NO; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; FRAMEWORK_VERSION = A; GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_FIX_AND_CONTINUE = YES; - GCC_ENABLE_OBJC_GC = YES; + GCC_ENABLE_OBJC_GC = supported; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_MODEL_TUNING = G5; GCC_OPTIMIZATION_LEVEL = 0; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = RegularExpression/OgreKit_Prefix.pch; - GCC_VERSION_ppc = 4.0; GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNUSED_VARIABLE = YES; INFOPLIST_FILE = "RegularExpression/OgreKit-Info.plist"; @@ -2640,15 +2634,12 @@ LIBRARY_STYLE = DYNAMIC; MACH_O_TYPE = mh_dylib; MACOSX_DEPLOYMENT_TARGET = 10.6; - MACOSX_DEPLOYMENT_TARGET_ppc = 10.4; OTHER_LDFLAGS = ( "-seg1addr", 0x32000000, ); - PREBINDING = NO; PRODUCT_NAME = OgreKit; - SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.6.sdk"; - SDKROOT_ppc = /Developer/SDKs/MacOSX10.4u.sdk; + SDKROOT = macosx; SKIP_INSTALL = YES; WARNING_CFLAGS = ( "-Wmost", @@ -2663,19 +2654,17 @@ 4DC40BFA09150BDB0029A2A6 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1)"; - ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "x86_64 i386 ppc"; + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; FRAMEWORK_VERSION = A; - GCC_ENABLE_FIX_AND_CONTINUE = NO; - GCC_ENABLE_OBJC_GC = YES; + GCC_ENABLE_OBJC_GC = supported; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_MODEL_TUNING = G5; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = RegularExpression/OgreKit_Prefix.pch; - GCC_VERSION_ppc = 4.0; GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNUSED_VARIABLE = YES; INFOPLIST_FILE = "RegularExpression/OgreKit-Info.plist"; @@ -2687,15 +2676,12 @@ LIBRARY_STYLE = DYNAMIC; MACH_O_TYPE = mh_dylib; MACOSX_DEPLOYMENT_TARGET = 10.6; - MACOSX_DEPLOYMENT_TARGET_ppc = 10.4; OTHER_LDFLAGS = ( "-seg1addr", 0x32000000, ); - PREBINDING = NO; PRODUCT_NAME = OgreKit; - SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.6.sdk"; - SDKROOT_ppc = /Developer/SDKs/MacOSX10.4u.sdk; + SDKROOT = macosx; SKIP_INSTALL = YES; WARNING_CFLAGS = ( "-Wmost", @@ -2710,17 +2696,16 @@ 4DC40BFB09150BDB0029A2A6 /* Default */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1)"; - ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "x86_64 i386 ppc"; + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + COMBINE_HIDPI_IMAGES = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; FRAMEWORK_VERSION = A; - GCC_ENABLE_OBJC_GC = YES; + GCC_ENABLE_OBJC_GC = supported; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_MODEL_TUNING = G5; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = RegularExpression/OgreKit_Prefix.pch; - GCC_VERSION_ppc = 4.0; GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNUSED_VARIABLE = YES; INFOPLIST_FILE = "RegularExpression/OgreKit-Info.plist"; @@ -2732,15 +2717,12 @@ LIBRARY_STYLE = DYNAMIC; MACH_O_TYPE = mh_dylib; MACOSX_DEPLOYMENT_TARGET = 10.6; - MACOSX_DEPLOYMENT_TARGET_ppc = 10.4; OTHER_LDFLAGS = ( "-seg1addr", 0x32000000, ); - PREBINDING = NO; PRODUCT_NAME = OgreKit; - SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.6.sdk"; - SDKROOT_ppc = /Developer/SDKs/MacOSX10.4u.sdk; + SDKROOT = macosx; SKIP_INSTALL = YES; WARNING_CFLAGS = ( "-Wmost", @@ -2754,20 +2736,17 @@ 4DC40C0809150C290029A2A6 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1)"; - ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "x86_64 i386 ppc"; + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = NO; - GCC_ENABLE_OBJC_GC = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_MODEL_TUNING = G5; GCC_OPTIMIZATION_LEVEL = 0; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = RegularExpressionTest/OgreTest_Prefix.h; - GCC_VERSION_ppc = 4.0; INFOPLIST_FILE = "RegularExpressionTest/OgreTest-Info.plist"; INSTALL_PATH = "$(USER_APPS_DIR)"; MACOSX_DEPLOYMENT_TARGET = 10.6; - MACOSX_DEPLOYMENT_TARGET_ppc = 10.4; OTHER_CFLAGS = ""; OTHER_LDFLAGS = ( "-framework", @@ -2776,10 +2755,8 @@ AppKit, ); OTHER_REZFLAGS = ""; - PREBINDING = NO; PRODUCT_NAME = OgreTest; - SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.6.sdk"; - SDKROOT_ppc = /Developer/SDKs/MacOSX10.4u.sdk; + SDKROOT = macosx; SECTORDER_FLAGS = ""; WARNING_CFLAGS = ( "-Wmost", @@ -2792,20 +2769,17 @@ 4DC40C0909150C290029A2A6 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1)"; - ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "x86_64 i386 ppc"; + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = YES; - GCC_ENABLE_OBJC_GC = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_MODEL_TUNING = G5; GCC_OPTIMIZATION_LEVEL = 0; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = RegularExpressionTest/OgreTest_Prefix.h; - GCC_VERSION_ppc = 4.0; INFOPLIST_FILE = "RegularExpressionTest/OgreTest-Info.plist"; INSTALL_PATH = "$(USER_APPS_DIR)"; MACOSX_DEPLOYMENT_TARGET = 10.6; - MACOSX_DEPLOYMENT_TARGET_ppc = 10.4; OTHER_CFLAGS = ""; OTHER_LDFLAGS = ( "-framework", @@ -2814,10 +2788,8 @@ AppKit, ); OTHER_REZFLAGS = ""; - PREBINDING = NO; PRODUCT_NAME = OgreTest; - SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.6.sdk"; - SDKROOT_ppc = /Developer/SDKs/MacOSX10.4u.sdk; + SDKROOT = macosx; SECTORDER_FLAGS = ""; WARNING_CFLAGS = ( "-Wmost", @@ -2830,19 +2802,16 @@ 4DC40C0A09150C290029A2A6 /* Default */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1)"; - ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "x86_64 i386 ppc"; - GCC_ENABLE_OBJC_GC = YES; + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + COMBINE_HIDPI_IMAGES = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_MODEL_TUNING = G5; GCC_OPTIMIZATION_LEVEL = 0; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = RegularExpressionTest/OgreTest_Prefix.h; - GCC_VERSION_ppc = 4.0; INFOPLIST_FILE = "RegularExpressionTest/OgreTest-Info.plist"; INSTALL_PATH = "$(USER_APPS_DIR)"; MACOSX_DEPLOYMENT_TARGET = 10.6; - MACOSX_DEPLOYMENT_TARGET_ppc = 10.4; OTHER_CFLAGS = ""; OTHER_LDFLAGS = ( "-framework", @@ -2851,10 +2820,8 @@ AppKit, ); OTHER_REZFLAGS = ""; - PREBINDING = NO; PRODUCT_NAME = OgreTest; - SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.6.sdk"; - SDKROOT_ppc = /Developer/SDKs/MacOSX10.4u.sdk; + SDKROOT = macosx; SECTORDER_FLAGS = ""; WARNING_CFLAGS = ( "-Wmost", @@ -2867,20 +2834,17 @@ 4DC40C1309150C400029A2A6 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1)"; - ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "x86_64 i386 ppc"; + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = NO; - GCC_ENABLE_OBJC_GC = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_MODEL_TUNING = G5; GCC_OPTIMIZATION_LEVEL = 0; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = FindPanelTest/OgreFindPanelTest_Prefix.h; - GCC_VERSION_ppc = 4.0; INFOPLIST_FILE = "FindPanelTest/FindPanelTest-Info.plist"; INSTALL_PATH = "$(USER_APPS_DIR)"; MACOSX_DEPLOYMENT_TARGET = 10.6; - MACOSX_DEPLOYMENT_TARGET_ppc = 10.4; OTHER_CFLAGS = ""; OTHER_LDFLAGS = ( "-framework", @@ -2889,10 +2853,8 @@ AppKit, ); OTHER_REZFLAGS = ""; - PREBINDING = NO; PRODUCT_NAME = OgreFindPanelTest; - SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.6.sdk"; - SDKROOT_ppc = /Developer/SDKs/MacOSX10.4u.sdk; + SDKROOT = macosx; SECTORDER_FLAGS = ""; WARNING_CFLAGS = "-Wmost"; }; @@ -2901,20 +2863,17 @@ 4DC40C1409150C400029A2A6 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1)"; - ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "x86_64 i386 ppc"; + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = YES; - GCC_ENABLE_OBJC_GC = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_MODEL_TUNING = G5; GCC_OPTIMIZATION_LEVEL = 0; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = FindPanelTest/OgreFindPanelTest_Prefix.h; - GCC_VERSION_ppc = 4.0; INFOPLIST_FILE = "FindPanelTest/FindPanelTest-Info.plist"; INSTALL_PATH = "$(USER_APPS_DIR)"; MACOSX_DEPLOYMENT_TARGET = 10.6; - MACOSX_DEPLOYMENT_TARGET_ppc = 10.4; OTHER_CFLAGS = ""; OTHER_LDFLAGS = ( "-framework", @@ -2923,10 +2882,8 @@ AppKit, ); OTHER_REZFLAGS = ""; - PREBINDING = NO; PRODUCT_NAME = OgreFindPanelTest; - SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.6.sdk"; - SDKROOT_ppc = /Developer/SDKs/MacOSX10.4u.sdk; + SDKROOT = macosx; SECTORDER_FLAGS = ""; WARNING_CFLAGS = "-Wmost"; }; @@ -2935,19 +2892,16 @@ 4DC40C1509150C400029A2A6 /* Default */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1)"; - ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "x86_64 i386 ppc"; - GCC_ENABLE_OBJC_GC = YES; + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + COMBINE_HIDPI_IMAGES = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_MODEL_TUNING = G5; GCC_OPTIMIZATION_LEVEL = 0; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = FindPanelTest/OgreFindPanelTest_Prefix.h; - GCC_VERSION_ppc = 4.0; INFOPLIST_FILE = "FindPanelTest/FindPanelTest-Info.plist"; INSTALL_PATH = "$(USER_APPS_DIR)"; MACOSX_DEPLOYMENT_TARGET = 10.6; - MACOSX_DEPLOYMENT_TARGET_ppc = 10.4; OTHER_CFLAGS = ""; OTHER_LDFLAGS = ( "-framework", @@ -2956,10 +2910,8 @@ AppKit, ); OTHER_REZFLAGS = ""; - PREBINDING = NO; PRODUCT_NAME = OgreFindPanelTest; - SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.6.sdk"; - SDKROOT_ppc = /Developer/SDKs/MacOSX10.4u.sdk; + SDKROOT = macosx; SECTORDER_FLAGS = ""; WARNING_CFLAGS = "-Wmost"; }; @@ -2968,20 +2920,17 @@ 4DC40C1E09150C740029A2A6 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1)"; - ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "x86_64 i386 ppc"; + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = NO; - GCC_ENABLE_OBJC_GC = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_MODEL_TUNING = G5; GCC_OPTIMIZATION_LEVEL = 0; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = MyFindPanelExample/MyFindPanelExample_Prefix.h; - GCC_VERSION_ppc = 4.0; INFOPLIST_FILE = "MyFindPanelExample/MyFindPanelExample-Info.plist"; INSTALL_PATH = "$(USER_APPS_DIR)"; MACOSX_DEPLOYMENT_TARGET = 10.6; - MACOSX_DEPLOYMENT_TARGET_ppc = 10.4; OTHER_CFLAGS = ""; OTHER_LDFLAGS = ( "-framework", @@ -2990,10 +2939,8 @@ AppKit, ); OTHER_REZFLAGS = ""; - PREBINDING = NO; PRODUCT_NAME = MyFindPanelExample; - SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.6.sdk"; - SDKROOT_ppc = /Developer/SDKs/MacOSX10.4u.sdk; + SDKROOT = macosx; SECTORDER_FLAGS = ""; WARNING_CFLAGS = "-Wmost"; }; @@ -3002,20 +2949,17 @@ 4DC40C1F09150C740029A2A6 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1)"; - ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "x86_64 i386 ppc"; + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = YES; - GCC_ENABLE_OBJC_GC = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_MODEL_TUNING = G5; GCC_OPTIMIZATION_LEVEL = 0; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = MyFindPanelExample/MyFindPanelExample_Prefix.h; - GCC_VERSION_ppc = 4.0; INFOPLIST_FILE = "MyFindPanelExample/MyFindPanelExample-Info.plist"; INSTALL_PATH = "$(USER_APPS_DIR)"; MACOSX_DEPLOYMENT_TARGET = 10.6; - MACOSX_DEPLOYMENT_TARGET_ppc = 10.4; OTHER_CFLAGS = ""; OTHER_LDFLAGS = ( "-framework", @@ -3024,10 +2968,8 @@ AppKit, ); OTHER_REZFLAGS = ""; - PREBINDING = NO; PRODUCT_NAME = MyFindPanelExample; - SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.6.sdk"; - SDKROOT_ppc = /Developer/SDKs/MacOSX10.4u.sdk; + SDKROOT = macosx; SECTORDER_FLAGS = ""; WARNING_CFLAGS = "-Wmost"; }; @@ -3036,19 +2978,16 @@ 4DC40C2009150C740029A2A6 /* Default */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1)"; - ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "x86_64 i386 ppc"; - GCC_ENABLE_OBJC_GC = YES; + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + COMBINE_HIDPI_IMAGES = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_MODEL_TUNING = G5; GCC_OPTIMIZATION_LEVEL = 0; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = MyFindPanelExample/MyFindPanelExample_Prefix.h; - GCC_VERSION_ppc = 4.0; INFOPLIST_FILE = "MyFindPanelExample/MyFindPanelExample-Info.plist"; INSTALL_PATH = "$(USER_APPS_DIR)"; MACOSX_DEPLOYMENT_TARGET = 10.6; - MACOSX_DEPLOYMENT_TARGET_ppc = 10.4; OTHER_CFLAGS = ""; OTHER_LDFLAGS = ( "-framework", @@ -3057,10 +2996,8 @@ AppKit, ); OTHER_REZFLAGS = ""; - PREBINDING = NO; PRODUCT_NAME = MyFindPanelExample; - SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.6.sdk"; - SDKROOT_ppc = /Developer/SDKs/MacOSX10.4u.sdk; + SDKROOT = macosx; SECTORDER_FLAGS = ""; WARNING_CFLAGS = "-Wmost"; }; @@ -3069,20 +3006,17 @@ 4DC40C3409150C9F0029A2A6 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1)"; - ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "x86_64 i386 ppc"; + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = NO; - GCC_ENABLE_OBJC_GC = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_MODEL_TUNING = G5; GCC_OPTIMIZATION_LEVEL = 0; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h"; - GCC_VERSION_ppc = 4.0; INFOPLIST_FILE = "ReplaceWithAttributesTest/ReplaceWithAttributesTest-Info.plist"; INSTALL_PATH = "$(USER_APPS_DIR)"; MACOSX_DEPLOYMENT_TARGET = 10.6; - MACOSX_DEPLOYMENT_TARGET_ppc = 10.4; OTHER_CFLAGS = ""; OTHER_LDFLAGS = ( "-framework", @@ -3091,10 +3025,8 @@ AppKit, ); OTHER_REZFLAGS = ""; - PREBINDING = NO; PRODUCT_NAME = ReplaceWithAttributesTest; - SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.6.sdk"; - SDKROOT_ppc = /Developer/SDKs/MacOSX10.4u.sdk; + SDKROOT = macosx; SECTORDER_FLAGS = ""; WARNING_CFLAGS = ( "-Wmost", @@ -3107,20 +3039,17 @@ 4DC40C3509150C9F0029A2A6 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1)"; - ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "x86_64 i386 ppc"; + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = YES; - GCC_ENABLE_OBJC_GC = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_MODEL_TUNING = G5; GCC_OPTIMIZATION_LEVEL = 0; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h"; - GCC_VERSION_ppc = 4.0; INFOPLIST_FILE = "ReplaceWithAttributesTest/ReplaceWithAttributesTest-Info.plist"; INSTALL_PATH = "$(USER_APPS_DIR)"; MACOSX_DEPLOYMENT_TARGET = 10.6; - MACOSX_DEPLOYMENT_TARGET_ppc = 10.4; OTHER_CFLAGS = ""; OTHER_LDFLAGS = ( "-framework", @@ -3129,10 +3058,8 @@ AppKit, ); OTHER_REZFLAGS = ""; - PREBINDING = NO; PRODUCT_NAME = ReplaceWithAttributesTest; - SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.6.sdk"; - SDKROOT_ppc = /Developer/SDKs/MacOSX10.4u.sdk; + SDKROOT = macosx; SECTORDER_FLAGS = ""; WARNING_CFLAGS = ( "-Wmost", @@ -3145,19 +3072,16 @@ 4DC40C3609150C9F0029A2A6 /* Default */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1)"; - ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "x86_64 i386 ppc"; - GCC_ENABLE_OBJC_GC = YES; + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + COMBINE_HIDPI_IMAGES = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_MODEL_TUNING = G5; GCC_OPTIMIZATION_LEVEL = 0; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h"; - GCC_VERSION_ppc = 4.0; INFOPLIST_FILE = "ReplaceWithAttributesTest/ReplaceWithAttributesTest-Info.plist"; INSTALL_PATH = "$(USER_APPS_DIR)"; MACOSX_DEPLOYMENT_TARGET = 10.6; - MACOSX_DEPLOYMENT_TARGET_ppc = 10.4; OTHER_CFLAGS = ""; OTHER_LDFLAGS = ( "-framework", @@ -3166,10 +3090,8 @@ AppKit, ); OTHER_REZFLAGS = ""; - PREBINDING = NO; PRODUCT_NAME = ReplaceWithAttributesTest; - SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.6.sdk"; - SDKROOT_ppc = /Developer/SDKs/MacOSX10.4u.sdk; + SDKROOT = macosx; SECTORDER_FLAGS = ""; WARNING_CFLAGS = ( "-Wmost", @@ -3182,6 +3104,8 @@ 4DC412C3091519D50029A2A6 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = NO; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_OPTIMIZATION_LEVEL = 0; @@ -3190,7 +3114,7 @@ OTHER_LDFLAGS = ""; OTHER_REZFLAGS = ""; PRODUCT_NAME = All; - SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.6.sdk"; + SDKROOT = macosx; SECTORDER_FLAGS = ""; WARNING_CFLAGS = ( "-Wmost", @@ -3203,6 +3127,8 @@ 4DC412C4091519D50029A2A6 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_OPTIMIZATION_LEVEL = 0; @@ -3211,7 +3137,7 @@ OTHER_LDFLAGS = ""; OTHER_REZFLAGS = ""; PRODUCT_NAME = All; - SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.6.sdk"; + SDKROOT = macosx; SECTORDER_FLAGS = ""; WARNING_CFLAGS = ( "-Wmost", @@ -3224,13 +3150,15 @@ 4DC412C5091519D50029A2A6 /* Default */ = { isa = XCBuildConfiguration; buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + COMBINE_HIDPI_IMAGES = YES; GCC_OPTIMIZATION_LEVEL = 0; MACOSX_DEPLOYMENT_TARGET = 10.6; OTHER_CFLAGS = ""; OTHER_LDFLAGS = ""; OTHER_REZFLAGS = ""; PRODUCT_NAME = All; - SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.6.sdk"; + SDKROOT = macosx; SECTORDER_FLAGS = ""; WARNING_CFLAGS = ( "-Wmost", diff --git a/OgreKit/README.md b/OgreKit/README.md new file mode 100644 index 0000000000..b4cac91450 --- /dev/null +++ b/OgreKit/README.md @@ -0,0 +1,7 @@ +![image](http://sonoisa.github.com/ogrekit/About_%28English%29_files/OgreKitLogo.gif) + +#OgreKit +-- OniGuruma Regular Expression Framework for Cocoa -- + +* **Japanese Site:** http://sonoisa.github.com/ogrekit/About.html +* **English Site:** http://sonoisa.github.com/ogrekit/About_%28English%29.html diff --git a/OgreKit/RegularExpression/OGRegularExpressionEnumerator.m b/OgreKit/RegularExpression/OGRegularExpressionEnumerator.m index 6f3327f410..42c21b37c4 100755 --- a/OgreKit/RegularExpression/OGRegularExpressionEnumerator.m +++ b/OgreKit/RegularExpression/OGRegularExpressionEnumerator.m @@ -20,7 +20,7 @@ #import -// gencoding/decoding邽߂key +// 自身をencoding/decodingするためのkey static NSString * const OgreRegexKey = @"OgreEnumeratorRegularExpression"; static NSString * const OgreSwappedTargetStringKey = @"OgreEnumeratorSwappedTargetString"; static NSString * const OgreStartOffsetKey = @"OgreEnumeratorStartOffset"; @@ -34,7 +34,7 @@ @implementation OGRegularExpressionEnumerator -// +// 次を検索 - (id)nextObject { int r; @@ -43,9 +43,9 @@ - (id)nextObject id match = nil; unsigned UTF16charlen = 0; - /* SʓIɏ\ */ + /* 全面的に書き直す予定 */ if ( _terminalOfLastMatch == -1 ) { - // }b`I + // マッチ終了 return nil; } @@ -53,12 +53,12 @@ - (id)nextObject end = _UTF16TargetString + _lengthOfTargetString; // terminate address of target string range = end; // search terminate address of target string if (start > range) { - // ȏ㌟͈͂̂Ȃꍇ + // これ以上検索範囲のない場合 _terminalOfLastMatch = -1; return nil; } - // compileIvV(OgreFindNotEmptyOptionʂɈ) + // compileオプション(OgreFindNotEmptyOptionを別に扱う) BOOL findNotEmpty; if (([_regex options] & OgreFindNotEmptyOption) == 0) { findNotEmpty = NO; @@ -66,7 +66,7 @@ - (id)nextObject findNotEmpty = YES; } - // searchIvV(OgreFindEmptyOptionʂɈ) + // searchオプション(OgreFindEmptyOptionを別に扱う) BOOL findEmpty; unsigned searchOptions; if ((_searchOptions & OgreFindEmptyOption) == 0) { @@ -77,29 +77,29 @@ - (id)nextObject searchOptions = _searchOptions & ~OgreFindEmptyOption; // turn off OgreFindEmptyOption } - // region̍쐬 + // regionの作成 region = onig_region_new(); if ( region == NULL ) { - // mۂłȂꍇAO𔭐B + // メモリを確保できなかった場合、例外を発生させる。 [NSException raise:NSMallocException format:@"fail to create a region"]; } - /* */ + /* 検索 */ regex_t* regexBuffer = [_regex patternBuffer]; int counterOfAutorelease = 0; NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; if (!findNotEmpty) { - /* 󕶎ւ̃}b`ꍇ */ + /* 空文字列へのマッチを許す場合 */ r = onig_search(regexBuffer, (unsigned char *)_UTF16TargetString, (unsigned char *)end, (unsigned char *)start, (unsigned char *)range, region, searchOptions); - // OgreFindEmptyOptionw肳ĂȂꍇŁA - // O󕶎ȊOɃ}b`āA󕶎Ƀ}b`ꍇA1炵Ă1x}b`݂B + // OgreFindEmptyOptionが指定されていない場合で、 + // 前回空文字列以外にマッチして、今回空文字列にマッチした場合、1文字ずらしてもう1度マッチを試みる。 if (!findEmpty && (!_isLastMatchEmpty) && (r >= 0) && (region->beg[0] == region->end[0]) && (_startLocation > 0)) { if (start < range) { UTF16charlen = Ogre_UTF16charlen(_UTF16TargetString + _startLocation); - _startLocation += UTF16charlen; // 1i߂ + _startLocation += UTF16charlen; // 1文字進める start = _UTF16TargetString + _startLocation; r = onig_search(regexBuffer, (unsigned char *)_UTF16TargetString, (unsigned char *)end, (unsigned char *)start, (unsigned char *)range, region, searchOptions); } else { @@ -108,16 +108,16 @@ - (id)nextObject } } else { - /* 󕶎ւ̃}b`Ȃꍇ */ + /* 空文字列へのマッチを許さない場合 */ while (TRUE) { r = onig_search(regexBuffer, (unsigned char *)_UTF16TargetString, (unsigned char *)end, (unsigned char *)start, (unsigned char *)range, region, searchOptions); if ((r >= 0) && (region->beg[0] == region->end[0]) && (start < range)) { - // 󕶎Ƀ}b`ꍇ + // 空文字列にマッチした場合 UTF16charlen = Ogre_UTF16charlen(_UTF16TargetString + _startLocation); - _startLocation += UTF16charlen; // 1i߂ + _startLocation += UTF16charlen; // 1文字進める start = _UTF16TargetString + _startLocation; } else { - // ȏi߂ȂꍇE󕶎ȊOɃ}b`ꍇE}b`Ɏsꍇ + // これ以上進めない場合・空文字列以外にマッチした場合・マッチに失敗した場合 break; } @@ -128,7 +128,7 @@ - (id)nextObject } } if ((r >= 0) && (region->beg[0] == region->end[0]) && (start >= range)) { - // Ōɋ󕶎Ƀ}b`ꍇB~X}b`ƂB + // 最後に空文字列にマッチした場合。ミスマッチ扱いとする。 r = ONIG_MISMATCH; } } @@ -136,8 +136,8 @@ - (id)nextObject [pool release]; if (r >= 0) { - // }b`ꍇ - // matchIuWFNg̍쐬 + // マッチした場合 + // matchオブジェクトの作成 match = [[[OGRegularExpressionMatch allocWithZone:[self zone]] initWithRegion: region index: _numberOfMatches @@ -145,47 +145,47 @@ - (id)nextObject terminalOfLastMatch: _terminalOfLastMatch ] autorelease]; - _numberOfMatches++; // }b`𑝉 + _numberOfMatches++; // マッチ数を増加 - /* }b`̏I[ʒu */ + /* マッチした文字列の終端位置 */ if ( (r == _lengthOfTargetString * sizeof(unichar)) && (r == region->end[0]) ) { - _terminalOfLastMatch = -1; // Ōɋ󕶎Ƀ}b`ꍇ́Aȏ}b`ȂB - _isLastMatchEmpty = YES; // Ȃ낤Ô߁B + _terminalOfLastMatch = -1; // 最後に空文字列にマッチした場合は、これ以上マッチしない。 + _isLastMatchEmpty = YES; // いらないだろうが念のため。 return match; } else { - _terminalOfLastMatch = region->end[0] / sizeof(unichar); // ŌɃ}b`̏I[ʒu + _terminalOfLastMatch = region->end[0] / sizeof(unichar); // 最後にマッチした文字列の終端位置 } - /* ̃}b`Jnʒu߂ */ + /* 次回のマッチ開始位置を求める */ _startLocation = _terminalOfLastMatch; - /* UTF16Stringł̊Jnʒu */ + /* UTF16Stringでの開始位置 */ if (r == region->end[0]) { - // 󕶎Ƀ}b`ꍇÃ}b`Jnʒu1ɐi߂B + // 空文字列にマッチした場合、次回のマッチ開始位置を1文字先に進める。 _isLastMatchEmpty = YES; UTF16charlen = Ogre_UTF16charlen(_UTF16TargetString + _terminalOfLastMatch); _startLocation += UTF16charlen; } else { - // łȂꍇ͐i߂ȂB + // 空でなかった場合は進めない。 _isLastMatchEmpty = NO; } return match; } - onig_region_free(region, 1 /* free all */); // }b`ȂregionJB + onig_region_free(region, 1 /* free all */); // マッチしなかった文字列のregionを開放。 if (r == ONIG_MISMATCH) { - // }b`Ȃꍇ + // マッチしなかった場合 _terminalOfLastMatch = -1; } else { - // G[BO𔭐B + // エラー。例外を発生させる。 unsigned char s[ONIG_MAX_ERROR_MESSAGE_LEN]; onig_error_code_to_str(s, r); [NSException raise:OgreEnumeratorException format:@"%s", s]; } - return nil; // }b`Ȃꍇ + return nil; // マッチしなかった場合 } - (NSArray*)allObjects @@ -241,14 +241,14 @@ - (void)encodeWithCoder:(NSCoder*)encoder #endif //[super encodeWithCoder:encoder]; NSObject does ont respond to method encodeWithCoder: - //OGRegularExpression *_regex; // K\IuWFNg - //NSString *_TargetString; // Ώە - //NSRange _searchRange; // ͈ - //unsigned _searchOptions; // IvV - //int _terminalOfLastMatch; // OɃ}b`̏I[ʒu (_region->end[0] / sizeof(unichar)) - //unsigned _startLocation; // }b`Jnʒu - //BOOL _isLastMatchEmpty; // Õ}b`󕶎񂾂ǂ - //unsigned _numberOfMatches; // }b` + //OGRegularExpression *_regex; // 正規表現オブジェクト + //NSString *_TargetString; // 検索対象文字列 + //NSRange _searchRange; // 検索範囲 + //unsigned _searchOptions; // 検索オプション + //int _terminalOfLastMatch; // 前回にマッチした文字列の終端位置 (_region->end[0] / sizeof(unichar)) + //unsigned _startLocation; // マッチ開始位置 + //BOOL _isLastMatchEmpty; // 前回のマッチが空文字列だったかどうか + //unsigned _numberOfMatches; // マッチした数 if ([encoder allowsKeyedCoding]) { [encoder encodeObject: _regex forKey: OgreRegexKey]; @@ -283,29 +283,29 @@ - (id)initWithCoder:(NSCoder*)decoder BOOL allowsKeyedCoding = [decoder allowsKeyedCoding]; - //OGRegularExpression *_regex; // K\IuWFNg + //OGRegularExpression *_regex; // 正規表現オブジェクト if (allowsKeyedCoding) { _regex = [[decoder decodeObjectForKey: OgreRegexKey] retain]; } else { _regex = [[decoder decodeObject] retain]; } if (_regex == nil) { - // G[BO𔭐B + // エラー。例外を発生させる。 [self release]; [NSException raise:NSInvalidUnarchiveOperationException format:@"fail to decode"]; } - //NSString *_targetString; // ΏەB\ւĂ()̂Œ - //unichar *_UTF16TargetString; // UTF16ł̌Ώە + //NSString *_targetString; // 検索対象文字列。¥が入れ替わっている(事がある)ので注意 + //unichar *_UTF16TargetString; // UTF16での検索対象文字列 //unsigned _lengthOfTargetString; // [_targetString length] if (allowsKeyedCoding) { - _targetString = [[decoder decodeObjectForKey: OgreSwappedTargetStringKey] retain]; // [self targetString]ł͂ȂB + _targetString = [[decoder decodeObjectForKey: OgreSwappedTargetStringKey] retain]; // [self targetString]ではない。 } else { _targetString = [[decoder decodeObject] retain]; } if (_targetString == nil) { - // G[BO𔭐B + // エラー。例外を発生させる。 [self release]; [NSException raise:NSInvalidUnarchiveOperationException format:@"fail to decode"]; } @@ -314,20 +314,20 @@ - (id)initWithCoder:(NSCoder*)decoder _UTF16TargetString = (unichar*)NSZoneMalloc([self zone], sizeof(unichar) * _lengthOfTargetString); if (_UTF16TargetString == NULL) { - // G[BO𔭐B + // エラー。例外を発生させる。 [self release]; [NSException raise:NSInvalidUnarchiveOperationException format:@"fail to allocate a memory"]; } [targetPlainString getCharacters:_UTF16TargetString range:NSMakeRange(0, _lengthOfTargetString)]; - // NSRange _searchRange; // ͈ + // NSRange _searchRange; // 検索範囲 if (allowsKeyedCoding) { anObject = [decoder decodeObjectForKey: OgreStartOffsetKey]; } else { anObject = [decoder decodeObject]; } if (anObject == nil) { - // G[BO𔭐B + // エラー。例外を発生させる。 [self release]; [NSException raise:NSInvalidUnarchiveOperationException format:@"fail to decode"]; } @@ -336,70 +336,70 @@ - (id)initWithCoder:(NSCoder*)decoder - // _searchOptions; // IvV + // _searchOptions; // 検索オプション if (allowsKeyedCoding) { anObject = [decoder decodeObjectForKey: OgreOptionsKey]; } else { anObject = [decoder decodeObject]; } if (anObject == nil) { - // G[BO𔭐B + // エラー。例外を発生させる。 [self release]; [NSException raise:NSInvalidUnarchiveOperationException format:@"fail to decode"]; } _searchOptions = [anObject unsignedIntValue]; - // int _terminalOfLastMatch; // OɃ}b`̏I[ʒu (_region->end[0] / sizeof(unichar)) + // int _terminalOfLastMatch; // 前回にマッチした文字列の終端位置 (_region->end[0] / sizeof(unichar)) if (allowsKeyedCoding) { anObject = [decoder decodeObjectForKey: OgreTerminalOfLastMatchKey]; } else { anObject = [decoder decodeObject]; } if (anObject == nil) { - // G[BO𔭐B + // エラー。例外を発生させる。 [self release]; [NSException raise:NSInvalidUnarchiveOperationException format:@"fail to decode"]; } _terminalOfLastMatch = [anObject intValue]; - // _startLocation; // }b`Jnʒu + // _startLocation; // マッチ開始位置 if (allowsKeyedCoding) { anObject = [decoder decodeObjectForKey: OgreStartLocationKey]; } else { anObject = [decoder decodeObject]; } if (anObject == nil) { - // G[BO𔭐B + // エラー。例外を発生させる。 [self release]; [NSException raise:NSInvalidUnarchiveOperationException format:@"fail to decode"]; } _startLocation = [anObject unsignedIntValue]; - //BOOL _isLastMatchEmpty; // Õ}b`󕶎񂾂ǂ + //BOOL _isLastMatchEmpty; // 前回のマッチが空文字列だったかどうか if (allowsKeyedCoding) { anObject = [decoder decodeObjectForKey: OgreIsLastMatchEmptyKey]; } else { anObject = [decoder decodeObject]; } if (anObject == nil) { - // G[BO𔭐B + // エラー。例外を発生させる。 [self release]; [NSException raise:NSInvalidUnarchiveOperationException format:@"fail to decode"]; } _isLastMatchEmpty = [anObject boolValue]; - // unsigned _numberOfMatches; // }b` + // unsigned _numberOfMatches; // マッチした数 if (allowsKeyedCoding) { anObject = [decoder decodeObjectForKey: OgreNumberOfMatchesKey]; } else { anObject = [decoder decodeObject]; } if (anObject == nil) { - // G[BO𔭐B + // エラー。例外を発生させる。 [self release]; [NSException raise:NSInvalidUnarchiveOperationException format:@"fail to decode"]; } @@ -422,7 +422,7 @@ - (id)copyWithZone:(NSZone*)zone range: _searchRange regularExpression: _regex]; - // l̃Zbg + // 値のセット [newObject _setTerminalOfLastMatch: _terminalOfLastMatch]; [newObject _setStartLocation: _startLocation]; [newObject _setIsLastMatchEmpty: _isLastMatchEmpty]; @@ -436,13 +436,13 @@ - (NSString*)description { NSDictionary *dictionary = [NSDictionary dictionaryWithObjects: [NSArray arrayWithObjects: - _regex, // K\IuWFNg + _regex, // 正規表現オブジェクト _targetString, - [NSString stringWithFormat:@"(%d, %d)", _searchRange.location, _searchRange.length], // ͈ - [[_regex class] stringsForOptions:_searchOptions], // IvV - [NSNumber numberWithInt:_terminalOfLastMatch], // OɃ}b`̏I[ʒuO̒̕ - [NSNumber numberWithUnsignedInt:_startLocation], // }b`Jnʒu - (_isLastMatchEmpty? @"YES" : @"NO"), // Õ}b`󕶎񂾂ǂ + [NSString stringWithFormat:@"(%lu, %lu)", (unsigned long)_searchRange.location, (unsigned long)_searchRange.length], // 検索範囲 + [[_regex class] stringsForOptions:_searchOptions], // 検索オプション + [NSNumber numberWithInt:_terminalOfLastMatch], // 前回にマッチした文字列の終端位置より前の文字列の長さ + [NSNumber numberWithUnsignedInt:_startLocation], // マッチ開始位置 + (_isLastMatchEmpty? @"YES" : @"NO"), // 前回のマッチが空文字列だったかどうか [NSNumber numberWithUnsignedInt:_numberOfMatches], nil] forKeys:[NSArray arrayWithObjects: diff --git a/OgreKit/RegularExpression/OGReplaceExpressionPrivate.m b/OgreKit/RegularExpression/OGReplaceExpressionPrivate.m index 24d9ed0edc..56519754ed 100755 --- a/OgreKit/RegularExpression/OGReplaceExpressionPrivate.m +++ b/OgreKit/RegularExpression/OGReplaceExpressionPrivate.m @@ -17,17 +17,17 @@ @implementation OGReplaceExpression (Private) -- (void)_setCompiledReplaceString:(NSArray*)compiledReplaceString +- (void)_setCompiledReplaceString:(NSMutableArray*)compiledReplaceString { _compiledReplaceString = [compiledReplaceString retain]; } -- (void)_setCompiledReplaceStringType:(NSArray*)compiledReplaceStringType +- (void)_setCompiledReplaceStringType:(NSMutableArray*)compiledReplaceStringType { _compiledReplaceStringType = [compiledReplaceStringType retain]; } -- (void)_setNameArray:(NSArray*)nameArray +- (void)_setNameArray:(NSMutableArray*)nameArray { _nameArray = [nameArray retain]; } diff --git a/OgreKit/RegularExpression/oniguruma/.gitignore b/OgreKit/RegularExpression/oniguruma/.gitignore deleted file mode 100644 index 9568430703..0000000000 --- a/OgreKit/RegularExpression/oniguruma/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -intel/ -ppc/ -universal/ -x86_64/ diff --git a/OgreKit/RegularExpression/oniguruma/Makefile b/OgreKit/RegularExpression/oniguruma/Makefile index 7497dee8b3..3e250d4f3e 100644 --- a/OgreKit/RegularExpression/oniguruma/Makefile +++ b/OgreKit/RegularExpression/oniguruma/Makefile @@ -1,23 +1,18 @@ -ONIGURUMA_VERSION=onig-5.9.2 +ONIGURUMA_VERSION=Onigmo-Onigmo-5.13.5 OS_VERSION=$(shell uname -r) UNIVERSAL_DIR=universal INTEL_64_DIR=x86_64 INTEL_DIR=intel -PPC_DIR=ppc -INTEL_64_CONFIGURE_FLAGS=--disable-dependency-tracking --host=x86_64-apple-darwin$(OS_VERSION) --build=i686-apple-darwin$(OS_VERSION) +INTEL_64_CONFIGURE_FLAGS=--disable-dependency-tracking --host=x86_64-apple-darwin$(OS_VERSION) --build=x86_64-apple-darwin$(OS_VERSION) INTEL_CONFIGURE_FLAGS=--disable-dependency-tracking --host=i686-apple-darwin$(OS_VERSION) --build=i686-apple-darwin$(OS_VERSION) -PPC_CONFIGURE_FLAGS=--disable-dependency-tracking --host=ppc-apple-darwin$(OS_VERSION) --build=i686-apple-darwin$(OS_VERSION) -INTEL_64_SDK=/Developer/SDKs/MacOSX10.6.sdk -INTEL_64_CC=gcc -arch x86_64 +INTEL_64_SDK=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk +INTEL_64_CC=/usr/bin/gcc -arch x86_64 -INTEL_SDK=/Developer/SDKs/MacOSX10.4u.sdk -INTEL_CC=gcc-4.0 -arch i686 -isystem /Developer/SDKs/MacOSX10.4u.sdk/usr/include/gcc/darwin/4.0 -isystem /Developer/SDKs/MacOSX10.4u.sdk/usr/include - -PPC_SDK=/Developer/SDKs/MacOSX10.4u.sdk -PPC_CC=gcc-4.0 -arch ppc -isystem /Developer/SDKs/MacOSX10.4u.sdk/usr/include/gcc/darwin/4.0 -isystem /Developer/SDKs/MacOSX10.4u.sdk/usr/include +INTEL_SDK=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk +INTEL_CC=/usr/bin/gcc -arch i686 ONIG_TARGET=libonig.la LIBS_DIR=.libs @@ -25,40 +20,29 @@ ONIGURUMA=libonig.a all: $(UNIVERSAL_DIR)/$(ONIGURUMA) -$(UNIVERSAL_DIR)/$(ONIGURUMA): $(UNIVERSAL_DIR) $(PPC_DIR)/$(ONIG_TARGET) $(INTEL_DIR)/$(ONIG_TARGET) - lipo -create $(INTEL_DIR)/$(LIBS_DIR)/$(@F) $(PPC_DIR)/$(LIBS_DIR)/$(@F) -output $(UNIVERSAL_DIR)/$(@F) +$(UNIVERSAL_DIR)/$(ONIGURUMA): $(UNIVERSAL_DIR) $(INTEL_DIR)/$(ONIG_TARGET) $(INTEL_64_DIR)/$(ONIG_TARGET) + lipo -create $(INTEL_DIR)/$(LIBS_DIR)/$(@F) $(INTEL_64_DIR)/$(LIBS_DIR)/$(@F) -output $(UNIVERSAL_DIR)/$(@F) $(INTEL_64_DIR)/$(ONIG_TARGET): $(INTEL_64_DIR) cd $(@D);\ CC="$(INTEL_64_CC)" ./configure $(INTEL_64_CONFIGURE_FLAGS);\ - perl -pi -e 's@CFLAGS = -isysroot /Developer/SDKs/MacOSX10.6.sdk -arch x86_64@CFLAGS = -isysroot $(INTEL_SDK) -arch x86_64@' Makefile;\ + perl -pi -e 's@CFLAGS = -isysroot /Developer/SDKs/MacOSX10.7.sdk -arch x86_64@CFLAGS = -isysroot $(INTEL_SDK) -arch x86_64@' Makefile;\ perl -pi -e 's@-dynamiclib@-dynamiclib -arch x86_64@g' libtool;\ make $(@F) $(INTEL_DIR)/$(ONIG_TARGET): $(INTEL_DIR) cd $(@D);\ CC="$(INTEL_CC)" ./configure $(INTEL_CONFIGURE_FLAGS);\ - perl -pi -e 's@CFLAGS = -isysroot /Developer/SDKs/MacOSX10.6.sdk -arch x86_64@CFLAGS =@' Makefile;\ + perl -pi -e 's@CFLAGS = -isysroot /Developer/SDKs/MacOSX10.7.sdk -arch x86_64@CFLAGS = -isysroot $(INTEL_SDK) -arch i686@' Makefile;\ perl -pi -e 's@-dynamiclib@-dynamiclib -arch i686@g' libtool;\ make $(@F) -$(PPC_DIR)/$(ONIG_TARGET): $(PPC_DIR) - cd $(@D);\ - CC="$(PPC_CC)" ./configure $(PPC_CONFIGURE_FLAGS);\ - perl -pi -e 's@CFLAGS = -isysroot /Developer/SDKs/MacOSX10.6.sdk -arch x86_64@CFLAGS =@' Makefile;\ - perl -pi -e 's@-dynamiclib@-dynamiclib -arch ppc@g' libtool;\ - make $(@F) - $(INTEL_64_DIR): - tar xzvf $(ONIGURUMA_VERSION).tar.gz + unzip $(ONIGURUMA_VERSION).zip mv $(ONIGURUMA_VERSION) $@ $(INTEL_DIR): - tar xzvf $(ONIGURUMA_VERSION).tar.gz - mv $(ONIGURUMA_VERSION) $@ - -$(PPC_DIR): - tar xzvf $(ONIGURUMA_VERSION).tar.gz + unzip $(ONIGURUMA_VERSION).zip mv $(ONIGURUMA_VERSION) $@ $(UNIVERSAL_DIR): @@ -67,5 +51,4 @@ $(UNIVERSAL_DIR): clean: rm -rf $(INTEL_64_DIR) rm -rf $(INTEL_DIR) - rm -rf $(PPC_DIR) rm -rf $(UNIVERSAL_DIR) \ No newline at end of file diff --git a/OgreKit/RegularExpression/oniguruma/Onigmo-Onigmo-5.13.5.zip b/OgreKit/RegularExpression/oniguruma/Onigmo-Onigmo-5.13.5.zip new file mode 100644 index 0000000000..57a21aa8a9 Binary files /dev/null and b/OgreKit/RegularExpression/oniguruma/Onigmo-Onigmo-5.13.5.zip differ diff --git a/OgreKit/RegularExpression/oniguruma/onig-5.9.2.tar.gz b/OgreKit/RegularExpression/oniguruma/onig-5.9.2.tar.gz deleted file mode 100644 index b369245b63..0000000000 Binary files a/OgreKit/RegularExpression/oniguruma/onig-5.9.2.tar.gz and /dev/null differ diff --git a/OgreKit/RegularExpressionTest/OgreTest.m b/OgreKit/RegularExpressionTest/OgreTest.m index 9f2ba50ff7..f378819737 100755 --- a/OgreKit/RegularExpressionTest/OgreTest.m +++ b/OgreKit/RegularExpressionTest/OgreTest.m @@ -84,10 +84,10 @@ - (IBAction)match:(id)sender while((match = [enumerator nextObject]) != nil) { if(matches == 0) { NSRange range = [match rangeOfPrematchString]; - [resultTextView insertText: [NSString stringWithFormat:@"prematch string: (%d-%d) \"%@\"\n", range.location, range.location + range.length, [match prematchString]]]; + [resultTextView insertText: [NSString stringWithFormat:@"prematch string: (%lu-%lu) \"%@\"\n", (unsigned long)range.location, (unsigned long)range.location + range.length, [match prematchString]]]; } else { NSRange range = [match rangeOfStringBetweenMatchAndLastMatch]; - [resultTextView insertText: [NSString stringWithFormat:@"string between match #%d and match #%d: (%d-%d) \"%@\"\n", matches - 1, matches, range.location, range.location + range.length, [match stringBetweenMatchAndLastMatch]]]; + [resultTextView insertText: [NSString stringWithFormat:@"string between match #%d and match #%d: (%lu-%lu) \"%@\"\n", matches - 1, matches, (unsigned long)range.location, (unsigned long)range.location + range.length, [match stringBetweenMatchAndLastMatch]]]; } for (i = 0; i < [match count]; i++) { @@ -96,7 +96,7 @@ - (IBAction)match:(id)sender if([match nameOfSubstringAtIndex:i] != nil) { [resultTextView insertText:[NSString stringWithFormat:@"(\"%@\")", [match nameOfSubstringAtIndex:i]]]; } - [resultTextView insertText:[NSString stringWithFormat:@": (%d-%d)", subexpRange.location, subexpRange.location + subexpRange.length]]; + [resultTextView insertText:[NSString stringWithFormat:@": (%lu-%lu)", (unsigned long)subexpRange.location, (unsigned long)subexpRange.location + subexpRange.length]]; if([match substringAtIndex:i] == nil) { [resultTextView insertText:@" no match!\n"]; } else { @@ -123,7 +123,7 @@ - (IBAction)match:(id)sender } if(lastMatch != nil) { NSRange range = [lastMatch rangeOfPostmatchString]; - [resultTextView insertText: [NSString stringWithFormat:@"postmatch string: (%d-%d) \"%@\"\n", range.location, range.location + range.length, [lastMatch postmatchString]]]; + [resultTextView insertText: [NSString stringWithFormat:@"postmatch string: (%lu-%lu) \"%@\"\n", (unsigned long)range.location, (unsigned long)range.location + range.length, [lastMatch postmatchString]]]; } else { [resultTextView insertText:@"search fail\n"]; } @@ -202,7 +202,8 @@ - (void)replaceTest NSEnumerator *matcher = [regex matchEnumeratorInString:@"aaaaaaa" range:NSMakeRange(1, 3)]; OGRegularExpressionMatch *match; while ((match = [matcher nextObject]) != nil) { - NSLog(@"(%d, %d)", [match rangeOfMatchedString]); + NSRange matchRange = [match rangeOfMatchedString]; + NSLog(@"(%lu, %lu)", (unsigned long)matchRange.location, (unsigned long)matchRange.length); } // デリゲートに処理を委ねた置換 @@ -229,7 +230,7 @@ - (void)categoryTest withString:@"F" options:OgreNoneOption range:NSMakeRange(0, [string length])]; NSLog(@"%d %@", numberOfReplacement, mstr); NSRange matchRange = [string rangeOfRegularExpressionString:@"\\s*,\\s*"]; - NSLog(@"(%d, %d)", matchRange.location, matchRange.length); + NSLog(@"(%lu, %lu)", (unsigned long)matchRange.location, (unsigned long)matchRange.length); } // 摂氏を華氏に変換する。 @@ -267,8 +268,8 @@ - (void)visitAtFirstCapture:(OGRegularExpressionCapture*)aCapture if([aCapture groupName] != nil) { [resultTextView insertText:[NSString stringWithFormat:@"(\"%@\")", [aCapture groupName]]]; } - [resultTextView insertText:[NSString stringWithFormat:@": (%d-%d) \"%@\"\n", - matchRange.location, matchRange.length, + [resultTextView insertText:[NSString stringWithFormat:@": (%lu-%lu) \"%@\"\n", + (unsigned long)matchRange.location, (unsigned long)matchRange.length, [aCapture string]]]; } diff --git a/README.md b/README.md new file mode 100644 index 0000000000..12ca4cbd3b --- /dev/null +++ b/README.md @@ -0,0 +1,67 @@ +About CotEditor Source Code +============================= + +The source code is distributed under the terms of the GNU General Public License. See the bundled "License.txt" for details. + +[OgreKit](http://sonoisa.github.io/ogrekit/) and [Onigmo](https://github.com/k-takata/Onigmo)/[Oniguruma](http://www.geocities.jp/kosako3/oniguruma/), the framework and library that CotEditor uses, are distributed under the OgreKit License. See the bundled "OgreKit License.txt" for details. + +The source code is written in Objective-C (UTF-8). + +In the case you get some build errors, try cleaning. + + +Development Environment +----------------------------- + +- OS X 10.9.2 +- Xcode 5.1 + + +Distribution Site +----------------------------- + + + + +Copyrights +----------------------------- + +### CotEditor +- Copyright © 2005 nakamuxu +- Copyright © 2011 usami-k +- Copyright © 2014 1024jp + +### OgreKit + + +Copyright © 2003-2010 Isao Sonobe. All rights reserved. + +### Onigmo (Oniguruma-mod) + + +Copyright (c) 2011-2013 K.Takata. All rights reserved. + +### Oniguruma + + +Copyright © 2002-2007 K.Kosako. All rights reserved. + +### Smultron + + +Copyright © 2004 Peter Borg. All rights reserved. + +### UKXattrMetadataStore + + +Copyright © 2003 M. Uli Kusterer. All rights reserved. + +### FJDDetectEncoding + + +Copyright © 2006 FUJIDANA. All rights reserved. + +### RegexKitLite + + +Copyright © 2008-2010 John Engelhart. All rights reserved. diff --git a/README_ja.md b/README_ja.md new file mode 100644 index 0000000000..06abe032a7 --- /dev/null +++ b/README_ja.md @@ -0,0 +1,70 @@ + +CotEditor のソースコードについて +============================= + +GPL ライセンスです。ライセンスに基づいた取り扱いをお願いします。 +ライセンスに関する詳細は、添付のドキュメント「License.txt」をご覧ください。 + +使用しているフレームワーク [OgreKit](http://sonoisa.github.io/ogrekit/) とライブラリ [Onigmo](https://github.com/k-takata/Onigmo)/[Oniguruma](http://www.geocities.jp/kosako3/oniguruma/)は OgreKit License です。 +OgreKit ならびに Onigmo, Oniguruma のライセンスの詳細は添付の「OgreKit Lisense.txt」をご覧ください。 + +言語は Objective-C、文字コードは UTF-8 で書かれています。 + +エラーが出てビルドできない時は、クリーニングしてみてください。 + + +開発環境 +----------------------------- + +- OS X 10.9.2 +- Xcode 5.1 + + +配布ページ +----------------------------- + + + + +著作権表示 +----------------------------- + +### CotEditor +- Copyright © 2005 nakamuxu +- Copyright © 2011 usami-k +- Copyright © 2014 1024jp + +### OgreKit + + +Copyright © 2003-2010 Isao Sonobe. All rights reserved. + +### 鬼雲 (Onigmo/Oniguruma-mod) + + +Copyright (c) 2011-2013 K.Takata. All rights reserved. + +### 鬼車 (Oniguruma) + + +Copyright © 2002-2007 K.Kosako. All rights reserved. + +### Smultron + + +Copyright © 2004 Peter Borg. All rights reserved. + +### UKXattrMetadataStore + + +Copyright © 2003 M. Uli Kusterer. All rights reserved. + +### FJDDetectEncoding + + +Copyright © 2006 FUJIDANA. All rights reserved. + +### RegexKitLite + + +Copyright © 2008-2010 John Engelhart. All rights reserved. diff --git a/RKLMatchEnumerator.h b/RKLMatchEnumerator.h deleted file mode 100644 index 4a5c3afb39..0000000000 --- a/RKLMatchEnumerator.h +++ /dev/null @@ -1,14 +0,0 @@ -/* - RegexKitLite-2.1/examples/RKLMatchEnumerator.h(BSDライセンス)を改造しています。 -*/ -#import -#import -#import - -@interface NSString (RegexKitLiteEnumeratorAdditions) -- (NSEnumerator *)matchEnumeratorWithRegex:(NSString *)regexString; -// edited by nakamuxu for CotEditor. -// オプションを使えるメソッドを追加 -// 2008.05.01. -- (NSEnumerator *)matchEnumeratorWithRegex:(NSString *)regexString options:(RKLRegexOptions)inOptions; -@end diff --git a/RKLMatchEnumerator.m b/RKLMatchEnumerator.m deleted file mode 100644 index 1c700a59d2..0000000000 --- a/RKLMatchEnumerator.m +++ /dev/null @@ -1,87 +0,0 @@ -/* - RegexKitLite-2.1/examples/RKLMatchEnumerator.m(BSDライセンス)を改造しています。 -*/ - -#import -#import -#import "RegexKitLite.h" -#import "RKLMatchEnumerator.h" - -@interface RKLMatchEnumerator : NSEnumerator { - NSString *string; - NSString *regex; - NSUInteger location; - RKLRegexOptions _options; -} - -- (id)initWithString:(NSString *)initString regex:(NSString *)initRegex; - -// edited by nakamuxu for CotEditor. -// オプションを使えるメソッドを追加 -// 2008.05.01. -- (id)initWithString:(NSString *)initString regex:(NSString *)initRegex options:(RKLRegexOptions)inOptions; - -@end - -@implementation RKLMatchEnumerator - -- (id)initWithString:(NSString *)initString regex:(NSString *)initRegex -{ - if((self = [self init]) == NULL) { return(NULL); } - string = [initString copy]; - regex = [initRegex copy]; - return(self); -} - -- (id)initWithString:(NSString *)initString regex:(NSString *)initRegex options:(RKLRegexOptions)inOptions -{ - if((self = [self init]) == NULL) { return(NULL); } - string = [initString copy]; - regex = [initRegex copy]; - _options = inOptions; - return(self); -} - -- (id)nextObject -// edited by nakamuxu for CotEditor. -// マッチした範囲のNSValueを返すように変更 -// 2008.05.01. -{ - if(location != NSNotFound) { - NSRange searchRange = NSMakeRange(location, [string length] - location); - NSRange matchedRange = [string rangeOfRegex:regex options:_options inRange:searchRange capture:0 error:NULL]; - - location = NSMaxRange(matchedRange) + ((matchedRange.length == 0) ? 1 : 0); - - if(matchedRange.location != NSNotFound) { - return [NSValue valueWithRange:matchedRange]; - } - } - return(NULL); -} - -- (void) dealloc -{ - [string release]; - [regex release]; - [super dealloc]; -} - -@end - -@implementation NSString (RegexKitLiteEnumeratorAdditions) - -- (NSEnumerator *)matchEnumeratorWithRegex:(NSString *)regexString -{ - return([[[RKLMatchEnumerator alloc] initWithString:self regex:regexString] autorelease]); -} - -// edited by nakamuxu for CotEditor. -// オプションを使えるメソッドを追加 -// 2008.05.01. -- (NSEnumerator *)matchEnumeratorWithRegex:(NSString *)regexString options:(RKLRegexOptions)inOptions -{ - return([[[RKLMatchEnumerator alloc] initWithString:self regex:regexString options:inOptions] autorelease]); -} - -@end diff --git a/RegexKitLite.h b/RegexKitLite.h deleted file mode 100644 index d467702f6d..0000000000 --- a/RegexKitLite.h +++ /dev/null @@ -1,295 +0,0 @@ -// -// RegexKitLite.h -// http://regexkit.sourceforge.net/ -// Licensed under the terms of the BSD License, as specified below. -// - -/* - Copyright (c) 2008-2010, John Engelhart - - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - * 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. - - * Neither the name of the Zang Industries 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 THE COPYRIGHT HOLDERS AND 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 THE COPYRIGHT - OWNER OR 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. -*/ - -#ifdef __OBJC__ -#import -#import -#import -#import -#import -#endif // __OBJC__ - -#include -#include -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -#ifndef REGEXKITLITE_VERSION_DEFINED -#define REGEXKITLITE_VERSION_DEFINED - -#define _RKL__STRINGIFY(b) #b -#define _RKL_STRINGIFY(a) _RKL__STRINGIFY(a) -#define _RKL_JOIN_VERSION(a,b) _RKL_STRINGIFY(a##.##b) -#define _RKL_VERSION_STRING(a,b) _RKL_JOIN_VERSION(a,b) - -#define REGEXKITLITE_VERSION_MAJOR 4 -#define REGEXKITLITE_VERSION_MINOR 0 - -#define REGEXKITLITE_VERSION_CSTRING _RKL_VERSION_STRING(REGEXKITLITE_VERSION_MAJOR, REGEXKITLITE_VERSION_MINOR) -#define REGEXKITLITE_VERSION_NSSTRING @REGEXKITLITE_VERSION_CSTRING - -#endif // REGEXKITLITE_VERSION_DEFINED - -#if !defined(RKL_BLOCKS) && defined(NS_BLOCKS_AVAILABLE) && (NS_BLOCKS_AVAILABLE == 1) -#define RKL_BLOCKS 1 -#endif - -#if defined(RKL_BLOCKS) && (RKL_BLOCKS == 1) -#define _RKL_BLOCKS_ENABLED 1 -#endif // defined(RKL_BLOCKS) && (RKL_BLOCKS == 1) - -#if defined(_RKL_BLOCKS_ENABLED) && !defined(__BLOCKS__) -#warning RegexKitLite support for Blocks is enabled, but __BLOCKS__ is not defined. This compiler may not support Blocks, in which case the behavior is undefined. This will probably cause numerous compiler errors. -#endif // defined(_RKL_BLOCKS_ENABLED) && !defined(__BLOCKS__) - -// For Mac OS X < 10.5. -#ifndef NSINTEGER_DEFINED -#define NSINTEGER_DEFINED -#if defined(__LP64__) || defined(NS_BUILD_32_LIKE_64) -typedef long NSInteger; -typedef unsigned long NSUInteger; -#define NSIntegerMin LONG_MIN -#define NSIntegerMax LONG_MAX -#define NSUIntegerMax ULONG_MAX -#else // defined(__LP64__) || defined(NS_BUILD_32_LIKE_64) -typedef int NSInteger; -typedef unsigned int NSUInteger; -#define NSIntegerMin INT_MIN -#define NSIntegerMax INT_MAX -#define NSUIntegerMax UINT_MAX -#endif // defined(__LP64__) || defined(NS_BUILD_32_LIKE_64) -#endif // NSINTEGER_DEFINED - -#ifndef RKLREGEXOPTIONS_DEFINED -#define RKLREGEXOPTIONS_DEFINED - -// These must be identical to their ICU regex counterparts. See http://www.icu-project.org/userguide/regexp.html -enum { - RKLNoOptions = 0, - RKLCaseless = 2, - RKLComments = 4, - RKLDotAll = 32, - RKLMultiline = 8, - RKLUnicodeWordBoundaries = 256 -}; -typedef uint32_t RKLRegexOptions; // This must be identical to the ICU 'flags' argument type. - -#endif // RKLREGEXOPTIONS_DEFINED - -#ifndef RKLREGEXENUMERATIONOPTIONS_DEFINED -#define RKLREGEXENUMERATIONOPTIONS_DEFINED - -enum { - RKLRegexEnumerationNoOptions = 0UL, - RKLRegexEnumerationCapturedStringsNotRequired = 1UL << 9, - RKLRegexEnumerationReleaseStringReturnedByReplacementBlock = 1UL << 10, - RKLRegexEnumerationFastCapturedStringsXXX = 1UL << 11, -}; -typedef NSUInteger RKLRegexEnumerationOptions; - -#endif // RKLREGEXENUMERATIONOPTIONS_DEFINED - -#ifndef _REGEXKITLITE_H_ -#define _REGEXKITLITE_H_ - -#if defined(__GNUC__) && (__GNUC__ >= 4) && defined(__APPLE_CC__) && (__APPLE_CC__ >= 5465) -#define RKL_DEPRECATED_ATTRIBUTE __attribute__((deprecated)) -#else -#define RKL_DEPRECATED_ATTRIBUTE -#endif - -#if defined(NS_REQUIRES_NIL_TERMINATION) -#define RKL_REQUIRES_NIL_TERMINATION NS_REQUIRES_NIL_TERMINATION -#else // defined(NS_REQUIRES_NIL_TERMINATION) -#define RKL_REQUIRES_NIL_TERMINATION -#endif // defined(NS_REQUIRES_NIL_TERMINATION) - -// This requires a few levels of rewriting to get the desired results. -#define _RKL_CONCAT_2(c,d) c ## d -#define _RKL_CONCAT(a,b) _RKL_CONCAT_2(a,b) - -#ifdef RKL_PREPEND_TO_METHODS -#define RKL_METHOD_PREPEND(x) _RKL_CONCAT(RKL_PREPEND_TO_METHODS, x) -#else // RKL_PREPEND_TO_METHODS -#define RKL_METHOD_PREPEND(x) x -#endif // RKL_PREPEND_TO_METHODS - -// If it looks like low memory notifications might be available, add code to register and respond to them. -// This is (should be) harmless if it turns out that this isn't the case, since the notification that we register for, -// UIApplicationDidReceiveMemoryWarningNotification, is dynamically looked up via dlsym(). -#if ((defined(TARGET_OS_EMBEDDED) && (TARGET_OS_EMBEDDED != 0)) || (defined(TARGET_OS_IPHONE) && (TARGET_OS_IPHONE != 0))) && (!defined(RKL_REGISTER_FOR_IPHONE_LOWMEM_NOTIFICATIONS) || (RKL_REGISTER_FOR_IPHONE_LOWMEM_NOTIFICATIONS != 0)) -#define RKL_REGISTER_FOR_IPHONE_LOWMEM_NOTIFICATIONS 1 -#endif - -#ifdef __OBJC__ - -// NSException exception name. -extern NSString * const RKLICURegexException; - -// NSError error domains and user info keys. -extern NSString * const RKLICURegexErrorDomain; - -extern NSString * const RKLICURegexEnumerationOptionsErrorKey; -extern NSString * const RKLICURegexErrorCodeErrorKey; -extern NSString * const RKLICURegexErrorNameErrorKey; -extern NSString * const RKLICURegexLineErrorKey; -extern NSString * const RKLICURegexOffsetErrorKey; -extern NSString * const RKLICURegexPreContextErrorKey; -extern NSString * const RKLICURegexPostContextErrorKey; -extern NSString * const RKLICURegexRegexErrorKey; -extern NSString * const RKLICURegexRegexOptionsErrorKey; -extern NSString * const RKLICURegexReplacedCountErrorKey; -extern NSString * const RKLICURegexReplacedStringErrorKey; -extern NSString * const RKLICURegexReplacementStringErrorKey; -extern NSString * const RKLICURegexSubjectRangeErrorKey; -extern NSString * const RKLICURegexSubjectStringErrorKey; - -@interface NSString (RegexKitLiteAdditions) - -+ (void)RKL_METHOD_PREPEND(clearStringCache); - -// Although these are marked as deprecated, a bug in GCC prevents a warning from being issues for + class methods. Filed bug with Apple, #6736857. -+ (NSInteger)RKL_METHOD_PREPEND(captureCountForRegex):(NSString *)regex RKL_DEPRECATED_ATTRIBUTE; -+ (NSInteger)RKL_METHOD_PREPEND(captureCountForRegex):(NSString *)regex options:(RKLRegexOptions)options error:(NSError **)error RKL_DEPRECATED_ATTRIBUTE; - -- (NSArray *)RKL_METHOD_PREPEND(componentsSeparatedByRegex):(NSString *)regex; -- (NSArray *)RKL_METHOD_PREPEND(componentsSeparatedByRegex):(NSString *)regex range:(NSRange)range; -- (NSArray *)RKL_METHOD_PREPEND(componentsSeparatedByRegex):(NSString *)regex options:(RKLRegexOptions)options range:(NSRange)range error:(NSError **)error; - -- (BOOL)RKL_METHOD_PREPEND(isMatchedByRegex):(NSString *)regex; -- (BOOL)RKL_METHOD_PREPEND(isMatchedByRegex):(NSString *)regex inRange:(NSRange)range; -- (BOOL)RKL_METHOD_PREPEND(isMatchedByRegex):(NSString *)regex options:(RKLRegexOptions)options inRange:(NSRange)range error:(NSError **)error; - -- (NSRange)RKL_METHOD_PREPEND(rangeOfRegex):(NSString *)regex; -- (NSRange)RKL_METHOD_PREPEND(rangeOfRegex):(NSString *)regex capture:(NSInteger)capture; -- (NSRange)RKL_METHOD_PREPEND(rangeOfRegex):(NSString *)regex inRange:(NSRange)range; -- (NSRange)RKL_METHOD_PREPEND(rangeOfRegex):(NSString *)regex options:(RKLRegexOptions)options inRange:(NSRange)range capture:(NSInteger)capture error:(NSError **)error; - -- (NSString *)RKL_METHOD_PREPEND(stringByMatching):(NSString *)regex; -- (NSString *)RKL_METHOD_PREPEND(stringByMatching):(NSString *)regex capture:(NSInteger)capture; -- (NSString *)RKL_METHOD_PREPEND(stringByMatching):(NSString *)regex inRange:(NSRange)range; -- (NSString *)RKL_METHOD_PREPEND(stringByMatching):(NSString *)regex options:(RKLRegexOptions)options inRange:(NSRange)range capture:(NSInteger)capture error:(NSError **)error; - -- (NSString *)RKL_METHOD_PREPEND(stringByReplacingOccurrencesOfRegex):(NSString *)regex withString:(NSString *)replacement; -- (NSString *)RKL_METHOD_PREPEND(stringByReplacingOccurrencesOfRegex):(NSString *)regex withString:(NSString *)replacement range:(NSRange)searchRange; -- (NSString *)RKL_METHOD_PREPEND(stringByReplacingOccurrencesOfRegex):(NSString *)regex withString:(NSString *)replacement options:(RKLRegexOptions)options range:(NSRange)searchRange error:(NSError **)error; - - //// >= 3.0 - -- (NSInteger)RKL_METHOD_PREPEND(captureCount); -- (NSInteger)RKL_METHOD_PREPEND(captureCountWithOptions):(RKLRegexOptions)options error:(NSError **)error; - -- (BOOL)RKL_METHOD_PREPEND(isRegexValid); -- (BOOL)RKL_METHOD_PREPEND(isRegexValidWithOptions):(RKLRegexOptions)options error:(NSError **)error; - -- (void)RKL_METHOD_PREPEND(flushCachedRegexData); - -- (NSArray *)RKL_METHOD_PREPEND(componentsMatchedByRegex):(NSString *)regex; -- (NSArray *)RKL_METHOD_PREPEND(componentsMatchedByRegex):(NSString *)regex capture:(NSInteger)capture; -- (NSArray *)RKL_METHOD_PREPEND(componentsMatchedByRegex):(NSString *)regex range:(NSRange)range; -- (NSArray *)RKL_METHOD_PREPEND(componentsMatchedByRegex):(NSString *)regex options:(RKLRegexOptions)options range:(NSRange)range capture:(NSInteger)capture error:(NSError **)error; - - -- (NSArray *)RKL_METHOD_PREPEND(captureComponentsMatchedByRegex):(NSString *)regex; -- (NSArray *)RKL_METHOD_PREPEND(captureComponentsMatchedByRegex):(NSString *)regex range:(NSRange)range; -- (NSArray *)RKL_METHOD_PREPEND(captureComponentsMatchedByRegex):(NSString *)regex options:(RKLRegexOptions)options range:(NSRange)range error:(NSError **)error; - -- (NSArray *)RKL_METHOD_PREPEND(arrayOfCaptureComponentsMatchedByRegex):(NSString *)regex; -- (NSArray *)RKL_METHOD_PREPEND(arrayOfCaptureComponentsMatchedByRegex):(NSString *)regex range:(NSRange)range; -- (NSArray *)RKL_METHOD_PREPEND(arrayOfCaptureComponentsMatchedByRegex):(NSString *)regex options:(RKLRegexOptions)options range:(NSRange)range error:(NSError **)error; - - //// >= 4.0 - -- (NSArray *)RKL_METHOD_PREPEND(arrayOfDictionariesByMatchingRegex):(NSString *)regex withKeysAndCaptures:(id)firstKey, ... RKL_REQUIRES_NIL_TERMINATION; -- (NSArray *)RKL_METHOD_PREPEND(arrayOfDictionariesByMatchingRegex):(NSString *)regex range:(NSRange)range withKeysAndCaptures:(id)firstKey, ... RKL_REQUIRES_NIL_TERMINATION; -- (NSArray *)RKL_METHOD_PREPEND(arrayOfDictionariesByMatchingRegex):(NSString *)regex options:(RKLRegexOptions)options range:(NSRange)range error:(NSError **)error withKeysAndCaptures:(id)firstKey, ... RKL_REQUIRES_NIL_TERMINATION; -- (NSArray *)RKL_METHOD_PREPEND(arrayOfDictionariesByMatchingRegex):(NSString *)regex options:(RKLRegexOptions)options range:(NSRange)range error:(NSError **)error withFirstKey:(id)firstKey arguments:(va_list)varArgsList; - -- (NSArray *)RKL_METHOD_PREPEND(arrayOfDictionariesByMatchingRegex):(NSString *)regex options:(RKLRegexOptions)options range:(NSRange)range error:(NSError **)error withKeys:(id *)keys forCaptures:(int *)captures count:(NSUInteger)count; - -- (NSDictionary *)RKL_METHOD_PREPEND(dictionaryByMatchingRegex):(NSString *)regex withKeysAndCaptures:(id)firstKey, ... RKL_REQUIRES_NIL_TERMINATION; -- (NSDictionary *)RKL_METHOD_PREPEND(dictionaryByMatchingRegex):(NSString *)regex range:(NSRange)range withKeysAndCaptures:(id)firstKey, ... RKL_REQUIRES_NIL_TERMINATION; -- (NSDictionary *)RKL_METHOD_PREPEND(dictionaryByMatchingRegex):(NSString *)regex options:(RKLRegexOptions)options range:(NSRange)range error:(NSError **)error withKeysAndCaptures:(id)firstKey, ... RKL_REQUIRES_NIL_TERMINATION; -- (NSDictionary *)RKL_METHOD_PREPEND(dictionaryByMatchingRegex):(NSString *)regex options:(RKLRegexOptions)options range:(NSRange)range error:(NSError **)error withFirstKey:(id)firstKey arguments:(va_list)varArgsList; - -- (NSDictionary *)RKL_METHOD_PREPEND(dictionaryByMatchingRegex):(NSString *)regex options:(RKLRegexOptions)options range:(NSRange)range error:(NSError **)error withKeys:(id *)keys forCaptures:(int *)captures count:(NSUInteger)count; - -#ifdef _RKL_BLOCKS_ENABLED - -- (BOOL)RKL_METHOD_PREPEND(enumerateStringsMatchedByRegex):(NSString *)regex usingBlock:(void (^)(NSInteger captureCount, NSString * const capturedStrings[captureCount], const NSRange capturedRanges[captureCount], volatile BOOL * const stop))block; -- (BOOL)RKL_METHOD_PREPEND(enumerateStringsMatchedByRegex):(NSString *)regex options:(RKLRegexOptions)options inRange:(NSRange)range error:(NSError **)error enumerationOptions:(RKLRegexEnumerationOptions)enumerationOptions usingBlock:(void (^)(NSInteger captureCount, NSString * const capturedStrings[captureCount], const NSRange capturedRanges[captureCount], volatile BOOL * const stop))block; - -- (BOOL)RKL_METHOD_PREPEND(enumerateStringsSeparatedByRegex):(NSString *)regex usingBlock:(void (^)(NSInteger captureCount, NSString * const capturedStrings[captureCount], const NSRange capturedRanges[captureCount], volatile BOOL * const stop))block; -- (BOOL)RKL_METHOD_PREPEND(enumerateStringsSeparatedByRegex):(NSString *)regex options:(RKLRegexOptions)options inRange:(NSRange)range error:(NSError **)error enumerationOptions:(RKLRegexEnumerationOptions)enumerationOptions usingBlock:(void (^)(NSInteger captureCount, NSString * const capturedStrings[captureCount], const NSRange capturedRanges[captureCount], volatile BOOL * const stop))block; - -- (NSString *)RKL_METHOD_PREPEND(stringByReplacingOccurrencesOfRegex):(NSString *)regex usingBlock:(NSString *(^)(NSInteger captureCount, NSString * const capturedStrings[captureCount], const NSRange capturedRanges[captureCount], volatile BOOL * const stop))block; -- (NSString *)RKL_METHOD_PREPEND(stringByReplacingOccurrencesOfRegex):(NSString *)regex options:(RKLRegexOptions)options inRange:(NSRange)range error:(NSError **)error enumerationOptions:(RKLRegexEnumerationOptions)enumerationOptions usingBlock:(NSString *(^)(NSInteger captureCount, NSString * const capturedStrings[captureCount], const NSRange capturedRanges[captureCount], volatile BOOL * const stop))block; - -#endif // _RKL_BLOCKS_ENABLED - -@end - -@interface NSMutableString (RegexKitLiteAdditions) - -- (NSInteger)RKL_METHOD_PREPEND(replaceOccurrencesOfRegex):(NSString *)regex withString:(NSString *)replacement; -- (NSInteger)RKL_METHOD_PREPEND(replaceOccurrencesOfRegex):(NSString *)regex withString:(NSString *)replacement range:(NSRange)searchRange; -- (NSInteger)RKL_METHOD_PREPEND(replaceOccurrencesOfRegex):(NSString *)regex withString:(NSString *)replacement options:(RKLRegexOptions)options range:(NSRange)searchRange error:(NSError **)error; - - //// >= 4.0 - -#ifdef _RKL_BLOCKS_ENABLED - -- (NSInteger)RKL_METHOD_PREPEND(replaceOccurrencesOfRegex):(NSString *)regex usingBlock:(NSString *(^)(NSInteger captureCount, NSString * const capturedStrings[captureCount], const NSRange capturedRanges[captureCount], volatile BOOL * const stop))block; -- (NSInteger)RKL_METHOD_PREPEND(replaceOccurrencesOfRegex):(NSString *)regex options:(RKLRegexOptions)options inRange:(NSRange)range error:(NSError **)error enumerationOptions:(RKLRegexEnumerationOptions)enumerationOptions usingBlock:(NSString *(^)(NSInteger captureCount, NSString * const capturedStrings[captureCount], const NSRange capturedRanges[captureCount], volatile BOOL * const stop))block; - -#endif // _RKL_BLOCKS_ENABLED - -@end - -#endif // __OBJC__ - -#endif // _REGEXKITLITE_H_ - -#ifdef __cplusplus -} // extern "C" -#endif diff --git a/RegexKitLite.m b/RegexKitLite.m deleted file mode 100644 index dababa6a13..0000000000 --- a/RegexKitLite.m +++ /dev/null @@ -1,2636 +0,0 @@ -// -// RegexKitLite.m -// http://regexkit.sourceforge.net/ -// Licensed under the terms of the BSD License, as specified below. -// - -/* - Copyright (c) 2008-2010, John Engelhart - - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - * 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. - - * Neither the name of the Zang Industries 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 THE COPYRIGHT HOLDERS AND 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 THE COPYRIGHT - OWNER OR 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. -*/ - -#include -#include -#include -#import -#import -#import -#import -#import -#import -#ifdef __OBJC_GC__ -#import -#define RKL_STRONG_REF __strong -#define RKL_GC_VOLATILE volatile -#else // __OBJC_GC__ -#define RKL_STRONG_REF -#define RKL_GC_VOLATILE -#endif // __OBJC_GC__ - -#if (defined(TARGET_OS_EMBEDDED) && (TARGET_OS_EMBEDDED != 0)) || (defined(TARGET_OS_IPHONE) && (TARGET_OS_IPHONE != 0)) || (defined(MAC_OS_X_VERSION_MIN_REQUIRED) && (MAC_OS_X_VERSION_MIN_REQUIRED >= 1050)) -#include -#else -#include -#endif - -#include -#include -#include -#include -#include -#include -#include -#include - -#import "RegexKitLite.h" - -// If the gcc flag -mmacosx-version-min is used with, for example, '=10.2', give a warning that the libicucore.dylib is only available on >= 10.3. -// If you are reading this comment because of this warning, this is to let you know that linking to /usr/lib/libicucore.dylib will cause your executable to fail on < 10.3. -// You will need to build your own version of the ICU library and link to that in order for RegexKitLite to work successfully on < 10.3. This is not simple. - -#if MAC_OS_X_VERSION_MIN_REQUIRED < 1030 -#warning The ICU dynamic shared library, /usr/lib/libicucore.dylib, is only available on Mac OS X 10.3 and later. -#warning You will need to supply a version of the ICU library to use RegexKitLite on Mac OS X 10.2 and earlier. -#endif - -//////////// -#pragma mark Compile time tunables - -#ifndef RKL_CACHE_SIZE -#define RKL_CACHE_SIZE (13UL) -#endif - -#if RKL_CACHE_SIZE < 1 -#error RKL_CACHE_SIZE must be a non-negative number greater than 0. -#endif // RKL_CACHE_SIZE < 1 - -#ifndef RKL_FIXED_LENGTH -#define RKL_FIXED_LENGTH (2048UL) -#endif - -#if RKL_FIXED_LENGTH < 1 -#error RKL_FIXED_LENGTH must be a non-negative number greater than 0. -#endif // RKL_FIXED_LENGTH < 1 - -#ifndef RKL_STACK_LIMIT -#define RKL_STACK_LIMIT (128UL * 1024UL) -#endif - -#if RKL_STACK_LIMIT < 0 -#error RKL_STACK_LIMIT must be a non-negative number. -#endif // RKL_STACK_LIMIT < 0 - -#ifdef RKL_APPEND_TO_ICU_FUNCTIONS -#define RKL_ICU_FUNCTION_APPEND(x) _RKL_CONCAT(x, RKL_APPEND_TO_ICU_FUNCTIONS) -#else // RKL_APPEND_TO_ICU_FUNCTIONS -#define RKL_ICU_FUNCTION_APPEND(x) x -#endif // RKL_APPEND_TO_ICU_FUNCTIONS - -#if defined(RKL_DTRACE) && (RKL_DTRACE != 0) -#define _RKL_DTRACE_ENABLED 1 -#endif // defined(RKL_DTRACE) && (RKL_DTRACE != 0) - -// These are internal, non-public tunables. -#define _RKL_FIXED_LENGTH ((NSUInteger)RKL_FIXED_LENGTH) -#define _RKL_STACK_LIMIT ((NSUInteger)RKL_STACK_LIMIT) -#define _RKL_SCRATCH_BUFFERS (5UL) -#if _RKL_SCRATCH_BUFFERS != 5 -#error _RKL_SCRATCH_BUFFERS is not tunable, it must be set to 5. -#endif // _RKL_SCRATCH_BUFFERS != 5 -#define _RKL_PREFETCH_SIZE (64UL) -#define _RKL_DTRACE_REGEXUTF8_SIZE (64UL) - -// A LRU Cache Set holds 4 lines, and the LRU algorithm uses 4 bits per line. -// A LRU Cache Set has a type of RKLLRUCacheSet_t and is 16 bits wide (4 lines * 4 bits per line). -// RKLLRUCacheSet_t must be initialized to a value of 0x0137 in order to work correctly. -typedef uint16_t RKLLRUCacheSet_t; -#define _RKL_LRU_CACHE_SET_INIT ((RKLLRUCacheSet_t)0x0137U) -#define _RKL_LRU_CACHE_SET_WAYS (4UL) -#if _RKL_LRU_CACHE_SET_WAYS != 4 -#error _RKL_LRU_CACHE_SET_WAYS is not tunable, it must be set to 4. -#endif // _RKL_LRU_CACHE_SET_WAYS != 4 - -#define _RKL_REGEX_LRU_CACHE_SETS ((NSUInteger)(RKL_CACHE_SIZE)) -#define _RKL_REGEX_CACHE_LINES ((NSUInteger)((NSUInteger)(_RKL_REGEX_LRU_CACHE_SETS) * (NSUInteger)(_RKL_LRU_CACHE_SET_WAYS))) - -// Regex String Lookaside Cache parameters. -#define _RKL_REGEX_LOOKASIDE_CACHE_BITS (6UL) -#if _RKL_REGEX_LOOKASIDE_CACHE_BITS < 0 -#error _RKL_REGEX_LOOKASIDE_CACHE_BITS must be a non-negative number and is not intended to be user tunable. -#endif // _RKL_REGEX_LOOKASIDE_CACHE_BITS < 0 -#define _RKL_REGEX_LOOKASIDE_CACHE_SIZE (1LU << _RKL_REGEX_LOOKASIDE_CACHE_BITS) -#define _RKL_REGEX_LOOKASIDE_CACHE_MASK ((1LU << _RKL_REGEX_LOOKASIDE_CACHE_BITS) - 1LU) -// RKLLookasideCache_t should be large enough to to hold the maximum number of cached regexes, or (RKL_CACHE_SIZE * _RKL_LRU_CACHE_SET_WAYS). -#if (RKL_CACHE_SIZE * _RKL_LRU_CACHE_SET_WAYS) <= (1 << 8) -typedef uint8_t RKLLookasideCache_t; -#elif (RKL_CACHE_SIZE * _RKL_LRU_CACHE_SET_WAYS) <= (1 << 16) -typedef uint16_t RKLLookasideCache_t; -#else // (RKL_CACHE_SIZE * _RKL_LRU_CACHE_SET_WAYS) > (1 << 16) -typedef uint32_t RKLLookasideCache_t; -#endif // (RKL_CACHE_SIZE * _RKL_LRU_CACHE_SET_WAYS) - -////////////// -#pragma mark - -#pragma mark GCC / Compiler macros - -#if defined (__GNUC__) && (__GNUC__ >= 4) -#define RKL_ATTRIBUTES(attr, ...) __attribute__((attr, ##__VA_ARGS__)) -#define RKL_EXPECTED(cond, expect) __builtin_expect((long)(cond), (expect)) -#define RKL_PREFETCH(ptr) __builtin_prefetch(ptr) -#define RKL_PREFETCH_UNICHAR(ptr, off) { const char *p = ((const char *)(ptr)) + ((off) * sizeof(UniChar)) + _RKL_PREFETCH_SIZE; RKL_PREFETCH(p); RKL_PREFETCH(p + _RKL_PREFETCH_SIZE); } -#define RKL_HAVE_CLEANUP -#define RKL_CLEANUP(func) RKL_ATTRIBUTES(cleanup(func)) -#else // defined (__GNUC__) && (__GNUC__ >= 4) -#define RKL_ATTRIBUTES(attr, ...) -#define RKL_EXPECTED(cond, expect) (cond) -#define RKL_PREFETCH(ptr) -#define RKL_PREFETCH_UNICHAR(ptr, off) -#define RKL_CLEANUP(func) -#endif // defined (__GNUC__) && (__GNUC__ >= 4) - -#define RKL_STATIC_INLINE static __inline__ RKL_ATTRIBUTES(always_inline) -#define RKL_ALIGNED(arg) RKL_ATTRIBUTES(aligned(arg)) -#define RKL_UNUSED_ARG RKL_ATTRIBUTES(unused) -#define RKL_WARN_UNUSED RKL_ATTRIBUTES(warn_unused_result) -#define RKL_WARN_UNUSED_CONST RKL_ATTRIBUTES(warn_unused_result, const) -#define RKL_WARN_UNUSED_PURE RKL_ATTRIBUTES(warn_unused_result, pure) -#define RKL_WARN_UNUSED_SENTINEL RKL_ATTRIBUTES(warn_unused_result, sentinel) -#define RKL_NONNULL_ARGS(arg, ...) RKL_ATTRIBUTES(nonnull(arg, ##__VA_ARGS__)) -#define RKL_WARN_UNUSED_NONNULL_ARGS(arg, ...) RKL_ATTRIBUTES(warn_unused_result, nonnull(arg, ##__VA_ARGS__)) -#define RKL_WARN_UNUSED_CONST_NONNULL_ARGS(arg, ...) RKL_ATTRIBUTES(warn_unused_result, const, nonnull(arg, ##__VA_ARGS__)) -#define RKL_WARN_UNUSED_PURE_NONNULL_ARGS(arg, ...) RKL_ATTRIBUTES(warn_unused_result, pure, nonnull(arg, ##__VA_ARGS__)) - -#if defined (__GNUC__) && (__GNUC__ >= 4) && (__GNUC_MINOR__ >= 3) -#define RKL_ALLOC_SIZE_NON_NULL_ARGS_WARN_UNUSED(as, nn, ...) RKL_ATTRIBUTES(warn_unused_result, nonnull(nn, ##__VA_ARGS__), alloc_size(as)) -#else // defined (__GNUC__) && (__GNUC__ >= 4) && (__GNUC_MINOR__ >= 3) -#define RKL_ALLOC_SIZE_NON_NULL_ARGS_WARN_UNUSED(as, nn, ...) RKL_ATTRIBUTES(warn_unused_result, nonnull(nn, ##__VA_ARGS__)) -#endif // defined (__GNUC__) && (__GNUC__ >= 4) && (__GNUC_MINOR__ >= 3) - -#ifdef _RKL_DTRACE_ENABLED -#define RKL_UNUSED_DTRACE_ARG -#else // _RKL_DTRACE_ENABLED -#define RKL_UNUSED_DTRACE_ARG RKL_ATTRIBUTES(unused) -#endif // _RKL_DTRACE_ENABLED - -//////////// -#pragma mark - -#pragma mark Assertion macros - -// These macros are nearly identical to their NSCParameterAssert siblings. -// This is required because nearly everything is done while rkl_cacheSpinLock is locked. -// We need to safely unlock before throwing any of these exceptions. -// @try {} @finally {} significantly slows things down so it's not used. - -#define RKLCHardAbortAssert(c) do { int _c=(c); if(RKL_EXPECTED(!_c, 0L)) { NSLog(@"%@:%ld: Invalid parameter not satisfying: %s\n", [NSString stringWithUTF8String:__FILE__], (long)__LINE__, #c); abort(); } } while(0) -#define RKLCAssertDictionary(d, ...) rkl_makeAssertDictionary(__PRETTY_FUNCTION__, __FILE__, __LINE__, (d), ##__VA_ARGS__) -#define RKLCDelayedHardAssert(c, e, g) do { id *_e=(e); int _c=(c); if(RKL_EXPECTED(_e == NULL, 0L) || RKL_EXPECTED(*_e != NULL, 0L)) { goto g; } if(RKL_EXPECTED(!_c, 0L)) { *_e = RKLCAssertDictionary(@"Invalid parameter not satisfying: %s", #c); goto g; } } while(0) - -#ifdef NS_BLOCK_ASSERTIONS -#define RKLCAbortAssert(c) -#define RKLCDelayedAssert(c, e, g) -#define RKL_UNUSED_ASSERTION_ARG RKL_ATTRIBUTES(unused) -#else // NS_BLOCK_ASSERTIONS -#define RKLCAbortAssert(c) RKLCHardAbortAssert(c) -#define RKLCDelayedAssert(c, e, g) RKLCDelayedHardAssert(c, e, g) -#define RKL_UNUSED_ASSERTION_ARG -#endif // NS_BLOCK_ASSERTIONS - -#define RKL_EXCEPTION(e, f, ...) [NSException exceptionWithName:(e) reason:rkl_stringFromClassAndMethod((self), (_cmd), (f), ##__VA_ARGS__) userInfo:NULL] -#define RKL_RAISE_EXCEPTION(e, f, ...) [RKL_EXCEPTION(e, f, ##__VA_ARGS__) raise] - -//////////// -#pragma mark - -#pragma mark Utility functions and macros - -RKL_STATIC_INLINE BOOL NSRangeInsideRange(NSRange cin, NSRange win) RKL_WARN_UNUSED; -RKL_STATIC_INLINE BOOL NSRangeInsideRange(NSRange cin, NSRange win) { return((((cin.location - win.location) <= win.length) && ((NSMaxRange(cin) - win.location) <= win.length)) ? YES : NO); } - -#define NSMakeRange(loc, len) ((NSRange){.location=(NSUInteger)(loc), .length=(NSUInteger)(len)}) -#define CFMakeRange(loc, len) ((CFRange){.location= (CFIndex)(loc), .length= (CFIndex)(len)}) -#define NSNotFoundRange ((NSRange){.location=(NSUInteger)NSNotFound, .length= 0UL}) -#define NSMaxiumRange ((NSRange){.location= 0UL, .length= NSUIntegerMax}) -// These values are used to help tickle improper usage. -#define RKLIllegalRange ((NSRange){.location= NSIntegerMax, .length= NSIntegerMax}) -#define RKLIllegalPointer ((void * RKL_GC_VOLATILE)0xBAD0C0DE) - -//////////// -#pragma mark - -#pragma mark Exported NSString symbols for exception names, error domains, error keys, etc - -NSString * const RKLICURegexException = @"RKLICURegexException"; - -NSString * const RKLICURegexErrorDomain = @"RKLICURegexErrorDomain"; - -NSString * const RKLICURegexEnumerationOptionsErrorKey = @"RKLICURegexEnumerationOptions"; -NSString * const RKLICURegexErrorCodeErrorKey = @"RKLICURegexErrorCode"; -NSString * const RKLICURegexErrorNameErrorKey = @"RKLICURegexErrorName"; -NSString * const RKLICURegexLineErrorKey = @"RKLICURegexLine"; -NSString * const RKLICURegexOffsetErrorKey = @"RKLICURegexOffset"; -NSString * const RKLICURegexPreContextErrorKey = @"RKLICURegexPreContext"; -NSString * const RKLICURegexPostContextErrorKey = @"RKLICURegexPostContext"; -NSString * const RKLICURegexRegexErrorKey = @"RKLICURegexRegex"; -NSString * const RKLICURegexRegexOptionsErrorKey = @"RKLICURegexRegexOptions"; -NSString * const RKLICURegexReplacedCountErrorKey = @"RKLICURegexReplacedCount"; -NSString * const RKLICURegexReplacedStringErrorKey = @"RKLICURegexReplacedString"; -NSString * const RKLICURegexReplacementStringErrorKey = @"RKLICURegexReplacementString"; -NSString * const RKLICURegexSubjectRangeErrorKey = @"RKLICURegexSubjectRange"; -NSString * const RKLICURegexSubjectStringErrorKey = @"RKLICURegexSubjectString"; - -// Used internally by rkl_userInfoDictionary to specify which arguments should be set in the NSError userInfo dictionary. -enum { - RKLUserInfoNone = 0UL, - RKLUserInfoSubjectRange = 1UL << 0, - RKLUserInfoReplacedCount = 1UL << 1, - RKLUserInfoRegexEnumerationOptions = 1UL << 2, -}; -typedef NSUInteger RKLUserInfoOptions; - -//////////// -#pragma mark - -#pragma mark Type / struct definitions - -// In general, the ICU bits and pieces here must exactly match the definition in the ICU sources. - -#define U_STRING_NOT_TERMINATED_WARNING -124 -#define U_ZERO_ERROR 0 -#define U_INDEX_OUTOFBOUNDS_ERROR 8 -#define U_BUFFER_OVERFLOW_ERROR 15 -#define U_PARSE_CONTEXT_LEN 16 - -typedef struct uregex uregex; // Opaque ICU regex type. - -typedef struct UParseError { // This must be exactly the same as the 'real' ICU declaration. - int32_t line; - int32_t offset; - UniChar preContext[U_PARSE_CONTEXT_LEN]; - UniChar postContext[U_PARSE_CONTEXT_LEN]; -} UParseError; - -// For use with GCC's cleanup() __attribute__. -enum { - RKLLockedCacheSpinLock = 1UL << 0, - RKLUnlockedCacheSpinLock = 1UL << 1, -}; - -enum { - RKLSplitOp = 1UL, - RKLReplaceOp = 2UL, - RKLRangeOp = 3UL, - RKLArrayOfStringsOp = 4UL, - RKLArrayOfCapturesOp = 5UL, - RKLCapturesArrayOp = 6UL, - RKLDictionaryOfCapturesOp = 7UL, - RKLArrayOfDictionariesOfCapturesOp = 8UL, - RKLMaskOp = 0xFUL, - RKLReplaceMutable = 1UL << 4, - RKLSubcapturesArray = 1UL << 5, -}; -typedef NSUInteger RKLRegexOp; - -enum { - RKLBlockEnumerationMatchOp = 1UL, - RKLBlockEnumerationReplaceOp = 2UL, -}; -typedef NSUInteger RKLBlockEnumerationOp; - -typedef struct { - RKL_STRONG_REF NSRange * RKL_GC_VOLATILE ranges; - NSRange findInRange, remainingRange; - NSInteger capacity, found, findUpTo, capture, addedSplitRanges; - size_t size, stackUsed; - RKL_STRONG_REF void ** RKL_GC_VOLATILE rangesScratchBuffer; - RKL_STRONG_REF void ** RKL_GC_VOLATILE stringsScratchBuffer; - RKL_STRONG_REF void ** RKL_GC_VOLATILE arraysScratchBuffer; - RKL_STRONG_REF void ** RKL_GC_VOLATILE dictionariesScratchBuffer; - RKL_STRONG_REF void ** RKL_GC_VOLATILE keysScratchBuffer; -} RKLFindAll; - -typedef struct { - CFStringRef string; - CFHashCode hash; - CFIndex length; - RKL_STRONG_REF UniChar * RKL_GC_VOLATILE uniChar; -} RKLBuffer; - -typedef struct { - CFStringRef regexString; - CFHashCode regexHash; - RKLRegexOptions options; - uregex *icu_regex; - NSInteger captureCount; - - CFStringRef setToString; - CFHashCode setToHash; - CFIndex setToLength; - NSUInteger setToIsImmutable:1; - NSUInteger setToNeedsConversion:1; - RKL_STRONG_REF const UniChar * RKL_GC_VOLATILE setToUniChar; - NSRange setToRange, lastFindRange, lastMatchRange; - - RKLBuffer *buffer; -} RKLCachedRegex; - -//////////// -#pragma mark - -#pragma mark Translation unit scope global variables - -static RKLLRUCacheSet_t rkl_lruFixedBufferCacheSet = _RKL_LRU_CACHE_SET_INIT, rkl_lruDynamicBufferCacheSet = _RKL_LRU_CACHE_SET_INIT; -static RKLBuffer rkl_lruDynamicBuffer[_RKL_LRU_CACHE_SET_WAYS]; -static UniChar rkl_lruFixedUniChar[_RKL_LRU_CACHE_SET_WAYS][_RKL_FIXED_LENGTH]; // This is the fixed sized UTF-16 conversion buffer. -static RKLBuffer rkl_lruFixedBuffer[_RKL_LRU_CACHE_SET_WAYS] = {{NULL, 0UL, 0L, &rkl_lruFixedUniChar[0][0]}, {NULL, 0UL, 0L, &rkl_lruFixedUniChar[1][0]}, {NULL, 0UL, 0L, &rkl_lruFixedUniChar[2][0]}, {NULL, 0UL, 0L, &rkl_lruFixedUniChar[3][0]}}; -static RKLCachedRegex rkl_cachedRegexes[_RKL_REGEX_CACHE_LINES]; -#if defined(__GNUC__) && (__GNUC__ == 4) && defined(__GNUC_MINOR__) && (__GNUC_MINOR__ == 2) -static RKLCachedRegex * volatile rkl_lastCachedRegex; // XXX This is a work around for what appears to be a optimizer code generation bug in GCC 4.2. -#else -static RKLCachedRegex *rkl_lastCachedRegex; -#endif // defined(__GNUC__) && (__GNUC__ == 4) && defined(__GNUC_MINOR__) && (__GNUC_MINOR__ == 2) -static RKLLRUCacheSet_t rkl_cachedRegexCacheSets[_RKL_REGEX_LRU_CACHE_SETS] = { [0 ... (_RKL_REGEX_LRU_CACHE_SETS - 1UL)] = _RKL_LRU_CACHE_SET_INIT }; -static RKLLookasideCache_t rkl_regexLookasideCache[_RKL_REGEX_LOOKASIDE_CACHE_SIZE] RKL_ALIGNED(64); -static OSSpinLock rkl_cacheSpinLock = OS_SPINLOCK_INIT; -static const UniChar rkl_emptyUniCharString[1]; // For safety, icu_regexes are 'set' to this when the string they were searched is cleared. -static RKL_STRONG_REF void * RKL_GC_VOLATILE rkl_scratchBuffer[_RKL_SCRATCH_BUFFERS]; // Used to hold temporary allocations that are allocated via reallocf(). - -//////////// -#pragma mark - -#pragma mark CFArray and CFDictionary call backs - -// These are used when running under manual memory management for the array that rkl_splitArray creates. -// The split strings are created, but not autoreleased. The (immutable) array is created using these callbacks, which skips the CFRetain() call, effectively transferring ownership to the CFArray object. -// For each split string this saves the overhead of an autorelease, then an array retain, then an NSAutoreleasePool release. This is good for a ~30% speed increase. - -static void rkl_CFCallbackRelease(CFAllocatorRef allocator RKL_UNUSED_ARG, const void *ptr) { CFRelease((CFTypeRef)ptr); } -static const CFArrayCallBacks rkl_transferOwnershipArrayCallBacks = { (CFIndex)0L, NULL, rkl_CFCallbackRelease, CFCopyDescription, CFEqual }; -static const CFDictionaryKeyCallBacks rkl_transferOwnershipDictionaryKeyCallBacks = { (CFIndex)0L, NULL, rkl_CFCallbackRelease, CFCopyDescription, CFEqual, CFHash }; -static const CFDictionaryValueCallBacks rkl_transferOwnershipDictionaryValueCallBacks = { (CFIndex)0L, NULL, rkl_CFCallbackRelease, CFCopyDescription, CFEqual }; - -#ifdef __OBJC_GC__ -//////////// -#pragma mark - -#pragma mark Low-level Garbage Collection aware memory/resource allocation utilities -// If compiled with Garbage Collection, we need to be able to do a few things slightly differently. -// The basic premiss is that under GC we use a trampoline function pointer which is set to a _start function to catch the first invocation. -// The _start function checks if GC is running and then overwrites the function pointer with the appropriate routine. Think of it as 'lazy linking'. - -enum { RKLScannedOption = NSScannedOption }; - -// rkl_collectingEnabled uses objc_getClass() to get the NSGarbageCollector class, which doesn't exist on earlier systems. -// This allows for graceful failure should we find ourselves running on an earlier version of the OS without NSGarbageCollector. -static BOOL rkl_collectingEnabled_first (void); -static BOOL rkl_collectingEnabled_yes (void) { return(YES); } -static BOOL rkl_collectingEnabled_no (void) { return(NO); } -static BOOL(*rkl_collectingEnabled) (void) = rkl_collectingEnabled_first; -static BOOL rkl_collectingEnabled_first (void) { - BOOL gcEnabled = ([objc_getClass("NSGarbageCollector") defaultCollector] != NULL) ? YES : NO; - if(gcEnabled == YES) { - // This section of code is required due to what I consider to be a fundamental design flaw in Cocoas GC system. - // Earlier versions of "Garbage Collection Programming Guide" stated that (paraphrased) "all globals are automatically roots". - // Current versions of the guide now include the following warning: - // "You may pass addresses of strong globals or statics into routines expecting pointers to object pointers (such as id* or NSError**) - // only if they have first been assigned to directly, rather than through a pointer dereference." - // This is a surprisingly non-trivial condition to actually meet in practice and is a recipe for impossible to debug race condition bugs. - // We just happen to be very, very, very lucky in the fact that we can initialize our root set before the first use. - NSUInteger x = 0UL; - for(x = 0UL; x < _RKL_SCRATCH_BUFFERS; x++) { rkl_scratchBuffer[x] = NSAllocateCollectable(16UL, 0UL); rkl_scratchBuffer[x] = NULL; } - for(x = 0UL; x < _RKL_LRU_CACHE_SET_WAYS; x++) { rkl_lruDynamicBuffer[x].uniChar = NSAllocateCollectable(16UL, 0UL); rkl_lruDynamicBuffer[x].uniChar = NULL; } - } - return((rkl_collectingEnabled = (gcEnabled == YES) ? rkl_collectingEnabled_yes : rkl_collectingEnabled_no)()); -} - -// rkl_realloc() -static void *rkl_realloc_first (RKL_STRONG_REF void ** RKL_GC_VOLATILE ptr, size_t size, NSUInteger flags); -static void *rkl_realloc_std (RKL_STRONG_REF void ** RKL_GC_VOLATILE ptr, size_t size, NSUInteger flags RKL_UNUSED_ARG) { return((*ptr = reallocf(*ptr, size))); } -static void *rkl_realloc_gc (RKL_STRONG_REF void ** RKL_GC_VOLATILE ptr, size_t size, NSUInteger flags) { return((*ptr = NSReallocateCollectable(*ptr, (NSUInteger)size, flags))); } -static void *(*rkl_realloc) (RKL_STRONG_REF void ** RKL_GC_VOLATILE ptr, size_t size, NSUInteger flags) RKL_ALLOC_SIZE_NON_NULL_ARGS_WARN_UNUSED(2,1) = rkl_realloc_first; -static void *rkl_realloc_first (RKL_STRONG_REF void ** RKL_GC_VOLATILE ptr, size_t size, NSUInteger flags) { if(rkl_collectingEnabled()==YES) { rkl_realloc = rkl_realloc_gc; } else { rkl_realloc = rkl_realloc_std; } return(rkl_realloc(ptr, size, flags)); } - -// rkl_free() -static void * rkl_free_first (RKL_STRONG_REF void ** RKL_GC_VOLATILE ptr); -static void * rkl_free_std (RKL_STRONG_REF void ** RKL_GC_VOLATILE ptr) { if(*ptr != NULL) { free(*ptr); *ptr = NULL; } return(NULL); } -static void * rkl_free_gc (RKL_STRONG_REF void ** RKL_GC_VOLATILE ptr) { if(*ptr != NULL) { *ptr = NULL; } return(NULL); } -static void *(*rkl_free) (RKL_STRONG_REF void ** RKL_GC_VOLATILE ptr) RKL_NONNULL_ARGS(1) = rkl_free_first; -static void *rkl_free_first (RKL_STRONG_REF void ** RKL_GC_VOLATILE ptr) { if(rkl_collectingEnabled()==YES) { rkl_free = rkl_free_gc; } else { rkl_free = rkl_free_std; } return(rkl_free(ptr)); } - -// rkl_CFAutorelease() -static id rkl_CFAutorelease_first (CFTypeRef obj); -static id rkl_CFAutorelease_std (CFTypeRef obj) { return([(id)obj autorelease]); } -static id rkl_CFAutorelease_gc (CFTypeRef obj) { return(NSMakeCollectable(obj)); } -static id(*rkl_CFAutorelease) (CFTypeRef obj) = rkl_CFAutorelease_first; -static id rkl_CFAutorelease_first (CFTypeRef obj) { return((rkl_CFAutorelease = (rkl_collectingEnabled()==YES) ? rkl_CFAutorelease_gc : rkl_CFAutorelease_std)(obj)); } - -// rkl_CreateStringWithSubstring() -static id rkl_CreateStringWithSubstring_first (id string, NSRange range); -static id rkl_CreateStringWithSubstring_std (id string, NSRange range) { return((id)CFStringCreateWithSubstring(NULL, (CFStringRef)string, CFMakeRange((CFIndex)range.location, (CFIndex)range.length))); } -static id rkl_CreateStringWithSubstring_gc (id string, NSRange range) { return([string substringWithRange:range]); } -static id(*rkl_CreateStringWithSubstring) (id string, NSRange range) RKL_WARN_UNUSED_NONNULL_ARGS(1) = rkl_CreateStringWithSubstring_first; -static id rkl_CreateStringWithSubstring_first (id string, NSRange range) { return((rkl_CreateStringWithSubstring = (rkl_collectingEnabled()==YES) ? rkl_CreateStringWithSubstring_gc : rkl_CreateStringWithSubstring_std)(string, range)); } - -// rkl_ReleaseObject() -static id rkl_ReleaseObject_first (id obj); -static id rkl_ReleaseObject_std (id obj) { CFRelease((CFTypeRef)obj); return(NULL); } -static id rkl_ReleaseObject_gc (id obj RKL_UNUSED_ARG) { return(NULL); } -static id (*rkl_ReleaseObject) (id obj) RKL_NONNULL_ARGS(1) = rkl_ReleaseObject_first; -static id rkl_ReleaseObject_first (id obj) { return((rkl_ReleaseObject = (rkl_collectingEnabled()==YES) ? rkl_ReleaseObject_gc : rkl_ReleaseObject_std)(obj)); } - -// rkl_CreateArrayWithObjects() -static id rkl_CreateArrayWithObjects_first (void **objects, NSUInteger count); -static id rkl_CreateArrayWithObjects_std (void **objects, NSUInteger count) { return((id)CFArrayCreate(NULL, (const void **)objects, (CFIndex)count, &rkl_transferOwnershipArrayCallBacks)); } -static id rkl_CreateArrayWithObjects_gc (void **objects, NSUInteger count) { return([NSArray arrayWithObjects:(const id *)objects count:count]); } -static id(*rkl_CreateArrayWithObjects) (void **objects, NSUInteger count) RKL_WARN_UNUSED_NONNULL_ARGS(1) = rkl_CreateArrayWithObjects_first; -static id rkl_CreateArrayWithObjects_first (void **objects, NSUInteger count) { return((rkl_CreateArrayWithObjects = (rkl_collectingEnabled()==YES) ? rkl_CreateArrayWithObjects_gc : rkl_CreateArrayWithObjects_std)(objects, count)); } - -// rkl_CreateAutoreleasedArray() -static id rkl_CreateAutoreleasedArray_first (void **objects, NSUInteger count); -static id rkl_CreateAutoreleasedArray_std (void **objects, NSUInteger count) { return((id)rkl_CFAutorelease(rkl_CreateArrayWithObjects(objects, count))); } -static id rkl_CreateAutoreleasedArray_gc (void **objects, NSUInteger count) { return( rkl_CreateArrayWithObjects(objects, count) ); } -static id(*rkl_CreateAutoreleasedArray) (void **objects, NSUInteger count) RKL_WARN_UNUSED_NONNULL_ARGS(1) = rkl_CreateAutoreleasedArray_first; -static id rkl_CreateAutoreleasedArray_first (void **objects, NSUInteger count) { return((rkl_CreateAutoreleasedArray = (rkl_collectingEnabled()==YES) ? rkl_CreateAutoreleasedArray_gc : rkl_CreateAutoreleasedArray_std)(objects, count)); } - -#else // __OBJC_GC__ not defined -//////////// -#pragma mark - -#pragma mark Low-level explicit memory/resource allocation utilities - -enum { RKLScannedOption = 0 }; - -#define rkl_collectingEnabled() (NO) - -RKL_STATIC_INLINE void *rkl_realloc (void **ptr, size_t size, NSUInteger flags) RKL_ALLOC_SIZE_NON_NULL_ARGS_WARN_UNUSED(2,1); -RKL_STATIC_INLINE void *rkl_free (void **ptr) RKL_NONNULL_ARGS(1); -RKL_STATIC_INLINE id rkl_CFAutorelease (CFTypeRef obj) RKL_WARN_UNUSED_NONNULL_ARGS(1); -RKL_STATIC_INLINE id rkl_CreateAutoreleasedArray (void **objects, NSUInteger count) RKL_WARN_UNUSED_NONNULL_ARGS(1); -RKL_STATIC_INLINE id rkl_CreateArrayWithObjects (void **objects, NSUInteger count) RKL_WARN_UNUSED_NONNULL_ARGS(1); -RKL_STATIC_INLINE id rkl_CreateStringWithSubstring (id string, NSRange range) RKL_WARN_UNUSED_NONNULL_ARGS(1); -RKL_STATIC_INLINE id rkl_ReleaseObject (id obj) RKL_NONNULL_ARGS(1); - -RKL_STATIC_INLINE void *rkl_realloc (void **ptr, size_t size, NSUInteger flags RKL_UNUSED_ARG) { return((*ptr = reallocf(*ptr, size))); } -RKL_STATIC_INLINE void *rkl_free (void **ptr) { if(*ptr != NULL) { free(*ptr); *ptr = NULL; } return(NULL); } -RKL_STATIC_INLINE id rkl_CFAutorelease (CFTypeRef obj) { return([(id)obj autorelease]); } -RKL_STATIC_INLINE id rkl_CreateArrayWithObjects (void **objects, NSUInteger count) { return((id)CFArrayCreate(NULL, (const void **)objects, (CFIndex)count, &rkl_transferOwnershipArrayCallBacks)); } -RKL_STATIC_INLINE id rkl_CreateAutoreleasedArray (void **objects, NSUInteger count) { return(rkl_CFAutorelease(rkl_CreateArrayWithObjects(objects, count))); } -RKL_STATIC_INLINE id rkl_CreateStringWithSubstring (id string, NSRange range) { return((id)CFStringCreateWithSubstring(NULL, (CFStringRef)string, CFMakeRange((CFIndex)range.location, (CFIndex)range.length))); } -RKL_STATIC_INLINE id rkl_ReleaseObject (id obj) { CFRelease((CFTypeRef)obj); return(NULL); } - -#endif // __OBJC_GC__ - -//////////// -#pragma mark - -#pragma mark ICU function prototypes - -// ICU functions. See http://www.icu-project.org/apiref/icu4c/uregex_8h.html Tweaked slightly from the originals, but functionally identical. -const char *RKL_ICU_FUNCTION_APPEND(u_errorName) ( int32_t status) RKL_WARN_UNUSED_PURE; -int32_t RKL_ICU_FUNCTION_APPEND(u_strlen) (const UniChar *s) RKL_WARN_UNUSED_PURE_NONNULL_ARGS(1); -int32_t RKL_ICU_FUNCTION_APPEND(uregex_appendReplacement) ( uregex *regexp, const UniChar *replacementText, int32_t replacementLength, UniChar **destBuf, int32_t *destCapacity, int32_t *status) RKL_WARN_UNUSED_NONNULL_ARGS(1,2,4,5,6); -int32_t RKL_ICU_FUNCTION_APPEND(uregex_appendTail) ( uregex *regexp, UniChar **destBuf, int32_t *destCapacity, int32_t *status) RKL_WARN_UNUSED_NONNULL_ARGS(1,2,3,4); -void RKL_ICU_FUNCTION_APPEND(uregex_close) ( uregex *regexp) RKL_NONNULL_ARGS(1); -int32_t RKL_ICU_FUNCTION_APPEND(uregex_end) ( uregex *regexp, int32_t groupNum, int32_t *status) RKL_WARN_UNUSED_NONNULL_ARGS(1,3); -BOOL RKL_ICU_FUNCTION_APPEND(uregex_find) ( uregex *regexp, int32_t location, int32_t *status) RKL_WARN_UNUSED_NONNULL_ARGS(1,3); -BOOL RKL_ICU_FUNCTION_APPEND(uregex_findNext) ( uregex *regexp, int32_t *status) RKL_WARN_UNUSED_NONNULL_ARGS(1,2); -int32_t RKL_ICU_FUNCTION_APPEND(uregex_groupCount) ( uregex *regexp, int32_t *status) RKL_WARN_UNUSED_NONNULL_ARGS(1,2); -uregex *RKL_ICU_FUNCTION_APPEND(uregex_open) (const UniChar *pattern, int32_t patternLength, RKLRegexOptions flags, UParseError *parseError, int32_t *status) RKL_WARN_UNUSED_NONNULL_ARGS(1,4,5); -void RKL_ICU_FUNCTION_APPEND(uregex_reset) ( uregex *regexp, int32_t newIndex, int32_t *status) RKL_NONNULL_ARGS(1,3); -void RKL_ICU_FUNCTION_APPEND(uregex_setText) ( uregex *regexp, const UniChar *text, int32_t textLength, int32_t *status) RKL_NONNULL_ARGS(1,2,4); -int32_t RKL_ICU_FUNCTION_APPEND(uregex_start) ( uregex *regexp, int32_t groupNum, int32_t *status) RKL_WARN_UNUSED_NONNULL_ARGS(1,3); -uregex *RKL_ICU_FUNCTION_APPEND(uregex_clone) (const uregex *regexp, int32_t *status) RKL_WARN_UNUSED_NONNULL_ARGS(1,2); - -//////////// -#pragma mark - -#pragma mark RegexKitLite internal, private function prototypes - -// Functions used for managing the 4-way set associative LRU cache and regex string hash lookaside cache. -RKL_STATIC_INLINE NSUInteger rkl_leastRecentlyUsedWayInSet ( NSUInteger cacheSetsCount, const RKLLRUCacheSet_t cacheSetsArray[cacheSetsCount], NSUInteger set) RKL_WARN_UNUSED_NONNULL_ARGS(2); -RKL_STATIC_INLINE void rkl_accessCacheSetWay ( NSUInteger cacheSetsCount, RKLLRUCacheSet_t cacheSetsArray[cacheSetsCount], NSUInteger set, NSUInteger way) RKL_NONNULL_ARGS(2); -RKL_STATIC_INLINE NSUInteger rkl_regexLookasideCacheIndexForPointerAndOptions (const void *ptr, RKLRegexOptions options) RKL_WARN_UNUSED_NONNULL_ARGS(1); -RKL_STATIC_INLINE void rkl_setRegexLookasideCacheToCachedRegexForPointer (const RKLCachedRegex *cachedRegex, const void *ptr) RKL_NONNULL_ARGS(1,2); -RKL_STATIC_INLINE RKLCachedRegex *rkl_cachedRegexFromRegexLookasideCacheForString (const void *ptr, RKLRegexOptions options) RKL_WARN_UNUSED_NONNULL_ARGS(1); -RKL_STATIC_INLINE NSUInteger rkl_makeCacheSetHash ( CFHashCode regexHash, RKLRegexOptions options) RKL_WARN_UNUSED; -RKL_STATIC_INLINE NSUInteger rkl_cacheSetForRegexHashAndOptions ( CFHashCode regexHash, RKLRegexOptions options) RKL_WARN_UNUSED; -RKL_STATIC_INLINE NSUInteger rkl_cacheWayForCachedRegex (const RKLCachedRegex *cachedRegex) RKL_WARN_UNUSED_NONNULL_ARGS(1); -RKL_STATIC_INLINE NSUInteger rkl_cacheSetForCachedRegex (const RKLCachedRegex *cachedRegex) RKL_WARN_UNUSED_NONNULL_ARGS(1); -RKL_STATIC_INLINE RKLCachedRegex *rkl_cachedRegexForCacheSetAndWay ( NSUInteger cacheSet, NSUInteger cacheWay) RKL_WARN_UNUSED; -RKL_STATIC_INLINE RKLCachedRegex *rkl_cachedRegexForRegexHashAndOptionsAndWay ( CFHashCode regexHash, RKLRegexOptions options, NSUInteger cacheWay) RKL_WARN_UNUSED; -RKL_STATIC_INLINE void rkl_updateCachesWithCachedRegex ( RKLCachedRegex *cachedRegex, const void *ptr, int hitOrMiss RKL_UNUSED_DTRACE_ARG, int status RKL_UNUSED_DTRACE_ARG) RKL_NONNULL_ARGS(1,2); -RKL_STATIC_INLINE RKLCachedRegex *rkl_leastRecentlyUsedCachedRegexForRegexHashAndOptions ( CFHashCode regexHash, RKLRegexOptions options) RKL_WARN_UNUSED; - -static RKLCachedRegex *rkl_getCachedRegex (NSString *regexString, RKLRegexOptions options, NSError **error, id *exception) RKL_WARN_UNUSED_NONNULL_ARGS(1,4); -static NSUInteger rkl_setCachedRegexToString (RKLCachedRegex *cachedRegex, const NSRange *range, int32_t *status, id *exception RKL_UNUSED_ASSERTION_ARG) RKL_WARN_UNUSED_NONNULL_ARGS(1,2,3,4); -static RKLCachedRegex *rkl_getCachedRegexSetToString (NSString *regexString, RKLRegexOptions options, NSString *matchString, NSUInteger *matchLengthPtr, NSRange *matchRange, NSError **error, id *exception, int32_t *status) RKL_WARN_UNUSED_NONNULL_ARGS(1,3,4,5,7,8); -static id rkl_performDictionaryVarArgsOp(id self, SEL _cmd, RKLRegexOp regexOp, NSString *regexString, RKLRegexOptions options, NSInteger capture, id matchString, NSRange *matchRange, NSString *replacementString, NSError **error, void *result, id firstKey, va_list varArgsList) RKL_NONNULL_ARGS(1,2); -static id rkl_performRegexOp (id self, SEL _cmd, RKLRegexOp regexOp, NSString *regexString, RKLRegexOptions options, NSInteger capture, id matchString, NSRange *matchRange, NSString *replacementString, NSError **error, void *result, NSUInteger captureKeysCount, id captureKeys[captureKeysCount], const int captureKeyIndexes[captureKeysCount]) RKL_NONNULL_ARGS(1,2); -static void rkl_handleDelayedAssert (id self, SEL _cmd, id exception) RKL_NONNULL_ARGS(3); - -static NSUInteger rkl_search (RKLCachedRegex *cachedRegex, NSRange *searchRange, NSUInteger updateSearchRange, id *exception RKL_UNUSED_ASSERTION_ARG, int32_t *status) RKL_WARN_UNUSED_NONNULL_ARGS(1,2,4,5); - -static BOOL rkl_findRanges (RKLCachedRegex *cachedRegex, RKLRegexOp regexOp, RKLFindAll *findAll, id *exception, int32_t *status) RKL_WARN_UNUSED_NONNULL_ARGS(1,3,4,5); -static NSUInteger rkl_growFindRanges (RKLCachedRegex *cachedRegex, NSUInteger lastLocation, RKLFindAll *findAll, id *exception RKL_UNUSED_ASSERTION_ARG) RKL_WARN_UNUSED_NONNULL_ARGS(1,3,4); -static NSArray *rkl_makeArray (RKLCachedRegex *cachedRegex, RKLRegexOp regexOp, RKLFindAll *findAll, id *exception RKL_UNUSED_ASSERTION_ARG) RKL_WARN_UNUSED_NONNULL_ARGS(1,3,4); -static id rkl_makeDictionary (RKLCachedRegex *cachedRegex, RKLRegexOp regexOp, RKLFindAll *findAll, NSUInteger captureKeysCount, id captureKeys[captureKeysCount], const int captureKeyIndexes[captureKeysCount], id *exception RKL_UNUSED_ASSERTION_ARG) RKL_WARN_UNUSED_NONNULL_ARGS(1,3,5,6); - -static NSString *rkl_replaceString (RKLCachedRegex *cachedRegex, id searchString, NSUInteger searchU16Length, NSString *replacementString, NSUInteger replacementU16Length, NSInteger *replacedCount, NSUInteger replaceMutable, id *exception, int32_t *status) RKL_WARN_UNUSED_NONNULL_ARGS(1,2,4,8,9); -static int32_t rkl_replaceAll (RKLCachedRegex *cachedRegex, RKL_STRONG_REF const UniChar * RKL_GC_VOLATILE replacementUniChar, int32_t replacementU16Length, UniChar *replacedUniChar, int32_t replacedU16Capacity, NSInteger *replacedCount, int32_t *needU16Capacity, id *exception RKL_UNUSED_ASSERTION_ARG, int32_t *status) RKL_WARN_UNUSED_NONNULL_ARGS(1,2,4,6,7,8,9); - -static NSUInteger rkl_isRegexValid (id self, SEL _cmd, NSString *regex, RKLRegexOptions options, NSInteger *captureCountPtr, NSError **error) RKL_NONNULL_ARGS(1,2); - -static void rkl_clearStringCache (void); -static void rkl_clearBuffer (RKLBuffer *buffer, NSUInteger freeDynamicBuffer) RKL_NONNULL_ARGS(1); -static void rkl_clearCachedRegex (RKLCachedRegex *cachedRegex) RKL_NONNULL_ARGS(1); -static void rkl_clearCachedRegexSetTo (RKLCachedRegex *cachedRegex) RKL_NONNULL_ARGS(1); - -static NSDictionary *rkl_userInfoDictionary (RKLUserInfoOptions userInfoOptions, NSString *regexString, RKLRegexOptions options, const UParseError *parseError, int32_t status, NSString *matchString, NSRange matchRange, NSString *replacementString, NSString *replacedString, NSInteger replacedCount, RKLRegexEnumerationOptions enumerationOptions, ...) RKL_WARN_UNUSED_SENTINEL; -static NSError *rkl_makeNSError (RKLUserInfoOptions userInfoOptions, NSString *regexString, RKLRegexOptions options, const UParseError *parseError, int32_t status, NSString *matchString, NSRange matchRange, NSString *replacementString, NSString *replacedString, NSInteger replacedCount, RKLRegexEnumerationOptions enumerationOptions, NSString *errorDescription) RKL_WARN_UNUSED; - -static NSException *rkl_NSExceptionForRegex (NSString *regexString, RKLRegexOptions options, const UParseError *parseError, int32_t status) RKL_WARN_UNUSED_NONNULL_ARGS(1); -static NSDictionary *rkl_makeAssertDictionary (const char *function, const char *file, int line, NSString *format, ...) RKL_WARN_UNUSED_NONNULL_ARGS(1,2,4); -static NSString *rkl_stringFromClassAndMethod (id object, SEL selector, NSString *format, ...) RKL_WARN_UNUSED_NONNULL_ARGS(3); - -RKL_STATIC_INLINE int32_t rkl_getRangeForCapture(RKLCachedRegex *cr, int32_t *s, int32_t c, NSRange *r) RKL_WARN_UNUSED_NONNULL_ARGS(1,2,4); -RKL_STATIC_INLINE int32_t rkl_getRangeForCapture(RKLCachedRegex *cr, int32_t *s, int32_t c, NSRange *r) { uregex *re = cr->icu_regex; int32_t start = RKL_ICU_FUNCTION_APPEND(uregex_start)(re, c, s); if(RKL_EXPECTED((*s > U_ZERO_ERROR), 0L) || (start == -1)) { *r = NSNotFoundRange; } else { r->location = (NSUInteger)start; r->length = (NSUInteger)RKL_ICU_FUNCTION_APPEND(uregex_end)(re, c, s) - r->location; r->location += cr->setToRange.location; } return(*s); } - -RKL_STATIC_INLINE RKLFindAll rkl_makeFindAll(RKL_STRONG_REF NSRange * RKL_GC_VOLATILE r, NSRange fir, NSInteger c, size_t s, size_t su, RKL_STRONG_REF void ** RKL_GC_VOLATILE rsb, RKL_STRONG_REF void ** RKL_GC_VOLATILE ssb, RKL_STRONG_REF void ** RKL_GC_VOLATILE asb, RKL_STRONG_REF void ** RKL_GC_VOLATILE dsb, RKL_STRONG_REF void ** RKL_GC_VOLATILE ksb, NSInteger f, NSInteger cap, NSInteger fut) RKL_WARN_UNUSED_CONST; -RKL_STATIC_INLINE RKLFindAll rkl_makeFindAll(RKL_STRONG_REF NSRange * RKL_GC_VOLATILE r, NSRange fir, NSInteger c, size_t s, size_t su, RKL_STRONG_REF void ** RKL_GC_VOLATILE rsb, RKL_STRONG_REF void ** RKL_GC_VOLATILE ssb, RKL_STRONG_REF void ** RKL_GC_VOLATILE asb, RKL_STRONG_REF void ** RKL_GC_VOLATILE dsb, RKL_STRONG_REF void ** RKL_GC_VOLATILE ksb, NSInteger f, NSInteger cap, NSInteger fut) { return(((RKLFindAll){ .ranges=r, .findInRange=fir, .remainingRange=fir, .capacity=c, .found=f, .findUpTo=fut, .capture=cap, .addedSplitRanges=0L, .size=s, .stackUsed=su, .rangesScratchBuffer=rsb, .stringsScratchBuffer=ssb, .arraysScratchBuffer=asb, .dictionariesScratchBuffer=dsb, .keysScratchBuffer=ksb})); } - -//////////// -#pragma mark - -#pragma mark RKL_FAST_MUTABLE_CHECK implementation - -#ifdef RKL_FAST_MUTABLE_CHECK -// We use a trampoline function pointer to check at run time if the function __CFStringIsMutable is available. -// If it is, the trampoline function pointer is replaced with the address of that function. -// Otherwise, we assume the worst case that every string is mutable. -// This hopefully helps to protect us since we're using an undocumented, non-public API call. -// We will keep on working if it ever does go away, just with a bit less performance due to the overhead of mutable checks. - -static BOOL rkl_CFStringIsMutable_first (CFStringRef str); -static BOOL rkl_CFStringIsMutable_yes (CFStringRef str RKL_UNUSED_ARG) { return(YES); } -static BOOL(*rkl_CFStringIsMutable) (CFStringRef str) = rkl_CFStringIsMutable_first; -static BOOL rkl_CFStringIsMutable_first (CFStringRef str) { if((rkl_CFStringIsMutable = (BOOL(*)(CFStringRef))dlsym(RTLD_DEFAULT, "__CFStringIsMutable")) == NULL) { rkl_CFStringIsMutable = rkl_CFStringIsMutable_yes; } return(rkl_CFStringIsMutable(str)); } -#else // RKL_FAST_MUTABLE_CHECK is not defined. Assume that all strings are potentially mutable. -#define rkl_CFStringIsMutable(s) (YES) -#endif // RKL_FAST_MUTABLE_CHECK - -//////////// -#pragma mark - -#pragma mark iPhone / iPod touch low memory notification handler - -#if defined(RKL_REGISTER_FOR_IPHONE_LOWMEM_NOTIFICATIONS) && (RKL_REGISTER_FOR_IPHONE_LOWMEM_NOTIFICATIONS == 1) - -// The next few lines are specifically for the iPhone to catch low memory conditions. -// The basic idea is that rkl_RegisterForLowMemoryNotifications() is set to be run once by the linker at load time via __attribute((constructor)). -// rkl_RegisterForLowMemoryNotifications() tries to find the iPhone low memory notification symbol. If it can find it, -// it registers with the default NSNotificationCenter to call the RKLLowMemoryWarningObserver class method +lowMemoryWarning:. -// rkl_RegisterForLowMemoryNotifications() uses an atomic compare and swap to guarantee that it initializes exactly once. -// +lowMemoryWarning tries to acquire the cache lock. If it gets the lock, it clears the cache. If it can't, it calls performSelector: -// with a delay of half a second to try again. This will hopefully prevent any deadlocks, such as a RegexKitLite request for -// memory triggering a notification while the lock is held. - -static void rkl_RegisterForLowMemoryNotifications(void) RKL_ATTRIBUTES(used); - -@interface RKLLowMemoryWarningObserver : NSObject +(void)lowMemoryWarning:(id)notification; @end -@implementation RKLLowMemoryWarningObserver -+(void)lowMemoryWarning:(id)notification { - if(OSSpinLockTry(&rkl_cacheSpinLock)) { rkl_clearStringCache(); OSSpinLockUnlock(&rkl_cacheSpinLock); } - else { [[RKLLowMemoryWarningObserver class] performSelector:@selector(lowMemoryWarning:) withObject:notification afterDelay:(NSTimeInterval)0.1]; } -} -@end - -static volatile int rkl_HaveRegisteredForLowMemoryNotifications = 0; - -__attribute__((constructor)) static void rkl_RegisterForLowMemoryNotifications(void) { - _Bool didSwap = false; - void **memoryWarningNotification = NULL; - - while((rkl_HaveRegisteredForLowMemoryNotifications == 0) && ((didSwap = OSAtomicCompareAndSwapIntBarrier(0, 1, &rkl_HaveRegisteredForLowMemoryNotifications)) == false)) { /* Allows for spurious CAS failures. */ } - if(didSwap == true) { - if((memoryWarningNotification = (void **)dlsym(RTLD_DEFAULT, "UIApplicationDidReceiveMemoryWarningNotification")) != NULL) { - [[NSNotificationCenter defaultCenter] addObserver:[RKLLowMemoryWarningObserver class] selector:@selector(lowMemoryWarning:) name:(NSString *)*memoryWarningNotification object:NULL]; - } - } -} - -#endif // defined(RKL_REGISTER_FOR_IPHONE_LOWMEM_NOTIFICATIONS) && (RKL_REGISTER_FOR_IPHONE_LOWMEM_NOTIFICATIONS == 1) - -//////////// -#pragma mark - -#pragma mark DTrace functionality - -#ifdef _RKL_DTRACE_ENABLED - -// compiledRegexCache(unsigned long eventID, const char *regexUTF8, int options, int captures, int hitMiss, int icuStatusCode, const char *icuErrorMessage, double *hitRate); -// utf16ConversionCache(unsigned long eventID, unsigned int lookupResultFlags, double *hitRate, const void *string, unsigned long NSRange.location, unsigned long NSRange.length, long length); - -/* -provider RegexKitLite { - probe compiledRegexCache(unsigned long, const char *, unsigned int, int, int, int, const char *, double *); - probe utf16ConversionCache(unsigned long, unsigned int, double *, const void *, unsigned long, unsigned long, long); -}; - -#pragma D attributes Unstable/Unstable/Common provider RegexKitLite provider -#pragma D attributes Private/Private/Common provider RegexKitLite module -#pragma D attributes Private/Private/Common provider RegexKitLite function -#pragma D attributes Unstable/Unstable/Common provider RegexKitLite name -#pragma D attributes Unstable/Unstable/Common provider RegexKitLite args -*/ - -#define REGEXKITLITE_STABILITY "___dtrace_stability$RegexKitLite$v1$4_4_5_1_1_5_1_1_5_4_4_5_4_4_5" -#define REGEXKITLITE_TYPEDEFS "___dtrace_typedefs$RegexKitLite$v1" -#define REGEXKITLITE_COMPILEDREGEXCACHE(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7) { __asm__ volatile(".reference " REGEXKITLITE_TYPEDEFS); __dtrace_probe$RegexKitLite$compiledRegexCache$v1$756e7369676e6564206c6f6e67$63686172202a$756e7369676e656420696e74$696e74$696e74$696e74$63686172202a$646f75626c65202a(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7); __asm__ volatile(".reference " REGEXKITLITE_STABILITY); } -#define REGEXKITLITE_COMPILEDREGEXCACHE_ENABLED() __dtrace_isenabled$RegexKitLite$compiledRegexCache$v1() -#define REGEXKITLITE_CONVERTEDSTRINGU16CACHE(arg0, arg1, arg2, arg3, arg4, arg5, arg6) { __asm__ volatile(".reference " REGEXKITLITE_TYPEDEFS); __dtrace_probe$RegexKitLite$utf16ConversionCache$v1$756e7369676e6564206c6f6e67$756e7369676e656420696e74$646f75626c65202a$766f6964202a$756e7369676e6564206c6f6e67$756e7369676e6564206c6f6e67$6c6f6e67(arg0, arg1, arg2, arg3, arg4, arg5, arg6); __asm__ volatile(".reference " REGEXKITLITE_STABILITY); } -#define REGEXKITLITE_CONVERTEDSTRINGU16CACHE_ENABLED() __dtrace_isenabled$RegexKitLite$utf16ConversionCache$v1() - -extern void __dtrace_probe$RegexKitLite$compiledRegexCache$v1$756e7369676e6564206c6f6e67$63686172202a$756e7369676e656420696e74$696e74$696e74$696e74$63686172202a$646f75626c65202a(unsigned long, const char *, unsigned int, int, int, int, const char *, double *); -extern int __dtrace_isenabled$RegexKitLite$compiledRegexCache$v1(void); -extern void __dtrace_probe$RegexKitLite$utf16ConversionCache$v1$756e7369676e6564206c6f6e67$756e7369676e656420696e74$646f75626c65202a$766f6964202a$756e7369676e6564206c6f6e67$756e7369676e6564206c6f6e67$6c6f6e67(unsigned long, unsigned int, double *, const void *, unsigned long, unsigned long, long); -extern int __dtrace_isenabled$RegexKitLite$utf16ConversionCache$v1(void); - -//////////////////////////// - -enum { - RKLCacheHitLookupFlag = 1 << 0, - RKLConversionRequiredLookupFlag = 1 << 1, - RKLSetTextLookupFlag = 1 << 2, - RKLDynamicBufferLookupFlag = 1 << 3, - RKLErrorLookupFlag = 1 << 4, - RKLEnumerationBufferLookupFlag = 1 << 5, -}; - -#define rkl_dtrace_addLookupFlag(a,b) do { a |= (unsigned int)(b); } while(0) - -static char rkl_dtrace_regexUTF8[_RKL_REGEX_CACHE_LINES + 1UL][_RKL_DTRACE_REGEXUTF8_SIZE]; -static NSUInteger rkl_dtrace_eventID, rkl_dtrace_compiledCacheLookups, rkl_dtrace_compiledCacheHits, rkl_dtrace_conversionBufferLookups, rkl_dtrace_conversionBufferHits; - -#define rkl_dtrace_incrementEventID() do { rkl_dtrace_eventID++; } while(0) -#define rkl_dtrace_incrementAndGetEventID(v) do { rkl_dtrace_eventID++; v = rkl_dtrace_eventID; } while(0) -#define rkl_dtrace_compiledRegexCache(a0, a1, a2, a3, a4, a5) do { int _a3 = (a3); rkl_dtrace_compiledCacheLookups++; if(_a3 == 1) { rkl_dtrace_compiledCacheHits++; } if(RKL_EXPECTED(REGEXKITLITE_COMPILEDREGEXCACHE_ENABLED(), 0L)) { double hitRate = 0.0; if(rkl_dtrace_compiledCacheLookups > 0UL) { hitRate = ((double)rkl_dtrace_compiledCacheHits / (double)rkl_dtrace_compiledCacheLookups) * 100.0; } REGEXKITLITE_COMPILEDREGEXCACHE(rkl_dtrace_eventID, a0, a1, a2, _a3, a4, a5, &hitRate); } } while(0) -#define rkl_dtrace_utf16ConversionCache(a0, a1, a2, a3, a4) do { unsigned int _a0 = (a0); if((_a0 & RKLConversionRequiredLookupFlag) != 0U) { rkl_dtrace_conversionBufferLookups++; if((_a0 & RKLCacheHitLookupFlag) != 0U) { rkl_dtrace_conversionBufferHits++; } } if(RKL_EXPECTED(REGEXKITLITE_CONVERTEDSTRINGU16CACHE_ENABLED(), 0L)) { double hitRate = 0.0; if(rkl_dtrace_conversionBufferLookups > 0UL) { hitRate = ((double)rkl_dtrace_conversionBufferHits / (double)rkl_dtrace_conversionBufferLookups) * 100.0; } REGEXKITLITE_CONVERTEDSTRINGU16CACHE(rkl_dtrace_eventID, _a0, &hitRate, a1, a2, a3, a4); } } while(0) -#define rkl_dtrace_utf16ConversionCacheWithEventID(c0, a0, a1, a2, a3, a4) do { unsigned int _a0 = (a0); if((_a0 & RKLConversionRequiredLookupFlag) != 0U) { rkl_dtrace_conversionBufferLookups++; if((_a0 & RKLCacheHitLookupFlag) != 0U) { rkl_dtrace_conversionBufferHits++; } } if(RKL_EXPECTED(REGEXKITLITE_CONVERTEDSTRINGU16CACHE_ENABLED(), 0L)) { double hitRate = 0.0; if(rkl_dtrace_conversionBufferLookups > 0UL) { hitRate = ((double)rkl_dtrace_conversionBufferHits / (double)rkl_dtrace_conversionBufferLookups) * 100.0; } REGEXKITLITE_CONVERTEDSTRINGU16CACHE(c0, _a0, &hitRate, a1, a2, a3, a4); } } while(0) - - -// \342\200\246 == UTF8 for HORIZONTAL ELLIPSIS, aka triple dots '...' -#define RKL_UTF8_ELLIPSE "\342\200\246" - -// rkl_dtrace_getRegexUTF8 will copy the str argument to utf8Buffer using UTF8 as the string encoding. -// If the utf8 encoding would take up more bytes than the utf8Buffers length, then the unicode character 'HORIZONTAL ELLIPSIS' ('...') is appended to indicate truncation occurred. -static void rkl_dtrace_getRegexUTF8(CFStringRef str, char *utf8Buffer) RKL_NONNULL_ARGS(2); -static void rkl_dtrace_getRegexUTF8(CFStringRef str, char *utf8Buffer) { - if((str == NULL) || (utf8Buffer == NULL)) { return; } - CFIndex maxLength = ((CFIndex)_RKL_DTRACE_REGEXUTF8_SIZE - 2L), maxBytes = (maxLength - (CFIndex)sizeof(RKL_UTF8_ELLIPSE) - 1L), stringU16Length = CFStringGetLength(str), usedBytes = 0L; - CFStringGetBytes(str, CFMakeRange(0L, ((stringU16Length < maxLength) ? stringU16Length : maxLength)), kCFStringEncodingUTF8, (UInt8)'?', (Boolean)0, (UInt8 *)utf8Buffer, maxBytes, &usedBytes); - if(usedBytes == maxBytes) { strncpy(utf8Buffer + usedBytes, RKL_UTF8_ELLIPSE, ((size_t)_RKL_DTRACE_REGEXUTF8_SIZE - (size_t)usedBytes) - 2UL); } else { utf8Buffer[usedBytes] = (char)0; } -} - -#else // _RKL_DTRACE_ENABLED - -#define rkl_dtrace_incrementEventID() -#define rkl_dtrace_incrementAndGetEventID(v) -#define rkl_dtrace_compiledRegexCache(a0, a1, a2, a3, a4, a5) -#define rkl_dtrace_utf16ConversionCache(a0, a1, a2, a3, a4) -#define rkl_dtrace_utf16ConversionCacheWithEventID(c0, a0, a1, a2, a3, a4) -#define rkl_dtrace_getRegexUTF8(str, buf) -#define rkl_dtrace_addLookupFlag(a,b) - -#endif // _RKL_DTRACE_ENABLED - -//////////// -#pragma mark - -#pragma mark RegexKitLite low-level internal functions -#pragma mark - - -// The 4-way set associative LRU logic comes from Henry S. Warren Jr.'s Hacker's Delight, "revisions", 7-7 An LRU Algorithm: -// http://www.hackersdelight.org/revisions.pdf -// The functions rkl_leastRecentlyUsedWayInSet() and rkl_accessCacheSetWay() implement the cache functionality and are used -// from a number of different places that need to perform caching (i.e., cached regex, cached UTF16 conversions, etc) - -#pragma mark 4-way set associative LRU functions - -RKL_STATIC_INLINE NSUInteger rkl_leastRecentlyUsedWayInSet(NSUInteger cacheSetsCount, const RKLLRUCacheSet_t cacheSetsArray[cacheSetsCount], NSUInteger set) { - RKLCAbortAssert((cacheSetsArray != NULL) && ((NSInteger)cacheSetsCount > 0L) && (set < cacheSetsCount) && ((cacheSetsArray == rkl_cachedRegexCacheSets) ? set < _RKL_REGEX_LRU_CACHE_SETS : 1) && (((sizeof(unsigned int) - sizeof(RKLLRUCacheSet_t)) * 8) < (sizeof(unsigned int) * 8))); - unsigned int cacheSet = (((unsigned int)cacheSetsArray[set]) << ((sizeof(unsigned int) - sizeof(RKLLRUCacheSet_t)) * 8)); // __builtin_clz takes an 'unsigned int' argument. The rest is to ensure bit alignment regardless of 32/64/whatever. - NSUInteger leastRecentlyUsed = ((NSUInteger)(3LU - (NSUInteger)((__builtin_clz((~(((cacheSet & 0x77777777U) + 0x77777777U) | cacheSet | 0x77777777U))) ) >> 2))); - RKLCAbortAssert(leastRecentlyUsed < _RKL_LRU_CACHE_SET_WAYS); - return(leastRecentlyUsed); -} - -RKL_STATIC_INLINE void rkl_accessCacheSetWay(NSUInteger cacheSetsCount, RKLLRUCacheSet_t cacheSetsArray[cacheSetsCount], NSUInteger cacheSet, NSUInteger cacheWay) { - RKLCAbortAssert((cacheSetsArray != NULL) && ((NSInteger)cacheSetsCount > 0L) && (cacheSet < cacheSetsCount) && (cacheWay < _RKL_LRU_CACHE_SET_WAYS) && ((cacheSetsArray == rkl_cachedRegexCacheSets) ? cacheSet < _RKL_REGEX_LRU_CACHE_SETS : 1)); - cacheSetsArray[cacheSet] = (RKLLRUCacheSet_t)(((cacheSetsArray[cacheSet] & (RKLLRUCacheSet_t)0xFFFFU) | (((RKLLRUCacheSet_t)0xFU) << (cacheWay * 4U))) & (~(((RKLLRUCacheSet_t)0x1111U) << (3U - cacheWay)))); -} - -#pragma mark Common, macro'ish compiled regular expression cache logic - -// These functions consolidate bits and pieces of code used to maintain, update, and access the 4-way set associative LRU cache and Regex Lookaside Cache. -RKL_STATIC_INLINE NSUInteger rkl_regexLookasideCacheIndexForPointerAndOptions (const void *ptr, RKLRegexOptions options) { return(((((NSUInteger)(ptr)) >> 4) + options + (options >> 4)) & _RKL_REGEX_LOOKASIDE_CACHE_MASK); } -RKL_STATIC_INLINE void rkl_setRegexLookasideCacheToCachedRegexForPointer (const RKLCachedRegex *cachedRegex, const void *ptr) { rkl_regexLookasideCache[rkl_regexLookasideCacheIndexForPointerAndOptions(ptr, cachedRegex->options)] = (cachedRegex - rkl_cachedRegexes); } -RKL_STATIC_INLINE RKLCachedRegex *rkl_cachedRegexFromRegexLookasideCacheForString (const void *ptr, RKLRegexOptions options) { return(&rkl_cachedRegexes[rkl_regexLookasideCache[rkl_regexLookasideCacheIndexForPointerAndOptions(ptr, options)]]); } -RKL_STATIC_INLINE NSUInteger rkl_makeCacheSetHash ( CFHashCode regexHash, RKLRegexOptions options) { return((NSUInteger)regexHash ^ (NSUInteger)options); } -RKL_STATIC_INLINE NSUInteger rkl_cacheSetForRegexHashAndOptions ( CFHashCode regexHash, RKLRegexOptions options) { return((rkl_makeCacheSetHash(regexHash, options) % _RKL_REGEX_LRU_CACHE_SETS)); } -RKL_STATIC_INLINE NSUInteger rkl_cacheWayForCachedRegex (const RKLCachedRegex *cachedRegex) { return((cachedRegex - rkl_cachedRegexes) % _RKL_LRU_CACHE_SET_WAYS); } -RKL_STATIC_INLINE NSUInteger rkl_cacheSetForCachedRegex (const RKLCachedRegex *cachedRegex) { return(rkl_cacheSetForRegexHashAndOptions(cachedRegex->regexHash, cachedRegex->options)); } -RKL_STATIC_INLINE RKLCachedRegex *rkl_cachedRegexForCacheSetAndWay ( NSUInteger cacheSet, NSUInteger cacheWay) { return(&rkl_cachedRegexes[((cacheSet * _RKL_LRU_CACHE_SET_WAYS) + cacheWay)]); } -RKL_STATIC_INLINE RKLCachedRegex *rkl_cachedRegexForRegexHashAndOptionsAndWay ( CFHashCode regexHash, RKLRegexOptions options, NSUInteger cacheWay) { return(rkl_cachedRegexForCacheSetAndWay(rkl_cacheSetForRegexHashAndOptions(regexHash, options), cacheWay)); } - -RKL_STATIC_INLINE void rkl_updateCachesWithCachedRegex(RKLCachedRegex *cachedRegex, const void *ptr, int hitOrMiss RKL_UNUSED_DTRACE_ARG, int status RKL_UNUSED_DTRACE_ARG) { - rkl_lastCachedRegex = cachedRegex; - rkl_setRegexLookasideCacheToCachedRegexForPointer(cachedRegex, ptr); - rkl_accessCacheSetWay(_RKL_REGEX_LRU_CACHE_SETS, rkl_cachedRegexCacheSets, rkl_cacheSetForCachedRegex(cachedRegex), rkl_cacheWayForCachedRegex(cachedRegex)); // Set the matching line as the most recently used. - rkl_dtrace_compiledRegexCache(&rkl_dtrace_regexUTF8[(cachedRegex - rkl_cachedRegexes)][0], cachedRegex->options, (int)cachedRegex->captureCount, hitOrMiss, status, NULL); -} - -RKL_STATIC_INLINE RKLCachedRegex *rkl_leastRecentlyUsedCachedRegexForRegexHashAndOptions(CFHashCode regexHash, RKLRegexOptions options) { - NSUInteger cacheSet = rkl_cacheSetForRegexHashAndOptions(regexHash, options); - return(rkl_cachedRegexForCacheSetAndWay(cacheSet, rkl_leastRecentlyUsedWayInSet(_RKL_REGEX_LRU_CACHE_SETS, rkl_cachedRegexCacheSets, cacheSet))); -} - -#pragma mark Regular expression lookup function - -// IMPORTANT! This code is critical path code. Because of this, it has been written for speed, not clarity. -// IMPORTANT! Should only be called with rkl_cacheSpinLock already locked! -// ---------- - -static RKLCachedRegex *rkl_getCachedRegex(NSString *regexString, RKLRegexOptions options, NSError **error, id *exception) { - // ---------- vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv - // IMPORTANT! This section of code is called almost every single time that any RegexKitLite functionality is used! It /MUST/ be very fast! - // ---------- vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv - - RKLCachedRegex *cachedRegex = NULL; - CFHashCode regexHash = 0UL; - int32_t status = 0; - - RKLCDelayedAssert((rkl_cacheSpinLock != (OSSpinLock)0) && (regexString != NULL), exception, exitNow); - - // Fast path the common case where this regex is exactly the same one used last time. - // The pointer equality test is valid under these circumstances since the cachedRegex->regexString is an immutable copy. - // If the regexString argument is mutable, this test will fail, and we'll use the the slow path cache check below. - if(RKL_EXPECTED(rkl_lastCachedRegex != NULL, 1L) && RKL_EXPECTED(rkl_lastCachedRegex->regexString == (CFStringRef)regexString, 1L) && RKL_EXPECTED(rkl_lastCachedRegex->options == options, 1L) && RKL_EXPECTED(rkl_lastCachedRegex->icu_regex != NULL, 1L)) { - rkl_dtrace_compiledRegexCache(&rkl_dtrace_regexUTF8[(rkl_lastCachedRegex - rkl_cachedRegexes)][0], rkl_lastCachedRegex->options, (int)rkl_lastCachedRegex->captureCount, 1, 0, NULL); - return(rkl_lastCachedRegex); - } - - rkl_lastCachedRegex = NULL; // Make sure that rkl_lastCachedRegex is NULL in case there is some kind of error. - cachedRegex = rkl_cachedRegexFromRegexLookasideCacheForString(regexString, options); // Check the Regex Lookaside Cache to see if we can quickly find the correct Cached Regex for this regexString pointer + options. - if((RKL_EXPECTED(cachedRegex->regexString == (CFStringRef)regexString, 1L) || (RKL_EXPECTED(cachedRegex->regexString != NULL, 1L) && RKL_EXPECTED(CFEqual((CFTypeRef)regexString, (CFTypeRef)cachedRegex->regexString) == YES, 1L))) && RKL_EXPECTED(cachedRegex->options == options, 1L) && RKL_EXPECTED(cachedRegex->icu_regex != NULL, 1L)) { goto foundMatch; } // There was a Regex Lookaside Cache hit, jump to foundMatch: to quickly return the result. A Regex Lookaside Cache hit allows us to bypass calling CFHash(), which is a decent performance win. - else { cachedRegex = NULL; regexHash = CFHash((CFTypeRef)regexString); } // Regex Lookaside Cache miss. We need to call CFHash() to determine the cache set for this regex. - - NSInteger cacheWay = 0L; // Check each way of the set that this regex belongs to. - for(cacheWay = ((NSInteger)_RKL_LRU_CACHE_SET_WAYS - 1L); cacheWay > 0L; cacheWay--) { // Checking the ways in reverse (3, 2, 1, 0) finds a match "sooner" on average. - cachedRegex = rkl_cachedRegexForRegexHashAndOptionsAndWay(regexHash, options, (NSUInteger)cacheWay); - // Return the cached entry if it's a match. If regexString is mutable, the pointer equality test will fail, and CFEqual() is used to determine true equality with the immutable cachedRegex copy. CFEqual() performs a slow character by character check. - if(RKL_EXPECTED(cachedRegex->regexHash == regexHash, 0UL) && ((cachedRegex->regexString == (CFStringRef)regexString) || (RKL_EXPECTED(cachedRegex->regexString != NULL, 1L) && RKL_EXPECTED(CFEqual((CFTypeRef)regexString, (CFTypeRef)cachedRegex->regexString) == YES, 1L))) && RKL_EXPECTED(cachedRegex->options == options, 1L) && RKL_EXPECTED(cachedRegex->icu_regex != NULL, 1L)) { - foundMatch: // Control can transfer here (from above) via a Regex Lookaside Cache hit. - rkl_updateCachesWithCachedRegex(cachedRegex, regexString, 1, 0); - return(cachedRegex); - } - } - - // ---------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - // IMPORTANT! This section of code is called almost every single time that any RegexKitLite functionality is used! It /MUST/ be very fast! - // ---------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - - // Code below this point is not as sensitive to speed since compiling a regular expression is an extremely expensive operation. - // The regex was not found in the cache. Get the cached regex for the least recently used line in the set, then clear the cached regex and create a new ICU regex in its place. - cachedRegex = rkl_leastRecentlyUsedCachedRegexForRegexHashAndOptions(regexHash, options); - rkl_clearCachedRegex(cachedRegex); - - if(RKL_EXPECTED((cachedRegex->regexString = CFStringCreateCopy(NULL, (CFStringRef)regexString)) == NULL, 0L)) { goto exitNow; } ; // Get a cheap immutable copy. - rkl_dtrace_getRegexUTF8(cachedRegex->regexString, &rkl_dtrace_regexUTF8[(cachedRegex - rkl_cachedRegexes)][0]); - cachedRegex->regexHash = regexHash; - cachedRegex->options = options; - - CFIndex regexStringU16Length = CFStringGetLength(cachedRegex->regexString); // In UTF16 code units. - UParseError parseError = (UParseError){-1, -1, {0}, {0}}; - RKL_STRONG_REF const UniChar * RKL_GC_VOLATILE regexUniChar = NULL; - - if(RKL_EXPECTED(regexStringU16Length >= (CFIndex)INT_MAX, 0L)) { *exception = [NSException exceptionWithName:NSRangeException reason:@"Regex string length exceeds INT_MAX" userInfo:NULL]; goto exitNow; } - - // Try to quickly obtain regexString in UTF16 format. - if((regexUniChar = CFStringGetCharactersPtr(cachedRegex->regexString)) == NULL) { // We didn't get the UTF16 pointer quickly and need to perform a full conversion in a temp buffer. - RKL_STRONG_REF UniChar * RKL_GC_VOLATILE uniCharBuffer = NULL; - if(((size_t)regexStringU16Length * sizeof(UniChar)) < (size_t)_RKL_STACK_LIMIT) { if(RKL_EXPECTED((uniCharBuffer = (RKL_STRONG_REF UniChar * RKL_GC_VOLATILE)alloca( (size_t)regexStringU16Length * sizeof(UniChar) )) == NULL, 0L)) { goto exitNow; } } // Try to use the stack. - else { if(RKL_EXPECTED((uniCharBuffer = (RKL_STRONG_REF UniChar * RKL_GC_VOLATILE)rkl_realloc(&rkl_scratchBuffer[0], (size_t)regexStringU16Length * sizeof(UniChar), 0UL)) == NULL, 0L)) { goto exitNow; } } // Otherwise use the heap. - CFStringGetCharacters(cachedRegex->regexString, CFMakeRange(0L, regexStringU16Length), uniCharBuffer); // Convert regexString to UTF16. - regexUniChar = uniCharBuffer; - } - - // Create the ICU regex. - if(RKL_EXPECTED((cachedRegex->icu_regex = RKL_ICU_FUNCTION_APPEND(uregex_open)(regexUniChar, (int32_t)regexStringU16Length, options, &parseError, &status)) == NULL, 0L)) { goto exitNow; } - if(RKL_EXPECTED(status <= U_ZERO_ERROR, 1L)) { cachedRegex->captureCount = (NSInteger)RKL_ICU_FUNCTION_APPEND(uregex_groupCount)(cachedRegex->icu_regex, &status); } - if(RKL_EXPECTED(status <= U_ZERO_ERROR, 1L)) { rkl_updateCachesWithCachedRegex(cachedRegex, regexString, 0, status); } - -exitNow: - if(RKL_EXPECTED(rkl_scratchBuffer[0] != NULL, 0L)) { rkl_scratchBuffer[0] = rkl_free(&rkl_scratchBuffer[0]); } - if(RKL_EXPECTED(status > U_ZERO_ERROR, 0L)) { rkl_clearCachedRegex(cachedRegex); cachedRegex = rkl_lastCachedRegex = NULL; if(error != NULL) { *error = rkl_makeNSError((RKLUserInfoOptions)RKLUserInfoNone, regexString, options, &parseError, status, NULL, NSNotFoundRange, NULL, NULL, 0L, (RKLRegexEnumerationOptions)RKLRegexEnumerationNoOptions, @"There was an error compiling the regular expression."); } } - -#ifdef _RKL_DTRACE_ENABLED - if(RKL_EXPECTED(cachedRegex == NULL, 1L)) { char regexUTF8[_RKL_DTRACE_REGEXUTF8_SIZE]; const char *err = NULL; if(status != U_ZERO_ERROR) { err = RKL_ICU_FUNCTION_APPEND(u_errorName)(status); } rkl_dtrace_getRegexUTF8((CFStringRef)regexString, regexUTF8); rkl_dtrace_compiledRegexCache(regexUTF8, options, -1, -1, status, err); } -#endif // _RKL_DTRACE_ENABLED - - return(cachedRegex); -} - -// IMPORTANT! This code is critical path code. Because of this, it has been written for speed, not clarity. -// IMPORTANT! Should only be called with rkl_cacheSpinLock already locked! -// ---------- - -#pragma mark Set a cached regular expression to a NSStrings UTF-16 text - -static NSUInteger rkl_setCachedRegexToString(RKLCachedRegex *cachedRegex, const NSRange *range, int32_t *status, id *exception RKL_UNUSED_ASSERTION_ARG) { - // ---------- vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv - // IMPORTANT! This section of code is called almost every single time that any RegexKitLite functionality is used! It /MUST/ be very fast! - // ---------- vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv - - RKLCDelayedAssert((cachedRegex != NULL) && (cachedRegex->setToString != NULL) && ((range != NULL) && (NSEqualRanges(*range, NSNotFoundRange) == NO)) && (status != NULL), exception, exitNow); - RKL_STRONG_REF const UniChar * RKL_GC_VOLATILE stringUniChar = NULL; -#ifdef _RKL_DTRACE_ENABLED - unsigned int lookupResultFlags = 0U; -#endif - - NSUInteger useFixedBuffer = (cachedRegex->setToLength < (CFIndex)_RKL_FIXED_LENGTH) ? 1UL : 0UL; - RKLBuffer *buffer = NULL; - - if(cachedRegex->setToNeedsConversion == 0U) { - RKLCDelayedAssert((cachedRegex->setToUniChar != NULL) && (cachedRegex->buffer == NULL), exception, exitNow); - if(RKL_EXPECTED((stringUniChar = (RKL_STRONG_REF const UniChar * RKL_GC_VOLATILE)CFStringGetCharactersPtr(cachedRegex->setToString)) == NULL, 0L)) { cachedRegex->setToUniChar = NULL; cachedRegex->setToRange = NSNotFoundRange; cachedRegex->setToNeedsConversion = 1U; } - else { if(RKL_EXPECTED(cachedRegex->setToUniChar != stringUniChar, 0L)) { cachedRegex->setToRange = NSNotFoundRange; cachedRegex->setToUniChar = stringUniChar; } goto setRegexText; } - } - - buffer = cachedRegex->buffer; - - RKLCDelayedAssert((buffer == NULL) ? 1 : (((buffer == &rkl_lruFixedBuffer[0]) || (buffer == &rkl_lruFixedBuffer[1]) || (buffer == &rkl_lruFixedBuffer[2]) || (buffer == &rkl_lruFixedBuffer[3])) || - ((buffer == &rkl_lruDynamicBuffer[0]) || (buffer == &rkl_lruDynamicBuffer[1]) || (buffer == &rkl_lruDynamicBuffer[2]) || (buffer == &rkl_lruDynamicBuffer[3]))), exception, exitNow); - - if((buffer != NULL) && RKL_EXPECTED(cachedRegex->setToString == buffer->string, 1L) && RKL_EXPECTED(cachedRegex->setToHash == buffer->hash, 1L) && RKL_EXPECTED(cachedRegex->setToLength == buffer->length, 1L)) { - RKLCDelayedAssert((buffer->uniChar != NULL), exception, exitNow); - rkl_dtrace_addLookupFlag(lookupResultFlags, RKLCacheHitLookupFlag | RKLConversionRequiredLookupFlag | (useFixedBuffer ? 0U : RKLDynamicBufferLookupFlag)); - if(cachedRegex->setToUniChar != buffer->uniChar) { cachedRegex->setToRange = NSNotFoundRange; cachedRegex->setToUniChar = buffer->uniChar; } - goto setRegexText; - } - - buffer = NULL; - cachedRegex->buffer = NULL; - - NSInteger cacheWay = 0L; - for(cacheWay = ((NSInteger)_RKL_LRU_CACHE_SET_WAYS - 1L); cacheWay > 0L; cacheWay--) { - if(useFixedBuffer) { buffer = &rkl_lruFixedBuffer[cacheWay]; } else { buffer = &rkl_lruDynamicBuffer[cacheWay]; } - if(RKL_EXPECTED(cachedRegex->setToString == buffer->string, 1L) && RKL_EXPECTED(cachedRegex->setToHash == buffer->hash, 1L) && RKL_EXPECTED(cachedRegex->setToLength == buffer->length, 1L)) { - RKLCDelayedAssert((buffer->uniChar != NULL), exception, exitNow); - rkl_dtrace_addLookupFlag(lookupResultFlags, RKLCacheHitLookupFlag | RKLConversionRequiredLookupFlag | (useFixedBuffer ? 0U : RKLDynamicBufferLookupFlag)); - if(cachedRegex->setToUniChar != buffer->uniChar) { cachedRegex->setToRange = NSNotFoundRange; cachedRegex->setToUniChar = buffer->uniChar; } - cachedRegex->buffer = buffer; - goto setRegexText; - } - } - - buffer = NULL; - cachedRegex->setToUniChar = NULL; - cachedRegex->setToRange = NSNotFoundRange; - cachedRegex->buffer = NULL; - - RKLCDelayedAssert((cachedRegex->setToNeedsConversion == 1U) && (cachedRegex->buffer == NULL), exception, exitNow); - if(RKL_EXPECTED(cachedRegex->setToNeedsConversion == 1U, 1L) && RKL_EXPECTED((cachedRegex->setToUniChar = (RKL_STRONG_REF const UniChar * RKL_GC_VOLATILE)CFStringGetCharactersPtr(cachedRegex->setToString)) != NULL, 0L)) { cachedRegex->setToNeedsConversion = 0U; cachedRegex->setToRange = NSNotFoundRange; goto setRegexText; } - - rkl_dtrace_addLookupFlag(lookupResultFlags, RKLConversionRequiredLookupFlag | (useFixedBuffer ? 0U : RKLDynamicBufferLookupFlag)); - - if(useFixedBuffer) { buffer = &rkl_lruFixedBuffer [rkl_leastRecentlyUsedWayInSet(1UL, &rkl_lruFixedBufferCacheSet, 0UL)]; } - else { buffer = &rkl_lruDynamicBuffer[rkl_leastRecentlyUsedWayInSet(1UL, &rkl_lruDynamicBufferCacheSet, 0UL)]; } - - RKLCDelayedAssert((useFixedBuffer) ? ((buffer == &rkl_lruFixedBuffer[0]) || (buffer == &rkl_lruFixedBuffer[1]) || (buffer == &rkl_lruFixedBuffer[2]) || (buffer == &rkl_lruFixedBuffer[3])) : - ((buffer == &rkl_lruDynamicBuffer[0]) || (buffer == &rkl_lruDynamicBuffer[1]) || (buffer == &rkl_lruDynamicBuffer[2]) || (buffer == &rkl_lruDynamicBuffer[3])), exception, exitNow); - - rkl_clearBuffer(buffer, 0UL); - - RKLCDelayedAssert((buffer->string == NULL) && (cachedRegex->setToString != NULL), exception, exitNow); - if(RKL_EXPECTED((buffer->string = (CFStringRef)CFRetain((CFTypeRef)cachedRegex->setToString)) == NULL, 0L)) { goto exitNow; } - buffer->hash = cachedRegex->setToHash; - buffer->length = cachedRegex->setToLength; - - if(useFixedBuffer == 0UL) { - RKL_STRONG_REF void * RKL_GC_VOLATILE p = (RKL_STRONG_REF void * RKL_GC_VOLATILE)buffer->uniChar; - if(RKL_EXPECTED((buffer->uniChar = (RKL_STRONG_REF UniChar * RKL_GC_VOLATILE)rkl_realloc(&p, ((size_t)buffer->length * sizeof(UniChar)), 0UL)) == NULL, 0L)) { goto exitNow; } // Resize the buffer. - } - - RKLCDelayedAssert((buffer->string != NULL) && (buffer->uniChar != NULL), exception, exitNow); - CFStringGetCharacters(buffer->string, CFMakeRange(0L, buffer->length), (UniChar *)buffer->uniChar); // Convert to a UTF16 string. - - cachedRegex->setToUniChar = buffer->uniChar; - cachedRegex->setToRange = NSNotFoundRange; - cachedRegex->buffer = buffer; - -setRegexText: - if(buffer != NULL) { if(useFixedBuffer == 1UL) { rkl_accessCacheSetWay(1UL, &rkl_lruFixedBufferCacheSet, 0UL, (NSUInteger)(buffer - rkl_lruFixedBuffer)); } else { rkl_accessCacheSetWay(1UL, &rkl_lruDynamicBufferCacheSet, 0UL, (NSUInteger)(buffer - rkl_lruDynamicBuffer)); } } - - if(NSEqualRanges(cachedRegex->setToRange, *range) == NO) { - RKLCDelayedAssert((cachedRegex->icu_regex != NULL) && (cachedRegex->setToUniChar != NULL) && (NSMaxRange(*range) <= (NSUInteger)cachedRegex->setToLength) && (cachedRegex->setToRange.length <= INT_MAX), exception, exitNow); - cachedRegex->lastFindRange = cachedRegex->lastMatchRange = NSNotFoundRange; - cachedRegex->setToRange = *range; - RKL_ICU_FUNCTION_APPEND(uregex_setText)(cachedRegex->icu_regex, cachedRegex->setToUniChar + cachedRegex->setToRange.location, (int32_t)cachedRegex->setToRange.length, status); - rkl_dtrace_addLookupFlag(lookupResultFlags, RKLSetTextLookupFlag); - if(RKL_EXPECTED(*status > U_ZERO_ERROR, 0L)) { rkl_dtrace_addLookupFlag(lookupResultFlags, RKLErrorLookupFlag); goto exitNow; } - } - - rkl_dtrace_utf16ConversionCache(lookupResultFlags, cachedRegex->setToString, cachedRegex->setToRange.location, cachedRegex->setToRange.length, cachedRegex->setToLength); - - return(1UL); - - // ---------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - // IMPORTANT! This section of code is called almost every single time that any RegexKitLite functionality is used! It /MUST/ be very fast! - // ---------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -exitNow: -#ifdef _RKL_DTRACE_ENABLED - rkl_dtrace_addLookupFlag(lookupResultFlags, RKLErrorLookupFlag); - if(cachedRegex != NULL) { rkl_dtrace_utf16ConversionCache(lookupResultFlags, cachedRegex->setToString, cachedRegex->setToRange.location, cachedRegex->setToRange.length, cachedRegex->setToLength); } -#endif // _RKL_DTRACE_ENABLED - if(cachedRegex != NULL) { cachedRegex->buffer = NULL; cachedRegex->setToRange = NSNotFoundRange; cachedRegex->lastFindRange = NSNotFoundRange; cachedRegex->lastMatchRange = NSNotFoundRange; } - return(0UL); -} - -// IMPORTANT! This code is critical path code. Because of this, it has been written for speed, not clarity. -// IMPORTANT! Should only be called with rkl_cacheSpinLock already locked! -// ---------- - -#pragma mark Get a regular expression and set it to a NSStrings UTF-16 text - -static RKLCachedRegex *rkl_getCachedRegexSetToString(NSString *regexString, RKLRegexOptions options, NSString *matchString, NSUInteger *matchLengthPtr, NSRange *matchRange, NSError **error, id *exception, int32_t *status) { - // ---------- vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv - // IMPORTANT! This section of code is called almost every single time that any RegexKitLite functionality is used! It /MUST/ be very fast! - // ---------- vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv - - RKLCachedRegex *cachedRegex = NULL; - RKLCDelayedAssert((regexString != NULL) && (matchString != NULL) && (exception != NULL) && (status != NULL) && (matchLengthPtr != NULL), exception, exitNow); - - if(RKL_EXPECTED((cachedRegex = rkl_getCachedRegex(regexString, options, error, exception)) == NULL, 0L)) { goto exitNow; } - RKLCDelayedAssert(((cachedRegex >= rkl_cachedRegexes) && ((cachedRegex - rkl_cachedRegexes) < (ssize_t)_RKL_REGEX_CACHE_LINES)) && (cachedRegex != NULL) && (cachedRegex->icu_regex != NULL) && (cachedRegex->regexString != NULL) && (cachedRegex->captureCount >= 0L) && (cachedRegex == rkl_lastCachedRegex), exception, exitNow); - - // Optimize the case where the string to search (matchString) is immutable and the setToString immutable copy is the same string with its reference count incremented. - NSUInteger isSetTo = ((cachedRegex->setToString == (CFStringRef)matchString)) ? 1UL : 0UL; - CFIndex matchLength = ((cachedRegex->setToIsImmutable == 1U) && (isSetTo == 1UL)) ? cachedRegex->setToLength : CFStringGetLength((CFStringRef)matchString); - - *matchLengthPtr = (NSUInteger)matchLength; - if(matchRange->length == NSUIntegerMax) { matchRange->length = (NSUInteger)matchLength; } // For convenience, allow NSUIntegerMax == string length. - - if(RKL_EXPECTED((NSUInteger)matchLength < NSMaxRange(*matchRange), 0L)) { goto exitNow; } // The match range is out of bounds for the string. performRegexOp will catch and report the problem. - - RKLCDelayedAssert((isSetTo == 1UL) ? (cachedRegex->setToString != NULL) : 1, exception, exitNow); - - if(((cachedRegex->setToIsImmutable == 1U) ? isSetTo : (NSUInteger)((isSetTo == 1UL) && (cachedRegex->setToLength == matchLength) && (cachedRegex->setToHash == CFHash((CFTypeRef)matchString)))) == 0UL) { - if(cachedRegex->setToString != NULL) { rkl_clearCachedRegexSetTo(cachedRegex); } - - cachedRegex->setToString = (CFStringRef)CFRetain((CFTypeRef)matchString); - RKLCDelayedAssert(cachedRegex->setToString != NULL, exception, exitNow); - cachedRegex->setToUniChar = CFStringGetCharactersPtr(cachedRegex->setToString); - cachedRegex->setToNeedsConversion = (cachedRegex->setToUniChar == NULL) ? 1U : 0U; - cachedRegex->setToIsImmutable = (rkl_CFStringIsMutable(cachedRegex->setToString) == YES) ? 0U : 1U; // If RKL_FAST_MUTABLE_CHECK is not defined then setToIsImmutable will always be set to '0', or in other words mutable.. - cachedRegex->setToHash = CFHash((CFTypeRef)cachedRegex->setToString); - cachedRegex->setToRange = NSNotFoundRange; - cachedRegex->setToLength = matchLength; - - } - - if(RKL_EXPECTED(rkl_setCachedRegexToString(cachedRegex, matchRange, status, exception) == 0UL, 0L)) { cachedRegex = NULL; if(*exception == NULL) { *exception = (id)RKLCAssertDictionary(@"Failed to set up UTF16 buffer."); } goto exitNow; } - -exitNow: - return(cachedRegex); - // ---------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - // IMPORTANT! This section of code is called almost every single time that any RegexKitLite functionality is used! It /MUST/ be very fast! - // ---------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -} - -#pragma mark GCC cleanup __attribute__ functions that ensure the global rkl_cacheSpinLock is properly unlocked -#ifdef RKL_HAVE_CLEANUP - -// rkl_cleanup_cacheSpinLockStatus takes advantage of GCC's 'cleanup' variable attribute. When an 'auto' variable with the 'cleanup' attribute goes out of scope, -// GCC arranges to have the designated function called. In this case, we make sure that if rkl_cacheSpinLock was locked that it was also unlocked. -// If rkl_cacheSpinLock was locked, but the rkl_cacheSpinLockStatus unlocked flag was not set, we force rkl_cacheSpinLock unlocked with a call to OSSpinLockUnlock. -// This is not a panacea for preventing mutex usage errors. Old style ObjC exceptions will bypass the cleanup call, but newer C++ style ObjC exceptions should cause the cleanup function to be called during the stack unwind. - -// We do not depend on this cleanup function being called. It is used only as an extra safety net. It is probably a bug in RegexKitLite if it is ever invoked and forced to take some kind of protective action. - -volatile NSUInteger rkl_debugCacheSpinLockCount = 0UL; - -void rkl_debugCacheSpinLock (void) RKL_ATTRIBUTES(used, noinline, visibility("default")); -static void rkl_cleanup_cacheSpinLockStatus (volatile NSUInteger *rkl_cacheSpinLockStatusPtr) RKL_ATTRIBUTES(used); - -void rkl_debugCacheSpinLock(void) { - rkl_debugCacheSpinLockCount++; // This is here primarily to prevent the optimizer from optimizing away the function. -} - -static void rkl_cleanup_cacheSpinLockStatus(volatile NSUInteger *rkl_cacheSpinLockStatusPtr) { - static NSUInteger didPrintForcedUnlockWarning = 0UL, didPrintNotLockedWarning = 0UL; - NSUInteger rkl_cacheSpinLockStatus = *rkl_cacheSpinLockStatusPtr; - - if(RKL_EXPECTED((rkl_cacheSpinLockStatus & RKLUnlockedCacheSpinLock) == 0UL, 0L) && RKL_EXPECTED((rkl_cacheSpinLockStatus & RKLLockedCacheSpinLock) != 0UL, 1L)) { - if(rkl_cacheSpinLock != (OSSpinLock)0) { - if(didPrintForcedUnlockWarning == 0UL) { didPrintForcedUnlockWarning = 1UL; NSLog(@"[RegexKitLite] Unusual condition detected: Recorded that rkl_cacheSpinLock was locked, but for some reason it was not unlocked. Forcibly unlocking rkl_cacheSpinLock. Set a breakpoint at rkl_debugCacheSpinLock to debug. This warning is only printed once."); } - rkl_debugCacheSpinLock(); // Since this is an unusual condition, offer an attempt to catch it before we unlock. - OSSpinLockUnlock(&rkl_cacheSpinLock); - } else { - if(didPrintNotLockedWarning == 0UL) { didPrintNotLockedWarning = 1UL; NSLog(@"[RegexKitLite] Unusual condition detected: Recorded that rkl_cacheSpinLock was locked, but for some reason it was not unlocked, yet rkl_cacheSpinLock is currently not locked? Set a breakpoint at rkl_debugCacheSpinLock to debug. This warning is only printed once."); } - rkl_debugCacheSpinLock(); - } - } -} - -#endif // RKL_HAVE_CLEANUP - -// rkl_performDictionaryVarArgsOp is a front end to rkl_performRegexOp which converts a ', ...' varargs key/captures list and converts it in to a form that rkl_performRegexOp can use. -// All error checking of arguments is handled by rkl_performRegexOp. - -#pragma mark Front end function that handles varargs and calls rkl_performRegexOp with the marshaled results - -static id rkl_performDictionaryVarArgsOp(id self, SEL _cmd, RKLRegexOp regexOp, NSString *regexString, RKLRegexOptions options, NSInteger capture, id matchString, NSRange *matchRange, NSString *replacementString, NSError **error, void *result, id firstKey, va_list varArgsList) { - id captureKeys[64]; - int captureKeyIndexes[64]; - NSUInteger captureKeysCount = 0UL; - - if(varArgsList != NULL) { - while(captureKeysCount < 62UL) { - id thisCaptureKey = (captureKeysCount == 0) ? firstKey : va_arg(varArgsList, id); - if(RKL_EXPECTED(thisCaptureKey == NULL, 0L)) { break; } - int thisCaptureKeyIndex = va_arg(varArgsList, int); - captureKeys[captureKeysCount] = thisCaptureKey; - captureKeyIndexes[captureKeysCount] = thisCaptureKeyIndex; - captureKeysCount++; - } - } - - return(rkl_performRegexOp(self, _cmd, regexOp, regexString, options, capture, matchString, matchRange, replacementString, error, result, captureKeysCount, captureKeys, captureKeyIndexes)); -} - -// IMPORTANT! This code is critical path code. Because of this, it has been written for speed, not clarity. -// ---------- - -#pragma mark Primary internal function that Objective-C methods call to perform regular expression operations - -static id rkl_performRegexOp(id self, SEL _cmd, RKLRegexOp regexOp, NSString *regexString, RKLRegexOptions options, NSInteger capture, id matchString, NSRange *matchRange, NSString *replacementString, NSError **error, void *result, NSUInteger captureKeysCount, id captureKeys[captureKeysCount], const int captureKeyIndexes[captureKeysCount]) { - volatile NSUInteger RKL_CLEANUP(rkl_cleanup_cacheSpinLockStatus) rkl_cacheSpinLockStatus = 0UL; - - NSUInteger replaceMutable = 0UL; - RKLRegexOp maskedRegexOp = (regexOp & RKLMaskOp); - BOOL dictionaryOp = ((maskedRegexOp == RKLDictionaryOfCapturesOp) || (maskedRegexOp == RKLArrayOfDictionariesOfCapturesOp)) ? YES : NO; - - if((error != NULL) && (*error != NULL)) { *error = NULL; } - - if(RKL_EXPECTED(regexString == NULL, 0L)) { RKL_RAISE_EXCEPTION(NSInvalidArgumentException, @"The regular expression argument is NULL."); } - if(RKL_EXPECTED(matchString == NULL, 0L)) { RKL_RAISE_EXCEPTION(NSInternalInconsistencyException, @"The match string argument is NULL."); } - if(RKL_EXPECTED(matchRange == NULL, 0L)) { RKL_RAISE_EXCEPTION(NSInternalInconsistencyException, @"The match range argument is NULL."); } - if((maskedRegexOp == RKLReplaceOp) && RKL_EXPECTED(replacementString == NULL, 0L)) { RKL_RAISE_EXCEPTION(NSInvalidArgumentException, @"The replacement string argument is NULL."); } - if((dictionaryOp == YES) && RKL_EXPECTED(captureKeys == NULL, 0L)) { RKL_RAISE_EXCEPTION(NSInvalidArgumentException, @"The keys argument is NULL."); } - if((dictionaryOp == YES) && RKL_EXPECTED(captureKeyIndexes == NULL, 0L)) { RKL_RAISE_EXCEPTION(NSInvalidArgumentException, @"The captures argument is NULL."); } - - id resultObject = NULL, exception = NULL; - int32_t status = U_ZERO_ERROR; - RKLCachedRegex *cachedRegex = NULL; - NSUInteger stringU16Length = 0UL, tmpIdx = 0UL; - NSRange stackRanges[2048]; - RKLFindAll findAll; - - // IMPORTANT! Once we have obtained the lock, code MUST exit via 'goto exitNow;' to unlock the lock! NO EXCEPTIONS! - // ---------- - OSSpinLockLock(&rkl_cacheSpinLock); // Grab the lock and get cache entry. - rkl_cacheSpinLockStatus |= RKLLockedCacheSpinLock; - rkl_dtrace_incrementEventID(); - - if(RKL_EXPECTED((cachedRegex = rkl_getCachedRegexSetToString(regexString, options, matchString, &stringU16Length, matchRange, error, &exception, &status)) == NULL, 0L)) { stringU16Length = (NSUInteger)CFStringGetLength((CFStringRef)matchString); } - if(RKL_EXPECTED(matchRange->length == NSUIntegerMax, 0L)) { matchRange->length = stringU16Length; } // For convenience. - if(RKL_EXPECTED(stringU16Length < NSMaxRange(*matchRange), 0L) && RKL_EXPECTED(exception == NULL, 1L)) { exception = (id)RKL_EXCEPTION(NSRangeException, @"Range or index out of bounds."); goto exitNow; } - if(RKL_EXPECTED(stringU16Length >= (NSUInteger)INT_MAX, 0L) && RKL_EXPECTED(exception == NULL, 1L)) { exception = (id)RKL_EXCEPTION(NSRangeException, @"String length exceeds INT_MAX."); goto exitNow; } - if(((maskedRegexOp == RKLRangeOp) || (maskedRegexOp == RKLArrayOfStringsOp)) && RKL_EXPECTED(cachedRegex != NULL, 1L) && (RKL_EXPECTED(capture < 0L, 0L) || RKL_EXPECTED(capture > cachedRegex->captureCount, 0L)) && RKL_EXPECTED(exception == NULL, 1L)) { exception = (id)RKL_EXCEPTION(NSInvalidArgumentException, @"The capture argument is not valid."); goto exitNow; } - - if((dictionaryOp == YES) && RKL_EXPECTED(cachedRegex != NULL, 1L) && RKL_EXPECTED(exception == NULL, 1L)) { - for(tmpIdx = 0UL; tmpIdx < captureKeysCount; tmpIdx++) { - if(RKL_EXPECTED(captureKeys[tmpIdx] == NULL, 0L)) { exception = (id)RKL_EXCEPTION(NSInvalidArgumentException, @"The capture key (key %lu of %lu) is NULL.", (unsigned long)(tmpIdx + 1UL), (unsigned long)captureKeysCount); break; } - if((RKL_EXPECTED(captureKeyIndexes[tmpIdx] < 0, 0L) || RKL_EXPECTED(captureKeyIndexes[tmpIdx] > cachedRegex->captureCount, 0L))) { exception = (id)RKL_EXCEPTION(NSInvalidArgumentException, @"The capture argument %d (capture %lu of %lu) for key '%@' is not valid.", captureKeyIndexes[tmpIdx], (unsigned long)(tmpIdx + 1UL), (unsigned long)captureKeysCount, captureKeys[tmpIdx]); break; } - } - } - - if(RKL_EXPECTED(cachedRegex == NULL, 0L) || RKL_EXPECTED(status > U_ZERO_ERROR, 0L) || RKL_EXPECTED(exception != NULL, 0L)) { goto exitNow; } - - RKLCDelayedAssert(((cachedRegex >= rkl_cachedRegexes) && ((cachedRegex - rkl_cachedRegexes) < (ssize_t)_RKL_REGEX_CACHE_LINES)) && (cachedRegex != NULL) && (cachedRegex->icu_regex != NULL) && (cachedRegex->regexString != NULL) && (cachedRegex->captureCount >= 0L) && (cachedRegex->setToString != NULL) && (cachedRegex->setToLength >= 0L) && (cachedRegex->setToUniChar != NULL) && ((CFIndex)NSMaxRange(cachedRegex->setToRange) <= cachedRegex->setToLength), &exception, exitNow); - RKLCDelayedAssert((cachedRegex->setToNeedsConversion == 0U) ? ((cachedRegex->setToNeedsConversion == 0U) && (cachedRegex->setToUniChar == CFStringGetCharactersPtr(cachedRegex->setToString))) : ((cachedRegex->buffer != NULL) && (cachedRegex->setToHash == cachedRegex->buffer->hash) && (cachedRegex->setToLength == cachedRegex->buffer->length) && (cachedRegex->setToUniChar == cachedRegex->buffer->uniChar)), &exception, exitNow); - - switch(maskedRegexOp) { - case RKLRangeOp: - if((RKL_EXPECTED(rkl_search(cachedRegex, matchRange, 0UL, &exception, &status) == NO, 0L)) || (RKL_EXPECTED(status > U_ZERO_ERROR, 0L))) { *(NSRange *)result = NSNotFoundRange; goto exitNow; } - if(RKL_EXPECTED(capture == 0L, 1L)) { *(NSRange *)result = cachedRegex->lastMatchRange; } else { if(RKL_EXPECTED(rkl_getRangeForCapture(cachedRegex, &status, (int32_t)capture, (NSRange *)result) > U_ZERO_ERROR, 0L)) { goto exitNow; } } - break; - - case RKLSplitOp: // Fall-thru... - case RKLArrayOfStringsOp: // Fall-thru... - case RKLCapturesArrayOp: // Fall-thru... - case RKLArrayOfCapturesOp: // Fall-thru... - case RKLDictionaryOfCapturesOp: // Fall-thru... - case RKLArrayOfDictionariesOfCapturesOp: - findAll = rkl_makeFindAll(stackRanges, *matchRange, 2048L, (2048UL * sizeof(NSRange)), 0UL, &rkl_scratchBuffer[0], &rkl_scratchBuffer[1], &rkl_scratchBuffer[2], &rkl_scratchBuffer[3], &rkl_scratchBuffer[4], 0L, capture, (((maskedRegexOp == RKLCapturesArrayOp) || (maskedRegexOp == RKLDictionaryOfCapturesOp)) ? 1L : NSIntegerMax)); - - if(RKL_EXPECTED(rkl_findRanges(cachedRegex, regexOp, &findAll, &exception, &status) == NO, 1L)) { - if(RKL_EXPECTED(findAll.found == 0L, 0L)) { resultObject = (maskedRegexOp == RKLDictionaryOfCapturesOp) ? [NSDictionary dictionary] : [NSArray array]; } - else { - if(dictionaryOp == YES) { resultObject = rkl_makeDictionary (cachedRegex, regexOp, &findAll, captureKeysCount, captureKeys, captureKeyIndexes, &exception); } - else { resultObject = rkl_makeArray (cachedRegex, regexOp, &findAll, &exception); } - } - } - - for(tmpIdx = 0UL; tmpIdx < _RKL_SCRATCH_BUFFERS; tmpIdx++) { if(RKL_EXPECTED(rkl_scratchBuffer[tmpIdx] != NULL, 0L)) { rkl_scratchBuffer[tmpIdx] = rkl_free(&rkl_scratchBuffer[tmpIdx]); } } - - break; - - case RKLReplaceOp: resultObject = rkl_replaceString(cachedRegex, matchString, stringU16Length, replacementString, (NSUInteger)CFStringGetLength((CFStringRef)replacementString), (NSInteger *)result, (replaceMutable = (((regexOp & RKLReplaceMutable) != 0) ? 1UL : 0UL)), &exception, &status); break; - - default: exception = RKLCAssertDictionary(@"Unknown regexOp code."); break; - } - -exitNow: - OSSpinLockUnlock(&rkl_cacheSpinLock); - rkl_cacheSpinLockStatus |= RKLUnlockedCacheSpinLock; // Warning about rkl_cacheSpinLockStatus never being read can be safely ignored. - - if(RKL_EXPECTED(status > U_ZERO_ERROR, 0L) && RKL_EXPECTED(exception == NULL, 0L)) { exception = rkl_NSExceptionForRegex(regexString, options, NULL, status); } // If we had a problem, prepare an exception to be thrown. - if(RKL_EXPECTED(exception != NULL, 0L)) { rkl_handleDelayedAssert(self, _cmd, exception); } // If there is an exception, throw it at this point. - // If we're working on a mutable string and there were successful matches/replacements, then we still have work to do. - // This is done outside the cache lock and with the objc replaceCharactersInRange:withString: method because Core Foundation - // does not assert that the string we are attempting to update is actually a mutable string, whereas Foundation ensures - // the object receiving the message is a mutable string and throws an exception if we're attempting to modify an immutable string. - if(RKL_EXPECTED(replaceMutable == 1UL, 0L) && RKL_EXPECTED(*((NSInteger *)result) > 0L, 1L) && RKL_EXPECTED(status == U_ZERO_ERROR, 1L) && RKL_EXPECTED(resultObject != NULL, 1L)) { [matchString replaceCharactersInRange:*matchRange withString:resultObject]; } - // If status < U_ZERO_ERROR, consider it an error, even though status < U_ZERO_ERROR is a 'warning' in ICU nomenclature. - // status > U_ZERO_ERROR are an exception and handled above. - // http://sourceforge.net/tracker/?func=detail&atid=990188&aid=2890810&group_id=204582 - if(RKL_EXPECTED(status < U_ZERO_ERROR, 0L) && RKL_EXPECTED(resultObject == NULL, 0L) && (error != NULL)) { - NSString *replacedString = NULL; - NSInteger replacedCount = 0L; - RKLUserInfoOptions userInfoOptions = RKLUserInfoNone; - if((maskedRegexOp == RKLReplaceOp) && (result != NULL)) { userInfoOptions |= RKLUserInfoReplacedCount; replacedString = resultObject; replacedCount = *((NSInteger *)result); } - if(matchRange != NULL) { userInfoOptions |= RKLUserInfoSubjectRange; } - *error = rkl_makeNSError(userInfoOptions, regexString, options, NULL, status, matchString, (matchRange != NULL) ? *matchRange : NSNotFoundRange, replacementString, replacedString, replacedCount, (RKLRegexEnumerationOptions)RKLRegexEnumerationNoOptions, @"The ICU library returned an unexpected error."); - } - return(resultObject); -} - -static void rkl_handleDelayedAssert(id self, SEL _cmd, id exception) { - if(RKL_EXPECTED(exception != NULL, 1L)) { - if([exception isKindOfClass:[NSException class]]) { [[NSException exceptionWithName:[exception name] reason:rkl_stringFromClassAndMethod(self, _cmd, [exception reason]) userInfo:[exception userInfo]] raise]; } - else { - id functionString = [exception objectForKey:@"function"], fileString = [exception objectForKey:@"file"], descriptionString = [exception objectForKey:@"description"], lineNumber = [exception objectForKey:@"line"]; - RKLCHardAbortAssert((functionString != NULL) && (fileString != NULL) && (descriptionString != NULL) && (lineNumber != NULL)); - [[NSAssertionHandler currentHandler] handleFailureInFunction:functionString file:fileString lineNumber:(NSInteger)[lineNumber longValue] description:descriptionString]; - } - } -} - -// IMPORTANT! This code is critical path code. Because of this, it has been written for speed, not clarity. -// IMPORTANT! Should only be called from rkl_performRegexOp() or rkl_findRanges(). -// ---------- - -#pragma mark Primary means of performing a search with a regular expression - -static NSUInteger rkl_search(RKLCachedRegex *cachedRegex, NSRange *searchRange, NSUInteger updateSearchRange, id *exception RKL_UNUSED_ASSERTION_ARG, int32_t *status) { - NSUInteger foundMatch = 0UL; - - if((NSEqualRanges(*searchRange, cachedRegex->lastFindRange) == YES) && ((cachedRegex->lastMatchRange.length > 0UL) || (cachedRegex->lastMatchRange.location == (NSUInteger)NSNotFound))) { foundMatch = ((cachedRegex->lastMatchRange.location == (NSUInteger)NSNotFound) ? 0UL : 1UL);} - else { // Only perform an expensive 'find' operation iff the current find range is different than the last find range. - NSUInteger findLocation = (searchRange->location - cachedRegex->setToRange.location); - RKLCDelayedAssert(((searchRange->location >= cachedRegex->setToRange.location)) && (NSRangeInsideRange(*searchRange, cachedRegex->setToRange) == YES) && (findLocation < INT_MAX) && (findLocation <= cachedRegex->setToRange.length), exception, exitNow); - - RKL_PREFETCH_UNICHAR(cachedRegex->setToUniChar, searchRange->location); // Spool up the CPU caches. - - // Using uregex_findNext can be a slight performance win. - NSUInteger useFindNext = (RKL_EXPECTED(searchRange->location == (NSMaxRange(cachedRegex->lastMatchRange) + ((RKL_EXPECTED(cachedRegex->lastMatchRange.length == 0UL, 0L) && RKL_EXPECTED(cachedRegex->lastMatchRange.location < NSMaxRange(cachedRegex->setToRange), 0L)) ? 1UL : 0UL)), 1L) ? 1UL : 0UL); - - cachedRegex->lastFindRange = *searchRange; - if(RKL_EXPECTED(useFindNext == 0UL, 0L)) { if(RKL_EXPECTED((RKL_ICU_FUNCTION_APPEND(uregex_find) (cachedRegex->icu_regex, (int32_t)findLocation, status) == NO), 0L) || RKL_EXPECTED(*status > U_ZERO_ERROR, 0L)) { goto finishedFind; } } - else { if(RKL_EXPECTED((RKL_ICU_FUNCTION_APPEND(uregex_findNext)(cachedRegex->icu_regex, status) == NO), 0L) || RKL_EXPECTED(*status > U_ZERO_ERROR, 0L)) { goto finishedFind; } } - foundMatch = 1UL; - - if(RKL_EXPECTED(rkl_getRangeForCapture(cachedRegex, status, 0, &cachedRegex->lastMatchRange) > U_ZERO_ERROR, 0L)) { goto finishedFind; } - RKLCDelayedAssert(NSRangeInsideRange(cachedRegex->lastMatchRange, *searchRange) == YES, exception, exitNow); - } - -finishedFind: - if(RKL_EXPECTED(*status > U_ZERO_ERROR, 0L)) { foundMatch = 0UL; cachedRegex->lastFindRange = NSNotFoundRange; } - - if(RKL_EXPECTED(foundMatch == 0UL, 0L)) { cachedRegex->lastFindRange = NSNotFoundRange; cachedRegex->lastMatchRange = NSNotFoundRange; if(RKL_EXPECTED(updateSearchRange == 1UL, 1L)) { *searchRange = NSMakeRange(NSMaxRange(*searchRange), 0UL); } } - else { - RKLCDelayedAssert(NSRangeInsideRange(cachedRegex->lastMatchRange, *searchRange) == YES, exception, exitNow); - if(RKL_EXPECTED(updateSearchRange == 1UL, 1L)) { - NSUInteger nextLocation = (NSMaxRange(cachedRegex->lastMatchRange) + ((RKL_EXPECTED(cachedRegex->lastMatchRange.length == 0UL, 0L) && RKL_EXPECTED(cachedRegex->lastMatchRange.location < NSMaxRange(cachedRegex->setToRange), 1L)) ? 1UL : 0UL)), locationDiff = nextLocation - searchRange->location; - RKLCDelayedAssert((((locationDiff > 0UL) || ((locationDiff == 0UL) && (cachedRegex->lastMatchRange.location == NSMaxRange(cachedRegex->setToRange)))) && (locationDiff <= searchRange->length)), exception, exitNow); - searchRange->location = nextLocation; - searchRange->length -= locationDiff; - } - } - -#ifndef NS_BLOCK_ASSERTIONS -exitNow: -#endif - return(foundMatch); -} - -// IMPORTANT! This code is critical path code. Because of this, it has been written for speed, not clarity. -// IMPORTANT! Should only be called from rkl_performRegexOp() or rkl_performEnumerationUsingBlock(). -// ---------- - -#pragma mark Used to perform multiple searches at once and return the NSRange results in bulk - -static BOOL rkl_findRanges(RKLCachedRegex *cachedRegex, RKLRegexOp regexOp, RKLFindAll *findAll, id *exception, int32_t *status) { - BOOL returnWithError = YES; - RKLCDelayedAssert((((cachedRegex != NULL) && (cachedRegex->icu_regex != NULL) && (cachedRegex->setToUniChar != NULL) && (cachedRegex->captureCount >= 0L) && (cachedRegex->setToRange.location != (NSUInteger)NSNotFound)) && (status != NULL) && ((findAll != NULL) && (findAll->found == 0L) && (findAll->addedSplitRanges == 0L) && ((findAll->capacity >= 0L) && (((findAll->capacity > 0L) || (findAll->size > 0UL)) ? ((findAll->ranges != NULL) && (findAll->capacity > 0L) && (findAll->size > 0UL)) : 1)) && ((findAll->capture >= 0L) && (findAll->capture <= cachedRegex->captureCount)))), exception, exitNow); - - NSInteger captureCount = cachedRegex->captureCount, findAllRangeIndexOfLastNonZeroLength = 0L; - NSUInteger lastLocation = findAll->findInRange.location; - RKLRegexOp maskedRegexOp = (regexOp & RKLMaskOp); - NSRange searchRange = findAll->findInRange; - - for(findAll->found = 0L; (findAll->found < findAll->findUpTo) && ((findAll->found < findAll->capacity) || (findAll->found == 0L)); findAll->found++) { - NSInteger loopCapture, shouldBreak = 0L; - - if(RKL_EXPECTED(findAll->found >= ((findAll->capacity - ((captureCount + 2L) * 4L)) - 4L), 0L)) { if(RKL_EXPECTED(rkl_growFindRanges(cachedRegex, lastLocation, findAll, exception) == 0UL, 0L)) { goto exitNow; } } - - RKLCDelayedAssert((searchRange.location != (NSUInteger)NSNotFound) && (NSRangeInsideRange(searchRange, cachedRegex->setToRange) == YES) && (NSRangeInsideRange(findAll->findInRange, cachedRegex->setToRange) == YES), exception, exitNow); - - // This fixes a 'bug' that is also present in ICU's uregex_split(). 'Bug', in this case, means that the results of a split operation can differ from those that perl's split() creates for the same input. - // "I|at|ice I eat rice" split using the regex "\b\s*" demonstrates the problem. ICU bug http://bugs.icu-project.org/trac/ticket/6826 - // ICU : "", "I", "|", "at", "|", "ice", "", "I", "", "eat", "", "rice" <- Results that RegexKitLite used to produce. - // PERL: "I", "|", "at", "|", "ice", "I", "eat", "rice" <- Results that RegexKitLite now produces. - do { if((rkl_search(cachedRegex, &searchRange, 1UL, exception, status) == NO) || (RKL_EXPECTED(*status > U_ZERO_ERROR, 0L))) { shouldBreak = 1L; } findAll->remainingRange = searchRange; } - while(RKL_EXPECTED((cachedRegex->lastMatchRange.location - lastLocation) == 0UL, 0L) && RKL_EXPECTED(cachedRegex->lastMatchRange.length == 0UL, 0L) && (maskedRegexOp == RKLSplitOp) && RKL_EXPECTED(shouldBreak == 0L, 1L)); - if(RKL_EXPECTED(shouldBreak == 1L, 0L)) { break; } - - RKLCDelayedAssert((searchRange.location != (NSUInteger)NSNotFound) && (NSRangeInsideRange(searchRange, cachedRegex->setToRange) == YES) && (NSRangeInsideRange(findAll->findInRange, cachedRegex->setToRange) == YES) && (NSRangeInsideRange(searchRange, findAll->findInRange) == YES), exception, exitNow); - RKLCDelayedAssert((NSRangeInsideRange(cachedRegex->lastFindRange, cachedRegex->setToRange) == YES) && (NSRangeInsideRange(cachedRegex->lastMatchRange, cachedRegex->setToRange) == YES) && (NSRangeInsideRange(cachedRegex->lastMatchRange, findAll->findInRange) == YES), exception, exitNow); - RKLCDelayedAssert((findAll->ranges != NULL) && (findAll->found >= 0L) && (findAll->capacity >= 0L) && ((findAll->found + (captureCount + 3L) + 1L) < (findAll->capacity - 2L)), exception, exitNow); - - NSInteger findAllRangesIndexForCapture0 = findAll->found; - switch(maskedRegexOp) { - case RKLArrayOfStringsOp: - if(findAll->capture == 0L) { findAll->ranges[findAll->found] = cachedRegex->lastMatchRange; } else { if(RKL_EXPECTED(rkl_getRangeForCapture(cachedRegex, status, (int32_t)findAll->capture, &findAll->ranges[findAll->found]) > U_ZERO_ERROR, 0L)) { goto exitNow; } } - break; - - case RKLSplitOp: // Fall-thru... - case RKLCapturesArrayOp: // Fall-thru... - case RKLDictionaryOfCapturesOp: // Fall-thru... - case RKLArrayOfDictionariesOfCapturesOp: // Fall-thru... - case RKLArrayOfCapturesOp: - findAll->ranges[findAll->found] = ((maskedRegexOp == RKLSplitOp) ? NSMakeRange(lastLocation, cachedRegex->lastMatchRange.location - lastLocation) : cachedRegex->lastMatchRange); - - for(loopCapture = 1L; loopCapture <= captureCount; loopCapture++) { - RKLCDelayedAssert((findAll->found >= 0L) && (findAll->found < (findAll->capacity - 2L)) && (loopCapture < INT_MAX), exception, exitNow); - if(RKL_EXPECTED(rkl_getRangeForCapture(cachedRegex, status, (int32_t)loopCapture, &findAll->ranges[++findAll->found]) > U_ZERO_ERROR, 0L)) { goto exitNow; } - } - break; - - default: if(*exception == NULL) { *exception = RKLCAssertDictionary(@"Unknown regexOp."); } goto exitNow; break; - } - - if(findAll->ranges[findAllRangesIndexForCapture0].length > 0UL) { findAllRangeIndexOfLastNonZeroLength = findAll->found + 1UL; } - lastLocation = NSMaxRange(cachedRegex->lastMatchRange); - } - - if(RKL_EXPECTED(*status > U_ZERO_ERROR, 0L)) { goto exitNow; } - - RKLCDelayedAssert((findAll->ranges != NULL) && (findAll->found >= 0L) && (findAll->found < (findAll->capacity - 2L)), exception, exitNow); - if(maskedRegexOp == RKLSplitOp) { - if(lastLocation != NSMaxRange(findAll->findInRange)) { findAll->addedSplitRanges++; findAll->ranges[findAll->found++] = NSMakeRange(lastLocation, NSMaxRange(findAll->findInRange) - lastLocation); findAllRangeIndexOfLastNonZeroLength = findAll->found; } - findAll->found = findAllRangeIndexOfLastNonZeroLength; - } - - RKLCDelayedAssert((findAll->ranges != NULL) && (findAll->found >= 0L) && (findAll->found < (findAll->capacity - 2L)), exception, exitNow); - returnWithError = NO; - -exitNow: - return(returnWithError); -} - -// IMPORTANT! This code is critical path code. Because of this, it has been written for speed, not clarity. -// IMPORTANT! Should only be called from rkl_findRanges(). -// ---------- - -static NSUInteger rkl_growFindRanges(RKLCachedRegex *cachedRegex, NSUInteger lastLocation, RKLFindAll *findAll, id *exception RKL_UNUSED_ASSERTION_ARG) { - NSUInteger didGrowRanges = 0UL; - RKLCDelayedAssert((((cachedRegex != NULL) && (cachedRegex->captureCount >= 0L)) && ((findAll != NULL) && (findAll->capacity >= 0L) && (findAll->rangesScratchBuffer != NULL) && (findAll->found >= 0L) && (((findAll->capacity > 0L) || (findAll->size > 0UL) || (findAll->ranges != NULL)) ? ((findAll->capacity > 0L) && (findAll->size > 0UL) && (findAll->ranges != NULL) && (((size_t)findAll->capacity * sizeof(NSRange)) == findAll->size)) : 1))), exception, exitNow); - - // Attempt to guesstimate the required capacity based on: the total length needed to search / (length we've searched so far / ranges found so far). - NSInteger newCapacity = (findAll->capacity + (findAll->capacity / 2L)), estimate = (NSInteger)((float)cachedRegex->setToLength / (((float)lastLocation + 1.0f) / ((float)findAll->found + 1.0f))); - newCapacity = (((newCapacity + ((estimate > newCapacity) ? estimate : newCapacity)) / 2L) + ((cachedRegex->captureCount + 2L) * 4L) + 4L); - - NSUInteger needToCopy = ((*findAll->rangesScratchBuffer != findAll->ranges) && (findAll->ranges != NULL)) ? 1UL : 0UL; // If findAll->ranges is set to a stack allocation then we need to manually copy the data from the stack to the new heap allocation. - size_t newSize = ((size_t)newCapacity * sizeof(NSRange)); - RKL_STRONG_REF NSRange * RKL_GC_VOLATILE newRanges = NULL; - - if(RKL_EXPECTED((newRanges = (RKL_STRONG_REF NSRange * RKL_GC_VOLATILE)rkl_realloc((RKL_STRONG_REF void ** RKL_GC_VOLATILE)findAll->rangesScratchBuffer, newSize, 0UL)) == NULL, 0L)) { findAll->capacity = 0L; findAll->size = 0UL; findAll->ranges = NULL; *findAll->rangesScratchBuffer = rkl_free((RKL_STRONG_REF void ** RKL_GC_VOLATILE)findAll->rangesScratchBuffer); goto exitNow; } else { didGrowRanges = 1UL; } - if(needToCopy == 1UL) { memcpy(newRanges, findAll->ranges, findAll->size); } // If necessary, copy the existing data to the new heap allocation. - - findAll->capacity = newCapacity; - findAll->size = newSize; - findAll->ranges = newRanges; - -exitNow: - return(didGrowRanges); -} - -// IMPORTANT! This code is critical path code. Because of this, it has been written for speed, not clarity. -// IMPORTANT! Should only be called from rkl_performRegexOp(). -// ---------- - -#pragma mark Convert bulk results from rkl_findRanges in to various NSArray types - -static NSArray *rkl_makeArray(RKLCachedRegex *cachedRegex, RKLRegexOp regexOp, RKLFindAll *findAll, id *exception RKL_UNUSED_ASSERTION_ARG) { - NSUInteger createdStringsCount = 0UL, createdArraysCount = 0UL, transferredStringsCount = 0UL; - id * RKL_GC_VOLATILE matchedStrings = NULL, * RKL_GC_VOLATILE subcaptureArrays = NULL, emptyString = @""; - NSArray * RKL_GC_VOLATILE resultArray = NULL; - - RKLCDelayedAssert((cachedRegex != NULL) && ((findAll != NULL) && (findAll->found >= 0L) && (findAll->stringsScratchBuffer != NULL) && (findAll->arraysScratchBuffer != NULL)), exception, exitNow); - - size_t matchedStringsSize = ((size_t)findAll->found * sizeof(id)); - CFStringRef setToString = cachedRegex->setToString; - - if((findAll->stackUsed + matchedStringsSize) < (size_t)_RKL_STACK_LIMIT) { if(RKL_EXPECTED((matchedStrings = (id * RKL_GC_VOLATILE)alloca(matchedStringsSize)) == NULL, 0L)) { goto exitNow; } findAll->stackUsed += matchedStringsSize; } - else { if(RKL_EXPECTED((matchedStrings = (id * RKL_GC_VOLATILE)rkl_realloc(findAll->stringsScratchBuffer, matchedStringsSize, (NSUInteger)RKLScannedOption)) == NULL, 0L)) { goto exitNow; } } - - { // This sub-block (and its local variables) is here for the benefit of the optimizer. - NSUInteger found = (NSUInteger)findAll->found; - const NSRange *rangePtr = findAll->ranges; - id *matchedStringsPtr = matchedStrings; - - for(createdStringsCount = 0UL; createdStringsCount < found; createdStringsCount++) { - NSRange range = *rangePtr++; - if(RKL_EXPECTED(((*matchedStringsPtr++ = RKL_EXPECTED(range.length == 0UL, 0L) ? emptyString : rkl_CreateStringWithSubstring((id)setToString, range)) == NULL), 0L)) { goto exitNow; } - } - } - - NSUInteger arrayCount = createdStringsCount; - id * RKL_GC_VOLATILE arrayObjects = matchedStrings; - - if((regexOp & RKLSubcapturesArray) != 0UL) { - RKLCDelayedAssert(((createdStringsCount % ((NSUInteger)cachedRegex->captureCount + 1UL)) == 0UL) && (createdArraysCount == 0UL), exception, exitNow); - - NSUInteger captureCount = ((NSUInteger)cachedRegex->captureCount + 1UL); - NSUInteger subcaptureArraysCount = (createdStringsCount / captureCount); - size_t subcaptureArraysSize = ((size_t)subcaptureArraysCount * sizeof(id)); - - if((findAll->stackUsed + subcaptureArraysSize) < (size_t)_RKL_STACK_LIMIT) { if(RKL_EXPECTED((subcaptureArrays = (id * RKL_GC_VOLATILE)alloca(subcaptureArraysSize)) == NULL, 0L)) { goto exitNow; } findAll->stackUsed += subcaptureArraysSize; } - else { if(RKL_EXPECTED((subcaptureArrays = (id * RKL_GC_VOLATILE)rkl_realloc(findAll->arraysScratchBuffer, subcaptureArraysSize, (NSUInteger)RKLScannedOption)) == NULL, 0L)) { goto exitNow; } } - - { // This sub-block (and its local variables) is here for the benefit of the optimizer. - id *subcaptureArraysPtr = subcaptureArrays; - id *matchedStringsPtr = matchedStrings; - - for(createdArraysCount = 0UL; createdArraysCount < subcaptureArraysCount; createdArraysCount++) { - if(RKL_EXPECTED((*subcaptureArraysPtr++ = rkl_CreateArrayWithObjects((void **)matchedStringsPtr, captureCount)) == NULL, 0L)) { goto exitNow; } - matchedStringsPtr += captureCount; - transferredStringsCount += captureCount; - } - } - - RKLCDelayedAssert((transferredStringsCount == createdStringsCount), exception, exitNow); - arrayCount = createdArraysCount; - arrayObjects = subcaptureArrays; - } - - RKLCDelayedAssert((arrayObjects != NULL), exception, exitNow); - resultArray = rkl_CreateAutoreleasedArray((void **)arrayObjects, (NSUInteger)arrayCount); - -exitNow: - if(RKL_EXPECTED(resultArray == NULL, 0L) && (rkl_collectingEnabled() == NO)) { // If we did not create an array then we need to make sure that we release any objects we created. - NSUInteger x; - if(matchedStrings != NULL) { for(x = transferredStringsCount; x < createdStringsCount; x++) { if((matchedStrings[x] != NULL) && (matchedStrings[x] != emptyString)) { matchedStrings[x] = rkl_ReleaseObject(matchedStrings[x]); } } } - if(subcaptureArrays != NULL) { for(x = 0UL; x < createdArraysCount; x++) { if(subcaptureArrays[x] != NULL) { subcaptureArrays[x] = rkl_ReleaseObject(subcaptureArrays[x]); } } } - } - - return(resultArray); -} - -// IMPORTANT! This code is critical path code. Because of this, it has been written for speed, not clarity. -// IMPORTANT! Should only be called from rkl_performRegexOp(). -// ---------- - -#pragma mark Convert bulk results from rkl_findRanges in to various NSDictionary types - -static id rkl_makeDictionary(RKLCachedRegex *cachedRegex, RKLRegexOp regexOp, RKLFindAll *findAll, NSUInteger captureKeysCount, id captureKeys[captureKeysCount], const int captureKeyIndexes[captureKeysCount], id *exception RKL_UNUSED_ASSERTION_ARG) { - NSUInteger matchedStringIndex = 0UL, createdStringsCount = 0UL, createdDictionariesCount = 0UL, matchedDictionariesCount = (findAll->found / (cachedRegex->captureCount + 1UL)), transferredDictionariesCount = 0UL; - id * RKL_GC_VOLATILE matchedStrings = NULL, * RKL_GC_VOLATILE matchedKeys = NULL, emptyString = @""; - id RKL_GC_VOLATILE returnObject = NULL; - NSDictionary ** RKL_GC_VOLATILE matchedDictionaries = NULL; - - RKLCDelayedAssert((cachedRegex != NULL) && ((findAll != NULL) && (findAll->found >= 0L) && (findAll->stringsScratchBuffer != NULL) && (findAll->dictionariesScratchBuffer != NULL) && (findAll->keysScratchBuffer != NULL) && (captureKeyIndexes != NULL)), exception, exitNow); - - CFStringRef setToString = cachedRegex->setToString; - - size_t matchedStringsSize = ((size_t)captureKeysCount * sizeof(void *)); - if((findAll->stackUsed + matchedStringsSize) < (size_t)_RKL_STACK_LIMIT) { if(RKL_EXPECTED((matchedStrings = (id * RKL_GC_VOLATILE)alloca(matchedStringsSize)) == NULL, 0L)) { goto exitNow; } findAll->stackUsed += matchedStringsSize; } - else { if(RKL_EXPECTED((matchedStrings = (id * RKL_GC_VOLATILE)rkl_realloc(findAll->stringsScratchBuffer, matchedStringsSize, (NSUInteger)RKLScannedOption)) == NULL, 0L)) { goto exitNow; } } - - size_t matchedKeysSize = ((size_t)captureKeysCount * sizeof(void *)); - if((findAll->stackUsed + matchedKeysSize) < (size_t)_RKL_STACK_LIMIT) { if(RKL_EXPECTED((matchedKeys = (id * RKL_GC_VOLATILE)alloca(matchedKeysSize)) == NULL, 0L)) { goto exitNow; } findAll->stackUsed += matchedKeysSize; } - else { if(RKL_EXPECTED((matchedKeys = (id * RKL_GC_VOLATILE)rkl_realloc(findAll->keysScratchBuffer, matchedKeysSize, (NSUInteger)RKLScannedOption)) == NULL, 0L)) { goto exitNow; } } - - size_t matchedDictionariesSize = ((size_t)matchedDictionariesCount * sizeof(NSDictionary *)); - if((findAll->stackUsed + matchedDictionariesSize) < (size_t)_RKL_STACK_LIMIT) { if(RKL_EXPECTED((matchedDictionaries = (NSDictionary ** RKL_GC_VOLATILE)alloca(matchedDictionariesSize)) == NULL, 0L)) { goto exitNow; } findAll->stackUsed += matchedDictionariesSize; } - else { if(RKL_EXPECTED((matchedDictionaries = (NSDictionary ** RKL_GC_VOLATILE)rkl_realloc(findAll->dictionariesScratchBuffer, matchedDictionariesSize, (NSUInteger)RKLScannedOption)) == NULL, 0L)) { goto exitNow; } } - - { // This sub-block (and its local variables) is here for the benefit of the optimizer. - NSUInteger captureCount = cachedRegex->captureCount; - NSDictionary **matchedDictionariesPtr = matchedDictionaries; - - for(createdDictionariesCount = 0UL; createdDictionariesCount < matchedDictionariesCount; createdDictionariesCount++) { - RKLCDelayedAssert(((createdDictionariesCount * captureCount) < (NSUInteger)findAll->found), exception, exitNow); - RKL_STRONG_REF const NSRange * RKL_GC_VOLATILE rangePtr = &findAll->ranges[(createdDictionariesCount * (captureCount + 1UL))]; - for(matchedStringIndex = 0UL; matchedStringIndex < captureKeysCount; matchedStringIndex++) { - NSRange range = rangePtr[captureKeyIndexes[matchedStringIndex]]; - if(RKL_EXPECTED(range.location != NSNotFound, 0L)) { - if(RKL_EXPECTED(((matchedStrings[createdStringsCount] = RKL_EXPECTED(range.length == 0UL, 0L) ? emptyString : rkl_CreateStringWithSubstring((id)setToString, range)) == NULL), 0L)) { goto exitNow; } - matchedKeys[createdStringsCount] = captureKeys[createdStringsCount]; - createdStringsCount++; - } - } - RKLCDelayedAssert((matchedStringIndex <= captureCount), exception, exitNow); - if(RKL_EXPECTED(((*matchedDictionariesPtr++ = (NSDictionary * RKL_GC_VOLATILE)CFDictionaryCreate(NULL, (const void **)matchedKeys, (const void **)matchedStrings, (CFIndex)createdStringsCount, &rkl_transferOwnershipDictionaryKeyCallBacks, &rkl_transferOwnershipDictionaryValueCallBacks)) == NULL), 0L)) { goto exitNow; } - createdStringsCount = 0UL; - } - } - - if(createdDictionariesCount > 0UL) { - if((regexOp & RKLMaskOp) == RKLArrayOfDictionariesOfCapturesOp) { - RKLCDelayedAssert((matchedDictionaries != NULL) && (createdDictionariesCount > 0UL), exception, exitNow); - if((returnObject = rkl_CreateAutoreleasedArray((void **)matchedDictionaries, createdDictionariesCount)) == NULL) { goto exitNow; } - transferredDictionariesCount = createdDictionariesCount; - } else { - RKLCDelayedAssert((matchedDictionaries != NULL) && (createdDictionariesCount == 1UL), exception, exitNow); - if((returnObject = rkl_CFAutorelease(matchedDictionaries[0])) == NULL) { goto exitNow; } - transferredDictionariesCount = 1UL; - } - } - -exitNow: - RKLCDelayedAssert((createdDictionariesCount <= transferredDictionariesCount) && ((transferredDictionariesCount > 0UL) ? (createdStringsCount == 0UL) : 1), exception, exitNow2); -#ifndef NS_BLOCK_ASSERTIONS -exitNow2: -#endif - - if(rkl_collectingEnabled() == NO) { // Release any objects, if necessary. - NSUInteger x; - if(matchedStrings != NULL) { for(x = 0UL; x < createdStringsCount; x++) { if((matchedStrings[x] != NULL) && (matchedStrings[x] != emptyString)) { matchedStrings[x] = rkl_ReleaseObject(matchedStrings[x]); } } } - if(matchedDictionaries != NULL) { for(x = transferredDictionariesCount; x < createdDictionariesCount; x++) { if((matchedDictionaries[x] != NULL)) { matchedDictionaries[x] = rkl_ReleaseObject(matchedDictionaries[x]); } } } - } - - return(returnObject); -} - -// IMPORTANT! This code is critical path code. Because of this, it has been written for speed, not clarity. -// IMPORTANT! Should only be called from rkl_performRegexOp(). -// ---------- - -#pragma mark Perform "search and replace" operations on strings using ICUs uregex_*replace* functions - -static NSString *rkl_replaceString(RKLCachedRegex *cachedRegex, id searchString, NSUInteger searchU16Length, NSString *replacementString, NSUInteger replacementU16Length, NSInteger *replacedCountPtr, NSUInteger replaceMutable, id *exception, int32_t *status) { - RKL_STRONG_REF UniChar * RKL_GC_VOLATILE tempUniCharBuffer = NULL; - RKL_STRONG_REF const UniChar * RKL_GC_VOLATILE replacementUniChar = NULL; - uint64_t searchU16Length64 = (uint64_t)searchU16Length, replacementU16Length64 = (uint64_t)replacementU16Length; - int32_t resultU16Length = 0, tempUniCharBufferU16Capacity = 0, needU16Capacity = 0; - id RKL_GC_VOLATILE resultObject = NULL; - NSInteger replacedCount = -1L; - - if((RKL_EXPECTED(replacementU16Length64 >= (uint64_t)INT_MAX, 0L) || RKL_EXPECTED(((searchU16Length64 / 2ULL) + (replacementU16Length64 * 2ULL)) >= (uint64_t)INT_MAX, 0L))) { *exception = [NSException exceptionWithName:NSRangeException reason:@"Replacement string length exceeds INT_MAX." userInfo:NULL]; goto exitNow; } - - RKLCDelayedAssert((searchU16Length64 < (uint64_t)INT_MAX) && (replacementU16Length64 < (uint64_t)INT_MAX) && (((searchU16Length64 / 2ULL) + (replacementU16Length64 * 2ULL)) < (uint64_t)INT_MAX), exception, exitNow); - - // Zero order approximation of the buffer sizes for holding the replaced string or split strings and split strings pointer offsets. As UTF16 code units. - tempUniCharBufferU16Capacity = (int32_t)(16UL + (searchU16Length + (searchU16Length / 2UL)) + (replacementU16Length * 2UL)); - RKLCDelayedAssert((tempUniCharBufferU16Capacity < INT_MAX) && (tempUniCharBufferU16Capacity > 0), exception, exitNow); - - // Buffer sizes converted from native units to bytes. - size_t stackSize = 0UL, replacementSize = ((size_t)replacementU16Length * sizeof(UniChar)), tempUniCharBufferSize = ((size_t)tempUniCharBufferU16Capacity * sizeof(UniChar)); - - // For the various buffers we require, we first try to allocate from the stack if we're not over the RKL_STACK_LIMIT. If we are, switch to using the heap for the buffer. - if((stackSize + tempUniCharBufferSize) < (size_t)_RKL_STACK_LIMIT) { if(RKL_EXPECTED((tempUniCharBuffer = (RKL_STRONG_REF UniChar * RKL_GC_VOLATILE)alloca(tempUniCharBufferSize)) == NULL, 0L)) { goto exitNow; } stackSize += tempUniCharBufferSize; } - else { if(RKL_EXPECTED((tempUniCharBuffer = (RKL_STRONG_REF UniChar * RKL_GC_VOLATILE)rkl_realloc(&rkl_scratchBuffer[0], tempUniCharBufferSize, 0UL)) == NULL, 0L)) { goto exitNow; } } - - // Try to get the pointer to the replacement strings UTF16 data. If we can't, allocate some buffer space, then covert to UTF16. - if((replacementUniChar = CFStringGetCharactersPtr((CFStringRef)replacementString)) == NULL) { - RKL_STRONG_REF UniChar * RKL_GC_VOLATILE uniCharBuffer = NULL; - if((stackSize + replacementSize) < (size_t)_RKL_STACK_LIMIT) { if(RKL_EXPECTED((uniCharBuffer = (RKL_STRONG_REF UniChar * RKL_GC_VOLATILE)alloca(replacementSize)) == NULL, 0L)) { goto exitNow; } stackSize += replacementSize; } - else { if(RKL_EXPECTED((uniCharBuffer = (RKL_STRONG_REF UniChar * RKL_GC_VOLATILE)rkl_realloc(&rkl_scratchBuffer[1], replacementSize, 0UL)) == NULL, 0L)) { goto exitNow; } } - CFStringGetCharacters((CFStringRef)replacementString, CFMakeRange(0L, replacementU16Length), uniCharBuffer); // Convert to a UTF16 string. - replacementUniChar = uniCharBuffer; - } - - resultU16Length = rkl_replaceAll(cachedRegex, replacementUniChar, (int32_t)replacementU16Length, tempUniCharBuffer, tempUniCharBufferU16Capacity, &replacedCount, &needU16Capacity, exception, status); - RKLCDelayedAssert((resultU16Length <= tempUniCharBufferU16Capacity) && (needU16Capacity >= resultU16Length) && (needU16Capacity >= 0), exception, exitNow); - if(RKL_EXPECTED((needU16Capacity + 4) >= INT_MAX, 0L)) { *exception = [NSException exceptionWithName:NSInternalInconsistencyException reason:@"Replaced string length exceeds INT_MAX." userInfo:NULL]; goto exitNow; } - - if(RKL_EXPECTED(*status == U_BUFFER_OVERFLOW_ERROR, 0L)) { // Our buffer guess(es) were too small. Resize the buffers and try again. - // rkl_replaceAll will turn a status of U_STRING_NOT_TERMINATED_WARNING in to a U_BUFFER_OVERFLOW_ERROR. - // As an extra precaution, we pad out the amount needed by an extra four characters "just in case". - // http://lists.apple.com/archives/Cocoa-dev/2010/Jan/msg01011.html - needU16Capacity += 4; - tempUniCharBufferSize = ((size_t)(tempUniCharBufferU16Capacity = needU16Capacity + 4) * sizeof(UniChar)); // Use needU16Capacity. Bug 2890810. - if((stackSize + tempUniCharBufferSize) < (size_t)_RKL_STACK_LIMIT) { if(RKL_EXPECTED((tempUniCharBuffer = (RKL_STRONG_REF UniChar * RKL_GC_VOLATILE)alloca(tempUniCharBufferSize)) == NULL, 0L)) { goto exitNow; } stackSize += tempUniCharBufferSize; } // Warning about stackSize can be safely ignored. - else { if(RKL_EXPECTED((tempUniCharBuffer = (RKL_STRONG_REF UniChar * RKL_GC_VOLATILE)rkl_realloc(&rkl_scratchBuffer[0], tempUniCharBufferSize, 0UL)) == NULL, 0L)) { goto exitNow; } } - - *status = U_ZERO_ERROR; // Make sure the status var is cleared and try again. - resultU16Length = rkl_replaceAll(cachedRegex, replacementUniChar, (int32_t)replacementU16Length, tempUniCharBuffer, tempUniCharBufferU16Capacity, &replacedCount, &needU16Capacity, exception, status); - RKLCDelayedAssert((resultU16Length <= tempUniCharBufferU16Capacity) && (needU16Capacity >= resultU16Length) && (needU16Capacity >= 0), exception, exitNow); - } - - // If status != U_ZERO_ERROR, consider it an error, even though status < U_ZERO_ERROR is a 'warning' in ICU nomenclature. - // http://sourceforge.net/tracker/?func=detail&atid=990188&aid=2890810&group_id=204582 - if(RKL_EXPECTED(*status != U_ZERO_ERROR, 0L)) { goto exitNow; } // Something went wrong. - - RKLCDelayedAssert((replacedCount >= 0L), exception, exitNow); - if(RKL_EXPECTED(resultU16Length == 0, 0L)) { resultObject = @""; } // Optimize the case where the replaced text length == 0 with a @"" string. - else if(RKL_EXPECTED((NSUInteger)resultU16Length == searchU16Length, 0L) && RKL_EXPECTED(replacedCount == 0L, 1L)) { // Optimize the case where the replacement == original by creating a copy. Very fast if self is immutable. - if(replaceMutable == 0UL) { resultObject = rkl_CFAutorelease(CFStringCreateCopy(NULL, (CFStringRef)searchString)); } // .. but only if this is not replacing a mutable self. Warning about potential leak can be safely ignored. - } else { resultObject = rkl_CFAutorelease(CFStringCreateWithCharacters(NULL, tempUniCharBuffer, (CFIndex)resultU16Length)); } // otherwise, create a new string. Warning about potential leak can be safely ignored. - - // If replaceMutable == 1UL, we don't do the replacement here. We wait until after we return and unlock the cache lock. - // This is because we may be trying to mutate an immutable string object. - if((replaceMutable == 1UL) && RKL_EXPECTED(replacedCount > 0L, 1L)) { // We're working on a mutable string and there were successful matches with replaced text, so there's work to do. - if(cachedRegex->buffer != NULL) { rkl_clearBuffer(cachedRegex->buffer, 0UL); cachedRegex->buffer = NULL; } - NSUInteger idx = 0UL; - for(idx = 0UL; idx < _RKL_LRU_CACHE_SET_WAYS; idx++) { - RKLBuffer *buffer = ((NSUInteger)cachedRegex->setToLength < _RKL_FIXED_LENGTH) ? &rkl_lruFixedBuffer[idx] : &rkl_lruDynamicBuffer[idx]; - if(RKL_EXPECTED(cachedRegex->setToString == buffer->string, 0L) && (cachedRegex->setToLength == buffer->length) && (cachedRegex->setToHash == buffer->hash)) { rkl_clearBuffer(buffer, 0UL); } - } - rkl_clearCachedRegexSetTo(cachedRegex); // Flush any cached information about this string since it will mutate. - } - -exitNow: - if(RKL_EXPECTED(status == NULL, 0L) || RKL_EXPECTED(*status != U_ZERO_ERROR, 0L) || RKL_EXPECTED(exception == NULL, 0L) || RKL_EXPECTED(*exception != NULL, 0L)) { replacedCount = -1L; } - if(rkl_scratchBuffer[0] != NULL) { rkl_scratchBuffer[0] = rkl_free(&rkl_scratchBuffer[0]); } - if(rkl_scratchBuffer[1] != NULL) { rkl_scratchBuffer[1] = rkl_free(&rkl_scratchBuffer[1]); } - if(replacedCountPtr != NULL) { *replacedCountPtr = replacedCount; } - return(resultObject); -} // The two warnings about potential leaks can be safely ignored. - -// IMPORTANT! Should only be called from rkl_replaceString(). -// ---------- -// Modified version of the ICU libraries uregex_replaceAll() that keeps count of the number of replacements made. - -static int32_t rkl_replaceAll(RKLCachedRegex *cachedRegex, RKL_STRONG_REF const UniChar * RKL_GC_VOLATILE replacementUniChar, int32_t replacementU16Length, UniChar *replacedUniChar, int32_t replacedU16Capacity, NSInteger *replacedCount, int32_t *needU16Capacity, id *exception RKL_UNUSED_ASSERTION_ARG, int32_t *status) { - int32_t u16Length = 0, initialReplacedU16Capacity = replacedU16Capacity; - NSUInteger bufferOverflowed = 0UL; - NSInteger replaced = -1L; - RKLCDelayedAssert((cachedRegex != NULL) && (replacementUniChar != NULL) && (replacedUniChar != NULL) && (replacedCount != NULL) && (needU16Capacity != NULL) && (status != NULL) && (replacementU16Length >= 0) && (replacedU16Capacity >= 0), exception, exitNow); - - cachedRegex->lastFindRange = cachedRegex->lastMatchRange = NSNotFoundRange; // Clear the cached find information for this regex so a subsequent find works correctly. - RKL_ICU_FUNCTION_APPEND(uregex_reset)(cachedRegex->icu_regex, 0, status); - - // Work around for ICU uregex_reset() bug, see http://bugs.icu-project.org/trac/ticket/6545 - // http://sourceforge.net/tracker/index.php?func=detail&aid=2105213&group_id=204582&atid=990188 - if(RKL_EXPECTED(cachedRegex->setToRange.length == 0UL, 0L) && (*status == U_INDEX_OUTOFBOUNDS_ERROR)) { *status = U_ZERO_ERROR; } - replaced = 0L; - // This loop originally came from ICU source/i18n/uregex.cpp, uregex_replaceAll. - // There is a bug in that code which causes the size of the buffer required for the replaced text to not be calculated correctly. - // This contains a work around using the variable bufferOverflowed. - // ICU bug: http://bugs.icu-project.org/trac/ticket/6656 - // http://sourceforge.net/tracker/index.php?func=detail&aid=2408447&group_id=204582&atid=990188 - while(RKL_ICU_FUNCTION_APPEND(uregex_findNext)(cachedRegex->icu_regex, status)) { - replaced++; - u16Length += RKL_ICU_FUNCTION_APPEND(uregex_appendReplacement)(cachedRegex->icu_regex, replacementUniChar, replacementU16Length, &replacedUniChar, &replacedU16Capacity, status); - if(RKL_EXPECTED(*status == U_BUFFER_OVERFLOW_ERROR, 0L)) { bufferOverflowed = 1UL; *status = U_ZERO_ERROR; } - } - if(RKL_EXPECTED(*status == U_BUFFER_OVERFLOW_ERROR, 0L)) { bufferOverflowed = 1UL; *status = U_ZERO_ERROR; } - if(RKL_EXPECTED(*status <= U_ZERO_ERROR, 1L)) { u16Length += RKL_ICU_FUNCTION_APPEND(uregex_appendTail)(cachedRegex->icu_regex, &replacedUniChar, &replacedU16Capacity, status); } - - // Try to work around a status of U_STRING_NOT_TERMINATED_WARNING. For now, we treat it as a "Buffer Overflow" error. - // As an extra precaution, in rkl_replaceString, we pad out the amount needed by an extra four characters "just in case". - // http://lists.apple.com/archives/Cocoa-dev/2010/Jan/msg01011.html - if(RKL_EXPECTED(*status == U_STRING_NOT_TERMINATED_WARNING, 0L)) { *status = U_BUFFER_OVERFLOW_ERROR; } - - // Check for status <= U_ZERO_ERROR (a 'warning' in ICU nomenclature) rather than just status == U_ZERO_ERROR. - // Under just the right circumstances, status might be equal to U_STRING_NOT_TERMINATED_WARNING. When this occurred, - // rkl_replaceString would never get the U_BUFFER_OVERFLOW_ERROR status, and thus never grow the buffer to the size needed. - // http://sourceforge.net/tracker/?func=detail&atid=990188&aid=2890810&group_id=204582 - if(RKL_EXPECTED(bufferOverflowed == 1UL, 0L) && RKL_EXPECTED(*status <= U_ZERO_ERROR, 1L)) { *status = U_BUFFER_OVERFLOW_ERROR; } - -#ifndef NS_BLOCK_ASSERTIONS -exitNow: -#endif // NS_BLOCK_ASSERTIONS - if(RKL_EXPECTED(replacedCount != NULL, 1L)) { *replacedCount = replaced; } - if(RKL_EXPECTED(needU16Capacity != NULL, 1L)) { *needU16Capacity = u16Length; } // Use needU16Capacity to return the number of characters that are needed for the completely replaced string. Bug 2890810. - return(initialReplacedU16Capacity - replacedU16Capacity); // Return the number of characters of replacedUniChar that were used. -} - -#pragma mark Internal function used to check if a regular expression is valid. - -static NSUInteger rkl_isRegexValid(id self, SEL _cmd, NSString *regex, RKLRegexOptions options, NSInteger *captureCountPtr, NSError **error) { - volatile NSUInteger RKL_CLEANUP(rkl_cleanup_cacheSpinLockStatus) rkl_cacheSpinLockStatus = 0UL; - - RKLCachedRegex *cachedRegex = NULL; - NSUInteger gotCachedRegex = 0UL; - NSInteger captureCount = -1L; - id exception = NULL; - - if((error != NULL) && (*error != NULL)) { *error = NULL; } - if(RKL_EXPECTED(regex == NULL, 0L)) { RKL_RAISE_EXCEPTION(NSInvalidArgumentException, @"The regular expression argument is NULL."); } - - OSSpinLockLock(&rkl_cacheSpinLock); - rkl_cacheSpinLockStatus |= RKLLockedCacheSpinLock; - rkl_dtrace_incrementEventID(); - if(RKL_EXPECTED((cachedRegex = rkl_getCachedRegex(regex, options, error, &exception)) != NULL, 1L)) { gotCachedRegex = 1UL; captureCount = cachedRegex->captureCount; } - cachedRegex = NULL; - OSSpinLockUnlock(&rkl_cacheSpinLock); - rkl_cacheSpinLockStatus |= RKLUnlockedCacheSpinLock; // Warning about rkl_cacheSpinLockStatus never being read can be safely ignored. - - if(captureCountPtr != NULL) { *captureCountPtr = captureCount; } - if(RKL_EXPECTED(exception != NULL, 0L)) { rkl_handleDelayedAssert(self, _cmd, exception); } - return(gotCachedRegex); -} - -#pragma mark Functions used for clearing and releasing resources for various internal data structures - -static void rkl_clearStringCache(void) { - RKLCAbortAssert(rkl_cacheSpinLock != (OSSpinLock)0); - rkl_lastCachedRegex = NULL; - NSUInteger x = 0UL; - for(x = 0UL; x < _RKL_SCRATCH_BUFFERS; x++) { if(rkl_scratchBuffer[x] != NULL) { rkl_scratchBuffer[x] = rkl_free(&rkl_scratchBuffer[x]); } } - for(x = 0UL; x < _RKL_REGEX_CACHE_LINES; x++) { rkl_clearCachedRegex(&rkl_cachedRegexes[x]); } - for(x = 0UL; x < _RKL_LRU_CACHE_SET_WAYS; x++) { rkl_clearBuffer(&rkl_lruFixedBuffer[x], 0UL); rkl_clearBuffer(&rkl_lruDynamicBuffer[x], 1UL); } -} - -static void rkl_clearBuffer(RKLBuffer *buffer, NSUInteger freeDynamicBuffer) { - RKLCAbortAssert(buffer != NULL); - if(RKL_EXPECTED(buffer == NULL, 0L)) { return; } - if(RKL_EXPECTED(freeDynamicBuffer == 1UL, 0L) && RKL_EXPECTED(buffer->uniChar != NULL, 1L)) { RKL_STRONG_REF void * RKL_GC_VOLATILE p = (RKL_STRONG_REF void * RKL_GC_VOLATILE)buffer->uniChar; buffer->uniChar = (RKL_STRONG_REF UniChar * RKL_GC_VOLATILE)rkl_free(&p); } - if(RKL_EXPECTED(buffer->string != NULL, 1L)) { CFRelease((CFTypeRef)buffer->string); buffer->string = NULL; } - buffer->length = 0L; - buffer->hash = 0UL; -} - -static void rkl_clearCachedRegex(RKLCachedRegex *cachedRegex) { - RKLCAbortAssert(cachedRegex != NULL); - if(RKL_EXPECTED(cachedRegex == NULL, 0L)) { return; } - rkl_clearCachedRegexSetTo(cachedRegex); - if(rkl_lastCachedRegex == cachedRegex) { rkl_lastCachedRegex = NULL; } - if(cachedRegex->icu_regex != NULL) { RKL_ICU_FUNCTION_APPEND(uregex_close)(cachedRegex->icu_regex); cachedRegex->icu_regex = NULL; cachedRegex->captureCount = -1L; } - if(cachedRegex->regexString != NULL) { CFRelease((CFTypeRef)cachedRegex->regexString); cachedRegex->regexString = NULL; cachedRegex->options = 0U; cachedRegex->regexHash = 0UL; } -} - -static void rkl_clearCachedRegexSetTo(RKLCachedRegex *cachedRegex) { - RKLCAbortAssert(cachedRegex != NULL); - if(RKL_EXPECTED(cachedRegex == NULL, 0L)) { return; } - if(RKL_EXPECTED(cachedRegex->icu_regex != NULL, 1L)) { int32_t status = 0; RKL_ICU_FUNCTION_APPEND(uregex_setText)(cachedRegex->icu_regex, &rkl_emptyUniCharString[0], 0, &status); } - if(RKL_EXPECTED(cachedRegex->setToString != NULL, 1L)) { CFRelease((CFTypeRef)cachedRegex->setToString); cachedRegex->setToString = NULL; } - cachedRegex->lastFindRange = cachedRegex->lastMatchRange = cachedRegex->setToRange = NSNotFoundRange; - cachedRegex->setToIsImmutable = cachedRegex->setToNeedsConversion = 0U; - cachedRegex->setToUniChar = NULL; - cachedRegex->setToHash = 0UL; - cachedRegex->setToLength = 0L; - cachedRegex->buffer = NULL; -} - -#pragma mark Internal functions used to implement NSException and NSError functionality and userInfo NSDictionaries - -// Helps to keep things tidy. -#define addKeyAndObject(objs, keys, i, k, o) ({id _o=(o), _k=(k); if((_o != NULL) && (_k != NULL)) { objs[i] = _o; keys[i] = _k; i++; } }) - -static NSDictionary *rkl_userInfoDictionary(RKLUserInfoOptions userInfoOptions, NSString *regexString, RKLRegexOptions options, const UParseError *parseError, int32_t status, NSString *matchString, NSRange matchRange, NSString *replacementString, NSString *replacedString, NSInteger replacedCount, RKLRegexEnumerationOptions enumerationOptions, ...) { - va_list varArgsList; - va_start(varArgsList, enumerationOptions); - if(regexString == NULL) { regexString = @""; } - - id objects[64], keys[64]; - NSUInteger count = 0UL; - - NSString * RKL_GC_VOLATILE errorNameString = [NSString stringWithUTF8String:RKL_ICU_FUNCTION_APPEND(u_errorName)(status)]; - - addKeyAndObject(objects, keys, count, RKLICURegexRegexErrorKey, regexString); - addKeyAndObject(objects, keys, count, RKLICURegexRegexOptionsErrorKey, [NSNumber numberWithUnsignedInt:options]); - addKeyAndObject(objects, keys, count, RKLICURegexErrorCodeErrorKey, [NSNumber numberWithInt:status]); - addKeyAndObject(objects, keys, count, RKLICURegexErrorNameErrorKey, errorNameString); - - if(matchString != NULL) { addKeyAndObject(objects, keys, count, RKLICURegexSubjectStringErrorKey, matchString); } - if((userInfoOptions & RKLUserInfoSubjectRange) != 0UL) { addKeyAndObject(objects, keys, count, RKLICURegexSubjectRangeErrorKey, [NSValue valueWithRange:matchRange]); } - if(replacementString != NULL) { addKeyAndObject(objects, keys, count, RKLICURegexReplacementStringErrorKey, replacementString); } - if(replacedString != NULL) { addKeyAndObject(objects, keys, count, RKLICURegexReplacedStringErrorKey, replacedString); } - if((userInfoOptions & RKLUserInfoReplacedCount) != 0UL) { addKeyAndObject(objects, keys, count, RKLICURegexReplacedCountErrorKey, [NSNumber numberWithInteger:replacedCount]); } - if((userInfoOptions & RKLUserInfoRegexEnumerationOptions) != 0UL) { addKeyAndObject(objects, keys, count, RKLICURegexEnumerationOptionsErrorKey, [NSNumber numberWithUnsignedInteger:enumerationOptions]); } - - if((parseError != NULL) && (parseError->line != -1)) { - NSString *preContextString = [NSString stringWithCharacters:&parseError->preContext[0] length:(NSUInteger)RKL_ICU_FUNCTION_APPEND(u_strlen)(&parseError->preContext[0])]; - NSString *postContextString = [NSString stringWithCharacters:&parseError->postContext[0] length:(NSUInteger)RKL_ICU_FUNCTION_APPEND(u_strlen)(&parseError->postContext[0])]; - - addKeyAndObject(objects, keys, count, RKLICURegexLineErrorKey, [NSNumber numberWithInt:parseError->line]); - addKeyAndObject(objects, keys, count, RKLICURegexOffsetErrorKey, [NSNumber numberWithInt:parseError->offset]); - addKeyAndObject(objects, keys, count, RKLICURegexPreContextErrorKey, preContextString); - addKeyAndObject(objects, keys, count, RKLICURegexPostContextErrorKey, postContextString); - addKeyAndObject(objects, keys, count, @"NSLocalizedFailureReason", ([NSString stringWithFormat:@"The error %@ occurred at line %d, column %d: %@<>%@", errorNameString, parseError->line, parseError->offset, preContextString, postContextString])); - } else { - addKeyAndObject(objects, keys, count, @"NSLocalizedFailureReason", ([NSString stringWithFormat:@"The error %@ occurred.", errorNameString])); - } - - while(count < 62UL) { id obj = va_arg(varArgsList, id), key = va_arg(varArgsList, id); if((obj != NULL) && (key != NULL)) { addKeyAndObject(objects, keys, count, key, obj); } else { break; } } - va_end(varArgsList); - - return([NSDictionary dictionaryWithObjects:&objects[0] forKeys:&keys[0] count:count]); -} - -static NSError *rkl_makeNSError(RKLUserInfoOptions userInfoOptions, NSString *regexString, RKLRegexOptions options, const UParseError *parseError, int32_t status, NSString *matchString, NSRange matchRange, NSString *replacementString, NSString *replacedString, NSInteger replacedCount, RKLRegexEnumerationOptions enumerationOptions, NSString *errorDescription) { - if(errorDescription == NULL) { errorDescription = (status == U_ZERO_ERROR) ? @"No description of this error is available." : [NSString stringWithFormat:@"ICU regular expression error #%d, %s.", status, RKL_ICU_FUNCTION_APPEND(u_errorName)(status)]; } - return([NSError errorWithDomain:RKLICURegexErrorDomain code:(NSInteger)status userInfo:rkl_userInfoDictionary(userInfoOptions, regexString, options, parseError, status, matchString, matchRange, replacementString, replacedString, replacedCount, enumerationOptions, errorDescription, @"NSLocalizedDescription", NULL)]); -} - -static NSException *rkl_NSExceptionForRegex(NSString *regexString, RKLRegexOptions options, const UParseError *parseError, int32_t status) { - return([NSException exceptionWithName:RKLICURegexException reason:[NSString stringWithFormat:@"ICU regular expression error #%d, %s.", status, RKL_ICU_FUNCTION_APPEND(u_errorName)(status)] userInfo:rkl_userInfoDictionary((RKLUserInfoOptions)RKLUserInfoNone, regexString, options, parseError, status, NULL, NSNotFoundRange, NULL, NULL, 0L, (RKLRegexEnumerationOptions)RKLRegexEnumerationNoOptions, NULL)]); -} - -static NSDictionary *rkl_makeAssertDictionary(const char *function, const char *file, int line, NSString *format, ...) { - va_list varArgsList; - va_start(varArgsList, format); - NSString * RKL_GC_VOLATILE formatString = [[[NSString alloc] initWithFormat:format arguments:varArgsList] autorelease]; - va_end(varArgsList); - NSString * RKL_GC_VOLATILE functionString = [NSString stringWithUTF8String:function], *fileString = [NSString stringWithUTF8String:file]; - return([NSDictionary dictionaryWithObjectsAndKeys:formatString, @"description", functionString, @"function", fileString, @"file", [NSNumber numberWithInt:line], @"line", NSInternalInconsistencyException, @"exceptionName", NULL]); -} - -static NSString *rkl_stringFromClassAndMethod(id object, SEL selector, NSString *format, ...) { - va_list varArgsList; - va_start(varArgsList, format); - NSString * RKL_GC_VOLATILE formatString = [[[NSString alloc] initWithFormat:format arguments:varArgsList] autorelease]; - va_end(varArgsList); - Class objectsClass = (object == NULL) ? NULL : [object class]; - return([NSString stringWithFormat:@"*** %c[%@ %@]: %@", (object == objectsClass) ? '+' : '-', (objectsClass == NULL) ? @"" : NSStringFromClass(objectsClass), (selector == NULL) ? @":NULL:" : NSStringFromSelector(selector), formatString]); -} - -#ifdef _RKL_BLOCKS_ENABLED - -//////////// -#pragma mark - -#pragma mark Objective-C ^Blocks Support -#pragma mark - -//////////// - -// Prototypes - -static id rkl_performEnumerationUsingBlock(id self, SEL _cmd, - RKLRegexOp regexOp, NSString *regexString, RKLRegexOptions options, - id matchString, NSRange matchRange, - RKLBlockEnumerationOp blockEnumerationOp, RKLRegexEnumerationOptions enumerationOptions, - NSInteger *replacedCountPtr, NSUInteger *errorFreePtr, - NSError **error, - void (^stringsAndRangesBlock)(NSInteger capturedCount, NSString * const capturedStrings[capturedCount], const NSRange capturedStringRanges[capturedCount], volatile BOOL * const stop), - NSString *(^replaceStringsAndRangesBlock)(NSInteger capturedCount, NSString * const capturedStrings[capturedCount], const NSRange capturedStringRanges[capturedCount], volatile BOOL * const stop) - ) RKL_NONNULL_ARGS(1,2,4,6); - -// This is an object meant for internal use only. It wraps and abstracts various functionality to simplify ^Blocks support. - -@interface RKLBlockEnumerationHelper : NSObject { - @public - RKLCachedRegex cachedRegex; - RKLBuffer buffer; - RKL_STRONG_REF void * RKL_GC_VOLATILE scratchBuffer[_RKL_SCRATCH_BUFFERS]; - NSUInteger needToFreeBufferUniChar:1; -} -- (id)initWithRegex:(NSString *)initRegexString options:(RKLRegexOptions)initOptions string:(NSString *)initString range:(NSRange)initRange error:(NSError **)initError; -@end - -@implementation RKLBlockEnumerationHelper - -- (id)initWithRegex:(NSString *)initRegexString options:(RKLRegexOptions)initOptions string:(NSString *)initString range:(NSRange)initRange error:(NSError **)initError -{ - volatile NSUInteger RKL_CLEANUP(rkl_cleanup_cacheSpinLockStatus) rkl_cacheSpinLockStatus = 0UL; - - int32_t status = U_ZERO_ERROR; - id exception = NULL; - RKLCachedRegex *retrievedCachedRegex = NULL; - -#ifdef _RKL_DTRACE_ENABLED - NSUInteger thisDTraceEventID = 0UL; - unsigned int lookupResultFlags = 0U; -#endif - - if(RKL_EXPECTED((self = [super init]) == NULL, 0L)) { goto errorExit; } - - RKLCDelayedAssert((initRegexString != NULL) && (initString != NULL), &exception, errorExit); - - // IMPORTANT! Once we have obtained the lock, code MUST exit via 'goto exitNow;' to unlock the lock! NO EXCEPTIONS! - // ---------- - OSSpinLockLock(&rkl_cacheSpinLock); // Grab the lock and get cache entry. - rkl_cacheSpinLockStatus |= RKLLockedCacheSpinLock; - rkl_dtrace_incrementAndGetEventID(thisDTraceEventID); - - if(RKL_EXPECTED((retrievedCachedRegex = rkl_getCachedRegex(initRegexString, initOptions, initError, &exception)) == NULL, 0L)) { goto exitNow; } - RKLCDelayedAssert(((retrievedCachedRegex >= rkl_cachedRegexes) && ((retrievedCachedRegex - &rkl_cachedRegexes[0]) < (ssize_t)_RKL_REGEX_CACHE_LINES)) && (retrievedCachedRegex != NULL) && (retrievedCachedRegex->icu_regex != NULL) && (retrievedCachedRegex->regexString != NULL) && (retrievedCachedRegex->captureCount >= 0L) && (retrievedCachedRegex == rkl_lastCachedRegex), &exception, exitNow); - - if(RKL_EXPECTED(retrievedCachedRegex == NULL, 0L) || RKL_EXPECTED(status > U_ZERO_ERROR, 0L) || RKL_EXPECTED(exception != NULL, 0L)) { goto exitNow; } - - if(RKL_EXPECTED((cachedRegex.icu_regex = RKL_ICU_FUNCTION_APPEND(uregex_clone)(retrievedCachedRegex->icu_regex, &status)) == NULL, 0L) || RKL_EXPECTED(status != U_ZERO_ERROR, 0L)) { goto exitNow; } - if(RKL_EXPECTED((cachedRegex.regexString = (CFStringRef)CFRetain((CFTypeRef)retrievedCachedRegex->regexString)) == NULL, 0L)) { goto exitNow; } - cachedRegex.options = initOptions; - cachedRegex.captureCount = retrievedCachedRegex->captureCount; - cachedRegex.regexHash = retrievedCachedRegex->regexHash; - - RKLCDelayedAssert((cachedRegex.icu_regex != NULL) && (cachedRegex.regexString != NULL) && (cachedRegex.captureCount >= 0L), &exception, exitNow); - -exitNow: - if((rkl_cacheSpinLockStatus & RKLLockedCacheSpinLock) != 0UL) { // In case we arrive at exitNow: without obtaining the rkl_cacheSpinLock. - OSSpinLockUnlock(&rkl_cacheSpinLock); - rkl_cacheSpinLockStatus |= RKLUnlockedCacheSpinLock; // Warning about rkl_cacheSpinLockStatus never being read can be safely ignored. - } - - if(RKL_EXPECTED(self == NULL, 0L) || RKL_EXPECTED(retrievedCachedRegex == NULL, 0L) || RKL_EXPECTED(cachedRegex.icu_regex == NULL, 0L) || RKL_EXPECTED(status != U_ZERO_ERROR, 0L) || RKL_EXPECTED(exception != NULL, 0L)) { goto errorExit; } - retrievedCachedRegex = NULL; // Since we no longer hold the lock, ensure that nothing accesses the retrieved cache regex after this point. - - rkl_dtrace_addLookupFlag(lookupResultFlags, RKLEnumerationBufferLookupFlag); - - if(RKL_EXPECTED((buffer.string = CFStringCreateCopy(NULL, (CFStringRef)initString)) == NULL, 0L)) { goto errorExit; } - buffer.hash = CFHash((CFTypeRef)buffer.string); - buffer.length = CFStringGetLength(buffer.string); - - if((buffer.uniChar = (UniChar *)CFStringGetCharactersPtr(buffer.string)) == NULL) { - rkl_dtrace_addLookupFlag(lookupResultFlags, RKLConversionRequiredLookupFlag); - if(RKL_EXPECTED((buffer.uniChar = (RKL_STRONG_REF UniChar * RKL_GC_VOLATILE)rkl_realloc((RKL_STRONG_REF void ** RKL_GC_VOLATILE)&buffer.uniChar, ((size_t)buffer.length * sizeof(UniChar)), 0UL)) == NULL, 0L)) { goto errorExit; } // Resize the buffer. - needToFreeBufferUniChar = rkl_collectingEnabled() ? 0U : 1U; - CFStringGetCharacters(buffer.string, CFMakeRange(0L, buffer.length), (UniChar *)buffer.uniChar); // Convert to a UTF16 string. - } - - if(RKL_EXPECTED((cachedRegex.setToString = (CFStringRef)CFRetain((CFTypeRef)buffer.string)) == NULL, 0L)) { goto errorExit; } - cachedRegex.setToHash = buffer.hash; - cachedRegex.setToLength = buffer.length; - cachedRegex.setToUniChar = buffer.uniChar; - cachedRegex.buffer = &buffer; - - RKLCDelayedAssert((cachedRegex.icu_regex != NULL) && (cachedRegex.setToUniChar != NULL) && (cachedRegex.setToLength < INT_MAX) && (NSMaxRange(initRange) <= (NSUInteger)cachedRegex.setToLength) && (NSMaxRange(initRange) < INT_MAX), &exception, errorExit); - cachedRegex.lastFindRange = cachedRegex.lastMatchRange = NSNotFoundRange; - cachedRegex.setToRange = initRange; - RKL_ICU_FUNCTION_APPEND(uregex_setText)(cachedRegex.icu_regex, cachedRegex.setToUniChar + cachedRegex.setToRange.location, (int32_t)cachedRegex.setToRange.length, &status); - if(RKL_EXPECTED(status > U_ZERO_ERROR, 0L)) { goto errorExit; } - - rkl_dtrace_addLookupFlag(lookupResultFlags, RKLSetTextLookupFlag); - rkl_dtrace_utf16ConversionCacheWithEventID(thisDTraceEventID, lookupResultFlags, initString, cachedRegex.setToRange.location, cachedRegex.setToRange.length, cachedRegex.setToLength); - - return(self); - -errorExit: - if(RKL_EXPECTED(self != NULL, 1L)) { [self autorelease]; } - if(RKL_EXPECTED(status > U_ZERO_ERROR, 0L) && RKL_EXPECTED(exception == NULL, 0L)) { exception = rkl_NSExceptionForRegex(initRegexString, initOptions, NULL, status); } // If we had a problem, prepare an exception to be thrown. - if(RKL_EXPECTED(status < U_ZERO_ERROR, 0L) && (initError != NULL)) { *initError = rkl_makeNSError((RKLUserInfoOptions)RKLUserInfoNone, initRegexString, initOptions, NULL, status, initString, initRange, NULL, NULL, 0L, (RKLRegexEnumerationOptions)RKLRegexEnumerationNoOptions, @"The ICU library returned an unexpected error."); } - if(RKL_EXPECTED(exception != NULL, 0L)) { rkl_handleDelayedAssert(self, _cmd, exception); } - - return(NULL); -} - -#ifdef __OBJC_GC__ -- (void)finalize -{ - rkl_clearCachedRegex(&cachedRegex); - rkl_clearBuffer(&buffer, (needToFreeBufferUniChar != 0U) ? 1LU : 0LU); - NSUInteger tmpIdx = 0UL; // The rkl_free() below is "probably" a no-op when GC is on, but better to be safe than sorry... - for(tmpIdx = 0UL; tmpIdx < _RKL_SCRATCH_BUFFERS; tmpIdx++) { if(RKL_EXPECTED(scratchBuffer[tmpIdx] != NULL, 0L)) { scratchBuffer[tmpIdx] = rkl_free(&scratchBuffer[tmpIdx]); } } - [super finalize]; -} -#endif // __OBJC_GC__ - -- (void)dealloc -{ - rkl_clearCachedRegex(&cachedRegex); - rkl_clearBuffer(&buffer, (needToFreeBufferUniChar != 0U) ? 1LU : 0LU); - NSUInteger tmpIdx = 0UL; - for(tmpIdx = 0UL; tmpIdx < _RKL_SCRATCH_BUFFERS; tmpIdx++) { if(RKL_EXPECTED(scratchBuffer[tmpIdx] != NULL, 0L)) { scratchBuffer[tmpIdx] = rkl_free(&scratchBuffer[tmpIdx]); } } - [super dealloc]; -} - -@end - -// IMPORTANT! This code is critical path code. Because of this, it has been written for speed, not clarity. -// ---------- -// -// Return value: BOOL. Per "Error Handling Programming Guide" wrt/ NSError, return NO on error / failure, and set *error to an NSError object. -// -// rkl_performEnumerationUsingBlock reference counted / manual memory management notes: -// -// When running using reference counting, rkl_performEnumerationUsingBlock() creates a CFMutableArray called autoreleaseArray, which is -autoreleased. -// autoreleaseArray uses the rkl_transferOwnershipArrayCallBacks CFArray callbacks which do not perform a -retain/CFRetain() when objects are added, but do perform a -release/CFRelease() when an object is removed. -// -// A special class, RKLBlockEnumerationHelper, is used to manage the details of creating a private instantiation of the ICU regex (via uregex_clone()) and setting up the details of the UTF-16 buffer required by the ICU regex engine. -// The instantiated RKLBlockEnumerationHelper is not autoreleased, but added to autoreleaseArray. When rkl_performEnumerationUsingBlock() exits, it calls CFArrayRemoveAllValues(autoreleaseArray), which empties the array. -// This has the effect of immediately -releasing the instantiated RKLBlockEnumerationHelper object, and all the memory used to hold the ICU regex and UTF-16 conversion buffer. -// This means the memory is reclaimed immediately and we do not have to wait until the autorelease pool pops. -// -// If we are performing a "string replacement" operation, we create a temporary NSMutableString named mutableReplacementString to hold the replaced strings results. mutableReplacementString is also added to autoreleaseArray so that it -// can be properly released on an error. -// -// Temporary strings that are created during the enumeration of matches are added to autoreleaseArray. -// The strings are added by doing a CFArrayReplaceValues(), which simultaneously releases the previous iterations temporary strings while adding the current iterations temporary strings to the array. -// -// autoreleaseArray always has a reference to any "live" and in use objects. If anything "Goes Wrong", at any point, for any reason (ie, exception is thrown), autoreleaseArray is in the current NSAutoreleasePool -// and will automatically be released when that pool pops. This ensures that we don't leak anything even when things go seriously sideways. This also allows us to keep the total amount of memory in use -// down to a minimum, which can be substantial if the user is enumerating a large string, for example a regex of '\w+' on a 500K+ text file. -// -// The only 'caveat' is that the user needs to -retain any strings that they want to use past the point at which their ^block returns. Logically, it is as if the following takes place: -// -// for(eachMatchOfRegexInStringToSearch) { -// NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; -// callUsersBlock(capturedCount, capturedStrings, capturedStringRanges, stop); -// [pool release]; -// } -// -// But in reality, no NSAutoreleasePool is created, it's all slight of hand done via the CFMutableArray autoreleaseArray. -// -// rkl_performEnumerationUsingBlock garbage collected / automatic memory management notes: -// -// When RegexKitLite is built with -fobjc-gc or -fobjc-gc-only, and (in the case of -fobjc-gc) RegexKitLite determines that GC is active at execution time, then rkl_performEnumerationUsingBlock essentially -// skips all of the above reference counted autoreleaseArray stuff. -// -// rkl_performEnumerationUsingBlock and RKLRegexEnumerationReleaseStringReturnedByReplacementBlock notes -// -// Under reference counting, this enumeration option allows the user to return a non-autoreleased string, and then have RegexKitLite send the object a -release message once it's done with it. -// The primary reason to do this is to immediately reclaim the memory used by the string holding the replacement text. -// Just in case the user returns one of the strings we passed via capturedStrings[], we check to see if the string return by the block is any of the strings we created and passed via capturedStrings[]. -// If it is one of our strings, we do not send the string a -release since that would over release it. It is assumed that the user will /NOT/ add a -retain to our strings in this case. -// Under GC, RKLRegexEnumerationReleaseStringReturnedByReplacementBlock is ignored and no -release messages are sent. -// - -#pragma mark Primary internal function that Objective-C ^Blocks related methods call to perform regular expression operations - -static id rkl_performEnumerationUsingBlock(id self, SEL _cmd, - RKLRegexOp regexOp, NSString *regexString, RKLRegexOptions options, - id matchString, NSRange matchRange, - RKLBlockEnumerationOp blockEnumerationOp, RKLRegexEnumerationOptions enumerationOptions, - NSInteger *replacedCountPtr, NSUInteger *errorFreePtr, - NSError **error, - void (^stringsAndRangesBlock)(NSInteger capturedCount, NSString * const capturedStrings[capturedCount], const NSRange capturedStringRanges[capturedCount], volatile BOOL * const stop), - NSString *(^replaceStringsAndRangesBlock)(NSInteger capturedCount, NSString * const capturedStrings[capturedCount], const NSRange capturedStringRanges[capturedCount], volatile BOOL * const stop)) { - NSMutableArray * RKL_GC_VOLATILE autoreleaseArray = NULL; - RKLBlockEnumerationHelper * RKL_GC_VOLATILE blockEnumerationHelper = NULL; - NSMutableString * RKL_GC_VOLATILE mutableReplacementString = NULL; - RKL_STRONG_REF UniChar * RKL_GC_VOLATILE blockEnumerationHelperUniChar = NULL; - NSUInteger errorFree = NO; - id exception = NULL, returnObject = NULL; - CFRange autoreleaseReplaceRange = CFMakeRange(0L, 0L); - int32_t status = U_ZERO_ERROR; - RKLRegexOp maskedRegexOp = (regexOp & RKLMaskOp); - volatile BOOL shouldStop = NO; - NSInteger replacedCount = -1L; - NSRange lastMatchedRange = NSNotFoundRange; - NSUInteger stringU16Length = 0UL; - - BOOL performStringReplacement = (blockEnumerationOp == RKLBlockEnumerationReplaceOp) ? YES : NO; - - if((error != NULL) && (*error != NULL)) { *error = NULL; } - - if(RKL_EXPECTED(regexString == NULL, 0L)) { exception = (id)RKL_EXCEPTION(NSInvalidArgumentException, @"The regular expression argument is NULL."); goto exitNow; } - if(RKL_EXPECTED(matchString == NULL, 0L)) { exception = (id)RKL_EXCEPTION(NSInternalInconsistencyException, @"The match string argument is NULL."); goto exitNow; } - - if((((enumerationOptions & RKLRegexEnumerationCapturedStringsNotRequired) != 0UL) && ((enumerationOptions & RKLRegexEnumerationFastCapturedStringsXXX) != 0UL)) || - (((enumerationOptions & RKLRegexEnumerationReleaseStringReturnedByReplacementBlock) != 0UL) && (blockEnumerationOp != RKLBlockEnumerationReplaceOp)) || - ((enumerationOptions & (~((RKLRegexEnumerationOptions)(RKLRegexEnumerationCapturedStringsNotRequired | RKLRegexEnumerationReleaseStringReturnedByReplacementBlock | RKLRegexEnumerationFastCapturedStringsXXX)))) != 0UL)) { - exception = (id)RKL_EXCEPTION(NSInvalidArgumentException, @"The RKLRegexEnumerationOptions argument is not valid."); - goto exitNow; - } - - stringU16Length = (NSUInteger)CFStringGetLength((CFStringRef)matchString); - - if(RKL_EXPECTED(matchRange.length == NSUIntegerMax, 1L)) { matchRange.length = stringU16Length; } // For convenience. - if(RKL_EXPECTED(stringU16Length < NSMaxRange(matchRange), 0L)) { exception = (id)RKL_EXCEPTION(NSRangeException, @"Range or index out of bounds."); goto exitNow; } - if(RKL_EXPECTED(stringU16Length >= (NSUInteger)INT_MAX, 0L)) { exception = (id)RKL_EXCEPTION(NSRangeException, @"String length exceeds INT_MAX."); goto exitNow; } - - RKLCDelayedAssert((self != NULL) && (_cmd != NULL) && ((blockEnumerationOp == RKLBlockEnumerationMatchOp) ? (((regexOp == RKLCapturesArrayOp) || (regexOp == RKLSplitOp)) && (stringsAndRangesBlock != NULL) && (replaceStringsAndRangesBlock == NULL)) : 1) && ((blockEnumerationOp == RKLBlockEnumerationReplaceOp) ? ((regexOp == RKLCapturesArrayOp) && (stringsAndRangesBlock == NULL) && (replaceStringsAndRangesBlock != NULL)) : 1) , &exception, exitNow); - - if((rkl_collectingEnabled() == NO) && RKL_EXPECTED((autoreleaseArray = rkl_CFAutorelease(CFArrayCreateMutable(NULL, 0L, &rkl_transferOwnershipArrayCallBacks))) == NULL, 0L)) { goto exitNow; } // Warning about potential leak of Core Foundation object can be safely ignored. - if(RKL_EXPECTED((blockEnumerationHelper = [[RKLBlockEnumerationHelper alloc] initWithRegex:regexString options:options string:matchString range:matchRange error:error]) == NULL, 0L)) { goto exitNow; } // Warning about potential leak of blockEnumerationHelper can be safely ignored. - if(autoreleaseArray != NULL) { CFArrayAppendValue((CFMutableArrayRef)autoreleaseArray, blockEnumerationHelper); autoreleaseReplaceRange.location++; } // We do not autorelease blockEnumerationHelper, but instead add it to autoreleaseArray. - - if(performStringReplacement == YES) { - if(RKL_EXPECTED((mutableReplacementString = [[NSMutableString alloc] init]) == NULL, 0L)) { goto exitNow; } // Warning about potential leak of mutableReplacementString can be safely ignored. - if(autoreleaseArray != NULL) { CFArrayAppendValue((CFMutableArrayRef)autoreleaseArray, mutableReplacementString); autoreleaseReplaceRange.location++; } // We do not autorelease mutableReplacementString, but instead add it to autoreleaseArray. - } - - // RKLBlockEnumerationHelper creates an immutable copy of the string to match (matchString) which we reference via blockEnumerationHelperString. We use blockEnumerationHelperString when creating the captured strings from a match. - // This protects us against the user mutating matchString while we are in the middle of enumerating matches. - NSString * RKL_GC_VOLATILE blockEnumerationHelperString = (NSString *)blockEnumerationHelper->buffer.string, ** RKL_GC_VOLATILE capturedStrings = NULL, *emptyString = @""; - CFMutableStringRef * RKL_GC_VOLATILE fastCapturedStrings = NULL; - NSInteger captureCountBlockArgument = (blockEnumerationHelper->cachedRegex.captureCount + 1L); - size_t capturedStringsCapacity = ((size_t)captureCountBlockArgument + 4UL); - size_t capturedRangesCapacity = (((size_t)captureCountBlockArgument + 4UL) * 5UL); - NSRange *capturedRanges = NULL; - - lastMatchedRange = NSMakeRange(matchRange.location, 0UL); - blockEnumerationHelperUniChar = blockEnumerationHelper->buffer.uniChar; - - RKLCDelayedAssert((blockEnumerationHelperString != NULL) && (blockEnumerationHelperUniChar != NULL) && (captureCountBlockArgument > 0L) && (capturedStringsCapacity > 0UL) && (capturedRangesCapacity > 0UL), &exception, exitNow); - - if((capturedStrings = (NSString ** RKL_GC_VOLATILE)alloca(sizeof(NSString *) * capturedStringsCapacity)) == NULL) { goto exitNow; } // Space to hold the captured strings from a match. - if((capturedRanges = (NSRange *) alloca(sizeof(NSRange) * capturedRangesCapacity)) == NULL) { goto exitNow; } // Space to hold the NSRanges of the captured strings from a match. - -#ifdef NS_BLOCK_ASSERTIONS - { // Initialize the padded capturedStrings and capturedRanges to values that should tickle a fault if they are ever used. - size_t idx = 0UL; - for(idx = captureCountBlockArgument; idx < capturedStringsCapacity; idx++) { capturedStrings[idx] = (NSString *)RKLIllegalPointer; } - for(idx = captureCountBlockArgument; idx < capturedRangesCapacity; idx++) { capturedRanges[idx] = RKLIllegalRange; } - } -#else - { // Initialize all of the capturedStrings and capturedRanges to values that should tickle a fault if they are ever used. - size_t idx = 0UL; - for(idx = 0UL; idx < capturedStringsCapacity; idx++) { capturedStrings[idx] = (NSString *)RKLIllegalPointer; } - for(idx = 0UL; idx < capturedRangesCapacity; idx++) { capturedRanges[idx] = RKLIllegalRange; } - } -#endif - - if((enumerationOptions & RKLRegexEnumerationFastCapturedStringsXXX) != 0UL) { - RKLCDelayedAssert(((enumerationOptions & RKLRegexEnumerationCapturedStringsNotRequired) == 0UL), &exception, exitNow); - size_t idx = 0UL; - if((fastCapturedStrings = (CFMutableStringRef * RKL_GC_VOLATILE)alloca(sizeof(NSString *) * capturedStringsCapacity)) == NULL) { goto exitNow; } // Space to hold the "fast" captured strings from a match. - - for(idx = 0UL; idx < (size_t)captureCountBlockArgument; idx++) { - if((fastCapturedStrings[idx] = CFStringCreateMutableWithExternalCharactersNoCopy(NULL, NULL, 0L, 0L, kCFAllocatorNull)) == NULL) { goto exitNow; } - if(autoreleaseArray != NULL) { CFArrayAppendValue((CFMutableArrayRef)autoreleaseArray, fastCapturedStrings[idx]); autoreleaseReplaceRange.location++; } // We do not autorelease mutableReplacementString, but instead add it to autoreleaseArray. - capturedStrings[idx] = (NSString *)fastCapturedStrings[idx]; - } - } - - RKLFindAll findAll = rkl_makeFindAll(capturedRanges, matchRange, (NSInteger)capturedRangesCapacity, (capturedRangesCapacity * sizeof(NSRange)), 0UL, &blockEnumerationHelper->scratchBuffer[0], &blockEnumerationHelper->scratchBuffer[1], &blockEnumerationHelper->scratchBuffer[2], &blockEnumerationHelper->scratchBuffer[3], &blockEnumerationHelper->scratchBuffer[4], 0L, 0L, 1L); - - NSString ** RKL_GC_VOLATILE capturedStringsBlockArgument = NULL; // capturedStringsBlockArgument is what we pass to the 'capturedStrings[]' argument of the users ^block. Will pass NULL if the user doesn't want the captured strings created automatically. - if((enumerationOptions & RKLRegexEnumerationCapturedStringsNotRequired) == 0UL) { capturedStringsBlockArgument = capturedStrings; } // If the user wants the captured strings automatically created, set to capturedStrings. - - replacedCount = 0L; - while(RKL_EXPECTED(rkl_findRanges(&blockEnumerationHelper->cachedRegex, regexOp, &findAll, &exception, &status) == NO, 1L) && RKL_EXPECTED(findAll.found > 0L, 1L) && RKL_EXPECTED(exception == NULL, 1L) && RKL_EXPECTED(status == U_ZERO_ERROR, 1L)) { - if(performStringReplacement == YES) { - NSUInteger lastMatchedMaxLocation = (lastMatchedRange.location + lastMatchedRange.length); - NSRange previousUnmatchedRange = NSMakeRange(lastMatchedMaxLocation, findAll.ranges[0].location - lastMatchedMaxLocation); - RKLCDelayedAssert((NSMaxRange(previousUnmatchedRange) <= stringU16Length) && (NSRangeInsideRange(previousUnmatchedRange, matchRange) == YES), &exception, exitNow); - if(RKL_EXPECTED(previousUnmatchedRange.length > 0UL, 1L)) { CFStringAppendCharacters((CFMutableStringRef)mutableReplacementString, blockEnumerationHelperUniChar + previousUnmatchedRange.location, (CFIndex)previousUnmatchedRange.length); } - } - - findAll.found -= findAll.addedSplitRanges; - - NSInteger passCaptureCountBlockArgument = ((findAll.found == 0L) && (findAll.addedSplitRanges == 1L) && (maskedRegexOp == RKLSplitOp)) ? 1L : findAll.found, capturedStringsIdx = passCaptureCountBlockArgument; - RKLCDelayedHardAssert(passCaptureCountBlockArgument <= captureCountBlockArgument, &exception, exitNow); - if(capturedStringsBlockArgument != NULL) { // Only create the captured strings if the user has requested them. - BOOL hadError = NO; // Loop over all the strings rkl_findRanges found. If rkl_CreateStringWithSubstring() returns NULL due to an error, set returnBool to NO, and break out of the for() loop. - - for(capturedStringsIdx = 0L; capturedStringsIdx < passCaptureCountBlockArgument; capturedStringsIdx++) { - RKLCDelayedHardAssert(capturedStringsIdx < captureCountBlockArgument, &exception, exitNow); - if((enumerationOptions & RKLRegexEnumerationFastCapturedStringsXXX) != 0UL) { - // Analyzer report of "Dereference of null pointer" can be safely ignored for the next line. Bug filed: http://llvm.org/bugs/show_bug.cgi?id=6150 - CFStringSetExternalCharactersNoCopy(fastCapturedStrings[capturedStringsIdx], &blockEnumerationHelperUniChar[findAll.ranges[capturedStringsIdx].location], (CFIndex)findAll.ranges[capturedStringsIdx].length, (CFIndex)findAll.ranges[capturedStringsIdx].length); - } else { - if((capturedStrings[capturedStringsIdx] = (findAll.ranges[capturedStringsIdx].length == 0UL) ? emptyString : rkl_CreateStringWithSubstring(blockEnumerationHelperString, findAll.ranges[capturedStringsIdx])) == NULL) { hadError = YES; break; } - } - } - if(((enumerationOptions & RKLRegexEnumerationFastCapturedStringsXXX) == 0UL) && RKL_EXPECTED(autoreleaseArray != NULL, 1L)) { CFArrayReplaceValues((CFMutableArrayRef)autoreleaseArray, autoreleaseReplaceRange, (const void **)capturedStrings, capturedStringsIdx); autoreleaseReplaceRange.length = capturedStringsIdx; } // Add to autoreleaseArray all the strings the for() loop created. - if(RKL_EXPECTED(hadError == YES, 0L)) { goto exitNow; } // hadError == YES will be set if rkl_CreateStringWithSubstring() returned NULL. - } - // For safety, set any capturedRanges and capturedStrings up to captureCountBlockArgument + 1 to values that indicate that they are not valid. - // These values are chosen such that they should tickle any misuse by users. - // capturedStringsIdx is initialized to passCaptureCountBlockArgument, but if capturedStringsBlockArgument != NULL, it is reset to 0 by the loop that creates strings. - // If the loop that creates strings has an error, execution should transfer to exitNow and this will never get run. - // Again, this is for safety for users that do not check the passed block argument 'captureCount' and instead depend on something like [regex captureCount]. - for(; capturedStringsIdx < captureCountBlockArgument + 1L; capturedStringsIdx++) { RKLCDelayedAssert((capturedStringsIdx < (NSInteger)capturedStringsCapacity) && (capturedStringsIdx < (NSInteger)capturedRangesCapacity), &exception, exitNow); capturedRanges[capturedStringsIdx] = RKLIllegalRange; capturedStrings[capturedStringsIdx] = (NSString *)RKLIllegalPointer; } - - RKLCDelayedAssert((passCaptureCountBlockArgument > 0L) && (NSMaxRange(capturedRanges[0]) <= stringU16Length) && (capturedRanges[0].location < NSIntegerMax) && (capturedRanges[0].length < NSIntegerMax), &exception, exitNow); - - switch(blockEnumerationOp) { - case RKLBlockEnumerationMatchOp: stringsAndRangesBlock(passCaptureCountBlockArgument, capturedStringsBlockArgument, capturedRanges, &shouldStop); break; - - case RKLBlockEnumerationReplaceOp: { - NSString *blockReturnedReplacementString = replaceStringsAndRangesBlock(passCaptureCountBlockArgument, capturedStringsBlockArgument, capturedRanges, &shouldStop); - - if(RKL_EXPECTED(blockReturnedReplacementString != NULL, 1L)) { - CFStringAppend((CFMutableStringRef)mutableReplacementString, (CFStringRef)blockReturnedReplacementString); - BOOL shouldRelease = (((enumerationOptions & RKLRegexEnumerationReleaseStringReturnedByReplacementBlock) != 0UL) && (capturedStringsBlockArgument != NULL) && (rkl_collectingEnabled() == NO)) ? YES : NO; - if(shouldRelease == YES) { NSInteger idx = 0L; for(idx = 0L; idx < passCaptureCountBlockArgument; idx++) { if(capturedStrings[idx] == blockReturnedReplacementString) { shouldRelease = NO; break; } } } - if(shouldRelease == YES) { [blockReturnedReplacementString release]; } - } - } - break; - - default: exception = RKLCAssertDictionary(@"Unknown blockEnumerationOp code."); goto exitNow; break; - } - - replacedCount++; - findAll.addedSplitRanges = 0L; // rkl_findRanges() expects findAll.addedSplitRanges to be 0 on entry. - findAll.found = 0L; // rkl_findRanges() expects findAll.found to be 0 on entry. - findAll.findInRange = findAll.remainingRange; // Ask rkl_findRanges() to search the part of the string after the current match. - lastMatchedRange = findAll.ranges[0]; - - if(RKL_EXPECTED(shouldStop != NO, 0L)) { break; } - } - errorFree = YES; - -exitNow: - if(RKL_EXPECTED(errorFree == NO, 0L)) { replacedCount = -1L; } - if((blockEnumerationOp == RKLBlockEnumerationReplaceOp) && RKL_EXPECTED(errorFree == YES, 1L)) { - RKLCDelayedAssert(replacedCount >= 0L, &exception, exitNow2); - if(RKL_EXPECTED(replacedCount == 0UL, 0L)) { - RKLCDelayedAssert((blockEnumerationHelper != NULL) && (blockEnumerationHelper->buffer.string != NULL), &exception, exitNow2); - returnObject = rkl_CreateStringWithSubstring((id)blockEnumerationHelper->buffer.string, matchRange); - if(rkl_collectingEnabled() == NO) { returnObject = rkl_CFAutorelease(returnObject); } - } - else { - NSUInteger lastMatchedMaxLocation = (lastMatchedRange.location + lastMatchedRange.length); - NSRange previousUnmatchedRange = NSMakeRange(lastMatchedMaxLocation, NSMaxRange(matchRange) - lastMatchedMaxLocation); - RKLCDelayedAssert((NSMaxRange(previousUnmatchedRange) <= stringU16Length) && (NSRangeInsideRange(previousUnmatchedRange, matchRange) == YES), &exception, exitNow2); - - if(RKL_EXPECTED(previousUnmatchedRange.length > 0UL, 1L)) { CFStringAppendCharacters((CFMutableStringRef)mutableReplacementString, blockEnumerationHelperUniChar + previousUnmatchedRange.location, (CFIndex)previousUnmatchedRange.length); } - returnObject = rkl_CFAutorelease(CFStringCreateCopy(NULL, (CFStringRef)mutableReplacementString)); // Warning about potential leak of Core Foundation object can be safely ignored. - } - } - -#ifndef NS_BLOCK_ASSERTIONS -exitNow2: -#endif // NS_BLOCK_ASSERTIONS - if(RKL_EXPECTED(autoreleaseArray != NULL, 1L)) { CFArrayRemoveAllValues((CFMutableArrayRef)autoreleaseArray); } // Causes blockEnumerationHelper to be released immediately, freeing all of its resources (such as a large UTF-16 conversion buffer). - if(RKL_EXPECTED(exception != NULL, 0L)) { rkl_handleDelayedAssert(self, _cmd, exception); } // If there is an exception, throw it at this point. - if(((errorFree == NO) || ((errorFree == YES) && (returnObject == NULL))) && (error != NULL) && (*error == NULL)) { - RKLUserInfoOptions userInfoOptions = (RKLUserInfoSubjectRange | RKLUserInfoRegexEnumerationOptions); - NSString *replacedString = NULL; - if(blockEnumerationOp == RKLBlockEnumerationReplaceOp) { userInfoOptions |= RKLUserInfoReplacedCount; if(RKL_EXPECTED(errorFree == YES, 1L)) { replacedString = returnObject; } } - *error = rkl_makeNSError(userInfoOptions, regexString, options, NULL, status, (blockEnumerationHelper != NULL) ? (blockEnumerationHelper->buffer.string != NULL) ? (NSString *)blockEnumerationHelper->buffer.string : matchString : matchString, matchRange, NULL, replacedString, replacedCount, enumerationOptions, @"An unexpected error occurred."); - } - if(replacedCountPtr != NULL) { *replacedCountPtr = replacedCount; } - if(errorFreePtr != NULL) { *errorFreePtr = errorFree; } - return(returnObject); -} // The two warnings about potential leaks can be safely ignored. - -#endif // _RKL_BLOCKS_ENABLED - -//////////// -#pragma mark - -#pragma mark Objective-C Public Interface -#pragma mark - -//////////// - -@implementation NSString (RegexKitLiteAdditions) - -#pragma mark +clearStringCache - -+ (void)RKL_METHOD_PREPEND(clearStringCache) -{ - volatile NSUInteger RKL_CLEANUP(rkl_cleanup_cacheSpinLockStatus) rkl_cacheSpinLockStatus = 0UL; - OSSpinLockLock(&rkl_cacheSpinLock); - rkl_cacheSpinLockStatus |= RKLLockedCacheSpinLock; - rkl_clearStringCache(); - OSSpinLockUnlock(&rkl_cacheSpinLock); - rkl_cacheSpinLockStatus |= RKLUnlockedCacheSpinLock; // Warning about rkl_cacheSpinLockStatus never being read can be safely ignored. -} - -#pragma mark +captureCountForRegex: - -+ (NSInteger)RKL_METHOD_PREPEND(captureCountForRegex):(NSString *)regex -{ - NSInteger captureCount = -1L; - rkl_isRegexValid(self, _cmd, regex, RKLNoOptions, &captureCount, NULL); - return(captureCount); -} - -+ (NSInteger)RKL_METHOD_PREPEND(captureCountForRegex):(NSString *)regex options:(RKLRegexOptions)options error:(NSError **)error -{ - NSInteger captureCount = -1L; - rkl_isRegexValid(self, _cmd, regex, options, &captureCount, error); - return(captureCount); -} - -#pragma mark -captureCount: - -- (NSInteger)RKL_METHOD_PREPEND(captureCount) -{ - NSInteger captureCount = -1L; - rkl_isRegexValid(self, _cmd, self, RKLNoOptions, &captureCount, NULL); - return(captureCount); -} - -- (NSInteger)RKL_METHOD_PREPEND(captureCountWithOptions):(RKLRegexOptions)options error:(NSError **)error -{ - NSInteger captureCount = -1L; - rkl_isRegexValid(self, _cmd, self, options, &captureCount, error); - return(captureCount); -} - -#pragma mark -componentsSeparatedByRegex: - -- (NSArray *)RKL_METHOD_PREPEND(componentsSeparatedByRegex):(NSString *)regex -{ - NSRange range = NSMaxiumRange; - return(rkl_performRegexOp(self, _cmd, (RKLRegexOp)RKLSplitOp, regex, RKLNoOptions, 0L, self, &range, NULL, NULL, NULL, 0UL, NULL, NULL)); -} - -- (NSArray *)RKL_METHOD_PREPEND(componentsSeparatedByRegex):(NSString *)regex range:(NSRange)range -{ - return(rkl_performRegexOp(self, _cmd, (RKLRegexOp)RKLSplitOp, regex, RKLNoOptions, 0L, self, &range, NULL, NULL, NULL, 0UL, NULL, NULL)); -} - -- (NSArray *)RKL_METHOD_PREPEND(componentsSeparatedByRegex):(NSString *)regex options:(RKLRegexOptions)options range:(NSRange)range error:(NSError **)error -{ - return(rkl_performRegexOp(self, _cmd, (RKLRegexOp)RKLSplitOp, regex, options, 0L, self, &range, NULL, error, NULL, 0UL, NULL, NULL)); -} - -#pragma mark -isMatchedByRegex: - -- (BOOL)RKL_METHOD_PREPEND(isMatchedByRegex):(NSString *)regex -{ - NSRange result = NSNotFoundRange, range = NSMaxiumRange; - rkl_performRegexOp(self, _cmd, (RKLRegexOp)RKLRangeOp, regex, RKLNoOptions, 0L, self, &range, NULL, NULL, &result, 0UL, NULL, NULL); - return((result.location == (NSUInteger)NSNotFound) ? NO : YES); -} - -- (BOOL)RKL_METHOD_PREPEND(isMatchedByRegex):(NSString *)regex inRange:(NSRange)range -{ - NSRange result = NSNotFoundRange; - rkl_performRegexOp(self, _cmd, (RKLRegexOp)RKLRangeOp, regex, RKLNoOptions, 0L, self, &range, NULL, NULL, &result, 0UL, NULL, NULL); - return((result.location == (NSUInteger)NSNotFound) ? NO : YES); -} - -- (BOOL)RKL_METHOD_PREPEND(isMatchedByRegex):(NSString *)regex options:(RKLRegexOptions)options inRange:(NSRange)range error:(NSError **)error -{ - NSRange result = NSNotFoundRange; - rkl_performRegexOp(self, _cmd, (RKLRegexOp)RKLRangeOp, regex, options, 0L, self, &range, NULL, error, &result, 0UL, NULL, NULL); - return((result.location == (NSUInteger)NSNotFound) ? NO : YES); -} - -#pragma mark -isRegexValid - -- (BOOL)RKL_METHOD_PREPEND(isRegexValid) -{ - return(rkl_isRegexValid(self, _cmd, self, RKLNoOptions, NULL, NULL) == 1UL ? YES : NO); -} - -- (BOOL)RKL_METHOD_PREPEND(isRegexValidWithOptions):(RKLRegexOptions)options error:(NSError **)error -{ - return(rkl_isRegexValid(self, _cmd, self, options, NULL, error) == 1UL ? YES : NO); -} - -#pragma mark -flushCachedRegexData - -- (void)RKL_METHOD_PREPEND(flushCachedRegexData) -{ - volatile NSUInteger RKL_CLEANUP(rkl_cleanup_cacheSpinLockStatus) rkl_cacheSpinLockStatus = 0UL; - - CFIndex selfLength = CFStringGetLength((CFStringRef)self); - CFHashCode selfHash = CFHash((CFTypeRef)self); - - OSSpinLockLock(&rkl_cacheSpinLock); - rkl_cacheSpinLockStatus |= RKLLockedCacheSpinLock; - rkl_dtrace_incrementEventID(); - - NSUInteger idx; - for(idx = 0UL; idx < _RKL_REGEX_CACHE_LINES; idx++) { - RKLCachedRegex *cachedRegex = &rkl_cachedRegexes[idx]; - if((cachedRegex->setToString != NULL) && ( (cachedRegex->setToString == (CFStringRef)self) || ((cachedRegex->setToLength == selfLength) && (cachedRegex->setToHash == selfHash)) ) ) { rkl_clearCachedRegexSetTo(cachedRegex); } - } - for(idx = 0UL; idx < _RKL_LRU_CACHE_SET_WAYS; idx++) { RKLBuffer *buffer = &rkl_lruFixedBuffer[idx]; if((buffer->string != NULL) && ((buffer->string == (CFStringRef)self) || ((buffer->length == selfLength) && (buffer->hash == selfHash)))) { rkl_clearBuffer(buffer, 0UL); } } - for(idx = 0UL; idx < _RKL_LRU_CACHE_SET_WAYS; idx++) { RKLBuffer *buffer = &rkl_lruDynamicBuffer[idx]; if((buffer->string != NULL) && ((buffer->string == (CFStringRef)self) || ((buffer->length == selfLength) && (buffer->hash == selfHash)))) { rkl_clearBuffer(buffer, 0UL); } } - - OSSpinLockUnlock(&rkl_cacheSpinLock); - rkl_cacheSpinLockStatus |= RKLUnlockedCacheSpinLock; // Warning about rkl_cacheSpinLockStatus never being read can be safely ignored. -} - -#pragma mark -rangeOfRegex: - -- (NSRange)RKL_METHOD_PREPEND(rangeOfRegex):(NSString *)regex -{ - NSRange result = NSNotFoundRange, range = NSMaxiumRange; - rkl_performRegexOp(self, _cmd, (RKLRegexOp)RKLRangeOp, regex, RKLNoOptions, 0L, self, &range, NULL, NULL, &result, 0UL, NULL, NULL); - return(result); -} - -- (NSRange)RKL_METHOD_PREPEND(rangeOfRegex):(NSString *)regex capture:(NSInteger)capture -{ - NSRange result = NSNotFoundRange, range = NSMaxiumRange; - rkl_performRegexOp(self, _cmd, (RKLRegexOp)RKLRangeOp, regex, RKLNoOptions, capture, self, &range, NULL, NULL, &result, 0UL, NULL, NULL); - return(result); -} - -- (NSRange)RKL_METHOD_PREPEND(rangeOfRegex):(NSString *)regex inRange:(NSRange)range -{ - NSRange result = NSNotFoundRange; - rkl_performRegexOp(self, _cmd, (RKLRegexOp)RKLRangeOp, regex, RKLNoOptions, 0L, self, &range, NULL, NULL, &result, 0UL, NULL, NULL); - return(result); -} - -- (NSRange)RKL_METHOD_PREPEND(rangeOfRegex):(NSString *)regex options:(RKLRegexOptions)options inRange:(NSRange)range capture:(NSInteger)capture error:(NSError **)error -{ - NSRange result = NSNotFoundRange; - rkl_performRegexOp(self, _cmd, (RKLRegexOp)RKLRangeOp, regex, options, capture, self, &range, NULL, error, &result, 0UL, NULL, NULL); - return(result); -} - -#pragma mark -stringByMatching: - -- (NSString *)RKL_METHOD_PREPEND(stringByMatching):(NSString *)regex -{ - NSRange matchedRange = NSNotFoundRange, range = NSMaxiumRange; - rkl_performRegexOp(self, _cmd, (RKLRegexOp)RKLRangeOp, regex, RKLNoOptions, 0L, self, &range, NULL, NULL, &matchedRange, 0UL, NULL, NULL); - return((matchedRange.location == (NSUInteger)NSNotFound) ? NULL : rkl_CFAutorelease(CFStringCreateWithSubstring(NULL, (CFStringRef)self, CFMakeRange(matchedRange.location, matchedRange.length)))); // Warning about potential leak can be safely ignored. -} // Warning about potential leak can be safely ignored. - -- (NSString *)RKL_METHOD_PREPEND(stringByMatching):(NSString *)regex capture:(NSInteger)capture -{ - NSRange matchedRange = NSNotFoundRange, range = NSMaxiumRange; - rkl_performRegexOp(self, _cmd, (RKLRegexOp)RKLRangeOp, regex, RKLNoOptions, capture, self, &range, NULL, NULL, &matchedRange, 0UL, NULL, NULL); - return((matchedRange.location == (NSUInteger)NSNotFound) ? NULL : rkl_CFAutorelease(CFStringCreateWithSubstring(NULL, (CFStringRef)self, CFMakeRange(matchedRange.location, matchedRange.length)))); // Warning about potential leak can be safely ignored. -} // Warning about potential leak can be safely ignored. - -- (NSString *)RKL_METHOD_PREPEND(stringByMatching):(NSString *)regex inRange:(NSRange)range -{ - NSRange matchedRange = NSNotFoundRange; - rkl_performRegexOp(self, _cmd, (RKLRegexOp)RKLRangeOp, regex, RKLNoOptions, 0L, self, &range, NULL, NULL, &matchedRange, 0UL, NULL, NULL); - return((matchedRange.location == (NSUInteger)NSNotFound) ? NULL : rkl_CFAutorelease(CFStringCreateWithSubstring(NULL, (CFStringRef)self, CFMakeRange(matchedRange.location, matchedRange.length)))); // Warning about potential leak can be safely ignored. -} // Warning about potential leak can be safely ignored. - -- (NSString *)RKL_METHOD_PREPEND(stringByMatching):(NSString *)regex options:(RKLRegexOptions)options inRange:(NSRange)range capture:(NSInteger)capture error:(NSError **)error -{ - NSRange matchedRange = NSNotFoundRange; - rkl_performRegexOp(self, _cmd, (RKLRegexOp)RKLRangeOp, regex, options, capture, self, &range, NULL, error, &matchedRange, 0UL, NULL, NULL); - return((matchedRange.location == (NSUInteger)NSNotFound) ? NULL : rkl_CFAutorelease(CFStringCreateWithSubstring(NULL, (CFStringRef)self, CFMakeRange(matchedRange.location, matchedRange.length)))); // Warning about potential leak can be safely ignored. -} // Warning about potential leak can be safely ignored. - -#pragma mark -stringByReplacingOccurrencesOfRegex: - -- (NSString *)RKL_METHOD_PREPEND(stringByReplacingOccurrencesOfRegex):(NSString *)regex withString:(NSString *)replacement -{ - NSRange searchRange = NSMaxiumRange; - return(rkl_performRegexOp(self, _cmd, (RKLRegexOp)RKLReplaceOp, regex, RKLNoOptions, 0L, self, &searchRange, replacement, NULL, NULL, 0UL, NULL, NULL)); -} - -- (NSString *)RKL_METHOD_PREPEND(stringByReplacingOccurrencesOfRegex):(NSString *)regex withString:(NSString *)replacement range:(NSRange)searchRange -{ - return(rkl_performRegexOp(self, _cmd, (RKLRegexOp)RKLReplaceOp, regex, RKLNoOptions, 0L, self, &searchRange, replacement, NULL, NULL, 0UL, NULL, NULL)); -} - -- (NSString *)RKL_METHOD_PREPEND(stringByReplacingOccurrencesOfRegex):(NSString *)regex withString:(NSString *)replacement options:(RKLRegexOptions)options range:(NSRange)searchRange error:(NSError **)error -{ - return(rkl_performRegexOp(self, _cmd, (RKLRegexOp)RKLReplaceOp, regex, options, 0L, self, &searchRange, replacement, error, NULL, 0UL, NULL, NULL)); -} - -#pragma mark -componentsMatchedByRegex: - -- (NSArray *)RKL_METHOD_PREPEND(componentsMatchedByRegex):(NSString *)regex -{ - NSRange searchRange = NSMaxiumRange; - return(rkl_performRegexOp(self, _cmd, (RKLRegexOp)RKLArrayOfStringsOp, regex, RKLNoOptions, 0L, self, &searchRange, NULL, NULL, NULL, 0UL, NULL, NULL)); -} - -- (NSArray *)RKL_METHOD_PREPEND(componentsMatchedByRegex):(NSString *)regex capture:(NSInteger)capture -{ - NSRange searchRange = NSMaxiumRange; - return(rkl_performRegexOp(self, _cmd, (RKLRegexOp)RKLArrayOfStringsOp, regex, RKLNoOptions, capture, self, &searchRange, NULL, NULL, NULL, 0UL, NULL, NULL)); -} - -- (NSArray *)RKL_METHOD_PREPEND(componentsMatchedByRegex):(NSString *)regex range:(NSRange)range -{ - return(rkl_performRegexOp(self, _cmd, (RKLRegexOp)RKLArrayOfStringsOp, regex, RKLNoOptions, 0L, self, &range, NULL, NULL, NULL, 0UL, NULL, NULL)); -} - -- (NSArray *)RKL_METHOD_PREPEND(componentsMatchedByRegex):(NSString *)regex options:(RKLRegexOptions)options range:(NSRange)range capture:(NSInteger)capture error:(NSError **)error -{ - return(rkl_performRegexOp(self, _cmd, (RKLRegexOp)RKLArrayOfStringsOp, regex, options, capture, self, &range, NULL, error, NULL, 0UL, NULL, NULL)); -} - -#pragma mark -captureComponentsMatchedByRegex: - -- (NSArray *)RKL_METHOD_PREPEND(captureComponentsMatchedByRegex):(NSString *)regex -{ - NSRange searchRange = NSMaxiumRange; - return(rkl_performRegexOp(self, _cmd, (RKLRegexOp)RKLCapturesArrayOp, regex, RKLNoOptions, 0L, self, &searchRange, NULL, NULL, NULL, 0UL, NULL, NULL)); -} - -- (NSArray *)RKL_METHOD_PREPEND(captureComponentsMatchedByRegex):(NSString *)regex range:(NSRange)range -{ - return(rkl_performRegexOp(self, _cmd, (RKLRegexOp)RKLCapturesArrayOp, regex, RKLNoOptions, 0L, self, &range, NULL, NULL, NULL, 0UL, NULL, NULL)); -} - -- (NSArray *)RKL_METHOD_PREPEND(captureComponentsMatchedByRegex):(NSString *)regex options:(RKLRegexOptions)options range:(NSRange)range error:(NSError **)error -{ - return(rkl_performRegexOp(self, _cmd, (RKLRegexOp)RKLCapturesArrayOp, regex, options, 0L, self, &range, NULL, error, NULL, 0UL, NULL, NULL)); -} - -#pragma mark -arrayOfCaptureComponentsMatchedByRegex: - -- (NSArray *)RKL_METHOD_PREPEND(arrayOfCaptureComponentsMatchedByRegex):(NSString *)regex -{ - NSRange searchRange = NSMaxiumRange; - return(rkl_performRegexOp(self, _cmd, (RKLRegexOp)(RKLArrayOfCapturesOp | RKLSubcapturesArray), regex, RKLNoOptions, 0L, self, &searchRange, NULL, NULL, NULL, 0UL, NULL, NULL)); -} - -- (NSArray *)RKL_METHOD_PREPEND(arrayOfCaptureComponentsMatchedByRegex):(NSString *)regex range:(NSRange)range -{ - return(rkl_performRegexOp(self, _cmd, (RKLRegexOp)(RKLArrayOfCapturesOp | RKLSubcapturesArray), regex, RKLNoOptions, 0L, self, &range, NULL, NULL, NULL, 0UL, NULL, NULL)); -} - -- (NSArray *)RKL_METHOD_PREPEND(arrayOfCaptureComponentsMatchedByRegex):(NSString *)regex options:(RKLRegexOptions)options range:(NSRange)range error:(NSError **)error -{ - return(rkl_performRegexOp(self, _cmd, (RKLRegexOp)(RKLArrayOfCapturesOp | RKLSubcapturesArray), regex, options, 0L, self, &range, NULL, error, NULL, 0UL, NULL, NULL)); -} - -#pragma mark -dictionaryByMatchingRegex: - -- (NSDictionary *)RKL_METHOD_PREPEND(dictionaryByMatchingRegex):(NSString *)regex withKeysAndCaptures:(id)firstKey, ... -{ - NSRange searchRange = NSMaxiumRange; - id returnObject = NULL; - va_list varArgsList; - va_start(varArgsList, firstKey); - returnObject = rkl_performDictionaryVarArgsOp(self, _cmd, (RKLRegexOp)RKLDictionaryOfCapturesOp, regex, (RKLRegexOptions)RKLNoOptions, 0L, self, &searchRange, NULL, NULL, NULL, firstKey, varArgsList); - va_end(varArgsList); - return(returnObject); -} - -- (NSDictionary *)RKL_METHOD_PREPEND(dictionaryByMatchingRegex):(NSString *)regex range:(NSRange)range withKeysAndCaptures:(id)firstKey, ... -{ - id returnObject = NULL; - va_list varArgsList; - va_start(varArgsList, firstKey); - returnObject = rkl_performDictionaryVarArgsOp(self, _cmd, (RKLRegexOp)RKLDictionaryOfCapturesOp, regex, (RKLRegexOptions)RKLNoOptions, 0L, self, &range, NULL, NULL, NULL, firstKey, varArgsList); - va_end(varArgsList); - return(returnObject); -} - -- (NSDictionary *)RKL_METHOD_PREPEND(dictionaryByMatchingRegex):(NSString *)regex options:(RKLRegexOptions)options range:(NSRange)range error:(NSError **)error withKeysAndCaptures:(id)firstKey, ... -{ - id returnObject = NULL; - va_list varArgsList; - va_start(varArgsList, firstKey); - returnObject = rkl_performDictionaryVarArgsOp(self, _cmd, (RKLRegexOp)RKLDictionaryOfCapturesOp, regex, options, 0L, self, &range, NULL, error, NULL, firstKey, varArgsList); - va_end(varArgsList); - return(returnObject); -} - -- (NSDictionary *)RKL_METHOD_PREPEND(dictionaryByMatchingRegex):(NSString *)regex options:(RKLRegexOptions)options range:(NSRange)range error:(NSError **)error withFirstKey:(id)firstKey arguments:(va_list)varArgsList -{ - return(rkl_performDictionaryVarArgsOp(self, _cmd, (RKLRegexOp)RKLDictionaryOfCapturesOp, regex, options, 0L, self, &range, NULL, error, NULL, firstKey, varArgsList)); -} - -- (NSDictionary *)RKL_METHOD_PREPEND(dictionaryByMatchingRegex):(NSString *)regex options:(RKLRegexOptions)options range:(NSRange)range error:(NSError **)error withKeys:(id *)keys forCaptures:(int *)captures count:(NSUInteger)count -{ - return(rkl_performRegexOp(self, _cmd, (RKLRegexOp)RKLDictionaryOfCapturesOp, regex, options, 0L, self, &range, NULL, error, NULL, count, keys, captures)); -} - -#pragma mark -arrayOfDictionariesByMatchingRegex: - -- (NSArray *)RKL_METHOD_PREPEND(arrayOfDictionariesByMatchingRegex):(NSString *)regex withKeysAndCaptures:(id)firstKey, ... -{ - NSRange searchRange = NSMaxiumRange; - id returnObject = NULL; - va_list varArgsList; - va_start(varArgsList, firstKey); - returnObject = rkl_performDictionaryVarArgsOp(self, _cmd, (RKLRegexOp)RKLArrayOfDictionariesOfCapturesOp, regex, (RKLRegexOptions)RKLNoOptions, 0L, self, &searchRange, NULL, NULL, NULL, firstKey, varArgsList); - va_end(varArgsList); - return(returnObject); -} - -- (NSArray *)RKL_METHOD_PREPEND(arrayOfDictionariesByMatchingRegex):(NSString *)regex range:(NSRange)range withKeysAndCaptures:(id)firstKey, ... -{ - id returnObject = NULL; - va_list varArgsList; - va_start(varArgsList, firstKey); - returnObject = rkl_performDictionaryVarArgsOp(self, _cmd, (RKLRegexOp)RKLArrayOfDictionariesOfCapturesOp, regex, (RKLRegexOptions)RKLNoOptions, 0L, self, &range, NULL, NULL, NULL, firstKey, varArgsList); - va_end(varArgsList); - return(returnObject); -} - -- (NSArray *)RKL_METHOD_PREPEND(arrayOfDictionariesByMatchingRegex):(NSString *)regex options:(RKLRegexOptions)options range:(NSRange)range error:(NSError **)error withKeysAndCaptures:(id)firstKey, ... -{ - id returnObject = NULL; - va_list varArgsList; - va_start(varArgsList, firstKey); - returnObject = rkl_performDictionaryVarArgsOp(self, _cmd, (RKLRegexOp)RKLArrayOfDictionariesOfCapturesOp, regex, options, 0L, self, &range, NULL, error, NULL, firstKey, varArgsList); - va_end(varArgsList); - return(returnObject); -} - -- (NSArray *)RKL_METHOD_PREPEND(arrayOfDictionariesByMatchingRegex):(NSString *)regex options:(RKLRegexOptions)options range:(NSRange)range error:(NSError **)error withFirstKey:(id)firstKey arguments:(va_list)varArgsList -{ - return(rkl_performDictionaryVarArgsOp(self, _cmd, (RKLRegexOp)RKLArrayOfDictionariesOfCapturesOp, regex, options, 0L, self, &range, NULL, error, NULL, firstKey, varArgsList)); -} - -- (NSArray *)RKL_METHOD_PREPEND(arrayOfDictionariesByMatchingRegex):(NSString *)regex options:(RKLRegexOptions)options range:(NSRange)range error:(NSError **)error withKeys:(id *)keys forCaptures:(int *)captures count:(NSUInteger)count -{ - return(rkl_performRegexOp(self, _cmd, (RKLRegexOp)RKLArrayOfDictionariesOfCapturesOp, regex, options, 0L, self, &range, NULL, error, NULL, count, keys, captures)); -} - -#ifdef _RKL_BLOCKS_ENABLED - -//////////// -#pragma mark - -#pragma mark ^Blocks Related NSString Methods - -#pragma mark -enumerateStringsMatchedByRegex:usingBlock: - -- (BOOL)RKL_METHOD_PREPEND(enumerateStringsMatchedByRegex):(NSString *)regex usingBlock:(void (^)(NSInteger captureCount, NSString * const capturedStrings[captureCount], const NSRange capturedRanges[captureCount], volatile BOOL * const stop))block -{ - NSUInteger errorFree = NO; - rkl_performEnumerationUsingBlock(self, _cmd, (RKLRegexOp)RKLCapturesArrayOp, regex, (RKLRegexOptions)RKLNoOptions, self, NSMaxiumRange, (RKLBlockEnumerationOp)RKLBlockEnumerationMatchOp, 0UL, NULL, &errorFree, NULL, block, NULL); - return(errorFree == NO ? NO : YES); -} - -- (BOOL)RKL_METHOD_PREPEND(enumerateStringsMatchedByRegex):(NSString *)regex options:(RKLRegexOptions)options inRange:(NSRange)range error:(NSError **)error enumerationOptions:(RKLRegexEnumerationOptions)enumerationOptions usingBlock:(void (^)(NSInteger captureCount, NSString * const capturedStrings[captureCount], const NSRange capturedRanges[captureCount], volatile BOOL * const stop))block -{ - NSUInteger errorFree = NO; - rkl_performEnumerationUsingBlock(self, _cmd, (RKLRegexOp)RKLCapturesArrayOp, regex, options, self, range, (RKLBlockEnumerationOp)RKLBlockEnumerationMatchOp, enumerationOptions, NULL, &errorFree, error, block, NULL); - return(errorFree == NO ? NO : YES); -} - -#pragma mark -enumerateStringsSeparatedByRegex:usingBlock: - -- (BOOL)RKL_METHOD_PREPEND(enumerateStringsSeparatedByRegex):(NSString *)regex usingBlock:(void (^)(NSInteger captureCount, NSString * const capturedStrings[captureCount], const NSRange capturedRanges[captureCount], volatile BOOL * const stop))block -{ - NSUInteger errorFree = NO; - rkl_performEnumerationUsingBlock(self, _cmd, (RKLRegexOp)RKLSplitOp, regex, (RKLRegexOptions)RKLNoOptions, self, NSMaxiumRange, (RKLBlockEnumerationOp)RKLBlockEnumerationMatchOp, 0UL, NULL, &errorFree, NULL, block, NULL); - return(errorFree == NO ? NO : YES); -} - -- (BOOL)RKL_METHOD_PREPEND(enumerateStringsSeparatedByRegex):(NSString *)regex options:(RKLRegexOptions)options inRange:(NSRange)range error:(NSError **)error enumerationOptions:(RKLRegexEnumerationOptions)enumerationOptions usingBlock:(void (^)(NSInteger captureCount, NSString * const capturedStrings[captureCount], const NSRange capturedRanges[captureCount], volatile BOOL * const stop))block -{ - NSUInteger errorFree = NO; - rkl_performEnumerationUsingBlock(self, _cmd, (RKLRegexOp)RKLSplitOp, regex, options, self, range, (RKLBlockEnumerationOp)RKLBlockEnumerationMatchOp, enumerationOptions, NULL, &errorFree, error, block, NULL); - return(errorFree == NO ? NO : YES); -} - -#pragma mark -stringByReplacingOccurrencesOfRegex:usingBlock: - -- (NSString *)RKL_METHOD_PREPEND(stringByReplacingOccurrencesOfRegex):(NSString *)regex usingBlock:(NSString *(^)(NSInteger captureCount, NSString * const capturedStrings[captureCount], const NSRange capturedRanges[captureCount], volatile BOOL * const stop))block -{ - return(rkl_performEnumerationUsingBlock(self, _cmd, (RKLRegexOp)RKLCapturesArrayOp, regex, (RKLRegexOptions)RKLNoOptions, self, NSMaxiumRange, (RKLBlockEnumerationOp)RKLBlockEnumerationReplaceOp, 0UL, NULL, NULL, NULL, NULL, block)); -} - -- (NSString *)RKL_METHOD_PREPEND(stringByReplacingOccurrencesOfRegex):(NSString *)regex options:(RKLRegexOptions)options inRange:(NSRange)range error:(NSError **)error enumerationOptions:(RKLRegexEnumerationOptions)enumerationOptions usingBlock:(NSString *(^)(NSInteger captureCount, NSString * const capturedStrings[captureCount], const NSRange capturedRanges[captureCount], volatile BOOL * const stop))block -{ - return(rkl_performEnumerationUsingBlock(self, _cmd, (RKLRegexOp)RKLCapturesArrayOp, regex, options, self, range, (RKLBlockEnumerationOp)RKLBlockEnumerationReplaceOp, enumerationOptions, NULL, NULL, error, NULL, block)); -} - -#endif // _RKL_BLOCKS_ENABLED - -@end - -//////////// -#pragma mark - -@implementation NSMutableString (RegexKitLiteAdditions) - -#pragma mark -replaceOccurrencesOfRegex: - -- (NSInteger)RKL_METHOD_PREPEND(replaceOccurrencesOfRegex):(NSString *)regex withString:(NSString *)replacement -{ - NSRange searchRange = NSMaxiumRange; - NSInteger replacedCount = -1L; - rkl_performRegexOp(self, _cmd, (RKLRegexOp)(RKLReplaceOp | RKLReplaceMutable), regex, RKLNoOptions, 0L, self, &searchRange, replacement, NULL, (void **)((void *)&replacedCount), 0UL, NULL, NULL); - return(replacedCount); -} - -- (NSInteger)RKL_METHOD_PREPEND(replaceOccurrencesOfRegex):(NSString *)regex withString:(NSString *)replacement range:(NSRange)searchRange -{ - NSInteger replacedCount = -1L; - rkl_performRegexOp(self, _cmd, (RKLRegexOp)(RKLReplaceOp | RKLReplaceMutable), regex, RKLNoOptions, 0L, self, &searchRange, replacement, NULL, (void **)((void *)&replacedCount), 0UL, NULL, NULL); - return(replacedCount); -} - -- (NSInteger)RKL_METHOD_PREPEND(replaceOccurrencesOfRegex):(NSString *)regex withString:(NSString *)replacement options:(RKLRegexOptions)options range:(NSRange)searchRange error:(NSError **)error -{ - NSInteger replacedCount = -1L; - rkl_performRegexOp(self, _cmd, (RKLRegexOp)(RKLReplaceOp | RKLReplaceMutable), regex, options, 0L, self, &searchRange, replacement, error, (void **)((void *)&replacedCount), 0UL, NULL, NULL); - return(replacedCount); -} - -#ifdef _RKL_BLOCKS_ENABLED - -//////////// -#pragma mark - -#pragma mark ^Blocks Related NSMutableString Methods - -#pragma mark -replaceOccurrencesOfRegex:usingBlock: - -- (NSInteger)RKL_METHOD_PREPEND(replaceOccurrencesOfRegex):(NSString *)regex usingBlock:(NSString *(^)(NSInteger captureCount, NSString * const capturedStrings[captureCount], const NSRange capturedRanges[captureCount], volatile BOOL * const stop))block -{ - NSUInteger errorFree = 0UL; - NSInteger replacedCount = -1L; - NSString *replacedString = rkl_performEnumerationUsingBlock(self, _cmd, (RKLRegexOp)RKLCapturesArrayOp, regex, RKLNoOptions, self, NSMaxiumRange, (RKLBlockEnumerationOp)RKLBlockEnumerationReplaceOp, 0UL, &replacedCount, &errorFree, NULL, NULL, block); - if((errorFree == YES) && (replacedCount > 0L)) { [self replaceCharactersInRange:NSMakeRange(0UL, [self length]) withString:replacedString]; } - return(replacedCount); -} - -- (NSInteger)RKL_METHOD_PREPEND(replaceOccurrencesOfRegex):(NSString *)regex options:(RKLRegexOptions)options inRange:(NSRange)range error:(NSError **)error enumerationOptions:(RKLRegexEnumerationOptions)enumerationOptions usingBlock:(NSString *(^)(NSInteger captureCount, NSString * const capturedStrings[captureCount], const NSRange capturedRanges[captureCount], volatile BOOL * const stop))block -{ - NSUInteger errorFree = 0UL; - NSInteger replacedCount = -1L; - NSString *replacedString = rkl_performEnumerationUsingBlock(self, _cmd, (RKLRegexOp)RKLCapturesArrayOp, regex, options, self, range, (RKLBlockEnumerationOp)RKLBlockEnumerationReplaceOp, enumerationOptions, &replacedCount, &errorFree, error, NULL, block); - if((errorFree == YES) && (replacedCount > 0L)) { [self replaceCharactersInRange:range withString:replacedString]; } - return(replacedCount); -} - -#endif // _RKL_BLOCKS_ENABLED - -@end diff --git a/SyntaxColorings/defaultSyntaxStyle_Apache.plist b/SyntaxColorings/defaultSyntaxStyle_Apache.plist new file mode 100644 index 0000000000..9118110b06 --- /dev/null +++ b/SyntaxColorings/defaultSyntaxStyle_Apache.plist @@ -0,0 +1,8046 @@ + + + + + charactersArray + + commandsArray + + + beginString + ^\s*AcceptFilter\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AcceptMutex\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AcceptPathInfo\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AccessConfig\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AccessFileName\s + ignoreCase + + regularExpression + + + + beginString + ^\s*Action\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AddAlt\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AddAltByEncoding\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AddAltByType\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AddCharset\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AddClientEncoding\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AddDefaultCharset\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AddDescription\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AddEncoding\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AddHandler\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AddIcon\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AddIconByEncoding\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AddIconByType\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AddInputFilter\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AddLanguage\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AddModule\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AddModuleInfo\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AddOutputFilter\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AddOutputFilterByType\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AddType\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AgentLog\s + ignoreCase + + regularExpression + + + + beginString + ^\s*Alias\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AliasMatch\s + ignoreCase + + regularExpression + + + + beginString + ^\s*Allow\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AllowCONNECT\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AllowEncodedSlashes\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AllowMethods\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AllowOverride\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AllowOverrideList\s + ignoreCase + + regularExpression + + + + beginString + ^\s*Anonymous\s + ignoreCase + + regularExpression + + + + beginString + ^\s*Anonymous_Authoritative\s + ignoreCase + + regularExpression + + + + beginString + ^\s*Anonymous_LogEmail\s + ignoreCase + + regularExpression + + + + beginString + ^\s*Anonymous_MustGiveEmail\s + ignoreCase + + regularExpression + + + + beginString + ^\s*Anonymous_NoUserID\s + ignoreCase + + regularExpression + + + + beginString + ^\s*Anonymous_VerifyEmail\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AssignUserID\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AsyncRequestWorkerFactor\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AuthAuthoritative\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AuthBasicAuthoritative\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AuthBasicProvider\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AuthDBDUserPWQuery\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AuthDBDUserRealmQuery\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AuthDBMAuthoritative\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AuthDBMGroupFile\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AuthDBMType\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AuthDBMUserFile\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AuthDigestAlgorithm\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AuthDigestDomain\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AuthDigestFile\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AuthDigestGroupFile\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AuthDigestNcCheck\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AuthDigestNonceFormat\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AuthDigestNonceLifetime\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AuthDigestProvider\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AuthDigestQop\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AuthDigestShmemSize\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AuthFormAuthoritative\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AuthFormDisableNoStore\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AuthFormFakeBasicAuth\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AuthFormLocation\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AuthFormLoginRequiredLocation\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AuthFormLoginSuccessLocation\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AuthFormLogoutLocation\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AuthFormMethod\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AuthFormMimetype\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AuthFormPassword\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AuthFormProvider\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AuthFormSitePassphrase\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AuthFormSize\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AuthFormUsername\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AuthGroupFile\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AuthLDAPAuthoritative\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AuthLDAPAuthorizePrefix\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AuthLDAPBindDN\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AuthLDAPBindPassword\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AuthLDAPCharsetConfig\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AuthLDAPCompareAsUser\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AuthLDAPCompareDNOnServer\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AuthLDAPDereferenceAliases\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AuthLDAPEnabled\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AuthLDAPFrontPageHack\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AuthLDAPGroupAttribute\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AuthLDAPGroupAttributeIsDN\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AuthLDAPInitialBindAsUser\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AuthLDAPInitialBindPattern\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AuthLDAPMaxSubGroupDepth\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AuthLDAPRemoteUserAttribute\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AuthLDAPRemoteUserIsDN\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AuthLDAPSearchAsUser\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AuthLDAPSubGroupAttribute\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AuthLDAPSubGroupClass\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AuthLDAPUrl\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AuthMerging\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AuthName\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AuthnCacheContext\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AuthnCacheEnable\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AuthnCacheProvideFor\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AuthnCacheSOCache\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AuthnCacheTimeout\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AuthType\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AuthUserFile\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AuthzDBDLoginToReferer\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AuthzDBDQuery\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AuthzDBDRedirectQuery\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AuthzDBMAuthoritative\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AuthzDBMType\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AuthzDefaultAuthoritative\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AuthzGroupFileAuthoritative\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AuthzLDAPAuthoritative\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AuthzOwnerAuthoritative\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AuthzSendForbiddenOnFailure\s + ignoreCase + + regularExpression + + + + beginString + ^\s*AuthzUserAuthoritative\s + ignoreCase + + regularExpression + + + + beginString + ^\s*BalancerGrowth\s + ignoreCase + + regularExpression + + + + beginString + ^\s*BalancerMember\s + ignoreCase + + regularExpression + + + + beginString + ^\s*BindAddress\s + ignoreCase + + regularExpression + + + + beginString + ^\s*BrowserMatch\s + ignoreCase + + regularExpression + + + + beginString + ^\s*BrowserMatchNoCase\s + ignoreCase + + regularExpression + + + + beginString + ^\s*BS2000Account\s + ignoreCase + + regularExpression + + + + beginString + ^\s*BufferedLogs\s + ignoreCase + + regularExpression + + + + beginString + ^\s*BufferSize\s + ignoreCase + + regularExpression + + + + beginString + ^\s*CacheDefaultExpire\s + ignoreCase + + regularExpression + + + + beginString + ^\s*CacheDirLength\s + ignoreCase + + regularExpression + + + + beginString + ^\s*CacheDirLevels\s + ignoreCase + + regularExpression + + + + beginString + ^\s*CacheDisable\s + ignoreCase + + regularExpression + + + + beginString + ^\s*CacheEnable\s + ignoreCase + + regularExpression + + + + beginString + ^\s*CacheExpiryCheck\s + ignoreCase + + regularExpression + + + + beginString + ^\s*CacheFile\s + ignoreCase + + regularExpression + + + + beginString + ^\s*CacheForceCompletion\s + ignoreCase + + regularExpression + + + + beginString + ^\s*CacheGcClean\s + ignoreCase + + regularExpression + + + + beginString + ^\s*CacheGcDaily\s + ignoreCase + + regularExpression + + + + beginString + ^\s*CacheGcInterval\s + ignoreCase + + regularExpression + + + + beginString + ^\s*CacheGcMemUsage\s + ignoreCase + + regularExpression + + + + beginString + ^\s*CacheGcUnused\s + ignoreCase + + regularExpression + + + + beginString + ^\s*CacheHeader\s + ignoreCase + + regularExpression + + + + beginString + ^\s*CacheIgnoreCacheControl\s + ignoreCase + + regularExpression + + + + beginString + ^\s*CacheIgnoreHeaders\s + ignoreCase + + regularExpression + + + + beginString + ^\s*CacheIgnoreNoLastMod\s + ignoreCase + + regularExpression + + + + beginString + ^\s*CacheIgnoreQueryString\s + ignoreCase + + regularExpression + + + + beginString + ^\s*CacheIgnoreURLSessionIdentifiers\s + ignoreCase + + regularExpression + + + + beginString + ^\s*CacheKeyBaseURL\s + ignoreCase + + regularExpression + + + + beginString + ^\s*CacheLastModifiedFactor\s + ignoreCase + + regularExpression + + + + beginString + ^\s*CacheLock\s + ignoreCase + + regularExpression + + + + beginString + ^\s*CacheLockMaxAge\s + ignoreCase + + regularExpression + + + + beginString + ^\s*CacheLockPath\s + ignoreCase + + regularExpression + + + + beginString + ^\s*CacheMaxExpire\s + ignoreCase + + regularExpression + + + + beginString + ^\s*CacheMaxFileSize\s + ignoreCase + + regularExpression + + + + beginString + ^\s*CacheMinExpire\s + ignoreCase + + regularExpression + + + + beginString + ^\s*CacheMinFileSize\s + ignoreCase + + regularExpression + + + + beginString + ^\s*CacheNegotiatedDocs\s + ignoreCase + + regularExpression + + + + beginString + ^\s*CacheQuickHandler\s + ignoreCase + + regularExpression + + + + beginString + ^\s*CacheReadSize\s + ignoreCase + + regularExpression + + + + beginString + ^\s*CacheReadTime\s + ignoreCase + + regularExpression + + + + beginString + ^\s*CacheRoot\s + ignoreCase + + regularExpression + + + + beginString + ^\s*CacheSize\s + ignoreCase + + regularExpression + + + + beginString + ^\s*CacheStaleOnError\s + ignoreCase + + regularExpression + + + + beginString + ^\s*CacheStoreExpired\s + ignoreCase + + regularExpression + + + + beginString + ^\s*CacheStoreNoStore\s + ignoreCase + + regularExpression + + + + beginString + ^\s*CacheStorePrivate\s + ignoreCase + + regularExpression + + + + beginString + ^\s*CacheTimeMargin\s + ignoreCase + + regularExpression + + + + beginString + ^\s*CGICommandArgs\s + ignoreCase + + regularExpression + + + + beginString + ^\s*CGIMapExtension\s + ignoreCase + + regularExpression + + + + beginString + ^\s*CharsetDefault\s + ignoreCase + + regularExpression + + + + beginString + ^\s*CharsetOptions\s + ignoreCase + + regularExpression + + + + beginString + ^\s*CharsetSourceEnc\s + ignoreCase + + regularExpression + + + + beginString + ^\s*CheckCaseOnly\s + ignoreCase + + regularExpression + + + + beginString + ^\s*CheckSpelling\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ChildPerUserID\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ChrootDir\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ClearModuleList\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ContentDigest\s + ignoreCase + + regularExpression + + + + beginString + ^\s*CookieDomain\s + ignoreCase + + regularExpression + + + + beginString + ^\s*CookieExpires\s + ignoreCase + + regularExpression + + + + beginString + ^\s*CookieFormat\s + ignoreCase + + regularExpression + + + + beginString + ^\s*CookieLog\s + ignoreCase + + regularExpression + + + + beginString + ^\s*CookieName\s + ignoreCase + + regularExpression + + + + beginString + ^\s*CookiePrefix\s + ignoreCase + + regularExpression + + + + beginString + ^\s*CookieStyle\s + ignoreCase + + regularExpression + + + + beginString + ^\s*CookieTracking\s + ignoreCase + + regularExpression + + + + beginString + ^\s*CoreDumpDirectory\s + ignoreCase + + regularExpression + + + + beginString + ^\s*CustomLog\s + ignoreCase + + regularExpression + + + + beginString + ^\s*Dav\s + ignoreCase + + regularExpression + + + + beginString + ^\s*DavDepthInfinity\s + ignoreCase + + regularExpression + + + + beginString + ^\s*DavGenericLockDB\s + ignoreCase + + regularExpression + + + + beginString + ^\s*DavLockDB\s + ignoreCase + + regularExpression + + + + beginString + ^\s*DavMinTimeout\s + ignoreCase + + regularExpression + + + + beginString + ^\s*DBDExptime\s + ignoreCase + + regularExpression + + + + beginString + ^\s*DBDInitSQL\s + ignoreCase + + regularExpression + + + + beginString + ^\s*DBDKeep\s + ignoreCase + + regularExpression + + + + beginString + ^\s*DBDMax\s + ignoreCase + + regularExpression + + + + beginString + ^\s*DBDMin\s + ignoreCase + + regularExpression + + + + beginString + ^\s*DBDParams\s + ignoreCase + + regularExpression + + + + beginString + ^\s*DBDPersist\s + ignoreCase + + regularExpression + + + + beginString + ^\s*DBDPrepareSQL\s + ignoreCase + + regularExpression + + + + beginString + ^\s*DBDriver\s + ignoreCase + + regularExpression + + + + beginString + ^\s*DefaultClientEncoding\s + ignoreCase + + regularExpression + + + + beginString + ^\s*DefaultIcon\s + ignoreCase + + regularExpression + + + + beginString + ^\s*DefaultLanguage\s + ignoreCase + + regularExpression + + + + beginString + ^\s*DefaultRuntimeDir\s + ignoreCase + + regularExpression + + + + beginString + ^\s*DefaultType\s + ignoreCase + + regularExpression + + + + beginString + ^\s*Define\s + ignoreCase + + regularExpression + + + + beginString + ^\s*DeflateBufferSize\s + ignoreCase + + regularExpression + + + + beginString + ^\s*DeflateCompressionLevel\s + ignoreCase + + regularExpression + + + + beginString + ^\s*DeflateFilterNote\s + ignoreCase + + regularExpression + + + + beginString + ^\s*DeflateMemLevel\s + ignoreCase + + regularExpression + + + + beginString + ^\s*DeflateWindowSize\s + ignoreCase + + regularExpression + + + + beginString + ^\s*Deny\s + ignoreCase + + regularExpression + + + + beginString + ^\s*DirectoryIndex\s + ignoreCase + + regularExpression + + + + beginString + ^\s*DirectoryIndexRedirect\s + ignoreCase + + regularExpression + + + + beginString + ^\s*DirectorySlash\s + ignoreCase + + regularExpression + + + + beginString + ^\s*DocumentRoot\s + ignoreCase + + regularExpression + + + + beginString + ^\s*DTracePrivileges\s + ignoreCase + + regularExpression + + + + beginString + ^\s*DumpIOInput\s + ignoreCase + + regularExpression + + + + beginString + ^\s*DumpIOLogLevel\s + ignoreCase + + regularExpression + + + + beginString + ^\s*DumpIOOutput\s + ignoreCase + + regularExpression + + + + beginString + ^\s*EBCDICConvert\s + ignoreCase + + regularExpression + + + + beginString + ^\s*EBCDICConvertByType\s + ignoreCase + + regularExpression + + + + beginString + ^\s*EBCDICKludge\s + ignoreCase + + regularExpression + + + + beginString + ^\s*EnableExceptionHook\s + ignoreCase + + regularExpression + + + + beginString + ^\s*EnableMMAP\s + ignoreCase + + regularExpression + + + + beginString + ^\s*EnableSendfile\s + ignoreCase + + regularExpression + + + + beginString + ^\s*EncodingEngine\s + ignoreCase + + regularExpression + + + + beginString + ^\s*Error\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ErrorDocument\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ErrorHeader\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ErrorLog\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ErrorLogFormat\s + ignoreCase + + regularExpression + + + + beginString + ^\s*Example\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ExpiresActive\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ExpiresByType\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ExpiresDefault\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ExtendedStatus\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ExtFilterDefine\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ExtFilterOptions\s + ignoreCase + + regularExpression + + + + beginString + ^\s*FallbackResource\s + ignoreCase + + regularExpression + + + + beginString + ^\s*FancyIndexing\s + ignoreCase + + regularExpression + + + + beginString + ^\s*FileETag\s + ignoreCase + + regularExpression + + + + beginString + ^\s*FilterChain\s + ignoreCase + + regularExpression + + + + beginString + ^\s*FilterDeclare\s + ignoreCase + + regularExpression + + + + beginString + ^\s*FilterProtocol\s + ignoreCase + + regularExpression + + + + beginString + ^\s*FilterProvider\s + ignoreCase + + regularExpression + + + + beginString + ^\s*FilterTrace\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ForceLanguagePriority\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ForceType\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ForensicLog\s + ignoreCase + + regularExpression + + + + beginString + ^\s*GprofDir\s + ignoreCase + + regularExpression + + + + beginString + ^\s*GracefulShutdownTimeout\s + ignoreCase + + regularExpression + + + + beginString + ^\s*Group\s + ignoreCase + + regularExpression + + + + beginString + ^\s*Header\s + ignoreCase + + regularExpression + + + + beginString + ^\s*HeaderName\s + ignoreCase + + regularExpression + + + + beginString + ^\s*HeartbeatAddress\s + ignoreCase + + regularExpression + + + + beginString + ^\s*HeartbeatListen\s + ignoreCase + + regularExpression + + + + beginString + ^\s*HeartbeatMaxServers\s + ignoreCase + + regularExpression + + + + beginString + ^\s*HeartbeatStorage\s + ignoreCase + + regularExpression + + + + beginString + ^\s*HostnameLookups\s + ignoreCase + + regularExpression + + + + beginString + ^\s*IdentityCheck\s + ignoreCase + + regularExpression + + + + beginString + ^\s*IdentityCheckTimeout\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ImapBase\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ImapDefault\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ImapMenu\s + ignoreCase + + regularExpression + + + + beginString + ^\s*Include\s + ignoreCase + + regularExpression + + + + beginString + ^\s*IncludeOptional\s + ignoreCase + + regularExpression + + + + beginString + ^\s*IndexHeadInsert\s + ignoreCase + + regularExpression + + + + beginString + ^\s*IndexIgnore\s + ignoreCase + + regularExpression + + + + beginString + ^\s*IndexIgnoreReset\s + ignoreCase + + regularExpression + + + + beginString + ^\s*IndexOptions\s + ignoreCase + + regularExpression + + + + beginString + ^\s*IndexOrderDefault\s + ignoreCase + + regularExpression + + + + beginString + ^\s*IndexStyleSheet\s + ignoreCase + + regularExpression + + + + beginString + ^\s*InputSed\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ISAPIAppendLogToErrors\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ISAPIAppendLogToQuery\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ISAPICacheFile\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ISAPIFakeAsync\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ISAPILogNotSupported\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ISAPIReadAheadBuffer\s + ignoreCase + + regularExpression + + + + beginString + ^\s*JkAsfTomcat\s + ignoreCase + + regularExpression + + + + beginString + ^\s*JkAuthTypeIndicator\s + ignoreCase + + regularExpression + + + + beginString + ^\s*JkAutoAlias\s + ignoreCase + + regularExpression + + + + beginString + ^\s*JkCERTCHAINPrefix\s + ignoreCase + + regularExpression + + + + beginString + ^\s*JkCERTSIndicator\s + ignoreCase + + regularExpression + + + + beginString + ^\s*JkCIPHERIndicator\s + ignoreCase + + regularExpression + + + + beginString + ^\s*JkEnvVar\s + ignoreCase + + regularExpression + + + + beginString + ^\s*JkExtractSSL\s + ignoreCase + + regularExpression + + + + beginString + ^\s*JkHTTPSIndicator\s + ignoreCase + + regularExpression + + + + beginString + ^\s*JkKEYSIZEIndicator\s + ignoreCase + + regularExpression + + + + beginString + ^\s*JkLocalNameIndicator\s + ignoreCase + + regularExpression + + + + beginString + ^\s*JkLocalPortIndicator\s + ignoreCase + + regularExpression + + + + beginString + ^\s*JkLogFile\s + ignoreCase + + regularExpression + + + + beginString + ^\s*JkLogLevel\s + ignoreCase + + regularExpression + + + + beginString + ^\s*JkLogStampFormat\s + ignoreCase + + regularExpression + + + + beginString + ^\s*JkMount\s + ignoreCase + + regularExpression + + + + beginString + ^\s*JkMountCopy\s + ignoreCase + + regularExpression + + + + beginString + ^\s*JkMountFile\s + ignoreCase + + regularExpression + + + + beginString + ^\s*JkMountFileReload\s + ignoreCase + + regularExpression + + + + beginString + ^\s*JkOptions\s + ignoreCase + + regularExpression + + + + beginString + ^\s*JkRemoteAddrIndicator\s + ignoreCase + + regularExpression + + + + beginString + ^\s*JkRemoteHostIndicator\s + ignoreCase + + regularExpression + + + + beginString + ^\s*JkRemotePortIndicator\s + ignoreCase + + regularExpression + + + + beginString + ^\s*JkRemoteUserIndicator\s + ignoreCase + + regularExpression + + + + beginString + ^\s*JkRequestLogFormat\s + ignoreCase + + regularExpression + + + + beginString + ^\s*JkSESSIONIndicator\s + ignoreCase + + regularExpression + + + + beginString + ^\s*JkShmFile\s + ignoreCase + + regularExpression + + + + beginString + ^\s*JkShmSize\s + ignoreCase + + regularExpression + + + + beginString + ^\s*JkStripSession\s + ignoreCase + + regularExpression + + + + beginString + ^\s*JkUnMount\s + ignoreCase + + regularExpression + + + + beginString + ^\s*JkWatchdogInterval\s + ignoreCase + + regularExpression + + + + beginString + ^\s*JkWorkerIndicator\s + ignoreCase + + regularExpression + + + + beginString + ^\s*JkWorkerProperty\s + ignoreCase + + regularExpression + + + + beginString + ^\s*JkWorkersFile\s + ignoreCase + + regularExpression + + + + beginString + ^\s*KeepAlive\s + ignoreCase + + regularExpression + + + + beginString + ^\s*KeepAliveTimeout\s + ignoreCase + + regularExpression + + + + beginString + ^\s*KeptBodySize\s + ignoreCase + + regularExpression + + + + beginString + ^\s*LanguagePriority\s + ignoreCase + + regularExpression + + + + beginString + ^\s*LDAPCacheEntries\s + ignoreCase + + regularExpression + + + + beginString + ^\s*LDAPCacheTTL\s + ignoreCase + + regularExpression + + + + beginString + ^\s*LDAPConnectionPoolTTL\s + ignoreCase + + regularExpression + + + + beginString + ^\s*LDAPConnectionTimeout\s + ignoreCase + + regularExpression + + + + beginString + ^\s*LDAPOpCacheEntries\s + ignoreCase + + regularExpression + + + + beginString + ^\s*LDAPOpCacheTTL\s + ignoreCase + + regularExpression + + + + beginString + ^\s*LDAPReferralHopLimit\s + ignoreCase + + regularExpression + + + + beginString + ^\s*LDAPReferrals\s + ignoreCase + + regularExpression + + + + beginString + ^\s*LDAPRetries\s + ignoreCase + + regularExpression + + + + beginString + ^\s*LDAPRetryDelay\s + ignoreCase + + regularExpression + + + + beginString + ^\s*LDAPSharedCacheFile\s + ignoreCase + + regularExpression + + + + beginString + ^\s*LDAPSharedCacheSize\s + ignoreCase + + regularExpression + + + + beginString + ^\s*LDAPTimeout\s + ignoreCase + + regularExpression + + + + beginString + ^\s*LDAPTrustedCA\s + ignoreCase + + regularExpression + + + + beginString + ^\s*LDAPTrustedCAType\s + ignoreCase + + regularExpression + + + + beginString + ^\s*LDAPTrustedClientCert\s + ignoreCase + + regularExpression + + + + beginString + ^\s*LDAPTrustedGlobalCert\s + ignoreCase + + regularExpression + + + + beginString + ^\s*LDAPTrustedMode\s + ignoreCase + + regularExpression + + + + beginString + ^\s*LDAPVerifyServerCert\s + ignoreCase + + regularExpression + + + + beginString + ^\s*LimitInternalRecursion\s + ignoreCase + + regularExpression + + + + beginString + ^\s*LimitRequestBody\s + ignoreCase + + regularExpression + + + + beginString + ^\s*LimitRequestFields\s + ignoreCase + + regularExpression + + + + beginString + ^\s*LimitRequestFieldSize\s + ignoreCase + + regularExpression + + + + beginString + ^\s*LimitRequestLine\s + ignoreCase + + regularExpression + + + + beginString + ^\s*LimitXMLRequestBody\s + ignoreCase + + regularExpression + + + + beginString + ^\s*Listen\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ListenBackLog\s + ignoreCase + + regularExpression + + + + beginString + ^\s*LoadFile\s + ignoreCase + + regularExpression + + + + beginString + ^\s*LoadModule\s + ignoreCase + + regularExpression + + + + beginString + ^\s*LockFile\s + ignoreCase + + regularExpression + + + + beginString + ^\s*LogFormat\s + ignoreCase + + regularExpression + + + + beginString + ^\s*LogLevel\s + ignoreCase + + regularExpression + + + + beginString + ^\s*LogMessage\s + ignoreCase + + regularExpression + + + + beginString + ^\s*LuaAuthzProvider\s + ignoreCase + + regularExpression + + + + beginString + ^\s*LuaHookAccessChecker\s + ignoreCase + + regularExpression + + + + beginString + ^\s*LuaHookAuthChecker\s + ignoreCase + + regularExpression + + + + beginString + ^\s*LuaHookCheckUserID\s + ignoreCase + + regularExpression + + + + beginString + ^\s*LuaHookFixups\s + ignoreCase + + regularExpression + + + + beginString + ^\s*LuaHookInsertFilter\s + ignoreCase + + regularExpression + + + + beginString + ^\s*LuaHookMapToStorage\s + ignoreCase + + regularExpression + + + + beginString + ^\s*LuaHookTranslateName\s + ignoreCase + + regularExpression + + + + beginString + ^\s*LuaHookTypeChecker\s + ignoreCase + + regularExpression + + + + beginString + ^\s*LuaInherit\s + ignoreCase + + regularExpression + + + + beginString + ^\s*LuaPackageCPath\s + ignoreCase + + regularExpression + + + + beginString + ^\s*LuaPackagePath\s + ignoreCase + + regularExpression + + + + beginString + ^\s*LuaQuickHandler\s + ignoreCase + + regularExpression + + + + beginString + ^\s*LuaRoot\s + ignoreCase + + regularExpression + + + + beginString + ^\s*LuaScope\s + ignoreCase + + regularExpression + + + + beginString + ^\s*MaxClients\s + ignoreCase + + regularExpression + + + + beginString + ^\s*MaxConnectionsPerChild\s + ignoreCase + + regularExpression + + + + beginString + ^\s*MaxKeepAliveRequests\s + ignoreCase + + regularExpression + + + + beginString + ^\s*MaxMemFree\s + ignoreCase + + regularExpression + + + + beginString + ^\s*MaxRangeOverlaps\s + ignoreCase + + regularExpression + + + + beginString + ^\s*MaxRangeReversals\s + ignoreCase + + regularExpression + + + + beginString + ^\s*MaxRanges\s + ignoreCase + + regularExpression + + + + beginString + ^\s*MaxRequestsPerChild\s + ignoreCase + + regularExpression + + + + beginString + ^\s*MaxRequestsPerThread\s + ignoreCase + + regularExpression + + + + beginString + ^\s*MaxRequestWorkers\s + ignoreCase + + regularExpression + + + + beginString + ^\s*MaxSpareServers\s + ignoreCase + + regularExpression + + + + beginString + ^\s*MaxSpareThreads\s + ignoreCase + + regularExpression + + + + beginString + ^\s*MaxThreads\s + ignoreCase + + regularExpression + + + + beginString + ^\s*MaxThreadsPerChild\s + ignoreCase + + regularExpression + + + + beginString + ^\s*MCacheMaxObjectCount\s + ignoreCase + + regularExpression + + + + beginString + ^\s*MCacheMaxObjectSize\s + ignoreCase + + regularExpression + + + + beginString + ^\s*MCacheMaxStreamingBuffer\s + ignoreCase + + regularExpression + + + + beginString + ^\s*MCacheMinObjectSize\s + ignoreCase + + regularExpression + + + + beginString + ^\s*MCacheRemovalAlgorithm\s + ignoreCase + + regularExpression + + + + beginString + ^\s*MCacheSize\s + ignoreCase + + regularExpression + + + + beginString + ^\s*MetaDir\s + ignoreCase + + regularExpression + + + + beginString + ^\s*MetaFiles\s + ignoreCase + + regularExpression + + + + beginString + ^\s*MetaSuffix\s + ignoreCase + + regularExpression + + + + beginString + ^\s*MimeMagicFile\s + ignoreCase + + regularExpression + + + + beginString + ^\s*MinSpareServers\s + ignoreCase + + regularExpression + + + + beginString + ^\s*MinSpareThreads\s + ignoreCase + + regularExpression + + + + beginString + ^\s*MMapFile\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ModemStandard\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ModMimeUsePathInfo\s + ignoreCase + + regularExpression + + + + beginString + ^\s*MultiviewsMatch\s + ignoreCase + + regularExpression + + + + beginString + ^\s*Mutex\s + ignoreCase + + regularExpression + + + + beginString + ^\s*NameVirtualHost\s + ignoreCase + + regularExpression + + + + beginString + ^\s*NoCache\s + ignoreCase + + regularExpression + + + + beginString + ^\s*NoProxy\s + ignoreCase + + regularExpression + + + + beginString + ^\s*NormalizeUsername\s + ignoreCase + + regularExpression + + + + beginString + ^\s*NumServers\s + ignoreCase + + regularExpression + + + + beginString + ^\s*NWSSLTrustedCerts\s + ignoreCase + + regularExpression + + + + beginString + ^\s*NWSSLUpgradeable\s + ignoreCase + + regularExpression + + + + beginString + ^\s*Options\s + ignoreCase + + regularExpression + + + + beginString + ^\s*Order\s + ignoreCase + + regularExpression + + + + beginString + ^\s*OutputSed\s + ignoreCase + + regularExpression + + + + beginString + ^\s*PassEnv\s + ignoreCase + + regularExpression + + + + beginString + ^\s*PidFile\s + ignoreCase + + regularExpression + + + + beginString + ^\s*Port\s + ignoreCase + + regularExpression + + + + beginString + ^\s*PrivilegesMode\s + ignoreCase + + regularExpression + + + + beginString + ^\s*Protocol\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ProtocolEcho\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ProtocolReqCheck\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ProxyBadHeader\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ProxyBlock\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ProxyDomain\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ProxyErrorOverride\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ProxyExpressDBMFile\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ProxyExpressDBMType\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ProxyExpressEnable\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ProxyFtpDirCharset\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ProxyFtpEscapeWildcards\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ProxyFtpListOnWildcard\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ProxyHTMLBufSize\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ProxyHTMLCharsetOut\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ProxyHTMLDocType\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ProxyHTMLEnable\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ProxyHTMLEvents\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ProxyHTMLExtended\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ProxyHTMLFixups\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ProxyHTMLInterp\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ProxyHTMLLinks\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ProxyHTMLMeta\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ProxyHTMLStripComments\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ProxyHTMLURLMap\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ProxyIOBufferSize\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ProxyMaxForwards\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ProxyPass\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ProxyPassInterpolateEnv\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ProxyPassMatch\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ProxyPassReverse\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ProxyPassReverseCookieDomain\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ProxyPassReverseCookiePath\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ProxyPreserveHost\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ProxyReceiveBufferSize\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ProxyRemote\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ProxyRemoteMatch\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ProxyRequests\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ProxySCGIInternalRedirect\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ProxySCGISendfile\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ProxySet\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ProxySourceAddress\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ProxyStatus\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ProxyTimeout\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ProxyVia\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ReadmeName\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ReceiveBufferSize\s + ignoreCase + + regularExpression + + + + beginString + ^\s*Redirect\s + ignoreCase + + regularExpression + + + + beginString + ^\s*RedirectMatch\s + ignoreCase + + regularExpression + + + + beginString + ^\s*RedirectPermanent\s + ignoreCase + + regularExpression + + + + beginString + ^\s*RedirectTemp\s + ignoreCase + + regularExpression + + + + beginString + ^\s*RefererIgnore\s + ignoreCase + + regularExpression + + + + beginString + ^\s*RefererLog\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ReflectorHeader\s + ignoreCase + + regularExpression + + + + beginString + ^\s*RemoteIPHeader\s + ignoreCase + + regularExpression + + + + beginString + ^\s*RemoteIPInternalProxy\s + ignoreCase + + regularExpression + + + + beginString + ^\s*RemoteIPInternalProxyList\s + ignoreCase + + regularExpression + + + + beginString + ^\s*RemoteIPProxiesHeader\s + ignoreCase + + regularExpression + + + + beginString + ^\s*RemoteIPTrustedProxy\s + ignoreCase + + regularExpression + + + + beginString + ^\s*RemoteIPTrustedProxyList\s + ignoreCase + + regularExpression + + + + beginString + ^\s*RemoveCharset\s + ignoreCase + + regularExpression + + + + beginString + ^\s*RemoveEncoding\s + ignoreCase + + regularExpression + + + + beginString + ^\s*RemoveHandler\s + ignoreCase + + regularExpression + + + + beginString + ^\s*RemoveInputFilter\s + ignoreCase + + regularExpression + + + + beginString + ^\s*RemoveLanguage\s + ignoreCase + + regularExpression + + + + beginString + ^\s*RemoveOutputFilter\s + ignoreCase + + regularExpression + + + + beginString + ^\s*RemoveType\s + ignoreCase + + regularExpression + + + + beginString + ^\s*RequestHeader\s + ignoreCase + + regularExpression + + + + beginString + ^\s*RequestReadTimeout\s + ignoreCase + + regularExpression + + + + beginString + ^\s*Require\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ResourceConfig\s + ignoreCase + + regularExpression + + + + beginString + ^\s*RewriteBase\s + ignoreCase + + regularExpression + + + + beginString + ^\s*RewriteCond\s + ignoreCase + + regularExpression + + + + beginString + ^\s*RewriteEngine\s + ignoreCase + + regularExpression + + + + beginString + ^\s*RewriteLock\s + ignoreCase + + regularExpression + + + + beginString + ^\s*RewriteLog\s + ignoreCase + + regularExpression + + + + beginString + ^\s*RewriteLogLevel\s + ignoreCase + + regularExpression + + + + beginString + ^\s*RewriteMap\s + ignoreCase + + regularExpression + + + + beginString + ^\s*RewriteOptions\s + ignoreCase + + regularExpression + + + + beginString + ^\s*RewriteRule\s + ignoreCase + + regularExpression + + + + beginString + ^\s*RLimitCPU\s + ignoreCase + + regularExpression + + + + beginString + ^\s*RLimitMEM\s + ignoreCase + + regularExpression + + + + beginString + ^\s*RLimitNPROC\s + ignoreCase + + regularExpression + + + + beginString + ^\s*Satisfy\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ScoreBoardFile\s + ignoreCase + + regularExpression + + + + beginString + ^\s*Script\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ScriptAlias\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ScriptAliasMatch\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ScriptInterpreterSource\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ScriptLog\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ScriptLogBuffer\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ScriptLogLength\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ScriptSock\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SecureListen\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SeeRequestTail\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SendBufferSize\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ServerAdmin\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ServerAlias\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ServerLimit\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ServerName\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ServerPath\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ServerRoot\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ServerSignature\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ServerTokens\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ServerType\s + ignoreCase + + regularExpression + + + + beginString + ^\s*Session\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SessionCookieName2\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SessionCookieName\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SessionCookieRemove\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SessionCryptoCipher\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SessionCryptoDriver\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SessionCryptoPassphrase\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SessionCryptoPassphraseFile\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SessionDBDCookieName2\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SessionDBDCookieName\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SessionDBDCookieRemove\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SessionDBDDeleteLabel\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SessionDBDInsertLabel\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SessionDBDPerUser\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SessionDBDSelectLabel\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SessionDBDUpdateLabel\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SessionEnv\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SessionExclude\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SessionHeader\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SessionInclude\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SessionMaxAge\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SetEnv\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SetEnvIf\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SetEnvIfExpr\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SetEnvIfNoCase\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SetHandler\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SetInputFilter\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SetOutputFilter\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ShmemUIDisUser\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SSIEnableAccess\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SSIEndTag\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SSIErrorMsg\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SSIETag\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SSILastModified\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SSILegacyExprParser\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SSIStartTag\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SSITimeFormat\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SSIUndefinedEcho\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SSLCACertificateFile\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SSLCACertificatePath\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SSLCADNRequestFile\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SSLCADNRequestPath\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SSLCARevocationCheck\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SSLCARevocationFile\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SSLCARevocationPath\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SSLCertificateChainFile\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SSLCertificateFile\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SSLCertificateKeyFile\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SSLCipherSuite\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SSLCompression\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SSLCryptoDevice\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SSLEngine\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SSLFIPS\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SSLHonorCipherOrder\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SSLInsecureRenegotiation\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SSLMutex\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SSLOCSPDefaultResponder\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SSLOCSPEnable\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SSLOCSPOverrideResponder\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SSLOCSPResponderTimeout\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SSLOCSPResponseMaxAge\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SSLOCSPResponseTimeSkew\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SSLOptions\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SSLPassPhraseDialog\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SSLProtocol\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SSLProxyCACertificateFile\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SSLProxyCACertificatePath\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SSLProxyCARevocationCheck\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SSLProxyCARevocationFile\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SSLProxyCARevocationPath\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SSLProxyCheckPeerCN\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SSLProxyCheckPeerExpire\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SSLProxyCipherSuite\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SSLProxyEngine\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SSLProxyMachineCertificateChainFile\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SSLProxyMachineCertificateFile\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SSLProxyMachineCertificatePath\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SSLProxyProtocol\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SSLProxyVerify\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SSLProxyVerifyDepth\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SSLRandomSeed\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SSLRenegBufferSize\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SSLRequire\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SSLRequireSSL\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SSLSessionCache\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SSLSessionCacheTimeout\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SSLSessionTicketKeyFile\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SSLStaplingCache\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SSLStaplingErrorCacheTimeout\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SSLStaplingFakeTryLater\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SSLStaplingForceURL\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SSLStaplingResponderTimeout\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SSLStaplingResponseMaxAge\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SSLStaplingResponseTimeSkew\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SSLStaplingReturnResponderErrors\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SSLStaplingStandardCacheTimeout\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SSLStrictSNIVHostCheck\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SSLUserName\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SSLUseStapling\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SSLVerifyClient\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SSLVerifyDepth\s + ignoreCase + + regularExpression + + + + beginString + ^\s*StartServers\s + ignoreCase + + regularExpression + + + + beginString + ^\s*StartThreads\s + ignoreCase + + regularExpression + + + + beginString + ^\s*Substitute\s + ignoreCase + + regularExpression + + + + beginString + ^\s*Suexec\s + ignoreCase + + regularExpression + + + + beginString + ^\s*SuexecUserGroup\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ThreadLimit\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ThreadsPerChild\s + ignoreCase + + regularExpression + + + + beginString + ^\s*ThreadStackSize\s + ignoreCase + + regularExpression + + + + beginString + ^\s*TimeOut\s + ignoreCase + + regularExpression + + + + beginString + ^\s*TraceEnable\s + ignoreCase + + regularExpression + + + + beginString + ^\s*TransferLog\s + ignoreCase + + regularExpression + + + + beginString + ^\s*TypesConfig\s + ignoreCase + + regularExpression + + + + beginString + ^\s*UnsetEnv\s + ignoreCase + + regularExpression + + + + beginString + ^\s*UseCanonicalName\s + ignoreCase + + regularExpression + + + + beginString + ^\s*UseCanonicalPhysicalPort\s + ignoreCase + + regularExpression + + + + beginString + ^\s*User\s + ignoreCase + + regularExpression + + + + beginString + ^\s*UserDir\s + ignoreCase + + regularExpression + + + + beginString + ^\s*VHostCGIMode\s + ignoreCase + + regularExpression + + + + beginString + ^\s*VHostCGIPrivs\s + ignoreCase + + regularExpression + + + + beginString + ^\s*VHostGroup\s + ignoreCase + + regularExpression + + + + beginString + ^\s*VHostPrivs\s + ignoreCase + + regularExpression + + + + beginString + ^\s*VHostSecure\s + ignoreCase + + regularExpression + + + + beginString + ^\s*VHostUser\s + ignoreCase + + regularExpression + + + + beginString + ^\s*VirtualDocumentRoot\s + ignoreCase + + regularExpression + + + + beginString + ^\s*VirtualDocumentRootIP\s + ignoreCase + + regularExpression + + + + beginString + ^\s*VirtualScriptAlias\s + ignoreCase + + regularExpression + + + + beginString + ^\s*VirtualScriptAliasIP\s + ignoreCase + + regularExpression + + + + beginString + ^\s*WatchdogInterval\s + ignoreCase + + regularExpression + + + + beginString + ^\s*Win32DisableAcceptEx\s + ignoreCase + + regularExpression + + + + beginString + ^\s*XBitHack\s + ignoreCase + + regularExpression + + + + beginString + ^\s*xml2EncAlias\s + ignoreCase + + regularExpression + + + + beginString + ^\s*xml2EncDefault\s + ignoreCase + + regularExpression + + + + beginString + ^\s*xml2StartParse\s + ignoreCase + + regularExpression + + + + commentsArray + + + beginString + ^[ \t]*#.*+ + regularExpression + + + + completionsArray + + + keyString + AcceptFilter + + + keyString + AcceptMutex + + + keyString + AcceptPathInfo + + + keyString + AccessConfig + + + keyString + AccessFileName + + + keyString + Action + + + keyString + AddAlt + + + keyString + AddAltByEncoding + + + keyString + AddAltByType + + + keyString + AddCharset + + + keyString + AddDefaultCharset + + + keyString + AddDescription + + + keyString + AddEncoding + + + keyString + AddHandler + + + keyString + AddIcon + + + keyString + AddIconByEncoding + + + keyString + AddIconByType + + + keyString + AddInputFilter + + + keyString + AddLanguage + + + keyString + AddModule + + + keyString + AddModuleInfo + + + keyString + AddOutputFilter + + + keyString + AddOutputFilterByType + + + keyString + AddType + + + keyString + AgentLog + + + keyString + Alias + + + keyString + AliasMatch + + + keyString + Allow + + + keyString + AllowCONNECT + + + keyString + AllowEncodedSlashes + + + keyString + AllowMethods + + + keyString + AllowOverride + + + keyString + AllowOverrideList + + + keyString + Anonymous + + + keyString + Anonymous_Authoritative + + + keyString + Anonymous_LogEmail + + + keyString + Anonymous_MustGiveEmail + + + keyString + Anonymous_NoUserID + + + keyString + Anonymous_VerifyEmail + + + keyString + AssignUserID + + + keyString + AsyncRequestWorkerFactor + + + keyString + AuthAuthoritative + + + keyString + AuthBasicAuthoritative + + + keyString + AuthBasicProvider + + + keyString + AuthDBDUserPWQuery + + + keyString + AuthDBDUserRealmQuery + + + keyString + AuthDBMAuthoritative + + + keyString + AuthDBMGroupFile + + + keyString + AuthDBMType + + + keyString + AuthDBMUserFile + + + keyString + AuthDigestAlgorithm + + + keyString + AuthDigestDomain + + + keyString + AuthDigestFile + + + keyString + AuthDigestGroupFile + + + keyString + AuthDigestNcCheck + + + keyString + AuthDigestNonceFormat + + + keyString + AuthDigestNonceLifetime + + + keyString + AuthDigestProvider + + + keyString + AuthDigestQop + + + keyString + AuthDigestShmemSize + + + keyString + AuthFormAuthoritative + + + keyString + AuthFormBody + + + keyString + AuthFormDisableNoStore + + + keyString + AuthFormFakeBasicAuth + + + keyString + AuthFormLocation + + + keyString + AuthFormLoginRequiredLocation + + + keyString + AuthFormLoginSuccessLocation + + + keyString + AuthFormLogoutLocation + + + keyString + AuthFormMethod + + + keyString + AuthFormMimetype + + + keyString + AuthFormPassword + + + keyString + AuthFormProvider + + + keyString + AuthFormSitePassphrase + + + keyString + AuthFormSize + + + keyString + AuthFormUsername + + + keyString + AuthGroupFile + + + keyString + AuthLDAPAuthoritative + + + keyString + AuthLDAPAuthorizePrefix + + + keyString + AuthLDAPBindDN + + + keyString + AuthLDAPBindPassword + + + keyString + AuthLDAPCharsetConfig + + + keyString + AuthLDAPCompareAsUser + + + keyString + AuthLDAPCompareDNOnServer + + + keyString + AuthLDAPDereferenceAliases + + + keyString + AuthLDAPEnabled + + + keyString + AuthLDAPFrontPageHack + + + keyString + AuthLDAPGroupAttribute + + + keyString + AuthLDAPGroupAttributeIsDN + + + keyString + AuthLDAPInitialBindAsUser + + + keyString + AuthLDAPInitialBindPattern + + + keyString + AuthLDAPMaxSubGroupDepth + + + keyString + AuthLDAPRemoteUserAttribute + + + keyString + AuthLDAPRemoteUserIsDN + + + keyString + AuthLDAPSearchAsUser + + + keyString + AuthLDAPSubGroupAttribute + + + keyString + AuthLDAPSubGroupClass + + + keyString + AuthLDAPUrl + + + keyString + AuthMerging + + + keyString + AuthName + + + keyString + AuthnCacheContext + + + keyString + AuthnCacheEnable + + + keyString + AuthnCacheProvideFor + + + keyString + AuthnCacheProvideFor + + + keyString + AuthnCacheTimeout + + + keyString + AuthnCacheTimeout + + + keyString + AuthType + + + keyString + AuthUserFile + + + keyString + AuthzDBDQuery + + + keyString + AuthzDBDRedirectQuery + + + keyString + AuthzDBMAuthoritative + + + keyString + AuthzDBMType + + + keyString + AuthzDefaultAuthoritative + + + keyString + AuthzGroupFileAuthoritative + + + keyString + AuthzLDAPAuthoritative + + + keyString + AuthzOwnerAuthoritative + + + keyString + AuthzSendForbiddenOnFailure + + + keyString + AuthzUserAuthoritative + + + keyString + BalancerGrowth + + + keyString + BalancerMember + + + keyString + BindAddress + + + keyString + BrowserMatch + + + keyString + BrowserMatchNoCase + + + keyString + BS2000Account + + + keyString + BufferedLogs + + + keyString + BufferSize + + + keyString + CacheDefaultExpire + + + keyString + CacheDetailHeader + + + keyString + CacheDirLength + + + keyString + CacheDirLevels + + + keyString + CacheDisable + + + keyString + CacheEnable + + + keyString + CacheExpiryCheck + + + keyString + CacheFile + + + keyString + CacheForceCompletion + + + keyString + CacheGcClean + + + keyString + CacheGcDaily + + + keyString + CacheGcInterval + + + keyString + CacheGcMemUsage + + + keyString + CacheGcUnused + + + keyString + CacheHeader + + + keyString + CacheIgnoreCacheControl + + + keyString + CacheIgnoreHeaders + + + keyString + CacheIgnoreNoLastMod + + + keyString + CacheIgnoreQueryString + + + keyString + CacheIgnoreURLSessionIdentifiers + + + keyString + CacheKeyBaseURL + + + keyString + CacheLastModifiedFactor + + + keyString + CacheLock + + + keyString + CacheLockMaxAge + + + keyString + CacheLockPath + + + keyString + CacheMaxExpire + + + keyString + CacheMaxFileSize + + + keyString + CacheMinExpire + + + keyString + CacheMinFileSize + + + keyString + CacheNegotiatedDocs + + + keyString + CacheQuickHandler + + + keyString + CacheReadSize + + + keyString + CacheReadTime + + + keyString + CacheRoot + + + keyString + CacheSize + + + keyString + CacheStaleOnError + + + keyString + CacheStoreExpired + + + keyString + CacheStoreNoStore + + + keyString + CacheStorePrivate + + + keyString + CacheTimeMargin + + + keyString + CGICommandArgs + + + keyString + CGIMapExtension + + + keyString + CharsetDefault + + + keyString + CharsetOptions + + + keyString + CharsetSourceEnc + + + keyString + CheckCaseOnly + + + keyString + CheckSpelling + + + keyString + ChildPerUserID + + + keyString + ChrootDir + + + keyString + ClearModuleList + + + keyString + ContentDigest + + + keyString + CookieDomain + + + keyString + CookieExpires + + + keyString + CookieFormat + + + keyString + CookieLog + + + keyString + CookieName + + + keyString + CookiePrefix + + + keyString + CookieStyle + + + keyString + CookieTracking + + + keyString + CoreDumpDirectory + + + keyString + CustomLog + + + keyString + Dav + + + keyString + DavDepthInfinity + + + keyString + DavGenericLockDB + + + keyString + DavLockDB + + + keyString + DavMinTimeout + + + keyString + DBDExptime + + + keyString + DBDInitSQL + + + keyString + DBDKeep + + + keyString + DBDMax + + + keyString + DBDMin + + + keyString + DBDParams + + + keyString + DBDPersist + + + keyString + DBDPrepareSQL + + + keyString + DBDriver + + + keyString + DefaultIcon + + + keyString + DefaultLanguage + + + keyString + DefaultRuntimeDir + + + keyString + DefaultType + + + keyString + Define + + + keyString + DeflateBufferSize + + + keyString + DeflateCompressionLevel + + + keyString + DeflateFilterNote + + + keyString + DeflateMemLevel + + + keyString + DeflateWindowSize + + + keyString + Deny + + + keyString + DirectoryIndex + + + keyString + DirectoryIndexRedirect + + + keyString + DirectorySlash + + + keyString + DocumentRoot + + + keyString + DTracePrivileges + + + keyString + DumpIOInput + + + keyString + DumpIOLogLevel + + + keyString + DumpIOOutput + + + keyString + EBCDICConvert + + + keyString + EBCDICConvertByType + + + keyString + EBCDICKludge + + + keyString + EnableExceptionHook + + + keyString + EnableMMAP + + + keyString + EnableSendfile + + + keyString + Error + + + keyString + ErrorDocument + + + keyString + ErrorHeader + + + keyString + ErrorLog + + + keyString + ErrorLogFormat + + + keyString + Example + + + keyString + ExpiresActive + + + keyString + ExpiresByType + + + keyString + ExpiresDefault + + + keyString + ExtendedStatus + + + keyString + ExtFilterDefine + + + keyString + ExtFilterOptions + + + keyString + FallbackResource + + + keyString + FancyIndexing + + + keyString + FileETag + + + keyString + FilterChain + + + keyString + FilterDeclare + + + keyString + FilterProtocol + + + keyString + FilterProvider + + + keyString + FilterTrace + + + keyString + ForceLanguagePriority + + + keyString + ForceType + + + keyString + ForensicLog + + + keyString + GprofDir + + + keyString + GracefulShutdownTimeout + + + keyString + Group + + + keyString + Header + + + keyString + HeaderName + + + keyString + HeartbeatAddress + + + keyString + HeartbeatListen + + + keyString + HeartbeatMaxServers + + + keyString + HeartbeatStorage + + + keyString + HostnameLookups + + + keyString + IdentityCheck + + + keyString + IdentityCheckTimeout + + + keyString + ImapBase + + + keyString + ImapDefault + + + keyString + ImapMenu + + + keyString + Include + + + keyString + IncludeOptional + + + keyString + IndexHeadInsert + + + keyString + IndexIgnore + + + keyString + IndexIgnoreReset + + + keyString + IndexOptions + + + keyString + IndexOrderDefault + + + keyString + IndexStyleSheet + + + keyString + InputSed + + + keyString + ISAPIAppendLogToErrors + + + keyString + ISAPIAppendLogToQuery + + + keyString + ISAPICacheFile + + + keyString + ISAPIFakeAsync + + + keyString + ISAPILogNotSupported + + + keyString + ISAPIReadAheadBuffer + + + keyString + KeepAlive + + + keyString + KeepAliveTimeout + + + keyString + KeptBodySize + + + keyString + LanguagePriority + + + keyString + LDAPCacheEntries + + + keyString + LDAPCacheTTL + + + keyString + LDAPConnectionPoolTTL + + + keyString + LDAPConnectionTimeout + + + keyString + LDAPLibraryDebug + + + keyString + LDAPOpCacheEntries + + + keyString + LDAPOpCacheTTL + + + keyString + LDAPReferralHopLimit + + + keyString + LDAPReferrals + + + keyString + LDAPRetries + + + keyString + LDAPRetryDelay + + + keyString + LDAPSharedCacheFile + + + keyString + LDAPSharedCacheSize + + + keyString + LDAPTimeout + + + keyString + LDAPTrustedCA + + + keyString + LDAPTrustedCAType + + + keyString + LDAPTrustedClientCert + + + keyString + LDAPTrustedGlobalCert + + + keyString + LDAPTrustedMode + + + keyString + LDAPVerifyServerCert + + + keyString + LimitInternalRecursion + + + keyString + LimitRequestBody + + + keyString + LimitRequestFields + + + keyString + LimitRequestFieldSize + + + keyString + LimitRequestLine + + + keyString + LimitXMLRequestBody + + + keyString + Listen + + + keyString + ListenBackLog + + + keyString + LoadFile + + + keyString + LoadModule + + + keyString + LockFile + + + keyString + LogFormat + + + keyString + LogLevel + + + keyString + LogMessage + + + keyString + LuaAuthzProvider + + + keyString + LuaHookAccessChecker + + + keyString + LuaHookAuthChecker + + + keyString + LuaHookCheckUserID + + + keyString + LuaHookFixups + + + keyString + LuaHookInsertFilter + + + keyString + LuaHookMapToStorage + + + keyString + LuaHookTranslateName + + + keyString + LuaHookTypeChecker + + + keyString + LuaInherit + + + keyString + LuaPackageCPath + + + keyString + LuaPackagePath + + + keyString + LuaQuickHandler + + + keyString + LuaRoot + + + keyString + LuaScope + + + keyString + MaxClients + + + keyString + MaxConnectionsPerChild + + + keyString + MaxKeepAliveRequests + + + keyString + MaxMemFree + + + keyString + MaxRangeOverlaps + + + keyString + MaxRangeReversals + + + keyString + MaxRanges + + + keyString + MaxRequestsPerChild + + + keyString + MaxRequestsPerThread + + + keyString + MaxRequestWorkers + + + keyString + MaxSpareServers + + + keyString + MaxSpareThreads + + + keyString + MaxThreads + + + keyString + MaxThreadsPerChild + + + keyString + MCacheMaxObjectCount + + + keyString + MCacheMaxObjectSize + + + keyString + MCacheMaxStreamingBuffer + + + keyString + MCacheMinObjectSize + + + keyString + MCacheRemovalAlgorithm + + + keyString + MCacheSize + + + keyString + MetaDir + + + keyString + MetaFiles + + + keyString + MetaSuffix + + + keyString + MimeMagicFile + + + keyString + MinSpareServers + + + keyString + MinSpareThreads + + + keyString + MMapFile + + + keyString + ModemStandard + + + keyString + ModMimeUsePathInfo + + + keyString + MultiviewsMatch + + + keyString + Mutex + + + keyString + NameVirtualHost + + + keyString + NoCache + + + keyString + NoProxy + + + keyString + NumServers + + + keyString + NWSSLTrustedCerts + + + keyString + NWSSLUpgradeable + + + keyString + Options + + + keyString + Order + + + keyString + OutputSed + + + keyString + PassEnv + + + keyString + PidFile + + + keyString + Port + + + keyString + PrivilegesMode + + + keyString + Protocol + + + keyString + ProtocolEcho + + + keyString + ProtocolReqCheck + + + keyString + ProxyBadHeader + + + keyString + ProxyBadHeader + + + keyString + ProxyBlock + + + keyString + ProxyDomain + + + keyString + ProxyErrorOverride + + + keyString + ProxyExpressDBMFile + + + keyString + ProxyExpressDBMType + + + keyString + ProxyExpressEnable + + + keyString + ProxyFtpDirCharset + + + keyString + ProxyFtpEscapeWildcards + + + keyString + ProxyFtpListOnWildcard + + + keyString + ProxyHTMLBufSize + + + keyString + ProxyHTMLCharsetOut + + + keyString + ProxyHTMLDocType + + + keyString + ProxyHTMLEnable + + + keyString + ProxyHTMLEvents + + + keyString + ProxyHTMLExtended + + + keyString + ProxyHTMLFixups + + + keyString + ProxyHTMLInterp + + + keyString + ProxyHTMLLinks + + + keyString + ProxyHTMLMeta + + + keyString + ProxyHTMLStripComments + + + keyString + ProxyHTMLURLMap + + + keyString + ProxyIOBufferSize + + + keyString + ProxyMaxForwards + + + keyString + ProxyPass + + + keyString + ProxyPassInterpolateEnv + + + keyString + ProxyPassMatch + + + keyString + ProxyPassReverse + + + keyString + ProxyPassReverseCookieDomain + + + keyString + ProxyPassReverseCookiePath + + + keyString + ProxyPreserveHost + + + keyString + ProxyReceiveBufferSize + + + keyString + ProxyRemote + + + keyString + ProxyRemoteMatch + + + keyString + ProxyRequests + + + keyString + ProxySCGIInternalRedirect + + + keyString + ProxySCGISendfile + + + keyString + ProxySet + + + keyString + ProxySourceAddress + + + keyString + ProxyStatus + + + keyString + ProxyTimeout + + + keyString + ProxyVia + + + keyString + ReadmeName + + + keyString + ReceiveBufferSize + + + keyString + Redirect + + + keyString + RedirectMatch + + + keyString + RedirectPermanent + + + keyString + RedirectTemp + + + keyString + RefererIgnore + + + keyString + RefererLog + + + keyString + ReflectorHeader + + + keyString + RemoteIPHeader + + + keyString + RemoteIPInternalProxy + + + keyString + RemoteIPInternalProxyList + + + keyString + RemoteIPProxiesHeader + + + keyString + RemoteIPTrustedProxy + + + keyString + RemoteIPTrustedProxyList + + + keyString + RemoveCharset + + + keyString + RemoveEncoding + + + keyString + RemoveHandler + + + keyString + RemoveInputFilter + + + keyString + RemoveLanguage + + + keyString + RemoveOutputFilter + + + keyString + RemoveType + + + keyString + RequestHeader + + + keyString + RequestReadTimeout + + + keyString + Require + + + keyString + ResourceConfig + + + keyString + RewriteBase + + + keyString + RewriteCond + + + keyString + RewriteEngine + + + keyString + RewriteLock + + + keyString + RewriteLog + + + keyString + RewriteLogLevel + + + keyString + RewriteMap + + + keyString + RewriteOptions + + + keyString + RewriteRule + + + keyString + RLimitCPU + + + keyString + RLimitMEM + + + keyString + RLimitNPROC + + + keyString + Satisfy + + + keyString + ScoreBoardFile + + + keyString + Script + + + keyString + ScriptAlias + + + keyString + ScriptAliasMatch + + + keyString + ScriptInterpreterSource + + + keyString + ScriptLog + + + keyString + ScriptLogBuffer + + + keyString + ScriptLogLength + + + keyString + ScriptSock + + + keyString + SecureListen + + + keyString + SeeRequestTail + + + keyString + SendBufferSize + + + keyString + ServerAdmin + + + keyString + ServerAlias + + + keyString + ServerLimit + + + keyString + ServerName + + + keyString + ServerPath + + + keyString + ServerRoot + + + keyString + ServerSignature + + + keyString + ServerTokens + + + keyString + ServerType + + + keyString + Session + + + keyString + SessionCookieName + + + keyString + SessionCookieName2 + + + keyString + SessionCookieRemove + + + keyString + SessionCryptoCipher + + + keyString + SessionCryptoDriver + + + keyString + SessionCryptoPassphrase + + + keyString + SessionCryptoPassphraseFile + + + keyString + SessionDBDCookieName + + + keyString + SessionDBDCookieName2 + + + keyString + SessionDBDCookieRemove + + + keyString + SessionDBDDeleteLabel + + + keyString + SessionDBDInsertLabel + + + keyString + SessionDBDPerUser + + + keyString + SessionDBDSelectLabel + + + keyString + SessionDBDUpdateLabel + + + keyString + SessionEnv + + + keyString + SessionExclude + + + keyString + SessionHeader + + + keyString + SessionInclude + + + keyString + SessionMaxAge + + + keyString + SetEnv + + + keyString + SetEnvIf + + + keyString + SetEnvIfExpr + + + keyString + SetEnvIfNoCase + + + keyString + SetHandler + + + keyString + SetInputFilter + + + keyString + SetOutputFilter + + + keyString + ShmemUIDisUser + + + keyString + SSIEnableAccess + + + keyString + SSIEndTag + + + keyString + SSIErrorMsg + + + keyString + SSIETag + + + keyString + SSILastModified + + + keyString + SSILegacyExprParser + + + keyString + SSIStartTag + + + keyString + SSITimeFormat + + + keyString + SSIUndefinedEcho + + + keyString + SSLCACertificateFile + + + keyString + SSLCACertificatePath + + + keyString + SSLCADNRequestFile + + + keyString + SSLCADNRequestPath + + + keyString + SSLCARevocationCheck + + + keyString + SSLCARevocationFile + + + keyString + SSLCARevocationPath + + + keyString + SSLCertificateChainFile + + + keyString + SSLCertificateFile + + + keyString + SSLCertificateKeyFile + + + keyString + SSLCipherSuite + + + keyString + SSLCryptoDevice + + + keyString + SSLEngine + + + keyString + SSLFIPS + + + keyString + SSLHonorCipherOrder + + + keyString + SSLInsecureRenegotiation + + + keyString + SSLMutex + + + keyString + SSLOCSPDefaultResponder + + + keyString + SSLOCSPEnable + + + keyString + SSLOCSPOverrideResponder + + + keyString + SSLOCSPResponderTimeout + + + keyString + SSLOCSPResponseMaxAge + + + keyString + SSLOCSPResponseTimeSkew + + + keyString + SSLOptions + + + keyString + SSLPassPhraseDialog + + + keyString + SSLProtocol + + + keyString + SSLProxyCACertificateFile + + + keyString + SSLProxyCACertificatePath + + + keyString + SSLProxyCARevocationCheck + + + keyString + SSLProxyCARevocationFile + + + keyString + SSLProxyCARevocationPath + + + keyString + SSLProxyCheckPeerCN + + + keyString + SSLProxyCheckPeerExpire + + + keyString + SSLProxyCipherSuite + + + keyString + SSLProxyEngine + + + keyString + SSLProxyMachineCertificateChainFile + + + keyString + SSLProxyMachineCertificateFile + + + keyString + SSLProxyMachineCertificatePath + + + keyString + SSLProxyProtocol + + + keyString + SSLProxyVerify + + + keyString + SSLProxyVerifyDepth + + + keyString + SSLRandomSeed + + + keyString + SSLRenegBufferSize + + + keyString + SSLRequire + + + keyString + SSLRequireSSL + + + keyString + SSLSessionCache + + + keyString + SSLSessionCacheTimeout + + + keyString + SSLSessionTicketKeyFile + + + keyString + SSLStaplingCache + + + keyString + SSLStaplingErrorCacheTimeout + + + keyString + SSLStaplingFakeTryLater + + + keyString + SSLStaplingForceURL + + + keyString + SSLStaplingResponderTimeout + + + keyString + SSLStaplingResponseMaxAge + + + keyString + SSLStaplingResponseTimeSkew + + + keyString + SSLStaplingReturnResponderErrors + + + keyString + SSLStaplingStandardCacheTimeout + + + keyString + SSLStrictSNIVHostCheck + + + keyString + SSLUserName + + + keyString + SSLUseStapling + + + keyString + SSLVerifyClient + + + keyString + SSLVerifyDepth + + + keyString + StartServers + + + keyString + StartThreads + + + keyString + Substitute + + + keyString + Suexec + + + keyString + SuexecUserGroup + + + keyString + ThreadLimit + + + keyString + ThreadsPerChild + + + keyString + ThreadStackSize + + + keyString + TimeOut + + + keyString + TraceEnable + + + keyString + TransferLog + + + keyString + TypesConfig + + + keyString + UnsetEnv + + + keyString + UnsetEnv + + + keyString + UseCanonicalName + + + keyString + UseCanonicalPhysicalPort + + + keyString + User + + + keyString + UserDir + + + keyString + VHostCGIMode + + + keyString + VHostCGIPrivs + + + keyString + VHostGroup + + + keyString + VHostPrivs + + + keyString + VHostSecure + + + keyString + VHostUser + + + keyString + VirtualDocumentRoot + + + keyString + VirtualDocumentRootIP + + + keyString + VirtualScriptAlias + + + keyString + VirtualScriptAliasIP + + + keyString + WatchdogInterval + + + keyString + Win32DisableAcceptEx + + + keyString + XBitHack + + + keyString + xml2EncAlias + + + keyString + xml2EncDefault + + + keyString + xml2StartParse + + + extensions + + + keyString + conf + + + keywordsArray + + + beginString + (?<=</?)AuthnProviderAlias\b + regularExpression + + + + beginString + (?<=</?)AuthzProviderAlias\b + regularExpression + + + + beginString + (?<=</?)Directory\b + regularExpression + + + + beginString + (?<=</?)DirectoryMatch\b + regularExpression + + + + beginString + (?<=</?)Else\b + regularExpression + + + + beginString + (?<=</?)ElseIf\b + regularExpression + + + + beginString + (?<=</?)Files\b + regularExpression + + + + beginString + (?<=</?)FilesMatch\b + regularExpression + + + + beginString + (?<=</?)If\b + regularExpression + + + + beginString + (?<=</?)IfDefine\b + regularExpression + + + + beginString + (?<=</?)IfModule\b + regularExpression + + + + beginString + (?<=</?)IfVersion\b + regularExpression + + + + beginString + (?<=</?)Location\b + regularExpression + + + + beginString + (?<=</?)LocationMatch\b + regularExpression + + + + beginString + (?<=</?)Proxy\b + regularExpression + + + + beginString + (?<=</?)ProxyMatch\b + regularExpression + + + + beginString + (?<=</?)RequireAll\b + regularExpression + + + + beginString + (?<=</?)RequireAny\b + regularExpression + + + + beginString + (?<=</?)RequireNone\b + regularExpression + + + + beginString + (?<=</?)VirtualHost\b + regularExpression + + + + numbersArray + + outlineMenuArray + + + beginString + ^[\t ]*<Directory(?:Match)?[\t ]+"?(.*?)"?> + ignoreCase + + keyString + Directory: $1 + + + beginString + ^[\t ]*<Files(?:Match)?[\t ]+"?(.*?)"?> + ignoreCase + + keyString + Files: $1 + + + beginString + ^[\t ]*<Location(?:Match)[\t ]+"?(.*?)"?> + ignoreCase + + keyString + Location: $1 + + + beginString + ^[\t ]*<VirtualHost[\t ]+"?(.*?)"?> + ignoreCase + + keyString + VirtualHost: $1 + + + stringsArray + + + beginString + " + endString + " + + + beginString + ' + endString + ' + + + styleName + Apache + valuesArray + + + beginString + \badd\b + ignoreCase + + regularExpression + + + + beginString + \ball\b + ignoreCase + + regularExpression + + + + beginString + \ballow,deny\b + ignoreCase + + regularExpression + + + + beginString + \bappend\b + ignoreCase + + regularExpression + + + + beginString + \bdeny,allow\b + ignoreCase + + regularExpression + + + + beginString + \becho\b + ignoreCase + + regularExpression + + + + beginString + \bExecCGI\b + ignoreCase + + regularExpression + + + + beginString + \bFollowSymLinks\b + ignoreCase + + regularExpression + + + + beginString + \bfrom\b + ignoreCase + + regularExpression + + + + beginString + \bgone\b + ignoreCase + + regularExpression + + + + beginString + \bIncludes\b + ignoreCase + + regularExpression + + + + beginString + \bIncludesNOEXEC\b + ignoreCase + + regularExpression + + + + beginString + \bMultiViews\b + ignoreCase + + regularExpression + + + + beginString + \bnone\b + ignoreCase + + regularExpression + + + + beginString + \boff\b + ignoreCase + + regularExpression + + + + beginString + \bon\b + ignoreCase + + regularExpression + + + + beginString + \bpermanent\b + ignoreCase + + regularExpression + + + + beginString + \bseeothor\b + ignoreCase + + regularExpression + + + + beginString + \bset\b + ignoreCase + + regularExpression + + + + beginString + \bSymLinksIfOwnerMatch\b + ignoreCase + + regularExpression + + + + beginString + \btemp\b + ignoreCase + + regularExpression + + + + beginString + \bunset\b + ignoreCase + + regularExpression + + + + beginString + \sIndexes\s + ignoreCase + + regularExpression + + + + + diff --git a/SyntaxColorings/defaultSyntaxStyle_LaTeX.plist b/SyntaxColorings/defaultSyntaxStyle_LaTeX.plist old mode 100644 new mode 100755 index 7699b2bdbe..ea1819496f --- a/SyntaxColorings/defaultSyntaxStyle_LaTeX.plist +++ b/SyntaxColorings/defaultSyntaxStyle_LaTeX.plist @@ -1,5 +1,5 @@ - + charactersArray @@ -8,7 +8,7 @@ beginString - [\\¥]caption{.+} + [\\¥]caption\{.+\} regularExpression @@ -20,13 +20,13 @@ beginString - [\\¥]cite{([^}])+} + [\\¥]cite\{([^}])+\} regularExpression beginString - [\\¥]file{.+} + [\\¥]file\{.+\} regularExpression @@ -38,13 +38,13 @@ beginString - [\\¥]includegraphics(\[.+\])?{.+} + [\\¥]includegraphics(\[.+\])?\{.+\} regularExpression beginString - [\\¥]label{.+} + [\\¥]label\{.+\} regularExpression @@ -80,7 +80,7 @@ beginString - [\\¥]ref{([^}])+} + [\\¥]ref\{([^}])+\} regularExpression @@ -98,7 +98,7 @@ beginString - [\\¥]text(tt|bf){.+} + [\\¥]text(tt|bf)\{.+\} regularExpression @@ -170,25 +170,25 @@ beginString - [\\¥]author{.*} + [\\¥]author\{.*\} regularExpression beginString - [\\¥]begin{.*} + [\\¥]begin\{.*\} regularExpression beginString - [\\¥]chapter\*?{.+} + [\\¥]chapter\*?\{.+\} regularExpression beginString - [\\¥]date{.*} + [\\¥]date\{.*\} ignoreCase regularExpression @@ -196,25 +196,25 @@ beginString - [\\¥]documentclass(\[.+\])?{.+} + [\\¥]documentclass(\[.+\])?\{.+\} regularExpression beginString - [\\¥]end{.*} + [\\¥]end\{.*\} regularExpression beginString - [\\¥]pagestyle{.*} + [\\¥]pagestyle\{.*\} regularExpression beginString - [\\¥]part{.+} + [\\¥]part\{.+\} ignoreCase regularExpression @@ -222,31 +222,31 @@ beginString - [\\¥]section\*?{.*} + [\\¥]section\*?\{.*\} regularExpression beginString - [\\¥]subsection\*?{.*} + [\\¥]subsection\*?\{.*\} regularExpression beginString - [\\¥]subsubsection\*?{.*} + [\\¥]subsubsection\*?\{.*\} regularExpression beginString - [\\¥]title{.*} + [\\¥]title\{.*\} regularExpression beginString - [\\¥]usepackage(\[.+\])?{.+} + [\\¥]usepackage(\[.+\])?\{.+\} regularExpression @@ -255,9 +255,9 @@ beginString - [\\¥]frac{[^}]+}{[^}]+ + [\\¥]frac\{[^}]+\}\{[^}]+ endString - } + \} regularExpression @@ -266,13 +266,13 @@ beginString - [\\¥]chapter\*?{(.*)} + [\\¥]chapter\*?\{(.*)\} keyString $1 beginString - [\\¥]part\*?{(.*)} + [\\¥]part\*?\{(.*)\} bold keyString @@ -280,19 +280,19 @@ beginString - [\\¥]section\*?{(.*)} + [\\¥]section\*?\{(.*)\} keyString - $1 beginString - [\\¥]subsection\*?{(.*)} + [\\¥]subsection\*?\{(.*)\} keyString -- $1 beginString - [\\¥]subsubsection\*?{(.*)} + [\\¥]subsubsection\*?\{(.*)\} keyString --- $1 diff --git a/SyntaxColorings/defaultSyntaxStyle_Markdown.plist b/SyntaxColorings/defaultSyntaxStyle_Markdown.plist new file mode 100644 index 0000000000..4700c7f720 --- /dev/null +++ b/SyntaxColorings/defaultSyntaxStyle_Markdown.plist @@ -0,0 +1,335 @@ + + + + + charactersArray + + + beginString + (?#[extra] codeblock)^[~]{3,}[{[:space:]](?!~~~)(?:.|\n)*?\n[\t ]*[~]{3,}[\t ]*$ + regularExpression + + + + beginString + (?#[github] codeblock)^```[^`](?!```)(?:.|\n)*?\n[\t ]*``` + regularExpression + + + + beginString + (?#code)(?<![\\`])`(?:\n[^\n]|[^\n])*?(?<!\\)` + regularExpression + + + + beginString + (?#code)(?<!\\)``(?:\n[^\n]|[^\n])*?(?<!\\)`` + regularExpression + + + + commandsArray + + + beginString + (?#h1).+\n\=+[\t ]*$ + regularExpression + + + + beginString + (?#h1-6)^#{1,6}[ \t]? + endString + $ + regularExpression + + + + beginString + (?#h2).+\n\-+[\t ]*$ + regularExpression + + + + commentsArray + + + beginString + <!-- + endString + --> + + + completionsArray + + extensions + + + keyString + mkd + + + keyString + md + + + keyString + markdown + + + keyString + mdown + + + keyString + mkdn + + + keywordsArray + + + beginString + (?#[extra] dt)\n[^: \t][^\n]*(?=([\t ]*\n)?\n[\t ]*:[\t ]) + regularExpression + + + + beginString + (?#[extra] footnote)^[ ]{0,3}\[\^[a-zA-Z0-9]*\]:\s + regularExpression + + + + beginString + (?#blockquote)^([ ]{4}|\t)?>[\t ] + endString + (\n[ \t]*\n)|\z + regularExpression + + + + beginString + (?#em)(?<![\\*])\*[^ \t*](?:\n[^\n]|[^\n])*?(?<![\\ ])\* + regularExpression + + + + beginString + (?#em)(?<![\\_])_[^ \t_](?:\n[^\n]|[^\n])*?(?<![\\ ])_ + regularExpression + + + + beginString + (?#hr)\n[\t ]*\n(?:\- *){3,}$ + regularExpression + + + + beginString + (?#hr)^(?:\* *){3,}$ + regularExpression + + + + beginString + (?#hr)^(?:\_ *){3,}$ + regularExpression + + + + beginString + (?#li)^[ \t]*[\*\-\+][ \t] + regularExpression + + + + beginString + (?#li)^[ \t]*\d+\.[ \t] + regularExpression + + + + beginString + (?#strong)(?<!\\)\*\*(?![ \t])(?:\n[^\n]|[^\n])*?(?<![\\\t ])\*\* + regularExpression + + + + beginString + (?#strong)(?<!\\)__(?![ \t])(?:\n[^\n]|[^\n])*?(?<![\\\t ])__ + regularExpression + + + + numbersArray + + + beginString + (?#img)(?<!\\)!\[.*?(?<!\\)\](?=\() + regularExpression + + + + beginString + (?#img)(?<!\\)!\[.*?(?<!\\)\][ ]?(?=\[) + regularExpression + + + + outlineMenuArray + + + beginString + (.+)(?=\n\-+[\t ]*$) + bold + + keyString + $1 + underline + + + + beginString + (.+)(?=\n\=+[\t ]*$) + bold + + keyString + $1 + underline + + + + beginString + ^#[\t ]?([^#][^\n]*?)#*$ + bold + + ignoreCase + + keyString + $1 + underline + + + + beginString + ^#{2}[\t ]?([^#][^\n]*?)#*$ + bold + + keyString + $1 + underline + + + + beginString + ^#{3}[\t ]?([^#][^\n]*?)#*$ + keyString + $1 + underline + + + + beginString + ^#{4}[\t ]?([^#][^\n]*?)#*$ + keyString + $1 + + + beginString + ^#{5}[\t ]?([^#][^\n]*?)#*$ + keyString + $1 + + + beginString + ^#{6}[\t ]?([^#][^\n]*?)#*$ + keyString + $1 + + + stringsArray + + + beginString + (?#[extra] abbr)^[ ]{0,3}\*\[[^\^].*(?<!\\)\]:\s + endString + (\n[ \t]*\n)|\z + regularExpression + + + + beginString + (?#a href)(?<=\]) ?(?<!\\)\[.*?(?<!\\)\] + regularExpression + + + + beginString + (?#a href)(?<=])\(.*?\) + regularExpression + + + + beginString + (?#a href)^[ ]{0,3}\[[^\^].*(?<!\\)\]:[ \t]+ + endString + (\n[ \t]*\n)|\z + regularExpression + + + + beginString + (?#HTML tag)(?<!\\)</[a-zA-Z][a-zA-Z1-6]*> + ignoreCase + + regularExpression + + + + beginString + (?#HTML tag)(?<!\\)<[a-zA-Z][a-zA-Z1-6]*(\s[^<>]+)?> + ignoreCase + + regularExpression + + + + styleName + Markdown + valuesArray + + + beginString + (?#[extra] a footnote)(?<!(^[ ]{0,3}|\\))\[\^[a-zA-Z0-9]+\] + regularExpression + + + + beginString + (?#a)(?<!\\)\[[^\[\]]*?(?!<\\)\](?=\() + regularExpression + + + + beginString + (?#a)(?<!\\)\[[^\[\]]*?(?!<\\)\][ ]?(?=\[) + regularExpression + + + + beginString + (?#a)<(https?|ftp)(:\/\/[-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)> + regularExpression + + + + beginString + (?#a)<(mailto:)?[a-zA-Z0-9]+[a-zA-Z0-9\._-]*@[a-zA-Z0-9_-]+([a-zA-Z0-9\._-]+)+> + regularExpression + + + + + diff --git a/SyntaxColorings/defaultSyntaxStyle_PHP.plist b/SyntaxColorings/defaultSyntaxStyle_PHP.plist old mode 100644 new mode 100755 index af32a9b9d8..cef69214bb --- a/SyntaxColorings/defaultSyntaxStyle_PHP.plist +++ b/SyntaxColorings/defaultSyntaxStyle_PHP.plist @@ -19,15 +19,67 @@ beginString - abs - ignoreCase - - regularExpression - + __call beginString - abstract + __callStatic + + + beginString + __clone + + + beginString + __construct + + + beginString + __destruct + + + beginString + __get + + + beginString + __halt_compiler + + + beginString + __invoke + + + beginString + __isset + + + beginString + __set + + + beginString + __set_state + + + beginString + __sleep + + + beginString + __toString + + + beginString + __unset + + + beginString + __wakeup + + + beginString + abs ignoreCase regularExpression @@ -67,11 +119,39 @@ beginString - and - ignoreCase - - regularExpression - + aggregate + + + beginString + aggregate_info + + + beginString + aggregate_methods + + + beginString + aggregate_methods_by_list + + + beginString + aggregate_methods_by_regexp + + + beginString + aggregate_properties + + + beginString + aggregate_properties_by_list + + + beginString + aggregate_properties_by_regexp + + + beginString + aggregation_info beginString @@ -133,6 +213,10 @@ regularExpression + + beginString + append + beginString arguments @@ -213,6 +297,10 @@ regularExpression + + beginString + array_fill_keys + beginString array_filter @@ -345,6 +433,14 @@ regularExpression + + beginString + array_replace + + + beginString + array_replace_recursive + beginString array_reverse @@ -393,10 +489,30 @@ regularExpression + + beginString + array_udiff + + + beginString + array_udiff_assoc + + + beginString + array_udiff_uassoc + + + beginString + array_uintersect + beginString array_uintersect_assoc + + beginString + array_uintersect_uassoc + beginString array_unique @@ -441,14 +557,6 @@ regularExpression - - beginString - as - ignoreCase - - regularExpression - - beginString ascii2ebcdic @@ -497,6 +605,14 @@ regularExpression + + beginString + assign + + + beginString + assignElem + beginString atan @@ -665,6 +781,10 @@ regularExpression + + beginString + boolval + beginString bzclose @@ -809,22 +929,6 @@ regularExpression - - beginString - case - ignoreCase - - regularExpression - - - - beginString - catch - ignoreCase - - regularExpression - - beginString ceil @@ -931,11 +1035,7 @@ beginString - class - ignoreCase - - regularExpression - + class_alias beginString @@ -945,6 +1045,18 @@ regularExpression + + beginString + class_implements + + + beginString + class_parents + + + beginString + class_uses + beginString clearstatcache @@ -955,7 +1067,7 @@ beginString - clone + close beginString @@ -973,6 +1085,46 @@ regularExpression + + beginString + com_create_guid + + + beginString + com_event_sink + + + beginString + com_get_active_object + + + beginString + com_load_typelib + + + beginString + com_message_pump + + + beginString + com_print_typeinfo + + + beginString + com_propget + + + beginString + com_propput + + + beginString + com_propset + + + beginString + com_set + beginString compact @@ -1007,7 +1159,7 @@ beginString - const + constant ignoreCase regularExpression @@ -1015,7 +1167,7 @@ beginString - constant + convert_cyr_string ignoreCase regularExpression @@ -1023,11 +1175,11 @@ beginString - convert_cyr_string - ignoreCase - - regularExpression - + convert_uudecode + + + beginString + convert_uuencode beginString @@ -1677,6 +1829,18 @@ regularExpression + + beginString + create + + + beginString + createFromRules + + + beginString + createInverse + beginString crypt @@ -1688,90 +1852,46 @@ beginString ctype_alnum - ignoreCase - - regularExpression - beginString ctype_alpha - ignoreCase - - regularExpression - beginString ctype_cntrl - ignoreCase - - regularExpression - beginString ctype_digit - ignoreCase - - regularExpression - beginString ctype_graph - ignoreCase - - regularExpression - beginString ctype_lower - ignoreCase - - regularExpression - beginString ctype_print - ignoreCase - - regularExpression - beginString ctype_punct - ignoreCase - - regularExpression - beginString ctype_space - ignoreCase - - regularExpression - beginString ctype_upper - ignoreCase - - regularExpression - beginString ctype_xdigit - ignoreCase - - regularExpression - beginString @@ -1781,6 +1901,10 @@ regularExpression + + beginString + curl_copy_handle + beginString curl_errno @@ -1823,11 +1947,47 @@ beginString - curl_setopt - ignoreCase - - regularExpression - + curl_multi_add_handle + + + beginString + curl_multi_close + + + beginString + curl_multi_exec + + + beginString + curl_multi_getcontent + + + beginString + curl_multi_info_read + + + beginString + curl_multi_init + + + beginString + curl_multi_remove_handle + + + beginString + curl_multi_select + + + beginString + curl_setopt + ignoreCase + + regularExpression + + + + beginString + curl_setopt_array beginString @@ -1959,95 +2119,103 @@ beginString - dba_close - ignoreCase - - regularExpression - + date_add beginString - dba_delete - ignoreCase - - regularExpression - + date_create beginString - dba_exists - ignoreCase - - regularExpression - + date_create_from_format beginString - dba_fetch - ignoreCase - - regularExpression - + date_date_set beginString - dba_firstkey - ignoreCase - - regularExpression - + date_default_timezone_get beginString - dba_handlers - ignoreCase - - regularExpression - + date_default_timezone_set beginString - dba_insert - ignoreCase - - regularExpression - + date_diff beginString - dba_list - ignoreCase - - regularExpression - + date_get_last_errors beginString - dba_nextkey - ignoreCase - - regularExpression - + date_isodate_set beginString - dba_open - ignoreCase - - regularExpression - + date_modify beginString - dba_optimize - ignoreCase - - regularExpression - + date_offset_get beginString - dba_popen + date_parse + + + beginString + date_parse_from_format + + + beginString + date_sub + + + beginString + date_sun_info + + + beginString + date_sunrise + + + beginString + date_sunset + + + beginString + date_time_set + + + beginString + date_timezone_get + + + beginString + date_timezone_set + + + beginString + datefmt_format_object + + + beginString + datefmt_get_calendar_object + + + beginString + datefmt_get_timezone + + + beginString + datefmt_set_timezone + + + beginString + dba_close ignoreCase regularExpression @@ -2055,7 +2223,7 @@ beginString - dba_replace + dba_delete ignoreCase regularExpression @@ -2063,7 +2231,7 @@ beginString - dba_sync + dba_exists ignoreCase regularExpression @@ -2071,7 +2239,7 @@ beginString - dbase_add_record + dba_fetch ignoreCase regularExpression @@ -2079,7 +2247,7 @@ beginString - dbase_close + dba_firstkey ignoreCase regularExpression @@ -2087,7 +2255,7 @@ beginString - dbase_create + dba_handlers ignoreCase regularExpression @@ -2095,7 +2263,7 @@ beginString - dbase_delete_record + dba_insert ignoreCase regularExpression @@ -2103,7 +2271,11 @@ beginString - dbase_get_record + dba_key_split + + + beginString + dba_list ignoreCase regularExpression @@ -2111,7 +2283,7 @@ beginString - dbase_get_record_with_names + dba_nextkey ignoreCase regularExpression @@ -2119,7 +2291,7 @@ beginString - dbase_numfields + dba_open ignoreCase regularExpression @@ -2127,7 +2299,7 @@ beginString - dbase_numrecords + dba_optimize ignoreCase regularExpression @@ -2135,7 +2307,7 @@ beginString - dbase_open + dba_popen ignoreCase regularExpression @@ -2143,7 +2315,7 @@ beginString - dbase_pack + dba_replace ignoreCase regularExpression @@ -2151,7 +2323,7 @@ beginString - dbase_replace_record + dba_sync ignoreCase regularExpression @@ -2277,6 +2449,10 @@ regularExpression + + beginString + dbx_fetch_row + beginString dbx_query @@ -2309,6 +2485,10 @@ regularExpression + + beginString + deaggregate + beginString debug_backtrace @@ -2357,14 +2537,6 @@ regularExpression - - beginString - default - ignoreCase - - regularExpression - - beginString define @@ -2373,14 +2545,6 @@ regularExpression - - beginString - define_syslog_variables - ignoreCase - - regularExpression - - beginString defined @@ -2573,6 +2737,10 @@ regularExpression + + beginString + dom_import_simplexml + beginString domxml_new_doc @@ -2637,6 +2805,10 @@ regularExpression + + beginString + dotnet_load + beginString doubleval @@ -2719,43 +2891,15 @@ beginString - endfor - ignoreCase - - regularExpression - - - - beginString - endforeach - ignoreCase - - regularExpression - - - - beginString - endif - ignoreCase - - regularExpression - + endDTDEntity beginString - endswitch - ignoreCase - - regularExpression - + eof beginString - endwhile - ignoreCase - - regularExpression - + erase beginString @@ -2789,6 +2933,10 @@ regularExpression + + beginString + error_get_last + beginString error_log @@ -2853,6 +3001,10 @@ regularExpression + + beginString + exif_tagname + beginString exif_thumbnail @@ -2887,11 +3039,7 @@ beginString - extends - ignoreCase - - regularExpression - + export beginString @@ -2919,7 +3067,7 @@ beginString - fbsql_affected_rows + fclose ignoreCase regularExpression @@ -2927,7 +3075,7 @@ beginString - fbsql_autocommit + feof ignoreCase regularExpression @@ -2935,23 +3083,15 @@ beginString - fbsql_change_user - ignoreCase - - regularExpression - + fetch_all beginString - fbsql_close - ignoreCase - - regularExpression - + fetchColumnTypes beginString - fbsql_commit + fflush ignoreCase regularExpression @@ -2959,7 +3099,7 @@ beginString - fbsql_connect + fgetc ignoreCase regularExpression @@ -2967,7 +3107,7 @@ beginString - fbsql_create_blob + fgetcsv ignoreCase regularExpression @@ -2975,7 +3115,7 @@ beginString - fbsql_create_clob + fgets ignoreCase regularExpression @@ -2983,7 +3123,7 @@ beginString - fbsql_create_db + fgetss ignoreCase regularExpression @@ -2991,7 +3131,7 @@ beginString - fbsql_data_seek + file ignoreCase regularExpression @@ -2999,7 +3139,7 @@ beginString - fbsql_database + file_exists ignoreCase regularExpression @@ -3007,7 +3147,7 @@ beginString - fbsql_database_password + file_get_contents ignoreCase regularExpression @@ -3015,7 +3155,11 @@ beginString - fbsql_db_query + file_put_contents + + + beginString + fileatime ignoreCase regularExpression @@ -3023,7 +3167,7 @@ beginString - fbsql_db_status + filectime ignoreCase regularExpression @@ -3031,7 +3175,7 @@ beginString - fbsql_drop_db + filegroup ignoreCase regularExpression @@ -3039,7 +3183,7 @@ beginString - fbsql_errno + fileinode ignoreCase regularExpression @@ -3047,7 +3191,7 @@ beginString - fbsql_error + filemtime ignoreCase regularExpression @@ -3055,7 +3199,7 @@ beginString - fbsql_fetch_array + fileowner ignoreCase regularExpression @@ -3063,7 +3207,7 @@ beginString - fbsql_fetch_assoc + fileperms ignoreCase regularExpression @@ -3071,7 +3215,7 @@ beginString - fbsql_fetch_field + filesize ignoreCase regularExpression @@ -3079,7 +3223,7 @@ beginString - fbsql_fetch_lengths + filetype ignoreCase regularExpression @@ -3087,7 +3231,7 @@ beginString - fbsql_fetch_object + floatval ignoreCase regularExpression @@ -3095,7 +3239,7 @@ beginString - fbsql_fetch_row + flock ignoreCase regularExpression @@ -3103,7 +3247,7 @@ beginString - fbsql_field_flags + floor ignoreCase regularExpression @@ -3111,7 +3255,11 @@ beginString - fbsql_field_len + flush + + + beginString + fmod ignoreCase regularExpression @@ -3119,7 +3267,7 @@ beginString - fbsql_field_name + fnmatch ignoreCase regularExpression @@ -3127,7 +3275,7 @@ beginString - fbsql_field_seek + fopen ignoreCase regularExpression @@ -3135,7 +3283,15 @@ beginString - fbsql_field_table + forward_static_call + + + beginString + forward_static_call_array + + + beginString + fpassthru ignoreCase regularExpression @@ -3143,7 +3299,7 @@ beginString - fbsql_field_type + fprintf ignoreCase regularExpression @@ -3151,7 +3307,7 @@ beginString - fbsql_free_result + fputs ignoreCase regularExpression @@ -3159,7 +3315,7 @@ beginString - fbsql_get_autostart_info + fread ignoreCase regularExpression @@ -3167,7 +3323,15 @@ beginString - fbsql_hostname + free + + + beginString + frenchtojd + + + beginString + fscanf ignoreCase regularExpression @@ -3175,7 +3339,7 @@ beginString - fbsql_insert_id + fseek ignoreCase regularExpression @@ -3183,7 +3347,7 @@ beginString - fbsql_list_dbs + fsockopen ignoreCase regularExpression @@ -3191,7 +3355,7 @@ beginString - fbsql_list_fields + fstat ignoreCase regularExpression @@ -3199,7 +3363,7 @@ beginString - fbsql_list_tables + ftell ignoreCase regularExpression @@ -3207,7 +3371,7 @@ beginString - fbsql_next_resul + ftok ignoreCase regularExpression @@ -3215,7 +3379,11 @@ beginString - fbsql_num_fields + ftp_alloc + + + beginString + ftp_cdup ignoreCase regularExpression @@ -3223,7 +3391,7 @@ beginString - fbsql_num_rows + ftp_chdir ignoreCase regularExpression @@ -3231,7 +3399,7 @@ beginString - fbsql_password + ftp_chmod ignoreCase regularExpression @@ -3239,7 +3407,7 @@ beginString - fbsql_pconnect + ftp_close ignoreCase regularExpression @@ -3247,7 +3415,7 @@ beginString - fbsql_query + ftp_connect ignoreCase regularExpression @@ -3255,7 +3423,7 @@ beginString - fbsql_read_blob + ftp_delete ignoreCase regularExpression @@ -3263,7 +3431,7 @@ beginString - fbsql_read_clob + ftp_exec ignoreCase regularExpression @@ -3271,7 +3439,7 @@ beginString - fbsql_result + ftp_fget ignoreCase regularExpression @@ -3279,7 +3447,7 @@ beginString - fbsql_rollback + ftp_fput ignoreCase regularExpression @@ -3287,7 +3455,7 @@ beginString - fbsql_select_db + ftp_get ignoreCase regularExpression @@ -3295,7 +3463,7 @@ beginString - fbsql_set_lob_mode + ftp_get_option ignoreCase regularExpression @@ -3303,7 +3471,7 @@ beginString - fbsql_set_transaction + ftp_login ignoreCase regularExpression @@ -3311,7 +3479,7 @@ beginString - fbsql_start_db + ftp_mdtm ignoreCase regularExpression @@ -3319,7 +3487,7 @@ beginString - fbsql_stop_db + ftp_mkdir ignoreCase regularExpression @@ -3327,7 +3495,7 @@ beginString - fbsql_tablename + ftp_nb_continue ignoreCase regularExpression @@ -3335,7 +3503,7 @@ beginString - fbsql_username + ftp_nb_fget ignoreCase regularExpression @@ -3343,7 +3511,7 @@ beginString - fbsql_warnings + ftp_nb_fput ignoreCase regularExpression @@ -3351,7 +3519,7 @@ beginString - fclose + ftp_nb_get ignoreCase regularExpression @@ -3359,7 +3527,7 @@ beginString - fdf_add_doc_javascript + ftp_nb_put ignoreCase regularExpression @@ -3367,7 +3535,7 @@ beginString - fdf_add_template + ftp_nlist ignoreCase regularExpression @@ -3375,7 +3543,7 @@ beginString - fdf_close + ftp_pasv ignoreCase regularExpression @@ -3383,7 +3551,7 @@ beginString - fdf_create + ftp_put ignoreCase regularExpression @@ -3391,7 +3559,7 @@ beginString - fdf_enum_values + ftp_pwd ignoreCase regularExpression @@ -3399,7 +3567,7 @@ beginString - fdf_errno + ftp_quit ignoreCase regularExpression @@ -3407,7 +3575,7 @@ beginString - fdf_error + ftp_raw ignoreCase regularExpression @@ -3415,7 +3583,7 @@ beginString - fdf_get_ap + ftp_rawlist ignoreCase regularExpression @@ -3423,7 +3591,7 @@ beginString - fdf_get_attachment + ftp_rename ignoreCase regularExpression @@ -3431,7 +3599,7 @@ beginString - fdf_get_encoding + ftp_rmdir ignoreCase regularExpression @@ -3439,7 +3607,7 @@ beginString - fdf_get_file + ftp_set_option ignoreCase regularExpression @@ -3447,7 +3615,7 @@ beginString - fdf_get_flags + ftp_site ignoreCase regularExpression @@ -3455,7 +3623,7 @@ beginString - fdf_get_opt + ftp_size ignoreCase regularExpression @@ -3463,7 +3631,7 @@ beginString - fdf_get_status + ftp_ssl_connect ignoreCase regularExpression @@ -3471,7 +3639,7 @@ beginString - fdf_get_value + ftp_systype ignoreCase regularExpression @@ -3479,7 +3647,7 @@ beginString - fdf_get_version + ftruncate ignoreCase regularExpression @@ -3487,7 +3655,11 @@ beginString - fdf_header + fullEndElement + + + beginString + func_get_arg ignoreCase regularExpression @@ -3495,7 +3667,7 @@ beginString - fdf_next_field_name + func_get_args ignoreCase regularExpression @@ -3503,7 +3675,7 @@ beginString - fdf_open + func_num_args ignoreCase regularExpression @@ -3511,7 +3683,7 @@ beginString - fdf_open_string + function_exists ignoreCase regularExpression @@ -3519,7 +3691,7 @@ beginString - fdf_remove_item + fwrite ignoreCase regularExpression @@ -3527,7 +3699,23 @@ beginString - fdf_save + gc_collect_cycles + + + beginString + gc_disable + + + beginString + gc_enable + + + beginString + gc_enabled + + + beginString + gd_info ignoreCase regularExpression @@ -3535,7 +3723,7 @@ beginString - fdf_save_string + get_browser ignoreCase regularExpression @@ -3543,7 +3731,11 @@ beginString - fdf_set_ap + get_called_class + + + beginString + get_cfg_var ignoreCase regularExpression @@ -3551,7 +3743,7 @@ beginString - fdf_set_encoding + get_class ignoreCase regularExpression @@ -3559,7 +3751,7 @@ beginString - fdf_set_file + get_class_methods ignoreCase regularExpression @@ -3567,7 +3759,7 @@ beginString - fdf_set_flags + get_class_vars ignoreCase regularExpression @@ -3575,7 +3767,11 @@ beginString - fdf_set_javascript_action + get_connection_stats + + + beginString + get_current_user ignoreCase regularExpression @@ -3583,7 +3779,7 @@ beginString - fdf_set_opt + get_declared_classes ignoreCase regularExpression @@ -3591,7 +3787,15 @@ beginString - fdf_set_status + get_declared_interfaces + + + beginString + get_declared_traits + + + beginString + get_defined_constants ignoreCase regularExpression @@ -3599,7 +3803,7 @@ beginString - fdf_set_submit_form_action + get_defined_functions ignoreCase regularExpression @@ -3607,7 +3811,7 @@ beginString - fdf_set_target_frame + get_defined_vars ignoreCase regularExpression @@ -3615,7 +3819,7 @@ beginString - fdf_set_value + get_extension_funcs ignoreCase regularExpression @@ -3623,7 +3827,11 @@ beginString - fdf_set_version + get_headers + + + beginString + get_html_translation_table ignoreCase regularExpression @@ -3631,7 +3839,11 @@ beginString - feof + get_include_path + + + beginString + get_included_files ignoreCase regularExpression @@ -3639,7 +3851,7 @@ beginString - fflush + get_loaded_extensions ignoreCase regularExpression @@ -3647,7 +3859,7 @@ beginString - fgetc + get_magic_quotes_gpc ignoreCase regularExpression @@ -3655,7 +3867,7 @@ beginString - fgetcsv + get_magic_quotes_runtime ignoreCase regularExpression @@ -3663,7 +3875,7 @@ beginString - fgets + get_meta_tags ignoreCase regularExpression @@ -3671,7 +3883,7 @@ beginString - fgetss + get_object_vars ignoreCase regularExpression @@ -3679,7 +3891,7 @@ beginString - file + get_parent_class ignoreCase regularExpression @@ -3687,7 +3899,7 @@ beginString - file_exists + get_required_files ignoreCase regularExpression @@ -3695,7 +3907,7 @@ beginString - file_get_contents + get_resource_type ignoreCase regularExpression @@ -3703,7 +3915,7 @@ beginString - file_put_contents + getallheaders ignoreCase regularExpression @@ -3711,7 +3923,11 @@ beginString - fileatime + getBuffering + + + beginString + getcwd ignoreCase regularExpression @@ -3719,7 +3935,7 @@ beginString - filectime + getdate ignoreCase regularExpression @@ -3727,7 +3943,11 @@ beginString - filegroup + getElem + + + beginString + getenv ignoreCase regularExpression @@ -3735,7 +3955,15 @@ beginString - fileinode + getErrorCode + + + beginString + getErrorMessage + + + beginString + gethostbyaddr ignoreCase regularExpression @@ -3743,7 +3971,7 @@ beginString - filemtime + gethostbyname ignoreCase regularExpression @@ -3751,7 +3979,7 @@ beginString - fileowner + gethostbynamel ignoreCase regularExpression @@ -3759,7 +3987,11 @@ beginString - fileperms + gethostname + + + beginString + getimagesize ignoreCase regularExpression @@ -3767,7 +3999,11 @@ beginString - filepro + getimagesizefromstring + + + beginString + getlastmod ignoreCase regularExpression @@ -3775,7 +4011,7 @@ beginString - filepro_fieldcount + getmxrr ignoreCase regularExpression @@ -3783,7 +4019,7 @@ beginString - filepro_fieldname + getmygid ignoreCase regularExpression @@ -3791,7 +4027,7 @@ beginString - filepro_fieldtype + getmyinode ignoreCase regularExpression @@ -3799,7 +4035,7 @@ beginString - filepro_fieldwidth + getmypid ignoreCase regularExpression @@ -3807,7 +4043,7 @@ beginString - filepro_retrieve + getmyuid ignoreCase regularExpression @@ -3815,7 +4051,7 @@ beginString - filepro_rowcount + getopt ignoreCase regularExpression @@ -3823,7 +4059,7 @@ beginString - filesize + getprotobyname ignoreCase regularExpression @@ -3831,7 +4067,7 @@ beginString - filetype + getprotobynumber ignoreCase regularExpression @@ -3839,7 +4075,7 @@ beginString - final + getrandmax ignoreCase regularExpression @@ -3847,7 +4083,7 @@ beginString - floatval + getrusage ignoreCase regularExpression @@ -3855,7 +4091,7 @@ beginString - flock + getservbyname ignoreCase regularExpression @@ -3863,7 +4099,7 @@ beginString - floor + getservbyport ignoreCase regularExpression @@ -3871,7 +4107,7 @@ beginString - flush + gettext ignoreCase regularExpression @@ -3879,7 +4115,7 @@ beginString - fmod + gettimeofday ignoreCase regularExpression @@ -3887,7 +4123,7 @@ beginString - fnmatch + gettype ignoreCase regularExpression @@ -3895,7 +4131,7 @@ beginString - fopen + gif ignoreCase regularExpression @@ -3903,7 +4139,7 @@ beginString - fpassthru + glob ignoreCase regularExpression @@ -3911,7 +4147,7 @@ beginString - fprintf + gmdate ignoreCase regularExpression @@ -3919,7 +4155,7 @@ beginString - fputs + gmmktime ignoreCase regularExpression @@ -3927,7 +4163,7 @@ beginString - fread + gmp_abs ignoreCase regularExpression @@ -3935,7 +4171,7 @@ beginString - fscanf + gmp_add ignoreCase regularExpression @@ -3943,7 +4179,7 @@ beginString - fseek + gmp_and ignoreCase regularExpression @@ -3951,7 +4187,7 @@ beginString - fsockopen + gmp_clrbit ignoreCase regularExpression @@ -3959,7 +4195,7 @@ beginString - fstat + gmp_cmp ignoreCase regularExpression @@ -3967,7 +4203,7 @@ beginString - ftell + gmp_com ignoreCase regularExpression @@ -3975,7 +4211,7 @@ beginString - ftok + gmp_div ignoreCase regularExpression @@ -3983,7 +4219,7 @@ beginString - ftp_cdup + gmp_div_q ignoreCase regularExpression @@ -3991,7 +4227,7 @@ beginString - ftp_chdir + gmp_div_qr ignoreCase regularExpression @@ -3999,7 +4235,7 @@ beginString - ftp_chmod + gmp_div_r ignoreCase regularExpression @@ -4007,7 +4243,7 @@ beginString - ftp_close + gmp_divexact ignoreCase regularExpression @@ -4015,7 +4251,7 @@ beginString - ftp_connect + gmp_fact ignoreCase regularExpression @@ -4023,7 +4259,7 @@ beginString - ftp_delete + gmp_gcd ignoreCase regularExpression @@ -4031,7 +4267,7 @@ beginString - ftp_exec + gmp_gcdext ignoreCase regularExpression @@ -4039,7 +4275,7 @@ beginString - ftp_fget + gmp_hamdist ignoreCase regularExpression @@ -4047,7 +4283,7 @@ beginString - ftp_fput + gmp_init ignoreCase regularExpression @@ -4055,7 +4291,7 @@ beginString - ftp_get + gmp_intval ignoreCase regularExpression @@ -4063,7 +4299,7 @@ beginString - ftp_get_option + gmp_invert ignoreCase regularExpression @@ -4071,7 +4307,7 @@ beginString - ftp_login + gmp_jacobi ignoreCase regularExpression @@ -4079,7 +4315,7 @@ beginString - ftp_mdtm + gmp_legendre ignoreCase regularExpression @@ -4087,7 +4323,7 @@ beginString - ftp_mkdir + gmp_mod ignoreCase regularExpression @@ -4095,7 +4331,7 @@ beginString - ftp_nb_continue + gmp_mul ignoreCase regularExpression @@ -4103,7 +4339,7 @@ beginString - ftp_nb_fget + gmp_neg ignoreCase regularExpression @@ -4111,7 +4347,11 @@ beginString - ftp_nb_fput + gmp_nextprime + + + beginString + gmp_or ignoreCase regularExpression @@ -4119,7 +4359,7 @@ beginString - ftp_nb_get + gmp_perfect_square ignoreCase regularExpression @@ -4127,7 +4367,7 @@ beginString - ftp_nb_put + gmp_popcount ignoreCase regularExpression @@ -4135,7 +4375,7 @@ beginString - ftp_nlist + gmp_pow ignoreCase regularExpression @@ -4143,7 +4383,7 @@ beginString - ftp_pasv + gmp_powm ignoreCase regularExpression @@ -4151,7 +4391,7 @@ beginString - ftp_put + gmp_prob_prime ignoreCase regularExpression @@ -4159,7 +4399,7 @@ beginString - ftp_pwd + gmp_random ignoreCase regularExpression @@ -4167,7 +4407,7 @@ beginString - ftp_quit + gmp_scan0 ignoreCase regularExpression @@ -4175,7 +4415,7 @@ beginString - ftp_raw + gmp_scan1 ignoreCase regularExpression @@ -4183,7 +4423,7 @@ beginString - ftp_rawlist + gmp_setbit ignoreCase regularExpression @@ -4191,7 +4431,7 @@ beginString - ftp_rename + gmp_sign ignoreCase regularExpression @@ -4199,7 +4439,7 @@ beginString - ftp_rmdir + gmp_sqrt ignoreCase regularExpression @@ -4207,7 +4447,7 @@ beginString - ftp_set_option + gmp_sqrtrm ignoreCase regularExpression @@ -4215,7 +4455,7 @@ beginString - ftp_site + gmp_strval ignoreCase regularExpression @@ -4223,7 +4463,7 @@ beginString - ftp_size + gmp_sub ignoreCase regularExpression @@ -4231,15 +4471,11 @@ beginString - ftp_ssl_connect - ignoreCase - - regularExpression - + gmp_testbit beginString - ftp_systype + gmp_xor ignoreCase regularExpression @@ -4247,7 +4483,7 @@ beginString - ftruncate + gmstrftime ignoreCase regularExpression @@ -4255,231 +4491,123 @@ beginString - func_get_arg - ignoreCase - - regularExpression - + grapheme_extract beginString - func_get_args - ignoreCase - - regularExpression - + grapheme_stripos beginString - func_num_args - ignoreCase - - regularExpression - + grapheme_stristr beginString - function_exists - ignoreCase - - regularExpression - + grapheme_strlen beginString - fwrite - ignoreCase - - regularExpression - + grapheme_strpos beginString - gd_info - ignoreCase - - regularExpression - + grapheme_strripos beginString - get_browser - ignoreCase - - regularExpression - + grapheme_strrpos beginString - get_cfg_var - ignoreCase - - regularExpression - + grapheme_strstr beginString - get_class - ignoreCase - - regularExpression - + grapheme_substr beginString - get_class_methods - ignoreCase - - regularExpression - + gregoriantojd beginString - get_class_vars - ignoreCase - - regularExpression - + gzclose beginString - get_current_user - ignoreCase - - regularExpression - + gzcompress beginString - get_declared_classes - ignoreCase - - regularExpression - + gzdecode beginString - get_declared_interfaces + gzdeflate beginString - get_defined_constants - ignoreCase - - regularExpression - + gzencode beginString - get_defined_functions - ignoreCase - - regularExpression - + gzeof beginString - get_defined_vars - ignoreCase - - regularExpression - + gzfile beginString - get_extension_funcs - ignoreCase - - regularExpression - + gzgetc beginString - get_html_translation_table - ignoreCase - - regularExpression - + gzgets beginString - get_include_path + gzgetss beginString - get_included_files - ignoreCase - - regularExpression - + gzinflate beginString - get_loaded_extensions - ignoreCase - - regularExpression - + gzopen beginString - get_magic_quotes_gpc - ignoreCase - - regularExpression - + gzpassthru beginString - get_magic_quotes_runtime - ignoreCase - - regularExpression - + gzputs beginString - get_meta_tags - ignoreCase - - regularExpression - + gzread beginString - get_object_vars - ignoreCase - - regularExpression - + gzrewind beginString - get_parent_class - ignoreCase - - regularExpression - + gzseek beginString - get_required_files - ignoreCase - - regularExpression - + gztell beginString - get_resource_type - ignoreCase - - regularExpression - + gzuncompress beginString - getallheaders + gzwrite ignoreCase regularExpression @@ -4487,15 +4615,55 @@ beginString - getcwd - ignoreCase - - regularExpression - + hash beginString - getdate + hash_algos + + + beginString + hash_copy + + + beginString + hash_file + + + beginString + hash_final + + + beginString + hash_hmac + + + beginString + hash_hmac_file + + + beginString + hash_init + + + beginString + hash_pbkdf2 + + + beginString + hash_update + + + beginString + hash_update_file + + + beginString + hash_update_stream + + + beginString + header ignoreCase regularExpression @@ -4503,7 +4671,19 @@ beginString - getenv + header_register_callback + + + beginString + header_remove + + + beginString + headers_list + + + beginString + headers_sent ignoreCase regularExpression @@ -4511,7 +4691,7 @@ beginString - gethostbyaddr + hebrev ignoreCase regularExpression @@ -4519,7 +4699,7 @@ beginString - gethostbyname + hebrevc ignoreCase regularExpression @@ -4527,7 +4707,11 @@ beginString - gethostbynamel + hex2bin + + + beginString + highlight_file ignoreCase regularExpression @@ -4535,7 +4719,7 @@ beginString - getimagesize + highlight_string ignoreCase regularExpression @@ -4543,7 +4727,7 @@ beginString - getlastmod + html_entity_decode ignoreCase regularExpression @@ -4551,7 +4735,7 @@ beginString - getmxrr + htmlentities ignoreCase regularExpression @@ -4559,7 +4743,7 @@ beginString - getmygid + htmlspecialchars ignoreCase regularExpression @@ -4567,23 +4751,15 @@ beginString - getmyinode - ignoreCase - - regularExpression - + http_build_query beginString - getmypid - ignoreCase - - regularExpression - + http_response_code beginString - getmyuid + hypot ignoreCase regularExpression @@ -4591,391 +4767,199 @@ beginString - getopt - ignoreCase - - regularExpression - + ibase_add_user beginString - getprotobyname - ignoreCase - - regularExpression - + ibase_affected_rows beginString - getprotobynumber - ignoreCase - - regularExpression - + ibase_backup beginString - getrandmax - ignoreCase - - regularExpression - + ibase_blob_add beginString - getrusage - ignoreCase - - regularExpression - + ibase_blob_cancel beginString - getservbyname - ignoreCase - - regularExpression - + ibase_blob_close beginString - getservbyport - ignoreCase - - regularExpression - + ibase_blob_create beginString - gettext - ignoreCase - - regularExpression - + ibase_blob_echo beginString - gettimeofday - ignoreCase - - regularExpression - + ibase_blob_get beginString - gettype - ignoreCase - - regularExpression - + ibase_blob_import beginString - gif - ignoreCase - - regularExpression - + ibase_blob_info beginString - glob - ignoreCase - - regularExpression - + ibase_blob_open beginString - gmdate - ignoreCase - - regularExpression - + ibase_commit beginString - gmmktime - ignoreCase - - regularExpression - + ibase_commit_ret beginString - gmp_abs - ignoreCase - - regularExpression - + ibase_connect beginString - gmp_add - ignoreCase - - regularExpression - + ibase_db_info beginString - gmp_and - ignoreCase - - regularExpression - + ibase_delete_user beginString - gmp_clrbit - ignoreCase - - regularExpression - + ibase_drop_db beginString - gmp_cmp - ignoreCase - - regularExpression - + ibase_errcode beginString - gmp_com - ignoreCase - - regularExpression - + ibase_errmsg beginString - gmp_div - ignoreCase - - regularExpression - + ibase_execute beginString - gmp_div_q - ignoreCase - - regularExpression - + ibase_fetch_assoc beginString - gmp_div_qr - ignoreCase - - regularExpression - + ibase_fetch_object beginString - gmp_div_r - ignoreCase - - regularExpression - + ibase_fetch_row beginString - gmp_divexact - ignoreCase - - regularExpression - + ibase_field_info beginString - gmp_fact - ignoreCase - - regularExpression - + ibase_free_event_handler beginString - gmp_gcd - ignoreCase - - regularExpression - + ibase_free_query beginString - gmp_gcdext - ignoreCase - - regularExpression - + ibase_free_result beginString - gmp_hamdist - ignoreCase - - regularExpression - + ibase_gen_id beginString - gmp_init - ignoreCase - - regularExpression - + ibase_maintain_db beginString - gmp_intval - ignoreCase - - regularExpression - + ibase_modify_user beginString - gmp_invert - ignoreCase - - regularExpression - + ibase_name_result beginString - gmp_jacobi - ignoreCase - - regularExpression - + ibase_num_fields beginString - gmp_legendre - ignoreCase - - regularExpression - + ibase_num_params beginString - gmp_mod - ignoreCase - - regularExpression - + ibase_param_info beginString - gmp_mul - ignoreCase - - regularExpression - + ibase_pconnect beginString - gmp_neg - ignoreCase - - regularExpression - + ibase_prepare beginString - gmp_or - ignoreCase - - regularExpression - + ibase_query beginString - gmp_perfect_square - ignoreCase - - regularExpression - + ibase_restore beginString - gmp_popcount - ignoreCase - - regularExpression - + ibase_rollback beginString - gmp_pow - ignoreCase - - regularExpression - + ibase_rollback_ret beginString - gmp_powm - ignoreCase - - regularExpression - + ibase_server_info beginString - gmp_prob_prime - ignoreCase - - regularExpression - + ibase_service_attach beginString - gmp_random - ignoreCase - - regularExpression - + ibase_service_detach beginString - gmp_scan0 - ignoreCase - - regularExpression - + ibase_set_event_handler beginString - gmp_scan1 - ignoreCase - - regularExpression - + ibase_timefmt beginString - gmp_setbit - ignoreCase - - regularExpression - + ibase_trans beginString - gmp_sign - ignoreCase - - regularExpression - + ibase_wait_event beginString - gmp_sqrt + iconv ignoreCase regularExpression @@ -4983,7 +4967,7 @@ beginString - gmp_sqrtrm + iconv_get_encoding ignoreCase regularExpression @@ -4991,31 +4975,19 @@ beginString - gmp_strval - ignoreCase - - regularExpression - + iconv_mime_decode beginString - gmp_sub - ignoreCase - - regularExpression - + iconv_mime_decode_headers beginString - gmp_xor - ignoreCase - - regularExpression - + iconv_mime_encode beginString - gmstrftime + iconv_set_encoding ignoreCase regularExpression @@ -5023,291 +4995,187 @@ beginString - gzclose - ignoreCase - - regularExpression - + iconv_strlen beginString - gzcompress - ignoreCase - - regularExpression - + iconv_strpos beginString - gzdeflate - ignoreCase - - regularExpression - + iconv_strrpos beginString - gzencode - ignoreCase - - regularExpression - + iconv_substr beginString - gzeof - ignoreCase - - regularExpression - + idate beginString - gzfile - ignoreCase - - regularExpression - + idn_to_ascii beginString - gzgetc - ignoreCase - - regularExpression - + idn_to_unicode beginString - gzgets - ignoreCase - - regularExpression - + idn_to_utf8 beginString - gzgetss - ignoreCase - - regularExpression - + ifx_affected_rows beginString - gzinflate - ignoreCase - - regularExpression - + ifx_blobinfile_mode beginString - gzopen - ignoreCase - - regularExpression - + ifx_byteasvarchar beginString - gzpassthru - ignoreCase - - regularExpression - + ifx_close beginString - gzputs - ignoreCase - - regularExpression - + ifx_connect beginString - gzread - ignoreCase - - regularExpression - + ifx_copy_blob beginString - gzrewind - ignoreCase - - regularExpression - + ifx_create_blob beginString - gzseek - ignoreCase - - regularExpression - + ifx_create_char beginString - gztell - ignoreCase - - regularExpression - + ifx_do beginString - gzuncompress - ignoreCase - - regularExpression - + ifx_error beginString - gzwrite - ignoreCase - - regularExpression - + ifx_errormsg beginString - header - ignoreCase - - regularExpression - + ifx_fetch_row beginString - headers_list + ifx_fieldproperties beginString - headers_sent - ignoreCase - - regularExpression - + ifx_fieldtypes beginString - hebrev - ignoreCase - - regularExpression - + ifx_free_blob beginString - hebrevc - ignoreCase - - regularExpression - + ifx_free_char beginString - highlight_file - ignoreCase - - regularExpression - + ifx_free_result beginString - highlight_string - ignoreCase - - regularExpression - + ifx_get_blob beginString - html_entity_decode - ignoreCase - - regularExpression - + ifx_get_char beginString - htmlentities - ignoreCase - - regularExpression - + ifx_getsqlca beginString - htmlspecialchars - ignoreCase - - regularExpression - + ifx_htmltbl_result beginString - hypot - ignoreCase - - regularExpression - + ifx_nullformat beginString - iconv - ignoreCase - - regularExpression - + ifx_num_fields beginString - iconv_get_encoding - ignoreCase - - regularExpression - + ifx_num_rows beginString - iconv_mime_decode + ifx_pconnect beginString - iconv_mime_decode_headers + ifx_prepare beginString - iconv_mime_encode + ifx_query beginString - iconv_set_encoding - ignoreCase - - regularExpression - + ifx_textasvarchar beginString - iconv_strlen + ifx_update_blob beginString - iconv_strpos + ifx_update_char beginString - iconv_strrpos + ifxus_close_slob beginString - iconv_substr + ifxus_create_slob + + + beginString + ifxus_free_slob + + + beginString + ifxus_open_slob + + + beginString + ifxus_read_slob + + + beginString + ifxus_seek_slob + + + beginString + ifxus_tell_slob + + + beginString + ifxus_write_slob beginString @@ -5341,6 +5209,10 @@ regularExpression + + beginString + image_type_to_extension + beginString image_type_to_mime_type @@ -5717,6 +5589,10 @@ regularExpression + + beginString + imagefilter + beginString imagefontheight @@ -5773,6 +5649,14 @@ regularExpression + + beginString + imagegrabscreen + + + beginString + imagegrabwindow + beginString imageinterlace @@ -6173,6 +6057,10 @@ regularExpression + + beginString + imap_gc + beginString imap_get_quota @@ -6189,6 +6077,10 @@ regularExpression + + beginString + imap_getacl + beginString imap_getmailboxes @@ -6333,6 +6225,10 @@ regularExpression + + beginString + imap_mutf7_to_utf8 + beginString imap_num_msg @@ -6535,11 +6431,7 @@ beginString - implements - ignoreCase - - regularExpression - + imap_utf8_to_mutf7 beginString @@ -6551,11 +6443,7 @@ beginString - import_request_variables - ignoreCase - - regularExpression - + import beginString @@ -6573,22 +6461,6 @@ regularExpression - - beginString - include - ignoreCase - - regularExpression - - - - beginString - include_once - ignoreCase - - regularExpression - - beginString ini_alter @@ -6631,15 +6503,303 @@ beginString - interface - ignoreCase - - regularExpression - + interface_exists beginString - interface_exists + intl_error_name + + + beginString + intl_get_error_code + + + beginString + intl_get_error_message + + + beginString + intl_is_failure + + + beginString + intlcal_add + + + beginString + intlcal_after + + + beginString + intlcal_before + + + beginString + intlcal_clear + + + beginString + intlcal_create_instance + + + beginString + intlcal_equals + + + beginString + intlcal_field_difference + + + beginString + intlcal_from_date_time + + + beginString + intlcal_get + + + beginString + intlcal_get_actual_maximum + + + beginString + intlcal_get_actual_minimum + + + beginString + intlcal_get_available_locales + + + beginString + intlcal_get_day_of_week_type + + + beginString + intlcal_get_error_code + + + beginString + intlcal_get_error_message + + + beginString + intlcal_get_first_day_of_week + + + beginString + intlcal_get_greatest_minimum + + + beginString + intlcal_get_keyword_values_for_locale + + + beginString + intlcal_get_least_maximum + + + beginString + intlcal_get_locale + + + beginString + intlcal_get_maximum + + + beginString + intlcal_get_minimal_days_in_first_week + + + beginString + intlcal_get_minimum + + + beginString + intlcal_get_now + + + beginString + intlcal_get_repeated_wall_time_option + + + beginString + intlcal_get_skipped_wall_time_option + + + beginString + intlcal_get_time + + + beginString + intlcal_get_time_zone + + + beginString + intlcal_get_type + + + beginString + intlcal_get_weekend_transition + + + beginString + intlcal_in_daylight_time + + + beginString + intlcal_is_equivalent_to + + + beginString + intlcal_is_lenient + + + beginString + intlcal_is_set + + + beginString + intlcal_is_weekend + + + beginString + intlcal_roll + + + beginString + intlcal_set + + + beginString + intlcal_set_first_day_of_week + + + beginString + intlcal_set_lenient + + + beginString + intlcal_set_repeated_wall_time_option + + + beginString + intlcal_set_skipped_wall_time_option + + + beginString + intlcal_set_time + + + beginString + intlcal_set_time_zone + + + beginString + intlcal_to_date_time + + + beginString + intlgregcal_create_instance + + + beginString + intlgregcal_get_gregorian_change + + + beginString + intlgregcal_is_leap_year + + + beginString + intlgregcal_set_gregorian_change + + + beginString + intltz_count_equivalent_ids + + + beginString + intltz_create_default + + + beginString + intltz_create_enumeration + + + beginString + intltz_create_time_zone + + + beginString + intltz_create_time_zone_id_enumeration + + + beginString + intltz_from_date_time_zone + + + beginString + intltz_get_canonical_id + + + beginString + intltz_get_display_name + + + beginString + intltz_get_dst_savings + + + beginString + intltz_get_equivalent_id + + + beginString + intltz_get_error_code + + + beginString + intltz_get_error_message + + + beginString + intltz_get_gmt + + + beginString + intltz_get_id + + + beginString + intltz_get_offset + + + beginString + intltz_get_raw_offset + + + beginString + intltz_get_region + + + beginString + intltz_get_tz_data_version + + + beginString + intltz_get_unknown + + + beginString + intltz_has_same_rules + + + beginString + intltz_to_date_time_zone + + + beginString + intltz_use_daylight_time beginString @@ -6857,6 +7017,10 @@ regularExpression + + beginString + is_soap_fault + beginString is_string @@ -6905,6 +7069,18 @@ regularExpression + + beginString + iterator_apply + + + beginString + iterator_count + + + beginString + iterator_to_array + beginString java_last_exception_clear @@ -6921,6 +7097,30 @@ regularExpression + + beginString + jddayofweek + + + beginString + jdmonthname + + + beginString + jdtofrench + + + beginString + jdtogregorian + + + beginString + jdtojewish + + + beginString + jdtojulian + beginString jdtounix @@ -6953,13 +7153,21 @@ regularExpression + + beginString + json_decode + + + beginString + json_encode + + + beginString + json_last_error + beginString juliantojd - ignoreCase - - regularExpression - beginString @@ -6985,6 +7193,10 @@ regularExpression + + beginString + lcfirst + beginString lcg_value @@ -6993,6 +7205,186 @@ regularExpression + + beginString + ldap_8859_to_t61 + + + beginString + ldap_add + + + beginString + ldap_bind + + + beginString + ldap_close + + + beginString + ldap_compare + + + beginString + ldap_connect + + + beginString + ldap_control_paged_result + + + beginString + ldap_control_paged_result_response + + + beginString + ldap_count_entries + + + beginString + ldap_delete + + + beginString + ldap_dn2ufn + + + beginString + ldap_err2str + + + beginString + ldap_errno + + + beginString + ldap_error + + + beginString + ldap_explode_dn + + + beginString + ldap_first_attribute + + + beginString + ldap_first_entry + + + beginString + ldap_first_reference + + + beginString + ldap_free_result + + + beginString + ldap_get_attributes + + + beginString + ldap_get_dn + + + beginString + ldap_get_entries + + + beginString + ldap_get_option + + + beginString + ldap_get_values + + + beginString + ldap_get_values_len + + + beginString + ldap_list + + + beginString + ldap_mod_add + + + beginString + ldap_mod_del + + + beginString + ldap_mod_replace + + + beginString + ldap_modify + + + beginString + ldap_next_attribute + + + beginString + ldap_next_entry + + + beginString + ldap_next_reference + + + beginString + ldap_parse_reference + + + beginString + ldap_parse_result + + + beginString + ldap_read + + + beginString + ldap_rename + + + beginString + ldap_sasl_bind + + + beginString + ldap_search + + + beginString + ldap_set_option + + + beginString + ldap_set_rebind_proc + + + beginString + ldap_sort + + + beginString + ldap_start_tls + + + beginString + ldap_t61_to_8859 + + + beginString + ldap_unbind + beginString levenshtein @@ -7005,6 +7397,10 @@ beginString libxml_clear_errors + + beginString + libxml_disable_entity_loader + beginString libxml_get_errors @@ -7013,6 +7409,10 @@ beginString libxml_get_last_error + + beginString + libxml_set_external_entity_loader + beginString libxml_set_streams_context @@ -7045,6 +7445,10 @@ regularExpression + + beginString + listIDs + beginString ll @@ -7053,6 +7457,10 @@ regularExpression + + beginString + load + beginString localeconv @@ -7136,10 +7544,6 @@ beginString max - ignoreCase - - regularExpression - beginString @@ -7221,6 +7625,10 @@ regularExpression + + beginString + mb_encoding_aliases + beginString mb_ereg @@ -7245,6 +7653,10 @@ regularExpression + + beginString + mb_ereg_replace_callback + beginString mb_ereg_search @@ -7357,6 +7769,10 @@ regularExpression + + beginString + mb_list_encodings + beginString mb_output_handler @@ -7429,6 +7845,14 @@ regularExpression + + beginString + mb_stripos + + + beginString + mb_stristr + beginString mb_strlen @@ -7445,6 +7869,18 @@ regularExpression + + beginString + mb_strrchr + + + beginString + mb_strrichr + + + beginString + mb_strripos + beginString mb_strrpos @@ -7453,6 +7889,10 @@ regularExpression + + beginString + mb_strstr + beginString mb_strtolower @@ -7503,112 +7943,224 @@ beginString - md5 - ignoreCase - - regularExpression - + mcrypt_cbc beginString - md5_file - ignoreCase - - regularExpression - + mcrypt_cfb beginString - metaphone - ignoreCase - - regularExpression - + mcrypt_create_iv beginString - method_exists - ignoreCase - - regularExpression - + mcrypt_decrypt beginString - mhash - ignoreCase - - regularExpression - + mcrypt_ecb beginString - mhash_count - ignoreCase - - regularExpression - + mcrypt_enc_get_algorithms_name beginString - mhash_get_block_size - ignoreCase - - regularExpression - + mcrypt_enc_get_block_size beginString - mhash_get_hash_name - ignoreCase - - regularExpression - + mcrypt_enc_get_iv_size beginString - mhash_keygen_s2k - ignoreCase - - regularExpression - + mcrypt_enc_get_key_size beginString - microtime - ignoreCase - - regularExpression - + mcrypt_enc_get_modes_name beginString - mime_content_type - ignoreCase - - regularExpression - + mcrypt_enc_get_supported_key_sizes beginString - min - ignoreCase - - regularExpression - + mcrypt_enc_is_block_algorithm beginString - mkdir - ignoreCase - - regularExpression - + mcrypt_enc_is_block_algorithm_mode beginString - mktime - ignoreCase + mcrypt_enc_is_block_mode + + + beginString + mcrypt_enc_self_test + + + beginString + mcrypt_encrypt + + + beginString + mcrypt_generic + + + beginString + mcrypt_generic_deinit + + + beginString + mcrypt_generic_end + + + beginString + mcrypt_generic_init + + + beginString + mcrypt_get_block_size + + + beginString + mcrypt_get_cipher_name + + + beginString + mcrypt_get_iv_size + + + beginString + mcrypt_get_key_size + + + beginString + mcrypt_list_algorithms + + + beginString + mcrypt_list_modes + + + beginString + mcrypt_module_close + + + beginString + mcrypt_module_get_algo_block_size + + + beginString + mcrypt_module_get_algo_key_size + + + beginString + mcrypt_module_get_supported_key_sizes + + + beginString + mcrypt_module_is_block_algorithm + + + beginString + mcrypt_module_is_block_algorithm_mode + + + beginString + mcrypt_module_is_block_mode + + + beginString + mcrypt_module_open + + + beginString + mcrypt_module_self_test + + + beginString + mcrypt_ofb + + + beginString + md5 + ignoreCase + + regularExpression + + + + beginString + md5_file + ignoreCase + + regularExpression + + + + beginString + mdecrypt_generic + + + beginString + memory_get_peak_usage + + + beginString + metaphone + ignoreCase + + regularExpression + + + + beginString + method_exists + ignoreCase + + regularExpression + + + + beginString + microtime + ignoreCase + + regularExpression + + + + beginString + mime_content_type + ignoreCase + + regularExpression + + + + beginString + min + ignoreCase + + regularExpression + + + + beginString + mkdir + ignoreCase + + regularExpression + + + + beginString + mktime + ignoreCase regularExpression @@ -7645,6 +8197,10 @@ regularExpression + + beginString + msg_queue_exists + beginString msg_receive @@ -7685,6 +8241,126 @@ regularExpression + + beginString + mssql_bind + + + beginString + mssql_close + + + beginString + mssql_connect + + + beginString + mssql_data_seek + + + beginString + mssql_execute + + + beginString + mssql_fetch_array + + + beginString + mssql_fetch_assoc + + + beginString + mssql_fetch_batch + + + beginString + mssql_fetch_field + + + beginString + mssql_fetch_object + + + beginString + mssql_fetch_row + + + beginString + mssql_field_length + + + beginString + mssql_field_name + + + beginString + mssql_field_seek + + + beginString + mssql_field_type + + + beginString + mssql_free_result + + + beginString + mssql_free_statement + + + beginString + mssql_get_last_message + + + beginString + mssql_guid_string + + + beginString + mssql_init + + + beginString + mssql_min_error_severity + + + beginString + mssql_min_message_severity + + + beginString + mssql_next_result + + + beginString + mssql_num_fields + + + beginString + mssql_num_rows + + + beginString + mssql_pconnect + + + beginString + mssql_query + + + beginString + mssql_result + + + beginString + mssql_rows_affected + + + beginString + mssql_select_db + beginString mt_getrandmax @@ -8097,6 +8773,34 @@ regularExpression + + beginString + mysqli_error_list + + + beginString + mysqli_fetch_all + + + beginString + mysqli_get_connection_stats + + + beginString + mysqli_poll + + + beginString + mysqli_reap_async_query + + + beginString + mysqli_stmt_error_list + + + beginString + namedanchor + beginString natcasesort @@ -8113,14 +8817,6 @@ regularExpression - - beginString - new - ignoreCase - - regularExpression - - beginString next @@ -8153,6 +8849,18 @@ regularExpression + + beginString + nsapi_request_headers + + + beginString + nsapi_response_headers + + + beginString + nsapi_virtual + beginString number_format @@ -8263,383 +8971,195 @@ beginString - octdec - ignoreCase - - regularExpression - + ob_tidyhandler beginString - old_function - ignoreCase - - regularExpression - + oci_bind_array_by_name beginString - opendir - ignoreCase - - regularExpression - + oci_bind_by_name beginString - openlog - ignoreCase - - regularExpression - + oci_cancel beginString - or - ignoreCase - - regularExpression - + oci_client_version beginString - ord - ignoreCase - - regularExpression - + oci_close beginString - pack - ignoreCase - - regularExpression - + oci_commit beginString - parse_ini_file - ignoreCase - - regularExpression - + oci_connect beginString - parse_str - ignoreCase - - regularExpression - + oci_define_by_name beginString - parse_url - ignoreCase - - regularExpression - + oci_error beginString - passthru - ignoreCase - - regularExpression - + oci_execute beginString - pathinfo - ignoreCase - - regularExpression - + oci_fetch beginString - pclose - ignoreCase - - regularExpression - + oci_fetch_all beginString - pdf_add_annotation - ignoreCase - - regularExpression - + oci_fetch_array beginString - pdf_add_bookmark - ignoreCase - - regularExpression - + oci_fetch_assoc beginString - pdf_add_launchlink - ignoreCase - - regularExpression - + oci_fetch_object beginString - pdf_add_locallink - ignoreCase - - regularExpression - + oci_fetch_row beginString - pdf_add_note - ignoreCase - - regularExpression - + oci_field_is_null beginString - pdf_add_outline - ignoreCase - - regularExpression - + oci_field_name beginString - pdf_add_pdflink - ignoreCase - - regularExpression - + oci_field_precision beginString - pdf_add_thumbnail - ignoreCase - - regularExpression - + oci_field_scale beginString - pdf_add_weblink - ignoreCase - - regularExpression - + oci_field_size beginString - pdf_arc - ignoreCase - - regularExpression - + oci_field_type beginString - pdf_arcn - ignoreCase - - regularExpression - + oci_field_type_raw beginString - pdf_attach_file - ignoreCase - - regularExpression - + oci_free_statement beginString - pdf_begin_page - ignoreCase - - regularExpression - + oci_internal_debug beginString - pdf_begin_pattern - ignoreCase - - regularExpression - + oci_lob_copy beginString - pdf_begin_template - ignoreCase - - regularExpression - + oci_lob_is_equal beginString - pdf_circle - ignoreCase - - regularExpression - + oci_new_collection beginString - pdf_clip - ignoreCase - - regularExpression - + oci_new_connect beginString - pdf_close - ignoreCase - - regularExpression - + oci_new_cursor beginString - pdf_close_image - ignoreCase - - regularExpression - + oci_new_descriptor beginString - pdf_close_pdi - ignoreCase - - regularExpression - + oci_num_fields beginString - pdf_close_pdi_page - ignoreCase - - regularExpression - + oci_num_rows beginString - pdf_closepath - ignoreCase - - regularExpression - + oci_parse beginString - pdf_closepath_fill_stroke - ignoreCase - - regularExpression - + oci_password_change beginString - pdf_closepath_stroke - ignoreCase - - regularExpression - + oci_pconnect beginString - pdf_concat - ignoreCase - - regularExpression - + oci_result beginString - pdf_continue_text - ignoreCase - - regularExpression - + oci_rollback beginString - pdf_curveto - ignoreCase - - regularExpression - + oci_server_version beginString - pdf_delete - ignoreCase - - regularExpression - + oci_set_action beginString - pdf_end_page - ignoreCase - - regularExpression - + oci_set_client_identifier beginString - pdf_end_pattern - ignoreCase - - regularExpression - + oci_set_client_info beginString - pdf_end_template - ignoreCase - - regularExpression - + oci_set_edition beginString - pdf_endpath - ignoreCase - - regularExpression - + oci_set_module_name beginString - pdf_fill - ignoreCase - - regularExpression - + oci_set_prefetch beginString - pdf_fill_stroke - ignoreCase - - regularExpression - + oci_statement_type beginString - pdf_findfont + octdec ignoreCase regularExpression @@ -8647,367 +9167,187 @@ beginString - pdf_get_buffer - ignoreCase - - regularExpression - + odbc_autocommit beginString - pdf_get_font - ignoreCase - - regularExpression - + odbc_binmode beginString - pdf_get_fontname - ignoreCase - - regularExpression - + odbc_close beginString - pdf_get_fontsize - ignoreCase - - regularExpression - + odbc_close_all beginString - pdf_get_image_height - ignoreCase - - regularExpression - + odbc_columnprivileges beginString - pdf_get_image_width - ignoreCase - - regularExpression - + odbc_columns beginString - pdf_get_majorversion - ignoreCase - - regularExpression - + odbc_commit beginString - pdf_get_minorversion - ignoreCase - - regularExpression - + odbc_connect beginString - pdf_get_parameter - ignoreCase - - regularExpression - + odbc_cursor beginString - pdf_get_pdi_parameter - ignoreCase - - regularExpression - + odbc_data_source beginString - pdf_get_pdi_value - ignoreCase - - regularExpression - + odbc_do beginString - pdf_get_value - ignoreCase - - regularExpression - + odbc_error beginString - pdf_initgraphics - ignoreCase - - regularExpression - + odbc_errormsg beginString - pdf_lineto - ignoreCase - - regularExpression - + odbc_exec beginString - pdf_makespotcolor - ignoreCase - - regularExpression - + odbc_execute beginString - pdf_moveto - ignoreCase - - regularExpression - + odbc_fetch_array beginString - pdf_new - ignoreCase - - regularExpression - + odbc_fetch_into beginString - pdf_open - ignoreCase - - regularExpression - + odbc_fetch_object beginString - pdf_open_CCITT - ignoreCase - - regularExpression - + odbc_fetch_row beginString - pdf_open_file - ignoreCase - - regularExpression - + odbc_field_len beginString - pdf_open_gif - ignoreCase - - regularExpression - + odbc_field_name beginString - pdf_open_image - ignoreCase - - regularExpression - + odbc_field_num beginString - pdf_open_image_file - ignoreCase - - regularExpression - + odbc_field_precision beginString - pdf_open_jpeg - ignoreCase - - regularExpression - + odbc_field_scale beginString - pdf_open_memory_image - ignoreCase - - regularExpression - + odbc_field_type beginString - pdf_open_pdi - ignoreCase - - regularExpression - + odbc_foreignkeys beginString - pdf_open_pdi_page - ignoreCase - - regularExpression - + odbc_free_result beginString - pdf_open_png - ignoreCase - - regularExpression - + odbc_gettypeinfo beginString - pdf_open_tiff - ignoreCase - - regularExpression - + odbc_longreadlen beginString - pdf_place_image - ignoreCase - - regularExpression - + odbc_next_result beginString - pdf_place_pdi_page - ignoreCase - - regularExpression - + odbc_num_fields beginString - pdf_restore - ignoreCase - - regularExpression - + odbc_num_rows beginString - pdf_rotate - ignoreCase - - regularExpression - + odbc_pconnect beginString - pdf_save - ignoreCase - - regularExpression - + odbc_prepare beginString - pdf_scale - ignoreCase - - regularExpression - + odbc_primarykeys beginString - pdf_set_border_color - ignoreCase - - regularExpression - + odbc_procedurecolumns beginString - pdf_set_border_dash - ignoreCase - - regularExpression - + odbc_procedures beginString - pdf_set_border_style - ignoreCase - - regularExpression - + odbc_result beginString - pdf_set_char_spacing - ignoreCase - - regularExpression - + odbc_result_all beginString - pdf_set_duration - ignoreCase - - regularExpression - + odbc_rollback beginString - pdf_set_font - ignoreCase - - regularExpression - + odbc_setoption beginString - pdf_set_horiz_scaling - ignoreCase - - regularExpression - + odbc_specialcolumns beginString - pdf_set_info - ignoreCase - - regularExpression - + odbc_statistics beginString - pdf_set_info_author - ignoreCase - - regularExpression - + odbc_tableprivileges beginString - pdf_set_info_creator - ignoreCase - - regularExpression - + odbc_tables beginString - pdf_set_info_keywords + old_function ignoreCase regularExpression @@ -9015,7 +9355,7 @@ beginString - pdf_set_info_subject + opendir ignoreCase regularExpression @@ -9023,7 +9363,7 @@ beginString - pdf_set_info_title + openlog ignoreCase regularExpression @@ -9031,55 +9371,195 @@ beginString - pdf_set_leading - ignoreCase - - regularExpression - + openssl_cipher_iv_length beginString - pdf_set_parameter - ignoreCase - - regularExpression - + openssl_csr_export beginString - pdf_set_text_matrix - ignoreCase - - regularExpression - + openssl_csr_export_to_file beginString - pdf_set_text_pos - ignoreCase - - regularExpression - + openssl_csr_get_public_key beginString - pdf_set_text_rendering - ignoreCase - - regularExpression - + openssl_csr_get_subject beginString - pdf_set_text_rise - ignoreCase - - regularExpression - + openssl_csr_new beginString - pdf_set_value + openssl_csr_sign + + + beginString + openssl_decrypt + + + beginString + openssl_dh_compute_key + + + beginString + openssl_digest + + + beginString + openssl_encrypt + + + beginString + openssl_error_string + + + beginString + openssl_free_key + + + beginString + openssl_get_cipher_methods + + + beginString + openssl_get_md_methods + + + beginString + openssl_get_privatekey + + + beginString + openssl_get_publickey + + + beginString + openssl_open + + + beginString + openssl_pkcs12_export + + + beginString + openssl_pkcs12_export_to_file + + + beginString + openssl_pkcs12_read + + + beginString + openssl_pkcs7_decrypt + + + beginString + openssl_pkcs7_encrypt + + + beginString + openssl_pkcs7_sign + + + beginString + openssl_pkcs7_verify + + + beginString + openssl_pkey_export + + + beginString + openssl_pkey_export_to_file + + + beginString + openssl_pkey_free + + + beginString + openssl_pkey_get_details + + + beginString + openssl_pkey_get_private + + + beginString + openssl_pkey_get_public + + + beginString + openssl_pkey_new + + + beginString + openssl_private_decrypt + + + beginString + openssl_private_encrypt + + + beginString + openssl_public_decrypt + + + beginString + openssl_public_encrypt + + + beginString + openssl_random_pseudo_bytes + + + beginString + openssl_seal + + + beginString + openssl_sign + + + beginString + openssl_verify + + + beginString + openssl_x509_check_private_key + + + beginString + openssl_x509_checkpurpose + + + beginString + openssl_x509_export + + + beginString + openssl_x509_export_to_file + + + beginString + openssl_x509_free + + + beginString + openssl_x509_parse + + + beginString + openssl_x509_read + + + beginString + ord ignoreCase regularExpression @@ -9087,7 +9567,7 @@ beginString - pdf_set_word_spacing + pack ignoreCase regularExpression @@ -9095,7 +9575,7 @@ beginString - pdf_setcolor + parse_ini_file ignoreCase regularExpression @@ -9103,7 +9583,11 @@ beginString - pdf_setdash + parse_ini_string + + + beginString + parse_str ignoreCase regularExpression @@ -9111,7 +9595,7 @@ beginString - pdf_setflat + parse_url ignoreCase regularExpression @@ -9119,7 +9603,7 @@ beginString - pdf_setfont + passthru ignoreCase regularExpression @@ -9127,7 +9611,23 @@ beginString - pdf_setgray + password_get_info + + + beginString + password_hash + + + beginString + password_needs_rehash + + + beginString + password_verify + + + beginString + pathinfo ignoreCase regularExpression @@ -9135,7 +9635,7 @@ beginString - pdf_setgray_fi + pclose ignoreCase regularExpression @@ -9143,7 +9643,79 @@ beginString - pdf_setgray_stroke + pcntl_alarm + + + beginString + pcntl_exec + + + beginString + pcntl_fork + + + beginString + pcntl_getpriority + + + beginString + pcntl_setpriority + + + beginString + pcntl_signal + + + beginString + pcntl_signal_dispatch + + + beginString + pcntl_sigprocmask + + + beginString + pcntl_sigtimedwait + + + beginString + pcntl_sigwaitinfo + + + beginString + pcntl_wait + + + beginString + pcntl_waitpid + + + beginString + pcntl_wexitstatus + + + beginString + pcntl_wifexited + + + beginString + pcntl_wifsignaled + + + beginString + pcntl_wifstopped + + + beginString + pcntl_wstopsig + + + beginString + pcntl_wtermsig + + + beginString + pdf_add_annotation ignoreCase regularExpression @@ -9151,7 +9723,7 @@ beginString - pdf_setlinecap + pdf_add_bookmark ignoreCase regularExpression @@ -9159,7 +9731,7 @@ beginString - pdf_setlinejoin + pdf_add_launchlink ignoreCase regularExpression @@ -9167,7 +9739,7 @@ beginString - pdf_setlinewidth + pdf_add_locallink ignoreCase regularExpression @@ -9175,7 +9747,7 @@ beginString - pdf_setmatrix + pdf_add_note ignoreCase regularExpression @@ -9183,7 +9755,7 @@ beginString - pdf_setmiterlimit + pdf_add_outline ignoreCase regularExpression @@ -9191,7 +9763,7 @@ beginString - pdf_setpolydash + pdf_add_pdflink ignoreCase regularExpression @@ -9199,7 +9771,7 @@ beginString - pdf_setrgbcolor + pdf_add_thumbnail ignoreCase regularExpression @@ -9207,7 +9779,7 @@ beginString - pdf_setrgbcolor_fill + pdf_add_weblink ignoreCase regularExpression @@ -9215,7 +9787,7 @@ beginString - pdf_setrgbcolor_stroke + pdf_arc ignoreCase regularExpression @@ -9223,7 +9795,7 @@ beginString - pdf_show + pdf_arcn ignoreCase regularExpression @@ -9231,7 +9803,7 @@ beginString - pdf_show_boxed + pdf_attach_file ignoreCase regularExpression @@ -9239,7 +9811,7 @@ beginString - pdf_show_xy + pdf_begin_page ignoreCase regularExpression @@ -9247,7 +9819,7 @@ beginString - pdf_skew + pdf_begin_pattern ignoreCase regularExpression @@ -9255,7 +9827,7 @@ beginString - pdf_stringwidth + pdf_begin_template ignoreCase regularExpression @@ -9263,7 +9835,7 @@ beginString - pdf_stroke + pdf_circle ignoreCase regularExpression @@ -9271,7 +9843,7 @@ beginString - pdf_translate + pdf_clip ignoreCase regularExpression @@ -9279,7 +9851,7 @@ beginString - pfsockopen + pdf_close ignoreCase regularExpression @@ -9287,7 +9859,7 @@ beginString - pg + pdf_close_image ignoreCase regularExpression @@ -9295,7 +9867,7 @@ beginString - pg_affected_rows + pdf_close_pdi ignoreCase regularExpression @@ -9303,7 +9875,7 @@ beginString - pg_cancel_query + pdf_close_pdi_page ignoreCase regularExpression @@ -9311,7 +9883,7 @@ beginString - pg_client_encoding + pdf_closepath ignoreCase regularExpression @@ -9319,7 +9891,7 @@ beginString - pg_close + pdf_closepath_fill_stroke ignoreCase regularExpression @@ -9327,7 +9899,7 @@ beginString - pg_connect + pdf_closepath_stroke ignoreCase regularExpression @@ -9335,7 +9907,7 @@ beginString - pg_connection_busy + pdf_concat ignoreCase regularExpression @@ -9343,7 +9915,7 @@ beginString - pg_connection_reset + pdf_continue_text ignoreCase regularExpression @@ -9351,7 +9923,7 @@ beginString - pg_connection_status + pdf_curveto ignoreCase regularExpression @@ -9359,7 +9931,7 @@ beginString - pg_convert + pdf_delete ignoreCase regularExpression @@ -9367,7 +9939,7 @@ beginString - pg_copy_from + pdf_end_page ignoreCase regularExpression @@ -9375,7 +9947,7 @@ beginString - pg_copy_to + pdf_end_pattern ignoreCase regularExpression @@ -9383,7 +9955,7 @@ beginString - pg_dbname + pdf_end_template ignoreCase regularExpression @@ -9391,7 +9963,7 @@ beginString - pg_delete + pdf_endpath ignoreCase regularExpression @@ -9399,7 +9971,7 @@ beginString - pg_end_copy + pdf_fill ignoreCase regularExpression @@ -9407,7 +9979,7 @@ beginString - pg_escape_bytea + pdf_fill_stroke ignoreCase regularExpression @@ -9415,7 +9987,7 @@ beginString - pg_escape_string + pdf_findfont ignoreCase regularExpression @@ -9423,11 +9995,7 @@ beginString - pg_execute - - - beginString - pg_fetch_all + pdf_get_buffer ignoreCase regularExpression @@ -9435,7 +10003,7 @@ beginString - pg_fetch_array + pdf_get_font ignoreCase regularExpression @@ -9443,7 +10011,7 @@ beginString - pg_fetch_assoc + pdf_get_fontname ignoreCase regularExpression @@ -9451,7 +10019,7 @@ beginString - pg_fetch_object + pdf_get_fontsize ignoreCase regularExpression @@ -9459,7 +10027,7 @@ beginString - pg_fetch_result + pdf_get_image_height ignoreCase regularExpression @@ -9467,7 +10035,7 @@ beginString - pg_fetch_row + pdf_get_image_width ignoreCase regularExpression @@ -9475,7 +10043,7 @@ beginString - pg_field_is_null + pdf_get_majorversion ignoreCase regularExpression @@ -9483,7 +10051,7 @@ beginString - pg_field_name + pdf_get_minorversion ignoreCase regularExpression @@ -9491,7 +10059,7 @@ beginString - pg_field_num + pdf_get_parameter ignoreCase regularExpression @@ -9499,7 +10067,7 @@ beginString - pg_field_prtlen + pdf_get_pdi_parameter ignoreCase regularExpression @@ -9507,7 +10075,7 @@ beginString - pg_field_size + pdf_get_pdi_value ignoreCase regularExpression @@ -9515,7 +10083,7 @@ beginString - pg_field_type + pdf_get_value ignoreCase regularExpression @@ -9523,11 +10091,7 @@ beginString - pg_field_type_oid - - - beginString - pg_free_result + pdf_initgraphics ignoreCase regularExpression @@ -9535,7 +10099,7 @@ beginString - pg_get_notify + pdf_lineto ignoreCase regularExpression @@ -9543,7 +10107,7 @@ beginString - pg_get_pid + pdf_makespotcolor ignoreCase regularExpression @@ -9551,7 +10115,7 @@ beginString - pg_get_result + pdf_moveto ignoreCase regularExpression @@ -9559,7 +10123,7 @@ beginString - pg_host + pdf_new ignoreCase regularExpression @@ -9567,7 +10131,7 @@ beginString - pg_insert + pdf_open ignoreCase regularExpression @@ -9575,7 +10139,7 @@ beginString - pg_last_error + pdf_open_CCITT ignoreCase regularExpression @@ -9583,7 +10147,7 @@ beginString - pg_last_notice + pdf_open_file ignoreCase regularExpression @@ -9591,7 +10155,7 @@ beginString - pg_lo_close + pdf_open_gif ignoreCase regularExpression @@ -9599,7 +10163,7 @@ beginString - pg_lo_create + pdf_open_image ignoreCase regularExpression @@ -9607,7 +10171,7 @@ beginString - pg_lo_export + pdf_open_image_file ignoreCase regularExpression @@ -9615,7 +10179,7 @@ beginString - pg_lo_import + pdf_open_jpeg ignoreCase regularExpression @@ -9623,7 +10187,7 @@ beginString - pg_lo_open + pdf_open_memory_image ignoreCase regularExpression @@ -9631,7 +10195,7 @@ beginString - pg_lo_read + pdf_open_pdi ignoreCase regularExpression @@ -9639,7 +10203,7 @@ beginString - pg_lo_read_all + pdf_open_pdi_page ignoreCase regularExpression @@ -9647,7 +10211,7 @@ beginString - pg_lo_seek + pdf_open_png ignoreCase regularExpression @@ -9655,7 +10219,7 @@ beginString - pg_lo_tell + pdf_open_tiff ignoreCase regularExpression @@ -9663,7 +10227,7 @@ beginString - pg_lo_unlink + pdf_place_image ignoreCase regularExpression @@ -9671,7 +10235,7 @@ beginString - pg_lo_write + pdf_place_pdi_page ignoreCase regularExpression @@ -9679,7 +10243,7 @@ beginString - pg_meta_data + pdf_restore ignoreCase regularExpression @@ -9687,7 +10251,7 @@ beginString - pg_num_fields + pdf_rotate ignoreCase regularExpression @@ -9695,7 +10259,7 @@ beginString - pg_num_rows + pdf_save ignoreCase regularExpression @@ -9703,7 +10267,7 @@ beginString - pg_options + pdf_scale ignoreCase regularExpression @@ -9711,7 +10275,7 @@ beginString - pg_pconnect + pdf_set_border_color ignoreCase regularExpression @@ -9719,7 +10283,7 @@ beginString - pg_ping + pdf_set_border_dash ignoreCase regularExpression @@ -9727,7 +10291,7 @@ beginString - pg_port + pdf_set_border_style ignoreCase regularExpression @@ -9735,11 +10299,7 @@ beginString - pg_prepare - - - beginString - pg_put_line + pdf_set_char_spacing ignoreCase regularExpression @@ -9747,7 +10307,7 @@ beginString - pg_query + pdf_set_duration ignoreCase regularExpression @@ -9755,11 +10315,7 @@ beginString - pg_query_params - - - beginString - pg_result_error + pdf_set_font ignoreCase regularExpression @@ -9767,11 +10323,7 @@ beginString - pg_result_error_field - - - beginString - pg_result_seek + pdf_set_horiz_scaling ignoreCase regularExpression @@ -9779,7 +10331,7 @@ beginString - pg_result_status + pdf_set_info ignoreCase regularExpression @@ -9787,7 +10339,7 @@ beginString - pg_select + pdf_set_info_author ignoreCase regularExpression @@ -9795,15 +10347,7 @@ beginString - pg_send_execute - - - beginString - pg_send_prepare - - - beginString - pg_send_query + pdf_set_info_creator ignoreCase regularExpression @@ -9811,11 +10355,7 @@ beginString - pg_send_query_params - - - beginString - pg_set_client_encoding + pdf_set_info_keywords ignoreCase regularExpression @@ -9823,11 +10363,7 @@ beginString - pg_set_error_verbosity - - - beginString - pg_trace + pdf_set_info_subject ignoreCase regularExpression @@ -9835,11 +10371,7 @@ beginString - pg_transaction_status - - - beginString - pg_tty + pdf_set_info_title ignoreCase regularExpression @@ -9847,7 +10379,7 @@ beginString - pg_unescape_bytea + pdf_set_leading ignoreCase regularExpression @@ -9855,7 +10387,7 @@ beginString - pg_untrace + pdf_set_parameter ignoreCase regularExpression @@ -9863,7 +10395,7 @@ beginString - pg_update + pdf_set_text_matrix ignoreCase regularExpression @@ -9871,11 +10403,7 @@ beginString - pg_version - - - beginString - php_ini_scanned_files + pdf_set_text_pos ignoreCase regularExpression @@ -9883,7 +10411,7 @@ beginString - php_logo_guid + pdf_set_text_rendering ignoreCase regularExpression @@ -9891,7 +10419,7 @@ beginString - php_sapi_name + pdf_set_text_rise ignoreCase regularExpression @@ -9899,7 +10427,7 @@ beginString - php_uname + pdf_set_value ignoreCase regularExpression @@ -9907,11 +10435,7 @@ beginString - php_user_filter - - - beginString - phpcredits + pdf_set_word_spacing ignoreCase regularExpression @@ -9919,7 +10443,7 @@ beginString - phpinfo + pdf_setcolor ignoreCase regularExpression @@ -9927,7 +10451,7 @@ beginString - phpversion + pdf_setdash ignoreCase regularExpression @@ -9935,7 +10459,7 @@ beginString - pi + pdf_setflat ignoreCase regularExpression @@ -9943,7 +10467,7 @@ beginString - png2wbmp + pdf_setfont ignoreCase regularExpression @@ -9951,7 +10475,7 @@ beginString - popen + pdf_setgray ignoreCase regularExpression @@ -9959,7 +10483,7 @@ beginString - pos + pdf_setgray_fi ignoreCase regularExpression @@ -9967,7 +10491,7 @@ beginString - posix_ctermid + pdf_setgray_stroke ignoreCase regularExpression @@ -9975,7 +10499,7 @@ beginString - posix_getcwd + pdf_setlinecap ignoreCase regularExpression @@ -9983,7 +10507,7 @@ beginString - posix_getegid + pdf_setlinejoin ignoreCase regularExpression @@ -9991,7 +10515,7 @@ beginString - posix_geteuid + pdf_setlinewidth ignoreCase regularExpression @@ -9999,7 +10523,7 @@ beginString - posix_getgid + pdf_setmatrix ignoreCase regularExpression @@ -10007,7 +10531,7 @@ beginString - posix_getgrgid + pdf_setmiterlimit ignoreCase regularExpression @@ -10015,7 +10539,7 @@ beginString - posix_getgrnam + pdf_setpolydash ignoreCase regularExpression @@ -10023,7 +10547,7 @@ beginString - posix_getgroups + pdf_setrgbcolor ignoreCase regularExpression @@ -10031,7 +10555,7 @@ beginString - posix_getlogin + pdf_setrgbcolor_fill ignoreCase regularExpression @@ -10039,7 +10563,7 @@ beginString - posix_getpgid + pdf_setrgbcolor_stroke ignoreCase regularExpression @@ -10047,7 +10571,7 @@ beginString - posix_getpgrp + pdf_show ignoreCase regularExpression @@ -10055,7 +10579,7 @@ beginString - posix_getpid + pdf_show_boxed ignoreCase regularExpression @@ -10063,7 +10587,7 @@ beginString - posix_getppid + pdf_show_xy ignoreCase regularExpression @@ -10071,7 +10595,7 @@ beginString - posix_getpwnam + pdf_skew ignoreCase regularExpression @@ -10079,7 +10603,7 @@ beginString - posix_getpwuid + pdf_stringwidth ignoreCase regularExpression @@ -10087,7 +10611,7 @@ beginString - posix_getrlimit + pdf_stroke ignoreCase regularExpression @@ -10095,7 +10619,7 @@ beginString - posix_getsid + pdf_translate ignoreCase regularExpression @@ -10103,7 +10627,7 @@ beginString - posix_getuid + pfsockopen ignoreCase regularExpression @@ -10111,7 +10635,7 @@ beginString - posix_isatty + pg ignoreCase regularExpression @@ -10119,7 +10643,7 @@ beginString - posix_kill + pg_affected_rows ignoreCase regularExpression @@ -10127,7 +10651,7 @@ beginString - posix_mkfifo + pg_cancel_query ignoreCase regularExpression @@ -10135,7 +10659,7 @@ beginString - posix_setegid + pg_client_encoding ignoreCase regularExpression @@ -10143,7 +10667,7 @@ beginString - posix_seteuid + pg_close ignoreCase regularExpression @@ -10151,7 +10675,7 @@ beginString - posix_setgid + pg_connect ignoreCase regularExpression @@ -10159,7 +10683,7 @@ beginString - posix_setpgid + pg_connection_busy ignoreCase regularExpression @@ -10167,7 +10691,7 @@ beginString - posix_setsid + pg_connection_reset ignoreCase regularExpression @@ -10175,7 +10699,7 @@ beginString - posix_setuid + pg_connection_status ignoreCase regularExpression @@ -10183,7 +10707,7 @@ beginString - posix_times + pg_convert ignoreCase regularExpression @@ -10191,7 +10715,7 @@ beginString - posix_ttyname + pg_copy_from ignoreCase regularExpression @@ -10199,7 +10723,7 @@ beginString - posix_uname + pg_copy_to ignoreCase regularExpression @@ -10207,7 +10731,7 @@ beginString - pow + pg_dbname ignoreCase regularExpression @@ -10215,7 +10739,7 @@ beginString - preg_grep + pg_delete ignoreCase regularExpression @@ -10223,7 +10747,7 @@ beginString - preg_match + pg_end_copy ignoreCase regularExpression @@ -10231,7 +10755,7 @@ beginString - preg_match_all + pg_escape_bytea ignoreCase regularExpression @@ -10239,23 +10763,15 @@ beginString - preg_quote - ignoreCase - - regularExpression - + pg_escape_identifier beginString - preg_replace - ignoreCase - - regularExpression - + pg_escape_literal beginString - preg_replace_callback + pg_escape_string ignoreCase regularExpression @@ -10263,7 +10779,11 @@ beginString - preg_split + pg_execute + + + beginString + pg_fetch_all ignoreCase regularExpression @@ -10271,7 +10791,11 @@ beginString - prev + pg_fetch_all_columns + + + beginString + pg_fetch_array ignoreCase regularExpression @@ -10279,7 +10803,7 @@ beginString - print + pg_fetch_assoc ignoreCase regularExpression @@ -10287,7 +10811,7 @@ beginString - print_r + pg_fetch_object ignoreCase regularExpression @@ -10295,7 +10819,7 @@ beginString - printf + pg_fetch_result ignoreCase regularExpression @@ -10303,7 +10827,7 @@ beginString - private + pg_fetch_row ignoreCase regularExpression @@ -10311,7 +10835,7 @@ beginString - proc_close + pg_field_is_null ignoreCase regularExpression @@ -10319,7 +10843,7 @@ beginString - proc_get_status + pg_field_name ignoreCase regularExpression @@ -10327,7 +10851,7 @@ beginString - proc_open + pg_field_num ignoreCase regularExpression @@ -10335,7 +10859,7 @@ beginString - protected + pg_field_prtlen ignoreCase regularExpression @@ -10343,7 +10867,7 @@ beginString - public + pg_field_size ignoreCase regularExpression @@ -10351,7 +10875,11 @@ beginString - putenv + pg_field_table + + + beginString + pg_field_type ignoreCase regularExpression @@ -10359,7 +10887,11 @@ beginString - quoted_printable_decode + pg_field_type_oid + + + beginString + pg_free_result ignoreCase regularExpression @@ -10367,7 +10899,7 @@ beginString - quotemeta + pg_get_notify ignoreCase regularExpression @@ -10375,7 +10907,7 @@ beginString - rad2deg + pg_get_pid ignoreCase regularExpression @@ -10383,7 +10915,7 @@ beginString - rand + pg_get_result ignoreCase regularExpression @@ -10391,7 +10923,7 @@ beginString - range + pg_host ignoreCase regularExpression @@ -10399,7 +10931,7 @@ beginString - rawurldecode + pg_insert ignoreCase regularExpression @@ -10407,7 +10939,7 @@ beginString - rawurlencode + pg_last_error ignoreCase regularExpression @@ -10415,7 +10947,7 @@ beginString - read_exif_ + pg_last_notice ignoreCase regularExpression @@ -10423,7 +10955,11 @@ beginString - readdir + pg_last_oid + + + beginString + pg_lo_close ignoreCase regularExpression @@ -10431,7 +10967,7 @@ beginString - readfile + pg_lo_create ignoreCase regularExpression @@ -10439,7 +10975,7 @@ beginString - readgzfile + pg_lo_export ignoreCase regularExpression @@ -10447,7 +10983,7 @@ beginString - readline + pg_lo_import ignoreCase regularExpression @@ -10455,7 +10991,7 @@ beginString - readline_add_history + pg_lo_open ignoreCase regularExpression @@ -10463,7 +10999,7 @@ beginString - readline_clear_history + pg_lo_read ignoreCase regularExpression @@ -10471,7 +11007,7 @@ beginString - readline_completion_function + pg_lo_read_all ignoreCase regularExpression @@ -10479,7 +11015,7 @@ beginString - readline_info + pg_lo_seek ignoreCase regularExpression @@ -10487,7 +11023,7 @@ beginString - readline_list_history + pg_lo_tell ignoreCase regularExpression @@ -10495,7 +11031,7 @@ beginString - readline_read_history + pg_lo_unlink ignoreCase regularExpression @@ -10503,7 +11039,7 @@ beginString - readline_write_history + pg_lo_write ignoreCase regularExpression @@ -10511,7 +11047,7 @@ beginString - readlink + pg_meta_data ignoreCase regularExpression @@ -10519,7 +11055,7 @@ beginString - realpath + pg_num_fields ignoreCase regularExpression @@ -10527,7 +11063,7 @@ beginString - register_shutdown_function + pg_num_rows ignoreCase regularExpression @@ -10535,7 +11071,7 @@ beginString - register_tick_function + pg_options ignoreCase regularExpression @@ -10543,7 +11079,11 @@ beginString - rename + pg_parameter_status + + + beginString + pg_pconnect ignoreCase regularExpression @@ -10551,7 +11091,7 @@ beginString - require + pg_ping ignoreCase regularExpression @@ -10559,7 +11099,7 @@ beginString - require_once + pg_port ignoreCase regularExpression @@ -10567,7 +11107,11 @@ beginString - reset + pg_prepare + + + beginString + pg_put_line ignoreCase regularExpression @@ -10575,7 +11119,7 @@ beginString - restore_error_handler + pg_query ignoreCase regularExpression @@ -10583,7 +11127,11 @@ beginString - returns + pg_query_params + + + beginString + pg_result_error ignoreCase regularExpression @@ -10591,7 +11139,11 @@ beginString - rewind + pg_result_error_field + + + beginString + pg_result_seek ignoreCase regularExpression @@ -10599,7 +11151,7 @@ beginString - rewinddir + pg_result_status ignoreCase regularExpression @@ -10607,7 +11159,7 @@ beginString - rmdir + pg_select ignoreCase regularExpression @@ -10615,7 +11167,15 @@ beginString - round + pg_send_execute + + + beginString + pg_send_prepare + + + beginString + pg_send_query ignoreCase regularExpression @@ -10623,7 +11183,11 @@ beginString - rsort + pg_send_query_params + + + beginString + pg_set_client_encoding ignoreCase regularExpression @@ -10631,7 +11195,11 @@ beginString - rtrim + pg_set_error_verbosity + + + beginString + pg_trace ignoreCase regularExpression @@ -10639,7 +11207,11 @@ beginString - sem_acquire + pg_transaction_status + + + beginString + pg_tty ignoreCase regularExpression @@ -10647,7 +11219,7 @@ beginString - sem_get + pg_unescape_bytea ignoreCase regularExpression @@ -10655,7 +11227,7 @@ beginString - sem_release + pg_untrace ignoreCase regularExpression @@ -10663,7 +11235,7 @@ beginString - sem_remove + pg_update ignoreCase regularExpression @@ -10671,7 +11243,15 @@ beginString - serialize + pg_version + + + beginString + php_check_syntax + + + beginString + php_ini_scanned_files ignoreCase regularExpression @@ -10679,7 +11259,7 @@ beginString - session_cache_expire + php_sapi_name ignoreCase regularExpression @@ -10687,7 +11267,11 @@ beginString - session_cache_limiter + php_strip_whitespace + + + beginString + php_uname ignoreCase regularExpression @@ -10695,7 +11279,11 @@ beginString - session_decode + php_user_filter + + + beginString + phpcredits ignoreCase regularExpression @@ -10703,7 +11291,7 @@ beginString - session_destroy + phpinfo ignoreCase regularExpression @@ -10711,7 +11299,7 @@ beginString - session_encode + phpversion ignoreCase regularExpression @@ -10719,7 +11307,7 @@ beginString - session_get_cookie_params + pi ignoreCase regularExpression @@ -10727,7 +11315,7 @@ beginString - session_id + png2wbmp ignoreCase regularExpression @@ -10735,7 +11323,11 @@ beginString - session_is_registered + poll + + + beginString + popen ignoreCase regularExpression @@ -10743,7 +11335,7 @@ beginString - session_module_name + pos ignoreCase regularExpression @@ -10751,7 +11343,11 @@ beginString - session_name + posix_access + + + beginString + posix_ctermid ignoreCase regularExpression @@ -10759,11 +11355,15 @@ beginString - session_regenerate_id + posix_errno + + + beginString + posix_get_last_error beginString - session_register + posix_getcwd ignoreCase regularExpression @@ -10771,7 +11371,7 @@ beginString - session_save_path + posix_getegid ignoreCase regularExpression @@ -10779,7 +11379,7 @@ beginString - session_set_cookie_params + posix_geteuid ignoreCase regularExpression @@ -10787,7 +11387,7 @@ beginString - session_set_save_handler + posix_getgid ignoreCase regularExpression @@ -10795,7 +11395,7 @@ beginString - session_start + posix_getgrgid ignoreCase regularExpression @@ -10803,7 +11403,7 @@ beginString - session_unregister + posix_getgrnam ignoreCase regularExpression @@ -10811,7 +11411,7 @@ beginString - session_unset + posix_getgroups ignoreCase regularExpression @@ -10819,7 +11419,7 @@ beginString - session_write_close + posix_getlogin ignoreCase regularExpression @@ -10827,7 +11427,7 @@ beginString - set_error_handler + posix_getpgid ignoreCase regularExpression @@ -10835,7 +11435,7 @@ beginString - set_file_buffer + posix_getpgrp ignoreCase regularExpression @@ -10843,7 +11443,7 @@ beginString - set_magic_quotes_runtime + posix_getpid ignoreCase regularExpression @@ -10851,7 +11451,7 @@ beginString - set_time_limit + posix_getppid ignoreCase regularExpression @@ -10859,7 +11459,7 @@ beginString - setcookie + posix_getpwnam ignoreCase regularExpression @@ -10867,7 +11467,7 @@ beginString - setlocale + posix_getpwuid ignoreCase regularExpression @@ -10875,7 +11475,7 @@ beginString - settype + posix_getrlimit ignoreCase regularExpression @@ -10883,7 +11483,7 @@ beginString - sha1 + posix_getsid ignoreCase regularExpression @@ -10891,7 +11491,7 @@ beginString - sha1_file + posix_getuid ignoreCase regularExpression @@ -10899,7 +11499,11 @@ beginString - sheet_file + posix_initgroups + + + beginString + posix_isatty ignoreCase regularExpression @@ -10907,7 +11511,7 @@ beginString - shell_exec + posix_kill ignoreCase regularExpression @@ -10915,23 +11519,7 @@ beginString - shm_attach - ignoreCase - - regularExpression - - - - beginString - shm_detach - ignoreCase - - regularExpression - - - - beginString - shm_get_var + posix_mkfifo ignoreCase regularExpression @@ -10939,7 +11527,7 @@ beginString - shm_put_var + posix_setegid ignoreCase regularExpression @@ -10947,7 +11535,7 @@ beginString - shm_remove + posix_seteuid ignoreCase regularExpression @@ -10955,7 +11543,7 @@ beginString - shm_remove_var + posix_setgid ignoreCase regularExpression @@ -10963,7 +11551,7 @@ beginString - shmop_close + posix_setpgid ignoreCase regularExpression @@ -10971,7 +11559,7 @@ beginString - shmop_delete + posix_setsid ignoreCase regularExpression @@ -10979,7 +11567,7 @@ beginString - shmop_open + posix_setuid ignoreCase regularExpression @@ -10987,15 +11575,11 @@ beginString - shmop_read - ignoreCase - - regularExpression - + posix_strerror beginString - shmop_size + posix_times ignoreCase regularExpression @@ -11003,7 +11587,7 @@ beginString - shmop_write + posix_ttyname ignoreCase regularExpression @@ -11011,7 +11595,7 @@ beginString - show_source + posix_uname ignoreCase regularExpression @@ -11019,7 +11603,7 @@ beginString - shuffle + pow ignoreCase regularExpression @@ -11027,15 +11611,11 @@ beginString - similar_text - ignoreCase - - regularExpression - + preg_filter beginString - sin + preg_grep ignoreCase regularExpression @@ -11043,15 +11623,11 @@ beginString - sinh - ignoreCase - - regularExpression - + preg_last_error beginString - sizeof + preg_match ignoreCase regularExpression @@ -11059,7 +11635,7 @@ beginString - sleep + preg_match_all ignoreCase regularExpression @@ -11067,7 +11643,7 @@ beginString - socket_get_status + preg_quote ignoreCase regularExpression @@ -11075,7 +11651,7 @@ beginString - socket_set_blocking + preg_replace ignoreCase regularExpression @@ -11083,7 +11659,7 @@ beginString - socket_set_timeout + preg_replace_callback ignoreCase regularExpression @@ -11091,7 +11667,7 @@ beginString - sort + preg_split ignoreCase regularExpression @@ -11099,7 +11675,7 @@ beginString - soundex + prev ignoreCase regularExpression @@ -11107,7 +11683,7 @@ beginString - split + print ignoreCase regularExpression @@ -11115,7 +11691,7 @@ beginString - spliti + print_r ignoreCase regularExpression @@ -11123,7 +11699,7 @@ beginString - sprintf + printf ignoreCase regularExpression @@ -11131,7 +11707,7 @@ beginString - sql_regcase + proc_close ignoreCase regularExpression @@ -11139,7 +11715,7 @@ beginString - sqlite_array_query + proc_get_status ignoreCase regularExpression @@ -11147,15 +11723,11 @@ beginString - sqlite_busy_timeout - ignoreCase - - regularExpression - + proc_nice beginString - sqlite_changes + proc_open ignoreCase regularExpression @@ -11163,131 +11735,83 @@ beginString - sqlite_close - ignoreCase - - regularExpression - + pspell_add_to_personal beginString - sqlite_column - ignoreCase - - regularExpression - + pspell_add_to_session beginString - sqlite_create_aggregate - ignoreCase - - regularExpression - + pspell_check beginString - sqlite_create_function - ignoreCase - - regularExpression - + pspell_clear_session beginString - sqlite_current - ignoreCase - - regularExpression - + pspell_config_create beginString - sqlite_error_string - ignoreCase - - regularExpression - + pspell_config_data_dir beginString - sqlite_escape_string - ignoreCase - - regularExpression - + pspell_config_dict_dir beginString - sqlite_exec + pspell_config_ignore beginString - sqlite_factory + pspell_config_mode beginString - sqlite_fetch_all + pspell_config_personal beginString - sqlite_fetch_array - ignoreCase - - regularExpression - + pspell_config_repl beginString - sqlite_fetch_column_types + pspell_config_runtogether beginString - sqlite_fetch_object + pspell_config_save_repl beginString - sqlite_fetch_single - ignoreCase - - regularExpression - + pspell_new beginString - sqlite_fetch_string - ignoreCase - - regularExpression - + pspell_new_config beginString - sqlite_field_name - ignoreCase - - regularExpression - + pspell_new_personal beginString - sqlite_has_more - ignoreCase - - regularExpression - + pspell_save_wordlist beginString - sqlite_has_prev + pspell_store_replacement beginString - sqlite_key + pspell_suggest beginString - sqlite_last_error + putenv ignoreCase regularExpression @@ -11295,7 +11819,7 @@ beginString - sqlite_last_insert_rowid + quoted_printable_decode ignoreCase regularExpression @@ -11303,15 +11827,11 @@ beginString - sqlite_libencoding - ignoreCase - - regularExpression - + quoted_printable_encode beginString - sqlite_libversion + quotemeta ignoreCase regularExpression @@ -11319,7 +11839,7 @@ beginString - sqlite_next + rad2deg ignoreCase regularExpression @@ -11327,7 +11847,7 @@ beginString - sqlite_num_fields + rand ignoreCase regularExpression @@ -11335,7 +11855,7 @@ beginString - sqlite_num_rows + range ignoreCase regularExpression @@ -11343,7 +11863,7 @@ beginString - sqlite_open + rawurldecode ignoreCase regularExpression @@ -11351,7 +11871,7 @@ beginString - sqlite_popen + rawurlencode ignoreCase regularExpression @@ -11359,11 +11879,11 @@ beginString - sqlite_prev + read beginString - sqlite_query + read_exif_data ignoreCase regularExpression @@ -11371,7 +11891,7 @@ beginString - sqlite_rewind + readdir ignoreCase regularExpression @@ -11379,7 +11899,7 @@ beginString - sqlite_seek + readfile ignoreCase regularExpression @@ -11387,11 +11907,11 @@ beginString - sqlite_single_query + readgzfile beginString - sqlite_udf_decode_binary + readline ignoreCase regularExpression @@ -11399,7 +11919,7 @@ beginString - sqlite_udf_encode_binary + readline_add_history ignoreCase regularExpression @@ -11407,27 +11927,19 @@ beginString - sqlite_unbuffered_query - ignoreCase - - regularExpression - + readline_callback_handler_install beginString - sqlite_valid + readline_callback_handler_remove beginString - sqrt - ignoreCase - - regularExpression - + readline_callback_read_char beginString - srand + readline_clear_history ignoreCase regularExpression @@ -11435,7 +11947,7 @@ beginString - sscanf + readline_completion_function ignoreCase regularExpression @@ -11443,7 +11955,7 @@ beginString - stat + readline_info ignoreCase regularExpression @@ -11451,7 +11963,7 @@ beginString - static + readline_list_history ignoreCase regularExpression @@ -11459,7 +11971,11 @@ beginString - stdClass + readline_on_new_line + + + beginString + readline_read_history ignoreCase regularExpression @@ -11467,7 +11983,11 @@ beginString - str_ireplace + readline_redisplay + + + beginString + readline_write_history ignoreCase regularExpression @@ -11475,7 +11995,7 @@ beginString - str_pad + readlink ignoreCase regularExpression @@ -11483,7 +12003,7 @@ beginString - str_repeat + realpath ignoreCase regularExpression @@ -11491,7 +12011,23 @@ beginString - str_replace + reap_async_query + + + beginString + recode + + + beginString + recode_file + + + beginString + recode_string + + + beginString + register_shutdown_function ignoreCase regularExpression @@ -11499,7 +12035,7 @@ beginString - str_rot13 + register_tick_function ignoreCase regularExpression @@ -11507,7 +12043,7 @@ beginString - str_shuffle + rename ignoreCase regularExpression @@ -11515,7 +12051,7 @@ beginString - str_word_count + reset ignoreCase regularExpression @@ -11523,7 +12059,7 @@ beginString - strcasecmp + restore_error_handler ignoreCase regularExpression @@ -11531,7 +12067,7 @@ beginString - strchr + returns ignoreCase regularExpression @@ -11539,7 +12075,7 @@ beginString - strcmp + rewind ignoreCase regularExpression @@ -11547,7 +12083,7 @@ beginString - strcoll + rewinddir ignoreCase regularExpression @@ -11555,7 +12091,7 @@ beginString - strcspn + rmdir ignoreCase regularExpression @@ -11563,7 +12099,7 @@ beginString - stream_context_create + round ignoreCase regularExpression @@ -11571,7 +12107,7 @@ beginString - stream_context_get_options + rsort ignoreCase regularExpression @@ -11579,7 +12115,7 @@ beginString - stream_context_set_option + rtrim ignoreCase regularExpression @@ -11587,39 +12123,23 @@ beginString - stream_context_set_params - ignoreCase - - regularExpression - + save beginString - stream_copy_to_stream - ignoreCase - - regularExpression - + saveFile beginString - stream_filter_append - ignoreCase - - regularExpression - + scandir beginString - stream_filter_prepend - ignoreCase - - regularExpression - + seek beginString - stream_get_filters + sem_acquire ignoreCase regularExpression @@ -11627,7 +12147,7 @@ beginString - stream_get_line + sem_get ignoreCase regularExpression @@ -11635,7 +12155,7 @@ beginString - stream_get_meta_data + sem_release ignoreCase regularExpression @@ -11643,7 +12163,7 @@ beginString - stream_get_transports + sem_remove ignoreCase regularExpression @@ -11651,7 +12171,7 @@ beginString - stream_get_wrappers + serialize ignoreCase regularExpression @@ -11659,7 +12179,7 @@ beginString - stream_register_filter + session_cache_expire ignoreCase regularExpression @@ -11667,7 +12187,7 @@ beginString - stream_register_wrapper + session_cache_limiter ignoreCase regularExpression @@ -11675,7 +12195,7 @@ beginString - stream_select + session_decode ignoreCase regularExpression @@ -11683,7 +12203,7 @@ beginString - stream_set_blocking + session_destroy ignoreCase regularExpression @@ -11691,7 +12211,7 @@ beginString - stream_set_timeout + session_encode ignoreCase regularExpression @@ -11699,7 +12219,7 @@ beginString - stream_set_write_buffer + session_get_cookie_params ignoreCase regularExpression @@ -11707,7 +12227,7 @@ beginString - stream_socket_accept + session_id ignoreCase regularExpression @@ -11715,7 +12235,7 @@ beginString - stream_socket_client + session_module_name ignoreCase regularExpression @@ -11723,7 +12243,7 @@ beginString - stream_socket_get_name + session_name ignoreCase regularExpression @@ -11731,23 +12251,15 @@ beginString - stream_socket_server - ignoreCase - - regularExpression - + session_regenerate_id beginString - strftime - ignoreCase - - regularExpression - + session_register_shutdown beginString - strip_tags + session_save_path ignoreCase regularExpression @@ -11755,7 +12267,7 @@ beginString - stripcslashes + session_set_cookie_params ignoreCase regularExpression @@ -11763,7 +12275,7 @@ beginString - stripos + session_set_save_handler ignoreCase regularExpression @@ -11771,7 +12283,7 @@ beginString - stripslashes + session_start ignoreCase regularExpression @@ -11779,15 +12291,11 @@ beginString - stristr - ignoreCase - - regularExpression - + session_status beginString - strlen + session_unset ignoreCase regularExpression @@ -11795,7 +12303,7 @@ beginString - strnatcasecmp + session_write_close ignoreCase regularExpression @@ -11803,7 +12311,7 @@ beginString - strnatcmp + set_error_handler ignoreCase regularExpression @@ -11811,7 +12319,7 @@ beginString - strncasecmp + set_file_buffer ignoreCase regularExpression @@ -11819,7 +12327,7 @@ beginString - strncmp + set_magic_quotes_runtime ignoreCase regularExpression @@ -11827,7 +12335,7 @@ beginString - strpos + set_time_limit ignoreCase regularExpression @@ -11835,15 +12343,11 @@ beginString - strrchr - ignoreCase - - regularExpression - + setBuffering beginString - strrev + setcookie ignoreCase regularExpression @@ -11851,7 +12355,7 @@ beginString - strrpos + setlocale ignoreCase regularExpression @@ -11859,15 +12363,11 @@ beginString - strspn - ignoreCase - - regularExpression - + setrawcookie beginString - strstr + settype ignoreCase regularExpression @@ -11875,7 +12375,7 @@ beginString - strtok + sha1 ignoreCase regularExpression @@ -11883,7 +12383,7 @@ beginString - strtolower + sha1_file ignoreCase regularExpression @@ -11891,7 +12391,7 @@ beginString - strtotime + sheet_file ignoreCase regularExpression @@ -11899,7 +12399,7 @@ beginString - strtoupper + shell_exec ignoreCase regularExpression @@ -11907,7 +12407,7 @@ beginString - strtr + shm_attach ignoreCase regularExpression @@ -11915,7 +12415,7 @@ beginString - strval + shm_detach ignoreCase regularExpression @@ -11923,7 +12423,7 @@ beginString - substr + shm_get_var ignoreCase regularExpression @@ -11931,15 +12431,11 @@ beginString - substr_count - ignoreCase - - regularExpression - + shm_has_var beginString - substr_replace + shm_put_var ignoreCase regularExpression @@ -11947,7 +12443,7 @@ beginString - swfaction + shm_remove ignoreCase regularExpression @@ -11955,7 +12451,7 @@ beginString - swfbutton + shm_remove_var ignoreCase regularExpression @@ -11963,39 +12459,23 @@ beginString - swfdisplayitem - ignoreCase - - regularExpression - + shmop_close beginString - swffill - ignoreCase - - regularExpression - + shmop_delete beginString - swffont - ignoreCase - - regularExpression - + shmop_open beginString - swfgradient - ignoreCase - - regularExpression - + shmop_read beginString - swfmorph + shmop_size ignoreCase regularExpression @@ -12003,7 +12483,7 @@ beginString - swfmovie + shmop_write ignoreCase regularExpression @@ -12011,7 +12491,7 @@ beginString - swfshape + show_source ignoreCase regularExpression @@ -12019,7 +12499,7 @@ beginString - swfsprite + shuffle ignoreCase regularExpression @@ -12027,7 +12507,7 @@ beginString - swftext + similar_text ignoreCase regularExpression @@ -12035,31 +12515,19 @@ beginString - swftextfield - ignoreCase - - regularExpression - + simplexml_import_dom beginString - symlink - ignoreCase - - regularExpression - + simplexml_load_file beginString - syslog - ignoreCase - - regularExpression - + simplexml_load_string beginString - system + sin ignoreCase regularExpression @@ -12067,7 +12535,7 @@ beginString - tan + sinh ignoreCase regularExpression @@ -12075,15 +12543,11 @@ beginString - tanh - ignoreCase - - regularExpression - + size beginString - tempnam + sizeof ignoreCase regularExpression @@ -12091,7 +12555,7 @@ beginString - textdomain + sleep ignoreCase regularExpression @@ -12099,119 +12563,139 @@ beginString - throw - ignoreCase - - regularExpression - + snmp2_get beginString - time - ignoreCase - - regularExpression - + snmp2_getnext beginString - tmpfile - ignoreCase - - regularExpression - + snmp2_real_walk beginString - token_get_all - ignoreCase - - regularExpression - + snmp2_set beginString - token_name - ignoreCase - - regularExpression - + snmp2_walk beginString - touch - ignoreCase - - regularExpression - + snmp3_get beginString - trigger_error - ignoreCase - - regularExpression - + snmp3_getnext beginString - trim - ignoreCase - - regularExpression - + snmp3_real_walk beginString - try - ignoreCase - - regularExpression - + snmp3_set beginString - uasort - ignoreCase - - regularExpression - + snmp3_walk beginString - ucfirst - ignoreCase - - regularExpression - + snmp_get_quick_print beginString - ucwords - ignoreCase - - regularExpression - + snmp_get_valueretrieval beginString - uid - ignoreCase - - regularExpression - + snmp_read_mib beginString - uksort - ignoreCase - - regularExpression - + snmp_set_enum_print beginString - umask + snmp_set_oid_numeric_print + + + beginString + snmp_set_oid_output_format + + + beginString + snmp_set_quick_print + + + beginString + snmp_set_valueretrieval + + + beginString + snmpget + + + beginString + snmpgetnext + + + beginString + snmprealwalk + + + beginString + snmpset + + + beginString + snmpwalk + + + beginString + snmpwalkoid + + + beginString + socket_accept + + + beginString + socket_bind + + + beginString + socket_clear_error + + + beginString + socket_close + + + beginString + socket_connect + + + beginString + socket_create + + + beginString + socket_create_listen + + + beginString + socket_create_pair + + + beginString + socket_get_option + + + beginString + socket_get_status ignoreCase regularExpression @@ -12219,7 +12703,55 @@ beginString - uniqid + socket_getpeername + + + beginString + socket_getsockname + + + beginString + socket_import_stream + + + beginString + socket_last_error + + + beginString + socket_listen + + + beginString + socket_read + + + beginString + socket_recv + + + beginString + socket_recvfrom + + + beginString + socket_select + + + beginString + socket_send + + + beginString + socket_sendto + + + beginString + socket_set_block + + + beginString + socket_set_blocking ignoreCase regularExpression @@ -12227,7 +12759,15 @@ beginString - unixtojd + socket_set_nonblock + + + beginString + socket_set_option + + + beginString + socket_set_timeout ignoreCase regularExpression @@ -12235,7 +12775,19 @@ beginString - unlink + socket_shutdown + + + beginString + socket_strerror + + + beginString + socket_write + + + beginString + sort ignoreCase regularExpression @@ -12243,7 +12795,7 @@ beginString - unpack + soundex ignoreCase regularExpression @@ -12251,7 +12803,39 @@ beginString - unregister_tick_function + spl_autoload + + + beginString + spl_autoload_call + + + beginString + spl_autoload_extensions + + + beginString + spl_autoload_functions + + + beginString + spl_autoload_register + + + beginString + spl_autoload_unregister + + + beginString + spl_classes + + + beginString + spl_object_hash + + + beginString + split ignoreCase regularExpression @@ -12259,7 +12843,7 @@ beginString - unserialize + spliti ignoreCase regularExpression @@ -12267,7 +12851,7 @@ beginString - unset + sprintf ignoreCase regularExpression @@ -12275,7 +12859,7 @@ beginString - urldecode + sql_regcase ignoreCase regularExpression @@ -12283,7 +12867,7 @@ beginString - urlencode + sqlite_array_query ignoreCase regularExpression @@ -12291,7 +12875,7 @@ beginString - use + sqlite_busy_timeout ignoreCase regularExpression @@ -12299,7 +12883,7 @@ beginString - user_error + sqlite_changes ignoreCase regularExpression @@ -12307,7 +12891,7 @@ beginString - usleep + sqlite_close ignoreCase regularExpression @@ -12315,7 +12899,7 @@ beginString - usort + sqlite_column ignoreCase regularExpression @@ -12323,7 +12907,7 @@ beginString - utf8_decode + sqlite_create_aggregate ignoreCase regularExpression @@ -12331,7 +12915,7 @@ beginString - utf8_encode + sqlite_create_function ignoreCase regularExpression @@ -12339,7 +12923,7 @@ beginString - var + sqlite_current ignoreCase regularExpression @@ -12347,7 +12931,7 @@ beginString - var_dump + sqlite_error_string ignoreCase regularExpression @@ -12355,7 +12939,7 @@ beginString - var_export + sqlite_escape_string ignoreCase regularExpression @@ -12363,7 +12947,19 @@ beginString - ver_info + sqlite_exec + + + beginString + sqlite_factory + + + beginString + sqlite_fetch_all + + + beginString + sqlite_fetch_array ignoreCase regularExpression @@ -12371,7 +12967,15 @@ beginString - version_compare + sqlite_fetch_column_types + + + beginString + sqlite_fetch_object + + + beginString + sqlite_fetch_single ignoreCase regularExpression @@ -12379,7 +12983,7 @@ beginString - virtual + sqlite_fetch_string ignoreCase regularExpression @@ -12387,7 +12991,7 @@ beginString - vprintf + sqlite_field_name ignoreCase regularExpression @@ -12395,7 +12999,7 @@ beginString - vsprintf + sqlite_has_more ignoreCase regularExpression @@ -12403,7 +13007,15 @@ beginString - wddx_add_vars + sqlite_has_prev + + + beginString + sqlite_key + + + beginString + sqlite_last_error ignoreCase regularExpression @@ -12411,7 +13023,7 @@ beginString - wddx_deserialize + sqlite_last_insert_rowid ignoreCase regularExpression @@ -12419,7 +13031,7 @@ beginString - wddx_packet_end + sqlite_libencoding ignoreCase regularExpression @@ -12427,7 +13039,7 @@ beginString - wddx_packet_start + sqlite_libversion ignoreCase regularExpression @@ -12435,7 +13047,7 @@ beginString - wddx_serialize_value + sqlite_next ignoreCase regularExpression @@ -12443,7 +13055,7 @@ beginString - wddx_serialize_vars + sqlite_num_fields ignoreCase regularExpression @@ -12451,7 +13063,7 @@ beginString - wordwrap + sqlite_num_rows ignoreCase regularExpression @@ -12459,7 +13071,7 @@ beginString - xml_error_string + sqlite_open ignoreCase regularExpression @@ -12467,7 +13079,7 @@ beginString - xml_get_current_byte_index + sqlite_popen ignoreCase regularExpression @@ -12475,7 +13087,11 @@ beginString - xml_get_current_column_number + sqlite_prev + + + beginString + sqlite_query ignoreCase regularExpression @@ -12483,7 +13099,7 @@ beginString - xml_get_current_line_number + sqlite_rewind ignoreCase regularExpression @@ -12491,7 +13107,7 @@ beginString - xml_get_error_code + sqlite_seek ignoreCase regularExpression @@ -12499,7 +13115,11 @@ beginString - xml_parse + sqlite_single_query + + + beginString + sqlite_udf_decode_binary ignoreCase regularExpression @@ -12507,7 +13127,7 @@ beginString - xml_parse_into_struct + sqlite_udf_encode_binary ignoreCase regularExpression @@ -12515,7 +13135,7 @@ beginString - xml_parser_create + sqlite_unbuffered_query ignoreCase regularExpression @@ -12523,7 +13143,11 @@ beginString - xml_parser_create_ns + sqlite_valid + + + beginString + sqrt ignoreCase regularExpression @@ -12531,7 +13155,7 @@ beginString - xml_parser_free + srand ignoreCase regularExpression @@ -12539,7 +13163,7 @@ beginString - xml_parser_get_option + sscanf ignoreCase regularExpression @@ -12547,7 +13171,11 @@ beginString - xml_parser_set_option + startDTDEntity + + + beginString + stat ignoreCase regularExpression @@ -12555,7 +13183,7 @@ beginString - xml_set_character_data_handler + stdClass ignoreCase regularExpression @@ -12563,7 +13191,11 @@ beginString - xml_set_default_handler + str_getcsv + + + beginString + str_ireplace ignoreCase regularExpression @@ -12571,7 +13203,7 @@ beginString - xml_set_element_handler + str_pad ignoreCase regularExpression @@ -12579,7 +13211,7 @@ beginString - xml_set_end_namespace_decl_handler + str_repeat ignoreCase regularExpression @@ -12587,7 +13219,7 @@ beginString - xml_set_external_entity_ref_handler + str_replace ignoreCase regularExpression @@ -12595,7 +13227,7 @@ beginString - xml_set_notation_decl_handler + str_rot13 ignoreCase regularExpression @@ -12603,7 +13235,7 @@ beginString - xml_set_object + str_shuffle ignoreCase regularExpression @@ -12611,7 +13243,11 @@ beginString - xml_set_processing_instruction_handler + str_split + + + beginString + str_word_count ignoreCase regularExpression @@ -12619,7 +13255,7 @@ beginString - xml_set_unparsed_entity_decl_handler + strcasecmp ignoreCase regularExpression @@ -12627,7 +13263,7 @@ beginString - xmlrpc_decode + strchr ignoreCase regularExpression @@ -12635,7 +13271,7 @@ beginString - xmlrpc_decode_request + strcmp ignoreCase regularExpression @@ -12643,7 +13279,7 @@ beginString - xmlrpc_encode + strcoll ignoreCase regularExpression @@ -12651,7 +13287,7 @@ beginString - xmlrpc_encode_request + strcspn ignoreCase regularExpression @@ -12659,7 +13295,11 @@ beginString - xmlrpc_get_type + stream_cast + + + beginString + stream_context_create ignoreCase regularExpression @@ -12667,7 +13307,7 @@ beginString - xmlrpc_parse_method_descriptions + stream_context_get_options ignoreCase regularExpression @@ -12675,7 +13315,15 @@ beginString - xmlrpc_server_add_introspection_data + stream_context_get_params + + + beginString + stream_context_set_default + + + beginString + stream_context_set_option ignoreCase regularExpression @@ -12683,7 +13331,7 @@ beginString - xmlrpc_server_call_method + stream_context_set_params ignoreCase regularExpression @@ -12691,7 +13339,11 @@ beginString - xmlrpc_server_create + stream_copy_to_stream + + + beginString + stream_filter_append ignoreCase regularExpression @@ -12699,7 +13351,7 @@ beginString - xmlrpc_server_destroy + stream_filter_prepend ignoreCase regularExpression @@ -12707,7 +13359,7 @@ beginString - xmlrpc_server_register_introspection_callback + stream_get_filters ignoreCase regularExpression @@ -12715,7 +13367,11 @@ beginString - xmlrpc_server_register_method + stream_get_line + + + beginString + stream_get_meta_data ignoreCase regularExpression @@ -12723,7 +13379,7 @@ beginString - xmlrpc_set_type + stream_get_transports ignoreCase regularExpression @@ -12731,7 +13387,7 @@ beginString - xor + stream_get_wrappers ignoreCase regularExpression @@ -12739,7 +13395,7 @@ beginString - xpath_eval + stream_register_filter ignoreCase regularExpression @@ -12747,7 +13403,7 @@ beginString - xpath_eval_expression + stream_register_wrapper ignoreCase regularExpression @@ -12755,7 +13411,7 @@ beginString - xpath_new_context + stream_select ignoreCase regularExpression @@ -12763,7 +13419,7 @@ beginString - xptr_eval + stream_set_blocking ignoreCase regularExpression @@ -12771,7 +13427,15 @@ beginString - xptr_new_context + stream_set_chunk_size + + + beginString + stream_set_option + + + beginString + stream_set_timeout ignoreCase regularExpression @@ -12779,7 +13443,7 @@ beginString - xslt_create + stream_set_write_buffer ignoreCase regularExpression @@ -12787,7 +13451,11 @@ beginString - xslt_errno + stream_socket_accept + + + beginString + stream_socket_client ignoreCase regularExpression @@ -12795,7 +13463,31 @@ beginString - xslt_error + stream_socket_get_name + + + beginString + stream_socket_recvfrom + + + beginString + stream_socket_sendto + + + beginString + stream_socket_server + + + beginString + stream_socket_shutdown + + + beginString + stream_supports_lock + + + beginString + strftime ignoreCase regularExpression @@ -12803,7 +13495,7 @@ beginString - xslt_free + strip_tags ignoreCase regularExpression @@ -12811,7 +13503,7 @@ beginString - xslt_process + stripcslashes ignoreCase regularExpression @@ -12819,7 +13511,7 @@ beginString - xslt_set_base + stripos ignoreCase regularExpression @@ -12827,7 +13519,7 @@ beginString - xslt_set_encoding + stripslashes ignoreCase regularExpression @@ -12835,7 +13527,7 @@ beginString - xslt_set_error_handler + stristr ignoreCase regularExpression @@ -12843,7 +13535,7 @@ beginString - xslt_set_log + strlen ignoreCase regularExpression @@ -12851,7 +13543,7 @@ beginString - xslt_set_sax_handler + strnatcasecmp ignoreCase regularExpression @@ -12859,7 +13551,7 @@ beginString - xslt_set_sax_handlers + strnatcmp ignoreCase regularExpression @@ -12867,7 +13559,7 @@ beginString - xslt_set_scheme_handler + strncasecmp ignoreCase regularExpression @@ -12875,7 +13567,7 @@ beginString - xslt_set_scheme_handlers + strncmp ignoreCase regularExpression @@ -12883,7 +13575,11 @@ beginString - xslt_setopt + strpbrk + + + beginString + strpos ignoreCase regularExpression @@ -12891,7 +13587,11 @@ beginString - zend_logo_guild + strptime + + + beginString + strrchr ignoreCase regularExpression @@ -12899,8528 +13599,14652 @@ beginString - zend_version + strrev ignoreCase regularExpression - - commentsArray - beginString - #([^\n])*?(\n|(\?>)) + strrpos + ignoreCase + regularExpression - + beginString - (?<!\\)//([^\n])*?(\n|(\?>)) + strspn ignoreCase regularExpression - + beginString - /* - endString - */ + strstr ignoreCase regularExpression - - completionsArray - - keyString - $_COOKIE[] + beginString + strtok + ignoreCase + + regularExpression + - keyString - $_ENV[] + beginString + strtolower + ignoreCase + + regularExpression + - keyString - $_FILES[] + beginString + strtotime + ignoreCase + + regularExpression + - keyString - $_GET[] + beginString + strtoupper + ignoreCase + + regularExpression + - keyString - $_POST[] + beginString + strtr + ignoreCase + + regularExpression + - keyString - $_REQUEST[] + beginString + strval + ignoreCase + + regularExpression + - keyString - $_SERVER['argc'] + beginString + substr + ignoreCase + + regularExpression + - keyString - $_SERVER['argv'] + beginString + substr_compare - keyString - $_SERVER['AUTH_TYPE'] + beginString + substr_count + ignoreCase + + regularExpression + - keyString - $_SERVER['DOCUMENT_ROOT'] + beginString + substr_replace + ignoreCase + + regularExpression + - keyString - $_SERVER['GATEWAY_INTERFACE'] + beginString + svn_add - keyString - $_SERVER['HTTP_ACCEPT'] + beginString + svn_auth_get_parameter - keyString - $_SERVER['HTTP_ACCEPT_CHARSET'] + beginString + svn_auth_set_parameter - keyString - $_SERVER['HTTP_ACCEPT_ENCODING'] + beginString + svn_blame + + + beginString + svn_cat + + + beginString + svn_checkout + + + beginString + svn_cleanup + + + beginString + svn_client_version + + + beginString + svn_commit + + + beginString + svn_delete + + + beginString + svn_diff + + + beginString + svn_export + + + beginString + svn_fs_abort_txn + + + beginString + svn_fs_apply_text + + + beginString + svn_fs_begin_txn2 + + + beginString + svn_fs_change_node_prop + + + beginString + svn_fs_check_path + + + beginString + svn_fs_contents_changed + + + beginString + svn_fs_copy + + + beginString + svn_fs_delete + + + beginString + svn_fs_dir_entries + + + beginString + svn_fs_file_contents + + + beginString + svn_fs_file_length + + + beginString + svn_fs_is_dir + + + beginString + svn_fs_is_file + + + beginString + svn_fs_make_dir + + + beginString + svn_fs_make_file + + + beginString + svn_fs_node_created_rev + + + beginString + svn_fs_node_prop + + + beginString + svn_fs_props_changed + + + beginString + svn_fs_revision_prop + + + beginString + svn_fs_revision_root + + + beginString + svn_fs_txn_root + + + beginString + svn_fs_youngest_rev + + + beginString + svn_import + + + beginString + svn_log + + + beginString + svn_ls + + + beginString + svn_mkdir + + + beginString + svn_repos_create + + + beginString + svn_repos_fs + + + beginString + svn_repos_fs_begin_txn_for_commit + + + beginString + svn_repos_fs_commit_txn + + + beginString + svn_repos_hotcopy + + + beginString + svn_repos_open + + + beginString + svn_repos_recover + + + beginString + svn_revert + + + beginString + svn_status + + + beginString + svn_update + + + beginString + swfaction + ignoreCase + + regularExpression + + + + beginString + swfbutton + ignoreCase + + regularExpression + + + + beginString + swfdisplayitem + ignoreCase + + regularExpression + + + + beginString + swffill + ignoreCase + + regularExpression + + + + beginString + swffont + ignoreCase + + regularExpression + + + + beginString + swfgradient + ignoreCase + + regularExpression + + + + beginString + swfmorph + ignoreCase + + regularExpression + + + + beginString + swfmovie + ignoreCase + + regularExpression + + + + beginString + swfshape + ignoreCase + + regularExpression + + + + beginString + swfsprite + ignoreCase + + regularExpression + + + + beginString + swftext + ignoreCase + + regularExpression + + + + beginString + swftextfield + ignoreCase + + regularExpression + + + + beginString + symlink + ignoreCase + + regularExpression + + + + beginString + sys_get_temp_dir + + + beginString + syslog + ignoreCase + + regularExpression + + + + beginString + system + ignoreCase + + regularExpression + + + + beginString + tan + ignoreCase + + regularExpression + + + + beginString + tanh + ignoreCase + + regularExpression + + + + beginString + tell + + + beginString + tempnam + ignoreCase + + regularExpression + + + + beginString + textdomain + ignoreCase + + regularExpression + + + + beginString + tidy_access_count + + + beginString + tidy_config_count + + + beginString + tidy_error_count + + + beginString + tidy_get_output + + + beginString + tidy_load_config + + + beginString + tidy_reset_config + + + beginString + tidy_save_config + + + beginString + tidy_set_encoding + + + beginString + tidy_setopt + + + beginString + tidy_warning_count + + + beginString + time + ignoreCase + + regularExpression + + + + beginString + time_nanosleep + + + beginString + timezone_abbreviations_list + + + beginString + timezone_identifiers_list + + + beginString + timezone_name_from_abbr + + + beginString + timezone_name_get + + + beginString + timezone_offset_get + + + beginString + timezone_open + + + beginString + timezone_transitions_get + + + beginString + timezone_version_get + + + beginString + tmpfile + ignoreCase + + regularExpression + + + + beginString + token_get_all + ignoreCase + + regularExpression + + + + beginString + token_name + ignoreCase + + regularExpression + + + + beginString + touch + ignoreCase + + regularExpression + + + + beginString + trait_exists + + + beginString + transliterate + + + beginString + transliterator_create + + + beginString + transliterator_create_from_rules + + + beginString + transliterator_create_inverse + + + beginString + transliterator_get_error_code + + + beginString + transliterator_get_error_message + + + beginString + transliterator_list_ids + + + beginString + transliterator_transliterate + + + beginString + trigger_error + ignoreCase + + regularExpression + + + + beginString + trim + + + beginString + truncate + + + beginString + uasort + ignoreCase + + regularExpression + + + + beginString + ucfirst + ignoreCase + + regularExpression + + + + beginString + ucwords + ignoreCase + + regularExpression + + + + beginString + uid + ignoreCase + + regularExpression + + + + beginString + uksort + ignoreCase + + regularExpression + + + + beginString + umask + ignoreCase + + regularExpression + + + + beginString + uniqid + ignoreCase + + regularExpression + + + + beginString + unixtojd + ignoreCase + + regularExpression + + + + beginString + unlink + ignoreCase + + regularExpression + + + + beginString + unpack + ignoreCase + + regularExpression + + + + beginString + unregister_tick_function + ignoreCase + + regularExpression + + + + beginString + unserialize + ignoreCase + + regularExpression + + + + beginString + unset + ignoreCase + + regularExpression + + + + beginString + urldecode + ignoreCase + + regularExpression + + + + beginString + urlencode + ignoreCase + + regularExpression + + + + beginString + use_soap_error_handler + + + beginString + user_error + ignoreCase + + regularExpression + + + + beginString + usleep + ignoreCase + + regularExpression + + + + beginString + usort + ignoreCase + + regularExpression + + + + beginString + utf8_decode + ignoreCase + + regularExpression + + + + beginString + utf8_encode + ignoreCase + + regularExpression + + + + beginString + var_dump + ignoreCase + + regularExpression + + + + beginString + var_export + ignoreCase + + regularExpression + + + + beginString + variant_abs + + + beginString + variant_add + + + beginString + variant_and + + + beginString + variant_cast + + + beginString + variant_cat + + + beginString + variant_cmp + + + beginString + variant_date_from_timestamp + + + beginString + variant_date_to_timestamp + + + beginString + variant_div + + + beginString + variant_eqv + + + beginString + variant_fix + + + beginString + variant_get_type + + + beginString + variant_idiv + + + beginString + variant_imp + + + beginString + variant_int + + + beginString + variant_mod + + + beginString + variant_mul + + + beginString + variant_neg + + + beginString + variant_not + + + beginString + variant_or + + + beginString + variant_pow + + + beginString + variant_round + + + beginString + variant_set + + + beginString + variant_set_type + + + beginString + variant_sub + + + beginString + variant_xor + + + beginString + ver_info + ignoreCase + + regularExpression + + + + beginString + version_compare + ignoreCase + + regularExpression + + + + beginString + virtual + ignoreCase + + regularExpression + + + + beginString + vprintf + ignoreCase + + regularExpression + + + + beginString + vsprintf + ignoreCase + + regularExpression + + + + beginString + wddx_add_vars + ignoreCase + + regularExpression + + + + beginString + wddx_deserialize + ignoreCase + + regularExpression + + + + beginString + wddx_packet_end + ignoreCase + + regularExpression + + + + beginString + wddx_packet_start + ignoreCase + + regularExpression + + + + beginString + wddx_serialize_value + ignoreCase + + regularExpression + + + + beginString + wddx_serialize_vars + ignoreCase + + regularExpression + + + + beginString + wordwrap + ignoreCase + + regularExpression + + + + beginString + write + + + beginString + writeDTDEntity + + + beginString + writeRaw + + + beginString + writeTemporary + + + beginString + writeToFile + + + beginString + xml_error_string + ignoreCase + + regularExpression + + + + beginString + xml_get_current_byte_index + ignoreCase + + regularExpression + + + + beginString + xml_get_current_column_number + ignoreCase + + regularExpression + + + + beginString + xml_get_current_line_number + ignoreCase + + regularExpression + + + + beginString + xml_get_error_code + ignoreCase + + regularExpression + + + + beginString + xml_parse + ignoreCase + + regularExpression + + + + beginString + xml_parse_into_struct + ignoreCase + + regularExpression + + + + beginString + xml_parser_create + ignoreCase + + regularExpression + + + + beginString + xml_parser_create_ns + ignoreCase + + regularExpression + + + + beginString + xml_parser_free + ignoreCase + + regularExpression + + + + beginString + xml_parser_get_option + ignoreCase + + regularExpression + + + + beginString + xml_parser_set_option + ignoreCase + + regularExpression + + + + beginString + xml_set_character_data_handler + ignoreCase + + regularExpression + + + + beginString + xml_set_default_handler + ignoreCase + + regularExpression + + + + beginString + xml_set_element_handler + ignoreCase + + regularExpression + + + + beginString + xml_set_end_namespace_decl_handler + ignoreCase + + regularExpression + + + + beginString + xml_set_external_entity_ref_handler + ignoreCase + + regularExpression + + + + beginString + xml_set_notation_decl_handler + ignoreCase + + regularExpression + + + + beginString + xml_set_object + ignoreCase + + regularExpression + + + + beginString + xml_set_processing_instruction_handler + ignoreCase + + regularExpression + + + + beginString + xml_set_start_namespace_decl_handler + + + beginString + xml_set_unparsed_entity_decl_handler + ignoreCase + + regularExpression + + + + beginString + xmlrpc_decode + ignoreCase + + regularExpression + + + + beginString + xmlrpc_decode_request + ignoreCase + + regularExpression + + + + beginString + xmlrpc_encode + ignoreCase + + regularExpression + + + + beginString + xmlrpc_encode_request + ignoreCase + + regularExpression + + + + beginString + xmlrpc_get_type + ignoreCase + + regularExpression + + + + beginString + xmlrpc_parse_method_descriptions + ignoreCase + + regularExpression + + + + beginString + xmlrpc_server_add_introspection_data + ignoreCase + + regularExpression + + + + beginString + xmlrpc_server_call_method + ignoreCase + + regularExpression + + + + beginString + xmlrpc_server_create + ignoreCase + + regularExpression + + + + beginString + xmlrpc_server_destroy + ignoreCase + + regularExpression + + + + beginString + xmlrpc_server_register_introspection_callback + ignoreCase + + regularExpression + + + + beginString + xmlrpc_server_register_method + ignoreCase + + regularExpression + + + + beginString + xmlrpc_set_type + ignoreCase + + regularExpression + + + + beginString + xmlwriter_end_dtd_entity + + + beginString + xmlwriter_full_end_element + + + beginString + xmlwriter_start_dtd_entity + + + beginString + xmlwriter_write_dtd_entity + + + beginString + xmlwriter_write_raw + + + beginString + xpath_eval + ignoreCase + + regularExpression + + + + beginString + xpath_eval_expression + ignoreCase + + regularExpression + + + + beginString + xpath_new_context + ignoreCase + + regularExpression + + + + beginString + xptr_eval + ignoreCase + + regularExpression + + + + beginString + xptr_new_context + ignoreCase + + regularExpression + + + + beginString + xslt_create + ignoreCase + + regularExpression + + + + beginString + xslt_errno + ignoreCase + + regularExpression + + + + beginString + xslt_error + ignoreCase + + regularExpression + + + + beginString + xslt_free + ignoreCase + + regularExpression + + + + beginString + xslt_process + ignoreCase + + regularExpression + + + + beginString + xslt_set_base + ignoreCase + + regularExpression + + + + beginString + xslt_set_encoding + ignoreCase + + regularExpression + + + + beginString + xslt_set_error_handler + ignoreCase + + regularExpression + + + + beginString + xslt_set_log + ignoreCase + + regularExpression + + + + beginString + xslt_set_sax_handler + ignoreCase + + regularExpression + + + + beginString + xslt_set_sax_handlers + ignoreCase + + regularExpression + + + + beginString + xslt_set_scheme_handler + ignoreCase + + regularExpression + + + + beginString + xslt_set_scheme_handlers + ignoreCase + + regularExpression + + + + beginString + xslt_setopt + ignoreCase + + regularExpression + + + + beginString + yaml_emit + + + beginString + yaml_emit_file + + + beginString + yaml_parse + + + beginString + yaml_parse_file + + + beginString + yaml_parse_url + + + beginString + zend_version + ignoreCase + + regularExpression + + + + beginString + zip_close + + + beginString + zip_entry_close + + + beginString + zip_entry_compressedsize + + + beginString + zip_entry_compressionmethod + + + beginString + zip_entry_filesize + + + beginString + zip_entry_name + + + beginString + zip_entry_open + + + beginString + zip_entry_read + + + beginString + zip_open + + + beginString + zip_read + + + beginString + zlib_decode + + + beginString + zlib_encode + + + beginString + zlib_get_coding_type + + + commentsArray + + + beginString + #[^\n]*?(?=$|\?>) + regularExpression + + + + beginString + (?<!\\)//[^\n]*?(?=$|\?>) + ignoreCase + + regularExpression + + + + beginString + /* + endString + */ + ignoreCase + + regularExpression + + + + completionsArray + + + keyString + $_COOKIE[] + + + keyString + $_ENV[] + + + keyString + $_FILES[] + + + keyString + $_GET[] + + + keyString + $_POST[] + + + keyString + $_REQUEST[] + + + keyString + $_SERVER['argc'] + + + keyString + $_SERVER['argv'] + + + keyString + $_SERVER['AUTH_TYPE'] + + + keyString + $_SERVER['DOCUMENT_ROOT'] + + + keyString + $_SERVER['GATEWAY_INTERFACE'] + + + keyString + $_SERVER['HTTP_ACCEPT'] + + + keyString + $_SERVER['HTTP_ACCEPT_CHARSET'] + + + keyString + $_SERVER['HTTP_ACCEPT_ENCODING'] + + + keyString + $_SERVER['HTTP_ACCEPT_LANGUAGE'] + + + keyString + $_SERVER['HTTP_CONNECTION'] + + + keyString + $_SERVER['HTTP_HOST'] + + + keyString + $_SERVER['HTTP_REFERER'] + + + keyString + $_SERVER['HTTP_USER_AGENT'] + + + keyString + $_SERVER['PATH_TRANSLATED'] + + + keyString + $_SERVER['PHP_AUTH_PW'] + + + keyString + $_SERVER['PHP_AUTH_USER'] + + + keyString + $_SERVER['PHP_SELF'] + + + keyString + $_SERVER['QUERY_STRING'] + + + keyString + $_SERVER['REMOTE_ADDR'] + + + keyString + $_SERVER['REMOTE_HOST'] + + + keyString + $_SERVER['REMOTE_PORT'] + + + keyString + $_SERVER['REQUEST_METHOD'] + + + keyString + $_SERVER['REQUEST_TIME'] + + + keyString + $_SERVER['REQUEST_URI'] + + + keyString + $_SERVER['SCRIPT_FILENAME'] + + + keyString + $_SERVER['SCRIPT_NAME'] + + + keyString + $_SERVER['SERVER_ADMIN'] + + + keyString + $_SERVER['SERVER_NAME'] + + + keyString + $_SERVER['SERVER_PORT'] + + + keyString + $_SERVER['SERVER_PROTOCOL'] + + + keyString + $_SERVER['SERVER_SIGNATURE'] + + + keyString + $_SERVER['SERVER_SOFTWARE'] + + + keyString + $_SESSION[] + + + keyString + $GLOBALS[] + + + keyString + <?php + + + keyString + ?> + + + keyString + __call() + + + keyString + __callStatic() + + + keyString + __CLASS__ + + + keyString + __clone() + + + keyString + __construct() + + + keyString + __destruct() + + + keyString + __DIR__ + + + keyString + __FILE__ + + + keyString + __FUNCTION__ + + + keyString + __get() + + + keyString + __invoke() + + + keyString + __isset() + + + keyString + __LINE__ + + + keyString + __METHOD__ + + + keyString + __NAMESPACE__ + + + keyString + __set() + + + keyString + __set_state() + + + keyString + __sleep() + + + keyString + __toString() + + + keyString + __unset() + + + keyString + __wakeup() + + + keyString + ABDAY_1 + + + keyString + ABDAY_2 + + + keyString + ABDAY_3 + + + keyString + ABDAY_4 + + + keyString + ABDAY_5 + + + keyString + ABDAY_6 + + + keyString + ABDAY_7 + + + keyString + ABMON_1 + + + keyString + ABMON_10 + + + keyString + ABMON_11 + + + keyString + ABMON_12 + + + keyString + ABMON_2 + + + keyString + ABMON_3 + + + keyString + ABMON_4 + + + keyString + ABMON_5 + + + keyString + ABMON_6 + + + keyString + ABMON_7 + + + keyString + ABMON_8 + + + keyString + ABMON_9 + + + keyString + abs(mixed number) + + + keyString + abstract + + + keyString + acos(float arg) + + + keyString + acosh(float arg) + + + keyString + add_root(string name) + + + keyString + addcslashes(string str, string charlist) + + + keyString + addslashes(string str) + + + keyString + aggregate(object object , string class_name) + + + keyString + aggregate_info(object object) + + + keyString + aggregate_info(object object) + + + keyString + aggregate_methods(object object , string class_name) + + + keyString + aggregate_methods_by_list(object object , string class_name , array methods_list [, bool exclude]) + + + keyString + aggregate_methods_by_regexp(object object , string class_name , string regexp [, bool exclude]) + + + keyString + aggregate_properties(object object , string class_name) + + + keyString + aggregate_properties_by_list(object object , string class_name , array properties_list [, bool exclude]) + + + keyString + aggregate_properties_by_regexp(object object , string class_name , string regexp [, bool exclude]) + + + keyString + ALT_DIGITS + + + keyString + AM_STR + + + keyString + and + + + keyString + apache_child_terminate(void) + + + keyString + apache_get_modules(void) + + + keyString + apache_get_version(void) + + + keyString + apache_getenv(string variable [, bool walk_to_top]) + + + keyString + apache_lookup_uri(string filename) + + + keyString + apache_note(string note_name [, string note_value]) + + + keyString + apache_request_headers(void) + + + keyString + apache_response_headers(void) + + + keyString + apache_setenv(string variable, string value [, bool walk_to_top]) + + + keyString + append_child_terminate(void) + + + keyString + append_sibling() + + + keyString + arguments + + + keyString + array([mixed ...]) + + + keyString + array_change_key_case(array input [, int case]) + + + keyString + array_chunk(array input, int size [, bool preserve_keys]) + + + keyString + array_combine(array keys , array values) + + + keyString + array_combine(array keys, array values) + + + keyString + array_count_values(array input) + + + keyString + array_diff(array array1, array array2 [, array ...]) + + + keyString + array_diff_assoc(array array1, array array2 [, array ...]) + + + keyString + array_diff_key(array array1, array array2 [, array ...]) + + + keyString + array_diff_uassoc(array array1 , array array2 [, array ...], callable key_compare_func) + + + keyString + array_diff_uassoc(array array1, array array2 [, array ..., callback key_compare_func]) + + + keyString + array_diff_ukey(array array1, array array2 [, array ..., callback key_compare_func]) + + + keyString + array_fill(int start_index, int num, mixed value) + + + keyString + array_fill_keys(array keys , mixed value) + + + keyString + array_filter(array input [, callback callback]) + + + keyString + array_flip(array trans) + + + keyString + array_intersect(array array1, array array2 [, array ...]) + + + keyString + array_intersect_assoc(array array1, array array2 [, array ...]) + + + keyString + array_intersect_key(array array1, array array2 [, array ...]) + + + keyString + array_intersect_uassoc(array array1, array array2 [, array ..., callback key_compare_func]) + + + keyString + array_intersect_ukey(array array1, array array2 [, array ..., callback key_compare_func]) + + + keyString + array_key_exists(mixed key, array search) + + + keyString + array_keys(array input [, mixed search_value [, bool strict]]) + + + keyString + array_map(callback callback, array arr1 [, array ...]) + + + keyString + array_merge(array array1 [, array array2 [, array ...]]) + + + keyString + array_merge_recursive(array array1, array array2 [, array ...]) + + + keyString + array_multisort(array ar1 [, mixed arg [, mixed ... [, array ...]]]) + + + keyString + array_pad(array input, int pad_size, mixed pad_value) + + + keyString + array_pop(array &array) + + + keyString + array_push(array &array, mixed var [, mixed ...]) + + + keyString + array_rand(array input [, int num_req]) + + + keyString + array_reduce(array input, callback function [, int initial]) + + + keyString + array_replace(array array , array array1 [, array ...]) + + + keyString + array_replace_recursive(array array , array array1 [, array ...]) + + + keyString + array_reverse(array array [, bool preserve_keys]) + + + keyString + array_search(mixed needle, array haystack [, bool strict]) + + + keyString + array_shift(array &array) + + + keyString + array_slice(array array, int offset [, int length [, bool preserve_keys]]) + + + keyString + array_splice(array &input, int offset [, int length [, array replacement]]) + + + keyString + array_sum(number arr) + + + keyString + array_udiff(array array1 , array array2 [, array ...], callable data_compare_func) + + + keyString + array_udiff_assoc(array array1 , array array2 [, array ...], callable data_compare_func) + + + keyString + array_udiff_uassoc(array array1 , array array2 [, array ...], callable data_compare_func , callable key_compare_func) + + + keyString + array_uintersect(array array1 , array array2 [, array ...], callable data_compare_func) + + + keyString + array_uintersect_assoc (array array1 , array array2 [, array ...], callable data_compare_func) + + + keyString + array_uintersect_assoc(array array1, array array2 [, array ..., callback data_compare_func] + + + keyString + array_uintersect_uassoc(array array1 , array array2 [, array ...], callable data_compare_func , callable key_compare_func) + + + keyString + array_unique(array array) + + + keyString + array_unshift(array &array [, mixed ...]) + + + keyString + array_values(array input) + + + keyString + array_walk(array &array, callback funcname [, mixed userdata]) + + + keyString + array_walk_recursive(array &input, callback funcname [, mixed userdata]) + + + keyString + arsort(array &array [, int sort_flags]) + + + keyString + ascii2ebcdic(string ascii_str) + + + keyString + asin(float arg) + + + keyString + asinh(float arg) + + + keyString + asort(array &array [, int sort_flags]) + + + keyString + assert(mixed assertion) + + + keyString + ASSERT_ACTIVE + + + keyString + ASSERT_BAIL + + + keyString + ASSERT_CALLBACK + + + keyString + assert_options() + + + keyString + ASSERT_QUIET_EVAL + + + keyString + ASSERT_WARNING + + + keyString + atan(float arg) + + + keyString + atan2(float y, float x) + + + keyString + atanh(float arg) + + + keyString + base64_decode(string encoded_data) + + + keyString + base64_encode(string data) + + + keyString + base_convert(string number, int frombase, int tobase) + + + keyString + basename(string path [, string suffix]) + + + keyString + bcadd(string left operand, string right operand, int [scale]) + + + keyString + bccomp(string left operand, string right operand, int [scale]) + + + keyString + bcdiv(string left operand, string right operand, int [scale]) + + + keyString + bcmod(string left operand, string modulus) + + + keyString + bcmul(string left operand, string right operand, int [scale]) + + + keyString + bcpow(string x, string y, int [scale]) + + + keyString + bcpowmod(string x, string y, string modulus [, int scale]) + + + keyString + bcscale(int scale) + + + keyString + bcsqrt(string operand, int [scale]) + + + keyString + bcsub(string left operand, string right operand, int [scale]) + + + keyString + bin2hex(string str) + + + keyString + bind_textdomain_codeset(string domain, string codeset) + + + keyString + bindec(string binary_string) + + + keyString + bindtextdomain(string domain, string directory) + + + keyString + boolval(mixed var) + + + keyString + break + + + keyString + BUS_ADRALN + + + keyString + BUS_ADRERR + + + keyString + BUS_OBJERR + + + keyString + bzclose(int bz) + + + keyString + bzcompress(string source [, int blocksize [, int workfactor]]) + + + keyString + bzdecompress(string source [, int small]) + + + keyString + bzerrno(int bz) + + + keyString + bzerror(int bz) + + + keyString + bzerrstr(int bz) + + + keyString + bzflush(int bz) + + + keyString + bzopen(string filename, string mode) + + + + keyString + bzread(int bz [, int length]) + + + keyString + bzwrite(int bz, string data [, int length]) + + + keyString + cal_days_in_month(int calendar, int month, int year) + + + keyString + cal_from_jd(int jd, int calendar) + + + keyString + cal_info(int calendar) + + + keyString + cal_to_jd(int calendar, int month, int day, int year) + + + keyString + call_user_func(callback function [, mixed parameter [, mixed ...]]) + + + keyString + call_user_func_array(callback function [, array param_arr]) + + + keyString + call_user_method(string method_name, object &obj [, mixed parameter [, mixed ...]]) + + + keyString + call_user_method_array(string method_name, object &obj, array paramarr) + + + keyString + case + + + keyString + CASE_LOWER + + + keyString + CASE_UPPER + + + keyString + catch + + + keyString + ceil(float value) + + + keyString + CHAR_MAX + + + keyString + chdir(string directory) + + + keyString + checkdate(int month, int day, int year) + + + keyString + checkdnsrr(string host [, string type]) + + + keyString + chgrp(string filename, mixed group) + + + keyString + chmod(string filename, int mode) + + + keyString + chop(string str [, string charlist]) + + + keyString + chown(string filename, mixed user) + + + keyString + chr(int ascii) + + + keyString + chroot(string directory) + + + keyString + chunk_split(string string [, int chunklen [, string end]]) + + + keyString + class + + + keyString + class_alias([ string original [, string alias]]) + + + keyString + class_exists(string class_name [, bool autoload]) + + + keyString + class_implements(mixed class [, bool autoload]) + + + keyString + class_parents(mixed class [, bool autoload]) + + + keyString + class_uses(mixed class [, bool autoload]) + + + keyString + class_uses(mixed class [, bool autoload]) + + + keyString + CLD_CONTIUNED + + + keyString + CLD_DUMPED + + + keyString + CLD_EXITED + + + keyString + CLD_KILLED + + + keyString + CLD_STOPPED + + + keyString + CLD_TRAPPED + + + keyString + clearstatcache(void) + + + keyString + clone + + + keyString + clone_node(void) + + + keyString + closedir(resource dir_handle) + + + keyString + closelog(void) + + + keyString + CODESET + + + keyString + com_create_guid(void) + + + keyString + com_event_sink(variant comobject , object sinkobject [, mixed sinkinterface]) + + + keyString + com_get_active_object(string progid [, int code_page]) + + + keyString + com_load_typelib(string typelib_name [, bool case_insensitive]) + + + keyString + com_message_pump([ int timeoutms]) + + + keyString + com_print_typeinfo(object comobject [, string dispinterface [, bool wantsink]]) + + + keyString + compact(mixed varname [, mixed ...]) + + + keyString + CONNECTION_ABORTED + + + keyString + connection_aborted(void) + + + keyString + CONNECTION_NORMAL + + + keyString + connection_status(void) + + + keyString + CONNECTION_TIMEOUT + + + keyString + connection_timeout(void) + + + keyString + const + + + keyString + constant(string name) + + + keyString + continue + + + keyString + convert_cyr_string(string str, string from, string to) + + + keyString + convert_uudecode(string data) + + + keyString + convert_uuencode(string data) + + + keyString + copy(string source, string dest) + + + keyString + cos(float arg) + + + keyString + cosh(float arg) + + + keyString + count(mixed var [, int mode]) + + + keyString + count_chars(string string, int [mode]) + + + keyString + COUNT_NORMAL + + + keyString + COUNT_RECURSIVE + + + keyString + cpdf_add_annotation(int pdf document, float llx, float lly, float urx, float ury, string title, string content, int [mode]) + + + keyString + cpdf_add_outline(int pdf document, string text) + + + keyString + cpdf_arc(int pdf document, float x-coor, float y-coor, float radius, float start, float end, int mode) + + + keyString + cpdf_begin_text(int pdf document) + + + keyString + cpdf_circle(int pdf document, float x-coor, float y-coor, float radius [, int mode]) + + + keyString + cpdf_clip(int pdf document) + + + keyString + cpdf_close(int pdf document) + + + keyString + cpdf_closepath(int pdf document) + + + keyString + cpdf_closepath_fill_stroke(int pdf document) + + + keyString + cpdf_closepath_stroke(int pdf document) + + + keyString + cpdf_continue_text(int pdf document, string text) + + + keyString + cpdf_curveto(int pdf document, float x1, float y1, float x2, float y2, float x3, float y3, int mode) + + + keyString + cpdf_end_text(int pdf document) + + + keyString + cpdf_fill(int pdf document) + + + keyString + cpdf_fill_stroke(int pdf document) + + + keyString + cpdf_finalize(int pdf document) + + + keyString + cpdf_finalize_page(int pdf document, int page number) + + + keyString + cpdf_global_set_document_limits(int maxpages, int maxfonts, int maximages, int maxannotations, int maxobjects) + + + keyString + cpdf_import_jpeg(int pdf document, string file name, float x-coor, float y-coor, float angle, float width, float height, float x-scale, float y-scale, int [mode]) + + + keyString + cpdf_lineto(int pdf document, float x-coor, float y-coor, int mode) + + + keyString + cpdf_moveto(int pdf document, float x-coor, float y-coor, int mode) + + + keyString + cpdf_newpath(int pdf document) + + + keyString + cpdf_open(int compression, string filename) + + + keyString + cpdf_output_buffer(int pdf document) + + + keyString + cpdf_page_init(int pdf document, int page number, int orientation, float height, float width, float unit) + + + keyString + cpdf_place_inline_image(int pdf document, int image, float x-coor, float y-coor, float angle, float width, float height, int [mode]) + + + keyString + cpdf_rect(int pdf document, float x-coor, float y-coor, float width, float height, int mode) + + + keyString + cpdf_restore(int pdf document) + + + keyString + cpdf_rlineto(int pdf document, float x-coor, float y-coor, int mode) + + + keyString + cpdf_rmoveto(int pdf document, float x-coor, float y-coor, int mode) + + + keyString + cpdf_rotate(int pdf document, float angle) + + + keyString + cpdf_rotate_text(int pdfdoc, float angle) + + + keyString + cpdf_save(int pdf document) + + + keyString + cpdf_save_to_file(int pdf document, string filename) + + + keyString + cpdf_scale(int pdf document, float x-scale, float y-scale) + + + keyString + cpdf_set_action_url(int pdfdoc, float xll, float yll, float xur, float xur, string url [, int mode]) + + + keyString + cpdf_set_char_spacing(int pdf document, float space) + + + keyString + cpdf_set_creator(string creator) + + + keyString + cpdf_set_current_page(int pdf document, int page number) + + + keyString + cpdf_set_font(int pdf document, string font name, float size, string encoding) + + + keyString + cpdf_set_font_directories(int pdfdoc, string pfmdir, string pfbdir) + + + keyString + cpdf_set_font_map_file(int pdfdoc, string filename) + + + keyString + cpdf_set_horiz_scaling(int pdf document, float scale) + + + keyString + cpdf_set_keywords(string keywords) + + + keyString + cpdf_set_leading(int pdf document, float distance) + + + keyString + cpdf_set_page_animation(int pdf document, int transition, float duration) + + + keyString + cpdf_set_subject(string subject) + + + keyString + cpdf_set_text_matrix(int pdf document, array matrix) + + + keyString + cpdf_set_text_pos(int pdf document, float x-coor, float y-coor, int mode) + + + keyString + cpdf_set_text_rendering(int pdf document, int mode) + + + keyString + cpdf_set_text_rise(int pdf document, float value) + + + keyString + cpdf_set_title(string title) + + + keyString + cpdf_set_viewer_preferences(int pdfdoc, array preferences) + + + keyString + cpdf_set_word_spacing(int pdf document, float space) + + + keyString + cpdf_setdash(int pdf document, float white, float black) + + + keyString + cpdf_setflat(int pdf document, float value) + + + keyString + cpdf_setgray(int pdf document, float gray value) + + + keyString + cpdf_setgray_fill(int pdf document, float value) + + + keyString + cpdf_setgray_stroke(int pdf document, float gray value) + + + keyString + cpdf_setlinecap(int pdf document, int value) + + + keyString + cpdf_setlinejoin(int pdf document, long value) + + + keyString + cpdf_setlinewidth(int pdf document, float width) + + + keyString + cpdf_setmiterlimit(int pdf document, float value) + + + keyString + cpdf_setrgbcolor(int pdf document, float red value, float green value, float blue value) + + + keyString + cpdf_setrgbcolor_fill(int pdf document, float red value, float green value, float blue value) + + + keyString + cpdf_setrgbcolor_stroke(int pdf document, float red value, float green value, float blue value) + + + keyString + cpdf_show(int pdf document, string text) + + + keyString + cpdf_show_xy(int pdf document, string text, float x-coor, float y-coor [, int mode]) + + + keyString + cpdf_stringwidth(int pdf document, string text) + + + keyString + cpdf_stroke(int pdf document) + + + keyString + cpdf_text(int pdf document, string text, float x-coor, float y-coor [, int mode [, float orientation [, int alignmode]]]) + + + keyString + cpdf_translate(int pdf document, float x-coor, float y-coor [, int mode]) + + + keyString + crack_check(resource dictionary, string password) + + + keyString + crack_closedict([resource dictionary]) + + + keyString + crack_getlastmessage(void) + + + keyString + crack_opendict(string dictionary) + + + keyString + crc32(string str) + + + keyString + create_attribute(string name, string value) + + + keyString + create_cdata_section(string content) + + + keyString + create_comment(string content) + + + keyString + create_element(string name) + + + keyString + create_element_ns(string uri, string name [, string prefix]) + + + keyString + create_entity_reference() + + + keyString + create_function(string args, string code) + + + keyString + create_processing_instruction(string target [, string data]) + + + keyString + create_text_node(string content) + + + keyString + CREDITS_ALL + + + keyString + CREDITS_DOCS + + + keyString + CREDITS_FULLPAGE + + + keyString + CREDITS_GENERAL + + + keyString + CREDITS_GROUP + + + keyString + CREDITS_MODULES + + + keyString + CREDITS_QA + + + keyString + CREDITS_SAPI + + + keyString + CRNCYSTR + + + keyString + CRYP + + + keyString + crypt(string str, string [salt]) + + + keyString + CRYPT_BLOWFISH + + + keyString + CRYPT_EXT_DES + + + keyString + CRYPT_MD5 + + + keyString + CRYPT_SALT_LENGTH + + + keyString + ctype_alnum(string text) + + + keyString + ctype_alpha(string c) + + + keyString + ctype_cntrl(string text) + + + keyString + ctype_digit(string c) + + + keyString + ctype_graph(string c) + + + keyString + ctype_lower(string c) + + + keyString + ctype_print(string c) + + + keyString + ctype_punct(string text) + + + keyString + ctype_space(string c) + + + keyString + ctype_upper(string text) + + + keyString + ctype_xdigit(string c) + + + keyString + curl_close(int ch) + + + keyString + curl_copy_handle(resource ch) + + + keyString + curl_errno(resource ch) + + + keyString + curl_error(int ch) + + + keyString + curl_exec(int ch) + + + keyString + curl_getinfo(resource ch [, int opt]) + + + keyString + curl_init(string [url]) + + + keyString + curl_multi_add_handle(resource mh , resource ch) + + + keyString + curl_multi_close(resource mh) + + + keyString + curl_multi_exec(resource mh , int &still_running) + + + keyString + curl_multi_getcontent(resource ch) + + + keyString + curl_multi_info_read(resource mh [, int &msgs_in_queue]) + + + keyString + curl_multi_init(void) + + + keyString + curl_multi_remove_handle(resource mh , resource ch) + + + keyString + curl_multi_select(resource mh [, float timeout]) + + + keyString + curl_setopt(resource ch, int option, mixed value) + + + keyString + curl_setopt_array(resource ch , array options) + + + keyString + curl_version(void) + + + keyString + CURLE_FILESIZE_EXCEEDED + + + keyString + CURLE_FTP_SSL_FAILED + + + keyString + CURLE_LDAP_INVALID_URL + + + keyString + CURLFTPAUTH_DEFAULT + + + keyString + CURLFTPAUTH_SSL + + + keyString + CURLFTPAUTH_TLS + + + keyString + CURLFTPSSL_ALL + + + keyString + CURLFTPSSL_CONTROL + + + keyString + CURLFTPSSL_NONE + + + keyString + CURLFTPSSL_TRY + + + keyString + CURLOPT_CONNECTTIMEOUT_MS + + + keyString + CURLOPT_FTP_SSL + + + keyString + CURLOPT_FTPSSLAUTH + + + keyString + CURLOPT_MAX_RECV_SPEED_LARGE + + + keyString + CURLOPT_MAX_SEND_SPEED_LARGE + + + keyString + CURLOPT_PROGRESSFUNCTION + + + keyString + CURLOPT_TCP_NODELAY + + + keyString + CURLOPT_TIMEOUT_MS + + + keyString + CURRENCY_SYMBOL + + + keyString + current(array &array) + + + keyString + cybercash_base64_decode(string inbuff) + + + keyString + cybercash_base64_encode(string inbuff) + + + keyString + cybercash_decr(string wmk, string sk, string inbuff) + + + keyString + cybercash_encr(string wmk, string sk, string inbuff) + + + keyString + cybermut_creerformulairecm(string url_cm, string version, string tpe, string price, string ref_command, string text_free, string url_return, string url_return_ok, string url_return_err, string language, string code_company, string text_button) + + + keyString + cybermut_creerreponsecm(string sentence) + + + keyString + cybermut_testmac(string code_mac, string version, string tpe, string cdate, string price, string ref_command, string text_free, string code_return) + + + keyString + cyrus_authenticate(resource connection [, string mechlist [, string service [, string user [, int minssf [, int maxssf [, string authname [, string password]]]]]]]) + + + keyString + cyrus_bind(resource connection, array callbacks) + + + keyString + cyrus_close(resource connection) + + + keyString + cyrus_connect([string host [, string port [, int flags]]]) + + + keyString + cyrus_query(resource connection, string query) + + + keyString + cyrus_unbind(resource connection, string trigger_name) + + + keyString + D_FMT + + + keyString + D_T_FMT + + + keyString + date(string format [, int timestamp]) + + + keyString + date_add(DateTime object , DateInterval interval) + + + keyString + date_create() + + + keyString + date_create_from_format(string format , string time [, DateTimeZone timezone]) + + + keyString + date_date_set() + + + keyString + date_default_timezone_get(void) + + + keyString + date_default_timezone_set(string timezone_identifier) + + + keyString + date_diff(DateTime datetime1 , DateTime datetime2 [, bool absolute = false]) + + + keyString + date_format() + + + keyString + date_get_last_errors(void) + + + keyString + date_interval_create_from_date_string() + + + keyString + date_interval_format() + + + keyString + date_isodate_set() + + + keyString + date_modify() + + + keyString + date_offset_get() + + + keyString + date_parse(string date) + + + keyString + date_parse_from_format(string format , string date) + + + keyString + date_sub(DateTime object , DateInterval interval) + + + keyString + date_sun_info(int time , float latitude , float longitude) + + + keyString + date_sunrise(int timestamp [, int format = SUNFUNCS_RET_STRING [, float $latitude = ini_get("date.default_latitude") [, float longitude = ini_get("date.default_longitude") [, float zenith = ini_get("date.sunrise_zenith") [, float gmt_offset = 0]]]]]) + + + keyString + date_sunset(int timestamp [, int format = SUNFUNCS_RET_STRING [, float latitude = ini_get("date.default_latitude") [, float longitude = ini_get("date.default_longitude") [, float zenith = ini_get("date.sunset_zenith") [, float gmt_offset = 0]]]]]) + + + keyString + date_time_set() + + + keyString + date_timestamp_get() + + + keyString + date_timestamp_set() + + + keyString + date_timezone_get() + + + keyString + date_timezone_set() + + + keyString + DAY_1 + + + keyString + DAY_2 + + + keyString + DAY_3 + + + keyString + DAY_4 + + + keyString + DAY_5 + + + keyString + DAY_6 + + + keyString + DAY_7 + + + keyString + dba_close(resource handle) + + + keyString + dba_delete(string key, resource handle) + + + keyString + dba_exists(string key , resource handle) + + + keyString + dba_fetch(string key , resource handle) + + + keyString + dba_firstkey(resource handle) + + + keyString + dba_handlers([ bool full_info]) + + + keyString + dba_insert(string key , string value , resource handle) + + + keyString + dba_key_split(mixed key) + + + keyString + dba_list(void) + + + keyString + dba_nextkey(resource handle) + + + keyString + dba_open(string path , string mode [, string handler [, mixed ...]]) + + + keyString + dba_optimize(resource handle) + + + keyString + dba_popen(string path , string mode [, string handler [, mixed ...]]) + + + keyString + dba_replace(string key , string value , resource handle) + + + keyString + dba_sync(resource handle) + + + keyString + dblist() + + + keyString + dbmclose() + + + keyString + dbmdelete() + + + keyString + dbmexists() + + + keyString + dbmfetch() + + + keyString + dbmfirstkey() + + + keyString + dbminsert() + + + keyString + dbmnextkey() + + + keyString + dbmopen() + + + keyString + dbmreplace() + + + keyString + dbx_close() + + + keyString + dbx_compare() + + + keyString + dbx_connect() + + + keyString + dbx_error() + + + keyString + dbx_escape_string() + + + keyString + dbx_fetch_row(object result_identifier) + + + keyString + dbx_query() + + + keyString + dbx_sort() + + + keyString + dcgettext() + + + keyString + dcngettext() + + + keyString + deaggregate(object object [, string class_name]) + + + keyString + debug_backtrace() + + + keyString + debugger_off() + + + keyString + debugger_on() + + + keyString + decbin() + + + keyString + dechex() + + + keyString + DECIMAL_POINT + + + keyString + declare + + + keyString + decoct(int number) + + + keyString + DEFAULT_INCLUDE_PATH + + + keyString + define(string name, mixed value, bool [case_insensitive]) + + + keyString + defined(string name) + + + keyString + deg2rad(double number) + + + keyString + delete(string file) + + + keyString + df_rect() + + + keyString + dgettext() + + + keyString + die([string status]) + + + keyString + dio_close() + + + keyString + dio_fcntl() + + + keyString + dio_open() + + + keyString + dio_read() + + + keyString + dio_seek() + + + keyString + dio_stat() + + + keyString + dio_tcsetattr() + + + keyString + dio_truncate() + + + keyString + dio_write() + + + keyString + dir(string directory) + + + keyString + DIRECTORY_SEPARATOR + + + keyString + dirname() + + + keyString + disk_free_space() + + + keyString + disk_total_space() + + + keyString + diskfreespace() + + + keyString + dl(string library) + + + keyString + dns_check_record() + + + keyString + dns_get_mx() + + + keyString + dns_get_record() + + + keyString + do + + + keyString + doctype() + + + keyString + document_element() + + + keyString + dom_import_simplexml(SimpleXMLElement node) + + + keyString + DomAttribute->name(void) + + + keyString + DomAttribute->specified(void) + + + keyString + DomAttribute->value(void) + + + keyString + DOMDocument + + + keyString + DomDocument->add_root(string name) + + + keyString + DomDocument->create_attribute(string name, string value) + + + keyString + DomDocument->create_cdata_section(string content) + + + keyString + DomDocument->create_comment(string content) + + + keyString + DomDocument->create_element(string name) + + + keyString + DomDocument->create_element_ns(string uri, string name [, string prefix]) + + + keyString + DomDocument->create_entity_reference(string content) + + + keyString + DomDocument->create_processing_instruction(string content) + + + keyString + DomDocument->create_text_node(string content) + + + keyString + DomDocument->doctype(void) + + + keyString + DomDocument->document_element(void) + + + keyString + DomDocument->dump_file(string filename [, bool compressionmode [, bool format]]) + + + keyString + DomDocument->dump_mem([bool format]) + + + keyString + DomDocument->get_element_by_id(string id) + + + keyString + DomDocument->get_elements_by_tagname(string name) + + + keyString + DomDocument->html_dump_mem(void) + + + keyString + DomDocument->xinclude(void) + + + keyString + DomDocumentType->entities(void) + + + keyString + DomDocumentType->internal_subset(void) + + + keyString + DomDocumentType->name(void) + + + keyString + DomDocumentType->notations(void) + + + keyString + DomDocumentType->notations(void) + + + keyString + DomDocumentType->public_id(void) + + + keyString + DomDocumentType->system_id(void) + + + keyString + DomElement->get_attribute(string name) + + + keyString + DomElement->get_attribute_node(object attr) + + + keyString + DomElement->get_elements_by_tagname(string name) + + + keyString + DomElement->has_attribute(string name) + + + keyString + DomElement->remove_attribute(string name) + + + keyString + DomElement->set_attribute(string name, string value) + + + keyString + DomElement->set_attribute(string name, string value) + + + keyString + DomElement->set_attribute_node(object attr) + + + keyString + DomElement->tagname(void) + + + keyString + DomNode->add_namespace(string uri, string prefix) + + + keyString + DomNode->append_child(object newnode) + + + keyString + DomNode->append_sibling(object newnode) + + + keyString + DomNode->attributes(void) + + + keyString + DomNode->child_nodes(void) + + + keyString + DomNode->clone_node(void) + + + keyString + DomNode->dump_node(void) + + + keyString + DomNode->first_child(void) + + + keyString + DomNode->get_content(void) + + + keyString + DomNode->has_attributes(void) + + + keyString + DomNode->has_child_nodes(void) + + + keyString + DomNode->insert_before(object newnode, object refnode) + + + keyString + DomNode->is_blank_node(void) + + + keyString + DomNode->last_child(void) + + + keyString + DomNode->next_sibling(void) + + + keyString + DomNode->node_name(void) + + + keyString + DomNode->node_name(void) + + + keyString + DomNode->node_type(void) + + + keyString + DomNode->node_type(void) + + + keyString + DomNode->node_value(void) + + + keyString + DomNode->node_value(void) + + + keyString + DomNode->owner_document(void) + + + keyString + DomNode->parent_node(void) + + + keyString + DomNode->prefix(void) + + + keyString + DomNode->previous_sibling(void) + + + keyString + DomNode->remove_child(object oldchild) + + + keyString + DomNode->replace_child(domelement oldnode, domelement newnode) + + + keyString + DomNode->replace_node(void) + + + keyString + DomNode->set_content(void) + + + keyString + DomNode->set_content(void) + + + keyString + DomNode->set_name(void) + + + keyString + DomNode->set_name(void) + + + keyString + DomNode->set_namespace(string uri [, string prefix]) + + + keyString + DomNode->set_namespace(string uri [, string prefix]) + + + keyString + DomNode->unlink_node(void) + + + keyString + DomProcessingInstruction->data(void) + + + keyString + DomProcessingInstruction->target(void) + + + keyString + domxml_new_doc(string version) + + + keyString + domxml_open_file(string filename) + + + keyString + domxml_open_mem(string str) + + + keyString + domxml_version(void) + + + keyString + domxml_xmltree(string str) + + + keyString + domxml_xslt_stylesheet(string xsl_document) + + + keyString + domxml_xslt_stylesheet_doc(domdocument DocDocumentObject) + + + keyString + DomXsltStylesheet->process(domdocument DomDocument [, array xslt_parameters [, bool param_is_xpath]]) + + + keyString + DomXsltStylesheet->result_dump_file(domdocument DomDocument, string filename) + + + keyString + DomXsltStylesheet->result_dump_mem(domdocument DomDocument) + + + keyString + doubleval() + + + keyString + dump_file() + + + keyString + dump_mem() + + + keyString + dump_node() + + + keyString + E_ALL + + + keyString + E_COMPILE_ERROR + + + keyString + E_COMPILE_WARNING + + + keyString + E_CORE_ERROR + + + keyString + E_CORE_WARNING + + + keyString + E_DEPRECATED + + + keyString + E_ERROR + + + keyString + E_NOTICE + + + keyString + E_PARSE + + + keyString + E_STRICT + + + keyString + E_USER + + + keyString + E_USER_DEPRECATED + + + keyString + E_USER_ERROR + + + keyString + E_USER_NOTICE + + + keyString + E_USER_WARNING + + + keyString + E_WARNING + + + keyString + each() + + + keyString + easter_date() + + + keyString + easter_date([ int year]) + + + keyString + easter_days() + + + keyString + easter_days([ int year [, int method]]) + + + keyString + ebcdic2ascii() + + + keyString + echo(string arg1 [, string ...]) + + + keyString + else + + + keyString + elseif + + + keyString + empty(mixed var) + + + keyString + end(array &array) + + + keyString + enddeclare() + + + keyString + endfor + + + keyString + endforeach + + + keyString + endif + + + keyString + endswitch + + + keyString + endwhile + + + keyString + ENT_COMPAT + + + keyString + ENT_DISALLOWED + + + keyString + ENT_HTML401 + + + keyString + ENT_HTML5 + + + keyString + ENT_NOQUOTES + + + keyString + ENT_QUOTES + + + keyString + ENT_SUBSTITUTE + + + keyString + ENT_XHTML + + + keyString + ENT_XML1 + + + keyString + entities(void) + + + keyString + ERA + + + keyString + ERA_D_FMT + + + keyString + ERA_D_T_FMT + + + keyString + ERA_T_FMT + + + keyString + ERA_YEAR + + + keyString + ereg(string pattern, string string [, array &regs]) + + + keyString + ereg_replace(string pattern, string replacement, string string) + + + keyString + eregi(string pattern, string string [, array &regs]) + + + keyString + eregi_replace(string pattern, string replacement, string string) + + + keyString + error_get_last(void) + + + keyString + error_log(string message [, int message_type [, string destination [, string extra_headers]]]) + + + keyString + error_reporting() + + + keyString + escapeshellarg() + + + keyString + escapeshellcmd() + + + keyString + eval(string code_str) + + + keyString + exec(string command [, array &output [, int &return_var]]) + + + keyString + exif_imagetype(string filename) + + + keyString + exif_read_data(string filename [, string sections [, bool arrays [, bool thumbnail]]]) + + + keyString + exif_tagname(int index) + + + keyString + exif_thumbnail(string filename [, int &width [, int &height [, int &imagetype]]]) + + + keyString + exit([string status]) + + + keyString + exp(float arg) + + + keyString + explode(string separator, string string [, int limit]) + + + keyString + expm1(float number) + + + keyString + extends + + + keyString + extension_loaded(string name) + + + keyString + EXTR_IF_EXISTS + + + keyString + EXTR_OVERWRITE + + + keyString + EXTR_PREFIX_ALL + + + keyString + EXTR_PREFIX_IF_EXISTS + + + keyString + EXTR_PREFIX_INVALID + + + keyString + EXTR_PREFIX_SAME + + + keyString + EXTR_SKIP + + + keyString + extract(array var_array [, int extract_type [, string prefix]]) + + + keyString + ezmlm_hash() + + + keyString + fclose(resource handle) + + + keyString + feof(resource handle) + + + keyString + fflush(resource handle) + + + keyString + fgetc(resource handle) + + + keyString + fgetcsv(resource handle, int length [, string delimiter [, string enclosure]]) + + + keyString + fgets(resource handle [, int length]) + + + keyString + fgetss(resource handle [, int length [, string allowable_tags]]) + + + keyString + file(string filename [, int use_include_path [, resource context]]) + + + keyString + file(string filename [, int use_include_path [, resource context]]) + + + keyString + file_exists(string filename) + + + keyString + file_get_contents(string filename [, bool use_include_path [, resource context [, int offset]]]) + + + keyString + file_put_contents(string filename , mixed data [, int flags = 0 [, resource $context]]) + + + keyString + file_put_contents(string filename, string data [, int flags [, resource context]]) + + + keyString + fileatime(string filename) + + + keyString + filectime(string filename) + + + keyString + filegroup(string filename) + + + keyString + fileinode(string filename) + + + keyString + filemtime(string filename) + + + keyString + fileowner(string filename) + + + keyString + fileperms(string filename) + + + keyString + filesize(string filename) + + + keyString + filetype(string filename) + + + keyString + final + + + keyString + first_child(void) + + + keyString + floatval(mixed var) + + + keyString + flock(resource handle, int operation [, int &wouldblock]) + + + keyString + floor(float value) + + + keyString + flush(void) + + + keyString + fmod(float x, float y) + + + keyString + fnmatch(string pattern, string string [, int flags]) + + + keyString + fopen(string filename, string mode [, int use_include_path [, resource zcontext]]) + + + keyString + for + + + keyString + foreach + + + keyString + forward_static_call(callable function [, mixed parameter [, mixed ...]]) + + + keyString + forward_static_call_array(callable function , array parameters) + + + keyString + fpassthru(resource handle) + + + keyString + FPE_FLTDIV + + + keyString + FPE_FLTINV + + + keyString + FPE_FLTOVF + + + keyString + FPE_FLTRES + + + keyString + FPE_FLTSUB + + + keyString + FPE_FLTUND + + + keyString + FPE_INTDIV + + + keyString + FPE_INTOVF + + + keyString + fprintf(resource handle, string format [, mixed args [, mixed ...]]) + + + keyString + fputs(resource handle, string string [, int length]) + + + keyString + FRAC_DIGITS + + + keyString + fread(resource handle, int length) + + + keyString + FrenchToJD + + + keyString + frenchtojd(int month , int day , int year) + + + keyString + fscanf(resource handle, string format [, string var1]) + + + keyString + fseek(resource handle, int offset [, int whence]) + + + keyString + fsockopen(string target, int port [, int &errno [, string &errstr [, float timeout]]]) + + + keyString + fstat(resource handle) + + + keyString + ftell(resource handle) + + + keyString + ftok(string pathname, string proj) + + + keyString + ftp_alloc(resource ftp_stream , int filesize [, string &result]) + + + keyString + ftp_cdup() + + + keyString + ftp_chdir() + + + keyString + ftp_chmod() + + + keyString + ftp_close() + + + keyString + ftp_connect() + + + keyString + ftp_delete() + + + keyString + ftp_exec() + + + keyString + ftp_fget() + + + keyString + ftp_fput() + + + keyString + ftp_get() + + + keyString + ftp_get_option() + + + keyString + ftp_login() + + + keyString + ftp_mdtm() + + + keyString + ftp_mkdir() + + + keyString + ftp_nb_continue() + + + keyString + ftp_nb_fget() + + + keyString + ftp_nb_fput() + + + keyString + ftp_nb_get() + + + keyString + ftp_nb_put() + + + keyString + ftp_nlist() + + + keyString + ftp_pasv() + + + keyString + ftp_put() + + + keyString + ftp_pwd() + + + keyString + ftp_quit() + + + keyString + ftp_raw() + + + keyString + ftp_rawlist() + + + keyString + ftp_rename() + + + keyString + ftp_rmdir() + + + keyString + ftp_set_option() + + + keyString + ftp_site() + + + keyString + ftp_size() + + + keyString + ftp_ssl_connect() + + + keyString + ftp_systype() + + + keyString + ftruncate(resource handle, int size) + + + keyString + func_get_arg(int arg_num) + + + keyString + func_get_args(void) + + + keyString + func_num_args(void) + + + keyString + function + + + keyString + function_exists(string function_name) + + + keyString + fwrite(resource handle, string string [, int length]) + + + keyString + gc_collect_cycles(void) + + + keyString + gc_disable(void) + + + keyString + gc_enable(void) + + + keyString + gc_enabled(void) + + + keyString + gd_info(void) + + + keyString + get_browser(string [user_agent]) + + + keyString + get_called_class(void) + + + keyString + get_cfg_var(string varname) + + + keyString + get_class(object obj) + + + keyString + get_class_methods(string class_name) + + + keyString + get_class_vars(string class_name) + + + keyString + get_content(void) + + + keyString + get_current_user(void) + + + keyString + get_declared_classes(void) + + + keyString + get_declared_interfaces(void) + + + keyString + get_declared_interfaces(void) + + + keyString + get_declared_traits(void) + + + keyString + get_defined_constants(void) + + + keyString + get_defined_functions(void) + + + keyString + get_defined_vars(void) + + + keyString + get_extension_funcs(string module_name) + + + keyString + get_headers(string url [, int format = 0]) + + + keyString + get_html_translation_table(int table [, int quote_style]) + + + keyString + get_include_path(void) + + + keyString + get_included_files(void) + + + keyString + get_loaded_extensions(void) + + + keyString + get_magic_quotes_gpc(void) + + + keyString + get_magic_quotes_runtime(void) + + + keyString + get_meta_tags(string filename [, bool use_include_path]) + + + keyString + get_object_vars(object obj) + + + keyString + get_parent_class(mixed obj) + + + keyString + get_required_files(void) + + + keyString + get_resource_type(resource handle) + + + keyString + getallheaders() + + + keyString + getallheaders(void) + + + keyString + getcwd() + + + keyString + getdate([int timestamp]) + + + keyString + getenv(string varname) + + + keyString + gethostbyaddr(string ip_address) + + + keyString + gethostbyname(string hostname) + + + keyString + gethostbynamel(string hostname) + + + keyString + gethostname(void) + + + keyString + getimagesize(string filename [, array imageinfo]) + + + keyString + getimagesizefromstring(string imagedata [, array &imageinfo]) + + + keyString + getlastmod(void) + + + keyString + getmxrr() + + + keyString + getmygid() + + + keyString + getmyinode() + + + keyString + getmypid() + + + keyString + getmyuid() + + + keyString + getopt() + + + keyString + getprotobyname() + + + keyString + getprotobynumber() + + + keyString + getrandmax() + + + keyString + getrusage() + + + keyString + getservbyname() + + + keyString + getservbyport() + + + keyString + gettext() + + + keyString + gettimeofday() + + + keyString + gettype() + + + keyString + gif() + + + keyString + glob() + + + keyString + global + + + keyString + gmdate() + + + keyString + gmmktime() + + + keyString + gmp_abs() + + + keyString + gmp_add() + + + keyString + gmp_and() + + + keyString + gmp_clrbit() + + + keyString + gmp_cmp() + + + keyString + gmp_com() + + + keyString + gmp_div() + + + keyString + gmp_div_q() + + + keyString + gmp_div_qr() + + + keyString + gmp_div_r() + + + keyString + gmp_divexact() + + + keyString + gmp_fact() + + + keyString + gmp_gcd() + + + keyString + gmp_gcdext() + + + keyString + gmp_hamdist() + + + keyString + gmp_init() + + + keyString + gmp_intval() + + + keyString + gmp_invert() + + + keyString + gmp_jacobi() + + + keyString + gmp_legendre() + + + keyString + gmp_mod() + + + keyString + gmp_mul() + + + keyString + gmp_neg() + + + keyString + gmp_nextprime(int a) + + + keyString + gmp_or() + + + keyString + gmp_perfect_square() + + + keyString + gmp_popcount() + + + keyString + gmp_pow() + + + keyString + gmp_powm() + + + keyString + gmp_prob_prime() + + + keyString + gmp_random() + + + keyString + gmp_scan0() + + + keyString + gmp_scan1() + + + keyString + gmp_setbit() + + + keyString + gmp_sign() + + + keyString + gmp_sqrt() + + + keyString + gmp_sqrtrm() + + + keyString + gmp_strval() + + + keyString + gmp_sub() + + + keyString + gmp_testbit(resource a , int index) + + + keyString + GMP_VERSION + + + keyString + gmp_xor() + + + keyString + gmstrftime() + + + keyString + GregorianToJD + + + keyString + gregoriantojd(int month , int day , int year) + + + keyString + GROUPING + + + keyString + gzclose(int zp) + + + keyString + gzcompress(string data [, int level]) + + + keyString + gzdecode(string data [, int length]) + + + keyString + gzdeflate(string data [, int level]) + + + keyString + gzencode(string data [, int level [, int encoding_mode]]) + + + keyString + gzeof(int zp) + + + keyString + gzfile(string filename [, int use_include_path]) + + + keyString + gzgetc(int zp) + + + keyString + gzgets(int zp, int length) + + + keyString + gzgetss(int zp, int length, string [allowable_tags]) + + + keyString + gzinflate(string data [, int length]) + + + keyString + gzopen(string filename, string mode [, int use_include_path]) + + + keyString + gzpassthru(int zp) + + + keyString + gzputs(int zp, string str, int [length]) + + + keyString + gzread(int zp, int length) + + + keyString + gzrewind(int zp) + + + keyString + gzseek(int zp, int offset) + + + keyString + gztell(int zp) + + + keyString + gzuncompress(string data, int [length]) + + + keyString + gzwrite(int zp, string string, int [length]) + + + keyString + has_attribute() + + + keyString + has_attributess() + + + keyString + has_child_nodes() + + + keyString + hash(string algo , string data [, bool raw_output]) + + + keyString + hash_algos(void) + + + keyString + hash_copy(resource context) + + + keyString + hash_file(string algo , string filename [, bool raw_output]) + + + keyString + hash_final(resource context [, bool raw_output]) + + + keyString + hash_hmac(string algo , string data , string key [, bool raw_output]) + + + keyString + hash_hmac_file(string algo , string filename , string key [, bool raw_output]) + + + keyString + hash_init(string algo [, int options [, string key]]) + + + keyString + hash_pbkdf2(string algo , string password , string salt , int iterations [, int length [, bool raw_output]]) + + + keyString + hash_pbkdf2(string algo , string password , string salt , int iterations [, int length [, bool raw_output]]) + + + keyString + hash_update(resource context , string data) + + + keyString + hash_update_file(resource context , string filename [, resource context]) + + + keyString + hash_update_stream(resource context , resource handle [, int length]) + + + keyString + header(string string [, bool replace [, int http_response_code]]) + + + keyString + header_register_callback(callable callback) + + + keyString + header_remove([ string name]) + + + keyString + headers_list(void) + + + keyString + headers_list(void) + + + keyString + headers_sent([string &file [, int &line]]) + + + keyString + hebrev(string hebrew_text [, int max_chars_per_line]) + + + keyString + hebrevc(string hebrew_text [, int max_chars_per_line]) + + + keyString + hex2bin(string data) + + + keyString + hexdec(string hex_string) + + + keyString + highlight_file(string filename) + + + keyString + highlight_string(string str) + + + keyString + html_dump_mem(void) + + + keyString + HTML_ENTITIES + + + keyString + html_entity_decode(string string [, int quote_style [, string charset]]) + + + keyString + HTML_SPECIALCHARS + + + keyString + htmlentities(string string, int [quote_style], string [charset]) + + + keyString + htmlspecialchars(string string, int [quote_style] [, string charset]) + + + keyString + http_build_query(mixed query_data [, string numeric_prefix [, string arg_separator [, int enc_type]]]) + + + keyString + http_response_code([ int response_code]) + + + keyString + hypot(float num1, float num2) + + + keyString + ibase_add_user() + + + keyString + ibase_affected_rows() + + + keyString + ibase_affected_rows([ resource link_identifier]) + + + keyString + ibase_backup() + + + keyString + ibase_backup(resource service_handle , string source_db , string $dest_file [, int options [, bool verbose]]) + + + keyString + ibase_blob_add() + + + keyString + ibase_blob_cancel() + + + keyString + ibase_blob_close() + + + keyString + ibase_blob_create() + + + keyString + ibase_blob_echo() + + + keyString + ibase_blob_get() + + + keyString + ibase_blob_import() + + + keyString + ibase_blob_info() + + + keyString + ibase_blob_open() + + + keyString + ibase_close() + + + keyString + ibase_commit() + + + keyString + ibase_commit_ret() + + + keyString + ibase_commit_ret([ resource link_or_trans_identifier]) + + + keyString + ibase_connect() + + + keyString + ibase_db_info() + + + keyString + ibase_db_info(resource service_handle , string db , int action [, int argument]) + + + keyString + ibase_delete_user() + + + keyString + ibase_drop_db() + + + keyString + ibase_drop_db([ resource connection]) + + + keyString + ibase_errcode() + + + keyString + ibase_errcode(void) + + + keyString + ibase_errmsg() + + + keyString + ibase_execute() + + + keyString + ibase_fetch_assoc() + + + keyString + ibase_fetch_object() + + + keyString + ibase_fetch_row() + + + keyString + ibase_field_info() + + + keyString + ibase_free_event_handler() + + + keyString + ibase_free_event_handler(resource event) + + + keyString + ibase_free_query() + + + keyString + ibase_free_result() + + + keyString + ibase_gen_id() + + + keyString + ibase_gen_id(string generator [, int increment = 1 [, resource link_identifier]]) + + + keyString + ibase_maintain_db() + + + keyString + ibase_maintain_db(resource service_handle , string db , int action [, int argument]) + + + keyString + ibase_modify_user() + + + keyString + ibase_name_result() + + + keyString + ibase_name_result(resource result , string name) + + + keyString + ibase_num_fields() + + + keyString + ibase_num_params() + + + keyString + ibase_num_params(resource query) + + + keyString + ibase_param_info() + + + keyString + ibase_param_info(resource query , int param_number) + + + keyString + ibase_pconnect() + + + keyString + ibase_prepare() + + + keyString + ibase_query() + + + keyString + ibase_restore() + + + keyString + ibase_restore(resource service_handle , string source_file , string dest_db [, int options [, bool verbose]]) + + + keyString + ibase_rollback() + + + keyString + ibase_rollback_ret() + + + keyString + ibase_rollback_ret([ resource link_or_trans_identifier]) + + + keyString + ibase_server_info() + + + keyString + ibase_server_info(resource service_handle , int action) + + + keyString + ibase_service_attach() + + + keyString + ibase_service_attach(string host , string dba_username , string dba_password) + + + keyString + ibase_service_detach() + + + keyString + ibase_service_detach(resource service_handle) + + + keyString + ibase_set_event_handler() + + + keyString + ibase_set_event_handler(callable event_handler , string event_name1 [, string event_name2 [, string ...]]) + + + keyString + ibase_timefmt() + + + keyString + ibase_trans() + + + keyString + ibase_wait_event() + + + keyString + iconv(string in_charset, string out_charset, string str) + + + keyString + iconv_get_encoding([string type]) + + + keyString + iconv_mime_decode(string encoded_header [, int mode [, string charset]]) + + + keyString + iconv_mime_decode_headers(string encoded_headers [, int mode [, string charset]]) + + + keyString + iconv_mime_encode(string field_name, string field_value [, array preferences]) + + + keyString + iconv_set_encoding(string type, string charset) + + + keyString + iconv_strlen(string str [, string charset]) + + + keyString + iconv_strpos(string haystack, string needle [, int offset [, string charset]]) + + + keyString + iconv_strrpos(string haystack , string needle [, string charset]) + + + keyString + iconv_substr(string str, int offset [, int length [, string charset]]) + + + keyString + idate(string format [, int timestamp]) + + + keyString + IDNA_CHECK_BIDI + + + keyString + IDNA_CHECK_CONTEXTJ + + + keyString + IDNA_ERROR_BIDI + + + keyString + IDNA_ERROR_CONTEXTJ + + + keyString + IDNA_ERROR_DISALLOWED + + + keyString + IDNA_ERROR_DOMAIN_NAME_TOO_LONG + + + keyString + IDNA_ERROR_EMPTY_LABEL + + + keyString + IDNA_ERROR_HYPHEN_3_4 + + + keyString + IDNA_ERROR_INVALID_ACE_LABEL + + + keyString + IDNA_ERROR_LABEL_HAS_DOT + + + keyString + IDNA_ERROR_LABEL_TOO_LONG + + + keyString + IDNA_ERROR_LEADING_COMBINING_MARK + + + keyString + IDNA_ERROR_LEADING_HYPHEN + + + keyString + IDNA_ERROR_PUNYCODE + + + keyString + IDNA_ERROR_TRAILING_HYPHEN + + + keyString + IDNA_NONTRANSITIONAL_TO_ASCII + + + keyString + IDNA_NONTRANSITIONAL_TO_UNICODE + + + keyString + if + + + keyString + ifx_affected_rows() + + + keyString + ifx_blobinfile_mode() + + + keyString + ifx_byteasvarchar() + + + keyString + ifx_close() + + + keyString + ifx_connect() + + + keyString + ifx_copy_blob() + + + keyString + ifx_create_blob() + + + keyString + ifx_create_char() + + + keyString + ifx_do() + + + keyString + ifx_error() + + + keyString + ifx_errormsg() + + + keyString + ifx_fetch_row() + + + keyString + ifx_fieldproperties() + + + keyString + ifx_fieldtypes() + + + keyString + ifx_free_blob() + + + keyString + ifx_free_char() + + + keyString + ifx_free_result() + + + keyString + ifx_get_blob() + + + keyString + ifx_get_char() + + + keyString + ifx_getsqlca() + + + keyString + ifx_htmltbl_result() + + + keyString + ifx_nullformat() + + + keyString + ifx_num_fields() + + + keyString + ifx_num_rows() + + + keyString + ifx_pconnect() + + + keyString + ifx_prepare() + + + keyString + ifx_query() + + + keyString + ifx_textasvarchar() + + + keyString + ifx_update_blob() + + + keyString + ifx_update_char() + + + keyString + ifxus_close_slob() + + + keyString + ifxus_create_slob() + + + keyString + ifxus_free_slob() + + + keyString + ifxus_open_slob() + + + keyString + ifxus_read_slob() + + + keyString + ifxus_seek_slob() + + + keyString + ifxus_tell_slob() keyString - $_SERVER['HTTP_ACCEPT_LANGUAGE'] + ifxus_write_slob() keyString - $_SERVER['HTTP_CONNECTION'] + ignore_user_abort() keyString - $_SERVER['HTTP_HOST'] + ILL_BADSTK keyString - $_SERVER['HTTP_REFERER'] + ILL_COPROC keyString - $_SERVER['HTTP_USER_AGENT'] + ILL_ILLADR keyString - $_SERVER['PATH_TRANSLATED'] + ILL_ILLOPC keyString - $_SERVER['PHP_AUTH_PW'] + ILL_ILLOPN keyString - $_SERVER['PHP_AUTH_USER'] + ILL_ILLTRP keyString - $_SERVER['PHP_SELF'] + ILL_PRVOPC keyString - $_SERVER['QUERY_STRING'] + ILL_PRVREG keyString - $_SERVER['REMOTE_ADDR'] + image2wbmp(int im [, string filename [, int threshold]]) keyString - $_SERVER['REMOTE_HOST'] + image_type_to_extension(int imagetype [, bool include_dot]) keyString - $_SERVER['REMOTE_PORT'] + image_type_to_mime_type(int im [, string filename [, int threshold]]) keyString - $_SERVER['REQUEST_METHOD'] + imagealphablending(resource im, bool blendmode) keyString - $_SERVER['REQUEST_TIME'] + imageantialias(int im, bool on) keyString - $_SERVER['REQUEST_URI'] + imagearc(int im, int cx, int cy, int w, int h, int s, int e, int color) keyString - $_SERVER['SCRIPT_FILENAME'] + imagechar(int im, int font, int x, int y, string c, int color) keyString - $_SERVER['SCRIPT_NAME'] + imagecharup(resource image, int font, int x, int y, string c, int color) keyString - $_SERVER['SERVER_ADMIN'] + imagecolorallocate(resource image, int red, int green, int blue) keyString - $_SERVER['SERVER_NAME'] + imagecolorallocatealpha(resource image, int red, int green, int blue, int alpha) keyString - $_SERVER['SERVER_PORT'] + imagecolorat(int image, int x, int y) keyString - $_SERVER['SERVER_PROTOCOL'] + imagecolorclosest(int image, int red, int green, int blue) keyString - $_SERVER['SERVER_SIGNATURE'] + imagecolorclosestalpha(resource image, int red, int green, int blue, int alpha) keyString - $_SERVER['SERVER_SOFTWARE'] + imagecolorclosestthwb(resource image, int red, int green, int blue) keyString - $_SESSION[] + imagecolordeallocate(resource image, int color) keyString - $GLOBALS[] + imagecolorexact(resource image, int red, int green, int blue) keyString - <?php + imagecolorexactalpha(resource image, int red, int green, int blue, int alpha) keyString - ?> + imagecolormatch(resource image1, resource image2) keyString - __CLASS__ + imagecolorresolve(int im, int red, int green, int blue) keyString - __FILE__ + imagecolorresolvealpha(resource image, int red, int green, int blue, int alpha) keyString - __FUNCTION__ + imagecolorset(resource image, int index, int red, int green, int blue) keyString - __LINE__ + imagecolorsforindex(resource image, int index) keyString - __METHOD__ + imagecolorstotal(resource image) keyString - ABDAY_1 + imagecolortransparent(resource image [, int color]) keyString - ABDAY_2 + imagecopy(resource dst_im, resource src_im, int dst_x, int dst_y, int src_x, int src_y, int src_w, int src_h) keyString - ABDAY_3 + imagecopymerge(resource dst_im, resource src_im, int dst_x, int dst_y, int src_x, int src_y, int src_w, int src_h, int pct) keyString - ABDAY_4 + imagecopyresampled(resource dst_im, resource src_im, int dstX, int dstY, int srcX, int srcY, int dstW, int dstH, int srcW, int srcH) keyString - ABDAY_5 + imagecopyresized(resource dst_im, resource src_im, int dstX, int dstY, int srcX, int srcY, int dstW, int dstH, int srcW, int srcH) keyString - ABDAY_6 + imagecreate(int x_size, int y_size) keyString - ABDAY_7 + imagecreatefromgd(string filename) keyString - ABMON_1 + imagecreatefromgd2(string filename) keyString - ABMON_10 + imagecreatefromgd2part(string filename, int srcX, int srcY, int width, int height) keyString - ABMON_11 + imagecreatefromgif(string filename) keyString - ABMON_12 + imagecreatefromjpeg(string filename) keyString - ABMON_2 + imagecreatefrompng(string filename) keyString - ABMON_3 + imagecreatefromstring(string image) keyString - ABMON_4 + imagecreatefromwbmp(string filename) keyString - ABMON_5 + imagecreatefromxbm(string filename) keyString - ABMON_6 + imagecreatefromxpm(string filename) keyString - ABMON_7 + imagecreatetruecolor(int x_size, int y_size) keyString - ABMON_8 + imagedashedline(int im, int x1, int y1, int x2, int y2, int col) keyString - ABMON_9 + imagedestroy(resource image) keyString - abs( mixed number ) + imageellipse(resource image, int cx, int cy, int w, int h, int color) keyString - abstract + imagefill(resource image, int x, int y, int color) keyString - acos( float arg ) + imagefilledarc(resource image, int cx, int cy, int w, int h, int s, int e, int color, int style) keyString - acosh( float arg ) + ImageFilledEllipse(resource image, int cx, int cy, int w, int h, int color) keyString - add_root( string name ) + imagefilledpolygon(resource image, array points, int num_points, int color) keyString - addcslashes( string str, string charlist ) + imagefilledrectangle(resource image, int x1, int y1, int x2, int y2, int color) keyString - addslashes( string str ) + imagefilltoborder(resource image, int x, int y, int border, int color) keyString - ALT_DIGITS + imagefilter(resource image , int filtertype [, int arg1 [, int arg2 [, int arg3 [, int $arg4]]]]) keyString - AM_STR + imagefontheight(int font) keyString - and + imagefontwidth(int font) keyString - apache_child_terminate( void ) + imageftbbox(int size, int angle, string font_file, string text [, array extrainfo]) keyString - apache_get_modules( void ) + imagefttext(int im, int size, int angle, int x, int y, int col, string font_file, string text [, array extrainfo]) keyString - apache_get_version( void ) + imagegammacorrect(int image, float inputgamma, float outputgamma) keyString - apache_getenv( string variable [, bool walk_to_top] ) + imagegd(resource image [, string filename]) keyString - apache_lookup_uri( string filename ) + imagegd2(resource image [, string filename [, int chunk_size [, int type]]]) keyString - apache_note( string note_name [, string note_value] ) + imagegrabscreen(void) keyString - apache_request_headers( void ) + imagegrabwindow(int window_handle [, int client_area]) keyString - apache_response_headers( void ) + imageinterlace(resource image [, int interlace]) keyString - apache_setenv( string variable, string value [, bool walk_to_top] ) + imageistruecolor(resource image) keyString - append_child_terminate( void ) + imagejpeg(resource image [, string filename [, int quality]]) keyString - append_sibling() + imageline(resource image, int x1, int y1, int x2, int y2, int color) keyString - arguments + imageloadfont(string file) + + + keyString + imagepalettecopy(resource destination, resource source) keyString - array( [mixed ...] ) + imagepng(resource image [, string filename]) keyString - array_change_key_case( array input [, int case] ) + imagepolygon(resource image, array points, int num_points, int color) keyString - array_chunk( array input, int size [, bool preserve_keys] ) + imagepsbbox(string text, int font, int size [, int space [, int tightness [, float angle]]]) keyString - array_combine( array keys, array values ) + imagepscopyfont(int fontindex) keyString - array_count_values( array input ) + imagepsencodefont(int font_index, string encodingfile) keyString - array_diff( array array1, array array2 [, array ...] ) + imagepsextendfont(int font_index, float extend) keyString - array_diff_assoc( array array1, array array2 [, array ...] ) + imagepsfreefont(int fontindex) keyString - array_diff_key( array array1, array array2 [, array ...] ) + imagepsloadfont(string filename) keyString - array_diff_uassoc( array array1, array array2 [, array ..., callback key_compare_func] ) + imagepsslantfont(int font_index, float slant) keyString - array_diff_ukey( array array1, array array2 [, array ..., callback key_compare_func] ) + imagepstext(resource image, string text, int font, int size, int foreground, int background, int x, int y [, int space [, int tightness [, float angle [, int antialias_steps]]]]) keyString - array_fill( int start_index, int num, mixed value ) + imagerectangle(int image, int x1, int y1, int x2, int y2, int col) keyString - array_filter( array input [, callback callback] ) + imagerotate(resource src_im, float angle, int bgd_color) keyString - array_flip( array trans ) + imagesavealpha(resource image, bool saveflag) keyString - array_intersect( array array1, array array2 [, array ...] ) + ImageSetBrush(resource image, resource brush) keyString - array_intersect_assoc( array array1, array array2 [, array ...] ) + ImageSetPixel(resource image, int x, int y, int color) keyString - array_intersect_key( array array1, array array2 [, array ...] ) + imagesetstyle(resource im, array style) keyString - array_intersect_uassoc( array array1, array array2 [, array ..., callback key_compare_func] ) + imagesetthickness(resource image, int thickness) keyString - array_intersect_ukey( array array1, array array2 [, array ..., callback key_compare_func] ) + imagesettile(resource image, resource tile) keyString - array_key_exists( mixed key, array search ) + imagestring(int image, int font, int x, int y, string s, int col) keyString - array_keys( array input [, mixed search_value [, bool strict]] ) + imagestringup(int image, int font, int x, int y, string s, int col) keyString - array_map( callback callback, array arr1 [, array ...] ) + imagesx(resource image) keyString - array_merge( array array1 [, array array2 [, array ...]] ) + imagesy(resource image) keyString - array_merge_recursive( array array1, array array2 [, array ...] ) + imagetruecolortopalette(resource im, bool dither, int ncolors) keyString - array_multisort( array ar1 [, mixed arg [, mixed ... [, array ...]]] ) + imagettfbbox(int size, int angle, string fontfile, string text) keyString - array_pad( array input, int pad_size, mixed pad_value ) + imagettftext(resource image, int size, int angle, int x, int y, int color, string fontfile, string text) keyString - array_pop( array &array ) + imagetypes(void) keyString - array_push( array &array, mixed var [, mixed ...] ) + imagewbmp(resource image [, string filename [, int foreground]]) keyString - array_rand( array input [, int num_req] ) + imagexbm(resource image, string filename [, int foreground]) keyString - array_reduce( array input, callback function [, int initial] ) + imap_8bit() + + + keyString + imap_alerts() keyString - array_reverse( array array [, bool preserve_keys] ) + imap_append() keyString - array_search( mixed needle, array haystack [, bool strict] ) + imap_base64() keyString - array_shift( array &array ) + imap_binary() keyString - array_slice( array array, int offset [, int length [, bool preserve_keys]] ) + imap_body() keyString - array_splice( array &input, int offset [, int length [, array replacement]] ) + imap_bodystruct() keyString - array_sum( number arr ) + imap_check() keyString - array_uintersect_assoc( array array1, array array2 [, array ..., callback data_compare_func] + imap_clearflag_full() keyString - array_unique( array array ) + imap_close() keyString - array_unshift( array &array [, mixed ...] ) + imap_createmailbox() keyString - array_values( array input ) + imap_delete() keyString - array_walk( array &array, callback funcname [, mixed userdata] ) + imap_deletemailbox() keyString - array_walk_recursive( array &input, callback funcname [, mixed userdata] ) + imap_errors() keyString - arsort( array &array [, int sort_flags] ) + imap_expunge() keyString - ascii2ebcdic( string ascii_str ) + imap_fetch_overview() keyString - asin( float arg ) + imap_fetchbody() keyString - asinh( float arg ) + imap_fetchheader() keyString - asort( array &array [, int sort_flags] ) + imap_fetchstructure() keyString - assert( mixed assertion ) + imap_gc(resource imap_stream , int caches) keyString - ASSERT_ACTIVE + imap_get_quota() keyString - ASSERT_BAIL + imap_get_quotaroot() keyString - ASSERT_CALLBACK + imap_getacl(resource imap_stream , string mailbox) keyString - assert_options() + imap_getmailboxes() keyString - ASSERT_QUIET_EVAL + imap_getsubscribed() keyString - ASSERT_WARNING + imap_header() keyString - atan( float arg ) + imap_headerinfo() keyString - atan2( float y, float x ) + imap_headers() keyString - atanh( float arg ) + imap_last_error() keyString - base64_decode( string encoded_data ) + imap_list() keyString - base64_encode( string data ) + imap_listmailbox() keyString - base_convert( string number, int frombase, int tobase ) + imap_listscan() keyString - basename( string path [, string suffix] ) + imap_listsubscribed() keyString - bcadd( string left operand, string right operand, int [scale] ) + imap_lsub() keyString - bccomp( string left operand, string right operand, int [scale] ) + imap_mail() keyString - bcdiv( string left operand, string right operand, int [scale] ) + imap_mail_compose() keyString - bcmod( string left operand, string modulus ) + imap_mail_copy() keyString - bcmul( string left operand, string right operand, int [scale] ) + imap_mail_move() keyString - bcpow( string x, string y, int [scale] ) + imap_mailboxmsginfo() keyString - bcpowmod( string x, string y, string modulus [, int scale] ) + imap_mime_header_decode() keyString - bcscale( int scale ) + imap_msgno() keyString - bcsqrt( string operand, int [scale] ) + imap_mutf7_to_utf8() keyString - bcsub( string left operand, string right operand, int [scale] ) + imap_num_msg() keyString - bin2hex( string str ) + imap_num_recent() keyString - bind_textdomain_codeset( string domain, string codeset ) + imap_open() keyString - bindec( string binary_string ) + imap_ping() keyString - bindtextdomain( string domain, string directory ) + imap_qprint() keyString - break + imap_renamemailbox() keyString - bzclose( int bz ) + imap_reopen() keyString - bzcompress( string source [, int blocksize [, int workfactor]] ) + imap_rfc822_parse_adrlist() keyString - bzdecompress( string source [, int small] ) + imap_rfc822_parse_headers() keyString - bzerrno( int bz ) + imap_rfc822_write_address() keyString - bzerror( int bz ) + imap_scanmailbox() keyString - bzerrstr( int bz ) + imap_search() keyString - bzflush( int bz ) + imap_set_quota() keyString - bzopen( string filename, string mode ) - + imap_setacl() keyString - bzread( int bz [, int length] ) + imap_setflag_full() keyString - bzwrite( int bz, string data [, int length] ) + imap_sort() keyString - cal_days_in_month( int calendar, int month, int year ) + imap_status() keyString - cal_from_jd( int jd, int calendar ) + imap_subscribe() keyString - cal_info( int calendar ) + imap_thread() keyString - cal_to_jd( int calendar, int month, int day, int year ) + imap_uid() keyString - call_user_func( callback function [, mixed parameter [, mixed ...]] ) + imap_undelete() keyString - call_user_func_array( callback function [, array param_arr] ) + imap_unsubscribe() keyString - call_user_method( string method_name, object &obj [, mixed parameter [, mixed ...]] ) + imap_utf7_decode() keyString - call_user_method_array( string method_name, object &obj, array paramarr ) + imap_utf7_encode() keyString - case + imap_utf8() keyString - CASE_LOWER + imap_utf8_to_mutf7() keyString - CASE_UPPER + IMG_FILTER_PIXELATE keyString - catch + implements keyString - ceil( float value ) + implode(string glue, array pieces) keyString - CHAR_MAX + in_array(mixed needle, array haystack [, bool strict]) keyString - chdir( string directory ) + include() keyString - checkdate( int month, int day, int year ) + include_once() keyString - checkdnsrr( string host [, string type] ) + INFO_ALL keyString - chgrp( string filename, mixed group ) + INFO_CONFIGURATION keyString - chmod( string filename, int mode ) + INFO_CREDITS keyString - chop( string str [, string charlist] ) + INFO_ENVIRONMENT keyString - chown( string filename, mixed user ) + INFO_GENERAL keyString - chr( int ascii ) + INFO_LICENSE keyString - chroot( string directory ) + INFO_MODULES keyString - chunk_split( string string [, int chunklen [, string end]] ) + INFO_VARIABLES keyString - class + INI_ALL keyString - class_exists( string class_name [, bool autoload] ) + ini_alter(string varname, string newvalue) keyString - clearstatcache( void ) + ini_get(string varname) keyString - clone + ini_get_all([string extension]) keyString - clone_node( void ) + INI_PERDIR keyString - closedir( resource dir_handle ) + ini_restore(string varname) keyString - closelog( void ) + INI_SCANNER_NORMAL keyString - CODESET + INI_SCANNER_RAW keyString - compact( mixed varname [, mixed ...] ) + ini_set(string varname, string newvalue) keyString - CONNECTION_ABORTED + INI_SYSTEM keyString - connection_aborted( void ) + INI_USER keyString - CONNECTION_NORMAL + insert_before(object newnode, object refnode) keyString - connection_status( void ) + INT_CURR_SYMBOL keyString - CONNECTION_TIMEOUT + INT_FRAC_DIGITS keyString - connection_timeout( void ) + interface keyString - const + interface_exists(string interface_name [, bool autoload]) keyString - constant( string name ) + internal_subset() keyString - continue + INTL_IDNA_VARIANT_2003 keyString - convert_cyr_string( string str, string from, string to ) + INTL_IDNA_VARIANT_UTS46 keyString - copy( string source, string dest ) + intval(mixed var, int [base]) keyString - cos( float arg ) + ip2long(string ip_address) keyString - cosh( float arg ) + IP_MULTICAST_IF keyString - count( mixed var [, int mode] ) + IP_MULTICAST_LOOP keyString - count_chars( string string, int [mode] ) + IP_MULTICAST_TTL keyString - COUNT_NORMAL + IPPROTO_IP keyString - COUNT_RECURSIVE + IPPROTO_IPV6 keyString - cpdf_add_annotation( int pdf document, float llx, float lly, float urx, float ury, string title, string content, int [mode] ) + iptcembed() keyString - cpdf_add_outline( int pdf document, string text ) + iptcparse() keyString - cpdf_arc( int pdf document, float x-coor, float y-coor, float radius, float start, float end, int mode ) + IPV6_MULTICAST_HOPS keyString - cpdf_begin_text( int pdf document ) + IPV6_MULTICAST_IF keyString - cpdf_circle( int pdf document, float x-coor, float y-coor, float radius [, int mode] ) + IPV6_MULTICAST_LOOP keyString - cpdf_clip( int pdf document ) + is_a(object object, string class_name) keyString - cpdf_close( int pdf document ) + is_array(mixed var) keyString - cpdf_closepath( int pdf document ) + is_blank_node() keyString - cpdf_closepath_fill_stroke( int pdf document ) + is_bool(mixed var) keyString - cpdf_closepath_stroke( int pdf document ) + is_callable(mixed var [, bool syntax_only [, string callable_name]]) keyString - cpdf_continue_text( int pdf document, string text ) + is_dir(string filename) keyString - cpdf_curveto( int pdf document, float x1, float y1, float x2, float y2, float x3, float y3, int mode ) + is_double(mixed var) keyString - cpdf_end_text( int pdf document ) + is_executable(string filename) keyString - cpdf_fill( int pdf document ) + is_file(string filename) keyString - cpdf_fill_stroke( int pdf document ) + is_finite(float val) keyString - cpdf_finalize( int pdf document ) + is_float(mixed var) keyString - cpdf_finalize_page( int pdf document, int page number ) + is_infinite(float val) keyString - cpdf_global_set_document_limits( int maxpages, int maxfonts, int maximages, int maxannotations, int maxobjects ) + is_int(mixed var) keyString - cpdf_import_jpeg( int pdf document, string file name, float x-coor, float y-coor, float angle, float width, float height, float x-scale, float y-scale, int [mode] ) + is_integer(mixed var) keyString - cpdf_lineto( int pdf document, float x-coor, float y-coor, int mode ) + is_link(string filename) keyString - cpdf_moveto( int pdf document, float x-coor, float y-coor, int mode ) + is_long(mixed var) keyString - cpdf_newpath( int pdf document ) + is_nan(float val) keyString - cpdf_open( int compression, string filename ) + is_null(mixed var) keyString - cpdf_output_buffer( int pdf document ) + is_numeric(mixed var) keyString - cpdf_page_init( int pdf document, int page number, int orientation, float height, float width, float unit ) + is_object(mixed var) keyString - cpdf_place_inline_image( int pdf document, int image, float x-coor, float y-coor, float angle, float width, float height, int [mode] ) + is_readable(string filename) keyString - cpdf_rect( int pdf document, float x-coor, float y-coor, float width, float height, int mode ) + is_real(mixed var) keyString - cpdf_restore( int pdf document ) + is_resource(mixed var) keyString - cpdf_rlineto( int pdf document, float x-coor, float y-coor, int mode ) + is_scalar(mixed var) keyString - cpdf_rmoveto( int pdf document, float x-coor, float y-coor, int mode ) + is_soap_fault(mixed object) keyString - cpdf_rotate( int pdf document, float angle ) + is_string(mixed var) keyString - cpdf_rotate_text( int pdfdoc, float angle ) + is_subclass_of(object obj, string superclass) keyString - cpdf_save( int pdf document ) + is_uploaded_file(string filename) keyString - cpdf_save_to_file( int pdf document, string filename ) + is_writable(string filename) keyString - cpdf_scale( int pdf document, float x-scale, float y-scale ) + is_writeable(string filename) keyString - cpdf_set_action_url( int pdfdoc, float xll, float yll, float xur, float xur, string url [, int mode] ) + isset(string filename) keyString - cpdf_set_char_spacing( int pdf document, float space ) + iterator_apply(Traversable it, mixed function [, mixed params]) keyString - cpdf_set_creator( string creator ) + iterator_apply(Traversable iterator , callable function [, array args]) keyString - cpdf_set_current_page( int pdf document, int page number ) + iterator_count(Traversable iterator) keyString - cpdf_set_font( int pdf document, string font name, float size, string encoding ) + iterator_to_array(Traversable iterator [, bool use_keys]) keyString - cpdf_set_font_directories( int pdfdoc, string pfmdir, string pfbdir ) + java_last_exception_clear(void) keyString - cpdf_set_font_map_file( int pdfdoc, string filename ) + java_last_exception_get(void) keyString - cpdf_set_horiz_scaling( int pdf document, float scale ) + JDDayOfWeek keyString - cpdf_set_keywords( string keywords ) + jddayofweek(int julianday [, int mode]) keyString - cpdf_set_leading( int pdf document, float distance ) + JDMonthName keyString - cpdf_set_page_animation( int pdf document, int transition, float duration ) + jdmonthname(int julianday , int mode) keyString - cpdf_set_subject( string subject ) + JDToFrench keyString - cpdf_set_text_matrix( int pdf document, array matrix ) + jdtofrench(int juliandaycount) keyString - cpdf_set_text_pos( int pdf document, float x-coor, float y-coor, int mode ) + JDToGregorian keyString - cpdf_set_text_rendering( int pdf document, int mode ) + jdtogregorian(int julianday) keyString - cpdf_set_text_rise( int pdf document, float value ) + JDToJewish keyString - cpdf_set_title( string title ) + jdtojewish(int juliandaycount [, bool hebrew [, int fl]]) keyString - cpdf_set_viewer_preferences( int pdfdoc, array preferences ) + JDToJulian keyString - cpdf_set_word_spacing( int pdf document, float space ) + jdtojulian(int julianday) keyString - cpdf_setdash( int pdf document, float white, float black ) + jdtounix(int jday) keyString - cpdf_setflat( int pdf document, float value ) + jdtounix(int jday) keyString - cpdf_setgray( int pdf document, float gray value ) + jewishtojd(int month , int day , int year) keyString - cpdf_setgray_fill( int pdf document, float value ) + jewishtojd(int month, int day, int year) keyString - cpdf_setgray_stroke( int pdf document, float gray value ) + join(string glue, array pieces) keyString - cpdf_setlinecap( int pdf document, int value ) + jpeg2wbmp(string jpegname, string wbmpname, int d_height, int d_width, int threshold) keyString - cpdf_setlinejoin( int pdf document, long value ) + JSON_BIGINT_AS_STRING keyString - cpdf_setlinewidth( int pdf document, float width ) + json_decode(string json [, bool assoc [, int depth [, int options]]]) keyString - cpdf_setmiterlimit( int pdf document, float value ) + json_encode(mixed value [, int options]) keyString - cpdf_setrgbcolor( int pdf document, float red value, float green value, float blue value ) + JSON_ERROR_CTRL_CHAR keyString - cpdf_setrgbcolor_fill( int pdf document, float red value, float green value, float blue value ) + JSON_ERROR_DEPTH keyString - cpdf_setrgbcolor_stroke( int pdf document, float red value, float green value, float blue value ) + JSON_ERROR_NONE keyString - cpdf_show( int pdf document, string text ) + JSON_ERROR_STATE_MISMATCH keyString - cpdf_show_xy( int pdf document, string text, float x-coor, float y-coor [, int mode] ) + JSON_ERROR_SYNTAX keyString - cpdf_stringwidth( int pdf document, string text ) + JSON_FORCE_OBJECT keyString - cpdf_stroke( int pdf document ) + JSON_HEX_AMP keyString - cpdf_text( int pdf document, string text, float x-coor, float y-coor [, int mode [, float orientation [, int alignmode]]] ) + JSON_HEX_APOS keyString - cpdf_translate( int pdf document, float x-coor, float y-coor [, int mode] ) + JSON_HEX_QUOT keyString - crack_check( resource dictionary, string password ) + JSON_HEX_TAG keyString - crack_closedict( [resource dictionary] ) + json_last_error(void) keyString - crack_getlastmessage( void ) + JSON_NUMERIC_CHECK keyString - crack_opendict( string dictionary ) + JSON_PRETTY_PRINT keyString - crc32( string str ) + JSON_UNESCAPED_SLASHES keyString - create_attribute( string name, string value ) + JSON_UNESCAPED_UNICODE keyString - create_cdata_section( string content ) + juliantojd(int month , int day , int year) keyString - create_comment( string content ) + juliantojd(int month, int day, int year) keyString - create_element( string name ) + key(array &array) keyString - create_element_ns( string uri, string name [, string prefix] ) + krsort(array &array [, int sort_flags]) keyString - create_entity_reference() + ksort(array &array [, int sort_flags]) keyString - create_function( string args, string code ) + last_child() keyString - create_processing_instruction( string target [, string data] ) + LC_ALL keyString - create_text_node( string content ) + LC_COLLATE keyString - CREDITS_ALL + LC_CTYPE keyString - CREDITS_DOCS + LC_MESSAGES keyString - CREDITS_FULLPAGE + LC_MONETARY keyString - CREDITS_GENERAL + LC_NUMERIC keyString - CREDITS_GROUP + LC_TIME keyString - CREDITS_MODULES + lcfirst(string str) keyString - CREDITS_QA + lcg_value() keyString - CREDITS_SAPI + ldap_8859_to_t61() keyString - CRNCYSTR + ldap_add() keyString - CRYP + ldap_bind() keyString - crypt( string str, string [salt] ) + ldap_close() keyString - CRYPT_BLOWFISH + ldap_compare() keyString - CRYPT_EXT_DES + ldap_connect() keyString - CRYPT_MD5 + ldap_control_paged_result (resource link , int pagesize [, bool iscritical [, string cookie]]) keyString - CRYPT_SALT_LENGTH + ldap_control_paged_result() keyString - ctype_alnum( string text ) + ldap_control_paged_result_response() keyString - ctype_alpha( string c ) + ldap_control_paged_result_response(resource link , resource result [, string &cookie [, int &estimated]]) keyString - ctype_cntrl( string text ) + ldap_count_entries() keyString - ctype_digit( string c ) + ldap_delete() keyString - ctype_graph( string c ) + ldap_dn2ufn() keyString - ctype_lower( string c ) + ldap_err2str() keyString - ctype_print( string c ) + ldap_errno() keyString - ctype_punct( string text ) + ldap_error() keyString - ctype_space( string c ) + ldap_explode_dn() keyString - ctype_upper( string text ) + ldap_first_attribute() keyString - ctype_xdigit( string c ) + ldap_first_entry() keyString - curl_close( int ch ) + ldap_first_reference() keyString - curl_errno( resource ch ) + ldap_free_result() keyString - curl_error( int ch ) + ldap_get_attributes() keyString - curl_exec( int ch ) + ldap_get_dn() keyString - curl_getinfo( resource ch [, int opt] ) + ldap_get_entries() keyString - curl_init( string [url] ) + ldap_get_option() keyString - curl_setopt( resource ch, int option, mixed value ) + ldap_get_values() keyString - curl_version( void ) + ldap_get_values_len() keyString - CURRENCY_SYMBOL + ldap_list() keyString - current( array &array ) + ldap_mod_add() keyString - cybercash_base64_decode( string inbuff ) + ldap_mod_del() keyString - cybercash_base64_encode( string inbuff ) + ldap_mod_replace() keyString - cybercash_decr( string wmk, string sk, string inbuff ) + ldap_modify() keyString - cybercash_encr( string wmk, string sk, string inbuff ) + ldap_next_attribute() keyString - cybermut_creerformulairecm( string url_cm, string version, string tpe, string price, string ref_command, string text_free, string url_return, string url_return_ok, string url_return_err, string language, string code_company, string text_button ) + ldap_next_entry() keyString - cybermut_creerreponsecm( string sentence ) + ldap_next_reference() keyString - cybermut_testmac( string code_mac, string version, string tpe, string cdate, string price, string ref_command, string text_free, string code_return ) + LDAP_OPT_NETWORK_TIMEOUT keyString - cyrus_authenticate( resource connection [, string mechlist [, string service [, string user [, int minssf [, int maxssf [, string authname [, string password]]]]]]] ) + ldap_parse_reference() keyString - cyrus_bind( resource connection, array callbacks ) + ldap_parse_result() keyString - cyrus_close( resource connection ) + ldap_read() keyString - cyrus_connect( [string host [, string port [, int flags]]] ) + ldap_rename() keyString - cyrus_query( resource connection, string query ) + ldap_sasl_bind() keyString - cyrus_unbind( resource connection, string trigger_name ) + ldap_sasl_bind(resource link [, string binddn [, string password [, string sasl_mech [, string sasl_realm [, string sasl_authc_id [, string sasl_authz_id [, string props]]]]]]]) keyString - D_FMT + ldap_search() keyString - D_T_FMT + ldap_set_option() keyString - date( string format [, int timestamp] ) + ldap_set_rebind_proc() keyString - DAY_1 + ldap_sort() keyString - DAY_2 + ldap_start_tls() keyString - DAY_3 + ldap_t61_to_8859() keyString - DAY_4 + ldap_unbind() keyString - DAY_5 + levenshtein() keyString - DAY_6 + libxml_clear_errors(void) keyString - DAY_7 + libxml_clear_errors(void) keyString - dba_close( resource handle ) + libxml_disable_entity_loader([ bool disable]) keyString - dba_delete( string key, resource handle ) + libxml_disable_entity_loader([ bool disable]) keyString - dba_exists() + libxml_get_errors(void) keyString - dba_fetch() + libxml_get_errors(void) keyString - dba_firstkey() + libxml_get_last_error(void) keyString - dba_handlers() + libxml_get_last_error(void) keyString - dba_insert() + LIBXML_HTML_NODEFDTD keyString - dba_list() + LIBXML_HTML_NOIMPLIED keyString - dba_nextkey() + LIBXML_LOADED_VERSION keyString - dba_open() + LIBXML_PEDANTIC keyString - dba_optimize() + libxml_set_external_entity_loader(callable resolver_function) keyString - dba_popen() + libxml_set_streams_context(resource streams_context) keyString - dba_replace() + libxml_use_internal_errors([bool use_errors]) keyString - dba_sync() + link(string target, string link) keyString - dbase_add_record() + linkinfo(string path) keyString - dbase_close() + list(mixed ..., mixed ...) keyString - dbase_create() + localeconv(void) keyString - dbase_delete_record() + localtime([int timestamp [, bool is_associative]]) keyString - dbase_get_record() + LOCK_EX keyString - dbase_get_record_with_names() + LOCK_NB keyString - dbase_numfields() + LOCK_SH keyString - dbase_numrecords() + LOCK_UN keyString - dbase_open() + log(float arg) keyString - dbase_pack() + log10(float arg) keyString - dbase_replace_record() + log1p(float number) keyString - dblist() + LOG_ALERT keyString - dbmclose() + LOG_AUTH + + + keyString + LOG_AUTHPRIV + + + keyString + LOG_CONS + + + keyString + LOG_CRIT + + + keyString + LOG_CRON + + + keyString + LOG_DAEMON + + + keyString + LOG_DEBUG + + + keyString + LOG_EMERG + + + keyString + LOG_ERR keyString - dbmdelete() + LOG_INFO keyString - dbmexists() + LOG_KERN keyString - dbmfetch() + LOG_LOCAL0 keyString - dbmfirstkey() + LOG_LOCAL1 keyString - dbminsert() + LOG_LOCAL2 keyString - dbmnextkey() + LOG_LOCAL3 keyString - dbmopen() + LOG_LOCAL4 keyString - dbmreplace() + LOG_LOCAL5 keyString - dbx_close() + LOG_LOCAL6 keyString - dbx_compare() + LOG_LOCAL7 keyString - dbx_connect() + LOG_LPR keyString - dbx_error() + LOG_MAIL keyString - dbx_escape_string() + LOG_NDELAY keyString - dbx_query() + LOG_NEWS keyString - dbx_sort() + LOG_NOTICE keyString - dcgettext() + LOG_NOWAIT keyString - dcngettext() + LOG_ODELAY keyString - debug_backtrace() + LOG_PERROR keyString - debugger_off() + LOG_PID keyString - debugger_on() + LOG_SYSLOG keyString - decbin() + LOG_USER keyString - dechex() + LOG_UUCP keyString - DECIMAL_POINT + LOG_WARNING keyString - declare + lstat(string filename) keyString - decoct( int number ) + ltrim(string str [, string charlist]) keyString - DEFAULT_INCLUDE_PATH + M_1_PI keyString - define( string name, mixed value, bool [case_insensitive] ) + M_2_PI keyString - define_syslog_variables() + M_2_SQRTPI keyString - defined( string name ) + M_E keyString - deg2rad( double number ) + M_EULER keyString - delete( string file ) + M_LN10 keyString - df_rect() + M_LN2 keyString - dgettext() + M_LNPI keyString - die( [string status] ) + M_LOG10E keyString - dio_close() + M_LOG2E keyString - dio_fcntl() + M_PI keyString - dio_open() + M_PI_2 keyString - dio_read() + M_PI_4 keyString - dio_seek() + M_SQRT1_2 keyString - dio_stat() + M_SQRT2 keyString - dio_tcsetattr() + M_SQRT3 keyString - dio_truncate() + M_SQRTPI keyString - dio_write() + magecopymergegray(resource dst_im, resource src_im, int dst_x, int dst_y, int src_x, int src_y, int src_w, int src_h, int pct) keyString - dir( string directory ) + mail(string to, string subject, string message [, string additional_headers [, string additional_parameters]]) keyString - DIRECTORY_SEPARATOR + main() keyString - dirname() + max(mixed arg1, mixed arg2, mixed argn) keyString - disk_free_space() + mb_convert_case(string str, int mode [, string encoding]) keyString - disk_total_space() + mb_convert_encoding(string str, string to-encoding [, mixed from-encoding]) keyString - diskfreespace() + mb_convert_kana(string str, string option [, mixed encoding]) keyString - dl( string library ) + mb_convert_variables(string to-encoding, mixed from-encoding, mixed vars) keyString - dns_check_record() + mb_decode_mimeheader(string str) keyString - dns_get_mx() + mb_decode_numericentity(string str, array convmap [, string encoding]) keyString - dns_get_record() + mb_detect_encoding(string str [, mixed encoding-list]) keyString - do + mb_detect_order([mixed encoding-list]) keyString - doctype() + mb_encode_mimeheader(string str [, string charset [, string transfer-encoding [, string linefeed]]]) keyString - document_element() + mb_encode_numericentity(string str, array convmap [, string encoding]) keyString - DomAttribute->name( void ) + mb_encoding_aliases(string encoding) keyString - DomAttribute->specified( void ) + mb_ereg(string pattern , string string [, array regs]) keyString - DomAttribute->value( void ) + mb_ereg(string pattern, string string [, array regs]) keyString - DOMDocument + mb_ereg_match(string pattern, string string [, string option]) keyString - DomDocument->add_root( string name ) + mb_ereg_replace(string pattern, string replacement, string string [, array option]) keyString - DomDocument->create_attribute( string name, string value ) + mb_ereg_replace_callback(string pattern , callable callback , string string [, string option]) keyString - DomDocument->create_cdata_section( string content ) + mb_ereg_search([string pattern [, string option]]) keyString - DomDocument->create_comment( string content ) + mb_ereg_search_getpos(void) keyString - DomDocument->create_element( string name ) + mb_ereg_search_getregs(void) keyString - DomDocument->create_element_ns( string uri, string name [, string prefix] ) + mb_ereg_search_init(string string [, string pattern [, string option]]) keyString - DomDocument->create_entity_reference( string content ) + mb_ereg_search_pos([string pattern [, string option]]) keyString - DomDocument->create_processing_instruction( string content ) + mb_ereg_search_regs([string pattern [, string option]]) keyString - DomDocument->create_text_node( string content ) + mb_ereg_search_setpos(void) keyString - DomDocument->doctype( void ) + mb_eregi(string pattern, string string [, array regs]) keyString - DomDocument->document_element( void ) + mb_eregi_replace(string pattern, string replace, string string) keyString - DomDocument->dump_file( string filename [, bool compressionmode [, bool format]] ) + mb_get_info([string type]) keyString - DomDocument->dump_mem( [bool format] ) + mb_http_input([string type]) keyString - DomDocument->get_element_by_id( string id ) + mb_http_output([string encoding]) keyString - DomDocument->get_elements_by_tagname( string name ) + mb_internal_encoding([string encoding]) keyString - DomDocument->html_dump_mem( void ) + mb_language([string language]) keyString - DomDocument->xinclude( void ) + mb_list_encodings(void) keyString - DomDocumentType->entities( void ) + mb_output_handler(string contents, int status) keyString - DomDocumentType->internal_subset( void ) + mb_parse_str(string encoded_string [, array &result]) keyString - DomDocumentType->name( void ) + mb_preferred_mime_name(string encoding) keyString - DomDocumentType->notations( void ) + mb_regex_encoding([string encoding]) keyString - DomDocumentType->notations( void ) + mb_regex_set_options([string options]) keyString - DomDocumentType->public_id( void ) + mb_send_mail(string to, string subject, string message [, string additional_headers [, string additional_parameter]]) keyString - DomDocumentType->system_id( void ) + mb_split(string pattern, string string [, int limit]) keyString - DomElement->get_attribute( string name ) + mb_strcut(string str, int start [, int length [, string encoding]]) keyString - DomElement->get_attribute_node( object attr ) + mb_strimwidth(string str, int start, int width [, string trimmarker [, string encoding]]) keyString - DomElement->get_elements_by_tagname( string name ) + mb_stripos(string haystack , string needle [, int offset [, string encoding]]) keyString - DomElement->has_attribute( string name ) + mb_stristr(string haystack , string needle [, bool before_needle = false [, string encoding]]) keyString - DomElement->remove_attribute( string name ) + mb_strlen(string str [, string encoding]) keyString - DomElement->set_attribute( string name, string value ) + mb_strpos(string haystack, string needle [, int offset [, string encoding]]) keyString - DomElement->set_attribute( string name, string value ) + mb_strrchr(string haystack , string needle [, bool part [, string encoding]]) keyString - DomElement->set_attribute_node( object attr ) + mb_strrichr(string haystack , string needle [, bool part [, string encoding]]) keyString - DomElement->tagname( void ) + mb_strripos(string haystack , string needle [, int offset [, string encoding]]) keyString - DomNode->add_namespace( string uri, string prefix ) + mb_strrpos(string haystack, string needle [, string encoding]) keyString - DomNode->append_child( object newnode ) + mb_strstr(string haystack , string needle [, bool before_needle = false [, string encoding]]) keyString - DomNode->append_sibling( object newnode ) + mb_strtolower(string str [, string encoding]) keyString - DomNode->attributes( void ) + mb_strtoupper(string str [, string encoding]) keyString - DomNode->child_nodes( void ) + mb_strwidth(string str [, string encoding]) keyString - DomNode->clone_node( void ) + mb_substitute_character([mixed substrchar]) keyString - DomNode->dump_node( void ) + mb_substr(string str, int start [, int length [, string encoding]]) keyString - DomNode->first_child( void ) + mb_substr_count(string haystack, string needle [, string encoding]) keyString - DomNode->get_content( void ) + MCAST_BLOCK_SOURCE keyString - DomNode->has_attributes( void ) + MCAST_JOIN_GROUP keyString - DomNode->has_child_nodes( void ) + MCAST_JOIN_SOURCE_GROUP keyString - DomNode->insert_before( object newnode, object refnode ) + MCAST_LEAVE_GROUP keyString - DomNode->is_blank_node( void ) + MCAST_LEAVE_SOURCE_GROUP keyString - DomNode->last_child( void ) + MCAST_UNBLOCK_SOURCE keyString - DomNode->next_sibling( void ) + mcrypt_cbc() keyString - DomNode->node_name( void ) + mcrypt_cfb() keyString - DomNode->node_name( void ) + mcrypt_create_iv() keyString - DomNode->node_type( void ) + mcrypt_decrypt() keyString - DomNode->node_type( void ) + mcrypt_ecb() keyString - DomNode->node_value( void ) + mcrypt_enc_get_algorithms_name() keyString - DomNode->node_value( void ) + mcrypt_enc_get_block_size() keyString - DomNode->owner_document( void ) + mcrypt_enc_get_iv_size() keyString - DomNode->parent_node( void ) + mcrypt_enc_get_key_size() keyString - DomNode->prefix( void ) + mcrypt_enc_get_modes_name() keyString - DomNode->previous_sibling( void ) + mcrypt_enc_get_supported_key_sizes() keyString - DomNode->remove_child( object oldchild ) + mcrypt_enc_is_block_algorithm() keyString - DomNode->replace_child( domelement oldnode, domelement newnode ) + mcrypt_enc_is_block_algorithm_mode() keyString - DomNode->replace_node( void ) + mcrypt_enc_is_block_mode() keyString - DomNode->set_content( void ) + mcrypt_enc_self_test() keyString - DomNode->set_content( void ) + mcrypt_encrypt() keyString - DomNode->set_name( void ) + mcrypt_generic() keyString - DomNode->set_name( void ) + mcrypt_generic_deinit() keyString - DomNode->set_namespace( string uri [, string prefix] ) + mcrypt_generic_end() keyString - DomNode->set_namespace( string uri [, string prefix] ) + mcrypt_generic_init() keyString - DomNode->unlink_node( void ) + mcrypt_get_block_size() keyString - DomProcessingInstruction->data( void ) + mcrypt_get_cipher_name() keyString - DomProcessingInstruction->target( void ) + mcrypt_get_iv_size() keyString - domxml_new_doc( string version ) + mcrypt_get_key_size() keyString - domxml_open_file( string filename ) + mcrypt_list_algorithms() keyString - domxml_open_mem( string str ) + mcrypt_list_modes() keyString - domxml_version( void ) + mcrypt_module_close() keyString - domxml_xmltree( string str ) + mcrypt_module_get_algo_block_size() keyString - domxml_xslt_stylesheet( string xsl_document ) + mcrypt_module_get_algo_key_size() keyString - domxml_xslt_stylesheet_doc( domdocument DocDocumentObject ) + mcrypt_module_get_supported_key_sizes() keyString - DomXsltStylesheet->process( domdocument DomDocument [, array xslt_parameters [, bool param_is_xpath]] ) + mcrypt_module_is_block_algorithm() keyString - DomXsltStylesheet->result_dump_file( domdocument DomDocument, string filename ) + mcrypt_module_is_block_algorithm_mode() keyString - DomXsltStylesheet->result_dump_mem( domdocument DomDocument ) + mcrypt_module_is_block_mode() keyString - doubleval() + mcrypt_module_open() keyString - dump_file() + mcrypt_module_self_test() keyString - dump_mem() + mcrypt_ofb() keyString - dump_node() + md5(string str [, bool raw_output]) keyString - E_ALL + md5_file(string filename) keyString - E_COMPILE_ERROR + mdecrypt_generic() keyString - E_COMPILE_WARNING + memory_get_peak_usage([ bool real_usage]) keyString - E_CORE_ERROR + metaphone() keyString - E_CORE_WARNING + method_exists() keyString - E_ERROR + microtime([bool get_as_float]) keyString - E_NOTICE + mime_content_type(string filename) keyString - E_PARSE + min(mixed arg1, mixed arg2, mixed argn) keyString - E_STRICT + mkdir(string pathname [, int mode [, bool recursive [, resource context]]]) keyString - E_USER + mktime([int hour [, int minute [, int second [, int month [, int day [, int year [, int is_dst]]]]]]]) keyString - E_USER_ERROR + MON_1 keyString - E_USER_NOTICE + MON_10 keyString - E_USER_WARNING + MON_11 keyString - E_WARNING + MON_12 keyString - each() + MON_2 keyString - easter_date() + MON_3 keyString - easter_days() + MON_4 keyString - ebcdic2ascii() + MON_5 keyString - echo( string arg1 [, string ...] ) + MON_6 keyString - else + MON_7 keyString - elseif + MON_8 keyString - empty( mixed var ) + MON_9 keyString - end( array &array ) + MON_DECIMAL_POINT keyString - enddeclare() + MON_GROUPING keyString - endfor + MON_THOUSANDS_SEP keyString - endforeach + money_format() keyString - endif + move_uploaded_file() keyString - endswitch + MSG_EAGAIN keyString - endwhile + MSG_ENOMSG keyString - ENT_COMPAT + msg_get_queue() keyString - ENT_NOQUOTES + msg_queue_exists(int key) keyString - ENT_QUOTES + msg_receive() keyString - entities( void ) + msg_remove_queue() keyString - ERA + msg_send() keyString - ERA_D_FMT + msg_set_queue() keyString - ERA_D_T_FMT + msg_stat_queue() keyString - ERA_T_FMT + mssql_bind(resource stmt , string param_name , mixed &var , int type [, bool is_output [, bool is_null [, int maxlen]]]) keyString - ERA_YEAR + mssql_close([ resource link_identifier]) keyString - ereg( string pattern, string string [, array &regs] ) + mssql_connect([ string servername [, string username [, string password [, bool new_link]]]]) keyString - ereg_replace( string pattern, string replacement, string string ) + mssql_data_seek(resource result_identifier , int row_number) keyString - eregi( string pattern, string string [, array &regs] ) + mssql_execute(resource stmt [, bool skip_results]) keyString - eregi_replace( string pattern, string replacement, string string ) + mssql_fetch_array(resource result [, int result_type]) keyString - error_log( string message [, int message_type [, string destination [, string extra_headers]]] ) + mssql_fetch_assoc(resource result_id) keyString - error_reporting() + mssql_fetch_batch(resource result) keyString - escapeshellarg() + mssql_fetch_field(resource result [, int field_offset]) keyString - escapeshellcmd() + mssql_fetch_object(resource result) keyString - eval( string code_str ) + mssql_fetch_row(resource result) keyString - exec( string command [, array &output [, int &return_var]] ) + mssql_field_length(resource result [, int offset]) keyString - exif_imagetype() + mssql_field_name(resource result [, int offset]) keyString - exif_read_data() + mssql_field_seek(resource result , int field_offset) keyString - exif_thumbnail() + mssql_field_type(resource result [, int offset]) keyString - exit( [string status] ) + mssql_free_result(resource result) keyString - exp( float arg ) + mssql_free_statement(resource stmt) keyString - explode( string separator, string string [, int limit] ) + mssql_get_last_message(void) keyString - expm1( float number ) + mssql_guid_string(string binary [, bool short_format]) keyString - extends + mssql_init(string sp_name [, resource link_identifier]) keyString - extension_loaded( string name ) + mssql_min_error_severity(int severity) keyString - EXTR_IF_EXISTS + mssql_min_message_severity(int severity) keyString - EXTR_OVERWRITE + mssql_next_result(resource result_id) keyString - EXTR_PREFIX_ALL + mssql_num_fields(resource result) keyString - EXTR_PREFIX_IF_EXISTS + mssql_num_rows(resource result) keyString - EXTR_PREFIX_INVALID + mssql_pconnect([ string servername [, string username [, string password [, bool new_link]]]]) keyString - EXTR_PREFIX_SAME + mssql_query(string query [, resource link_identifier [, int batch_size]]) keyString - EXTR_SKIP + mssql_result(resource result , int row , mixed field) keyString - extract( array var_array [, int extract_type [, string prefix]] ) + mssql_rows_affected(resource link_identifier) keyString - ezmlm_hash() + mssql_select_db(string database_name [, resource link_identifier]) keyString - fbsql_affected_rows() + mt_getrandmax() keyString - fbsql_autocommit() + mt_rand() keyString - fbsql_change_user() + mt_srand() keyString - fbsql_close() + mysql_affected_rows(int [link_identifier]) keyString - fbsql_commit() + mysql_change_user(string user, string password, string [database], resource [link_identifier]) keyString - fbsql_connect() + mysql_client_encoding([resource link_identifier]) keyString - fbsql_create_blob() + mysql_close(resource [link_identifier]) keyString - fbsql_create_clob() + mysql_connect([string server [, string username [, string password [, bool new_link [, int client_flags]]]]]) keyString - fbsql_create_db() + mysql_create_db(string database_name, resource [link_identifier]) keyString - fbsql_data_seek() + mysql_data_seek(resource result_identifier, int row_number) keyString - fbsql_database() + mysql_db_name(resource result, int row, mixed [field]) keyString - fbsql_database_password() + mysql_db_query(string database, string query, resource [link_identifier]) keyString - fbsql_db_query() + mysql_drop_db(string database_name, resource [link_identifier]) keyString - fbsql_db_status() + mysql_errno(resource [link_identifier]) keyString - fbsql_drop_db() + mysql_error(resource [link_identifier]) keyString - fbsql_errno() + mysql_escape_string(string unescaped_string) keyString - fbsql_error() + mysql_fetch_array(int result, int [result_type]) keyString - fbsql_fetch_array() + mysql_fetch_assoc(int result) keyString - fbsql_fetch_assoc() + mysql_fetch_field(int result, int [field_offset]) keyString - fbsql_fetch_field() + mysql_fetch_lengths(int result) keyString - fbsql_fetch_lengths() + mysql_fetch_object(int result, int [result_typ]) keyString - fbsql_fetch_object() + mysql_fetch_row(int result) keyString - fbsql_fetch_row() + mysql_field_flags(int result, int field_offset) keyString - fbsql_field_flags() + mysql_field_len(int result, int field_offset) keyString - fbsql_field_len() + mysql_field_name(int result, int field_index) keyString - fbsql_field_name() + mysql_field_seek(int result, int field_offset) keyString - fbsql_field_seek() + mysql_field_table(int result, int field_offset) keyString - fbsql_field_table() + mysql_field_type(string result, int field_offset) keyString - fbsql_field_type() + mysql_free_result(int result) keyString - fbsql_free_result() + mysql_get_client_info(void) keyString - fbsql_get_autostart_info() + mysql_get_host_info([int link_identifier]) keyString - fbsql_hostname() + mysql_get_proto_info([int link_identifier]) keyString - fbsql_insert_id() + mysql_get_server_info([int link_identifier]) keyString - fbsql_list_dbs() + mysql_info([int link_identifier]) keyString - fbsql_list_fields() + mysql_insert_id(int [link_identifier]) keyString - fbsql_list_tables() + mysql_list_dbs(int [link_identifier]) keyString - fbsql_next_resul() + mysql_list_fields(string database_name, string table_name, int [link_identifier]) keyString - fbsql_num_fields() + mysql_list_processes([int link_identifier]) keyString - fbsql_num_rows() + mysql_list_tables(string database, int [link_identifier]) keyString - fbsql_password() + mysql_num_fields(int result) keyString - fbsql_pconnect() + mysql_num_rows(int result) keyString - fbsql_query() + mysql_pconnect(string [hostname [:port] [:/path/to/socket]] , string [username], string [password]) keyString - fbsql_read_blob() + mysql_ping([int link_identifier]) keyString - fbsql_read_clob() + mysql_query(string query, int [link_identifier]) keyString - fbsql_result() + mysql_real_escape_string(string unescaped_string [, int link_identifier]) keyString - fbsql_rollback() + mysql_result(int result, int row, mixed [field]) keyString - fbsql_select_db() + mysql_select_db(string database_name, int [link_identifier]) keyString - fbsql_set_lob_mode() + mysql_stat([int link_identifier]) keyString - fbsql_set_transaction() + mysql_tablename(int result, int i) keyString - fbsql_start_db() + mysql_thread_id([int link_identifier]) keyString - fbsql_stop_db() + mysql_unbuffered_query(string query [, int link_identifier]) keyString - fbsql_tablename() + mysqli::get_connection_stats(void) keyString - fbsql_username() + mysqli::poll(array &read , array &error , array &reject , int $sec [, int usec]) keyString - fbsql_warnings() + mysqli::reap_async_query(void) keyString - fclose( resource handle ) + mysqli_error_list(mysqli link) keyString - fdf_add_doc_javascript() + mysqli_fetch_all(mysqli_result result [, int resulttype]) keyString - fdf_add_template() + mysqli_get_connection_stats(mysqli link) keyString - fdf_close() + mysqli_poll(array &read , array &error , array &reject , int sec [, int usec]) keyString - fdf_create() + mysqli_reap_async_query(mysql link) keyString - fdf_enum_values() + mysqli_result::fetch_all([ int resulttype]) keyString - fdf_errno() + mysqli_stmt_error_list(mysqli_stmt stmt) keyString - fdf_error() + N_CS_PRECEDES keyString - fdf_get_ap() + N_SEP_BY_SPACE keyString - fdf_get_attachment() + N_SIGN_POSN keyString - fdf_get_encoding() + natcasesort() keyString - fdf_get_file() + natsort() keyString - fdf_get_flags() + NEGATIVE_SIGN keyString - fdf_get_opt() + new keyString - fdf_get_status() + next(array &array) keyString - fdf_get_value() + next_sibling(void) keyString - fdf_get_version() + ngettext() keyString - fdf_header() + nl2br(string string) keyString - fdf_next_field_name() + nl_langinfo() keyString - fdf_open() + NOEXPR keyString - fdf_open_string() + NOSTR keyString - fdf_remove_item() + NOTICE keyString - fdf_save() + nsapi_request_headers(void) keyString - fdf_save_string() + nsapi_response_headers(void) keyString - fdf_set_ap() + nsapi_virtual(string uri) keyString - fdf_set_encoding() + number_format(float number [, int decimals [, string dec_point, string thousands_sep]]) keyString - fdf_set_file() + ob_clean(void) keyString - fdf_set_flags() + ob_end_clean(void) keyString - fdf_set_javascript_action() + ob_end_flush(void) keyString - fdf_set_opt() + ob_flush(void) keyString - fdf_set_status() + ob_get_clean(void) keyString - fdf_set_submit_form_action() + ob_get_contents(void) keyString - fdf_set_target_frame() + ob_get_length(void) keyString - fdf_set_value() + ob_get_level(void) keyString - fdf_set_version() + ob_get_status([bool full_status]) keyString - feof( resource handle ) + ob_gzhandler(string buffer, int mode) keyString - fflush( resource handle ) + ob_iconv_handler(string contents, int status) keyString - fgetc( resource handle ) + ob_implicit_flush([int flag]) keyString - fgetcsv( resource handle, int length [, string delimiter [, string enclosure]] ) + ob_start([callback output_callback [, int chunk_size [, bool erase]]]) keyString - fgets( resource handle [, int length] ) + ob_tidyhandler(string input [, int mode]) keyString - fgetss( resource handle [, int length [, string allowable_tags]] ) + OCI-Collection keyString - file( string filename [, int use_include_path [, resource context]] ) + OCI-Collection::append() keyString - file( string filename [, int use_include_path [, resource context]] ) + OCI-Collection::assign() keyString - file_exists( string filename ) + OCI-Collection::assignElem() keyString - file_get_contents( string filename [, bool use_include_path [, resource context [, int offset]]] ) + OCI-Collection::free() keyString - file_put_contents( string filename, string data [, int flags [, resource context]] ) + OCI-Collection::getElem() keyString - fileatime( string filename ) + OCI-Collection::max() keyString - filectime( string filename ) + OCI-Collection::size() keyString - filegroup( string filename ) + OCI-Collection::trim() keyString - fileinode( string filename ) + OCI-Lob keyString - filemtime( string filename ) + OCI-Lob::append() keyString - fileowner( string filename ) + OCI-Lob::close() keyString - fileperms( string filename ) + OCI-Lob::eof() keyString - filepro() + OCI-Lob::erase() keyString - filepro_fieldcount() + OCI-Lob::export() keyString - filepro_fieldname() + OCI-Lob::flush() keyString - filepro_fieldtype() + OCI-Lob::free() keyString - filepro_fieldwidth() + OCI-Lob::getBuffering() keyString - filepro_retrieve() + OCI-Lob::import() keyString - filepro_rowcount() + OCI-Lob::load() keyString - filesize( string filename ) + OCI-Lob::read() keyString - filetype( string filename ) + OCI-Lob::rewind() keyString - final + OCI-Lob::save() keyString - first_child( void ) + OCI-Lob::saveFile() keyString - floatval( mixed var ) + OCI-Lob::seek() keyString - flock( resource handle, int operation [, int &wouldblock] ) + OCI-Lob::setBuffering() keyString - floor( float value ) + OCI-Lob::size() keyString - flush( void ) + OCI-Lob::tell() keyString - fmod( float x, float y ) + OCI-Lob::truncate() keyString - fnmatch( string pattern, string string [, int flags] ) + OCI-Lob::write() keyString - fopen( string filename, string mode [, int use_include_path [, resource zcontext]] ) + OCI-Lob::writeTemporary() keyString - for + OCI-Lob::writeToFile() keyString - foreach + oci_bind_array_by_name() keyString - fpassthru( resource handle ) + oci_bind_by_name() keyString - fprintf( resource handle, string format [, mixed args [, mixed ...]] ) + oci_cancel() keyString - fputs( resource handle, string string [, int length] ) + oci_client_version() keyString - FRAC_DIGITS + oci_close() keyString - fread( resource handle, int length ) + oci_commit() keyString - FrenchToJD + oci_connect() keyString - fscanf( resource handle, string format [, string var1] ) + oci_define_by_name() keyString - fseek( resource handle, int offset [, int whence] ) + oci_error() keyString - fsockopen( string target, int port [, int &errno [, string &errstr [, float timeout]]] ) + oci_execute() keyString - fstat( resource handle ) + oci_fetch() keyString - ftell( resource handle ) + oci_fetch_all() keyString - ftok( string pathname, string proj ) + oci_fetch_array() keyString - ftp_cdup() + oci_fetch_assoc() keyString - ftp_chdir() + oci_fetch_object() keyString - ftp_chmod() + oci_fetch_row() keyString - ftp_close() + oci_field_is_null() keyString - ftp_connect() + oci_field_name() keyString - ftp_delete() + oci_field_precision() keyString - ftp_exec() + oci_field_scale() keyString - ftp_fget() + oci_field_size() keyString - ftp_fput() + oci_field_type() keyString - ftp_get() + oci_field_type_raw() keyString - ftp_get_option() + oci_free_statement() keyString - ftp_login() + oci_internal_debug() keyString - ftp_mdtm() + oci_lob_copy() keyString - ftp_mkdir() + oci_lob_is_equal() keyString - ftp_nb_continue() + oci_new_collection() keyString - ftp_nb_fget() + oci_new_connect() keyString - ftp_nb_fput() + oci_new_cursor() keyString - ftp_nb_get() + oci_new_descriptor() keyString - ftp_nb_put() + oci_num_fields() keyString - ftp_nlist() + oci_num_rows() keyString - ftp_pasv() + oci_parse() keyString - ftp_put() + oci_password_change() keyString - ftp_pwd() + oci_pconnect() keyString - ftp_quit() + oci_result() keyString - ftp_raw() + oci_rollback() keyString - ftp_rawlist() + oci_server_version() keyString - ftp_rename() + oci_set_action() keyString - ftp_rmdir() + oci_set_client_identifier() keyString - ftp_set_option() + oci_set_client_info() keyString - ftp_site() + oci_set_edition() keyString - ftp_size() + oci_set_module_name() keyString - ftp_ssl_connect() + oci_set_prefetch() keyString - ftp_systype() + oci_statement_type() keyString - ftruncate( resource handle, int size ) + octdec(string octal_string) keyString - func_get_arg( int arg_num ) + odbc_autocommit() keyString - func_get_args( void ) + odbc_binmode() keyString - func_num_args( void ) + odbc_close() keyString - function + odbc_close_all() keyString - function_exists( string function_name ) + odbc_columnprivileges() keyString - fwrite( resource handle, string string [, int length] ) + odbc_columns() keyString - gd_info( void ) + odbc_commit() keyString - get_browser( string [user_agent] ) + odbc_connect() keyString - get_cfg_var( string varname ) + odbc_cursor() keyString - get_class( object obj ) + odbc_data_source() keyString - get_class_methods( string class_name ) + odbc_do() keyString - get_class_vars( string class_name ) + odbc_error() keyString - get_content( void ) + odbc_errormsg() keyString - get_current_user( void ) + odbc_exec() keyString - get_declared_classes( void ) + odbc_execute() keyString - get_declared_interfaces( void ) + odbc_fetch_array() keyString - get_defined_constants( void ) + odbc_fetch_into() keyString - get_defined_functions( void ) + odbc_fetch_object() keyString - get_defined_vars( void ) + odbc_fetch_row() keyString - get_extension_funcs( string module_name ) + odbc_field_len() keyString - get_html_translation_table( int table [, int quote_style] ) + odbc_field_name() keyString - get_include_path( void ) + odbc_field_num() keyString - get_included_files( void ) + odbc_field_precision() keyString - get_loaded_extensions( void ) + odbc_field_scale() keyString - get_magic_quotes_gpc( void ) + odbc_field_type() keyString - get_magic_quotes_runtime( void ) + odbc_foreignkeys() keyString - get_meta_tags( string filename [, bool use_include_path] ) + odbc_free_result() keyString - get_object_vars( object obj ) + odbc_gettypeinfo() keyString - get_parent_class( mixed obj ) + odbc_longreadlen() keyString - get_required_files( void ) + odbc_next_result() keyString - get_resource_type( resource handle ) + odbc_num_fields() keyString - getallheaders( void ) + odbc_num_rows() keyString - getallheaders() + odbc_pconnect() keyString - getcwd() + odbc_prepare() keyString - getdate( [int timestamp] ) + odbc_primarykeys() keyString - getenv( string varname ) + odbc_procedurecolumns() keyString - gethostbyaddr( string ip_address ) + odbc_procedures() keyString - gethostbyname( string hostname ) + odbc_result() keyString - gethostbynamel( string hostname ) + odbc_result_all() keyString - getimagesize( string filename [, array imageinfo] ) + odbc_rollback() keyString - getlastmod( void ) + odbc_setoption() keyString - getmxrr() + odbc_specialcolumns() keyString - getmygid() + odbc_statistics() keyString - getmyinode() + odbc_tableprivileges() keyString - getmypid() + odbc_tables() keyString - getmyuid() + opendir(string path) keyString - getopt() + openlog(string ident, int option, int facility) keyString - getprotobyname() + OPENSSL_CIPHER_AES_128_CBC keyString - getprotobynumber() + OPENSSL_CIPHER_AES_192_CBC keyString - getrandmax() + OPENSSL_CIPHER_AES_256_CBC keyString - getrusage() + openssl_cipher_iv_length() keyString - getservbyname() + openssl_csr_export() keyString - getservbyport() + openssl_csr_export_to_file() keyString - gettext() + openssl_csr_get_public_key(mixed csr [, bool use_shortnames]) keyString - gettimeofday() + openssl_csr_get_subject(mixed csr [, bool use_shortnames]) keyString - gettype() + openssl_csr_new() keyString - gif() + openssl_csr_sign() keyString - glob() + openssl_decrypt() keyString - global + openssl_dh_compute_key() keyString - gmdate() + openssl_digest() keyString - gmmktime() + openssl_encrypt() keyString - gmp_abs() + openssl_error_string() keyString - gmp_add() + openssl_free_key() keyString - gmp_and() + openssl_get_cipher_methods() keyString - gmp_clrbit() + openssl_get_md_methods() keyString - gmp_cmp() + openssl_get_privatekey() keyString - gmp_com() + openssl_get_publickey() keyString - gmp_div() + openssl_open() keyString - gmp_div_q() + openssl_pkcs12_export() keyString - gmp_div_qr() + openssl_pkcs12_export_to_file() keyString - gmp_div_r() + openssl_pkcs12_read() keyString - gmp_divexact() + openssl_pkcs7_decrypt() keyString - gmp_fact() + openssl_pkcs7_encrypt() keyString - gmp_gcd() + openssl_pkcs7_sign() keyString - gmp_gcdext() + openssl_pkcs7_verify() keyString - gmp_hamdist() + openssl_pkey_export() keyString - gmp_init() + openssl_pkey_export_to_file() keyString - gmp_intval() + openssl_pkey_free() keyString - gmp_invert() + openssl_pkey_get_details(resource key) keyString - gmp_jacobi() + openssl_pkey_get_private() keyString - gmp_legendre() + openssl_pkey_get_public() keyString - gmp_mod() + openssl_pkey_new() keyString - gmp_mul() + openssl_private_decrypt() keyString - gmp_neg() + openssl_private_encrypt() keyString - gmp_or() + openssl_public_decrypt() keyString - gmp_perfect_square() + openssl_public_encrypt() keyString - gmp_popcount() + openssl_random_pseudo_bytes() keyString - gmp_pow() + openssl_random_pseudo_bytes(int length [, bool &crypto_strong]) keyString - gmp_powm() + OPENSSL_RAW_DATA keyString - gmp_prob_prime() + openssl_seal() keyString - gmp_random() + openssl_sign() keyString - gmp_scan0() + openssl_verify() keyString - gmp_scan1() + OPENSSL_VERSION_NUMBER keyString - gmp_setbit() + OPENSSL_VERSION_TEXT keyString - gmp_sign() + openssl_x509_check_private_key() keyString - gmp_sqrt() + openssl_x509_checkpurpose() keyString - gmp_sqrtrm() + openssl_x509_export() keyString - gmp_strval() + openssl_x509_export_to_file() keyString - gmp_sub() + openssl_x509_free() keyString - gmp_xor() + openssl_x509_parse() keyString - gmstrftime() + openssl_x509_read() keyString - GregorianToJD + OPENSSL_ZERO_PADDING keyString - GROUPING + or keyString - gzclose( int zp ) + ord(string string) keyString - gzcompress( string data, int [level] ) + P_CS_PRECEDES keyString - gzdeflate( string data [, int level] ) + P_SEP_BY_SPACE keyString - gzencode( string data [, int level] ) + P_SIGN_POSN keyString - gzeof( int zp ) + pack(string format [, mixed args]) keyString - gzfile( string filename, int [use_include_path] ) + parse_ini_file(string filename [, bool process_sections]) keyString - gzgetc( int zp ) + parse_ini_string(string ini [, bool process_sections [, int scanner_mode]]) keyString - gzgets( int zp, int length ) + parse_str(string str [, array arr]) keyString - gzgetss( int zp, int length, string [allowable_tags] ) + parse_url(string url) keyString - gzinflate( string data [, int length] ) + passthru(string command [, int &return_var]) keyString - gzopen( string filename, string mode [, int use_include_path] ) + password_get_info(string hash) keyString - gzpassthru( int zp ) + password_hash(string password , integer algo [, array options]) keyString - gzputs( int zp, string str, int [length] ) + password_needs_rehash(string hash , string algo [, string options]) keyString - gzread( int zp, int length ) + password_verify(string password , string hash) keyString - gzrewind( int zp ) + pathinfo(string path [, int options]) keyString - gzseek( int zp, int offset ) + PATHINFO_BASENAME keyString - gztell( int zp ) + PATHINFO_DIRNAME keyString - gzuncompress( string data, int [length] ) + PATHINFO_EXTENSION keyString - gzwrite( int zp, string string, int [length] ) + PATHINFO_FILENAME keyString - has_attribute() + pclose(int handle) keyString - has_attributess() + pcntl_alarm(int seconds) keyString - has_child_nodes() + pcntl_exec(string path [, array args [, array envs]]) keyString - header( string string [, bool replace [, int http_response_code]] ) + pcntl_fork(void) keyString - headers_list( void ) + pcntl_getpriority([ int pid = getmypid() [, int process_identifier]]) keyString - headers_sent( [string &file [, int &line]] ) + pcntl_setpriority(int priority [, int pid [, int process_identifier]]) keyString - hebrev( string hebrew_text [, int max_chars_per_line] ) + pcntl_signal(int signo , callable handler [, bool restart_syscalls]) keyString - hebrevc( string hebrew_text [, int max_chars_per_line] ) + pcntl_signal_dispatch(void) keyString - hexdec( string hex_string ) + pcntl_sigprocmask(int how , array set [, array &oldset]) keyString - highlight_file( string filename ) + pcntl_sigtimedwait(array set [, array &siginfo [, int seconds [, int nanoseconds]]]) keyString - highlight_string( string str ) + pcntl_sigwaitinfo(array set [, array &siginfo]) keyString - html_dump_mem( void ) + pcntl_wait(int &status [, int options]) keyString - HTML_ENTITIES + pcntl_waitpid(int pid , int &status [, int options]) keyString - html_entity_decode( string string [, int quote_style [, string charset]] ) + pcntl_wexitstatus(int status) keyString - HTML_SPECIALCHARS + pcntl_wifexited(int status) keyString - htmlentities( string string, int [quote_style], string [charset] ) + pcntl_wifsignaled(int status) keyString - htmlspecialchars( string string, int [quote_style] [, string charset] ) + pcntl_wifstopped(int status) keyString - hypot( float num1, float num2 ) + pcntl_wstopsig(int status) keyString - iconv( string in_charset, string out_charset, string str ) + pcntl_wtermsig(int status) keyString - iconv_get_encoding( [string type] ) + pdf_add_annotation() keyString - iconv_mime_decode( string encoded_header [, int mode [, string charset]] ) + pdf_add_bookmark() keyString - iconv_mime_decode_headers( string encoded_headers [, int mode [, string charset]] ) + pdf_add_launchlink() keyString - iconv_mime_encode( string field_name, string field_value [, array preferences] ) + pdf_add_locallink() keyString - iconv_set_encoding( string type, string charset ) + pdf_add_note() keyString - iconv_strlen( string str [, string charset] ) + pdf_add_outline() keyString - iconv_strpos( string haystack, string needle [, int offset [, string charset]] ) + pdf_add_pdflink() keyString - iconv_substr( string str, int offset [, int length [, string charset]] ) + pdf_add_thumbnail() keyString - if + pdf_add_weblink() keyString - ignore_user_abort() + pdf_arc() keyString - image2wbmp( int im [, string filename [, int threshold]] ) + pdf_arcn() keyString - image_type_to_mime_type( int im [, string filename [, int threshold]] ) + pdf_attach_file() keyString - imagealphablending( resource im, bool blendmode ) + pdf_begin_page() keyString - imageantialias( int im, bool on ) + pdf_begin_pattern() keyString - imagearc( int im, int cx, int cy, int w, int h, int s, int e, int color ) + pdf_begin_template() keyString - imagechar( int im, int font, int x, int y, string c, int color ) + pdf_circle() keyString - imagecharup( resource image, int font, int x, int y, string c, int color ) + pdf_clip() keyString - imagecolorallocate( resource image, int red, int green, int blue ) + pdf_close() keyString - imagecolorallocatealpha( resource image, int red, int green, int blue, int alpha ) + pdf_close_image() keyString - imagecolorat( int image, int x, int y ) + pdf_close_pdi() keyString - imagecolorclosest( int image, int red, int green, int blue ) + pdf_close_pdi_page() keyString - imagecolorclosestalpha( resource image, int red, int green, int blue, int alpha ) + pdf_closepath() keyString - imagecolorclosestthwb( resource image, int red, int green, int blue ) + pdf_closepath_fill_stroke() keyString - imagecolordeallocate( resource image, int color ) + pdf_closepath_stroke() keyString - imagecolorexact( resource image, int red, int green, int blue ) + pdf_concat() keyString - imagecolorexactalpha( resource image, int red, int green, int blue, int alpha ) + pdf_continue_text() keyString - imagecolormatch( resource image1, resource image2 ) + pdf_curveto() keyString - imagecolorresolve( int im, int red, int green, int blue ) + pdf_delete() keyString - imagecolorresolvealpha( resource image, int red, int green, int blue, int alpha ) + pdf_end_page() keyString - imagecolorset( resource image, int index, int red, int green, int blue ) + pdf_end_pattern() keyString - imagecolorsforindex( resource image, int index ) + pdf_end_template() keyString - imagecolorstotal( resource image ) + pdf_endpath() keyString - imagecolortransparent( resource image [, int color] ) + pdf_fill() keyString - imagecopy( resource dst_im, resource src_im, int dst_x, int dst_y, int src_x, int src_y, int src_w, int src_h ) + pdf_fill_stroke() keyString - imagecopymerge( resource dst_im, resource src_im, int dst_x, int dst_y, int src_x, int src_y, int src_w, int src_h, int pct ) + pdf_findfont() keyString - imagecopyresampled( resource dst_im, resource src_im, int dstX, int dstY, int srcX, int srcY, int dstW, int dstH, int srcW, int srcH ) + pdf_get_buffer() keyString - imagecopyresized( resource dst_im, resource src_im, int dstX, int dstY, int srcX, int srcY, int dstW, int dstH, int srcW, int srcH ) + pdf_get_font() keyString - imagecreate( int x_size, int y_size ) + pdf_get_fontname() keyString - imagecreatefromgd( string filename ) + pdf_get_fontsize() keyString - imagecreatefromgd2( string filename ) + pdf_get_image_height() keyString - imagecreatefromgd2part( string filename, int srcX, int srcY, int width, int height ) + pdf_get_image_width() keyString - imagecreatefromgif( string filename ) + pdf_get_majorversion() keyString - imagecreatefromjpeg( string filename ) + pdf_get_minorversion() keyString - imagecreatefrompng( string filename ) + pdf_get_parameter() keyString - imagecreatefromstring( string image ) + pdf_get_pdi_parameter() keyString - imagecreatefromwbmp( string filename ) + pdf_get_pdi_value() keyString - imagecreatefromxbm( string filename ) + pdf_get_value() keyString - imagecreatefromxpm( string filename ) + pdf_initgraphics() keyString - imagecreatetruecolor( int x_size, int y_size ) + pdf_lineto() keyString - imagedashedline( int im, int x1, int y1, int x2, int y2, int col ) + pdf_makespotcolor() keyString - imagedestroy( resource image ) + pdf_moveto() keyString - imageellipse( resource image, int cx, int cy, int w, int h, int color ) + pdf_new() keyString - imagefill( resource image, int x, int y, int color ) + pdf_open() keyString - imagefilledarc( resource image, int cx, int cy, int w, int h, int s, int e, int color, int style ) + pdf_open_CCITT() keyString - ImageFilledEllipse( resource image, int cx, int cy, int w, int h, int color ) + pdf_open_file() keyString - imagefilledpolygon( resource image, array points, int num_points, int color ) + pdf_open_gif() keyString - imagefilledrectangle( resource image, int x1, int y1, int x2, int y2, int color ) + pdf_open_image() keyString - imagefilltoborder( resource image, int x, int y, int border, int color ) + pdf_open_image_file() keyString - imagefontheight( int font ) + pdf_open_jpeg() keyString - imagefontwidth( int font ) + pdf_open_memory_image() keyString - imageftbbox( int size, int angle, string font_file, string text [, array extrainfo] ) + pdf_open_pdi() keyString - imagefttext( int im, int size, int angle, int x, int y, int col, string font_file, string text [, array extrainfo] ) + pdf_open_pdi_page() keyString - imagegammacorrect( int image, float inputgamma, float outputgamma ) + pdf_open_png() keyString - imagegd( resource image [, string filename] ) + pdf_open_tiff() keyString - imagegd2( resource image [, string filename [, int chunk_size [, int type]]] ) + pdf_place_image() keyString - imageinterlace( resource image [, int interlace] ) + pdf_place_pdi_page() keyString - imageistruecolor( resource image ) + pdf_restore() keyString - imagejpeg( resource image [, string filename [, int quality]] ) + pdf_rotate() keyString - imageline( resource image, int x1, int y1, int x2, int y2, int color ) + pdf_save() keyString - imageloadfont( string file ) + pdf_scale() keyString - imagepalettecopy( resource destination, resource source ) + pdf_set_border_color() keyString - imagepng( resource image [, string filename] ) + pdf_set_border_dash() keyString - imagepolygon( resource image, array points, int num_points, int color ) + pdf_set_border_style() keyString - imagepsbbox( string text, int font, int size [, int space [, int tightness [, float angle]]] ) + pdf_set_char_spacing() keyString - imagepscopyfont( int fontindex ) + pdf_set_duration() keyString - imagepsencodefont( int font_index, string encodingfile ) + pdf_set_font() keyString - imagepsextendfont( int font_index, float extend ) + pdf_set_horiz_scaling() keyString - imagepsfreefont( int fontindex ) + pdf_set_info() keyString - imagepsloadfont( string filename ) + pdf_set_info_author() keyString - imagepsslantfont( int font_index, float slant ) + pdf_set_info_creator() keyString - imagepstext( resource image, string text, int font, int size, int foreground, int background, int x, int y [, int space [, int tightness [, float angle [, int antialias_steps]]]] ) + pdf_set_info_keywords() keyString - imagerectangle( int image, int x1, int y1, int x2, int y2, int col ) + pdf_set_info_subject() keyString - imagerotate( resource src_im, float angle, int bgd_color ) + pdf_set_info_title() keyString - imagesavealpha( resource image, bool saveflag ) + pdf_set_leading() keyString - ImageSetBrush( resource image, resource brush ) + pdf_set_parameter() keyString - ImageSetPixel( resource image, int x, int y, int color ) + pdf_set_text_matrix() keyString - imagesetstyle( resource im, array style ) + pdf_set_text_pos() keyString - imagesetthickness( resource image, int thickness ) + pdf_set_text_rendering() keyString - imagesettile( resource image, resource tile ) + pdf_set_text_rise() keyString - imagestring( int image, int font, int x, int y, string s, int col ) + pdf_set_value() keyString - imagestringup( int image, int font, int x, int y, string s, int col ) + pdf_set_word_spacing() keyString - imagesx( resource image ) + pdf_setcolor() keyString - imagesy( resource image ) + pdf_setdash() keyString - imagetruecolortopalette( resource im, bool dither, int ncolors ) + pdf_setflat() keyString - imagettfbbox( int size, int angle, string fontfile, string text ) + pdf_setfont() keyString - imagettftext( resource image, int size, int angle, int x, int y, int color, string fontfile, string text ) + pdf_setgray() keyString - imagetypes( void ) + pdf_setgray_fi() keyString - imagewbmp( resource image [, string filename [, int foreground]] ) + pdf_setgray_stroke() keyString - imagexbm( resource image, string filename [, int foreground] ) + pdf_setlinecap() keyString - imap_8bit() + pdf_setlinejoin() keyString - imap_alerts() + pdf_setlinewidth() keyString - imap_append() + pdf_setmatrix() keyString - imap_base64() + pdf_setmiterlimit() keyString - imap_binary() + pdf_setpolydash() keyString - imap_body() + pdf_setrgbcolor() keyString - imap_bodystruct() + pdf_setrgbcolor_fill() keyString - imap_check() + pdf_setrgbcolor_stroke() keyString - imap_clearflag_full() + pdf_show() keyString - imap_close() + pdf_show_boxed() keyString - imap_createmailbox() + pdf_show_xy() keyString - imap_delete() + pdf_skew() keyString - imap_deletemailbox() + pdf_stringwidth() keyString - imap_errors() + pdf_stroke() keyString - imap_expunge() + pdf_translate() keyString - imap_fetch_overview() + PEAR_EXTENSION_DIR keyString - imap_fetchbody() + PEAR_INSTALL_DIR keyString - imap_fetchheader() + pfsockopen(string hostname, int port [, int errno [, string errstr [, int timeout]]]) keyString - imap_fetchstructure() + pg_affected_rows(int result) keyString - imap_get_quota() + pg_cancel_query(int connection) keyString - imap_get_quotaroot() + pg_client_encoding([resource connection]) keyString - imap_getmailboxes() + pg_close(int connection) keyString - imap_getsubscribed() + pg_connect(string connection_string) keyString - imap_header() + pg_connection_busy(int connection) keyString - imap_headerinfo() + pg_connection_reset(int connection) keyString - imap_headers() + pg_connection_status(int connection) keyString - imap_last_error() + pg_convert(int connection, string table_name, array assoc_array [, int options]) keyString - imap_list() + pg_copy_from(int connection, string table_name, array rows [, string delimiter [, string null_as]]) keyString - imap_listmailbox() + pg_copy_to(int connection, string table_name [, string delimiter [, string null_as]]) keyString - imap_listscan() + pg_dbname(int connection) keyString - imap_listsubscribed() + pg_delete(int connection, string table_name, array assoc_array [, int options]) keyString - imap_lsub() + pg_end_copy([int connection]) keyString - imap_mail() + pg_escape_bytea(string data) keyString - imap_mail_compose() + pg_escape_identifier([ rint connection], string data) keyString - imap_mail_copy() + pg_escape_literal([ int connection], string data) keyString - imap_mail_move() + pg_escape_string(string data) keyString - imap_mailboxmsginfo() + pg_execute(int connection, string stmtname, array params) keyString - imap_mime_header_decode() + pg_fetch_all(resource result) keyString - imap_msgno() + pg_fetch_all_columns(resource result [, int column]) keyString - imap_num_msg() + pg_fetch_array(resource result [, int row [, int result_type]]) keyString - imap_num_recent() + pg_fetch_assoc(resource result [, int row]) keyString - imap_open() + pg_fetch_object(resource result, int row [, int result_type]) keyString - imap_ping() + pg_fetch_result(resource result, int row, mixed field) keyString - imap_qprint() + pg_fetch_row(resource result, int row) keyString - imap_renamemailbox() + pg_field_is_null(resource result, int row, mixed field) keyString - imap_reopen() + pg_field_name(resource result, int field_number) keyString - imap_rfc822_parse_adrlist() + pg_field_num(resource result, string field_name) keyString - imap_rfc822_parse_headers() + pg_field_prtlen(resource result, int row_number, string field_name) keyString - imap_rfc822_write_address() + pg_field_size(resource result, int field_number) keyString - imap_scanmailbox() + pg_field_table(resource result , int field_number [, bool oid_only]) keyString - imap_search() + pg_field_type(resource result, int field_number) keyString - imap_set_quota() + pg_field_type_oid(resource result, int field_number) keyString - imap_setacl() + pg_free_result(resource result) keyString - imap_setflag_full() + pg_get_notify(resource connection [, int result_type]) keyString - imap_sort() + pg_get_pid(resource connection) keyString - imap_status() + pg_get_result([resource connection]) keyString - imap_subscribe() + pg_host(resource connection) keyString - imap_thread() + pg_insert(resource connection, string table_name, array assoc_array [, bool convert]) keyString - imap_uid() + pg_last_error(resource connection) keyString - imap_undelete() + pg_last_notice(resource connection) keyString - imap_unsubscribe() + pg_last_oid(resource result) keyString - imap_utf7_decode() + pg_last_oid(resource result) keyString - imap_utf7_encode() + pg_lo_close(resource large_object) keyString - imap_utf8() + pg_lo_create(resource connection) keyString - implements + pg_lo_export(int oid, string pathname [, resource connection]) keyString - implode( string glue, array pieces ) + pg_lo_import(string pathname [, resource connection]) keyString - import_request_variables( string types [, string prefix] ) + pg_lo_open(resource connection, int oid, string mode) keyString - in_array( mixed needle, array haystack [, bool strict] ) + pg_lo_read(resource large_object, int len) keyString - include() + pg_lo_read_all(resource large_object) keyString - include_once() + pg_lo_seek(resource large_object, int offset [, int whence]) keyString - INFO_ALL + pg_lo_tell(resource large_object) keyString - INFO_CONFIGURATION + pg_lo_unlink(resource connection, int oid) keyString - INFO_CREDITS + pg_lo_write(resource large_object, string data) keyString - INFO_ENVIRONMENT + pg_meta_data(resource connection, string table_name) keyString - INFO_GENERAL + pg_num_fields(resource result) keyString - INFO_LICENSE + pg_num_rows(resource result) keyString - INFO_MODULES + pg_options(resource connection) keyString - INFO_VARIABLES + pg_parameter_status([ resource connection], string param_name) keyString - INI_ALL + pg_pconnect(string connection_string) keyString - ini_alter( string varname, string newvalue ) + pg_ping(resource connection) keyString - ini_get( string varname ) + pg_port(resource connection) keyString - ini_get_all( [string extension] ) + pg_prepare(resource connection, string stmtname, string query) keyString - INI_PERDIR + pg_put_line([resource connection, string data]) keyString - ini_restore( string varname ) + pg_query(resource connection, string query) keyString - ini_set( string varname, string newvalue ) + pg_query_params(resource connection, string query, array params) keyString - INI_SYSTEM + pg_result_error(resource result) keyString - INI_USER + pg_result_error_field(resource result, int fieldcode) keyString - insert_before( object newnode, object refnode ) + pg_result_seek(resource result, int offset) keyString - INT_CURR_SYMBOL + pg_result_status(resource result) keyString - INT_FRAC_DIGITS + pg_select(resource connection, string table_name, array assoc_array [, bool convert]) keyString - interface + pg_send_execute(resource connection, string stmtname, array params) keyString - interface_exists( string interface_name [, bool autoload] ) + pg_send_prepare(resource connection, string stmtname, string query) keyString - internal_subset() + pg_send_query(resource connection, string query) keyString - intval( mixed var, int [base] ) + pg_send_query_params(resource connection, string query, array params) keyString - ip2long( string ip_address ) + pg_set_client_encoding([resource connection, string encoding]) keyString - iptcembed() + pg_set_error_verbosity(resource connection, int verbosity) keyString - iptcparse() + pg_trace(string filename, string [mode] [, resource connection]) keyString - is_a( object object, string class_name ) + pg_transaction_status(resource connection) keyString - is_array( mixed var ) + pg_tty(resource connection) keyString - is_blank_node() + pg_unescape_bytea(string data) keyString - is_bool( mixed var ) + pg_untrace([resource connection]) keyString - is_callable( mixed var [, bool syntax_only [, string callable_name]] ) + pg_update(resource connection, string table_name, array condition, array data [, bool convert]) keyString - is_dir( string filename ) + pg_version([ resource connection]) keyString - is_double( mixed var ) + pg_version([resource connection]) keyString - is_executable( string filename ) + PHP_BINDIR keyString - is_file( string filename ) + php_check_syntax(string filename [, string &error_message]) keyString - is_finite( float val ) + PHP_CONFIG_FILE_PATH keyString - is_float( mixed var ) + PHP_DATADIR keyString - is_infinite( float val ) + PHP_EOL keyString - is_int( mixed var ) + PHP_EXTENSION_DIR keyString - is_integer( mixed var ) + php_ini_scanned_files(void) keyString - is_link( string filename ) + PHP_LIBDIR keyString - is_long( mixed var ) + PHP_LOCALSTATEDIR keyString - is_nan( float val ) + PHP_MAXPATHLEN keyString - is_null( mixed var ) + PHP_OS keyString - is_numeric( mixed var ) + PHP_OUTPUT_HANDLER_CLEAN keyString - is_object( mixed var ) + PHP_OUTPUT_HANDLER_CLEANABLE keyString - is_readable( string filename ) + PHP_OUTPUT_HANDLER_CONT keyString - is_real( mixed var ) + PHP_OUTPUT_HANDLER_DISABLED keyString - is_resource( mixed var ) + PHP_OUTPUT_HANDLER_END keyString - is_scalar( mixed var ) + PHP_OUTPUT_HANDLER_FINAL keyString - is_string( mixed var ) + PHP_OUTPUT_HANDLER_FLUSH keyString - is_subclass_of( object obj, string superclass ) + PHP_OUTPUT_HANDLER_FLUSHABLE keyString - is_uploaded_file( string filename ) + PHP_OUTPUT_HANDLER_REMOVABLE keyString - is_writable( string filename ) + PHP_OUTPUT_HANDLER_START keyString - is_writeable( string filename ) + PHP_OUTPUT_HANDLER_STARTED keyString - isset( string filename ) + PHP_OUTPUT_HANDLER_STDFLAGS keyString - java_last_exception_clear( void ) + PHP_OUTPUT_HANDLER_WRITE keyString - java_last_exception_get( void ) + php_sapi_name(void) keyString - JDDayOfWeek + PHP_SESSION_ACTIVE keyString - JDMonthName + PHP_SESSION_DISABLED keyString - JDToFrench + PHP_SESSION_NONE keyString - JDToGregorian + php_strip_whitespace(string filename) keyString - JDToJewish + PHP_SYSCONFDIR keyString - JDToJulian + php_uname(void) keyString - jdtounix( int jday ) + PHP_VERSION keyString - jewishtojd( int month, int day, int year ) + PHP_WINDOWS_NT_DOMAIN_CONTROLLER keyString - join( string glue, array pieces ) + PHP_WINDOWS_NT_SERVER keyString - jpeg2wbmp( string jpegname, string wbmpname, int d_height, int d_width, int threshold ) + PHP_WINDOWS_NT_WORKSTATION keyString - juliantojd( int month, int day, int year ) + PHP_WINDOWS_VERSION_BUILD keyString - key( array &array ) + PHP_WINDOWS_VERSION_MAJOR keyString - krsort( array &array [, int sort_flags] ) + PHP_WINDOWS_VERSION_MINOR keyString - ksort( array &array [, int sort_flags] ) + PHP_WINDOWS_VERSION_PLATFORM keyString - last_child() + PHP_WINDOWS_VERSION_PRODUCTTYPE keyString - LC_ALL + PHP_WINDOWS_VERSION_SP_MAJOR keyString - LC_COLLATE + PHP_WINDOWS_VERSION_SP_MINOR keyString - LC_CTYPE + PHP_WINDOWS_VERSION_SUITEMASK keyString - LC_MESSAGES + phpcredits(int flag) keyString - LC_MONETARY + phpinfo([int what]) keyString - LC_NUMERIC + phpversion(void) keyString - LC_TIME + pi(void) keyString - lcg_value() + PM_STR keyString - levenshtein() + png2wbmp() keyString - libxml_clear_errors( void ) + POLL_ERR keyString - libxml_get_errors( void ) + POLL_HUP keyString - libxml_get_last_error( void ) + POLL_IN keyString - libxml_set_streams_context( resource streams_context ) + POLL_MSG keyString - libxml_use_internal_errors( [bool use_errors] ) + POLL_OUT keyString - link( string target, string link ) + POLL_PRI keyString - linkinfo( string path ) + popen(string command, string mode) keyString - list( mixed ..., mixed ... ) + pos(array &array) keyString - localeconv( void ) + POSITIVE_SIGN keyString - localtime( [int timestamp [, bool is_associative]] ) + posix_access(string file [, int mode]) keyString - LOCK_EX + posix_ctermid() keyString - LOCK_NB + posix_errno(void) keyString - LOCK_SH + posix_get_last_error(void) keyString - LOCK_UN + posix_getcwd() keyString - log( float arg ) + posix_getegid() keyString - log10( float arg ) + posix_geteuid() keyString - log1p( float number ) + posix_getgid() keyString - LOG_ALERT + posix_getgrgid() keyString - LOG_AUTH + posix_getgrnam() keyString - LOG_AUTHPRIV + posix_getgroups() keyString - LOG_CONS + posix_getlogin() keyString - LOG_CRIT + posix_getpgid() keyString - LOG_CRON + posix_getpgrp() keyString - LOG_DAEMON + posix_getpid() keyString - LOG_DEBUG + posix_getppid() keyString - LOG_EMERG + posix_getpwnam() keyString - LOG_ERR + posix_getpwuid() keyString - LOG_INFO + posix_getrlimit() keyString - LOG_KERN + posix_getsid() keyString - LOG_LOCAL0 + posix_getuid() keyString - LOG_LOCAL1 + posix_initgroups(string name , int base_group_id) keyString - LOG_LOCAL2 + posix_isatty() keyString - LOG_LOCAL3 + posix_kill() keyString - LOG_LOCAL4 + posix_mkfifo() keyString - LOG_LOCAL5 + posix_setegid() keyString - LOG_LOCAL6 + posix_seteuid() keyString - LOG_LOCAL7 + posix_setgid() keyString - LOG_LPR + posix_setpgid() keyString - LOG_MAIL + posix_setsid() keyString - LOG_NDELAY + posix_setuid() keyString - LOG_NEWS + posix_strerror(int errno) keyString - LOG_NOTICE + posix_times() keyString - LOG_NOWAIT + posix_ttyname() keyString - LOG_ODELAY + posix_uname() keyString - LOG_PERROR + pow(number base, number exp) keyString - LOG_PID + PREG_BACKTRACK_LIMIT_ERROR keyString - LOG_SYSLOG + PREG_BAD_UTF8_ERROR keyString - LOG_USER + PREG_BAD_UTF8_OFFSET_ERROR keyString - LOG_UUCP + preg_filter(mixed pattern , mixed replacement , mixed subject [, int limit [, int &count]]) keyString - LOG_WARNING + preg_grep(string pattern, array input) keyString - lstat( string filename ) + PREG_INTERNAL_ERROR keyString - ltrim( string str [, string charlist] ) + preg_last_error(void) keyString - M_1_PI + preg_match(string pattern, string subject [, array &matches [, int flags [, int offset]]]) keyString - M_2_PI + preg_match_all(string pattern, string subject, array &matches [, int flags [, int offset]]) keyString - M_2_SQRTPI + PREG_NO_ERROR keyString - M_E + preg_quote(string str [, string delimiter]) keyString - M_LN10 + PREG_RECURSION_LIMIT_ERROR keyString - M_LN2 + preg_replace(mixed pattern, mixed replacement, mixed subject [, int limit]) keyString - M_LOG10E + preg_replace_callback(mixed pattern, mixed callback, mixed subject [, int limit]) keyString - M_LOG2E + preg_split(string pattern, string subject [, int limit [, int flags]]) keyString - M_PI + prev(array &array) keyString - M_PI_2 + print(string arg) keyString - M_PI_4 + print_r(mixed expression [, bool return]) keyString - M_SQRT1_2 + printf(string format [, mixed args]) keyString - M_SQRT2 + private keyString - magecopymergegray( resource dst_im, resource src_im, int dst_x, int dst_y, int src_x, int src_y, int src_w, int src_h, int pct ) + proc_close() keyString - mail( string to, string subject, string message [, string additional_headers [, string additional_parameters]] ) + proc_get_status() keyString - main() + proc_nice(int increment) keyString - max( mixed arg1, mixed arg2, mixed argn ) + proc_open() keyString - mb_convert_case( string str, int mode [, string encoding] ) + process() keyString - mb_convert_encoding( string str, string to-encoding [, mixed from-encoding] ) + protected keyString - mb_convert_kana( string str, string option [, mixed encoding] ) + pspell_add_to_personal(int dictionary_link , string word) keyString - mb_convert_variables( string to-encoding, mixed from-encoding, mixed vars ) + pspell_add_to_session(int dictionary_link , string word) keyString - mb_decode_mimeheader( string str ) + pspell_check(int dictionary_link , string word) keyString - mb_decode_numericentity( string str, array convmap [, string encoding] ) + pspell_clear_session(int dictionary_link) keyString - mb_detect_encoding( string str [, mixed encoding-list] ) + pspell_config_create(string language [, string spelling [, string jargon [, string encoding]]]) keyString - mb_detect_order( [mixed encoding-list] ) + pspell_config_data_dir(int conf , string directory) keyString - mb_encode_mimeheader( string str [, string charset [, string transfer-encoding [, string linefeed]]] ) + pspell_config_data_dir(int conf , string directory) keyString - mb_encode_numericentity( string str, array convmap [, string encoding] ) + pspell_config_dict_dir(int conf , string directory) keyString - mb_ereg( string pattern, string string [, array regs] ) + pspell_config_dict_dir(int conf , string directory) keyString - mb_ereg_match( string pattern, string string [, string option] ) + pspell_config_mode(int dictionary_link , int mode) keyString - mb_ereg_replace( string pattern, string replacement, string string [, array option] ) + pspell_config_personal(int dictionary_link , string file) keyString - mb_ereg_search( [string pattern [, string option]] ) + pspell_config_repl(int dictionary_link , string file) keyString - mb_ereg_search_getpos( void ) + pspell_config_runtogether(int dictionary_link , bool flag) keyString - mb_ereg_search_getregs( void ) + pspell_config_save_repl(int dictionary_link , bool flag) keyString - mb_ereg_search_init( string string [, string pattern [, string option]] ) + pspell_new(string language [, string spelling [, string jargon [, string encoding [, int mode]]]]) keyString - mb_ereg_search_pos( [string pattern [, string option]] ) + pspell_new_config(int config) keyString - mb_ereg_search_regs( [string pattern [, string option]] ) + pspell_new_personal(string personal , string language [, string spelling [, string jargon [, string encoding [, int mode]]]]) keyString - mb_ereg_search_setpos( void ) + pspell_save_wordlist(int dictionary_link) keyString - mb_eregi( string pattern, string string [, array regs] ) + pspell_store_replacement(int dictionary_link , string misspelled , string correct) keyString - mb_eregi_replace( string pattern, string replace, string string ) + pspell_suggest(int dictionary_link , string word) keyString - mb_get_info( [string type] ) + public keyString - mb_http_input( [string type] ) + public_id(void) keyString - mb_http_output( [string encoding] ) + putenv(string setting) keyString - mb_internal_encoding( [string encoding] ) + quoted_printable_decode(string str) keyString - mb_language( [string language] ) + quoted_printable_encode(string str) keyString - mb_output_handler( string contents, int status ) + quotemeta(string str) keyString - mb_parse_str( string encoded_string [, array &result] ) + rad2deg(double number) keyString - mb_preferred_mime_name( string encoding ) + RADIXCHAR keyString - mb_regex_encoding( [string encoding] ) + rand([int min, int max]) keyString - mb_regex_set_options( [string options] ) + range(number low, number high [, number step]) keyString - mb_send_mail( string to, string subject, string message [, string additional_headers [, string additional_parameter]] ) + rawurldecode(string str) keyString - mb_split( string pattern, string string [, int limit] ) + rawurlencode(string str) keyString - mb_strcut( string str, int start [, int length [, string encoding]] ) + read_exif_data(string filename [, string sections [, bool arrays [, bool thumbnail]]]) keyString - mb_strimwidth( string str, int start, int width [, string trimmarker [, string encoding]] ) + read_exif_data(string filename [, string sections [, bool arrays [, bool thumbnail]]]) keyString - mb_strlen( string str [, string encoding] ) + readdir(resource dir_handle) keyString - mb_strpos( string haystack, string needle [, int offset [, string encoding]] ) + readfile(string filename [, bool use_include_path [, resource context]]) keyString - mb_strrpos( string haystack, string needle [, string encoding] ) + readgzfile(string filename, int [use_include_path]) keyString - mb_strtolower( string str [, string encoding] ) + readline(string [prompt]) keyString - mb_strtoupper( string str [, string encoding] ) + readline_add_history() keyString - mb_strwidth( string str [, string encoding] ) + readline_callback_handler_install(string prompt , callable callback) keyString - mb_substitute_character( [mixed substrchar] ) + readline_callback_handler_remove(void) keyString - mb_substr( string str, int start [, int length [, string encoding]] ) + readline_callback_read_char(void) keyString - mb_substr_count( string haystack, string needle [, string encoding] ) + readline_clear_history() keyString - md5( string str [, bool raw_output] ) + readline_completion_function() keyString - md5_file( string filename ) + readline_info() keyString - metaphone() + readline_list_history() keyString - method_exists() + readline_on_new_line(void) keyString - mhash() + readline_read_history() keyString - mhash_count() + readline_redisplay(void) keyString - mhash_get_block_size() + readline_write_history() keyString - mhash_get_hash_name() + readlink(string path) keyString - mhash_keygen_s2k() + realpath(string path) keyString - microtime( [bool get_as_float] ) + register_shutdown_function(string func) keyString - mime_content_type( string filename ) + register_tick_function(string func [, mixed arg]) keyString - min( mixed arg1, mixed arg2, mixed argn ) + rename(string oldname, string newname) keyString - mkdir( string pathname [, int mode [, bool recursive [, resource context]]] ) + require() keyString - mktime( [int hour [, int minute [, int second [, int month [, int day [, int year [, int is_dst]]]]]]] ) + require_once() keyString - MON_1 + reset(array &array) keyString - MON_10 + restore_error_handler(void) keyString - MON_11 + return keyString - MON_12 + rewind(resource handle) keyString - MON_2 + rewinddir(resource dir_handle) keyString - MON_3 + rmdir(string dirname) keyString - MON_4 + round(double val, int [precision]) keyString - MON_5 + rsort(array &array [, int sort_flags]) keyString - MON_6 + rtrim(string str [, string charlist]) keyString - MON_7 + scandir(string directory [, int sorting_order [, resource context]]) keyString - MON_8 + SEEK_CUR keyString - MON_9 + SEEK_END keyString - MON_DECIMAL_POINT + SEEK_SET keyString - MON_GROUPING + SEGV_ACCERR keyString - MON_THOUSANDS_SEP + SEGV_MAPERR keyString - money_format() + sem_acquire() keyString - move_uploaded_file() + sem_get() keyString - msg_get_queue() + sem_release() keyString - msg_receive() + sem_remove() keyString - msg_remove_queue() + serialize(mixed value) keyString - msg_send() + session_cache_expire([int new_cache_expire]) keyString - msg_set_queue() + session_cache_limiter([string cache_limiter]) keyString - msg_stat_queue() + session_decode(string data) keyString - mt_getrandmax() + session_destroy(void) keyString - mt_rand() + session_encode(void) keyString - mt_srand() + session_get_cookie_params(void) keyString - mysql_affected_rows( int [link_identifier] ) + session_id([string id]) keyString - mysql_change_user( string user, string password, string [database], resource [link_identifier] ) + session_module_name([string module]) keyString - mysql_client_encoding( [resource link_identifier] ) + session_name([string name]) keyString - mysql_close( resource [link_identifier] ) + session_regenerate_id(void) keyString - mysql_connect( [string server [, string username [, string password [, bool new_link [, int client_flags]]]]] ) + session_register_shutdown(void) keyString - mysql_create_db( string database_name, resource [link_identifier] ) + session_save_path([string path]) keyString - mysql_data_seek( resource result_identifier, int row_number ) + session_set_cookie_params(int lifetime [, string path [, string domain [, bool secure]]]) keyString - mysql_db_name( resource result, int row, mixed [field] ) + session_set_save_handler(string open, string close, string read, string write, string destroy, string gc) keyString - mysql_db_query( string database, string query, resource [link_identifier] ) + session_start(void) keyString - mysql_drop_db( string database_name, resource [link_identifier] ) + session_status(void) keyString - mysql_errno( resource [link_identifier] ) + session_unset(void) keyString - mysql_error( resource [link_identifier] ) + session_write_close(void) keyString - mysql_escape_string( string unescaped_string ) + set_attribute(string name, string value) keyString - mysql_fetch_array( resource result, int [result_type] ) + set_error_handler(callback error_handler [, int error_types]) keyString - mysql_fetch_assoc( resource result ) + set_file_buffer(resource stream, int buffer) keyString - mysql_fetch_field( resource result, int [field_offset] ) + set_magic_quotes_runtime(int new_setting) keyString - mysql_fetch_lengths( resource result ) + set_time_limit(int seconds) keyString - mysql_fetch_object( resource result, int [result_typ] ) + setcookie(string name [, string value [, int expire [, string path [, string domain [, int secure]]]]]) keyString - mysql_fetch_row( resource result ) + setlocale(mixed category, string locale) keyString - mysql_field_flags( resource result, int field_offset ) + setrawcookie(string name [, string value [, int expire [, string path [, string domain [, bool secure]]]]]) keyString - mysql_field_len( int result, int field_offset ) + settype(mixed var, string type) keyString - mysql_field_name( resource result, int field_index ) + sha1(string str [, bool raw_output]) keyString - mysql_field_seek( int result, int field_offset ) + sha1_file(string filename [, bool raw_output]) keyString - mysql_field_table( int result, int field_offset ) + sheet_file() keyString - mysql_field_type( string result, int field_offset ) + shell_exec() keyString - mysql_free_result( int result ) + shm_attach() keyString - mysql_get_client_info( void ) + shm_detach() keyString - mysql_get_host_info( [resource link_identifier] ) + shm_get_var() keyString - mysql_get_proto_info( [resource link_identifier] ) + shm_has_var(resource shm_identifier , int variable_key) keyString - mysql_get_server_info( [resource link_identifier] ) + shm_put_var() keyString - mysql_info( [resource link_identifier] ) + shm_remove() keyString - mysql_insert_id( int [link_identifier] ) + shm_remove_var() keyString - mysql_list_dbs( int [link_identifier] ) + shmop_close() keyString - mysql_list_fields( string database_name, string table_name, int [link_identifier] ) + shmop_close(int shmid) keyString - mysql_list_processes( [resource link_identifier] ) + shmop_delete() keyString - mysql_list_tables( string database, int [link_identifier] ) + shmop_delete(int shmid) keyString - mysql_num_fields( int result ) + shmop_open() keyString - mysql_num_rows( int result ) + shmop_open(int key , string flags , int mode , int size) keyString - mysql_pconnect( string [hostname [:port] [:/path/to/socket]] , string [username], string [password] ) + shmop_read() keyString - mysql_ping( [resource link_identifier] ) + shmop_read(int shmid , int start , int count) keyString - mysql_query( string query, int [link_identifier] ) + shmop_size() keyString - mysql_real_escape_string( string unescaped_string [, resource link_identifier] ) + shmop_size(int shmid) keyString - mysql_result( int result, int row, mixed [field] ) + shmop_write() keyString - mysql_select_db( string database_name, int [link_identifier] ) + shmop_write(int shmid , string data , int offset) keyString - mysql_stat( [resource link_identifier] ) + show_source(string filename) keyString - mysql_tablename( int result, int i ) + shuffle(array &array) keyString - mysql_thread_id( [resource link_identifier] ) + SI_ASYNCIO keyString - mysql_unbuffered_query( string query [, resource link_identifier] ) + SI_KERNEL keyString - N_CS_PRECEDES + SI_MESGQ keyString - N_SEP_BY_SPACE + SI_NOINFO keyString - N_SIGN_POSN + SI_QUEUE keyString - natcasesort() + SI_SIGIO keyString - natsort() + SI_TIMER keyString - NEGATIVE_SIGN + SI_TKILL keyString - new + SI_USER keyString - next( array &array ) + SIG_BLOCK keyString - next_sibling( void ) + SIG_SETMASK keyString - ngettext() + SIG_UNBLOCK keyString - nl2br( string string ) + similar_text(string first, string second [, float percent]) keyString - nl_langinfo() + simplexml_import_dom(DOMNode node [, string class_name]) keyString - NOEXPR + simplexml_load_file(string filename [, string class_name [, int options [, string ns [, bool is_prefix]]]]) keyString - NOSTR + simplexml_load_string(string data [, string class_name [, int options [, string ns [, bool is_prefix]]]]) keyString - NOTICE + sin(float arg) keyString - number_format( float number [, int decimals [, string dec_point, string thousands_sep]] ) + sinh(float arg) keyString - ob_clean( void ) + sizeof(mixed var [, int mode]) keyString - ob_end_clean( void ) + sleep(int seconds) keyString - ob_end_flush( void ) + snmp2_get(string host , string community , string object_id [, string timeout [, string retries]]) keyString - ob_flush( void ) + snmp2_getnext(string host , string community , string object_id [, string timeout [, string retries]]) keyString - ob_get_clean( void ) + snmp2_real_walk(string host , string community , string object_id [, string timeout [, string retries]]) keyString - ob_get_contents( void ) + snmp2_set(string host , string community , string object_id , string type , string value [, string timeout [, string retries]]) keyString - ob_get_length( void ) + snmp2_walk(string host , string community , string object_id [, string timeout [, string retries]]) keyString - ob_get_level( void ) + snmp3_get(string host , string sec_name , string sec_level , string auth_protocol , string auth_passphrase , string priv_protocol , string priv_passphrase , string object_id [, string timeout [, string retries]]) keyString - ob_get_status( [bool full_status] ) + snmp3_getnext(string host , string sec_name , string sec_level , string auth_protocol , string auth_passphrase , string priv_protocol , string priv_passphrase , string object_id [, string timeout [, string retries]]) keyString - ob_gzhandler( string buffer, int mode ) + snmp3_real_walk(string host , string sec_name , string sec_level , string auth_protocol , string auth_passphrase , string priv_protocol , string priv_passphrase , string object_id [, string timeout [, string $retries]]) keyString - ob_iconv_handler( string contents, int status ) + snmp3_set(string host , string sec_name , string sec_level , string auth_protocol , string auth_passphrase , string priv_protocol , string priv_passphrase , string object_id , string type , string value [, int timeout [, int retries]]) keyString - ob_implicit_flush( [int flag] ) + snmp3_walk(string host , string sec_name , string sec_level , string auth_protocol , string auth_passphrase , string priv_protocol , string priv_passphrase , string object_id [, string timeout [, string retries]]) keyString - ob_start( [callback output_callback [, int chunk_size [, bool erase]]] ) + snmp_get_quick_print(void) keyString - OCI-Collection + snmp_get_valueretrieval(void) keyString - OCI-Lob + SNMP_OID_OUTPUT_FULL keyString - octdec( string octal_string ) + SNMP_OID_OUTPUT_NUMERIC keyString - opendir( string path ) + snmp_read_mib(string filename) keyString - openlog( string ident, int option, int facility ) + snmp_set_enum_print(int enum_print) keyString - or + snmp_set_oid_numeric_print(int oid_format) keyString - ord( string string ) + snmp_set_oid_output_format(int oid_format) keyString - P_CS_PRECEDES + snmp_set_quick_print(bool quick_print) keyString - P_SEP_BY_SPACE + snmp_set_valueretrieval(int method) keyString - P_SIGN_POSN + snmpget(string hostname , string community , string object_id [, int timeout [, int retries]]) keyString - pack( string format [, mixed args] ) + snmpgetnext(string host , string community , string object_id [, int $timeout [, int retries]]) keyString - parse_ini_file( string filename [, bool process_sections] ) + snmprealwalk(string host , string community , string object_id [, int timeout [, int retries]]) keyString - parse_str( string str [, array arr] ) + snmpset(string host , string community , string object_id , string type , mixed value [, int timeout [, int retries]]) keyString - parse_url( string url ) + snmpwalk(string hostname , string community , string object_id [, int timeout [, int retries]]) keyString - passthru( string command [, int &return_var] ) + snmpwalkoid(string hostname , string community , string object_id [, int timeout [, int retries]]) keyString - pathinfo( string path [, int options] ) + socket_accept(resource socket) keyString - PATHINFO_BASENAME + socket_bind(resource socket , string address [, int port]) keyString - PATHINFO_DIRNAME + socket_clear_error([ resource socket]) keyString - PATHINFO_EXTENSION + socket_close(resource socket) keyString - pclose( int handle ) + socket_connect(resource socket , string address [, int port]) keyString - pdf_add_annotation() + socket_create(int domain , int type , int protocol) keyString - pdf_add_bookmark() + socket_create_listen(int port [, int backlog]) keyString - pdf_add_launchlink() + socket_create_pair(int domain , int type , int protocol , array &fd) keyString - pdf_add_locallink() + socket_get_option(resource socket , int level , int optname) keyString - pdf_add_note() + socket_get_status(resource stream) keyString - pdf_add_outline() + socket_getpeername(resource socket , string &address [, int &port]) keyString - pdf_add_pdflink() + socket_getsockname(resource socket , string &addr [, int &port]) keyString - pdf_add_thumbnail() + socket_import_stream(resource stream) keyString - pdf_add_weblink() + socket_import_stream(resource stream) keyString - pdf_arc() + socket_last_error([ resource socket]) keyString - pdf_arcn() + socket_listen(resource socket [, int backlog]) keyString - pdf_attach_file() + socket_read(resource socket , int length [, int type]) keyString - pdf_begin_page() + socket_recv(resource socket , string &buf , int len , int flags) keyString - pdf_begin_pattern() + socket_recvfrom(resource socket , string &buf , int len , int flags , string &name [, int &port]) keyString - pdf_begin_template() + socket_select(array &read , array &write , array &except , int tv_sec [, int tv_usec]) keyString - pdf_circle() + socket_send(resource socket , string buf , int len , int flags) keyString - pdf_clip() + socket_sendto(resource socket , string buf , int len , int flags , string addr [, int port]) keyString - pdf_close() + socket_set_block(resource socket) keyString - pdf_close_image() + socket_set_blocking(int socket descriptor, int mode) keyString - pdf_close_pdi() + socket_set_nonblock(resource socket) keyString - pdf_close_pdi_page() + socket_set_option(resource socket , int level , int optname , mixed optval) keyString - pdf_closepath() + socket_set_timeout(resource stream, int seconds [, int microseconds]) keyString - pdf_closepath_fill_stroke() + socket_shutdown(resource socket [, int how]) keyString - pdf_closepath_stroke() + socket_strerror(int errno) keyString - pdf_concat() + socket_write(resource socket , string buffer [, int length]) keyString - pdf_continue_text() + sort(array &array [, int sort_flags]) keyString - pdf_curveto() + SORT_ASC keyString - pdf_delete() + SORT_DESC keyString - pdf_end_page() + SORT_NUMERIC keyString - pdf_end_pattern() + SORT_REGULAR keyString - pdf_end_template() + SORT_STRING keyString - pdf_endpath() + soundex(string str) keyString - pdf_fill() + spl_autoload(string class_name [, string file_extensions]) keyString - pdf_fill_stroke() + spl_autoload_call(string class_name) keyString - pdf_findfont() + spl_autoload_extensions([ string file_extensions]) keyString - pdf_get_buffer() + spl_autoload_functions(void) keyString - pdf_get_font() + spl_autoload_register([ callable autoload_function [, bool throw [, bool prepend]]]) keyString - pdf_get_fontname() + spl_autoload_unregister(mixed autoload_function) keyString - pdf_get_fontsize() + spl_classes(void) keyString - pdf_get_image_height() + spl_object_hash(object obj) keyString - pdf_get_image_width() + spl_object_hash(object obj) keyString - pdf_get_majorversion() + split(string pattern, string string [, int limit]) keyString - pdf_get_minorversion() + spliti(string pattern, string string [, int limit]) keyString - pdf_get_parameter() + sprintf(string format [, mixed args [, mixed ...]]) keyString - pdf_get_pdi_parameter() + sql_regcase(string string) keyString - pdf_get_pdi_value() + sqlite_array_query(resource dbhandle, string query [, int result_type [, bool decode_binary]]) keyString - pdf_get_value() + SQLITE_ASSOC keyString - pdf_initgraphics() + sqlite_busy_timeout(resource dbhandle, int milliseconds) keyString - pdf_lineto() + sqlite_changes(resource dbhandle) keyString - pdf_makespotcolor() + sqlite_close(resource dbhandle) keyString - pdf_moveto() + sqlite_column(resource result, mixed index_or_name [, bool decode_binary]) keyString - pdf_new() + sqlite_create_aggregate(resource dbhandle, string function_name, callback step_func, callback finalize_func [, int num_args]) keyString - pdf_open() + sqlite_create_function(resource dbhandle, string function_name, callback callback [, int num_args]) keyString - pdf_open_CCITT() + sqlite_current(resource result [, int result_type [, bool decode_binary]]) keyString - pdf_open_file() + sqlite_error_string(int error_code) keyString - pdf_open_gif() + sqlite_escape_string(string item) keyString - pdf_open_image() + sqlite_exec(resource dbhandle, string query [, string &error_msg]) keyString - pdf_open_image_file() + sqlite_factory(string filename [, int mode [, string &error_message]]) keyString - pdf_open_jpeg() + sqlite_fetch_all(resource result [, int result_type [, bool decode_binary]]) keyString - pdf_open_memory_image() + sqlite_fetch_array(resource result [, int result_type [, bool decode_binary]]) keyString - pdf_open_pdi() + sqlite_fetch_column_types(string table_name, resource dbhandle [, int result_type]) keyString - pdf_open_pdi_page() + sqlite_fetch_object(resource result [, string class_name [, array ctor_params [, bool decode_binary]]]) keyString - pdf_open_png() + sqlite_fetch_single(resource result [, bool decode_binary]) keyString - pdf_open_tiff() + sqlite_fetch_string(resource result [, bool decode_binary]) keyString - pdf_place_image() + sqlite_field_name(resource result, int field_index) keyString - pdf_place_pdi_page() + sqlite_has_more(resource result) keyString - pdf_restore() + sqlite_has_prev(resource result) keyString - pdf_rotate() + sqlite_key(resource result) keyString - pdf_save() + sqlite_last_error(resource dbhandle) keyString - pdf_scale() + sqlite_last_insert_rowid(resource dbhandle) keyString - pdf_set_border_color() + sqlite_libencoding(void) keyString - pdf_set_border_dash() + sqlite_libversion(void) keyString - pdf_set_border_style() + sqlite_next(resource result) keyString - pdf_set_char_spacing() + sqlite_num_fields(resource result) keyString - pdf_set_duration() + sqlite_num_rows(resource result) keyString - pdf_set_font() + sqlite_open(string filename [, int mode [, string &error_message]]) keyString - pdf_set_horiz_scaling() + sqlite_popen(string filename [, int mode [, string &error_message]]) keyString - pdf_set_info() + sqlite_prev(resource result) keyString - pdf_set_info_author() + sqlite_query(resource dbhandle, string query [, int result_type [, string &error_msg]]) keyString - pdf_set_info_creator() + sqlite_rewind(resource result) keyString - pdf_set_info_keywords() + sqlite_seek(resource result, int rownum) keyString - pdf_set_info_subject() + sqlite_single_query(resource db, string query [, bool first_row_only [, bool decode_binary]]) keyString - pdf_set_info_title() + sqlite_udf_decode_binary(string data) keyString - pdf_set_leading() + sqlite_udf_encode_binary(string data) keyString - pdf_set_parameter() + sqlite_unbuffered_query(resource dbhandle, string query [, int result_type [, string &error_msg]]) keyString - pdf_set_text_matrix() + sqlite_valid(resource result) keyString - pdf_set_text_pos() + SQLiteDatabase::fetchColumnTypes(string table_name [, int result_type = SQLITE_ASSOC]) keyString - pdf_set_text_rendering() + sqrt(float arg) keyString - pdf_set_text_rise() + srand([int seed]) keyString - pdf_set_value() + sscanf(string str, string format [, mixed &...]) keyString - pdf_set_word_spacing() + stat(string filename) keyString - pdf_setcolor() + static keyString - pdf_setdash() + str_getcsv(string input [, string delimiter [, string enclosure [, string escape]]]) keyString - pdf_setflat() + str_ireplace(mixed search, mixed replace, mixed subject [, int &count]) keyString - pdf_setfont() + str_pad(string input, int pad_length [, string pad_string [, int pad_type]]) keyString - pdf_setgray() + STR_PAD_BOTH keyString - pdf_setgray_fi() + STR_PAD_LEFT keyString - pdf_setgray_stroke() + STR_PAD_RIGHT keyString - pdf_setlinecap() + str_repeat(string input, int multiplier) keyString - pdf_setlinejoin() + str_replace(mixed search, mixed replace, mixed subject [, int &count]) keyString - pdf_setlinewidth() + str_rot13(string str) keyString - pdf_setmatrix() + str_shuffle(string str) keyString - pdf_setmiterlimit() + str_split(string string [, int split_length = 1]) keyString - pdf_setpolydash() + str_word_count(string string [, int format [, string charlist]]) keyString - pdf_setrgbcolor() + strcasecmp(string str1, string str2) keyString - pdf_setrgbcolor_fill() + strchr(string haystack, string needle) keyString - pdf_setrgbcolor_stroke() + strcmp(string str1, string str2) keyString - pdf_show() + strcoll(string str1, string str2) keyString - pdf_show_boxed() + strcspn(string str1, string str2) keyString - pdf_show_xy() + stream_context_create() keyString - pdf_skew() + stream_context_get_options() keyString - pdf_stringwidth() + stream_context_get_params(resource stream_or_context) keyString - pdf_stroke() + stream_context_set_default(array options) keyString - pdf_translate() + stream_context_set_option() keyString - PEAR_EXTENSION_DIR + stream_context_set_params() keyString - PEAR_INSTALL_DIR + stream_copy_to_stream() keyString - pfsockopen( string hostname, int port [, int errno [, string errstr [, int timeout]]] ) + stream_copy_to_stream(resource source , resource dest [, int maxlength [, int offset]]) keyString - pg_affected_rows( resource result ) + stream_filter_append() keyString - pg_cancel_query( resource connection ) + stream_filter_prepend() keyString - pg_client_encoding( [resource connection] ) + stream_get_filters() keyString - pg_close( resource connection ) + stream_get_line() keyString - pg_connect( string connection_string ) + stream_get_line(resource handle , int length [, string ending]) keyString - pg_connection_busy( resource connection ) + stream_get_meta_data() keyString - pg_connection_reset( resource connection ) + stream_get_meta_data(resource stream) keyString - pg_connection_status( resource connection ) + stream_get_transports() keyString - pg_convert( resource connection, string table_name, array assoc_array [, int options] ) + stream_get_wrappers() keyString - pg_copy_from( int connection, string table_name, array rows [, string delimiter [, string null_as]] ) + STREAM_META_ACCESS keyString - pg_copy_to( int connection, string table_name [, string delimiter [, string null_as]] ) + STREAM_META_GROUP keyString - pg_dbname( resource connection ) + STREAM_META_GROUP_NAME keyString - pg_delete( resource connection, string table_name, array assoc_array [, int options] ) + STREAM_META_OWNER keyString - pg_end_copy( [resource connection] ) + STREAM_META_OWNER_NAME keyString - pg_escape_bytea( string data ) + STREAM_META_TOUCH keyString - pg_escape_string( string data ) + stream_register_filter() keyString - pg_execute( resource connection, string stmtname, array params ) + stream_register_wrapper() keyString - pg_fetch_all( resource result ) + stream_select() keyString - pg_fetch_array( resource result [, int row [, int result_type]] ) + stream_set_blocking() keyString - pg_fetch_assoc( resource result [, int row] ) + stream_set_chunk_size(resource fp , int chunk_size) keyString - pg_fetch_object( resource result, int row [, int result_type] ) + stream_set_timeout() keyString - pg_fetch_result( resource result, int row, mixed field ) + stream_set_timeout(resource stream, int seconds [, int microseconds]) keyString - pg_fetch_row( resource result, int row ) + stream_set_write_buffer() keyString - pg_field_is_null( resource result, int row, mixed field ) + STREAM_SHUT_RD keyString - pg_field_name( resource result, int field_number ) + STREAM_SHUT_RDWR keyString - pg_field_num( resource result, string field_name ) + STREAM_SHUT_WR keyString - pg_field_prtlen( resource result, int row_number, string field_name ) + stream_socket_accept(resource server_socket [, float $timeout [, string &peername]]) keyString - pg_field_size( resource result, int field_number ) + stream_socket_client(string remote_socket [, int &errno [, string &errstr [, float timeout [, int flags [, resource $context]]]]]) keyString - pg_field_type( resource result, int field_number ) + stream_socket_get_name(resource handle , bool want_peer) keyString - pg_field_type_oid( resource result, int field_number ) + stream_socket_recvfrom(resource socket , int length [, int flags [, string &address]]) keyString - pg_free_result( resource result ) + stream_socket_sendto(resource socket , string data [, int flags [, string address]]) keyString - pg_get_notify( resource connection [, int result_type] ) + stream_socket_server(string local_socket [, int &errno [, string &errstr [, int flags [, resource context]]]]) keyString - pg_get_pid( resource connection ) + stream_socket_shutdown(resource stream , int how) keyString - pg_get_result( [resource connection] ) + stream_supports_lock(resource stream) keyString - pg_host( resource connection ) + streamWrapper::stream_cast(int cast_as) keyString - pg_insert( resource connection, string table_name, array assoc_array [, bool convert] ) + streamWrapper::stream_set_option(int option , int arg1 , int arg2) keyString - pg_last_error( resource connection ) + strftime(string format [, int timestamp]) keyString - pg_last_notice( resource connection ) + string ibase_wait_event(string event_name1 [, string event_name2 [, string ...]]) keyString - pg_last_oid( resource result ) + strip_tags(string str [, string allowable_tags]) keyString - pg_lo_close( resource large_object ) + stripcslashes(string str) keyString - pg_lo_create( resource connection ) + stripos(string haystack, string needle [, int offset]) keyString - pg_lo_export( int oid, string pathname [, resource connection] ) + stripslashes(string str) keyString - pg_lo_import( string pathname [, resource connection] ) + stristr(string haystack, string needle) keyString - pg_lo_open( resource connection, int oid, string mode ) + strlen(string string) keyString - pg_lo_read( resource large_object, int len ) + strnatcasecmp(string str1, string str2) keyString - pg_lo_read_all( resource large_object ) + strnatcmp(string str1, string str2) keyString - pg_lo_seek( resource large_object, int offset [, int whence] ) + strncasecmp(string str1, string str2, int len) keyString - pg_lo_tell( resource large_object ) + strncmp(string str1, string str2, int len) keyString - pg_lo_unlink( resource connection, int oid ) + strpbrk(string haystack , string char_list) keyString - pg_lo_write( resource large_object, string data ) + strpos(string haystack, string needle [, int offset]) keyString - pg_meta_data( resource connection, string table_name ) + strrchr(string haystack, string needle) keyString - pg_num_fields( resource result ) + strrev(string string) keyString - pg_num_rows( resource result ) + strrpos(string haystack, char needle) keyString - pg_options( resource connection ) + strspn(string str1, string str2) keyString - pg_pconnect( string connection_string ) + strstr(string haystack, string needle) keyString - pg_ping( resource connection ) + strtok(string arg1, string arg2) keyString - pg_port( resource connection ) + strtolower(string string) keyString - pg_prepare( resource connection, string stmtname, string query ) + strtotime(string time [, int now]) keyString - pg_put_line( [resource connection, string data] ) + strtoupper(string string) keyString - pg_query( resource connection, string query ) + strtr(string str, string from, string to) keyString - pg_query_params( resource connection, string query, array params ) + strval(mixed var) keyString - pg_result_error( resource result ) + substr(string string, int start, int [length]) keyString - pg_result_error_field( resource result, int fieldcode ) + substr_compare(string main_str , string str , int offset [, int length [, bool case_insensitivity]]) keyString - pg_result_seek( resource result, int offset ) + substr_count(string haystrack, string needle) keyString - pg_result_status( resource result ) + substr_replace(string string, string replacement, int start, int [length]) keyString - pg_select( resource connection, string table_name, array assoc_array [, bool convert] ) + svn_add() keyString - pg_send_execute( resource connection, string stmtname, array params ) + svn_auth_get_parameter() keyString - pg_send_prepare( resource connection, string stmtname, string query ) + svn_auth_set_parameter() keyString - pg_send_query( resource connection, string query ) + svn_blame() keyString - pg_send_query_params( resource connection, string query, array params ) + svn_cat() keyString - pg_set_client_encoding( [resource connection, string encoding] ) + svn_checkout() keyString - pg_set_error_verbosity( resource connection, int verbosity ) + svn_cleanup() keyString - pg_trace( string filename, string [mode] [, resource connection] ) + svn_client_version() keyString - pg_transaction_status( resource connection ) + svn_commit() keyString - pg_tty( resource connection ) + svn_delete() keyString - pg_unescape_bytea( string data ) + svn_diff() keyString - pg_untrace( [resource connection] ) + svn_export() keyString - pg_update( resource connection, string table_name, array condition, array data [, bool convert] ) + svn_fs_abort_txn() keyString - pg_version( [resource connection] ) + svn_fs_apply_text() keyString - PHP_BINDIR + svn_fs_begin_txn2() keyString - PHP_CONFIG_FILE_PATH + svn_fs_change_node_prop() keyString - PHP_DATADIR + svn_fs_check_path() keyString - PHP_EOL + svn_fs_contents_changed() keyString - PHP_EXTENSION_DIR + svn_fs_copy() keyString - php_ini_scanned_files( void ) + svn_fs_delete() keyString - PHP_LIBDIR + svn_fs_dir_entries() keyString - PHP_LOCALSTATEDIR + svn_fs_file_contents() keyString - php_logo_guid( void ) + svn_fs_file_length() keyString - PHP_OS + svn_fs_is_dir() keyString - PHP_OUTPUT_HANDLER_CONT + svn_fs_is_file() keyString - PHP_OUTPUT_HANDLER_END + svn_fs_make_dir() keyString - PHP_OUTPUT_HANDLER_START + svn_fs_make_file() keyString - php_sapi_name( void ) + svn_fs_node_created_rev() keyString - PHP_SYSCONFDIR + svn_fs_node_prop() keyString - php_uname( void ) + svn_fs_props_changed() keyString - PHP_VERSION + svn_fs_revision_prop() keyString - phpcredits( int flag ) + svn_fs_revision_root() keyString - phpinfo( [int what] ) + svn_fs_txn_root() keyString - phpversion( void ) + svn_fs_youngest_rev() keyString - pi( void ) + svn_import() keyString - PM_STR + svn_log() keyString - png2wbmp() + svn_ls() keyString - popen( string command, string mode ) + svn_mkdir() keyString - pos( array &array ) + svn_repos_create() keyString - POSITIVE_SIGN + svn_repos_fs() keyString - posix_ctermid() + svn_repos_fs_begin_txn_for_commit() keyString - posix_getcwd() + svn_repos_fs_commit_txn() keyString - posix_getegid() + svn_repos_hotcopy() keyString - posix_geteuid() + svn_repos_open() keyString - posix_getgid() + svn_repos_recover() keyString - posix_getgrgid() + svn_revert() keyString - posix_getgrnam() + svn_status() keyString - posix_getgroups() + svn_update() keyString - posix_getlogin() + SWF_SOUND_11KHZ keyString - posix_getpgid() + SWF_SOUND_16BITS keyString - posix_getpgrp() + SWF_SOUND_22KHZ keyString - posix_getpid() + SWF_SOUND_44KHZ keyString - posix_getppid() + SWF_SOUND_5KHZ keyString - posix_getpwnam() + SWF_SOUND_8BITS keyString - posix_getpwuid() + SWF_SOUND_ADPCM_COMPRESSED keyString - posix_getrlimit() + SWF_SOUND_MONO keyString - posix_getsid() + SWF_SOUND_MP3_COMPRESSED keyString - posix_getuid() + SWF_SOUND_NELLY_COMPRESSED keyString - posix_isatty() + SWF_SOUND_NOT_COMPRESSED keyString - posix_kill() + SWF_SOUND_NOT_COMPRESSED_LE keyString - posix_mkfifo() + SWF_SOUND_STEREO keyString - posix_setegid() + swfaction() keyString - posix_seteuid() + swfbutton() keyString - posix_setgid() + swfdisplayitem() keyString - posix_setpgid() + swffill() keyString - posix_setsid() + swffont() keyString - posix_setuid() + swfgradient() keyString - posix_times() + swfmorph() keyString - posix_ttyname() + swfmovie() keyString - posix_uname() + swfmovie::namedanchor(string name) keyString - pow( number base, number exp ) + swfmovie::protect([string password]) keyString - preg_grep( string pattern, array input ) + swfshape() keyString - preg_match( string pattern, string subject [, array &matches [, int flags [, int offset]]] ) + swfsprite() keyString - preg_match_all( string pattern, string subject, array &matches [, int flags [, int offset]] ) + swftext() keyString - preg_quote( string str [, string delimiter] ) + swftextfield() keyString - preg_replace( mixed pattern, mixed replacement, mixed subject [, int limit] ) + SWFTEXTFIELD_AUTOSIZE keyString - preg_replace_callback( mixed pattern, mixed callback, mixed subject [, int limit] ) + SWFTEXTFIELD_USEFONT keyString - preg_split( string pattern, string subject [, int limit [, int flags]] ) + switch keyString - prev( array &array ) + symlink(string target, string link) keyString - print( string arg ) + sys_get_temp_dir(void) keyString - print_r( mixed expression [, bool return] ) + syslog(int priority, string message) keyString - printf( string format [, mixed args] ) + system(string command [, int &return_var]) keyString - private + T_FMT keyString - proc_close() + T_FMT_AMPM keyString - proc_get_status() + T_STD_DES keyString - proc_open() + tan(float arg) keyString - process() + tanh(float arg) keyString - protected + tempnam(string dir, string prefix) keyString - public + textdomain(string text_domain) keyString - public_id( void ) + THOUSANDS_SEP keyString - putenv( string setting ) + THOUSEP keyString - quoted_printable_decode( string str ) + throw keyString - quotemeta( string str ) + tidy_access_count(tidy object) keyString - rad2deg( double number ) + tidy_config_count(tidy object) keyString - RADIXCHAR + tidy_error_count(tidy object) keyString - rand( [int min, int max] ) + tidy_get_output(tidy object) keyString - range( number low, number high [, number step] ) + tidy_load_config(string filename , string encoding) keyString - rawurldecode( string str ) + tidy_reset_config(void) keyString - rawurlencode( string str ) + tidy_save_config(string filename) keyString - read_exif_data( string filename [, string sections [, bool arrays [, bool thumbnail]]] ) + tidy_set_encoding(string encoding) keyString - readdir( resource dir_handle ) + tidy_setopt(string option , mixed value) keyString - readfile( string filename [, bool use_include_path [, resource context]] ) + tidy_warning_count(tidy object) keyString - readgzfile( string filename, int [use_include_path] ) + time(void) keyString - readline( string [prompt] ) + time_nanosleep(int seconds , int nanoseconds) keyString - readline_add_history() + timezone_abbreviations_list(void) keyString - readline_clear_history() + timezone_identifiers_list([ int what [, string country]]) keyString - readline_completion_function() + timezone_location_get() keyString - readline_info() + timezone_name_from_abbr(string abbr [, int gmtOffset [, int isdst]]) keyString - readline_list_history() + timezone_name_get() keyString - readline_read_history() + timezone_offset_get() keyString - readline_write_history() + timezone_transitions_get() keyString - readlink( string path ) + timezone_version_get(void) keyString - realpath( string path ) + tmpfile(void) keyString - register_shutdown_function( string func ) + token_get_all(string source) keyString - register_tick_function( string func [, mixed arg] ) + token_name(int token) keyString - rename( string oldname, string newname ) + touch(string filename [, int time [, int atime]]) keyString - require() + trait_exists(string traitname [, bool autoload]) keyString - require_once() + Transliterator::create(string id [, int direction]) keyString - reset( array &array ) + Transliterator::createFromRules(string rules [, string direction]) keyString - restore_error_handler( void ) + Transliterator::createInverse(void) keyString - return + Transliterator::getErrorCode(void) keyString - rewind( resource handle ) + Transliterator::getErrorMessage(void) keyString - rewinddir( resource dir_handle ) + Transliterator::listIDs(void) keyString - rmdir( string dirname ) + Transliterator::transliterate(string subject [, int start [, int end]]) keyString - round( double val, int [precision] ) + transliterator_create_from_rules(string id [, int direction]) keyString - rsort( array &array [, int sort_flags] ) + transliterator_create_inverse(void) keyString - rtrim( string str [, string charlist] ) + transliterator_get_error_code(void) keyString - SEEK_CUR + transliterator_get_error_message(void) keyString - SEEK_END + transliterator_list_ids(void) keyString - SEEK_SET + transliterator_transliterate(mixed transliterator , string subject [, int start [, int end]]) keyString - sem_acquire() + TRAP_BRKPT keyString - sem_get() + TRAP_TRACE keyString - sem_release() + trigger_error(string error_msg, int [error_type]) keyString - sem_remove() + trim(string str [, string charlist]) keyString - serialize( mixed value ) + try keyString - session_cache_expire( [int new_cache_expire] ) + U_IDNA_DOMAIN_NAME_TOO_LONG_ERROR keyString - session_cache_limiter( [string cache_limiter] ) + uasort(array &array, function cmp_function) keyString - session_decode( string data ) + ucfirst(string str) keyString - session_destroy( void ) + ucwords(string str) keyString - session_encode( void ) + uksort(array &array, callback cmp_function) keyString - session_get_cookie_params( void ) + umask([int mask]) keyString - session_id( [string id] ) + uniqid(string prefix, bool [lcg]) keyString - session_is_registered( string name ) + unixtojd([ int timestamp]) keyString - session_module_name( [string module] ) + unixtojd(int [timestamp]) keyString - session_name( [string name] ) + unlink(string filename [, resource context]) keyString - session_regenerate_id( void ) + unpack(string format, string data) keyString - session_register( mixed name [, mixed ...] ) + unregister_tick_function(string func [, mixed arg]) keyString - session_save_path( [string path] ) + unserialize(string str) keyString - session_set_cookie_params( int lifetime [, string path [, string domain [, bool secure]]] ) + unset(mixed var, mixed [var], [...]) keyString - session_set_save_handler( string open, string close, string read, string write, string destroy, string gc ) + UPLOAD_ERR_EXTENSION keyString - session_start( void ) + urldecode(string str) keyString - session_unregister( string name ) + urlencode(string str) keyString - session_unset( void ) + use_soap_error_handler([ bool handler]) keyString - session_write_close( void ) + user_error(string error_msg, int [error_type]) keyString - set_attribute( string name, string value ) + usleep(int micro_seconds) keyString - set_error_handler( callback error_handler [, int error_types] ) + usort(array &array, callback cmp_function) keyString - set_file_buffer( resource stream, int buffer ) + utf8_decode(string data) keyString - set_magic_quotes_runtime( int new_setting ) + utf8_encode(string data) keyString - set_time_limit( int seconds ) + var keyString - setcookie( string name [, string value [, int expire [, string path [, string domain [, int secure]]]]] ) + var_dump(mixed expression [, mixed expression [, ...]]) keyString - setlocale( mixed category, string locale ) + var_export(mixed expression [, int return]) keyString - setrawcookie( string name [, string value [, int expire [, string path [, string domain [, bool secure]]]]] ) + variant_abs(mixed val) keyString - settype( mixed var, string type ) + variant_add(mixed left , mixed right) keyString - sha1( string str [, bool raw_output] ) + variant_and(mixed left , mixed right) keyString - sha1_file( string filename [, bool raw_output] ) + variant_cast(variant variant , int type) keyString - sheet_file() + variant_cat(mixed left , mixed right) keyString - shell_exec() + variant_cmp(mixed left , mixed right [, int lcid [, int flags]]) keyString - shm_attach() + variant_date_from_timestamp(int timestamp) keyString - shm_detach() + variant_date_to_timestamp(variant variant) keyString - shm_get_var() + variant_div(mixed left , mixed right) keyString - shm_put_var() + variant_eqv(mixed left , mixed right) keyString - shm_remove() + variant_fix(mixed variant) keyString - shm_remove_var() + variant_get_type(variant variant) keyString - shmop_close() + variant_idiv(mixed left , mixed right) keyString - shmop_delete() + variant_imp(mixed left , mixed right) keyString - shmop_open() + variant_int(mixed variant) keyString - shmop_read() + variant_mod(mixed left , mixed right) keyString - shmop_size() + variant_mul(mixed left , mixed right) keyString - shmop_write() + variant_neg(mixed variant) keyString - show_source( string filename ) + variant_not(mixed variant) keyString - shuffle( array &array ) + variant_or(mixed left , mixed right) keyString - similar_text( string first, string second [, float percent] ) + variant_pow(mixed left , mixed right) keyString - sin( float arg ) + variant_round(mixed variant , int decimals) keyString - sinh( float arg ) + variant_set(variant variant , mixed value) keyString - sizeof( mixed var [, int mode] ) + variant_set_type(variant variant , int type) keyString - sleep( int seconds ) + variant_sub(mixed left , mixed right) keyString - socket_get_status( resource stream ) + variant_xor(mixed left , mixed right) keyString - socket_set_blocking( int socket descriptor, int mode ) + version_compare(string version1, string version2 [, string operator]) keyString - socket_set_timeout( resource stream, int seconds [, int microseconds] ) + virtual(string filename) keyString - sort( array &array [, int sort_flags] ) + vprintf(string format, array args) keyString - SORT_ASC + vsprintf(string format, array args) keyString - SORT_DESC + wddx_add_vars() keyString - SORT_NUMERIC + wddx_deserialize() keyString - SORT_REGULAR + wddx_packet_end() keyString - SORT_STRING + wddx_packet_start() keyString - soundex( string str ) + wddx_serialize_value() keyString - split( string pattern, string string [, int limit] ) + wddx_serialize_vars() keyString - spliti( string pattern, string string [, int limit] ) + while keyString - sprintf( string format [, mixed args [, mixed ...]] ) + wordwrap(string str, int [width], string [break], int [cut]) keyString - sql_regcase( string string ) + xml_error_string(int code) keyString - sqlite_array_query( resource dbhandle, string query [, int result_type [, bool decode_binary]] ) + xml_get_current_byte_index(int parser) keyString - SQLITE_ASSOC + xml_get_current_column_number(int parser) keyString - sqlite_busy_timeout( resource dbhandle, int milliseconds ) + xml_get_current_line_number(int parser) keyString - sqlite_changes( resource dbhandle ) + xml_get_error_code(int parser) keyString - sqlite_close( resource dbhandle ) + xml_parse(int parser, string data, int [isFinal]) keyString - sqlite_column( resource result, mixed index_or_name [, bool decode_binary] ) + xml_parse_into_struct(int parser, string data, array &values, array &index) keyString - sqlite_create_aggregate( resource dbhandle, string function_name, callback step_func, callback finalize_func [, int num_args] ) + xml_parser_create(string [encoding]) keyString - sqlite_create_function( resource dbhandle, string function_name, callback callback [, int num_args] ) + xml_parser_create_ns([string encoding [, string sep]]) keyString - sqlite_current( resource result [, int result_type [, bool decode_binary]] ) + xml_parser_free(int parser) keyString - sqlite_error_string( int error_code ) + xml_parser_get_option(int parser, int option) keyString - sqlite_escape_string( string item ) + xml_parser_set_option(int parser, int option, mixed value) keyString - sqlite_exec( resource dbhandle, string query [, string &error_msg] ) + xml_set_character_data_handler(int parser, string handler) keyString - sqlite_factory( string filename [, int mode [, string &error_message]] ) + xml_set_default_handler(int parser, string handler) keyString - sqlite_fetch_all( resource result [, int result_type [, bool decode_binary]] ) + xml_set_element_handler(int parser, string startElementHandler, string endElementHandler) keyString - sqlite_fetch_array( resource result [, int result_type [, bool decode_binary]] ) + xml_set_end_namespace_decl_handler(int pind, string hdl) keyString - sqlite_fetch_column_types( string table_name, resource dbhandle [, int result_type] ) + xml_set_external_entity_ref_handler(int parser, string handler) keyString - sqlite_fetch_object( resource result [, string class_name [, array ctor_params [, bool decode_binary]]] ) + xml_set_notation_decl_handler(int parser, string handler) keyString - sqlite_fetch_single( resource result [, bool decode_binary] ) + xml_set_object(int parser, object &object) keyString - sqlite_fetch_string( resource result [, bool decode_binary] ) + xml_set_processing_instruction_handler(int parser, string handler) keyString - sqlite_field_name( resource result, int field_index ) + xml_set_start_namespace_decl_handler(int pind, string hdl) keyString - sqlite_has_more( resource result ) + xml_set_start_namespace_decl_handler(resource parser , callable handler) keyString - sqlite_has_prev( resource result ) + xml_set_unparsed_entity_decl_handler(int parser, string handler) keyString - sqlite_key( resource result ) + xmlrpc_decode(string xml [, string encoding]) keyString - sqlite_last_error( resource dbhandle ) + xmlrpc_decode_request(string xml, string method [, string encoding]) keyString - sqlite_last_insert_rowid( resource dbhandle ) + xmlrpc_encode(mixed value) keyString - sqlite_libencoding( void ) + xmlrpc_encode_request(string method, mixed params) keyString - sqlite_libversion( void ) + xmlrpc_get_type(mixed value) keyString - sqlite_next( resource result ) + xmlrpc_parse_method_descriptions(string xml) keyString - sqlite_num_fields( resource result ) + xmlrpc_server_add_introspection_data(resource server, array desc) keyString - sqlite_num_rows( resource result ) + xmlrpc_server_call_method(resource server, string xml, mixed user_data [, array output_options]) keyString - sqlite_open( string filename [, int mode [, string &error_message]] ) + xmlrpc_server_create(void) keyString - sqlite_popen( string filename [, int mode [, string &error_message]] ) + xmlrpc_server_destroy(resource server) keyString - sqlite_prev( resource result ) + xmlrpc_server_register_introspection_callback(resource server, string function) keyString - sqlite_query( resource dbhandle, string query [, int result_type [, string &error_msg]] ) + xmlrpc_server_register_method(resource server, string method_name, string function) keyString - sqlite_rewind( resource result ) + xmlrpc_set_type(string value, string type) keyString - sqlite_seek( resource result, int rownum ) + XMLWriter::endDTDEntity(void) keyString - sqlite_single_query( resource db, string query [, bool first_row_only [, bool decode_binary]] ) + XMLWriter::fullEndElement(void) keyString - sqlite_udf_decode_binary( string data ) + XMLWriter::startDTDEntity(string $name , bool isparam) keyString - sqlite_udf_encode_binary( string data ) + XMLWriter::writeDTDEntity(string name , string content , bool pe , string pubid , string sysid , string ndataid) keyString - sqlite_unbuffered_query( resource dbhandle, string query [, int result_type [, string &error_msg]] ) + XMLWriter::writeRaw(string content) keyString - sqlite_valid( resource result ) + xmlwriter_end_dtd_entity(resource xmlwriter) keyString - sqrt( float arg ) + xmlwriter_full_end_element(resource xmlwriter) keyString - srand( [int seed] ) + xmlwriter_start_dtd_entity(resource xmlwriter , string name , bool isparam) keyString - sscanf( string str, string format [, mixed &...] ) + xmlwriter_write_dtd_entity(resource xmlwriter , string name , string content , bool pe , string pubid , string sysid , string ndataid) keyString - stat( string filename ) + xmlwriter_write_raw(resource xmlwriter , string content) keyString - static + xpath_eval(object xpath context) keyString - str_ireplace( mixed search, mixed replace, mixed subject [, int &count] ) + xpath_eval_expression(object xpath_context) keyString - str_pad( string input, int pad_length [, string pad_string [, int pad_type]] ) + xpath_new_context(object dom document) keyString - STR_PAD_BOTH + xptr_eval([object xpath_context, string eval_str]) keyString - STR_PAD_LEFT + xptr_new_context([object doc_handle]) keyString - STR_PAD_RIGHT + xslt_create(void) keyString - str_repeat( string input, int multiplier ) + xslt_errno(resource xh) keyString - str_replace( mixed search, mixed replace, mixed subject [, int &count] ) + xslt_error(resource xh) keyString - str_rot13( string str ) + xslt_free(resource xh) keyString - str_shuffle( string str ) + xslt_process(resource xh, string xmlcontainer, string xslcontainer [, string resultcontainer [, array arguments [, array parameters]]]) keyString - str_word_count( string string [, int format [, string charlist]] ) + xslt_set_base(resource xh, string uri) keyString - strcasecmp( string str1, string str2 ) + xslt_set_encoding(resource xh, string encoding) keyString - strchr( string haystack, string needle ) + xslt_set_error_handler(resource xh, mixed handler) keyString - strcmp( string str1, string str2 ) + xslt_set_log(resource xh, mixed log) keyString - strcoll( string str1, string str2 ) + xslt_set_object (resource processor, object &obj) keyString - strcspn( string str1, string str2 ) + xslt_set_sax_handler(resource xh, array handlers) keyString - stream_context_create() + xslt_set_sax_handlers(resource processor, array handlers) keyString - stream_context_get_options() + xslt_set_scheme_handler(resource xh, array handlers) keyString - stream_context_set_option() + xslt_set_scheme_handlers(resource processor, array handlers) keyString - stream_context_set_params() + xslt_setopt(resource processor, int newmask) keyString - stream_copy_to_stream() + yaml_emit(mixed data [, int encoding [, int linebreak [, array callbacks]]]) keyString - stream_filter_append() + yaml_emit_file(string filename , mixed data [, int encoding [, int linebreak [, array callbacks]]]) keyString - stream_filter_prepend() + yaml_parse(string input [, int pos [, int &ndocs [, array callbacks]]]) keyString - stream_get_filters() + yaml_parse_file(string filename [, int pos [, int &ndocs [, array callbacks]]]) keyString - stream_get_line() + yaml_parse_url(string url [, int pos [, int &ndocs [, array callbacks]]]) keyString - stream_get_meta_data( resource stream ) + YESEXPR keyString - stream_get_meta_data() + YESSTR keyString - stream_get_transports() + zend_version(void) keyString - stream_get_wrappers() + zip_close(resource zip) keyString - stream_register_filter() + zip_entry_close(resource zip_entry) keyString - stream_register_wrapper() + zip_entry_compressedsize(resource zip_entry) keyString - stream_select() + zip_entry_compressionmethod(resource zip_entry) keyString - stream_set_blocking() + zip_entry_filesize(resource zip_entry) keyString - stream_set_timeout( resource stream, int seconds [, int microseconds] ) + zip_entry_name(resource zip_entry) keyString - stream_set_timeout() + zip_entry_open(resource zip , resource zip_entry [, string mode]) keyString - stream_set_write_buffer() + zip_entry_read(resource zip_entry [, int length]) keyString - stream_socket_accept() + zip_open(string filename) keyString - stream_socket_client() + zip_read(resource zip) keyString - stream_socket_get_name() + zlib_decode(string data [, string max_decoded_len]) keyString - stream_socket_server() + zlib_encode(string data , string encoding [, string level]) keyString - strftime( string format [, int timestamp] ) + ZLIB_ENCODING_DEFLATE keyString - strip_tags( string str [, string allowable_tags] ) + ZLIB_ENCODING_GZIP keyString - stripcslashes( string str ) + ZLIB_ENCODING_RAW keyString - stripos( string haystack, string needle [, int offset] ) + zlib_get_coding_type(void) + + extensions + keyString - stripslashes( string str ) + php keyString - stristr( string haystack, string needle ) + php3 keyString - strlen( string string ) + inc.php + + keywordsArray + - keyString - strnatcasecmp( string str1, string str2 ) + beginString + <?php - keyString - strnatcmp( string str1, string str2 ) + beginString + ?> - keyString - strncasecmp( string str1, string str2, int len ) + beginString + __CLASS__ - keyString - strncmp( string str1, string str2, int len ) + beginString + __DIR__ - keyString - strpos( string haystack, string needle [, int offset] ) + beginString + __FILE__ - keyString - strrchr( string haystack, string needle ) + beginString + __FUNCTION__ - keyString - strrev( string string ) + beginString + __LINE__ - keyString - strrpos( string haystack, char needle ) + beginString + __METHOD__ - keyString - strspn( string str1, string str2 ) + beginString + __NAMESPACE__ - keyString - strstr( string haystack, string needle ) + beginString + __TRAIT__ - keyString - strtok( string arg1, string arg2 ) + beginString + ABDAY_1 - keyString - strtolower( string string ) + beginString + ABDAY_2 - keyString - strtotime( string time [, int now] ) + beginString + ABDAY_3 - keyString - strtoupper( string string ) + beginString + ABDAY_4 - keyString - strtr( string str, string from, string to ) + beginString + ABDAY_5 - keyString - strval( mixed var ) + beginString + ABDAY_6 - keyString - substr( string string, int start, int [length] ) + beginString + ABDAY_7 - keyString - substr_count( string haystrack, string needle ) + beginString + ABMON_1 - keyString - substr_replace( string string, string replacement, int start, int [length] ) + beginString + ABMON_10 - keyString - swfaction() + beginString + ABMON_11 - keyString - swfbutton() + beginString + ABMON_12 - keyString - swfdisplayitem() + beginString + ABMON_2 - keyString - swffill() + beginString + ABMON_3 - keyString - swffont() + beginString + ABMON_4 - keyString - swfgradient() + beginString + ABMON_5 - keyString - swfmorph() + beginString + ABMON_6 - keyString - swfmovie() + beginString + ABMON_7 - keyString - swfshape() + beginString + ABMON_8 - keyString - swfsprite() + beginString + ABMON_9 - keyString - swftext() + beginString + abstract - keyString - swftextfield() + beginString + ALT_DIGITS - keyString - switch + beginString + AM_STR - keyString - symlink( string target, string link ) + beginString + and - keyString - syslog( int priority, string message ) + beginString + as - keyString - system( string command [, int &return_var] ) + beginString + ASSERT_ACTIVE - keyString - T_FMT + beginString + ASSERT_BAIL - keyString - T_FMT_AMPM + beginString + ASSERT_CALLBACK - keyString - T_STD_DES + beginString + ASSERT_QUIET_EVAL - keyString - tan( float arg ) + beginString + ASSERT_WARNING - keyString - tanh( float arg ) + beginString + binary - keyString - tempnam( string dir, string prefix ) + beginString + bool - keyString - textdomain( string text_domain ) + beginString + boolean - keyString - THOUSANDS_SEP + beginString + break - keyString - THOUSEP + beginString + BUS_ADRALN - keyString - throw + beginString + BUS_ADRERR - keyString - time( void ) + beginString + BUS_OBJERR - keyString - tmpfile( void ) + beginString + callable - keyString - token_get_all( string source ) + beginString + case - keyString - token_name( int token ) + beginString + CASE_LOWER - keyString - touch( string filename [, int time [, int atime]] ) + beginString + CASE_UPPER - keyString - trigger_error( string error_msg, int [error_type] ) + beginString + catch - keyString - trim( string str [, string charlist] ) + beginString + CHAR_MAX - keyString - try + beginString + class - keyString - uasort( array &array, function cmp_function ) + beginString + CLD_CONTIUNED - keyString - ucfirst( string str ) + beginString + CLD_DUMPED - keyString - ucwords( string str ) + beginString + CLD_EXITED - keyString - uksort( array &array, callback cmp_function ) + beginString + CLD_KILLED - keyString - umask( [int mask] ) + beginString + CLD_STOPPED - keyString - uniqid( string prefix, bool [lcg] ) + beginString + CLD_TRAPPED - keyString - unixtojd( int [timestamp] ) + beginString + clone - keyString - unlink( string filename [, resource context] ) + beginString + CODESET - keyString - unpack( string format, string data ) + beginString + CONNECTION_ABORTED - keyString - unregister_tick_function( string func [, mixed arg] ) + beginString + CONNECTION_NORMAL - keyString - unserialize( string str ) + beginString + CONNECTION_TIMEOUT - keyString - unset( mixed var, mixed [var], [...] ) + beginString + const - keyString - urldecode( string str ) + beginString + continue - keyString - urlencode( string str ) + beginString + COUNT_NORMAL - keyString - user_error( string error_msg, int [error_type] ) + beginString + COUNT_RECURSIVE - keyString - usleep( int micro_seconds ) + beginString + CREDITS_ALL - keyString - usort( array &array, callback cmp_function ) + beginString + CREDITS_DOCS - keyString - utf8_decode( string data ) + beginString + CREDITS_FULLPAGE - keyString - utf8_encode( string data ) + beginString + CREDITS_GENERAL - keyString - var + beginString + CREDITS_GROUP - keyString - var_dump( mixed expression [, mixed expression [, ...]] ) + beginString + CREDITS_MODULES - keyString - var_export( mixed expression [, int return] ) + beginString + CREDITS_QA - keyString - version_compare( string version1, string version2 [, string operator] ) + beginString + CREDITS_SAPI - keyString - virtual( string filename ) + beginString + CRNCYSTR - keyString - vprintf( string format, array args ) + beginString + CRYP - keyString - vsprintf( string format, array args ) + beginString + CRYPT_BLOWFISH - keyString - wddx_add_vars() + beginString + CRYPT_EXT_DES - keyString - wddx_deserialize() + beginString + CRYPT_MD5 - keyString - wddx_packet_end() + beginString + CRYPT_SALT_LENGTH - keyString - wddx_packet_start() + beginString + CURLE_FILESIZE_EXCEEDED - keyString - wddx_serialize_value() + beginString + CURLE_FTP_SSL_FAILED - keyString - wddx_serialize_vars() + beginString + CURLE_LDAP_INVALID_URL - keyString - while + beginString + CURLFTPAUTH_DEFAULT - keyString - wordwrap( string str, int [width], string [break], int [cut] ) + beginString + CURLFTPAUTH_SSL - keyString - xml_error_string( int code ) + beginString + CURLFTPAUTH_TLS - keyString - xml_get_current_byte_index( int parser ) + beginString + CURLFTPSSL_ALL - keyString - xml_get_current_column_number( int parser ) + beginString + CURLFTPSSL_CONTROL - keyString - xml_get_current_line_number( int parser ) + beginString + CURLFTPSSL_NONE - keyString - xml_get_error_code( int parser ) + beginString + CURLFTPSSL_TRY - keyString - xml_parse( int parser, string data, int [isFinal] ) + beginString + CURLOPT_CONNECTTIMEOUT_MS - keyString - xml_parse_into_struct( int parser, string data, array &values, array &index ) + beginString + CURLOPT_FTP_SSL - keyString - xml_parser_create( string [encoding] ) + beginString + CURLOPT_FTPSSLAUTH - keyString - xml_parser_create_ns( [string encoding [, string sep]] ) + beginString + CURLOPT_MAX_RECV_SPEED_LARGE - keyString - xml_parser_free( int parser ) + beginString + CURLOPT_MAX_SEND_SPEED_LARGE - keyString - xml_parser_get_option( int parser, int option ) + beginString + CURLOPT_PROGRESSFUNCTION - keyString - xml_parser_set_option( int parser, int option, mixed value ) + beginString + CURLOPT_TCP_NODELAY - keyString - xml_set_character_data_handler( int parser, string handler ) + beginString + CURLOPT_TIMEOUT_MS - keyString - xml_set_default_handler( int parser, string handler ) + beginString + CURRENCY_SYMBOL - keyString - xml_set_element_handler( int parser, string startElementHandler, string endElementHandler ) + beginString + D_FMT - keyString - xml_set_end_namespace_decl_handler( int pind, string hdl ) + beginString + D_T_FMT - keyString - xml_set_external_entity_ref_handler( int parser, string handler ) + beginString + DAY_1 - keyString - xml_set_notation_decl_handler( int parser, string handler ) + beginString + DAY_2 - keyString - xml_set_object( int parser, object &object ) + beginString + DAY_3 - keyString - xml_set_processing_instruction_handler( int parser, string handler ) + beginString + DAY_4 - keyString - xml_set_start_namespace_decl_handler( int pind, string hdl ) + beginString + DAY_5 - keyString - xml_set_unparsed_entity_decl_handler( int parser, string handler ) + beginString + DAY_6 - keyString - xmlrpc_decode( string xml [, string encoding] ) + beginString + DAY_7 - keyString - xmlrpc_decode_request( string xml, string method [, string encoding] ) + beginString + DECIMAL_POINT - keyString - xmlrpc_encode( mixed value ) + beginString + declare - keyString - xmlrpc_encode_request( string method, mixed params ) + beginString + default - keyString - xmlrpc_get_type( mixed value ) + beginString + DEFAULT_INCLUDE_PATH - keyString - xmlrpc_parse_method_descriptions( string xml ) + beginString + DIRECTORY_SEPARATOR - keyString - xmlrpc_server_add_introspection_data( resource server, array desc ) + beginString + do - keyString - xmlrpc_server_call_method( resource server, string xml, mixed user_data [, array output_options] ) + beginString + DOMDocument - keyString - xmlrpc_server_create( void ) + beginString + double - keyString - xmlrpc_server_destroy( resource server ) + beginString + E_ALL + ignoreCase + + regularExpression + - keyString - xmlrpc_server_register_introspection_callback( resource server, string function ) + beginString + E_COMPILE_ERROR + ignoreCase + + regularExpression + - keyString - xmlrpc_server_register_method( resource server, string method_name, string function ) + beginString + E_COMPILE_WARNING + ignoreCase + + regularExpression + - keyString - xmlrpc_set_type( string value, string type ) + beginString + E_CORE_ERROR + ignoreCase + + regularExpression + - keyString - xpath_eval( object xpath context ) + beginString + E_CORE_WARNING + ignoreCase + + regularExpression + - keyString - xpath_eval_expression( object xpath_context ) + beginString + E_DEPRECATED - keyString - xpath_new_context( object dom document ) + beginString + E_ERROR + ignoreCase + + regularExpression + - keyString - xptr_eval( [object xpath_context, string eval_str] ) + beginString + E_NOTICE + ignoreCase + + regularExpression + - keyString - xptr_new_context( [object doc_handle] ) + beginString + E_PARSE + ignoreCase + + regularExpression + - keyString - xslt_create( void ) + beginString + E_STRICT - keyString - xslt_errno( resource xh ) + beginString + E_USER + ignoreCase + + regularExpression + - keyString - xslt_error( resource xh ) + beginString + E_USER_DEPRECATED - keyString - xslt_free( resource xh ) + beginString + E_USER_ERROR + ignoreCase + + regularExpression + - keyString - xslt_process( resource xh, string xmlcontainer, string xslcontainer [, string resultcontainer [, array arguments [, array parameters]]] ) + beginString + E_USER_NOTICE - keyString - xslt_set_base( resource xh, string uri ) + beginString + E_USER_WARNING + ignoreCase + + regularExpression + - keyString - xslt_set_encoding( resource xh, string encoding ) + beginString + E_WARNING + ignoreCase + + regularExpression + - keyString - xslt_set_error_handler( resource xh, mixed handler ) + beginString + else - keyString - xslt_set_log( resource xh, mixed log ) + beginString + elseif - keyString - xslt_set_object ( resource processor, object &obj ) + beginString + endfor - keyString - xslt_set_sax_handler( resource xh, array handlers ) + beginString + endforeach - keyString - xslt_set_sax_handlers( resource processor, array handlers ) + beginString + endif - keyString - xslt_set_scheme_handler( resource xh, array handlers ) + beginString + endswitch - keyString - xslt_set_scheme_handlers( resource processor, array handlers ) + beginString + endwhile - keyString - xslt_setopt( resource processor, int newmask ) + beginString + ENT_COMPAT - keyString - YESEXPR + beginString + ENT_DISALLOWED - keyString - YESSTR + beginString + ENT_HTML401 - keyString - zend_logo_guid( void ) + beginString + ENT_HTML5 - keyString - zend_version( void ) + beginString + ENT_NOQUOTES - - extensions - - keyString - php + beginString + ENT_QUOTES - keyString - php3 + beginString + ENT_SUBSTITUTE - keyString - inc.php + beginString + ENT_XHTML - - keywordsArray - beginString - <?php + ENT_XML1 beginString - ?> + ERA beginString - __CLASS__ + ERA_D_FMT + ignoreCase + + regularExpression + beginString - __FILE__ + ERA_D_T_FMT + ignoreCase + + regularExpression + beginString - __FUNCTION__ + ERA_T_FMT + ignoreCase + + regularExpression + beginString - __LINE__ + ERA_YEAR + ignoreCase + + regularExpression + beginString - __METHOD__ + exit beginString - ABDAY_1 + extends beginString - ABDAY_2 + EXTR_IF_EXISTS beginString - ABDAY_3 + EXTR_OVERWRITE beginString - ABDAY_4 + EXTR_PREFIX_ALL beginString - ABDAY_5 + EXTR_PREFIX_IF_EXISTS beginString - ABDAY_6 + EXTR_PREFIX_INVALID beginString - ABDAY_7 + EXTR_PREFIX_SAME beginString - ABMON_1 + EXTR_SKIP + ignoreCase + + regularExpression + beginString - ABMON_10 + final beginString - ABMON_11 + finally beginString - ABMON_12 + float beginString - ABMON_2 + for beginString - ABMON_3 + foreach beginString - ABMON_4 + FPE_FLTDIV beginString - ABMON_5 + FPE_FLTINV beginString - ABMON_6 + FPE_FLTOVF beginString - ABMON_7 + FPE_FLTRES beginString - ABMON_8 + FPE_FLTSUB beginString - ABMON_9 + FPE_FLTUND beginString - ALT_DIGITS + FPE_INTDIV beginString - AM_STR + FPE_INTOVF beginString - ASSERT_ACTIVE + FRAC_DIGITS + ignoreCase + + regularExpression + beginString - ASSERT_BAIL + FrenchToJD + ignoreCase + + regularExpression + beginString - ASSERT_CALLBACK + function beginString - ASSERT_QUIET_EVAL + global beginString - ASSERT_WARNING + GMP_VERSION beginString - break + goto beginString - CASE_LOWER + GregorianToJD + ignoreCase + + regularExpression + beginString - CASE_UPPER + GROUPING + ignoreCase + + regularExpression + beginString - CHAR_MAX + HexDec + ignoreCase + + regularExpression + beginString - CODESET + HTML_ENTITIES + ignoreCase + + regularExpression + beginString - CONNECTION_ABORTED + HTML_SPECIALCHARS + ignoreCase + + regularExpression + beginString - CONNECTION_NORMAL + IDNA_CHECK_BIDI beginString - CONNECTION_TIMEOUT + IDNA_CHECK_CONTEXTJ beginString - continue + IDNA_ERROR_BIDI beginString - COUNT_NORMAL + IDNA_ERROR_CONTEXTJ beginString - COUNT_RECURSIVE + IDNA_ERROR_DISALLOWED beginString - CREDITS_ALL + IDNA_ERROR_DOMAIN_NAME_TOO_LONG beginString - CREDITS_DOCS + IDNA_ERROR_EMPTY_LABEL beginString - CREDITS_FULLPAGE + IDNA_ERROR_HYPHEN_3_4 beginString - CREDITS_GENERAL + IDNA_ERROR_INVALID_ACE_LABEL beginString - CREDITS_GROUP + IDNA_ERROR_LABEL_HAS_DOT beginString - CREDITS_MODULES + IDNA_ERROR_LABEL_TOO_LONG beginString - CREDITS_QA + IDNA_ERROR_LEADING_COMBINING_MARK beginString - CREDITS_SAPI + IDNA_ERROR_LEADING_HYPHEN beginString - CRNCYSTR + IDNA_ERROR_PUNYCODE beginString - CRYP + IDNA_ERROR_TRAILING_HYPHEN beginString - CRYPT_BLOWFISH + IDNA_NONTRANSITIONAL_TO_ASCII beginString - CRYPT_EXT_DES + IDNA_NONTRANSITIONAL_TO_UNICODE beginString - CRYPT_MD5 + if beginString - CRYPT_SALT_LENGTH + ILL_BADSTK beginString - CURRENCY_SYMBOL + ILL_COPROC beginString - D_FMT + ILL_ILLADR beginString - D_T_FMT + ILL_ILLOPC beginString - DAY_1 + ILL_ILLOPN beginString - DAY_2 + ILL_ILLTRP beginString - DAY_3 + ILL_PRVOPC beginString - DAY_4 + ILL_PRVREG beginString - DAY_5 + ImageFilledEllipse + ignoreCase + + regularExpression + beginString - DAY_6 + ImageSetBrush + ignoreCase + + regularExpression + beginString - DAY_7 + ImageSetPixel + ignoreCase + + regularExpression + beginString - DECIMAL_POINT + IMG_FILTER_PIXELATE beginString - declare + implements beginString - DEFAULT_INCLUDE_PATH + include beginString - DIRECTORY_SEPARATOR + include_once beginString - do + INFO_ALL + ignoreCase + + regularExpression + beginString - DOMDocument + INFO_CONFIGURATION + ignoreCase + + regularExpression + beginString - E_ALL + INFO_CREDITS ignoreCase regularExpression @@ -21428,7 +28252,7 @@ beginString - E_COMPILE_ERROR + INFO_ENVIRONMENT ignoreCase regularExpression @@ -21436,7 +28260,7 @@ beginString - E_COMPILE_WARNING + INFO_GENERAL ignoreCase regularExpression @@ -21444,7 +28268,7 @@ beginString - E_CORE_ERROR + INFO_LICENSE ignoreCase regularExpression @@ -21452,7 +28276,7 @@ beginString - E_CORE_WARNING + INFO_MODULES ignoreCase regularExpression @@ -21460,7 +28284,7 @@ beginString - E_ERROR + INFO_VARIABLES ignoreCase regularExpression @@ -21468,7 +28292,7 @@ beginString - E_NOTICE + INI_ALL ignoreCase regularExpression @@ -21476,7 +28300,7 @@ beginString - E_PARSE + INI_PERDIR ignoreCase regularExpression @@ -21484,11 +28308,15 @@ beginString - E_STRICT + INI_SCANNER_NORMAL beginString - E_USER + INI_SCANNER_RAW + + + beginString + INI_SYSTEM ignoreCase regularExpression @@ -21496,7 +28324,7 @@ beginString - E_USER_ERROR + INI_USER ignoreCase regularExpression @@ -21504,11 +28332,19 @@ beginString - E_USER_NOTICE + instanceof beginString - E_USER_WARNING + insteadof + + + beginString + int + + + beginString + INT_CURR_SYMBOL ignoreCase regularExpression @@ -21516,7 +28352,7 @@ beginString - E_WARNING + INT_FRAC_DIGITS ignoreCase regularExpression @@ -21524,31 +28360,55 @@ beginString - else + integer beginString - elseif + interface beginString - ENT_COMPAT + INTL_IDNA_VARIANT_2003 beginString - ENT_NOQUOTES + INTL_IDNA_VARIANT_UTS46 beginString - ENT_QUOTES + IP_MULTICAST_IF beginString - ERA + IP_MULTICAST_LOOP beginString - ERA_D_FMT + IP_MULTICAST_TTL + + + beginString + IPPROTO_IP + + + beginString + IPPROTO_IPV6 + + + beginString + IPV6_MULTICAST_HOPS + + + beginString + IPV6_MULTICAST_IF + + + beginString + IPV6_MULTICAST_LOOP + + + beginString + JDDayOfWeek ignoreCase regularExpression @@ -21556,7 +28416,7 @@ beginString - ERA_D_T_FMT + JDMonthName ignoreCase regularExpression @@ -21564,7 +28424,7 @@ beginString - ERA_T_FMT + JDToFrench ignoreCase regularExpression @@ -21572,7 +28432,7 @@ beginString - ERA_YEAR + JDToGregorian ignoreCase regularExpression @@ -21580,35 +28440,99 @@ beginString - exit + JDToJewish + ignoreCase + + regularExpression + beginString - EXTR_IF_EXISTS + JDToJulian + ignoreCase + + regularExpression + beginString - EXTR_OVERWRITE + JSON_BIGINT_AS_STRING beginString - EXTR_PREFIX_ALL + JSON_ERROR_CTRL_CHAR beginString - EXTR_PREFIX_IF_EXISTS + JSON_ERROR_DEPTH beginString - EXTR_PREFIX_INVALID + JSON_ERROR_NONE beginString - EXTR_PREFIX_SAME + JSON_ERROR_STATE_MISMATCH + + + beginString + JSON_ERROR_SYNTAX + + + beginString + JSON_FORCE_OBJECT + + + beginString + JSON_HEX_AMP + + + beginString + JSON_HEX_APOS + + + beginString + JSON_HEX_QUOT + + + beginString + JSON_HEX_TAG + + + beginString + JSON_NUMERIC_CHECK + + + beginString + JSON_PRETTY_PRINT + + + beginString + JSON_UNESCAPED_SLASHES + + + beginString + JSON_UNESCAPED_UNICODE + + + beginString + LC_ALL + ignoreCase + + regularExpression + + + + beginString + LC_COLLATE + ignoreCase + + regularExpression + beginString - EXTR_SKIP + LC_CTYPE ignoreCase regularExpression @@ -21616,15 +28540,23 @@ beginString - for + LC_MESSAGES + ignoreCase + + regularExpression + beginString - foreach + LC_MONETARY + ignoreCase + + regularExpression + beginString - FRAC_DIGITS + LC_NUMERIC ignoreCase regularExpression @@ -21632,7 +28564,7 @@ beginString - FrenchToJD + LC_TIME ignoreCase regularExpression @@ -21640,23 +28572,27 @@ beginString - function + LDAP_OPT_NETWORK_TIMEOUT beginString - global + LIBXML_HTML_NODEFDTD beginString - GregorianToJD - ignoreCase - - regularExpression - + LIBXML_HTML_NOIMPLIED beginString - GROUPING + LIBXML_LOADED_VERSION + + + beginString + LIBXML_PEDANTIC + + + beginString + LOCK_EX ignoreCase regularExpression @@ -21664,7 +28600,7 @@ beginString - HexDec + LOCK_NB ignoreCase regularExpression @@ -21672,7 +28608,7 @@ beginString - HTML_ENTITIES + LOCK_SH ignoreCase regularExpression @@ -21680,7 +28616,7 @@ beginString - HTML_SPECIALCHARS + LOCK_UN ignoreCase regularExpression @@ -21688,11 +28624,7 @@ beginString - if - - - beginString - ImageFilledEllipse + LOG_ALERT ignoreCase regularExpression @@ -21700,7 +28632,7 @@ beginString - ImageSetBrush + LOG_AUTH ignoreCase regularExpression @@ -21708,7 +28640,7 @@ beginString - ImageSetPixel + LOG_AUTHPRIV ignoreCase regularExpression @@ -21716,7 +28648,7 @@ beginString - INFO_ALL + LOG_CONS ignoreCase regularExpression @@ -21724,7 +28656,7 @@ beginString - INFO_CONFIGURATION + LOG_CRIT ignoreCase regularExpression @@ -21732,7 +28664,7 @@ beginString - INFO_CREDITS + LOG_CRON ignoreCase regularExpression @@ -21740,7 +28672,7 @@ beginString - INFO_ENVIRONMENT + LOG_DAEMON ignoreCase regularExpression @@ -21748,7 +28680,7 @@ beginString - INFO_GENERAL + LOG_DEBUG ignoreCase regularExpression @@ -21756,7 +28688,7 @@ beginString - INFO_LICENSE + LOG_EMERG ignoreCase regularExpression @@ -21764,7 +28696,7 @@ beginString - INFO_MODULES + LOG_ERR ignoreCase regularExpression @@ -21772,7 +28704,7 @@ beginString - INFO_VARIABLES + LOG_INFO ignoreCase regularExpression @@ -21780,7 +28712,7 @@ beginString - INI_ALL + LOG_KERN ignoreCase regularExpression @@ -21788,7 +28720,7 @@ beginString - INI_PERDIR + LOG_LOCAL0 ignoreCase regularExpression @@ -21796,7 +28728,7 @@ beginString - INI_SYSTEM + LOG_LOCAL1 ignoreCase regularExpression @@ -21804,7 +28736,7 @@ beginString - INI_USER + LOG_LOCAL2 ignoreCase regularExpression @@ -21812,7 +28744,7 @@ beginString - INT_CURR_SYMBOL + LOG_LOCAL3 ignoreCase regularExpression @@ -21820,7 +28752,7 @@ beginString - INT_FRAC_DIGITS + LOG_LOCAL4 ignoreCase regularExpression @@ -21828,7 +28760,7 @@ beginString - JDDayOfWeek + LOG_LOCAL5 ignoreCase regularExpression @@ -21836,7 +28768,7 @@ beginString - JDMonthName + LOG_LOCAL6 ignoreCase regularExpression @@ -21844,7 +28776,7 @@ beginString - JDToFrench + LOG_LOCAL7 ignoreCase regularExpression @@ -21852,7 +28784,7 @@ beginString - JDToGregorian + LOG_LPR ignoreCase regularExpression @@ -21860,7 +28792,7 @@ beginString - JDToJewish + LOG_MAIL ignoreCase regularExpression @@ -21868,7 +28800,7 @@ beginString - JDToJulian + LOG_NDELAY ignoreCase regularExpression @@ -21876,7 +28808,7 @@ beginString - LC_ALL + LOG_NEWS ignoreCase regularExpression @@ -21884,7 +28816,7 @@ beginString - LC_COLLATE + LOG_NOTICE ignoreCase regularExpression @@ -21892,7 +28824,7 @@ beginString - LC_CTYPE + LOG_NOWAIT ignoreCase regularExpression @@ -21900,7 +28832,7 @@ beginString - LC_MESSAGES + LOG_ODELAY ignoreCase regularExpression @@ -21908,7 +28840,7 @@ beginString - LC_MONETARY + LOG_PERROR ignoreCase regularExpression @@ -21916,7 +28848,7 @@ beginString - LC_NUMERIC + LOG_PID ignoreCase regularExpression @@ -21924,7 +28856,7 @@ beginString - LC_TIME + LOG_SYSLOG ignoreCase regularExpression @@ -21932,7 +28864,7 @@ beginString - LOCK_EX + LOG_USER ignoreCase regularExpression @@ -21940,7 +28872,7 @@ beginString - LOCK_NB + LOG_UUCP ignoreCase regularExpression @@ -21948,7 +28880,7 @@ beginString - LOCK_SH + LOG_WARNING ignoreCase regularExpression @@ -21956,7 +28888,7 @@ beginString - LOCK_UN + M_1_PI ignoreCase regularExpression @@ -21964,7 +28896,7 @@ beginString - LOG_ALERT + M_2_PI ignoreCase regularExpression @@ -21972,7 +28904,7 @@ beginString - LOG_AUTH + M_2_SQRTPI ignoreCase regularExpression @@ -21980,7 +28912,7 @@ beginString - LOG_AUTHPRIV + M_E ignoreCase regularExpression @@ -21988,7 +28920,11 @@ beginString - LOG_CONS + M_EULER + + + beginString + M_LN10 ignoreCase regularExpression @@ -21996,7 +28932,7 @@ beginString - LOG_CRIT + M_LN2 ignoreCase regularExpression @@ -22004,7 +28940,11 @@ beginString - LOG_CRON + M_LNPI + + + beginString + M_LOG10E ignoreCase regularExpression @@ -22012,7 +28952,7 @@ beginString - LOG_DAEMON + M_LOG2E ignoreCase regularExpression @@ -22020,7 +28960,7 @@ beginString - LOG_DEBUG + M_PI ignoreCase regularExpression @@ -22028,7 +28968,7 @@ beginString - LOG_EMERG + M_PI_2 ignoreCase regularExpression @@ -22036,7 +28976,7 @@ beginString - LOG_ERR + M_PI_4 ignoreCase regularExpression @@ -22044,7 +28984,7 @@ beginString - LOG_INFO + M_SQRT1_2 ignoreCase regularExpression @@ -22052,7 +28992,7 @@ beginString - LOG_KERN + M_SQRT2 ignoreCase regularExpression @@ -22060,7 +29000,39 @@ beginString - LOG_LOCAL0 + M_SQRT3 + + + beginString + M_SQRTPI + + + beginString + MCAST_BLOCK_SOURCE + + + beginString + MCAST_JOIN_GROUP + + + beginString + MCAST_JOIN_SOURCE_GROUP + + + beginString + MCAST_LEAVE_GROUP + + + beginString + MCAST_LEAVE_SOURCE_GROUP + + + beginString + MCAST_UNBLOCK_SOURCE + + + beginString + MON_1 ignoreCase regularExpression @@ -22068,7 +29040,7 @@ beginString - LOG_LOCAL1 + MON_10 ignoreCase regularExpression @@ -22076,7 +29048,7 @@ beginString - LOG_LOCAL2 + MON_11 ignoreCase regularExpression @@ -22084,7 +29056,7 @@ beginString - LOG_LOCAL3 + MON_12 ignoreCase regularExpression @@ -22092,7 +29064,7 @@ beginString - LOG_LOCAL4 + MON_2 ignoreCase regularExpression @@ -22100,7 +29072,7 @@ beginString - LOG_LOCAL5 + MON_3 ignoreCase regularExpression @@ -22108,7 +29080,7 @@ beginString - LOG_LOCAL6 + MON_4 ignoreCase regularExpression @@ -22116,7 +29088,7 @@ beginString - LOG_LOCAL7 + MON_5 ignoreCase regularExpression @@ -22124,7 +29096,7 @@ beginString - LOG_LPR + MON_6 ignoreCase regularExpression @@ -22132,7 +29104,7 @@ beginString - LOG_MAIL + MON_7 ignoreCase regularExpression @@ -22140,7 +29112,7 @@ beginString - LOG_NDELAY + MON_8 ignoreCase regularExpression @@ -22148,7 +29120,7 @@ beginString - LOG_NEWS + MON_9 ignoreCase regularExpression @@ -22156,7 +29128,7 @@ beginString - LOG_NOTICE + MON_DECIMAL_POINT ignoreCase regularExpression @@ -22164,7 +29136,7 @@ beginString - LOG_NOWAIT + MON_GROUPING ignoreCase regularExpression @@ -22172,7 +29144,7 @@ beginString - LOG_ODELAY + MON_THOUSANDS_SEP ignoreCase regularExpression @@ -22180,7 +29152,15 @@ beginString - LOG_PERROR + MSG_EAGAIN + + + beginString + MSG_ENOMSG + + + beginString + N_CS_PRECEDES ignoreCase regularExpression @@ -22188,7 +29168,7 @@ beginString - LOG_PID + N_SEP_BY_SPACE ignoreCase regularExpression @@ -22196,7 +29176,7 @@ beginString - LOG_SYSLOG + N_SIGN_POSN ignoreCase regularExpression @@ -22204,7 +29184,11 @@ beginString - LOG_USER + namespace + + + beginString + NEGATIVE_SIGN ignoreCase regularExpression @@ -22212,7 +29196,11 @@ beginString - LOG_UUCP + new + + + beginString + NOEXPR ignoreCase regularExpression @@ -22220,7 +29208,7 @@ beginString - LOG_WARNING + NOSTR ignoreCase regularExpression @@ -22228,7 +29216,7 @@ beginString - M_1_PI + NOTICE ignoreCase regularExpression @@ -22236,7 +29224,11 @@ beginString - M_2_PI + object + + + beginString + OCI-Collection ignoreCase regularExpression @@ -22244,7 +29236,7 @@ beginString - M_2_SQRTPI + OCI-Lob ignoreCase regularExpression @@ -22252,7 +29244,39 @@ beginString - M_E + OPENSSL_CIPHER_AES_128_CBC + + + beginString + OPENSSL_CIPHER_AES_192_CBC + + + beginString + OPENSSL_CIPHER_AES_256_CBC + + + beginString + OPENSSL_RAW_DATA + + + beginString + OPENSSL_VERSION_NUMBER + + + beginString + OPENSSL_VERSION_TEXT + + + beginString + OPENSSL_ZERO_PADDING + + + beginString + or + + + beginString + P_CS_PRECEDES ignoreCase regularExpression @@ -22260,7 +29284,7 @@ beginString - M_LN10 + P_SEP_BY_SPACE ignoreCase regularExpression @@ -22268,7 +29292,7 @@ beginString - M_LN2 + P_SIGN_POSN ignoreCase regularExpression @@ -22276,7 +29300,7 @@ beginString - M_LOG10E + PATHINFO_BASENAME ignoreCase regularExpression @@ -22284,7 +29308,7 @@ beginString - M_LOG2E + PATHINFO_DIRNAME ignoreCase regularExpression @@ -22292,7 +29316,7 @@ beginString - M_PI + PATHINFO_EXTENSION ignoreCase regularExpression @@ -22300,15 +29324,11 @@ beginString - M_PI_2 - ignoreCase - - regularExpression - + PATHINFO_FILENAME beginString - M_PI_4 + PEAR_EXTENSION_DIR ignoreCase regularExpression @@ -22316,7 +29336,7 @@ beginString - M_SQRT1_2 + PEAR_INSTALL_DIR ignoreCase regularExpression @@ -22324,7 +29344,7 @@ beginString - M_SQRT2 + PHP_BINDIR ignoreCase regularExpression @@ -22332,7 +29352,7 @@ beginString - MON_1 + PHP_CONFIG_FILE_PATH ignoreCase regularExpression @@ -22340,7 +29360,7 @@ beginString - MON_10 + PHP_DATADIR ignoreCase regularExpression @@ -22348,15 +29368,11 @@ beginString - MON_11 - ignoreCase - - regularExpression - + PHP_EOL beginString - MON_12 + PHP_EXTENSION_DIR ignoreCase regularExpression @@ -22364,7 +29380,7 @@ beginString - MON_2 + PHP_LIBDIR ignoreCase regularExpression @@ -22372,7 +29388,7 @@ beginString - MON_3 + PHP_LOCALSTATEDIR ignoreCase regularExpression @@ -22380,15 +29396,11 @@ beginString - MON_4 - ignoreCase - - regularExpression - + PHP_MAXPATHLEN beginString - MON_5 + PHP_OS ignoreCase regularExpression @@ -22396,23 +29408,15 @@ beginString - MON_6 - ignoreCase - - regularExpression - + PHP_OUTPUT_HANDLER_CLEAN beginString - MON_7 - ignoreCase - - regularExpression - + PHP_OUTPUT_HANDLER_CLEANABLE beginString - MON_8 + PHP_OUTPUT_HANDLER_CONT ignoreCase regularExpression @@ -22420,15 +29424,11 @@ beginString - MON_9 - ignoreCase - - regularExpression - + PHP_OUTPUT_HANDLER_DISABLED beginString - MON_DECIMAL_POINT + PHP_OUTPUT_HANDLER_END ignoreCase regularExpression @@ -22436,39 +29436,23 @@ beginString - MON_GROUPING - ignoreCase - - regularExpression - + PHP_OUTPUT_HANDLER_FINAL beginString - MON_THOUSANDS_SEP - ignoreCase - - regularExpression - + PHP_OUTPUT_HANDLER_FLUSH beginString - N_CS_PRECEDES - ignoreCase - - regularExpression - + PHP_OUTPUT_HANDLER_FLUSHABLE beginString - N_SEP_BY_SPACE - ignoreCase - - regularExpression - + PHP_OUTPUT_HANDLER_REMOVABLE beginString - N_SIGN_POSN + PHP_OUTPUT_HANDLER_START ignoreCase regularExpression @@ -22476,15 +29460,31 @@ beginString - NEGATIVE_SIGN - ignoreCase - - regularExpression - + PHP_OUTPUT_HANDLER_STARTED beginString - NOEXPR + PHP_OUTPUT_HANDLER_STDFLAGS + + + beginString + PHP_OUTPUT_HANDLER_WRITE + + + beginString + PHP_SESSION_ACTIVE + + + beginString + PHP_SESSION_DISABLED + + + beginString + PHP_SESSION_NONE + + + beginString + PHP_SYSCONFDIR ignoreCase regularExpression @@ -22492,7 +29492,7 @@ beginString - NOSTR + PHP_VERSION ignoreCase regularExpression @@ -22500,7 +29500,51 @@ beginString - NOTICE + PHP_WINDOWS_NT_DOMAIN_CONTROLLER + + + beginString + PHP_WINDOWS_NT_SERVER + + + beginString + PHP_WINDOWS_NT_WORKSTATION + + + beginString + PHP_WINDOWS_VERSION_BUILD + + + beginString + PHP_WINDOWS_VERSION_MAJOR + + + beginString + PHP_WINDOWS_VERSION_MINOR + + + beginString + PHP_WINDOWS_VERSION_PLATFORM + + + beginString + PHP_WINDOWS_VERSION_PRODUCTTYPE + + + beginString + PHP_WINDOWS_VERSION_SP_MAJOR + + + beginString + PHP_WINDOWS_VERSION_SP_MINOR + + + beginString + PHP_WINDOWS_VERSION_SUITEMASK + + + beginString + PM_STR ignoreCase regularExpression @@ -22508,7 +29552,31 @@ beginString - OCI-Collection + POLL_ERR + + + beginString + POLL_HUP + + + beginString + POLL_IN + + + beginString + POLL_MSG + + + beginString + POLL_OUT + + + beginString + POLL_PRI + + + beginString + POSITIVE_SIGN ignoreCase regularExpression @@ -22516,7 +29584,43 @@ beginString - OCI-Lob + PREG_BACKTRACK_LIMIT_ERROR + + + beginString + PREG_BAD_UTF8_ERROR + + + beginString + PREG_BAD_UTF8_OFFSET_ERROR + + + beginString + PREG_INTERNAL_ERROR + + + beginString + PREG_NO_ERROR + + + beginString + PREG_RECURSION_LIMIT_ERROR + + + beginString + private + + + beginString + protected + + + beginString + public + + + beginString + RADIXCHAR ignoreCase regularExpression @@ -22524,7 +29628,23 @@ beginString - P_CS_PRECEDES + real + + + beginString + require + + + beginString + require_once + + + beginString + return + + + beginString + SEEK_CUR ignoreCase regularExpression @@ -22532,7 +29652,7 @@ beginString - P_SEP_BY_SPACE + SEEK_END ignoreCase regularExpression @@ -22540,7 +29660,7 @@ beginString - P_SIGN_POSN + SEEK_SET ignoreCase regularExpression @@ -22548,31 +29668,71 @@ beginString - PATHINFO_BASENAME - ignoreCase - - regularExpression - + SEGV_ACCERR + + + beginString + SEGV_MAPERR + + + beginString + SI_ASYNCIO + + + beginString + SI_KERNEL + + + beginString + SI_MESGQ + + + beginString + SI_NOINFO + + + beginString + SI_QUEUE + + + beginString + SI_SIGIO + + + beginString + SI_TIMER + + + beginString + SI_TKILL + + + beginString + SI_USER + + + beginString + SIG_BLOCK + + + beginString + SIG_SETMASK + + + beginString + SIG_UNBLOCK beginString - PATHINFO_DIRNAME - ignoreCase - - regularExpression - + SNMP_OID_OUTPUT_FULL beginString - PATHINFO_EXTENSION - ignoreCase - - regularExpression - + SNMP_OID_OUTPUT_NUMERIC beginString - PEAR_EXTENSION_DIR + SORT_ASC ignoreCase regularExpression @@ -22580,7 +29740,7 @@ beginString - PEAR_INSTALL_DIR + SORT_DESC ignoreCase regularExpression @@ -22588,7 +29748,7 @@ beginString - PHP_BINDIR + SORT_NUMERIC ignoreCase regularExpression @@ -22596,7 +29756,7 @@ beginString - PHP_CONFIG_FILE_PATH + SORT_REGULAR ignoreCase regularExpression @@ -22604,7 +29764,7 @@ beginString - PHP_DATADIR + SORT_STRING ignoreCase regularExpression @@ -22612,11 +29772,11 @@ beginString - PHP_EOL + static beginString - PHP_EXTENSION_DIR + STR_PAD_BOTH ignoreCase regularExpression @@ -22624,7 +29784,7 @@ beginString - PHP_LIBDIR + STR_PAD_LEFT ignoreCase regularExpression @@ -22632,7 +29792,7 @@ beginString - PHP_LOCALSTATEDIR + STR_PAD_RIGHT ignoreCase regularExpression @@ -22640,171 +29800,103 @@ beginString - PHP_OS - ignoreCase - - regularExpression - + STREAM_META_ACCESS beginString - PHP_OUTPUT_HANDLER_CONT - ignoreCase - - regularExpression - + STREAM_META_GROUP beginString - PHP_OUTPUT_HANDLER_END - ignoreCase - - regularExpression - + STREAM_META_GROUP_NAME beginString - PHP_OUTPUT_HANDLER_START - ignoreCase - - regularExpression - + STREAM_META_OWNER beginString - PHP_SYSCONFDIR - ignoreCase - - regularExpression - + STREAM_META_OWNER_NAME beginString - PHP_VERSION - ignoreCase - - regularExpression - + STREAM_META_TOUCH beginString - PM_STR - ignoreCase - - regularExpression - + STREAM_SHUT_RD beginString - POSITIVE_SIGN - ignoreCase - - regularExpression - + STREAM_SHUT_RDWR beginString - RADIXCHAR - ignoreCase - - regularExpression - + STREAM_SHUT_WR beginString - return + string beginString - SEEK_CUR - ignoreCase - - regularExpression - + SWF_SOUND_11KHZ beginString - SEEK_END - ignoreCase - - regularExpression - + SWF_SOUND_16BITS beginString - SEEK_SET - ignoreCase - - regularExpression - + SWF_SOUND_22KHZ beginString - SORT_ASC - ignoreCase - - regularExpression - + SWF_SOUND_44KHZ beginString - SORT_DESC - ignoreCase - - regularExpression - + SWF_SOUND_5KHZ beginString - SORT_NUMERIC - ignoreCase - - regularExpression - + SWF_SOUND_8BITS beginString - SORT_REGULAR - ignoreCase - - regularExpression - + SWF_SOUND_ADPCM_COMPRESSED beginString - SORT_STRING - ignoreCase - - regularExpression - + SWF_SOUND_MONO beginString - SQLITE_ASSOC + SWF_SOUND_MP3_COMPRESSED beginString - STR_PAD_BOTH - ignoreCase - - regularExpression - + SWF_SOUND_NELLY_COMPRESSED beginString - STR_PAD_LEFT - ignoreCase - - regularExpression - + SWF_SOUND_NOT_COMPRESSED beginString - STR_PAD_RIGHT - ignoreCase - - regularExpression - + SWF_SOUND_NOT_COMPRESSED_LE + + + beginString + SWF_SOUND_STEREO + + + beginString + SWFTEXTFIELD_AUTOSIZE + + + beginString + SWFTEXTFIELD_USEFONT beginString @@ -22850,10 +29942,54 @@ regularExpression + + beginString + throw + + + beginString + trait + + + beginString + TRAP_BRKPT + + + beginString + TRAP_TRACE + + + beginString + try + + + beginString + U_IDNA_DOMAIN_NAME_TOO_LONG_ERROR + + + beginString + unset + + + beginString + UPLOAD_ERR_EXTENSION + + + beginString + use + + + beginString + var + beginString while + + beginString + xor + beginString YESEXPR @@ -22870,38 +30006,121 @@ regularExpression + + beginString + yield + + + beginString + ZLIB_ENCODING_DEFLATE + + + beginString + ZLIB_ENCODING_GZIP + + + beginString + ZLIB_ENCODING_RAW + numbersArray - + + + beginString + \b-?0b[01]+\b + regularExpression + + + + beginString + \b-?0x[0-9a-f]+\b + ignoreCase + + regularExpression + + + + beginString + \b-?\d*\.?\d+\b + regularExpression + + + outlineMenuArray beginString - ^([[:blank:]]*)(function)\s*([^{]*)(?={) + ^([\t ]*)(((?:(?:final|static|public|protected|private)[\t ]+)+)function)\s*([^{;]*)(?=[{;]) + ignoreCase + + keyString + $3: $4 + underline + + + + beginString + ^([\t ]*)(abstract (public|protected|private)[\t ]+function)\s*([^{;]*)(?=[{;]) + ignoreCase + + italic + keyString - $1$2 : $3 + abstract $3: $4 beginString - ^([[:blank:]]*)(private function)\s*([^{]*)(?={) + ^([\t ]*)(function)\s*([^{]*)(?={) + ignoreCase + + keyString + $3 beginString - ^([[:blank:]]*)(protected function)\s*([^{]*)(?={) + ^[\t ]*((?:final[\t ]+)?class)[\t ]+(.*)\{ + bold + + ignoreCase + + italic + + keyString + $1: $2 beginString - ^([[:blank:]]*)(public function)\s*([^{]*)(?={) + ^[\t ]*(abstract class)[\t ]+(.*)\{ + bold + + ignoreCase + + italic + + keyString + $1: $2 beginString - ^[\t ]*(class)(.*)$ + ^[\t ]*(interface)[\t ]+(.*)\{ + bold + ignoreCase + + italic + keyString + $1: $2 + + + beginString + ^[\t ]*(trait)[\t ]+(.*)\{ + ignoreCase + italic keyString - $1 : $2 + $1: $2 stringsArray @@ -22921,12 +30140,18 @@ beginString - \$[a-zA-Z_¥x7f-¥xff][a-zA-Z0-9_¥x7f-¥xff]* + &?\$[a-zA-Z_¥x7f-¥xff][a-zA-Z0-9_¥x7f-¥xff]* ignoreCase regularExpression + + beginString + (?<=->)\s*[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*+(?!\s*\() + regularExpression + + diff --git a/SyntaxColorings/defaultSyntaxStyle_Python.plist b/SyntaxColorings/defaultSyntaxStyle_Python.plist old mode 100644 new mode 100755 index 1f380d0fc5..81509e27d0 --- a/SyntaxColorings/defaultSyntaxStyle_Python.plist +++ b/SyntaxColorings/defaultSyntaxStyle_Python.plist @@ -1,15 +1,29 @@ - + charactersArray commandsArray + + beginString + @(?:\w|\.)+ + regularExpression + + + + beginString + @abstractmethod + beginString @classmethod + + beginString + @property + beginString @staticmethod @@ -66,6 +80,14 @@ beginString __delslice__ + + beginString + __dict__ + + + beginString + __dir__ + beginString __div__ @@ -74,10 +96,18 @@ beginString __divmod__ + + beginString + __enter__ + beginString __eq__ + + beginString + __exit__ + beginString __float__ @@ -86,6 +116,10 @@ beginString __floatdiv__ + + beginString + __format__ + beginString __ge__ @@ -106,10 +140,18 @@ beginString __getitem__ + + beginString + __getnewargs__ + beginString __getslice__ + + beginString + __getstate__ + beginString __gt__ @@ -274,6 +316,14 @@ beginString __rdivmod__ + + beginString + __reduce__ + + + beginString + __reduce_ex__ + beginString __repr__ @@ -338,6 +388,10 @@ beginString __setslice__ + + beginString + __setstate__ + beginString __str__ @@ -346,6 +400,10 @@ beginString __sub__ + + beginString + __subclasses__ + beginString __truediv__ @@ -366,13 +424,33 @@ beginString add + + beginString + all + + + beginString + any + beginString append beginString - apply + as_integer_ratio + + + beginString + ascii + + + beginString + bin + + + beginString + bit_length beginString @@ -380,7 +458,11 @@ beginString - buffer + bytearray + + + beginString + bytes beginString @@ -390,6 +472,14 @@ beginString capitalize + + beginString + casefold + + + beginString + cast + beginString center @@ -414,10 +504,6 @@ beginString cmp - - beginString - coerce - beginString compile @@ -486,6 +572,10 @@ beginString eval + + beginString + exec + beginString execfile @@ -522,6 +612,22 @@ beginString flush + + beginString + format + + + beginString + format_map + + + beginString + from_bytes + + + beginString + fromhex + beginString fromkeys @@ -538,6 +644,18 @@ beginString getattr + + beginString + getboolean + + + beginString + getfloat + + + beginString + getint + beginString globals @@ -588,15 +706,15 @@ beginString - intern + intersection beginString - intersection + intersection_update beginString - intersection_update + is_integer beginString @@ -610,10 +728,18 @@ beginString isatty + + beginString + isdecimal + beginString isdigit + + beginString + isdisjoint + beginString isinstance @@ -622,6 +748,10 @@ beginString islower + + beginString + isnumeric + beginString isspace @@ -702,6 +832,10 @@ beginString lstrip + + beginString + maketrans + beginString map @@ -710,10 +844,18 @@ beginString max + + beginString + memoryview + beginString min + + beginString + mro + beginString next @@ -734,6 +876,10 @@ beginString ord + + beginString + partition + beginString pop @@ -746,6 +892,12 @@ beginString pow + + beginString + print(?![\t ]*(\w|['"])) + regularExpression + + beginString property @@ -774,6 +926,10 @@ beginString reduce + + beginString + release + beginString reload @@ -814,6 +970,10 @@ beginString round + + beginString + rpartition + beginString rsplit @@ -902,6 +1062,14 @@ beginString title + + beginString + to_bytes + + + beginString + tolist + beginString translate @@ -946,6 +1114,18 @@ beginString vars + + beginString + viewitems + + + beginString + viewkeys + + + beginString + viewvalues + beginString write @@ -1037,10 +1217,6 @@ beginString except - - beginString - exec - beginString finally @@ -1077,6 +1253,10 @@ beginString lambda + + beginString + nonlocal + beginString not @@ -1092,6 +1272,8 @@ beginString print + regularExpression + beginString @@ -1109,6 +1291,10 @@ beginString while + + beginString + with + beginString yield @@ -1118,7 +1304,15 @@ beginString - (\b\d+\.|(\b\d+)?\.\d+)(e[+-]?\d+)?j? + ((?<!\w)|[-+])(?:\.\d+|\d+\.|\d+\.\d+|\d+)(e[+-]?\d+)?[jl]? + ignoreCase + + regularExpression + + + + beginString + \b0b[01]+l? ignoreCase regularExpression @@ -1126,7 +1320,7 @@ beginString - \b(0[0-7]+|[1-9]\d*|0)(e[+-]?\d+|l)?j?\b + \b0o[0-7]+l? ignoreCase regularExpression @@ -1134,7 +1328,7 @@ beginString - \b0x[\da-f]+l?\b + \b0x[0-9a-f]+l? ignoreCase regularExpression @@ -1145,7 +1339,7 @@ beginString - ^([\t ]*)class[\t ]+(.+?)$ + ^([\t ]*)class[\t ]+(.+?):?[\t]*$ bold keyString @@ -1155,8 +1349,8 @@ beginString - ^([\t ]*)def[\t ]+(.+?)$ - italic + ^([\t ]*)def[\t ]+(.+?):?[\t]*$ + ignoreCase keyString $1$2 @@ -1166,52 +1360,62 @@ beginString - (r|u|ur)?"""(.|[\r\n])*?""" - ignoreCase - - regularExpression - + " + endString + " beginString - (r|u|ur)?"(\\.|[^"\r\n])*?" - ignoreCase - - regularExpression - + """ + endString + """ beginString - (r|u|ur)?'''(.|[\r\n])*?''' - ignoreCase - - regularExpression - + ' + endString + ' + + + beginString + ''' + endString + ''' beginString - (r|u|ur)?'(\\.|[^'\r\n])*?' + \b(r|u|ur)['"] ignoreCase regularExpression + + beginString + ` + endString + ` + styleName Python valuesArray + + beginString + __all__ + beginString __bases__ beginString - __class__ + __cached__ beginString - __dict__ + __class__ beginString @@ -1221,6 +1425,10 @@ beginString __file__ + + beginString + __loader__ + beginString __metaclass__ @@ -1233,6 +1441,10 @@ beginString __name__ + + beginString + __package__ + beginString __self__ @@ -1249,6 +1461,10 @@ beginString closed + + beginString + cls + beginString Ellipsis @@ -1309,10 +1525,6 @@ beginString mode - - beginString - name - beginString newlines diff --git a/SyntaxColorings/defaultSyntaxStyle_Scala.plist b/SyntaxColorings/defaultSyntaxStyle_Scala.plist new file mode 100644 index 0000000000..5fbee7db4f --- /dev/null +++ b/SyntaxColorings/defaultSyntaxStyle_Scala.plist @@ -0,0 +1,387 @@ + + + + + charactersArray + + + beginString + ' + endString + ' + + + commandsArray + + + beginString + Array + + + beginString + Boolean + + + beginString + Byte + + + beginString + Char + + + beginString + Double + + + beginString + Float + + + beginString + Int + + + beginString + Long + + + beginString + Short + + + beginString + String + + + beginString + Unit + + + commentsArray + + + beginString + /* + endString + */ + + + beginString + //.* + regularExpression + + + + completionsArray + + extensions + + + keyString + scala + + + keywordsArray + + + beginString + # + + + beginString + : + + + beginString + <% + + + beginString + <- + + + beginString + <: + + + beginString + = + + + beginString + => + + + beginString + >: + + + beginString + @ + + + beginString + _ + + + beginString + abstract + + + beginString + case + + + beginString + catch + + + beginString + class + + + beginString + def + + + beginString + do + + + beginString + else + + + beginString + eq + + + beginString + extends + + + beginString + final + + + beginString + finally + + + beginString + for + + + beginString + forSome + + + beginString + if + + + beginString + implicit + + + beginString + import + + + beginString + lazy + + + beginString + match + + + beginString + ne + + + beginString + new + + + beginString + object + + + beginString + override + + + beginString + package + + + beginString + private + + + beginString + protected + + + beginString + return + + + beginString + sealed + + + beginString + super + + + beginString + this + + + beginString + throw + + + beginString + trait + + + beginString + try + + + beginString + type + + + beginString + val + + + beginString + var + + + beginString + while + + + beginString + with + + + beginString + yield + + + numbersArray + + + beginString + ((?<!\w)|[-+])(?:\.\d+|\d+\.|\d+\.\d+|\d+)(e[+-]?\d+)?[fd]? + ignoreCase + + regularExpression + + + + beginString + \b0x[0-9a-f]+l?\b + ignoreCase + + regularExpression + + + + beginString + \b\d+l?\b + ignoreCase + + regularExpression + + + + outlineMenuArray + + + beginString + ^([\t ]*)(?:(final|protected|private|override)\s+)*(def)\s+(\w+(?:\(.*\))?) + keyString + $1$4 + + + beginString + ^([\t ]*)(?:(final|protected|private|sealed|case)\s+)*(class|object|trait)\s+(\w+) + bold + + keyString + $1$3 $4 + + + beginString + ^([\t ]*)(?:abstract\s+)(?:(final|protected|private)\s+)*(def)\s+(\w+(?:\(.*\))?) + italic + + keyString + $1$4 + + + beginString + ^([\t ]*)(?:abstract\s+)(?:(final|protected|private|sealed|case)\s+)*(class|object|trait)\s+(\w+) + bold + + italic + + keyString + $1$3 $4 + + + stringsArray + + + beginString + " + endString + " + + + beginString + """ + endString + """ + + + styleName + Scala + valuesArray + + + beginString + false + + + beginString + null + + + beginString + super(?=\.) + regularExpression + + + + beginString + this(?=\.) + regularExpression + + + + beginString + true + + + + diff --git a/SyntaxColorings/defaultSyntaxStyle_XML.plist b/SyntaxColorings/defaultSyntaxStyle_XML.plist new file mode 100644 index 0000000000..9aea6749a7 --- /dev/null +++ b/SyntaxColorings/defaultSyntaxStyle_XML.plist @@ -0,0 +1,334 @@ + + + + + charactersArray + + + beginString + %[^&%"]+;(?=[^<>]*[\[>]) + regularExpression + + + + beginString + (?<!\w)'[^']*?'(?=[^<>]*>) + regularExpression + + + + beginString + <![CDATA[ + endString + ]]> + + + commandsArray + + + beginString + (?<=<)![A-Z]* + ignoreCase + + regularExpression + + + + beginString + (?<=<)\?[[:alnum:]_\-.:]+ + regularExpression + + + + beginString + \?(?=>) + regularExpression + + + + commentsArray + + + beginString + (?#for SGML DTD)--(?:-[^-]|[^-])*--(?=[^<>]*>) + regularExpression + + + + beginString + <!-- + endString + --> + regularExpression + + + + completionsArray + + extensions + + + keyString + xml + + + keyString + xsl + + + keyString + dtd + + + keyString + xslt + + + keyString + xsd + + + keyString + rlx + + + keyString + rng + + + keyString + trex + + + keyString + fo + + + keyString + fob + + + keyString + svg + + + keyString + mml + + + keyString + gml + + + keyString + cml + + + keyString + opf + + + keyString + ncx + + + keyString + xul + + + keyString + zul + + + keyString + smil + + + keyString + smi + + + keyString + mxml + + + keyString + rss + + + keyString + rdf + + + keyString + atom + + + keyString + plist + + + keyString + xib + + + keyString + xmp + + + keywordsArray + + + beginString + (?<=</?)[[:alnum:]_\-.:]+(?=[[:space:]/>]) + regularExpression + + + + beginString + (?<=[[:space:](|,])[[:alnum:]_\-.:%]+(?=[[:space:])|,]?[^<>\[]*[>\[]) + regularExpression + + + + numbersArray + + + beginString + (?#for SGML DTD)(?<!ATTLIST)\s+[O\-]\s+[O\-](?=\s[^<>]*>) + regularExpression + + + + beginString + (?<=</?)[[:alnum:]_\-.]+:(?=\w) + regularExpression + + + + beginString + (?<=\b)[[:alnum:]_\-.]+:(?=\w[^<>]*>) + regularExpression + + + + beginString + (?<=\s)[[:alnum:]_\-.]+:(?=(\w|[\-.])+\s*=) + regularExpression + + + + outlineMenuArray + + stringsArray + + + beginString + " + endString + " + + + beginString + &\S+?; + regularExpression + + + + beginString + (?<=NDATA)\s+[[:alnum:]_\-.]+(?=\s*>) + regularExpression + + + + styleName + XML + valuesArray + + + beginString + (?#for SGML DTD)(?<=\s)(?:SDATA|RCDATA|NAME|NUMBER|#CONREF|#SUBDOC)(?=[^<>]*>) + regularExpression + + + + beginString + (?<=[(|])#PCDATA(?=\b) + regularExpression + + + + beginString + (?<=\[)\s*(?:IGNORE|INCLUDE)\s*(?=\[) + regularExpression + + + + beginString + (?<=\s)#(?:FIXED|IMPLIED|REQUIRED)(?=[^<>]*>) + regularExpression + + + + beginString + (?<=\s)(?:ANY|EMPTY)(?=[^<>]*>) + regularExpression + + + + beginString + (?<=\s)(?:PUBLIC|SYSTEM)(?=\s+["']) + regularExpression + + + + beginString + (?<=\s)[[:alnum:]_\-.:]+(?=\s*=) + regularExpression + + + + beginString + (?<=\s)CDATA(?=[^<>]*>) + regularExpression + + + + beginString + (?<=\s)ENTIT(?:Y|IES)(?=[^<>]*>) + regularExpression + + + + beginString + (?<=\s)ID(?=[^<>]*>) + regularExpression + + + + beginString + (?<=\s)IDREFS?(?=[^<>]*>) + regularExpression + + + + beginString + (?<=\s)NDATA(?=[^<>]*>) + regularExpression + + + + beginString + (?<=\s)NMTOKENS?(?=[^<>]*>) + regularExpression + + + + beginString + (?<=\s)NOTATION(?=[^<>]*>) + regularExpression + + + + + diff --git a/constants.h b/constants.h index c8eeb1b3f1..95f95fc0e2 100644 --- a/constants.h +++ b/constants.h @@ -3,8 +3,9 @@ constants (for CotEditor) -Copyright (C) 2004-2007 nakamuxu. -http://www.aynimac.com/ + Copyright (C) 2004-2007 nakamuxu. + Copyright (C) 2011, 2014 CotEditor Project + http://coteditor.github.io ================================================= encoding="UTF-8" @@ -123,7 +124,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #define k_key_insertCustomText @"insertCustomText" //------ 以下、隠し設定 ------ //(隠し設定の値は CEAppController の initialize で設定している) -#define k_key_statusBarFontName @"statusAreaFontName" #define k_key_statusBarFontSize @"statusAreaFontSize" #define k_key_lineNumFontName @"lineNumFontName" #define k_key_lineNumFontSize @"lineNumFontSize" @@ -262,22 +262,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #define k_scriptMenuTag 800 // Help Document Menu tag and path -static struct { - int tag; - NSString *path; -} k_bundleDocumentList[] = { - {100, @"/GPL.txt"}, - {101, @"/OgreKit License.txt"}, - {200, @"/EN/ReadMe-en.rtf"}, - {201, @"/EN/History-en.rtf"}, - {202, @"/EN/Known_problems-en.rtf"}, - {300, @"/JP/ReadMe-jp.rtf"}, - {301, @"/JP/History-jp.rtf"}, - {302, @"/JP/Known_problems-jp.rtf"}, - {303, @"/JP/To_ATOK_Users-jp.rtf"}, - {304, @"/JP/To_0.7.x_Users-jp.rtf"}, - {0, nil} -}; +#define k_bundleDocumentDict @{@101:@"Acknowledgements", @200:@"ReadMe", @201:@"Version History"} // Goto window object index #define k_gotoCharacterIndex 0 @@ -306,7 +291,6 @@ static struct { #define k_outlineMenuLeftMargin 70.0 #define k_outlineMenuWidth 300.0 #define k_outlineButtonWidth 20.0 -#define k_splitDividerThickness 7.0 #define k_outlineMenuSeparatorSymbol @"-" @@ -358,6 +342,9 @@ static struct { // Help anchors #define k_helpPrefAnchors @"pref_general", @"pref_window", @"pref_appearance", @"pref_format", @"pref_syntax", @"pref_filedrop", @"pref_keybinding", @"pref_print" +// distribution web site +#define k_webSiteURL @"http://coteditor.github.io" + // tab item view tag #define k_prefTabItemViewTag 3000 @@ -421,11 +408,6 @@ static struct { #define k_docWindowToolbarID @"docWindowToolbarID" #define k_getInfoItemID @"searchFieldItemID" #define k_showIncompatibleCharItemID @"showIncompatibleCharItemID" -#define k_preferencesItemID @"preferencesItemID" -#define k_saveItemID @"saveItemID" -#define k_saveAsItemID @"saveAsItemID" -#define k_pageSetupItemID @"pageSetupItemID" -#define k_openTransparencyPanelItemID @"openTransparencyPanelItemID" #define k_biggerFontItemID @"biggerFontItemID" #define k_smallerFontItemID @"smallerFontItemID" #define k_shiftLeftItemID @"shiftLeftItemID" @@ -502,15 +484,14 @@ static CFStringEncodings k_CFStringEncodingList[] = { kCFStringEncodingWindowsLatin2, // Central European (Windows Latin 2) kCFStringEncodingNextStepLatin, // Western (NextStep) kCFStringEncodingNonLossyASCII, // Non-lossy ASCII -}; + kCFStringEncodingInvalidId, // ---------- // Encodings available 10.4 and later (CotEditor added in 0.8.0) -static CFStringEncodings k_CFStringEncoding10_4List[] = { - 0x10000100, // kCFStringEncodingUTF16BE - 0x14000100, // kCFStringEncodingUTF16LE - 0x0c000100, // kCFStringEncodingUTF32 - 0x18000100, // kCFStringEncodingUTF32BE - 0x1c000100, // kCFStringEncodingUTF32LE + kCFStringEncodingUTF16BE, // Unicode (UTF-16BE) + kCFStringEncodingUTF16LE, // Unicode (UTF-16LE) + kCFStringEncodingUTF32, // Unicode (UTF-32) + kCFStringEncodingUTF32BE, // Unicode (UTF-32BE) + kCFStringEncodingUTF32LE, // Unicode (UTF-16LE) }; // Encodings to convert Yen mark to back-slash @@ -541,7 +522,7 @@ static unichar k_invisibleTabCharList[] = {0x00AC, 0x21E5, 0x2023, 0x25B9}; static unichar k_invisibleNewLineCharList[] = {0x00B6, 0x21A9, 0x21B5, 0x23CE}; static unichar k_invisibleFullwidthSpaceCharList[] = {0x25A1, 0x22A0, 0x25A0, 0x2022}; -static unsigned int k_modifierKeysList[] = +static NSUInteger k_modifierKeysList[] = {NSControlKeyMask, NSAlternateKeyMask, NSShiftKeyMask, NSCommandKeyMask}; static unichar k_keySpecCharList[] = {0x005E, 0x007E, 0x0024, 0x0040}; // == "^~$@" static unichar k_readableKeyStringsList[] = {0x005E, 0x2325, 0x21E7, 0x2318}; diff --git a/credits/Credits.rtf b/credits/Credits.rtf deleted file mode 100644 index aef19d452b..0000000000 --- a/credits/Credits.rtf +++ /dev/null @@ -1,307 +0,0 @@ -{\rtf1\ansi\ansicpg932\cocoartf1138\cocoasubrtf230 -\readonlydoc1{\fonttbl\f0\fnil\fcharset0 LucidaGrande;\f1\fswiss\fcharset0 Helvetica;\f2\fnil\fcharset0 Monaco; -} -{\colortbl;\red255\green255\blue255;\red26\green26\blue255;} -\vieww11040\viewh9000\viewkind0 -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720 - -\f0\b\fs20 \cf0 If you have any feedback, please contact usami-k.\ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc -\cf0 : : : : : -\b0 \ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720 - -\b \cf0 \ -Written by: -\b0 \ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720 -\cf0 usami-k (usami.kosuke@gmail.com)\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720 -{\field{\*\fldinst{HYPERLINK "https://plus.google.com/109260129585192559905/about"}}{\fldrslt \cf2 \ul \ulc2 https://plus.google.com/109260129585192559905/about}}\cf2 \ul \ulc2 \ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720 -\cf0 \ulnone nakamuxu\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720 -{\field{\*\fldinst{HYPERLINK "http://www.aynimac.com/"}}{\fldrslt \cf2 \ul http://www.aynimac.com/}}\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720 - -\b \cf0 \ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc -\cf0 : : : : : -\b0 \ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720 - -\b \cf0 \ -App, Documents Icon Design & Testing: -\b0 \ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720 -\cf0 kaz\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720 -{\field{\*\fldinst{HYPERLINK "http://jamlog.podzone.org/"}}{\fldrslt \cf2 \ul http://jamlog.podzone.org/}}\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720 -\cf0 \ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720 - -\b \cf0 Toolbar, Pref Icon Design & \ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural -\cf0 localization to English & Testing: -\b0 \ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720 -\cf0 Y.Yamamoto\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720 -\cf0 \ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720 - -\b \cf0 Script files written by: -\b0 \ -\pard\tx720\tx1280\tx1840\tx2400\tx2960\tx3520\tx4080\tx4640\tx5200\tx5760\tx6320\tx6880\tx7440\li720\fi-280 - -\b \cf0 \'95 -\b0 Ruby (Template) -\b \ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720 - -\b0 \cf0 s.sawada\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720 -{\field{\*\fldinst{HYPERLINK "http://www.mouseup.net/diary/"}}{\fldrslt \cf2 \ul http://www.mouseup.net/diary/}}\ -\pard\tx720\tx1280\tx1840\tx2400\tx2960\tx3520\tx4080\tx4640\tx5200\tx5760\tx6320\tx6880\tx7440\li720\fi-280 - -\b \cf0 \'95 -\b0 Ruby (Ruby_scripts) -\b \ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720 - -\b0 \cf0 yosito\ -\pard\tx720\tx1280\tx1840\tx2400\tx2960\tx3520\tx4080\tx4640\tx5200\tx5760\tx6320\tx6880\tx7440\li720\fi-280 - -\b \cf0 \'95 -\b0 Python -\b \ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720 - -\b0 \cf0 Yuhei Kuratomi\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720 -{\field{\*\fldinst{HYPERLINK "http://www.tomapd.net/blog"}}{\fldrslt \cf0 http://www.tomapd.net/blog}} -\f1\fs24 \ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720 - -\f0\fs20 \cf0 \ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural - -\b \cf0 Localization technical assist,\ - Original JP localization dictionary & \ - Original Help files (JP) written by:\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720 - -\b0 \cf0 Hiroto Sakai -\f2\fs24 \ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720 -{\field{\*\fldinst{HYPERLINK "http://www.fan.gr.jp/~sakai/"}}{\fldrslt -\f0\fs20 \cf0 http://www.fan.gr.jp/~sakai/}} -\f0\b\fs20 \ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720 -\cf0 \ -More better Line number view,\ - Text coloring, Completion &\ - "Getting ModKey with Menu" written by:\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720 - -\b0 \cf0 Hetima\ -\pard\tx1280\tx1840\tx2400\tx2960\tx3520\tx4080\tx4640\tx5200\tx5760\tx6320\tx6880\tx7440\li720 -{\field{\*\fldinst{HYPERLINK "http://hetima.com/"}}{\fldrslt \cf0 http://hetima.com/}} -\b \ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720 -\cf0 \ -More better "Completion pop-up" written by:\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720 - -\b0 \cf0 Haruka Kataoka\ -\pard\tx1280\tx1840\tx2400\tx2960\tx3520\tx4080\tx4640\tx5200\tx5760\tx6320\tx6880\tx7440\li720 -{\field{\*\fldinst{HYPERLINK "http://drumsoft.com/"}}{\fldrslt \cf0 http://drumsoft.com/}} -\b \ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720 -\cf0 \ -Syntax Style files written by:\ -\pard\tx720\tx1280\tx1840\tx2400\tx2960\tx3520\tx4080\tx4640\tx5200\tx5760\tx6320\tx6880\tx7440\li720\fi-280 -\cf0 \'95 -\b0 "PHP" -\b \ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720 - -\b0 \cf0 kaz\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720 -{\field{\*\fldinst{HYPERLINK "http://pbx.homeunix.org/jam_log/"}}{\fldrslt \cf2 \ul http://pbx.homeunix.org/jam_log/}}\ -\pard\tx720\tx1280\tx1840\tx2400\tx2960\tx3520\tx4080\tx4640\tx5200\tx5760\tx6320\tx6880\tx7440\li720\fi-280 - -\b \cf0 \'95 -\b0 "C, C++, Objective-C", "Java" -\b \ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720 - -\b0 \cf0 Hiroto Sakai -\f2\fs24 \ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720 -{\field{\*\fldinst{HYPERLINK "http://www.fan.gr.jp/~sakai/"}}{\fldrslt -\f0\fs20 \cf0 http://www.fan.gr.jp/~sakai/}} -\f0\b\fs20 \ -\pard\tx720\tx1280\tx1840\tx2400\tx2960\tx3520\tx4080\tx4640\tx5200\tx5760\tx6320\tx6880\tx7440\li720\fi-280 -\cf0 \'95 -\b0 "LaTeX" -\b \ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720 - -\b0 \cf0 Yuhei Kuratomi\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720 -{\field{\*\fldinst{HYPERLINK "http://www.tomapd.net/blog"}}{\fldrslt \cf0 http://www.tomapd.net/blog}} -\f1\fs24 \ -\pard\tx720\tx1280\tx1840\tx2400\tx2960\tx3520\tx4080\tx4640\tx5200\tx5760\tx6320\tx6880\tx7440\li720\fi-280 - -\f0\b\fs20 \cf0 \'95 -\b0 "Ruby", "eRuby" -\b \ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720 - -\b0 \cf0 Y.Tokutomi\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720 -{\field{\*\fldinst{HYPERLINK "http://d.hatena.ne.jp/Tommy1/"}}{\fldrslt \cf0 http://d.hatena.ne.jp/Tommy1/}} -\f1\fs24 \ -\pard\tx720\tx1280\tx1840\tx2400\tx2960\tx3520\tx4080\tx4640\tx5200\tx5760\tx6320\tx6880\tx7440\li720\fi-280 - -\f0\b\fs20 \cf0 \'95 -\b0 "Haskell" -\b \ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720 - -\b0 \cf0 konn\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720 -{\field{\*\fldinst{HYPERLINK "http://d.hatena.ne.jp/mr_konn/"}}{\fldrslt \cf0 http://d.hatena.ne.jp/mr_konn/}} -\f1\fs24 \ -\pard\tx720\tx1280\tx1840\tx2400\tx2960\tx3520\tx4080\tx4640\tx5200\tx5760\tx6320\tx6880\tx7440\li720\fi-280 - -\f0\b\fs20 \cf0 \'95 -\b0 "Python" -\b \ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720 - -\b0 \cf0 nanasiya\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720 -{\field{\*\fldinst{HYPERLINK "http://mahonet.info/~nanasiya/"}}{\fldrslt \cf0 http://mahonet.info/~nanasiya/}} -\f1\fs24 \ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720 - -\f0\b\fs20 \cf0 \ -This product includes: -\b0 \ -\pard\tx720\tx1280\tx1840\tx2400\tx2960\tx3520\tx4080\tx4640\tx5200\tx5760\tx6320\tx6880\tx7440\li720\fi-280 - -\b \cf0 \'95 -\b0 OgreKit -\b \ -\pard\tx1280\tx1840\tx2400\tx2960\tx3520\tx4080\tx4640\tx5200\tx5760\tx6320\tx6880\tx7440\li720 -{\field{\*\fldinst{HYPERLINK "http://www8.ocn.ne.jp/~sonoisa/OgreKit/"}}{\fldrslt -\b0 \cf2 \ul http://www8.ocn.ne.jp/~sonoisa/OgreKit/}} -\b0 \cf2 \ul \ -\pard\tx1280\tx1840\tx2400\tx2960\tx3520\tx4080\tx4640\tx5200\tx5760\tx6320\tx6880\tx7440\li720 - -\b \cf0 \ulnone -\b0 Copyright \'a9 2003 Isao Sonobe -\b \ -\pard\tx720\tx1280\tx1840\tx2400\tx2960\tx3520\tx4080\tx4640\tx5200\tx5760\tx6320\tx6880\tx7440\li720\fi-280 -\cf0 \'95 -\b0 Oniguruma\ -\pard\tx1280\tx1840\tx2400\tx2960\tx3520\tx4080\tx4640\tx5200\tx5760\tx6320\tx6880\tx7440\li720 -{\field{\*\fldinst{HYPERLINK "http://www.geocities.jp/kosako3/oniguruma/"}}{\fldrslt \cf0 http://www.geocities.jp/kosako3/oniguruma/\ -}}\pard\tx1280\tx1840\tx2400\tx2960\tx3520\tx4080\tx4640\tx5200\tx5760\tx6320\tx6880\tx7440\li720 -\cf0 Copyright \'a9 2002 K.Kosako -\b \ -\pard\tx720\tx1280\tx1840\tx2400\tx2960\tx3520\tx4080\tx4640\tx5200\tx5760\tx6320\tx6880\tx7440\li720\fi-280 -\cf0 \'95 -\b0 (a part of) Smultron\ -\pard\tx1280\tx1840\tx2400\tx2960\tx3520\tx4080\tx4640\tx5200\tx5760\tx6320\tx6880\tx7440\li720 -{\field{\*\fldinst{HYPERLINK "http://smultron.sourceforge.net/"}}{\fldrslt \cf0 http://smultron.sourceforge.net/\ -}}\pard\tx1280\tx1840\tx2400\tx2960\tx3520\tx4080\tx4640\tx5200\tx5760\tx6320\tx6880\tx7440\li720 -\cf0 Copyright \'a9 2004 Peter Borg -\b \ -\pard\tx720\tx1280\tx1840\tx2400\tx2960\tx3520\tx4080\tx4640\tx5200\tx5760\tx6320\tx6880\tx7440\li720\fi-280 -\cf0 \'95 -\b0 UUKQueue, UKXattrMetadataStore\ -\pard\tx1280\tx1840\tx2400\tx2960\tx3520\tx4080\tx4640\tx5200\tx5760\tx6320\tx6880\tx7440\li720 -{\field{\*\fldinst{HYPERLINK "http://www.zathras.de/angelweb/sourcecode.htm"}}{\fldrslt \cf0 http://www.zathras.de/angelweb/sourcecode.htm\ -}}\pard\tx1280\tx1840\tx2400\tx2960\tx3520\tx4080\tx4640\tx5200\tx5760\tx6320\tx6880\tx7440\li720 -\cf0 Copyright \'a9 2003-06 M. Uli Kusterer -\b \ -\pard\tx720\tx1280\tx1840\tx2400\tx2960\tx3520\tx4080\tx4640\tx5200\tx5760\tx6320\tx6880\tx7440\li720\fi-280 -\cf0 \'95 -\b0 FJDDetectEncoding\ - {\field{\*\fldinst{HYPERLINK "http://blogs.dion.ne.jp/fujidana/archives/4169016.html"}}{\fldrslt http://blogs.dion.ne.jp/fujidana/archives/4169016.html}}\ -\pard\tx1280\tx1840\tx2400\tx2960\tx3520\tx4080\tx4640\tx5200\tx5760\tx6320\tx6880\tx7440\li720 -\cf0 Copyright \'a9 2006 FUJIDANA -\b \ -\pard\tx720\tx1280\tx1840\tx2400\tx2960\tx3520\tx4080\tx4640\tx5200\tx5760\tx6320\tx6880\tx7440\li720\fi-280 -\cf0 \'95 -\b0 RegexKitLite -\b \ -\pard\tx1280\tx1840\tx2400\tx2960\tx3520\tx4080\tx4640\tx5200\tx5760\tx6320\tx6880\tx7440\li720 -{\field{\*\fldinst{HYPERLINK "http://regexkit.sourceforge.net/RegexKitLite/"}}{\fldrslt -\b0 \cf2 \ul http://regexkit.sourceforge.net/RegexKitLite/}} -\b0 \cf2 \ul \ -\pard\tx1280\tx1840\tx2400\tx2960\tx3520\tx4080\tx4640\tx5200\tx5760\tx6320\tx6880\tx7440\li720 - -\b \cf0 \ulnone -\b0 Copyright \'a9 2008 John Engelhart -\b \ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720 - -\b0 \cf0 \ -... Thanks to authers of great products. -\b \ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720 -\cf0 \ -\ -Thanks to valuable information source:\ -\pard\tx720\tx1280\tx1840\tx2400\tx2960\tx3520\tx4080\tx4640\tx5200\tx5760\tx6320\tx6880\tx7440\li720\fi-280 -\cf0 \'95 -\b0 HMDT\ -\pard\tx1280\tx1840\tx2400\tx2960\tx3520\tx4080\tx4640\tx5200\tx5760\tx6320\tx6880\tx7440\li720 -{\field{\*\fldinst{HYPERLINK "http://hmdt.jp/"}}{\fldrslt \cf0 http://hmdt.jp/}} -\b \ -\pard\tx720\tx1280\tx1840\tx2400\tx2960\tx3520\tx4080\tx4640\tx5200\tx5760\tx6320\tx6880\tx7440\li720\fi-280 -\cf0 \'95 -\b0 Cocoabuilder\ -\pard\tx1280\tx1840\tx2400\tx2960\tx3520\tx4080\tx4640\tx5200\tx5760\tx6320\tx6880\tx7440\li720 -{\field{\*\fldinst{HYPERLINK "http://www.cocoabuilder.com/"}}{\fldrslt \cf0 http://www.cocoabuilder.com/}} -\b \ -\pard\tx720\tx1280\tx1840\tx2400\tx2960\tx3520\tx4080\tx4640\tx5200\tx5760\tx6320\tx6880\tx7440\li720\fi-280 -\cf0 \'95 -\b0 ... and other valuable source. -\b \ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720 -\cf0 \ -\ -With special thanks to:\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720 - -\b0 \cf0 Every user ! -\b \ - -\b0 ... and Unako. -\b \ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720 -\cf0 \ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc -\cf0 : : : : : -\b0 \ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720 -\cf0 \ -This program is free software; you can redistribute it and/or modify it under the terms of {\field{\*\fldinst{HYPERLINK "http://www.gnu.org/licenses/gpl.html"}}{\fldrslt \cf2 \ul the GNU General Public License}} as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.\ -\ -This program 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 {\field{\*\fldinst{HYPERLINK "http://www.gnu.org/licenses/gpl.html"}}{\fldrslt \cf2 \ul the GNU General Public License}} for more details.\ -\ -You should have received a copy of {\field{\*\fldinst{HYPERLINK "http://www.gnu.org/licenses/gpl.html"}}{\fldrslt \cf2 \ul the GNU General Public License}} along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc - -\b \cf0 : : : : : -\b0 \ -} \ No newline at end of file diff --git a/en.lproj/Acknowledgements.rtf b/en.lproj/Acknowledgements.rtf new file mode 100644 index 0000000000..afaac19428 --- /dev/null +++ b/en.lproj/Acknowledgements.rtf @@ -0,0 +1,234 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf190 +\readonlydoc1{\fonttbl\f0\fswiss\fcharset0 Helvetica;\f1\fnil\fcharset0 Menlo-Regular;} +{\colortbl;\red255\green255\blue255;\red103\green103\blue103;\red77\green77\blue77;\red77\green77\blue77; +} +{\*\listtable{\list\listtemplateid1\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid1\'01\uc0\u8226 ;}{\levelnumbers;}\fi-360\li720\lin720 }{\listname ;}\listid1}} +{\*\listoverridetable{\listoverride\listid1\listoverridecount0\ls1}} +\paperw12240\paperh15840\vieww13460\viewh13880\viewkind0 +\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802\sl264\slmult1 + +\f0\b\fs34 \cf0 Acknowledgements +\b0\fs24 \ +\ +CotEditor is developed using the following nicely technologies. We are deeply grateful for those who let us use their valuable programs/information for making CotEditor.\ +\ +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\sl264\slmult1 +\cf0 \ + +\b OgreKit +\b0 ({\field{\*\fldinst{HYPERLINK "http://sonoisa.github.io/ogrekit/"}}{\fldrslt http://sonoisa.github.io/ogrekit/}})\ +Thanks to OgreKit by Isao Sonobe. CotEditor uses partially modified versions of them.\CocoaLigature0 \ +\pard\tx529\pardeftab529\sl264\slmult1\pardirnatural +\cf0 The license of OgreKit follows that of OniGuruma.\ +It follows the BSD license in the case of the one except for it.\ +\ + +\fs22 \cf2 /*\ + * Copyright (c) 2003-2010 Isao Sonobe \ + * 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.\ + *\ + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND 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 THE AUTHOR OR 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.\ + */ +\fs24 \cf0 \CocoaLigature1 \ +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab529\sl264\slmult1 +\cf0 \ +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab529\sl264\slmult1 + +\b \cf0 Onigmo (Oniguruma-mod) +\b0 ({\field{\*\fldinst{HYPERLINK "https://github.com/k-takata/Onigmo"}}{\fldrslt https://github.com/k-takata/Onigmo}})\ +Thanks to Onigumo by K.Tanaka.\ +Onigmo is a regular expressions library forked from Oniguruma and used in OgreKit framework.\ +\ +\pard\tx529\pardeftab529\pardirnatural + +\f1\fs22 \cf3 \CocoaLigature0 /*-\ + * Copyright (c) 2002-2009 K.Kosako \ + * Copyright (c) 2011-2013 K.Takata \ + * 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.\ + *\ + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND 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 THE AUTHOR OR 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.\ + */ +\f0\fs24 \cf0 \CocoaLigature1 \ +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab529\sl264\slmult1 +\cf0 \ +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab529\sl264\slmult1 + +\b \cf0 Oniguruma +\b0 ({\field{\*\fldinst{HYPERLINK "http://www.geocities.jp/kosako3/oniguruma/"}}{\fldrslt http://www.geocities.jp/kosako3/oniguruma/}})\ +Thanks to Oniguruma by K.Kosako.\ +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\sl264\slmult1 +\cf0 \ +\pard\tx529\pardeftab529\sl264\slmult1\pardirnatural + +\fs22 \cf4 \CocoaLigature0 When this software is partly used or it is distributed with Ruby, \ +this of Ruby follows the license of Ruby.\ +It follows the BSD license in the case of the one except for it.\ +\ +/*-\ + * Copyright (c) 2002-2007 K.Kosako \ + * 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.\ + *\ + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND 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 THE AUTHOR OR 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.\ + */ +\fs24 \cf0 \CocoaLigature1 \ +\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802\sl264\slmult1 + +\b \cf0 \ +RegexKitLite +\b0 ({\field{\*\fldinst{HYPERLINK "http://regexkit.sourceforge.net/RegexKitLite/"}}{\fldrslt http://regexkit.sourceforge.net/RegexKitLite/}})\ +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\sl264\slmult1 +\cf0 Thanks to RegexKitLite by John Engelhart.\ +\pard\pardeftab720\sl264\slmult1 +\cf0 RegexKitLite is distributed under the terms of the BSD License, as specified below.\ +\pard\pardeftab720\sl264\slmult1\qj + +\fs22 \cf4 Copyright \'a9 2008-2010, John Engelhart\ +All rights reserved.\ +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\ +\pard\tx220\tx720\pardeftab720\li720\fi-720\sl264\slmult1\qj +\ls1\ilvl0\cf4 {\listtext \'95 }Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\ +{\listtext \'95 }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.\ +{\listtext \'95 }Neither the name of the Zang Industries nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.\ +\pard\pardeftab720\sl264\slmult1\qj +\cf4 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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 THE COPYRIGHT OWNER OR 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. +\fs24 \cf0 \ +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab529\sl264\slmult1 +\cf0 \ +\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802\pardeftab529\sl264\slmult1 + +\b \cf0 UKXattrMetadataStore +\b0 ({\field{\*\fldinst{HYPERLINK "http://www.zathras.de/angelweb/sourcecode.htm"}}{\fldrslt http://www.zathras.de/angelweb/sourcecode.htm}})\ +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\sl264\slmult1 +\cf0 Thanks to UKXattrMetadataStore by M. Uli Kusterer which enables CotEditor to read/write the encoding of a file via the \'93com.apple.TextEncoding\'94 extended attribute.\ +UKXattrMetadataStore has been distributed under the MIT license.\ +\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802\pardeftab529\sl264\slmult1 + +\fs22 \cf4 (c) 2006 by M. Uli Kusterer. You may redistribute, modify, use in\ +commercial products free of charge, however distributing modified copies\ +requires that you clearly mark them as having been modified by you, while\ +maintaining the original markings and copyrights. I don't like getting bug\ +reports about code I wasn't involved in.\ +\ +I'd also appreciate if you gave credit in your app's about screen or a similar\ +place. A simple "Thanks to M. Uli Kusterer" is quite sufficient.\ +Also, I rarely turn down any postcards, gifts, complementary copies of\ +applications etc. +\fs24 \cf0 \ +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\sl264\slmult1 +\cf0 \ +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\sl264\slmult1 + +\b\fs28 \cf0 Other Information Sources +\b0\fs24 \ +- Thanks to JSDTextView by James S. Derry ({\field{\*\fldinst{HYPERLINK "http://www.balthisar.com"}}{\fldrslt http://www.balthisar.com}}) on which CotEditor's line number display is based. JSDTextView has been distributed in the public domain.\ +- Thanks to Smultron by Peter Borg ({\field{\*\fldinst{HYPERLINK "http://smultron.sourceforge.net/"}}{\fldrslt http://smultron.sourceforge.net/}}) on which CotEditor's functions, such as customizing the tab width, showing invisible characters, supporting the External Editor Protocol, are based. Smultron has been distributed under the BSD license (version 2.0 or later).\ +- Thanks to FJDDetectEncoding by FUJIDANA ({\field{\*\fldinst{HYPERLINK "http://blogs.dion.ne.jp/fujidana/archives/4169016.html"}}{\fldrslt http://blogs.dion.ne.jp/fujidana/archives/4169016.html}}) on which CotEditor's encoding auto-detection (ISO 2022-JP, UTF-8, UTF-16) is based. FJDDetectEncoding has been released under the BSD license.\ +- Thanks to the web site HMDT ({\field{\*\fldinst{HYPERLINK "http://hmdt.jp/"}}{\fldrslt http://hmdt.jp/}}) for a lot of useful information.\ +- Thanks to the web site Cocoabuilder ({\field{\*\fldinst{HYPERLINK "http://www.cocoabuilder.com/"}}{\fldrslt http://www.cocoabuilder.com/}}) for a lot of useful information.\ +- Thanks to mi by Daisuke Kamiyama ({\field{\*\fldinst{HYPERLINK "http://www.mimikaki.net/"}}{\fldrslt http://www.mimikaki.net/}}) on which the pre-formatted strings of CotEditor's File Drop function are based.\ +- Thanks to hetima ({\field{\*\fldinst{HYPERLINK "http://hetima.com/"}}{\fldrslt http://hetima.com/}}) for providing the method for getting modifier key presses ({\field{\*\fldinst{HYPERLINK "http://hetima.com/pblog/article.php?id=48"}}{\fldrslt http://hetima.com/pblog/article.php?id=48}}).\ +- Thanks to NSData+MD5 category by iOS Developer Tip, which is distributed on the blog article "Create MD5 Hash from NSString, NSData or a File" ({\field{\*\fldinst{HYPERLINK "http://iosdevelopertips.com/core-services/create-md5-hash-from-nsstring-nsdata-or-file.html"}}{\fldrslt http://iosdevelopertips.com/core-services/create-md5-hash-from-nsstring-nsdata-or-file.html}}).\ +\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802\sl264\slmult1 +\cf0 \ +\ +\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802\sl264\slmult1 + +\b\fs28 \cf0 Data/Sources Providing +\b0\fs24 \ +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\sl264\slmult1 +\cf0 CotEditor contains the provided data/sources by the followings. We'd like to thanks for helping us.\ +\ +- Script files written by:\ + \'95 Ruby (Template)\ + s.sawada ({\field{\*\fldinst{HYPERLINK "http://www.mouseup.net/diary/"}}{\fldrslt http://www.mouseup.net/diary/}})\ + \'95 Ruby (Ruby_scripts)\ + yosito\ + \'95 Python\ + Yuhei Kuratomi ({\field{\*\fldinst{HYPERLINK "http://www.tomapd.net/blog"}}{\fldrslt http://www.tomapd.net/blog}})\ +- Syntax Style files written by:\ + \'95 "PHP"\ + kaz ({\field{\*\fldinst{HYPERLINK "https://github.com/kaz6120"}}{\fldrslt https://github.com/kaz6120}})\ + \'95 "C, C++, Objective-C", "Java"\ + Hiroto Sakai ({\field{\*\fldinst{HYPERLINK "http://www.fan.gr.jp/~sakai/"}}{\fldrslt http://www.fan.gr.jp/~sakai/}})\ + \'95 "LaTeX"\ + Yuhei Kuratomi (http://www.tomapd.net/blog\ + \'95 "Ruby", "eRuby"\ + Y.Tokutomi ({\field{\*\fldinst{HYPERLINK "http://d.hatena.ne.jp/Tommy1/"}}{\fldrslt http://d.hatena.ne.jp/Tommy1/}})\ + \'95 "Haskell"\ + konn (http://d.hatena.ne.jp/mr_konn/\ + \'95 "Python"\ + nanasiya ({\field{\*\fldinst{HYPERLINK "http://mahonet.info/~nanasiya/"}}{\fldrslt http://mahonet.info/~nanasiya/}})\ +- Localization technical assist, original Japanese localization dictionary and original Help files (ja) written by:\ + iroto Sakai ({\field{\*\fldinst{HYPERLINK "http://www.fan.gr.jp/~sakai/"}}{\fldrslt http://www.fan.gr.jp/~sakai/}})\ +- More better line number view, text coloring and completion written by:\ + Hetima ({\field{\*\fldinst{HYPERLINK "http://hetima.com/"}}{\fldrslt http://hetima.com/}})\ +- More better "Completion pop-up" written by:\ + Haruka Kataoka ({\field{\*\fldinst{HYPERLINK "http://drumsoft.com/"}}{\fldrslt http://drumsoft.com/}})\ +- English Localized documents and help written by:\ + Y.Yamamoto\ +- Original application and documents icons +\fs22 (until CotEditor 1.2) +\fs24 were designed by:\ + kaz ({\field{\*\fldinst{HYPERLINK "https://github.com/kaz6120"}}{\fldrslt https://github.com/kaz6120}})\ +- Original toolbar, preferences icons +\fs22 (until CotEditor 1.3.1) +\fs24 were designed by:\ + Y.Yamamoto\ +} \ No newline at end of file diff --git a/en.lproj/DocWindow.xib b/en.lproj/DocWindow.xib new file mode 100644 index 0000000000..8ecf6f74d7 --- /dev/null +++ b/en.lproj/DocWindow.xib @@ -0,0 +1,1081 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + lineNumber + incompatibleChar + convertedChar + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + printHeader + headerOneStringIndex + headerTwoStringIndex + headerOneAlignIndex + headerTwoAlignIndex + printHeaderSeparator + printFooter + footerOneStringIndex + footerTwoStringIndex + footerOneAlignIndex + footerTwoAlignIndex + printFooterSeparator + printLineNumIndex + printInvisibleCharIndex + setPrintFont + printColorIndex + + + + + + + + + \ No newline at end of file diff --git a/en.lproj/HCCManager.xib b/en.lproj/HCCManager.xib new file mode 100644 index 0000000000..f737b3da76 --- /dev/null +++ b/en.lproj/HCCManager.xib @@ -0,0 +1,395 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + NSUnarchiveFromData + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + NSUnarchiveFromData + + + + + + + + + + + + + + + + + HexColorTransformer + + + + + + + + + + + + + + + + + + + + HexColorTransformer + + + + + + + + + + + + + + NSUnarchiveFromData + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + codeString + + + + + + + + codeString + + + + + + + + + + + + \ No newline at end of file diff --git a/en.lproj/Indicator.xib b/en.lproj/Indicator.xib new file mode 100644 index 0000000000..e61939f6bb --- /dev/null +++ b/en.lproj/Indicator.xib @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/en.lproj/InfoPlist.strings b/en.lproj/InfoPlist.strings new file mode 100644 index 0000000000..f3a68ea1e9 Binary files /dev/null and b/en.lproj/InfoPlist.strings differ diff --git a/en.lproj/KeyBindingManager.xib b/en.lproj/KeyBindingManager.xib new file mode 100644 index 0000000000..9699d42f86 --- /dev/null +++ b/en.lproj/KeyBindingManager.xib @@ -0,0 +1,409 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Double-click in the Key column and press the keys for the action. +# You MUST include the Command key. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Double-click in the Key column and press the keys for the action. +# DO NOT include the Command key. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + insertCustomText + + + + + + + + \ No newline at end of file diff --git a/en.lproj/Localizable.strings b/en.lproj/Localizable.strings new file mode 100644 index 0000000000..b52aa68117 --- /dev/null +++ b/en.lproj/Localizable.strings @@ -0,0 +1,9 @@ +/* +Localizable.strings +(for CotEditor) + +encoding="UTF-8" +Created:2004.12.20 +written by nakamuxu. +http://www.aynimac.com/ +*/ diff --git a/en.lproj/MainMenu.xib b/en.lproj/MainMenu.xib new file mode 100644 index 0000000000..d5d6cd81e0 --- /dev/null +++ b/en.lproj/MainMenu.xib @@ -0,0 +1,1014 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +IA + + + + + + + + + + + + + curWindowAlpha + curAlphaOnlyTextView + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/en.lproj/Preferences.xib b/en.lproj/Preferences.xib new file mode 100644 index 0000000000..922315a031 --- /dev/null +++ b/en.lproj/Preferences.xib @@ -0,0 +1,2904 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + NSUnarchiveFromData + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + NSUnarchiveFromData + + + + + + + + + + + + NSUnarchiveFromData + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + NSUnarchiveFromData + + + + + + + + + + + + + NSUnarchiveFromData + + + + + + + + + + + + + + + + + + + + + + + + + + NSUnarchiveFromData + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 0.25 + 0.5 + 0.75 + 1.0 + 1.25 + 1.5 + 1.75 + 2.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + NSUnarchiveFromData + + + + + + + + + + + + + + + + + + + + + NSUnarchiveFromData + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + NSUnarchiveFromData + + + + + + + + + + + + + NSUnarchiveFromData + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + NSUnarchiveFromData + + + + + + + + + + + + + + NSUnarchiveFromData + + + + + + + + + + + + + + + + + + + + + NSUnarchiveFromData + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <<<ABSOLUTE-PATH>>> +The dropped file's absolute path. +<<<RELATIVE-PATH>>> +The relative path between the dropped file and the document. +<<<FILENAME>>> +The dropped file's name with extension (if exists). +<<<FILENAME-NOSUFFIX>>> +The dropped file's name without extension. +<<<FILEEXTENSION>>> +The dropped file's extension. +<<<FILEEXTENSION-LOWER>>> +The dropped file's extension (converted to lowercase). +<<<FILEEXTENSION-UPPER>>> +The dropped file's extension (converted to uppercase). +<<<DIRECTORY>>> +The parent directory name of the dropped file. +<<<IMAGEWIDTH>>> +(if the dropped file is Image) The image width. +<<<IMAGEHEIGHT>>> +(if the dropped file is Image) The image height. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This list is for Auto-Detect and the File Encoding menu. +Auto-Detect tries these encodings from the top of the list. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + You can resize this window. +And press "OK" button, this window size will be set to default. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + extensions + formatString + windowHeight + footerOneAlignIndex + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/en.lproj/ReadMe.rtf b/en.lproj/ReadMe.rtf new file mode 100644 index 0000000000..af86906d0e --- /dev/null +++ b/en.lproj/ReadMe.rtf @@ -0,0 +1,80 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf190 +\readonlydoc1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\paperw12240\paperh15840\vieww13460\viewh13880\viewkind0 +\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 + +\f0\b\fs30 \cf0 README\ +\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802\qr + +\b0\fs24 \cf0 2014-03-19\ +\ +\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 + +\b \cf0 About Regular Expression Syntax\ +\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 + +\b0 \cf0 CotEditor's syntax coloring function uses RegexKitLite for its regular expression search and OgreKit for its Find and Outline Menu functions. Please take notice that their regular expression syntax are slightly different from each other.\ +See the following references to make sure they work properly.\ +\ +Onigmo (Oniguruma-mod) Regular Expressions (used on OgreKit)\ +\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 +{\field{\*\fldinst{HYPERLINK "https://raw.github.com/k-takata/Onigmo/master/doc/RE"}}{\fldrslt \cf0 https://raw.github.com/k-takata/Onigmo/master/doc/RE}}\ +\ +ICU Regular Expressions (used on RegexKitLite)\ +\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 +{\field{\*\fldinst{HYPERLINK "http://regexkit.sourceforge.net/RegexKitLite/#ICURegularExpressionSyntax"}}{\fldrslt \cf0 http://regexkit.sourceforge.net/RegexKitLite/#ICURegularExpressionSyntax}} +\b \ +\ +\ +Requirements +\b0 \ +OS X 10.7+\ +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720 +\cf0 \ +\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 +\cf0 \ +\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 + +\b \cf0 Development Environment +\b0 \ +Mac OS X 10.9\ +Xcode 5\ +\ +\ + +\b Distribution Site +\b0 \ +\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 +{\field{\*\fldinst{HYPERLINK "http://coteditor.github.io"}}{\fldrslt \cf0 http://coteditor.github.io}}\ +\ +\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 + +\b \cf0 \ +About Source Code +\b0 \ +CotEditor source code is available for download at the {\field{\*\fldinst{HYPERLINK "https://github.com/coteditor/"}}{\fldrslt CotEditor Project}} page on GitHub.\ +\ +\ + +\b License +\b0 \ +GPL (GNU GENERAL PUBLIC LICENSE)\ +This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.\ +This program 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.\ +Further information is available in the following page:\ +\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 +{\field{\*\fldinst{HYPERLINK "http://www.gnu.org/licenses/gpl.html"}}{\fldrslt \cf0 http://www.gnu.org/licenses/gpl.html}}\ +\ +\ +\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 + +\b \cf0 Copyrights +\b0 \ +CotEditor was originally made by nakamuxu, and now is developed by usami-k and 1024jp.\ +Copyright (c) 2005 nakamuxu\ +Copyright (c) 2011, 2014 usami-k\ +Copyright (c) 2014 1024jp\ +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720 +\cf0 All rights reserved.\ +} \ No newline at end of file diff --git a/en.lproj/ScriptManager.xib b/en.lproj/ScriptManager.xib new file mode 100644 index 0000000000..c51054c3c8 --- /dev/null +++ b/en.lproj/ScriptManager.xib @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/en.lproj/SyntaxManager.xib b/en.lproj/SyntaxManager.xib new file mode 100644 index 0000000000..1551168c70 --- /dev/null +++ b/en.lproj/SyntaxManager.xib @@ -0,0 +1,1768 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + styleName + commandsArray + commandsColor + commentsArray + keywordsArray + ignoreCase + valuesArray + extensions + stringsArray + charactersArray + numbersArray + outlineMenuArray + completionsArray + + + + + keyString + ignoreCase + regularExpression + beginString + endString + + + + + + + + keyString + ignoreCase + regularExpression + beginString + endString + + + + + + + + keyString + regularExpression + ignoreCase + beginString + endString + + + + + + + + keyString + ignoreCase + regularExpression + beginString + endString + + + + + + + + keyString + + + + + + + + keyString + ignoreCase + regularExpression + beginString + endString + + + + + + + + keyString + ignoreCase + regularExpression + beginString + endString + + + + + + + + keyString + ignoreCase + regularExpression + beginString + endString + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + beginString + ignoreCase + keyString + bold + underline + italic + + + + + + + + keyString + + + + + + + + + + + \ No newline at end of file diff --git a/Docs/EN/History-en.rtf b/en.lproj/Version History.rtf similarity index 94% rename from Docs/EN/History-en.rtf rename to en.lproj/Version History.rtf index c1f4f11ad8..1757a1e992 100644 --- a/Docs/EN/History-en.rtf +++ b/en.lproj/Version History.rtf @@ -1,7 +1,7 @@ -{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf320 +{\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf190 \readonlydoc1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} -{\colortbl;\red255\green255\blue255;} -\vieww13460\viewh12280\viewkind0 +{\colortbl;\red255\green255\blue255;\red103\green103\blue103;} +\paperw12240\paperh15840\vieww13460\viewh12280\viewkind0 \pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 \f0\b\fs32 \cf0 CotEditor @@ -15,13 +15,67 @@ \fs24 \cf0 \ \pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 -\b \cf0 1.3.1 [2012.02.12]\ +\b\fs26 \cf0 1.4 [2014-03-19]\ \pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 \b0 \cf0 \ul \ulc0 \ulnone \ (None)\ \ \ul \ulnone \ +* Change support OS: OS X 10.7 and later.\ +* Support 64-bit.\ +* Support Retina display.\ +* Update regular expression library used on sarch & leplase feature from Oniguruma to Onigmo.\ + * Now the most regular expression synax defined on Perl 5.10+ like look-behind/look-ahead can also be used.\ +* Update application, document and toolbar icons.\ +* Add small size toolbar icons.\ +* Add new "Apache", "Markdown", "Scala" and "XML" syntax coloring defintions.\uc0\u8317 \'b2\ +* Update "PHP" syntax coloring definition. \uc0\u8317 \'b2\ + * Support until PHP5.5.\ + * Color properties and numbers.\ + * Improve outline menu.\ +* Update "Python" syntax coloring definition. \uc0\u8317 \'b2\ + * Support Python3. (>=3.3)\ + * Color decorators.\ + * Improve and fix number coloring.\ + * distinguish between "print" statement and "print" command.\ +* Update "LaTeX" syntax coloring definition.\ + * Fixed `\{\}` symbol escaping\ +* Add py, markdown, md, xml, scala and conf extensions to document type.\ +* Add "Enter Full Screen" command to menu > View.\ +* Remove "Preferences", "Save", "Save As", "Page Setup" and "Transparency Panel" icons from toolbar.\ +* Hide dot files and folders in script menu.\ +* Improve alert descriptions.\ +* Adjust styles of windows and panels.\ +* Rename HexColorCode Editor to Color Code Editor\ +* Update documents.\ +\ul \ulnone \ +* Fixed an issue that unexpected "Update by external process" alert comes up even file is actually not updated.\ +* Fixed "from an unidentified developer" alert on the first launch.\ +* Fixed an issue that toolbar background becomes transparent on fullscreen mode (Lion binary).\ +* Fixed an issue that text view doesn't become transparent (Lion binary).\ +* Fixed an issue that top and bottom margin are flipped on printing since OS X Lion.\ +* Fixed an issue that readonly icon in status bar doesn't represent the state correctly, if status bar was hidden when window opened.\ +* Fixed a miss placed label on Preferences (Japanese localization).\ +* Add blank between words on toolbar labels.\ +* Fixed an issue that RegexKitLite was actually not updated to 4.0 on CotEditor 1.1. +\fs24 \ +\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 +\cf2 \ + 1. \cf2 The regular expression match on the syntax coloring has no effect by this change, \cf2 since ICU library is used for it. \ + 2. same as ones that were distributed on {\field{\*\fldinst{HYPERLINK "http://wolfrosch.com/works/goodies/coteditor_syntax"}}{\fldrslt wolfrosch.com}}.\ +\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 + +\fs26 \cf0 \ +\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 + +\b \cf0 1.3.1 [2012.02.12]\ +\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 + +\b0 \cf0 \ul \ulnone \ +(None)\ +\ +\ul \ulnone \ (None)\ \ \ul \ulnone \ @@ -54,7 +108,7 @@ * Add feature for automatically update.\ \ \ul \ulnone \ -* Change the application icon. (thanks to kanai-san)\ +* Change the application icon. (thanks to 1024jp-san)\ * Updated 'About The ScriptMenu Folder' document.\ \ \ul \ulnone \ diff --git a/icons/appIcon.icns b/icons/appIcon.icns deleted file mode 100644 index b72606ed1f..0000000000 Binary files a/icons/appIcon.icns and /dev/null differ diff --git a/icons/cleanButtonIcon.tiff b/icons/cleanButtonIcon.tiff deleted file mode 100755 index 362210aad9..0000000000 Binary files a/icons/cleanButtonIcon.tiff and /dev/null differ diff --git a/icons/docIcon.icns b/icons/docIcon.icns deleted file mode 100644 index fd528bbf8a..0000000000 Binary files a/icons/docIcon.icns and /dev/null differ diff --git a/icons/scriptMenuIcon.tiff b/icons/scriptMenuIcon.tiff deleted file mode 100644 index a9d126418d..0000000000 Binary files a/icons/scriptMenuIcon.tiff and /dev/null differ diff --git a/images/addButtonImg.pdf b/images/addButtonImg.pdf new file mode 100644 index 0000000000..5037d4a521 Binary files /dev/null and b/images/addButtonImg.pdf differ diff --git a/images/addButtonImg.tiff b/images/addButtonImg.tiff deleted file mode 100644 index 418f7a9ff4..0000000000 Binary files a/images/addButtonImg.tiff and /dev/null differ diff --git a/images/centerButtonImg.pdf b/images/centerButtonImg.pdf new file mode 100644 index 0000000000..bd03b2cbf4 Binary files /dev/null and b/images/centerButtonImg.pdf differ diff --git a/images/centerButtonImg.tiff b/images/centerButtonImg.tiff deleted file mode 100644 index e93b2bc9be..0000000000 Binary files a/images/centerButtonImg.tiff and /dev/null differ diff --git a/images/clearButtonImg.pdf b/images/clearButtonImg.pdf new file mode 100644 index 0000000000..d89897ee1e Binary files /dev/null and b/images/clearButtonImg.pdf differ diff --git a/images/clearButtonImg.tiff b/images/clearButtonImg.tiff deleted file mode 100644 index 3efb32baeb..0000000000 Binary files a/images/clearButtonImg.tiff and /dev/null differ diff --git a/images/closeSplitButtonImg.pdf b/images/closeSplitButtonImg.pdf new file mode 100644 index 0000000000..24efc964d9 Binary files /dev/null and b/images/closeSplitButtonImg.pdf differ diff --git a/images/closeSplitButtonImg.tiff b/images/closeSplitButtonImg.tiff deleted file mode 100644 index 55612c481d..0000000000 Binary files a/images/closeSplitButtonImg.tiff and /dev/null differ diff --git a/images/editButtonImg.pdf b/images/editButtonImg.pdf new file mode 100644 index 0000000000..564c64a34a Binary files /dev/null and b/images/editButtonImg.pdf differ diff --git a/images/editButtonImg.tiff b/images/editButtonImg.tiff deleted file mode 100644 index c486e443ad..0000000000 Binary files a/images/editButtonImg.tiff and /dev/null differ diff --git a/images/leftButtonImg.pdf b/images/leftButtonImg.pdf new file mode 100644 index 0000000000..0501ab5769 Binary files /dev/null and b/images/leftButtonImg.pdf differ diff --git a/images/leftButtonImg.tiff b/images/leftButtonImg.tiff deleted file mode 100644 index c64b433d09..0000000000 Binary files a/images/leftButtonImg.tiff and /dev/null differ diff --git a/images/lockOnImg.pdf b/images/lockOnImg.pdf new file mode 100644 index 0000000000..fec44a4e90 Binary files /dev/null and b/images/lockOnImg.pdf differ diff --git a/images/lockOnImg.tiff b/images/lockOnImg.tiff deleted file mode 100644 index d70117f1aa..0000000000 Binary files a/images/lockOnImg.tiff and /dev/null differ diff --git a/images/nextButtonImg.pdf b/images/nextButtonImg.pdf new file mode 100644 index 0000000000..9a013f8603 Binary files /dev/null and b/images/nextButtonImg.pdf differ diff --git a/images/nextButtonImg.tiff b/images/nextButtonImg.tiff deleted file mode 100644 index 18252f0eb1..0000000000 Binary files a/images/nextButtonImg.tiff and /dev/null differ diff --git a/images/openSplitButtonImg.pdf b/images/openSplitButtonImg.pdf new file mode 100644 index 0000000000..03b4eebb59 Binary files /dev/null and b/images/openSplitButtonImg.pdf differ diff --git a/images/openSplitButtonImg.tiff b/images/openSplitButtonImg.tiff deleted file mode 100644 index 6623fc41db..0000000000 Binary files a/images/openSplitButtonImg.tiff and /dev/null differ diff --git a/images/pageGuide.pdf b/images/pageGuide.pdf new file mode 100644 index 0000000000..99802cdbcb Binary files /dev/null and b/images/pageGuide.pdf differ diff --git a/images/pageGuide.tiff b/images/pageGuide.tiff deleted file mode 100644 index feccec8d61..0000000000 Binary files a/images/pageGuide.tiff and /dev/null differ diff --git a/images/popUpButtonArrow.pdf b/images/popUpButtonArrow.pdf new file mode 100644 index 0000000000..4ef66a0aaa Binary files /dev/null and b/images/popUpButtonArrow.pdf differ diff --git a/images/popUpButtonArrow.tiff b/images/popUpButtonArrow.tiff deleted file mode 100644 index 32682293a6..0000000000 Binary files a/images/popUpButtonArrow.tiff and /dev/null differ diff --git a/images/popUpButtonBG_center.pdf b/images/popUpButtonBG_center.pdf new file mode 100644 index 0000000000..307ecb2f6c Binary files /dev/null and b/images/popUpButtonBG_center.pdf differ diff --git a/images/popUpButtonBG_center.tiff b/images/popUpButtonBG_center.tiff deleted file mode 100644 index f7d9aa8bc6..0000000000 Binary files a/images/popUpButtonBG_center.tiff and /dev/null differ diff --git a/images/popUpButtonBG_left.pdf b/images/popUpButtonBG_left.pdf new file mode 100644 index 0000000000..cf9640b9b4 Binary files /dev/null and b/images/popUpButtonBG_left.pdf differ diff --git a/images/popUpButtonBG_left.tiff b/images/popUpButtonBG_left.tiff deleted file mode 100644 index c019c07916..0000000000 Binary files a/images/popUpButtonBG_left.tiff and /dev/null differ diff --git a/images/prevButtonImg.pdf b/images/prevButtonImg.pdf new file mode 100644 index 0000000000..83a68dab00 Binary files /dev/null and b/images/prevButtonImg.pdf differ diff --git a/images/prevButtonImg.tiff b/images/prevButtonImg.tiff deleted file mode 100644 index 740e88aa5c..0000000000 Binary files a/images/prevButtonImg.tiff and /dev/null differ diff --git a/images/removeButtonImg.pdf b/images/removeButtonImg.pdf new file mode 100644 index 0000000000..28ceef4cb5 Binary files /dev/null and b/images/removeButtonImg.pdf differ diff --git a/images/removeButtonImg.tiff b/images/removeButtonImg.tiff deleted file mode 100644 index 6144db634f..0000000000 Binary files a/images/removeButtonImg.tiff and /dev/null differ diff --git a/images/rightButtonImg.pdf b/images/rightButtonImg.pdf new file mode 100644 index 0000000000..e2219ddc2b Binary files /dev/null and b/images/rightButtonImg.pdf differ diff --git a/images/rightButtonImg.tiff b/images/rightButtonImg.tiff deleted file mode 100644 index ed75e2e0dc..0000000000 Binary files a/images/rightButtonImg.tiff and /dev/null differ diff --git a/images/scriptMenuIcon.pdf b/images/scriptMenuIcon.pdf new file mode 100644 index 0000000000..26b29244ae Binary files /dev/null and b/images/scriptMenuIcon.pdf differ diff --git a/images/swapArrow.pdf b/images/swapArrow.pdf new file mode 100644 index 0000000000..89f4b42a73 Binary files /dev/null and b/images/swapArrow.pdf differ diff --git a/images/swapArrow.tiff b/images/swapArrow.tiff deleted file mode 100644 index e9c3c8afaa..0000000000 Binary files a/images/swapArrow.tiff and /dev/null differ diff --git a/images/transparencyGuide.pdf b/images/transparencyGuide.pdf new file mode 100644 index 0000000000..97e487f80b Binary files /dev/null and b/images/transparencyGuide.pdf differ diff --git a/images/transparencyGuide.tiff b/images/transparencyGuide.tiff deleted file mode 100644 index c487d04890..0000000000 Binary files a/images/transparencyGuide.tiff and /dev/null differ diff --git a/ja.lproj/Acknowledgements.rtf b/ja.lproj/Acknowledgements.rtf new file mode 100644 index 0000000000..920dbf1dd0 --- /dev/null +++ b/ja.lproj/Acknowledgements.rtf @@ -0,0 +1,246 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf190 +\readonlydoc1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;\f1\fswiss\fcharset0 Helvetica;\f2\fnil\fcharset0 Menlo-Regular; +} +{\colortbl;\red255\green255\blue255;\red103\green103\blue103;\red77\green77\blue77;} +{\*\listtable{\list\listtemplateid1\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid1\'01\uc0\u8226 ;}{\levelnumbers;}\fi-360\li720\lin720 }{\listname ;}\listid1}} +{\*\listoverridetable{\listoverride\listid1\listoverridecount0\ls1}} +\paperw12240\paperh15840\vieww13460\viewh13880\viewkind0 +\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802\sl264\slmult1 + +\f0\b\fs34 \cf0 \'8e\'d3\'8e\'ab +\f1\b0\fs24 \ +\ +\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802\sl264\slmult1 + +\f0 \cf0 CotEditor\'82\'c9\'82\'cd\'89\'ba\'8b\'4c\'82\'cc\'91\'66\'90\'b0\'82\'e7\'82\'b5\'82\'a2\'8b\'5a\'8f\'70\'82\'aa\'8e\'67\'82\'ed\'82\'ea\'82\'c4\'82\'a2\'82\'dc\'82\'b7\'81\'42\'8d\'ec\'90\'ac\'82\'c9\'82\'a0\'82\'bd\'82\'c1\'82\'c4\'81\'41\'8e\'67\'82\'ed\'82\'b9\'82\'c4\'82\'a2\'82\'bd\'82\'be\'82\'a2\'82\'bd\'97\'4c\'89\'76\'82\'c8\'83\'5c\'83\'74\'83\'67\'83\'45\'83\'46\'83\'41\'81\'5e\'8f\'ee\'95\'f1\'82\'cc\'8c\'f6\'8a\'4a\'82\'c6\'92\'f1\'8b\'9f\'82\'c9\'90\'5b\'82\'ad\'8a\'b4\'8e\'d3\'82\'a2\'82\'bd\'82\'b5\'82\'dc\'82\'b7\'81\'42 +\f1 \ +\ +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\sl264\slmult1 +\cf0 \ + +\b OgreKit +\b0 ({\field{\*\fldinst{HYPERLINK "http://sonoisa.github.io/ogrekit/"}}{\fldrslt http://sonoisa.github.io/ogrekit/}})\ +\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802\sl264\slmult1 + +\f0 \cf0 \'90\'b3\'8b\'4b\'95\'5c\'8c\'bb\'8c\'9f\'8d\'f5\'82\'c9OgreKit (written by Isao Sonobe) \'82\'f0\'88\'ea\'95\'94\'82\'f0\'8f\'43\'90\'b3\'82\'b5\'82\'c4\'8e\'67\'97\'70\'82\'b3\'82\'b9\'82\'c4\'82\'a2\'82\'bd\'82\'be\'82\'ab\'82\'dc\'82\'b5\'82\'bd\'81\'42 +\f1 \ +\pard\tx529\pardeftab529\sl264\slmult1\pardirnatural +\cf0 \CocoaLigature0 The license of OgreKit follows that of OniGuruma.\ +It follows the BSD license in the case of the one except for it.\ +\ + +\fs22 \cf2 /*\ + * Copyright (c) 2003-2010 Isao Sonobe \ + * 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.\ + *\ + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND 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 THE AUTHOR OR 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.\ + */ +\fs24 \cf0 \CocoaLigature1 \ +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab529\sl264\slmult1 +\cf0 \ +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab529\sl264\slmult1 + +\b \cf0 Onigmo (Oniguruma-mod) +\b0 ({\field{\*\fldinst{HYPERLINK "https://github.com/k-takata/Onigmo"}}{\fldrslt https://github.com/k-takata/Onigmo}})\ +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab529\sl264\slmult1 + +\f0 \cf0 Oniguruma\'90\'b3\'8b\'4b\'95\'5c\'8c\'bb\'83\'89\'83\'43\'83\'75\'83\'89\'83\'8a\'82\'a9\'82\'e7\'82\'cc\'83\'74\'83\'48\'81\'5b\'83\'4e\'82\'c5\'82\'a0\'82\'e9\'8b\'53\'89\'5f (written by K.Tanaka) \'82\'cd +\f1 OgreKit +\f0 \'83\'74\'83\'8c\'81\'5b\'83\'80\'83\'8f\'81\'5b\'83\'4e\'82\'c5\'8e\'67\'82\'ed\'82\'ea\'82\'c4\'82\'a2\'82\'dc\'82\'b7\'81\'42 +\f1 \ +\ +\pard\tx529\pardeftab529\pardirnatural + +\f2\fs22 \cf3 \CocoaLigature0 /*-\ + * Copyright (c) 2002-2009 K.Kosako \ + * Copyright (c) 2011-2013 K.Takata \ + * 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.\ + *\ + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND 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 THE AUTHOR OR 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.\ + */\ + +\f1\fs24 \cf0 \CocoaLigature1 \ +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\sl264\slmult1 + +\b \cf0 Oniguruma +\b0 ({\field{\*\fldinst{HYPERLINK "http://www.geocities.jp/kosako3/oniguruma/"}}{\fldrslt http://www.geocities.jp/kosako3/oniguruma/}})\ +\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802\sl264\slmult1 + +\f0 \cf0 \'90\'b3\'8b\'4b\'95\'5c\'8c\'bb\'8c\'9f\'8d\'f5\'82\'c9Oniguruma (written by K.Kosako) \'82\'f0\'8e\'67\'97\'70\'82\'b3\'82\'b9\'82\'c4\'82\'a2\'82\'bd\'82\'be\'82\'ab\'82\'dc\'82\'b5\'82\'bd\'81\'42\ +\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802\sl264\slmult1 + +\f1 \cf0 \CocoaLigature0 \ +\pard\tx529\pardeftab529\sl264\slmult1\pardirnatural + +\fs22 \cf3 When this software is partly used or it is distributed with Ruby, \ +this of Ruby follows the license of Ruby.\ +It follows the BSD license in the case of the one except for it.\ +\ +/*-\ + * Copyright (c) 2002-2007 K.Kosako \ + * 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.\ + *\ + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND 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 THE AUTHOR OR 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.\ + */ +\fs24 \cf0 \CocoaLigature1 \ +\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802\sl264\slmult1 + +\b \cf0 RegexKitLite +\b0 ({\field{\*\fldinst{HYPERLINK "http://regexkit.sourceforge.net/RegexKitLite/"}}{\fldrslt http://regexkit.sourceforge.net/RegexKitLite/}})\ +\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802\sl264\slmult1 + +\f0 \cf0 RegexKitLite (written by John Engelhart) \'82\'f0\'8e\'67\'97\'70\'82\'b3\'82\'b9\'82\'c4\'82\'a2\'82\'bd\'82\'be\'82\'ab\'82\'dc\'82\'b5\'82\'bd\'81\'42RegexKitLite \'82\'cd BSD \'83\'89\'83\'43\'83\'5a\'83\'93\'83\'58\'82\'c5\'8c\'f6\'8a\'4a\'82\'b3\'82\'ea\'82\'c4\'82\'a2\'82\'dc\'82\'b7\'81\'42 +\f1 \ +\pard\pardeftab720\sl264\slmult1 +\cf0 \ +\pard\pardeftab720\sl264\slmult1\qj + +\fs22 \cf3 Copyright \'a9 2008-2010, John Engelhart\ +All rights reserved.\ +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\ +\pard\tx220\tx720\pardeftab720\li720\fi-720\sl264\slmult1\qj +\ls1\ilvl0\cf3 {\listtext \'95 }Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\ +{\listtext \'95 }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.\ +{\listtext \'95 }Neither the name of the Zang Industries nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.\ +\pard\pardeftab720\sl264\slmult1\qj +\cf3 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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 THE COPYRIGHT OWNER OR 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. +\fs24 \cf0 \ +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab529\sl264\slmult1 +\cf0 \ +\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802\pardeftab529\sl264\slmult1 + +\b \cf0 UKXattrMetadataStore +\b0 ({\field{\*\fldinst{HYPERLINK "http://www.zathras.de/angelweb/sourcecode.htm"}}{\fldrslt http://www.zathras.de/angelweb/sourcecode.htm}})\ +\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802\sl264\slmult1 + +\f0 \cf0 \'83\'65\'83\'4c\'83\'58\'83\'67\'83\'47\'83\'93\'83\'52\'81\'5b\'83\'66\'83\'42\'83\'93\'83\'4f\'82\'cc\'83\'74\'83\'40\'83\'43\'83\'8b\'8a\'67\'92\'a3\'91\'ae\'90\'ab\'82\'d6\'82\'cc\'95\'db\'91\'b6\'81\'5e\'93\'c7\'82\'dd\'8d\'9e\'82\'dd\'8b\'40\'94\'5c\'82\'c9 UKXattrMetadataStore (written by M. Uli Kusterer) \'82\'f0\'8e\'67\'97\'70\'82\'b3\'82\'b9\'82\'c4\'82\'a2\'82\'bd\'82\'be\'82\'ab\'82\'dc\'82\'b5\'82\'bd\'81\'42UKXattrMetadataStore \'82\'cdMIT\'83\'89\'83\'43\'83\'5a\'83\'93\'83\'58\'82\'c5\'94\'7a\'95\'7a\'82\'b3\'82\'ea\'82\'c4\'82\'a2\'82\'dc\'82\'b7\'81\'42 +\f1 \ +\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802\pardeftab529\sl264\slmult1 + +\fs22 \cf3 (c) 2006 by M. Uli Kusterer. You may redistribute, modify, use in\ +commercial products free of charge, however distributing modified copies\ +requires that you clearly mark them as having been modified by you, while\ +maintaining the original markings and copyrights. I don't like getting bug\ +reports about code I wasn't involved in.\ +\ +I'd also appreciate if you gave credit in your app's about screen or a similar\ +place. A simple "Thanks to M. Uli Kusterer" is quite sufficient.\ +Also, I rarely turn down any postcards, gifts, complementary copies of\ +applications etc. +\fs24 \cf0 \ +\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802\sl264\slmult1 +\cf0 \ +\ +\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802\sl264\slmult1 + +\f0\b\fs28 \cf0 \'82\'bb\'82\'cc\'91\'bc\'82\'cc\'8f\'ee\'95\'f1\'83\'5c\'81\'5b\'83\'58 +\b0\fs24 \ +- \'8d\'73\'94\'d4\'8d\'86\'95\'5c\'8e\'a6\'8b\'40\'94\'5c\'82\'cd JSDTextView (written by James S. Derry \uc0\u8211 http://www.balthisar.com) \'82\'f0\'83\'78\'81\'5b\'83\'58\'82\'c9\'8e\'67\'82\'ed\'82\'b9\'82\'c4\'82\'a2\'82\'bd\'82\'be\'82\'ab\'82\'dc\'82\'b5\'82\'bd\'81\'42JSDTextView \'82\'cd\'83\'70\'83\'75\'83\'8a\'83\'62\'83\'4e\'83\'68\'83\'81\'83\'43\'83\'93\'82\'c5\'94\'7a\'95\'7a\'82\'b3\'82\'ea\'82\'c4\'82\'a2\'82\'dc\'82\'b7\'81\'42\ +- \'83\'5e\'83\'75\'95\'9d\'82\'cc\'90\'dd\'92\'e8\'81\'5e\'95\'73\'89\'c2\'8e\'8b\'95\'b6\'8e\'9a\'82\'cc\'95\'5c\'8e\'a6\'8b\'40\'94\'5c\'81\'5e\'8a\'4f\'95\'94\'83\'47\'83\'66\'83\'42\'83\'5e\'83\'76\'83\'8d\'83\'67\'83\'52\'83\'8b\'82\'cc\'8e\'c0\'91\'95\'82\'c8\'82\'c7\'82\'cd Smultron (written by Peter Borg \uc0\u8211 http://smultron.sourceforge.net/) \'82\'f0\'8e\'51\'8d\'6c\'82\'c9\'82\'b3\'82\'b9\'82\'c4\'82\'a2\'82\'bd\'82\'be\'82\'ab\'82\'dc\'82\'b5\'82\'bd\'81\'42Smultron \'82\'cd\'81\'412.0\'88\'c8\'8d\'7e\'82\'cd BSD \'83\'89\'83\'43\'83\'5a\'83\'93\'83\'58\'82\'c5\'94\'7a\'95\'7a\'82\'b3\'82\'ea\'82\'c4\'82\'a2\'82\'dc\'82\'b7\'81\'42\ +- \'83\'65\'83\'4c\'83\'58\'83\'67\'83\'47\'83\'93\'83\'52\'81\'5b\'83\'66\'83\'42\'83\'93\'83\'4f\'82\'cc\'8e\'a9\'93\'ae\'94\'46\'8e\'af\'82\'c5\'82\'cc ISO 2022-JP\'81\'41UTF-8 \'82\'a8\'82\'e6\'82\'d1 UTF-16 \'82\'cc\'94\'bb\'92\'e8\'83\'52\'81\'5b\'83\'68\'82\'cd\'81\'41[\'93\'a1\'92\'49\'8d\'48\'96\'5b\'95\'ca\'93\'8f \'81\'7c\'93\'6b\'91\'52\'81\'7c](http://blogs.dion.ne.jp/fujidana/) \'82\'cc\'8b\'4c\'8e\'96\'81\'75Cocoa\'82\'c5\'95\'b6\'8e\'9a\'83\'47\'83\'93\'83\'52\'81\'5b\'83\'66\'83\'42\'83\'93\'83\'4f\'82\'cc\'8e\'a9\'93\'ae\'94\'bb\'95\'ca\'83\'76\'83\'8d\'83\'4f\'83\'89\'83\'80\'82\'f0\'8f\'91\'82\'a2\'82\'c4\'82\'dd\'82\'dc\'82\'b5\'82\'bd\'81\'69http://blogs.dion.ne.jp/fujidana/archives/4169016.html\'81\'6a\'81\'76\'82\'c5\'8c\'f6\'8a\'4a\'82\'b3\'82\'ea\'82\'c4\'82\'a2\'82\'e9 FJDDetectEncoding \'82\'f0\'8e\'51\'8d\'6c\'82\'c9\'82\'b3\'82\'b9\'82\'c4\'82\'a2\'82\'bd\'82\'be\'82\'ab\'82\'dc\'82\'b5\'82\'bd\'81\'42FJDDetectEncoding \'82\'cd BSD \'83\'89\'83\'43\'83\'5a\'83\'93\'83\'58\'82\'c5\'8c\'f6\'8a\'4a\'82\'b3\'82\'ea\'82\'c4\'82\'a2\'82\'dc\'82\'b7\'81\'42\ +- \'83\'74\'83\'40\'83\'43\'83\'8b\'8d\'58\'90\'56\'8c\'9f\'92\'6d\'82\'cc\'95\'cf\'8d\'58\'8a\'6d\'94\'46\'82\'c9MDK\ +- \'83\'45\'83\'46\'83\'75\'83\'54\'83\'43\'83\'67 [HMDT](http://hmdt.jp/) \'82\'c5\'82\'cc\'8f\'ee\'95\'f1\'82\'f0\'95\'9d\'8d\'4c\'82\'ad\'8e\'51\'8d\'6c\'82\'c9\'82\'b3\'82\'b9\'82\'c4\'82\'a2\'82\'bd\'82\'be\'82\'ab\'82\'dc\'82\'b5\'82\'bd\'81\'42\ +- \'83\'45\'83\'46\'83\'75\'83\'54\'83\'43\'83\'67 [Cocoabuilder](http://www.cocoabuilder.com/) \'82\'c5\'82\'cc\'8f\'ee\'95\'f1\'82\'f0\'95\'9d\'8d\'4c\'82\'ad\'8e\'51\'8d\'6c\'82\'c9\'82\'b3\'82\'b9\'82\'c4\'82\'a2\'82\'bd\'82\'be\'82\'ab\'82\'dc\'82\'b5\'82\'bd\'81\'42\ +- \'83\'74\'83\'40\'83\'43\'83\'8b\'83\'68\'83\'8d\'83\'62\'83\'76\'82\'c5\'82\'cc\'95\'b6\'8e\'9a\'97\'f1\'91\'7d\'93\'fc\'8b\'40\'94\'5c\'82\'cc\'81\'41\'90\'b6\'90\'ac\'92\'e8\'8b\'60\'95\'b6\'8e\'9a\'97\'f1\'82\'cd mi (written by Daisuke Kamiyama \uc0\u8211 http://www.mimikaki.net/) \'82\'cc\'91\'7d\'93\'fc\'95\'b6\'8e\'9a\'97\'f1\'92\'e8\'8b\'60\'83\'74\'83\'48\'81\'5b\'83\'7d\'83\'62\'83\'67\'82\'f0\'8e\'51\'8d\'6c\'82\'c9\'82\'b3\'82\'b9\'82\'c4\'82\'a2\'82\'bd\'82\'be\'82\'a2\'82\'c4\'82\'dc\'82\'b7\'81\'42\ +- [\'83\'77\'83\'60\'83\'7d\'83\'52\'83\'93\'83\'73\'83\'85\'81\'5b\'83\'5e](http://hetima.com/) \'82\'c5\'8c\'f6\'8a\'4a\'82\'b3\'82\'ea\'82\'c4\'82\'a2\'82\'e9\'83\'81\'83\'6a\'83\'85\'81\'5b\'83\'4e\'83\'8a\'83\'62\'83\'4e\'8e\'9e\'82\'cc\'83\'82\'83\'66\'83\'42\'83\'74\'83\'40\'83\'43\'83\'41\'83\'4c\'81\'5b\'8e\'e6\'93\'be\'8b\'40\'94\'5c (http://hetima.com/pblog/article.php?id=48) \'82\'f0\'8e\'67\'97\'70\'82\'b3\'82\'b9\'82\'c4\'82\'a2\'82\'bd\'82\'be\'82\'a2\'82\'c4\'82\'dc\'82\'b7\'81\'42\ +- \'83\'74\'83\'40\'83\'43\'83\'8b\'82\'ccMD5\'83\'6e\'83\'62\'83\'56\'83\'85\'94\'e4\'8a\'72\'82\'c9iOS Developer Tips \'82\'cc\'83\'75\'83\'8d\'83\'4f\'8b\'4c\'8e\'96 "Create MD5 Hash from NSString, NSData or a File" (http://iosdevelopertips.com/core-services/create-md5-hash-from-nsstring-nsdata-or-file.html) \'82\'c9\'8c\'66\'8d\'da\'82\'b3\'82\'ea\'82\'c4\'82\'a2\'82\'e9NSData+MD5\'83\'4a\'83\'65\'83\'53\'83\'8a\'82\'cc\'83\'52\'81\'5b\'83\'68\'82\'f0\'8e\'67\'97\'70\'82\'b3\'82\'b9\'82\'c4\'92\'b8\'82\'ab\'82\'dc\'82\'b5\'82\'bd\'81\'42\ +\ +\ + +\b\fs28 \'83\'5c\'81\'5b\'83\'58/\'83\'66\'81\'5b\'83\'5e\'92\'f1\'8b\'9f\ +\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802\sl264\slmult1 + +\b0\fs24 \cf0 CotEditor\'82\'cd\'88\'c8\'89\'ba\'82\'cc\'95\'fb\'81\'58\'82\'a9\'82\'e7\'92\'f1\'8b\'9f\'82\'b5\'82\'c4\'92\'b8\'82\'a2\'82\'bd\'83\'5c\'81\'5b\'83\'58/\'83\'66\'81\'5b\'83\'5e\'82\'f0\'8a\'dc\'82\'f1\'82\'c5\'82\'a2\'82\'dc\'82\'b7\'81\'42\ +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\sl264\slmult1 +\cf0 \ +- \'83\'58\'83\'4e\'83\'8a\'83\'76\'83\'67\'83\'74\'83\'40\'83\'43\'83\'8b:\ + \uc0\u8226 Ruby (Template)\ + s.sawada ({\field{\*\fldinst{HYPERLINK "http://www.mouseup.net/diary/"}}{\fldrslt http://www.mouseup.net/diary/}})\ + \uc0\u8226 Ruby (Ruby_scripts)\ + yosito\ + \uc0\u8226 Python\ + Yuhei Kuratomi ({\field{\*\fldinst{HYPERLINK "http://www.tomapd.net/blog"}}{\fldrslt http://www.tomapd.net/blog}})\ +- \'83\'56\'83\'93\'83\'5e\'83\'62\'83\'4e\'83\'58\'92\'e8\'8b\'60\'83\'74\'83\'40\'83\'43\'83\'8b:\ + \uc0\u8226 "PHP"\ + kaz ({\field{\*\fldinst{HYPERLINK "https://github.com/kaz6120"}}{\fldrslt https://github.com/kaz6120}})\ + \uc0\u8226 "C, C++, Objective-C", "Java"\ + Hiroto Sakai ({\field{\*\fldinst{HYPERLINK "http://www.fan.gr.jp/~sakai/"}}{\fldrslt http://www.fan.gr.jp/~sakai/}})\ + \uc0\u8226 "LaTeX"\ + Yuhei Kuratomi (http://www.tomapd.net/blog\ + \uc0\u8226 "Ruby", "eRuby"\ + Y.Tokutomi ({\field{\*\fldinst{HYPERLINK "http://d.hatena.ne.jp/Tommy1/"}}{\fldrslt http://d.hatena.ne.jp/Tommy1/}})\ + \uc0\u8226 "Haskell"\ + konn (http://d.hatena.ne.jp/mr_konn/\ + \uc0\u8226 "Python"\ + nanasiya ({\field{\*\fldinst{HYPERLINK "http://mahonet.info/~nanasiya/"}}{\fldrslt http://mahonet.info/~nanasiya/}})\ +- \'83\'41\'83\'76\'83\'8a\'83\'50\'81\'5b\'83\'56\'83\'87\'83\'93\'82\'cc\'83\'8d\'81\'5b\'83\'4a\'83\'89\'83\'43\'83\'59\'8d\'ec\'8b\'c6\'82\'c9\'82\'c2\'82\'a2\'82\'c4\'8b\'5a\'8f\'70\'8f\'ee\'95\'f1\'95\'c0\'82\'d1\'82\'c9\'83\'78\'81\'5b\'83\'58\'93\'fa\'96\'7b\'8c\'ea\'89\'bb\'8e\'ab\'8f\'91\'81\'41\'93\'fa\'96\'7b\'8c\'ea\'83\'77\'83\'8b\'83\'76\'83\'74\'83\'40\'83\'43\'83\'8b:\ + iroto Sakai ({\field{\*\fldinst{HYPERLINK "http://www.fan.gr.jp/~sakai/"}}{\fldrslt http://www.fan.gr.jp/~sakai/}})\ +- \'8d\'73\'94\'d4\'8d\'86\'95\'5c\'8e\'a6\'8b\'40\'94\'5c\'82\'cc\'8b\'ad\'89\'bb:\ + Hetima ({\field{\*\fldinst{HYPERLINK "http://hetima.com/"}}{\fldrslt http://hetima.com/}})\ +- \'93\'fc\'97\'cd\'95\'e2\'8a\'ae\'8b\'40\'94\'5c\'82\'cc\'8b\'ad\'89\'bb:\ + Haruka Kataoka ({\field{\*\fldinst{HYPERLINK "http://drumsoft.com/"}}{\fldrslt http://drumsoft.com/}})\ +- \'83\'68\'83\'4c\'83\'85\'83\'81\'83\'93\'83\'67\'82\'c6\'83\'77\'83\'8b\'83\'76\'82\'cc\'89\'70\'96\'f3:\ + Y.Yamamoto\ +- CotEditor 1.2\'82\'dc\'82\'c5\'82\'c5\'8e\'67\'97\'70\'82\'b3\'82\'ea\'82\'c4\'82\'a2\'82\'bd\'83\'49\'83\'8a\'83\'57\'83\'69\'83\'8b\'82\'cc\'83\'41\'83\'76\'83\'8a\'83\'50\'81\'5b\'83\'56\'83\'87\'83\'93\'83\'41\'83\'43\'83\'52\'83\'93\'82\'a8\'82\'e6\'82\'d1\'8f\'91\'97\'de\'83\'41\'83\'43\'83\'52\'83\'93:\ + kaz ({\field{\*\fldinst{HYPERLINK "https://github.com/kaz6120"}}{\fldrslt https://github.com/kaz6120}})\ +- CotEditor 1.3.1\'82\'dc\'82\'c5\'82\'c5\'8e\'67\'97\'70\'82\'b3\'82\'ea\'82\'c4\'82\'a2\'82\'bd\'83\'49\'83\'8a\'83\'57\'83\'69\'83\'8b\'82\'cc\'83\'63\'81\'5b\'83\'8b\'83\'6f\'81\'5b\'83\'41\'83\'43\'83\'52\'83\'93:\ + Y.Yamamoto +\b\fs28 \ +} \ No newline at end of file diff --git a/ja.lproj/DocWindow.xib b/ja.lproj/DocWindow.xib new file mode 100644 index 0000000000..a606cd15bf --- /dev/null +++ b/ja.lproj/DocWindow.xib @@ -0,0 +1,1081 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + lineNumber + incompatibleChar + convertedChar + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + printHeader + headerOneStringIndex + headerTwoStringIndex + headerOneAlignIndex + headerTwoAlignIndex + printHeaderSeparator + printFooter + footerOneStringIndex + footerTwoStringIndex + footerOneAlignIndex + footerTwoAlignIndex + printFooterSeparator + printLineNumIndex + printInvisibleCharIndex + setPrintFont + printColorIndex + + + + + + + + + \ No newline at end of file diff --git a/ja.lproj/HCCManager.xib b/ja.lproj/HCCManager.xib new file mode 100644 index 0000000000..6503a9836b --- /dev/null +++ b/ja.lproj/HCCManager.xib @@ -0,0 +1,395 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + NSUnarchiveFromData + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + NSUnarchiveFromData + + + + + + + + + + + + + + + + + HexColorTransformer + + + + + + + + + + + + + + + + + + + + HexColorTransformer + + + + + + + + + + + + + + NSUnarchiveFromData + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + codeString + + + + + + + + codeString + + + + + + + + + + + + \ No newline at end of file diff --git a/ja.lproj/Indicator.xib b/ja.lproj/Indicator.xib new file mode 100644 index 0000000000..d1501565c5 --- /dev/null +++ b/ja.lproj/Indicator.xib @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ja.lproj/InfoPlist.strings b/ja.lproj/InfoPlist.strings new file mode 100644 index 0000000000..400786ae12 --- /dev/null +++ b/ja.lproj/InfoPlist.strings @@ -0,0 +1,3 @@ +/* Localized versions of Info.plist keys */ + +NSHumanReadableCopyright = "© nakamuxu, 2005-2009\n© usami-k, 2011, 2014\n© 1024jp 2014"; diff --git a/ja.lproj/KeyBindingManager.xib b/ja.lproj/KeyBindingManager.xib new file mode 100644 index 0000000000..3d7602483b --- /dev/null +++ b/ja.lproj/KeyBindingManager.xib @@ -0,0 +1,409 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + キーの列をダブルクリックして編集状態にし、希望のキーを押下してください。 +* コマンドキーが含まれていなければなりません。 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + キーの列をダブルクリックして編集状態にし、希望のキーを押下してください。 +* コマンドキーが含まれていては、いけません。 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + insertCustomText + + + + + + + + \ No newline at end of file diff --git a/ja.lproj/Localizable.strings b/ja.lproj/Localizable.strings new file mode 100644 index 0000000000..82131763a4 --- /dev/null +++ b/ja.lproj/Localizable.strings @@ -0,0 +1,311 @@ +/* +Localizable.strings +(for CotEditor) + +encoding="UTF-8" +Created:2004.12.20 +written by nakamuxu. +http://www.aynimac.com/ +*/ + +/* CEAppController */ +// File open accessory's menu item title. +"Auto-Detect" = "自動認識"; +// Format - Syntax coloring menu item title. +"None" = "なし"; +"Re-color All" = "再カラーリング"; +// Find menu added item title. +"Select Prev Outline Item" = "前のアウトライン項目を選択"; +"Select Next Outline Item" = "次のアウトライン項目を選択"; +"Go To..." = "移動..."; + +/* CEDocumentController */ +"File Open Error" = "ファイルオープンエラー"; +// File open error message +"The File(s) could not be read with unknown error:\n %@" = "未知のエラーで読み込めませんでした:"; +// Custom Line Spacing menu title +"Custom..." = "カスタム..."; +"Custom [%.2f] ..." = "カスタム [%.2f] ..."; + +/* CEDocument */ +// Undo/Redo Action name +"Encoding to \"%@\"" = "エンコーディングを \"%@\" へ"; +"Line Endings to \"%@\"" = "行末コードを\"%@\"へ"; +// convert or reinterpret alert +"File encoding" = "エンコーディング"; +"Convert" = "変換"; +"Reinterpret" = "再解釈"; +"Cancel" = "キャンセル"; +"Do you want to convert or reinterpret it using \"%@\"?" = "\"%@\"を使って変換または再解釈しますか?"; + +"Save Available Strings" = "有効な文字列を保存"; +"Show Incompatible Char(s)" = "非互換文字を表示"; + +"Continue Saving" = "保存を続行"; +"The encoding is \"%@\", but the IANA charset name in text is \"%@\"." = "エンコーディングは \"%@\" ですが、IANA 文字セット名は \"%@\" です。"; +"Do you want to continue processing?" = "保存作業を続けますか?"; + +"Finder's lock could not be released." = "Finder のロックを解除できませんでした。"; +"You can use \"Save As\" to save a copy." = "「別名で保存」でコピーを保存できます。"; + +"Discard Changes" = "変更内容を破棄"; +"The file \'%@\' has unsaved changes." = "ファイル \'%@\' の変更内容は保存されていません。"; +"Do you want to discard the changes and reset the file encodidng?" = "変更内容を破棄してエンコードをリセットしてもよろしいですか?"; + +"Can not reinterpret" = "再解釈できません。"; +"Done" = "OK"; +"The file \'%@\' could not be reinterpreted using the new encoding \"%@\"." = "ファイル \"%@\" はエンコード \"%@\" で再解釈できませんでした。"; + +"new encoding" = "新しいエンコーディング"; +"Change Encoding" = "エンコーディングを変更"; +"The characters would have to be changed or deleted in saving as \"%@\"." = "\"%@\"で保存時に一部の文字を変更または削除する必要があります。"; +"Do you want to continue processing?" = "保存作業を続けますか?"; +"Do you want to change encoding and show incompatible character(s)?" = "エンコーディングを変更し、非互換文字を表示しますか?"; + +"Printed: %@" = "プリント:%@"; + +"Keep CotEditor's Edition" = "CotEditor の編集内容を保持"; +"Update" = "更新"; +"The file has been modified by another process. There are also unsaved changes in CotEditor." = "ファイルは別のプロセスによって変更されました。CotEditor で加えた編集もまだ保存されていません。"; +"Do you want to keep CotEditor's edition or update to the modified edition?" = "CotEditor での編集内容を保持しますか、それとも変更された内容に更新しますか?"; +"Keep Unchanged" = "未編集のままにする"; +"The file has been modified by another process." = "ファイルは別のプロセスによって変更されました。"; +"Do you want to keep unchanged or update to the modified edition?" = "未編集のままにしますか、それとも変更された内容に更新しますか?"; + +/* CEEditorView */ +// undo action name +"Replace text" = "テキストを置換"; +"Insert text" = "テキストを挿入"; +"Insert custom text" = "カスタムテキストを挿入"; +"Shift Right" = "右へシフト"; +"Shift Left" = "左へシフト"; +"to Lowercase" = "小文字に"; +"to Uppercase" = "大文字に"; +"to Capitalized" = "先頭の文字を大文字に"; +"to Fullwidth (jp/Roman)" = "全角英数に"; +"to Halfwidth (jp/Roman)" = "半角英数に"; +"Hiragana to Katakana (jp)" = "ひらがなをカタカナに"; +"Katakana to Hiragana (jp)" = "カタカナをひらがなに"; +"NFD" = "NFD"; +"NFC" = "NFC"; +"NFKD" = "NFKD"; +"NFKC" = "NFKC"; + +// show invisible char menu tooltip +"To display invisible characters, set in Preferences and re-open the document." = "不可視文字を表示させるには、環境設定を変更し、書類を開き直してください。"; + +/* CETextViewCore */ +// contextual menu title +"Font" = "フォント"; +"Utility" = "ユーティリティ"; +"Select All" = "すべてを選択"; + +// Alert strings +"The file is not writable." = "このファイルは書き込み不可です。"; +"Allow Editing" = "編集を許可"; +"Cancel" = "キャンセル"; +"You may not be able to save your changes, but you will be able to save a copy somewhere else. \n\nDo you want to edit this file anyway?" = "このファイルに加えられた変更は保存できない場合がありますが、コピーを別の場所に保存することができます。\n\n変更しますか?"; // どこで使用されているか不明 (2014-03 by 1024jp) +"You may not be able to save your changes, but you will be able to save a copy somewhere else." = "このファイルに加えられた変更は保存できない場合がありますが、コピーを別の場所に保存することができます。"; + +"Finder's lock is ON" = "Finder のロックがかかっています"; +"Don't Save, and Close" = "保存しないで閉じる"; +"Finder's lock could not be released. So, you can not save your changes on this file, but you will be able to save a copy somewhere else. \n\nDo you want to close?" = "Finder のロックを解除できませんでしたので、編集内容をこのファイルに保存できません。「別名で保存」でコピーを保存できます。\n\nファイルを閉じますか?"; + +/* CENavigationBarView */ +// Tooltip +"Go Prev item" = "前の項目へ"; +"Go Next item" = "次の項目へ"; +"Open SplitView" = "エディタを分割"; +"Close SplitView" = "分割されたエディタを閉じる"; + +/* CEStatusBarView */ +"This Dococument is ReadOnly" = "書類は書き込み不可です"; +/* (code in CEEditorView) */ +" Line: %@ / %@ Char: %@ / %@ (>%@) [:%@] Unicode: %@" = " 行: %@ / %@ 文字: %@ / %@ (>%@) [:%@] Unicode: %@"; +" Line: %@ / %@ Char: %@ / %@ (>%@) [:%@]" = " 行: %@ / %@ 文字: %@ / %@ (>%@) [:%@]"; +" Line: %@ / %@ Char: %@ / %@ (>%@)" = " 行: %@ / %@ 文字: %@ / %@ (>%@)"; + +/* CESyntax */ +// Outline Menu title +"< Outline Menu >" = "< アウトラインメニュー >"; +"Print text Coloring ..." = "プリントテキストのカラーリング中…"; +"Text Coloring ..." = "テキストのカラーリング中…"; + +/* CEPreferences */ +// FileDrop Glossary +"<<>>\nThe dropped file's absolute path.\n\n<<>>\nThe relative path between the dropped file and the document.\n\n<<>>\nThe dropped file's name with extension (if exists).\n\n<<>>\nThe dropped file's name without extension.\n\n<<>>\nThe dropped file's extension.\n\n<<>>\nThe dropped file's extension (converted to lowercase).\n\n<<>>\nThe dropped file's extension (converted to uppercase).\n\n<<>>\nThe parent directory name of the dropped file.\n\n<<>>\n(if the dropped file is Image) The image width.\n\n<<>>\n(if the dropped file is Image) The image height." = "<<>>\nドロップ元ファイルの絶対パス\n\n<<>>\nドロップ先ファイルからドロップ元ファイルへの相対パス\n\n<<>>\nドロップ元ファイルの、拡張子を含むファイル名\n\n<<>>\nドロップ元ファイルの名前から拡張子を削除した文字列\n\n<<>>\nドロップ元ファイルの拡張子\n\n<<>>\nドロップ元ファイルの拡張子(小文字)\n\n<<>>\nドロップ元ファイルの拡張子(大文字)\n\n<<>>\nドロップ元ファイルのあるディレクトリ名\n\n<<>>\n画像の幅(ドロップ元ファイルが画像ファイルのときのみ有効)\n\n<<>>\n画像の高さ(ドロップ元ファイルが画像ファイルのときのみ有効)"; + +/* CEPreferencesTabController */ +// Pref tab toolbar label +"General" = "一般"; +"Window" = "ウインドウ"; +"View" = "表示"; +"Format" = "フォーマット"; +"Syntax" = "シンタックス"; +"File Drop" = "ファイルドロップ"; +"Key Bindings" = "キーバインド"; +"Print" = "プリント"; + +// Pref Format tab +// encoding menu alert sheet +"Are you sure you want to change to \"%@\"?" = "本当に\"%@\"へ変更しますか?"; +"Change to \"%@\"" = "\"%@\"へ変更"; +"Revert to \"Auto-Detect\"" = "\"自動認識\"へ戻す"; +"The default \"Auto-Detect\" is recommended for most cases." = "ほとんどの場合、デフォルトの\"自動認識\"が推奨されます。"; + +/* CESyntaxColoringManager */ +// Syntax coloring popup button title +"Choose style..." = "スタイルを選択..."; +// Syntax coloring style name was set to blank message +"Input the Style Name !" = "スタイル名を入力してください!"; +// Syntax coloring style name already exists +"\"%@\" is already exist. Input new name." = "\"%@\" は既に使われています。ほかの名前を入力してください。"; +// selected Syntax coloring style name was original +"The default style name cannot be changed." = "デフォルトのスタイル名は変更できません。"; +// Suffix of copied syntax coloring style +" copy" = " コピー"; +// Delete syntax coloring style alert message +"Delete the Syntax coloring style \"%@\" ?" = "カラーリングスタイル \"%@\" を削除してもよろしいですか?"; +// syntax coloring style alert button title +"Cancel" = "キャンセル"; +"Delete" = "削除"; +"Replace" = "置換"; +// Delete syntax coloring style alert information +"Deleted style cannot be restored." = "スタイルを削除すると元に戻せません。"; +// Deleted error +"Sorry, could not delete \"%@\"." = "\"%@\" を削除できませんでした。"; +// Import syntax coloring style file choose openPanel button +"Import" = "読み込み"; +// Importing same name style alert title +"the \"%@\" style file already exists." = "スタイルファイル \"%@\" は既に存在しています。"; +// Importing same name style alert info +"Do you want to replace it ?\nReplaced style cannot be restored." = "スタイルを置き換えますか?\n置き換えたスタイルは元に戻せません。"; +// Imported error +"Error occured." = "エラーが起きました。"; +"Sorry, could not import \"%@\"." = "\"%@\" を読み込めませんでした。"; +// Export syntax coloring style file savePanel label +"Export As:" = "名前:"; +// Extension Error message +"The following Extension list is registered by two or more styles for one extension. \nCotEditor uses the first style.\n\n" = "この拡張子はいくつかのスタイルで登録されています。\nCotEditor は最初のスタイルを使用します。\n\n"; +// Extension Error list title +"\"Extension\" = \"Style Names\"\n" = "\"拡張子\" = \"スタイル名\"\n"; +// Extension NO Error message +// syntax element check result (no error) +"No Error found." = "エラーはありませんでした。"; +// syntax element check result (1 error found) +"One Error was Found !\n\n" = "エラーがありました!\n\n"; +// syntax element check result (2 or more errors found) +"%i Errors were Found !\n\n" = "%i 個のエラーがありました!\n\n"; +// syntax element check failed +"An Error occuerd in Checking.\nNumber of selected object is 2 or more in '_styleController'." = "チェック中にエラーが起きました。\n'_styleController' で選択されているオブジェクトが 2 個以上あります。"; +// File Drop setting delete +"Delete the File Drop setting ?\n \"%@\"" = "ファイルドロップ設定 \"%@\" を削除してもよろしいですか?"; +"Deleted setting cannot be restored." = "設定を削除すると元に戻せません。"; + +/* CEWindowsController */ +"ON" = "ON"; +"OFF" = "OFF"; + +/* CEKeyBindingManager */ +// Sheet text +"'%@' have already been used. Edit it again." = "'%@' は既に使われています。再編集してください。"; +"'%@' NOT include Command Key. Edit it again." = "'%@' にはコマンドキーが含まれていません。再編集してください。"; +"'%@' include Command Key. Edit it again." = "'%@' はコマンドキーを含んでいます。再編集してください。"; + +/* Toolbar (Label, Palette label, Tooltip) */ +// Get Info +"Get Info" = "情報を見る"; +"Show document information" = "書類情報を表示"; + +// Show Incompatible Char +"Incompatible Char" = "非互換文字"; +"Show Incompatible Char(s)" = "非互換文字を表示"; +"Show Incompatible Char for the encoding" = "エンコーディングと非互換の文字を表示"; + +// Bigger Font +"Bigger" = "大きく"; +"Bigger Font" = "文字を大きく"; +"Increases Font size" = "フォントサイズを大きく"; + +// Smaller Font +"Smaller" = "小さく"; +"Smaller Font" = "文字を小さく"; +"Decreases Font size" = "フォントサイズを小さく"; + +// Shift Left +"Shift Left" = "左へシフト"; +"Shift line to Left" = "行を左へシフト"; + +// Shift Right +"Shift Right" = "右へシフト"; +"Shift line to Right" = "行を右へシフト"; + +// Navigation Bar +"Navigation Bar" = "ナビゲーションバー"; +"Show / Hide Navigation Bar" = "ナビゲーションバーを表示/隠す"; +"Show or Hide Navigation Bar of window" = "ナビゲーションバーを表示/隠す"; + +// Show Line Num +"LineNum" = "行番号"; +"Show / Hide Line Number" = "行番号を表示/隠す"; +"Show or Hide Line Number of text" = "テキストの行番号を表示/隠す"; + +// Show Status Bar +"Status Bar" = "ステータスバー"; +"Show / Hide Status Bar" = "ステータスバーを表示/隠す"; +"Show or Hide Status Bar of window" = "ステータスバーを表示/隠す"; + +// Show Invisible Chars +"Invisible Chars" = "不可視文字"; +"Show / Hide Invisible Chars" = "不可視文字を表示/隠す"; +"Show or Hide Invisible Characters in Text" = "テキスト中の不可視文字を表示/隠す"; + +// Show Page Guide +"Page Guide" = "ページガイド"; +"Show / Hide Page Guide" = "ページガイドを表示/隠す"; +"Show or Hide Page Guide Line" = "ページガイドを表示/隠す"; + +// Wrap lines +"Wrap lines" = "行を折り返す"; +"Toggle Wrap lines" = "行の折り返しを切替"; + +// Line Endings +"Line Endings" = "行末コード"; + +// File Encoding +"File Encoding" = "エンコーディング"; + +// Syntax Coloring +"Syntax Coloring" = "カラーリング"; + +// Re-color All +"Re-color" = "再カラーリング"; +"Re-color All" = "再カラーリング"; +"Do Re-color whole document" = "書類全体を再カラーリング"; + +// Edit HexColorCode as Fore +"Edit as Fore" = "文字色編集"; +"Edit HexColorCode as Fore" = "文字色として編集"; +"Open HexColorCode Editor to Edit as ForeColor" = "カラーコードエディタを開き、文字色として編集する"; + +// Edit HexColorCode as BG +"Edit as BG" = "背景色編集"; +"Edit HexColorCode as BG" = "背景色として編集"; +"Open HexColorCode Editor to Edit as BackgroundColor" = "カラーコードエディタを開き、背景色として編集する"; + + +/* CEScriptManager */ +// menu title +"Script Menu" = "スクリプトメニュー"; +"Open Scripts Folder" = "スクリプトフォルダを開く"; +"Update Script Menu" = "スクリプトメニューを更新"; + +// script menu item tooltips +"\"Opt + click\" to open in Script Editor." = "スクリプトエディタで開くには、\"Opt + クリック\" します。"; + +// Alert message +"The script \"%@\" does not exist.\n\nCheck it and do \"Update Script Menu\"." = "スクリプト \"%@\" は存在しません。\n\nファイルを確認し、\"スクリプトメニューを更新\" してください。"; +"%@\nErrorNumber: %i" = "%@\nエラー番号:%i"; +"Could not open the script file \"%@\"." = "スクリプトファイル \"%@\" を開けませんでした。"; +"Cannnot execute the script \"%@\".\nShell scripts have to have the execute permission.\n\nCheck it\'s permission." = "スクリプト \"%@\" を実行できません。\nシェルスクリプトの場合は実行権が必要です。\n\nアクセス権を確認してください。"; +"Could not read the script \"%@\"." = "スクリプト\"%@\"を読み込めませんでした。"; \ No newline at end of file diff --git a/ja.lproj/MainMenu.xib b/ja.lproj/MainMenu.xib new file mode 100644 index 0000000000..adcb97d16e --- /dev/null +++ b/ja.lproj/MainMenu.xib @@ -0,0 +1,1013 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +IA + + + + + + + + + + + + + curWindowAlpha + curAlphaOnlyTextView + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ja.lproj/Preferences.xib b/ja.lproj/Preferences.xib new file mode 100644 index 0000000000..ce1431a8f3 --- /dev/null +++ b/ja.lproj/Preferences.xib @@ -0,0 +1,2905 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + NSUnarchiveFromData + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + NSUnarchiveFromData + + + + + + + + + + + + NSUnarchiveFromData + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + NSUnarchiveFromData + + + + + + + + + + + + + NSUnarchiveFromData + + + + + + + + + + + + + + + + + + + + + + + + + + NSUnarchiveFromData + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 0.25 + 0.5 + 0.75 + 1.0 + 1.25 + 1.5 + 1.75 + 2.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + NSUnarchiveFromData + + + + + + + + + + + + + + + + + + + + + NSUnarchiveFromData + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + NSUnarchiveFromData + + + + + + + + + + + + + NSUnarchiveFromData + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + NSUnarchiveFromData + + + + + + + + + + + + + + NSUnarchiveFromData + + + + + + + + + + + + + + + + + + + + + NSUnarchiveFromData + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <<<ABSOLUTE-PATH>>> +The dropped file's absolute path. +<<<RELATIVE-PATH>>> +The relative path between the dropped file and the document. +<<<FILENAME>>> +The dropped file's name with extension (if exists). +<<<FILENAME-NOSUFFIX>>> +The dropped file's name without extension. +<<<FILEEXTENSION>>> +The dropped file's extension. +<<<FILEEXTENSION-LOWER>>> +The dropped file's extension (converted to lowercase). +<<<FILEEXTENSION-UPPER>>> +The dropped file's extension (converted to uppercase). +<<<DIRECTORY>>> +The parent directory name of the dropped file. +<<<IMAGEWIDTH>>> +(if the dropped file is Image) The image width. +<<<IMAGEHEIGHT>>> +(if the dropped file is Image) The image height. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + このリストは自動認識やメニューで使われます。 +自動認識では、上にあるものから順に判別します。 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + extensions + formatString + windowHeight + footerOneAlignIndex + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ja.lproj/ReadMe.rtf b/ja.lproj/ReadMe.rtf new file mode 100644 index 0000000000..a8b4544bc6 --- /dev/null +++ b/ja.lproj/ReadMe.rtf @@ -0,0 +1,121 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf190 +\readonlydoc1{\fonttbl\f0\fswiss\fcharset0 Helvetica;\f1\fnil\fcharset128 HiraKakuPro-W3;\f2\fnil\fcharset128 HiraKakuProN-W3; +} +{\colortbl;\red255\green255\blue255;} +\paperw12240\paperh15840\vieww13460\viewh13880\viewkind0 +\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 + +\f0\b\fs30 \cf0 README\ +\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802\qr + +\b0\fs24 \cf0 2014-03-19\ +\ +\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 + +\f1\b \cf0 \'90\'b3\'8b\'4b\'95\'5c\'8c\'bb\'8d\'5c\'95\'b6\'82\'c9\'82\'c2\'82\'a2\'82\'c4 +\f0\b0 \ +\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 + +\f2 \cf0 CotEditor\'82\'c5\'82\'cd\'81\'41\'83\'4a\'83\'89\'81\'5b\'83\'8a\'83\'93\'83\'4f\'82\'cc\'90\'b3\'8b\'4b\'95\'5c\'8c\'bb\'92\'e8\'8b\'60\'82\'cc\'8c\'9f\'8d\'f5\'82\'c9 +\f0 RegexKitLite +\f2 \'81\'41\'92\'ca\'8f\'ed\'82\'cc\'8c\'9f\'8d\'f5\'82\'e2\'83\'41\'83\'45\'83\'67\'83\'89\'83\'43\'83\'93\'83\'81\'83\'6a\'83\'85\'81\'5b\'82\'cd +\f0 OgreKit +\f2 \'82\'f0\'8e\'67\'97\'70\'82\'b5\'82\'c4\'82\'a2\'82\'dc\'82\'b7\'81\'42\'82\'bb\'82\'ea\'82\'bc\'82\'ea\'82\'cc\'90\'b3\'8b\'4b\'95\'5c\'8c\'bb\'8d\'5c\'95\'b6\'82\'c9\'88\'d9\'82\'c8\'82\'e9\'95\'94\'95\'aa\'82\'aa\'82\'a0\'82\'e8\'82\'dc\'82\'b7\'82\'cc\'82\'c5\'97\'af\'88\'d3\'82\'b5\'82\'c4\'89\'ba\'82\'b3\'82\'a2\'81\'42\ +\ +\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 + +\f0 \cf0 OgreKit +\f2 \'82\'c5\'8e\'67\'97\'70\'82\'b5\'82\'c4\'82\'a2\'82\'e9 Onigmo ( +\f0 Oniguruma-mod) +\f2 \'82\'cc\'8d\'5c\'95\'b6\'92\'e8\'8b\'60\ +\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 +{\field{\*\fldinst{HYPERLINK "https://raw.github.com/k-takata/Onigmo/master/doc/RE.ja"}}{\fldrslt +\f0 \cf0 https://raw.github.com/k-takata/Onigmo/master/doc/RE.ja}} +\f0 \ +\ +RegexkitLite +\f2 \'82\'c5\'8e\'67\'97\'70\'82\'b5\'82\'c4\'82\'a2\'82\'e9 +\f0 ICU +\f2 \'82\'cc\'8d\'5c\'95\'b6\'92\'e8\'8b\'60\ +\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 +{\field{\*\fldinst{HYPERLINK "http://regexkit.sourceforge.net/RegexKitLite/#ICURegularExpressionSyntax"}}{\fldrslt +\f0 \cf0 http://regexkit.sourceforge.net/RegexKitLite/#ICURegularExpressionSyntax}} +\f0 \ +\ +\ +\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 + +\f1\b \cf0 \'93\'ae\'8d\'ec\'8a\'c2\'8b\'ab +\f0\b0 \ +OS X 10.7+ +\f1 \ +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720 + +\f0 \cf0 \ +\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 +\cf0 \ +\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 + +\f1\b \cf0 \'8a\'4a\'94\'ad\'8a\'c2\'8b\'ab +\f0\b0 \ +Mac OS X 10.9\ +Xcode 5\ +\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 + +\f1 \cf0 \ +\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 + +\f0 \cf0 \ +\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 + +\f1\b \cf0 \'94\'7a\'95\'7a\'83\'79\'81\'5b\'83\'57 +\b0 \ +\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 +{\field{\*\fldinst{HYPERLINK "http://coteditor.github.io"}}{\fldrslt +\f0 \cf0 http://coteditor.github.io}}\ +\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 + +\f0 \cf0 \ +\ +\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 + +\f1\b \cf0 \'83\'5c\'81\'5b\'83\'58\'83\'52\'81\'5b\'83\'68\'82\'c9\'82\'c2\'82\'a2\'82\'c4 +\b0 \ +CotEditor \'82\'cc\'83\'5c\'81\'5b\'83\'58\'83\'52\'81\'5b\'83\'68\'82\'cdGitHub\'82\'cc{\field{\*\fldinst{HYPERLINK "https://github.com/coteditor/"}}{\fldrslt CotEditor Project}}\'83\'79\'81\'5b\'83\'57\'82\'a9\'82\'e7\'8e\'e6\'93\'be\'89\'c2\'94\'5c\'82\'c5\'82\'b7\'81\'42 +\f0 \ +\ +\ + +\f1\b \'83\'89\'83\'43\'83\'5a\'83\'93\'83\'58 +\f0\b0 \ +GPL (GNU GENERAL PUBLIC LICENSE)\ +\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 + +\f1 \cf0 \'96\'7b\'83\'76\'83\'8d\'83\'4f\'83\'89\'83\'80\'82\'cd\'83\'74\'83\'8a\'81\'5b\'81\'45\'83\'5c\'83\'74\'83\'67\'83\'45\'83\'46\'83\'41\'82\'c5\'82\'b7\'81\'42\'82\'a0\'82\'c8\'82\'bd\'82\'cd\'81\'41Free Software Foundation \'82\'aa\'8c\'f6\'95\'5c\'82\'b5\'82\'bdGNU \'88\'ea\'94\'ca\'8c\'f6\'97\'4c\'8e\'67\'97\'70\'8b\'96\'91\'f8\'82\'cc\'81\'75\'83\'6f\'81\'5b\'83\'57\'83\'87\'83\'93\'82\'51\'81\'76\'88\'bd\'82\'a2\'82\'cd\'82\'bb\'82\'ea\'88\'c8\'8d\'7e\'82\'cc\'8a\'65\'83\'6f\'81\'5b\'83\'57\'83\'87\'83\'93\'82\'cc\'92\'86\'82\'a9\'82\'e7\'82\'a2\'82\'b8\'82\'ea\'82\'a9\'82\'f0\'91\'49\'91\'f0\'82\'b5\'81\'41\'82\'bb\'82\'cc\'83\'6f\'81\'5b\'83\'57\'83\'87\'83\'93\'82\'aa\'92\'e8\'82\'df\'82\'e9\'8f\'f0\'8d\'80\'82\'c9\'8f\'5d\'82\'c1\'82\'c4\'96\'7b\'83\'76\'83\'8d\'83\'4f\'83\'89\'83\'80\'82\'f0\'8d\'c4\'94\'d0\'95\'7a\'82\'dc\'82\'bd\'82\'cd\'95\'cf\'8d\'58\'82\'b7\'82\'e9\'82\'b1\'82\'c6\'82\'aa\'82\'c5\'82\'ab\'82\'dc\'82\'b7\'81\'42\ +\'96\'7b\'83\'76\'83\'8d\'83\'4f\'83\'89\'83\'80\'82\'cd\'97\'4c\'97\'70\'82\'c6\'82\'cd\'8e\'76\'82\'a2\'82\'dc\'82\'b7\'82\'aa\'81\'41\'94\'d0\'95\'7a\'82\'c9\'82\'a0\'82\'bd\'82\'c1\'82\'c4\'82\'cd\'81\'41\'8e\'73\'8f\'ea\'90\'ab\'8b\'79\'82\'d1\'93\'c1\'92\'e8\'96\'da\'93\'49\'93\'4b\'8d\'87\'90\'ab\'82\'c9\'82\'c2\'82\'a2\'82\'c4\'82\'cc\'88\'c3\'96\'d9\'82\'cc\'95\'db\'8f\'d8\'82\'f0\'8a\'dc\'82\'df\'82\'c4\'81\'41\'82\'a2\'82\'a9\'82\'c8\'82\'e9\'95\'db\'8f\'d8\'82\'e0\'8d\'73\'82\'c8\'82\'a2\'82\'dc\'82\'b9\'82\'f1\'81\'42\ +GPL\'83\'89\'83\'43\'83\'5a\'83\'93\'83\'58\'82\'c9\'82\'c2\'82\'a2\'82\'c4\'82\'cc\'91\'53\'95\'b6\'82\'cd\'88\'c8\'89\'ba\'82\'cc\'83\'54\'83\'43\'83\'67\'82\'f0\'8e\'51\'8f\'c6\'82\'b5\'82\'c4\'89\'ba\'82\'b3\'82\'a2\'81\'42\ +\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 +{\field{\*\fldinst{HYPERLINK "http://www.gnu.org/licenses/gpl.html"}}{\fldrslt \cf0 http://www.gnu.org/licenses/gpl.html}}\ +\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 + +\f0 \cf0 \ +\ +\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 + +\f1\b \cf0 \'92\'98\'8d\'ec\'8c\'a0 +\f0\b0 \ +CotEditor +\f2 \'82\'cd +\f0 nakamuxu +\f2 \'82\'c9\'82\'e6\'82\'c1\'82\'c4\'90\'b6\'82\'dd\'8f\'6f\'82\'b3\'82\'ea\'81\'41\'8c\'bb\'8d\'dd\'82\'cd +\f0 usami-k +\f2 \'82\'c6 +\f0 1024jp +\f2 \'82\'c9\'82\'e6\'82\'c1\'82\'c4\'8a\'4a\'94\'ad\'82\'b3\'82\'ea\'82\'c4\'82\'a2\'82\'dc\'82\'b7\'81\'42 +\f0 \ +Copyright (c) 2005 nakamuxu\ +Copyright (c) 2011, 2014 usami-k\ +Copyright (c) 2014 1024jp\ +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720 +\cf0 \ +} \ No newline at end of file diff --git a/ja.lproj/ScriptManager.xib b/ja.lproj/ScriptManager.xib new file mode 100644 index 0000000000..44f94711b7 --- /dev/null +++ b/ja.lproj/ScriptManager.xib @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ja.lproj/SyntaxManager.xib b/ja.lproj/SyntaxManager.xib new file mode 100644 index 0000000000..770aed5003 --- /dev/null +++ b/ja.lproj/SyntaxManager.xib @@ -0,0 +1,1806 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Cg + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Cg + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Cg + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + styleName + commandsArray + commandsColor + commentsArray + keywordsArray + ignoreCase + valuesArray + extensions + stringsArray + charactersArray + numbersArray + outlineMenuArray + completionsArray + + + + + keyString + ignoreCase + regularExpression + beginString + endString + + + + + + + + keyString + ignoreCase + regularExpression + beginString + endString + + + + + + + + keyString + regularExpression + ignoreCase + beginString + endString + + + + + + + + keyString + ignoreCase + regularExpression + beginString + endString + + + + + + + + keyString + + + + + + + + keyString + ignoreCase + regularExpression + beginString + endString + + + + + + + + keyString + ignoreCase + regularExpression + beginString + endString + + + + + + + + keyString + ignoreCase + regularExpression + beginString + endString + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + beginString + ignoreCase + keyString + bold + underline + italic + + + + + + + + keyString + + + + + + + + + + + \ No newline at end of file diff --git a/Docs/JP/History-jp.rtf b/ja.lproj/Version History.rtf similarity index 94% rename from Docs/JP/History-jp.rtf rename to ja.lproj/Version History.rtf index 622a0f6fc4..4cdf88e838 100644 --- a/Docs/JP/History-jp.rtf +++ b/ja.lproj/Version History.rtf @@ -1,7 +1,8 @@ -{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf320 -\readonlydoc1{\fonttbl\f0\fswiss\fcharset0 Helvetica;\f1\fnil\fcharset128 HiraKakuPro-W3;} -{\colortbl;\red255\green255\blue255;} -\vieww13460\viewh13880\viewkind0 +{\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf190 +\readonlydoc1{\fonttbl\f0\fswiss\fcharset0 Helvetica;\f1\fnil\fcharset128 HiraKakuPro-W3;\f2\fnil\fcharset0 LucidaGrande; +} +{\colortbl;\red255\green255\blue255;\red103\green103\blue103;} +\paperw12240\paperh15840\vieww13460\viewh13880\viewkind0 \pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 \f0\b\fs30 \cf0 CotEditor\ @@ -14,7 +15,7 @@ \fs24 \cf0 \ \pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 -\b \cf0 1.3.1 [2012.02.12] +\b \cf0 1.4 [2014-03-19] \b0 \ \pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 @@ -22,13 +23,81 @@ \pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 \cf0 \ulnone \'81\'69\'82\'c8\'82\'b5\'81\'6a\ \pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 -\cf0 \ul \ulc0 \'81\'83\'92\'c7\'89\'c1\'81\'5e\'8f\'43\'90\'b3\'81\'5e\'95\'cf\'8d\'58\'81\'84\ulnone \ +\cf0 \ul \'81\'83\'92\'c7\'89\'c1\'81\'5e\'8f\'43\'90\'b3\'81\'5e\'95\'cf\'8d\'58\'81\'84\ulnone \ +* \'91\'ce\'89\'9e\'82\'b7\'82\'e9OS\'82\'f0OS X 10.7\'88\'c8\'8f\'e3\'82\'c9\'95\'cf\'8d\'58\ +* 64-bit\'82\'c9\'91\'ce\'89\'9e\ +* Retina\'83\'66\'83\'42\'83\'58\'83\'76\'83\'8c\'83\'43\'82\'c9\'91\'ce\'89\'9e\ +* \'8c\'9f\'8d\'f5\'81\'5e\'92\'75\'8a\'b7\'8b\'40\'94\'5c\'82\'c5\'8e\'67\'97\'70\'82\'b3\'82\'ea\'82\'e9\'90\'b3\'8b\'4b\'95\'5c\'8c\'bb\'83\'89\'83\'43\'83\'75\'83\'89\'83\'8a\'82\'aa\'8b\'53\'8e\'d4\'82\'cc\'83\'74\'83\'48\'81\'5b\'83\'4e\'82\'c5\'82\'a0\'82\'e9\'8b\'53\'89\'5f\'82\'c9\'95\'cf\'8d\'58 +\f2 \uc0\u8317 +\f1 \uc0\u185 \ +\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 +\cf0 * \'90\'e6\'93\'c7\'82\'dd/\'96\'df\'82\'e8\'93\'c7\'82\'dd\'82\'f0\'8e\'6e\'82\'df\'82\'c6\'82\'b7\'82\'e9Perl 5.10+\'82\'c5\'92\'e8\'8b\'60\'82\'b3\'82\'ea\'82\'e9\'91\'bd\'82\'ad\'82\'cc\'90\'b3\'8b\'4b\'95\'5c\'8c\'bb\'8b\'4c\'96\'40\'82\'aa\'8e\'67\'97\'70\'89\'c2\'94\'5c\'82\'c9\ +* \'83\'41\'83\'76\'83\'8a\'83\'50\'81\'5b\'83\'56\'83\'87\'83\'93\'83\'41\'83\'43\'83\'52\'83\'93\'81\'45\'8f\'91\'97\'de\'83\'41\'83\'43\'83\'52\'83\'93\'81\'45\'83\'63\'81\'5b\'83\'8b\'83\'6f\'81\'5b\'83\'41\'83\'43\'83\'52\'83\'93\'82\'f0\'92\'b2\'90\'ae\ +* \'83\'63\'81\'5b\'83\'8b\'83\'6f\'81\'5b\'83\'41\'83\'43\'83\'52\'83\'93\'82\'c9\'8f\'ac\'82\'b3\'82\'a2\'83\'54\'83\'43\'83\'59\'82\'f0\'92\'c7\'89\'c1\ +* \'81\'75Apache\'81\'76\'81\'75Markdown\'81\'76\'81\'75Scala\'81\'76\'81\'75XML\'81\'76\'82\'cc\'83\'56\'83\'93\'83\'5e\'83\'62\'83\'4e\'83\'58\'92\'e8\'8b\'60\'82\'f0\'92\'c7\'89\'c1 +\f2 \uc0\u8317 +\f1 \uc0\u178 \ +* \'81\'75PHP\'81\'76\'83\'56\'83\'93\'83\'5e\'83\'62\'83\'4e\'83\'58\'92\'e8\'8b\'60\'82\'f0\'8d\'58\'90\'56 +\f2 \uc0\u8317 +\f1 \uc0\u178 \ + * PHP5.5\'82\'dc\'82\'c5\'91\'ce\'89\'9e\ + * \'83\'76\'83\'8d\'83\'70\'83\'65\'83\'42\'81\'45\'90\'94\'92\'6c\'82\'f0\'83\'4a\'83\'89\'81\'5b\'83\'8a\'83\'93\'83\'4f\ + * \'83\'41\'83\'45\'83\'67\'83\'89\'83\'43\'83\'93\'83\'81\'83\'6a\'83\'85\'81\'5b\'82\'cc\'89\'fc\'91\'50\ +* \'81\'75Python\'81\'76\'83\'56\'83\'93\'83\'5e\'83\'62\'83\'4e\'83\'58\'92\'e8\'8b\'60\'82\'f0\'8d\'58\'90\'56 +\f2 \uc0\u8317 +\f1 \uc0\u178 \ + * Python3\'8c\'6e\'82\'c9\'91\'ce\'89\'9e (>= 3.3)\ + * \'83\'66\'83\'52\'83\'8c\'81\'5b\'83\'5e\'82\'cc\'83\'4a\'83\'89\'81\'5b\'83\'8a\'83\'93\'83\'4f\ + * \'95\'a1\'91\'66\'90\'94\'82\'e2\'90\'568\'90\'69\'90\'94\'8b\'4c\'96\'40\'82\'f0\'8a\'dc\'82\'de\'90\'94\'92\'6c\'83\'4a\'83\'89\'81\'5b\'83\'8a\'83\'93\'83\'4f\'82\'cc\'89\'fc\'91\'50\ + * \'95\'b6\'8e\'9a\'97\'f1\'83\'4a\'83\'89\'81\'5b\'83\'8a\'83\'93\'83\'4f\'82\'cc\'89\'fc\'91\'50\ + * print\'95\'b6\'82\'c6print\'8e\'ae\'82\'cc\'93\'68\'82\'e8\'95\'aa\'82\'af\ +* \'81\'75LaTeX\'81\'76\'83\'56\'83\'93\'83\'5e\'83\'62\'83\'4e\'83\'58\'92\'e8\'8b\'60\'82\'f0\'8d\'58\'90\'56\ + * `\{\}` \'8b\'4c\'8d\'86\'82\'aa\'90\'b3\'82\'b5\'82\'ad\'83\'47\'83\'58\'83\'50\'81\'5b\'83\'76\'82\'c5\'82\'ab\'82\'c4\'82\'a2\'82\'c8\'82\'a9\'82\'c1\'82\'bd\'82\'cc\'82\'f0\'8f\'43\'90\'b3\ +* \'8a\'67\'92\'a3\'8e\'71 py \'82\'a8\'82\'e6\'82\'d1 markdown, md, xml, scala, conf \'82\'f0\'83\'68\'83\'4c\'83\'85\'83\'81\'83\'93\'83\'67\'83\'5e\'83\'43\'83\'76\'82\'c9\'92\'c7\'89\'c1\ +* \'81\'75\'83\'74\'83\'8b\'83\'58\'83\'4e\'83\'8a\'81\'5b\'83\'93\'82\'c9\'82\'b7\'82\'e9\'81\'76\'83\'81\'83\'6a\'83\'85\'81\'5b\'8d\'80\'96\'da\'82\'f0\'81\'75\'95\'5c\'8e\'a6\'81\'76\'83\'81\'83\'6a\'83\'85\'81\'5b\'82\'c9\'92\'c7\'89\'c1\ +* \'81\'75\'8a\'c2\'8b\'ab\'90\'dd\'92\'e8\'81\'76\'81\'75\'95\'db\'91\'b6\'81\'76\'81\'75\'95\'ca\'96\'bc\'82\'c5\'95\'db\'91\'b6\'81\'76\'81\'75\'83\'79\'81\'5b\'83\'57\'90\'dd\'92\'e8\'81\'76\'81\'75\'93\'a7\'96\'be\'93\'78\'83\'70\'83\'6c\'83\'8b\'81\'76\'82\'cc5\'82\'c2\'82\'cc\'83\'41\'83\'43\'83\'52\'83\'93\'82\'f0\'83\'63\'81\'5b\'83\'8b\'83\'6f\'81\'5b\'82\'a9\'82\'e7\'8d\'ed\'8f\'9c\ +* \'83\'58\'83\'4e\'83\'8a\'83\'76\'83\'67\'83\'74\'83\'48\'83\'8b\'83\'5f\'93\'e0\'82\'cc\'83\'68\'83\'62\'83\'67\'82\'a9\'82\'e7\'8e\'6e\'82\'dc\'82\'e9\'89\'42\'82\'b5\'83\'74\'83\'40\'83\'43\'83\'8b\'82\'cd\'83\'81\'83\'6a\'83\'85\'81\'5b\'82\'c9\'95\'5c\'8e\'a6\'82\'b5\'82\'c8\'82\'a2\'82\'e6\'82\'a4\'95\'cf\'8d\'58\ +* \'83\'41\'83\'89\'81\'5b\'83\'67\'82\'cc\'95\'b6\'96\'ca\'82\'f0\'90\'84\'9d\'c8\ +* \'83\'45\'83\'43\'83\'93\'83\'68\'83\'45\'82\'e2\'83\'70\'83\'6c\'83\'8b\'97\'de\'82\'cc\'8c\'a9\'82\'bd\'96\'da\'82\'f0\'92\'b2\'90\'ae\ +* \'83\'4a\'83\'89\'81\'5b\'83\'52\'81\'5b\'83\'68\'83\'47\'83\'66\'83\'42\'83\'5e\'82\'cc\'89\'70\'96\'bc HexColorCode Editor \'82\'f0 Color Code Editor \'82\'c9\'89\'fc\'96\'bc\ +* \'83\'68\'83\'4c\'83\'85\'83\'81\'83\'93\'83\'67\'82\'cc\'8d\'58\'90\'56\ +\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 +\cf0 \ul \'81\'83\'83\'6f\'83\'4f\'83\'74\'83\'42\'83\'62\'83\'4e\'83\'58\'81\'84\ulnone \ +* \'95\'cf\'8d\'58\'82\'aa\'82\'c8\'82\'a2\'82\'cc\'82\'c9\'95\'73\'88\'d3\'82\'c9\'81\'75\'95\'ca\'82\'cc\'83\'76\'83\'8d\'83\'5a\'83\'58\'82\'c9\'82\'e6\'82\'c1\'82\'c4\'95\'cf\'8d\'58\'82\'b3\'82\'ea\'82\'dc\'82\'b5\'82\'bd\'81\'42\'81\'76\'82\'c6\'82\'a2\'82\'a4\'83\'41\'83\'89\'81\'5b\'83\'67\'82\'aa\'8f\'6f\'82\'e9\'96\'e2\'91\'e8\'82\'f0\'8f\'43\'90\'b3\ +* \'8f\'89\'89\'f1\'8b\'4e\'93\'ae\'8e\'9e\'82\'c9\'81\'75\'8a\'4a\'94\'ad\'8c\'b3\'82\'aa\'96\'a2\'8a\'6d\'94\'46\'81\'76\'82\'c6\'82\'a2\'82\'a4\'83\'41\'83\'89\'81\'5b\'83\'67\'82\'aa\'8f\'6f\'82\'c4\'82\'a2\'82\'bd\'82\'cc\'82\'f0\'8f\'43\'90\'b3\ +* Lion\'97\'70\'83\'6f\'83\'43\'83\'69\'83\'8a\'82\'c5\'83\'74\'83\'8b\'83\'58\'83\'4e\'83\'8a\'81\'5b\'83\'93\'8e\'9e\'82\'c9\'83\'63\'81\'5b\'83\'8b\'83\'6f\'81\'5b\'82\'cc\'94\'77\'8c\'69\'82\'aa\'93\'a7\'82\'af\'82\'c4\'82\'b5\'82\'dc\'82\'a4\'95\'73\'8b\'ef\'8d\'87\'82\'f0\'8f\'43\'90\'b3\ +* Lion\'97\'70\'83\'6f\'83\'43\'83\'69\'83\'8a\'82\'c5\'83\'65\'83\'4c\'83\'58\'83\'67\'83\'72\'83\'85\'81\'5b\'82\'cc\'82\'dd\'82\'f0\'93\'a7\'96\'be\'89\'bb\'82\'c5\'82\'ab\'82\'c8\'82\'a9\'82\'c1\'82\'bd\'95\'73\'8b\'ef\'8d\'87\'82\'f0\'8f\'43\'90\'b3\ +* Lion\'88\'c8\'8d\'7e\'88\'f3\'8d\'fc\'8e\'9e\'82\'c9\'83\'77\'83\'62\'83\'5f\'82\'c6\'83\'74\'83\'62\'83\'5e\'82\'cc\'83\'7d\'81\'5b\'83\'57\'83\'93\'82\'aa\'82\'d0\'82\'c1\'82\'ad\'82\'e8\'95\'d4\'82\'c1\'82\'c4\'82\'a2\'82\'bd\'82\'cc\'82\'f0\'8f\'43\'90\'b3\ +* \'8f\'91\'97\'de\'82\'f0\'8a\'4a\'82\'a2\'82\'bd\'8e\'9e\'93\'5f\'82\'c9\'83\'58\'83\'65\'81\'5b\'83\'5e\'83\'58\'83\'6f\'81\'5b\'82\'aa\'94\'f1\'95\'5c\'8e\'a6\'82\'be\'82\'c6\'81\'41\'83\'58\'83\'65\'81\'5b\'83\'5e\'83\'58\'83\'6f\'81\'5b\'82\'cc\'8f\'91\'82\'ab\'8d\'9e\'82\'dd\'95\'73\'89\'c2\'83\'41\'83\'43\'83\'52\'83\'93\'82\'aa\'90\'b3\'82\'b5\'82\'ad\'94\'bd\'89\'66\'82\'b3\'82\'ea\'82\'c8\'82\'a9\'82\'c1\'82\'bd\'95\'73\'8b\'ef\'8d\'87\'82\'f0\'8f\'43\'90\'b3\ +* \'8c\'be\'8c\'ea\'82\'aaEnglish\'82\'cc\'82\'c6\'82\'ab\'82\'cc\'83\'63\'81\'5b\'83\'8b\'83\'6f\'81\'5b\'83\'89\'83\'78\'83\'8b\'82\'cc\'92\'50\'8c\'ea\'8a\'d4\'83\'75\'83\'89\'83\'93\'83\'4e\'82\'f0\'8f\'43\'90\'b3\ +* \'8a\'c2\'8b\'ab\'90\'dd\'92\'e8\'82\'cc\'81\'75\'83\'77\'83\'62\'83\'5f\'82\'cc\'8f\'e3\'82\'c9\'8b\'e6\'90\'d8\'82\'e8\'90\'fc\'82\'f0\'88\'f3\'8e\'9a\'81\'76\'82\'c6\'82\'a2\'82\'a4\'8c\'eb\'8b\'4c\'82\'f0\'8f\'43\'90\'b3\ +* CotEditor 1.1\'82\'c54.0\'82\'c9\'8d\'58\'90\'56\'82\'b3\'82\'ea\'82\'bd\'82\'cd\'82\'b8\'82\'ccRegexKitLite\'82\'aa\'8e\'c0\'8d\'db\'82\'c9\'82\'cd\'8d\'58\'90\'56\'82\'b3\'82\'ea\'82\'c4\'82\'a2\'82\'c8\'82\'a9\'82\'c1\'82\'bd\'82\'cc\'82\'f0\'8f\'43\'90\'b3\ +\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 +\cf0 \ +\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 + +\fs22 \cf2 1. \'83\'56\'83\'93\'83\'5e\'83\'62\'83\'4e\'83\'58\'83\'4a\'83\'89\'81\'5b\'83\'8a\'83\'93\'83\'4f\'82\'cc\'90\'b3\'8b\'4b\'95\'5c\'8c\'bb\'82\'cdICU\'83\'89\'83\'43\'83\'75\'83\'89\'83\'8a\'82\'f0\'8e\'67\'97\'70\'82\'b5\'82\'c4\'82\'a2\'82\'e9\'82\'bd\'82\'df\'89\'65\'8b\'bf\'82\'cd\'82\'a0\'82\'e8\'82\'dc\'82\'b9\'82\'f1 +\fs24 \cf0 \ + +\fs22 \cf2 2. {\field{\*\fldinst{HYPERLINK "http://wolfrosch.com/works/goodies/coteditor_syntax"}}{\fldrslt wolfrosch.com}}\'82\'c5\'94\'7a\'95\'7a\'82\'b3\'82\'ea\'82\'c4\'82\'a2\'82\'bd\'82\'e0\'82\'cc\'82\'c6\'93\'af\'88\'ea +\f0\fs26 \cf0 \ +\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 + +\fs24 \cf0 \ +\pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 + +\b \cf0 1.3.1 [2012.02.12] +\b0 \ \pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 -\cf0 \'81\'69\'82\'c8\'82\'b5\'81\'6a\ + +\f1 \cf0 \ul \'81\'83\'90\'56\'8b\'40\'94\'5c\'81\'84\ \pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 -\cf0 \ul \ulc0 \'81\'83\'83\'6f\'83\'4f\'83\'74\'83\'42\'83\'62\'83\'4e\'83\'58\'81\'84\ulnone \ +\cf0 \ulnone \'81\'69\'82\'c8\'82\'b5\'81\'6a\ \pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 -\cf0 * \'8e\'a9\'93\'ae\'8d\'58\'90\'56\'82\'c5\'82\'cc\'83\'43\'83\'93\'83\'58\'83\'67\'81\'5b\'83\'8b\'8e\'9e\'82\'c9\'83\'47\'83\'89\'81\'5b\'82\'c9\'82\'c8\'82\'e9\'96\'e2\'91\'e8\'82\'f0\'8f\'43\'90\'b3\'81\'42\ +\cf0 \ul \'81\'83\'92\'c7\'89\'c1\'81\'5e\'8f\'43\'90\'b3\'81\'5e\'95\'cf\'8d\'58\'81\'84\ulnone \ +\'81\'69\'82\'c8\'82\'b5\'81\'6a\ +\ul \'81\'83\'83\'6f\'83\'4f\'83\'74\'83\'42\'83\'62\'83\'4e\'83\'58\'81\'84\ulnone \ +* \'8e\'a9\'93\'ae\'8d\'58\'90\'56\'82\'c5\'82\'cc\'83\'43\'83\'93\'83\'58\'83\'67\'81\'5b\'83\'8b\'8e\'9e\'82\'c9\'83\'47\'83\'89\'81\'5b\'82\'c9\'82\'c8\'82\'e9\'96\'e2\'91\'e8\'82\'f0\'8f\'43\'90\'b3\'81\'42\ \pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 \f0 \cf0 \ @@ -38,7 +107,7 @@ \b0 \ \pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 -\f1 \cf0 \ul \ulc0 \'81\'83\'90\'56\'8b\'40\'94\'5c\'81\'84\ +\f1 \cf0 \ul \'81\'83\'90\'56\'8b\'40\'94\'5c\'81\'84\ \pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 \cf0 \ulnone * \'83\'74\'83\'8b\'83\'58\'83\'4e\'83\'8a\'81\'5b\'83\'93\'91\'ce\'89\'9e\'81\'6910.7\'82\'cc\'82\'dd\'81\'6a\ * \'83\'74\'83\'40\'83\'43\'83\'8b\'95\'db\'91\'b6\'8e\'9e\'82\'c9\'8a\'67\'92\'a3\'8e\'71 "txt" \'82\'f0\'82\'c2\'82\'af\'82\'e9\'83\'49\'83\'76\'83\'56\'83\'87\'83\'93\'82\'f0\'92\'c7\'89\'c1\ @@ -62,7 +131,7 @@ \cf0 \ulnone * \'8e\'a9\'93\'ae\'83\'41\'83\'62\'83\'76\'83\'66\'81\'5b\'83\'67\'8b\'40\'94\'5c\'82\'f0\'92\'c7\'89\'c1\ \pard\tx565\tx1133\tx1700\tx2266\tx2832\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802 \cf0 \ul \'81\'83\'92\'c7\'89\'c1\'81\'5e\'8f\'43\'90\'b3\'81\'5e\'95\'cf\'8d\'58\'81\'84\ulnone \ -* \'83\'41\'83\'76\'83\'8a\'83\'50\'81\'5b\'83\'56\'83\'87\'83\'93\'82\'cc\'83\'41\'83\'43\'83\'52\'83\'93\'82\'f0\'95\'cf\'8d\'58\'81\'69kanai \'82\'b3\'82\'f1\'82\'c9\'8a\'b4\'8e\'d3\'81\'49\'81\'6a\ +* \'83\'41\'83\'76\'83\'8a\'83\'50\'81\'5b\'83\'56\'83\'87\'83\'93\'82\'cc\'83\'41\'83\'43\'83\'52\'83\'93\'82\'f0\'95\'cf\'8d\'58\'81\'691024jp \'82\'b3\'82\'f1\'82\'c9\'8a\'b4\'8e\'d3\'81\'49\'81\'6a\ * \'81\'75ScriptMenu \'83\'74\'83\'48\'83\'8b\'83\'5f\'82\'c9\'82\'c2\'82\'a2\'82\'c4\'81\'76\'82\'cc\'83\'68\'83\'4c\'83\'85\'83\'81\'83\'93\'83\'67\'82\'f0\'8d\'58\'90\'56\ \ul \'81\'83\'83\'6f\'83\'4f\'83\'74\'83\'42\'83\'62\'83\'4e\'83\'58\'81\'84\ulnone \ * \'8e\'a9\'93\'ae\'83\'43\'83\'93\'83\'66\'83\'93\'83\'67\'82\'c5\'83\'5e\'83\'75\'82\'aa\'96\'b3\'8e\'8b\'82\'b3\'82\'ea\'82\'c4\'82\'a2\'82\'bd\'95\'73\'8b\'ef\'8d\'87\'82\'f0\'8f\'43\'90\'b3\ diff --git a/toolbarIcons/EditHexAsBG.tiff b/toolbarIcons/EditHexAsBG.tiff index baf0b1bea2..73078e7dd0 100644 Binary files a/toolbarIcons/EditHexAsBG.tiff and b/toolbarIcons/EditHexAsBG.tiff differ diff --git a/toolbarIcons/EditHexAsFore.tiff b/toolbarIcons/EditHexAsFore.tiff index 193868f8cc..e5329dc14b 100644 Binary files a/toolbarIcons/EditHexAsFore.tiff and b/toolbarIcons/EditHexAsFore.tiff differ diff --git a/toolbarIcons/IncompatibleChar.tiff b/toolbarIcons/IncompatibleChar.tiff index 33d7984291..f90b806e1f 100644 Binary files a/toolbarIcons/IncompatibleChar.tiff and b/toolbarIcons/IncompatibleChar.tiff differ diff --git a/toolbarIcons/InvisibleChar_Hide.tiff b/toolbarIcons/InvisibleChar_Hide.tiff index f54c6f1364..fc4550897d 100644 Binary files a/toolbarIcons/InvisibleChar_Hide.tiff and b/toolbarIcons/InvisibleChar_Hide.tiff differ diff --git a/toolbarIcons/InvisibleChar_Show.tiff b/toolbarIcons/InvisibleChar_Show.tiff index 621d72fb27..5398022844 100644 Binary files a/toolbarIcons/InvisibleChar_Show.tiff and b/toolbarIcons/InvisibleChar_Show.tiff differ diff --git a/toolbarIcons/LineNumber_Hide.tiff b/toolbarIcons/LineNumber_Hide.tiff index 6cb07cdc6f..50f57682ec 100644 Binary files a/toolbarIcons/LineNumber_Hide.tiff and b/toolbarIcons/LineNumber_Hide.tiff differ diff --git a/toolbarIcons/LineNumber_Show.tiff b/toolbarIcons/LineNumber_Show.tiff index 8ecce14be6..9606318030 100644 Binary files a/toolbarIcons/LineNumber_Show.tiff and b/toolbarIcons/LineNumber_Show.tiff differ diff --git a/toolbarIcons/NaviBar_Hide.tiff b/toolbarIcons/NaviBar_Hide.tiff index caabe3dc18..a9f25e7d71 100644 Binary files a/toolbarIcons/NaviBar_Hide.tiff and b/toolbarIcons/NaviBar_Hide.tiff differ diff --git a/toolbarIcons/NaviBar_Show.tiff b/toolbarIcons/NaviBar_Show.tiff index d2093af1cb..d362279aa4 100644 Binary files a/toolbarIcons/NaviBar_Show.tiff and b/toolbarIcons/NaviBar_Show.tiff differ diff --git a/toolbarIcons/PageGuide_Hide.tiff b/toolbarIcons/PageGuide_Hide.tiff index c36b8b1c5f..51e7f3fe68 100644 Binary files a/toolbarIcons/PageGuide_Hide.tiff and b/toolbarIcons/PageGuide_Hide.tiff differ diff --git a/toolbarIcons/PageGuide_Show.tiff b/toolbarIcons/PageGuide_Show.tiff index 2b2fa39523..ef59fc41f0 100644 Binary files a/toolbarIcons/PageGuide_Show.tiff and b/toolbarIcons/PageGuide_Show.tiff differ diff --git a/toolbarIcons/PageSetup.tiff b/toolbarIcons/PageSetup.tiff deleted file mode 100644 index b7ade2a9de..0000000000 Binary files a/toolbarIcons/PageSetup.tiff and /dev/null differ diff --git a/toolbarIcons/Pref_FileDrop.tiff b/toolbarIcons/Pref_FileDrop.tiff index 1e9746cb76..72747d8379 100644 Binary files a/toolbarIcons/Pref_FileDrop.tiff and b/toolbarIcons/Pref_FileDrop.tiff differ diff --git a/toolbarIcons/Pref_Format.tiff b/toolbarIcons/Pref_Format.tiff index 782cb60d68..e36cefc3b8 100644 Binary files a/toolbarIcons/Pref_Format.tiff and b/toolbarIcons/Pref_Format.tiff differ diff --git a/toolbarIcons/Pref_General.tiff b/toolbarIcons/Pref_General.tiff index 6dd86ddd7c..dd5c2a0e23 100644 Binary files a/toolbarIcons/Pref_General.tiff and b/toolbarIcons/Pref_General.tiff differ diff --git a/toolbarIcons/Pref_KeyBinding.tiff b/toolbarIcons/Pref_KeyBinding.tiff index 6df9baa01e..88382a16a2 100644 Binary files a/toolbarIcons/Pref_KeyBinding.tiff and b/toolbarIcons/Pref_KeyBinding.tiff differ diff --git a/toolbarIcons/Pref_Print.tiff b/toolbarIcons/Pref_Print.tiff index ab442eda43..82e13f9c8b 100644 Binary files a/toolbarIcons/Pref_Print.tiff and b/toolbarIcons/Pref_Print.tiff differ diff --git a/toolbarIcons/Pref_Syntax.tiff b/toolbarIcons/Pref_Syntax.tiff index 6eea14188d..4591926826 100644 Binary files a/toolbarIcons/Pref_Syntax.tiff and b/toolbarIcons/Pref_Syntax.tiff differ diff --git a/toolbarIcons/Pref_View.tiff b/toolbarIcons/Pref_View.tiff index 47f1e1fba2..e7f509a070 100644 Binary files a/toolbarIcons/Pref_View.tiff and b/toolbarIcons/Pref_View.tiff differ diff --git a/toolbarIcons/Pref_Window.tiff b/toolbarIcons/Pref_Window.tiff index a94cd9fc35..4503cbe61c 100644 Binary files a/toolbarIcons/Pref_Window.tiff and b/toolbarIcons/Pref_Window.tiff differ diff --git a/toolbarIcons/Preferences.tiff b/toolbarIcons/Preferences.tiff deleted file mode 100644 index b785e88400..0000000000 Binary files a/toolbarIcons/Preferences.tiff and /dev/null differ diff --git a/toolbarIcons/RecolorAll.tiff b/toolbarIcons/RecolorAll.tiff index 77182fadbc..324fa2dfde 100644 Binary files a/toolbarIcons/RecolorAll.tiff and b/toolbarIcons/RecolorAll.tiff differ diff --git a/toolbarIcons/Save.tiff b/toolbarIcons/Save.tiff deleted file mode 100644 index 8b2bcd63d7..0000000000 Binary files a/toolbarIcons/Save.tiff and /dev/null differ diff --git a/toolbarIcons/SaveAs.tiff b/toolbarIcons/SaveAs.tiff deleted file mode 100644 index 875846f541..0000000000 Binary files a/toolbarIcons/SaveAs.tiff and /dev/null differ diff --git a/toolbarIcons/Script_CleanButton.tiff b/toolbarIcons/Script_CleanButton.tiff new file mode 100644 index 0000000000..b7f8cb70ff Binary files /dev/null and b/toolbarIcons/Script_CleanButton.tiff differ diff --git a/toolbarIcons/Shift_Left.tiff b/toolbarIcons/Shift_Left.tiff index 78962a3edb..ac499230c7 100644 Binary files a/toolbarIcons/Shift_Left.tiff and b/toolbarIcons/Shift_Left.tiff differ diff --git a/toolbarIcons/Shift_Right.tiff b/toolbarIcons/Shift_Right.tiff index deaba1143b..0d116ce32e 100644 Binary files a/toolbarIcons/Shift_Right.tiff and b/toolbarIcons/Shift_Right.tiff differ diff --git a/toolbarIcons/StatusArea_Hide.tiff b/toolbarIcons/StatusArea_Hide.tiff index 573b405019..d2c65a2998 100644 Binary files a/toolbarIcons/StatusArea_Hide.tiff and b/toolbarIcons/StatusArea_Hide.tiff differ diff --git a/toolbarIcons/StatusArea_Show.tiff b/toolbarIcons/StatusArea_Show.tiff index 524105f81b..17e3d4d5e4 100644 Binary files a/toolbarIcons/StatusArea_Show.tiff and b/toolbarIcons/StatusArea_Show.tiff differ diff --git a/toolbarIcons/TransparencyPanel.tiff b/toolbarIcons/TransparencyPanel.tiff deleted file mode 100644 index b071547822..0000000000 Binary files a/toolbarIcons/TransparencyPanel.tiff and /dev/null differ diff --git a/toolbarIcons/WrapLines_Off.tiff b/toolbarIcons/WrapLines_Off.tiff index c39fcfbbbc..44b2e37ba4 100644 Binary files a/toolbarIcons/WrapLines_Off.tiff and b/toolbarIcons/WrapLines_Off.tiff differ diff --git a/toolbarIcons/WrapLines_On.tiff b/toolbarIcons/WrapLines_On.tiff index 4f47c60155..6964a5087d 100644 Binary files a/toolbarIcons/WrapLines_On.tiff and b/toolbarIcons/WrapLines_On.tiff differ diff --git a/toolbarIcons/biggerFont.tiff b/toolbarIcons/biggerFont.tiff index 2a8c28c683..00a62c8f38 100644 Binary files a/toolbarIcons/biggerFont.tiff and b/toolbarIcons/biggerFont.tiff differ diff --git a/toolbarIcons/getInfo.tiff b/toolbarIcons/getInfo.tiff index 6d33aa9e5a..b635d6707a 100644 Binary files a/toolbarIcons/getInfo.tiff and b/toolbarIcons/getInfo.tiff differ diff --git a/toolbarIcons/smallerFont.tiff b/toolbarIcons/smallerFont.tiff index 808103363d..8d2f9a05a1 100644 Binary files a/toolbarIcons/smallerFont.tiff and b/toolbarIcons/smallerFont.tiff differ