Namazu-devel-ja(旧)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: getopt.c is moving from lib/ to nmz/ (Re: compilation on MacOSX)



寺西です。

藤原 誠 / Makoto Fujiwara wrote:
> 
> namazu-users-ja の方で話題になっていた
> MacOS X での compile patch ですが、寺西さんの提案のようにしよ
> うとして、

# ちょっと違うような...。

> ○ nmz/support.h の中に、次のように書いています。
> 
> #ifndef __APPLE__
> # define optopt _nmz_optopt
> # define getopt _nmz_getopt
> # define opterr _nmz_opterr
> # define optind _nmz_optind
> #endif

これはまずいのでは?

1. __APPLE__ が定義されていなくて、システムの getopt が使えれば、
   それを使う。
2. そうでないなら、ローカルな getopt を使う。
 
だと思うので、以下のようになるのでは?

#ifndef __APPLE__
#ifdef ELIDE_CODE
# define _nmz_optopt optopt
# define _nmz_getopt getopt
# define _nmz_opterr opterr
# define _nmz_optind optind
#endif
#endif

この前に ELIDE_CODE の判定をしないといけませんけど。
あと、グローバル関数の定義も必要です。

> src の下とのやりとりは一行だけなので lib に残っていてもいいので
> はという気もしますし、nmz/strcasecmp.c 等があるので、移動した
> 方がいいかなとも思います。

いや、optind だけではなくて、getopt_long() とかグローバル関数も変え
ちゃいましょうというのが趣旨です。
Namazu のソースの中では、getopt系は使わず _nmz_getopt 系を使うことと
いう規則をつけるということです。
-- 
=====================================================================
寺西 忠勝(TADAMASA TERANISHI)  yw3t-trns@xxxxxxxxxxxxxxx
http://www.asahi-net.or.jp/~yw3t-trns/index.htm
Key fingerprint =  474E 4D93 8E97 11F6 662D  8A42 17F5 52F4 10E7 D14E