Tomotaka SUWA
t-suw****@users*****
2006年 2月 25日 (土) 16:27:32 JST
Index: AquaSKK/AquaSKKServer.mm diff -u AquaSKK/AquaSKKServer.mm:1.1.2.3 AquaSKK/AquaSKKServer.mm:1.1.2.4 --- AquaSKK/AquaSKKServer.mm:1.1.2.3 Tue Feb 21 23:58:51 2006 +++ AquaSKK/AquaSKKServer.mm Sat Feb 25 16:27:32 2006 @@ -1,5 +1,5 @@ /* -*- objc -*- - $Id: AquaSKKServer.mm,v 1.1.2.3 2006/02/21 14:58:51 t-suwa Exp $ + $Id: AquaSKKServer.mm,v 1.1.2.4 2006/02/25 07:27:32 t-suwa Exp $ MacOS X implementation of the SKK input method. @@ -24,14 +24,13 @@ #include <AppKit/AppKit.h> #include "BIMClientServer.h" #include "AquaSKKServer.h" -#include "PreferenceKeys.h" +#include "PreferencesController.h" #include "DictionarySet.h" #include "ServerMessageReceiver.h" #include "skkserv.h" @implementation AquaSKKServer -// ú» + (void)initialize { NSString* defaultsPlist; NSDictionary* userDefaults; @@ -48,23 +47,14 @@ // ~/Library/AquaSKK/ ð쬷é [[NSFileManager defaultManager] - createDirectoryAtPath:[@"~/Library/AquaSKK" stringByExpandingTildeInPath] attributes:nil]; + createDirectoryAtPath:[[PreferencesController sharedController] pathForLibrary] attributes:nil]; } - (void)applicationDidFinishLaunching:(NSNotification*)aNotification { NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults]; // «Ìzñð[h·é - NSString* error; - NSString* path = [NSHomeDirectory() stringByAppendingPathComponent:PLIST_dictionary_info]; - NSData* plist = [NSData dataWithContentsOfFile:path]; - NSArray* content = [NSPropertyListSerialization propertyListFromData:plist - mutabilityOption:NSPropertyListImmutable - format:nil errorDescription:&error]; - if(!content) { - NSLog(@"loading plist[%@] failed: %@\n", path, error); - [error release]; - } + NSArray* content = [[PreferencesController sharedController] contentForDictionarySet]; // «T[o[ðN®·é DictionarySet::theInstance().initialize((CFArrayRef)content); @@ -83,6 +73,9 @@ // «T[o[ðÆ· DictionarySet::theInstance().terminate(); + // skkserv G~ [Vð~ßé + skkserv::theInstance().stop(); + return NSTerminateNow; } Index: AquaSKK/BIM.r diff -u AquaSKK/BIM.r:1.3.4.3 AquaSKK/BIM.r:1.3.4.4 --- AquaSKK/BIM.r:1.3.4.3 Sun Feb 19 13:50:54 2006 +++ AquaSKK/BIM.r Sat Feb 25 16:27:32 2006 @@ -1,5 +1,5 @@ /* - $Id: BIM.r,v 1.3.4.3 2006/02/19 04:50:54 t-suwa Exp $ + $Id: BIM.r,v 1.3.4.4 2006/02/25 07:27:32 t-suwa Exp $ MacOS X implementation of the SKK input method. @@ -79,8 +79,8 @@ kAquaSKKBaseResouceID, // name ID 'STR ', // info type kAquaSKKBaseResouceID + 1, // info ID - 0, // icon type - 0, // icon ID + 'kcs8', // icon type + kAquaSKKBaseResouceID, // icon ID 0x00010000, // version componentHasMultiplePlatforms, // registration flags 0, // resource ID of icon family @@ -109,3 +109,40 @@ resource 'STR ' (kAquaSKKBaseResouceID + 1) { "AquaSKK Input Method for Mac OS X" }; + +data 'kcs#' (kAquaSKKBaseResouceID) { + $"FEFE FE82 7C44 7C44 3828 3828 1010 0000" + $"FEFE 82FE 447C 447C 2838 2838 1010 0000" + $"FEFE FEFE 7C7C 7C7C 3838 3838 1010 0000" + $"FEFE FEFE 7C7C 7C7C 3838 3838 1010 0000" +}; + +data 'kcs4' (kAquaSKKBaseResouceID) { + $"EEEE EEE0 DDDD DDD0 EDDE EFE0 D00C CCD0" + $"0EEE FE00 0DCC CD00 0EEE FE00 0DCC CD00" + $"00EF E000 00DC D000 00EF E000 00DC D000" + $"000E 0000 000D 0000 0000 0000 0000 0000" + $"DDDD DDD0 EEEE EEE0 D00C CCD0 EDDE EFE0" + $"0DCC CD00 0EEE FE00 0DCC CD00 0EEE FE00" + $"00DC D000 00EF E000 00DC D000 00EF E000" + $"000D 0000 000E 0000 0000 0000 0000 0000" +}; + +data 'kcs8' (kAquaSKKBaseResouceID) { + $"FBFB FBFB FBFB FB00 F9F9 F9F9 F9F9 F900" + $"FAF9 FAFB FCFD FA00 F800 F5F6 2BF7 F800" + $"00FB FBFC FDFB 0000 00F9 F62B F7F9 0000" + $"00FA FBFC FDFA 0000 00F8 F62B F7F8 0000" + $"0000 FBFD FB00 0000 0000 F9F7 F900 0000" + $"0000 FAFD FA00 0000 0000 F8F7 F800 0000" + $"0000 00FB 0000 0000 0000 00F9 0000 0000" + $"0000 0000 0000 0000 0000 0000 0000 0000" + $"F9F9 F9F9 F9F9 F900 FBFB FBFB FBFB FB00" + $"F800 F5F6 2BF7 F800 FAF9 FAFB FCFD FA00" + $"00F9 F62B F7F9 0000 00FB FBFC FDFB 0000" + $"00F8 F62B F7F8 0000 00FA FBFC FDFA 0000" + $"0000 F9F7 F900 0000 0000 FBFD FB00 0000" + $"0000 F8F7 F800 0000 0000 FAFD FA00 0000" + $"0000 00F9 0000 0000 0000 00FB 0000 0000" + $"0000 0000 0000 0000 0000 0000 0000 0000" +}; Index: AquaSKK/ChangeLog diff -u AquaSKK/ChangeLog:1.20.2.9 AquaSKK/ChangeLog:1.20.2.10 --- AquaSKK/ChangeLog:1.20.2.9 Tue Feb 21 23:58:51 2006 +++ AquaSKK/ChangeLog Sat Feb 25 16:27:32 2006 @@ -1,3 +1,24 @@ +2006-02-25 Tomotaka SUWA <t.suw****@mac*****> + + * AquaSKK.pbproj/project.pbxproj: Panther pÉC³B + + * skkserv.cpp: skkinput Ì®ÉÎB + + * Package/scripts/postflight: DictionarySet.plist ð쬷éæ¤É + C³B + + * DictionarySet.cpp: «Ìú»ðC³B + + * AquaSKKServer.mm: pathForLibrary Æ pathForDictionarySetPlist É + ÎBI¹É skkserv G~ [Vàâ~·éæ¤ÉC³B + + * BIM.r: Panther pÌACRðÇÁB + + * PreferencesController.* (pathForLibrary, + pathForDictionarySetPlist) VKÇÁBpXðÔ·B + + * UserDefaults.plist: svÈL[ðíB + 2006-02-21 Tomotaka SUWA <t.suw****@mac*****> * PreferencesController.*: NSArrayController Æ Index: AquaSKK/DictionarySet.cpp diff -u AquaSKK/DictionarySet.cpp:1.1.2.3 AquaSKK/DictionarySet.cpp:1.1.2.4 --- AquaSKK/DictionarySet.cpp:1.1.2.3 Tue Feb 21 23:58:51 2006 +++ AquaSKK/DictionarySet.cpp Sat Feb 25 16:27:32 2006 @@ -1,5 +1,5 @@ /* - $Id: DictionarySet.cpp,v 1.1.2.3 2006/02/21 14:58:51 t-suwa Exp $ + $Id: DictionarySet.cpp,v 1.1.2.4 2006/02/25 07:27:32 t-suwa Exp $ MacOS X implementation of the SKK input method. @@ -22,7 +22,6 @@ */ #include <iostream> -#include <sstream> #include <set> #include "CppCFString.h" #include "OkuriganaEntry.h" @@ -41,8 +40,28 @@ // èÈÇ const char* SKK_USER_DICT_PATH = "/Library/AquaSKK/skk-user-dic"; -// [eBeB -static void removeRedundantItems(std::vector<CppCFString>& candidates); +// d¡µ½Ggðí·é +static void removeRedundantItems(std::vector<CppCFString>& candidates) { + std::set<CppCFString> check; + std::vector<CppCFString> result; + + for(std::vector<CppCFString>::iterator iter = candidates.begin(); iter != candidates.end(); ++ iter) { + if(check.find(*iter) == check.end()) { + check.insert(check.lower_bound(*iter), *iter); + result.push_back(*iter); + } + } + result.swap(candidates); +} + +// «ít@N^ +struct DeleteDictionary { + void operator()(std::pair<std::string, Dictionary*> entry) { + std::cerr << "AquaSKK: Delete Dictionary: " << entry.first << std::endl; + delete entry.second; + entry.second = NULL; + } +}; // Null « class NullDictionary: public Dictionary { @@ -120,20 +139,23 @@ } void DictionarySet::load(CFArrayRef arrayRef) { + DictionaryContainer cache; + DictionaryPref entry; + // âîñðNA·é prefs_.clear(); // Âl«ðæªÉüêé - DictionaryPref entry; entry.active = true; entry.type = SKKDictionaryType; entry.location = SkkConfig::home() + SKK_USER_DICT_PATH; prefs_.push_back(entry); - if(dicts_.find(generateID(entry)) == dicts_.end()) { - dicts_[generateID(entry)] = userdict_; + cache[generateID(entry)] = userdict_; + if(dicts_.find(generateID(entry)) != dicts_.end()) { + dicts_.erase(generateID(entry)); } - // LøÈ«ðSÄ[h·é + // è`³ê½«ðSÄ[h·é for(CFIndex index = 0; index < CFArrayGetCount(arrayRef); ++ index) { CFDictionaryRef dictRef = (CFDictionaryRef)CFRetain(CFArrayGetValueAtIndex(arrayRef, index)); @@ -151,24 +173,26 @@ // ì¬ÏÝÌ«ª êÎA澵Ĩ DictionaryIterator iter = dicts_.find(generateID(entry)); + if(iter != dicts_.end()) { + cache[generateID(entry)] = iter->second; + dicts_.erase(generateID(entry)); + } else { + // LbV ÉàÈ¢H + if(cache.find(generateID(entry)) == cache.end()) { + cache[generateID(entry)] = createDictionary(entry); + } + } - // Lø©H + // LøÈçÇÁ if(entry.active) { prefs_.push_back(entry); - - // ©Â©çȯêÎAÇÁµÄ¨ - if(iter == dicts_.end()) { - dicts_[generateID(entry)] = createDictionary(entry); - } - } else { - // ì¬ÏÝųøɳ꽫ÍÁ· - if(iter != dicts_.end()) { - delete iter->second; - dicts_.erase(generateID(entry)); - } } CFRelease(dictRef); } + + // «ÌLbV ðüêÖ¦é + std::for_each(dicts_.begin(), dicts_.end(), DeleteDictionary()); + cache.swap(dicts_); } DictionarySet::DictionarySet() { @@ -188,23 +212,12 @@ void DictionarySet::initialize(CFArrayRef arrayRef) { // «ð[h·é - if(arrayRef) { - CFRetain(arrayRef); - load(arrayRef); - CFRelease(arrayRef); - } + load(arrayRef); } void DictionarySet::terminate() { - struct local { - static void DeleteDictionary(std::pair<std::string, Dictionary*> entry) { - delete entry.second; - entry.second = NULL; - } - }; - // SÄÌ«ðí·é - std::for_each(dicts_.begin(), dicts_.end(), local::DeleteDictionary); + std::for_each(dicts_.begin(), dicts_.end(), DeleteDictionary()); dicts_.clear(); } @@ -475,21 +488,7 @@ CppCFString head = query.replaceClone(nbsp, space); std::vector<CppCFString> result = userdict_->findCompletions(head); - D_PRINTF("REPLY: %s\n", - join(' ',result).toCString(kCFStringEncodingEUC_JP)); + D_PRINTF("REPLY: %s\n", join(' ',result).toCString(kCFStringEncodingEUC_JP)); return join(' ', result); } - -static void removeRedundantItems(std::vector<CppCFString>& candidates) { - std::set<CppCFString> check; - std::vector<CppCFString> result; - - for(std::vector<CppCFString>::iterator iter = candidates.begin(); iter != candidates.end(); ++ iter) { - if(check.find(*iter) == check.end()) { - check.insert(check.lower_bound(*iter), *iter); - result.push_back(*iter); - } - } - result.swap(candidates); -} Index: AquaSKK/DictionarySet.h diff -u AquaSKK/DictionarySet.h:1.1.2.2 AquaSKK/DictionarySet.h:1.1.2.3 --- AquaSKK/DictionarySet.h:1.1.2.2 Tue Feb 21 23:58:51 2006 +++ AquaSKK/DictionarySet.h Sat Feb 25 16:27:32 2006 @@ -1,5 +1,5 @@ /* -*- c++ -*- - $Id: DictionarySet.h,v 1.1.2.2 2006/02/21 14:58:51 t-suwa Exp $ + $Id: DictionarySet.h,v 1.1.2.3 2006/02/25 07:27:32 t-suwa Exp $ MacOS X implementation of the SKK input method. @@ -24,6 +24,7 @@ #pragma once #include <string> +#include <sstream> #include <vector> #include <map> Index: AquaSKK/PreferenceKeys.h diff -u AquaSKK/PreferenceKeys.h:1.1.2.2 AquaSKK/PreferenceKeys.h:1.1.2.3 --- AquaSKK/PreferenceKeys.h:1.1.2.2 Tue Feb 21 23:58:51 2006 +++ AquaSKK/PreferenceKeys.h Sat Feb 25 16:27:32 2006 @@ -1,5 +1,5 @@ /* -*- objc -*- - $Id: PreferenceKeys.h,v 1.1.2.2 2006/02/21 14:58:51 t-suwa Exp $ + $Id: PreferenceKeys.h,v 1.1.2.3 2006/02/25 07:27:32 t-suwa Exp $ MacOS X implementation of the SKK input method. @@ -26,7 +26,7 @@ // [U[ftHgpÌL[ extern NSString* KEY_egg_like_newline; -extern NSString* KEY_numkeypad_must_halfwidth; +extern NSString* KEY_numkeypad_use_halfwidth; extern NSString* KEY_force_ascii_mode_startup; extern NSString* KEY_keyboard_layout_id; @@ -40,7 +40,4 @@ extern NSString* KEY_skkserv_port; extern NSString* KEY_skkserv_localonly; -// õ«Ìzñðè`·é plist t@C(z[fBNg©çÌÎpX) -extern NSString* PLIST_dictionary_info; - #endif Index: AquaSKK/PreferencesController.h diff -u AquaSKK/PreferencesController.h:1.6.2.6 AquaSKK/PreferencesController.h:1.6.2.7 --- AquaSKK/PreferencesController.h:1.6.2.6 Tue Feb 21 23:58:51 2006 +++ AquaSKK/PreferencesController.h Sat Feb 25 16:27:32 2006 @@ -1,5 +1,5 @@ /* -*- objc -*- - $Id: PreferencesController.h,v 1.6.2.6 2006/02/21 14:58:51 t-suwa Exp $ + $Id: PreferencesController.h,v 1.6.2.7 2006/02/25 07:27:32 t-suwa Exp $ MacOS X implementation of the SKK input method. @@ -21,6 +21,7 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ +#include "PreferenceKeys.h" #include "DictArrayController.h" @interface PreferencesController : NSWindowController { @@ -38,5 +39,8 @@ - (IBAction)showFontPanel:(id)sender; - (void)changeFont:(id)sender; - (void)setFontButtonTitle:(NSFont*)aFont; +- (NSString*)pathForLibrary; +- (NSString*)pathForDictionarySetPlist; +- (NSArray*)contentForDictionarySet; @end Index: AquaSKK/PreferencesController.mm diff -u AquaSKK/PreferencesController.mm:1.6.2.8 AquaSKK/PreferencesController.mm:1.6.2.9 --- AquaSKK/PreferencesController.mm:1.6.2.8 Tue Feb 21 23:58:51 2006 +++ AquaSKK/PreferencesController.mm Sat Feb 25 16:27:32 2006 @@ -1,5 +1,5 @@ /* -*- objc -*- - $Id: PreferencesController.mm,v 1.6.2.8 2006/02/21 14:58:51 t-suwa Exp $ + $Id: PreferencesController.mm,v 1.6.2.9 2006/02/25 07:27:32 t-suwa Exp $ MacOS X implementation of the SKK input method. @@ -34,7 +34,7 @@ // [U[ftHgp NSString* KEY_keyboard_layout_id = @"keyboard_layout_id"; NSString* KEY_egg_like_newline = @"egg_like_newline"; -NSString* KEY_numkeypad_must_halfwidth = @"numkeypad_must_halfwidth"; +NSString* KEY_numkeypad_use_halfwidth = @"numkeypad_use_halfwidth"; NSString* KEY_force_ascii_mode_startup = @"force_ascii_mode_startup"; NSString* KEY_candidates_font_name = @"candidates_font_name"; @@ -47,13 +47,14 @@ NSString* KEY_skkserv_port = @"skkserv_port"; NSString* KEY_skkserv_localonly = @"skkserv_localonly"; -// õ«Ìzñðè`·é plist t@C(z[fBNg©çÌÎpX) -NSString* PLIST_dictionary_info = @"/Library/AquaSKK/DictionarySet.plist"; +// eípX +NSString* path_for_library = @"Library/AquaSKK"; +NSString* path_for_dictionary_set = @"DictionarySet.plist"; // L[{[hCAEgp -const NSString* KbdIdKey = @"Identifier"; -const NSString* KbdNameKey = @"LocalizedName"; -const NSString* KbdIconKey = @"Icon"; +NSString* KbdIdKey = @"Identifier"; +NSString* KbdNameKey = @"LocalizedName"; +NSString* KbdIconKey = @"Icon"; @implementation PreferencesController @@ -123,47 +124,51 @@ [kbdLayoutPopUp setMenu:kbdLayoutMenu]; } -+ (PreferencesController*)sharedController { - static PreferencesController* _shared_instance = nil; - if(_shared_instance == nil) { - _shared_instance = [[PreferencesController alloc] init]; - } - return _shared_instance; -} - -- (id)init { - self = [super initWithWindowNibName:@"Preferences"]; - [self window]; - - NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults]; - - // ú» - [self initKbdLayoutPopUp]; - int index = [kbdLayoutPopUp indexOfItemWithTag:[defaults integerForKey:KEY_keyboard_layout_id]]; - [kbdLayoutPopUp selectItemAtIndex:index]; - - font = [[NSFont fontWithName:[defaults objectForKey:KEY_candidates_font_name] - size:[defaults floatForKey:KEY_candidates_font_size]] retain]; - [self setFontButtonTitle:font]; - +- (void)initDictArrayController { // «Ìzñð[h·é - NSString* path = [NSHomeDirectory() stringByAppendingPathComponent:PLIST_dictionary_info]; NSString* error; - NSData* plist = [NSData dataWithContentsOfFile:path]; + NSData* plist = [NSData dataWithContentsOfFile:[self pathForDictionarySetPlist]]; NSMutableArray* content = [NSPropertyListSerialization propertyListFromData:plist mutabilityOption:NSPropertyListMutableContainersAndLeaves format:nil errorDescription:&error]; - if(content) { - [dictArray setContent:content]; - } else { + [dictArray setContent:content]; + if(!content) { NSLog(@"loading plist failed: %@\n", error); [error release]; } +} + +- (id)init { + self = [super initWithWindowNibName:@"Preferences"]; + + if(self) { + NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults]; + + [self window]; + [self initDictArrayController]; + [self initKbdLayoutPopUp]; + int index = [kbdLayoutPopUp indexOfItemWithTag:[defaults integerForKey:KEY_keyboard_layout_id]]; + [kbdLayoutPopUp selectItemAtIndex:index]; + + font = [[NSFont fontWithName:[defaults objectForKey:KEY_candidates_font_name] + size:[defaults floatForKey:KEY_candidates_font_size]] retain]; + [self setFontButtonTitle:font]; + } return self; } ++ (PreferencesController*)sharedController { + static PreferencesController* _shared_instance = nil; + if(_shared_instance == nil) { + _shared_instance = [[PreferencesController alloc] init]; + } + return _shared_instance; +} + - (IBAction)showWindow:(id)sender { + [self initDictArrayController]; + [NSApp activateIgnoringOtherApps:YES]; [[self window] makeKeyAndOrderFront:nil]; @@ -179,21 +184,17 @@ // «Ìzñð XML `®ÅÛ¶·é NSString* error; - NSData* plist = [NSPropertyListSerialization dataFromPropertyList:[dictArray content] + NSData* plist = [NSPropertyListSerialization dataFromPropertyList:[self contentForDictionarySet] format:NSPropertyListXMLFormat_v1_0 errorDescription:&error]; if(plist) { - NSString* path = [NSHomeDirectory() stringByAppendingPathComponent:PLIST_dictionary_info]; - [plist writeToFile:path atomically:YES]; + [plist writeToFile:[self pathForDictionarySetPlist] atomically:YES]; } else { NSLog(@"saving plist failed: %@\n", error); [error release]; } - // NCgÉÏXðÊm·é - ClientConnectionFactory::theInstance().newConnection().send(kSKKClientConfigurationModified, CppCFData()); - // ÄxA«T[o[ðú»·é - DictionarySet::theInstance().initialize((CFArrayRef)[dictArray content]); + DictionarySet::theInstance().initialize((CFArrayRef)[self contentForDictionarySet]); // skkserv G~ [VÌÄN® skkserv& skkserv = skkserv::theInstance(); @@ -202,6 +203,9 @@ skkserv.start([defaults integerForKey:KEY_skkserv_port], [defaults boolForKey:KEY_skkserv_localonly]); } + // NCgÉÏXðÊm·é + ClientConnectionFactory::theInstance().newConnection().send(kSKKClientConfigurationModified, CppCFData()); + return TRUE; } @@ -228,4 +232,16 @@ [fontButton setTitle:[NSString stringWithFormat:@"%@ - %2.1f", [aFont displayName], [aFont pointSize]]]; } +- (NSString*)pathForLibrary { + return [NSHomeDirectory() stringByAppendingPathComponent:path_for_library]; +} + +- (NSString*)pathForDictionarySetPlist { + return [[self pathForLibrary] stringByAppendingPathComponent:path_for_dictionary_set]; +} + +- (NSArray*)contentForDictionarySet { + return [dictArray content]; +} + @end Index: AquaSKK/ServerMessageReceiver.mm diff -u AquaSKK/ServerMessageReceiver.mm:1.4.2.3 AquaSKK/ServerMessageReceiver.mm:1.4.2.4 --- AquaSKK/ServerMessageReceiver.mm:1.4.2.3 Sun Feb 19 13:50:54 2006 +++ AquaSKK/ServerMessageReceiver.mm Sat Feb 25 16:27:32 2006 @@ -1,5 +1,5 @@ /* -*- objc -*- - $Id: ServerMessageReceiver.mm,v 1.4.2.3 2006/02/19 04:50:54 t-suwa Exp $ + $Id: ServerMessageReceiver.mm,v 1.4.2.4 2006/02/25 07:27:32 t-suwa Exp $ MacOS X implementation of the SKK input method. @@ -112,7 +112,7 @@ reply = valueForKey(KEY_egg_like_newline); break; case kBasicMessageIsNumericKeypad_HalfWidth: - reply = valueForKey(KEY_numkeypad_must_halfwidth); + reply = valueForKey(KEY_numkeypad_use_halfwidth); break; case kBasicMessageIsAsciiModeStartup: reply = valueForKey(KEY_force_ascii_mode_startup); Index: AquaSKK/UserDefaults.plist diff -u AquaSKK/UserDefaults.plist:1.1.2.2 AquaSKK/UserDefaults.plist:1.1.2.3 --- AquaSKK/UserDefaults.plist:1.1.2.2 Sun Feb 19 18:09:02 2006 +++ AquaSKK/UserDefaults.plist Sat Feb 25 16:27:32 2006 @@ -16,32 +16,13 @@ </data> <key>candidates_window_show_after_nth_cand</key> <integer>5</integer> - <key>dictionary_info_array</key> - <array> - <dict> - <key>active</key> - <true/> - <key>location</key> - <string>~/.skk-jisyo</string> - <key>type</key> - <integer>10</integer> - </dict> - <dict> - <key>active</key> - <true/> - <key>location</key> - <string>~/Library/AquaSKK/SKK-JISYO.L</string> - <key>type</key> - <integer>10</integer> - </dict> - </array> <key>egg_like_new_line</key> <false/> <key>force_ascii_mode_startup</key> <false/> <key>keyboard_layout_id</key> <integer>0</integer> - <key>numkeypad_must_halfwidth</key> + <key>numkeypad_use_halfwidth</key> <false/> <key>skkserv_enabled</key> <false/> Index: AquaSKK/skkserv.cpp diff -u AquaSKK/skkserv.cpp:1.1.2.4 AquaSKK/skkserv.cpp:1.1.2.5 --- AquaSKK/skkserv.cpp:1.1.2.4 Sun Feb 19 16:09:11 2006 +++ AquaSKK/skkserv.cpp Sat Feb 25 16:27:32 2006 @@ -1,5 +1,5 @@ /* -*- c++ -*- - $Id: skkserv.cpp,v 1.1.2.4 2006/02/19 07:09:11 t-suwa Exp $ + $Id: skkserv.cpp,v 1.1.2.5 2006/02/25 07:27:32 t-suwa Exp $ MacOS X implementation of the SKK input method. @@ -21,6 +21,7 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ +#include <iostream> #include <string> #include <unistd.h> #include "CppCFString.h" @@ -68,7 +69,7 @@ int fd = obj->server_.accept(); if(fd > 0) { if(obj->localonly_ && ip_address::getpeername(fd) != "127.0.0.1") { - std::cerr << "AquaSKK: connection rejected[" << ip_address::getpeername(fd) << "]" << std::endl; + std::cerr << "AquaSKK(skkserv): reject[" << ip_address::getpeername(fd) << "]" << std::endl; continue; } pthread_t pth; @@ -83,7 +84,7 @@ void* skkserv::session(void* param) { socket_stream sock((int)param); ip_address peer = ip_address::getpeername((int)param); - std::cerr << "AquaSKK: new session[" << peer << "]" << std::endl; + std::cerr << "AquaSKK(skkserv): new session[" << peer << "]" << std::endl; unsigned char cmd; do { @@ -118,15 +119,14 @@ sock << ip_address::getsockname(sock.socket()) << "::" << std::endl; sock.flush(); break; - default: - std::cerr << "Unknown command: " << cmd << std::endl; - cmd = '0'; + default: // ³øÈR}h + fprintf(stderr, "AquaSKK(skkserv): Unknown command[0x%02x]\n", cmd); break; } } while(cmd != '0'); sock.close(); - std::cerr << "AquaSKK: session closed[" << peer << "]" << std::endl; + std::cerr << "AquaSKK(skkserv): session closed[" << peer << "]" << std::endl; return NULL; }