デコーダに手を入れたならばついでにバグも直してほしいですね
Set O に対する対処がなされていない様ですのでその対処とBase64の終了条件です
現状Base64の終了条件は終了マーク'-'のみになっているようなのですが
仕様(RFC2152)を見ればSet B以外の文字がきた場合、Base64の終了になる様です
後、保存の時にUTF-7を選択した場合、現状BOMがオンですがオフの方が良いと思います
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
1行目が保存されないバグの修正
バグの報告をさせていただきます
sakura_core/io/CFileLoad.cppのFileOpen関数で
bool bBom = false;
if( 0 < m_nReadDataLen ){
CMemory headData(m_pReadBuf, t_min(m_nReadDataLen, 10));
CNativeW headUni;
CIoBridge::FileToImpl(headData, &headUni, m_CharCode, m_nFlag);
if( 1 <= headUni.GetStringLength() && headUni.GetStringPtr()[0] == 0xfeff ){
bBom = true;
}
}
の部分で先頭10Byte以内にBase64の終了マーク'-'が無いとBOMを検出できません
UTF-7でBOM検出できないのを修正
v1_2
報告ありがとうございます。
デコーダを修正することで対応しました。
BOM付UTF-7の読み込みが確認できました
ご苦労様です
デコーダに手を入れたならばついでにバグも直してほしいですね
Set O に対する対処がなされていない様ですのでその対処とBase64の終了条件です
現状Base64の終了条件は終了マーク'-'のみになっているようなのですが
仕様(RFC2152)を見ればSet B以外の文字がきた場合、Base64の終了になる様です
後、保存の時にUTF-7を選択した場合、現状BOMがオンですがオフの方が良いと思います
v1_3
・Set O が?に変換されるバグの修正
・Bom書き込みができていなかったバグの修正
Set B以外がきたときにBase64の終端になるのは元からできるみたいです。
Base64の終端についてはこちらの勘違いでした
ご迷惑をおかけしました
バグの報告をさせていただきます
①キーマクロの実行が出来ません
RecKey.macの読み込みでコケてる様です
②読込時'&'がエラーと成る
問題点を一つ挙げさせていただきます
Base64の最後で余りのビットに0パディングがされていない場合です
未パッチではエラーとしていますが、本パッチでは無視しています
例えば
"+byJ-"
は未パッチで"???-"と成りエラーメッセージが出、パッチ済みでは"漢"に変換します
変換が出来て、メッセージが出るのが良い様に思いますが如何でしょうか
v1_4
①については再現しませんでした。
②は修正しました。
・Base64の残りがおかしい場合にエラーメッセージが出るようにしました。
・BPart直後の8bit目のあるデータの取り扱いがおかしかったのを修正しました。
v1_3で、保存ダイアログのBOMのデフォルト値を変更してました。
ご苦労様です
①については潜在バグが顕現した為でした
このパッチとは関係しないバグです
②は確認できました。
v1.5
v1.6
Conflict修正等
rev2564でコミットしました。