From 1fcfefa3cf8b3e9a2f91c387e43c851cb018a031 Mon Sep 17 00:00:00 2001 From: Marc Durdin Date: Mon, 1 Mar 2021 16:05:17 +1100 Subject: [PATCH] fix(developer): support for smp names --- windows/src/developer/kmcmpdll/Compiler.cpp | 2 +- windows/src/developer/kmcmpdll/NamedCodeConstants.cpp | 4 ++-- .../src/test/unit-tests/kmcomp/test_namedcodeconstants.kmn | 2 ++ 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/windows/src/developer/kmcmpdll/Compiler.cpp b/windows/src/developer/kmcmpdll/Compiler.cpp index 1198f4f287..444c1126ef 100644 --- a/windows/src/developer/kmcmpdll/Compiler.cpp +++ b/windows/src/developer/kmcmpdll/Compiler.cpp @@ -2458,7 +2458,7 @@ DWORD GetXString(PFILE_KEYBOARD fk, PWSTR str, PWSTR token, PWSTR output, int ma case 16: VERIFY_KEYBOARD_VERSION(fk, VERSION_60, CERR_60FeatureOnly_NamedCodes); q = p + 1; - while (iswalnum(*q) || *q == '-' || *q == '_') q++; + while (*q && !iswblank(*q)) q++; c = *q; *q = 0; n = CodeConstants->GetCode(p + 1, &i); *q = c; diff --git a/windows/src/developer/kmcmpdll/NamedCodeConstants.cpp b/windows/src/developer/kmcmpdll/NamedCodeConstants.cpp index e2923d2151..a676230a6e 100644 --- a/windows/src/developer/kmcmpdll/NamedCodeConstants.cpp +++ b/windows/src/developer/kmcmpdll/NamedCodeConstants.cpp @@ -78,7 +78,7 @@ void NamedCodeConstants::AddCode(int n, const wchar_t *p, DWORD storeIndex) entries_file[nEntries_file].name[MAX_ENAME] = 0; for (wchar_t *r = entries_file[nEntries_file].name; *r; r++) - if (!iswalnum(*r) && *r != '-') *r = '_'; + if (iswblank(*r) && *r != '-') *r = '_'; entries_file[nEntries_file].storeIndex = storeIndex; nEntries_file++; @@ -101,7 +101,7 @@ void NamedCodeConstants::AddCode_IncludedCodes(int n, const wchar_t *p) wcsncpy_s(entries[nEntries].name, _countof(entries[nEntries].name), p, MAX_ENAME); // I3481 entries[nEntries].name[MAX_ENAME] = 0; for (wchar_t *r = entries[nEntries].name; *r; r++) - if (!iswalnum(*r) && *r != '-') *r = '_'; + if (iswblank(*r)) *r = '_'; entries[nEntries].storeIndex = 0xFFFFFFFFL; nEntries++; diff --git a/windows/src/test/unit-tests/kmcomp/test_namedcodeconstants.kmn b/windows/src/test/unit-tests/kmcomp/test_namedcodeconstants.kmn index 9a11c22cb0..0c696448c3 100644 --- a/windows/src/test/unit-tests/kmcomp/test_namedcodeconstants.kmn +++ b/windows/src/test/unit-tests/kmcomp/test_namedcodeconstants.kmn @@ -12,6 +12,7 @@ store(&includecodes) 'test_namedcodeconstants.txt' store(főő) '0' store(bar) '1' store(smp) U+12345 +store(😉) '🀪' $főő + 'a' > 'b' $bar + 'a' > 'c' @@ -21,3 +22,4 @@ $hangul_syllable_go + 'a' > 'd' $mycode + 'a' > 'e' $smp + 'a' > 'f' +$😉 + 'a' > '😡'