ユーザメニュー登録についての不具合?No.22936
かえる さん 07/05/02 02:34
 
始めましてお世話になります。かえる(No.042942)です。

こちらとしては特に問題はありませんが、念のため報告させていただきます。
以下の動作環境で実施して現象が発生しました。
 秀丸Version 5.18
 Windows XP Home Edition Version 2002

不具合が発生するまでの[手順]と不具合の[現象]を下記に記述します。また、こちら
でちょこっとテストしましたのでその報告を[補足]として記述します。

[手順]
@ その他 → メニュー編集 → 「ユーザメニュー」タブをアクティブにする。
A 「メニュー(M):」 右のドロップダウンリストから「メニュー5」を選択する。
B 「タイトル(T):」 右のエディットコントロールに「アプリケーション」を入力す
る。
C OKを押下して、「メニュー編集」ダイアログを閉じる。
D @と同様の手順を実施する。

[現象]
「メニュー(M):」右のドロップダウンリストで表示されない項目がある(下記「実施
後」参照)。

実施前:
 メニュー1:ファイル
 メニュー2:C言語機能
 メニュー3:Ctrl-Q
 メニュー4:マクロ(ForToolBar)
 メニュー5:
 メニュー6:
 メニュー7:サブメニュー(ForRB)
 メニュー8:右ボタン
 選択中右ボタン

実施後:
 メニュー1:ファイル
 メニュー2:C言語機能
 メニュー3:Ctrl-Q
 メニュー4:マクロ(ForToolBar)
 選択中右ボタン

 ※ メニュー5〜8が表示されません。

[補足]
・現象発生後「選択中右ボタン」を選択すると
 「タイトル」に手順Bで入力した「アプリケーション」が
 表示されました。
 (つまり、メニュー5の内容が
  選択中右ボタンに登録されているように見える)
・この際、「アプリケーション」の文字を削除
 → OKボタン押下でダイアログを閉じる
 → 手順@と同様の手順を実施する。
 すると、実施前(正常時)のメニュー一覧が表示されます。
・手順では「メニュー5」に「アプリケーション」と入力していますが、
 「メニュー6」に同じく「アプリケーション」と入力しても
 現象は発生しませんでした。
・「メニュー5」に「1234567890123456」と入力しても
 同様の現象が発生します。
・「メニュー5」に「12345678901234」と入力しても
 同様の現象が発生します。
・「メニュー5」に「1234567890123」と入力すると
 別の現象が発生します(メニュー表示がぐちゃぐちゃに)。
・「メニュー5」に「123456789012」と入力した場合は、
 正常に表示されました。
・現象発生後、PCを再起動しましたが同様の問題が発生します。

[結論]
メニュー5に13バイト以上の文字を入力すると不具合が発生する。
※ メニュー5以外のメニューに関しては調査しておりませんので、
  メニュー5同様に発生するかもしれません。

以上です。

[ ]
RE:22936 ユーザメニュー登録についての不No.22941
秀丸担当 さん 07/05/02 11:52
 

>[手順]
>@ その他 → メニュー編集 → 「ユーザメニュー」タブをアクティブにする。
>A 「メニュー(M):」 右のドロップダウンリストから「メニュー5」を選択する。
>B 「タイトル(T):」 右のエディットコントロールに「アプリケーション」を入力す
>る。
>C OKを押下して、「メニュー編集」ダイアログを閉じる。
>D @と同様の手順を実施する。
>
>[現象]
>「メニュー(M):」右のドロップダウンリストで表示されない項目がある(下記「実施
>後」参照)。

手順通りにして、問題を確認することができました。
報告ありがとうございます。
問題点は、メニュー4とメニュー7に16バイトよりも多く文字が入ってしまっ
ているおことに原因がありました。
メニュー4の問題がメニュー5に影響が出てしまっていたようです。

この文字数制限はかなり昔からあって、16バイトよりも多く入らないようには
なっていたのですが、2000,xpではUnicodeの文字数で数えられるようにWindows
の仕様が変わってしまっていたため、全角文字を含むとバイト数がずれてしまっ
ていたようです。

とりあえず、先行開発中のV7.00βのほうで修正し、V6.11を出す機会があればそ
ちらでも修正したいと思います。
V5.xxはこのままかもしれないです。

[ ]
RE:22941 ユーザメニュー登録についての不No.22945
かえる さん 07/05/02 19:03
 
>問題点は、メニュー4とメニュー7に16バイトよりも多く文字が入ってしまっ
>ているおことに原因がありました。
>メニュー4の問題がメニュー5に影響が出てしまっていたようです。
>
>この文字数制限はかなり昔からあって、16バイトよりも多く入らないようには
>なっていたのですが、2000,xpではUnicodeの文字数で数えられるようにWindows
>の仕様が変わってしまっていたため、全角文字を含むとバイト数がずれてしまっ
>ていたようです。

お世話になっております。かえるです。
早速のご返信ありがとうございます。

なるほどです。
メニュー4とメニュー7を16バイト以下にして、
メニュー5を「1234567890123456」としたら正常に表示されました。

13バイト以上でおかしくなるというわけではなく、
メニュー4にUnicodeで16バイト超の文字を登録していたのが
問題だったのですね。



実をいうと自宅の秀丸様を新規改装すべく設定変更を
していたところこの問題に出会ってしまって
ちょっと不安になっていたのですが、
これですっきり作業を進ませる事ができます。
誠にありがとうございました。

[ ]