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