2.8.1がリリースされているが2.8.0から目立った変更は無い。全角文字が行をまたぐ時の表示が改善されたぐらいか。変更点が大きかった2.7.5からの動きを簡単に。nanoが2.7.5-37以降Gnulibの各関数を使うようになっている。これによって、自分が独自にビルドしているAndroid版で上手く動かなくなったので色々と手を加えていく。NDKがきちんとロケール回りを実装していないことだ。NDKではMB_CUR_MAXとMB_LEN_MAXがそれぞれ1に定義されている。UTF-8では4以上となるべきものだ。最初、ビルドを通し実機で実行したらSegFaultが出て嵌って、gdbで確認してようやく原因判明。自前でビルドしたncursesにもこれらを再定義しているのだが、ncursesとnano、そしてGnulibまでパッチを充てることになるとは思ってもいなかった。NDKでは[[:<:]]や[[:>:]]がクラス未定義になってしまっている。\<、\>は認識をしてくれているので、utils.cのfixboundsを修正することで回避。Gnulibになったことでの利点もある。それはglobがちゃんと実装されて出来ていることだ。NDKではglobが無かった(のとmuslからの抜き出しが面倒だった)ので2.2.6相当の読み込みにしていたが、ちゃんとワイルドカードを使ってファイルを読み込むことが出来るようになった。動くようにはなっているものの、muslの実装と被るところもあるのでmuslの実装を外す必要も出てきている。進めば落ち着くだろうから、その時に手を入れていくつもり。2.8.0では待望のsoftwrap時のカーソル移動処理の改善。vimでいうgj/gkが標準の動きになった。所謂メモ帳とかと同じになったので違和感が無くなったのは大きい。日本語の折り返し処理が例によってうまいこと働いてくれないので(実装されていないから当然ではある)、手を加えてそれっぽく動くようにする。