Not only is the Internet dead, it's starting to smell really bad.:2006年07月上旬

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はマルチバイト文字の事なんかなーんも考えてない仕様でワロタ。

2006/07/03(Mon)

TR 24731

gets_sを追加
/distfiles/citrus/NetBSD/TR24731-20060703.tar.bz2
ちなみにVS2005には_getws_sもある。

fgetwc(3)

↑やってて気付いたんだけど、glibc2とFreeBSDのfgetwc(3)はEILSEQの場合
ストリームにエラー指示子をセットするのでferror(3)は0以外を返すのだけど
Solaris8とNetBSDはセットしてないね。。。SUSv3読む限りでは

if an encoding error occurs, the error indicator for the stream shall be set,

とあるのでglibc2/FreeBSDが正しいな。

2006/07/04(Tue)

bootstrap-pkgsrc for Cygwin

@CYGWIN=transparent_exe

http://cygwin.com/ml/cygwin-announce/2006-07/msg00000.html より

corinna: Implement CYGWIN environment variable "transparent_exe" option
which causes files which end in .exe to be used by appropriate functions
when an input filename is specified with no extension.

ふーん、これつかえば 拡張子の補完問題はおkなのか?

・・・逆に1.5.20-1以前のバージョンもサポートしようとすると頭痛の種が増えるのかも。
先日書いた このパッチのようにpkg_delete側で拡張子の補完をした場合、他の/var/db/pkg/*/+CONTENTSを
読むツール類(pkgsrc/pkgtools/pkg_tarupなど)でも同じ改造が必要だったんで困ってたとこなんだよね。

@つーわけで入れてみた。

CYGWIN=transparent_exe は使い物にならないな、これ。

$ tar cf hoge.tar /usr/pkg/bin/hoge

とした時、tar側で拡張子を補完しなくてもちゃんと/usr/pkg/bin/hoge.exeが格納されるんだけど
伸張するときに/usr/pkg/bin/hoge.exeでなく/usr/pkg/bin/hogeになってしまう。
やっぱり動的にPLIST書き換えて拡張子補完するしかなさそう、うはーやる気ナサス。

@

キーワード「pkg_view」でググる時I'm Feeling Luckyを押してしまってコーヒー吹いたwwwww