From a43790c14d28be477caf40e81a1cd326dbb28ef1 Mon Sep 17 00:00:00 2001 From: matanki-saito Date: Sun, 30 Sep 2018 06:46:23 +0900 Subject: [PATCH] =?UTF-8?q?=20-=20=E3=83=95=E3=82=A1=E3=82=A4=E3=83=AB?= =?UTF-8?q?=E5=90=8D=E3=82=92=E5=A4=89=E6=9B=B4=20=20-=20issue4=E3=81=AB?= =?UTF-8?q?=E5=AF=BE=E5=BF=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ConsoleApplication3.exe | Bin 58880 -> 0 bytes ConsoleApplication3.sln | 28 - ConsoleApplication3/ConsoleApplication3.cpp | 958 ------------------ ConsoleApplication3/ReadMe.txt | 30 - ConsoleApplication3/stdafx.cpp | 8 - ConsoleApplication3/stdafx.h | 20 - ConsoleApplication3/targetver.h | 8 - README.md | 23 +- eu4specialescape/eu4specialescape.cpp | Bin 0 -> 35834 bytes eu4specialescape/eu4specialescape.sln | 31 + .../eu4specialescape.vcxproj | 49 +- .../eu4specialescape.vcxproj.filters | 14 +- eu4specialescape/pch.cpp | Bin 0 -> 276 bytes eu4specialescape/pch.h | Bin 0 -> 1136 bytes 14 files changed, 77 insertions(+), 1092 deletions(-) delete mode 100644 ConsoleApplication3.exe delete mode 100644 ConsoleApplication3.sln delete mode 100644 ConsoleApplication3/ConsoleApplication3.cpp delete mode 100644 ConsoleApplication3/ReadMe.txt delete mode 100644 ConsoleApplication3/stdafx.cpp delete mode 100644 ConsoleApplication3/stdafx.h delete mode 100644 ConsoleApplication3/targetver.h create mode 100644 eu4specialescape/eu4specialescape.cpp create mode 100644 eu4specialescape/eu4specialescape.sln rename ConsoleApplication3/ConsoleApplication3.vcxproj => eu4specialescape/eu4specialescape.vcxproj (87%) rename ConsoleApplication3/ConsoleApplication3.vcxproj.filters => eu4specialescape/eu4specialescape.vcxproj.filters (74%) create mode 100644 eu4specialescape/pch.cpp create mode 100644 eu4specialescape/pch.h diff --git a/ConsoleApplication3.exe b/ConsoleApplication3.exe deleted file mode 100644 index c17e73faf993f3392fd8bab76ff804905908102f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 58880 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 N4L=;AN3j33^j|pmPTT+h diff --git a/ConsoleApplication3.sln b/ConsoleApplication3.sln deleted file mode 100644 index 46183a0..0000000 --- a/ConsoleApplication3.sln +++ /dev/null @@ -1,28 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -VisualStudioVersion = 14.0.25420.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ConsoleApplication3", "ConsoleApplication3\ConsoleApplication3.vcxproj", "{9003FC25-A6B5-451B-BDAE-B764FDAB37E1}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|x64 = Debug|x64 - Debug|x86 = Debug|x86 - Release|x64 = Release|x64 - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {9003FC25-A6B5-451B-BDAE-B764FDAB37E1}.Debug|x64.ActiveCfg = Debug|x64 - {9003FC25-A6B5-451B-BDAE-B764FDAB37E1}.Debug|x64.Build.0 = Debug|x64 - {9003FC25-A6B5-451B-BDAE-B764FDAB37E1}.Debug|x86.ActiveCfg = Debug|Win32 - {9003FC25-A6B5-451B-BDAE-B764FDAB37E1}.Debug|x86.Build.0 = Debug|Win32 - {9003FC25-A6B5-451B-BDAE-B764FDAB37E1}.Release|x64.ActiveCfg = Release|x64 - {9003FC25-A6B5-451B-BDAE-B764FDAB37E1}.Release|x64.Build.0 = Release|x64 - {9003FC25-A6B5-451B-BDAE-B764FDAB37E1}.Release|x86.ActiveCfg = Release|Win32 - {9003FC25-A6B5-451B-BDAE-B764FDAB37E1}.Release|x86.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/ConsoleApplication3/ConsoleApplication3.cpp b/ConsoleApplication3/ConsoleApplication3.cpp deleted file mode 100644 index 59aff27..0000000 --- a/ConsoleApplication3/ConsoleApplication3.cpp +++ /dev/null @@ -1,958 +0,0 @@ -#include "stdafx.h" - -errno_t subUTF8(const wchar_t *source, wchar_t *baseFileName); -errno_t subUTF8B(const wchar_t *source, wchar_t *baseFileName); - -errno_t loadTextFromBinary(const wchar_t *source, char **to) { - - errno_t success = 0; - errno_t readFileError = 0; - FILE *fp; - int error = 0; - struct _stat statData; - int readSize = 0; - - if (source == NULL) { - success = 1; - goto F; - } - - /* */ - error = _wstat(source, &statData); - if (error != NULL) { - success = 2; - goto F; - } - - /* */ - - readFileError = _wfopen_s(&fp, source, L"rb"); - if (readFileError != NULL) { - success = 3; - goto F; - } - - /* */ - *to = (char*)calloc(statData.st_size + 1, sizeof(char)); - if (*to == NULL) { - success = 4; - goto A; - } - - /* */ - readSize = fread_s(*to, statData.st_size, sizeof(char), statData.st_size, fp); - - if (readSize != statData.st_size) { - success = 5; - goto A; - } - -A: - fclose(fp); -F: - return success; -} - -errno_t removeBOM(const char *from, char **to) { - - errno_t success = 0; - errno_t err = 0; - unsigned int size = 0; - - /* */ - if (from == NULL) { - success = 1; - goto A; - } - - /* */ - if (strlen(from) < 4) { - success = 2; - goto A; - } - - /* */ - if (!((from[0] == ((char)0xEF)) && (from[1] == (char)0xBB) && (from[2] == (char)0xBF))) { - success = 3; - goto A; - } - - /* */ - size = strlen(from); - - /* */ - *to = (char*)calloc(size - 2, sizeof(char)); - - if (*to == NULL) { - success = 4; - goto A; - } - - /* */ - err = memcpy_s(*to, size - 2, from + 3, size - 3); - - if (err) { - success = 5; - goto B; - } - - goto A; - -B: - free(*to); - -A: - return success; -} - -errno_t convertTextToWideText(const char* from, wchar_t **to) { - - errno_t success = 0; - unsigned int err = 0; - unsigned int wideTextSize = 0; - - /* */ - if (from == NULL) { - success = 1; - goto A; - } - - /* */ - wideTextSize = MultiByteToWideChar( - CP_UTF8, - NULL, - from, - -1, - NULL, - NULL); - - if (wideTextSize == NULL) { - success = GetLastError(); - goto A; - } - - /* */ - *to = (wchar_t*)calloc(wideTextSize, sizeof(wchar_t)); - - if (*to == NULL) { - success = 3; - goto A; - } - - /* */ - err = MultiByteToWideChar( - CP_UTF8, - NULL, - from, - -1, - *to, - wideTextSize); - - if (err == NULL) { - success = 4; - goto B; - } - - goto A; - -B: - free(*to); -A: - return success; -} - -inline wchar_t UCS2ToCP1252(int cp) { - wchar_t result = cp; - switch (cp) { - case 0x20AC: result = 0x80; break; - case 0x201A: result = 0x82; break; - case 0x0192: result = 0x83; break; - case 0x201E: result = 0x84; break; - case 0x2026: result = 0x85; break; - case 0x2020: result = 0x86; break; - case 0x2021: result = 0x87; break; - case 0x02C6: result = 0x88; break; - case 0x2030: result = 0x89; break; - case 0x0160: result = 0x8A; break; - case 0x2039: result = 0x8B; break; - case 0x0152: result = 0x8C; break; - case 0x017D: result = 0x8E; break; - case 0x2018: result = 0x91; break; - case 0x2019: result = 0x92; break; - case 0x201C: result = 0x93; break; - case 0x201D: result = 0x94; break; - case 0x2022: result = 0x95; break; - case 0x2013: result = 0x96; break; - case 0x2014: result = 0x97; break; - case 0x02DC: result = 0x98; break; - case 0x2122: result = 0x99; break; - case 0x0161: result = 0x9A; break; - case 0x203A: result = 0x9B; break; - case 0x0153: result = 0x9C; break; - case 0x017E: result = 0x9E; break; - case 0x0178: result = 0x9F; break; - } - - return result; -} - -inline wchar_t cp1252ToUCS2(byte cp) { - wchar_t result = cp; - switch (cp) { - case 0x80: result = 0x20AC; break; - case 0x82: result = 0x201A; break; - case 0x83: result = 0x0192; break; - case 0x84: result = 0x201E; break; - case 0x85: result = 0x2026; break; - case 0x86: result = 0x2020; break; - case 0x87: result = 0x2021; break; - case 0x88: result = 0x02C6; break; - case 0x89: result = 0x2030; break; - case 0x8A: result = 0x0160; break; - case 0x8B: result = 0x2039; break; - case 0x8C: result = 0x0152; break; - case 0x8E: result = 0x017D; break; - case 0x91: result = 0x2018; break; - case 0x92: result = 0x2019; break; - case 0x93: result = 0x201C; break; - case 0x94: result = 0x201D; break; - case 0x95: result = 0x2022; break; - case 0x96: result = 0x2013; break; - case 0x97: result = 0x2014; break; - case 0x98: result = 0x02DC; break; - case 0x99: result = 0x2122; break; - case 0x9A: result = 0x0161; break; - case 0x9B: result = 0x203A; break; - case 0x9C: result = 0x0153; break; - case 0x9E: result = 0x017E; break; - case 0x9F: result = 0x0178; break; - } - - return result; - -} - -errno_t convertWideTextToEscapedWideText(const wchar_t* from, wchar_t** to) { - - errno_t success = 0; - int toIndex = 0; - unsigned int size = 0; - - /* */ - if (from == NULL) { - success = 1; - goto A; - } - - /* */ - size = wcslen(from); - - /* ‘S•”ƒGƒXƒP[ƒv‚µ‚Ä‚à‚R”{‚ð’´‚¦‚邱‚Æ‚Í‚È‚¢B‚P‚O‚̓oƒbƒtƒ@*/ - *to = (wchar_t*)calloc(size * 3 + 10, sizeof(wchar_t)); - - if (*to == NULL) { - success = 2; - goto A; - } - - /* */ - toIndex = 0; - for (unsigned int fromIndex = 0; fromIndex < size; fromIndex++) { - wchar_t cp = from[fromIndex]; - - /* */ - if (UCS2ToCP1252(cp) != cp) { - (*to)[toIndex++] = cp; - continue; - } - - /* ‚¸‚ç‚· */ - if (cp > 0x100 && cp < 0xA00) { - cp = cp + 0xE000; - } - - /* ãˆÊƒoƒCƒg */ - byte high = (cp >> 8) & 0x000000FF; - - /* ‰ºˆÊƒoƒCƒg */ - byte low = cp & 0x000000FF; - - byte escapeChr = 0x10; - - /* 2byte‚¶‚á‚È‚¢ */ - if (high == 0) { - (*to)[toIndex++] = cp; - continue; - } - - /* high byte‚æ‚茈’è */ - switch (high) { - case 0xA4:case 0xA3:case 0xA7:case 0x24:case 0x5B:case 0x00:case 0x5C: - case 0x20:case 0x0D:case 0x0A:case 0x22:case 0x7B:case 0x7D:case 0x40: - case 0x80:case 0x7E:case 0x2F:case 0xBD:case 0x3B:case 0x5D:case 0x5F: - case 0x3D:case 0x23: - escapeChr += 2; - break; - default: - break; - } - - /* low byte‚æ‚茈’è */ - switch (low) { - case 0xA4:case 0xA3:case 0xA7:case 0x24:case 0x5B:case 0x00:case 0x5C: - case 0x20:case 0x0D:case 0x0A:case 0x22:case 0x7B:case 0x7D:case 0x40: - case 0x80:case 0x7E:case 0x2F:case 0xBD:case 0x3B:case 0x5D:case 0x5F: - case 0x3D:case 0x23: - escapeChr++; - break; - default: - break; - } - - switch (escapeChr) { - case 0x11: - low += 14; - break; - case 0x12: - high -= 9; - break; - case 0x13: - low += 14; - high -= 9; - break; - case 0x10: - default: - break; - } - - (*to)[toIndex++] = escapeChr; - (*to)[toIndex++] = cp1252ToUCS2(low); - (*to)[toIndex++] = cp1252ToUCS2(high); - } - -A: - return success; -} - -errno_t convertWideTextToText(const wchar_t* from, char **to) { - - errno_t success = 0; - int size = 0; - int err = 0; - - /* */ - if (from == NULL) { - success = 1; - goto A; - } - - /* */ - size = WideCharToMultiByte( - CP_UTF8, - 0, - from, - -1, - NULL, - 0, - NULL, - NULL - ); - - if (size == NULL) { - success = 2; - goto A; - } - - /* */ - *to = (char*)malloc(size * sizeof(char)); - if (*to == NULL) { - success = 3; - goto A; - } - - /* */ - err = WideCharToMultiByte( - CP_UTF8, - 0, - from, - -1, - *to, - size, - NULL, - NULL - ); - - if (err == NULL) { - success = 4; - goto B; - } - - goto A; - -B: - free(*to); - -A: - return success; -} - -errno_t attachWildCard(const wchar_t* from, wchar_t ** to) { - - errno_t error = 0; - unsigned int size = 0; - errno_t err = 0; - - /* */ - if (from == NULL) { - error = 1; - goto A; - } - - /* */ - size = wcslen(from); - - /* */ - *to = (wchar_t*)calloc(size + 3, sizeof(wchar_t)); - - if (*to == NULL) { - error = 2; - goto A; - } - - /* */ - err = wmemcpy_s(*to, size, from, size); - if (err) { - error = 3; - goto B; - } - - /* */ - (*to)[size] = L'\\'; - (*to)[size + 1] = L'*'; - - /* */ - goto A; - -B: - free(*to); - -A: - return error; -} - -errno_t attachBOM(const char* from, char ** to) { - - errno_t error = 0; - unsigned int size = 0; - - /* */ - if (from == NULL) { - error = 1; - goto A; - } - - /* */ - size = strlen(from); - - /* */ - *to = (char*)calloc(size + 4, sizeof(char)); - if (*to == NULL) { - error = 2; - goto A; - } - - /* UTF-8 BOM */ - (*to)[0] = (char)0xEF; - (*to)[1] = (char)0xBB; - (*to)[2] = (char)0xBF; - - /* */ - if (memcpy_s(*to + 3, size + 4, from, size)) { - error = 3; - goto B; - } - - /* */ - goto A; - -B: - free(*to); - -A: - return error; -} - -/* Cpp code */ -const std::wregex FILE_NAME_PATTERN1(L"^(.+)\.utf8b(\.[a-zA-Z0-9]+)$"); -const std::wregex FILE_NAME_PATTERN2(L"^(.+)\.(\.[a-zA-Z0-9_]+).utf8$"); -inline errno_t getBaseFileName(const wchar_t *source, wchar_t **to, const std::wregex pattern) { - - errno_t error = 0; - std::wcmatch match; - - /* */ - try { - if (!std::regex_match(source, match, pattern)) { - /* Not match */ - *to = NULL; - goto A; - } - - /* */ - unsigned int size = wcslen(source); - - /* */ - *to = (wchar_t*)calloc(size, sizeof(wchar_t)); - if (*to == NULL) { - error = 1; - goto A; - } - - /* */ - std::wstring tmp = match.str(1); /* + match.str( */ - wcscat_s(*to, tmp.length() + 1, tmp.c_str()); - } - catch (std::regex_error& e) { - error = 1; - } - -A: - return error; -} - -errno_t getFullPath(wchar_t *from[], wchar_t **to) { - - errno_t error = 0; - wchar_t *err = NULL; - - /* */ - if (!(*++from)) { - error = 1; - goto F; - } - - /* */ - *to = (wchar_t*)calloc(_MAX_PATH, sizeof(wchar_t)); - if (*to == NULL) { - error = 2; - goto F; - } - - /* */ - err = _wfullpath(*to, *from, _MAX_PATH); - if (*err == NULL) { - error = 3; - goto A; - } - - /* */ - goto F; - -A: - free(*to); - -F: - return error; -} - -/* http://www14.big.or.jp/~ken1/tech/tech5.html */ -errno_t digDir(const wchar_t *source) -{ - errno_t success = 0; - wchar_t subpath[_MAX_PATH]; - wchar_t temp[_MAX_PATH]; - HANDLE h; - WIN32_FIND_DATA lp; - - /* */ - errno_t err = wcscpy_s(temp, source); - if (err > 0) { - success = 1; - goto A; - } - - /* */ - h = FindFirstFile(temp, &lp); - if (INVALID_HANDLE_VALUE == h) { - success = 2; - goto A; - } - - /* delete last '*' */ - temp[wcslen(temp) - 1] = '\0'; - - /* */ - do - { - /* isDir */ - if ((lp.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) && - (wcscmp(lp.cFileName, L"..") != 0) && - (wcscmp(lp.cFileName, L".") != 0) - ) { - /* TODO:check len */ - int len = wsprintf(subpath, L"%s%s\\*", temp, lp.cFileName); - - /* */ - errno_t err2 = digDir(subpath); - if (err2 > 0) { - success = 3; - goto B; - } - } - - /* isFile */ - if ((lp.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) != FILE_ATTRIBUTE_DIRECTORY) { - /* */ - wchar_t *baseFileName; - errno_t err3 = getBaseFileName(lp.cFileName, &baseFileName,FILE_NAME_PATTERN1); - if (err3 > 0) { - success = 4; - goto B; - } - - /* */ - if (baseFileName != NULL) { - /* TODO:check len */ - wchar_t fileFullPath[_MAX_PATH]; - int len = wsprintf(fileFullPath, L"%s%s", temp, lp.cFileName); - - /* */ - errno_t errSub = subUTF8B(fileFullPath, baseFileName); - - free(baseFileName); - - if (errSub > 0) { - goto B; - } - } - else { - errno_t err4 = getBaseFileName(lp.cFileName, &baseFileName, FILE_NAME_PATTERN2); - if (err4 > 0) { - success = 4; - goto B; - } - if (baseFileName != NULL) { - /* TODO:check len */ - wchar_t fileFullPath[_MAX_PATH]; - int len = wsprintf(fileFullPath, L"%s%s", temp, lp.cFileName); - - /* */ - errno_t errSub = subUTF8(fileFullPath, baseFileName); - - free(baseFileName); - - if (errSub > 0) { - goto B; - } - } - } - } - } while (FindNextFile(h, &lp)); - -B: - FindClose(h); - -A: - return success; -} - -/**/ -int wmain(int argc, wchar_t *argv[], wchar_t *envp[]) -{ - errno_t error = 0; - wchar_t *fullPath = NULL; - wchar_t *attachWildCardFullPath = NULL; - - /* */ - error = getFullPath(argv, &fullPath); - if (error > 0) { - printf("ˆø”ˆÙí:%d", error); - goto A; - } - - /* */ - error = attachWildCard(fullPath, &attachWildCardFullPath); - if (error > 0) { - printf("ƒƒCƒ‹ƒhƒJ[ƒh“Y•tˆÙí:%d", error); - goto B; - } - - /* */ - error = digDir(attachWildCardFullPath); - if (error > 0) { - printf("ƒfƒBƒŒƒNƒgƒŠŒŸoˆÙí:%d", error); - goto C; - } - -C: - free(attachWildCardFullPath); - -B: - free(fullPath); - -A: - return 0; -} - -errno_t saveTextToBinary2(const wchar_t *source, const wchar_t *baseFileName, const char* from) { - - errno_t success = 0; - int file_size = 0; - errno_t fopen_err = 0; - - if (source == NULL) { - success = 1; - goto F; - } - - wchar_t drive[_MAX_DRIVE]; - wchar_t dir[_MAX_DIR]; - wchar_t fname[_MAX_FNAME]; - wchar_t ext[_MAX_EXT]; - - /* */ - _wsplitpath_s( - source, - drive, - dir, - fname, - ext - ); - - /* */ - wchar_t exportPath[_MAX_EXT]; - _wmakepath_s(exportPath, drive, dir, fname, L""); - - /* */ - FILE *fw; - fopen_err = _wfopen_s(&fw, exportPath, L"wb"); - - if (fopen_err) { - success = 3; - goto F; - } - - /* */ - file_size = fwrite(from, sizeof(char), strlen(from), fw); - - if (file_size != strlen(from)) { - success = 4; - goto A; - } - -A: - fclose(fw); -F: - return success; -} - -errno_t saveTextToBinary(const wchar_t *source, const wchar_t *baseFileName, const char* from) { - - errno_t success = 0; - int file_size = 0; - errno_t fopen_err = 0; - - if (source == NULL) { - success = 1; - goto F; - } - - wchar_t drive[_MAX_DRIVE]; - wchar_t dir[_MAX_DIR]; - wchar_t fname[_MAX_FNAME]; - wchar_t ext[_MAX_EXT]; - - /* */ - _wsplitpath_s( - source, - drive, - dir, - fname, - ext - ); - - /* */ - wchar_t exportPath[_MAX_EXT]; - _wmakepath_s(exportPath, drive, dir, baseFileName, ext); - - /* */ - FILE *fw; - fopen_err = _wfopen_s(&fw, exportPath, L"wb"); - - if (fopen_err) { - success = 3; - goto F; - } - - /* */ - file_size = fwrite(from, sizeof(char), strlen(from), fw); - - if (file_size != strlen(from)) { - success = 4; - goto A; - } - -A: - fclose(fw); -F: - return success; -} - - -/* */ -errno_t subUTF8(const wchar_t *source, wchar_t *baseFileName) { - errno_t ans = 0; - - char *importText = NULL; - char *noBOMtext = NULL; - wchar_t *wideNoBOMtext = NULL; - wchar_t *escapedNoBOMWideText = NULL; - char *escapedNoBOMText = NULL; - char* escapedText = NULL; - - /* */ - ans = loadTextFromBinary(source, &importText); - if (ans > 0) { - printf("ƒtƒ@ƒCƒ‹‚©‚çƒeƒLƒXƒg‚ð“Ç‚Ýž‚ß‚È‚¢:%d", ans); - goto A; - } - - /* */ - ans = convertTextToWideText(importText, &wideNoBOMtext); - if (ans > 0) { - printf("M->W‚ª•ÏŠ·‚Å‚«‚È‚©‚Á‚½:%d", ans); - goto C; - } - - /* */ - ans = convertWideTextToEscapedWideText(wideNoBOMtext, &escapedNoBOMWideText); - if (ans > 0) { - printf("ƒGƒXƒP[ƒv‚ÉŽ¸”s‚µ‚½:%d", ans); - goto D; - } - - /* */ - ans = convertWideTextToText(escapedNoBOMWideText, &escapedNoBOMText); - if (ans > 0) { - printf("W->M‚ª•ÏŠ·‚Å‚«‚È‚©‚Á‚½:%d", ans); - goto E; - } - - /* */ - ans = attachBOM(escapedNoBOMText, &escapedText); - if (ans > 0) { - printf("BOM‚ð‚‚¯‚é‚Ì‚ÉŽ¸”s:%d", ans); - goto F; - } - - /* */ - ans = saveTextToBinary2(source, baseFileName, escapedText); - if (ans > 0) { - printf("ƒtƒ@ƒCƒ‹‚ðƒZ[ƒu‚·‚é‚Ì‚ÉŽ¸”s:%d", ans); - } - -G: - free(escapedText); - -F: - free(escapedNoBOMText); - -E: - free(escapedNoBOMWideText); - -D: - free(wideNoBOMtext); - -C: - free(noBOMtext); - -B: - free(importText); - -A: - return ans; -} - - -/* */ -errno_t subUTF8B(const wchar_t *source, wchar_t *baseFileName) { - errno_t ans = 0; - - char *importText = NULL; - char *noBOMtext = NULL; - wchar_t *wideNoBOMtext = NULL; - wchar_t *escapedNoBOMWideText = NULL; - char *escapedNoBOMText = NULL; - char* escapedText = NULL; - - /* */ - ans = loadTextFromBinary(source, &importText); - if (ans > 0) { - printf("ƒtƒ@ƒCƒ‹‚©‚çƒeƒLƒXƒg‚ð“Ç‚Ýž‚ß‚È‚¢:%d", ans); - goto A; - } - - /* */ - ans = removeBOM(importText, &noBOMtext); - if (ans > 0) { - printf("BOM‚ª‚‚¢‚Ä‚¢‚È‚¢‚©‚çUTF-8‚¶‚á‚È‚¢:%d", ans); - goto B; - } - - /* */ - ans = convertTextToWideText(noBOMtext, &wideNoBOMtext); - if (ans > 0) { - printf("M->W‚ª•ÏŠ·‚Å‚«‚È‚©‚Á‚½:%d", ans); - goto C; - } - - /* */ - ans = convertWideTextToEscapedWideText(wideNoBOMtext, &escapedNoBOMWideText); - if (ans > 0) { - printf("ƒGƒXƒP[ƒv‚ÉŽ¸”s‚µ‚½:%d", ans); - goto D; - } - - /* */ - ans = convertWideTextToText(escapedNoBOMWideText, &escapedNoBOMText); - if (ans > 0) { - printf("W->M‚ª•ÏŠ·‚Å‚«‚È‚©‚Á‚½:%d", ans); - goto E; - } - - /* */ - ans = attachBOM(escapedNoBOMText, &escapedText); - if (ans > 0) { - printf("BOM‚ð‚‚¯‚é‚Ì‚ÉŽ¸”s:%d",ans); - goto F; - } - - - /* */ - ans = saveTextToBinary(source, baseFileName, escapedText); - if (ans > 0) { - printf("ƒtƒ@ƒCƒ‹‚ðƒZ[ƒu‚·‚é‚Ì‚ÉŽ¸”s:%d", ans); - goto G; - } - -G: - free(escapedText); - -F: - free(escapedNoBOMText); - -E: - free(escapedNoBOMWideText); - -D: - free(wideNoBOMtext); - -C: - free(noBOMtext); - -B: - free(importText); - -A: - return ans; -} diff --git a/ConsoleApplication3/ReadMe.txt b/ConsoleApplication3/ReadMe.txt deleted file mode 100644 index 8eaedfa..0000000 --- a/ConsoleApplication3/ReadMe.txt +++ /dev/null @@ -1,30 +0,0 @@ -======================================================================== - コンソール アプリケーション: ConsoleApplication3 プロジェクトã®æ¦‚è¦ -======================================================================== - -ã“ã® ConsoleApplication3 アプリケーションã¯ã€AppWizard ã«ã‚ˆã‚Šä½œæˆã•ã‚Œã¾ã—ãŸã€‚ - -ã“ã®ãƒ•ã‚¡ã‚¤ãƒ«ã«ã¯ã€ConsoleApplication3 アプリケーションを構æˆã™ã‚‹å„ファイルã®å†…容ã®æ¦‚è¦ãŒå«ã¾ã‚Œã¦ã„ã¾ã™ã€‚ - - -ConsoleApplication3.vcxproj - ã“ã‚Œã¯ã€ã‚¢ãƒ—リケーション ウィザードを使用ã—ã¦ç”Ÿæˆã•ã‚ŒãŸ VC++ プロジェクトã®ãƒ¡ã‚¤ãƒ³ プロジェクト ファイルã§ã™ã€‚ファイルを生æˆã—㟠Visual C++ ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã«é–¢ã™ã‚‹æƒ…å ±ã¨ã€ã‚¢ãƒ—リケーション ウィザードã§é¸æŠžã•ã‚ŒãŸãƒ—ラットフォームã€æ§‹æˆã€ãŠã‚ˆã³ãƒ—ロジェクト機能ã«é–¢ã™ã‚‹æƒ…å ±ãŒå«ã¾ã‚Œã¦ã„ã¾ã™ã€‚ - -ConsoleApplication3.vcxproj.filters - ã“ã‚Œã¯ã€ã‚¢ãƒ—リケーション ウィザードã§ç”Ÿæˆã•ã‚ŒãŸ VC++ プロジェクトã®ãƒ•ã‚£ãƒ«ã‚¿ãƒ¼ ファイルã§ã™ã€‚ã“ã®ãƒ•ã‚¡ã‚¤ãƒ«ã«ã¯ã€ãƒ—ロジェクト内ã®ãƒ•ã‚¡ã‚¤ãƒ«ã¨ãƒ•ã‚£ãƒ«ã‚¿ãƒ¼ã¨ã®é–“ã®é–¢é€£ä»˜ã‘ã«é–¢ã™ã‚‹æƒ…å ±ãŒå«ã¾ã‚Œã¦ã„ã¾ã™ã€‚ã“ã®é–¢é€£ä»˜ã‘ã¯ã€ç‰¹å®šã®ãƒŽãƒ¼ãƒ‰ã§åŒæ§˜ã®æ‹¡å¼µå­ã‚’æŒã¤ãƒ•ã‚¡ã‚¤ãƒ«ã®ã‚°ãƒ«ãƒ¼ãƒ—化を示ã™ãŸã‚ã« IDE ã§ä½¿ç”¨ã•ã‚Œã¾ã™ (ãŸã¨ãˆã°ã€".cpp" ファイル㯠"ソース ファイル" フィルターã«é–¢é€£ä»˜ã‘られã¦ã„ã¾ã™)。 - -ConsoleApplication3.cpp - ã“ã‚Œã¯ã€ãƒ¡ã‚¤ãƒ³ã®ã‚¢ãƒ—リケーション ソース ファイルã§ã™ã€‚ - -///////////////////////////////////////////////////////////////////////////// -ãã®ä»–ã®æ¨™æº–ファイル : - -StdAfx.h, StdAfx.cpp - ã“れらã®ãƒ•ã‚¡ã‚¤ãƒ«ã¯ã€ConsoleApplication3.pch ã¨ã„ã†åå‰ã®ãƒ—リコンパイル済ã¿ãƒ˜ãƒƒãƒ€ãƒ¼ (PCH) ファイルã¨ã€StdAfx.obj ã¨ã„ã†åå‰ã®ãƒ—リコンパイル済ã¿ã®åž‹ãƒ•ã‚¡ã‚¤ãƒ«ã‚’ビルドã™ã‚‹ãŸã‚ã«ä½¿ç”¨ã•ã‚Œã¾ã™ã€‚ - -///////////////////////////////////////////////////////////////////////////// -ãã®ä»–ã®ãƒ¡ãƒ¢ : - -AppWizard ã§ã¯ "TODO:" コメントを使用ã—ã¦ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒè¿½åŠ ã¾ãŸã¯ã‚«ã‚¹ã‚¿ãƒžã‚¤ã‚ºã™ã‚‹å¿…è¦ã®ã‚るソース コードを示ã—ã¾ã™ã€‚ - -///////////////////////////////////////////////////////////////////////////// diff --git a/ConsoleApplication3/stdafx.cpp b/ConsoleApplication3/stdafx.cpp deleted file mode 100644 index 9370649..0000000 --- a/ConsoleApplication3/stdafx.cpp +++ /dev/null @@ -1,8 +0,0 @@ -// stdafx.cpp : •W€ƒCƒ“ƒNƒ‹[ƒh ConsoleApplication3.pch ‚Ì‚Ý‚ð -// ŠÜ‚Þƒ\[ƒX ƒtƒ@ƒCƒ‹‚ÍAƒvƒŠƒRƒ“ƒpƒCƒ‹Ï‚݃wƒbƒ_[‚É‚È‚è‚Ü‚·B -// stdafx.obj ‚ɂ̓vƒŠƒRƒ“ƒpƒCƒ‹Ï‚ÝŒ^î•ñ‚ªŠÜ‚Ü‚ê‚Ü‚·B - -#include "stdafx.h" - -// TODO: ‚±‚̃tƒ@ƒCƒ‹‚Å‚Í‚È‚­ASTDAFX.H ‚Å•K—v‚È -// ’ljÁƒwƒbƒ_[‚ðŽQÆ‚µ‚Ä‚­‚¾‚³‚¢B diff --git a/ConsoleApplication3/stdafx.h b/ConsoleApplication3/stdafx.h deleted file mode 100644 index 472c4ea..0000000 --- a/ConsoleApplication3/stdafx.h +++ /dev/null @@ -1,20 +0,0 @@ -// stdafx.h : •W€‚̃VƒXƒeƒ€ ƒCƒ“ƒNƒ‹[ƒh ƒtƒ@ƒCƒ‹‚̃Cƒ“ƒNƒ‹[ƒh ƒtƒ@ƒCƒ‹A‚Ü‚½‚Í -// ŽQƉñ”‚ª‘½‚­A‚©‚‚ ‚Ü‚è•ÏX‚³‚ê‚È‚¢AƒvƒƒWƒFƒNƒgê—p‚̃Cƒ“ƒNƒ‹[ƒh ƒtƒ@ƒCƒ‹ -// ‚ð‹Lq‚µ‚Ü‚·B -// - -#pragma once - -#include "targetver.h" - -#include -#include - -#include - -#include - -#include - - -// TODO: ƒvƒƒOƒ‰ƒ€‚É•K—v‚ȒljÁƒwƒbƒ_[‚ð‚±‚±‚ÅŽQÆ‚µ‚Ä‚­‚¾‚³‚¢ diff --git a/ConsoleApplication3/targetver.h b/ConsoleApplication3/targetver.h deleted file mode 100644 index 10b7ccd..0000000 --- a/ConsoleApplication3/targetver.h +++ /dev/null @@ -1,8 +0,0 @@ -#pragma once - -// SDKDDKVer.h ‚ðƒCƒ“ƒNƒ‹[ƒh‚·‚é‚ÆA—˜—p‚Å‚«‚éÅ‚àãˆÊ‚Ì Windows ƒvƒ‰ƒbƒgƒtƒH[ƒ€‚ª’è‹`‚³‚ê‚Ü‚·B - -// ˆÈ‘O‚Ì Windows ƒvƒ‰ƒbƒgƒtƒH[ƒ€—p‚ɃAƒvƒŠƒP[ƒVƒ‡ƒ“‚ðƒrƒ‹ƒh‚·‚éꇂÍAWinSDKVer.h ‚ðƒCƒ“ƒNƒ‹[ƒh‚µA -// SDKDDKVer.h ‚ðƒCƒ“ƒNƒ‹[ƒh‚·‚é‘O‚ÉAƒTƒ|[ƒg‘ÎÛ‚Æ‚·‚éƒvƒ‰ƒbƒgƒtƒH[ƒ€‚ðŽ¦‚·‚悤‚É _WIN32_WINNT ƒ}ƒNƒ‚ðݒ肵‚Ü‚·B - -#include diff --git a/README.md b/README.md index e5d498c..98f8d0a 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ ## 環境  Windows7 以上 -## 使ã„ã‹ãŸãƒ‘ターン1 +## 使ã„ã‹ãŸãƒ‘ターン1(localisationã®ymlファイル) é©å½“ãªãƒ•ã‚©ãƒ«ãƒ€ã‚’用æ„ã—ã¾ã™ã€‚ 変æ›ã—ãŸã„テキストãŒå…¥ã£ãŸãƒ•ã‚¡ã‚¤ãƒ«ã‚’下記ã«æ³¨æ„ã—ã¦ã€ä¸Šè¨˜ã®ãƒ•ã‚©ãƒ«ãƒ€å†…ã«ä¿å­˜ã—ã¦ãã ã•ã„。上記ã®ãƒ•ã‚©ãƒ«ãƒ€å†…ã«ã•ã‚‰ã«ãƒ•ã‚©ãƒ«ãƒ€ã‚’作ã£ã¦ãã®ä¸­ã«ãƒ†ã‚­ã‚¹ãƒˆã‚’ç½®ãよã†ãªéšŽå±¤æ§‹é€ ã«ã—ã¦ã‚‚大丈夫ã§ã™ã€‚ @@ -13,9 +13,9 @@ - BOM付ãã®UTF-8 - ファイルåã‚’xxx.utf8b.yyyã«ã™ã‚‹ã€‚xxxã¯ä»»æ„ã®æ–‡å­—列。yyyã¯a~zã¨A~Zã¨0~9ã®ã¿ä½¿ç”¨å¯èƒ½ -上記ã®ãƒ•ã‚©ãƒ«ãƒ€ã‚’ã€ConsoleApplication3.exeã«ãƒ‰ãƒ©ãƒƒã‚°ã‚¢ãƒ³ãƒ‰ãƒ‰ãƒ­ãƒƒãƒ—ã—ã¦ãã ã•ã„。フォルダ内ã«ã€xxx.yyyã¨ã—ã¦å¤‰æ›ã•ã‚ŒãŸãƒ†ã‚­ã‚¹ãƒˆãŒä¿å­˜ã•ã‚Œã¾ã™ã€‚ +上記ã®ãƒ•ã‚©ãƒ«ãƒ€ã‚’ã€eu4specialescape.exeã«ãƒ‰ãƒ©ãƒƒã‚°ã‚¢ãƒ³ãƒ‰ãƒ‰ãƒ­ãƒƒãƒ—ã—ã¦ãã ã•ã„。フォルダ内ã«ã€xxx.yyyã¨ã—ã¦å¤‰æ›ã•ã‚ŒãŸãƒ†ã‚­ã‚¹ãƒˆãŒä¿å­˜ã•ã‚Œã¾ã™ã€‚ -## 使ã„方パターン2 +## 使ã„方パターン2(localisationã®ymlファイル) é©å½“ãªãƒ•ã‚©ãƒ«ãƒ€ã‚’用æ„ã—ã¾ã™ã€‚ 変æ›ã—ãŸã„テキストãŒå…¥ã£ãŸãƒ•ã‚¡ã‚¤ãƒ«ã‚’下記ã«æ³¨æ„ã—ã¦ã€ä¸Šè¨˜ã®ãƒ•ã‚©ãƒ«ãƒ€å†…ã«ä¿å­˜ã—ã¦ãã ã•ã„。上記ã®ãƒ•ã‚©ãƒ«ãƒ€å†…ã«ã•ã‚‰ã«ãƒ•ã‚©ãƒ«ãƒ€ã‚’作ã£ã¦ãã®ä¸­ã«ãƒ†ã‚­ã‚¹ãƒˆã‚’ç½®ãよã†ãªéšŽå±¤æ§‹é€ ã«ã—ã¦ã‚‚大丈夫ã§ã™ã€‚ @@ -23,10 +23,17 @@ - BOMãªã—ã®UTF-8 - ファイルåã‚’xxx.yyy.utf8ã«ã™ã‚‹ã€‚xxxã¯ä»»æ„ã®æ–‡å­—列。yyyã¯a~zã¨A~Zã¨0~9ã¨ã‚¢ãƒ³ãƒ€ãƒ¼ã‚¹ã‚³ã‚¢(_)ã®ã¿ä½¿ç”¨å¯èƒ½ -上記ã®ãƒ•ã‚©ãƒ«ãƒ€ã‚’ã€ConsoleApplication3.exeã«ãƒ‰ãƒ©ãƒƒã‚°ã‚¢ãƒ³ãƒ‰ãƒ‰ãƒ­ãƒƒãƒ—ã—ã¦ãã ã•ã„。フォルダ内ã«ã€xxx.yyyã¨ã—ã¦å¤‰æ›ã•ã‚ŒãŸãƒ†ã‚­ã‚¹ãƒˆãŒä¿å­˜ã•ã‚Œã¾ã™ã€‚ +上記ã®ãƒ•ã‚©ãƒ«ãƒ€ã‚’ã€eu4specialescape.exeã«ãƒ‰ãƒ©ãƒƒã‚°ã‚¢ãƒ³ãƒ‰ãƒ‰ãƒ­ãƒƒãƒ—ã—ã¦ãã ã•ã„。フォルダ内ã«ã€xxx.yyyã¨ã—ã¦å¤‰æ›ã•ã‚ŒãŸãƒ†ã‚­ã‚¹ãƒˆãŒä¿å­˜ã•ã‚Œã¾ã™ã€‚ -## ビルドã®ä»•æ–¹ - VC2015以上ã§ConsoleApplication3.slnã‚’é–‹ãã€ãƒ“ルドã—ã¦ãã ã•ã„。 +## 使ã„方パターン3(ymlファイル以外ã®ãƒ•ã‚¡ã‚¤ãƒ«ã€‚txtファイルãªã©ï¼‰ +é©å½“ãªãƒ•ã‚©ãƒ«ãƒ€ã‚’用æ„ã—ã¾ã™ã€‚ + +変æ›ã—ãŸã„テキストãŒå…¥ã£ãŸãƒ•ã‚¡ã‚¤ãƒ«ã‚’下記ã«æ³¨æ„ã—ã¦ã€ä¸Šè¨˜ã®ãƒ•ã‚©ãƒ«ãƒ€å†…ã«ä¿å­˜ã—ã¦ãã ã•ã„。上記ã®ãƒ•ã‚©ãƒ«ãƒ€å†…ã«ã•ã‚‰ã«ãƒ•ã‚©ãƒ«ãƒ€ã‚’作ã£ã¦ãã®ä¸­ã«ãƒ†ã‚­ã‚¹ãƒˆã‚’ç½®ãよã†ãªéšŽå±¤æ§‹é€ ã«ã—ã¦ã‚‚大丈夫ã§ã™ã€‚ -## ライセンス - MITライセンス \ No newline at end of file + - BOMãªã—ã®UTF-8 + - ファイルåã‚’xxx.yyy.utf8toCP1252ã«ã™ã‚‹ã€‚xxxã¯ä»»æ„ã®æ–‡å­—列。yyyã¯a~zã¨A~Zã¨0~9ã¨ã‚¢ãƒ³ãƒ€ãƒ¼ã‚¹ã‚³ã‚¢(_)ã®ã¿ä½¿ç”¨å¯èƒ½ + +上記ã®ãƒ•ã‚©ãƒ«ãƒ€ã‚’ã€eu4specialescape.exeã«ãƒ‰ãƒ©ãƒƒã‚°ã‚¢ãƒ³ãƒ‰ãƒ‰ãƒ­ãƒƒãƒ—ã—ã¦ãã ã•ã„。フォルダ内ã«ã€xxx.yyyã¨ã—ã¦å¤‰æ›ã•ã‚ŒãŸãƒ†ã‚­ã‚¹ãƒˆãŒä¿å­˜ã•ã‚Œã¾ã™ã€‚ + +## ビルドã®ä»•æ–¹ + VC2015以上ã§eu4specialescape.slnã‚’é–‹ãã€ãƒ“ルドã—ã¦ãã ã•ã„。 diff --git a/eu4specialescape/eu4specialescape.cpp b/eu4specialescape/eu4specialescape.cpp new file mode 100644 index 0000000000000000000000000000000000000000..b62cfa0a28e3e6eabcdc54827345eb5530e5076c GIT binary patch literal 35834 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 - + + Debug @@ -19,35 +19,36 @@ - {9003FC25-A6B5-451B-BDAE-B764FDAB37E1} + 15.0 + {7DDE02BC-6971-4E3A-B435-D5E77725708B} Win32Proj - ConsoleApplication3 - 8.1 + eu4specialescape + 10.0.17134.0 Application true - v140 + v141 Unicode Application false - v140 + v141 true Unicode Application true - v140 + v141 Unicode Application false - v140 + v141 true Unicode @@ -86,8 +87,10 @@ Use Level3 Disabled - WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + pch.h Console @@ -99,8 +102,10 @@ Use Level3 Disabled - _DEBUG;_CONSOLE;%(PreprocessorDefinitions) true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + pch.h Console @@ -109,13 +114,15 @@ - Level3 Use + Level3 MaxSpeed true true - WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + pch.h Console @@ -126,13 +133,15 @@ - Level3 Use + Level3 MaxSpeed true true - NDEBUG;_CONSOLE;%(PreprocessorDefinitions) true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + pch.h Console @@ -142,15 +151,11 @@ - - - - - + - - + + Create Create Create diff --git a/ConsoleApplication3/ConsoleApplication3.vcxproj.filters b/eu4specialescape/eu4specialescape.vcxproj.filters similarity index 74% rename from ConsoleApplication3/ConsoleApplication3.vcxproj.filters rename to eu4specialescape/eu4specialescape.vcxproj.filters index bfeb903..30429d7 100644 --- a/ConsoleApplication3/ConsoleApplication3.vcxproj.filters +++ b/eu4specialescape/eu4specialescape.vcxproj.filters @@ -7,7 +7,7 @@ {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hh;hpp;hxx;hm;inl;inc;xsd + h;hh;hpp;hxx;hm;inl;inc;ipp;xsd {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} @@ -15,21 +15,15 @@ - - - - - ヘッダー ファイル - - + ヘッダー ファイル - + ソース ファイル - + ソース ファイル diff --git a/eu4specialescape/pch.cpp b/eu4specialescape/pch.cpp new file mode 100644 index 0000000000000000000000000000000000000000..ae0fa0ea000f6ca6e4cb3bf2c277d9f438b863f0 GIT binary patch literal 276 zcmezWPoF`bL4l!wA(Bo5N7bkiw7(v{?!6nhYQtrVipx20xvqYy(DvV1qmZn63E+ yiiOjFX8Ib`0nPOR%HnqWB!hZ?jnZ&~Gy@l)i%cRoLh=pn`ZFengY`0jT?GIy7*)Ff literal 0 HcmV?d00001 diff --git a/eu4specialescape/pch.h b/eu4specialescape/pch.h new file mode 100644 index 0000000000000000000000000000000000000000..56c1299d79c658763a405902dde5ebc3cd734c52 GIT binary patch literal 1136 zcma)6&r4KM82wxr5eWSW58AY9PGv15+Bl0q@HL|_4xs zBB`9&6}U(Vp>X5Ss$|Ng3K1E#ao11Jy|>}L(RmcZW!~I#?)lDl?)T=;@0i5Il3x3= zSH#@iH|aFyki{%~yu&Wm&_=XHj*z8z=5ta`@M#4*_=ul)flp*wQpPhZ;{(2O?=zPr z3wTVVf&~8=8WyXa#M?>l{LVHGc_y+q&c^|t9ox~*Ebtb3Qv z(v3#y294G@qct+3Qd~lbiLRlKS)b?1$a5!!IGXQ$oAh;h3UTpcx|&qU8g!8^E6gj% zxz|40uWq#iO^8z7c6u^?q_RN|Du-PTYe$W8IjeiRnVo@$F6J3NRm82tIOonrYtP|s z<*(*D=vtw{ukh*m{w>xSml5%qN=>DR!kvfxfh#o$$HbFCvIfNAw29wk+w#2#A`_aX|hS=8*7CG;4^?a+uH#jw~cpqlg0~gAHFFAUh&@L=FN9TDy zdos!{T;6xh>3&|G=UllYV