OSTRACISM CO.
■ 日本語エディタ「褌・エディット」−作文職人−の開発日記 巻之二

 IM VIを読むと、ポインタの直接計算をする前にStripAddressを行うべきであるとある。確かにポインタの最上位のフラグが立っていたら負の数値になってしまって、計算の結果が違ってしまう。とりあえずこのへんを全部修正しよう。
 ダイアログの中でのキーボード対応というどうでもいいことをまた実装してしまった。でもこれが元で、キーボードログのダイアログ対応ができるはずだ。そうなると、ダイアログ内のカットアンドペーストも実装すべきかも知れないなあ。
 ポストイベントってどのくらいの容量を持つんだろうなあ。実験しなくては。

褌0.7a / 1993.06.22

 どひゃあ、結構重大なバグを見つけてしまった。まだこんなバグがあるとは、困ったもんだ。16K以上の下方向テンポラリファイルが存在するときに、ファイルをセーブすると、特定の位置からの繰返しになっちまうとはねえ。このへんはあんまり試験されてないし、テンポラリを作るファイルなんてあんまりないからなあ。ともかくバグが発見されて良かった。
 ようやくコピーの高速化が終った。これでコピー時に不当なまでに待たされるということはなくなったはずだ。あれえ、おかしいなあ。全然速くないぞ。どこで処理を食ってるんだろう。あー、表示のためのインサートで律儀にスクロールしている。これはいらない。クリップボードはスクロールしないんだから。
 うん。インサートを修正したら劇的に速くなった。インサートロジックの他の部分にも、多少手を入れないといけないなあ。これを書いてから後に、色々と便利なルーチンができたからねえ。次はペーストの高速化だ。

褌0.7a / 1993.06.23

 とりあえずペーストの高速化が終った。スクロールじゃなくジャンプになっただけだから速いってわけじゃないけどね。原理的にこれ以上は無理。
 ユーコちゃんの要望で夏会は7月10日に決定。皆に連絡しなくちゃ。
 Debug Folderで、ひろぽんさんのメッセージが入っていた。前にローエンドマシンの仲間入りだなんてひどいこといってしまったからなあ。御免ね、悪気はないんです(なおさら悪いって)。変換機能はまだ先ですねえ。でも必ずやるよ。自分でも必要だしね。
 Inline++TSMできちんと動いているそうだ。よかったよかった。スクリプトマネージャ関係ではたいしたことはやってないんで、今後も問題はなかろう。しばらくはインラインで悩まなくて済みそうだ。
 LightsBugでロックしたハンドルをポインタにしている部分をみたら確実に負の数だった。IMのIIを見るとリロケータブルブロックは最上位ビットがONだった。よくもまあいままで24ビットモードで動いているフリをしていたもんだ。アップするのが早すぎたかもしれない。でもこれでシステムが不安定になる(ヲイヲイ)原因がわかった。落ちてあたりまえだったんだね。褌0.7aをダウンした皆、御免ね。
 さすがに最近はやたら安定している。とおもったらアプリケーションエラー7番がでた。うーんやっぱりぎりぎりのサイズだとだとメモリ関係が問題ありだなあ。
 メモリと全然関係ないエラーだった。ジャンプのときのテンポラリとの絡みだった。ここは昔はちゃんと動いていたのに、いつのまにかレベルダウンしていた。不用意にソースの整形なんてやるんじゃなかった。でもアプリケーションエラー7番の後デバッガに落ちるのは深刻だなあ。何が原因だろう。
 なあんだ存在しないTxHandleを使ってるではないか。これじゃ落ちるはずだ。ということは0.7aのエラーリカバリは確実に落ちる。まいったな。
 あれえ、また落ちた。今度はレンジチェックらしいな。そうか、移動サイズが0で、配列の値が32000というのはあり得るんだなあ。まあ、ここも移動サイズを見るようにするか。全部のBlockMoveを一回見る必要があるなあ。でも実質的には問題ないのになあ。今日はやたらと落ちる。何が安定してるんだって?
 エラーリカバリもちゃんと動くようになった。これでアプリが認識できる程度のエラーは大丈夫。だったらエラーをなくせって? それができたら悟りが開けるよ。

褌0.7a / 1993.06.24

 やっとカットのアンドゥーができた。フラグを一個忘れたおかげで、やたらと苦労した。まあ、一つできさえすれば、あとは楽になる。同じ要領で実装すればいいわけだ。いわゆるひとつのヤマは越えたね。
 問題はキーボードからの入力のアンドゥーだ。真面目にロジックを考えないとなあ。TEXTjackではすんごいズルをやったからなあ。32K制限というのは、真面目にロジックを組む必要がないんだよねえ。もう、内部的にテキストの二重化なんてできない。
 あれえ、上ジャンプでコケた。なんだなんだ。あ、この前手を入れたところだ。まいったなあ、レベルダウンじゃないか。0.7aアップ後の部分だからいいか。このあたりはもうFixしてるはずだったんだけどなあ。余計なことするんじゃないよ。

 丸さんがNHK衛星放送でやったYMOのライブのビデオを持ってきてくれた。感謝感謝。やっぱWATERFORDはいいねえ。
 3月のPEにつづき、また大将バグの仕事がきた。今度はF1だ。で、障害は、160行のソースに2箇所の致命的問題があるのが原因と推定される。配列に弱いとは思っていたが、ここまでひどいと大笑いである。さすが、私の天敵だ。某Niftyの某FGAL云々のシスオペだかサブシスをやっていると噂で聞いている。私はそのフォーラムには近寄らない。きっと平常心を失うだろうから。
 エディットメニューのアンドゥーが完成した。いよいよ次は文字入力のアンドゥーだ。はてさてどうやったもんか。

褌0.7a / 1993.06.26

 感冒性腸炎でフラフラだ。食あたりも、もっともらしい名前を持つもんだ。
 文字入力のアンドゥーの実装が終った。いよいよ地獄の検索が始まる。
 Debug Folderで、飯森さん(Inline++TSMの作者)からのメッセージがついていた。さすがは伊達にマックのプログラマーやってない。私の弱点を的確に衝いてきた。おかげで思いがけずセレクトのカラー化ができた。やっぱNew Insideを買わなくちゃいけないのかなあ。痛いなあ。しばらくは許してね。
 文字入力のアンドゥーにバグがでた。そうかそうか、入力後カーソルを移動してもアンドゥーは成り立つんだよな。ということは入力毎にポジションをとらなくては。

褌0.8a / 1993.06.28

 クライアントの前で動作確認なんて、とんでもなく冷汗ものだった。全貌を掴んでいないモジュールで、しかもお腹の調子が悪いってのに。直ってたから良かったものの、大将バグはしつこいからなあ。これで終りとはとうてい思えない。
 JGAwk Interfaceへの報告に対するLaunchApplicationの質問に、Basukeさんが答えてくれた。感謝感謝。結局Programmer's Folderでの話をDebug Folderにひいてしまった。この辺の話はIM VIを読んでもチンプンカンプンで情けない。

褌0.8a / 1993.06.30

 TEXTjackのフォントリソース付き文書を開いたら、唐突に落ちた。どうやらオーバーフローらしい。タブサイズの計算だ。何かがおかしい。
 文書の持つリソースを読む部分で変数名を一つ間違えていた。こりゃ落ちるわけだ。これを直すと当然のように文書が開けるようになった。まだまだオーバーフローチェックとレンジチェックは外せないな。アップするモジュールは別だが。
 もう今年が半分終ってしまったなあ。大台まであと半年。

褌0.8a / 1993.07.01

 思い付きで実験的にエディションを実装した。引用をするつもりはないので、テキストの発行の機能だけだ。インターフェースガイドラインは完全に無視した。セクションの表示なんて、あまりにも面倒だ。オプション設定もなし。文書の保存時に自動的にエディションもアップデートする。
 で、テストしようとしたら、マックワードはテキストの引用ができないと気づいた。...ということは、ウチにはテスト環境がまったくないということだ。なんて馬鹿げた機能を付けてしまったんだろう。自分じゃ使えないというのに。
 エディションファイルはちゃんとできているようだが、問題があったとしても対処不能だ。疲れてしまったよ。トホホ。
 もしテキストの引用できるアプリを持っている人がいたら、発行の実験をやってみてください。オプションキーを押しながらFileメニューを開くとSave As...がCreate Publish...に変わります。発行するテキストは、現在のキャレット位置から最後までです。発行時のキャレット以前のテキストは変更しないという前提で動作します。もし変更したら再びCreate Publish...を行ってください。
 結局、テキストを引用できるアプリが手に入るまでは、この発行機能は中途半端のままだろうなあ。困った。

褌0.8a / 1993.07.03

 あんまり悔しいんで、発行をサポートするための独立したツールを作った。作ってしまった。簡単だと思ったが、意外に苦労した。エイリアスは元のファイルが削除されてもファイルがあるがごとく動作する。ファインダ情報も貰える。おかげでエディションファイルの存在の判定に、GetEOFまで持ってくるはめになった。やっぱ何か変だよなあ。
 発行をサポートするツール(PUBLISHjack)のエイリアスをダブルクリックするとマウスカーソルが時計のままになる。まさかと思い、ほかでもやったらMacLoad、ASLEdit、BigEyes、自作の時計で同じ現象がでた。でも褌ではでない。マックワードでもでない。
 褌ではマウスダウンイベントでinSysWindowだったばあい、SystemClickを呼ぶ直前でInitCursorを呼んでいる。PUBLISHjackで同じコードを入れたら時計のままになる現象はなくなった。マックOSおそるべし。不可解な動作は天下一品である...窓達のほうが不可解だな。
 こしみず氏からメールが入っていた。要望のメールなのだが、すでに存在する機能の要望であった。マニュアルがないというのは、やはり問題多しというところか。
 最近褌に手をかけてないなあ。PUBLISHjackが完成したから、そろそろ褌にもどろう。でも検索の実装は地獄だなあ。

褌0.8a / 1993.07.07

 相田さんの発言で、こしみずさんのDebug Folderでのオープンダイアログの話は褌のバグだと判明した。必須アップルイベントに対応したときに、CountAppFilesでの動作を考慮していなかったことが原因だ。必須アップルイベント対応にすると、文書ファイルのダブルクリックで褌を起動したときに、CountAppFilesの戻り値が0になるため、本体のみ起動と判定してしまっていた。どうもこのへんはあまりスマートには書けないようだ。アップルイベントのOpenApplicationにも同じルーチンを用意することになる。
 がじらさんからは拡張キーボードの話だ。持ってないデバイスに対応するのは、確認ができないから気持ち悪いんだよね。でもまあいいか。たいしたことではない。
 レガシーさんは話からしてTEXTjackユーザではないようだ。褌の評価メンバーにはTEXTjackを使っていないヒトも多いらしい。
 相田さんのTAB表示は、あえてやめていた事項だからなあ。あまり期待しないで待っててね。
 検索実装のための下地を用意した。この週末はプログラミングどころではないから、また結構延期になる。でも今月中には0.9aにしたいなあ。ま、無理はやめておこう。

褌0.8a / 1993.07.09

 今年の夏会が終った。納涼のはずだったが、最近は妙に涼しい。まあ、じきに暑さにネをあげる季節になるだろう。
 Find...およびFind Nextの実装が終った。はっきりいって検索速度は遅い部類になるだろう。テキストのデータ構造の問題だからしかたがない。漢字はコードの構成上「まず1バイト探す」ではあまりに多く引っかかってしまうため、「まず2バイト探す」で検索を行った。
 使えるルーチンが増えてきたせいか、多少の問題はあったものの、結構あっさりとできてしまった。これで本当に問題がなければ、次はFind Beforeである。
 ダイアログの文字入力にコマンドキーによるカット&ペーストを実装した。これで、Escapadeがない環境でも多少操作性が向上する。

褌0.8a / 1993.07.11

 シフト+アローキーでセレクトの伸縮をしていたらレンジチェクに引っかかった。テキストのEOFをチェックしているIF文だと考えられる。どうも長いことCコンパイラを使っていたせいか、ORで結んだIF文の最初の判定で真になったら、残りの判定を行わないでくれるように、思い込んでしまう癖が付いてしまっている。例えば、あるハンドルがNILか、ハンドルの先のレコードの、あるメンバーが0のときに、同じ処理をするということをコード化する。これは単純にORで結ぶとレンジチェックに引っかかってしまう。ハンドルがNILのばあいでも、番地0をマスタポインタのアドレスとして、メンバの読み込みをしようとしてしまうからだ。
 THINK Pascalはあまり効率の良いコードを生成してくれるわけではない。このあたりは処理系に依存すると、「PASCAL原書」にある。よって、処理系に依存せずに正しく動作するために、「2番目の因子は、最初の因子の値とは無関係に、正しく定義されなければならない」とされている。THINKが、より正しいPASCALプログラムを書かせるために、こうインプリメントされたとすれば、あまりに悲しい。明らかに実効速度は落ちるはずだからだ。
 「プログラミング言語C」では、「第1被演算数の値が非零なら、第2被演算数は評価されない」とある。実用の道具であるCらしい方法だ。こういう点はCの方が、きっぱりしていて好きである。
 PUBLISHjack転載希望のメールが来ていた。ヤノ電子のMO装置に付属するのMOディスクに載せるそうだ。そういった掲載方法もあるんだなあ。

褌0.8a / 1993.07.12

 さすがに検索まわりは地獄だと予測しただけあって、シンドイ試験が続く。カレントの行バッファが0行のときには、必ず怪しくなるとわかった。そもそも低レベルのルーチンはカレントが1行以上であるという前提で作られていたのである。しかたがないので、検索中での内部ジャンプが必要になったら、最低でも1行は読み込むことにした。これでこのへんの問題はなかろう。800Kバイトのファイルの検索は異様に時間がかかる。ごまかしのため、マウスポインタの形状を変化させることにした。気持ち悪いなあこれは。
 フォントを小さくして、行バッファいっぱいに使う実験をしたら、やはり変な動きがでた。どうしたもんか。

褌0.8a / 1993.07.14

 行バッファをいっぱいに使う状況に対処。これで巨大なモニタでも問題なく使える。褌は、画面表示可能なテキストを160桁×100行と制限している。約16Kバイトだ。これはある種のテキストVRAMだと思ってかまわない。何らかの制限を持たねば、実際のコードは書けないのである。
 窓達の秀丸エディットを触ってみた。窓達のプログラムとしては、驚異的なスピードを持つ。よくぞまあここまでやるなあ、という感想だ。残念なのは、いわゆる右折り返し型でない点であろう。まあ、これは80桁とかに設定すればいいわけだが、等幅フォントのみを使えるという点も、多少ずるさを感じさせる。褌は等幅フォントの誘惑に打ち勝ったエディタなのである。これは処理速度にモロに跳ね返ってくるが、マックのエディタで等幅フォントのみというのは、論外なのである。窓達では等幅のみでも問題ないらしい。桁のサイズにあわせてウインドウを小さくするオプションでは、どうも右が詰まりすぎるきらいがある。でもまあ、よくできたエディタだ。
 Find Beforeの前に、Asciiコードのケースマッチしない検索を実装。マックOSのルーチンを使ったため異様にのろい。文字列によるアクセスは無駄が多いため敬遠したいのだが、そうもいかない。まあ、こっちの作りにも問題があろう。普段はケースマッチモードで使った方がよさそうだ。

褌0.8a / 1993.07.15

 フォントサイズを大きくして動かしていたらジャンプがおかしいとわかった。表示行数が少ないときに、キャレットの動作で上下1行あけることを「しない」のだが、そのあたりの判定で、不定の変数がでてしまっていた。それを修正したらきちんとジャンプするようになった。昨日でたレンジチェックエラーも、たまたま不定の変数が負の数になっていたためであろう。

 マイルストーンのCentris610で褌を動かしてみた。コマンドキー+上下キーだと98でVZを使っているスピードになる。うーん「速さは力」だなあ。で、そのCentris610では最初、表示がおかしくなっていた。まさか68040インコンパチのエディタを作ってしまったのでは!と悲しくなってしまった。絶対そんなことはないと、そのマシンの機能拡張フォルダを調べると、JAMがインストールされていた。「これだこれだ」と、はずしてから再起動すると、正常に動作するようになった。褌はJAMとは互換性がないと判った。動作からだいたい何が原因か判断できるが、これを修正する意志はまったくない。JAMのインストールされた漢字Talkは漢字Talkとしての正常な動作ができなくなる。CharByteで-1を返す文字のCharWidthが、漢字ストライクサイズでないのであろう、と考えられる。TextWidthを使っていれば問題ないのであろうが、あいにく実用的な速度確保のために見捨てたルーチンを使うほど、A&Aには義理はない。Appleにも義理はないけどね。

 ジャンプ等のダイアログで、キースクリプトをローマンにするオプションを実装した。これでキーボードによる素早いジャンプが実現される。あれえ?キースクリプトが変更されない。何故だろう。
 jBASHINGがインストールされているシステムでは、ユーザの意志によるキースクリプト変更以外の変更は無効にされてしまう。すっかり忘れていた。やっぱりjBASHINGをはずすしかないのかなあ。システムにパッチをあてるのはいやなんだけど、起動時に必ず日本語ってのはイヤだもんなあ。
 おかしいなあ、どうやら6.0.7.1では昔のパッチは駄目らしい。6.0.7では有効だったのになあ。何をしたんだろう。

褌0.8a / 1993.07.17

 予想通り、System7ではStayHere!がインストールされていると、キースクリプトコントロールが無効になってしまう。StayHere!は、そういうユーティリティだからしかたがない。この点は取説に明記しよう。

 噂のシャープの「ワープロ用普通紙(熱転写用紙)」と、キヤノンの「ワープロ用紙バブルジェットプリンタ用」を買ってきた。HPデスクライタでの印字の様子を調べるためだ。カメラのさくらやの値段で、シャープが¥285、キヤノンが¥390だった。紀伊国屋のアドホックには両方ともに置いてなかった。いつまでたっても使えない店である。店員の対応も最悪だし。
 で、マックワードでテスト印字してみた。もうひとつついでに、コクヨの「ワープロ用紙熱転写プリンタ用」でも印字した。
 シャープの紙が名前の通り、最高のシャープさを示した。ついでキヤノンの紙。コクヨの紙は最も太く印字された。HPのインクは非常ににじみやすいため、この1年間紙を探していたのだが、これからはシャープの紙を使うことになりそうだ。普通のコピー用紙で印字すると、ここまでにじむかぁ..というくらいにじむ。
 月刊アスキーに掲載されていた「インクジェットプリンタと用紙の研究」(正式なタイトルは忘れた)では、シャープの紙が対象から洩れていたため、キヤノンの紙が「日常的に使うときの最高の紙」とされていたが、シャープの方がさらに最高の紙であることは明白だ。HPデスクライタユーザの諸君、シャープの紙を使いましょう。

 せっかくVJEユーザになったんだから、Inline++VJEをダウンしてSystem6で使ってみている。こんなに日本語入力環境が良くなるとは思わなかった。ただ、2ピクセル幅のキャレットには対応していないところが悔やまれる。もうSystem6用のツールのレベルアップなんてしないんだろうなあ。悲しいなあ。

 今回はちゃんと選挙にいったぞ。この前は食あたりで寝込んでいたため、投票どころではなかった。結果がたのしみだ。ボーダーラインにいるとされている人に投票したから、結構ワクワクする。激戦東京4区。

褌0.8a / 1993.07.18

 StayHere!と、jBASHINGから離れるべく、キャプス派になろうと、VJEの設定を合わせたが、なかなか慣れないもんだ。旧標準キーボードも、標準キーボードIIもキャプスの感触が最低なので、左の小指がやたらとイライラする。挫折するかも知れない。インライン派になるのも大変だ。やっぱりコマンド+スペースに戻ろうかなあ。キータッチのいいキーボードがあれば問題ないんだけどなあ。よく考えたらコンピュータを使いはじめてから、頻繁にキャプスを使ったことは一度もない。
 あ〜〜だめだ。やっぱりキャプス派にはなれない。こんなキャプスを使うなら、邪道と呼ばれようとコマンド+スペースを使うぞ! マックのキャプスは最悪だ。こんなにひどいキータッチとは。PLUSのキャプスはまだ良かったぞ。PLUSのキータッチは好きだったなあ。ADBのPLUSキーボードはないもんかねえ。
 VJEの設定を元に戻したら、日本語がイキナリ入力できなくなった。強制ローマ字変換なんて気づかないよ。Katanaとは違うなあ。
 アスキー文字の入力のためにキースクリプトを変更するという方法は、ある種過渡的なものなのであろうが、キャプスを多用するという、明らかにエルゴノミクスに反した方法が是正されるという見通しもない。このドキュメントでもそうだが、現在のパソコンの構造上、いわゆる全角漢字と半角英数字の混じった文章を書く機会は非常に多い。全角かな入力と半角英数字入力をトグルでモード変更する操作が頻繁に発生するというわけだ。で、VJEにおいてこの操作はキースクリプトを変更するのでなければ、キャプスを使うしかない。これはVJE-γであっても同じだ。
 よーするにキースクリプトを変更することなく全角かなと半角英数字をトグルでモード変更する機能が欲しいというわけだな。PC98のATOKにはあったなあ。MacWXIIはどうなんだろう。まあ、しばらくは移行する気力もお金もないが。あればオプション+スペースに割り当てれば、あまり違和感なく移行できるだろう。
 いろいろ調べてみたら、おもに半角を入力するをONにすると、オプション+3で全角かな半角英数をトグルでモード変更するようになった。なあんだこれで解決ではないか。これで晴れてアンチキースクリプト変更派になれる。残る問題は、現在の入力モードが画面から、また、キーボードから判断できないという点だ。これはしょうがない。キャプスを使わないというわがままを通せるのだし、それに漢字Talk7.1では画面でモードが見れるようになったわけだから。やっぱVJEだねえ。でもマニュアルをどう解釈してもオプション+3が、かな英数トグル切り替えだなんて読めない。妙だ。
 これだと起動時はキースクリプトが日本語でも、そのまま半角英数字が入力されるモードになっている。なかなかグーな設定だなあ。ま、SweetJAMの頃は現在のモードが何かなんてわからなかったわけだし、たいした問題じゃない。
 げ、VJE-γではオプション+3がトグルにならない。まいったなあ。ふりだしに戻ってしまった。こんなところの仕様を変えなくてもよかろうに。

 後方(上)検索を実装したが、2バイトコードが、そのコード構成の欠陥のため、後ろからスキャンして正しくキャラクタを判断できないことに気が付いた。というか思い出した。困ったなあ。アルゴリズムをかなり考えないといけないってことだ。ウーン。次期バージョンはそうとう遅れそうだ。

褌0.8a / 1993.07.21

 ようやく後方(上)検索の問題を解決した。まともなアルゴリズムを考え付いたのではなく、単純に検索したあとで、セレクトのトップが正しいキャラクタ分離位置であるかどうかをチェックするのである。これで理論的には問題はないはずだ。
 これでしばらく悩んだ問題が解決した。こんなことでひっかかるとは思わなかった。TEXTjackの後方(上)検索はバグったままである。
 こしみずさんからオートインデントの要望が来たが、まあ、やるとしてもそうとう後になるだろう。私はアンチオートインデント派なのだ。褌には置換とそのアンドゥーという難関が待っている。
 土曜日に、IIcxをショッカー基地へ送り出した。1〜2ヵ月後には改造の結果、3倍程高速化されて返ってくる予定である。誠和システムズではIIcxへのDayStar PowerCache50取り付けは、やってないらしい。MPUを半田付けするという暴挙をやってしまったAppleを怨む。IIcxは本人も行ったことのないアメリカに行ってしまうのね。トホホ。
 よって、IIcxが返ってくるまでは、漢字Talk7.1でのテストはできなくなる。Classic IIに漢字Talk7.1をインストールするような悠長なことは、私にはできない。IIcxでさえ我慢できなかったのに、Classic IIではただの地獄となろう。
 Centris610も思ったほど速くなかったような気がする。まあショップのマックはオニのように大量のINIT類を入れてあるからだろうとは思うが、システム7はひたすら資源食いなんだねえ。あれ、今VJEの候補ウインドウが化けてしまった。VJEかInline++のどちらかの問題だろう。再現させようとしても二度目はない。

褌0.8a / 1993.07.26

 さてと、置換とそのアンドゥーの実装が終った。まあ、機能的にはペーストと変わりがないのでたいした面倒もない。問題は次に実装する全置換とそのアンドゥーだ。結局はテキストの二重化をしなければ手はない。変換とそのアンドゥーもほとんどテキストの二重化に近い。はたして全置換のアンドゥーは必要なのだろうか。たいていのヒトは全置換前にいったんセーブする癖があるのではないか。まあいいや。
 検索・置換の試験で、ダイアログを多用したら、インライン入力の表示と入力ウインドウの表示が同時にでるという現象がおきた。キーボードを叩くと、インライン部分と入力ウインドウで同時に文字が表示される。なかなか妖しい動きだ。
 Escapadeがインストールされているから、ダイアログ関係は多少危険な状態にあるのかも知れない。

褌0.8a / 1993.07.27

 全置換のアンドゥーは、異様に重い処理となったが、なんとか実装がすんだ。これでいよいよヤマ場のテキスト変換に突入だ。
 THINK Pascalのマニュアルを見ていたら、IF文の第二因数以降を評価しないANDとORの書き方を発見した。まさか方法があるとは思わなかった。完全にTHINK Pascalに依存したソースになってしまうだろうが、どうせ他のマック用のPascalでコンパイルすることもあるまい。速度を重視するところでは使うようにしよう。

褌0.8a / 1993.07.28

 削除および挿入のロジックに若干おかしい点が見つかった。キャレットが行頭のとき、挿入する文字によっては前の行に置く必要がある。ずいぶん前に「後回し」にした部分だった。まだ実装されてなかったと気づいたのだ。久しぶりにソースをプリントアウトした。もちろん大量のソースのごく一部である。これくらい基本的な機能のソースはもはや忘れかけていて、紙で確認しなければ手を加えられなくなっている。褌はすでに13000行に近い。
 キャレットのON/OFF制御がかなり怪しくなってきている。危険だ。破綻する前に何か手を打つべきだろう。

褌0.8a / 1993.07.28

 変換ルーチンの実装をプラグインモジュール化するめどがついた。この方法がどの程度安定して動作するかは、ロードテストをひたすらするしか確認方法はない。ある程度トリッキーな方法ではあるが、実験ではうまく動作してしまっている。ただ、System7や68040マシンで問題が生じないかはなんともいえない。
 これで久しぶりにバージョン番号を上げた。いくつかプラグインモジュールを用意して、コントロールキーをある程度実装したら、ようやくアップできる。まあ、急ぐこともあるまい。アップバージョンは0.9bとなるだろう。評価版という制限は、はずすつもりだ。

褌0.9a / 1993.07.30

 変換ルーチンのためのプラグイン実装が終った。プラグインモジュール化する最大の問題は、LightsBugで追うことができなくなる点にある。サンプル用として数字の漢字化モジュールを作った。問題なく動作するようだ。
 Hundoshi Development Kitのドキュメントが完成。これで、比較的さまざまな要望の発生しやすいテキスト変換については、ユーザ自身の手で機能拡張する窓口が用意されたことになる。
 7月中のアップはやっぱり無理だったなあ。プログラミングのヤマ場はとうに過ぎてしまったからだろう。行評価の高速化をひたすらやっていた頃が一番面白かったといえる。
 電脳騒乱節で中村正三郎氏が書いていたが、プログラマを自称するならば、一度はエディタ作成に手を染めるといい。自分の実力がわかる。褌は私が挑戦した4度目のエディタだ。最初のMSXはCコンパイラの重さで挫折した。2度目のDOSはMIFES、RED、VZなどに勝てるはずもなく挫折した。3度目がマックのTEXTjackで、使えるレベルのエディタにはなったが、システムのルーチンを使ったゆえの制限で、窮屈さを感じるようになった。で、褌である。褌は私が完成させた、初めての本格派エディタといえる。結局エディタばっかり作ってきたような気がする。
 あ、テキスト変換のアンドゥーを実装しなくては。

褌0.9a / 1993.07.31

 ずっと気になっていた、ダブルクリック後のマウスポインタの移動にともなう選択の拡張をやっと実装した。ただ、やたらと重い処理になっている。重さの理由はわかるのだが、高速化するだけの意義があるかどうかは疑問が残る。
 この処理の実装のタイミングで、低レベルのテキストレコード(TEにおけるTERecordに相当するもの)の一部を変更した。大量のソース書換えが発生した。こういった処理をするときは、やはりDOSマシンでgrepを使いたいもんだ。後々にはgrepとTagJumpの実装も考えたい。
 ずっと、THINK Pascalで、ソースデバッグをしようとすると、不安定になっていたが、SuperClock!を外すと落ちなくなった。SuperClock!なしのメニューバーはなんだか寂しいが、背に腹は替えられない。
 さてと、^Gの実装も終了。あと幾つかコントロールキーでの移動処理を実装したらアップバージョンになる。やっとここまできた。

褌0.9a / 1993.08.01

 なんとか、単語移動を実装した。予想通り結構重い処理だ。単語関係の処理は見直す必要があるのかもしれない。まあ、明らかな無駄があることはわかっている。
 あとはキーボードでのページ移動を実装したらアップ準備だ。今週中にはなんとかなるだろう。

褌0.9b / 1993.08.02

 さてさて、ページ移動の完成。すなわちアップバージョンの完成だ。長かったなあ。前回アップから1ヵ月半たってしまった。漢字Talk7.1での試験ができない点が気になるが、そこはFMACPROのみんなに頑張ってもらいましょ。
 ソースに直接持っていた文字列を大部分リソースで追い出した。これでマックソフトらしくなった。勝手に日本語化なり中文化なりしてください。
 テキスト変換のキーボードショートカットを実装。ま、これくらいは用意しなくちゃだな。
 後輩が置いていった「科学は錯覚である/著・池田清彦」はおもしろい。
 そうだそうだ、^Yの実装をせねば。

褌0.9b / 1993.08.03

 変なバグが紛れ込んでいたが、なんとか解決した。削除を実行した後、キャレットが前の行に行ってしまう場合がある。また、次の行に行ってしまう場合もある。表示の制御でこのあたりをあまり解決していなかったのだが、7/28の修正に合わせてロジックを再確認した。たぶん問題はないだろう。ないと思うんだけどね。さて、そろそろバグ出しをしてもらおうか。
 とうとう実行モジュールのサイズがASLEdit+をこえちゃたんだなあ。

褌0.9b / 1993.08.04

「ホーム」へ戻る
「読まなくてもいいよ3」
OSTRACISM CO.
OSTRA / Takeshi Yoneki