2022年12月03日

【薙刀式】Endの挙動に二種類あるバグ

Endの挙動が変であることを発見した。

検証の結果、wordとMeryにはなく、
iTextとTATEditorにあることが判明。
(TATEditor以外、縦書き横書き両方で確認)
つまり、
エディタ依存で存在するバグの模様。


日本語にまとめると、
「エディタの横幅(縦書きでは縦幅)一杯位置での、
改行コードありなしでEndの挙動が二種類あり、
一文字ズレが発生する」
というもの。

以下状況。



複数行の原稿を考える。

一行目をああああああああ、
二行目をいいいいいいいいで示す。
また、一行目の文末を末、二行目の先頭を頭で表記する。
改行コードは↓、キャレットを|で示す。

一般的に、

あああああ末↓
頭いいいいいいい

という原稿があるとして、一行目のどこかにキャレットがいるとする。
たとえば、

ああああ|あ末↓
頭いいいいいいい

のような状況を想定し、
Endキーを押した時の挙動について考える。

Endキーを押すと、

あああああ末|↓
頭いいいいいいい

と、一行目文末文字と、改行コードの間にキャレットが移動する。
End→BSをすれば末が消える。
End→Delならば↓が消えて、

あああああ末頭いいいいい

となる。ここまでは仕様通り。

で、一行目がエディタのちょうど横幅だと?
仮に10文字だとしよう。

あああああああああ末↓
頭いいいいい

だとする。
末は10文字目で、↓ははみ出した11文字目に表示される。
こういうのをぶら下がりというんだっけ、禁則処理というんだっけ、
ユーザーとしての俺は知らんが、次の行の1文字目に↓が来ることはない。

一行目にキャレットがいるとして、
Endを押したらどうなるか?

あああああああああ末|↓
頭いいいいい

になるはずだよね。
End→BSをすれば末が消えて、
End→Delをすれば11文字目の↓が消えて、二行目は一行目の続きになる。

ここまではOK。仕様通り。


以下からがバグだ。


一行目と二行目がつながっているとき、
つまり横幅10文字で続いて表示していて、
一行目にキャレットがいるとする。

ああああ|あああああ末
頭いいいいい

ここでEndを押したらどうなるか?

我々の期待では、末のうしろに移動する。
End→BSでは末が消えて、
End→Delでは頭が消える、のが仕様でしょ?と。

しかし、iTextとTATEditorでは、
なんと末の前に移動する。
すなわち、

あああああああああ|末
頭いいいいい

ここに来る…
End→BSだと末が消えずにその一個前が消える。
End→Delだと末が消える。

なんじゃこりゃ????


また、二行状態、↓があるときに、
End→Delを押すと、

あああああああああ末|↓
頭いいいいい

あああああああああ末
|いいいいい

と、キャレットが次の行の頭へ勝手に移動してしまう。


なんじゃこりゃ???????




おそらく、禁則処理とかぶら下がり処理みたいなことの、
行末最後の一文字あたりで何かゴニョゴニョしてたら、
こういう挙動になったのかしら?

困ったことに、
wordとMeryではこうはならずに、
期待通りの挙動をする。
しかし両方とも僕の打鍵速度には追いつかないので、
使い物にならないのだ。
(いいPCを買えば別だが)

メインで使ってる軽いエディタで、
両方ともこのバグに遭遇した。



普段そんなに意識したことがなかったのだが、
編集モードを今いじってて、
マクロをつくったのだが、
Endを含むマクロの挙動がたまに変なことがあり、
詳しく調べたらそうだと分かって、
今憤慨しているところ。

まず犯人がEndと確かめるまで一時間かかり、
バグがいつ起こるか特定するまで二時間くらいかかったわ…
えー、これメジャーなバグ(仕様)なの?


wordやMeryではこんなことはない。
他に手持ちのエディタがないので確認できないので、
誰か確認して…
秀丸やさくらエディタは使わないから捨てちゃったしなあ。


エディタ業界?ではよく知られたことなのかしら。
どういうワードで検索すればいいのかわからんので、
何故こんなことが起こってるのかの根本理由、
それを防いでるエディタの探し方、
などがわからん。

ううむ、エディタ難民になるのか、
それともこのバグは無視して続けるか…


発端は脚本マクロだ。
もっと作業効率をあげられるはずだ、
M,を押しっぱでアルペジオ的にしたろ、
と仕込み始めたら、文字数で挙動が違うことに気づいた。
えー、このマクロめっちゃ便利なのに、
このバグのせいで使えないものになってしまった。
手詰まり。


wordで放置されてたら報奨金貰えるレベルなのだが、
さすが対策してやがるぜ。
まあwordには縦書きでいっぱいバグあるしな。
報告するのが面倒で放置してるけど。

さてどうしよ。
このバグを経由しないマクロは組めるかな…
posted by おおおかとしひこ at 08:40| Comment(0) | TrackBack(0) | カタナ式 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック