Skip to content
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

MINGW_HAS_SECURE_APIが無効か判定する式の修正 #363

Merged

Conversation

berryzplus
Copy link
Contributor

デバッグビルドできるように設定をいじっていて誤りに気づきました。
PRのレビューでも指摘をいただいていた部分です。

#351 (review)

k_takata

\ での行継続が必要ですね。
あと、MinGWの判定合ってますか?

berryzplus

レビューありがとうございます。

\ での行継続が必要ですね。

ビルドが通ったのは _MSC_VER が定義されていなかったからですね。

あと、MinGWの判定合ってますか?

MinGW側の判定はたぶん合ってると思います。
定義するときは -DMINGW_HAS_SECURE_API=1 としますが、
0とされたときに正しく動くようにする意図です。

k_takata

sec_api/tchar_s.h などを見ると、#ifdef で判定しています。
そして、MinGW自身がセキュア系関数を持っているはずです。

このPRで一旦条件式の誤りを直したいです。

仮に -DMINGW_HAS_SECURE_API=0 とされたらどうすべきかは別件としたいです。

@m-tmatma
Copy link
Member

こんな感じにしてはいかがでしょうか?
ひとつの条件コンパイルで複数のコンパイラの条件を書くとメンテしにくいと思います。

#if (defined(_MSC_VER) && _MSC_VER<1400)
#define IMPLEMENT_SECURE_STRING_APIS 1  //VS2005より前なら
#elif (defined(__MINGW32__) && (!defined(MINGW_HAS_SECURE_API) || MINGW_HAS_SECURE_API != 1))
#define IMPLEMENT_SECURE_STRING_APIS 1
#else
#define IMPLEMENT_SECURE_STRING_APIS 0
#endif

#if IMPLEMENT_SECURE_STRING_APIS
errno_t wcscat_s(wchar_t* szDst, size_t nDstCount, const wchar_t* szSrc)
{
   ...
}

...

#endif

@berryzplus
Copy link
Contributor Author

こんな感じにしてはいかがでしょうか?

いいと思います。
しかし、今回は条件式の改善は行わず、誤りの修正にとどめたいです。
理由はここの条件式が「いずればっさり消えるもの」だからです。→ #365

@m-tmatma m-tmatma added this to the next release milestone Aug 25, 2018
@m-tmatma
Copy link
Member

了解です。

@m-tmatma m-tmatma added the MinGW MinGW label Aug 25, 2018
@berryzplus berryzplus merged commit 468a57a into sakura-editor:master Aug 25, 2018
@berryzplus berryzplus deleted the feature/fix_mingw_condition branch August 25, 2018 12:53
@ds14050 ds14050 added the MinGW MinGW label Sep 18, 2018
HoppingTappy pushed a commit to HoppingTappy/sakura that referenced this pull request Jun 11, 2019
…w_condition

MINGW_HAS_SECURE_APIが無効か判定する式の修正
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
MinGW MinGW
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants