原です。

件のマニュアル検索サーバーですが、結局今回は http あたりのラ
イブラリ化はあきらめて(またか^^;)とにかく動くものを出して
しまいます。

実用性は十分だけど400行近くなったので、サイン本は遠いな。

使い方は ruby mssrv.rb <Man Dir> <Port> として、w3 ブラウザで

http://localhost:Port/

を見て上げて下さい。http://localhost:Port/bye を見るとサーバ
ーが停止します。

begin 644 mssvr-0.1.tar.gz
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
>4O1LK&>>J%&4__7_C_G[]_?O__GW7^R.1`T`*```
`
end