検索/置換文字列の最大値の単位についてNo.09827
fzok4234 さん 22/04/18 13:46
 
毎度お世話になっております。

さて、検索 / 置換の文字列の最大文字数は現行では 4095 文字となっておりますが、
これは UCS-4 単位で数えて終端の \0 を除外した数であるという認識で
よろしいでしょうか ?


[ ]
RE:09827 検索/置換文字列の最大値の単位No.09829
秀丸担当 さん 22/04/18 15:50
 
検索文字列の上限はUCS-2単位です。
searchdownやsetsearchの場合は、さらに1文字余裕を見ていて、4094文字までにして
ありました。
範囲選択に対する検索文字列の取得コマンド(getsearch)は4095文字までできたりし
て、実際のところは4095文字ではあります。
searchdownやsetsearchは壊れたサロゲートペアに対する余裕という考えもあったの
かもしれないですが、何にしてもgetmaxinfo(6)の値と、実用上の上限は違っていま
した。
合わせたほうがいいと思います。
searchdownやsetsearchを4095のほうに合わせるとまずい問題に発展しかねないので、
getmaxinfoとgetsearchを4094のほうに合わせるように変更しようと思います。
マクロヘルプの検索文字列の上限のところもstrlenで書いてありましたが、wcslenで
した。そのあたりも適切に直しておきます。

[ ]
RE:09829 検索/置換文字列の最大値の単位No.09833
fzok4234 さん 22/04/18 23:29
 
対策の検討ありがとうございます。


[ ]