From 1c9f879780cfb7eeedc2a6767ca1cdc6cf98833a Mon Sep 17 00:00:00 2001 From: Sabine Date: Fri, 1 Mar 2024 22:38:03 +0100 Subject: [PATCH] feat(linux): mcompile-dk replace wchar_t disable more old wchar_t functions --- linux/mcompile/keymap/deadkey.cpp | 2 +- linux/mcompile/keymap/deadkey.h | 2 +- linux/mcompile/keymap/keymap.cpp | 8 ++++---- linux/mcompile/keymap/keymap.h | 6 +++--- linux/mcompile/keymap/mc_import_rules.cpp | 19 +++++++++++-------- 5 files changed, 20 insertions(+), 17 deletions(-) diff --git a/linux/mcompile/keymap/deadkey.cpp b/linux/mcompile/keymap/deadkey.cpp index 3db2402086..a287b5303a 100755 --- a/linux/mcompile/keymap/deadkey.cpp +++ b/linux/mcompile/keymap/deadkey.cpp @@ -1,7 +1,7 @@ #include "keymap.h" #include "deadkey.h" -// _S2 TOP_7 +// _S2 TOP_7 ok /*v_dw_1D createLine(std::wstring first, std::wstring second, KMX_DWORD number, std::wstring nameresult) { v_dw_1D line; line.push_back(convertNamesTo_DWORD_Value(first)); diff --git a/linux/mcompile/keymap/deadkey.h b/linux/mcompile/keymap/deadkey.h index af9fef054b..c68791bd78 100755 --- a/linux/mcompile/keymap/deadkey.h +++ b/linux/mcompile/keymap/deadkey.h @@ -6,7 +6,7 @@ #include #include "mc_import_rules.h" -// _S2 TOP_7 +// _S2 TOP_7 ok // create a vector for a dk combination ( ` + a -> à ) //v_dw_1D createLine(std::wstring first, std::wstring second, KMX_DWORD number, std::wstring nameresult); v_dw_1D createLine(std::string first, std::string second, KMX_DWORD number, std::string nameresult); diff --git a/linux/mcompile/keymap/keymap.cpp b/linux/mcompile/keymap/keymap.cpp index 739b1215f7..52a4f53a0f 100755 --- a/linux/mcompile/keymap/keymap.cpp +++ b/linux/mcompile/keymap/keymap.cpp @@ -10,7 +10,7 @@ int map_VKShiftState_to_LinModifier(int VKShiftState) { else return VKShiftState; } -// _S2 TOP_7 +// _S2 TOP_7 ok /*KMX_DWORD convertNamesTo_DWORD_Value(std::wstring tok_wstr) { // more on https://manpages.ubuntu.com/manpages/jammy/man3/keysyms.3tk.html std::map first; @@ -561,7 +561,7 @@ int split_US_To_3D_Vector(v_dw_3D &all_US,v_str_1D completeList) { for ( int i = 1; i< (int) tokens.size();i++) { // replace a name with a single character ( a -> a ; equal -> = ) - // _S2 TOP_7 + // _S2 TOP_7 ok tokens_int = convertNamesTo_DWORD_Value(tokens[i]); //tokens_int = convertNamesTo_DWORD_Value( wstring_from_string(tokens[i])); @@ -652,7 +652,7 @@ bool IsKeymanUsedChar(int KV) { else return false; } -// _S2 TOP_7 +// _S2 TOP_7 ok std::wstring convert_DeadkeyValues_ToWstr(int in) { if (in == 0 ) @@ -884,7 +884,7 @@ KMX_DWORD KMX_get_VKUS_From_KeyCodeUnderlying(KMX_DWORD keycode) { return 0; } -// _S2 TOP_7 +// _S2 TOP_7 ok std::wstring CodePointToWString(unsigned int codepoint) { std::wstring str; diff --git a/linux/mcompile/keymap/keymap.h b/linux/mcompile/keymap/keymap.h index 1909a7bdc3..99a10028da 100755 --- a/linux/mcompile/keymap/keymap.h +++ b/linux/mcompile/keymap/keymap.h @@ -71,7 +71,7 @@ static KMX_DWORD deadkey_min = 0xfe50; static KMX_DWORD deadkey_max = 0xfe52; // _S2 TOP_6 TODO This has to go! my test: to only return 3 dk int map_VKShiftState_to_LinModifier(int VKShiftState); -// _S2 TOP_7 +// _S2 TOP_7 ok // take a std::wstring (=contents of line symbols-file ) and returns the (int) value of the character //KMX_DWORD convertNamesTo_DWORD_Value(std::wstring tok_wstr); KMX_DWORD convertNamesTo_DWORD_Value(std::string tok_str); @@ -503,7 +503,7 @@ const UINT ScanCodeToUSVirtualKey[128] = { bool IsKeymanUsedChar(int KV); //------------------------------ -// _S2 TOP_7 +// _S2 TOP_7 ok // take deadkey-value (e.g.65106) and return wstring (e.g. '^' ) std::wstring convert_DeadkeyValues_ToWstr(int in); std::u16string convert_DeadkeyValues_To_U16str(int in); @@ -530,7 +530,7 @@ UINT KMX_get_KeyCodeUnderlying_From_VKUS(KMX_DWORD VirtualKeyUS); KMX_DWORD KMX_get_VKUS_From_KeyCodeUnderlying(KMX_DWORD keycode); // convert codePoint to wstring -// _S2 TOP_7 +// _S2 TOP_7 ok std::wstring CodePointToWString(unsigned int codepoint); std::u16string CodePointToString_16(unsigned int codepoint); diff --git a/linux/mcompile/keymap/mc_import_rules.cpp b/linux/mcompile/keymap/mc_import_rules.cpp index f987c4055c..8b1dc2db70 100755 --- a/linux/mcompile/keymap/mc_import_rules.cpp +++ b/linux/mcompile/keymap/mc_import_rules.cpp @@ -75,7 +75,7 @@ int KMX_ToUnicodeEx(guint keycode, PKMX_WCHAR pwszBuff, int shift_state_pos, int if (!(keycode <= keycode_max)) return 0; -// _S2 TOP_7 +// _S2 TOP_7 ok KMX_DWORD KeyVal= (KMX_DWORD) KMX_get_KeyVal_From_KeyCode(keymap, keycode, ShiftState(shift_state_pos), caps); //std::wstring str = convert_DeadkeyValues_ToWstr(KeyVal); // pwszBuff[0]= * (PKMX_WCHAR) u16string_from_wstring(str).c_str(); @@ -144,7 +144,7 @@ public: UINT SC() { return this->m_sc; } -// _S2 TOP_7 +// _S2 TOP_7 ok std::wstring KMX_GetShiftState(ShiftState shiftState, bool capsLock) { return this->m_rgss[(UINT)shiftState][(capsLock ? 1 : 0)]; } @@ -168,7 +168,7 @@ public: this->m_rgss_16[(UINT)shiftState][(capsLock ? 1 : 0)] = value; } -// _S2 TOP_7 +// _S2 TOP_7 ok bool KMX_IsSGCAPS() { std::wstring stBase = this->KMX_GetShiftState(Base, false); // 0,0 a 4 ß std::wstring stShift = this->KMX_GetShiftState(Shft, false); // 1,0 A $ ? @@ -195,7 +195,7 @@ public: (stBase.compare(stShiftCaps) != 0) && // stBase != stShiftCaps (stShift.compare(stShiftCaps) != 0))); // stShift!= stShiftCaps } -// _S2 TOP_7 +// _S2 TOP_7 ok bool KMX_IsCapsEqualToShift() { std::wstring stBase = this->KMX_GetShiftState(Base, false); // 0,0 a 4 ß std::wstring stShift = this->KMX_GetShiftState(Shft, false); // 1,0 A $ ? @@ -216,7 +216,7 @@ public: (stBase.compare(stShift) != 0) && // stBase != stShft (stShift.compare(stCaps) == 0)); // stShft == stCaps } -// _S2 TOP_7 +// _S2 TOP_7 ok bool KMX_IsAltGrCapsEqualToAltGrShift() { std::wstring stBase = this->KMX_GetShiftState(MenuCtrl, false); // 0,0 std::wstring stShift = this->KMX_GetShiftState(ShftMenuCtrl, false); // 1,0 @@ -237,7 +237,7 @@ public: (stBase.compare(stShift) != 0) && // stBase != stShft (stShift.compare(stCaps) == 0)); // stShft == stCaps } -// _S2 TOP_7 +// _S2 TOP_7 ok bool KMX_IsXxxxGrCapsEqualToXxxxShift() { std::wstring stBase = this->KMX_GetShiftState(Xxxx, false); std::wstring stShift = this->KMX_GetShiftState(ShftXxxx, false); @@ -308,7 +308,7 @@ return ( for (int caps = 0; caps <= 1; caps++) { // _S2 TOP_7 std::wstring st = this->KMX_GetShiftState((ShiftState) ss, (caps == 1)); - //std::u16string st16 = this->KMX_GetShiftState_16((ShiftState) ss, (caps == 1)); + //std::u16string st = this->KMX_GetShiftState_16((ShiftState) ss, (caps == 1)); if (st.size() == 0) { // No character assigned here @@ -356,7 +356,7 @@ return ( for (int caps = 0; caps <= 1; caps++) { // _S2 TOP_7 std::wstring st = this->KMX_GetShiftState((ShiftState) ss, (caps == 1)); - //std::u16string st_16 = this->KMX_GetShiftState_16((ShiftState) ss, (caps == 1)); + //std::u16string st = this->KMX_GetShiftState_16((ShiftState) ss, (caps == 1)); PKMX_WCHAR p; if (st.size() == 0) { @@ -527,6 +527,7 @@ bool KMX_ImportRules(LPKMX_KEYBOARD kp,v_dw_3D &All_Vector, GdkKeymap **keymap, if(*sbBuffer == 0) { //rgKey[iKey]->KMX_SetShiftState(ss, L"", false, (caps == 0)); // different to windows since behavior on Linux is different rgKey[iKey]->KMX_SetShiftState(ss, u"", false, (caps)); + //rgKey[iKey]->KMX_SetShiftState_16(ss, u"", false, (caps)); } else { if( (ss == Ctrl || ss == ShftCtrl) ) { @@ -535,12 +536,14 @@ bool KMX_ImportRules(LPKMX_KEYBOARD kp,v_dw_3D &All_Vector, GdkKeymap **keymap, sbBuffer[rc] = 0; //rgKey[iKey]->KMX_SetShiftState(ss, sbBuffer, false, (caps==0)); rgKey[iKey]->KMX_SetShiftState(ss, sbBuffer, false, (caps)); // different to windows since behavior on Linux is different + //rgKey[iKey]->KMX_SetShiftState_16(ss, sbBuffer, false, (caps)); // different to windows since behavior on Linux is different } } else if(rc < 0) { sbBuffer[2] = 0; //rgKey[iKey]->SetShiftState(ss, sbBuffer, true, (caps == 0)); rgKey[iKey]->KMX_SetShiftState(ss, sbBuffer, true, (caps )); // different to windows since behavior on Linux is different + //rgKey[iKey]->KMX_SetShiftState_16(ss, sbBuffer, true, (caps )); // different to windows since behavior on Linux is different refine_alDead(sbBuffer[0], alDead, &alDead_cpl); }