config "xUnderLine:2";の動作についてNo.03320
SAS さん 02/09/05 03:05
 
カーソル行を(色は現設定のままで)下線モードにしたり背景色モードにするマクロを
書こうとして、現状のマクロの動作に疑問を持ったので質問させてください。
宜しくおねがいします。

秀丸3.17で調べてみたところ、下線モード、背景色モードはレジストリのキー
UnderLine が 1のとき下線モードで2のとき背景色モードとなるようでした。
そこで、

config "xUnderLine:1";

または、

config "xUnderLine:2";

とすることで下線モード及び、背景色モードを設定しようとしたところ、
config "xUnderLine:1";は期待通りの動作をしてくれたのですが、
config "xUnderLine:2";としても、どうしてもUnderLineの値は1に
設定されてしまい下線モードになってしまいます。

例えば、下記のテストマクロを実行するとmessageマクロの出力結果は1 になります。

// test.mac
config "xUnderLine:2";
message getconfig("UnderLine");


これは、不具合なのでしょうか?それとも仕様なのでしょうか?

指摘内容に私の勘違いがありましたらご容赦下さい。

[ ]
RE:03320 config "xUnderLine:2";の動作にNo.03321
SAS さん 02/09/05 03:19
 
誤記の訂正です
>レジストリのキーUnderLine が
レジストリのUnderLine が

[ ]
RE:03320 config "xUnderLine:2";の動作にNo.03322
ひろ さん 02/09/05 12:12
 
 SASさん今日は、ひろです。
> config "xUnderLine:1";は期待通りの動作をしてくれたのですが、
> config "xUnderLine:2";としても、どうしてもUnderLineの値は1に
 UnderLine についてちゃんと調べていないので、詳細については不明です。
ただ
> 下線モードにしたり背景色モードにする
が目的ならば、c, cc オプションを使えば良いのではないでしょうか?

[ ]
RE:03322 config"xUnderLine:2";の動作にNo.03323
SAS さん 02/09/05 12:58
 
ひろさん、こんにちは。SASです。レスどうもありがとう。

> > 下線モードにしたり背景色モードにする
> が目的ならば、c, cc オプションを使えば良いのではないでしょうか?
えぇ config にcl, cc があるのは、もちろん分かっています。
cl, cc オプションだと色の指定が必須のようですが、
>(色は現設定のままで)
というところが問題で、色を指定せずに行いたかったわけです。
カーソルのある行の現色設定はどのみちgetconfigを使ったレジストリ参照を
しないと得られないようですし、さらに、それで知った値を、cl, ccオプション
用の値に変換する方法が分からないと実現できそうにもなかったので。

もしくは、現マクロの仕様ではそうはなりませんが、値なしの cl/cc が色設定
を変えずに下線モード/背景色モードになるような仕様になっていてくれていれ
ば、config "xUnderLine:1"、config "xUnderLine:2"ではなく、cl/ccでもいい
のですが、どちらにしろ、config "xUnderLine:2"が期待通りの動作をしない
疑問は残りますね。

ちなみに、getconfig "UnderLine"では 2という値は得られました。

[ ]
RE:03323 config"xUnderLine:2";の動作にNo.03324
ひろ さん 02/09/05 14:07
 
 SASさん今日は、ひろです。
> >(色は現設定のままで)
> というところが問題で、色を指定せずに行いたかったわけです。
 確かに色指定となると面倒ですね。

 ただ今回の場合、
> config"xUnderLine:2";
がおかしく、0, 1 で切り替えるのが正しいようです。

> ちなみに、getconfig "UnderLine"では 2という値は得られました。
 設定で下線かどうかを切り替え、config で強引に 2 を指定しない限り、
getconfig が 2 を返すことはないはずです。

[ ]
RE:03324 config"xUnderLine:2";の動作にNo.03325
SAS さん 02/09/05 14:42
 
ひろさん、たびたびの、レスどうもありがとうございます。
SASです。

>  ただ今回の場合、
> > config"xUnderLine:2";
> がおかしく、0, 1 で切り替えるのが正しいようです。
それは下線モードのON/OFFに限った話で、背景色モードのときは
2の指定になるようです(下線モードと背景色モードは排他です)。

> getconfig が 2 を返すことはないはずです。
ファイルタイプ別の設定でカーソル行を背景色モードに設定してから
getconfig "UnderLine"
を実行したときに2の値を得られます。

> 確かに色指定となると面倒ですね。
cl/cc の色指定値が固定番号であることが、
よけい複雑にしますね。cl/ccを使うには、色の対応を自分で調べて
色を固定にするしかないようですが、個人で使うマクロならまだしも、
公開用のマクロには使いにくいですね。恐縮ながら、贅沢を言わせて
もらえば、このあたりのマクロ仕様がもう少し使いやすいものになって
ほしい気はします。

余談ですが、 ヘルプではcl/cc の色値には、cbに順じて、0〜F が
指定できるように読めたのですが、実際には19という値までが
指定できるようです(20はエラーになります)。
ちゃんと調べてはいないんだけど、どういう対応になっているんだろ?

[ ]
RE:03325 config"xUnderLine:2";の動作にNo.03326
秀丸担当 さん 02/09/05 16:39
 
>> がおかしく、0, 1 で切り替えるのが正しいようです。
>それは下線モードのON/OFFに限った話で、背景色モードのときは
>2の指定になるようです(下線モードと背景色モードは排他です)。

これは0か1しか指定できるようにしかなっていませんでした。
2も指定できるように対応しておきます。

[ ]
RE:03325 config"xUnderLine:2";の動作にNo.03327
ひろ さん 02/09/05 16:47
 
 SASさん今日は、ひろです。
> > getconfig が 2 を返すことはないはずです。
> ファイルタイプ別の設定でカーソル行を背景色モードに設定してから
> getconfig "UnderLine"
> を実行したときに2の値を得られます。
 失礼しました。名前から下線だけだと思い込んでしまいました。
 確かに 2 の時だけ上手く動作しませんね。

[ ]
RE:03326 config"xUnderLine:2";の動作にNo.03328
SAS さん 02/09/05 19:33
 
秀丸担当様、素早い返答ありがとうございました。

> 2も指定できるように対応しておきます。
宜しくお願いします。

               SAS xxx@japan.email.ne.jp

[ ]