namazu-dev(ring)


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

gcc -pedantic and signedness: uchar/char



ふと思い立って gcc -pedantic を試したところ、

  libnamazu.c:133: warning: pointer targets in passing \
		   arg 1 of `strcpy' differ in signedness

のような警告が 700個以上も出てしまいました。そこで、試しに

  % perl -i -pe s/uchar/char/g **/*.[ch]

を実行してすべて uchar (unsigned char) を char に置き換えた
ところ、日本語の検索以外は問題なく動くようです。

調べてみれば、単語表を 2分探索している部分と、文字コードの変
換部分が uchar を必要としていただけで、ほかはすべて char で
よかったようです。

というわけで、 s/uchar/char/g の修正を commit しました。大胆
な修正なので、念のために commit の前に

  % cvs tag namazu-1-9-8 .

としてタグをつけておきました。不具合をみつけたら報告してくだ
さいませ。

  ...

今後は -pedantic をつけて開発を行うことにします。
configure.in に

  if test -n "$GCC"; then
      CFLAGS="$CFLAGS -Wall -pedantic"
  fi

を追加しておきました。

p.s.
しばらくソースコードの整理に取り組むことにします。(あまりに
も汚いので)

v2.0 までの残りの仕事は次の通り。(ほかにもあるかな?)

  * mknmz を gettext化
  * NMZ.result を国際化
  * NMZ.head.ja_JP.JIS7 を NMZ.head.ja (EUC-JP) に
    (必要に応じてコード変換を行う)
  * EUC to JIS のコード変換を書き換え
    (ひどい実装なので - [namazu-dev 528]参照)
  * マニュアルを整備 (大変だ)

-- Satoru Takabayashi