あまつぶ

8.6(2)

 前に一月分まとめて1つのファイルにしていたころのなごりで新しい話題ほど上にあるようになっているけど、今みたいに一日ごとにわけるようになると8.6(2)ってのが8.6ってのより上にあるというのは妙な気もする。ま、いいか。

 Geneva2OsakaとPageMillの話の続き。結論からいうと、「解決したらしい」。体験版(デモ版?)ではちゃんと動くようになったようなのでおそらく製品版でも動くと思うが、確認していないので「らしい」ってわけ。
 問題は、TextWidthというルーチンのパッチ部分にあった。この部分を追加したのは0.65b1で、0.80b1でいじったあとから問題となっていると思うから0.65b1ではおそらく問題なく動くはず。が、まあ、この変更は必要があってした変更だからバージョンダウンするのもいやだし、なんとか解決することができた。
 具体的には、0.80b1のときの修正点である「テキストの最後の文字がなぜかシフトJISの第1バイトで終わっているときに起こる文字化けに対処」がまずかったようだ。だいたい、こんなテキストをOsakaで表示しようとしたりするという時点でおかしいのだが、PageMillではこういうテキストの横幅を調べるという不思議なことをやっているようだ。完璧に確認したわけではないので定かではないが、おそらくは「あ」というテキストの横幅を調べるのに、16進コードで0x82という文字の横幅を調べる…という感じになっているのではないかと思う。デフォルトのTextWidthでこういう文字の横幅を調べた場合、どうも全角文字とした場合の横幅を返すらしい。ぼくの作ったパッチでは「こんなテキストは不正だからないものとみなしてもいいだろう」と思ってs-jisの1バイト目で終わるテキストについてはこの文字を無視するようにしていた(これが0.80b1での変更)。
 PageMillはTextWidthの仕様により「2バイト文字の横幅」が返ってくることを期待していたのだが、ぼくの作ったパッチでは0という横幅が返ってきてしまう。それが原因でまとまって表示されてしまったようだ。Geneva2OsakaでもTextWidthの仕様と同じ動きをするように変えてみたところ、この問題は発生しなくなった(少なくともうちの環境(デモ版)では)。
 確かにこれはGeneva2Osakaのバグといえなくもないけれど、2バイト文字の1バイト目の横幅を要求する、ということ自体がまずおかしい。しかもそれで2バイト分の横幅が返ってくることを期待しているのもおかしい。1バイト目で終わっているときに2バイト文字分の横幅を返すTextWidthの動作も謎だ(というかこれは1バイト目で終わっているかどうかのチェックを手抜きしているだけなんだろうけど)。どちらかというとPageMill側(あるいはシステムか?)がまずいんじゃないかと言いたいくらいだけど、解決したからよしとするか…。
 あとはもう少しバグを修正。おそらくあれが原因でバスエラー(タイプ1のエラー)になっていたケースがあると思うので、タイプ1のエラーが出ていた方はお試しを。また場合によってはタイプ2とか3のエラーにも対処できているかもしれない。
8.6

 まずはふぉるだ振り分けの話から。昨日、1.02から1.03って書いていたけど、1.03から1.04の間違い。なんか細かいバージョンアップが多くて自分でも最新バージョンがなんなのか勘違いしてた(苦笑)。
 で、その1.04をリリース。いくつか見つかっていた細かいバグの修正。たいしたバグではないけどなんか気持ち悪いので一応修正と。修正内容はドキュメントに書いてあるからここでは省略。
 と、同時に1.10b1もリリース。こちらはNavigation Servicesに一応対応して、設定追加/編集のときにファイルからタイプ/クリエータなどを得るダイアログ、移動先フォルダを設定するダイアログでNavigation Servicesを使うようにしてみたもの。まだ完全でない部分があるのと若干不安な点もあるのとでβリリース。ドキュメントをざっと読んでサンプルソースを見ながら「とりあえず」動くようになっただけなのでまだまだ手直しが必要だと思うけど。
 リソースを細かくチェックするとわかるかもしれないけど、1.04以降では今まで使っていなかったリソースがいくつか増えている。1.2で追加する予定の「全自動」の伏線(?)。方針は固まってきたのでそろそろソースを作るつもり。ま、まだNavigationのほうもやらないといけないから並行して…って感じになると思うけど。次のバージョンは1.10b2になるか1.20b1になるかというところかな。

 Geneva2Osakaのバグ関連のこと。やはりPageMillと相性が悪いようで、日本語がかたまって表示されてしまうらしい。以前にもインライン入力ができないという報告があったが、これに続いてPageMillとの問題。インライン入力だけならともかく、かたまって表示されてしまうというのはかなり致命的だと思うのでちょっと調べてみることにした。
 そうはいってもそのためにPageMillを買ってくるほどの財力はないので体験版をWebからダウンロード…。と思ったらftpサーバにログインできない(500人しかアクセスできないのね)。ひょっとしたら雑誌のCD-ROMに入っていたりしないかなとちょっと探してみたらMacFan internetについてた。さすがインターネットというだけのことはある。助かった。で、インストール。
 インストールが無事終わり、チュートリアルフォルダの中のファイルを試しに開いてみると、読めない「くしゃっ」となったものがいくつか表示された。これが『かたまってしまった』状態なのか…。試しにそのページをブラウザで表示させてみるとちゃんと読めるようになった。ふむふむ。原因はわからないが、これはどうもバグっぽい。
 体験版をダウンロードしてきたと入ってもすぐに原因がわかるとは思えないので、まず暫定的にPageMill上では問題の部分を実行しないようにするという方法で対処しようと思う。0.80b3として2、3日中にリリースの予定。PageMillの英語版を使っていてメニューの文字化けが気になる…という人以外はこの修正で一応いけるはずかな?
 さ、いろいろいじりつつ試行錯誤しにいこ。

to August 5, 1998 ↑ to August index → to August 7, 1998