Namazu-users-ja(旧)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: NMZ.field.* のカスタマイズ



 濱谷です。

On 9 May 2002 13:29:39 +0900
o_machiko@xxxxxxxxxxxx wrote:
| RedHatLinux7.2上でNamazu v2.0を使用しています。
| 
| 先日Namazu関連の書籍を購入したところ、NMZ.head*等のテンプ
| レートファイル中で変数が読み込むことが可能とありましたので、早速適当な
| フィールドtestに対応する
| NMZ.field.test(ファイルの内容は変数を1つ格納した状態です)
| を作成し、
| rfnmz /home/XXX/index コマンドを使用し、
| NMZ.field.test.i
| を生成したあと、NMZ.head.ja内で${test}で呼びだしたところ、変数として反映
| されませんでした。
| 
| 同様に、NMZ.result.normal.jaで${test}を呼び出すと反映されるのですが、NM
| Z.field.*を用いて、NMZ.head.ja内で作成した変数を呼び出すにはどのようにす
| ればよろしいのでしょうか?
| 
| ご教授お願いいたします。

 Namazu2.0.10のソースコードを見た限りでは、NMZ.field.* の値が反映されるのは
NMZ.result.* だけです。(私の誤認がなければ、ですが)

 NMZ.field.* の値を呼び出す関数 nmz_get_field_data (nmz/field.c内) を
呼び出す関数を呼び出す経路は次のようになります。

  namazu_core [src/namazu.c]
    print_result [src/output.c]
      print_listing [src/output.c]
        print_hlist [src/output.c]
    *      compose_result [src/result.c]
             replace_field [src/result.c]
               nmz_get_field_data [nmz/field.c]

 で、* を付けた compose_result が ${変数}の置き換え処理で、これは
print_hlist でしか使われていません。
 で、print_hlist は NMZ.resultの処理を行いますが、NMZ.head.* や NMZ.foot.*
は処理していません。

 よって、NMZ.head.* や NMZ.foot.* では NMZ.field.* の置き換え処理は
行われないと思います。

---
  濱谷 千尋 (Hamatani, Chihiro)
  E-Mail: chihiro4ml@xxxxxxxxxxx http://discypus.jp