https://github.com/neovim/neovim/commit/87b4093970c90fd36ff6a2ccb6e9bb7817f44d08
の変更で
Introduction of asserts broke bracketless if's.
とあり、
変更前.c
- if (c != NULL)
assert(c >= 0 && c <= UCHAR_MAX);
ptr[curwin->w_cursor.col] = (char_u)c;
- } else
変更後.c
+ if (c != NULL) {
assert(c >= 0 && c <= UCHAR_MAX);
ptr[curwin->w_cursor.col] = (char_u)c;
+ }
+ } else {
と修正されていた。
そもそもがif文を単文形式で書いているのが間違いの元だと思う。
assert()を追加した時だけ複文形式にするのでなく、ifを使う時は{をつけておくのがいくつかのコーディング規約でも書かれている。
最近の大きなバグ(名前忘れた)でも同じ間違いによりfalse/true反対の戻り値になっていたのがあったし、昔のバグから学ばないといけないと思う。