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