.「鬼堂龍太郎・その生き様(2) / 田中 圭一」を読んで寝た。 なんか最近変な生物が活躍してないね。 |
.DR#288 関連 。 いや、この fetch_wchar(仮)の使い方ではありえないんです。 do-while の中ですべての文字が処理されるようになっています。 len が 0 でも、文字が吐き出されている間は state が 1 になるのです。 do-while の後で特別扱いしなければいけないのが、 実質的に不完全な文字およびシフトシーケンスで 終了しているケースだけになるように、 fetch_wchar(仮) の仕様を作ったのです。 .ちなみに、あのコードは、s が固定サイズの一時バッファを 指していることを仮定しているので、 「本当の終端」の処理は省いてあります。 「終端だから、吐き出せるなら吐き出せ」 ということを明示的に行うコードが必要になるんでしょうな。 fetch_wchar(仮) の pmb に NULL を渡して while() を回すんですかねぇ。 この方法論における、より完全なコードはたとえば while ((len = fread(buf, 1, BUFSIZE, fp)) != 0) { s = buf; do { if ((err=fetch_wchar(ce, &wc, &s, &len, ps, &status))) goto error; if (status) wcs[pos++] = wc; } while (len>0 || status); } if (ferror(fp)) ... do { if ((err=fetch_wchar(ce, &wc, NULL, NULL, ps, &status))) goto error; if (status) wcs[pos++] = wc; } while (status); if ((err=get_state(ce, ps, &status)) != 0) goto error; switch (status) {....}ですかねぇ(ps を初期化するためには別の関数が必要ですな)。 .もちろん、 get_state(仮)を既存の mbrtowc_priv() と組み合わせるならば、 「2 : 決定状態だが、まだ吐き出していないワイド文字がある」を (size_t)-3 の代わりとして使うことになるでしょう。 .なお、mbrtocXX で (size_t)-3 が不要であるというのは確かにそうですが、 (size_t)-2 はあいかわらず必要なので、まあ毒を食らわば皿まで、 ってことかもしれません。 .この辺の細かい話 については、まあ一度レビューなりリファクタリングなりをするべきでしょうね。 .TODO は他にも、thread ごとの locale 機能のドラフトが austin-group で出てたりするので、そういうのも考えないと。それ以前に、 足りてないカテゴリ(LC_COLLATE とか)を実装しろ、という話もありますな。 .追記。よくよく考えてみると、 終端した時に文字/シフトシーケンスの途中なら、 fetch_wchar(仮) は EILSEQ を返すのがリーズナブルだから、 上の定型的な使い方だと get_state(仮) って要らないような気もしてきた。 iconv(3) の中で使う場合には、 途中でステート判定しなきゃいけないから必要だけど。 .それにしても、終端の扱いは難しい。(size_t)-3 が発生するようなコードは、 厳密に言うと終端が iconv(3) では扱えないんだよなぁ。 たとえば、 Unicode の decomposed な文字列を ISO-8859-1 な文字列に変換するコンバータを開いて、 これに長さ 1 バイトの文字列「A」を食わすと、
|
.pcmcia な USB カード は、CF でちと高いですが こんなの があります。 ScanLogic のチップだったような。りなざうの人がたまに使ってますね。 |
.最新の NetBSD-current のソースに この arch と このパッチ を当ててビルド。
|
.床屋。 .ハンダごてが見当たらないのでシリアルなし。 「ハンダセット」って箱を開けたらハンダ吸い取り器とスタンドしか入ってねぇんでやんの。 .HDD 引っこ抜いて、 パーティションテーブルと、パーティション 0,1,4 のバックアップ。 .netbsd.bin を zImage って名前で放り込んだ。 .パーティション 0 を残して他は消して、 パーティション 1 を NetBSD パーティションに。 disklabel で /, swap, /usr, /var, /home を確保。 .てきとーにマウントして、sets の展開。MAKEDEV して etc の設定。 .戻して電源オン。動かねぇ。 .カーネルは読み込まれてるっぽい。アクセスランプが消えた後、 二度くらい唸ってから止まる。 なんとなくルートパーティションを見つけられてないのかなという気配も。 .明日こて買ってくるか……。 .メインマシンからクロスケーブルが出てるので、 都合がいいのは DTE 結線の D-SUB 9pin オスコネクタ。 2:RxD, 3:TxD, 5:SG か。 .もう少し探したらハンダごて出てきた。 でも、明日健診なので中断。 |
.公道 についても一概には言えなくて、 利用許可さえ取れればやってもいい。まず取れないけど。 .そういえば、東京都の場合は、ヘブンアーティストに合格すると、 指定された都の施設で活動できますな。 .違法であるというのと邪魔であるというのとは明確に違うので(人間心理って不思議で、違法だというだけで途端に邪魔に見えだしたりすることもあるけど、それはまあ置いといて)、 個人的には実害がなきゃどうでもいいや、と思う (別に違法行為を擁護するわけではないけれど、 「合法な邪魔もの」のほうがえてしてよっぽど質が悪かったりするし)。 もちろん、おまわりさんのお仕事となれば話は別で、 捕まる時は捕まるわけでして、ご利用は計画的に。自己責任で。 |
.へこへことハンダづけ。 .まずテスターで Vcc と GNU を確認して、 次に TxD だけを接続してデータが流れてくることを確認。 ビンアサインは正しかった。 ラッピングワイヤを挿し込める DIP ピッチのヘッダをスルーホールに挿したら、 いい具合にキツキツになったので、マザーにはハンダづけしてない。 IC はスミチューブで絶縁して電源の上の空きスペースに放りこんだ。 .やっぱりルートパーティションを尋ねるところで止まってたので、 適当に入力したらあっさりマルチユーザまで上がった。 毎回打つのはめんどいので、 config netbsd root on wd0a type ffs dumps on wd0bとしたカーネルに差し替えておいた。 .静かなのはいいけど、ディスクまわりが遅いかな。 |
.面倒くさくて更新怠けた。 .iconv 直した。 _citrus_stdenc_get_state_desc() という関数で、 エンコーディングに依存しないステート情報を取れるようにした。 拡張できるようにしてあるけど、今のところ generic な情報ということで、 例の get_state(仮) 相当の情報が取れるようになってる。 .不親切な NetBSD/gigalandisk インストールメモ 。 sets を作るあたりはもうちょい何とかしたいところ。 |
.「ドクター秩父山 / 田中 圭一」を読んで寝た。 復刻版。 |
.これ 。 輸出分に対応する仕入高が課税仕入高の他に 2296 億円 * 105/5 = 4 兆 8216 億円(税込)あったというだけのことだよなぁ。 .まあいずれにしても、 庶民の立場に立つならば、ツッコミどころは輸出戻し税ではあるまい。 財政破綻で増税が免れられない昨今、財界は税負担したくないから 増税分を消費者に押しつけることに賛成しとるわけです。 まあ結局ババを引くのが誰かというレベルの話でしかないのだけれども、 こういう発言に正面から異を唱えていくのが庶民の味方さんの役割だべな (今の庶民が適切な負担を背負っているかと言われると謎なのだが、 それは棚に上げておきましょう)。 どうもこんな下らないところで言いがかりをつけてるあたり、 庶民の味方さん方面ってのはろくな人材がいないらしい。 .まあもはやイデオロギーの対立でもなかろうし、 経済的右翼が富の総和の上昇を目指してるところで、 いかにその足を引っ張らずに(あるいは引っ張って) 各個人のもつ富の中央値を引き上げるか、 というのが、庶民の味方たる経済的左翼に求められる役割だよなぁ。 これからの経済構造を予想してみるに、 ぶっちゃけ我々下々の者はどーせ頑張っても大したことはできやしないし 期待もされちゃいないので、 いっそ一億総ニート化して少数のお金持ちの人々に養ってもらうような構造を 確立するのが今の左翼の急務ではなかろうか、 などと冗談だか本気だか分からんことを言ってみるテスツ。 .いやわたくし、中道左派を自任しておりますれば、 全く冗談でも何でもなく左方面にはもう少し頑張っていただきたい所存なれども、 已んぬるかな、左方面は相も変わらずアレなので以下略。 ちょっと夢見がちなアナタ、 もっと現実を直視しないと |