getarg についてNo.32564
Roka さん 13/09/02 10:17
 
「保存直前と直後」の自動起動マクロを登録しています。
秀丸エディタを起動するときに「/a」とパラメータを指定してファイルを開いた後フ
ァイルの上書き保存を実行した時、
1度目は自動起動マクロ内でgetargでパラメータを取得できるのですが2度目以降は
空になってしまいます。
その他テストしてみたところgetargを1度実行すると以降getargは空になるようです。
希望としては「/a」が指定されて「/x」が指定されていない場合、開いたファイルは
そのパラメータを維持してもらいたいと思っています。
「/a」の変更は互換性の問題も考えられるので、自動起動マクロ内でファイルを開い
た時のパラメータが取得できれば他の方法でも構いません。
よろしくお願いします。

[ ]
RE:32564 getarg についてNo.32565
秀丸担当 さん 13/09/02 11:02
 

現時点においては/aオプションは、/xと一緒に使ったときのみ有効で、マクロが
終了した後は取得できないようになっています。
/aParam /xTest.macとした場合と、手動でTest.macを単体で実行した場合との区
別ができなと都合が悪いこともあると思います。

なんとかする方法としては、setstaticvariableで記憶しておき、後から
getstaticvariableで取り出す方法がありますが、どうでしょうか。

[ ]
RE:32565 getarg についてNo.32567
Roka さん 13/09/02 15:26
 
>なんとかする方法としては、setstaticvariableで記憶しておき、後から
>getstaticvariableで取り出す方法がありますが、どうでしょうか。

setstaticvariableを使用した場合例えば
hidemaru.exe /aparam1 file1.txt file2.txt file3.txt
が実行された時にfile1.txt file2.txt file3.txtがparm1で起動されたと記憶するこ
とができないような気がします。
また使用できるのが4096バイト以下ということで、ファイルを多数開いた時のバッフ
ァーのチェックをする必要があると思います。
よろしくお願いします。

[ ]
RE:32567 getarg についてNo.32568
秀丸担当 さん 13/09/02 17:26
 

>setstaticvariableを使用した場合例えば
>hidemaru.exe /aparam1 file1.txt file2.txt file3.txt
>が実行された時にfile1.txt file2.txt file3.txtがparm1で起動されたと記憶するこ
>とができないような気がします。

ファイルが複数指定されているときは、それぞれについてマクロは実行されない
のでできないですね。

>また使用できるのが4096バイト以下ということで、ファイルを多数開いた時のバッフ
>ァーのチェックをする必要があると思います。
>よろしくお願いします。

setstaticvariableで記憶できるのは2種類あって、全ての秀丸エディタで共通
に覚えるものと、秀丸エディタのウィンドウ1つずつ個別に覚えるものがありま
す。
個別に覚える場合は、それぞれにおいて4096バイトの割り当てがあるので、この
使い方の場合は他に使うマクロが無ければ大丈夫だと思います。

/aが意味を持つのは/xがあるときだけなので、最初のご提案のように、/aが指定
されていて、かつ/xが指定されていない場合で、さらに自動起動マクロの「ファ
イルを開いた直後」に限ってgetargを使えるような変更であれば互換性の心配も
少ないと思います。
ちょっとまだ試していないのでうまくいくかわかりませんが、V8.32はもうすぐ
正式にする予定で、その後のバージョンで検討してみます。

[ ]