namazu-dev(ring)


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

Re: Using s/pat/subst/ in REPLACE



Junio Hamano <junio@xxxxxxxxxxx> wrote:

>以下は、.namazurc の REPLACE の左辺に regexp 、右辺に pattern を
>書けるようにするパッチです。
>
>    REPLACE    /repository/(.*)%2Cv	http://h/cvsweb/\1
>    REPLACE    /repository/(.*)/Attic/(.*)%2Cv	http://h/cvsweb/\1/\2
>
>と .namazurc に書くと、namazu で CVS レポジトリの昔の版にある文字
>列まで全体に索引をつけておいて、検索した結果を、cvsweb で表示する、
>なんてことができるようになります。

これ、すごいですね。

    REPLACE    /home/(.*?)/public_html/(.*)	http://foobar/~\1/\2

とすれば

   /home/yamaimo/public_html/yama/imo.html
   /home/satoimo/public_html/sato/imo.html

を

   http://foobar/~yamaimo/yama/imo.html
   http://foobar/~satoimo/sato/imo.html

に変換できます (これができると喜ぶ人は多いと思う)。他にも何
かと応用が効きますね。すばらしいです。


>本当なら、struct replace を全部書換えて、
(snip)
>なんてやって、conf.c で REPLACE を読み込むところで regexp のコン
>パイルと、置き換え文字列の準備まで先に全部やってしまうのがよいの
>ですが、かなり大規模な書き換えになるので、TODO-namazu-2.0 にある
>「Replace と Alias をもっときれいに書く」までのつなぎとして、変更
>個所が最小限になるような形でパッチにしてあります。

ありがたくパッチを採用させていただきました。「Replace と 
Alias をもっときれいに書く」の方は今から着手します。

# 私はプログラミングが下手 (特にC) なので「きれいに書く」の
# は難しそうですが。


>まずは使ってみてください。

すばらしいコードをありがとうございます。気が向いたらまた何か
改良してくださいませ。:)

# Hamanoさんは優秀なプログラマですね。私もプログラミングがう
# まくなりたいです。:-)

p.s.
…というわけで、 The Practice of Programming
<http://tpop.awl.com/> を読んでプログラミングの勉強をしてい
ます (2/3くらい読んだところ)。これはすごくいい本です。:)

-- Satoru Takabayashi