Unicode版TEditor の上書きモードの処理修正

Unicode版のTEditor 利用させてもらってるんですが、先日上書きモードで編集してるときに文字が余分に上書きされると報告があがって来ました。

とりあえずの修正でまともに動くようになったようなのでメモ。

HEditor.pasのTEditor.PutStringToLineメソッドで、変数にAttr2:Stringを追加
12074行辺りの

        Attr := StrToAttributes(S);

の下に

        Attr2 := StrToAttributes(Source);

を追加。12083行辺りの

            if FOverWrite then
              begin
                Buf := Copy(S, 1, Si) + Source;
                // Source 終端の文字インデックスを取得
                I := FCol + L;

のI := FCol + L;の行を

                I := FCol + Length(Attr2);

に変更。12100行辺りの

                Si := I - IncludeCharCount(Attr, caTabSpace, I + 1);

の行を

                Si := I - IncludeCharCount(Attr, caTabSpace, I + 1)
                      - IncludeCharCount(Attr, caFullWidth2, I + 1)
                      - IncludeCharCount(Attr, caSFullWidth2, I + 1);

に変更。以上で、上書きモードで文字入力したときの動作が改善されました。

追記

この修正はDEKOさんのところからダウンロード出来るバージョンに対する修正です。何に対する修正なのか書くのをすっかり忘れておりました。