EnvChanged で最近の情報が失われるNo.04384
Imabeppu さん 12/12/19 20:07
 
Imabeppu です。

秀丸メール64 Ver.6.01 を使用しています。
マクロの EnvChanged に関して、不具合かもしれないと思われる動作を
見つけました。

(1) [検索]-[検索して一覧作成] で何らかの検索を実施します。このと
    き、[対象] や [大文字/小文字の区別] などのオプションの状態を
    変更して検索します。
(2) 再度 [検索]-[検索して一覧作成] のダイアログを呼び出すと、検
    索履歴には先ほど検索した文字列が残っていますし、[対象] や
    [大文字/小文字の区別] などのオプションの状態も、先ほどの検索
    時の状態を覚えてくれています。
(3) 以下のマクロを実行します。
      loaddll "tkinfo.dll";
      #n = dllfunc("EnvChanged");
(4) 再度 [検索]-[検索して一覧作成] のダイアログを呼び出すと、検
    索履歴には先ほど検索した文字列が残っていませんし、[対象] や
    [大文字/小文字の区別] などのオプションの状態も、先ほどの検索
    時の状態を忘れているようです。

EnvChanged はレジストリの情報を読み込む関数ですが、検索履歴など
は即時保存していないために、古い情報が読み込まれているのではない
でしょうか。EnvChanged では読み込み対象外にしてもよいかもしれま
せん。

以上です。



--
Imabeppu

[ ]
RE:04384 EnvChanged で最近の情報が失わNo.04385
秀まるお さん 12/12/20 09:38
 
 毎度バグ情報ありがとうございます。

 っと言いたい所ですが、実はこちらでテストしてみたんですけど、うまく再現
しないみたいです。

 こちらでテストした方法は、

 1.秀丸メールV6.10βの入った環境からV6.01にバージョンダウンさせる。

 2.「検索して一覧作成」を実行して履歴を見ると、空っぽになっている。
   (V6.10βからV6.01にバージョンダウンすると履歴が消えます)

 3.検索文字列として"111"で、大文字/小文字の区別等のオプションはす
   べてOFFで検索する。

 4.検索を中断して検索結果ウィンドウも閉じる。

 5.検索して一覧作成で、今度は"222"で、大文字小文字区別ONで検索する。

 6.検索を中断して検索結果ウィンドウも閉じる。

 7.EnvChangedのマクロを実行する。

 8.検索して一覧作成を実行して履歴やオプション類を確認すると、たしかに
   "222"と"111"が履歴にあって、大文字/小文字区別オプションもONの
   ままキープされている。

 という感じになります。

 一応動画もアップロードします。

      http://youtu.be/2sow61iTKb0

 たぶん、他にも再現の条件が必要なんじゃないかと思います。例えば何かレジ
ストリを書き換えてるとか、マクロの中身が単純なEnvChangedだけじゃないとか。
その辺のヒントがあればこちらでも再現出来るかなぁと思います。

 それか、どっちにしても修正はV6.10βの方でってことになるので、とりあえ
ずV6.10βでテストして、それでも起きるかどうかテストしていただけるとなお
ありがたい所です。V6.10βの方は、履歴上で「ヒストリに常駐」を出来るよう
にした関係があって、履歴関係の処理をかなりいじってます。それで結果的に直
ってくれてる可能性もあるかなぁという気がします。

[ ]
RE:04385 EnvChanged で最近の情報が失わNo.04387
Imabeppu さん 12/12/20 13:52
 
Imabeppu です。

>  たぶん、他にも再現の条件が必要なんじゃないかと思います。例えば何かレジ
> ストリを書き換えてるとか、マクロの中身が単純なEnvChangedだけじゃないとか。
> その辺のヒントがあればこちらでも再現出来るかなぁと思います。

マクロの中身は、先のメールに書いたとおり2行だけです。
確かに、別のマシンに32ビット版 Ver.6.01 を新規にインストールして
試しましたが、再現しませんでした。設定も極力合わせたのですが再現
しませんでした。64ビット版のみの問題とか、そういう可能性はないで
しょうか。

確認ですが、パラメータなしの EnvChanged は、検索履歴や検索条件な
どを読み込みなおさないのが正しい動作ですよね。


>  それか、どっちにしても修正はV6.10βの方でってことになるので、とりあえ
> ずV6.10βでテストして、それでも起きるかどうかテストしていただけるとなお
> ありがたい所です。V6.10βの方は、履歴上で「ヒストリに常駐」を出来るよう
> にした関係があって、履歴関係の処理をかなりいじってます。それで結果的に直
> ってくれてる可能性もあるかなぁという気がします。

仕事で使用しているので、ベータ版を入れるのが難しい状況です。入れ
られる環境が見つかれば、試してみます。

今のところ、SaveConfig を使えば問題ないので、特に困ってはいませ
ん。



--
Imabeppu

[ ]
RE:04387 EnvChanged で最近の情報が失わNo.04388
秀まるお さん 12/12/20 14:49
 
> 64ビット版のみの問題とか、そういう可能性はないで
> しょうか。

 実はこちらでテストしたのは64bit版でした。

> 今のところ、SaveConfig を使えば問題ないので、特に困ってはいませ
> ん。

 もしかしてEnvChanged関数呼び出しでパラメータ1に数値の1を指定してるん
じゃないでしょうか。SaveConfigがあればうまくいくってことなら、そういう話
だとつじつまが合うことになります。

EnvChanged関数のヘルプ:
-----------------------------------------------------------------------
■パラメータ1

 パラメータ1には0を指定するか、またはパラメータ1自体を省略してくださ
い。
 パラメータ1に数値の1を指定すると、EnvChanged関数は、いわゆる「全般的
な設定」とは別の、内部的な設定値も含めてレジストリの値をすべて読み込み直
しをします。そういう内部的な値を秀丸メールに読み込み直しさせたいような特
殊なことをする場合は、1を指定してください。
 パラメータ1に数値の1を指定するようなケースでは、レジストリを書き換え
る前に、SaveConfig関数を呼んでおくことが必要になります。
-----------------------------------------------------------------------

[ ]
RE:04388 EnvChanged で最近の情報が失わNo.04389
Imabeppu さん 12/12/20 16:06
 
Imabeppu です。

>  もしかしてEnvChanged関数呼び出しでパラメータ1に数値の1を指定してるん
> じゃないでしょうか。SaveConfigがあればうまくいくってことなら、そういう話
> だとつじつまが合うことになります。

最初のメールに書いたとおりのマクロで、パラメータなしです。
不思議ですね。


--
Imabeppu

[ ]
RE:04389 EnvChanged で最近の情報が失わNo.04390
Imabeppu さん 12/12/20 23:29
 
Imabeppu です。

EnvChanged で最近の情報が失われる件ですが、どの設定が関係するの
かいろいろと変更して調べているうちに、再現しなくなってしまいまし
た。設定を戻したつもりなのですが再現しません。また何か分かりまし
たら連絡しますので、いったん忘れてください。(^^;)


--
Imabeppu

[ ]
RE:04390 EnvChanged で最近の情報が失わNo.04391
秀まるお さん 12/12/21 15:34
 
 設定をいじってるうちに起きなくなったということは、何かの設定が関係して
る可能性が高いような気がします。

 とりあえず現状起きなくなった(どの設定のせいかも分からない)ってことな
ので、調査保留させていただきます。

[ ]