Skip to content

Commit

Permalink
improve code
Browse files Browse the repository at this point in the history
  • Loading branch information
katahiromz committed Jan 13, 2024
1 parent fd9d9a9 commit 7bb74a3
Show file tree
Hide file tree
Showing 5 changed files with 34 additions and 40 deletions.
4 changes: 2 additions & 2 deletions Dictionary.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -197,14 +197,14 @@ void XgReadUnicodeLine(LPWSTR pchLine)
bool XgReadUnicodeFile(LPWSTR pszData, size_t cchData)
{
// 最初の一行を取り出す。
LPWSTR pchLine = wcstok(pszData, xg_pszNewLine);
LPWSTR pchLine = wcstok(pszData, L"\r\n");
if (pchLine == nullptr)
return false;

// 一行ずつ処理する。
do {
XgReadUnicodeLine(pchLine);
pchLine = wcstok(nullptr, xg_pszNewLine);
pchLine = wcstok(nullptr, L"\r\n");
} while (pchLine);
return true;
}
Expand Down
2 changes: 1 addition & 1 deletion GUI.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1509,7 +1509,7 @@ bool XgOpenHintsByNotepad(HWND /*hwnd*/, bool bShowAnswer)

// BOMとヒントの文字列をファイルに書き込む。
str = reinterpret_cast<LPCWSTR>("\xFF\xFE\x00");
str += xg_pszNewLine;
str += L"\r\n";
XG_HintsWnd::UpdateHintData(); // ヒントに変更があれば、更新する。
XgGetHintsStr(xg_solution, xg_strHints, 2, true);
str += xg_strHints;
Expand Down
2 changes: 1 addition & 1 deletion Marks.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ void __fastcall XgGetStringOfMarks(std::wstring& str)
WCHAR sz[64];
str.clear();
str += XgLoadStringDx1(IDS_HLINE);
str += xg_pszNewLine;
str += L"\r\n";
for (const auto& mark : xg_vMarks) {
if (xg_bSolved)
StringCchPrintf(sz, _countof(sz), L"(%d, %d)%c\r\n",
Expand Down
63 changes: 30 additions & 33 deletions XWordGiver.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -51,9 +51,6 @@ std::wstring xg_strNotes;
// 排他制御のためのクリティカルセクション。
CRITICAL_SECTION xg_cs;

// 改行。
const LPCWSTR xg_pszNewLine = L"\r\n";

// キャレットの位置。
XG_Pos xg_caret_pos = {0, 0};

Expand Down Expand Up @@ -2124,16 +2121,16 @@ bool __fastcall XgParseHints(std::vector<XG_Hint>& hints, const std::wstring& st

std::wstring word;
size_t i3, i4;
i3 = str.find(L"\x226A", i2);
i3 = str.find(L"\x226A", i2); // U+226A ≪
if (i3 != std::wstring::npos) {
i3 += wcslen(L"\x226A");
i3 += wcslen(L"\x226A"); // U+226A ≪

i4 = str.find(L"\x226B", i3);
i4 = str.find(L"\x226B", i3); // U+226B ≫
if (i4 == std::wstring::npos) {
return false;
}
word = str.substr(i3, i4 - i3);
i4 += wcslen(L"\x226B");
i4 += wcslen(L"\x226B"); // U+226B ≫
} else {
i4 = i2 + wcslen(XgLoadStringDx1(IDS_KEYRIGHT));
}
Expand Down Expand Up @@ -2220,7 +2217,7 @@ XgGetHintsStr(const XG_Board& board, std::wstring& str, int hint_type, bool bSho
if (hint_type == 0 || hint_type == 2) {
// タテのカギの文字列を構成する。
str += XgLoadStringDx1(IDS_DOWN);
str += xg_pszNewLine;
str += L"\r\n";

for (const auto& info : xg_vTateInfo) {
// 番号を格納する。
Expand All @@ -2229,9 +2226,9 @@ XgGetHintsStr(const XG_Board& board, std::wstring& str, int hint_type, bool bSho

// 答えを見せるかどうか?
if (bShowAnswer) {
str += L"\x226A";
str += (WCHAR)0x226A; // U+226A ≪
str += info.m_word;
str += L"\x226B";
str += (WCHAR)0x226B; // U+226B ≫
}

// ヒント文章を追加する。
Expand Down Expand Up @@ -2264,24 +2261,24 @@ XgGetHintsStr(const XG_Board& board, std::wstring& str, int hint_type, bool bSho
}
}
}
str += xg_pszNewLine; // 改行。
str += L"\r\n"; // 改行。
}
str += xg_pszNewLine;
str += L"\r\n";
}
if (hint_type == 1 || hint_type == 2) {
// ヨコのカギの文字列を構成する。
str += XgLoadStringDx1(IDS_ACROSS);
str += xg_pszNewLine;
str += L"\r\n";
for (const auto& info : xg_vYokoInfo) {
// 番号を格納する。
StringCchPrintf(sz, _countof(sz), XgLoadStringDx1(IDS_ACROSSNUMBER), info.m_number);
str += sz;

// 答えを見せるかどうか?
if (bShowAnswer) {
str += L"\x226A";
str += (WCHAR)0x226A; // U+226A ≪
str += info.m_word;
str += L"\x226B";
str += (WCHAR)0x226B; // U+226B ≫
}

// ヒント文章を追加する。
Expand Down Expand Up @@ -2310,18 +2307,18 @@ XgGetHintsStr(const XG_Board& board, std::wstring& str, int hint_type, bool bSho
}
}
}
str += xg_pszNewLine; // 改行。
str += L"\r\n"; // 改行。
}
str += xg_pszNewLine;
str += L"\r\n";
}
if (hint_type == 3 || hint_type == 5) {
// タテのカギの文字列を構成する。
str += XgLoadStringDx1(IDS_PARABOLD); // <p><b>
str += XgLoadStringDx1(IDS_DOWNLABEL);
str += XgLoadStringDx1(IDS_ENDPARABOLD); // </b></p>
str += xg_pszNewLine;
str += L"\r\n";
str += XgLoadStringDx1(IDS_OL); // <ol>
str += xg_pszNewLine;
str += L"\r\n";

for (const auto& info : xg_vTateInfo) {
// <li>
Expand Down Expand Up @@ -2355,19 +2352,19 @@ XgGetHintsStr(const XG_Board& board, std::wstring& str, int hint_type, bool bSho
}
}
str += XgLoadStringDx1(IDS_ENDLI); // </li>
str += xg_pszNewLine; // 改行。
str += L"\r\n"; // 改行。
}
str += XgLoadStringDx1(IDS_ENDOL); // </ol>
str += xg_pszNewLine; // 改行。
str += L"\r\n"; // 改行。
}
if (hint_type == 4 || hint_type == 5) {
// ヨコのカギの文字列を構成する。
str += XgLoadStringDx1(IDS_PARABOLD); // <p><b>
str += XgLoadStringDx1(IDS_ACROSSLABEL);
str += XgLoadStringDx1(IDS_ENDPARABOLD); // </b></p>
str += xg_pszNewLine;
str += L"\r\n";
str += XgLoadStringDx1(IDS_OL); // <ol>
str += xg_pszNewLine;
str += L"\r\n";

for (const auto& info : xg_vYokoInfo) {
// <li>
Expand Down Expand Up @@ -2401,10 +2398,10 @@ XgGetHintsStr(const XG_Board& board, std::wstring& str, int hint_type, bool bSho
}
}
str += XgLoadStringDx1(IDS_ENDLI); // </li>
str += xg_pszNewLine; // 改行。
str += L"\r\n"; // 改行。
}
str += XgLoadStringDx1(IDS_ENDOL); // </ol>
str += xg_pszNewLine; // 改行。
str += L"\r\n"; // 改行。
}
}

Expand Down Expand Up @@ -2787,7 +2784,7 @@ bool __fastcall XgSetStdString(HWND hwnd, const std::wstring& str)
// ヒント文字列を設定する。
if (!s.empty()) {
xg_strHints = s;
xg_strHints += xg_pszNewLine;
xg_strHints += L"\r\n";
}
} else {
// ヒントがない。
Expand Down Expand Up @@ -6310,22 +6307,22 @@ bool XgDoSaveStandard(HWND hwnd, LPCWSTR pszFile, const XG_Board& board)
board.GetString(strTable);
XgGetHintsStr(board, hints, 2, true);
str += xg_strHeader; // ヘッダー文字列。
str += xg_pszNewLine; // 改行。
str += L"\r\n"; // 改行。
str += XgLoadStringDx1(IDS_HEADERSEP1); // ヘッダー分離線。
str += XgLoadStringDx1(IDS_APPINFO); // アプリ情報。
str += xg_pszNewLine; // 改行。
str += L"\r\n"; // 改行。
str += strMarks; // マーク。
str += strTable; // 本体。
str += xg_pszNewLine; // 改行。
str += L"\r\n"; // 改行。
str += hints; // ヒント。
} else {
// ヒントなし。
board.GetString(strTable);
str += xg_strHeader; // ヘッダー文字列。
str += xg_pszNewLine; // 改行。
str += L"\r\n"; // 改行。
str += XgLoadStringDx1(IDS_HEADERSEP1); // ヘッダー分離線。
str += XgLoadStringDx1(IDS_APPINFO); // アプリ情報。
str += xg_pszNewLine; // 改行。
str += L"\r\n"; // 改行。
str += strMarks; // マーク。
str += strTable; // 本体。
}
Expand All @@ -6334,13 +6331,13 @@ bool XgDoSaveStandard(HWND hwnd, LPCWSTR pszFile, const XG_Board& board)
// 備考欄。
LPCWSTR psz = XgLoadStringDx1(IDS_BELOWISNOTES);
str += psz;
str += xg_pszNewLine;
str += L"\r\n";
if (xg_strNotes.find(psz) == 0) {
xg_strNotes = xg_strNotes.substr(std::wstring(psz).size());
}
xg_str_trim(xg_strNotes);
str += xg_strNotes;
str += xg_pszNewLine;
str += L"\r\n";

// ファイルに書き込んで、ファイルを閉じる。
DWORD size = 2;
Expand Down
3 changes: 0 additions & 3 deletions XWordGiver.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -1254,9 +1254,6 @@ class xg_placeinfo_compare_position

//////////////////////////////////////////////////////////////////////////////

// 改行。
extern const LPCWSTR xg_pszNewLine;

// インスタンスのハンドル。
extern HINSTANCE xg_hInstance;

Expand Down

0 comments on commit 7bb74a3

Please sign in to comment.