「検索文字列の強調」の保存No.26894
ichiy さん 06/03/24 11:45
 
お世話になります。

表題にあります通り、メール検索の際の
「検索文字列の強調」設定を保存することは
可能でしょうか?

現状(Ver4.64 beta7)では、1度該チェックボックスをONにすると、
2回目以降はチェックONとなりますが、
再起動すると、チェックOFFとなってしまいます。

宜しくお願いします。

[ ]
RE:26894 「検索文字列の強調」の保存No.26911
ichiy さん 06/03/26 09:37
 
お世話になります。

>現状(Ver4.64 beta7)では、1度該チェックボックスをONにすると、
>2回目以降はチェックONとなりますが、
>再起動すると、チェックOFFとなってしまいます。

っと書きましたが、僕の勘違い?だったみたいです。
Ver4.64 beta7では上記チェック状態を保存できていました。
失礼しました。

最近保存するように変えたとか無いですよね?(おっかしいなぁ〜・・・)

[ ]
RE:26911 「検索文字列の強調」の保存No.26912
ichiy さん 06/03/26 12:19
 
お世話になります。

>>現状(Ver4.64 beta7)では、1度該チェックボックスをONにすると、
>>2回目以降はチェックONとなりますが、
>>再起動すると、チェックOFFとなってしまいます。
>
>っと書きましたが、僕の勘違い?だったみたいです。
>Ver4.64 beta7では上記チェック状態を保存できていました。
>失礼しました。
>
>最近保存するように変えたとか無いですよね?(おっかしいなぁ〜・・・)

っとっとっと、二転三転しますが、やっと動作状況が分かりました。
@秀丸メール起動
A「検索文字列の強調」チェックONで何かを検索
B秀丸メール終了(常駐含めて)
C秀丸メール再起動
 →「検索文字列の強調」はチェックONになってます。
Dメール受信
 →「検索文字列の強調」がチェックOFFになってしまいます。。。

仕様でしょうか?

ちなみにA以降で、秀丸メールが常駐のままでメールを受信しても
チェック状態は「ON」のままです。

宜しくお願いします。

[ ]
RE:26912 「検索文字列の強調」の保存No.26914
秀まるお2 さん 06/03/27 08:36
 
 たぶん、「マクロ・マクロ登録・自動起動」の「受信が一段落した時」の所に
何かマクロが登録してあって、そのマクロが実行されると検索条件が変わってし
まうという問題じゃないかと思います。

 そのマクロの内容を教えて頂ければ、マクロを直して対応できるかどうか、ま
たは秀丸メールのバグかどうか確認できると思います。マクロの内容が大きい場
合は僕にメールで送って欲しいです。 送り先は、maruo@mitene.or.jp です。

[ ]
RE:26914 「検索文字列の強調」の保存No.26917
ichiy さん 06/03/27 08:51
 
お世話になります。ichiy です。

>  たぶん、「マクロ・マクロ登録・自動起動」の「受信が一段落した時」の所に
>何かマクロが登録してあって、そのマクロが実行されると検索条件が変わってし
>まうという問題じゃないかと思います。
>

確かにマクロ登録しています。内容は、
  @メール受信時にポップアップ表示
  A先頭の未読メールを選択
となっています。

以下マクロで問題なさそうな場合は、子マクロも書きますので。
宜しくお願いします。
=====
//***** Main Routin Start ****************************************
loaddll "tkinfo.dll";
if( !result ){
    message "このマクロは秀丸エディタ側では実行できません。";
    endmacro;
}

// 受信メール数取得
#recvmail = dllfunc( "RecvMailCountShow");
if( #recvmail == 0 ){
    // 受信メール無し時は終了
    endmacro;
}

//----------------------------------------------------------
// 受信通知
//----------------------------------------------------------
#balloon = 1;         // バルーン表示 0:しない 1:する
#popup   = 1;         // ポップアップ 0:しない 1:する

//  ポップアップしない。
if( #popup == 0 ){
    if( #balloon ){
        execmacro currentmacrodirectory + "\\未読メール数カウント.mac";
    }
    endmacro;
}


$msg = "新着メールを受信しました。\n今すぐメールを読みますか?\n(Shift押下で
一覧作成)";
#ret = dllfunc("Bypass_MessageBox", 0, $msg, "秀丸メール - 受信通知",0x1024);
#Shift = iskeydown(0x10);
#Ctrl  = iskeydown(0x11);
if( #Ctrl == 1) #balloon = 1;

// ポップアップ中に受信したかもしれないので、メール数を再取得
#rcnt = dllfunc( "RecvMailCountShow");
if( #rcnt ) #recvmail = #rcnt;

// 「いいえ」の場合
if( #ret == 7 ){
    // 未読メール数カウント
    call UnreadCount;
    #unread = ##return;

    // バルーン表示
    if( #balloon && #unread ){
        execmacro currentmacrodirectory + "\\未読メール数カウント.mac";
    }
    endmacro;
}

// ポップアップ中に受信したメールを拾う(完了するまで待つ)
// これをやらないと、このマクロが再度実行されてしまう。-_-:
#n = dllfunc("ReceiveAll");
#cnt=0;
//送受信できた場合はメール数取得
if( #n == 1 ) #cnt = dllfunc( "RecvMailCountShow");
while( #cnt>0 ){
    // 受信メール数を加算
    #recvmail = #recvmail + #cnt;
    #cnt=0;
    #n = dllfunc("ReceiveAll");
    if( #n == 1 ) #cnt = dllfunc( "RecvMailCountShow");
}

// 未読メール数カウント
call UnreadCount;
#unread = ##return;
if( #unread == 0 ) endmacro;

// 未読メールが10通を超えている場合は、強制的に一覧表示
if( #unread >= 10 ) #Shift = 1;

//----------------------------------------------------------
// 最初の未読メールに移動
//----------------------------------------------------------
// 元のサイズに戻す
#tmp = dllfunc("RestoreWindow");
// アクティブウィンドウに
setactivehidemaru hidemaruhandle(0);

// カレントアカウント取得
$account = dllfuncstr("CurrentAccount");
// カレントフォルダ取得
$folder = dllfuncstr("CurrentFolder");
// トップフォルダ選択
#n = dllfunc("SelectFolder",dllfuncstr("Account",0),"");

//未読メール選択
#tmp = dllfunc( "NextPrevCustom", "unread", "next", "", "over");

// 選択されたら終わり
if( #tmp == 1 ){
    // メール一覧枠を選択
    #n = dllfunc( "SelectPane", 1);

    // 未読一覧作成(Shiftキーを押している場合)
    if( #Shift == 1 ){
        execmacro currentmacrodirectory + "\\unread.mac";
    }

    endmacro;
}

// 選択されなかったらカレントフォルダ選択
#tmp = dllfunc("SelectFolder", $account, $folder);

//**********************************************************
//* 未読メール数カウント サブルーチン                      *
//**********************************************************
//**************************************** SUB ROUTINE START
UnreadCount:
##total_cnt=0;
$$folder = "受信";
##cnt = dllfunc( "GetFolderMailCount", "",$$folder,"unread");
##total_cnt = ##total_cnt + ##cnt;
while( 1 ){
    $$s = dllfuncstr("GetNextFolder", "", $$folder);
    ##x = strstr( $$s, "\\");
    if( ##x >= 0 ) {
        $$account = leftstr( $$s, ##x);
        $$folder = midstr( $$s, ##x + 1, 256 );
    } else {
        $$account = $$s;
        $$folder = "";
    }
    if( $$folder == "" ) break;
    if( $$folder != "送信済み" && $$folder != "ゴミ箱" ){
        ##cnt = dllfunc( "GetFolderMailCount", "",$$folder,"unread");
        ##total_cnt = ##total_cnt + ##cnt;
    }
}
return ##total_cnt;
//**************************************** SUB ROUTINE END

endmacro;
//***** Main Routin End ******************************************

[ ]
RE:26917 「検索文字列の強調」の保存No.26920
秀まるお2 さん 06/03/27 15:04
 
 テストしようと思ったんですが、ちょっとテストが難しいというか、どこから
どこまでが何のマクロなのかよく分かりませんでした。

 というか、

 未読メール数カウント.mac
 unread.mac

 の2つのマクロのうちの少なくとも1つはここに書いてないような気がします
けど。

 上記のどちらかのマクロの方で、searchup/searchdown/setsearch等の検索文
字列を変更する系のコマンドを実行してるか、またはSetFindPackの関数を呼ん
でるんじゃないかと思いますが、どうでしょ。

 というか、一度、定期受信用のマクロを無しにして、それでたしかに症状が直
るかどうか確認いただけると、それではっきりすると思います。

 例えばですが、

   searchdown "a", nohilight;

 って文を実行すると、強調表示のオプションがOFFになります。


    $s = searchbuffer;
    #o = searchoption;
    searchdown "a", nohilight;
    setsearch $s, #o;

 とすれば強調表示のオプションは変化しないようになるはずが、今試してみた
らダメでした。これはこれでこういうバグのような気がするので、それは調べて
みます。

 というか、つまり、上記のような処理をしていて、それで強調表示オプション
がOFFになっているのかなぁと思います。

[ ]
RE:26920 「検索文字列の強調」の保存No.26921
秀まるお2 さん 06/03/27 15:27
 
 先ほどのコメントで書いた

    $s = searchbuffer;
    #o = searchoption;
    searchdown "a", nohilight;
    setsearch $s, #o;

 のようなマクロを実行すると「検索文字列を強調」のオプションがOFFになる
のは、たしかに秀丸メール側のバグでした。ということで修正させていただきま
す。

 ということで、次のバージョンでテストしていただくのがいいような気がしま
す。(たぶん、unread.macの方でそういう処理がされてるんだと思う)

[ ]
RE:26920 「検索文字列の強調」の保存No.26922
ichiy さん 06/03/27 15:27
 
お世話になります。ichiy です。

>  テストしようと思ったんですが、ちょっとテストが難しいというか、どこから
>どこまでが何のマクロなのかよく分かりませんでした。
>
>  というか、
>
>  未読メール数カウント.mac
>  unread.mac
>
>  の2つのマクロのうちの少なくとも1つはここに書いてないような気がします
>けど。
>
>  上記のどちらかのマクロの方で、searchup/searchdown/setsearch等の検索文
>字列を変更する系のコマンドを実行してるか、またはSetFindPackの関数を呼ん
>でるんじゃないかと思いますが、どうでしょ。

「unread.mac」で
    #n = dllfunc( "SetFindPack", "flag=unread" );
    #n = dllfunc("DoGrep", "", "受信+送信済み+ユーザー");
としています。

>
>  というか、一度、定期受信用のマクロを無しにして、それでたしかに症状が直
>るかどうか確認いただけると、それではっきりすると思います。
>

外して見ましたが、結果は同じでした。

試した動作としては、
    @「強調表示ON」で検索
    A再度検索→「強調表示ON」のまま
    B秀丸メール終了(常駐含め)
    C秀丸メール起動
    D再度検索→「強調表示ON」のまま
    Eメール受信
    F再度検索→「強調表示OFF」になる
    G「強調表示ON」で検索
    Hメール受信
    I再度検索→「強調表示ON」のまま
    以降、秀丸メールを終了するまでメール受信しても「強調表示ON」のまま。
となります。

G〜Iの動作からして、定期受信マクロでSetFindPackをコールしてても
問題ないと思っています。

振分条件とか関係有りますか?

宜しくお願いします。

[ ]
RE:26922 「検索文字列の強調」の保存No.26924
秀まるお2 さん 06/03/27 15:52
 
 「検索文字列を強調」のフラグが書き変わる可能性としては、秀丸エディタで
何らかの検索系のコマンドなりマクロを実行した場合ってこともあるようですが
…。単純に、「受信」を実行しただけで影響することは無いような気がします。
(ソースコードを見なした限りでは)

 一応、次のβ版で直る可能性が高いと思うので、それで試してみて欲しいです。

 (まだアップロードしてませんが)

[ ]
RE:26924 「検索文字列の強調」の保存No.27021
ichiy さん 06/04/07 16:30
 
お世話になります。ichiy@ユーザ です。


> 「検索文字列を強調」のフラグが書き変わる可能性としては、秀丸エディタで
>何らかの検索系のコマンドなりマクロを実行した場合ってこともあるようですが
>…。単純に、「受信」を実行しただけで影響することは無いような気がします。
>(ソースコードを見なした限りでは)
>
> 一応、次のβ版で直る可能性が高いと思うので、それで試してみて欲しいです。
>
> (まだアップロードしてませんが)

本件ですが、beta8でも同様の現象になりました。

で、よくよく調べてみたら、メール送信時のマクロで、
    gofiletop;
    searchdown "添付";
    #tempret = result;
    #sofuret = 0;
    if( #tempret == 0 ){
      searchdown "送付";
      #sofuret = result;
    }
てな処理がありまして。ここが原因でOFFになってるみたいです。(まるお様の推測通り)
#OFFになるのは起動後の1回目のメール送信後だけです。

で、この処理の前に
    $s = searchbuffer;
    #o = searchoption;
    setsearch $s, #o;
を入れてみると、ONのままでした。

よく分かりませんが、そういうモンなんでしょうか?
「起動後の1回目だけ」ってとこが引っかかります。

パラメータ省略してsearchdownコール時に、
ちゃんと「検索文字列の強調」設定が引き継がれてるのかなぁ〜。。。ってことで。
setsearchで格納されたとこから該設定を引っ張ってたり。。

宜しくお願いします。

----
環境:WinXP SP2
      秀丸エディタ 6.00 beta13
      秀丸メール   4.64 beta8

[ ]
RE:27021 「検索文字列の強調」の保存No.27022
秀まるお2 さん 06/04/07 16:36
 
> で、この処理の前に
>     $s = searchbuffer;
>     #o = searchoption;
>     setsearch $s, #o;
> を入れてみると、ONのままでした。

 これはたまたまうまくいってるだけでして、正確には、

    $s = searchbuffer;
    #o = searchoption;
    gofiletop;
    searchdown "添付";
    #tempret = result;
    #sofuret = 0;
    if( #tempret == 0 ){
      searchdown "送付";
      #sofuret = result;
    }
    setsearch $s, #o;

 としないとダメってことに、仕様上はなってます。

 それでもし解決するなら、そういう仕様だったってことで使って欲しいですけ
ど。

[ ]
RE:27022 「検索文字列の強調」の保存No.27023
ichiy さん 06/04/07 16:53
 
お世話になります。ichiy@ユーザ です。

>  それでもし解決するなら、そういう仕様だったってことで使って欲しいですけ
>ど。

解決しました。

以後、マクロ使用時は注意します。

ありがとうございました。

[ ]