Barbarism begins at internet:2004年12月分

2004/12/12(Sun)

Bill Joy's ex/vi

Calderaが以前BSDLで公開したヤツをベースにした↓
http://ex-vi.sourceforge.net/
がPOSIX localeベースでi18n化され、multibyte入力ができるようになってます。
正規表現は×、同梱のlibuxreはmultibyte対応してる筈なんだけどなー。

__STDC_WANT_SECURE_LIB__

http://www.open-std.org/JTC1/SC22/WG14/www/docs/n1089.pdf
strncpy_sとか、びみょー...

2004/12/15(Wed)

ex/vi i18n

ソースざっくり眺めたけどちょっとこれは...って感じでつね。
ex_io.c:mbtowi、wchar_tの&とってるけどopaqueですからっ、斬りだし
ex_io.c:GETWC、mbtowcはrestartableじゃありませんからっ(以下略
何よりmultibyteは必ずMSB立つわけじゃないじゃな~い?
切腹!!

多分C99でなくC90に据えたいんだろうってのと、
UTF-8 localeでしかテストしてないんだろな。

2004/12/19(Sun)

[defect] strtol/strtoul

char *s = "0x", *t;
strtol(s, &t, 0);
printf("tail is \"%s\"\n", t);

出力結果

これもバグだろな...休み入ったら直そう

そいと__STDC_WANT_SECURE_LIB__に

long strtonl(const char *nptr, size_t limit, char **endptr, int base);

とかも欲しかったなーと思う今日この頃。