compile vim-7.0157 on FreeBSD

別になにも難しくはないんだけど、LANG かなにかが設定してあると正常にコンパイルできないので su - で root になってコンパイル

% ./configure --with-features=big
% su -
# make

--with-features=big つければ multibyte が有効に。他にも有効になるようだが未確認。FreeBSD の mblen() 問題は解決しているようで、mbyte.c にパッチを当てる必要はない。本当は昔からパッチ当てる必要なんてなかったのかなあ?でも mbyte.c の 702 行目からの

/*
 * mblen() should return -1 for invalid (means the leading
 * multibyte) character.  However there are some platforms
 * where mblen() returns 0 for invalid character.
 * Therefore, following condition includes 0.
 */
(void)mblen(NULL, 0);       /* First reset the state. */
if (mblen(buf, (size_t)1) <= 0)
    n = 2;
else
    n = 1;

のコメント読む限りは必要だったんだろうなあ。vim6.x はこんなコードなかったし。うーん、C は良く分からん。。。

ちなみに solaris9 でも同様にコンパイル可能。