-
Notifications
You must be signed in to change notification settings - Fork 165
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
convert 配下のファイルを UTF-8 (BOM付) に変換 #264
Conversation
この一文はできれば外してチェックしたいです。 今回のコード変換のまとまりは確認が非常に困難だと思っています。 一旦は、文字コード(と改行)以外に一切の差異がないことをもって「変換」を済ませてしまうことが先決であるように思っていますがどうでしょうか? |
全挙動を見る必要は無く、1か所でもリテラル系が絡む動作が問題ないことが確認できれば良いかな、くらいの気持ちで書いています。 たとえば「全角→半角」のような変換機能が「それっぽく」動いていること、など。 |
個人的にはそれで構わないと思っています。 |
特に異論なければ一旦動作チェック飛ばしてファイル内容比較のみでレビュー進めてしまいましょうか。 ちなみに
等は個人的に既にチェック済みで、動作問題ありませんでした。 |
ここの部分は慎重にやりたいと思います。 |
変換結果をチェックしたい、というところには同意なんですが、 ワイド文字列リテラル( L"あ" )についてはUTF-16LEに、 う~む、書いてないですねぇw ソースファイルと実行ファイルの文字コードを個別に指定できるGCCと比べると、VC++は「勝手にうまいことやってくれる部分」が多いので、基本的なところを確認しようとすると結構めんどうです。 何かやり方考えますか・・・ |
何か実験するなり、なんらかのドキュメントを見つけるなり、方法はなんでもいいのですが、 |
VCにも |
ひとつ方法を思いつきました。 VC++にはアセンブラリストをUnicodeで生成する機能があります。 <ClCompile>
<AssemblerOutput>All</AssemblerOutput>
<UseUnicodeForAssemblerListing>true</UseUnicodeForAssemblerListing>
</ClCompile> 現状でアセンブラリストを比較すると CDlgAbout.asm 以外に差分はでません。 やや微妙な方法ですが、他になければこれでいくしかないかも。 |
マジっすか!・・・ほんとだ。 https://docs.microsoft.com/en-us/cpp/build/reference/execution-charset-set-execution-character-set |
#290 を適用するため rebase しました |
この変更だけテスト書いてチェックしたいな、と。 他の変更と違って文字コード変換そのものを実装した機能だから、という理由で。 |
ビルド失敗してますね。 |
謎の1個目のCI失敗が続く(RE-BUILD COMMIT しても出る)ので、例外的に close/reopen で対処します
|
ログ見るとブランチがない、と言ってるような・・・ |
同じエラーですか。 |
なんかよくわからんですね……。タイムスタンプ変えて push -f してみます |
cd sakura_core/convert nkf --overwrite --oc=UTF-8-BOM *.cpp nkf --overwrite --oc=UTF-8-BOM *.h
現 master から rebase しなおして push -f してみました |
元気に動き出した感じですね・・・
これやると時間かかりそうなので、一旦「無し」でお願いします。 他コミット同様のチェックでよいと思います。 |
rebase されたので、 https://ci.appveyor.com/project/sakuraeditor/sakura/build/1.0.490 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTMです。
build456とbuild490でasmの一致を確認しました。
説明不足ですみません。
build 456 と比較しては駄目です。 build490 と 049750d に対するビルドである build487 と比較する必要があります。 |
https://ci.appveyor.com/project/sakuraeditor/sakura/build/1.0.490 (ブランチ元の master) を比較して、CDlgAbout.asm 以外一致しているのを確認しました。 |
convert 配下のファイルを UTF-8 (BOM付) に変換
該当フォルダ内の文字コードをすべて UTF-8 (BOM付) に変換しました。
確認方法
WinMerge で変更前と変更後を比較すると、文字コード以外の変更が無いことが確認できます。
関連 Issues
ソースコードのUnicode化 #112
特記事項
これまでの経緯から、マルチバイトを含む文字列リテラルについてもファイルのエンコーディングを変更したところで悪影響が起こらないように感じています。
今回の変更ではマルチバイトを含む文字列リテラルを含むファイルも含めてファイルエンコーディングの変更を行っています。
主に動作影響について対応前後で挙動に変化がないことのご確認をいただけると助かります。
(こういうときに単体テストを組んでおくと楽だったなーと思いました)