From: matz@... (Yukihiro Matsumoto) Date: 1999-06-09T11:17:07+09:00 Subject: [ruby-dev:7089] Re: [BUG] unpack('m') まつもと ゆきひろです In message "[ruby-dev:7082] [BUG] unpack('m')" on 99/06/08, 民斗 writes: |String#unpack('m') して生成された文字列を C レベルで操作すると末尾に |ゴミがついていることがあります。Ruby レベルでは問題ありません。 | |# STR2CSTR() したものって、'\0' 終端されていると仮定して良いんですよね? えーと、便利なように番兵(sentinel)として NUL を置いてます。 で、Cレベルでは文字列の中身はかなり勝手に操作できますから、 「仮定して良い」かと問われると困るんですが、一応標準的なライ ブラリはNUL終端していると考えられた方が望ましいだろうなと思っ ています。 ということで、u/m/M の作る文字列もNUL終端させるようにしましょ うね。 In message "[ruby-dev:7087] Re: [BUG] unpack('m')" on 99/06/08, 民斗 writes: |ん〜、ま、そりゃそうなんですけど、標準添付の kconv でも '\0' 終端を |仮定しているみたいですし…。 kconvにそういうコードがありました? だとするとそれはバグだと 思います。どこか教えてください。1.3系のnkfにも残ってますか? まつもと ゆきひろ /:|}