GNU globalの検索CGIをw3mのローカルCGIとして使いたい
GNU globalの検索CGIをw3mのローカルCGIとして使いたい。以下、patch。
--- htags/global.cgi.tmpl.in.orig 2005-03-18 01:17:11.000000000 +0000 +++ htags/global.cgi.tmpl.in @@ -21,6 +21,7 @@ print "Content-type: text/html\n\n"; print "@html_begin@\n"; print "@body_begin@\n"; $htmlbase = $ENV{'HTTP_REFERER'}; +$htmlbase = $ENV{'W3M_URL'} unless $htmlbase; if (!$htmlbase) { print "<H1><FONT COLOR=#cc0000>Error</FONT></H1>\n"; print "<H3>Your browser doesn't send HTTP_REFERER.</H3>\n";
んで、
$ cd /path/to/src $ gtags $ htags -nasf --action=/cgi-bin/global.cgi $ w3m -o cgi_bin=/full/path/to/src/HTML/cgi-bin path/to/src/HTML/index.html
のように実行する。htagsの-f以外のオプションは適当で(-nasfがw3mの場合のオススメ)。cgi-binのディレクトリはw3mのオプションで指定している。設定ファイルでもできるけど、こちらの方が楽だから。
しかし、w3mのローカルCGIってHTTP_REFERERを入れてくれないのね。何でだろ。HTTP_REFERERがないと普通のCGIが流用しにくくなると思うんだけど。w3mのソースでは、こんな感じでOFFにしてるぽい。
w3m-0.5.1/main.c 1.242
2737 static Buffer * 2738 loadLink(char *url, char *target, char *referer, FormList *request) 2739 { ... 2748 base = baseURL(Currentbuf); 2749 if (base == NULL || 2750 base->scheme == SCM_LOCAL || base->scheme == SCM_LOCAL_CGI) 2751 referer = NO_REFERER;