Namazu-win32-users-ja(旧)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: command not found but...
吉村と申します。昨日このMLに入会しました。よろしくお願いします。
さて、最近のメールを取り寄せて読んでみたところ…
At Mon, 5 Mar 2001 17:02:57 +0900 ,
弓岡 也守輝 <te-kun@xxxxxxxxxxxxxx> wrote:
> DOS 窓で (cygwin の bash でも)、mknmz とすると、
>
> C:\appli\namazu\bin>mknmz
> コマンドまたはファイル名が違います.
> 使い方: mknmz [オプション] <対象>...
> `mknmz --help' でより詳しい情報が表示されます
>
> と表示されて、 ** 素直に ** 動いてくれません。
>
> この状態で、mknmz を実行すると、mknmz を探しているらしく、しばらくディ
> スクがカタカタ言って、起動に時間がかかります。
これについて私の所でも全く同じことが起きていました。
環境は弓岡さんとほぼ同じです (cygwinのパス、Active Perlのビルドが違う
ぐらい)。
で、地道にmknmzの中にprint文を仕込んでいろいろ調べたところ
load_modules -> load_win32modules -> load_filter
で、manのフィルタを呼んでいるところで引っかかっていました。
さらに、filter/man.plを同様に調べたら、$roffpath (39〜45行目でroffのパ
スをutil::checkcmd()で得たもの) が"\"で区切る表現になっており、これを
使って53行目の
`echo ''| $roffpath -Tnippon 1>nul 2>&1`;
を実行するとパスが見つからずエラーになってしまうようでした。
とりあえず場当たり的に、$roffpathを内部で"/"区切りに変換してやると、問
題は発生しなくなりました (perlからシェル?へは再度"/"を"\"に変換して渡
しているのでしょうか??)。
サーチパス上にmanや[jgn]roffがない場合はこの部分は実行されないようです
ので、これまであまり問題になっていなかったのかもしれません。
きちんとパッチというものを作ったことがないので、とりあえずdiffを取った
結果を添付します。
cd c:/namazu/share/namazu/filter/
diff -c "c:/namazu/share/namazu/filter/man.pl.org" "c:/namazu/share/namazu/filter/man.pl"
*** c:/namazu/share/namazu/filter/man.pl.org Wed Nov 8 06:06:42 2000
--- c:/namazu/share/namazu/filter/man.pl Tue Feb 6 18:45:42 2001
***************
*** 50,55 ****
--- 50,56 ----
if (util::islang("ja") && $roffpath =~ /\bj?groff$/) {
# Check wheter -Tnippon is valid.
if (($mknmz::SYSTEM eq "MSWin32") || ($mknmz::SYSTEM eq "os2")){
+ $roffpath =~ s/\\/\//g;
`echo ''| $roffpath -Tnippon 1>nul 2>&1`;
} else {
`echo ''| $roffpath -Tnippon 1>/dev/null 2>&1`;
Diff finished at Fri Mar 09 13:06:55
# もっと早く報告すべきでしたね。すみません。
# 弓岡さん、こちらでもよろしくお願いします。
------------------------------------------------------
吉村俊司 YOSHIMURA Shunji
mailto:Shunji.Yoshimura@xxxxxxxxxxx