right のパラメタ指定時の動作No.20149
Kamonohasi さん 05/10/12 19:27
 
こんばんは、いつもお世話になっております、カモノハシです。
////////////////////////////////////////////////////////
#tcout=0;
right 0*1;//動作せず
if(result)#tcout=#tcout+1;
right 1;//一回動作
if(result)#tcout=#tcout+1;
right 0;//一回動作
if(result)#tcout=#tcout+1;
right -1;//動作せず
if(result)#tcout=#tcout+1;
right -0;//動作せず
if(result)#tcout=#tcout+1;
message str(#tcout) + "回成功";
////////////////////////////////////////////////////////
そんな値を指定するのがいけないような気もしますがなんとなく統一性に欠けると思
います。
少なくともresultの判定はまずいんじゃないかと思いますが、いかがでしょうか。

確認環境は秀丸5.05 on Windows2ksp4です

[ ]
RE:20149 right のパラメタ指定時の動作No.20155
秀丸担当 さん 05/10/13 10:38
 

>そんな値を指定するのがいけないような気もしますがなんとなく統一性に欠けると思
>います。
>少なくともresultの判定はまずいんじゃないかと思いますが、いかがでしょうか。

確かにおかしいようです。
ソースを確認してみたところ、数値を直接指定したときと、数式で指定したとき
は別々の処理をしていて、何らかの理由があってのことのような気もします。

少なくとも数式で指定したときに result が必ず 1 になってしまうのは、ヘル
プに書いてあることと反するので、移動しなかったら result は 0 になるよう
に修正したいと思います。

0のとき移動するかしないかに関しては、数値を直接指定したときは意図的に移
動するようにしており、それに合わせてもいいかもしれないですが、合わせてし
まうと変数で移動量を変化させるマクロがあった場合互換性が失われるので、慎
重に考えたいと思います。

[ ]
RE:20155 right のパラメタ指定時の動作No.20161
Kamonohasi さん 05/10/13 22:57
 
>少なくとも数式で指定したときに result が必ず 1 になってしまうのは、ヘル
>プに書いてあることと反するので、移動しなかったら result は 0 になるよう
>に修正したいと思います。
よろしくお願い致します。

>0のとき移動するかしないかに関しては、数値を直接指定したときは意図的に移
>動するようにしており、それに合わせてもいいかもしれないですが、合わせてし
>まうと変数で移動量を変化させるマクロがあった場合互換性が失われるので、慎
>重に考えたいと思います。
そこはおっしゃるように互換性の問題があるでしょうから特に主張はありません。
ひとつ教えていただきたいのですが、0*1で動かないって仕様はいつからでしょうか。

[ ]
RE:20161 right のパラメタ指定時の動作No.20162
秀丸担当 さん 05/10/14 13:23
 

>そこはおっしゃるように互換性の問題があるでしょうから特に主張はありません。
>ひとつ教えていただきたいのですが、0*1で動かないって仕様はいつからでしょうか。

調べてみたところ、V2.00からこのようになっているようでした。

[ ]
RE:20162 right のパラメタ指定時の動作No.20168
Kamonohasi さん 05/10/14 22:42
 
こんばんは、いつもお世話になっております、カモノハシです。
>調べてみたところ、V2.00からこのようになっているようでした。
そうでしたか、わざわざありがとうございました。
要望は出さないと言っておきながらなんですが、移動量0の選択肢があると楽になる
と思います。

[ ]
RE:20168 right のパラメタ指定時の動作No.20180
秀丸担当 さん 05/10/17 09:46
 

>そうでしたか、わざわざありがとうございました。
>要望は出さないと言っておきながらなんですが、移動量0の選択肢があると楽になる
>と思います。

選択肢ということであれば、現状で #a = 0; right #a; でいちおうできます。
#a = 0;で移動するほうに合わせるのではなく、right 0; で移動しないように合
わせたほうがいい気もしてきましたが、慎重に考えたいと思います。

[ ]
RE:20180 right のパラメタ指定時の動作No.20189
Kamonohasi さん 05/10/17 21:40
 
>選択肢ということであれば、現状で #a = 0; right #a; でいちおうできます。
>#a = 0;で移動するほうに合わせるのではなく、right 0; で移動しないように合
>わせたほうがいい気もしてきましたが、慎重に考えたいと思います。
ええ、ですので right strlen(""); で動くようになった場合には、動かない選択肢
を提供していただけるとうれしいってことでした。

[ ]