-
Notifications
You must be signed in to change notification settings - Fork 163
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
タイプ別設定のインポートでバージョンチェックが正しく働いていなかった #1613
タイプ別設定のインポートでバージョンチェックが正しく働いていなかった #1613
Conversation
・変数名の隠ぺいによりバージョン情報のキー名が「?」になっていたのを修正 ・バージョン情報読み取りをstd::wstringに置き換え
Kudos, SonarCloud Quality Gate passed! |
✅ Build sakura 1.0.3625 completed (commit 2a55226a05 by @usagisita) |
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.
やや悩ましいです。
L"szKeyVersion"で直るというのは、自分もそう思います。 |
ようやく理解しました。 問題あるのはこっちのコードで、PR修正内容は正しそうです。
👆のコードの問題点
この問題の対処は別件としてリファクタリングしたほうが良いかもしれません。 |
レビューありがとうございました。 |
PR の目的
タイプ別設定インポートのときに表示される、iniファイルのバージョン情報が必ず「?」になっていた不具合を修正します。
カテゴリ
PR の背景
Visual StudioでWarningLevel4のチェックをしていたところ、見つけた不具合のひとつです。
せっかくなので直したいです。
PR のメリット
バグが修正されます。
PR のデメリット (トレードオフとかあれば)
仕様・動作説明
読み込みのためにszKeyVersionという変数が宣言されていましたが、これが定数の同名のiniキー名を隠ぺいしていました。
そのため、IOProfileDataの行でキー名「?」を読み込もうとして、必ず失敗していました。
変数名を変更したうえで長さの心配がないstd::wstringに置き換えました。
PR の影響範囲
タイプ別設定のインポート時に表示される、バージョンが違う時の警告のダイアログの表示だけです。
テスト内容
テスト1
手順
古いバージョンのタイプ別設定のエクスポートしたiniファイルを用意します。
そうでない場合は、最新版でエクスポートしたiniファイルをエディタで開いて、末尾にある[Info]のszKeyStructureVersionを小さい値に書き換えます。
タイプ別設定一覧でインポートしようとすると、
「エクスポートしたsakura(?/177)とバージョンが異なります。
インポートしてもよろしいですか?」
というようなダイアログが表示されます。
修正前は「?」になっています。
PRの修正後は「2.4.2.0」のようにiniの[Info]szVersionキーの内容が表示されるようになります。
関連 issue, PR
参考資料