// VisualC++リンクエラーからシンボルを抽出するマクロ
disabledraw;
gofiletop;
//ヘッダ削除
beginsel;
searchdown"リンクしています";
if(result){
endsel;
delete;
gofiletop;
//リンクしています行削除
deleteline;
}
//grep結果(リンクしています行がない場合)に対応
//呼出先関数抽出
while(code != eof){
searchdown "外部シンボル ";
if(result){
searchdown "\_";
if(result){
right 1;
beginsel;
searchdown " ";
if(result){
endsel;
copy;
golinetop;
paste;
insert"\n";
deleteline;
}
}
}else{
break;
}
}
//フッタ削除
beginsel;
gofileend;
endsel;
delete;
// " 削除
gofiletop;
while(code!=eof){
replacedown "\"","";
if(!result){
break;
}
}
// 重複分削除 面倒なんでdel_dupline.macより拝借
gofileend;
#endY = y;
#j = 0;
while(#j < #endY)
{
moveto 0,#j;
beginsel;
golineend;
$l = gettext(seltopx,seltopy,selendx,selendy);
#j = #j + 1;
if (strlen($l)<3)
continue;
searchdown $l;
while (result)
{
beginsel;
golineend;
$p = gettext(seltopx,seltopy,selendx,selendy);
if ($p == $l)
{
selectline;
delete;
#endY = #endY -1;
up;
}
searchdown $l;
}
}
endmacro;
disabledraw;
gofiletop;
//ヘッダ削除
beginsel;
searchdown"リンクしています";
if(result){
endsel;
delete;
gofiletop;
//リンクしています行削除
deleteline;
}
//grep結果(リンクしています行がない場合)に対応
//呼出先関数抽出
while(code != eof){
searchdown "外部シンボル ";
if(result){
searchdown "\_";
if(result){
right 1;
beginsel;
searchdown " ";
if(result){
endsel;
copy;
golinetop;
paste;
insert"\n";
deleteline;
}
}
}else{
break;
}
}
//フッタ削除
beginsel;
gofileend;
endsel;
delete;
// " 削除
gofiletop;
while(code!=eof){
replacedown "\"","";
if(!result){
break;
}
}
// 重複分削除 面倒なんでdel_dupline.macより拝借
gofileend;
#endY = y;
#j = 0;
while(#j < #endY)
{
moveto 0,#j;
beginsel;
golineend;
$l = gettext(seltopx,seltopy,selendx,selendy);
#j = #j + 1;
if (strlen($l)<3)
continue;
searchdown $l;
while (result)
{
beginsel;
golineend;
$p = gettext(seltopx,seltopy,selendx,selendy);
if ($p == $l)
{
selectline;
delete;
#endY = #endY -1;
up;
}
searchdown $l;
}
}
endmacro;