-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
IRCプロトコルにあわせたメッセージの自動切断 #24
Comments
これは Cinch のバグと言っていいんじゃないかと思います。なんとか直して PR として送れれば… |
もう一つ異常動作がありました。
IRCでは以下のような応答がありましたが、コンソールにIRCへ流す文字列を流すようにしたところ、以下のような出力をしていることが分かりました。
上で提示されたcinchのコードから、空白の部分できるようになっていることが分かりますが、日本語の場合は単語の間に空白文字列が挟まれることは基本的にないため、空白文字列が現れる前の何文字かが失われたようです。 |
日本語で空白が入らないことは関係がないようです。原因は
の 2 つで、バイト数で計算すべきところを文字数で計算していることです(String#rindex、String#slice! とも文字のインデックスを指定する関数だから)。文字ごとに累積バイト数を求め、最大バイト数以下の最大値になるところで切ってあげれば、文字のバイト数に関係なく適切に分けることができます。 |
Cinch に PR を送っています (cinchrb/cinch#189)。 |
Dominik Honnef さん (@dominikh) に直していただき、無事マージされました。Cinch の次のバージョンから正常に切断されるようになると思います。 |
cinch の、IRCコマンドが長すぎた場合にちょうど良い長さで出力を切る機能は、2バイト文字だとうまく動作しない可能性がある。
以下の2つの動作を確認した。
cinch自体の改良を行なうか、RGRB側でメッセージの自動調整機能を実装したい。
The text was updated successfully, but these errors were encountered: