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 ビルドでややおかしなメッセージが出る。 #610

Closed
ds14050 opened this issue Nov 10, 2018 · 4 comments
Closed

MinGW ビルドでややおかしなメッセージが出る。 #610

ds14050 opened this issue Nov 10, 2018 · 4 comments
Labels
MinGW MinGW

Comments

@ds14050
Copy link
Contributor

ds14050 commented Nov 10, 2018

無題テキストを変更して終了しようとすると「(1 は変更されています」と表示されます。Win32 ビルドでは master も 2.3.2.0 も「(無題)1 は変更されています」と表示されます。

MinGW ビルドをリリースしない限りは問題ではないともいえます。

@ds14050 ds14050 added the MinGW MinGW label Nov 10, 2018
@berryzplus
Copy link
Contributor

う~む・・・。

調べ方)

無題テキストを変更して終了しようとすると「(1 は変更されています」と表示されます。Win32 ビルドでは master も 2.3.2.0 も「(無題)1 は変更されています」と表示されます。

「メッセージがおかしい」という問題に対する調査は、メッセージ現物を調べるのが基本です。
そこで、申告のあったメッセージの共通部分「は変更されています」でソース全体をgrepします。

vs2017(英語版)での検索結果がこちらです。

Find all "は変更されています", Regular expressions, Subfolders, Keep modified files open, Find Results 2, Entire Solution, "*.*"
  C:\work\sakura-editor\sakura_core\sakura_rc.rc(3209):	STR_ERR_DLGEDITDOC30		"%ts\nは変更されています。 閉じる前に保存しますか?\n\nビューモードで開いているので、名前を付けて保存すればいいと思います。\n"
  C:\work\sakura-editor\sakura_core\sakura_rc.rc(3211):	STR_ERR_DLGEDITDOC31		"%ts\nは変更されています。 閉じる前に保存しますか?"
  C:\work\sakura-editor\sakura_core\sakura_rc.rc(3314):	STR_ERR_CEDITVIEW_CMD18		"%ts\nは変更されています。 Oracle SQL*Plusで実行する前に保存しますか?"
  C:\work\sakura-editor\sakura_core\sakura_rc.rc(3324):	STR_ERR_CEDITVIEW_CMD29		"%ts\n\nこのファイルは変更されています。\n再ロードを行うと変更が失われますが、よろしいですか?"
  Matching lines: 4    Matching files: 1    Total files searched: 693

問題になっているのはおそらく STR_ERR_DLGEDITDOC31 です。
他のメッセージIDならばその旨説明があるはず、という仮定に基づく予想ですが。
ここまで分かればあとはメッセージがどこで使われているか見るだけです。

問題箇所はここ・・・のはず。

else {
nRet = ::MYMESSAGEBOX(
hwndMainFrame,
MB_YESNOCANCEL | MB_ICONQUESTION | MB_TOPMOST,
GSTR_APPNAME,
LS(STR_ERR_DLGEDITDOC31),
pszTitle
);

対策は独自のフォーマット書式型指定子「t(%ts, %tc)」の廃止かなぁ・・・
いまちょっと忙しいので再現とか検証とかできてない状況です。

何気にこっちの問題かも知れません。

auto_sprintf( szGrepTitle, _T("%s%d"), LS(STR_NO_TITLE1), node->m_nId ); //(無題)

LS が返すのはクラス型 CLoadString なので 明示的に (LPCTSTR) してあげないと文字列にならないのかも。

@berryzplus
Copy link
Contributor

なんか後者くさい気がしてきました。
細かい検証は任せます。ってか寝ます 😄

@berryzplus
Copy link
Contributor

あかん、もっと深刻な話やん。

同種の障害が起こり得る場所をピックアップしてみました。

Find all "sprintf\(\s*\w+,\s*[^,\n]+,\s*\bLSW?\s*\(", Match case, Regular expressions, Subfolders, Keep modified files open, Find Results 2, Entire Solution, "*.*"
  C:\work\sakura-editor\sakura_core\doc\CEditDoc.cpp(896):		auto_sprintf( szGrepTitle, _T("%s%d"), LS(STR_NO_TITLE1), node->m_nId );	//(無題)
  C:\work\sakura-editor\sakura_core\env\CFileNameManager.cpp(471):			wsprintf( szFileName, _T("%s%d"), LS( STR_NO_TITLE1 ), nId);
  C:\work\sakura-editor\sakura_core\prop\CPropComBackup.cpp(524):			auto_sprintf( temp, LTEXT("%ls\\"), LSW(STR_PROPCOMBK_DUSTBOX) );
  Matching lines: 3    Matching files: 3    Total files searched: 693

@ds14050 ds14050 changed the title MinGW ビルドややおかしなメッセージが出る。 MinGW ビルドでややおかしなメッセージが出る。 Dec 9, 2018
@berryzplus
Copy link
Contributor

興味ある人も居ないようなので閉じておきます。

必要あれば新たにissue立ててください。

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

No branches or pull requests

2 participants