Namazu-devel-ja(旧)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: 引数の解析 (namazu-bugs-ja#395)
さとうふみやす ともうします。
宛先注意。
At Thu, 19 Sep 2002 15:39:22 +0900 (JST),
watk_55@xxxxxxxxxxx wrote:
> 環境:
> Win2k/ActivePerl( 5.6.1 )/namazu 2.0.12( Win32 )
> Solaris8/perl 5.005_03/namazu 2.0.10
>
> namazuコマンドの引数の解析に少し不具合があるようです。
>
> 例:
> 1.キーワード[Java]を指定しての検索
> namazu -h "Java" ./index
> 2.キーワード[-h, Java]を指定しての検索
> namazu -h "-h Java" ./index
「ハイフンで始まる引数はすべてコマンドラインオプションである」と
判断します。よって、次のようなコマンドラインは、
namazu -h "-h Java" ./index
「-h」と「-h Java」オプションが指定されたものとなります。
「-h Java」などというオプション(実際は、-h, -J, -a, -v, -a が
指定されたものと判断する)はありませんから、「invalid option -- J」
となります。(空白は無視? ソースを読んでないので不明 :-)
では、ハイフンから始まるファイル名やらキーワードを引数に指定
するにはどうするか。それは、次のように、オプションの終りを
意味するオプション「--」を利用します。
namazu -h -- "-h Java" ./index
「--」オプションは、UNIX のほとんどのコマンドが備えているものです。
UNIX のマニュアル、getopt(3) や getopt(1) などをご覧ください。
(前者は Solaris なら getopt(3C)、よって `man -s3c getopt` で参照)
> 1の例はOKなのですが、2の例ではキーワードを引用符で囲っているにもかかわらず
>
> >namazu -h "-h Java" ./index
> c:\namazu\bin\namazu.exe: invalid option --
> c:\namazu\bin\namazu.exe: invalid option -- j
> 〜以下コピーライト表示
>
> となり、引用符内の"-h"をオプションとして解釈しようとして
> 失敗しているように見えます。
>
> #スペースを先頭に入れておけば回避可能なようです。
> >namazu -h " -h Java" ./index
>
> 普段Cygwin上のbashで利用しているため、シェルのバグなどの可能性も
> 考えたのですが、Win32のコマンドプロンプト上での再現も確認したので、
> そうではないと思います。
Jitterbug のほうの処理はどうすればいいんでしょうか? > namazu-developpers
--
SATOH Fumiyasu - fumiya @net-thrust.com, @samba.gr.jp, @namazu.org or ...
THRUST Co., Ltd. @ Fujisawa, Kanagawa, Japan - http://www.net-thrust.com
Samba-JP, aka `Samba Users Group Japan' - http://www.samba.gr.jp
Apache-JP(?), aka `Japan Apache Users Group' - http://www.apache.jp
Namazu, a full-text search engine - http://www.namazu.org