蝉は、やがて死ぬる午後に気づいた。ああ、私たち、もっと仕合せになってよかったのだ。:2006年07月01日分

2006/07/01(Sat)

TR 24731

@途中まで実装してみた。

モノは↓に置いてみました。
/distfiles/citrus/NetBSD/TR24731-20060701.tar.bz2
テストケースはOpenWatcomの http://www.openwatcom.org/ftp/devel/saferctests.zip
MITライセンスだったんで流用させてもらったけど

  • errno_t
    bsearch_s(const void *key, const void *base, rsize_t nmemb, rsize_t size,
    int (*compar)(const void *, const void *, void *), void *context)
    のkeyはn1135だとnull可なんだけど、OpenWatcomは不可になってる。
  • errno_t
    getenv_s(size_t * __restrict needed, char * __restrict value,
    rsize_t maxsize, const char * __restrict name)
    のneededはn1135だと'\0'まで含むサイズを返すことになってるけど
    OpenWatcomでは'\0'を含まない(つまりstrlen)サイズを返すことになってる。

あたりは修正してあります。
もしかしたら俺の読み間違い or その後仕様変更があったのかも。

@TR 24731 defect

strerror_sはマルチバイト文字の事なんかなーんも考えてない仕様でワロタ。