|
コメントありがとうございます。
まず最初にお詫びしなくてはなりません。原因の箇所は runex ではなく、その後で
実行されている文にあったようです。大変申し訳ありません。
改めて状況を書かせて頂きますが、まず最初に件の自作マクロはohtorii氏がサイト
で公開しておられるものを元にプリコンパイルヘッダを使用するようにする等の改造
を加えたものであることをお断りしておきます。従って以下に引用するマクロ記述も
氏のものと同一の部分があります。
最初の投降の後、件のマクロを実行したまましばらく放っておく状況があったのです
が、その際「変数用のメモリがいっぱいです」メッセージが表示され、該当箇所が表
示されました。これを参考に追いかけたところ、以下のwhile部分で無限ループに陥
っていました。
runex $g_clang_exe[##compiler] + " @\"" + $$cmdfile + "\"", 1
, 0, ""
, 5, ""
, 0, ""
, 1, ""
, 2, 1, 0;
if(!result){
message("runexの呼び出しで失敗");
setactivehidemaru ##old_hidemaru;
closehidemaruforced ##cur_hidemaru;
return false;
}
//補完の候補を $$guess[] へ代入する。
gofiletop;
##guess_num = 0;
$$guess[0] = "";
$$guess_str = "";
searchdown2 "(?<=^COMPLETION:[ \\t]+)[^ ]+",casesense,regular,nohilight;
while(result){
$$tmp = gettext2(seltopcolumn,seltoplineno,selendcolumn,selendlineno);
if(strlen($$tmp)){
$$topstr = leftstr($$tmp, 1);
if($$topstr != "~"){ // デストラクタは除外
$$guess_str = $$guess_str + $$tmp + "\n";
$$guess[##guess_num] = $$tmp;
##guess_num = ##guess_num + 1;
}
}
finddown2;
}
以前のバージョンでは serchdown2 → gettext2 → finddown2 の流れで次の補完候
補文字列へ移動していたようですが、v8.35では移動していませんでした。finddown2
の前に「moveto2 0, selendlineno + 1;」を追加したところ正常に動作するように
なりました。
当方が改変履歴を見落としていたようです。お騒がして大変申し訳ありませんでした。
|
|