|
URLを探してそれを開くってことなら、例えば検索系の文でurlを探して、その
urlの先頭位置にカーソルを(moveto等で)移動して、そこでopenbyshellを実行
すればいいと思います。
具体的なマクロ例としては、こんな感じです。
loaddll "tkinfo.dll";
#n = dllfunc("SetFindPack", "(\"(^(http).*[0-9]*)\n$\",regular,
nocasesense,target=body),subfolder=0,inmail=0");
#n = dllfunc("FindDownInclude");
if( #n != 0 ) {
#br = browsemode;
if( #br ) {
browsemodeswitch;
}
gofiletop;
searchdown2 "(^(http).*[0-9]*)\n$", regular, nocasesense;
if( result ) {
if( selecting ) {
#x = seltopx; #y = seltopy;
} else {
#x = x; #y = y;
}
moveto #x, #y;
message "a";
openbyshell;
}
if( #br ) {
browsemodeswitch;
}
}
タグ付き正規表現についてですが、鶴亀メールの「\f」で区切るやり方は、そ
もそも、JRE32.DLLを使って無理矢理タグ付き正規表現するために僕が独自に編
み出した方式です。今はもうHmJre.dllという自前のDLLを使っているので、しい
てそういう独自形式にする必要性はありません。なので、将来的には、
(...式1...)(...式2...)(...式3...)
のように指定したら、その式1〜式3にマッチした部分を\1,\2,\3みたいな感じ
で取り出せるような、そういう世の中標準的なタグ付き正規表現を(HmJre.dll
側で)対応したいなぁと思っています。もちろん従来との互換性も維持するため
に、「\f」を含んでいたら従来と同じタグ付き正規表現という意味にすることも
忘れないつもりです。
検索結果から「\1」等に相当する部分を取り出せるマクロ命令というか、
HmJre.dllの関数も用意すればきっとそれが役に立つような気がします。
|
|