>>261
@iscript
function hogehoge(mp) {
if(mp.tagname == "hoge1") return 1; else
if(mp.tagname == "hoge2") return 2;
}
@endscript
[macro name=hoge1][eval exp="tf.hoge1 = hogehoge(mp)"][endmacro]
[macro name=hoge2][eval exp="tf.hoge2 = hogehoge(mp)"][endmacro]

現状見て推察できる>>261の状況・環境だと[hoge2]は
tf.hoge2に値が入らない事になるんだが。

まぁそれまでの流れから行数節約に気を使ったんだろうけど
そこで具体的な、肝心な部分を切り落としたのは確か。