twitterで報告したが、たぶん ex_docmand.c が扱ってる buf_T のサイズと if_ruby.c が扱ってる buf_T のサイズが違うんじゃないだろうか。
Windows版のvimで起動直後に :help して :ruby p VIM::Buffer[1] したら死ねる。 #vim http://twitter.com/mattn_jp/status/26639866932
でも手法は python のバッファリファレンス手法と同じなので ruby が影響しているような気がする。 #vim #ruby http://twitter.com/mattn_jp/status/26639939448
そして何より解せないのが、ex_docmd.c(2656) から if_ruby.c(486) にジャンプした際に curbuf->b_ruby_ref が壊れるという変な挙動。意味分からん。アライメントとかずれてるんかなー。 #vim #ruby http://twitter.com/mattn_jp/status/26640073312
ruby/ruby.h や i386-msvcrt/ruby/config.h でいっぱい型宣言しているので、唯一 ruby.h を include している if_ruby.c をコンパイルする際に、変なコンパイルオプションが付いているか、もしくは undef/define なんかで再宣言された型のおかげで構造体メンバ b_ruby_ref のオフセットがずれてるんだと思う。
詳しくは明日見る。