v8.99.3 と v9.00 の差異についてヒントをNo.09688
kazu-ma さん 21/11/29 20:32
 
お世話になります。

利用しているマクロが v8.99.3 までは動作していたものの、v9.00 で少々おかしく
なってしまったため見直しているのですが現時点で原因がわかり
ません。
v8.99.3 と v9.00 でマクロに関しての差異など見直すべきヒントなどいただけると
ありがたく思います。
ざっと改変履歴も見てみたのですが、分からない状態です。

使用しているマクロは「Clang を利用した C / C++ 補完マクロ」で、プリコンパイ
ルマクロがうまく動作しなくなりました。
設定ファイルを読み込んでいるのですが、どうも searchdown2 文に失敗することが
あるようです。
しかも、ほぼ同じ処理をしている補完マクロの方は問題なく動作するという状況です。

単にマクロの記述ミスであったり、環境依存の原因であったりするのかもしれません
が…
情報がこれだけではどうしようもないかもしれませんが、ひとまず何かヒントをいた
だけると嬉しく思います。

以上、よろしくお願い致します。

[ ]
RE:09688 v8.99.3 と v9.00 の差異についNo.09689
h-tom さん 21/11/29 23:28
 
h-tom です。

動かない件とは関係なさそうですが。
以下の正規表現パターンでは、"[CompleteCppConfig]"のチェックになってませんよ。
>$g_configfile_title = "^[CompleteCppConfig]";

[ ]
RE:09689 v8.99.3 と v9.00 の差異についNo.09690
kazu-ma さん 21/11/30 08:29
 
h-tom さん、ご指摘ありがとうございます。

ご指摘の通りで、こちらでも今回見直しをしている段階で見つけました。

恥ずかしながらよく動いていたものだと…

ただ、ここを修正しても現象に変わりはないようでした。

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

[ ]
RE:09690 v8.99.3 と v9.00 の差異についNo.09691
秀丸担当 さん 21/11/30 10:48
 
V8.99とV9.00の違いとしては、一番怪しいのはカレントフォルダ移動があります。
[その他]→[動作環境]→[トラブル対策]→[その他のトラブル対策]の「カレントフォ
ルダ移動」を「移動する(従来通り)」にすると違いを調べることができます。

clangのマクロは、環境によるかもしれませんが、以前に試してみた環境があったの
で、試してみたところでは、違いなく動作しているように見えます。
非互換の何かがあるようでしたら直すべきことかもしれないので、もしわかったら教
えてもらえると助かります。
もしマクロでカレントフォルダに依存していて、フルパスで書かれていない何かがあ
るようでしたら、フルパスで書くことを推奨します。

[ ]
RE:09691 v8.99.3 と v9.00 の差異についNo.09692
kazu-ma さん 21/12/01 08:03
 
秀丸担当さん、情報ありがとうございます。

教えていただいた点を含めて見直してみたいと思います。

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

[ ]
RE:09692 v8.99.3 と v9.00 の差異についNo.09693
kazu-ma さん 21/12/01 20:33
 
お世話になります。

教えていただいた「カレントフォルダ移動」を変えることで動作が変わることがわか
りました。

そこでさらにパス表記を見直したところ、パス記号「\」を余分に追加してしまって
いたことが原因のようです。
例えば、「D:\SubA\SubB\SubC\..\..\Test.txt」としたかったところが「D:\\SubA\S
ubB\SubC\\..\\..\Test.txt」となっていました。
この点を修正したところ、v9.00で「カレントフォルダ移動」が「自動」の場合でも
動作するようになりました。

ちなみに、ファイル有無を existfile() 関数で調べてから openfile 文で開くよう
にしてあるのですが、パス記号が余分についている場合でも existfile() 関数は問
題ないようでした。
今回は openfile 文で処理に失敗していました。

ご指摘いただいた点も含めてマクロは修正したいと思います。

ヒントを下さった皆様、どうもありがとうございました。

[ ]
RE:09693 v8.99.3 と v9.00 の差異についNo.09694
秀丸担当 さん 21/12/02 09:33
 
情報ありがとうございます。
こういうパスの指定に違いがあるのは予想外でした。
こういう場合でもできるように次のバージョンで修正しようと思います。

[ ]