基本的に落書き帳/メモ帳/備忘録なので、 わりと間違っていたり、 数分後とか後日とかに見たら、 いきなり消えていたり書き換わっていたりとかあります。
T/O
GImageView(gimv) 0.2.27 を amd64 にて使うと アーカイブファイルを扱う時に SIGSEGV を出して落ちますが、 これに対する対処療法なパッチです。
一応能書きを垂れると、 gimv が GTK+-2 から返されたポインタを guint型に代入してしまっている バグ?の修正です。
電池が切れた。
14日持った。
充電エラーがまた出た。
「I18N(Internationalization) GearHead」
スレ22号機 988氏:
> TS_MONK_ItemSearch_PLOT1_Tomb.txtだけzetaがゼータになってます
> TS_TEXT_HwangSa_1.txtとTS_TEXT_HwangSa_3.txtの訳注はコメントにして見えないようにした方がいいのでは
> サイクロプスやゼロン装備のゼロン、
> マグナスエメラルドとイリアルビーのイリアとマグナス、
固有名詞扱いに修正。
「かな漢字変換 anthy で、個人用学習データを活用して、なんかもう思い付く事を何でもかんでも試してみて、変換結果の改善を目指すパッチ」
「かな漢字変換 anthy で、個人用学習データを活用して、なんかもう思い付く事を何でもかんでも試してみて、変換結果の改善を目指すパッチ」
「かな漢字変換 anthy で、個人用学習データを活用して、変換結果の改善を目指すパッチ」
例文追加。ブートストラップ学習を更新。コーパスデータベースを更新。
中古品が正月セールで¥11,025- だった。
パッチが効かない部分へ無理にパッチして保たせていたチューブが パンクした。 今度は別の所が2ヶ所同時に穴が開いていた。 寿命かな。
100円ショップに行ったら、
紫外線ライト&ペンが売っていた。
探していた時は全然売っていなかったのに……。
LR1130を3個で駆動しているらしい。4.65V 直かな?
Sat,16 Jun,2012、 の続き。
ネオピコライン3(定価¥157-)(売価¥111-)
なんてのが出ていたのか。
しかもネオピコライン2(定価¥199-)(売価¥160-)
より安くなっているし。
グレーが、
ウォームグレー寄りなのか
クールグレー寄りなのか
寄っていないのか、
書いていないなぁ。どうなのだろう?
ニュートラルなグレーが欲しいのだが。
ガンダムマーカーでさえ、ニブを潰した私が、 ネオピコラインを使って大丈夫なのだろうか。
VIEW 直系らしい。ビューマイナスになるのかな?
Desc および Msg での \NAME と \NAME2 に対応。
5年定期が満期になっていた。感慨深い。
自動生成された name の最後尾に < が抜ける事が有るバグ修正。
部品注文していた品が届いた。
磐梯山ありがとう……と書こうと思ったら。
一部、注文した部品と違う、違うよ磐梯山…… orz
一度にたくさん頼んだから間違えたのだろうけれど。
で、どうすりゃいいんだ?
カスタマーセンターに平日10:00〜16:00に電話しないと駄目?
取り敢えず判った事は。
MG のポリキャップ PC-128-Ext は1枚¥200- で、
パーツばらで複数個より、ランナー1枚の方が安い事と。
パーツばらで注文しても、ランナーにまとめた方が安い場合は、
ランナーにまとめてくれて余った代金を返してくれると言う事と。
普通のランナーは、ランナー1枚でも、パーツばらでランナー全部分でも、
値段は変わらないと言う事と。
Fri,31 Jan,2014 追記:
電凸したら、SASE 付きで送ってくれるとの事。
間違って送った物は SASE で送り返す旨。
Sat,01 Feb,2014 追記:
もう来た。しかも宅急便。そこまで急がなくてもよかったのに……。
早速 SASE郵便で返送。
「I18N(Internationalization) GearHead」
「gland」の訳を「腺」に統一。
mlterm-3.3.2 でマウスのダブルクリック等での単語選択の際に、文字種が変わった所を単語の区切りとみなすパッチ。
\エレメントにて余計な空白が入らない様にした。
1日4回点眼で、 7週間で 5mlを2本使い切るくらいのペースだった。
蛍光灯が切れた。 最後に交換したのが 10年だか 15年だかくらい前。 Mon,13 Apr,2009 に別の蛍光灯が切れた時にまとめ買いした物で交換。 よく5年も保存しておいたものだ。
本家 Anthy の 「#33075: anthy goes into an infinite loop if the end of anthy journal file is broken.」 の件は本パッチには該当しません。 学習まわりをごっそり書き換えているので。
%J* トークンの追加削除が容易になる様に仕様変更。
%J*トークンの JG_T, JG_SK, JG_SY, JG_TY, JG_Q を追加。
ラジオのリクエストコーナーが、 アニソン三昧状態になっていた。 誰だ、そんなにリクエストしたやつ(笑)。
瞬停しまくり。 被害は、 明かりが暗くなるのと電話がダウンの2つだけだけど、ブ チブチ切れまくっている。
%J*トークンの JG_R を追加。
なんか、
mixi.jp のログインページが平文でパスワード垂れ流していますよ。
どうしてくれよう。
Wed,12 Feb,2014 追記:
パスワードを SSL で通す様に直っていた。
スレ23号機 210氏:
> GH2の翻訳、meta11.txtの Msg-2 が
誤訳修正。すみません、梱包し忘れていました。
Amazon ¥2,170(Sat,08 Mar,2014 追記)。
ビック ¥2,350+117point。
ソフ ¥2,350+24point+送料。
たみん¥2,360+送料。
あみ¥2,390+12point+送料。
ジョーシン ¥2,452+123point(Sat,08 Mar,2014 追記)。
ホビーサ¥2,520+75point+送料(Sat,08 Mar,2014 追記)。
ホビーサ¥2,688+80point+送料。
ホビリン¥2,688+送料。
ヨド ¥2,900+290point。
Amazon ¥2,949。
ジョーシン 未掲載。
ヤマダ 未掲載。
風邪だかインフルエンザだかにかかった。 発熱と悪寒がひどい。
インフルエンザ陰性だった。 症状の酷い風邪の模様。
std::locale loc(""); がコア吐いて落ちた。
どうやら、
「eagletmt氏 - Sun February 08, 2009 - ■[C/C++][GCC][2ch] libstdc++ のロケール問題」
らしい。
std::locale loc("C"); にしたら通った。
http://jbbs.shitaraba.net/bbs/read.cgi/game/55848/1364474479/
の 127, 145, 146, 147, 148 の件。
原因は、日本語化メッセージがどうこうではなくて、
utf8_substr() のバグじゃないかな。
以下の様な感じでどうだろう。
…… cursorx_to_position() で
'\0' を見る様にした方が良かったかな
……
画面バッファ処理にて '\0' を空白の代わりに使っているらしく
駄目だった。
Sun,02 Mar,2014 追記:
以下のパッチには不具合があります。
Sun,02 Mar,2014
に修正版があります。
Fri,07 Mar,2014 追記:
本家 Cataclysm-DDA の
Some Japanese translation characters causes segfault. #6402
の修正にて下記修正パッチは不要になりました。
Thanks to ten-10.
diff --git a/src/catacharset.cpp b/src/catacharset.cpp index 4033cd7..7bc9b43 100644 --- a/src/catacharset.cpp +++ b/src/catacharset.cpp @@ -168,6 +168,28 @@ int cursorx_to_position(const char* line, int cursorx, int* prevpos) return i; } +int cursorx_to_position_with_len_line(const char* line, int cursorx, int len_line, int* prevpos) +{ + int dummy; + int i=0, c=0, *p=prevpos?prevpos:&dummy; + *p = 0; + while((c<cursorx) && (i < len_line)) + { + const char* utf8str = line+i; + int len = ANY_LENGTH; + unsigned ch = UTF8_getch(&utf8str, &len); + int cw = mk_wcwidth(ch); + len = ANY_LENGTH-len; + + if(len<=0) len=1; + i+=len; + if(cw<=0) cw=1; + c+=cw; + if(c<=cursorx) *p = i; + } + return i; +} + //Erase character by unicode char width. //Fill the characters with spaces. //returns length modified @@ -214,7 +236,7 @@ std::string utf8_substr(std::string s, int start, int size) int len = strlen(s.c_str()); int pos; strcpy(buf, s.c_str()); - int begin = cursorx_to_position(buf, start, &pos); + int begin = cursorx_to_position_with_len_line(buf, start, len, &pos); if(begin!=pos) { const char* ts = buf+pos; @@ -226,7 +248,7 @@ std::string utf8_substr(std::string s, int start, int size) if(size>0) { - int end = cursorx_to_position(buf, start+size-1, &pos); + int end = cursorx_to_position_with_len_line(buf, start+size-1, len, &pos); if(end!=pos) { const char* ts = buf+pos;
そもそも文字列処理バッファに static char buf[8000]; って
どうなのよ、とか。
SDL の初期化失敗した後も無視して続行して落ちるって
どうなのよ、とか。
突っ込み所が……。
計画メンテナンス予定:2014年02月27日(木)。
メンテナンス中は断続的に本サイトに接続できなくなる見込みです。
SetNPC 追加。
メールにて %JF, %JS, %JG系が使える様になりました。
「I18N(Internationalization) GearHead」
Cheat_Display_SpeedoMeter にて旋回を明示。
メッセージ番号の間違い修正 by 名無しII号 氏
MO ドライブの転送速度を計ってみた。
FreeBSD 9.1-RELEASE/i386 AthlonXP 1700+ da0 at ahc0 bus 0 scbus0 target 3 lun 0 da0:Removable Optical SCSI-2 device da0: 10.000MB/s transfers (10.000MHz, offset 15) da0: Attempt to query device size failed: NOT READY, Medium not present 4300rpm らしい。 640MO シーケンシャル読み出し % dd if=/dev/da0 of=img bs=4096 635600896 bytes transferred in 359.060267 secs (1770179 bytes/sec) % time cp -p /mnt/data.img . 0.016u 5.739s 3:36.37 2.6% 19+4821k 9771+9681io 0pf+0w 2937014 bytes/sec % time dd if=/dev/da0 of=1.img bs=2048 635600896 bytes transferred in 635.660143 secs (999907 bytes/sec) 0.336u 8.870s 10:35.66 1.4% 25+5001k 310429+9699io 0pf+0w 230MO シーケンシャル読み出し % time dd if=/dev/da0 of=1.img bs=512 228518400 bytes transferred in 818.665412 secs (279135 bytes/sec) 0.429u 8.540s 13:38.68 1.0% 26+5104k 446353+3487io 0pf+0w % time cp -p /dev/da0 1.img 0.000u 1.134s 2:39.67 0.7% 20+5099k 1774+3487io 0pf+0w 1437222 bytes/sec …… dd の転送速度が何かおかしい。
http://bbs.kakaku.com/bbs/00901010068/SortID=1072933/ によると、 ■USB2.0ドライブ 230MBディスク 1071KB/s 640MBディスク 2287KB/s ■USB1.1ドライブ 230MBディスク 810KB/s 640MBディスク 985KB/s らしい。
SCSI-2 は、USB1.1 や USB2.0 より速い、のかな?
http://jbbs.shitaraba.net/bbs/read.cgi/game/55848/1364474479/
の 156 の件。
やっぱり再現した。
のはいいのだけれども。
今度は日本語フォントの表示がおかしくて画面が乱れる。
どうやら SDL1 → SDL2 になって、その辺おかしくなったっぽい。
またデバッガで追跡か……。
どうやら OutputFontChar() にて、 表示幅の算出が間違っているらしい。 縦位置の算出も間違っているな。
http://jbbs.shitaraba.net/bbs/read.cgi/game/55848/1364474479/ の 65 も一緒に治すとこんな感じ。 cursorx_to_position_with_maxlen() 絡みの改変が 127, 145, 146, 147, 148 への対応で、 erease_utf8_by_cw() 内の改変が 65 への対応。
Fri,07 Mar,2014 追記:
本家 Cataclysm-DDA の
Some Japanese translation characters causes segfault. #6402
の修正にて下記修正パッチは不要になりました。
Thanks to ten-10.
diff --git a/src/catacharset.cpp b/src/catacharset.cpp --- a/src/catacharset.cpp +++ b/src/catacharset.cpp @@ -168,6 +168,29 @@ int cursorx_to_position(const char* line, int cursorx, int* prevpos) return i; } +int cursorx_to_position_with_maxlen(const char* line, int cursorx, int maxlen, int* prevpos) +{ + int dummy; + int i=0, c=0, *p=prevpos?prevpos:&dummy; + *p = 0; + while(c<cursorx) + { + const char* utf8str = line+i; + int len = ANY_LENGTH; + unsigned ch = UTF8_getch(&utf8str, &len); + int cw = mk_wcwidth(ch); + len = ANY_LENGTH-len; + + if(len<=0) len=1; + if(maxlen < (i+len)) break; + i+=len; + if(cw<=0) cw=1; + c+=cw; + if(c<=cursorx) *p = i; + } + return i; +} + //Erase character by unicode char width. //Fill the characters with spaces. //returns length modified @@ -184,6 +207,7 @@ int erease_utf8_by_cw( char* t, int cw, int clen, int maxlen) len = ANY_LENGTH-len; if(len<=0) len=1; + if(maxlen < (i+len)) break; i+=len; if(cw<=0) cw=1; c+=cw; @@ -214,7 +238,7 @@ std::string utf8_substr(std::string s, int start, int size) int len = strlen(s.c_str()); int pos; strcpy(buf, s.c_str()); - int begin = cursorx_to_position(buf, start, &pos); + int begin = cursorx_to_position_with_maxlen(buf, start, len, &pos); if(begin!=pos) { const char* ts = buf+pos; @@ -226,7 +250,7 @@ std::string utf8_substr(std::string s, int start, int size) if(size>0) { - int end = cursorx_to_position(buf, start+size-1, &pos); + int end = cursorx_to_position_with_maxlen(buf, start+size-1, len, &pos); if(end!=pos) { const char* ts = buf+pos;
あと、デバッガの追跡結果は以下。
>>127 >>156 Program received signal SIGSEGV, Segmentation fault. 0x000000080279f8c5 in memcpy () from /lib/libc.so.7 (gdb) info stack #0 0x000000080279f8c5 in memcpy () from /lib/libc.so.7 #1 0x00000000009feafa in erease_utf8_by_cw (t=0xf40c9e"", cw=2, clen=2, maxlen=-16) at src/catacharset.cpp:199 #2 0x00000000009fec7f in utf8_substr (s=..., start=0, size=27) at src/catacharset.cpp:236 #3 0x000000000048f325 in construction_menu () at src/construction.cpp:151 #4 0x00000000006e4ca6 in game::handle_action (this=0x809987000) at src/game.cpp:2929 #5 0x00000000006eaa9f in game::do_turn (this=0x809987000) at src/game.cpp:1096 #6 0x0000000000abaafc in main (argc=0, argv=0x7fffffffcaa8) at src/main.cpp:147 erease_utf8_by_cw() の呼び出しで maxlen が -16 というマイナス値になっているのがポイント。 これがマイナスのせいで文字列バッファからはみ出す memcpy() を実行しようとしてしまう。 じゃあ何故マイナスになるのかというと、 utf8_substr() から呼び出している cursorx_to_position() が原因。 cursorx_to_position() が終端文字(NUL文字)を無視している為に 文字列バッファからはみ出す pos を返してしまう事があり、 erease_utf8_by_cw() の呼び出しの len-pos-1 がおかしくなる。 >>65 Program received signal SIGSEGV, Segmentation fault. 0x000000080279f8c5 in memcpy () from /lib/libc.so.7 (gdb) info stack #0 0x000000080279f8c5 in memcpy () from /lib/libc.so.7 #1 0x00000000009feafa in erease_utf8_by_cw (t=0xf40c90 "\003\b", cw=2, clen=2, maxlen=2) at src/catacharset.cpp:199 #2 0x00000000009fec7f in utf8_substr (s=..., start=0, size=14) at src/catacharset.cpp:236 #3 0x00000000006a3b5a in game::draw (this=0x809a83000) at src/game.cpp:4748 #4 0x00000000006a4435 in game::refresh_all (this=0x809a83000) at src/game.cpp:4914 #5 0x000000000047a1a0 in game::opening_screen (this=0x809a83000) at src/main_menu.cpp:726 #6 0x0000000000abaad7 in main (argc=0, argv=0x7fffffffcad8) at src/main.cpp:144 erease_utf8_by_cw() 内の処理で、文字列バッファを走査する際に maxlen や終端文字(NUL文字)を見ずに走査している為に 走査結果の i が maxlen を越えてしまい、 memcpy() 呼び出しの maxlen-i がマイナスになって 文字列バッファからはみ出してしまう。
1日4回点眼で、 4週間で 5mlを1本使い切るくらいのペースだった。
エレメント番号の間違い修正 by 名無しII号 氏
鍵を差し込んで回そうとしても
引っかかって回らなくなってしまった。
耐タンパ性というか耐ピッキング性能と言うか、が高いキーなので、
こうなると素人には手が出せない……。
マイノリティ・レポート
プレコグ : 予知能力者
ジェイムズ・P・クロウ
ロボット物だったりする。
世界をわが手に
世界系?。
水蜘蛛計画
時間旅行浚渫機
安定社会
いかなるものも安定をくつがえせない。
どちらがマシなのだろう。
火星潜入
アクション物らしいのだが……。
追憶売ります
「トータル・リコール」は忘れて下さい。
SF ってこんなにダークだっけ?
アシモフに慣れすぎた?
個人的には「追憶売ります」と「マイノリティ・レポート」が
好みに近い。
p5-Encode-EUCJPMS モジュールをインストールして、 sudo enc2xs -C すると、cp51932 が使える様になるのね。 今更知った。
@wiki のパスワード(MD5)が流出したらしい。
ネコキス氏のブログを見て、 GearHead スポイラーも @wiki な事に今更気づいた。
Javascript を無効にして RequestPolicy を有効にすれば、
大丈夫だよね……
と言う事で、
GearHead @wiki が改竄されていないかを見に行ったら。
Javascript を無効にしていると、更新一覧や編集履歴が閲覧できん。
駄目じゃん。
メッセージ番号の間違い修正 by 名無しII号 氏
T/O
何か変な気がする。
例えば gearhead2-utf8 プロジェクトの wiki で
「GearHead2」を wiki内検索しても何もヒットしない。
「版図」「はんと」。 「はんず」ではない。
「|冠さない|」(|かんさない|)が出ない……のだけれども、 間違えて覚えていたかな? 「|冠しない|」(|かんしない|)の方が正しいのかな?
辞書を引くと「|冠+」(|かん+)は「動サ変」、 「|冠+し+ない|」(|かん+し+ない|にてで未然形の打消らしい。 情報源:http://www.weblio.jp/content/冠しない
「|冠+さ+ない|」(|かん+さ+ない|)と書いてしまうと 五段活用の未然形の打消になってしまうらしい。
「鎮守」「ちんじゅ」。 「ちんしゅ」ではない。
またやってしまった。 wine-1.7系でも駄目。 wine-1.4系に戻す。
・スレ23号機 678氏:gearhead.cfgのNAMESONを有効にしたらRange check error
配列のレンジあふれバグを修正。
wineのトラブルで3時間半くらい無駄に費やしてしまった。
アフター・サーヴィス
スウィブル。
自動工場
ベトチン。
電気蟻
一応ロボット物。
時間飛行士へのささやかな贈物
タイムパラドックス物。
でも、閉じても矛盾してもいないと思うのだが。
このサイトの掲示板を、yybbs から patiobbs に変更。
再アニメ化だって?
GearHead-2 翻訳 あ※ぷ※ろ※だ を
gearhead2-utf8.sourceforge.jp へ移転。
pre-α版体制に移行。
「I18N(Internationalization) GearHead」
技名にて %トークンを連続使用可能にした。 余計な空白を入れない様に変更。
東芝製ノートPCにて、STOP:0x00000124 が連発する様になった。 web で検索してみたが、やっかいそうだ……