🍎

Uncrustifyには漢字特有のバグがある

2020/09/20に公開

※13/4/10時点の情報です。

コードフォーマッターとして便利なUncrustify、これを使えば瞬時にコードが全て整形されるので重宝しています。
ところで、どうもUncrustifyには漢字の含まれるコメント行の扱いにバグがあるようですので、こちらに記しておきます。

特定の文字で始まるコメント行では空白が挿入されない

コンフィグファイルでsp_cmt_cpp_start = addに設定しているとき、__特定の漢字で始まる//コメント行__に限り、空白を挿入する処理が行われません。
さらに、sp_cmt_cpp_start = removeに設定している場合、処理が行われないどころか該当の漢字が削除されてしまいますので、もしそう設定する場合には注意が必要です。

バグに該当する文字

  • UTF-16において、U+xx09, xx0A, xx0B, xx0C xx0D, xx20に割り当てられている文字
    • これは漢字以外の全ての文字も含みます
  • 代表的な漢字として『三上下不伊伍倉個倍吉吊同名吠変怠有服』は全て上記コードに該当しています

該当文字の中で、いくつかの漢字はコメントの一文字目として使用されることもあると思いますので、念のため注意しておいたほうがよろしいでしょう。

なお、このバグは開発者に報告済みです。

Discussion