MinGW(MSYS)でmanが見たい

LinuxMacを使っている人は、C言語のプログラムを書くとき、時々manで関数の内容を調べたりするだろう(引数の順序とか細かい仕様とか)。
私はWindowsユーザーだが、これはほしい。
Cygwinなら入るけどそもそも極力Cygwin入れたくない。
というわけで調べてみる。


MSYSにmsys-manがあるじゃないですか。
mingw-get install msys-manで簡単インストール。
manが使えるようになった!


で終わるならblogに書かない。
試しにfgets*1のmanを引いてみよう。
まず、コマンドラインを起動して、manを実行。

> man fgets

落ちた。特に何も言わずに、Windows側が「cmd.exeが止まったよ」と教えてくれた。
ヲイヲイ、不安定だな。
仕方ないのでbashを経由。

> bash
$ man fgets
No manual entry for fgets

今度はないって・・・


man pagesは%mingw-folder%\share\manと%msys-folder%\share\manにある。
%mingw-folder%はMinGWをインストールしたフォルダ、%msys-folder%はMSYSをインストールしたフォルダとする。(多くの場合%msys-folder%は%mingw-folder%\msys\1.0である)
それぞれの中身を見ると、これがまたほとんどない。
これがないとmanが使えない。
特にman3。これがCのライブラリ関数なので、ここだけは埋めたい。


仕方ないので(またか)Linuxのman pagesをとってくる。
ちなみにsiteはここ
ファイルだけならdownloading ..., look hereの部分をクリックして、You can download the latest man-pages tarball hereのhereをクリックすればファイルの一覧が出てくる。
ここから最新のやつをとってくる。
形式はいくつかあるけど、.tar.gzあたりなら多くのファイル展開ソフトが対応しているのでそのあたりがオススメ。
あとは展開して、できたフォルダにあるman3の中身を全部ガッと%mingw-folder%\share\man\man3にコピーする。
後は普通にmanを使えば見える。


本当はコマンド用のman pagesもほしいのだが、なんか入ってないので(仮にあったとしてもオプションが対応しているかあやしいので)入れないことにした。
まあ、これで十分だろう。

*1:私の中で、よく使う割に引数の順序が覚えられない代表。