Tomotaka SUWA
t-suw****@users*****
2006年 3月 8日 (水) 22:02:07 JST
Index: AquaSKK/CandidatesFrame.m
diff -u AquaSKK/CandidatesFrame.m:1.4.2.3 AquaSKK/CandidatesFrame.m:1.4.2.4
--- AquaSKK/CandidatesFrame.m:1.4.2.3 Mon Mar 6 21:03:00 2006
+++ AquaSKK/CandidatesFrame.m Wed Mar 8 22:02:07 2006
@@ -1,5 +1,5 @@
/*
- $Id: CandidatesFrame.m,v 1.4.2.3 2006/03/06 12:03:00 t-suwa Exp $
+ $Id: CandidatesFrame.m,v 1.4.2.4 2006/03/08 13:02:07 t-suwa Exp $
MacOS X implementation of the SKK input method.
@@ -213,17 +213,14 @@
- (void)drawPage:(NSRange)range {
FrameAttribute* attr = [FrameAttribute sharedFrameAttribute];
- // nnn / mmm ð`æ
+ // nnn / mmm ¶ñðì¬
NSString* tmpstr = [NSString stringWithFormat:@"%3d / %-3d", range.location, range.length];
NSMutableAttributedString* page = [[NSMutableAttributedString alloc] initWithString:tmpstr
attributes:[attr indexFontAttributes]];
-
- [[NSColor gridColor] setFill];
- [page addAttribute:NSBackgroundColorAttributeName
- value:[NSColor gridColor] range:NSMakeRange(0, [tmpstr length])];
[page addAttribute:NSForegroundColorAttributeName
value:[NSColor whiteColor] range:NSMakeRange(0, [tmpstr length])];
+ // wipÌv[gðì¬
float radius = 0.5 * [page size].height;
NSRect rc = NSMakeRect([attr itemAreaSize].width + [attr marginSize].width + radius,
[attr marginSize].height,
@@ -243,8 +240,10 @@
[oval appendBezierPathWithArcWithCenter:NSMakePoint(topleft.x, topleft.y - radius)
radius:radius startAngle:90 endAngle:270];
[oval closePath];
- [oval fill];
+ // `æ
+ [[NSColor gridColor] setFill];
+ [oval fill];
[page drawAtPoint:bottomleft];
[page release];
}
Index: AquaSKK/ChangeLog
diff -u AquaSKK/ChangeLog:1.20.2.11 AquaSKK/ChangeLog:1.20.2.12
--- AquaSKK/ChangeLog:1.20.2.11 Mon Mar 6 21:03:00 2006
+++ AquaSKK/ChangeLog Wed Mar 8 22:02:07 2006
@@ -1,3 +1,10 @@
+2006-03-08 Tomotaka SUWA <t.suw****@mac*****>
+
+ * SKKDictionary.cpp: ©®XVªêñµ©Å«È¢sïðC³B
+
+ * CandidatesFrame.m: óâEBhEÌ [cè remain] ðp~µA
+ wcurrent / totalx`®Å`æ·éæ¤ÉÏXB
+
2006-03-06 Tomotaka SUWA <t.suw****@mac*****>
* skkserv.cpp: I¹ðæèÀSÉC³B
Index: AquaSKK/SKKDictionary.cpp
diff -u AquaSKK/SKKDictionary.cpp:1.6.2.3 AquaSKK/SKKDictionary.cpp:1.6.2.4
--- AquaSKK/SKKDictionary.cpp:1.6.2.3 Mon Mar 6 21:03:00 2006
+++ AquaSKK/SKKDictionary.cpp Wed Mar 8 22:02:07 2006
@@ -1,5 +1,5 @@
/*
- $Id: SKKDictionary.cpp,v 1.6.2.3 2006/03/06 12:03:00 t-suwa Exp $
+ $Id: SKKDictionary.cpp,v 1.6.2.4 2006/03/08 13:02:07 t-suwa Exp $
MacOS X implementation of the SKK input method.
@@ -214,7 +214,7 @@
#pragma mark --- SKKAutoUpdateDictionary ---
-SKKAutoUpdateDictionary::SKKAutoUpdateDictionary() {
+SKKAutoUpdateDictionary::SKKAutoUpdateDictionary() : host_("openlab.ring.gr.jp"), url_("/skk/skk/dic/") {
// empty
}
@@ -223,12 +223,8 @@
}
void SKKAutoUpdateDictionary::load(const std::string& path) {
- std::string::size_type pos = path.find_first_of('/');
- host_ = path.substr(0, pos);
- url_ = path.substr(pos);
-
- pos = path.find_last_of('/');
- path_ = SkkConfig::home() + "/Library/AquaSKK" + path.substr(pos);
+ url_ += path;
+ path_ = SkkConfig::home() + "/Library/AquaSKK/" + path;
initializeContainer(okuriAri_, okuriNasi_);
std::cerr << "SKK AutoUpdate Dictionary(" << path_ << ")" << std::endl
@@ -267,58 +263,58 @@
void* SKKAutoUpdateDictionary::download(void* param) {
SKKAutoUpdateDictionary* obj = static_cast<SKKAutoUpdateDictionary*>(param);
- socket_stream session(obj->host_.c_str(), 80);
- if(!session) {
- std::cerr << "can't connect to [" << obj->host_ << "]" << std::endl;
- return NULL;
- }
-
while(true) {
- // «ÌXVútðæ¾
- char timestamp[64];
- struct stat st;
- if(stat(obj->path_.c_str(), &st) != 0) {
- st.st_mtime = 0;
- }
- strftime(timestamp, sizeof(timestamp), "%a, %d %b %Y %T %Z", gmtime(&st.st_mtime));
-
- // NGXg
- session << "GET " << obj->url_ << " HTTP/1.1" << std::endl;
- session << "Host: " << obj->host_ << std::endl;
- session << "If-Modified-Since: " << timestamp << std::endl;
- session << "Connection: close" << std::endl << std::endl;
-
- // X|X
- std::string response;
- bool modified = false;
- while(true) {
- getline(session, response);
- if(response.find("200 OK") != std::string::npos) {
- modified = true;
+ std::cerr << "SKKAutoUpdateDictionary: checking " << obj->host_ << obj->url_ << " ..." << std::endl;
+ socket_stream session(obj->host_.c_str(), 80);
+ if(session) {
+ // «ÌXVútðæ¾
+ char timestamp[64];
+ struct stat st;
+ if(stat(obj->path_.c_str(), &st) != 0) {
+ st.st_mtime = 0;
}
- if(response == "\r") break;
- }
+ strftime(timestamp, sizeof(timestamp), "%a, %d %b %Y %T %Z", gmtime(&st.st_mtime));
- if(modified) {
- // Û¶
- std::ofstream ofs(obj->path_.c_str());
+ // NGXg
+ session << "GET " << obj->url_ << " HTTP/1.1" << std::endl;
+ session << "Host: " << obj->host_ << std::endl;
+ session << "If-Modified-Since: " << timestamp << std::endl;
+ session << "Connection: close" << std::endl << std::endl;
+
+ // X|X
+ std::string response;
+ bool modified = false;
while(true) {
getline(session, response);
- if(response.empty()) break;
- ofs << response << std::endl;
+ if(response.find("200 OK") != std::string::npos) {
+ modified = true;
+ }
+ if(response == "\r") break;
}
- // [h
- EntryContainer tmpOkuriAri;
- EntryContainer tmpOkuriNasi;
- obj->initializeContainer(tmpOkuriAri, tmpOkuriNasi);
-
- // u«·¦
- Guard g(obj->mutex_);
- tmpOkuriAri.swap(obj->okuriAri_);
- tmpOkuriNasi.swap(obj->okuriNasi_);
+ if(modified) {
+ // Û¶
+ std::ofstream ofs(obj->path_.c_str());
+ while(true) {
+ getline(session, response);
+ if(response.empty()) break;
+ ofs << response << std::endl;
+ }
+
+ // [h
+ EntryContainer tmpOkuriAri;
+ EntryContainer tmpOkuriNasi;
+ obj->initializeContainer(tmpOkuriAri, tmpOkuriNasi);
+
+ // u«·¦
+ Guard g(obj->mutex_);
+ tmpOkuriAri.swap(obj->okuriAri_);
+ tmpOkuriNasi.swap(obj->okuriNasi_);
- std::cerr << "SKK AutoUpdate Dictionary(" << obj->path_ << ") updated" << std::endl;
+ std::cerr << "SKKAutoUpdateDictionary: " << obj->path_ << " has been updated" << std::endl;
+ }
+ } else {
+ std::cerr << "SKKAutoUpdateDictionary: can't connect to [" << obj->host_ << "]" << std::endl;
}
// 6 ÔÒÂ