namazu-dev(ring)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: NMZ.f vs NMZ.field (Re: namazu's command line options)
まえだです。
たかばやしさん>
> 検索結果の表示をカスタマイズ可能にしようという考えもあって、
> これは NMZ.result なりを用意し、
>
> <dt>
> <strong><a href="$uri">$title</a></strong>
> <dd>
> <strong>Author</strong>: <em>$author</em><br>
> <strong>Date</strong>: <em>$date</em><br>
> <strong>Size</strong>: <em>$size bytes<\em><br>
> $summary
> <dd><a href="$uri">$uri</a><br><br>
>
> といった記述から、 $uri, $title, などの部分を検索結果の表示
> の際に NMZ.field.* の内容を元に動的に置き換える、という仕組
> みを考えています。
>
> ただ、こういった処理を C言語で実現するのは面倒なのが難点です。
> どなたか書きません? :)
flexを使うのはだめですかね?
正規表現無しなら、strstr(3)つかっても簡単にできそうかな?
%{
#define MAX_LEN 256
unsigned char uri[MAX_LEN];
unsigned char title[MAX_LEN];
unsigned char author[MAX_LEN];
unsigned char date[MAX_LEN];
unsigned char summary[MAX_LEN];
int size;
%}
%%
$uri printf("%s", uri);
$title printf("%s", title);
$author printf("%s", author);
$date printf("%s", date);
$size printf("%d", size);
$summary printf("%s", summary);
%%
int main(int argc, char **argv[])
{
strcpy(uri, "http://www.namazu.org/");
strcpy(title, "namazuのページ");
strcpy(author, "Satoru Takabayashi");
strcpy(date, "1999年6月1日");
strcpy(summary, "namazuの公式ホームページ");
size = 1024;
if ((yyin = fopen("NMZ.result", "r")) == NULL) {
perror("fopen");
exit(-1);
}
yylex();
}